@jeger-ai/opengantry 2.0.0 → 2.2.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 (544) hide show
  1. package/README.md +40 -14
  2. package/dist/cli/commands/audit-rigor.d.ts +8 -0
  3. package/dist/cli/commands/audit-rigor.d.ts.map +1 -0
  4. package/dist/cli/commands/audit-rigor.js +24 -0
  5. package/dist/cli/commands/audit-rigor.js.map +1 -0
  6. package/dist/cli/commands/context-feed.d.ts +6 -0
  7. package/dist/cli/commands/context-feed.d.ts.map +1 -0
  8. package/dist/cli/commands/context-feed.js +48 -0
  9. package/dist/cli/commands/context-feed.js.map +1 -0
  10. package/dist/cli/commands/context-request.d.ts +11 -0
  11. package/dist/cli/commands/context-request.d.ts.map +1 -0
  12. package/dist/cli/commands/context-request.js +74 -0
  13. package/dist/cli/commands/context-request.js.map +1 -0
  14. package/dist/cli/commands/doctor.d.ts +1 -1
  15. package/dist/cli/commands/doctor.d.ts.map +1 -1
  16. package/dist/cli/commands/doctor.js +1 -2
  17. package/dist/cli/commands/doctor.js.map +1 -1
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +6 -2
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/legislate.d.ts +1 -1
  22. package/dist/cli/commands/legislate.d.ts.map +1 -1
  23. package/dist/cli/commands/legislate.js +1 -1
  24. package/dist/cli/commands/legislate.js.map +1 -1
  25. package/dist/cli/commands/mission.js +3 -3
  26. package/dist/cli/commands/mission.js.map +1 -1
  27. package/dist/cli/commands/onboarding.d.ts.map +1 -1
  28. package/dist/cli/commands/onboarding.js +12 -9
  29. package/dist/cli/commands/onboarding.js.map +1 -1
  30. package/dist/cli/commands/perimeter.js +1 -1
  31. package/dist/cli/commands/perimeter.js.map +1 -1
  32. package/dist/cli/commands/runtime.js +1 -1
  33. package/dist/cli/commands/runtime.js.map +1 -1
  34. package/dist/cli/commands/scan.js +1 -1
  35. package/dist/cli/commands/scan.js.map +1 -1
  36. package/dist/cli/commands/tmvc-guard.d.ts +7 -0
  37. package/dist/cli/commands/tmvc-guard.d.ts.map +1 -0
  38. package/dist/cli/commands/tmvc-guard.js +63 -0
  39. package/dist/cli/commands/tmvc-guard.js.map +1 -0
  40. package/dist/cli/commands/triage.js +2 -2
  41. package/dist/cli/commands/triage.js.map +1 -1
  42. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  43. package/dist/cli/commands/upgrade.js +3 -2
  44. package/dist/cli/commands/upgrade.js.map +1 -1
  45. package/dist/cli/commands/verify.d.ts +2 -2
  46. package/dist/cli/commands/verify.d.ts.map +1 -1
  47. package/dist/cli/commands/verify.js +7 -7
  48. package/dist/cli/commands/verify.js.map +1 -1
  49. package/dist/cli/index.js +1 -1
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/cli/lib/architecture-pointer.d.ts +33 -5
  52. package/dist/cli/lib/architecture-pointer.d.ts.map +1 -1
  53. package/dist/cli/lib/architecture-pointer.js +304 -5
  54. package/dist/cli/lib/architecture-pointer.js.map +1 -1
  55. package/dist/cli/lib/ast-discovery.d.ts.map +1 -1
  56. package/dist/cli/lib/ast-discovery.js +7 -16
  57. package/dist/cli/lib/ast-discovery.js.map +1 -1
  58. package/dist/cli/lib/audit-rigor.d.ts +18 -0
  59. package/dist/cli/lib/audit-rigor.d.ts.map +1 -0
  60. package/dist/cli/lib/audit-rigor.js +189 -0
  61. package/dist/cli/lib/audit-rigor.js.map +1 -0
  62. package/dist/cli/lib/banned-import-violation.d.ts +8 -0
  63. package/dist/cli/lib/banned-import-violation.d.ts.map +1 -0
  64. package/dist/cli/lib/banned-import-violation.js +15 -0
  65. package/dist/cli/lib/banned-import-violation.js.map +1 -0
  66. package/dist/cli/lib/break-glass.d.ts +17 -0
  67. package/dist/cli/lib/break-glass.d.ts.map +1 -1
  68. package/dist/cli/lib/break-glass.js +28 -1
  69. package/dist/cli/lib/break-glass.js.map +1 -1
  70. package/dist/cli/lib/cli-io.d.ts +8 -0
  71. package/dist/cli/lib/cli-io.d.ts.map +1 -1
  72. package/dist/cli/lib/cli-io.js +16 -0
  73. package/dist/cli/lib/cli-io.js.map +1 -1
  74. package/dist/cli/lib/command-reporter.d.ts +3 -3
  75. package/dist/cli/lib/command-reporter.d.ts.map +1 -1
  76. package/dist/cli/lib/constants.d.ts +6 -0
  77. package/dist/cli/lib/constants.d.ts.map +1 -1
  78. package/dist/cli/lib/constants.js +6 -0
  79. package/dist/cli/lib/constants.js.map +1 -1
  80. package/dist/cli/lib/context-feed-remediation.d.ts +12 -0
  81. package/dist/cli/lib/context-feed-remediation.d.ts.map +1 -0
  82. package/dist/cli/lib/context-feed-remediation.js +88 -0
  83. package/dist/cli/lib/context-feed-remediation.js.map +1 -0
  84. package/dist/cli/lib/context-feed-store.d.ts +33 -0
  85. package/dist/cli/lib/context-feed-store.d.ts.map +1 -0
  86. package/dist/cli/lib/context-feed-store.js +110 -0
  87. package/dist/cli/lib/context-feed-store.js.map +1 -0
  88. package/dist/cli/lib/context-request.d.ts +22 -0
  89. package/dist/cli/lib/context-request.d.ts.map +1 -0
  90. package/dist/cli/lib/context-request.js +45 -0
  91. package/dist/cli/lib/context-request.js.map +1 -0
  92. package/dist/cli/lib/dirty-missions.js +1 -1
  93. package/dist/cli/lib/dirty-missions.js.map +1 -1
  94. package/dist/cli/lib/doctor-core.d.ts +5 -0
  95. package/dist/cli/lib/doctor-core.d.ts.map +1 -0
  96. package/dist/cli/lib/{doctor-checks.js → doctor-core.js} +34 -9
  97. package/dist/cli/lib/doctor-core.js.map +1 -0
  98. package/dist/cli/lib/doctor-integration.d.ts +13 -0
  99. package/dist/cli/lib/doctor-integration.d.ts.map +1 -0
  100. package/dist/cli/lib/{doctor-integration-checks.js → doctor-integration.js} +38 -7
  101. package/dist/cli/lib/doctor-integration.js.map +1 -0
  102. package/dist/cli/lib/doctor-substrate.d.ts +3 -0
  103. package/dist/cli/lib/doctor-substrate.d.ts.map +1 -0
  104. package/dist/cli/lib/{doctor-substrate-drift.js → doctor-substrate.js} +1 -1
  105. package/dist/cli/lib/doctor-substrate.js.map +1 -0
  106. package/dist/cli/lib/{doctor-checks.d.ts → doctor-types.d.ts} +11 -3
  107. package/dist/cli/lib/doctor-types.d.ts.map +1 -0
  108. package/dist/cli/lib/doctor-types.js +7 -0
  109. package/dist/cli/lib/doctor-types.js.map +1 -0
  110. package/dist/cli/lib/doctor.d.ts +5 -0
  111. package/dist/cli/lib/doctor.d.ts.map +1 -0
  112. package/dist/cli/lib/doctor.js +5 -0
  113. package/dist/cli/lib/doctor.js.map +1 -0
  114. package/dist/cli/lib/draft-token.js +1 -1
  115. package/dist/cli/lib/draft-token.js.map +1 -1
  116. package/dist/cli/lib/{user-error.d.ts → errors.d.ts} +20 -1
  117. package/dist/cli/lib/errors.d.ts.map +1 -0
  118. package/dist/cli/lib/{agent-error.js → errors.js} +64 -1
  119. package/dist/cli/lib/errors.js.map +1 -0
  120. package/dist/cli/lib/fix-hints.d.ts +1 -1
  121. package/dist/cli/lib/fix-hints.d.ts.map +1 -1
  122. package/dist/cli/lib/gate-work-dir.d.ts +6 -0
  123. package/dist/cli/lib/gate-work-dir.d.ts.map +1 -0
  124. package/dist/cli/lib/gate-work-dir.js +6 -0
  125. package/dist/cli/lib/gate-work-dir.js.map +1 -0
  126. package/dist/cli/lib/git-metrics.d.ts +34 -0
  127. package/dist/cli/lib/git-metrics.d.ts.map +1 -1
  128. package/dist/cli/lib/git-metrics.js +199 -3
  129. package/dist/cli/lib/git-metrics.js.map +1 -1
  130. package/dist/cli/lib/git-proof.d.ts +4 -0
  131. package/dist/cli/lib/git-proof.d.ts.map +1 -1
  132. package/dist/cli/lib/git-proof.js +22 -8
  133. package/dist/cli/lib/git-proof.js.map +1 -1
  134. package/dist/cli/lib/git-staged.d.ts +20 -0
  135. package/dist/cli/lib/git-staged.d.ts.map +1 -0
  136. package/dist/cli/lib/git-staged.js +37 -0
  137. package/dist/cli/lib/git-staged.js.map +1 -0
  138. package/dist/cli/lib/git.d.ts +25 -0
  139. package/dist/cli/lib/git.d.ts.map +1 -1
  140. package/dist/cli/lib/git.js +52 -0
  141. package/dist/cli/lib/git.js.map +1 -1
  142. package/dist/cli/lib/gxt-error-codes.d.ts +4 -0
  143. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  144. package/dist/cli/lib/gxt-error-codes.js +4 -0
  145. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  146. package/dist/cli/lib/import-scanner.d.ts +14 -0
  147. package/dist/cli/lib/import-scanner.d.ts.map +1 -0
  148. package/dist/cli/lib/import-scanner.js +67 -0
  149. package/dist/cli/lib/import-scanner.js.map +1 -0
  150. package/dist/cli/lib/{init-compose-arch-pointer.d.ts → init-compose.d.ts} +4 -1
  151. package/dist/cli/lib/init-compose.d.ts.map +1 -0
  152. package/dist/cli/lib/{init-compose-arch-pointer.js → init-compose.js} +37 -1
  153. package/dist/cli/lib/init-compose.js.map +1 -0
  154. package/dist/cli/lib/init-interactive.js +2 -2
  155. package/dist/cli/lib/init-interactive.js.map +1 -1
  156. package/dist/cli/lib/init-tutorial.d.ts.map +1 -1
  157. package/dist/cli/lib/init-tutorial.js +10 -10
  158. package/dist/cli/lib/init-tutorial.js.map +1 -1
  159. package/dist/cli/lib/integration-compat.d.ts +7 -0
  160. package/dist/cli/lib/integration-compat.d.ts.map +1 -1
  161. package/dist/cli/lib/integration-compat.js +14 -0
  162. package/dist/cli/lib/integration-compat.js.map +1 -1
  163. package/dist/cli/lib/kpi-engine.d.ts +32 -0
  164. package/dist/cli/lib/kpi-engine.d.ts.map +1 -0
  165. package/dist/cli/lib/kpi-engine.js +279 -0
  166. package/dist/cli/lib/kpi-engine.js.map +1 -0
  167. package/dist/cli/lib/kpi-scan.d.ts +2 -0
  168. package/dist/cli/lib/kpi-scan.d.ts.map +1 -1
  169. package/dist/cli/lib/kpi-scan.js +8 -4
  170. package/dist/cli/lib/kpi-scan.js.map +1 -1
  171. package/dist/cli/lib/legislate.d.ts +39 -0
  172. package/dist/cli/lib/legislate.d.ts.map +1 -0
  173. package/dist/cli/lib/{legislate-core.js → legislate.js} +31 -6
  174. package/dist/cli/lib/legislate.js.map +1 -0
  175. package/dist/cli/lib/mcp-governance.d.ts +124 -0
  176. package/dist/cli/lib/mcp-governance.d.ts.map +1 -0
  177. package/dist/cli/lib/mcp-governance.js +231 -0
  178. package/dist/cli/lib/mcp-governance.js.map +1 -0
  179. package/dist/cli/lib/mcp-runtime.d.ts +4 -4
  180. package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
  181. package/dist/cli/lib/mcp-runtime.js +3 -3
  182. package/dist/cli/lib/mcp-runtime.js.map +1 -1
  183. package/dist/cli/lib/mcp-tools-register.js +2 -3
  184. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  185. package/dist/cli/lib/mcp-upgrade.d.ts +11 -2
  186. package/dist/cli/lib/mcp-upgrade.d.ts.map +1 -1
  187. package/dist/cli/lib/mcp-upgrade.js +6 -2
  188. package/dist/cli/lib/mcp-upgrade.js.map +1 -1
  189. package/dist/cli/lib/missions/formatter.d.ts +17 -0
  190. package/dist/cli/lib/missions/formatter.d.ts.map +1 -0
  191. package/dist/cli/lib/{mission-markdown.js → missions/formatter.js} +58 -2
  192. package/dist/cli/lib/missions/formatter.js.map +1 -0
  193. package/dist/cli/lib/missions/parser.d.ts +45 -0
  194. package/dist/cli/lib/missions/parser.d.ts.map +1 -0
  195. package/dist/cli/lib/missions/parser.js +271 -0
  196. package/dist/cli/lib/missions/parser.js.map +1 -0
  197. package/dist/cli/lib/{mission-schema-validate.d.ts → missions/validator.d.ts} +1 -1
  198. package/dist/cli/lib/missions/validator.d.ts.map +1 -0
  199. package/dist/cli/lib/{mission-schema-validate.js → missions/validator.js} +4 -3
  200. package/dist/cli/lib/missions/validator.js.map +1 -0
  201. package/dist/cli/lib/msn-allocate.js +3 -3
  202. package/dist/cli/lib/msn-allocate.js.map +1 -1
  203. package/dist/cli/lib/perimeter.d.ts +19 -1
  204. package/dist/cli/lib/perimeter.d.ts.map +1 -1
  205. package/dist/cli/lib/perimeter.js +139 -51
  206. package/dist/cli/lib/perimeter.js.map +1 -1
  207. package/dist/cli/lib/register-proposals.d.ts +1 -1
  208. package/dist/cli/lib/register-proposals.d.ts.map +1 -1
  209. package/dist/cli/lib/register-proposals.js +5 -1
  210. package/dist/cli/lib/register-proposals.js.map +1 -1
  211. package/dist/cli/lib/runtime-env.js +2 -2
  212. package/dist/cli/lib/runtime-env.js.map +1 -1
  213. package/dist/cli/lib/runtime-exec.d.ts +48 -4
  214. package/dist/cli/lib/runtime-exec.d.ts.map +1 -1
  215. package/dist/cli/lib/runtime-exec.js +218 -4
  216. package/dist/cli/lib/runtime-exec.js.map +1 -1
  217. package/dist/cli/lib/staged-tmvc-guard.d.ts +26 -0
  218. package/dist/cli/lib/staged-tmvc-guard.d.ts.map +1 -0
  219. package/dist/cli/lib/staged-tmvc-guard.js +58 -0
  220. package/dist/cli/lib/staged-tmvc-guard.js.map +1 -0
  221. package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
  222. package/dist/cli/lib/start-orchestration.js +20 -41
  223. package/dist/cli/lib/start-orchestration.js.map +1 -1
  224. package/dist/cli/lib/{start-state.d.ts → start-snapshot.d.ts} +1 -1
  225. package/dist/cli/lib/start-snapshot.d.ts.map +1 -0
  226. package/dist/cli/lib/{start-state.js → start-snapshot.js} +3 -8
  227. package/dist/cli/lib/start-snapshot.js.map +1 -0
  228. package/dist/cli/lib/status-report.d.ts +1 -1
  229. package/dist/cli/lib/status-report.d.ts.map +1 -1
  230. package/dist/cli/lib/status-report.js +2 -2
  231. package/dist/cli/lib/status-report.js.map +1 -1
  232. package/dist/cli/lib/surgeon.d.ts +23 -0
  233. package/dist/cli/lib/surgeon.d.ts.map +1 -0
  234. package/dist/cli/lib/surgeon.js +63 -0
  235. package/dist/cli/lib/surgeon.js.map +1 -0
  236. package/dist/cli/lib/surgeons/banned-import.d.ts +4 -0
  237. package/dist/cli/lib/surgeons/banned-import.d.ts.map +1 -0
  238. package/dist/cli/lib/surgeons/banned-import.js +37 -0
  239. package/dist/cli/lib/surgeons/banned-import.js.map +1 -0
  240. package/dist/cli/lib/surgeons/import-layer.d.ts +3 -0
  241. package/dist/cli/lib/surgeons/import-layer.d.ts.map +1 -0
  242. package/dist/cli/lib/surgeons/import-layer.js +74 -0
  243. package/dist/cli/lib/surgeons/import-layer.js.map +1 -0
  244. package/dist/cli/lib/surgeons/quarantine-import.d.ts +24 -0
  245. package/dist/cli/lib/surgeons/quarantine-import.d.ts.map +1 -0
  246. package/dist/cli/lib/surgeons/quarantine-import.js +128 -0
  247. package/dist/cli/lib/surgeons/quarantine-import.js.map +1 -0
  248. package/dist/cli/lib/surgeons/registry.d.ts +22 -0
  249. package/dist/cli/lib/surgeons/registry.d.ts.map +1 -0
  250. package/dist/cli/lib/surgeons/registry.js +27 -0
  251. package/dist/cli/lib/surgeons/registry.js.map +1 -0
  252. package/dist/cli/lib/surgeons/typescript-workspace.d.ts +7 -0
  253. package/dist/cli/lib/surgeons/typescript-workspace.d.ts.map +1 -0
  254. package/dist/cli/lib/surgeons/typescript-workspace.js +41 -0
  255. package/dist/cli/lib/surgeons/typescript-workspace.js.map +1 -0
  256. package/dist/cli/lib/teacher-identity.js +1 -1
  257. package/dist/cli/lib/teacher-identity.js.map +1 -1
  258. package/dist/cli/lib/tmvc-path.d.ts +12 -0
  259. package/dist/cli/lib/tmvc-path.d.ts.map +1 -0
  260. package/dist/cli/lib/tmvc-path.js +47 -0
  261. package/dist/cli/lib/tmvc-path.js.map +1 -0
  262. package/dist/cli/lib/trace.d.ts +28 -1
  263. package/dist/cli/lib/trace.d.ts.map +1 -1
  264. package/dist/cli/lib/trace.js +153 -3
  265. package/dist/cli/lib/trace.js.map +1 -1
  266. package/dist/cli/lib/types.d.ts +4 -1
  267. package/dist/cli/lib/types.d.ts.map +1 -1
  268. package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
  269. package/dist/cli/lib/upgrade-apply.js +6 -2
  270. package/dist/cli/lib/upgrade-apply.js.map +1 -1
  271. package/dist/cli/lib/upgrade-plan-payload.d.ts +31 -0
  272. package/dist/cli/lib/upgrade-plan-payload.d.ts.map +1 -0
  273. package/dist/cli/lib/upgrade-plan-payload.js +109 -0
  274. package/dist/cli/lib/upgrade-plan-payload.js.map +1 -0
  275. package/dist/cli/lib/upgrade-plan.d.ts +19 -1
  276. package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
  277. package/dist/cli/lib/upgrade-plan.js +78 -6
  278. package/dist/cli/lib/upgrade-plan.js.map +1 -1
  279. package/dist/cli/lib/verify-changed-missions.js +1 -1
  280. package/dist/cli/lib/verify-changed-missions.js.map +1 -1
  281. package/dist/cli/lib/verify-engine.d.ts +36 -6
  282. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  283. package/dist/cli/lib/verify-engine.js +74 -25
  284. package/dist/cli/lib/verify-engine.js.map +1 -1
  285. package/dist/cli/lib/{verify-failure-presentation.d.ts → verify-failure-format.d.ts} +3 -4
  286. package/dist/cli/lib/verify-failure-format.d.ts.map +1 -0
  287. package/dist/cli/lib/{verify-failure-presentation.js → verify-failure-format.js} +2 -2
  288. package/dist/cli/lib/verify-failure-format.js.map +1 -0
  289. package/dist/cli/lib/verify-hints.d.ts +32 -0
  290. package/dist/cli/lib/verify-hints.d.ts.map +1 -0
  291. package/dist/cli/lib/verify-hints.js +161 -0
  292. package/dist/cli/lib/verify-hints.js.map +1 -0
  293. package/dist/cli/lib/{verify-result-payload.d.ts → verify-payload.d.ts} +2 -8
  294. package/dist/cli/lib/verify-payload.d.ts.map +1 -0
  295. package/dist/cli/lib/{verify-result-payload.js → verify-payload.js} +9 -26
  296. package/dist/cli/lib/verify-payload.js.map +1 -0
  297. package/dist/cli/lib/verify-present.d.ts +6 -19
  298. package/dist/cli/lib/verify-present.d.ts.map +1 -1
  299. package/dist/cli/lib/verify-present.js +3 -122
  300. package/dist/cli/lib/verify-present.js.map +1 -1
  301. package/dist/cli/lib/verify-presentation.d.ts +8 -0
  302. package/dist/cli/lib/verify-presentation.d.ts.map +1 -0
  303. package/dist/cli/lib/verify-presentation.js +5 -0
  304. package/dist/cli/lib/verify-presentation.js.map +1 -0
  305. package/dist/cli/lib/verify-presenters.d.ts +19 -0
  306. package/dist/cli/lib/verify-presenters.d.ts.map +1 -0
  307. package/dist/cli/lib/verify-presenters.js +173 -0
  308. package/dist/cli/lib/verify-presenters.js.map +1 -0
  309. package/dist/cli/lib/verify-remediation.d.ts +4 -30
  310. package/dist/cli/lib/verify-remediation.d.ts.map +1 -1
  311. package/dist/cli/lib/verify-remediation.js +2 -149
  312. package/dist/cli/lib/verify-remediation.js.map +1 -1
  313. package/dist/cli/lib/verify-run.d.ts +6 -4
  314. package/dist/cli/lib/verify-run.d.ts.map +1 -1
  315. package/dist/cli/lib/verify-run.js +23 -8
  316. package/dist/cli/lib/verify-run.js.map +1 -1
  317. package/dist/cli/lib/verify-sinks.d.ts +4 -0
  318. package/dist/cli/lib/verify-sinks.d.ts.map +1 -0
  319. package/dist/cli/lib/verify-sinks.js +12 -0
  320. package/dist/cli/lib/verify-sinks.js.map +1 -0
  321. package/dist/cli/lib/version.gen.d.ts +1 -1
  322. package/dist/cli/lib/version.gen.js +1 -1
  323. package/dist/cli/lib/virtual-scratch-store.d.ts +37 -0
  324. package/dist/cli/lib/virtual-scratch-store.d.ts.map +1 -0
  325. package/dist/cli/lib/virtual-scratch-store.js +132 -0
  326. package/dist/cli/lib/virtual-scratch-store.js.map +1 -0
  327. package/dist/cli/program-core.d.ts.map +1 -1
  328. package/dist/cli/program-core.js +52 -29
  329. package/dist/cli/program-core.js.map +1 -1
  330. package/dist/cli/program-mission.d.ts.map +1 -1
  331. package/dist/cli/program-mission.js +38 -1
  332. package/dist/cli/program-mission.js.map +1 -1
  333. package/dist/cli/program-workflow.d.ts.map +1 -1
  334. package/dist/cli/program-workflow.js +30 -20
  335. package/dist/cli/program-workflow.js.map +1 -1
  336. package/package.json +3 -2
  337. package/templates/.cursor/rules/opengantry-gxt-substrate.mdc +1 -0
  338. package/templates/.gitagent/teacher/MISSION.schema.yaml +6 -0
  339. package/templates/.gitagent/teacher/WORKER_LOG.template.md +1 -0
  340. package/templates/.githooks/pre-commit +26 -0
  341. package/templates/.github/workflows/gxt-validate.yml +5 -0
  342. package/templates/.gitignore.gxt +2 -0
  343. package/templates/AGENTS.md +4 -0
  344. package/templates/integrations/asset-catalog.json +30 -28
  345. package/templates/integrations/compatibility.json +10 -1
  346. package/templates/integrations/recipes/_footer.md +4 -0
  347. package/templates/integrations/recipes/claude-code.md +6 -4
  348. package/templates/integrations/recipes/codex-cli.md +6 -4
  349. package/templates/integrations/recipes/opencode.md +8 -2
  350. package/templates/scripts/gxt-shell-agent.sh +62 -0
  351. package/dist/cli/lib/agent-error.d.ts +0 -20
  352. package/dist/cli/lib/agent-error.d.ts.map +0 -1
  353. package/dist/cli/lib/agent-error.js.map +0 -1
  354. package/dist/cli/lib/architecture-pointer-discovery.d.ts +0 -7
  355. package/dist/cli/lib/architecture-pointer-discovery.d.ts.map +0 -1
  356. package/dist/cli/lib/architecture-pointer-discovery.js +0 -60
  357. package/dist/cli/lib/architecture-pointer-discovery.js.map +0 -1
  358. package/dist/cli/lib/architecture-pointer-doctor.d.ts +0 -3
  359. package/dist/cli/lib/architecture-pointer-doctor.d.ts.map +0 -1
  360. package/dist/cli/lib/architecture-pointer-doctor.js +0 -115
  361. package/dist/cli/lib/architecture-pointer-doctor.js.map +0 -1
  362. package/dist/cli/lib/architecture-pointer-schema.d.ts +0 -5
  363. package/dist/cli/lib/architecture-pointer-schema.d.ts.map +0 -1
  364. package/dist/cli/lib/architecture-pointer-schema.js +0 -138
  365. package/dist/cli/lib/architecture-pointer-schema.js.map +0 -1
  366. package/dist/cli/lib/architecture-pointer-types.d.ts +0 -24
  367. package/dist/cli/lib/architecture-pointer-types.d.ts.map +0 -1
  368. package/dist/cli/lib/architecture-pointer-types.js +0 -7
  369. package/dist/cli/lib/architecture-pointer-types.js.map +0 -1
  370. package/dist/cli/lib/break-glass-flow.d.ts +0 -18
  371. package/dist/cli/lib/break-glass-flow.d.ts.map +0 -1
  372. package/dist/cli/lib/break-glass-flow.js +0 -29
  373. package/dist/cli/lib/break-glass-flow.js.map +0 -1
  374. package/dist/cli/lib/cli-timeout.d.ts +0 -9
  375. package/dist/cli/lib/cli-timeout.d.ts.map +0 -1
  376. package/dist/cli/lib/cli-timeout.js +0 -17
  377. package/dist/cli/lib/cli-timeout.js.map +0 -1
  378. package/dist/cli/lib/doctor-checks.d.ts.map +0 -1
  379. package/dist/cli/lib/doctor-checks.js.map +0 -1
  380. package/dist/cli/lib/doctor-integration-checks.d.ts +0 -5
  381. package/dist/cli/lib/doctor-integration-checks.d.ts.map +0 -1
  382. package/dist/cli/lib/doctor-integration-checks.js.map +0 -1
  383. package/dist/cli/lib/doctor-orchestration.d.ts +0 -10
  384. package/dist/cli/lib/doctor-orchestration.d.ts.map +0 -1
  385. package/dist/cli/lib/doctor-orchestration.js +0 -32
  386. package/dist/cli/lib/doctor-orchestration.js.map +0 -1
  387. package/dist/cli/lib/doctor-substrate-drift.d.ts +0 -7
  388. package/dist/cli/lib/doctor-substrate-drift.d.ts.map +0 -1
  389. package/dist/cli/lib/doctor-substrate-drift.js.map +0 -1
  390. package/dist/cli/lib/git-metrics-missions.d.ts +0 -3
  391. package/dist/cli/lib/git-metrics-missions.d.ts.map +0 -1
  392. package/dist/cli/lib/git-metrics-missions.js +0 -51
  393. package/dist/cli/lib/git-metrics-missions.js.map +0 -1
  394. package/dist/cli/lib/git-metrics-stream.d.ts +0 -24
  395. package/dist/cli/lib/git-metrics-stream.d.ts.map +0 -1
  396. package/dist/cli/lib/git-metrics-stream.js +0 -137
  397. package/dist/cli/lib/git-metrics-stream.js.map +0 -1
  398. package/dist/cli/lib/git-repo.d.ts +0 -26
  399. package/dist/cli/lib/git-repo.d.ts.map +0 -1
  400. package/dist/cli/lib/git-repo.js +0 -53
  401. package/dist/cli/lib/git-repo.js.map +0 -1
  402. package/dist/cli/lib/init-compose-arch-pointer.d.ts.map +0 -1
  403. package/dist/cli/lib/init-compose-arch-pointer.js.map +0 -1
  404. package/dist/cli/lib/init-compose-doc.d.ts +0 -5
  405. package/dist/cli/lib/init-compose-doc.d.ts.map +0 -1
  406. package/dist/cli/lib/init-compose-doc.js +0 -37
  407. package/dist/cli/lib/init-compose-doc.js.map +0 -1
  408. package/dist/cli/lib/kpi-phase.d.ts +0 -7
  409. package/dist/cli/lib/kpi-phase.d.ts.map +0 -1
  410. package/dist/cli/lib/kpi-phase.js +0 -80
  411. package/dist/cli/lib/kpi-phase.js.map +0 -1
  412. package/dist/cli/lib/kpi-report-stale.d.ts +0 -18
  413. package/dist/cli/lib/kpi-report-stale.d.ts.map +0 -1
  414. package/dist/cli/lib/kpi-report-stale.js +0 -91
  415. package/dist/cli/lib/kpi-report-stale.js.map +0 -1
  416. package/dist/cli/lib/kpi-report.d.ts +0 -13
  417. package/dist/cli/lib/kpi-report.d.ts.map +0 -1
  418. package/dist/cli/lib/kpi-report.js +0 -115
  419. package/dist/cli/lib/kpi-report.js.map +0 -1
  420. package/dist/cli/lib/legislate-core.d.ts +0 -21
  421. package/dist/cli/lib/legislate-core.d.ts.map +0 -1
  422. package/dist/cli/lib/legislate-core.js.map +0 -1
  423. package/dist/cli/lib/legislate-skill.d.ts +0 -20
  424. package/dist/cli/lib/legislate-skill.d.ts.map +0 -1
  425. package/dist/cli/lib/legislate-skill.js +0 -30
  426. package/dist/cli/lib/legislate-skill.js.map +0 -1
  427. package/dist/cli/lib/mcp-legislation-draft.d.ts +0 -6
  428. package/dist/cli/lib/mcp-legislation-draft.d.ts.map +0 -1
  429. package/dist/cli/lib/mcp-legislation-draft.js +0 -62
  430. package/dist/cli/lib/mcp-legislation-draft.js.map +0 -1
  431. package/dist/cli/lib/mcp-legislation-execute.d.ts +0 -6
  432. package/dist/cli/lib/mcp-legislation-execute.d.ts.map +0 -1
  433. package/dist/cli/lib/mcp-legislation-execute.js +0 -43
  434. package/dist/cli/lib/mcp-legislation-execute.js.map +0 -1
  435. package/dist/cli/lib/mcp-legislation-mission.d.ts +0 -12
  436. package/dist/cli/lib/mcp-legislation-mission.d.ts.map +0 -1
  437. package/dist/cli/lib/mcp-legislation-mission.js +0 -82
  438. package/dist/cli/lib/mcp-legislation-mission.js.map +0 -1
  439. package/dist/cli/lib/mcp-legislation-types.d.ts +0 -69
  440. package/dist/cli/lib/mcp-legislation-types.d.ts.map +0 -1
  441. package/dist/cli/lib/mcp-legislation-types.js +0 -4
  442. package/dist/cli/lib/mcp-legislation-types.js.map +0 -1
  443. package/dist/cli/lib/mcp-legislation.d.ts +0 -5
  444. package/dist/cli/lib/mcp-legislation.d.ts.map +0 -1
  445. package/dist/cli/lib/mcp-legislation.js +0 -4
  446. package/dist/cli/lib/mcp-legislation.js.map +0 -1
  447. package/dist/cli/lib/mcp-orchestration-types.d.ts +0 -28
  448. package/dist/cli/lib/mcp-orchestration-types.d.ts.map +0 -1
  449. package/dist/cli/lib/mcp-orchestration-types.js +0 -2
  450. package/dist/cli/lib/mcp-orchestration-types.js.map +0 -1
  451. package/dist/cli/lib/mcp-orchestration.d.ts +0 -14
  452. package/dist/cli/lib/mcp-orchestration.d.ts.map +0 -1
  453. package/dist/cli/lib/mcp-orchestration.js +0 -54
  454. package/dist/cli/lib/mcp-orchestration.js.map +0 -1
  455. package/dist/cli/lib/mcp-upgrade-types.d.ts +0 -12
  456. package/dist/cli/lib/mcp-upgrade-types.d.ts.map +0 -1
  457. package/dist/cli/lib/mcp-upgrade-types.js +0 -2
  458. package/dist/cli/lib/mcp-upgrade-types.js.map +0 -1
  459. package/dist/cli/lib/mission-emit.d.ts +0 -7
  460. package/dist/cli/lib/mission-emit.d.ts.map +0 -1
  461. package/dist/cli/lib/mission-emit.js +0 -23
  462. package/dist/cli/lib/mission-emit.js.map +0 -1
  463. package/dist/cli/lib/mission-legislative-stub.d.ts +0 -9
  464. package/dist/cli/lib/mission-legislative-stub.d.ts.map +0 -1
  465. package/dist/cli/lib/mission-legislative-stub.js +0 -37
  466. package/dist/cli/lib/mission-legislative-stub.js.map +0 -1
  467. package/dist/cli/lib/mission-markdown.d.ts +0 -6
  468. package/dist/cli/lib/mission-markdown.d.ts.map +0 -1
  469. package/dist/cli/lib/mission-markdown.js.map +0 -1
  470. package/dist/cli/lib/mission-msn.d.ts +0 -9
  471. package/dist/cli/lib/mission-msn.d.ts.map +0 -1
  472. package/dist/cli/lib/mission-msn.js +0 -86
  473. package/dist/cli/lib/mission-msn.js.map +0 -1
  474. package/dist/cli/lib/mission-parser.d.ts +0 -6
  475. package/dist/cli/lib/mission-parser.d.ts.map +0 -1
  476. package/dist/cli/lib/mission-parser.js +0 -29
  477. package/dist/cli/lib/mission-parser.js.map +0 -1
  478. package/dist/cli/lib/mission-path.d.ts +0 -4
  479. package/dist/cli/lib/mission-path.d.ts.map +0 -1
  480. package/dist/cli/lib/mission-path.js +0 -28
  481. package/dist/cli/lib/mission-path.js.map +0 -1
  482. package/dist/cli/lib/mission-resolution.d.ts +0 -14
  483. package/dist/cli/lib/mission-resolution.d.ts.map +0 -1
  484. package/dist/cli/lib/mission-resolution.js +0 -60
  485. package/dist/cli/lib/mission-resolution.js.map +0 -1
  486. package/dist/cli/lib/mission-schema-validate.d.ts.map +0 -1
  487. package/dist/cli/lib/mission-schema-validate.js.map +0 -1
  488. package/dist/cli/lib/mission-yaml.d.ts +0 -18
  489. package/dist/cli/lib/mission-yaml.d.ts.map +0 -1
  490. package/dist/cli/lib/mission-yaml.js +0 -228
  491. package/dist/cli/lib/mission-yaml.js.map +0 -1
  492. package/dist/cli/lib/register-proposals-format.d.ts +0 -2
  493. package/dist/cli/lib/register-proposals-format.d.ts.map +0 -1
  494. package/dist/cli/lib/register-proposals-format.js +0 -6
  495. package/dist/cli/lib/register-proposals-format.js.map +0 -1
  496. package/dist/cli/lib/runtime-exec-orchestrator.d.ts +0 -14
  497. package/dist/cli/lib/runtime-exec-orchestrator.d.ts.map +0 -1
  498. package/dist/cli/lib/runtime-exec-orchestrator.js +0 -132
  499. package/dist/cli/lib/runtime-exec-orchestrator.js.map +0 -1
  500. package/dist/cli/lib/runtime-exec-result.d.ts +0 -21
  501. package/dist/cli/lib/runtime-exec-result.d.ts.map +0 -1
  502. package/dist/cli/lib/runtime-exec-result.js +0 -42
  503. package/dist/cli/lib/runtime-exec-result.js.map +0 -1
  504. package/dist/cli/lib/runtime-exec-worker.d.ts +0 -18
  505. package/dist/cli/lib/runtime-exec-worker.d.ts.map +0 -1
  506. package/dist/cli/lib/runtime-exec-worker.js +0 -49
  507. package/dist/cli/lib/runtime-exec-worker.js.map +0 -1
  508. package/dist/cli/lib/start-state.d.ts.map +0 -1
  509. package/dist/cli/lib/start-state.js.map +0 -1
  510. package/dist/cli/lib/trace-evidence.d.ts +0 -23
  511. package/dist/cli/lib/trace-evidence.d.ts.map +0 -1
  512. package/dist/cli/lib/trace-evidence.js +0 -118
  513. package/dist/cli/lib/trace-evidence.js.map +0 -1
  514. package/dist/cli/lib/trace-failure-kind.d.ts +0 -4
  515. package/dist/cli/lib/trace-failure-kind.d.ts.map +0 -1
  516. package/dist/cli/lib/trace-failure-kind.js +0 -25
  517. package/dist/cli/lib/trace-failure-kind.js.map +0 -1
  518. package/dist/cli/lib/trace-status.d.ts +0 -7
  519. package/dist/cli/lib/trace-status.d.ts.map +0 -1
  520. package/dist/cli/lib/trace-status.js +0 -20
  521. package/dist/cli/lib/trace-status.js.map +0 -1
  522. package/dist/cli/lib/upgrade-eligible-assets.d.ts +0 -5
  523. package/dist/cli/lib/upgrade-eligible-assets.d.ts.map +0 -1
  524. package/dist/cli/lib/upgrade-eligible-assets.js +0 -9
  525. package/dist/cli/lib/upgrade-eligible-assets.js.map +0 -1
  526. package/dist/cli/lib/upgrade-plan-preview.d.ts +0 -13
  527. package/dist/cli/lib/upgrade-plan-preview.d.ts.map +0 -1
  528. package/dist/cli/lib/upgrade-plan-preview.js +0 -51
  529. package/dist/cli/lib/upgrade-plan-preview.js.map +0 -1
  530. package/dist/cli/lib/upgrade-profile.d.ts +0 -4
  531. package/dist/cli/lib/upgrade-profile.d.ts.map +0 -1
  532. package/dist/cli/lib/upgrade-profile.js +0 -27
  533. package/dist/cli/lib/upgrade-profile.js.map +0 -1
  534. package/dist/cli/lib/user-error.d.ts.map +0 -1
  535. package/dist/cli/lib/user-error.js +0 -64
  536. package/dist/cli/lib/user-error.js.map +0 -1
  537. package/dist/cli/lib/verify-failure-presentation.d.ts.map +0 -1
  538. package/dist/cli/lib/verify-failure-presentation.js.map +0 -1
  539. package/dist/cli/lib/verify-result-payload.d.ts.map +0 -1
  540. package/dist/cli/lib/verify-result-payload.js.map +0 -1
  541. package/dist/cli/lib/verify-types.d.ts +0 -31
  542. package/dist/cli/lib/verify-types.d.ts.map +0 -1
  543. package/dist/cli/lib/verify-types.js +0 -2
  544. package/dist/cli/lib/verify-types.js.map +0 -1
