carto-md 2.0.9 → 2.1.1
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.
- package/CHANGELOG.md +135 -0
- package/CONTRIBUTING.md +27 -20
- package/README.md +177 -448
- package/docs/anci/v0.1-DRAFT.md +132 -2
- package/docs/api/README.md +124 -0
- package/docs/api/did_we_discuss_this.md +36 -0
- package/docs/api/dismiss_gap.md +39 -0
- package/docs/api/dismiss_suggestion.md +34 -0
- package/docs/api/explain_change_in_natural_language.md +33 -0
- package/docs/api/find_consumers_of_api.md +36 -0
- package/docs/api/get_action_patterns.md +34 -0
- package/docs/api/get_active_drift.md +32 -0
- package/docs/api/get_active_suggestions.md +25 -0
- package/docs/api/get_ai_cost_attribution.md +32 -0
- package/docs/api/get_arch_events.md +44 -0
- package/docs/api/get_architectural_drift.md +39 -0
- package/docs/api/get_architecture.md +25 -0
- package/docs/api/get_blast_radius.md +36 -0
- package/docs/api/get_canonical_pattern.md +41 -0
- package/docs/api/get_change_plan.md +34 -0
- package/docs/api/get_change_velocity.md +34 -0
- package/docs/api/get_churn_vs_blast_radius.md +34 -0
- package/docs/api/get_complexity_trend.md +41 -0
- package/docs/api/get_context.md +34 -0
- package/docs/api/get_conventions.md +34 -0
- package/docs/api/get_cross_domain.md +25 -0
- package/docs/api/get_cross_language_call_graph.md +25 -0
- package/docs/api/get_cross_repo_blast_radius.md +36 -0
- package/docs/api/get_cross_team_coupling.md +25 -0
- package/docs/api/get_data_flow.md +35 -0
- package/docs/api/get_dead_code_with_confidence.md +32 -0
- package/docs/api/get_decision_log.md +34 -0
- package/docs/api/get_dependency_surface.md +25 -0
- package/docs/api/get_domain.md +34 -0
- package/docs/api/get_domain_evolution.md +41 -0
- package/docs/api/get_domain_health.md +34 -0
- package/docs/api/get_domains_list.md +25 -0
- package/docs/api/get_drift_digest.md +32 -0
- package/docs/api/get_env_vars.md +32 -0
- package/docs/api/get_evolution_delta.md +36 -0
- package/docs/api/get_file_ownership.md +33 -0
- package/docs/api/get_file_receipts.md +34 -0
- package/docs/api/get_file_summary.md +34 -0
- package/docs/api/get_gaps.md +52 -0
- package/docs/api/get_high_impact_files.md +32 -0
- package/docs/api/get_hot_in_prod_no_tests.md +34 -0
- package/docs/api/get_hotspot_files.md +39 -0
- package/docs/api/get_iac_resources.md +25 -0
- package/docs/api/get_intent.md +25 -0
- package/docs/api/get_interface_contract.md +33 -0
- package/docs/api/get_intervention_history.md +34 -0
- package/docs/api/get_invariants.md +39 -0
- package/docs/api/get_llm_enrichment.md +33 -0
- package/docs/api/get_microservice_cut_points.md +32 -0
- package/docs/api/get_microservices_migration_cut_points.md +27 -0
- package/docs/api/get_minimal_context_for_intent.md +39 -0
- package/docs/api/get_models.md +32 -0
- package/docs/api/get_neighbors.md +41 -0
- package/docs/api/get_org_architecture.md +27 -0
- package/docs/api/get_org_domain_mapping.md +27 -0
- package/docs/api/get_pending_decisions.md +34 -0
- package/docs/api/get_predictive_risk.md +32 -0
- package/docs/api/get_progressive_disclosure_tree.md +25 -0
- package/docs/api/get_recent_decisions.md +39 -0
- package/docs/api/get_risk_weighted_blast_radius.md +32 -0
- package/docs/api/get_routes.md +25 -0
- package/docs/api/get_safety_checklist.md +33 -0
- package/docs/api/get_semantic_diff.md +34 -0
- package/docs/api/get_service_boundary_violations.md +27 -0
- package/docs/api/get_service_dependency_graph.md +27 -0
- package/docs/api/get_session_context.md +34 -0
- package/docs/api/get_similar_patterns.md +39 -0
- package/docs/api/get_stale_docs.md +25 -0
- package/docs/api/get_structure.md +25 -0
- package/docs/api/get_temporal_context.md +36 -0
- package/docs/api/get_test_coverage_map.md +25 -0
- package/docs/api/get_token_budget_report.md +36 -0
- package/docs/api/get_upgrade_risk.md +25 -0
- package/docs/api/get_working_memory.md +25 -0
- package/docs/api/history.md +78 -0
- package/docs/api/impact.md +56 -0
- package/docs/api/ingest_otlp_traces.md +34 -0
- package/docs/api/memory.md +70 -0
- package/docs/api/org.md +51 -0
- package/docs/api/patterns.md +63 -0
- package/docs/api/scaffold_for_intent.md +34 -0
- package/docs/api/search_routes.md +34 -0
- package/docs/api/set_intent.md +45 -0
- package/docs/api/simulate_change_impact.md +39 -0
- package/docs/api/validate_change.md +39 -0
- package/docs/api/validate_diff.md +39 -0
- package/docs/concepts/anci.md +87 -0
- package/docs/concepts/blast-radius.md +66 -0
- package/docs/concepts/domains.md +116 -0
- package/docs/concepts/import-graph.md +102 -0
- package/docs/concepts/mcp-integration.md +150 -0
- package/docs/guides/adding-feature-safely.md +101 -0
- package/docs/guides/ci-integration.md +175 -0
- package/docs/guides/monorepo-setup.md +121 -0
- package/docs/guides/onboarding-new-engineer.md +121 -0
- package/docs/guides/pre-merge-review.md +139 -0
- package/docs/migration/v1-to-v2.md +110 -0
- package/docs/quickstart.md +95 -0
- package/docs/scale.md +2 -2
- package/docs/screenshots/carto-supabase-blast-radius.png +0 -0
- package/docs/troubleshooting.md +180 -0
- package/package.json +11 -4
- package/scripts/gen-api-docs.js +202 -0
- package/src/acp/agent.js +83 -11
- package/src/acp/config.js +64 -0
- package/src/acp/persistence.js +146 -0
- package/src/acp/providers/anthropic.js +179 -27
- package/src/acp/providers/index.js +15 -2
- package/src/acp/providers/openai.js +164 -38
- package/src/acp/providers/sse.js +82 -0
- package/src/acp/safety.js +128 -0
- package/src/acp/session.js +73 -0
- package/src/adjacent/call-graph.js +170 -0
- package/src/adjacent/iac.js +167 -0
- package/src/adjacent/llm-enrich.js +35 -0
- package/src/adjacent/runtime.js +216 -0
- package/src/adjacent/semantic-diff.js +143 -0
- package/src/agents/domains.js +72 -24
- package/src/agents/scan-structure.js +1 -1
- package/src/ai/context-builder.js +215 -0
- package/src/ai/retrieval/lexical.js +122 -0
- package/src/ai/retrieval/rrf.js +121 -0
- package/src/ai/retrieval/semantic.js +35 -0
- package/src/ai/retrieval/structural.js +82 -0
- package/src/ai/tools.js +425 -0
- package/src/anci/consumer.js +83 -3
- package/src/anci/emit.js +20 -3
- package/src/anci/git-meta.js +171 -0
- package/src/anci/pack.js +288 -0
- package/src/anci/serialize.js +77 -6
- package/src/anci/staleness.js +161 -0
- package/src/bitmap/index.js +1 -1
- package/src/bitmap/tools.js +2 -2
- package/src/brain/conventions/index.js +299 -0
- package/src/brain/index.js +31 -0
- package/src/brain/invariants/index.js +306 -0
- package/src/brain/procedural/index.js +181 -0
- package/src/brain/suggestions/index.js +153 -0
- package/src/brain/working/index.js +170 -0
- package/src/cli/anci.js +27 -1
- package/src/cli/check.js +47 -1
- package/src/cli/diff.js +83 -0
- package/src/cli/doctor.js +339 -0
- package/src/cli/explain.js +61 -0
- package/src/cli/export.js +128 -0
- package/src/cli/index.js +120 -1
- package/src/cli/init.js +227 -6
- package/src/cli/load.js +125 -0
- package/src/cli/org.js +172 -0
- package/src/cli/pr-impact.js +59 -2
- package/src/cli/serve.js +1 -1
- package/src/cli/status.js +211 -0
- package/src/cli/sync.js +2 -2
- package/src/cli/temporal.js +188 -0
- package/src/cli/validate.js +201 -0
- package/src/cli/watch.js +4 -4
- package/src/cli/why.js +101 -0
- package/src/extractors/frameworks.js +236 -0
- package/src/extractors/imports.js +35 -10
- package/src/extractors/languages/dart.js +138 -0
- package/src/extractors/languages/go.js +11 -1
- package/src/extractors/languages/javascript.js +21 -7
- package/src/extractors/languages/kotlin.js +169 -0
- package/src/extractors/languages/php.js +195 -0
- package/src/extractors/languages/prisma.js +1 -1
- package/src/extractors/languages/python.js +12 -1
- package/src/extractors/languages/swift.js +140 -0
- package/src/extractors/languages/typescript.js +28 -51
- package/src/extractors/plugin-api.js +102 -0
- package/src/extractors/schemas.js +60 -0
- package/src/extractors/tree-sitter-parser.js +39 -0
- package/src/mcp/change-plan.js +131 -12
- package/src/mcp/files-without-tests.js +285 -0
- package/src/mcp/impact.js +119 -0
- package/src/mcp/middleware/index.js +451 -0
- package/src/mcp/server.js +2918 -0
- package/src/mcp/validate.js +1 -1
- package/src/org/detect.js +262 -0
- package/src/org/queries.js +144 -0
- package/src/org/store.js +173 -0
- package/src/org/sync.js +106 -0
- package/src/predictive/cut-points.js +83 -0
- package/src/predictive/drift-digest.js +88 -0
- package/src/predictive/ownership.js +145 -0
- package/src/predictive/risk-score.js +121 -0
- package/src/predictive/validate-change.js +55 -0
- package/src/rules/concepts/auth-middleware.md +111 -0
- package/src/rules/concepts/money-as-float.md +80 -0
- package/src/rules/engine.js +178 -0
- package/src/rules/intent.js +178 -0
- package/src/rules/registry.js +24 -0
- package/src/rules/rules/auth-missing-on-mutating-route.js +255 -0
- package/src/rules/rules/money-as-float.js +166 -0
- package/src/store/config-loader.js +77 -3
- package/src/store/sqlite-store.js +248 -7
- package/src/store/store-adapter.js +3 -3
- package/src/store/{sync-v2.js → sync.js} +122 -52
- package/src/temporal/backfill.js +211 -0
- package/src/temporal/delta.js +85 -0
- package/src/temporal/events.js +180 -0
- package/src/temporal/queries.js +358 -0
- package/src/temporal/snapshot.js +151 -0
- package/src/temporal/store.js +400 -0
- package/src/mcp/server-v2.js +0 -986
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `get_domains_list`
|
|
2
|
+
|
|
3
|
+
Get all detected domains with file counts, route counts, and model counts.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {},
|
|
11
|
+
"required": []
|
|
12
|
+
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Required arguments
|
|
16
|
+
|
|
17
|
+
_None._
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
_None._
|
|
22
|
+
|
|
23
|
+
## See also
|
|
24
|
+
|
|
25
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# `get_drift_digest`
|
|
2
|
+
|
|
3
|
+
Weekly architectural digest: domain drift, hotspots, events, predicted-risk top 10. CLI-renderable markdown.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"time_range": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Window like \"7d\", \"30d\" (default \"7d\")."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": []
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Required arguments
|
|
21
|
+
|
|
22
|
+
_None._
|
|
23
|
+
|
|
24
|
+
## Properties
|
|
25
|
+
|
|
26
|
+
| Name | Type | Description |
|
|
27
|
+
|------|------|-------------|
|
|
28
|
+
| `time_range` | string | Window like "7d", "30d" (default "7d"). |
|
|
29
|
+
|
|
30
|
+
## See also
|
|
31
|
+
|
|
32
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# `get_env_vars`
|
|
2
|
+
|
|
3
|
+
Get all environment variables used in this project, with which files use them and which domains they belong to.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"domain": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Optional domain filter e.g. AUTH, PAYMENTS"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": []
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Required arguments
|
|
21
|
+
|
|
22
|
+
_None._
|
|
23
|
+
|
|
24
|
+
## Properties
|
|
25
|
+
|
|
26
|
+
| Name | Type | Description |
|
|
27
|
+
|------|------|-------------|
|
|
28
|
+
| `domain` | string | Optional domain filter e.g. AUTH, PAYMENTS |
|
|
29
|
+
|
|
30
|
+
## See also
|
|
31
|
+
|
|
32
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# `get_evolution_delta`
|
|
2
|
+
|
|
3
|
+
Architectural delta across a time window (requires temporal store). Returns per-domain before/after file counts + event count.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"domain": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
"time_range": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Window like \"30d\", \"90d\" (default \"30d\")."
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"required": []
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Required arguments
|
|
24
|
+
|
|
25
|
+
_None._
|
|
26
|
+
|
|
27
|
+
## Properties
|
|
28
|
+
|
|
29
|
+
| Name | Type | Description |
|
|
30
|
+
|------|------|-------------|
|
|
31
|
+
| `domain` | string | |
|
|
32
|
+
| `time_range` | string | Window like "30d", "90d" (default "30d"). |
|
|
33
|
+
|
|
34
|
+
## See also
|
|
35
|
+
|
|
36
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# `get_file_ownership`
|
|
2
|
+
|
|
3
|
+
Implicit ownership detection via `git blame`. Returns top author + per-author line counts. Fails soft if git is unavailable.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"file": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"file"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Required arguments
|
|
22
|
+
|
|
23
|
+
- `file`
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Name | Type | Description |
|
|
28
|
+
|------|------|-------------|
|
|
29
|
+
| `file` | string | |
|
|
30
|
+
|
|
31
|
+
## See also
|
|
32
|
+
|
|
33
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# `get_file_receipts`
|
|
2
|
+
|
|
3
|
+
For one file, returns receipts — everything Carto knows: change history, blast radius, prior interventions and decisions touching this file, active gaps on this file, cross-domain deps. Read-only. Use before proposing a change to a file to understand what depends on it and what has been said about it before.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"file": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Relative file path from project root."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": [
|
|
17
|
+
"file"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Required arguments
|
|
23
|
+
|
|
24
|
+
- `file`
|
|
25
|
+
|
|
26
|
+
## Properties
|
|
27
|
+
|
|
28
|
+
| Name | Type | Description |
|
|
29
|
+
|------|------|-------------|
|
|
30
|
+
| `file` | string | Relative file path from project root. |
|
|
31
|
+
|
|
32
|
+
## See also
|
|
33
|
+
|
|
34
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# `get_file_summary`
|
|
2
|
+
|
|
3
|
+
Get a 3-sentence description of what a file does, its role in the project, and its key dependencies and dependents.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"file": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Relative file path from project root"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": [
|
|
17
|
+
"file"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Required arguments
|
|
23
|
+
|
|
24
|
+
- `file`
|
|
25
|
+
|
|
26
|
+
## Properties
|
|
27
|
+
|
|
28
|
+
| Name | Type | Description |
|
|
29
|
+
|------|------|-------------|
|
|
30
|
+
| `file` | string | Relative file path from project root |
|
|
31
|
+
|
|
32
|
+
## See also
|
|
33
|
+
|
|
34
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# `get_gaps`
|
|
2
|
+
|
|
3
|
+
The current gap list for this repo — grounded findings from the rule engine ("SHOULD − IS"). Each gap ties to a file + rule_id + evidence. Ranked HIGH > MEDIUM > LOW. Dismissed gaps are excluded by default. Call this when the user asks "what should I fix?", when you enter a new repo for the first time, or before recommending changes to a file. If the response is empty and the project is unsupported, tell the user the rule engine only ships for Next.js + Supabase SaaS-with-auth today.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"rule_id": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Optional rule filter, e.g. \"money-as-float\"."
|
|
14
|
+
},
|
|
15
|
+
"file": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Optional file filter."
|
|
18
|
+
},
|
|
19
|
+
"severity": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Optional severity filter: HIGH | MEDIUM | LOW."
|
|
22
|
+
},
|
|
23
|
+
"include_dismissed": {
|
|
24
|
+
"type": "boolean",
|
|
25
|
+
"description": "Include gaps the user has already dismissed (default false)."
|
|
26
|
+
},
|
|
27
|
+
"refresh": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"description": "Re-run the rule engine before returning (default false — uses last cached run)."
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": []
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Required arguments
|
|
37
|
+
|
|
38
|
+
_None._
|
|
39
|
+
|
|
40
|
+
## Properties
|
|
41
|
+
|
|
42
|
+
| Name | Type | Description |
|
|
43
|
+
|------|------|-------------|
|
|
44
|
+
| `rule_id` | string | Optional rule filter, e.g. "money-as-float". |
|
|
45
|
+
| `file` | string | Optional file filter. |
|
|
46
|
+
| `severity` | string | Optional severity filter: HIGH \| MEDIUM \| LOW. |
|
|
47
|
+
| `include_dismissed` | boolean | Include gaps the user has already dismissed (default false). |
|
|
48
|
+
| `refresh` | boolean | Re-run the rule engine before returning (default false — uses last cached run). |
|
|
49
|
+
|
|
50
|
+
## See also
|
|
51
|
+
|
|
52
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# `get_high_impact_files`
|
|
2
|
+
|
|
3
|
+
Get the files with the highest blast radius — most other files depend on them. Changing these files is highest risk.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"limit": {
|
|
12
|
+
"type": "number",
|
|
13
|
+
"description": "Number of files to return (default 10)"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": []
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Required arguments
|
|
21
|
+
|
|
22
|
+
_None._
|
|
23
|
+
|
|
24
|
+
## Properties
|
|
25
|
+
|
|
26
|
+
| Name | Type | Description |
|
|
27
|
+
|------|------|-------------|
|
|
28
|
+
| `limit` | number | Number of files to return (default 10) |
|
|
29
|
+
|
|
30
|
+
## See also
|
|
31
|
+
|
|
32
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# `get_hot_in_prod_no_tests`
|
|
2
|
+
|
|
3
|
+
Files whose routes receive >0 runtime hits but have no detected test file. The "ship a test here first" list.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"otlp_path": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Path to OTLP file (required)."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": [
|
|
17
|
+
"otlp_path"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Required arguments
|
|
23
|
+
|
|
24
|
+
- `otlp_path`
|
|
25
|
+
|
|
26
|
+
## Properties
|
|
27
|
+
|
|
28
|
+
| Name | Type | Description |
|
|
29
|
+
|------|------|-------------|
|
|
30
|
+
| `otlp_path` | string | Path to OTLP file (required). |
|
|
31
|
+
|
|
32
|
+
## See also
|
|
33
|
+
|
|
34
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# `get_hotspot_files`
|
|
2
|
+
|
|
3
|
+
> ⚠️ **Deprecated (CF-7).** Use `history(view="hotspots")` instead. This name still resolves and returns byte-identical output for a deprecation window, but is no longer listed by default and emits a one-line notice.
|
|
4
|
+
|
|
5
|
+
Top files by churn × blast_radius score over a window. The CodeHealth heuristic: high-churn files in high-blast-radius positions are where bugs cluster.
|
|
6
|
+
|
|
7
|
+
## Input schema
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"time_range": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Window like \"30d\", \"90d\" (default \"90d\")."
|
|
16
|
+
},
|
|
17
|
+
"limit": {
|
|
18
|
+
"type": "number",
|
|
19
|
+
"description": "Max rows (default 20)."
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": []
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Required arguments
|
|
27
|
+
|
|
28
|
+
_None._
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
| Name | Type | Description |
|
|
33
|
+
|------|------|-------------|
|
|
34
|
+
| `time_range` | string | Window like "30d", "90d" (default "90d"). |
|
|
35
|
+
| `limit` | number | Max rows (default 20). |
|
|
36
|
+
|
|
37
|
+
## See also
|
|
38
|
+
|
|
39
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `get_iac_resources`
|
|
2
|
+
|
|
3
|
+
Surface Terraform / Helm / Pulumi / AWS CDK resources discovered in the repo. Returns kind, name, file, dependencies.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {},
|
|
11
|
+
"required": []
|
|
12
|
+
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Required arguments
|
|
16
|
+
|
|
17
|
+
_None._
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
_None._
|
|
22
|
+
|
|
23
|
+
## See also
|
|
24
|
+
|
|
25
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `get_intent`
|
|
2
|
+
|
|
3
|
+
Return the currently stored intent — product type, stack, notes, updated_at. Use this at the start of a session to know which rules will apply to this project.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {},
|
|
11
|
+
"required": []
|
|
12
|
+
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Required arguments
|
|
16
|
+
|
|
17
|
+
_None._
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
_None._
|
|
22
|
+
|
|
23
|
+
## See also
|
|
24
|
+
|
|
25
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# `get_interface_contract`
|
|
2
|
+
|
|
3
|
+
Exported symbols + models + routes the file exposes. Use to understand a module's public API before consuming it.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"file": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"file"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Required arguments
|
|
22
|
+
|
|
23
|
+
- `file`
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Name | Type | Description |
|
|
28
|
+
|------|------|-------------|
|
|
29
|
+
| `file` | string | |
|
|
30
|
+
|
|
31
|
+
## See also
|
|
32
|
+
|
|
33
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# `get_intervention_history`
|
|
2
|
+
|
|
3
|
+
> ⚠️ **Deprecated (CF-7).** Use `memory(kind="interventions")` instead. This name still resolves and returns byte-identical output for a deprecation window, but is no longer listed by default and emits a one-line notice.
|
|
4
|
+
|
|
5
|
+
List interventions (Carto-issued violations and suggestions) optionally filtered by file. Use to see prior warnings on a file before editing it.
|
|
6
|
+
|
|
7
|
+
## Input schema
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"file": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Optional file filter (relative path from project root)."
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": []
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Required arguments
|
|
23
|
+
|
|
24
|
+
_None._
|
|
25
|
+
|
|
26
|
+
## Properties
|
|
27
|
+
|
|
28
|
+
| Name | Type | Description |
|
|
29
|
+
|------|------|-------------|
|
|
30
|
+
| `file` | string | Optional file filter (relative path from project root). |
|
|
31
|
+
|
|
32
|
+
## See also
|
|
33
|
+
|
|
34
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# `get_invariants`
|
|
2
|
+
|
|
3
|
+
> ⚠️ **Deprecated (CF-7).** Use `patterns(kind="invariants")` instead. This name still resolves and returns byte-identical output for a deprecation window, but is no longer listed by default and emits a one-line notice.
|
|
4
|
+
|
|
5
|
+
Architectural invariants mined from the import graph: "Domain X never imports from Y", "Files in Z always export N symbols", etc. Confidence-scored.
|
|
6
|
+
|
|
7
|
+
## Input schema
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"domain": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Optional domain filter."
|
|
16
|
+
},
|
|
17
|
+
"threshold": {
|
|
18
|
+
"type": "number",
|
|
19
|
+
"description": "Confidence threshold 0-1 (default 0.85)."
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": []
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Required arguments
|
|
27
|
+
|
|
28
|
+
_None._
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
| Name | Type | Description |
|
|
33
|
+
|------|------|-------------|
|
|
34
|
+
| `domain` | string | Optional domain filter. |
|
|
35
|
+
| `threshold` | number | Confidence threshold 0-1 (default 0.85). |
|
|
36
|
+
|
|
37
|
+
## See also
|
|
38
|
+
|
|
39
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# `get_llm_enrichment`
|
|
2
|
+
|
|
3
|
+
Per-node summary via a local LLM. Opt-in only; returns disabled stub until `ai.llm` is wired in carto.config.json.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"file": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"file"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Required arguments
|
|
22
|
+
|
|
23
|
+
- `file`
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Name | Type | Description |
|
|
28
|
+
|------|------|-------------|
|
|
29
|
+
| `file` | string | |
|
|
30
|
+
|
|
31
|
+
## See also
|
|
32
|
+
|
|
33
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# `get_microservice_cut_points`
|
|
2
|
+
|
|
3
|
+
Natural microservice cut-points: domains with high cohesion (intra-edges) AND low external coupling. Use to plan extraction-style refactors.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"threshold": {
|
|
12
|
+
"type": "number",
|
|
13
|
+
"description": "Cohesion threshold 0-1 (default 0.7)."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": []
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Required arguments
|
|
21
|
+
|
|
22
|
+
_None._
|
|
23
|
+
|
|
24
|
+
## Properties
|
|
25
|
+
|
|
26
|
+
| Name | Type | Description |
|
|
27
|
+
|------|------|-------------|
|
|
28
|
+
| `threshold` | number | Cohesion threshold 0-1 (default 0.7). |
|
|
29
|
+
|
|
30
|
+
## See also
|
|
31
|
+
|
|
32
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# `get_microservices_migration_cut_points`
|
|
2
|
+
|
|
3
|
+
> ⚠️ **Deprecated (CF-7).** Use `org(view="migration")` instead. This name still resolves and returns byte-identical output for a deprecation window, but is no longer listed by default and emits a one-line notice.
|
|
4
|
+
|
|
5
|
+
Suggested microservices extraction order. Repos with high stability (more incoming than outgoing edges) extract first.
|
|
6
|
+
|
|
7
|
+
## Input schema
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {},
|
|
13
|
+
"required": []
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Required arguments
|
|
18
|
+
|
|
19
|
+
_None._
|
|
20
|
+
|
|
21
|
+
## Properties
|
|
22
|
+
|
|
23
|
+
_None._
|
|
24
|
+
|
|
25
|
+
## See also
|
|
26
|
+
|
|
27
|
+
- [Index of all MCP tools](./README.md)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# `get_minimal_context_for_intent`
|
|
2
|
+
|
|
3
|
+
Token-budgeted context picker. Given a natural-language intent + a budget (default 4000 tokens), returns the minimum file set needed via hybrid retrieval (structural + lexical + semantic) with RRF fusion and high-blast / same-domain / recent-changes boosts. Reports per-file token cost.
|
|
4
|
+
|
|
5
|
+
## Input schema
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"intent": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Natural-language description of the change."
|
|
14
|
+
},
|
|
15
|
+
"budget_tokens": {
|
|
16
|
+
"type": "number",
|
|
17
|
+
"description": "Token budget (default 4000)."
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"required": [
|
|
21
|
+
"intent"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Required arguments
|
|
27
|
+
|
|
28
|
+
- `intent`
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
| Name | Type | Description |
|
|
33
|
+
|------|------|-------------|
|
|
34
|
+
| `intent` | string | Natural-language description of the change. |
|
|
35
|
+
| `budget_tokens` | number | Token budget (default 4000). |
|
|
36
|
+
|
|
37
|
+
## See also
|
|
38
|
+
|
|
39
|
+
- [Index of all MCP tools](./README.md)
|