@dommaker/harness 1.3.0 → 1.5.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 (532) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +0 -2
  3. package/bin/harness.js +86 -32
  4. package/dist/cli/command-contract.d.ts +83 -0
  5. package/dist/cli/command-contract.d.ts.map +1 -0
  6. package/dist/cli/command-contract.js +66 -0
  7. package/dist/cli/command-contract.js.map +1 -0
  8. package/dist/cli/commands/acceptance.d.ts +3 -2
  9. package/dist/cli/commands/acceptance.d.ts.map +1 -1
  10. package/dist/cli/commands/acceptance.js +28 -24
  11. package/dist/cli/commands/acceptance.js.map +1 -1
  12. package/dist/cli/commands/analyze-sessions.d.ts +2 -1
  13. package/dist/cli/commands/analyze-sessions.d.ts.map +1 -1
  14. package/dist/cli/commands/analyze-sessions.js +25 -24
  15. package/dist/cli/commands/analyze-sessions.js.map +1 -1
  16. package/dist/cli/commands/check.d.ts +14 -2
  17. package/dist/cli/commands/check.d.ts.map +1 -1
  18. package/dist/cli/commands/check.js +104 -61
  19. package/dist/cli/commands/check.js.map +1 -1
  20. package/dist/cli/commands/command.d.ts +5 -1
  21. package/dist/cli/commands/command.d.ts.map +1 -1
  22. package/dist/cli/commands/command.js +26 -17
  23. package/dist/cli/commands/command.js.map +1 -1
  24. package/dist/cli/commands/constraints-report.d.ts +2 -1
  25. package/dist/cli/commands/constraints-report.d.ts.map +1 -1
  26. package/dist/cli/commands/constraints-report.js +37 -33
  27. package/dist/cli/commands/constraints-report.js.map +1 -1
  28. package/dist/cli/commands/constraints-retire.d.ts +6 -5
  29. package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
  30. package/dist/cli/commands/constraints-retire.js +50 -52
  31. package/dist/cli/commands/constraints-retire.js.map +1 -1
  32. package/dist/cli/commands/constraints.d.ts +2 -1
  33. package/dist/cli/commands/constraints.d.ts.map +1 -1
  34. package/dist/cli/commands/constraints.js +10 -27
  35. package/dist/cli/commands/constraints.js.map +1 -1
  36. package/dist/cli/commands/contract.d.ts +3 -2
  37. package/dist/cli/commands/contract.d.ts.map +1 -1
  38. package/dist/cli/commands/contract.js +45 -42
  39. package/dist/cli/commands/contract.js.map +1 -1
  40. package/dist/cli/commands/definitions.d.ts +11 -11
  41. package/dist/cli/commands/definitions.d.ts.map +1 -1
  42. package/dist/cli/commands/definitions.js +27 -219
  43. package/dist/cli/commands/definitions.js.map +1 -1
  44. package/dist/cli/commands/failure.d.ts +5 -4
  45. package/dist/cli/commands/failure.d.ts.map +1 -1
  46. package/dist/cli/commands/failure.js +31 -25
  47. package/dist/cli/commands/failure.js.map +1 -1
  48. package/dist/cli/commands/init.d.ts +7 -5
  49. package/dist/cli/commands/init.d.ts.map +1 -1
  50. package/dist/cli/commands/init.js +147 -211
  51. package/dist/cli/commands/init.js.map +1 -1
  52. package/dist/cli/commands/knowledge.d.ts +17 -30
  53. package/dist/cli/commands/knowledge.d.ts.map +1 -1
  54. package/dist/cli/commands/knowledge.js +183 -273
  55. package/dist/cli/commands/knowledge.js.map +1 -1
  56. package/dist/cli/commands/passes-gate.d.ts +8 -2
  57. package/dist/cli/commands/passes-gate.d.ts.map +1 -1
  58. package/dist/cli/commands/passes-gate.js +44 -66
  59. package/dist/cli/commands/passes-gate.js.map +1 -1
  60. package/dist/cli/commands/performance.d.ts +2 -1
  61. package/dist/cli/commands/performance.d.ts.map +1 -1
  62. package/dist/cli/commands/performance.js +20 -18
  63. package/dist/cli/commands/performance.js.map +1 -1
  64. package/dist/cli/commands/posteval-plan.d.ts +5 -1
  65. package/dist/cli/commands/posteval-plan.d.ts.map +1 -1
  66. package/dist/cli/commands/posteval-plan.js +26 -15
  67. package/dist/cli/commands/posteval-plan.js.map +1 -1
  68. package/dist/cli/commands/release.d.ts +6 -1
  69. package/dist/cli/commands/release.d.ts.map +1 -1
  70. package/dist/cli/commands/release.js +69 -59
  71. package/dist/cli/commands/release.js.map +1 -1
  72. package/dist/cli/commands/report.d.ts +2 -1
  73. package/dist/cli/commands/report.d.ts.map +1 -1
  74. package/dist/cli/commands/report.js +9 -5
  75. package/dist/cli/commands/report.js.map +1 -1
  76. package/dist/cli/commands/review.d.ts +3 -2
  77. package/dist/cli/commands/review.d.ts.map +1 -1
  78. package/dist/cli/commands/review.js +33 -29
  79. package/dist/cli/commands/review.js.map +1 -1
  80. package/dist/cli/commands/sdd.d.ts +2 -1
  81. package/dist/cli/commands/sdd.d.ts.map +1 -1
  82. package/dist/cli/commands/sdd.js +7 -5
  83. package/dist/cli/commands/sdd.js.map +1 -1
  84. package/dist/cli/commands/security.d.ts +3 -2
  85. package/dist/cli/commands/security.d.ts.map +1 -1
  86. package/dist/cli/commands/security.js +29 -26
  87. package/dist/cli/commands/security.js.map +1 -1
  88. package/dist/cli/commands/spec-baseline-check.d.ts +2 -1
  89. package/dist/cli/commands/spec-baseline-check.d.ts.map +1 -1
  90. package/dist/cli/commands/spec-baseline-check.js +15 -11
  91. package/dist/cli/commands/spec-baseline-check.js.map +1 -1
  92. package/dist/cli/commands/spec.d.ts +7 -2
  93. package/dist/cli/commands/spec.d.ts.map +1 -1
  94. package/dist/cli/commands/spec.js +61 -51
  95. package/dist/cli/commands/spec.js.map +1 -1
  96. package/dist/cli/commands/status.d.ts +2 -1
  97. package/dist/cli/commands/status.d.ts.map +1 -1
  98. package/dist/cli/commands/status.js +57 -53
  99. package/dist/cli/commands/status.js.map +1 -1
  100. package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
  101. package/dist/cli/commands/sync-docs/agents-syncer.js +5 -2
  102. package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
  103. package/dist/cli/commands/sync-docs/context-syncer.d.ts.map +1 -1
  104. package/dist/cli/commands/sync-docs/context-syncer.js +3 -2
  105. package/dist/cli/commands/sync-docs/context-syncer.js.map +1 -1
  106. package/dist/cli/commands/sync-docs/index.d.ts +2 -1
  107. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  108. package/dist/cli/commands/sync-docs/index.js +68 -88
  109. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  110. package/dist/cli/commands/sync-docs/project-reader.d.ts +6 -1
  111. package/dist/cli/commands/sync-docs/project-reader.d.ts.map +1 -1
  112. package/dist/cli/commands/sync-docs/project-reader.js +14 -16
  113. package/dist/cli/commands/sync-docs/project-reader.js.map +1 -1
  114. package/dist/cli/commands/update-user-model.d.ts +9 -3
  115. package/dist/cli/commands/update-user-model.d.ts.map +1 -1
  116. package/dist/cli/commands/update-user-model.js +56 -61
  117. package/dist/cli/commands/update-user-model.js.map +1 -1
  118. package/dist/cli/commands/validate.d.ts +4 -3
  119. package/dist/cli/commands/validate.d.ts.map +1 -1
  120. package/dist/cli/commands/validate.js +28 -26
  121. package/dist/cli/commands/validate.js.map +1 -1
  122. package/dist/cli/session-mining/transcript.d.ts +7 -1
  123. package/dist/cli/session-mining/transcript.d.ts.map +1 -1
  124. package/dist/cli/session-mining/transcript.js +21 -14
  125. package/dist/cli/session-mining/transcript.js.map +1 -1
  126. package/dist/context/session-manager.d.ts.map +1 -1
  127. package/dist/context/session-manager.js +19 -32
  128. package/dist/context/session-manager.js.map +1 -1
  129. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +1 -1
  130. package/dist/core/constraints/agent-prompt-renderer.js +1 -4
  131. package/dist/core/constraints/agent-prompt-renderer.js.map +1 -1
  132. package/dist/core/constraints/capabilities-parser.d.ts +24 -7
  133. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  134. package/dist/core/constraints/capabilities-parser.js +32 -28
  135. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  136. package/dist/core/constraints/capabilities-reconcile.d.ts +67 -0
  137. package/dist/core/constraints/capabilities-reconcile.d.ts.map +1 -0
  138. package/dist/core/constraints/capabilities-reconcile.js +105 -0
  139. package/dist/core/constraints/capabilities-reconcile.js.map +1 -0
  140. package/dist/core/constraints/checker.d.ts +21 -43
  141. package/dist/core/constraints/checker.d.ts.map +1 -1
  142. package/dist/core/constraints/checker.js +68 -117
  143. package/dist/core/constraints/checker.js.map +1 -1
  144. package/dist/core/constraints/checkers/capability-sync.d.ts +20 -8
  145. package/dist/core/constraints/checkers/capability-sync.d.ts.map +1 -1
  146. package/dist/core/constraints/checkers/capability-sync.js +66 -77
  147. package/dist/core/constraints/checkers/capability-sync.js.map +1 -1
  148. package/dist/core/constraints/checkers/context-doc-sync.d.ts +4 -2
  149. package/dist/core/constraints/checkers/context-doc-sync.d.ts.map +1 -1
  150. package/dist/core/constraints/checkers/context-doc-sync.js +13 -22
  151. package/dist/core/constraints/checkers/context-doc-sync.js.map +1 -1
  152. package/dist/core/constraints/checkers/docs-freshness.d.ts.map +1 -1
  153. package/dist/core/constraints/checkers/docs-freshness.js +49 -66
  154. package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
  155. package/dist/core/constraints/checkers/governance-presence.d.ts +2 -2
  156. package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
  157. package/dist/core/constraints/checkers/governance-presence.js +7 -28
  158. package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
  159. package/dist/core/constraints/checkers/index.d.ts +2 -2
  160. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  161. package/dist/core/constraints/checkers/index.js +2 -1
  162. package/dist/core/constraints/checkers/index.js.map +1 -1
  163. package/dist/core/constraints/checkers/no-test-simplification.d.ts.map +1 -1
  164. package/dist/core/constraints/checkers/no-test-simplification.js +4 -3
  165. package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
  166. package/dist/core/constraints/checkers/types.d.ts +43 -4
  167. package/dist/core/constraints/checkers/types.d.ts.map +1 -1
  168. package/dist/core/constraints/checkers/types.js +33 -0
  169. package/dist/core/constraints/checkers/types.js.map +1 -1
  170. package/dist/core/constraints/context-builder.d.ts +15 -14
  171. package/dist/core/constraints/context-builder.d.ts.map +1 -1
  172. package/dist/core/constraints/context-builder.js +32 -96
  173. package/dist/core/constraints/context-builder.js.map +1 -1
  174. package/dist/core/constraints/doc-freshness/runner.d.ts.map +1 -1
  175. package/dist/core/constraints/doc-freshness/runner.js +2 -1
  176. package/dist/core/constraints/doc-freshness/runner.js.map +1 -1
  177. package/dist/core/constraints/git-evidence.d.ts +60 -0
  178. package/dist/core/constraints/git-evidence.d.ts.map +1 -0
  179. package/dist/core/constraints/git-evidence.js +88 -0
  180. package/dist/core/constraints/git-evidence.js.map +1 -0
  181. package/dist/core/constraints/injection-drift.d.ts +3 -20
  182. package/dist/core/constraints/injection-drift.d.ts.map +1 -1
  183. package/dist/core/constraints/injection-drift.js +10 -57
  184. package/dist/core/constraints/injection-drift.js.map +1 -1
  185. package/dist/core/constraints/injection-writer.d.ts +113 -0
  186. package/dist/core/constraints/injection-writer.d.ts.map +1 -0
  187. package/dist/core/constraints/injection-writer.js +228 -0
  188. package/dist/core/constraints/injection-writer.js.map +1 -0
  189. package/dist/core/constraints/usage-report.d.ts +22 -1
  190. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  191. package/dist/core/constraints/usage-report.js +27 -20
  192. package/dist/core/constraints/usage-report.js.map +1 -1
  193. package/dist/core/index.d.ts +2 -2
  194. package/dist/core/index.d.ts.map +1 -1
  195. package/dist/core/index.js +4 -2
  196. package/dist/core/index.js.map +1 -1
  197. package/dist/core/project-config-loader.d.ts +32 -1
  198. package/dist/core/project-config-loader.d.ts.map +1 -1
  199. package/dist/core/project-config-loader.js +39 -9
  200. package/dist/core/project-config-loader.js.map +1 -1
  201. package/dist/core/validators/passes-gate.d.ts +15 -64
  202. package/dist/core/validators/passes-gate.d.ts.map +1 -1
  203. package/dist/core/validators/passes-gate.js +84 -222
  204. package/dist/core/validators/passes-gate.js.map +1 -1
  205. package/dist/core/validators/test-output.d.ts +58 -0
  206. package/dist/core/validators/test-output.d.ts.map +1 -0
  207. package/dist/core/validators/test-output.js +109 -0
  208. package/dist/core/validators/test-output.js.map +1 -0
  209. package/dist/failure/recorder.d.ts +6 -0
  210. package/dist/failure/recorder.d.ts.map +1 -1
  211. package/dist/failure/recorder.js +12 -8
  212. package/dist/failure/recorder.js.map +1 -1
  213. package/dist/gates/acceptance.d.ts +1 -48
  214. package/dist/gates/acceptance.d.ts.map +1 -1
  215. package/dist/gates/acceptance.js +6 -38
  216. package/dist/gates/acceptance.js.map +1 -1
  217. package/dist/gates/checker-gate.d.ts +2 -1
  218. package/dist/gates/checker-gate.d.ts.map +1 -1
  219. package/dist/gates/checker-gate.js +11 -13
  220. package/dist/gates/checker-gate.js.map +1 -1
  221. package/dist/gates/command.d.ts.map +1 -1
  222. package/dist/gates/command.js +10 -22
  223. package/dist/gates/command.js.map +1 -1
  224. package/dist/gates/contract.d.ts.map +1 -1
  225. package/dist/gates/contract.js +22 -61
  226. package/dist/gates/contract.js.map +1 -1
  227. package/dist/gates/performance.d.ts.map +1 -1
  228. package/dist/gates/performance.js +13 -31
  229. package/dist/gates/performance.js.map +1 -1
  230. package/dist/gates/review.d.ts.map +1 -1
  231. package/dist/gates/review.js +21 -53
  232. package/dist/gates/review.js.map +1 -1
  233. package/dist/gates/security.d.ts.map +1 -1
  234. package/dist/gates/security.js +14 -32
  235. package/dist/gates/security.js.map +1 -1
  236. package/dist/gates/types.d.ts +28 -5
  237. package/dist/gates/types.d.ts.map +1 -1
  238. package/dist/gates/types.js +38 -1
  239. package/dist/gates/types.js.map +1 -1
  240. package/dist/hooks/bootstrap.d.ts +2 -0
  241. package/dist/hooks/bootstrap.d.ts.map +1 -1
  242. package/dist/hooks/bootstrap.js +5 -2
  243. package/dist/hooks/bootstrap.js.map +1 -1
  244. package/dist/index.d.ts +1 -2
  245. package/dist/index.d.ts.map +1 -1
  246. package/dist/index.js.map +1 -1
  247. package/dist/knowledge/audit.d.ts +7 -2
  248. package/dist/knowledge/audit.d.ts.map +1 -1
  249. package/dist/knowledge/audit.js +59 -79
  250. package/dist/knowledge/audit.js.map +1 -1
  251. package/dist/knowledge/flywheel-metrics.d.ts +39 -0
  252. package/dist/knowledge/flywheel-metrics.d.ts.map +1 -0
  253. package/dist/knowledge/flywheel-metrics.js +47 -0
  254. package/dist/knowledge/flywheel-metrics.js.map +1 -0
  255. package/dist/knowledge/import.d.ts.map +1 -1
  256. package/dist/knowledge/import.js +4 -14
  257. package/dist/knowledge/import.js.map +1 -1
  258. package/dist/knowledge/index-generator.d.ts.map +1 -1
  259. package/dist/knowledge/index-generator.js +17 -14
  260. package/dist/knowledge/index-generator.js.map +1 -1
  261. package/dist/knowledge/ingest.d.ts.map +1 -1
  262. package/dist/knowledge/ingest.js +9 -4
  263. package/dist/knowledge/ingest.js.map +1 -1
  264. package/dist/knowledge/migration.d.ts.map +1 -1
  265. package/dist/knowledge/migration.js +11 -8
  266. package/dist/knowledge/migration.js.map +1 -1
  267. package/dist/knowledge/reference-tracker.d.ts.map +1 -1
  268. package/dist/knowledge/reference-tracker.js +12 -9
  269. package/dist/knowledge/reference-tracker.js.map +1 -1
  270. package/dist/knowledge/store.d.ts +15 -0
  271. package/dist/knowledge/store.d.ts.map +1 -1
  272. package/dist/knowledge/store.js +59 -10
  273. package/dist/knowledge/store.js.map +1 -1
  274. package/dist/monitoring/context-tracker.d.ts.map +1 -1
  275. package/dist/monitoring/context-tracker.js +11 -20
  276. package/dist/monitoring/context-tracker.js.map +1 -1
  277. package/dist/monitoring/index.d.ts +1 -1
  278. package/dist/monitoring/index.d.ts.map +1 -1
  279. package/dist/monitoring/index.js +1 -2
  280. package/dist/monitoring/index.js.map +1 -1
  281. package/dist/monitoring/trace-analyzer.d.ts +15 -0
  282. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  283. package/dist/monitoring/trace-analyzer.js +19 -2
  284. package/dist/monitoring/trace-analyzer.js.map +1 -1
  285. package/dist/monitoring/traces.d.ts +21 -2
  286. package/dist/monitoring/traces.d.ts.map +1 -1
  287. package/dist/monitoring/traces.js +38 -29
  288. package/dist/monitoring/traces.js.map +1 -1
  289. package/dist/release/index.d.ts +2 -2
  290. package/dist/release/index.d.ts.map +1 -1
  291. package/dist/release/index.js +1 -5
  292. package/dist/release/index.js.map +1 -1
  293. package/dist/sdd/index-generator.js +10 -11
  294. package/dist/sdd/index-generator.js.map +1 -1
  295. package/dist/test-setup/project-fixture.d.ts +48 -0
  296. package/dist/test-setup/project-fixture.d.ts.map +1 -0
  297. package/dist/test-setup/project-fixture.js +106 -0
  298. package/dist/test-setup/project-fixture.js.map +1 -0
  299. package/dist/types/constraint.d.ts +8 -18
  300. package/dist/types/constraint.d.ts.map +1 -1
  301. package/dist/types/constraint.js +6 -1
  302. package/dist/types/constraint.js.map +1 -1
  303. package/dist/types/passes-gate.d.ts +10 -25
  304. package/dist/types/passes-gate.d.ts.map +1 -1
  305. package/dist/types/project-config.d.ts +1 -1
  306. package/dist/types/session.d.ts +6 -5
  307. package/dist/types/session.d.ts.map +1 -1
  308. package/dist/types/trace.d.ts +9 -0
  309. package/dist/types/trace.d.ts.map +1 -1
  310. package/dist/utils/exec.d.ts +10 -0
  311. package/dist/utils/exec.d.ts.map +1 -1
  312. package/dist/utils/exec.js +12 -0
  313. package/dist/utils/exec.js.map +1 -1
  314. package/dist/utils/file-walk.d.ts +9 -1
  315. package/dist/utils/file-walk.d.ts.map +1 -1
  316. package/dist/utils/file-walk.js +10 -1
  317. package/dist/utils/file-walk.js.map +1 -1
  318. package/dist/utils/frontmatter.d.ts +73 -0
  319. package/dist/utils/frontmatter.d.ts.map +1 -0
  320. package/dist/utils/frontmatter.js +141 -0
  321. package/dist/utils/frontmatter.js.map +1 -0
  322. package/dist/utils/jsonl.d.ts +92 -0
  323. package/dist/utils/jsonl.d.ts.map +1 -0
  324. package/dist/utils/jsonl.js +166 -0
  325. package/dist/utils/jsonl.js.map +1 -0
  326. package/dist/utils/package-version.d.ts +16 -0
  327. package/dist/utils/package-version.d.ts.map +1 -0
  328. package/dist/utils/package-version.js +63 -0
  329. package/dist/utils/package-version.js.map +1 -0
  330. package/package.json +1 -1
  331. package/src/CONTEXT.md +8 -2
  332. package/src/__tests__/acceptance-gate.test.ts +3 -1
  333. package/src/__tests__/checker-extra.test.ts +7 -1218
  334. package/src/__tests__/context-files-resolution.test.ts +116 -0
  335. package/src/__tests__/effective-constraints.test.ts +10 -13
  336. package/src/__tests__/exec.test.ts +35 -1
  337. package/src/__tests__/layering.test.ts +152 -0
  338. package/src/__tests__/passes-gate-extra.test.ts +0 -145
  339. package/src/__tests__/passes-gate.test.ts +130 -101
  340. package/src/__tests__/skip-semantics.test.ts +5 -9
  341. package/src/cli/__tests__/command-contract.test.ts +170 -0
  342. package/src/cli/command-contract.ts +108 -0
  343. package/src/cli/commands/CONTEXT.md +23 -8
  344. package/src/cli/commands/__tests__/acceptance.test.ts +40 -33
  345. package/src/cli/commands/__tests__/analyze-sessions.test.ts +35 -29
  346. package/src/cli/commands/__tests__/bin-exit-mapping.test.ts +107 -0
  347. package/src/cli/commands/__tests__/check-drift.test.ts +27 -34
  348. package/src/cli/commands/__tests__/check-skip-output.test.ts +21 -24
  349. package/src/cli/commands/__tests__/check.test.ts +448 -378
  350. package/src/cli/commands/__tests__/command.test.ts +85 -70
  351. package/src/cli/commands/__tests__/constraints-report.test.ts +100 -71
  352. package/src/cli/commands/__tests__/constraints-retire.test.ts +152 -95
  353. package/src/cli/commands/__tests__/contract.test.ts +27 -34
  354. package/src/cli/commands/__tests__/failure.test.ts +31 -34
  355. package/src/cli/commands/__tests__/init-injection.test.ts +58 -28
  356. package/src/cli/commands/__tests__/init.test.ts +77 -48
  357. package/src/cli/commands/__tests__/knowledge-flywheel-consistency.test.ts +108 -0
  358. package/src/cli/commands/__tests__/knowledge.test.ts +69 -43
  359. package/src/cli/commands/__tests__/passes-gate.test.ts +43 -45
  360. package/src/cli/commands/__tests__/performance.test.ts +22 -23
  361. package/src/cli/commands/__tests__/posteval-plan.test.ts +39 -38
  362. package/src/cli/commands/__tests__/project-path-anchoring.test.ts +157 -0
  363. package/src/cli/commands/__tests__/project-path-convention.test.ts +231 -0
  364. package/src/cli/commands/__tests__/registry.test.ts +75 -35
  365. package/src/cli/commands/__tests__/release.test.ts +209 -80
  366. package/src/cli/commands/__tests__/report-extra.test.ts +16 -16
  367. package/src/cli/commands/__tests__/report.test.ts +25 -25
  368. package/src/cli/commands/__tests__/review.test.ts +33 -31
  369. package/src/cli/commands/__tests__/security.test.ts +23 -27
  370. package/src/cli/commands/__tests__/spec-baseline-check.test.ts +20 -20
  371. package/src/cli/commands/__tests__/spec.test.ts +41 -29
  372. package/src/cli/commands/__tests__/status-extra.test.ts +18 -18
  373. package/src/cli/commands/__tests__/status-skipped-lines.test.ts +72 -0
  374. package/src/cli/commands/__tests__/status.test.ts +34 -34
  375. package/src/cli/commands/__tests__/sync-docs-agents.test.ts +77 -78
  376. package/src/cli/commands/__tests__/sync-docs.test.ts +72 -74
  377. package/src/cli/commands/__tests__/update-user-model.test.ts +97 -34
  378. package/src/cli/commands/__tests__/validate.test.ts +27 -29
  379. package/src/cli/commands/acceptance.ts +35 -24
  380. package/src/cli/commands/analyze-sessions.ts +25 -24
  381. package/src/cli/commands/check.ts +127 -66
  382. package/src/cli/commands/command.ts +30 -17
  383. package/src/cli/commands/constraints-report.ts +37 -34
  384. package/src/cli/commands/constraints-retire.ts +58 -55
  385. package/src/cli/commands/constraints.ts +10 -27
  386. package/src/cli/commands/contract.ts +51 -42
  387. package/src/cli/commands/definitions.ts +34 -227
  388. package/src/cli/commands/failure.ts +33 -26
  389. package/src/cli/commands/init.ts +166 -220
  390. package/src/cli/commands/knowledge.ts +192 -289
  391. package/src/cli/commands/passes-gate.ts +58 -68
  392. package/src/cli/commands/performance.ts +23 -18
  393. package/src/cli/commands/posteval-plan.ts +29 -15
  394. package/src/cli/commands/release.ts +70 -59
  395. package/src/cli/commands/report.ts +9 -5
  396. package/src/cli/commands/review.ts +39 -29
  397. package/src/cli/commands/sdd.ts +7 -5
  398. package/src/cli/commands/security.ts +35 -26
  399. package/src/cli/commands/spec-baseline-check.ts +16 -11
  400. package/src/cli/commands/spec.ts +66 -53
  401. package/src/cli/commands/status.ts +59 -53
  402. package/src/cli/commands/sync-docs/agents-syncer.ts +5 -2
  403. package/src/cli/commands/sync-docs/context-syncer.ts +3 -2
  404. package/src/cli/commands/sync-docs/index.ts +73 -100
  405. package/src/cli/commands/sync-docs/project-reader.ts +17 -18
  406. package/src/cli/commands/update-user-model.ts +64 -61
  407. package/src/cli/commands/validate.ts +31 -25
  408. package/src/cli/session-mining/__tests__/transcript.test.ts +118 -0
  409. package/src/cli/session-mining/transcript.ts +26 -8
  410. package/src/context/session-manager.ts +19 -33
  411. package/src/core/CONTEXT.md +10 -6
  412. package/src/core/constraints/__tests__/capabilities-reconcile.test.ts +200 -0
  413. package/src/core/constraints/__tests__/capability-counts.test.ts +94 -0
  414. package/src/core/constraints/__tests__/git-evidence.test.ts +208 -0
  415. package/src/core/constraints/__tests__/injection-drift.test.ts +3 -10
  416. package/src/core/constraints/__tests__/injection-writer.test.ts +231 -0
  417. package/src/core/constraints/__tests__/trace-injection.test.ts +71 -0
  418. package/src/core/constraints/__tests__/usage-report.test.ts +112 -0
  419. package/src/core/constraints/agent-prompt-renderer.ts +2 -6
  420. package/src/core/constraints/capabilities-parser.ts +53 -35
  421. package/src/core/constraints/capabilities-reconcile.ts +166 -0
  422. package/src/core/constraints/checker.ts +82 -133
  423. package/src/core/constraints/checkers/__tests__/capability-sync.test.ts +273 -0
  424. package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +176 -0
  425. package/src/core/constraints/checkers/__tests__/context-doc-sync.test.ts +77 -0
  426. package/src/core/constraints/checkers/__tests__/docs-freshness.test.ts +126 -0
  427. package/src/{__tests__ → core/constraints/checkers/__tests__}/governance-presence.test.ts +83 -9
  428. package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +50 -0
  429. package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +76 -0
  430. package/src/{__tests__ → core/constraints/checkers/__tests__}/no-hardcoded-credentials.test.ts +4 -3
  431. package/src/core/constraints/checkers/__tests__/no-test-simplification.test.ts +58 -0
  432. package/src/core/constraints/checkers/__tests__/three-state-consistency.test.ts +153 -0
  433. package/src/core/constraints/checkers/capability-sync.ts +75 -96
  434. package/src/core/constraints/checkers/context-doc-sync.ts +15 -25
  435. package/src/core/constraints/checkers/docs-freshness.ts +54 -70
  436. package/src/core/constraints/checkers/governance-presence.ts +7 -25
  437. package/src/core/constraints/checkers/index.ts +9 -2
  438. package/src/core/constraints/checkers/no-test-simplification.ts +4 -3
  439. package/src/core/constraints/checkers/types.ts +60 -4
  440. package/src/core/constraints/context-builder.ts +39 -91
  441. package/src/core/constraints/doc-freshness/runner.ts +2 -1
  442. package/src/core/constraints/git-evidence.ts +120 -0
  443. package/src/core/constraints/injection-drift.ts +13 -60
  444. package/src/core/constraints/injection-writer.ts +212 -0
  445. package/src/core/constraints/usage-report.ts +36 -17
  446. package/src/core/index.ts +4 -2
  447. package/src/core/project-config-loader.ts +49 -9
  448. package/src/core/validators/__tests__/passes-gate.test.ts +2 -56
  449. package/src/core/validators/__tests__/test-output.test.ts +372 -0
  450. package/src/core/validators/passes-gate.ts +86 -248
  451. package/src/core/validators/test-output.ts +128 -0
  452. package/src/failure/__tests__/recorder.test.ts +168 -0
  453. package/src/failure/recorder.ts +12 -10
  454. package/src/gates/CONTEXT.md +7 -4
  455. package/src/gates/__tests__/acceptance-types-single-source.test.ts +68 -0
  456. package/src/gates/__tests__/acceptance.test.ts +4 -86
  457. package/src/gates/__tests__/checker-gate.test.ts +24 -0
  458. package/src/gates/__tests__/effective-gates.test.ts +3 -8
  459. package/src/gates/__tests__/test-verdict-consistency.test.ts +140 -0
  460. package/src/gates/acceptance.ts +19 -84
  461. package/src/gates/checker-gate.ts +12 -15
  462. package/src/gates/command.ts +10 -16
  463. package/src/gates/contract.ts +22 -61
  464. package/src/gates/performance.ts +10 -22
  465. package/src/gates/review.ts +21 -41
  466. package/src/gates/security.ts +10 -22
  467. package/src/gates/types.ts +70 -5
  468. package/src/hooks/CONTEXT.md +1 -1
  469. package/src/hooks/bootstrap.ts +5 -2
  470. package/src/index.ts +0 -4
  471. package/src/knowledge/CONTEXT.md +8 -3
  472. package/src/knowledge/__tests__/audit-labels.test.ts +44 -0
  473. package/src/knowledge/__tests__/flywheel-metrics.test.ts +135 -0
  474. package/src/knowledge/__tests__/import.test.ts +44 -0
  475. package/src/knowledge/__tests__/index-generator.test.ts +53 -0
  476. package/src/knowledge/__tests__/ingest.test.ts +85 -0
  477. package/src/knowledge/__tests__/migration.test.ts +47 -0
  478. package/src/knowledge/__tests__/reference-tracker.test.ts +16 -0
  479. package/src/knowledge/__tests__/store.test.ts +194 -0
  480. package/src/knowledge/audit.ts +67 -71
  481. package/src/knowledge/flywheel-metrics.ts +71 -0
  482. package/src/knowledge/import.ts +4 -18
  483. package/src/knowledge/index-generator.ts +19 -14
  484. package/src/knowledge/ingest.ts +9 -4
  485. package/src/knowledge/migration.ts +11 -8
  486. package/src/knowledge/reference-tracker.ts +12 -8
  487. package/src/knowledge/store.ts +64 -11
  488. package/src/monitoring/CONTEXT.md +8 -3
  489. package/src/monitoring/__tests__/skipped-lines-report.test.ts +178 -0
  490. package/src/monitoring/__tests__/traces.test.ts +57 -0
  491. package/src/monitoring/context-tracker.ts +11 -23
  492. package/src/monitoring/index.ts +1 -1
  493. package/src/monitoring/trace-analyzer.ts +21 -2
  494. package/src/monitoring/traces.ts +39 -36
  495. package/src/release/CONTEXT.md +1 -0
  496. package/src/release/__tests__/barrel.test.ts +60 -0
  497. package/src/release/index.ts +2 -13
  498. package/src/sdd/__tests__/index-generator.test.ts +71 -0
  499. package/src/sdd/index-generator.ts +9 -9
  500. package/src/test-setup/__tests__/project-fixture.test.ts +178 -0
  501. package/src/test-setup/project-fixture.ts +87 -0
  502. package/src/tools/CONTEXT.md +6 -0
  503. package/src/tools/__tests__/registry.test.ts +221 -0
  504. package/src/types/__tests__/types.test.ts +4 -5
  505. package/src/types/constraint.ts +16 -27
  506. package/src/types/passes-gate.ts +10 -30
  507. package/src/types/project-config.ts +1 -1
  508. package/src/types/session.ts +5 -5
  509. package/src/types/trace.ts +10 -0
  510. package/src/utils/__tests__/frontmatter.test.ts +206 -0
  511. package/src/utils/__tests__/jsonl-skip-disposition.test.ts +175 -0
  512. package/src/utils/__tests__/jsonl.test.ts +187 -0
  513. package/src/utils/__tests__/package-version.test.ts +97 -0
  514. package/src/utils/exec.ts +15 -0
  515. package/src/utils/file-walk.ts +11 -2
  516. package/src/utils/frontmatter.ts +121 -0
  517. package/src/utils/jsonl.ts +167 -0
  518. package/src/utils/package-version.ts +27 -0
  519. package/dist/cli/commands/doc-freshness-check.d.ts +0 -53
  520. package/dist/cli/commands/doc-freshness-check.d.ts.map +0 -1
  521. package/dist/cli/commands/doc-freshness-check.js +0 -352
  522. package/dist/cli/commands/doc-freshness-check.js.map +0 -1
  523. package/dist/types/index.d.ts +0 -14
  524. package/dist/types/index.d.ts.map +0 -1
  525. package/dist/types/index.js +0 -39
  526. package/dist/types/index.js.map +0 -1
  527. package/src/__tests__/long-running.test.ts +0 -17
  528. package/src/__tests__/passes-gate-extension.test.ts +0 -151
  529. package/src/cli/commands/__tests__/doc-freshness-check.test.ts +0 -168
  530. package/src/cli/commands/doc-freshness-check.ts +0 -386
  531. package/src/spec/CONTEXT.md +0 -11
  532. package/src/types/index.ts +0 -47
