@mycodemap/mycodemap 1.9.0 → 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 +18 -0
- package/README.md +138 -928
- 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/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/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/index.js +72 -20
- package/dist/cli/index.js.map +1 -1
- 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/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/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 +169 -12
- package/docs/README.md +40 -1
- package/docs/SETUP_GUIDE.md +11 -14
- package/docs/ai-guide/COMMANDS.md +68 -10
- package/docs/ai-guide/INTEGRATION.md +77 -10
- package/docs/ai-guide/OUTPUT.md +295 -2
- package/docs/ai-guide/PROMPTS.md +2 -2
- package/docs/ai-guide/QUICKSTART.md +28 -1
- package/docs/ai-guide/README.md +2 -2
- 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-rules-entry-docs-optimization-consolidated-ideation-archive.md +54 -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 +15 -60
- package/docs/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation.md +47 -52
- package/docs/ideation/2026-04-29-ux-install-agent-experience-ideation.md +256 -0
- package/docs/plans/2026-04-30-install-guide-and-repo-analyzer-design.md +394 -0
- package/docs/rules/README.md +1 -0
- package/docs/rules/architecture-guardrails.md +2 -1
- package/docs/rules/engineering-with-codex-openai.md +1 -1
- package/docs/rules/harness.md +106 -0
- package/docs/rules/pre-release-checklist.md +28 -0
- package/docs/rules/testing.md +51 -0
- 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/package.json +7 -4
- package/scripts/sync-analyze-docs.js +2 -2
- package/scripts/validate-docs.js +113 -16
- package/docs/references/tmp.md +0 -527
|
@@ -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"}
|