@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.
Files changed (272) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +138 -854
  3. package/README.zh-CN.md +1096 -0
  4. package/dist/cli/commands/analyze-options.d.ts.map +1 -1
  5. package/dist/cli/commands/analyze-options.js +8 -0
  6. package/dist/cli/commands/analyze-options.js.map +1 -1
  7. package/dist/cli/commands/analyze.d.ts.map +1 -1
  8. package/dist/cli/commands/analyze.js +60 -41
  9. package/dist/cli/commands/analyze.js.map +1 -1
  10. package/dist/cli/commands/benchmark.d.ts +8 -0
  11. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  12. package/dist/cli/commands/benchmark.js +150 -0
  13. package/dist/cli/commands/benchmark.js.map +1 -0
  14. package/dist/cli/commands/deps.d.ts +2 -1
  15. package/dist/cli/commands/deps.d.ts.map +1 -1
  16. package/dist/cli/commands/deps.js +107 -78
  17. package/dist/cli/commands/deps.js.map +1 -1
  18. package/dist/cli/commands/doctor.d.ts +3 -0
  19. package/dist/cli/commands/doctor.d.ts.map +1 -0
  20. package/dist/cli/commands/doctor.js +34 -0
  21. package/dist/cli/commands/doctor.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +7 -2
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +22 -34
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/publish-status.d.ts +31 -0
  27. package/dist/cli/commands/publish-status.d.ts.map +1 -0
  28. package/dist/cli/commands/publish-status.js +101 -0
  29. package/dist/cli/commands/publish-status.js.map +1 -0
  30. package/dist/cli/commands/query.d.ts +1 -0
  31. package/dist/cli/commands/query.d.ts.map +1 -1
  32. package/dist/cli/commands/query.js +123 -140
  33. package/dist/cli/commands/query.js.map +1 -1
  34. package/dist/cli/commands/readiness-gate.d.ts +25 -0
  35. package/dist/cli/commands/readiness-gate.d.ts.map +1 -0
  36. package/dist/cli/commands/readiness-gate.js +197 -0
  37. package/dist/cli/commands/readiness-gate.js.map +1 -0
  38. package/dist/cli/commands/ship/checker.d.ts +4 -9
  39. package/dist/cli/commands/ship/checker.d.ts.map +1 -1
  40. package/dist/cli/commands/ship/checker.js +60 -22
  41. package/dist/cli/commands/ship/checker.js.map +1 -1
  42. package/dist/cli/commands/ship/monitor.d.ts +6 -1
  43. package/dist/cli/commands/ship/monitor.d.ts.map +1 -1
  44. package/dist/cli/commands/ship/monitor.js +223 -46
  45. package/dist/cli/commands/ship/monitor.js.map +1 -1
  46. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
  47. package/dist/cli/commands/ship/pipeline.js +14 -5
  48. package/dist/cli/commands/ship/pipeline.js.map +1 -1
  49. package/dist/cli/commands/ship/rules/quality-rules.d.ts +12 -8
  50. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -1
  51. package/dist/cli/commands/ship/rules/quality-rules.js +49 -34
  52. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -1
  53. package/dist/cli/config-loader.js +1 -1
  54. package/dist/cli/config-loader.js.map +1 -1
  55. package/dist/cli/doctor/check-agent.d.ts +3 -0
  56. package/dist/cli/doctor/check-agent.d.ts.map +1 -0
  57. package/dist/cli/doctor/check-agent.js +60 -0
  58. package/dist/cli/doctor/check-agent.js.map +1 -0
  59. package/dist/cli/doctor/check-ghost-commands.d.ts +3 -0
  60. package/dist/cli/doctor/check-ghost-commands.d.ts.map +1 -0
  61. package/dist/cli/doctor/check-ghost-commands.js +86 -0
  62. package/dist/cli/doctor/check-ghost-commands.js.map +1 -0
  63. package/dist/cli/doctor/check-native-deps.d.ts +3 -0
  64. package/dist/cli/doctor/check-native-deps.d.ts.map +1 -0
  65. package/dist/cli/doctor/check-native-deps.js +54 -0
  66. package/dist/cli/doctor/check-native-deps.js.map +1 -0
  67. package/dist/cli/doctor/check-workspace-drift.d.ts +3 -0
  68. package/dist/cli/doctor/check-workspace-drift.d.ts.map +1 -0
  69. package/dist/cli/doctor/check-workspace-drift.js +83 -0
  70. package/dist/cli/doctor/check-workspace-drift.js.map +1 -0
  71. package/dist/cli/doctor/formatter.d.ts +20 -0
  72. package/dist/cli/doctor/formatter.d.ts.map +1 -0
  73. package/dist/cli/doctor/formatter.js +91 -0
  74. package/dist/cli/doctor/formatter.js.map +1 -0
  75. package/dist/cli/doctor/index.d.ts +8 -0
  76. package/dist/cli/doctor/index.d.ts.map +1 -0
  77. package/dist/cli/doctor/index.js +9 -0
  78. package/dist/cli/doctor/index.js.map +1 -0
  79. package/dist/cli/doctor/orchestrator.d.ts +3 -0
  80. package/dist/cli/doctor/orchestrator.d.ts.map +1 -0
  81. package/dist/cli/doctor/orchestrator.js +37 -0
  82. package/dist/cli/doctor/orchestrator.js.map +1 -0
  83. package/dist/cli/doctor/types.d.ts +19 -0
  84. package/dist/cli/doctor/types.d.ts.map +1 -0
  85. package/dist/cli/doctor/types.js +4 -0
  86. package/dist/cli/doctor/types.js.map +1 -0
  87. package/dist/cli/first-run-guide.d.ts.map +1 -1
  88. package/dist/cli/first-run-guide.js +10 -12
  89. package/dist/cli/first-run-guide.js.map +1 -1
  90. package/dist/cli/index.js +80 -21
  91. package/dist/cli/index.js.map +1 -1
  92. package/dist/cli/init/hooks.d.ts +17 -0
  93. package/dist/cli/init/hooks.d.ts.map +1 -0
  94. package/dist/cli/init/hooks.js +220 -0
  95. package/dist/cli/init/hooks.js.map +1 -0
  96. package/dist/cli/init/receipt.d.ts +4 -0
  97. package/dist/cli/init/receipt.d.ts.map +1 -0
  98. package/dist/cli/init/receipt.js +117 -0
  99. package/dist/cli/init/receipt.js.map +1 -0
  100. package/dist/cli/init/reconciler.d.ts +44 -0
  101. package/dist/cli/init/reconciler.d.ts.map +1 -0
  102. package/dist/cli/init/reconciler.js +377 -0
  103. package/dist/cli/init/reconciler.js.map +1 -0
  104. package/dist/cli/init/rule-templates.d.ts +9 -0
  105. package/dist/cli/init/rule-templates.d.ts.map +1 -0
  106. package/dist/cli/init/rule-templates.js +105 -0
  107. package/dist/cli/init/rule-templates.js.map +1 -0
  108. package/dist/cli/init/rules.d.ts +13 -0
  109. package/dist/cli/init/rules.d.ts.map +1 -0
  110. package/dist/cli/init/rules.js +113 -0
  111. package/dist/cli/init/rules.js.map +1 -0
  112. package/dist/cli/interface-contract/commands/analyze.d.ts +3 -0
  113. package/dist/cli/interface-contract/commands/analyze.d.ts.map +1 -0
  114. package/dist/cli/interface-contract/commands/analyze.js +138 -0
  115. package/dist/cli/interface-contract/commands/analyze.js.map +1 -0
  116. package/dist/cli/interface-contract/commands/benchmark.d.ts +3 -0
  117. package/dist/cli/interface-contract/commands/benchmark.d.ts.map +1 -0
  118. package/dist/cli/interface-contract/commands/benchmark.js +107 -0
  119. package/dist/cli/interface-contract/commands/benchmark.js.map +1 -0
  120. package/dist/cli/interface-contract/commands/deps.d.ts +3 -0
  121. package/dist/cli/interface-contract/commands/deps.d.ts.map +1 -0
  122. package/dist/cli/interface-contract/commands/deps.js +129 -0
  123. package/dist/cli/interface-contract/commands/deps.js.map +1 -0
  124. package/dist/cli/interface-contract/commands/doctor.d.ts +3 -0
  125. package/dist/cli/interface-contract/commands/doctor.d.ts.map +1 -0
  126. package/dist/cli/interface-contract/commands/doctor.js +59 -0
  127. package/dist/cli/interface-contract/commands/doctor.js.map +1 -0
  128. package/dist/cli/interface-contract/commands/index.d.ts +9 -0
  129. package/dist/cli/interface-contract/commands/index.d.ts.map +1 -0
  130. package/dist/cli/interface-contract/commands/index.js +18 -0
  131. package/dist/cli/interface-contract/commands/index.js.map +1 -0
  132. package/dist/cli/interface-contract/commands/init.d.ts +3 -0
  133. package/dist/cli/interface-contract/commands/init.d.ts.map +1 -0
  134. package/dist/cli/interface-contract/commands/init.js +87 -0
  135. package/dist/cli/interface-contract/commands/init.js.map +1 -0
  136. package/dist/cli/interface-contract/commands/query.d.ts +3 -0
  137. package/dist/cli/interface-contract/commands/query.d.ts.map +1 -0
  138. package/dist/cli/interface-contract/commands/query.js +185 -0
  139. package/dist/cli/interface-contract/commands/query.js.map +1 -0
  140. package/dist/cli/interface-contract/index.d.ts +22 -0
  141. package/dist/cli/interface-contract/index.d.ts.map +1 -0
  142. package/dist/cli/interface-contract/index.js +41 -0
  143. package/dist/cli/interface-contract/index.js.map +1 -0
  144. package/dist/cli/interface-contract/schema.d.ts +30 -0
  145. package/dist/cli/interface-contract/schema.d.ts.map +1 -0
  146. package/dist/cli/interface-contract/schema.js +72 -0
  147. package/dist/cli/interface-contract/schema.js.map +1 -0
  148. package/dist/cli/interface-contract/types.d.ts +76 -0
  149. package/dist/cli/interface-contract/types.d.ts.map +1 -0
  150. package/dist/cli/interface-contract/types.js +4 -0
  151. package/dist/cli/interface-contract/types.js.map +1 -0
  152. package/dist/cli/output/apply-suggestion.d.ts +12 -0
  153. package/dist/cli/output/apply-suggestion.d.ts.map +1 -0
  154. package/dist/cli/output/apply-suggestion.js +29 -0
  155. package/dist/cli/output/apply-suggestion.js.map +1 -0
  156. package/dist/cli/output/error-codes.d.ts +22 -0
  157. package/dist/cli/output/error-codes.d.ts.map +1 -0
  158. package/dist/cli/output/error-codes.js +82 -0
  159. package/dist/cli/output/error-codes.js.map +1 -0
  160. package/dist/cli/output/errors.d.ts +14 -0
  161. package/dist/cli/output/errors.d.ts.map +1 -0
  162. package/dist/cli/output/errors.js +170 -0
  163. package/dist/cli/output/errors.js.map +1 -0
  164. package/dist/cli/output/index.d.ts +13 -0
  165. package/dist/cli/output/index.d.ts.map +1 -0
  166. package/dist/cli/output/index.js +11 -0
  167. package/dist/cli/output/index.js.map +1 -0
  168. package/dist/cli/output/mode.d.ts +12 -0
  169. package/dist/cli/output/mode.d.ts.map +1 -0
  170. package/dist/cli/output/mode.js +23 -0
  171. package/dist/cli/output/mode.js.map +1 -0
  172. package/dist/cli/output/progress.d.ts +9 -0
  173. package/dist/cli/output/progress.d.ts.map +1 -0
  174. package/dist/cli/output/progress.js +65 -0
  175. package/dist/cli/output/progress.js.map +1 -0
  176. package/dist/cli/output/render.d.ts +11 -0
  177. package/dist/cli/output/render.d.ts.map +1 -0
  178. package/dist/cli/output/render.js +18 -0
  179. package/dist/cli/output/render.js.map +1 -0
  180. package/dist/cli/output/types.d.ts +53 -0
  181. package/dist/cli/output/types.d.ts.map +1 -0
  182. package/dist/cli/output/types.js +14 -0
  183. package/dist/cli/output/types.js.map +1 -0
  184. package/dist/cli/output/wasm-fallback.d.ts +13 -0
  185. package/dist/cli/output/wasm-fallback.d.ts.map +1 -0
  186. package/dist/cli/output/wasm-fallback.js +92 -0
  187. package/dist/cli/output/wasm-fallback.js.map +1 -0
  188. package/dist/cli/paths.d.ts +4 -2
  189. package/dist/cli/paths.d.ts.map +1 -1
  190. package/dist/cli/paths.js +13 -5
  191. package/dist/cli/paths.js.map +1 -1
  192. package/dist/cli/tree-sitter-check.d.ts +6 -1
  193. package/dist/cli/tree-sitter-check.d.ts.map +1 -1
  194. package/dist/cli/tree-sitter-check.js +23 -1
  195. package/dist/cli/tree-sitter-check.js.map +1 -1
  196. package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts.map +1 -1
  197. package/dist/infrastructure/storage/adapters/SQLiteStorage.js +2 -2
  198. package/dist/infrastructure/storage/adapters/SQLiteStorage.js.map +1 -1
  199. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts +23 -0
  200. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts.map +1 -0
  201. package/dist/infrastructure/storage/adapters/sqlite-loader.js +210 -0
  202. package/dist/infrastructure/storage/adapters/sqlite-loader.js.map +1 -0
  203. package/dist/orchestrator/test-linker.d.ts.map +1 -1
  204. package/dist/orchestrator/test-linker.js +5 -36
  205. package/dist/orchestrator/test-linker.js.map +1 -1
  206. package/dist/orchestrator/types.d.ts +2 -0
  207. package/dist/orchestrator/types.d.ts.map +1 -1
  208. package/dist/orchestrator/types.js.map +1 -1
  209. package/dist/parser/implementations/tree-sitter-loader.d.ts +16 -0
  210. package/dist/parser/implementations/tree-sitter-loader.d.ts.map +1 -0
  211. package/dist/parser/implementations/tree-sitter-loader.js +105 -0
  212. package/dist/parser/implementations/tree-sitter-loader.js.map +1 -0
  213. package/dist/parser/implementations/tree-sitter-parser.d.ts +3 -0
  214. package/dist/parser/implementations/tree-sitter-parser.d.ts.map +1 -1
  215. package/dist/parser/implementations/tree-sitter-parser.js +8 -3
  216. package/dist/parser/implementations/tree-sitter-parser.js.map +1 -1
  217. package/dist/server/mcp/schema-adapter.d.ts +45 -0
  218. package/dist/server/mcp/schema-adapter.d.ts.map +1 -0
  219. package/dist/server/mcp/schema-adapter.js +290 -0
  220. package/dist/server/mcp/schema-adapter.js.map +1 -0
  221. package/dist/server/mcp/server.d.ts.map +1 -1
  222. package/dist/server/mcp/server.js +32 -2
  223. package/dist/server/mcp/server.js.map +1 -1
  224. package/docs/AI_ASSISTANT_SETUP.md +173 -14
  225. package/docs/README.md +40 -1
  226. package/docs/SETUP_GUIDE.md +23 -26
  227. package/docs/agents/domain.md +36 -0
  228. package/docs/agents/issue-tracker.md +22 -0
  229. package/docs/agents/triage-labels.md +15 -0
  230. package/docs/ai-guide/COMMANDS.md +125 -13
  231. package/docs/ai-guide/INTEGRATION.md +78 -11
  232. package/docs/ai-guide/OUTPUT.md +295 -2
  233. package/docs/ai-guide/PATTERNS.md +3 -3
  234. package/docs/ai-guide/PROMPTS.md +2 -2
  235. package/docs/ai-guide/QUICKSTART.md +41 -5
  236. package/docs/ai-guide/README.md +9 -9
  237. package/docs/archive/ideation/2026-04-15-executable-architecture-constitution-ideation-archive.md +70 -0
  238. package/docs/archive/ideation/2026-04-20-mycodemap-init-enhancements-ideation-archive.md +109 -0
  239. package/docs/archive/ideation/2026-04-22-harness-rules-entry-docs-optimization-ideation.md +102 -0
  240. package/docs/archive/ideation/2026-04-22-rules-claude-agents-optimization-ideation.md +107 -0
  241. package/docs/archive/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation-archive.md +54 -0
  242. package/docs/brainstorms/2026-04-22-rules-entry-docs-phase1-structure-consolidation-requirements.md +110 -0
  243. package/docs/brainstorms/999.1-mycodemap-init-enhancements-requirements.md +166 -0
  244. package/docs/exec-plans/README.md +3 -0
  245. package/docs/ideation/2026-04-15-executable-architecture-constitution-ideation.md +10 -22
  246. package/docs/ideation/2026-04-20-mycodemap-init-enhancements-ideation.md +51 -0
  247. package/docs/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation.md +114 -0
  248. package/docs/ideation/2026-04-29-ux-install-agent-experience-ideation.md +256 -0
  249. package/docs/lesson-learn/2026-04-19-prerelease-trusted-publishing-fix.md +119 -0
  250. package/docs/lesson-learn/image.png +0 -0
  251. package/docs/plans/2026-04-30-install-guide-and-repo-analyzer-design.md +394 -0
  252. package/docs/rules/README.md +5 -1
  253. package/docs/rules/architecture-guardrails.md +2 -1
  254. package/docs/rules/deployment.md +7 -0
  255. package/docs/rules/engineering-with-codex-openai.md +48 -9
  256. package/docs/rules/harness.md +106 -0
  257. package/docs/rules/pre-release-checklist.md +72 -33
  258. package/docs/rules/release.md +303 -0
  259. package/docs/rules/testing.md +70 -0
  260. package/docs/rules/validation.md +16 -7
  261. package/examples/claude/skills/mycodemap-repo-analyzer/SKILL.md +294 -0
  262. package/examples/claude/skills/mycodemap-repo-analyzer/references/analysis-guide.md +166 -0
  263. package/examples/claude/skills/mycodemap-repo-analyzer/references/module-analysis-guide.md +150 -0
  264. package/mycodemap.config.schema.json +1 -1
  265. package/package.json +9 -6
  266. package/scripts/hooks/templates/commit-msg +38 -0
  267. package/scripts/hooks/templates/pre-commit +224 -0
  268. package/scripts/pre-release-check.js +4 -4
  269. package/scripts/release.sh +1 -1
  270. package/scripts/sync-analyze-docs.js +2 -2
  271. package/scripts/validate-docs.js +395 -29
  272. package/docs/references/tmp.md +0 -527