@@ -15,10 +15,15 @@
15
15
  * 7. Check private flag
16
16
  * 8. npm publish (or skip if PR flow)
17
17
  * 9. GitHub Release
18
+ *
19
+ * 判定经返回值外溢(架构评审候选7):12 个前置闸门维持**首败即停**,每个闸门失败
20
+ * 返回 `gate <id>: <原因>`;退出码映射在 bin/harness.js 唯一一处。输出经注入 io
21
+ * 流式打印(分钟级子进程阶段不能静默)。
18
22
  */
23
+ import { type CommandIO, type CommandResult } from '../command-contract';
19
24
  export interface ReleaseOptions {
20
25
  bumpType?: 'patch' | 'minor' | 'major';
21
26
  dryRun?: string;
22
27
  }
23
- export declare function release(options: ReleaseOptions): Promise<void>;
28
+ export declare function release(options: ReleaseOptions, io?: CommandIO): Promise<CommandResult>;
24
29
  //# sourceMappingURL=release.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiLpE"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,EAA4B,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkBD,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,GAAE,SAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkLxG"}
@@ -16,6 +16,10 @@
16
16
  * 7. Check private flag
17
17
  * 8. npm publish (or skip if PR flow)
18
18
  * 9. GitHub Release
19
+ *
20
+ * 判定经返回值外溢(架构评审候选7):12 个前置闸门维持**首败即停**,每个闸门失败
21
+ * 返回 `gate <id>: <原因>`;退出码映射在 bin/harness.js 唯一一处。输出经注入 io
22
+ * 流式打印(分钟级子进程阶段不能静默)。
19
23
  */