@@ -1,6 +1,200 @@
1
- import { gitRevParse } from "./git-repo.js";
2
- import { listMissionMsnIdsAtRef } from "./git-metrics-missions.js";
3
- import { aggregateFromLogStream, clearMetricsDiffCache, computeTurnaround, countBypassNotes, streamLogRecords, } from "./git-metrics-stream.js";
1
+ import YAML from "yaml";
2
+ import { GXT_BYPASS_NOTES_REF } from "./break-glass.js";
3
+ import { MSN_ID_PATTERN, WORKER_LOG_FILENAME } from "./constants.js";
4
+ import { parseTeacherEmailsFromEnv, commitSubjectHasMsnPrefix } from "./git-proof.js";
5
+ import { gitRevParse, gitRunOk } from "./git.js";
6
+ const MISSIONS_PREFIX = ".gitagent/missions/";
7
+ const diffCache = new Map();
8
+ /** Namespaced extension block for additive metrics semantics (strict-parser safe). */
9
+ export const GXT_METRICS_CLASSIFICATION_MODE = "PATH_TOUCH_PROXY";
10
+ export const GXT_METRICS_EXTENSION_SCHEMA_VERSION = 1;
11
+ export function buildGxtExtensionMetadata() {
12
+ return {
13
+ classification_mode: GXT_METRICS_CLASSIFICATION_MODE,
14
+ schema_version: GXT_METRICS_EXTENSION_SCHEMA_VERSION,
15
+ };
16
+ }
17
+ function parseMsnFromYamlContent(content) {
18
+ try {
19
+ const data = YAML.parse(content);
20
+ const raw = data.msn_id ?? data.msnId;
21
+ if (typeof raw === "string" && MSN_ID_PATTERN.test(raw.trim()))
22
+ return raw.trim();
23
+ }
24
+ catch {
25
+ /* skip */
26
+ }
27
+ return null;
28
+ }
29
+ export function msnFromMissionPath(rel) {
30
+ const norm = rel.trim().replace(/\\/g, "/");
31
+ if (!norm.startsWith(MISSIONS_PREFIX))
32
+ return null;
33
+ if (!/\.(ya?ml|md)$/i.test(norm))
34
+ return null;
35
+ const fromName = norm.match(/MSN-\d{4}/)?.[0];
36
+ if (fromName && MSN_ID_PATTERN.test(fromName))
37
+ return fromName;
38
+ return null;
39
+ }
40
+ export function listMissionMsnIdsAtRef(root, ref) {
41
+ const ids = new Set();
42
+ const tree = gitRunOk(root, ["ls-tree", "-r", "--name-only", ref, MISSIONS_PREFIX]);
43
+ if (!tree.ok)
44
+ return ids;
45
+ for (const rel of tree.stdout.split("\n")) {
46
+ const norm = rel.trim().replace(/\\/g, "/");
47
+ if (!norm)
48
+ continue;
49
+ const fromName = msnFromMissionPath(norm);
50
+ if (fromName) {
51
+ ids.add(fromName);
52
+ continue;
53
+ }
54
+ const show = gitRunOk(root, ["show", `${ref}:${norm}`]);
55
+ if (!show.ok)
56
+ continue;
57
+ const parsed = parseMsnFromYamlContent(show.stdout);
58
+ if (parsed)
59
+ ids.add(parsed);
60
+ }
61
+ return ids;
62
+ }
63
+ export function streamLogRecords(root, ref) {
64
+ const r = gitRunOk(root, ["log", ref, "-z", "--reverse", "--format=%H%x1f%s%x1f%aE%x1f%cI"], 64 * 1024 * 1024);
65
+ if (!r.ok || !r.stdout.trim())
66
+ return [];
67
+ const records = [];
68
+ for (const chunk of r.stdout.split("\0").filter((c) => c.length > 0)) {
69
+ const parts = chunk.split("\x1f");
70
+ if (parts.length < 4)
71
+ continue;
72
+ const [hash, subject, email, ts] = parts;
73
+ if (!hash || !subject || !email || !ts)
74
+ continue;
75
+ records.push({ hash, subject, email, ts });
76
+ }
77
+ return records;
78
+ }
79
+ export function countBypassNotes(root) {
80
+ const r = gitRunOk(root, ["notes", `--ref=${GXT_BYPASS_NOTES_REF}`, "list"]);
81
+ if (!r.ok || !r.stdout.trim())
82
+ return 0;
83
+ return r.stdout.split("\n").filter((l) => l.trim().length > 0).length;
84
+ }
85
+ function commitChangedPaths(root, hash) {
86
+ const cached = diffCache.get(hash);
87
+ if (cached)
88
+ return cached;
89
+ const r = gitRunOk(root, ["diff-tree", "--no-commit-id", "--name-only", "-r", hash]);
90
+ const paths = r.ok
91
+ ? r.stdout
92
+ .split("\n")
93
+ .map((p) => p.trim().replace(/\\/g, "/"))
94
+ .filter((p) => p.length > 0)
95
+ : [];
96
+ diffCache.set(hash, paths);
97
+ return paths;
98
+ }
99
+ function isTeacherEmail(email) {
100
+ const normalizedAuthor = email.trim().toLowerCase();
101
+ if (!normalizedAuthor)
102
+ return false;
103
+ const allow = parseTeacherEmailsFromEnv();
104
+ if (allow.length === 0)
105
+ return false;
106
+ return allow.some((teacherEmail) => teacherEmail.length > 0 && teacherEmail === normalizedAuthor);
107
+ }
108
+ function subjectMsnId(subject) {
109
+ const m = subject.trim().match(/^\[(MSN-\d{4})\]/);
110
+ const id = m?.[1];
111
+ return id && MSN_ID_PATTERN.test(id) ? id : null;
112
+ }
113
+ export function median(values) {
114
+ if (values.length === 0)
115
+ return null;
116
+ const sorted = [...values].sort((a, b) => a - b);
117
+ const mid = Math.floor(sorted.length / 2);
118
+ if (sorted.length % 2 === 0) {
119
+ const a = sorted[mid - 1];
120
+ const b = sorted[mid];
121
+ if (a === undefined || b === undefined)
122
+ return null;
123
+ return (a + b) / 2;
124
+ }
125
+ return sorted[mid] ?? null;
126
+ }
127
+ export function clearMetricsDiffCache() {
128
+ diffCache.clear();
129
+ }
130
+ export function aggregateFromLogStream(root, records) {
131
+ const missionIdsFromLog = new Set();
132
+ let legislative = 0;
133
+ let worker_trace = 0;
134
+ let bypass_audit = 0;
135
+ const firstSeen = new Map();
136
+ const lastSeen = new Map();
137
+ for (const rec of records) {
138
+ const ts = Date.parse(rec.ts);
139
+ if (!Number.isFinite(ts))
140
+ continue;
141
+ if (rec.subject.trim().startsWith("[GXT-AUDIT] break-glass:")) {
142
+ bypass_audit++;
143
+ }
144
+ const msnFromSubject = subjectMsnId(rec.subject);
145
+ if (msnFromSubject)
146
+ missionIdsFromLog.add(msnFromSubject);
147
+ const paths = commitChangedPaths(root, rec.hash);
148
+ let touchesMission = false;
149
+ let touchesWorkerLog = false;
150
+ for (const p of paths) {
151
+ if (p === WORKER_LOG_FILENAME)
152
+ touchesWorkerLog = true;
153
+ const msnFromPath = msnFromMissionPath(p);
154
+ if (msnFromPath) {
155
+ touchesMission = true;
156
+ if (!firstSeen.has(msnFromPath))
157
+ firstSeen.set(msnFromPath, ts);
158
+ missionIdsFromLog.add(msnFromPath);
159
+ }
160
+ }
161
+ const isLegislative = msnFromSubject !== null &&
162
+ commitSubjectHasMsnPrefix(rec.subject, msnFromSubject) &&
163
+ isTeacherEmail(rec.email) &&
164
+ touchesMission;
165
+ if (isLegislative) {
166
+ legislative++;
167
+ }
168
+ else if (touchesWorkerLog && !touchesMission) {
169
+ worker_trace++;
170
+ }
171
+ if (msnFromSubject)
172
+ lastSeen.set(msnFromSubject, ts);
173
+ }
174
+ return {
175
+ missionIdsFromLog,
176
+ legislative,
177
+ worker_trace,
178
+ bypass_audit,
179
+ firstSeen,
180
+ lastSeen,
181
+ };
182
+ }
183
+ export function computeTurnaround(firstSeen, lastSeen) {
184
+ const deltas = [];
185
+ for (const [msn, end] of lastSeen) {
186
+ const start = firstSeen.get(msn);
187
+ if (start === undefined)
188
+ continue;
189
+ const delta = (end - start) / 1000;
190
+ if (Number.isFinite(delta) && delta >= 0)
191
+ deltas.push(delta);
192
+ }
193
+ if (deltas.length === 0)
194
+ return { mean: null, median: null, samples: 0 };
195
+ const sum = deltas.reduce((a, b) => a + b, 0);
196
+ return { mean: sum / deltas.length, median: median(deltas), samples: deltas.length };
197
+ }
4
198
  /** Stable key order for cross-clone identical JSON. */
