@jeger-ai/opengantry 1.1.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 (283) hide show
  1. package/README.md +8 -2
  2. package/dist/cli/commands/arch.js +7 -7
  3. package/dist/cli/commands/arch.js.map +1 -1
  4. package/dist/cli/commands/check-imports.d.ts +7 -0
  5. package/dist/cli/commands/check-imports.d.ts.map +1 -0
  6. package/dist/cli/commands/check-imports.js +33 -0
  7. package/dist/cli/commands/check-imports.js.map +1 -0
  8. package/dist/cli/commands/doctor.js +2 -2
  9. package/dist/cli/commands/doctor.js.map +1 -1
  10. package/dist/cli/commands/init.js +5 -5
  11. package/dist/cli/commands/init.js.map +1 -1
  12. package/dist/cli/commands/metrics.js +2 -2
  13. package/dist/cli/commands/metrics.js.map +1 -1
  14. package/dist/cli/commands/mission.js +1 -1
  15. package/dist/cli/commands/mission.js.map +1 -1
  16. package/dist/cli/commands/onboarding.d.ts +4 -1
  17. package/dist/cli/commands/onboarding.d.ts.map +1 -1
  18. package/dist/cli/commands/onboarding.js +73 -43
  19. package/dist/cli/commands/onboarding.js.map +1 -1
  20. package/dist/cli/commands/perimeter.d.ts +7 -0
  21. package/dist/cli/commands/perimeter.d.ts.map +1 -0
  22. package/dist/cli/commands/perimeter.js +50 -0
  23. package/dist/cli/commands/perimeter.js.map +1 -0
  24. package/dist/cli/commands/register.d.ts +7 -0
  25. package/dist/cli/commands/register.d.ts.map +1 -0
  26. package/dist/cli/commands/register.js +22 -0
  27. package/dist/cli/commands/register.js.map +1 -0
  28. package/dist/cli/commands/runtime.js +3 -3
  29. package/dist/cli/commands/runtime.js.map +1 -1
  30. package/dist/cli/commands/scan.d.ts +7 -0
  31. package/dist/cli/commands/scan.d.ts.map +1 -0
  32. package/dist/cli/commands/scan.js +27 -0
  33. package/dist/cli/commands/scan.js.map +1 -0
  34. package/dist/cli/commands/triage.d.ts +1 -1
  35. package/dist/cli/commands/triage.d.ts.map +1 -1
  36. package/dist/cli/commands/triage.js +2 -14
  37. package/dist/cli/commands/triage.js.map +1 -1
  38. package/dist/cli/commands/upgrade.js +3 -3
  39. package/dist/cli/commands/upgrade.js.map +1 -1
  40. package/dist/cli/commands/verify.d.ts.map +1 -1
  41. package/dist/cli/commands/verify.js +69 -4
  42. package/dist/cli/commands/verify.js.map +1 -1
  43. package/dist/cli/lib/architecture-pointer-doctor.d.ts.map +1 -1
  44. package/dist/cli/lib/architecture-pointer-doctor.js +4 -3
  45. package/dist/cli/lib/architecture-pointer-doctor.js.map +1 -1
  46. package/dist/cli/lib/architecture-pointer-schema.d.ts.map +1 -1
  47. package/dist/cli/lib/architecture-pointer-schema.js +2 -1
  48. package/dist/cli/lib/architecture-pointer-schema.js.map +1 -1
  49. package/dist/cli/lib/ast-discovery.d.ts +16 -0
  50. package/dist/cli/lib/ast-discovery.d.ts.map +1 -0
  51. package/dist/cli/lib/ast-discovery.js +97 -0
  52. package/dist/cli/lib/ast-discovery.js.map +1 -0
  53. package/dist/cli/lib/cli-io.d.ts +2 -0
  54. package/dist/cli/lib/cli-io.d.ts.map +1 -1
  55. package/dist/cli/lib/cli-io.js +4 -0
  56. package/dist/cli/lib/cli-io.js.map +1 -1
  57. package/dist/cli/lib/command-reporter.d.ts +8 -1
  58. package/dist/cli/lib/command-reporter.d.ts.map +1 -1
  59. package/dist/cli/lib/command-reporter.js +52 -2
  60. package/dist/cli/lib/command-reporter.js.map +1 -1
  61. package/dist/cli/lib/constants.d.ts +2 -0
  62. package/dist/cli/lib/constants.d.ts.map +1 -1
  63. package/dist/cli/lib/constants.js +2 -0
  64. package/dist/cli/lib/constants.js.map +1 -1
  65. package/dist/cli/lib/doctor-integration-checks.d.ts.map +1 -1
  66. package/dist/cli/lib/doctor-integration-checks.js +2 -1
  67. package/dist/cli/lib/doctor-integration-checks.js.map +1 -1
  68. package/dist/cli/lib/draft-token.d.ts.map +1 -1
  69. package/dist/cli/lib/draft-token.js +3 -2
  70. package/dist/cli/lib/draft-token.js.map +1 -1
  71. package/dist/cli/lib/fix-hints.d.ts +0 -21
  72. package/dist/cli/lib/fix-hints.d.ts.map +1 -1
  73. package/dist/cli/lib/fix-hints.js +1 -106
  74. package/dist/cli/lib/fix-hints.js.map +1 -1
  75. package/dist/cli/lib/git-proof.d.ts.map +1 -1
  76. package/dist/cli/lib/git-proof.js +6 -2
  77. package/dist/cli/lib/git-proof.js.map +1 -1
  78. package/dist/cli/lib/gxt-error-codes.d.ts +5 -0
  79. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  80. package/dist/cli/lib/gxt-error-codes.js +5 -0
  81. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  82. package/dist/cli/lib/init-asset-catalog.d.ts +10 -5
  83. package/dist/cli/lib/init-asset-catalog.d.ts.map +1 -1
  84. package/dist/cli/lib/init-asset-catalog.js +26 -139
  85. package/dist/cli/lib/init-asset-catalog.js.map +1 -1
  86. package/dist/cli/lib/init-plan.d.ts +1 -1
  87. package/dist/cli/lib/init-plan.d.ts.map +1 -1
  88. package/dist/cli/lib/init-tutorial.js +4 -4
  89. package/dist/cli/lib/init-tutorial.js.map +1 -1
  90. package/dist/cli/lib/integration-compat.d.ts +2 -0
  91. package/dist/cli/lib/integration-compat.d.ts.map +1 -1
  92. package/dist/cli/lib/integration-compat.js.map +1 -1
  93. package/dist/cli/lib/kpi-phase.d.ts +7 -0
  94. package/dist/cli/lib/kpi-phase.d.ts.map +1 -0
  95. package/dist/cli/lib/kpi-phase.js +80 -0
  96. package/dist/cli/lib/kpi-phase.js.map +1 -0
  97. package/dist/cli/lib/kpi-report-stale.d.ts +18 -0
  98. package/dist/cli/lib/kpi-report-stale.d.ts.map +1 -0
  99. package/dist/cli/lib/kpi-report-stale.js +91 -0
  100. package/dist/cli/lib/kpi-report-stale.js.map +1 -0
  101. package/dist/cli/lib/kpi-report.d.ts +13 -0
  102. package/dist/cli/lib/kpi-report.d.ts.map +1 -0
  103. package/dist/cli/lib/kpi-report.js +115 -0
  104. package/dist/cli/lib/kpi-report.js.map +1 -0
  105. package/dist/cli/lib/kpi-scan.d.ts +16 -0
  106. package/dist/cli/lib/kpi-scan.d.ts.map +1 -0
  107. package/dist/cli/lib/kpi-scan.js +122 -0
  108. package/dist/cli/lib/kpi-scan.js.map +1 -0
  109. package/dist/cli/lib/legislate-core.js +1 -1
  110. package/dist/cli/lib/legislate-core.js.map +1 -1
  111. package/dist/cli/lib/manifest.d.ts.map +1 -1
  112. package/dist/cli/lib/manifest.js +30 -15
  113. package/dist/cli/lib/manifest.js.map +1 -1
  114. package/dist/cli/lib/mcp-legislation-mission.d.ts.map +1 -1
  115. package/dist/cli/lib/mcp-legislation-mission.js.map +1 -1
  116. package/dist/cli/lib/mcp-legislation-types.d.ts +2 -1
  117. package/dist/cli/lib/mcp-legislation-types.d.ts.map +1 -1
  118. package/dist/cli/lib/mcp-legislation-types.js.map +1 -1
  119. package/dist/cli/lib/mcp-orchestration-types.d.ts +28 -0
  120. package/dist/cli/lib/mcp-orchestration-types.d.ts.map +1 -0
  121. package/dist/cli/lib/mcp-orchestration-types.js +2 -0
  122. package/dist/cli/lib/mcp-orchestration-types.js.map +1 -0
  123. package/dist/cli/lib/mcp-orchestration.d.ts +3 -1
  124. package/dist/cli/lib/mcp-orchestration.d.ts.map +1 -1
  125. package/dist/cli/lib/mcp-orchestration.js +1 -1
  126. package/dist/cli/lib/mcp-orchestration.js.map +1 -1
  127. package/dist/cli/lib/mcp-runtime.d.ts +14 -4
  128. package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
  129. package/dist/cli/lib/mcp-runtime.js +25 -3
  130. package/dist/cli/lib/mcp-runtime.js.map +1 -1
  131. package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
  132. package/dist/cli/lib/mcp-tools-register.js +7 -2
  133. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  134. package/dist/cli/lib/mcp-upgrade-types.d.ts +12 -0
  135. package/dist/cli/lib/mcp-upgrade-types.d.ts.map +1 -0
  136. package/dist/cli/lib/mcp-upgrade-types.js +2 -0
  137. package/dist/cli/lib/mcp-upgrade-types.js.map +1 -0
  138. package/dist/cli/lib/mcp-upgrade.d.ts +4 -2
  139. package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
  140. package/dist/cli/lib/mcp-upgrade.js +24 -17
  141. package/dist/cli/lib/mcp-upgrade.js.map +1 -1
  142. package/dist/cli/lib/mission-markdown.d.ts.map +1 -1
  143. package/dist/cli/lib/mission-markdown.js +5 -1
  144. package/dist/cli/lib/mission-markdown.js.map +1 -1
  145. package/dist/cli/lib/mission-msn.d.ts +1 -2
  146. package/dist/cli/lib/mission-msn.d.ts.map +1 -1
  147. package/dist/cli/lib/mission-msn.js +3 -2
  148. package/dist/cli/lib/mission-msn.js.map +1 -1
  149. package/dist/cli/lib/mission-schema-validate.d.ts +3 -0
  150. package/dist/cli/lib/mission-schema-validate.d.ts.map +1 -0
  151. package/dist/cli/lib/mission-schema-validate.js +40 -0
  152. package/dist/cli/lib/mission-schema-validate.js.map +1 -0
  153. package/dist/cli/lib/mission-yaml.d.ts.map +1 -1
  154. package/dist/cli/lib/mission-yaml.js +131 -3
  155. package/dist/cli/lib/mission-yaml.js.map +1 -1
  156. package/dist/cli/lib/msn-allocate.js +1 -1
  157. package/dist/cli/lib/msn-allocate.js.map +1 -1
  158. package/dist/cli/lib/perimeter.d.ts +26 -0
  159. package/dist/cli/lib/perimeter.d.ts.map +1 -0
  160. package/dist/cli/lib/perimeter.js +156 -0
  161. package/dist/cli/lib/perimeter.js.map +1 -0
  162. package/dist/cli/lib/program-stdin.d.ts +3 -0
  163. package/dist/cli/lib/program-stdin.d.ts.map +1 -0
  164. package/dist/cli/lib/program-stdin.js +15 -0
  165. package/dist/cli/lib/program-stdin.js.map +1 -0
  166. package/dist/cli/lib/prompts-loader.d.ts +3 -0
  167. package/dist/cli/lib/prompts-loader.d.ts.map +1 -0
  168. package/dist/cli/lib/prompts-loader.js +5 -0
  169. package/dist/cli/lib/prompts-loader.js.map +1 -0
  170. package/dist/cli/lib/register-proposals-format.d.ts +2 -0
  171. package/dist/cli/lib/register-proposals-format.d.ts.map +1 -0
  172. package/dist/cli/lib/register-proposals-format.js +6 -0
  173. package/dist/cli/lib/register-proposals-format.js.map +1 -0
  174. package/dist/cli/lib/register-proposals.d.ts +13 -0
  175. package/dist/cli/lib/register-proposals.d.ts.map +1 -0
  176. package/dist/cli/lib/register-proposals.js +34 -0
  177. package/dist/cli/lib/register-proposals.js.map +1 -0
  178. package/dist/cli/lib/runtime-exec-orchestrator.d.ts.map +1 -1
  179. package/dist/cli/lib/runtime-exec-orchestrator.js +2 -1
  180. package/dist/cli/lib/runtime-exec-orchestrator.js.map +1 -1
  181. package/dist/cli/lib/start-orchestration.js +1 -1
  182. package/dist/cli/lib/start-orchestration.js.map +1 -1
  183. package/dist/cli/lib/substrate-version.d.ts.map +1 -1
  184. package/dist/cli/lib/substrate-version.js +4 -3
  185. package/dist/cli/lib/substrate-version.js.map +1 -1
  186. package/dist/cli/lib/teacher-identity.d.ts.map +1 -1
  187. package/dist/cli/lib/teacher-identity.js +4 -3
  188. package/dist/cli/lib/teacher-identity.js.map +1 -1
  189. package/dist/cli/lib/trace-status.d.ts +3 -3
  190. package/dist/cli/lib/trace-status.d.ts.map +1 -1
  191. package/dist/cli/lib/trace-status.js +8 -8
  192. package/dist/cli/lib/trace-status.js.map +1 -1
  193. package/dist/cli/lib/trace.js +2 -2
  194. package/dist/cli/lib/trace.js.map +1 -1
  195. package/dist/cli/lib/triage-logic.d.ts.map +1 -1
  196. package/dist/cli/lib/triage-logic.js +23 -6
  197. package/dist/cli/lib/triage-logic.js.map +1 -1
  198. package/dist/cli/lib/types.d.ts +65 -1
  199. package/dist/cli/lib/types.d.ts.map +1 -1
  200. package/dist/cli/lib/upgrade-apply.js +11 -11
  201. package/dist/cli/lib/upgrade-apply.js.map +1 -1
  202. package/dist/cli/lib/upgrade-eligible-assets.d.ts +2 -2
  203. package/dist/cli/lib/upgrade-eligible-assets.d.ts.map +1 -1
  204. package/dist/cli/lib/upgrade-eligible-assets.js +3 -3
  205. package/dist/cli/lib/upgrade-eligible-assets.js.map +1 -1
  206. package/dist/cli/lib/upgrade-plan-preview.d.ts +13 -0
  207. package/dist/cli/lib/upgrade-plan-preview.d.ts.map +1 -0
  208. package/dist/cli/lib/upgrade-plan-preview.js +51 -0
  209. package/dist/cli/lib/upgrade-plan-preview.js.map +1 -0
  210. package/dist/cli/lib/upgrade-plan.d.ts +3 -0
  211. package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
  212. package/dist/cli/lib/upgrade-plan.js +20 -7
  213. package/dist/cli/lib/upgrade-plan.js.map +1 -1
  214. package/dist/cli/lib/user-error.js +2 -2
  215. package/dist/cli/lib/user-error.js.map +1 -1
  216. package/dist/cli/lib/verify-changed-missions.d.ts +3 -0
  217. package/dist/cli/lib/verify-changed-missions.d.ts.map +1 -0
  218. package/dist/cli/lib/verify-changed-missions.js +30 -0
  219. package/dist/cli/lib/verify-changed-missions.js.map +1 -0
  220. package/dist/cli/lib/verify-engine.d.ts +10 -1
  221. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  222. package/dist/cli/lib/verify-engine.js +52 -41
  223. package/dist/cli/lib/verify-engine.js.map +1 -1
  224. package/dist/cli/lib/verify-failure-presentation.d.ts +2 -2
  225. package/dist/cli/lib/verify-failure-presentation.d.ts.map +1 -1
  226. package/dist/cli/lib/verify-failure-presentation.js +15 -32
  227. package/dist/cli/lib/verify-failure-presentation.js.map +1 -1
  228. package/dist/cli/lib/verify-present.d.ts +20 -0
  229. package/dist/cli/lib/verify-present.d.ts.map +1 -0
  230. package/dist/cli/lib/verify-present.js +123 -0
  231. package/dist/cli/lib/verify-present.js.map +1 -0
  232. package/dist/cli/lib/verify-remediation.d.ts +19 -5
  233. package/dist/cli/lib/verify-remediation.d.ts.map +1 -1
  234. package/dist/cli/lib/verify-remediation.js +148 -3
  235. package/dist/cli/lib/verify-remediation.js.map +1 -1
  236. package/dist/cli/lib/verify-result-payload.d.ts +4 -0
  237. package/dist/cli/lib/verify-result-payload.d.ts.map +1 -1
  238. package/dist/cli/lib/verify-result-payload.js +20 -4
  239. package/dist/cli/lib/verify-result-payload.js.map +1 -1
  240. package/dist/cli/lib/verify-run.d.ts +1 -7
  241. package/dist/cli/lib/verify-run.d.ts.map +1 -1
  242. package/dist/cli/lib/verify-run.js +41 -48
  243. package/dist/cli/lib/verify-run.js.map +1 -1
  244. package/dist/cli/lib/verify-types.d.ts +7 -1
  245. package/dist/cli/lib/verify-types.d.ts.map +1 -1
  246. package/dist/cli/lib/version.gen.d.ts +1 -1
  247. package/dist/cli/lib/version.gen.js +1 -1
  248. package/dist/cli/program-arch.js +2 -2
  249. package/dist/cli/program-arch.js.map +1 -1
  250. package/dist/cli/program-core.d.ts.map +1 -1
  251. package/dist/cli/program-core.js +6 -18
  252. package/dist/cli/program-core.js.map +1 -1
  253. package/dist/cli/program-workflow.d.ts.map +1 -1
  254. package/dist/cli/program-workflow.js +46 -13
  255. package/dist/cli/program-workflow.js.map +1 -1
  256. package/package.json +3 -1
  257. package/templates/.gitagent/foreman/MANIFEST.json +6 -1
  258. package/templates/.gitagent/teacher/KPI-REPORT.schema.yaml +48 -0
  259. package/templates/.gitagent/teacher/MISSION.schema.yaml +70 -0
  260. package/templates/.githooks/pre-push +5 -0
  261. package/templates/.github/workflows/gxt-validate.yml +6 -0
  262. package/templates/integrations/asset-catalog.json +45 -0
  263. package/templates/integrations/compatibility.json +11 -10
  264. package/dist/cli/lib/git-proof-errors.d.ts +0 -3
  265. package/dist/cli/lib/git-proof-errors.d.ts.map +0 -1
  266. package/dist/cli/lib/git-proof-errors.js +0 -7
  267. package/dist/cli/lib/git-proof-errors.js.map +0 -1
  268. package/dist/cli/lib/init-assets.d.ts +0 -8
  269. package/dist/cli/lib/init-assets.d.ts.map +0 -1
  270. package/dist/cli/lib/init-assets.js +0 -3
  271. package/dist/cli/lib/init-assets.js.map +0 -1
  272. package/dist/cli/lib/msn.d.ts +0 -2
  273. package/dist/cli/lib/msn.d.ts.map +0 -1
  274. package/dist/cli/lib/msn.js +0 -5
  275. package/dist/cli/lib/msn.js.map +0 -1
  276. package/dist/cli/lib/verify-flow.d.ts +0 -23
  277. package/dist/cli/lib/verify-flow.d.ts.map +0 -1
  278. package/dist/cli/lib/verify-flow.js +0 -93
  279. package/dist/cli/lib/verify-flow.js.map +0 -1
  280. package/dist/cli/lib/verify-repair.d.ts +0 -4
  281. package/dist/cli/lib/verify-repair.d.ts.map +0 -1
  282. package/dist/cli/lib/verify-repair.js +0 -58
  283. package/dist/cli/lib/verify-repair.js.map +0 -1