20
24
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
25
  if (k2 === undefined) k2 = k;
@@ -60,6 +64,7 @@ const fs = __importStar(require("fs"));
60
64
  const path = __importStar(require("path"));
61
65
  const chalk_1 = __importDefault(require("chalk"));
62
66
  const release_1 = require("../../release");
67
+ const command_contract_1 = require("../command-contract");
63
68
  async function run(cmd, cwd, timeout = 60_000) {
64
69
  try {
65
70
  const stdout = (0, child_process_1.execSync)(cmd, { cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout });
@@ -71,61 +76,65 @@ async function run(cmd, cwd, timeout = 60_000) {
71
76
  return { stdout: stdout.trim(), stderr: stderr.trim() || e.message || String(e) };
72
77
  }
73
78
  }
74
- async function release(options) {
79
+ /** 闸门失败结果:reason 含闸门标识,可被调用方逐闸门断言 */
80
+ function gateFail(gate, detail) {
81
+ return { kind: 'fail', reason: `gate ${gate}: ${detail}` };
82
+ }
83
+ async function release(options, io = command_contract_1.processIO) {
75
84
  const pkgPath = process.cwd();
76
85
  const bumpType = options.bumpType || 'patch';
77
86
  const dryRun = options.dryRun === 'true';
78
87
  // ── 1. Verify package ──
79
88
  const pkgJsonPath = path.join(pkgPath, 'package.json');
80
89
  if (!fs.existsSync(pkgJsonPath)) {
81
- console.error(chalk_1.default.red(`❌ Not a package: ${pkgPath}`));
82
- process.exit(1);
90
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ Not a package: ${pkgPath}`));
91
+ return gateFail('package', `not a package: ${pkgPath}`);
83
92
  }
84
93
  const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
85
94
  const pkgName = pkgJson.name;
86
95
  const oldVersion = pkgJson.version;
87
- console.log(chalk_1.default.cyan(`📦 ${pkgName}@${oldVersion}`));
88
- console.log(chalk_1.default.cyan(` bump: ${bumpType}${dryRun ? ' (dry-run)' : ''}`));
96
+ (0, command_contract_1.log)(io, chalk_1.default.cyan(`📦 ${pkgName}@${oldVersion}`));
97
+ (0, command_contract_1.log)(io, chalk_1.default.cyan(` bump: ${bumpType}${dryRun ? ' (dry-run)' : ''}`));
89
98
  // ── 2. Check branch (must be on master/main) ──
90
99
  const branchResult = await run('git rev-parse --abbrev-ref HEAD', pkgPath);
91
100
  const currentBranch = branchResult.stdout.trim();
92
101
  if (currentBranch !== 'master' && currentBranch !== 'main') {
93
- console.error(chalk_1.default.red(`❌ Must be on master or main branch to release. Currently on: ${currentBranch}`));
94
- console.error(chalk_1.default.gray(' Run: git checkout master && git merge ' + currentBranch));
95
- process.exit(1);
102
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ Must be on master or main branch to release. Currently on: ${currentBranch}`));
103
+ (0, command_contract_1.logError)(io, chalk_1.default.gray(' Run: git checkout master && git merge ' + currentBranch));
104
+ return gateFail('branch', `must be on master or main branch, currently on ${currentBranch}`);
96
105
  }
97
- console.log(chalk_1.default.green(`✅ git: on ${currentBranch}`));
106
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ git: on ${currentBranch}`));
98
107
  // ── 2b. Check remote sync ──
99
108
  await run('git fetch origin', pkgPath, 15_000);
100
109
  const behind = await run(`git rev-list --count HEAD..origin/${currentBranch}`, pkgPath);
101
110
  if (behind.stdout.trim() !== '0') {
102
- console.error(chalk_1.default.red(`❌ Local ${currentBranch} is ${behind.stdout.trim()} commits behind origin/${currentBranch}. Pull first.`));
103
- process.exit(1);
111
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ Local ${currentBranch} is ${behind.stdout.trim()} commits behind origin/${currentBranch}. Pull first.`));
112
+ return gateFail('remote-sync', `local ${currentBranch} is ${behind.stdout.trim()} commits behind origin/${currentBranch}`);
104
113
  }
