feat(arcade-core): add CONTACTS service domain (TOO-1322)#881
Merged
samkujovich merged 1 commit intoJun 22, 2026
Conversation
Adds a `CONTACTS` member to `ServiceDomain` (`arcade_core.metadata`) for address-book / people-directory services — managing personal or organizational contact records. The Google Contacts toolkit is currently the only Google toolkit with no ServiceDomain: no existing value fits an address book. `CRM` fails the 10/10 test (Google Contacts is an address book, not a sales-pipeline CRM), and `SALES_INTELLIGENCE` is prospecting databases, not a personal/org directory. Per the metadata convention, when no ServiceDomain fits a recognized external service, add one upstream rather than force a wrong category. Refs: TOO-1322
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
jottakka
reviewed
Jun 22, 2026
jottakka
left a comment
Contributor
There was a problem hiding this comment.
Needs a version bump! Dont forget to set the proper depedency version in the toolkit that you will added this as well.
jottakka
approved these changes
Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a
CONTACTSmember toServiceDomain(arcade_core.metadata, re-exported viaarcade_mcp_server.metadata):Why
The
google_contactstoolkit is the only Google toolkit in the monorepo with noServiceDomain— every sibling sets one (gmail→EMAIL, calendar→CALENDAR, docs→DOCUMENTS, drive→CLOUD_STORAGE, sheets→SPREADSHEETS, slides→PRESENTATIONS). No existing value fits an address book:CRMfails the 10/10 test — Google Contacts is a personal/org address book, not a sales-pipeline CRM (Salesforce/HubSpot/Attio).SALES_INTELLIGENCEis prospecting/lead databases (Apollo), not a personal/org directory.Per the metadata convention (the
Datadog → OBSERVABILITY/Apollo → SALES_INTELLIGENCEprecedent), when noServiceDomainfits a recognized external service, add one upstream rather than force a wrong category.Changes
ServiceDomain.CONTACTS = "contacts"with a docstring, placed next toCRMso the distinction is explicit.test_decorator_accepts_sales_intelligence_domain).No version bump (consistent with the prior service-domain additions; handled at release).
Test plan
uv run pytest -W ignore libs/tests/tool/test_tool_metadata.py libs/tests/arcade_mcp_server/test_tool_metadata_serialization.py— 61 passed (incl. newtest_decorator_accepts_contacts_domain)Downstream
Unblocks TOO-1322 in the monorepo: once released, bump
arcade-mcp-serveringoogle_contactsand classify its 5 tools withServiceDomain.CONTACTS.Refs: TOO-1322
🤖 Generated with Claude Code; author is accountable for every line.
Note
Low Risk
Additive enum and test only; no changes to auth, runtime behavior, or existing tool metadata rules.
Overview
Adds
ServiceDomain.CONTACTS("contacts") toarcade_core.metadata, positioned next toCRM, for address books and people directories (e.g. Google Contacts) rather than sales CRM or prospecting tools.A new decorator test checks the enum value and that tools can classify with
CONTACTSend-to-end, matching the existingSALES_INTELLIGENCEpattern. No validation or serialization logic changes beyond the new enum member.Reviewed by Cursor Bugbot for commit 5417127. Bugbot is set up for automated code reviews on this repo. Configure here.