package/README.md CHANGED
@@ -37,7 +37,7 @@ Developing this repository from source: `npm ci && npm run build` — see [gapma
37
37
  | **Regulated / ISO-aligned workflows** | SOD, mission authorization, and Git-native trace — see [`docs/COMPLIANCE-ISO.md`](docs/COMPLIANCE-ISO.md) (27001 change control, 42001 AI governance) |
38
38
  | **Faster recovery from failure** | Stable `GXT_*` error codes, `gapman verify --fix`, role output via `--audience worker\|teacher\|verifier` |
39
39
 
40
- **Protocol maturity:** substrate law **v0.5.0**; **`gapman` v1.1.1** — maintainability hardening (lib/command boundary, unified verify core, CommandReporter). See [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md).
40
+ **Protocol maturity:** substrate law **v0.5.0**; **`gapman` v2.0.0** — LLM evidence quarantine (`gapman scan`), deterministic KPI gate, AST skill discovery (`gapman register`), perimeter checks. See [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md).
41
41
 
42
42
  ## v1.0 adoption release
43
43
 
@@ -48,6 +48,8 @@ Developing this repository from source: `npm ci && npm run build` — see [gapma
48
48
  | **v0.9.0** | `gapman start`, `verify --fix`, `status --json`, `onboarding`, GXT error codes |
49
49
  | **v1.0.0** | `gapman init --tutorial`, global `--audience` / `GXT_AUDIENCE`, adoption-first README + runbook |
50
50
  | **v1.1.1** | Lib/command boundary, unified `runVerifyCore`, typed remediation, CommandReporter, mission YAML emitter |
51
+ | **v1.1.2** | Verify pipeline close-out (MSN-0034–0035); typed verify phases, trace status at parse boundary |
52
+ | **v2.0.0** | `gapman scan` + KPI gate, `register`, `check-imports`, `perimeter`; BYO `llm_verifiers`; KPI stale binding on `--pre-push`/`--ci` |
51
53
  | **v1.1.0** | Stale trace evidence, mission purity PR lock, CI target lock, `verify --json`, doctor substrate drift warn |
52
54
 
53
55
  ## What you get
@@ -180,7 +182,11 @@ Requires **Node.js 24+** (Active LTS line). Published as **`@jeger-ai/opengantry
180
182
  | `gapman runtime env --mission <path>` | Worker Runtime Contract: emit `GXT_REPO_ROOT`, `GXT_MISSION_FILE`, `GXT_MSN_ID`, `GXT_SKILL_KEY`, `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, `GXT_WORKER_LOG`. Default: POSIX `export …` lines; `--json` for scripts. [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md). |
181
183
  | `gapman runtime exec --mission <path> -- <cmd…>` | Run worker command with mission env, telemetry capture, and forbidden-zone scan (strongest TMVC trap). |
182
184
  | `gapman mcp serve` | Stdio MCP server exposing `gxt_*` tools (legislation, pin, runtime env, verify with `fix_hints`, `gxt_start_orchestration`, exec). `gxt_verify` uses the flat `--json` envelope — see [ADOPTION.md § MCP verify envelope](docs/ADOPTION.md). Configure via `.cursor/mcp.json`. |
183
- | `gapman verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--json`** structured output (`status`, `phase`, `error_code`, `fix_hints`). **`--fix`** guided repair. CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. |
185
+ | `gapman verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--json`** structured output (`status`, `phase`, `error_code`, `fix_hints`). **`--fix`** guided repair. CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. Optional **`kpi_gate`** phase reads committed [KPI report](.gitagent/teacher/KPI-REPORT.schema.yaml) (after gate, before trace). **`--ci`** / **`--pre-push`**: fail-closed on stale KPI evidence. |
186
+ | `gapman scan --mission <path>` | Run mission `llm_verifiers` (BYO commands) and write namespaced KPI report JSON for `kpi_gate`. |
187
+ | `gapman register <dir>` | AST discovery: propose skill scope from folder imports/exports (does not mutate `MANIFEST.json`). |
188
+ | `gapman check-imports <dir> --ban <spec…>` | Deterministic banned-import scan (usable as `gate_command`; no LLM). |
189
+ | `gapman perimeter [--base-ref <ref>] [--ci]` | Protected governance paths: local advisory; **`--ci`** requires verified commit signatures. |
184
190
  | `gapman arch pointer` | Print architecture pointer summary for agents (`.gitagent/ARCHITECTURE.pointer.json`). |
185
191
  | `gapman arch cred status\|set\|unset` | Git-ignored credential slots for authenticated external architecture sources (secrets via stdin only). |
186
192
  | `gapman metrics [--json] [--ref main]` | Git-native governance rollup (stream-parsed). See [`docs/ADOPTION.md`](docs/ADOPTION.md). |
@@ -1,5 +1,5 @@
1
1
  import { getRepoRoot } from "../lib/git.js";
2
- import { logError, logInfo, setExitCode } from "../lib/cli-io.js";
2
+ import { logError, logInfo, setExitCode, errorMessage } from "../lib/cli-io.js";
3
3
  import { loadArchitecturePointer, summarizeArchitecturePointer, } from "../lib/architecture-pointer.js";
4
4
  import { logCredentialStatus, parseCredentialValuesFromStdin, readStdinCredentialPayload, removeArchitectureCredential, validateCredentialSlot, writeArchitectureCredential, } from "../lib/architecture-credential.js";
5
5
  export function runArchPointer(options = {}) {
@@ -17,7 +17,7 @@ export function runArchPointer(options = {}) {
17
17
  logInfo(summarizeArchitecturePointer(pointer));
18
18
  }
19
19
  catch (e) {
20
- logError(e instanceof Error ? e.message : String(e));
20
+ logError(errorMessage(e));
21
21
  setExitCode(2);
22
22
  }
23
23
  }
@@ -28,7 +28,7 @@ export async function runArchCredSet(options) {
28
28
  validateCredentialSlot(options.slot);
29
29
  }
30
30
  catch (e) {
31
- logError(e instanceof Error ? e.message : String(e));
31
+ logError(errorMessage(e));
32
32
  setExitCode(2);
33
33
  return;
34
34
  }
@@ -37,7 +37,7 @@ export async function runArchCredSet(options) {
37
37
  stdin = await readStdinCredentialPayload();
38
38
  }
39
39
  catch (e) {
40
- logError(e instanceof Error ? e.message : String(e));
40
+ logError(errorMessage(e));
41
41
  setExitCode(2);
42
42
  return;
43
43
  }
@@ -47,7 +47,7 @@ export async function runArchCredSet(options) {
47
47
  logInfo(`gapman arch cred: stored slot=${options.slot} kind=${options.kind}`);
48
48
  }
49
49
  catch (e) {
50
- logError(e instanceof Error ? e.message : String(e));
50
+ logError(errorMessage(e));
51
51
  setExitCode(2);
52
52
  }
53
53
  }
@@ -58,7 +58,7 @@ export function runArchCredUnset(options) {
58
58
  validateCredentialSlot(options.slot);
59
59
  }
60
60
  catch (e) {
61
- logError(e instanceof Error ? e.message : String(e));
61
+ logError(errorMessage(e));
62
62
  setExitCode(2);
63
63
  return;
64
64
  }
@@ -77,7 +77,7 @@ export function runArchCredStatus(options = {}) {
77
77
  validateCredentialSlot(options.slot);
78
78
  }
79
79
  catch (e) {
80
- logError(e instanceof Error ? e.message : String(e));
80
+ logError(errorMessage(e));
81
81
  setExitCode(2);
82
82
  return;
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../../src/cli/commands/arch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../../src/cli/commands/arch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface CheckImportsOptions {
2
+ dir: string;
3
+ ban: string[];
4
+ json?: boolean;
5
+ }
6
+ export declare function runCheckImports(options: CheckImportsOptions): void;
7
+ //# sourceMappingURL=check-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-imports.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check-imports.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAgClE"}
@@ -0,0 +1,33 @@
1
+ import { findBannedImportsInFolder } from "../lib/ast-discovery.js";
2
+ import { logError, setExitCode } from "../lib/cli-io.js";
3
+ import { loadWorkspace } from "../lib/workspace.js";
4
+ export function runCheckImports(options) {
5
+ if (options.ban.length === 0) {
6
+ logError("gapman check-imports: provide at least one --ban specifier");
7
+ setExitCode(2);
8
+ return;
9
+ }
10
+ try {
11
+ const { root } = loadWorkspace();
12
+ const violations = findBannedImportsInFolder(root, options.dir, options.ban);
13
+ if (options.json) {
14
+ process.stdout.write(`${JSON.stringify({ ok: violations.length === 0, violations }, null, 2)}\n`);
15
+ if (violations.length > 0)
16
+ setExitCode(1);
17
+ return;
18
+ }
19
+ if (violations.length === 0) {
20
+ process.stdout.write("check-imports: OK\n");
21
+ return;
22
+ }
23
+ for (const v of violations) {
24
+ process.stderr.write(`${v.file}: banned import "${v.specifier}"\n`);
25
+ }
26
+ setExitCode(1);
27
+ }
28
+ catch (e) {
29
+ logError(e instanceof Error ? e.message : String(e));
30
+ setExitCode(1);
31
+ }
32
+ }
33
+ //# sourceMappingURL=check-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-imports.js","sourceRoot":"","sources":["../../../src/cli/commands/check-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,4DAA4D,CAAC,CAAC;QACvE,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAE7E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAC5E,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { logInfo, setExitCode } from "../lib/cli-io.js";
1
+ import { logInfo, setExitCode, errorMessage } from "../lib/cli-io.js";
2
2
  import { audienceSectionTitle, filterNextStepsForAudience, } from "../lib/audience-output.js";
3
3
  import { doctorLinesHasFail } from "../lib/doctor-checks.js";
4
4
  import { collectDoctorReport } from "../lib/doctor-orchestration.js";
@@ -33,7 +33,7 @@ export function runDoctor(options = {}) {
33
33
  emitDoctor(report.lines, report.nextStep, doctorLinesHasFail(report.lines), options.json, options.audience);
34
34
  }
35
35
  catch (e) {
36
- const msg = e instanceof Error ? e.message : String(e);
36
+ const msg = errorMessage(e);
37
37
  emitDoctor([{ level: "fail", message: msg }], null, true, options.json, options.audience);
38
38
  }
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAmB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,SAAS,UAAU,CACjB,KAAmB,EACnB,QAAuB,EACvB,OAAgB,EAChB,IAAyB,EACzB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAyD,EAAE;IACnF,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,UAAU,CACR,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAChC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAmB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,SAAS,UAAU,CACjB,KAAmB,EACnB,QAAuB,EACvB,OAAgB,EAChB,IAAyB,EACzB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAyD,EAAE;IACnF,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,UAAU,CACR,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAChC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import fs from "node:fs";
3
3
  import { CLI_NAME, REL_ARCHITECTURE_POINTER, REL_MANIFEST } from "../lib/constants.js";
4
- import { logError, logInfo, logManagedAssetConflicts, setExitCode } from "../lib/cli-io.js";
4
+ import { logError, logInfo, logManagedAssetConflicts, setExitCode, errorMessage } from "../lib/cli-io.js";
5
5
  import { getRepoRoot } from "../lib/git.js";
6
6
  import { isIntegrationIdeKey, loadIntegrationCompat, resolveTemplateRootFromModule, } from "../lib/integration-compat.js";
7
7
  import { resolveAssetsFromProfile } from "../lib/init-asset-catalog.js";
@@ -50,7 +50,7 @@ function loadInitWorkspace(options) {
50
50
  templatesRoot = resolveTemplateRootFromModule();
51
51
  }
52
52
  catch (e) {
53
- logError(e instanceof Error ? e.message : String(e));
53
+ logError(errorMessage(e));
54
54
  setExitCode(2);
55
55
  return null;
56
56
  }
@@ -60,7 +60,7 @@ function loadInitWorkspace(options) {
60
60
  return { repoRoot, templatesRoot, compat };
61
61
  }
62
62
  catch (e) {
63
- logError(e instanceof Error ? e.message : String(e));
63
+ logError(errorMessage(e));
64
64
  setExitCode(2);
65
65
  return null;
66
66
  }
@@ -70,7 +70,7 @@ function validateInitProfile(profile, repoRoot, compat) {
70
70
  profile.integrationsDocPath = validateIntegrationsDocPath(repoRoot, profile.integrationsDocPath);
71
71
  }
72
72
  catch (e) {
73
- logError(e instanceof Error ? e.message : String(e));
73
+ logError(errorMessage(e));
74
74
  setExitCode(2);
75
75
  return false;
76
76
  }
@@ -151,7 +151,7 @@ export async function runInit(options = {}) {
151
151
  }
152
152
  if (!validateInitProfile(profile, repoRoot, compat))
153
153
  return;
154
- const assets = resolveAssetsFromProfile(profile, compat);
154
+ const assets = resolveAssetsFromProfile(profile, compat, templatesRoot);
155
155
  const assetPlan = await resolveInitAssetPlan(options, assets, templatesRoot, repoRoot);
156
156
  if (!assetPlan)
157
157
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAmB1E,SAAS,4BAA4B,CAAC,OAAoB,EAAE,QAAgB;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,4BAA4B,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAoB,EACpB,aAAqB,EACrB,QAAgB,EAChB,MAAiC;IAEjC,MAAM,GAAG,GAAG,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAoB,EACpB,QAAgB,EAChB,aAAqB;IAErB,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,0BAA0B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAChF,OAAO,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAQD,SAAS,iBAAiB,CAAC,OAAoB;IAC7C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,6BAA6B,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACpD,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAoB,EACpB,QAAgB,EAChB,MAAiC;IAEjC,IAAI,CAAC;QACH,OAAO,CAAC,mBAAmB,GAAG,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;YACzC,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAoB,EACpB,MAAmD,EACnD,aAAqB,EACrB,QAAgB;IAEhB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;IACnC,IAAI,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAC3E,4BAA4B,CAC7B,CAAC;IACF,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;QACxD,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,WAAW,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CACpB,QAAgB,EAChB,OAAoB,EACpB,SAAyB,EACzB,QAA6B,EAC7B,YAAiC;IAEjC,OAAO,CAAC,GAAG,QAAQ,gCAAgC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,QAAQ,mBAAmB,OAAO,CAAC,mBAAmB,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,QAAQ,mBAAmB,wBAAwB,UAAU,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAuB,EAAE;IACrD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEtD,IACE,OAAO,CAAC,QAAQ,KAAK,IAAI;QACzB,CAAC,OAAO,CAAC,MAAM;QACf,CAAC,OAAO,CAAC,KAAK;QACd,uBAAuB,CAAC,QAAQ,CAAC,EACjC,CAAC;QACD,OAAO,CAAC,GAAG,QAAQ,qEAAqE,CAAC,CAAC;QAC1F,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpE,MAAM,eAAe,EAAE,CAAC;QACxB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpD,+BAA+B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;QAAE,OAAO;IAE5D,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvF,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAC3B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,4BAA4B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,QAAQ,yBAAyB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,QAAQ,yBAAyB,wBAAwB,UAAU,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpE,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpD,+BAA+B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { collectGitMetrics, formatGitMetricsHuman } from "../lib/git-metrics.js";
2
- import { logError, logInfo, setExitCode } from "../lib/cli-io.js";
2
+ import { logError, logInfo, setExitCode, errorMessage } from "../lib/cli-io.js";
3
3
  import { loadWorkspace } from "../lib/workspace.js";
4
4
  export function runMetrics(options) {
5
5
  try {
@@ -13,7 +13,7 @@ export function runMetrics(options) {
13
13
  logInfo(formatGitMetricsHuman(report));
14
14
  }
15
15
  catch (e) {
16
- logError(e instanceof Error ? e.message : String(e));
16
+ logError(errorMessage(e));
17
17
  setExitCode(2);
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/cli/commands/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,UAAU,UAAU,CAAC,OAAuB;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;QAC1C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/cli/commands/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,UAAU,UAAU,CAAC,OAAuB;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC;QAC1C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { CLI_NAME } from "../lib/constants.js";
2
2
  import { formatRepoRelative, logError, logInfo, setExitCode } from "../lib/cli-io.js";
3
- import { isValidMsnId } from "../lib/msn.js";
3
+ import { isValidMsnId } from "../lib/mission-msn.js";
4
4
  import { assertMissionGatePresent, parseMissionFile } from "../lib/mission-parser.js";
5
5
  import { captureStartState, writeSnapshot } from "../lib/start-state.js";
6
6
  import { loadWorkspace } from "../lib/workspace.js";
@@ -1 +1 @@
1
- {"version":3,"file":"mission.js","sourceRoot":"","sources":["../../../src/cli/commands/mission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,QAAQ,0BAA0B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAAoB;IACnE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,0DAA0D,CAAC,CAAC;QACrE,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,QAAQ,4BAA4B,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"mission.js","sourceRoot":"","sources":["../../../src/cli/commands/mission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,QAAQ,0BAA0B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAAoB;IACnE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,0DAA0D,CAAC,CAAC;QACrE,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,QAAQ,4BAA4B,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC"}
@@ -1,2 +1,5 @@
1
- export declare function runOnboarding(): Promise<void>;
1
+ export interface OnboardingOptions {
2
+ force?: boolean;
3
+ }
4
+ export declare function runOnboarding(options?: OnboardingOptions): Promise<void>;
2
5
  //# sourceMappingURL=onboarding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAuFnD"}
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyDD,wBAAsB,aAAa,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqElF"}
@@ -1,11 +1,59 @@
1
1
  import { CLI_NAME } from "../lib/constants.js";
2
2
  import { ONBOARDING_ADOPTION_DOC, onboardingRuntimeEnvHint, onboardingStatusHint, onboardingVerifyHint, } from "../lib/onboarding-flow.js";
3
- import { logError, logInfo, setExitCode } from "../lib/cli-io.js";
3
+ import { logError, logInfo, logWarn, setExitCode } from "../lib/cli-io.js";
4
+ import { runIntegrationDoctorChecks } from "../lib/doctor-integration-checks.js";
5
+ import { resolveTemplateRootFromModule } from "../lib/integration-compat.js";
4
6
  import { loadWorkspace } from "../lib/workspace.js";
5
7
  import { runStartOrchestration } from "../lib/start-orchestration.js";
6
- import { executeVerifyMission } from "../lib/verify-run.js";
8
+ import { runVerifyCore } from "../lib/verify-run.js";
7
9
  const EXAMPLE_MISSION = ".gitagent/missions/example.verify.yaml";
8
- export async function runOnboarding() {
10
+ function integrationBlockers(repoRoot) {
11
+ const templatesRoot = resolveTemplateRootFromModule();
12
+ const lines = runIntegrationDoctorChecks(repoRoot, templatesRoot);
13
+ return lines.filter((l) => l.level === "warn" || l.level === "fail").map((l) => l.message);
14
+ }
15
+ async function resolveOnboardingMissionPath(p, root, intent) {
16
+ const fs = await import("node:fs");
17
+ const path = await import("node:path");
18
+ let missionPath = EXAMPLE_MISSION;
19
+ const useExample = fs.existsSync(path.join(root, EXAMPLE_MISSION));
20
+ if (useExample) {
21
+ p.log.step("Step 3 — Example mission available");
22
+ logInfo(` Use existing ${EXAMPLE_MISSION} after Teacher stamps it.`);
23
+ logInfo(` ${onboardingVerifyHint(EXAMPLE_MISSION)}`);
24
+ return { missionPath, useExample };
25
+ }
26
+ p.log.step("Step 3 — Scaffold mission (gapman start)");
27
+ const result = runStartOrchestration({
28
+ intent: intent.trim(),
29
+ writeMission: true,
30
+ });
31
+ if (!result.ok) {
32
+ logError("Start failed — see triage output above.");
33
+ return { missionPath, useExample: false, exitCode: result.exit_code };
34
+ }
35
+ missionPath = result.mission_file_path ?? missionPath;
36
+ for (const step of result.next_steps)
37
+ logInfo(` ${step}`);
38
+ return { missionPath, useExample: false };
39
+ }
40
+ async function maybeRunExampleVerify(p, useExample) {
41
+ if (!useExample)
42
+ return undefined;
43
+ const runNow = await p.confirm({
44
+ message: "Run verify on example mission now (non-interactive repair hints)?",
45
+ initialValue: true,
46
+ });
47
+ if (p.isCancel(runNow) || !runNow)
48
+ return undefined;
49
+ const result = await runVerifyCore({
50
+ mission: EXAMPLE_MISSION,
51
+ fix: true,
52
+ fixNonInteractive: true,
53
+ });
54
+ return result.ok ? undefined : result.exitCode;
55
+ }
56
+ export async function runOnboarding(options = {}) {
9
57
  const p = await import("@clack/prompts");
10
58
  const fs = await import("node:fs");
11
59
  const path = await import("node:path");
@@ -18,6 +66,16 @@ export async function runOnboarding() {
18
66
  p.outro("Onboarding aborted");
19
67
  return;
20
68
  }
69
+ const blockers = integrationBlockers(root);
70
+ if (blockers.length > 0 && !options.force) {
71
+ p.log.step("Integration health");
72
+ for (const msg of blockers)
73
+ logWarn(` ${msg}`);
74
+ logError("Integration issues detected — run gapman doctor or pass --force to continue.");
75
+ setExitCode(2);
76
+ p.outro("Onboarding aborted (integration gates)");
77
+ return;
78
+ }
21
79
  const confirmContinue = await p.confirm({
22
80
  message: "This walkthrough runs the full strict GXT loop. Continue?",
23
81
  initialValue: true,
@@ -37,51 +95,23 @@ export async function runOnboarding() {
37
95
  p.cancel("Onboarding cancelled");
38
96
  return;
39
97
  }
40
- let missionPath = EXAMPLE_MISSION;
41
- const useExample = fs.existsSync(path.join(root, EXAMPLE_MISSION));
42
- if (useExample) {
43
- p.log.step("Step 3 Example mission available");
44
- logInfo(` Use existing ${EXAMPLE_MISSION} after Teacher stamps it.`);
45
- logInfo(` ${onboardingVerifyHint(EXAMPLE_MISSION)}`);
46
- }
47
- else {
48
- p.log.step("Step 3 — Scaffold mission (gapman start)");
49
- const result = runStartOrchestration({
50
- intent: intent.trim(),
51
- writeMission: true,
52
- });
53
- if (!result.ok) {
54
- logError("Start failed — see triage output above.");
55
- setExitCode(result.exit_code);
56
- p.outro("Onboarding incomplete");
57
- return;
58
- }
59
- missionPath = result.mission_file_path ?? missionPath;
60
- for (const step of result.next_steps)
61
- logInfo(` ${step}`);
98
+ const resolved = await resolveOnboardingMissionPath(p, root, intent);
99
+ if (!resolved)
100
+ return;
101
+ if (resolved.exitCode !== undefined) {
102
+ setExitCode(resolved.exitCode);
103
+ p.outro("Onboarding incomplete");
104
+ return;
62
105
  }
63
106
  p.log.step("Step 4 — Worker runtime");
64
- logInfo(` ${onboardingRuntimeEnvHint(missionPath)}`);
107
+ logInfo(` ${onboardingRuntimeEnvHint(resolved.missionPath)}`);
65
108
  p.log.step("Step 5 — Verify with guided repair");
66
- logInfo(` ${onboardingVerifyHint(missionPath)}`);
109
+ logInfo(` ${onboardingVerifyHint(resolved.missionPath)}`);
67
110
  p.log.step("Step 6 — Unified status dashboard");
68
111
  logInfo(` ${onboardingStatusHint()}`);
69
- if (useExample) {
70
- const runNow = await p.confirm({
71
- message: "Run verify on example mission now (non-interactive repair hints)?",
72
- initialValue: true,
73
- });
74
- if (!p.isCancel(runNow) && runNow) {
75
- const result = await executeVerifyMission({
76
- mission: EXAMPLE_MISSION,
77
- fix: true,
78
- fixNonInteractive: true,
79
- });
80
- if (!result.ok) {
81
- setExitCode(result.exitCode);
82
- }
83
- }
84
- }
112
+ const verifyExit = await maybeRunExampleVerify(p, resolved.useExample);
113
+ if (verifyExit !== undefined)
114
+ setExitCode(verifyExit);
85
115
  p.outro(`Onboarding complete — see ${ONBOARDING_ADOPTION_DOC} for the full loop`);
86
116
  }
87
117
  //# sourceMappingURL=onboarding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface PerimeterOptions {
2
+ baseRef?: string;
3
+ ci?: boolean;
4
+ json?: boolean;
5
+ }
6
+ export declare function runPerimeter(options: PerimeterOptions): void;
7
+ //# sourceMappingURL=perimeter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perimeter.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/perimeter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAWD,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAmC5D"}
@@ -0,0 +1,50 @@
1
+ import { checkPerimeter } from "../lib/perimeter.js";
2
+ import { logError, logInfo, logWarn, setExitCode } from "../lib/cli-io.js";
3
+ import { gitRevParse } from "../lib/git-repo.js";
4
+ import { loadWorkspace } from "../lib/workspace.js";
5
+ function resolveBaseRef(root, baseRef) {
6
+ if (baseRef?.trim())
7
+ return baseRef.trim();
8
+ const originMain = gitRevParse(root, "origin/main");
9
+ if (originMain)
10
+ return "origin/main";
11
+ const main = gitRevParse(root, "main");
12
+ if (main)
13
+ return "main";
14
+ return "HEAD~1";
15
+ }
16
+ export function runPerimeter(options) {
17
+ try {
18
+ const { root, manifest } = loadWorkspace();
19
+ const baseRef = resolveBaseRef(root, options.baseRef);
20
+ const result = checkPerimeter(root, manifest, { baseRef, ci: options.ci === true });
21
+ if (options.json) {
22
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
23
+ if (!result.ok)
24
+ setExitCode(1);
25
+ return;
26
+ }
27
+ for (const advisory of result.advisories) {
28
+ logWarn(advisory);
29
+ }
30
+ const hard = result.violations.filter((v) => !v.advisoryOnly);
31
+ for (const v of hard) {
32
+ logError(v.reason);
33
+ }
34
+ if (hard.length > 0) {
35
+ setExitCode(1);
36
+ return;
37
+ }
38
+ if (result.violations.length > 0 && options.ci !== true) {
39
+ logInfo("gapman perimeter: advisory-only mode — no hard failures locally");
40
+ }
41
+ else {
42
+ logInfo("gapman perimeter: OK");
43
+ }
44
+ }
45
+ catch (e) {
46
+ logError(e instanceof Error ? e.message : String(e));
47
+ setExitCode(1);
48
+ }
49
+ }
50
+ //# sourceMappingURL=perimeter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perimeter.js","sourceRoot":"","sources":["../../../src/cli/commands/perimeter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,SAAS,cAAc,CAAC,IAAY,EAAE,OAAgB;IACpD,IAAI,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,UAAU;QAAE,OAAO,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAEpF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAyB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACpF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface RegisterOptions {
2
+ dir: string;
3
+ skillKey?: string;
4
+ json?: boolean;
5
+ }
6
+ export declare function runRegister(options: RegisterOptions): void;
7
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAiB1D"}
@@ -0,0 +1,22 @@
1
+ import { discoverFolderSignature } from "../lib/ast-discovery.js";
2
+ import { buildSkillProposal, formatProposalHuman, formatProposalJson, suggestSkillKeyFromFolder, } from "../lib/register-proposals.js";
3
+ import { logError, logInfo, setExitCode } from "../lib/cli-io.js";
4
+ import { loadWorkspace } from "../lib/workspace.js";
5
+ export function runRegister(options) {
6
+ try {
7
+ const { root } = loadWorkspace();
8
+ const signature = discoverFolderSignature(root, options.dir);
9
+ const skillKey = options.skillKey?.trim() || suggestSkillKeyFromFolder(signature.folderRel);
10
+ const proposal = buildSkillProposal(signature, skillKey);
11
+ if (options.json) {
12
+ process.stdout.write(`${formatProposalJson(proposal)}\n`);
13
+ return;
14
+ }
15
+ logInfo(formatProposalHuman(proposal));
16
+ }
17
+ catch (e) {
18
+ logError(e instanceof Error ? e.message : String(e));
19
+ setExitCode(1);
20
+ }
21
+ }
22
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,UAAU,WAAW,CAAC,OAAwB;IAClD,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"}