105
- console.log(chalk_1.default.green('✅ git: synced with remote'));
114
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ git: synced with remote'));
106
115
  // ── 2c. Check clean working tree ──
107
116
  const stat = await run('git status --porcelain -uno', pkgPath);
108
117
  if (stat.stdout.length > 0) {
109
- console.error(chalk_1.default.red('❌ Uncommitted changes. Commit or stash before releasing.'));
110
- console.error(chalk_1.default.gray(stat.stdout.slice(0, 500)));
111
- process.exit(1);
118
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ Uncommitted changes. Commit or stash before releasing.'));
119
+ (0, command_contract_1.logError)(io, chalk_1.default.gray(stat.stdout.slice(0, 500)));
120
+ return gateFail('clean-tree', 'working tree has uncommitted changes');
112
121
  }
113
- console.log(chalk_1.default.green('✅ git: clean'));
122
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ git: clean'));
114
123
  // ── 3. tsc build ──
115
- console.log(chalk_1.default.cyan('🔨 Building...'));
124
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('🔨 Building...'));
116
125
  const build = await run('npx tsc', pkgPath, 60_000);
117
126
  if (build.stderr && !build.stdout) {
118
- console.error(chalk_1.default.red('❌ tsc failed:'), build.stderr.slice(0, 800));
119
- process.exit(1);
127
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ tsc failed:'), build.stderr.slice(0, 800));
128
+ return gateFail('build', `tsc failed: ${build.stderr.slice(0, 200)}`);
120
129
  }
