cited-cli 0.3.14__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cited_cli-0.3.14 → cited_cli-0.5.0}/PKG-INFO +4 -4
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/pyproject.toml +1 -1
- cited_cli-0.5.0/packages/core/src/cited_core/__init__.py +1 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/api/client.py +9 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/api/endpoints.py +8 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/pyproject.toml +2 -2
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/plan_gating.py +17 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tool_changelog.yaml +209 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/_helpers.py +167 -91
- cited_cli-0.5.0/packages/mcp/src/cited_mcp/tools/business.py +477 -0
- cited_cli-0.5.0/packages/mcp/src/cited_mcp/tools/hq.py +799 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/recommend.py +20 -1
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/tests/test_plan_gating.py +1 -1
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/tests/test_tools.py +132 -2
- {cited_cli-0.3.14 → cited_cli-0.5.0}/pyproject.toml +4 -4
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/business.py +104 -0
- cited_cli-0.5.0/src/cited_cli/commands/hq.py +578 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_feature_parity.py +20 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_mcp_server.py +18 -0
- cited_cli-0.3.14/packages/core/src/cited_core/__init__.py +0 -1
- cited_cli-0.3.14/packages/mcp/src/cited_mcp/tools/business.py +0 -273
- cited_cli-0.3.14/packages/mcp/src/cited_mcp/tools/hq.py +0 -93
- cited_cli-0.3.14/src/cited_cli/commands/hq.py +0 -125
- {cited_cli-0.3.14 → cited_cli-0.5.0}/.github/workflows/changelog-guard.yml +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/.github/workflows/ci.yml +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/.github/workflows/release.yml +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/.gitignore +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/CLAUDE.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/DEMO.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/FUTURE.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/LICENSE +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/README.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/TEST_RUNBOOK.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/.claude-plugin/marketplace.json +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/.claude-plugin/plugin.json +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/.mcp.json +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/CLAUDE_DESKTOP_SETUP.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/agents/geo-analyst.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/commands/audit.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/commands/recommend.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/commands/status.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/settings.json +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/skills/business-setup/SKILL.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/skills/explore/SKILL.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/skills/geo-audit/SKILL.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/cited-plugins/skills/geo-recommend/SKILL.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/api/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/auth/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/auth/oauth_server.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/auth/store.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/config/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/config/constants.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/config/manager.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/core/src/cited_core/errors.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/README.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/SKILL.md +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/__main__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/auth_provider.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/context.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/remote.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/server.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tool_manager.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/action_plan.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/agent.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/analytics.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/audit.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/auth.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/billing.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/changelog.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/job.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/src/cited_mcp/tools/solution.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/tests/conftest.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/packages/mcp/tests/test_auth_provider.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/scripts/dev-install.sh +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/scripts/mcp_test_harness.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/__main__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/api/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/api/client.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/api/endpoints.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/app.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/auth/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/auth/oauth_server.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/auth/store.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/agent.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/analytics.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/audit.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/auth.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/config_cmd.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/job.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/mcp_cmd.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/named_audit.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/recommend.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/commands/solution.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/config/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/config/constants.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/config/manager.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/context.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/server.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/_helpers.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/audit.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/auth.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/business.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/job.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/recommend.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/mcp/tools/solution.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/output/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/output/formatter.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/output/progress.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/output/tables.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/utils/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/utils/errors.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/src/cited_cli/utils/interactive.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/__init__.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/conftest.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_api_client.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_auth.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_config.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_live_pipeline.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_mcp_tools.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_output.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_pipeline.py +0 -0
- {cited_cli-0.3.14 → cited_cli-0.5.0}/tests/test_version.py +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cited-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: CLI for the Cited GEO platform
|
|
5
5
|
Author-email: Cited <support@youcited.com>
|
|
6
6
|
License-Expression: LicenseRef-Proprietary
|
|
7
7
|
License-File: LICENSE
|
|
8
8
|
Requires-Python: >=3.11
|
|
9
|
-
Requires-Dist: cited-core>=0.
|
|
9
|
+
Requires-Dist: cited-core>=0.5.0
|
|
10
10
|
Requires-Dist: rich>=13.0.0
|
|
11
11
|
Requires-Dist: typer>=0.15.0
|
|
12
12
|
Provides-Extra: dev
|
|
13
|
-
Requires-Dist: cited-mcp>=0.
|
|
13
|
+
Requires-Dist: cited-mcp>=0.5.0; extra == 'dev'
|
|
14
14
|
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
15
15
|
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
16
16
|
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
17
17
|
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
18
18
|
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
|
|
19
19
|
Provides-Extra: mcp
|
|
20
|
-
Requires-Dist: cited-mcp>=0.
|
|
20
|
+
Requires-Dist: cited-mcp>=0.5.0; extra == 'mcp'
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
23
23
|
# Cited CLI
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.0"
|
|
@@ -40,6 +40,15 @@ class CitedClient:
|
|
|
40
40
|
def close(self) -> None:
|
|
41
41
|
self._client.close()
|
|
42
42
|
|
|
43
|
+
def set_request_id(self, request_id: str | None) -> None:
|
|
44
|
+
"""Stamp X-Request-ID on subsequent outgoing requests so the cited
|
|
45
|
+
backend can echo it in its access logs and produce end-to-end traces.
|
|
46
|
+
Pass None to clear."""
|
|
47
|
+
if request_id:
|
|
48
|
+
self._client.headers["X-Request-ID"] = request_id
|
|
49
|
+
else:
|
|
50
|
+
self._client.headers.pop("X-Request-ID", None)
|
|
51
|
+
|
|
43
52
|
def __enter__(self) -> CitedClient:
|
|
44
53
|
return self
|
|
45
54
|
|
|
@@ -23,6 +23,7 @@ BUSINESS = "/businesses/{business_id}"
|
|
|
23
23
|
BUSINESS_LOGO = "/businesses/{business_id}/logo"
|
|
24
24
|
HEALTH_SCORES = "/businesses/{business_id}/health-scores"
|
|
25
25
|
HEALTH_SCORES_BREAKDOWN = "/businesses/{business_id}/health-scores/breakdown"
|
|
26
|
+
PROFILE_COMPETITORS = "/businesses/{business_id}/profile-competitors"
|
|
26
27
|
|
|
27
28
|
# Business Crawl
|
|
28
29
|
CRAWL_DATA = "/businesses/{business_id}/crawl-data"
|
|
@@ -77,9 +78,16 @@ HQ_PRIORITY_STATUS = "/businesses/{business_id}/hq/priority/{action_id}/status"
|
|
|
77
78
|
HQ_PRIORITY_SUMMARY = "/businesses/{business_id}/hq/priority/summary"
|
|
78
79
|
HQ_EXPORT_PDF = "/businesses/{business_id}/hq/export/pdf"
|
|
79
80
|
HQ_RECOMPUTE = "/businesses/{business_id}/hq/recompute"
|
|
81
|
+
HQ_OVERVIEW_REFRESH_AUDIT = "/businesses/{business_id}/overview/refresh-audit"
|
|
82
|
+
HQ_OVERVIEW_REFRESH_RECS = "/businesses/{business_id}/overview/refresh-recommendations"
|
|
83
|
+
HQ_OVERVIEW_REFRESH_ALL = "/businesses/{business_id}/overview/refresh-all"
|
|
84
|
+
HQ_AGENT_BRIEF = "/businesses/{business_id}/agent-brief"
|
|
80
85
|
PERSONAS = "/businesses/{business_id}/personas"
|
|
86
|
+
PERSONA = "/businesses/{business_id}/personas/{persona_id}"
|
|
81
87
|
PRODUCTS = "/businesses/{business_id}/products"
|
|
88
|
+
PRODUCT = "/businesses/{business_id}/products/{product_id}"
|
|
82
89
|
BUYER_INTENTS = "/businesses/{business_id}/buyer-intents"
|
|
90
|
+
BUYER_INTENT = "/businesses/{business_id}/buyer-intents/{intent_id}"
|
|
83
91
|
AGENTIC_READINESS = "/businesses/{business_id}/agentic-readiness"
|
|
84
92
|
TRUST_SIGNALS = "/businesses/{business_id}/trust-signals"
|
|
85
93
|
|
|
@@ -4,14 +4,14 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cited-mcp"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.5.0"
|
|
8
8
|
description = "MCP server for the Cited GEO platform"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "LicenseRef-Proprietary"
|
|
11
11
|
requires-python = ">=3.11"
|
|
12
12
|
authors = [{ name = "Cited", email = "support@youcited.com" }]
|
|
13
13
|
dependencies = [
|
|
14
|
-
"cited-core>=0.
|
|
14
|
+
"cited-core>=0.5.0",
|
|
15
15
|
"mcp>=1.27.0",
|
|
16
16
|
"PyJWT>=2.8.0",
|
|
17
17
|
"PyYAML>=6.0",
|
|
@@ -43,6 +43,18 @@ _SCALE_TOOLS: set[str] = {
|
|
|
43
43
|
"mark_action_done",
|
|
44
44
|
"dismiss_action",
|
|
45
45
|
"get_action_progress",
|
|
46
|
+
"set_profile_competitors",
|
|
47
|
+
"create_persona",
|
|
48
|
+
"update_persona",
|
|
49
|
+
"delete_persona",
|
|
50
|
+
"create_product",
|
|
51
|
+
"update_product",
|
|
52
|
+
"delete_product",
|
|
53
|
+
"create_buyer_intent",
|
|
54
|
+
"update_buyer_intent",
|
|
55
|
+
"delete_buyer_intent",
|
|
56
|
+
"recompute_health_scores",
|
|
57
|
+
"refresh_business_overview",
|
|
46
58
|
}
|
|
47
59
|
|
|
48
60
|
# Tools restricted to pro+ tier
|
|
@@ -54,6 +66,7 @@ _PRO_TOOLS: set[str] = {
|
|
|
54
66
|
"get_semantic_health",
|
|
55
67
|
"buyer_fit_query",
|
|
56
68
|
"get_business_hq",
|
|
69
|
+
"get_agent_brief",
|
|
57
70
|
"get_analytics_trends",
|
|
58
71
|
"get_analytics_dashboard",
|
|
59
72
|
"compare_audits",
|
|
@@ -156,6 +169,10 @@ _BASE_TOOLS: set[str] = {
|
|
|
156
169
|
"get_business",
|
|
157
170
|
"crawl_business",
|
|
158
171
|
"get_health_scores",
|
|
172
|
+
"list_profile_competitors",
|
|
173
|
+
"list_personas",
|
|
174
|
+
"list_products",
|
|
175
|
+
"list_buyer_intents",
|
|
159
176
|
"list_audit_templates",
|
|
160
177
|
"get_audit_template",
|
|
161
178
|
"start_audit",
|
|
@@ -21,6 +21,215 @@
|
|
|
21
21
|
# this file.
|
|
22
22
|
|
|
23
23
|
versions:
|
|
24
|
+
- version: "0.5.0"
|
|
25
|
+
released: "2026-05-11"
|
|
26
|
+
# Three new read-only list_* tools to enable persona/product/buyer-intent
|
|
27
|
+
# CRUD flows (agents need IDs before they can call update/delete), plus a
|
|
28
|
+
# significant parameter-schema expansion on update_business / create_business
|
|
29
|
+
# to cover the full canonical BusinessUpdate/CreateRequest field set. Also
|
|
30
|
+
# fixes a latent bug: update_business previously sent HTTP PUT against a
|
|
31
|
+
# backend PATCH route. Bumps minor (not patch) because update_business /
|
|
32
|
+
# create_business signature changes shift parameter ordering and clients
|
|
33
|
+
# diffing the fingerprint should pick this up as non-additive.
|
|
34
|
+
fingerprint: "5bef45100c53"
|
|
35
|
+
tools_added:
|
|
36
|
+
- name: list_personas
|
|
37
|
+
description: |
|
|
38
|
+
List buyer personas declared on the business profile. Required
|
|
39
|
+
before update_persona / delete_persona since the agent has no
|
|
40
|
+
other way to discover persona_ids.
|
|
41
|
+
- name: list_products
|
|
42
|
+
description: |
|
|
43
|
+
List products / service offerings declared on the business
|
|
44
|
+
profile. Required before update_product / delete_product to
|
|
45
|
+
discover product_ids.
|
|
46
|
+
- name: list_buyer_intents
|
|
47
|
+
description: |
|
|
48
|
+
List buyer-intent entries declared on the business profile.
|
|
49
|
+
Use before recommending a new create_buyer_intent to avoid
|
|
50
|
+
overlapping entries.
|
|
51
|
+
- name: update_buyer_intent
|
|
52
|
+
description: |
|
|
53
|
+
Update a buyer-intent entry (question, intent_type, priority,
|
|
54
|
+
is_answered, answering_page_url — all optional). Closes the
|
|
55
|
+
persona/product CRUD symmetry. Requires the cited backend with
|
|
56
|
+
PATCH /businesses/{id}/buyer-intents/{intent_id} (added in
|
|
57
|
+
companion backend PR).
|
|
58
|
+
- name: delete_buyer_intent
|
|
59
|
+
description: |
|
|
60
|
+
Delete a buyer intent. Confirm with the user before calling —
|
|
61
|
+
there's no undo. Requires the cited backend with
|
|
62
|
+
DELETE /businesses/{id}/buyer-intents/{intent_id}.
|
|
63
|
+
tools_changed:
|
|
64
|
+
- name: update_business
|
|
65
|
+
change_summary: |
|
|
66
|
+
Parameter set expanded from 4 fields (name, website, description,
|
|
67
|
+
industry) to the full BusinessUpdateRequest schema: adds
|
|
68
|
+
one_line_description, primary_customer, problem_solved,
|
|
69
|
+
offering_type, primary_market, service_areas,
|
|
70
|
+
headquarters_country, goals, discovery_channels,
|
|
71
|
+
success_definition, plus primary-location fields (address, city,
|
|
72
|
+
region, country). All new params are optional and keyword-only.
|
|
73
|
+
Also fixes a method bug: now sends PATCH (was PUT) to match the
|
|
74
|
+
backend @router.patch route.
|
|
75
|
+
- name: create_business
|
|
76
|
+
change_summary: |
|
|
77
|
+
Parameter set expanded to the full BusinessCreateRequest schema:
|
|
78
|
+
description is now optional (server composes from structured
|
|
79
|
+
fields if omitted); adds one_line_description, primary_customer,
|
|
80
|
+
problem_solved, offering_type, primary_market, service_areas,
|
|
81
|
+
headquarters_country, goals, discovery_channels,
|
|
82
|
+
success_definition. Existing 4-field callers unaffected
|
|
83
|
+
(description was already accepted; making it optional is
|
|
84
|
+
backward-compatible).
|
|
85
|
+
|
|
86
|
+
- version: "0.4.0"
|
|
87
|
+
released: "2026-05-08"
|
|
88
|
+
# 12 new tools + docstring/parameter-schema edits on 4 existing tools —
|
|
89
|
+
# significant surface expansion, so the minor version bumps to 0.4.0
|
|
90
|
+
# to signal a non-additive-only release for clients that diff the
|
|
91
|
+
# fingerprint.
|
|
92
|
+
fingerprint: "8197f97dcd06"
|
|
93
|
+
tools_added:
|
|
94
|
+
- name: get_agent_brief
|
|
95
|
+
description: |
|
|
96
|
+
Single-call composite "what should I focus on right now?" —
|
|
97
|
+
top priority actions, quick wins, failing deterministic checks,
|
|
98
|
+
and recent citation-rate movement. Designed to replace
|
|
99
|
+
chained get_business_hq + get_quick_wins + check_status calls
|
|
100
|
+
in opening-turn agent flows.
|
|
101
|
+
- name: list_profile_competitors
|
|
102
|
+
description: |
|
|
103
|
+
List the user-declared competitors on a business profile.
|
|
104
|
+
These bypass third-party domain filtering and rank ahead of
|
|
105
|
+
citation-only picks in head-to-head comparisons.
|
|
106
|
+
- name: set_profile_competitors
|
|
107
|
+
description: |
|
|
108
|
+
Replace the full list of profile competitors (max 10).
|
|
109
|
+
Pass [{name, website}] entries; PUT replaces. Use when the
|
|
110
|
+
user reports an obviously-relevant rival missing from H2H.
|
|
111
|
+
- name: recompute_health_scores
|
|
112
|
+
description: |
|
|
113
|
+
Force a fresh recomputation of business health scores after
|
|
114
|
+
profile/HQ edits — no crawl, no audit, just re-derive from
|
|
115
|
+
existing data.
|
|
116
|
+
- name: refresh_business_overview
|
|
117
|
+
description: |
|
|
118
|
+
Refresh cached audit / recommendation overview projections
|
|
119
|
+
for a business. scope ∈ {audit, recommendations, all}.
|
|
120
|
+
- name: create_persona
|
|
121
|
+
description: Create a target buyer persona on a business.
|
|
122
|
+
- name: update_persona
|
|
123
|
+
description: Update a persona (partial — only changed fields).
|
|
124
|
+
- name: delete_persona
|
|
125
|
+
description: Delete a persona.
|
|
126
|
+
- name: create_product
|
|
127
|
+
description: Create a product/service offering on a business.
|
|
128
|
+
- name: update_product
|
|
129
|
+
description: Update a product (partial).
|
|
130
|
+
- name: delete_product
|
|
131
|
+
description: Delete a product.
|
|
132
|
+
- name: create_buyer_intent
|
|
133
|
+
description: |
|
|
134
|
+
Create a buyer-intent entry tying personas to products
|
|
135
|
+
through specific decision moments — drives audit question
|
|
136
|
+
generation and per-intent coverage scoring.
|
|
137
|
+
tools_changed:
|
|
138
|
+
- name: get_business_hq
|
|
139
|
+
change_summary: |
|
|
140
|
+
New include flags ``include_agentic_readiness`` and
|
|
141
|
+
``include_trust_signals`` add the agentic-readiness summary
|
|
142
|
+
and trust-signal evidence to the dashboard payload. Existing
|
|
143
|
+
callers are unaffected — both default to false.
|
|
144
|
+
- name: get_competitive_comparison
|
|
145
|
+
change_summary: |
|
|
146
|
+
Docstring now describes the new ``analysis_status`` and
|
|
147
|
+
``last_analysis_run_at`` freshness fields on the response
|
|
148
|
+
(added in cited backend commit 2c716be). Tool behavior is
|
|
149
|
+
unchanged — these were already passed through; the docstring
|
|
150
|
+
was previously silent about them.
|
|
151
|
+
- name: get_recommendation_check_status
|
|
152
|
+
change_summary: |
|
|
153
|
+
Updated for Validation Engine Tier 4: now runs 72
|
|
154
|
+
deterministic checks (was 62). New checks fill
|
|
155
|
+
monitoring_adaptation and original_research domains
|
|
156
|
+
(knowledge_graph_linkage, aggregate_rating_present,
|
|
157
|
+
author_bio_on_blog_posts, sitemap_lastmod_freshness,
|
|
158
|
+
outbound_authority_citations, hreflang_and_lang_consistency,
|
|
159
|
+
well_known_agent_discovery). Response shape unchanged.
|
|
160
|
+
- name: crawl_business
|
|
161
|
+
change_summary: |
|
|
162
|
+
Docstring now notes the post-crawl auto-fill side effect:
|
|
163
|
+
empty business-profile fields (description, founding year,
|
|
164
|
+
NAICS, sameAs links) are populated from JSON-LD / meta tags
|
|
165
|
+
found on the homepage. User-supplied values are never
|
|
166
|
+
overwritten. (cited backend CIT-148.)
|
|
167
|
+
tools_removed: []
|
|
168
|
+
behavior_changed:
|
|
169
|
+
- area: plan_gating
|
|
170
|
+
change_summary: |
|
|
171
|
+
Tier assignments for the new tools:
|
|
172
|
+
- base (all tiers): ``list_profile_competitors``
|
|
173
|
+
- scale: ``set_profile_competitors``,
|
|
174
|
+
``create/update/delete_persona``,
|
|
175
|
+
``create/update/delete_product``,
|
|
176
|
+
``create_buyer_intent``,
|
|
177
|
+
``recompute_health_scores``,
|
|
178
|
+
``refresh_business_overview``
|
|
179
|
+
- pro: ``get_agent_brief`` (matches the ``get_business_hq``
|
|
180
|
+
tier — same composite-dashboard semantics).
|
|
181
|
+
|
|
182
|
+
- version: "0.3.15"
|
|
183
|
+
released: "2026-05-05"
|
|
184
|
+
# Fingerprint unchanged from 0.3.14 image runtime — pure observability +
|
|
185
|
+
# logging-enrichment release; no tool surface change. (The 0.3.14 entry
|
|
186
|
+
# below pins defa3022aedb, which was the host-venv compute at release
|
|
187
|
+
# prep — differing from the deployed image's 1c4fed943fff. Future
|
|
188
|
+
# entries should pin runtime fingerprints; this collision is benign
|
|
189
|
+
# because there's nothing in the surface for clients to act on.)
|
|
190
|
+
fingerprint: "1c4fed943fff"
|
|
191
|
+
tools_added: []
|
|
192
|
+
tools_changed: []
|
|
193
|
+
tools_removed: []
|
|
194
|
+
behavior_changed:
|
|
195
|
+
- area: structured_logging
|
|
196
|
+
change_summary: |
|
|
197
|
+
Every ``tool_call`` log line now carries:
|
|
198
|
+
- ``server_version`` and ``tools_fingerprint`` (so log entries
|
|
199
|
+
self-identify which build emitted them)
|
|
200
|
+
- ``deployment_id`` from ``CITED_DEPLOYMENT_ID`` env var
|
|
201
|
+
(format ``<env>-<short-sha>-<unix-ts>``, set by the deploy
|
|
202
|
+
script — uniquely identifies a single deploy attempt)
|
|
203
|
+
- ``client_id`` extracted from the OAuth JWT (lets us tell
|
|
204
|
+
Claude Desktop traffic from Claude.ai traffic)
|
|
205
|
+
- ``resources`` map with ID-shaped kwargs (``business_id``,
|
|
206
|
+
``audit_id``, ``job_id``, ``source_id``, etc.) — enough to
|
|
207
|
+
correlate user activity with backend records, never raw
|
|
208
|
+
content like buyer profiles or audit descriptions.
|
|
209
|
+
On failures the line now also carries ``error_type`` and
|
|
210
|
+
``status_code`` pulled from the typed-error response, so the
|
|
211
|
+
dashboard can categorise failures without grepping messages.
|
|
212
|
+
- area: end_to_end_tracing
|
|
213
|
+
change_summary: |
|
|
214
|
+
The MCP now stamps ``X-Request-ID`` on every outgoing call to
|
|
215
|
+
the cited backend (matching the ``request_id`` already in the
|
|
216
|
+
tool_call log line). The backend can echo this to its own
|
|
217
|
+
access logs to produce end-to-end traces — when a customer
|
|
218
|
+
reports "buyer_fit_query 500 with request_id abc123" the
|
|
219
|
+
owner can find both MCP-side and backend-side log entries
|
|
220
|
+
for the same request.
|
|
221
|
+
- area: deploy_pipeline
|
|
222
|
+
change_summary: |
|
|
223
|
+
Companion ``deploy-mcp.sh`` improvements (cited-mcp-infra
|
|
224
|
+
repo, commit 5542667): split log groups (prod writes to
|
|
225
|
+
``/ecs/cited-mcp-prod`` instead of mixing into the dev
|
|
226
|
+
group), real stability check that fails the deploy when ECS
|
|
227
|
+
silently rolls back to a prior task definition (the failure
|
|
228
|
+
mode that hid today's IAM-blocked prod deploy), and
|
|
229
|
+
deployment_id stamping. CloudWatch dashboard ``cited-mcp``
|
|
230
|
+
+ saved Insights queries (``cited-mcp/usage/per-user`` etc.)
|
|
231
|
+
+ failure-burst alarms also added.
|
|
232
|
+
|
|
24
233
|
- version: "0.3.14"
|
|
25
234
|
released: "2026-05-05"
|
|
26
235
|
fingerprint: "defa3022aedb"
|