Skip to content

feat(arcade-core): add CONTACTS service domain (TOO-1322)#881

Merged
samkujovich merged 1 commit into
mainfrom
samkujovich/too-1322-add-contacts-service-domain
Jun 22, 2026
Merged

feat(arcade-core): add CONTACTS service domain (TOO-1322)#881
samkujovich merged 1 commit into
mainfrom
samkujovich/too-1322-add-contacts-service-domain

Conversation

@samkujovich

@samkujovich samkujovich commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

What

Adds a CONTACTS member to ServiceDomain (arcade_core.metadata, re-exported via arcade_mcp_server.metadata):

CONTACTS = "contacts"
"""Address books and people directories — managing personal or organizational contact records."""

Why

The google_contacts toolkit is the only Google toolkit in the monorepo with no ServiceDomain — every sibling sets one (gmail→EMAIL, calendar→CALENDAR, docs→DOCUMENTS, drive→CLOUD_STORAGE, sheets→SPREADSHEETS, slides→PRESENTATIONS). No existing value fits an address book:

  • CRM fails the 10/10 test — Google Contacts is a personal/org address book, not a sales-pipeline CRM (Salesforce/HubSpot/Attio).
  • SALES_INTELLIGENCE is prospecting/lead databases (Apollo), not a personal/org directory.

Per the metadata convention (the Datadog → OBSERVABILITY / Apollo → SALES_INTELLIGENCE precedent), when no ServiceDomain fits a recognized external service, add one upstream rather than force a wrong category.

Changes

  • ServiceDomain.CONTACTS = "contacts" with a docstring, placed next to CRM so the distinction is explicit.
  • A test asserting the enum value and a classified-tool round-trip (mirrors 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. new test_decorator_accepts_contacts_domain)

Downstream

Unblocks TOO-1322 in the monorepo: once released, bump arcade-mcp-server in google_contacts and classify its 5 tools with ServiceDomain.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") to arcade_core.metadata, positioned next to CRM, 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 CONTACTS end-to-end, matching the existing SALES_INTELLIGENCE pattern. 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.

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

codecov Bot commented Jun 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
libs/arcade-core/arcade_core/metadata.py 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@samkujovich samkujovich marked this pull request as ready for review June 21, 2026 21:43

@jottakka jottakka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs a version bump! Dont forget to set the proper depedency version in the toolkit that you will added this as well.

@samkujovich samkujovich merged commit a2b8938 into main Jun 22, 2026
66 checks passed
@samkujovich samkujovich deleted the samkujovich/too-1322-add-contacts-service-domain branch June 22, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants