@mycodemap/mycodemap 0.5.2-beta.1 → 2.0.0
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 +32 -0
- package/README.md +138 -854
- package/README.zh-CN.md +1096 -0
- package/dist/cli/commands/analyze-options.d.ts.map +1 -1
- package/dist/cli/commands/analyze-options.js +8 -0
- package/dist/cli/commands/analyze-options.js.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +60 -41
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/benchmark.d.ts +8 -0
- package/dist/cli/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/commands/benchmark.js +150 -0
- package/dist/cli/commands/benchmark.js.map +1 -0
- package/dist/cli/commands/deps.d.ts +2 -1
- package/dist/cli/commands/deps.d.ts.map +1 -1
- package/dist/cli/commands/deps.js +107 -78
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +34 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -34
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/publish-status.d.ts +31 -0
- package/dist/cli/commands/publish-status.d.ts.map +1 -0
- package/dist/cli/commands/publish-status.js +101 -0
- package/dist/cli/commands/publish-status.js.map +1 -0
- package/dist/cli/commands/query.d.ts +1 -0
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +123 -140
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/readiness-gate.d.ts +25 -0
- package/dist/cli/commands/readiness-gate.d.ts.map +1 -0
- package/dist/cli/commands/readiness-gate.js +197 -0
- package/dist/cli/commands/readiness-gate.js.map +1 -0
- package/dist/cli/commands/ship/checker.d.ts +4 -9
- package/dist/cli/commands/ship/checker.d.ts.map +1 -1
- package/dist/cli/commands/ship/checker.js +60 -22
- package/dist/cli/commands/ship/checker.js.map +1 -1
- package/dist/cli/commands/ship/monitor.d.ts +6 -1
- package/dist/cli/commands/ship/monitor.d.ts.map +1 -1
- package/dist/cli/commands/ship/monitor.js +223 -46
- package/dist/cli/commands/ship/monitor.js.map +1 -1
- package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
- package/dist/cli/commands/ship/pipeline.js +14 -5
- package/dist/cli/commands/ship/pipeline.js.map +1 -1
- package/dist/cli/commands/ship/rules/quality-rules.d.ts +12 -8
- package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -1
- package/dist/cli/commands/ship/rules/quality-rules.js +49 -34
- package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -1
- package/dist/cli/config-loader.js +1 -1
- package/dist/cli/config-loader.js.map +1 -1
- package/dist/cli/doctor/check-agent.d.ts +3 -0
- package/dist/cli/doctor/check-agent.d.ts.map +1 -0
- package/dist/cli/doctor/check-agent.js +60 -0
- package/dist/cli/doctor/check-agent.js.map +1 -0
- package/dist/cli/doctor/check-ghost-commands.d.ts +3 -0
- package/dist/cli/doctor/check-ghost-commands.d.ts.map +1 -0
- package/dist/cli/doctor/check-ghost-commands.js +86 -0
- package/dist/cli/doctor/check-ghost-commands.js.map +1 -0
- package/dist/cli/doctor/check-native-deps.d.ts +3 -0
- package/dist/cli/doctor/check-native-deps.d.ts.map +1 -0
- package/dist/cli/doctor/check-native-deps.js +54 -0
- package/dist/cli/doctor/check-native-deps.js.map +1 -0
- package/dist/cli/doctor/check-workspace-drift.d.ts +3 -0
- package/dist/cli/doctor/check-workspace-drift.d.ts.map +1 -0
- package/dist/cli/doctor/check-workspace-drift.js +83 -0
- package/dist/cli/doctor/check-workspace-drift.js.map +1 -0
- package/dist/cli/doctor/formatter.d.ts +20 -0
- package/dist/cli/doctor/formatter.d.ts.map +1 -0
- package/dist/cli/doctor/formatter.js +91 -0
- package/dist/cli/doctor/formatter.js.map +1 -0
- package/dist/cli/doctor/index.d.ts +8 -0
- package/dist/cli/doctor/index.d.ts.map +1 -0
- package/dist/cli/doctor/index.js +9 -0
- package/dist/cli/doctor/index.js.map +1 -0
- package/dist/cli/doctor/orchestrator.d.ts +3 -0
- package/dist/cli/doctor/orchestrator.d.ts.map +1 -0
- package/dist/cli/doctor/orchestrator.js +37 -0
- package/dist/cli/doctor/orchestrator.js.map +1 -0
- package/dist/cli/doctor/types.d.ts +19 -0
- package/dist/cli/doctor/types.d.ts.map +1 -0
- package/dist/cli/doctor/types.js +4 -0
- package/dist/cli/doctor/types.js.map +1 -0
- package/dist/cli/first-run-guide.d.ts.map +1 -1
- package/dist/cli/first-run-guide.js +10 -12
- package/dist/cli/first-run-guide.js.map +1 -1
- package/dist/cli/index.js +80 -21
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/hooks.d.ts +17 -0
- package/dist/cli/init/hooks.d.ts.map +1 -0
- package/dist/cli/init/hooks.js +220 -0
- package/dist/cli/init/hooks.js.map +1 -0
- package/dist/cli/init/receipt.d.ts +4 -0
- package/dist/cli/init/receipt.d.ts.map +1 -0
- package/dist/cli/init/receipt.js +117 -0
- package/dist/cli/init/receipt.js.map +1 -0
- package/dist/cli/init/reconciler.d.ts +44 -0
- package/dist/cli/init/reconciler.d.ts.map +1 -0
- package/dist/cli/init/reconciler.js +377 -0
- package/dist/cli/init/reconciler.js.map +1 -0
- package/dist/cli/init/rule-templates.d.ts +9 -0
- package/dist/cli/init/rule-templates.d.ts.map +1 -0
- package/dist/cli/init/rule-templates.js +105 -0
- package/dist/cli/init/rule-templates.js.map +1 -0
- package/dist/cli/init/rules.d.ts +13 -0
- package/dist/cli/init/rules.d.ts.map +1 -0
- package/dist/cli/init/rules.js +113 -0
- package/dist/cli/init/rules.js.map +1 -0
- package/dist/cli/interface-contract/commands/analyze.d.ts +3 -0
- package/dist/cli/interface-contract/commands/analyze.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/analyze.js +138 -0
- package/dist/cli/interface-contract/commands/analyze.js.map +1 -0
- package/dist/cli/interface-contract/commands/benchmark.d.ts +3 -0
- package/dist/cli/interface-contract/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/benchmark.js +107 -0
- package/dist/cli/interface-contract/commands/benchmark.js.map +1 -0
- package/dist/cli/interface-contract/commands/deps.d.ts +3 -0
- package/dist/cli/interface-contract/commands/deps.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/deps.js +129 -0
- package/dist/cli/interface-contract/commands/deps.js.map +1 -0
- package/dist/cli/interface-contract/commands/doctor.d.ts +3 -0
- package/dist/cli/interface-contract/commands/doctor.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/doctor.js +59 -0
- package/dist/cli/interface-contract/commands/doctor.js.map +1 -0
- package/dist/cli/interface-contract/commands/index.d.ts +9 -0
- package/dist/cli/interface-contract/commands/index.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/index.js +18 -0
- package/dist/cli/interface-contract/commands/index.js.map +1 -0
- package/dist/cli/interface-contract/commands/init.d.ts +3 -0
- package/dist/cli/interface-contract/commands/init.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/init.js +87 -0
- package/dist/cli/interface-contract/commands/init.js.map +1 -0
- package/dist/cli/interface-contract/commands/query.d.ts +3 -0
- package/dist/cli/interface-contract/commands/query.d.ts.map +1 -0
- package/dist/cli/interface-contract/commands/query.js +185 -0
- package/dist/cli/interface-contract/commands/query.js.map +1 -0
- package/dist/cli/interface-contract/index.d.ts +22 -0
- package/dist/cli/interface-contract/index.d.ts.map +1 -0
- package/dist/cli/interface-contract/index.js +41 -0
- package/dist/cli/interface-contract/index.js.map +1 -0
- package/dist/cli/interface-contract/schema.d.ts +30 -0
- package/dist/cli/interface-contract/schema.d.ts.map +1 -0
- package/dist/cli/interface-contract/schema.js +72 -0
- package/dist/cli/interface-contract/schema.js.map +1 -0
- package/dist/cli/interface-contract/types.d.ts +76 -0
- package/dist/cli/interface-contract/types.d.ts.map +1 -0
- package/dist/cli/interface-contract/types.js +4 -0
- package/dist/cli/interface-contract/types.js.map +1 -0
- package/dist/cli/output/apply-suggestion.d.ts +12 -0
- package/dist/cli/output/apply-suggestion.d.ts.map +1 -0
- package/dist/cli/output/apply-suggestion.js +29 -0
- package/dist/cli/output/apply-suggestion.js.map +1 -0
- package/dist/cli/output/error-codes.d.ts +22 -0
- package/dist/cli/output/error-codes.d.ts.map +1 -0
- package/dist/cli/output/error-codes.js +82 -0
- package/dist/cli/output/error-codes.js.map +1 -0
- package/dist/cli/output/errors.d.ts +14 -0
- package/dist/cli/output/errors.d.ts.map +1 -0
- package/dist/cli/output/errors.js +170 -0
- package/dist/cli/output/errors.js.map +1 -0
- package/dist/cli/output/index.d.ts +13 -0
- package/dist/cli/output/index.d.ts.map +1 -0
- package/dist/cli/output/index.js +11 -0
- package/dist/cli/output/index.js.map +1 -0
- package/dist/cli/output/mode.d.ts +12 -0
- package/dist/cli/output/mode.d.ts.map +1 -0
- package/dist/cli/output/mode.js +23 -0
- package/dist/cli/output/mode.js.map +1 -0
- package/dist/cli/output/progress.d.ts +9 -0
- package/dist/cli/output/progress.d.ts.map +1 -0
- package/dist/cli/output/progress.js +65 -0
- package/dist/cli/output/progress.js.map +1 -0
- package/dist/cli/output/render.d.ts +11 -0
- package/dist/cli/output/render.d.ts.map +1 -0
- package/dist/cli/output/render.js +18 -0
- package/dist/cli/output/render.js.map +1 -0
- package/dist/cli/output/types.d.ts +53 -0
- package/dist/cli/output/types.d.ts.map +1 -0
- package/dist/cli/output/types.js +14 -0
- package/dist/cli/output/types.js.map +1 -0
- package/dist/cli/output/wasm-fallback.d.ts +13 -0
- package/dist/cli/output/wasm-fallback.d.ts.map +1 -0
- package/dist/cli/output/wasm-fallback.js +92 -0
- package/dist/cli/output/wasm-fallback.js.map +1 -0
- package/dist/cli/paths.d.ts +4 -2
- package/dist/cli/paths.d.ts.map +1 -1
- package/dist/cli/paths.js +13 -5
- package/dist/cli/paths.js.map +1 -1
- package/dist/cli/tree-sitter-check.d.ts +6 -1
- package/dist/cli/tree-sitter-check.d.ts.map +1 -1
- package/dist/cli/tree-sitter-check.js +23 -1
- package/dist/cli/tree-sitter-check.js.map +1 -1
- package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts.map +1 -1
- package/dist/infrastructure/storage/adapters/SQLiteStorage.js +2 -2
- package/dist/infrastructure/storage/adapters/SQLiteStorage.js.map +1 -1
- package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts +23 -0
- package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts.map +1 -0
- package/dist/infrastructure/storage/adapters/sqlite-loader.js +210 -0
- package/dist/infrastructure/storage/adapters/sqlite-loader.js.map +1 -0
- package/dist/orchestrator/test-linker.d.ts.map +1 -1
- package/dist/orchestrator/test-linker.js +5 -36
- package/dist/orchestrator/test-linker.js.map +1 -1
- package/dist/orchestrator/types.d.ts +2 -0
- package/dist/orchestrator/types.d.ts.map +1 -1
- package/dist/orchestrator/types.js.map +1 -1
- package/dist/parser/implementations/tree-sitter-loader.d.ts +16 -0
- package/dist/parser/implementations/tree-sitter-loader.d.ts.map +1 -0
- package/dist/parser/implementations/tree-sitter-loader.js +105 -0
- package/dist/parser/implementations/tree-sitter-loader.js.map +1 -0
- package/dist/parser/implementations/tree-sitter-parser.d.ts +3 -0
- package/dist/parser/implementations/tree-sitter-parser.d.ts.map +1 -1
- package/dist/parser/implementations/tree-sitter-parser.js +8 -3
- package/dist/parser/implementations/tree-sitter-parser.js.map +1 -1
- package/dist/server/mcp/schema-adapter.d.ts +45 -0
- package/dist/server/mcp/schema-adapter.d.ts.map +1 -0
- package/dist/server/mcp/schema-adapter.js +290 -0
- package/dist/server/mcp/schema-adapter.js.map +1 -0
- package/dist/server/mcp/server.d.ts.map +1 -1
- package/dist/server/mcp/server.js +32 -2
- package/dist/server/mcp/server.js.map +1 -1
- package/docs/AI_ASSISTANT_SETUP.md +173 -14
- package/docs/README.md +40 -1
- package/docs/SETUP_GUIDE.md +23 -26
- package/docs/agents/domain.md +36 -0
- package/docs/agents/issue-tracker.md +22 -0
- package/docs/agents/triage-labels.md +15 -0
- package/docs/ai-guide/COMMANDS.md +125 -13
- package/docs/ai-guide/INTEGRATION.md +78 -11
- package/docs/ai-guide/OUTPUT.md +295 -2
- package/docs/ai-guide/PATTERNS.md +3 -3
- package/docs/ai-guide/PROMPTS.md +2 -2
- package/docs/ai-guide/QUICKSTART.md +41 -5
- package/docs/ai-guide/README.md +9 -9
- package/docs/archive/ideation/2026-04-15-executable-architecture-constitution-ideation-archive.md +70 -0
- package/docs/archive/ideation/2026-04-20-mycodemap-init-enhancements-ideation-archive.md +109 -0
- package/docs/archive/ideation/2026-04-22-harness-rules-entry-docs-optimization-ideation.md +102 -0
- package/docs/archive/ideation/2026-04-22-rules-claude-agents-optimization-ideation.md +107 -0
- package/docs/archive/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation-archive.md +54 -0
- package/docs/brainstorms/2026-04-22-rules-entry-docs-phase1-structure-consolidation-requirements.md +110 -0
- package/docs/brainstorms/999.1-mycodemap-init-enhancements-requirements.md +166 -0
- package/docs/exec-plans/README.md +3 -0
- package/docs/ideation/2026-04-15-executable-architecture-constitution-ideation.md +10 -22
- package/docs/ideation/2026-04-20-mycodemap-init-enhancements-ideation.md +51 -0
- package/docs/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation.md +114 -0
- package/docs/ideation/2026-04-29-ux-install-agent-experience-ideation.md +256 -0
- package/docs/lesson-learn/2026-04-19-prerelease-trusted-publishing-fix.md +119 -0
- package/docs/lesson-learn/image.png +0 -0
- package/docs/plans/2026-04-30-install-guide-and-repo-analyzer-design.md +394 -0
- package/docs/rules/README.md +5 -1
- package/docs/rules/architecture-guardrails.md +2 -1
- package/docs/rules/deployment.md +7 -0
- package/docs/rules/engineering-with-codex-openai.md +48 -9
- package/docs/rules/harness.md +106 -0
- package/docs/rules/pre-release-checklist.md +72 -33
- package/docs/rules/release.md +303 -0
- package/docs/rules/testing.md +70 -0
- package/docs/rules/validation.md +16 -7
- package/examples/claude/skills/mycodemap-repo-analyzer/SKILL.md +294 -0
- package/examples/claude/skills/mycodemap-repo-analyzer/references/analysis-guide.md +166 -0
- package/examples/claude/skills/mycodemap-repo-analyzer/references/module-analysis-guide.md +150 -0
- package/mycodemap.config.schema.json +1 -1
- package/package.json +9 -6
- package/scripts/hooks/templates/commit-msg +38 -0
- package/scripts/hooks/templates/pre-commit +224 -0
- package/scripts/pre-release-check.js +4 -4
- package/scripts/release.sh +1 -1
- package/scripts/sync-analyze-docs.js +2 -2
- package/scripts/validate-docs.js +395 -29
- package/docs/references/tmp.md +0 -527
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/cli/interface-contract/commands/query.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,eAqL3B,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// [META] since:2026-04-30 | owner:cli-team | stable:false
|
|
2
|
+
// [WHY] Interface contract for the `query` command family
|
|
3
|
+
export const queryContract = {
|
|
4
|
+
name: 'query',
|
|
5
|
+
description: '查询代码地图中的符号、模块、依赖信息',
|
|
6
|
+
args: [],
|
|
7
|
+
flags: [
|
|
8
|
+
{
|
|
9
|
+
name: 'symbol',
|
|
10
|
+
short: 's',
|
|
11
|
+
long: 'symbol',
|
|
12
|
+
description: '精确查询符号',
|
|
13
|
+
type: 'string',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'module',
|
|
17
|
+
short: 'm',
|
|
18
|
+
long: 'module',
|
|
19
|
+
description: '查询模块',
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'deps',
|
|
24
|
+
short: 'd',
|
|
25
|
+
long: 'deps',
|
|
26
|
+
description: '查询依赖',
|
|
27
|
+
type: 'string',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'search',
|
|
31
|
+
short: 'S',
|
|
32
|
+
long: 'search',
|
|
33
|
+
description: '模糊搜索',
|
|
34
|
+
type: 'string',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'limit',
|
|
38
|
+
short: 'l',
|
|
39
|
+
long: 'limit',
|
|
40
|
+
description: '限制结果数量',
|
|
41
|
+
type: 'number',
|
|
42
|
+
defaultValue: 50,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'json',
|
|
46
|
+
short: 'j',
|
|
47
|
+
long: 'json',
|
|
48
|
+
description: 'JSON 格式输出',
|
|
49
|
+
type: 'boolean',
|
|
50
|
+
defaultValue: false,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'structured',
|
|
54
|
+
long: 'structured',
|
|
55
|
+
description: '输出完全结构化的 JSON(不包含自然语言字符串,需要配合 --json 使用)',
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
defaultValue: false,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'verbose',
|
|
61
|
+
short: 'v',
|
|
62
|
+
long: 'verbose',
|
|
63
|
+
description: '显示性能指标',
|
|
64
|
+
type: 'boolean',
|
|
65
|
+
defaultValue: false,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'regex',
|
|
69
|
+
short: 'r',
|
|
70
|
+
long: 'regex',
|
|
71
|
+
description: '使用正则表达式搜索(仅适用于 -S/--search)',
|
|
72
|
+
type: 'boolean',
|
|
73
|
+
defaultValue: false,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'context',
|
|
77
|
+
short: 'c',
|
|
78
|
+
long: 'context',
|
|
79
|
+
description: '显示代码上下文行数',
|
|
80
|
+
type: 'number',
|
|
81
|
+
defaultValue: 0,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'case-sensitive',
|
|
85
|
+
long: 'case-sensitive',
|
|
86
|
+
description: '大小写敏感搜索(精确搜索默认开启)',
|
|
87
|
+
type: 'boolean',
|
|
88
|
+
defaultValue: false,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'include-references',
|
|
92
|
+
long: 'include-references',
|
|
93
|
+
description: '包含符号引用位置信息',
|
|
94
|
+
type: 'boolean',
|
|
95
|
+
defaultValue: false,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'deps-format',
|
|
99
|
+
long: 'deps-format',
|
|
100
|
+
description: '依赖查询输出格式 (default|detailed)',
|
|
101
|
+
type: 'string',
|
|
102
|
+
defaultValue: 'default',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'no-cache',
|
|
106
|
+
long: 'no-cache',
|
|
107
|
+
description: '禁用缓存,强制重新加载索引',
|
|
108
|
+
type: 'boolean',
|
|
109
|
+
defaultValue: false,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
outputShape: {
|
|
113
|
+
description: '查询结果',
|
|
114
|
+
type: 'object',
|
|
115
|
+
properties: [
|
|
116
|
+
{
|
|
117
|
+
name: 'type',
|
|
118
|
+
type: 'string',
|
|
119
|
+
description: '查询类型: symbol | module | deps | search',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'query',
|
|
123
|
+
type: 'string',
|
|
124
|
+
description: '实际执行的查询字符串',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'count',
|
|
128
|
+
type: 'number',
|
|
129
|
+
description: '结果数量',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'results',
|
|
133
|
+
type: 'array',
|
|
134
|
+
description: '结果条目列表',
|
|
135
|
+
items: {
|
|
136
|
+
name: 'resultItem',
|
|
137
|
+
type: 'object',
|
|
138
|
+
properties: [
|
|
139
|
+
{ name: 'name', type: 'string' },
|
|
140
|
+
{ name: 'path', type: 'string', nullable: true },
|
|
141
|
+
{ name: 'kind', type: 'string', nullable: true },
|
|
142
|
+
{ name: 'details', type: 'string', nullable: true },
|
|
143
|
+
{
|
|
144
|
+
name: 'location',
|
|
145
|
+
type: 'object',
|
|
146
|
+
nullable: true,
|
|
147
|
+
properties: [
|
|
148
|
+
{ name: 'file', type: 'string' },
|
|
149
|
+
{ name: 'line', type: 'number', nullable: true },
|
|
150
|
+
{ name: 'column', type: 'number', nullable: true },
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
{ name: 'isExported', type: 'boolean', nullable: true },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: 'metrics',
|
|
159
|
+
type: 'object',
|
|
160
|
+
description: '性能指标(verbose 模式输出)',
|
|
161
|
+
nullable: true,
|
|
162
|
+
properties: [
|
|
163
|
+
{ name: 'indexLoadTime', type: 'number' },
|
|
164
|
+
{ name: 'queryTime', type: 'number' },
|
|
165
|
+
{ name: 'totalTime', type: 'number' },
|
|
166
|
+
{ name: 'cacheHit', type: 'boolean' },
|
|
167
|
+
{ name: 'indexSize', type: 'number' },
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
errorCodes: [
|
|
173
|
+
{ code: 'INDEX_NOT_FOUND', description: '代码地图索引不存在,需先运行 generate' },
|
|
174
|
+
{ code: 'INVALID_QUERY', description: '查询参数无效或冲突' },
|
|
175
|
+
{ code: 'NO_RESULTS', description: '未找到匹配结果' },
|
|
176
|
+
{ code: 'CACHE_ERROR', description: '缓存读写失败' },
|
|
177
|
+
],
|
|
178
|
+
examples: [
|
|
179
|
+
'codemap query -s MyClass --json',
|
|
180
|
+
'codemap query -m src/index.ts -l 10',
|
|
181
|
+
'codemap query -S "router" --regex -j',
|
|
182
|
+
'codemap query -d lodash --deps-format detailed --json',
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/cli/interface-contract/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { InterfaceContract } from './types.js';
|
|
2
|
+
export type { ArgDef, CommandContract, ErrorCode, FlagDef, FlagType, InterfaceContract, OutputProperty, OutputShape, } from './types.js';
|
|
3
|
+
export { interfaceContractSchema, safeValidateInterfaceContract, validateInterfaceContract, } from './schema.js';
|
|
4
|
+
export { commandContracts, analyzeContract, queryContract, depsContract, doctorContract, benchmarkContract, initContract, } from './commands/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Build the full interface contract from the registered command contracts.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getFullContract(): InterfaceContract;
|
|
9
|
+
/**
|
|
10
|
+
* Validate a candidate contract object against the meta-schema.
|
|
11
|
+
* @throws {z.ZodError} if validation fails
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateContract(data: unknown): InterfaceContract;
|
|
14
|
+
/**
|
|
15
|
+
* Validate the current full contract against the meta-schema.
|
|
16
|
+
* Useful as a self-test during CI or startup.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateCurrentContract(): {
|
|
19
|
+
valid: boolean;
|
|
20
|
+
errors?: string[];
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/interface-contract/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQpD,YAAY,EACV,MAAM,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CASnD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAEjE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAYA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// [META] since:2026-04-30 | owner:cli-team | stable:false
|
|
2
|
+
// [WHY] Public API for the CLI interface contract — schema access, validation, and programmatic introspection
|
|
3
|
+
import { commandContracts } from './commands/index.js';
|
|
4
|
+
import { safeValidateInterfaceContract, validateInterfaceContract, } from './schema.js';
|
|
5
|
+
export { interfaceContractSchema, safeValidateInterfaceContract, validateInterfaceContract, } from './schema.js';
|
|
6
|
+
export { commandContracts, analyzeContract, queryContract, depsContract, doctorContract, benchmarkContract, initContract, } from './commands/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Build the full interface contract from the registered command contracts.
|
|
9
|
+
*/
|
|
10
|
+
export function getFullContract() {
|
|
11
|
+
return {
|
|
12
|
+
version: '0.1.0',
|
|
13
|
+
programName: 'mycodemap',
|
|
14
|
+
aliases: ['codemap'],
|
|
15
|
+
description: 'TypeScript 代码地图工具 - 为 AI 辅助开发提供结构化上下文',
|
|
16
|
+
commands: [...commandContracts],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Validate a candidate contract object against the meta-schema.
|
|
21
|
+
* @throws {z.ZodError} if validation fails
|
|
22
|
+
*/
|
|
23
|
+
export function validateContract(data) {
|
|
24
|
+
return validateInterfaceContract(data);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate the current full contract against the meta-schema.
|
|
28
|
+
* Useful as a self-test during CI or startup.
|
|
29
|
+
*/
|
|
30
|
+
export function validateCurrentContract() {
|
|
31
|
+
const contract = getFullContract();
|
|
32
|
+
const result = safeValidateInterfaceContract(contract);
|
|
33
|
+
if (result.success) {
|
|
34
|
+
return { valid: true };
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
valid: false,
|
|
38
|
+
errors: result.error.issues.map((e) => `${String(e.path)}: ${e.message}`),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/interface-contract/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,8GAA8G;AAG9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAEL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,WAAW,EACT,uCAAuC;QACzC,QAAQ,EAAE,CAAC,GAAG,gBAAgB,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IAIrC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACzC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ArgDef, CommandContract, ErrorCode, FlagDef, InterfaceContract, OutputProperty, OutputShape } from './types.js';
|
|
3
|
+
export declare const flagTypeSchema: z.ZodEnum<{
|
|
4
|
+
string: "string";
|
|
5
|
+
number: "number";
|
|
6
|
+
boolean: "boolean";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const argDefSchema: z.ZodType<ArgDef>;
|
|
9
|
+
export declare const flagDefSchema: z.ZodType<FlagDef>;
|
|
10
|
+
export declare const outputPropertySchema: z.ZodType<OutputProperty>;
|
|
11
|
+
export declare const outputShapeSchema: z.ZodType<OutputShape>;
|
|
12
|
+
export declare const errorCodeSchema: z.ZodType<ErrorCode>;
|
|
13
|
+
export declare const commandContractSchema: z.ZodType<CommandContract>;
|
|
14
|
+
export declare const interfaceContractSchema: z.ZodType<InterfaceContract>;
|
|
15
|
+
/**
|
|
16
|
+
* Validate an unknown value as an InterfaceContract.
|
|
17
|
+
* @returns parsed contract on success, throws ZodError on failure
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateInterfaceContract(data: unknown): InterfaceContract;
|
|
20
|
+
/**
|
|
21
|
+
* Safe validation — returns a result object instead of throwing.
|
|
22
|
+
*/
|
|
23
|
+
export declare function safeValidateInterfaceContract(data: unknown): {
|
|
24
|
+
success: true;
|
|
25
|
+
data: InterfaceContract;
|
|
26
|
+
} | {
|
|
27
|
+
success: false;
|
|
28
|
+
error: z.ZodError;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/cli/interface-contract/schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,cAAc;;;;EAA0C,CAAC;AAEtE,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAKzC,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAS3C,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAS1D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAInD,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAG/C,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAS3D,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAM/D,CAAC;AAEH;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAE1E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,OAAO,GACZ;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAMpF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// [META] since:2026-04-30 | owner:cli-team | stable:false
|
|
2
|
+
// [WHY] Zod meta-schema for runtime validation of interface contracts
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const flagTypeSchema = z.enum(['string', 'boolean', 'number']);
|
|
5
|
+
export const argDefSchema = z.object({
|
|
6
|
+
name: z.string(),
|
|
7
|
+
description: z.string(),
|
|
8
|
+
required: z.boolean().optional(),
|
|
9
|
+
variadic: z.boolean().optional(),
|
|
10
|
+
});
|
|
11
|
+
export const flagDefSchema = z.object({
|
|
12
|
+
name: z.string(),
|
|
13
|
+
short: z.string().optional(),
|
|
14
|
+
long: z.string(),
|
|
15
|
+
description: z.string(),
|
|
16
|
+
type: flagTypeSchema,
|
|
17
|
+
defaultValue: z.unknown().optional(),
|
|
18
|
+
multiple: z.boolean().optional(),
|
|
19
|
+
required: z.boolean().optional(),
|
|
20
|
+
});
|
|
21
|
+
export const outputPropertySchema = z.lazy(() => z.object({
|
|
22
|
+
name: z.string(),
|
|
23
|
+
type: z.enum(['string', 'number', 'boolean', 'object', 'array', 'null']),
|
|
24
|
+
description: z.string().optional(),
|
|
25
|
+
nullable: z.boolean().optional(),
|
|
26
|
+
items: outputPropertySchema.optional(),
|
|
27
|
+
properties: z.array(outputPropertySchema).optional(),
|
|
28
|
+
}));
|
|
29
|
+
export const outputShapeSchema = z.object({
|
|
30
|
+
description: z.string().optional(),
|
|
31
|
+
type: z.enum(['object', 'array']),
|
|
32
|
+
properties: z.array(outputPropertySchema),
|
|
33
|
+
});
|
|
34
|
+
export const errorCodeSchema = z.object({
|
|
35
|
+
code: z.string(),
|
|
36
|
+
description: z.string(),
|
|
37
|
+
});
|
|
38
|
+
export const commandContractSchema = z.object({
|
|
39
|
+
name: z.string(),
|
|
40
|
+
description: z.string(),
|
|
41
|
+
aliases: z.array(z.string()).optional(),
|
|
42
|
+
args: z.array(argDefSchema),
|
|
43
|
+
flags: z.array(flagDefSchema),
|
|
44
|
+
outputShape: outputShapeSchema,
|
|
45
|
+
errorCodes: z.array(errorCodeSchema),
|
|
46
|
+
examples: z.array(z.string()),
|
|
47
|
+
});
|
|
48
|
+
export const interfaceContractSchema = z.object({
|
|
49
|
+
version: z.string(),
|
|
50
|
+
programName: z.string(),
|
|
51
|
+
aliases: z.array(z.string()),
|
|
52
|
+
description: z.string(),
|
|
53
|
+
commands: z.array(commandContractSchema),
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Validate an unknown value as an InterfaceContract.
|
|
57
|
+
* @returns parsed contract on success, throws ZodError on failure
|
|
58
|
+
*/
|
|
59
|
+
export function validateInterfaceContract(data) {
|
|
60
|
+
return interfaceContractSchema.parse(data);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Safe validation — returns a result object instead of throwing.
|
|
64
|
+
*/
|
|
65
|
+
export function safeValidateInterfaceContract(data) {
|
|
66
|
+
const result = interfaceContractSchema.safeParse(data);
|
|
67
|
+
if (result.success) {
|
|
68
|
+
return { success: true, data: result.data };
|
|
69
|
+
}
|
|
70
|
+
return { success: false, error: result.error };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/interface-contract/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported flag value types
|
|
3
|
+
*/
|
|
4
|
+
export type FlagType = 'string' | 'boolean' | 'number';
|
|
5
|
+
/**
|
|
6
|
+
* Positional argument definition
|
|
7
|
+
*/
|
|
8
|
+
export interface ArgDef {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
variadic?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Flag / option definition
|
|
16
|
+
*/
|
|
17
|
+
export interface FlagDef {
|
|
18
|
+
name: string;
|
|
19
|
+
short?: string;
|
|
20
|
+
long: string;
|
|
21
|
+
description: string;
|
|
22
|
+
type: FlagType;
|
|
23
|
+
defaultValue?: unknown;
|
|
24
|
+
multiple?: boolean;
|
|
25
|
+
required?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Output property descriptor (JSON Schema-ish, serializable)
|
|
29
|
+
*/
|
|
30
|
+
export interface OutputProperty {
|
|
31
|
+
name: string;
|
|
32
|
+
type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
|
|
33
|
+
description?: string;
|
|
34
|
+
nullable?: boolean;
|
|
35
|
+
items?: OutputProperty;
|
|
36
|
+
properties?: OutputProperty[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Output shape descriptor for a command
|
|
40
|
+
*/
|
|
41
|
+
export interface OutputShape {
|
|
42
|
+
description?: string;
|
|
43
|
+
type: 'object' | 'array';
|
|
44
|
+
properties: OutputProperty[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Known error code for a command
|
|
48
|
+
*/
|
|
49
|
+
export interface ErrorCode {
|
|
50
|
+
code: string;
|
|
51
|
+
description: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Contract for a single CLI command
|
|
55
|
+
*/
|
|
56
|
+
export interface CommandContract {
|
|
57
|
+
name: string;
|
|
58
|
+
description: string;
|
|
59
|
+
aliases?: string[];
|
|
60
|
+
args: ArgDef[];
|
|
61
|
+
flags: FlagDef[];
|
|
62
|
+
outputShape: OutputShape;
|
|
63
|
+
errorCodes: ErrorCode[];
|
|
64
|
+
examples: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Full CLI interface contract
|
|
68
|
+
*/
|
|
69
|
+
export interface InterfaceContract {
|
|
70
|
+
version: string;
|
|
71
|
+
programName: string;
|
|
72
|
+
aliases: string[];
|
|
73
|
+
description: string;
|
|
74
|
+
commands: CommandContract[];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/interface-contract/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/interface-contract/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,2GAA2G"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OutputMode, ActionableError } from './types.js';
|
|
2
|
+
export interface SuggestionResult {
|
|
3
|
+
type: 'result';
|
|
4
|
+
success: boolean;
|
|
5
|
+
data?: unknown;
|
|
6
|
+
attemptedCommand?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function tryApplySuggestion(error: ActionableError, options: {
|
|
9
|
+
applySuggestion?: boolean;
|
|
10
|
+
wasmFallback?: boolean;
|
|
11
|
+
}, _mode: OutputMode): Promise<SuggestionResult>;
|
|
12
|
+
//# sourceMappingURL=apply-suggestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-suggestion.d.ts","sourceRoot":"","sources":["../../../src/cli/output/apply-suggestion.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9D,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// [META] since:2026-05-01 | owner:cli-team | stable:false
|
|
2
|
+
// [WHY] Safety-gated auto-remediation engine — executes nextCommand only when confidence >= threshold and --apply-suggestion flag set
|
|
3
|
+
import { exec } from 'node:child_process';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
5
|
+
import { APPLY_SUGGESTION_CONFIDENCE_THRESHOLD } from './types.js';
|
|
6
|
+
const execAsync = promisify(exec);
|
|
7
|
+
export async function tryApplySuggestion(error, options, _mode) {
|
|
8
|
+
if (!options.applySuggestion) {
|
|
9
|
+
return { type: 'result', success: false, data: { reason: 'apply-suggestion flag not set' } };
|
|
10
|
+
}
|
|
11
|
+
if (error.confidence < APPLY_SUGGESTION_CONFIDENCE_THRESHOLD) {
|
|
12
|
+
return { type: 'result', success: false, data: { reason: `confidence ${error.confidence} below threshold ${APPLY_SUGGESTION_CONFIDENCE_THRESHOLD}` } };
|
|
13
|
+
}
|
|
14
|
+
if (!error.nextCommand) {
|
|
15
|
+
return { type: 'result', success: false, data: { reason: 'no nextCommand available' } };
|
|
16
|
+
}
|
|
17
|
+
process.stderr.write(JSON.stringify({ type: 'apply-suggestion', action: 'attempt', command: error.nextCommand, confidence: error.confidence }) + '\n');
|
|
18
|
+
try {
|
|
19
|
+
const { stdout } = await execAsync(error.nextCommand, { timeout: 30000 });
|
|
20
|
+
process.stderr.write(JSON.stringify({ type: 'apply-suggestion', action: 'success', command: error.nextCommand }) + '\n');
|
|
21
|
+
return { type: 'result', success: true, data: { stdout: stdout.trim() }, attemptedCommand: error.nextCommand };
|
|
22
|
+
}
|
|
23
|
+
catch (execError) {
|
|
24
|
+
const msg = execError instanceof Error ? execError.message : String(execError);
|
|
25
|
+
process.stderr.write(JSON.stringify({ type: 'apply-suggestion', action: 'failed', command: error.nextCommand, error: msg }) + '\n');
|
|
26
|
+
return { type: 'result', success: false, data: { error: msg }, attemptedCommand: error.nextCommand };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=apply-suggestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-suggestion.js","sourceRoot":"","sources":["../../../src/cli/output/apply-suggestion.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,sIAAsI;AAEtI,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AASlC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAsB,EACtB,OAA8D,EAC9D,KAAiB;IAEjB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,CAAC;IAC/F,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,GAAG,qCAAqC,EAAE,CAAC;QAC7D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,KAAK,CAAC,UAAU,oBAAoB,qCAAqC,EAAE,EAAE,EAAE,CAAC;IACzJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAEvJ,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACzH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IACjH,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpI,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IACvG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const ErrorCodes: {
|
|
2
|
+
readonly DEP_NATIVE_MISSING: "DEP_NATIVE_MISSING";
|
|
3
|
+
readonly DEP_WASM_FALLBACK_AVAILABLE: "DEP_WASM_FALLBACK_AVAILABLE";
|
|
4
|
+
readonly DEP_MODULE_NOT_FOUND: "DEP_MODULE_NOT_FOUND";
|
|
5
|
+
readonly DEP_REBUILD_REQUIRED: "DEP_REBUILD_REQUIRED";
|
|
6
|
+
readonly CFG_INVALID_CONFIG: "CFG_INVALID_CONFIG";
|
|
7
|
+
readonly CFG_WORKSPACE_NOT_INITIALIZED: "CFG_WORKSPACE_NOT_INITIALIZED";
|
|
8
|
+
readonly CFG_WORKSPACE_DRIFT: "CFG_WORKSPACE_DRIFT";
|
|
9
|
+
readonly RUN_COMMAND_FAILED: "RUN_COMMAND_FAILED";
|
|
10
|
+
readonly RUN_PARSE_ERROR: "RUN_PARSE_ERROR";
|
|
11
|
+
readonly RUN_TIMEOUT: "RUN_TIMEOUT";
|
|
12
|
+
readonly FS_FILE_NOT_FOUND: "FS_FILE_NOT_FOUND";
|
|
13
|
+
readonly FS_PERMISSION_DENIED: "FS_PERMISSION_DENIED";
|
|
14
|
+
readonly FS_WORKING_DIR_INVALID: "FS_WORKING_DIR_INVALID";
|
|
15
|
+
};
|
|
16
|
+
export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
|
|
17
|
+
export declare const ErrorRemediation: Record<ErrorCode, {
|
|
18
|
+
message: string;
|
|
19
|
+
nextCommand?: string;
|
|
20
|
+
confidence: number;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=error-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/output/error-codes.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAqBb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,SAAS,EACT;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiE9D,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// [META] since:2026-05-01 | owner:cli-team | stable:false
|
|
2
|
+
// [WHY] Canonical error code registry with prefix classification and remediation map
|
|
3
|
+
export const ErrorCodes = {
|
|
4
|
+
// Dependency errors
|
|
5
|
+
DEP_NATIVE_MISSING: 'DEP_NATIVE_MISSING',
|
|
6
|
+
DEP_WASM_FALLBACK_AVAILABLE: 'DEP_WASM_FALLBACK_AVAILABLE',
|
|
7
|
+
DEP_MODULE_NOT_FOUND: 'DEP_MODULE_NOT_FOUND',
|
|
8
|
+
DEP_REBUILD_REQUIRED: 'DEP_REBUILD_REQUIRED',
|
|
9
|
+
// Configuration errors
|
|
10
|
+
CFG_INVALID_CONFIG: 'CFG_INVALID_CONFIG',
|
|
11
|
+
CFG_WORKSPACE_NOT_INITIALIZED: 'CFG_WORKSPACE_NOT_INITIALIZED',
|
|
12
|
+
CFG_WORKSPACE_DRIFT: 'CFG_WORKSPACE_DRIFT',
|
|
13
|
+
// Runtime errors
|
|
14
|
+
RUN_COMMAND_FAILED: 'RUN_COMMAND_FAILED',
|
|
15
|
+
RUN_PARSE_ERROR: 'RUN_PARSE_ERROR',
|
|
16
|
+
RUN_TIMEOUT: 'RUN_TIMEOUT',
|
|
17
|
+
// Filesystem errors
|
|
18
|
+
FS_FILE_NOT_FOUND: 'FS_FILE_NOT_FOUND',
|
|
19
|
+
FS_PERMISSION_DENIED: 'FS_PERMISSION_DENIED',
|
|
20
|
+
FS_WORKING_DIR_INVALID: 'FS_WORKING_DIR_INVALID',
|
|
21
|
+
};
|
|
22
|
+
export const ErrorRemediation = {
|
|
23
|
+
DEP_NATIVE_MISSING: {
|
|
24
|
+
message: 'Native dependency cannot be loaded. Try: --wasm-fallback, npm rebuild, or install prebuilt binaries',
|
|
25
|
+
nextCommand: 'codemap --wasm-fallback',
|
|
26
|
+
confidence: 0.9,
|
|
27
|
+
},
|
|
28
|
+
DEP_WASM_FALLBACK_AVAILABLE: {
|
|
29
|
+
message: 'Native dependency unavailable but WASM fallback is available',
|
|
30
|
+
nextCommand: 'codemap --wasm-fallback',
|
|
31
|
+
confidence: 0.95,
|
|
32
|
+
},
|
|
33
|
+
DEP_MODULE_NOT_FOUND: {
|
|
34
|
+
message: 'Required module not found. Run npm install to install dependencies',
|
|
35
|
+
nextCommand: 'npm install',
|
|
36
|
+
confidence: 0.85,
|
|
37
|
+
},
|
|
38
|
+
DEP_REBUILD_REQUIRED: {
|
|
39
|
+
message: 'Native modules need rebuilding. Run npm rebuild',
|
|
40
|
+
nextCommand: 'npm rebuild',
|
|
41
|
+
confidence: 0.85,
|
|
42
|
+
},
|
|
43
|
+
CFG_INVALID_CONFIG: {
|
|
44
|
+
message: 'Configuration file is invalid. Check .mycodemap/config.json syntax',
|
|
45
|
+
confidence: 0.7,
|
|
46
|
+
},
|
|
47
|
+
CFG_WORKSPACE_NOT_INITIALIZED: {
|
|
48
|
+
message: 'Workspace not initialized. Run codemap init first',
|
|
49
|
+
nextCommand: 'codemap init',
|
|
50
|
+
confidence: 0.9,
|
|
51
|
+
},
|
|
52
|
+
CFG_WORKSPACE_DRIFT: {
|
|
53
|
+
message: 'Workspace has drifted from receipt state. Run codemap doctor for details',
|
|
54
|
+
nextCommand: 'codemap doctor',
|
|
55
|
+
confidence: 0.8,
|
|
56
|
+
},
|
|
57
|
+
RUN_COMMAND_FAILED: {
|
|
58
|
+
message: 'Command execution failed. Check the error details above',
|
|
59
|
+
confidence: 0.3,
|
|
60
|
+
},
|
|
61
|
+
RUN_PARSE_ERROR: {
|
|
62
|
+
message: 'Parse error in source file. Verify the file syntax',
|
|
63
|
+
confidence: 0.5,
|
|
64
|
+
},
|
|
65
|
+
RUN_TIMEOUT: {
|
|
66
|
+
message: 'Operation timed out. Try with a smaller scope or increase timeout',
|
|
67
|
+
confidence: 0.6,
|
|
68
|
+
},
|
|
69
|
+
FS_FILE_NOT_FOUND: {
|
|
70
|
+
message: 'Required file not found. Verify the path is correct',
|
|
71
|
+
confidence: 0.7,
|
|
72
|
+
},
|
|
73
|
+
FS_PERMISSION_DENIED: {
|
|
74
|
+
message: 'Permission denied. Check file/directory permissions',
|
|
75
|
+
confidence: 0.6,
|
|
76
|
+
},
|
|
77
|
+
FS_WORKING_DIR_INVALID: {
|
|
78
|
+
message: 'Working directory is invalid or does not exist',
|
|
79
|
+
confidence: 0.8,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=error-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../src/cli/output/error-codes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,qFAAqF;AAErF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,oBAAoB;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,2BAA2B,EAAE,6BAA6B;IAC1D,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAE5C,uBAAuB;IACvB,kBAAkB,EAAE,oBAAoB;IACxC,6BAA6B,EAAE,+BAA+B;IAC9D,mBAAmB,EAAE,qBAAqB;IAE1C,iBAAiB;IACjB,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAE1B,oBAAoB;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;CACxC,CAAC;AAIX,MAAM,CAAC,MAAM,gBAAgB,GAGzB;IACF,kBAAkB,EAAE;QAClB,OAAO,EACL,qGAAqG;QACvG,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE,GAAG;KAChB;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,8DAA8D;QACvE,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE,IAAI;KACjB;IACD,oBAAoB,EAAE;QACpB,OAAO,EACL,oEAAoE;QACtE,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,IAAI;KACjB;IACD,oBAAoB,EAAE;QACpB,OAAO,EAAE,iDAAiD;QAC1D,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,IAAI;KACjB;IACD,kBAAkB,EAAE;QAClB,OAAO,EACL,oEAAoE;QACtE,UAAU,EAAE,GAAG;KAChB;IACD,6BAA6B,EAAE;QAC7B,OAAO,EAAE,mDAAmD;QAC5D,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,GAAG;KAChB;IACD,mBAAmB,EAAE;QACnB,OAAO,EACL,0EAA0E;QAC5E,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE,GAAG;KAChB;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,yDAAyD;QAClE,UAAU,EAAE,GAAG;KAChB;IACD,eAAe,EAAE;QACf,OAAO,EAAE,oDAAoD;QAC7D,UAAU,EAAE,GAAG;KAChB;IACD,WAAW,EAAE;QACX,OAAO,EACL,mEAAmE;QACrE,UAAU,EAAE,GAAG;KAChB;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,qDAAqD;QAC9D,UAAU,EAAE,GAAG;KAChB;IACD,oBAAoB,EAAE;QACpB,OAAO,EAAE,qDAAqD;QAC9D,UAAU,EAAE,GAAG;KAChB;IACD,sBAAsB,EAAE;QACtB,OAAO,EAAE,gDAAgD;QACzD,UAAU,EAAE,GAAG;KAChB;CACF,CAAC"}
|