121
- console.log(chalk_1.default.green('✅ tsc: built'));
130
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ tsc: built'));
122
131
  // ── 4. Verify dist(发布物完整性自检,harness#77:清单随源码维护,不再本文件硬编码)──
123
132
  const integrity = (0, release_1.verifyReleaseArtifacts)(pkgPath);
124
133
  if (!integrity.ok) {
125
- console.error(chalk_1.default.red(`❌ dist missing critical artifacts (${integrity.missing.length}): ${integrity.missing.join(', ')}`));
126
- process.exit(1);
134
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ dist missing critical artifacts (${integrity.missing.length}): ${integrity.missing.join(', ')}`));
135
+ return gateFail('dist-artifacts', `missing critical artifacts: ${integrity.missing.join(', ')}`);
127
136
  }
128
- console.log(chalk_1.default.green(`✅ dist: verified (${integrity.checked.length} critical artifacts)`));
137
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ dist: verified (${integrity.checked.length} critical artifacts)`));
129
138
  if (dryRun) {
130
139
  const [major, minor, patch] = oldVersion.split('.').map(Number);
131
140
  let newVer;
@@ -135,11 +144,11 @@ async function release(options) {
135
144
  newVer = `${major}.${minor + 1}.0`;
136
145
  else
137
146
  newVer = `${major}.${minor}.${patch + 1}`;
138
- console.log(chalk_1.default.yellow(`🏁 Dry-run complete. Would publish: ${pkgName}@${newVer}`));
139
- process.exit(0);
147
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`🏁 Dry-run complete. Would publish: ${pkgName}@${newVer}`));
148
+ return { kind: 'ok' };
140
149
  }
