Context
Data Machine core is introducing ability categories (Extra-Chill/data-machine#1052) to solve pipeline tool bloat and align with the wp-ai-client migration (#1027). The flat 'datamachine' category is being replaced with 18+ semantic subcategories across core and extensions.
data-machine-events has 31 ability registrations across 20 files, all using 'category' => 'datamachine'. These need to migrate to extension-specific categories.
Proposed categories
| Category |
Abilities |
datamachine-events/events |
event-query, event-date-query, event-update, event-health, event-quality-audit, filter, calendar, upcoming-count, duplicate-detection, encoding-fix, batch-time-fix, ticket-url-resync, meta-sync |
datamachine-events/venues |
venue CRUD, venue-map, geocoding |
datamachine-events/settings |
events extension settings |
datamachine-events/testing |
ticketmaster-test, dice-fm-test, event-scraper-test |
What needs to happen
- Register the extension categories in
data-machine-events.php bootstrap (on wp_abilities_api_categories_init)
- Update all 31
'category' => 'datamachine' to the correct subcategory across 20 files
- Add
ability metadata to the 9 chat tool registerTool() calls in inc/Api/Chat/Tools/
- The
upsert_event handler tool (registered via chubes_ai_tools in EventUpsertFilters.php) doesn't need changes — handler tools bypass category filtering
Files to update
Abilities (category string replacement):
inc/Abilities/EventQueryAbilities.php → datamachine-events/events
inc/Abilities/EventDateQueryAbilities.php → datamachine-events/events
inc/Abilities/EventUpdateAbilities.php → datamachine-events/events
inc/Abilities/EventHealthAbilities.php → datamachine-events/events
inc/Abilities/EventQualityAuditAbilities.php → datamachine-events/events
inc/Abilities/FilterAbilities.php → datamachine-events/events
inc/Abilities/CalendarAbilities.php → datamachine-events/events
inc/Abilities/UpcomingCountAbilities.php → datamachine-events/events
inc/Abilities/DuplicateDetectionAbilities.php → datamachine-events/events
inc/Abilities/EncodingFixAbilities.php → datamachine-events/events
inc/Abilities/BatchTimeFixAbilities.php → datamachine-events/events
inc/Abilities/TicketUrlResyncAbilities.php → datamachine-events/events
inc/Abilities/MetaSyncAbilities.php → datamachine-events/events
inc/Abilities/TimezoneAbilities.php → datamachine-events/events
inc/Abilities/VenueAbilities.php → datamachine-events/venues
inc/Abilities/VenueMapAbilities.php → datamachine-events/venues
inc/Abilities/GeocodingAbilities.php → datamachine-events/venues
inc/Abilities/SettingsAbilities.php → datamachine-events/settings
inc/Abilities/TicketmasterTest.php → datamachine-events/testing
inc/Abilities/DiceFmTest.php → datamachine-events/testing
inc/Abilities/EventScraperTest.php → datamachine-events/testing
Chat tools (add ability meta):
inc/Api/Chat/Tools/UpdateEvent.php
inc/Api/Chat/Tools/UpdateVenue.php
inc/Api/Chat/Tools/GetVenueEvents.php
inc/Api/Chat/Tools/EventHealthCheck.php
inc/Api/Chat/Tools/EventQualityAudit.php
inc/Api/Chat/Tools/VenueHealthCheck.php
inc/Api/Chat/Tools/FindBrokenTimezoneEvents.php
inc/Api/Chat/Tools/FixEventTimezone.php
inc/Api/Chat/Tools/TestEventScraper.php
Reference
Context
Data Machine core is introducing ability categories (Extra-Chill/data-machine#1052) to solve pipeline tool bloat and align with the wp-ai-client migration (#1027). The flat
'datamachine'category is being replaced with 18+ semantic subcategories across core and extensions.data-machine-events has 31 ability registrations across 20 files, all using
'category' => 'datamachine'. These need to migrate to extension-specific categories.Proposed categories
datamachine-events/eventsdatamachine-events/venuesdatamachine-events/settingsdatamachine-events/testingWhat needs to happen
data-machine-events.phpbootstrap (onwp_abilities_api_categories_init)'category' => 'datamachine'to the correct subcategory across 20 filesabilitymetadata to the 9 chat toolregisterTool()calls ininc/Api/Chat/Tools/upsert_eventhandler tool (registered viachubes_ai_toolsinEventUpsertFilters.php) doesn't need changes — handler tools bypass category filteringFiles to update
Abilities (category string replacement):
inc/Abilities/EventQueryAbilities.php→datamachine-events/eventsinc/Abilities/EventDateQueryAbilities.php→datamachine-events/eventsinc/Abilities/EventUpdateAbilities.php→datamachine-events/eventsinc/Abilities/EventHealthAbilities.php→datamachine-events/eventsinc/Abilities/EventQualityAuditAbilities.php→datamachine-events/eventsinc/Abilities/FilterAbilities.php→datamachine-events/eventsinc/Abilities/CalendarAbilities.php→datamachine-events/eventsinc/Abilities/UpcomingCountAbilities.php→datamachine-events/eventsinc/Abilities/DuplicateDetectionAbilities.php→datamachine-events/eventsinc/Abilities/EncodingFixAbilities.php→datamachine-events/eventsinc/Abilities/BatchTimeFixAbilities.php→datamachine-events/eventsinc/Abilities/TicketUrlResyncAbilities.php→datamachine-events/eventsinc/Abilities/MetaSyncAbilities.php→datamachine-events/eventsinc/Abilities/TimezoneAbilities.php→datamachine-events/eventsinc/Abilities/VenueAbilities.php→datamachine-events/venuesinc/Abilities/VenueMapAbilities.php→datamachine-events/venuesinc/Abilities/GeocodingAbilities.php→datamachine-events/venuesinc/Abilities/SettingsAbilities.php→datamachine-events/settingsinc/Abilities/TicketmasterTest.php→datamachine-events/testinginc/Abilities/DiceFmTest.php→datamachine-events/testinginc/Abilities/EventScraperTest.php→datamachine-events/testingChat tools (add ability meta):
inc/Api/Chat/Tools/UpdateEvent.phpinc/Api/Chat/Tools/UpdateVenue.phpinc/Api/Chat/Tools/GetVenueEvents.phpinc/Api/Chat/Tools/EventHealthCheck.phpinc/Api/Chat/Tools/EventQualityAudit.phpinc/Api/Chat/Tools/VenueHealthCheck.phpinc/Api/Chat/Tools/FindBrokenTimezoneEvents.phpinc/Api/Chat/Tools/FixEventTimezone.phpinc/Api/Chat/Tools/TestEventScraper.phpReference