5
199
  export function collectGitMetrics(root, refName) {
6
200
  clearMetricsDiffCache();
@@ -20,6 +214,7 @@ export function collectGitMetrics(root, refName) {
20
214
  worker_trace_commits: stream.worker_trace,
21
215
  turnaround_seconds: computeTurnaround(stream.firstSeen, stream.lastSeen),
22
216
  mission_ids: missionIds,
217
+ gxt_extension_metadata: buildGxtExtensionMetadata(),
23
218
  };
24
219
  }
25
220
  export function formatGitMetricsHuman(report) {
@@ -28,6 +223,7 @@ export function formatGitMetricsHuman(report) {
28
223
  ` missions_completed: ${String(report.missions_completed)}`,
29
224
  ` bypass_count (git notes): ${String(report.bypass_count)}`,
30
225
  ` bypass_audit_commits: ${String(report.bypass_audit_commits)}`,
226
+ ` classification_mode: ${report.gxt_extension_metadata.classification_mode}`,
31
227
  ` legislative_commits (proxy): ${String(report.legislative_commits)}`,
32
228
  ` worker_trace_commits (proxy): ${String(report.worker_trace_commits)}`,
33
229
  ` turnaround_seconds.mean: ${report.turnaround_seconds.mean === null ? "n/a" : report.turnaround_seconds.mean.toFixed(1)}`,
@@ -1 +1 @@
1
- {"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAiBjC,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,qBAAqB,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvF,OAAO;QACL,GAAG;QACH,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;QACpC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,mBAAmB,EAAE,MAAM,CAAC,WAAW;QACvC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxE,WAAW,EAAE,UAAU;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,MAAM,KAAK,GAAG;QACZ,oBAAoB,MAAM,CAAC,GAAG,GAAG;QACjC,yBAAyB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;QAC5D,+BAA+B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QAC5D,2BAA2B,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QAChE,kCAAkC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;QACtE,mCAAmC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QACxE,8BAA8B,MAAM,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3H,gCAAgC,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjI,iCAAiC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;KAC7E,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"git-metrics.js","sourceRoot":"","sources":["../../../src/cli/lib/git-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAS9C,sFAAsF;AACtF,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAU,CAAC;AAuB/D,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,mBAAmB,EAAE,+BAA+B;QACpD,cAAc,EAAE,oCAAoC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwC,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,GAAW;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAW;IACxD,MAAM,CAAC,GAAG,QAAQ,CAChB,IAAI,EACJ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,iCAAiC,CAAC,EAClE,EAAE,GAAG,IAAI,GAAG,IAAI,CACjB,CAAC;IACF,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YAAE,SAAS;QACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAY;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE;QAChB,CAAC,CAAC,CAAC,CAAC,MAAM;aACL,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC;IACP,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,KAAK,gBAAgB,CAC/E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAgB;IACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAoB;IASpB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,SAAS;QAEnC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC9D,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,cAAc;YAAE,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,mBAAmB;gBAAE,gBAAgB,GAAG,IAAI,CAAC;YACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAChE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GACjB,cAAc,KAAK,IAAI;YACvB,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC;YACtD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,cAAc,CAAC;QAEjB,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,IAAI,cAAc;YAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAA8B,EAC9B,QAA6B;IAE7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACvF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,qBAAqB,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvF,OAAO;QACL,GAAG;QACH,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;QACpC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,mBAAmB,EAAE,MAAM,CAAC,WAAW;QACvC,oBAAoB,EAAE,MAAM,CAAC,YAAY;QACzC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxE,WAAW,EAAE,UAAU;QACvB,sBAAsB,EAAE,yBAAyB,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,MAAM,KAAK,GAAG;QACZ,oBAAoB,MAAM,CAAC,GAAG,GAAG;QACjC,yBAAyB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;QAC5D,+BAA+B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QAC5D,2BAA2B,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QAChE,0BAA0B,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;QAC7E,kCAAkC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;QACtE,mCAAmC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;QACxE,8BAA8B,MAAM,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3H,gCAAgC,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjI,iCAAiC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;KAC7E,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,6 +1,10 @@
1
1
  /** Missions verified by `gapman verify` must live under this repo-relative prefix. */
2
2
  export declare const REL_MISSIONS_PREFIX: ".gitagent/missions/";
3
3
  export { ENV_TEACHER_EMAILS, parseTeacherEmailsFromEnv } from "./teacher-identity.js";
4
+ export declare const ENV_MSN_SCAN_DEPTH: "GXT_MSN_SCAN_DEPTH";
5
+ export declare const DEFAULT_MSN_SCAN_DEPTH = 200;
6
+ /** Resolve git-proof scan depth: explicit option, then env, then default. */
7
+ export declare function resolveMsnScanDepth(explicit?: number): number;
4
8
  export declare function missionPathRepoRelative(root: string, missionAbsolutePath: string): string;
5
9
  export declare function assertMissionUnderMissionsDir(repoRelMissionPath: string): void;
6
10
  export interface MsnCommitRow {
@@ -1 +1 @@
1
- {"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAqBA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAItF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAS9E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAA+B,GACzC,YAAY,EAAE,CA0BhB;AAMD,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAWD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAmER;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAOT"}
1
+ {"version":3,"file":"git-proof.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"AAqBA,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC;AAChE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAS9E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE,CA0BhB;AAMD,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW3E;AAWD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,MAAM,CAkER;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAOT"}
@@ -1,18 +1,33 @@
1
1
  import path from "node:path";
2
2
  import { CLI_NAME, MSN_ID_PATTERN } from "./constants.js";
3
3
  import { toPosixRel } from "./cli-io.js";
4
- import { gitRun } from "./git-repo.js";
4
+ import { gitRun } from "./git.js";
5
5
  import { hintGitProof } from "./fix-hints.js";
6
- import { GapmanUserError } from "./user-error.js";
6
+ import { GapmanUserError } from "./errors.js";
7
7
  function throwGitProofError(code, detail, ctx = {}) {
8
8
  throw new GapmanUserError(code, `${CLI_NAME} verify: git-proof: ${code} — ${detail}`, hintGitProof(code, ctx));
9
9
  }
10
- import { extractMsnIdFromMissionPath } from "./mission-msn.js";
10
+ import { extractMsnIdFromMissionPath } from "./missions/parser.js";
11
11
  import { resolveTeacherEmails } from "./teacher-identity.js";
12
12
  /** Missions verified by `gapman verify` must live under this repo-relative prefix. */
13
13
  export const REL_MISSIONS_PREFIX = ".gitagent/missions/";
14
14
  export { ENV_TEACHER_EMAILS, parseTeacherEmailsFromEnv } from "./teacher-identity.js";
15
- const DEFAULT_MSN_SCAN_DEPTH = 200;
15
+ export const ENV_MSN_SCAN_DEPTH = "GXT_MSN_SCAN_DEPTH";
16
+ export const DEFAULT_MSN_SCAN_DEPTH = 200;
17
+ /** Resolve git-proof scan depth: explicit option, then env, then default. */
18
+ export function resolveMsnScanDepth(explicit) {
19
+ if (explicit !== undefined && Number.isFinite(explicit) && explicit > 0) {
20
+ return Math.floor(explicit);
21
+ }
22
+ const envRaw = process.env[ENV_MSN_SCAN_DEPTH];
23
+ if (envRaw !== undefined && envRaw.trim() !== "") {
24
+ const envParsed = Number.parseInt(envRaw.trim(), 10);
25
+ if (Number.isFinite(envParsed) && envParsed > 0) {
26
+ return envParsed;
27
+ }
28
+ }
29
+ return DEFAULT_MSN_SCAN_DEPTH;
30
+ }
16
31
  export function missionPathRepoRelative(root, missionAbsolutePath) {
17
32
  const absMission = path.resolve(missionAbsolutePath);
18
33
  const absRoot = path.resolve(root);
@@ -43,8 +58,8 @@ export function commitSubjectHasMsnPrefix(subject, msnId) {
43
58
  * Newest-first commits among the last `scanDepth` history entries whose **subject** (%s) starts
44
59
  * with `[msnId]`. Uses plain `git log` (no `--grep`) so matches cannot come from the body alone.
45
60
  */
46
- export function listMsnSubjectCommits(root, msnId, scanDepth = DEFAULT_MSN_SCAN_DEPTH) {
47
- const depth = Number.isFinite(scanDepth) && scanDepth > 0 ? Math.floor(scanDepth) : DEFAULT_MSN_SCAN_DEPTH;
61
+ export function listMsnSubjectCommits(root, msnId, scanDepth) {
62
+ const depth = resolveMsnScanDepth(scanDepth);
48
63
  const { ok, stdout, stderr } = gitRun(root, [
49
64
  "log",
50
65
  "-z",
@@ -113,8 +128,7 @@ export function assertTeacherMissionProof(root, missionAbsolutePath, options) {
113
128
  }
114
129
  const repoRelMission = missionPathRepoRelative(root, missionAbsolutePath);
115
130
  assertMissionUnderMissionsDir(repoRelMission);
116
- const scanDepth = options?.scanDepth;
117
- const rows = listMsnSubjectCommits(root, msnId, scanDepth);
131
+ const rows = listMsnSubjectCommits(root, msnId, resolveMsnScanDepth(options?.scanDepth));
118
132
  if (rows.length === 0) {
119
133
  throwGitProofError("NO_MSN_COMMITS", `No commits found starting with [${msnId}]. Did you commit the mission?`, { root, missionPath, msnId, repoRelMission });
120
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-proof.js","sourceRoot":"","sources":["../../../src/cli/lib/git-proof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Staged paths from the index (not working tree). */
2
+ export declare function gitStagedNameOnly(repoRoot: string): string[];
3
+ export type GitStagedBlobResult = {
4
+ ok: true;
5
+ content: Buffer;
6
+ } | {
7
+ ok: false;
8
+ reason: string;
9
+ };
10
+ /**
11
+ * Read staged index bytes for a repo-relative path (`git show :path`).
12
+ * Never reads the working tree — index-fidelity for pre-commit guards.
13
+ */
14
+ export declare function gitReadStagedBlob(repoRoot: string, repoRel: string): GitStagedBlobResult;
15
+ /** Stage a repo-relative path (`git add -- path`). */
16
+ export declare function gitStagePath(repoRoot: string, repoRel: string): {
17
+ ok: boolean;
18
+ stderr: string;
19
+ };
20
+ //# sourceMappingURL=git-staged.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-staged.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git-staged.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5D;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAcxF;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG/F"}
@@ -0,0 +1,37 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { gitRun } from "./git.js";
3
+ /** Staged paths from the index (not working tree). */
4
+ export function gitStagedNameOnly(repoRoot) {
5
+ const r = gitRun(repoRoot, ["diff", "--cached", "--name-only", "--diff-filter=ACMR"]);
6
+ if (!r.ok)
7
+ return [];
8
+ return r.stdout
9
+ .split(/\r?\n/)
10
+ .map((line) => line.trim())
11
+ .filter(Boolean);
12
+ }
13
+ /**
14
+ * Read staged index bytes for a repo-relative path (`git show :path`).
15
+ * Never reads the working tree — index-fidelity for pre-commit guards.
16
+ */
17
+ export function gitReadStagedBlob(repoRoot, repoRel) {
18
+ const r = spawnSync("git", ["-C", repoRoot, "show", `:${repoRel}`], {
19
+ encoding: "buffer",
20
+ maxBuffer: 32 * 1024 * 1024,
21
+ });
22
+ if (r.status !== 0) {
23
+ const stderr = typeof r.stderr === "string" ? r.stderr : r.stderr?.toString("utf8") ?? "";
24
+ return { ok: false, reason: stderr.trim() || `git show :${repoRel} failed` };
25
+ }
26
+ const buf = r.stdout;
27
+ if (!Buffer.isBuffer(buf)) {
28
+ return { ok: false, reason: `git show :${repoRel} returned no buffer` };
29
+ }
30
+ return { ok: true, content: buf };
31
+ }
32
+ /** Stage a repo-relative path (`git add -- path`). */
33
+ export function gitStagePath(repoRoot, repoRel) {
34
+ const r = gitRun(repoRoot, ["add", "--", repoRel]);
35
+ return { ok: r.ok, stderr: r.stderr.trim() };
36
+ }
37
+ //# sourceMappingURL=git-staged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-staged.js","sourceRoot":"","sources":["../../../src/cli/lib/git-staged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,sDAAsD;AACtD,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM;SACZ,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IACjE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE;QAClE,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,OAAO,SAAS,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,OAAO,qBAAqB,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAe;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/C,CAAC"}
@@ -1,2 +1,27 @@
1
1
  export declare function getRepoRoot(cwd?: string): string;
2
+ export interface GitRunResult {
3
+ ok: boolean;
4
+ stdout: string;
5
+ stderr: string;
6
+ status: number | null;
7
+ }
8
+ /** Run git in repository root (`git -C root ...args`). */
9
+ export declare function gitRun(repoRoot: string, args: string[], maxBuffer?: number): GitRunResult;
10
+ export declare function gitRunOk(repoRoot: string, args: string[], maxBuffer?: number): {
11
+ ok: boolean;
12
+ stdout: string;
13
+ };
14
+ export declare function gitRevParse(repoRoot: string, ref: string): string | null;
15
+ export declare function gitHead(repoRoot: string): string | null;
16
+ export declare function gitLogSubjects(repoRoot: string, grep: string, limit: number): string[];
17
+ export declare function gitConfigGet(repoRoot: string, key: string): string | null;
18
+ export type GitDiffSinceCommitResult = {
19
+ ok: true;
20
+ paths: string[];
21
+ } | {
22
+ ok: false;
23
+ stderr: string;
24
+ };
25
+ /** Paths under tmvcRoots that differ between ref and the working tree; empty paths = fresh. */
26
+ export declare function gitDiffNameOnlySinceCommit(repoRoot: string, commit: string, tmvcRoots: readonly string[]): GitDiffSinceCommitResult;
2
27
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,GAAG,SAAgB,GAAG,MAAM,CAYvD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,GAAG,SAAgB,GAAG,MAAM,CAYvD;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,SAAmB,GAAG,YAAY,CAWnG;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,SAAmB,GAC3B;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAGjC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAItF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,wBAAwB,CAW1B"}
@@ -1,5 +1,6 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import path from "node:path";
3
+ import { spawnSync } from "node:child_process";
3
4
  import { CLI_NAME } from "./constants.js";
4
5
  export function getRepoRoot(cwd = process.cwd()) {
5
6
  try {
@@ -16,4 +17,55 @@ export function getRepoRoot(cwd = process.cwd()) {
16
17
  throw new Error(`${CLI_NAME}: not inside a git repository`);
17
18
  }
18
19
  }
20
+ /** Run git in repository root (`git -C root ...args`). */
21
+ export function gitRun(repoRoot, args, maxBuffer = 32 * 1024 * 1024) {
22
+ const r = spawnSync("git", ["-C", repoRoot, ...args], {
23
+ encoding: "utf8",
24
+ maxBuffer,
25
+ });
26
+ return {
27
+ ok: r.status === 0,
28
+ stdout: typeof r.stdout === "string" ? r.stdout : "",
29
+ stderr: typeof r.stderr === "string" ? r.stderr : "",
30
+ status: r.status,
31
+ };
32
+ }
33
+ export function gitRunOk(repoRoot, args, maxBuffer = 32 * 1024 * 1024) {
34
+ const r = gitRun(repoRoot, args, maxBuffer);
35
+ return { ok: r.ok, stdout: r.stdout };
36
+ }
37
+ export function gitRevParse(repoRoot, ref) {
38
+ const r = gitRunOk(repoRoot, ["rev-parse", "--verify", `${ref}^{commit}`]);
39
+ return r.ok && r.stdout.trim() ? r.stdout.trim() : null;
40
+ }
41
+ export function gitHead(repoRoot) {
42
+ const r = gitRunOk(repoRoot, ["rev-parse", "HEAD"]);
43
+ return r.ok && r.stdout.trim() ? r.stdout.trim() : null;
44
+ }
45
+ export function gitLogSubjects(repoRoot, grep, limit) {
46
+ const r = gitRunOk(repoRoot, ["log", `--grep=${grep}`, `-${limit}`, "--format=%s"]);
47
+ if (!r.ok || !r.stdout.trim())
48
+ return [];
49
+ return r.stdout.split("\n").filter(Boolean);
50
+ }
51
+ export function gitConfigGet(repoRoot, key) {
52
+ const r = gitRunOk(repoRoot, ["config", "--get", key]);
53
+ if (!r.ok || !r.stdout.trim())
54
+ return null;
55
+ return r.stdout.trim();
56
+ }
57
+ /** Paths under tmvcRoots that differ between ref and the working tree; empty paths = fresh. */
58
+ export function gitDiffNameOnlySinceCommit(repoRoot, commit, tmvcRoots) {
59
+ const roots = tmvcRoots.map((r) => r.trim()).filter((r) => r.length > 0);
60
+ if (roots.length === 0)
61
+ return { ok: true, paths: [] };
62
+ const r = gitRun(repoRoot, ["diff", "--name-only", commit, "--", ...roots]);
63
+ if (!r.ok)
64
+ return { ok: false, stderr: r.stderr.trim() || "git diff failed" };
65
+ const paths = r.stdout
66
+ .split(/\r?\n/)
67
+ .map((line) => line.trim())
68
+ .filter(Boolean);
69
+ return { ok: true, paths };
70
+ }
19
71
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,+BAA+B,EAAE;YACpD,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+BAA+B,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/lib/git.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,11 @@ export declare const GXT_ERROR: {
10
10
  readonly KPI_REPORT_MISSING: "GXT_KPI_REPORT_MISSING";
11
11
  readonly KPI_REPORT_INVALID: "GXT_KPI_REPORT_INVALID";
12
12
  readonly KPI_REPORT_STALE: "GXT_KPI_REPORT_STALE";
13
+ readonly BANNED_IMPORT_DETECTED: "GXT_BANNED_IMPORT_DETECTED";
14
+ readonly IMPORT_LAYER_VIOLATION: "GXT_IMPORT_LAYER_VIOLATION";
13
15
  readonly PERIMETER_VIOLATION: "GXT_PERIMETER_VIOLATION";
16
+ readonly PERIMETER_SHALLOW_HISTORY: "GXT_PERIMETER_SHALLOW_HISTORY";
17
+ readonly MISSION_SCHEMA_INVALID: "GXT_MISSION_SCHEMA_INVALID";
14
18
  readonly FORBIDDEN_ZONE: "GXT_FORBIDDEN_ZONE";
15
19
  readonly RUNTIME_EXEC_FAILED: "GXT_RUNTIME_EXEC_FAILED";
16
20
  readonly VERIFY_FAILED: "GXT_VERIFY_FAILED";
@@ -1 +1 @@
1
- {"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;CAiBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA2BtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA2BtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE"}
@@ -10,7 +10,11 @@ export const GXT_ERROR = {
10
10
  KPI_REPORT_MISSING: "GXT_KPI_REPORT_MISSING",
11
11
  KPI_REPORT_INVALID: "GXT_KPI_REPORT_INVALID",
12
12
  KPI_REPORT_STALE: "GXT_KPI_REPORT_STALE",
13
+ BANNED_IMPORT_DETECTED: "GXT_BANNED_IMPORT_DETECTED",
14
+ IMPORT_LAYER_VIOLATION: "GXT_IMPORT_LAYER_VIOLATION",
13
15
  PERIMETER_VIOLATION: "GXT_PERIMETER_VIOLATION",
16
+ PERIMETER_SHALLOW_HISTORY: "GXT_PERIMETER_SHALLOW_HISTORY",
17
+ MISSION_SCHEMA_INVALID: "GXT_MISSION_SCHEMA_INVALID",
14
18
  FORBIDDEN_ZONE: "GXT_FORBIDDEN_ZONE",
15
19
  RUNTIME_EXEC_FAILED: "GXT_RUNTIME_EXEC_FAILED",
16
20
  VERIFY_FAILED: "GXT_VERIFY_FAILED",
@@ -1 +1 @@
1
- {"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,uBAAuB;IAC1C,WAAW,EAAE,iBAAiB;IAC9B,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,qBAAqB;IACtC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,oBAAoB;IACpC,mBAAmB,EAAE,yBAAyB;IAC9C,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;CAChC,CAAC;AAIX,MAAM,gBAAgB,GAAiC;IACrD,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;IAChD,6BAA6B,EAAE,SAAS,CAAC,iBAAiB;IAC1D,cAAc,EAAE,SAAS,CAAC,iBAAiB;IAC3C,qBAAqB,EAAE,SAAS,CAAC,iBAAiB;IAClD,oCAAoC,EAAE,SAAS,CAAC,iBAAiB;IACjE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB;IACzD,eAAe,EAAE,SAAS,CAAC,iBAAiB;CAC7C,CAAC;AAEF,gEAAgE;AAChE,MAAM,wBAAwB,GAAiC;IAC7D,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,sBAAsB,EAAE,SAAS,CAAC,aAAa;IAC/C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,qBAAqB,EAAE,SAAS,CAAC,aAAa;IAC9C,iBAAiB,EAAE,SAAS,CAAC,WAAW;IACxC,wBAAwB,EAAE,SAAS,CAAC,aAAa;IACjD,uBAAuB,EAAE,SAAS,CAAC,aAAa;IAChD,wBAAwB,EAAE,SAAS,CAAC,cAAc;IAClD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;IAClD,kBAAkB,EAAE,SAAS,CAAC,aAAa;IAC3C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;CAC7C,CAAC;AAEF,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC,cAAc,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC;IACzE,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAoB,CAAC;IACzD,IAAI,IAAI,IAAI,gBAAgB;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,wBAAwB,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Pure import-specifier extraction shared by CLI discovery and check-import-layers gate. */
2
+ export declare function stripSurgeonQuarantineRegions(source: string): string;
3
+ export interface ImportMeta {
4
+ spec: string;
5
+ line: number;
6
+ column: number;
7
+ snippet: string;
8
+ }
9
+ export declare function extractImportsWithMeta(source: string, scrubQuarantine?: boolean): ImportMeta[];
10
+ /** Extract runtime binding identifiers from an import statement snippet. */
11
+ export declare function extractBindingsFromSnippet(snippet: string): string[];
12
+ /** Collect unique import specifiers from TypeScript source (includes export-from re-exports). */
13
+ export declare function extractImportSpecifiers(source: string): string[];
14
+ //# sourceMappingURL=import-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-scanner.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/import-scanner.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,UAAU,EAAE,CAc3F;AAUD,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBpE;AAED,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYhE"}