141
150
  // ── 5. Bump version (npm version creates git commit + tag atomically) ──
142
- console.log(chalk_1.default.cyan('🔢 Bumping version...'));
151
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('🔢 Bumping version...'));
143
152
  const [major, minor, patch] = oldVersion.split('.').map(Number);
144
153
  let expectedNew;
145
154
  if (bumpType === 'major')
@@ -151,81 +160,81 @@ async function release(options) {
151
160
  const expectedTag = `v${expectedNew}`;
152
161
  const tagExists = await run(`git tag -l "${expectedTag}"`, pkgPath);
153
162
  if (tagExists.stdout.trim() === expectedTag) {
154
- console.error(chalk_1.default.red(`❌ Tag ${expectedTag} already exists. Version may have been released already.`));
155
- process.exit(1);
163
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ Tag ${expectedTag} already exists. Version may have been released already.`));
164
+ return gateFail('tag-conflict', `tag ${expectedTag} already exists`);
156
165
  }
157
166
  const bump = await run(`npm version ${bumpType} -m "release: %s"`, pkgPath);
158
167
  if (bump.stderr && !bump.stdout) {
159
- console.error(chalk_1.default.red('❌ npm version failed:'), bump.stderr);
160
- process.exit(1);
168
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ npm version failed:'), bump.stderr);
169
+ return gateFail('version-bump', `npm version ${bumpType} failed: ${bump.stderr.slice(0, 200)}`);
161
170
  }
162
171
  const newVersion = bump.stdout.trim().replace(/^v/, '');
163
172
  const tag = `v${newVersion}`;
164
- console.log(chalk_1.default.green(`✅ version: ${oldVersion} → ${newVersion} (committed + tagged)`));
173
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ version: ${oldVersion} → ${newVersion} (committed + tagged)`));
165
174
  // ── 6. Push (handle protected branch via PR) ──
166
- console.log(chalk_1.default.cyan('⬆️ Pushing...'));
175
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('⬆️ Pushing...'));
167
176
  const push = await run(`git push origin ${currentBranch}`, pkgPath, 30_000);
168
177
  const isProtected = push.stderr.includes('GH006') || push.stderr.includes('protected branch');
169
178
  if (isProtected) {
170
179
  // Protected branch: create release branch + PR
171
180
  const releaseBranch = `release/v${newVersion}`;
172
- console.log(chalk_1.default.yellow(`⚠️ ${currentBranch} is protected. Creating PR via ${releaseBranch}...`));
181
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ ${currentBranch} is protected. Creating PR via ${releaseBranch}...`));
173
182
  await run(`git checkout -b ${releaseBranch}`, pkgPath);
174
183
  await run(`git push origin ${releaseBranch}`, pkgPath, 30_000);
175
184
  // Create PR
176
185
  const prBody = `## Release ${pkgName}@${newVersion}\n\n- Bump version: ${oldVersion} → ${newVersion}\n- Changelog updated\n\nAfter merge, push tag to trigger npm publish:\n\`\`\`\ngit push origin ${tag}\n\`\`\``;
177
186
  const pr = await run(`gh pr create --title "release: ${pkgName}@${newVersion}" --body "${prBody}" --base ${currentBranch}`, pkgPath, 30_000);
178
187
  if (pr.stdout) {
179
- console.log(chalk_1.default.green(`✅ PR created: ${pr.stdout.trim()}`));
188
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ PR created: ${pr.stdout.trim()}`));
180
189
  }
181
190
  else {
182
- console.error(chalk_1.default.red('❌ PR creation failed:'), pr.stderr.slice(0, 500));
183
- process.exit(1);
191
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ PR creation failed:'), pr.stderr.slice(0, 500));
192
+ return gateFail('pr-create', `gh pr create failed: ${pr.stderr.slice(0, 200)}`);
184
193
  }
185
194
  // Switch back to original branch
186
195
  await run(`git checkout ${currentBranch}`, pkgPath);
187
- console.log(chalk_1.default.cyan('\n📋 Next steps:'));
188
- console.log(chalk_1.default.gray(` 1. Merge the PR: ${pr.stdout.trim()}`));
189
- console.log(chalk_1.default.gray(` 2. After merge, push tag to trigger npm publish:`));
190
- console.log(chalk_1.default.gray(` git push origin ${tag}`));
191
- console.log(chalk_1.default.gray(` 3. Or run: gh release create ${tag} --generate-notes`));
192
- return;
196
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('\n📋 Next steps:'));
197
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` 1. Merge the PR: ${pr.stdout.trim()}`));
198
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` 2. After merge, push tag to trigger npm publish:`));
199
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` git push origin ${tag}`));
200
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` 3. Or run: gh release create ${tag} --generate-notes`));
201
+ return { kind: 'ok' };
193
202
  }
194
203
  if (push.stderr && push.stderr.includes('error')) {
195
- console.error(chalk_1.default.red('❌ git push failed:'), push.stderr.slice(0, 500));
196
- process.exit(1);
204
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ git push failed:'), push.stderr.slice(0, 500));
205
+ return gateFail('git-push', `git push origin ${currentBranch} failed: ${push.stderr.slice(0, 200)}`);
197
206
  }
198
207
  await run(`git push origin ${tag}`, pkgPath, 30_000);
199
- console.log(chalk_1.default.green('✅ git: pushed'));
208
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ git: pushed'));
200
209
  // ── 7. Check private flag ──
201
210
  if (pkgJson.private) {
202
- console.error(chalk_1.default.red('❌ package.json has "private": true. Remove it before publishing.'));
203
- console.error(chalk_1.default.gray(' The release tool will NOT auto-remove private flag.'));
204
- process.exit(1);
211
+ (0, command_contract_1.logError)(io, chalk_1.default.red('❌ package.json has "private": true. Remove it before publishing.'));
212
+ (0, command_contract_1.logError)(io, chalk_1.default.gray(' The release tool will NOT auto-remove private flag.'));
213
+ return gateFail('private-flag', 'package.json has "private": true');
205
214
  }
206
- console.log(chalk_1.default.green('✅ package: not private'));
215
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ package: not private'));
207
216
  // ── 8. npm publish ──
208
217
  const origRegistry = await run('npm config get registry', pkgPath);
209
218
  await run('npm config set registry https://registry.npmjs.org/', pkgPath);
210
- console.log(chalk_1.default.cyan('📤 Publishing to npm...'));
219
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('📤 Publishing to npm...'));
211
220
  await run('npm publish --registry https://registry.npmjs.org/', pkgPath, 180_000);
212
221
  await run(`npm config set registry ${origRegistry.stdout}`, pkgPath);
213
222
  const verify = await run(`npm view ${pkgName} version --registry https://registry.npmjs.org/`, pkgPath);
214
223
  if (verify.stdout.trim() === newVersion) {
215
- console.log(chalk_1.default.green(`✅ npm: published ${pkgName}@${newVersion}`));
224
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ npm: published ${pkgName}@${newVersion}`));
216
225
  }
217
226
  else {
218
- console.error(chalk_1.default.red(`❌ npm publish verification failed. Expected ${newVersion}, registry has ${verify.stdout.trim() || '???'}`));
219
- process.exit(1);
227
+ (0, command_contract_1.logError)(io, chalk_1.default.red(`❌ npm publish verification failed. Expected ${newVersion}, registry has ${verify.stdout.trim() || '???'}`));
228
+ return gateFail('npm-publish-verify', `expected ${newVersion}, registry has ${verify.stdout.trim() || '???'}`);
220
229
  }
221
230
  // ── 9. GitHub Release ──
222
- console.log(chalk_1.default.cyan('🐙 Creating GitHub Release...'));
231
+ (0, command_contract_1.log)(io, chalk_1.default.cyan('🐙 Creating GitHub Release...'));
223
232
  const gh = await run(`gh release create ${tag} --generate-notes`, pkgPath, 30_000);
224
233
  if (gh.stderr && gh.stderr.includes('already exists')) {
225
- console.log(chalk_1.default.yellow(`⚠️ gh: release ${tag} already exists`));
234
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ gh: release ${tag} already exists`));
226
235
  }