@@ -4,6 +4,7 @@ import chalk from 'chalk';
4
4
  import fs from 'fs';
5
5
  import path from 'path';
6
6
  import { resolveDataPath } from '../paths.js';
7
+ import { resolveOutputMode, renderOutput, createProgressEmitter, formatError } from '../output/index.js';
7
8
  /**
8
9
  * 加载代码地图数据
9
10
  */
@@ -112,55 +113,64 @@ function analyzeDeps(codeMap, modulePaths) {
112
113
  };
113
114
  }
114
115
  /**
115
- * 格式化依赖输出
116
+ * Build structured deps data for JSON output
116
117
  */
117
- function formatDependencies(codeMap, targetModule, allDependencies, options) {
118
- if (options.json) {
119
- const output = {};
120
- if (options.module && targetModule) {
121
- const dependentsMap = buildDependentsMap(targetModule.dependents, codeMap);
122
- const location = buildLocation(path.relative(codeMap.project.rootDir, targetModule.absolutePath));
123
- output.module = {
124
- path: targetModule.absolutePath,
125
- relativePath: path.relative(codeMap.project.rootDir, targetModule.absolutePath),
126
- location, // 新增:结构化位置信息
127
- dependencies: targetModule.dependencies,
128
- dependents: targetModule.dependents,
129
- dependentsMap
130
- };
131
- }
132
- else {
133
- output.allDependencies = Object.fromEntries(allDependencies);
134
- output.modules = Array.from(allDependencies.entries()).map(([modulePath, info]) => ({
135
- path: modulePath,
136
- relativePath: path.relative(codeMap.project.rootDir, modulePath),
137
- location: buildLocation(path.relative(codeMap.project.rootDir, modulePath)),
138
- ...info
139
- }));
140
- }
141
- console.log(JSON.stringify(output, null, 2));
142
- return;
118
+ function buildDepsData(codeMap, targetModule, allDependencies) {
119
+ const output = {};
120
+ if (targetModule) {
121
+ const dependentsMap = buildDependentsMap(targetModule.dependents, codeMap);
122
+ const location = buildLocation(path.relative(codeMap.project.rootDir, targetModule.absolutePath));
123
+ output.module = {
124
+ path: targetModule.absolutePath,
125
+ relativePath: path.relative(codeMap.project.rootDir, targetModule.absolutePath),
126
+ location,
127
+ dependencies: targetModule.dependencies,
128
+ dependents: targetModule.dependents,
129
+ dependentsMap
130
+ };
143
131
  }
144
- if (options.module && targetModule) {
145
- // 输出指定模块的依赖
146
- console.log(chalk.cyan(`\n📦 模块: ${path.relative(codeMap.project.rootDir, targetModule.absolutePath)}`));
147
- console.log(chalk.gray('─'.repeat(50)));
148
- // 直接依赖
149
- console.log(chalk.yellow('\n⬇️ 直接依赖 (dependencies):'));
132
+ else {
133
+ output.allDependencies = Object.fromEntries(allDependencies);
134
+ output.modules = Array.from(allDependencies.entries()).map(([modulePath, info]) => ({
135
+ path: modulePath,
136
+ relativePath: path.relative(codeMap.project.rootDir, modulePath),
137
+ location: buildLocation(path.relative(codeMap.project.rootDir, modulePath)),
138
+ ...info
139
+ }));
140
+ }
141
+ return output;
142
+ }
143
+ /**
144
+ * Human-readable renderer for deps output (chalk + padEnd table pattern)
145
+ */
146
+ function formatDepsHuman(codeMap, targetModule, allDependencies) {
147
+ const lines = [];
148
+ if (targetModule) {
149
+ // Single module output
150
+ lines.push(chalk.cyan(`\nModule: ${path.relative(codeMap.project.rootDir, targetModule.absolutePath)}`));
151
+ lines.push(chalk.gray('-'.repeat(50)));
152
+ // Direct dependencies as table
153
+ const MODULE_WIDTH = 40;
154
+ const TYPE_WIDTH = 12;
155
+ const header = 'MODULE'.padEnd(MODULE_WIDTH) + 'TYPE'.padEnd(TYPE_WIDTH);
156
+ lines.push(chalk.yellow('\nDependencies:'));
150
157
  if (targetModule.dependencies.length === 0) {
151
- console.log(chalk.gray(' '));
158
+ lines.push(chalk.gray(' none'));
152
159
  }
153
160
  else {
161
+ lines.push(header);
162
+ lines.push('-'.repeat(header.length));
154
163
  for (const dep of targetModule.dependencies) {
155
164
  const depModule = codeMap.modules.find(m => m.dependencies.includes(dep) || m.absolutePath.includes(dep));
156
165
  const depType = depModule?.type || 'unknown';
157
- console.log(chalk.green(` • ${dep}`), chalk.gray(`[${depType}]`));
166
+ const name = dep.substring(0, MODULE_WIDTH - 1).padEnd(MODULE_WIDTH);
167
+ lines.push(`${name}${depType.padEnd(TYPE_WIDTH)}`);
158
168
  }
159
169
  }
160
- // 依赖者(反向依赖)
161
- console.log(chalk.yellow('\n⬆️ 被依赖 (dependents):'));
170
+ // Dependents
171
+ lines.push(chalk.yellow('\nDependents:'));
162
172
  if (targetModule.dependents.length === 0) {
163
- console.log(chalk.gray(' '));
173
+ lines.push(chalk.gray(' none'));
164
174
  }
165
175
  else {
166
176
  for (const dep of targetModule.dependents) {
@@ -168,67 +178,86 @@ function formatDependencies(codeMap, targetModule, allDependencies, options) {
168
178
  const relPath = depModule
169
179
  ? path.relative(codeMap.project.rootDir, depModule.absolutePath)
170
180
  : dep;
171
- console.log(chalk.green(` ${relPath}`));
181
+ lines.push(` ${relPath}`);
172
182
  }
173
183
  }
174
- // 统计
175
- console.log(chalk.gray('─'.repeat(50)));
176
- console.log(chalk.cyan(` 依赖数量: ${targetModule.dependencies.length}`));
177
- console.log(chalk.cyan(` 被依赖数量: ${targetModule.dependents.length}`));
184
+ lines.push(chalk.gray('-'.repeat(50)));
185
+ lines.push(` Dependencies: ${targetModule.dependencies.length}, Dependents: ${targetModule.dependents.length}`);
178
186
  }
179
187
  else {
180
- // 输出所有模块的依赖统计
181
- console.log(chalk.cyan('\n📊 项目依赖分析'));
182
- console.log(chalk.gray(''.repeat(50)));
183
- // 按依赖数量排序
188
+ // All modules output
189
+ lines.push(chalk.cyan('\nProject Dependency Analysis'));
190
+ lines.push(chalk.gray('-'.repeat(50)));
191
+ const MODULE_WIDTH = 50;
192
+ const COUNT_WIDTH = 10;
193
+ const TYPE_WIDTH = 12;
194
+ const header = 'MODULE'.padEnd(MODULE_WIDTH) + 'DEPS'.padEnd(COUNT_WIDTH) + 'TYPE'.padEnd(TYPE_WIDTH);
195
+ lines.push(chalk.yellow('\nModule Dependency Ranking (Top 20):'));
196
+ lines.push(header);
197
+ lines.push('-'.repeat(header.length));
184
198
  const sortedDeps = Array.from(allDependencies.entries())
185
199
  .sort((a, b) => b[1].count - a[1].count);
186
- console.log(chalk.yellow('\n📦 模块依赖排名 (Top 20):'));
187
200
  let rank = 1;
188
201
  for (const [modulePath, info] of sortedDeps.slice(0, 20)) {
189
202
  const relPath = modulePath.replace(codeMap.project.rootDir + '/', '');
190
- console.log(chalk.green(` ${rank}. ${relPath}`));
191
- console.log(chalk.gray(` 依赖: ${info.count}, 类型: ${info.type}`));
203
+ const name = relPath.substring(0, MODULE_WIDTH - 1).padEnd(MODULE_WIDTH);
204
+ const count = String(info.count).padEnd(COUNT_WIDTH);
205
+ lines.push(`${rank}. ${name}${count}${info.type.padEnd(TYPE_WIDTH)}`);
192
206
  rank++;
193
207
  }
194
- // 统计
208
+ // Summary
195
209
  const totalDeps = allDependencies.size;
196
210
  const totalDepCount = Array.from(allDependencies.values()).reduce((sum, v) => sum + v.count, 0);
197
- console.log(chalk.gray(''.repeat(50)));
198
- console.log(chalk.cyan(` 总模块数: ${codeMap.modules.length}`));
199
- console.log(chalk.cyan(` 有依赖的模块: ${totalDeps}`));
200
- console.log(chalk.cyan(` 总依赖关系: ${totalDepCount}`));
211
+ lines.push(chalk.gray('-'.repeat(50)));
212
+ lines.push(` Total modules: ${codeMap.modules.length}`);
213
+ lines.push(` Modules with deps: ${totalDeps}`);
214
+ lines.push(` Total dependencies: ${totalDepCount}`);
201
215
  }
202
- console.log('');
216
+ return lines.join('\n');
203
217
  }
204
218
  /**
205
- * Deps 命令实现 - 保持向后兼容
219
+ * Deps 命令实现 - AI-first dual output
206
220
  */
207
221
  export async function depsCommand(options) {
208
222
  const rootDir = process.cwd();
209
- // 加载代码地图
210
- const codeMap = loadCodeMap(rootDir);
211
- if (!codeMap) {
212
- process.exit(1);
213
- }
214
- // 获取目标模块
215
- let targetModule;
216
- const allDependencies = new Map();
217
- if (options.module) {
218
- const result = getModuleDependencies(codeMap, options.module);
219
- targetModule = result.module;
220
- }
221
- else {
222
- // 统计所有模块的依赖
223
- for (const module of codeMap.modules) {
224
- allDependencies.set(module.absolutePath, {
225
- type: module.type,
226
- count: module.dependencies.length
227
- });
223
+ // Resolve output mode: --human/--json/no-flag = TTY auto-detect
224
+ const mode = resolveOutputMode({ json: options.json, human: options.human });
225
+ const progress = createProgressEmitter(mode, 'Analyzing deps...');
226
+ try {
227
+ // 加载代码地图
228
+ const codeMap = loadCodeMap(rootDir);
229
+ if (!codeMap) {
230
+ const error = new Error('Code map not found, run codemap generate first');
231
+ error.code = 'INDEX_NOT_FOUND';
232
+ error.remediation = 'Run codemap generate to create the code map';
233
+ throw error;
234
+ }
235
+ progress.update(30, 'Loading modules...');
236
+ // 获取目标模块
237
+ let targetModule;
238
+ const allDependencies = new Map();
239
+ if (options.module) {
240
+ const result = getModuleDependencies(codeMap, options.module);
241
+ targetModule = result.module;
228
242
  }
243
+ else {
244
+ // 统计所有模块的依赖
245
+ for (const module of codeMap.modules) {
246
+ allDependencies.set(module.absolutePath, {
247
+ type: module.type,
248
+ count: module.dependencies.length
249
+ });
250
+ }
251
+ }
252
+ const data = buildDepsData(codeMap, targetModule, allDependencies);
253
+ progress.complete();
254
+ renderOutput(data, () => formatDepsHuman(codeMap, targetModule, allDependencies), mode);
255
+ }
256
+ catch (error) {
257
+ progress.fail();
258
+ process.stdout.write(formatError(error, mode, 'codemap deps') + '\n');
259
+ process.exitCode = 1;
229
260
  }
230
- // 输出结果
231
- formatDependencies(codeMap, targetModule, allDependencies, options);
232
261
  }
233
262
  /**
234
263
  * DepsCommand 类 - 供 ToolOrchestrator 调用
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const doctorCommand: Command;
3
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,eAAO,MAAM,aAAa,SAIH,CAAC"}
@@ -0,0 +1,34 @@
1
+ // [META] since:2026-04-30 | owner:cli-team | stable:false
2
+ // [WHY] Top-level 'doctor' command — diagnose CodeMap ecosystem health
3
+ import { Command } from 'commander';
4
+ import { runDoctor } from '../doctor/orchestrator.js';
5
+ import { formatDoctorJsonData, formatDoctorReport } from '../doctor/formatter.js';
6
+ import { resolveOutputMode, formatError } from '../output/index.js';
7
+ async function doctorAction(options) {
8
+ try {
9
+ const report = await runDoctor({ json: options.json, cwd: process.cwd() });
10
+ // Resolve output mode: --human/--json/no-flag = TTY auto-detect
11
+ const mode = resolveOutputMode({ json: options.json, human: options.human });
12
+ // JSON mode: write the serializable data array; Human mode: write the formatted report
13
+ if (mode === 'json') {
14
+ const data = formatDoctorJsonData(report.results);
15
+ process.stdout.write(JSON.stringify(data) + '\n');
16
+ }
17
+ else {
18
+ process.stdout.write(formatDoctorReport(report.results) + '\n');
19
+ }
20
+ // Set exit code without calling process.exit() — allow commander natural exit
21
+ process.exitCode = report.exitCode;
22
+ }
23
+ catch (error) {
24
+ const mode = resolveOutputMode({ json: options.json, human: options.human });
25
+ process.stdout.write(formatError(error, mode) + '\n');
26
+ process.exitCode = 1;
27
+ }
28
+ }
29
+ export const doctorCommand = new Command('doctor')
30
+ .description('Diagnose CodeMap ecosystem health')
31
+ .option('-j, --json', 'Output diagnostics as JSON')
32
+ .option('--human', 'Force human-readable output')
33
+ .action(doctorAction);
34
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,uEAAuE;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOpE,KAAK,UAAU,YAAY,CAAC,OAA6B;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3E,gEAAgE;QAChE,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAE7E,uFAAuF;QACvF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,8EAA8E;QAC9E,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,6BAA6B,CAAC;KAChD,MAAM,CAAC,YAAY,CAAC,CAAC"}
@@ -1,4 +1,9 @@
1
- export declare function initCommand(_options: {
1
+ import { type InitReceipt } from '../init/reconciler.js';
2
+ export interface InitCommandOptions {
2
3
  yes?: boolean;
3
- }): Promise<void>;
4
+ interactive?: boolean;
5
+ cwd?: string;
6
+ }
7
+ export declare function executeInitCommand(options: InitCommandOptions): Promise<InitReceipt>;
8
+ export declare function initCommand(options: InitCommandOptions): Promise<void>;
4
9
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAWA,wBAAsB,WAAW,CAAC,QAAQ,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAmC5D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG1G,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAUD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgB1F;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E"}
@@ -1,41 +1,29 @@
1
1
  // [META] since:2026-03 | owner:cli-team | stable:true
2
2
  // [WHY] Initialize CodeMap configuration for new projects
3
3
  import chalk from 'chalk';
4
- import fs from 'fs/promises';
5
- import path from 'path';
6
- import { createDefaultCodemapConfigFile } from '../config-loader.js';
7
- const NEW_CONFIG_NAME = 'mycodemap.config.json';
8
- const LEGACY_CONFIG_NAME = 'codemap.config.json';
9
- export async function initCommand(_options) {
10
- console.log(chalk.blue('🚀 初始化 CodeMap...'));
11
- const newConfigPath = path.join(process.cwd(), NEW_CONFIG_NAME);
12
- const legacyConfigPath = path.join(process.cwd(), LEGACY_CONFIG_NAME);
13
- // 优先检查新配置
14
- try {
15
- await fs.access(newConfigPath);
16
- console.log(chalk.yellow(`⚠️ 配置文件已存在 (${NEW_CONFIG_NAME})`));
17
- return;
18
- }
19
- catch {
20
- // 新配置不存在,继续
21
- }
22
- // 兼容旧配置:如果存在旧配置,迁移到新配置
23
- try {
24
- await fs.access(legacyConfigPath);
25
- console.log(chalk.yellow(`⚠️ 发现旧配置文件 ${LEGACY_CONFIG_NAME},已迁移到 ${NEW_CONFIG_NAME}`));
26
- const legacyContent = await fs.readFile(legacyConfigPath, 'utf-8');
27
- await fs.writeFile(newConfigPath, legacyContent);
28
- console.log(chalk.green(`✅ 迁移完成!配置文件: ${NEW_CONFIG_NAME}`));
29
- return;
4
+ import { applyInitPlan, createInitPlan, writeInitReceipt } from '../init/reconciler.js';
5
+ import { renderInitPreview, renderInitReceipt } from '../init/receipt.js';
6
+ function resolveInitMode(options) {
7
+ if (options.yes) {
8
+ return 'apply';
30
9
  }
31
- catch {
32
- // 旧配置也不存在,创建新配置
10
+ return 'preview';
11
+ }
12
+ export async function executeInitCommand(options) {
13
+ const rootDir = options.cwd ?? process.cwd();
14
+ const mode = resolveInitMode(options);
15
+ const plan = createInitPlan(rootDir, mode);
16
+ console.log(chalk.blue('🚀 初始化 CodeMap...'));
17
+ if (mode === 'preview') {
18
+ renderInitPreview(plan.receipt);
19
+ return plan.receipt;
33
20
  }
34
- // 创建默认配置
35
- const defaultConfig = createDefaultCodemapConfigFile();
36
- await fs.writeFile(newConfigPath, JSON.stringify(defaultConfig, null, 2));
37
- console.log(chalk.green('✅ 初始化完成!'));
38
- console.log(chalk.gray(`配置文件已创建: ${NEW_CONFIG_NAME}`));
39
- console.log(chalk.gray('运行 "mycodemap generate" "codemap generate" 生成代码地图'));
21
+ const receipt = await applyInitPlan(plan);
22
+ await writeInitReceipt(receipt);
23
+ renderInitReceipt(receipt);
24
+ return receipt;
25
+ }
26
+ export async function initCommand(options) {
27
+ await executeInitCommand(options);
40
28
  }
41
29
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAA2B;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAEtE,UAAU;IACV,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,eAAe,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,kBAAkB,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,eAAe,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,SAAS;IACT,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;IAEvD,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,0DAA0D;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQ1E,SAAS,eAAe,CAAC,OAA2B;IAClD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * [META] since:2026-04-23 | owner:cli-team | stable:false
3
+ * [WHY] Expose read-only publish workflow snapshot truth as a standalone follow-up command for humans and agents
4
+ */
5
+ import { Command } from 'commander';
6
+ import { type MonitorStatus } from './ship/monitor.js';
7
+ export interface PublishStatusCommandOptions {
8
+ tag: string;
9
+ sha: string;
10
+ workflowFile?: string;
11
+ json?: boolean;
12
+ structured?: boolean;
13
+ }
14
+ export interface PublishStatusCommandResult {
15
+ success: boolean;
16
+ status: Exclude<MonitorStatus, 'timeout'>;
17
+ workflowUrl?: string;
18
+ releaseUrl?: string;
19
+ runId?: number;
20
+ failedJobs: string[];
21
+ reason?: string;
22
+ details?: string;
23
+ matchedRunCount?: number;
24
+ content?: string;
25
+ }
26
+ export declare function renderPublishStatusResult(result: PublishStatusCommandResult): string;
27
+ export declare function executePublishStatusCommand(options: PublishStatusCommandOptions): Promise<PublishStatusCommandResult>;
28
+ export declare function handlePublishStatusCommand(options: PublishStatusCommandOptions): Promise<void>;
29
+ export declare function createPublishStatusCommand(): Command;
30
+ export declare const publishStatusCommand: Command;
31
+ //# sourceMappingURL=publish-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0CD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM,CAkCpF;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAQrC;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CASpD;AAED,eAAO,MAAM,oBAAoB,SAA+B,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * [META] since:2026-04-23 | owner:cli-team | stable:false
3
+ * [WHY] Expose read-only publish workflow snapshot truth as a standalone follow-up command for humans and agents
4
+ */
5
+ import chalk from 'chalk';
6
+ import { Command } from 'commander';
7
+ import { snapshotPublishStatus, } from './ship/monitor.js';
8
+ function toCommandResult(result, structured) {
9
+ const base = {
10
+ success: result.success,
11
+ status: result.status === 'timeout' ? 'unavailable' : result.status,
12
+ workflowUrl: result.workflowUrl,
13
+ releaseUrl: result.releaseUrl,
14
+ runId: result.runId,
15
+ failedJobs: result.failedJobs ?? [],
16
+ reason: result.reason,
17
+ details: result.details ?? result.error,
18
+ matchedRunCount: result.matchedRunCount,
19
+ };
20
+ if (structured) {
21
+ return base;
22
+ }
23
+ return {
24
+ ...base,
25
+ content: renderPublishStatusResult(base),
26
+ };
27
+ }
28
+ function formatStatusLabel(status) {
29
+ switch (status) {
30
+ case 'success':
31
+ return chalk.green('success');
32
+ case 'failure':
33
+ return chalk.red('failure');
34
+ case 'pending':
35
+ return chalk.yellow('pending');
36
+ case 'ambiguous':
37
+ return chalk.yellow('ambiguous');
38
+ case 'unavailable':
39
+ return chalk.yellow('unavailable');
40
+ default:
41
+ return chalk.yellow(status);
42
+ }
43
+ }
44
+ export function renderPublishStatusResult(result) {
45
+ const lines = [
46
+ `Publish 状态: ${formatStatusLabel(result.status)}`,
47
+ ];
48
+ if (result.runId) {
49
+ lines.push(`Run ID: ${result.runId}`);
50
+ }
51
+ if (result.reason) {
52
+ lines.push(`Reason: ${result.reason}`);
53
+ }
54
+ if (result.details) {
55
+ lines.push(`Details: ${result.details}`);
56
+ }
57
+ if (result.failedJobs.length > 0) {
58
+ lines.push(`Failed Jobs: ${result.failedJobs.join(', ')}`);
59
+ }
60
+ if (result.matchedRunCount && result.matchedRunCount > 1) {
61
+ lines.push(`Matched Runs: ${result.matchedRunCount}`);
62
+ }
63
+ if (result.workflowUrl) {
64
+ lines.push(`Workflow: ${result.workflowUrl}`);
65
+ }
66
+ if (result.releaseUrl) {
67
+ lines.push(`Release: ${result.releaseUrl}`);
68
+ }
69
+ return lines.join('\n');
70
+ }
71
+ export async function executePublishStatusCommand(options) {
72
+ const snapshot = await snapshotPublishStatus({
73
+ tagName: options.tag,
74
+ headSha: options.sha,
75
+ workflowFile: options.workflowFile,
76
+ });
77
+ return toCommandResult(snapshot, options.structured === true);
78
+ }
79
+ export async function handlePublishStatusCommand(options) {
80
+ if (options.structured && !options.json) {
81
+ throw new Error('--structured 需要配合 --json 使用');
82
+ }
83
+ const result = await executePublishStatusCommand(options);
84
+ if (!options.json) {
85
+ console.log(renderPublishStatusResult(result));
86
+ return;
87
+ }
88
+ console.log(JSON.stringify(result, null, 2));
89
+ }
90
+ export function createPublishStatusCommand() {
91
+ return new Command('publish-status')
92
+ .description('查询 publish workflow 的只读 snapshot 状态(默认人类可读输出)')
93
+ .requiredOption('--tag <tag>', '发布 tag(精确匹配)')
94
+ .requiredOption('--sha <sha>', '发布 commit SHA(精确匹配)')
95
+ .option('--workflow-file <file>', 'GitHub Actions workflow 文件名', 'publish.yml')
96
+ .option('--json', 'JSON 格式输出')
97
+ .option('--structured', '输出完全结构化的 JSON(不包含自然语言字符串,需要配合 --json 使用)')
98
+ .action(handlePublishStatusCommand);
99
+ }
100
+ export const publishStatusCommand = createPublishStatusCommand();
101
+ //# sourceMappingURL=publish-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-status.js","sourceRoot":"","sources":["../../../src/cli/commands/publish-status.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ interface QueryOptions {
5
5
  search?: string;
6
6
  limit?: number;
7
7
  json?: boolean;
8
+ human?: boolean;
8
9
  verbose?: boolean;
9
10
  cache?: boolean;
10
11
  regex?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAEpC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA+yBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAmGvD"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAWA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAEpC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgxBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAmHvD"}