227
236
  else if (gh.stderr) {
228
- console.log(chalk_1.default.yellow(`⚠️ gh: release may have failed (non-fatal): ${gh.stderr.slice(0, 200)}`));
237
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`⚠️ gh: release may have failed (non-fatal): ${gh.stderr.slice(0, 200)}`));
229
238
  }
230
239
  else {
231
240
  let repoUrl = '';
@@ -236,9 +245,10 @@ async function release(options) {
236
245
  repoUrl = `https://github.com/${m[1]}/${m[2]}/releases/tag/${tag}`;
237
246
  }
238
247
  catch { /* no remote */ }
239
- console.log(chalk_1.default.green(`✅ GitHub Release: ${repoUrl || tag}`));
248
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ GitHub Release: ${repoUrl || tag}`));
240
249
  }
241
- console.log(chalk_1.default.green(`\n🎉 Released ${pkgName}@${newVersion}`));
242
- console.log(chalk_1.default.gray(` npm: https://www.npmjs.com/package/${pkgName}/v/${newVersion}`));
250
+ (0, command_contract_1.log)(io, chalk_1.default.green(`\n🎉 Released ${pkgName}@${newVersion}`));
251
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` npm: https://www.npmjs.com/package/${pkgName}/v/${newVersion}`));
252
+ return { kind: 'ok' };
243
253
  }
244
254
  //# sourceMappingURL=release.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * 生成检查报告(接入真实约束检查数据)
5
5
  */
6
+ import { type CommandIO, type CommandResult } from '../command-contract';
6
7
  export interface ReportOptions {
7
8
  /** 输出文件路径 */
8
9
  output?: string;
@@ -14,5 +15,5 @@ export interface ReportOptions {
14
15
  /**
15
16
  * 生成检查报告
16
17
  */
17
- export declare function report(options: ReportOptions): Promise<void>;
18
+ export declare function report(options: ReportOptions, io?: CommandIO): Promise<CommandResult>;
18
19
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,aAAa;IAC5B,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqBD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmElE"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC5B,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqBD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,GAAE,SAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqEtG"}
@@ -47,13 +47,16 @@ const fs = __importStar(require("fs/promises"));
47
47
  const checker_1 = require("../../core/constraints/checker");
48
48
  const definitions_1 = require("../../core/constraints/definitions");
49
49
  const constraint_handler_1 = require("../../failure/constraint-handler");
50
+ const traces_1 = require("../../monitoring/traces");
51
+ const command_contract_1 = require("../command-contract");
50
52
  /**
51
53
  * 生成检查报告
52
54
  */
53
- async function report(options) {
54
- console.log(chalk_1.default.blue('📊 生成检查报告...'));
55
+ async function report(options, io = command_contract_1.processIO) {
56
+ (0, command_contract_1.log)(io, chalk_1.default.blue('📊 生成检查报告...'));
55
57
  const projectPath = options.projectPath || process.cwd();
56
- const checker = checker_1.ConstraintChecker.getInstance();
58
+ // trace 记录器经构造参数接线(harness#88):本命令是组合根
59
+ const checker = new checker_1.ConstraintChecker((0, traces_1.getTraceCollector)());
57
60
  const allConstraints = { ...definitions_1.IRON_LAWS, ...definitions_1.GUIDELINES, ...definitions_1.PROMPTS };
58
61
  const totalConstraints = Object.keys(allConstraints).length;
59
62
  const context = {
@@ -101,11 +104,12 @@ async function report(options) {
101
104
  }
102
105
  if (options.output) {
103
106
  await fs.writeFile(options.output, content, 'utf-8');
104
- console.log(chalk_1.default.green(`✅ 报告已保存到: ${options.output}`));
107
+ (0, command_contract_1.log)(io, chalk_1.default.green(`✅ 报告已保存到: ${options.output}`));
105
108
  }
106
109
  else {
107
- console.log(content);
110
+ (0, command_contract_1.log)(io, content);
108
111
  }
112
+ return { kind: 'ok' };
109
113
  }
110
114
  function generateMarkdownReport(data) {
111
115
  const lines = [
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCH,wBAmEC;AAzGD,kDAA0B;AAC1B,gDAAkC;AAClC,4DAAmE;AACnE,oEAAoF;AACpF,yEAAsE;AA+BtE;;GAEG;AACI,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,2BAAiB,CAAC,WAAW,EAAE,CAAC;IAEhD,MAAM,cAAc,GAAG,EAAE,GAAG,uBAAS,EAAE,GAAG,wBAAU,EAAE,GAAG,qBAAO,EAAE,CAAC;IACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAE5D,MAAM,OAAO,GAAsB;QACjC,SAAS,EAAE,mBAAmB;QAC9B,WAAW;KACZ,CAAC;IAEF,6CAA6C;IAC7C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,uCAAkB,EAAC,GAAG,EAAE,CACpD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAClC,CAAC;IACF,6BAA6B;IAC7B,MAAM,MAAM,GAAG,WAAY,CAAC;IAE5B,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpE,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;KACzB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAe;QAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW;QACX,WAAW,EAAE;YACX,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAS,CAAC,CAAC,MAAM;YACvC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAU,CAAC,CAAC,MAAM;YAC1C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAO,CAAC,CAAC,MAAM;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAM;YAC/E,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,QAAQ,EAAE,gBAAgB,CAAC,MAAM;YACjC,UAAU;SACX;KACF,CAAC;IAEF,IAAI,OAAe,CAAC;IAEpB,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,UAAU;YACb,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM;QACR,KAAK,MAAM;YACT,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM;QACR;YACE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAgB;IAC9C,MAAM,KAAK,GAAa;QACtB,gBAAgB;QAChB,EAAE;QACF,WAAW,IAAI,CAAC,SAAS,EAAE;QAC3B,WAAW,IAAI,CAAC,WAAW,EAAE;QAC7B,EAAE;QACF,KAAK;QACL,EAAE;QACF,SAAS;QACT,EAAE;QACF,aAAa;QACb,iBAAiB;QACjB,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI;QACrC,iBAAiB,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI;QAC9C,kBAAkB,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI;QACjD,eAAe,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI;QAC3C,UAAU,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI;QACrC,kBAAkB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI;QAC7C,oBAAoB,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI;QACjD,EAAE;KACH,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACtC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAgB;IAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC3D,CAAC,CAAC,mBAAmB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrD,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAC/D,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;QACnB,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;;;;;;;;;;;;;;;;0BAqBiB,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC,WAAW;;;;;0BAK3C,IAAI,CAAC,WAAW,CAAC,KAAK;gCAChB,IAAI,CAAC,WAAW,CAAC,QAAQ;iCACxB,IAAI,CAAC,WAAW,CAAC,UAAU;8BAC9B,IAAI,CAAC,WAAW,CAAC,OAAO;wCACd,IAAI,CAAC,WAAW,CAAC,MAAM;wCACvB,IAAI,CAAC,WAAW,CAAC,MAAM;yBACtC,IAAI,CAAC,WAAW,CAAC,QAAQ;;;IAG9C,cAAc;;;;;;QAMV,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * 代码审查门控,检查审查状态
5
5
  */
6
+ import { type CommandIO, type CommandResult } from '../command-contract';
6
7
  export interface ReviewOptions {
7
8
  /** 项目路径 */
8
9
  projectPath?: string;
@@ -18,9 +19,9 @@ export interface ReviewOptions {
18
19
  /**
19
20
  * 执行审查门控
20
21
  */
21
- export declare function review(options: ReviewOptions): Promise<void>;
22
+ export declare function review(options: ReviewOptions, io?: CommandIO): Promise<CommandResult>;
22
23
  /**
23
24
  * 显示审查状态详情
24
25
  */
25
- export declare function reviewStatus(options: ReviewOptions): Promise<void>;
26
+ export declare function reviewStatus(options: ReviewOptions, io?: CommandIO): Promise<CommandResult>;
26
27
  //# sourceMappingURL=review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe;IACf,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ClE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxE"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe;IACf,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,aAAa,EACtB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CA+CxB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CA0CxB"}
@@ -13,11 +13,12 @@ exports.reviewStatus = reviewStatus;
13
13
  const chalk_1 = __importDefault(require("chalk"));
14
14
  const exec_1 = require("../../utils/exec");
15
15
  const review_1 = require("../../gates/review");
16
+ const command_contract_1 = require("../command-contract");
16
17
  /**
17
18
  * 执行审查门控
18
19
  */
19
- async function review(options) {
20
- console.log(chalk_1.default.blue('👀 代码审查门控检查...'));
20
+ async function review(options, io = command_contract_1.processIO) {
21
+ (0, command_contract_1.log)(io, chalk_1.default.blue('👀 代码审查门控检查...'));
21
22
  const projectPath = options.projectPath || process.cwd();
22
23
  const gate = new review_1.ReviewGate({
23
24
  minReviewers: options.minReviewers ?? 1,
@@ -29,73 +30,76 @@ async function review(options) {
29
30
  });
30
31
  try {
31
32
  const { stdout: branch } = await (0, exec_1.execAsync)('git rev-parse --abbrev-ref HEAD', { cwd: projectPath });
32
- console.log(chalk_1.default.gray(`当前分支: ${branch.trim()}`));
33
+ (0, command_contract_1.log)(io, chalk_1.default.gray(`当前分支: ${branch.trim()}`));
33
34
  const result = await gate.check({ projectPath, projectId: 'default' });
34
- console.log();
35
+ (0, command_contract_1.log)(io);
35
36
  if (result.passed) {
36
- console.log(chalk_1.default.green('✅ 代码审查门控检查通过'));
37
+ (0, command_contract_1.log)(io, chalk_1.default.green('✅ 代码审查门控检查通过'));
37
38
  if (result.details) {
38
- console.log(chalk_1.default.gray(` 审批: ${result.details.approvals ?? 0}, 变更请求: ${result.details.changesRequested ?? 0}`));
39
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` 审批: ${result.details.approvals ?? 0}, 变更请求: ${result.details.changesRequested ?? 0}`));
39
40
  }
40
41
  }
41
42
  else {
42
- console.log(chalk_1.default.red('❌ 代码审查门控检查失败'));
43
- console.log(chalk_1.default.red(` ${result.message}`));
43
+ (0, command_contract_1.log)(io, chalk_1.default.red('❌ 代码审查门控检查失败'));
44
+ (0, command_contract_1.log)(io, chalk_1.default.red(` ${result.message}`));
44
45
  if (result.details?.suggestion) {
45
- console.log(chalk_1.default.gray(` ${result.details.suggestion}`));
46
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` ${result.details.suggestion}`));
46
47
  }
47
- process.exit(1);
48
+ return { kind: 'fail', reason: `review gate denied: ${result.message}` };
48
49
  }
50
+ return { kind: 'ok' };
49
51
  }
50
52
  catch (error) {
51
- console.log();
52
- console.log(chalk_1.default.red('❌ 代码审查门控检查出错'));
53
- console.log(chalk_1.default.red(` ${error.message}`));
53
+ (0, command_contract_1.log)(io);
54
+ (0, command_contract_1.log)(io, chalk_1.default.red('❌ 代码审查门控检查出错'));
55
+ (0, command_contract_1.log)(io, chalk_1.default.red(` ${error.message}`));
54
56
  if (error.message.includes('not a git repository')) {
55
- console.log();
56
- console.log(chalk_1.default.gray('提示: 此命令需要在 Git 仓库中运行'));
57
+ (0, command_contract_1.log)(io);
58
+ (0, command_contract_1.log)(io, chalk_1.default.gray('提示: 此命令需要在 Git 仓库中运行'));
57
59
  }
58
- process.exit(1);
60
+ return { kind: 'fail', reason: `review gate error: ${error.message}` };
59
61
  }
60
62
  }
61
63
  /**
62
64
  * 显示审查状态详情
63
65
  */
64
- async function reviewStatus(options) {
65
- console.log(chalk_1.default.blue('👀 代码审查状态...\n'));
66
+ async function reviewStatus(options, io = command_contract_1.processIO) {
67
+ (0, command_contract_1.log)(io, chalk_1.default.blue('👀 代码审查状态...\n'));
66
68
  const projectPath = options.projectPath || process.cwd();
67
69
  try {
68
70
  const { stdout: branch } = await (0, exec_1.execAsync)('git rev-parse --abbrev-ref HEAD', { cwd: projectPath });
69
- console.log(chalk_1.default.gray(`当前分支: ${branch.trim()}`));
71
+ (0, command_contract_1.log)(io, chalk_1.default.gray(`当前分支: ${branch.trim()}`));
70
72
  try {
71
73
  const { stdout: prInfo } = await (0, exec_1.execAsync)('gh pr view --json number,title,state,reviewDecision,reviews', {
72
74
  cwd: projectPath,
73
75
  });
74
76
  const pr = JSON.parse(prInfo);
75
- console.log();
76
- console.log(chalk_1.default.cyan(`PR #${pr.number}: ${pr.title}`));
77
- console.log(chalk_1.default.gray(`状态: ${pr.state}`));
77
+ (0, command_contract_1.log)(io);
78
+ (0, command_contract_1.log)(io, chalk_1.default.cyan(`PR #${pr.number}: ${pr.title}`));
79
+ (0, command_contract_1.log)(io, chalk_1.default.gray(`状态: ${pr.state}`));
78
80
  if (pr.reviewDecision) {
79
81
  const decisionColor = pr.reviewDecision === 'APPROVED' ? chalk_1.default.green : chalk_1.default.yellow;
80
- console.log(decisionColor(`审查决策: ${pr.reviewDecision}`));
82
+ (0, command_contract_1.log)(io, decisionColor(`审查决策: ${pr.reviewDecision}`));
81
83
  }
82
84
  if (pr.reviews && pr.reviews.length > 0) {
83
- console.log();
84
- console.log(chalk_1.default.gray('审查历史:'));
85
+ (0, command_contract_1.log)(io);
86
+ (0, command_contract_1.log)(io, chalk_1.default.gray('审查历史:'));
85
87
  pr.reviews.forEach((r) => {
86
88
  const statusColor = r.state === 'APPROVED' ? chalk_1.default.green :
87
89
  r.state === 'CHANGES_REQUESTED' ? chalk_1.default.red : chalk_1.default.gray;
88
- console.log(statusColor(` - ${r.author?.login || 'unknown'}: ${r.state}`));
90
+ (0, command_contract_1.log)(io, statusColor(` - ${r.author?.login || 'unknown'}: ${r.state}`));
89
91
  });
90
92
  }
91
93
  }
92
94
  catch {
93
- console.log(chalk_1.default.yellow('\n⚠️ 未找到关联的 PR'));
94
- console.log(chalk_1.default.gray(' 使用 gh pr create 创建 PR'));
95
+ (0, command_contract_1.log)(io, chalk_1.default.yellow('\n⚠️ 未找到关联的 PR'));
96
+ (0, command_contract_1.log)(io, chalk_1.default.gray(' 使用 gh pr create 创建 PR'));
95
97
  }
98
+ return { kind: 'ok' };
96
99
  }
97
100
  catch (error) {
98
- console.log(chalk_1.default.red(`❌ 获取审查状态失败: ${error.message}`));
101
+ (0, command_contract_1.log)(io, chalk_1.default.red(`❌ 获取审查状态失败: ${error.message}`));
102
+ return { kind: 'skip', reason: `获取审查状态失败: ${error.message}` };
99
103
  }
100
104
  }
101
105
  //# sourceMappingURL=review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { type CommandIO, type CommandResult } from '../command-contract';
1
2
  export interface SDDOptions {
2
3
  projectPath?: string;
3
4
  json?: boolean;
4
5
  }
5
6
  export declare function sddIndex(options: SDDOptions & {
6
7
  dir?: string;
7
- }): void;
8
+ }, io?: CommandIO): CommandResult;
8
9
  //# sourceMappingURL=sdd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sdd.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAQD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2BrE"}
1
+ {"version":3,"file":"sdd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sdd.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAQD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,GAAE,SAAqB,GAAG,aAAa,CA4BzG"}