@jeger-ai/opengantry 3.2.6 → 3.3.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 (368) hide show
  1. package/README.md +7 -0
  2. package/dist/cli/commands/deps.d.ts +18 -0
  3. package/dist/cli/commands/deps.d.ts.map +1 -0
  4. package/dist/cli/commands/deps.js +63 -0
  5. package/dist/cli/commands/deps.js.map +1 -0
  6. package/dist/cli/commands/doctor.d.ts +3 -6
  7. package/dist/cli/commands/doctor.d.ts.map +1 -1
  8. package/dist/cli/commands/doctor.js +8 -1
  9. package/dist/cli/commands/doctor.js.map +1 -1
  10. package/dist/cli/commands/interrogate.js +3 -3
  11. package/dist/cli/commands/interrogate.js.map +1 -1
  12. package/dist/cli/commands/ledger.d.ts +24 -0
  13. package/dist/cli/commands/ledger.d.ts.map +1 -0
  14. package/dist/cli/commands/ledger.js +88 -0
  15. package/dist/cli/commands/ledger.js.map +1 -0
  16. package/dist/cli/commands/mission.d.ts +6 -0
  17. package/dist/cli/commands/mission.d.ts.map +1 -1
  18. package/dist/cli/commands/mission.js +43 -3
  19. package/dist/cli/commands/mission.js.map +1 -1
  20. package/dist/cli/commands/perimeter.d.ts.map +1 -1
  21. package/dist/cli/commands/perimeter.js +4 -0
  22. package/dist/cli/commands/perimeter.js.map +1 -1
  23. package/dist/cli/commands/policy.d.ts +10 -0
  24. package/dist/cli/commands/policy.d.ts.map +1 -0
  25. package/dist/cli/commands/policy.js +49 -0
  26. package/dist/cli/commands/policy.js.map +1 -0
  27. package/dist/cli/commands/triage.d.ts.map +1 -1
  28. package/dist/cli/commands/triage.js +2 -1
  29. package/dist/cli/commands/triage.js.map +1 -1
  30. package/dist/cli/commands/verify.d.ts.map +1 -1
  31. package/dist/cli/commands/verify.js +2 -11
  32. package/dist/cli/commands/verify.js.map +1 -1
  33. package/dist/cli/kernel.d.ts +10 -3
  34. package/dist/cli/kernel.d.ts.map +1 -1
  35. package/dist/cli/kernel.js +18 -2
  36. package/dist/cli/kernel.js.map +1 -1
  37. package/dist/cli/lib/adapter-preflight-checks.d.ts +55 -0
  38. package/dist/cli/lib/adapter-preflight-checks.d.ts.map +1 -0
  39. package/dist/cli/lib/adapter-preflight-checks.js +275 -0
  40. package/dist/cli/lib/adapter-preflight-checks.js.map +1 -0
  41. package/dist/cli/lib/attest-mission.d.ts.map +1 -1
  42. package/dist/cli/lib/attest-mission.js +7 -0
  43. package/dist/cli/lib/attest-mission.js.map +1 -1
  44. package/dist/cli/lib/break-glass.d.ts +1 -1
  45. package/dist/cli/lib/break-glass.d.ts.map +1 -1
  46. package/dist/cli/lib/break-glass.js +6 -0
  47. package/dist/cli/lib/break-glass.js.map +1 -1
  48. package/dist/cli/lib/command-boundary.d.ts +7 -3
  49. package/dist/cli/lib/command-boundary.d.ts.map +1 -1
  50. package/dist/cli/lib/command-boundary.js +20 -4
  51. package/dist/cli/lib/command-boundary.js.map +1 -1
  52. package/dist/cli/lib/constants.d.ts +13 -0
  53. package/dist/cli/lib/constants.d.ts.map +1 -1
  54. package/dist/cli/lib/constants.js +13 -0
  55. package/dist/cli/lib/constants.js.map +1 -1
  56. package/dist/cli/lib/defensive-profile-presets.d.ts +6 -0
  57. package/dist/cli/lib/defensive-profile-presets.d.ts.map +1 -1
  58. package/dist/cli/lib/defensive-profile-presets.js +15 -1
  59. package/dist/cli/lib/defensive-profile-presets.js.map +1 -1
  60. package/dist/cli/lib/deps/deps-fetch.d.ts +4 -0
  61. package/dist/cli/lib/deps/deps-fetch.d.ts.map +1 -0
  62. package/dist/cli/lib/deps/deps-fetch.js +16 -0
  63. package/dist/cli/lib/deps/deps-fetch.js.map +1 -0
  64. package/dist/cli/lib/deps/deps-resolve.d.ts +18 -0
  65. package/dist/cli/lib/deps/deps-resolve.d.ts.map +1 -0
  66. package/dist/cli/lib/deps/deps-resolve.js +66 -0
  67. package/dist/cli/lib/deps/deps-resolve.js.map +1 -0
  68. package/dist/cli/lib/deps/deps-slug.d.ts +5 -0
  69. package/dist/cli/lib/deps/deps-slug.d.ts.map +1 -0
  70. package/dist/cli/lib/deps/deps-slug.js +44 -0
  71. package/dist/cli/lib/deps/deps-slug.js.map +1 -0
  72. package/dist/cli/lib/doctor-adapter-preflight.d.ts +24 -0
  73. package/dist/cli/lib/doctor-adapter-preflight.d.ts.map +1 -0
  74. package/dist/cli/lib/doctor-adapter-preflight.js +98 -0
  75. package/dist/cli/lib/doctor-adapter-preflight.js.map +1 -0
  76. package/dist/cli/lib/doctor-core.d.ts +7 -1
  77. package/dist/cli/lib/doctor-core.d.ts.map +1 -1
  78. package/dist/cli/lib/doctor-core.js +36 -5
  79. package/dist/cli/lib/doctor-core.js.map +1 -1
  80. package/dist/cli/lib/doctor-integration.d.ts +2 -0
  81. package/dist/cli/lib/doctor-integration.d.ts.map +1 -1
  82. package/dist/cli/lib/doctor-integration.js +4 -2
  83. package/dist/cli/lib/doctor-integration.js.map +1 -1
  84. package/dist/cli/lib/doctor-preflight/eslint.d.ts +4 -0
  85. package/dist/cli/lib/doctor-preflight/eslint.d.ts.map +1 -0
  86. package/dist/cli/lib/doctor-preflight/eslint.js +41 -0
  87. package/dist/cli/lib/doctor-preflight/eslint.js.map +1 -0
  88. package/dist/cli/lib/doctor-preflight/index.d.ts +3 -0
  89. package/dist/cli/lib/doctor-preflight/index.d.ts.map +1 -0
  90. package/dist/cli/lib/doctor-preflight/index.js +3 -0
  91. package/dist/cli/lib/doctor-preflight/index.js.map +1 -0
  92. package/dist/cli/lib/doctor-preflight/tsc.d.ts +4 -0
  93. package/dist/cli/lib/doctor-preflight/tsc.d.ts.map +1 -0
  94. package/dist/cli/lib/doctor-preflight/tsc.js +42 -0
  95. package/dist/cli/lib/doctor-preflight/tsc.js.map +1 -0
  96. package/dist/cli/lib/doctor-substrate.d.ts +2 -2
  97. package/dist/cli/lib/doctor-substrate.d.ts.map +1 -1
  98. package/dist/cli/lib/doctor-types.d.ts +4 -4
  99. package/dist/cli/lib/doctor-types.d.ts.map +1 -1
  100. package/dist/cli/lib/draft-token.d.ts +3 -0
  101. package/dist/cli/lib/draft-token.d.ts.map +1 -1
  102. package/dist/cli/lib/draft-token.js +7 -0
  103. package/dist/cli/lib/draft-token.js.map +1 -1
  104. package/dist/cli/lib/gate-adapters/adapter-findings.d.ts +41 -0
  105. package/dist/cli/lib/gate-adapters/adapter-findings.d.ts.map +1 -0
  106. package/dist/cli/lib/gate-adapters/adapter-findings.js +99 -0
  107. package/dist/cli/lib/gate-adapters/adapter-findings.js.map +1 -0
  108. package/dist/cli/lib/gate-adapters/eslint-json-adapter.d.ts +14 -0
  109. package/dist/cli/lib/gate-adapters/eslint-json-adapter.d.ts.map +1 -0
  110. package/dist/cli/lib/gate-adapters/eslint-json-adapter.js +63 -0
  111. package/dist/cli/lib/gate-adapters/eslint-json-adapter.js.map +1 -0
  112. package/dist/cli/lib/gate-adapters/gate-adapter-id.d.ts +10 -0
  113. package/dist/cli/lib/gate-adapters/gate-adapter-id.d.ts.map +1 -0
  114. package/dist/cli/lib/gate-adapters/gate-adapter-id.js +12 -0
  115. package/dist/cli/lib/gate-adapters/gate-adapter-id.js.map +1 -0
  116. package/dist/cli/lib/gate-adapters/gate-adapter-types.d.ts +17 -0
  117. package/dist/cli/lib/gate-adapters/gate-adapter-types.d.ts.map +1 -0
  118. package/dist/cli/lib/gate-adapters/gate-adapter-types.js +2 -0
  119. package/dist/cli/lib/gate-adapters/gate-adapter-types.js.map +1 -0
  120. package/dist/cli/lib/gate-adapters/generic-spawn-adapter.d.ts +4 -0
  121. package/dist/cli/lib/gate-adapters/generic-spawn-adapter.d.ts.map +1 -0
  122. package/dist/cli/lib/gate-adapters/generic-spawn-adapter.js +12 -0
  123. package/dist/cli/lib/gate-adapters/generic-spawn-adapter.js.map +1 -0
  124. package/dist/cli/lib/gate-adapters/parsing-adapter.d.ts +5 -0
  125. package/dist/cli/lib/gate-adapters/parsing-adapter.d.ts.map +1 -0
  126. package/dist/cli/lib/gate-adapters/parsing-adapter.js +13 -0
  127. package/dist/cli/lib/gate-adapters/parsing-adapter.js.map +1 -0
  128. package/dist/cli/lib/gate-adapters/registry.d.ts +6 -0
  129. package/dist/cli/lib/gate-adapters/registry.d.ts.map +1 -0
  130. package/dist/cli/lib/gate-adapters/registry.js +13 -0
  131. package/dist/cli/lib/gate-adapters/registry.js.map +1 -0
  132. package/dist/cli/lib/gate-adapters/spawn-stream-core.d.ts +36 -0
  133. package/dist/cli/lib/gate-adapters/spawn-stream-core.d.ts.map +1 -0
  134. package/dist/cli/lib/gate-adapters/spawn-stream-core.js +99 -0
  135. package/dist/cli/lib/gate-adapters/spawn-stream-core.js.map +1 -0
  136. package/dist/cli/lib/gate-adapters/tsc-adapter.d.ts +16 -0
  137. package/dist/cli/lib/gate-adapters/tsc-adapter.d.ts.map +1 -0
  138. package/dist/cli/lib/gate-adapters/tsc-adapter.js +51 -0
  139. package/dist/cli/lib/gate-adapters/tsc-adapter.js.map +1 -0
  140. package/dist/cli/lib/gate-log-writer.d.ts +8 -0
  141. package/dist/cli/lib/gate-log-writer.d.ts.map +1 -1
  142. package/dist/cli/lib/gate-log-writer.js +35 -0
  143. package/dist/cli/lib/gate-log-writer.js.map +1 -1
  144. package/dist/cli/lib/gate.d.ts +2 -0
  145. package/dist/cli/lib/gate.d.ts.map +1 -1
  146. package/dist/cli/lib/gate.js +2 -2
  147. package/dist/cli/lib/gate.js.map +1 -1
  148. package/dist/cli/lib/git.d.ts +8 -2
  149. package/dist/cli/lib/git.d.ts.map +1 -1
  150. package/dist/cli/lib/git.js +14 -7
  151. package/dist/cli/lib/git.js.map +1 -1
  152. package/dist/cli/lib/gxt-config.d.ts +9 -0
  153. package/dist/cli/lib/gxt-config.d.ts.map +1 -1
  154. package/dist/cli/lib/gxt-config.js +16 -0
  155. package/dist/cli/lib/gxt-config.js.map +1 -1
  156. package/dist/cli/lib/gxt-error-codes.d.ts +12 -0
  157. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  158. package/dist/cli/lib/gxt-error-codes.js +12 -0
  159. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  160. package/dist/cli/lib/init-tutorial.js +3 -4
  161. package/dist/cli/lib/init-tutorial.js.map +1 -1
  162. package/dist/cli/lib/kpi-scan.js +5 -1
  163. package/dist/cli/lib/kpi-scan.js.map +1 -1
  164. package/dist/cli/lib/ledger/ledger-append.d.ts +14 -0
  165. package/dist/cli/lib/ledger/ledger-append.d.ts.map +1 -0
  166. package/dist/cli/lib/ledger/ledger-append.js +63 -0
  167. package/dist/cli/lib/ledger/ledger-append.js.map +1 -0
  168. package/dist/cli/lib/ledger/ledger-chain.d.ts +24 -0
  169. package/dist/cli/lib/ledger/ledger-chain.d.ts.map +1 -0
  170. package/dist/cli/lib/ledger/ledger-chain.js +101 -0
  171. package/dist/cli/lib/ledger/ledger-chain.js.map +1 -0
  172. package/dist/cli/lib/ledger/ledger-entry.d.ts +79 -0
  173. package/dist/cli/lib/ledger/ledger-entry.d.ts.map +1 -0
  174. package/dist/cli/lib/ledger/ledger-entry.js +36 -0
  175. package/dist/cli/lib/ledger/ledger-entry.js.map +1 -0
  176. package/dist/cli/lib/ledger/ledger-export.d.ts +28 -0
  177. package/dist/cli/lib/ledger/ledger-export.d.ts.map +1 -0
  178. package/dist/cli/lib/ledger/ledger-export.js +36 -0
  179. package/dist/cli/lib/ledger/ledger-export.js.map +1 -0
  180. package/dist/cli/lib/legislate-gate-options.d.ts +3 -4
  181. package/dist/cli/lib/legislate-gate-options.d.ts.map +1 -1
  182. package/dist/cli/lib/legislate-gate-options.js +9 -4
  183. package/dist/cli/lib/legislate-gate-options.js.map +1 -1
  184. package/dist/cli/lib/legislate-policy-warn.d.ts +3 -0
  185. package/dist/cli/lib/legislate-policy-warn.d.ts.map +1 -0
  186. package/dist/cli/lib/legislate-policy-warn.js +17 -0
  187. package/dist/cli/lib/legislate-policy-warn.js.map +1 -0
  188. package/dist/cli/lib/legislate.d.ts +3 -1
  189. package/dist/cli/lib/legislate.d.ts.map +1 -1
  190. package/dist/cli/lib/legislate.js +14 -12
  191. package/dist/cli/lib/legislate.js.map +1 -1
  192. package/dist/cli/lib/mcp-doctor.d.ts +18 -0
  193. package/dist/cli/lib/mcp-doctor.d.ts.map +1 -0
  194. package/dist/cli/lib/mcp-doctor.js +35 -0
  195. package/dist/cli/lib/mcp-doctor.js.map +1 -0
  196. package/dist/cli/lib/mcp-draft-legislation.d.ts.map +1 -1
  197. package/dist/cli/lib/mcp-draft-legislation.js +12 -7
  198. package/dist/cli/lib/mcp-draft-legislation.js.map +1 -1
  199. package/dist/cli/lib/mcp-execute-legislation.d.ts.map +1 -1
  200. package/dist/cli/lib/mcp-execute-legislation.js +1 -0
  201. package/dist/cli/lib/mcp-execute-legislation.js.map +1 -1
  202. package/dist/cli/lib/mcp-governance-shared.d.ts +3 -1
  203. package/dist/cli/lib/mcp-governance-shared.d.ts.map +1 -1
  204. package/dist/cli/lib/mcp-governance-shared.js.map +1 -1
  205. package/dist/cli/lib/mcp-interrogate.js +3 -3
  206. package/dist/cli/lib/mcp-interrogate.js.map +1 -1
  207. package/dist/cli/lib/mcp-org.d.ts +19 -0
  208. package/dist/cli/lib/mcp-org.d.ts.map +1 -0
  209. package/dist/cli/lib/mcp-org.js +51 -0
  210. package/dist/cli/lib/mcp-org.js.map +1 -0
  211. package/dist/cli/lib/mcp-runtime.d.ts +1 -1
  212. package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
  213. package/dist/cli/lib/mcp-runtime.js +1 -1
  214. package/dist/cli/lib/mcp-runtime.js.map +1 -1
  215. package/dist/cli/lib/mcp-start-orchestration.d.ts.map +1 -1
  216. package/dist/cli/lib/mcp-start-orchestration.js +1 -0
  217. package/dist/cli/lib/mcp-start-orchestration.js.map +1 -1
  218. package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
  219. package/dist/cli/lib/mcp-tools-register.js +90 -17
  220. package/dist/cli/lib/mcp-tools-register.js.map +1 -1
  221. package/dist/cli/lib/mission-changed.d.ts +27 -0
  222. package/dist/cli/lib/mission-changed.d.ts.map +1 -0
  223. package/dist/cli/lib/mission-changed.js +107 -0
  224. package/dist/cli/lib/mission-changed.js.map +1 -0
  225. package/dist/cli/lib/missions/formatter.d.ts +1 -1
  226. package/dist/cli/lib/missions/formatter.d.ts.map +1 -1
  227. package/dist/cli/lib/missions/formatter.js +3 -0
  228. package/dist/cli/lib/missions/formatter.js.map +1 -1
  229. package/dist/cli/lib/missions/parser.d.ts +3 -1
  230. package/dist/cli/lib/missions/parser.d.ts.map +1 -1
  231. package/dist/cli/lib/missions/parser.js +16 -0
  232. package/dist/cli/lib/missions/parser.js.map +1 -1
  233. package/dist/cli/lib/msn-allocate.d.ts.map +1 -1
  234. package/dist/cli/lib/msn-allocate.js +17 -24
  235. package/dist/cli/lib/msn-allocate.js.map +1 -1
  236. package/dist/cli/lib/planner-signature.d.ts +7 -0
  237. package/dist/cli/lib/planner-signature.d.ts.map +1 -1
  238. package/dist/cli/lib/planner-signature.js +18 -1
  239. package/dist/cli/lib/planner-signature.js.map +1 -1
  240. package/dist/cli/lib/policy/policy-bundle.d.ts +6 -0
  241. package/dist/cli/lib/policy/policy-bundle.d.ts.map +1 -0
  242. package/dist/cli/lib/policy/policy-bundle.js +62 -0
  243. package/dist/cli/lib/policy/policy-bundle.js.map +1 -0
  244. package/dist/cli/lib/policy/policy-doctor.d.ts +4 -0
  245. package/dist/cli/lib/policy/policy-doctor.d.ts.map +1 -0
  246. package/dist/cli/lib/policy/policy-doctor.js +34 -0
  247. package/dist/cli/lib/policy/policy-doctor.js.map +1 -0
  248. package/dist/cli/lib/policy/policy-fetch.d.ts +10 -0
  249. package/dist/cli/lib/policy/policy-fetch.d.ts.map +1 -0
  250. package/dist/cli/lib/policy/policy-fetch.js +78 -0
  251. package/dist/cli/lib/policy/policy-fetch.js.map +1 -0
  252. package/dist/cli/lib/policy/policy-resolve.d.ts +38 -0
  253. package/dist/cli/lib/policy/policy-resolve.d.ts.map +1 -0
  254. package/dist/cli/lib/policy/policy-resolve.js +194 -0
  255. package/dist/cli/lib/policy/policy-resolve.js.map +1 -0
  256. package/dist/cli/lib/policy/policy-types.d.ts +76 -0
  257. package/dist/cli/lib/policy/policy-types.d.ts.map +1 -0
  258. package/dist/cli/lib/policy/policy-types.js +3 -0
  259. package/dist/cli/lib/policy/policy-types.js.map +1 -0
  260. package/dist/cli/lib/policy-digest-doctor.d.ts +1 -0
  261. package/dist/cli/lib/policy-digest-doctor.d.ts.map +1 -1
  262. package/dist/cli/lib/policy-digest-doctor.js +4 -2
  263. package/dist/cli/lib/policy-digest-doctor.js.map +1 -1
  264. package/dist/cli/lib/start-orchestration.d.ts +2 -1
  265. package/dist/cli/lib/start-orchestration.d.ts.map +1 -1
  266. package/dist/cli/lib/start-orchestration.js +5 -3
  267. package/dist/cli/lib/start-orchestration.js.map +1 -1
  268. package/dist/cli/lib/surgeons/banned-import.js +1 -1
  269. package/dist/cli/lib/surgeons/banned-import.js.map +1 -1
  270. package/dist/cli/lib/surgeons/import-layer.d.ts.map +1 -1
  271. package/dist/cli/lib/surgeons/import-layer.js +1 -1
  272. package/dist/cli/lib/surgeons/import-layer.js.map +1 -1
  273. package/dist/cli/lib/surgeons/registry.d.ts.map +1 -1
  274. package/dist/cli/lib/surgeons/registry.js +2 -4
  275. package/dist/cli/lib/surgeons/registry.js.map +1 -1
  276. package/dist/cli/lib/types.d.ts +23 -0
  277. package/dist/cli/lib/types.d.ts.map +1 -1
  278. package/dist/cli/lib/types.js +5 -1
  279. package/dist/cli/lib/types.js.map +1 -1
  280. package/dist/cli/lib/verify-engine.d.ts +1 -1
  281. package/dist/cli/lib/verify-engine.d.ts.map +1 -1
  282. package/dist/cli/lib/verify-engine.js +32 -17
  283. package/dist/cli/lib/verify-engine.js.map +1 -1
  284. package/dist/cli/lib/verify-evidence-snippet.d.ts +7 -0
  285. package/dist/cli/lib/verify-evidence-snippet.d.ts.map +1 -0
  286. package/dist/cli/lib/verify-evidence-snippet.js +29 -0
  287. package/dist/cli/lib/verify-evidence-snippet.js.map +1 -0
  288. package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
  289. package/dist/cli/lib/verify-failure-normalize.js +20 -4
  290. package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
  291. package/dist/cli/lib/verify-failure.d.ts +22 -5
  292. package/dist/cli/lib/verify-failure.d.ts.map +1 -1
  293. package/dist/cli/lib/verify-finding-gate-projector.d.ts +1 -1
  294. package/dist/cli/lib/verify-finding-gate-projector.d.ts.map +1 -1
  295. package/dist/cli/lib/verify-finding-gate-projector.js +6 -28
  296. package/dist/cli/lib/verify-finding-gate-projector.js.map +1 -1
  297. package/dist/cli/lib/verify-finding.d.ts +1 -1
  298. package/dist/cli/lib/verify-finding.d.ts.map +1 -1
  299. package/dist/cli/lib/verify-finding.js.map +1 -1
  300. package/dist/cli/lib/verify-hints.d.ts.map +1 -1
  301. package/dist/cli/lib/verify-hints.js +14 -3
  302. package/dist/cli/lib/verify-hints.js.map +1 -1
  303. package/dist/cli/lib/verify-options.d.ts +5 -14
  304. package/dist/cli/lib/verify-options.d.ts.map +1 -1
  305. package/dist/cli/lib/verify-org-phases.d.ts +18 -0
  306. package/dist/cli/lib/verify-org-phases.d.ts.map +1 -0
  307. package/dist/cli/lib/verify-org-phases.js +61 -0
  308. package/dist/cli/lib/verify-org-phases.js.map +1 -0
  309. package/dist/cli/lib/verify-payload.d.ts +1 -1
  310. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  311. package/dist/cli/lib/verify-payload.js +48 -27
  312. package/dist/cli/lib/verify-payload.js.map +1 -1
  313. package/dist/cli/lib/verify-phase-clock.d.ts +3 -2
  314. package/dist/cli/lib/verify-phase-clock.d.ts.map +1 -1
  315. package/dist/cli/lib/verify-phase-clock.js +16 -5
  316. package/dist/cli/lib/verify-phase-clock.js.map +1 -1
  317. package/dist/cli/lib/verify-phase-steps.d.ts +14 -7
  318. package/dist/cli/lib/verify-phase-steps.d.ts.map +1 -1
  319. package/dist/cli/lib/verify-phase-steps.js +33 -24
  320. package/dist/cli/lib/verify-phase-steps.js.map +1 -1
  321. package/dist/cli/lib/verify-presenters.d.ts +1 -0
  322. package/dist/cli/lib/verify-presenters.d.ts.map +1 -1
  323. package/dist/cli/lib/verify-presenters.js +15 -4
  324. package/dist/cli/lib/verify-presenters.js.map +1 -1
  325. package/dist/cli/lib/verify-remediation-pipeline.d.ts +2 -0
  326. package/dist/cli/lib/verify-remediation-pipeline.d.ts.map +1 -1
  327. package/dist/cli/lib/verify-remediation-pipeline.js +5 -2
  328. package/dist/cli/lib/verify-remediation-pipeline.js.map +1 -1
  329. package/dist/cli/lib/verify-run.d.ts +2 -2
  330. package/dist/cli/lib/verify-run.d.ts.map +1 -1
  331. package/dist/cli/lib/verify-run.js +27 -13
  332. package/dist/cli/lib/verify-run.js.map +1 -1
  333. package/dist/cli/lib/version.gen.d.ts +1 -1
  334. package/dist/cli/lib/version.gen.js +1 -1
  335. package/dist/cli/program-core.d.ts +1 -1
  336. package/dist/cli/program-core.d.ts.map +1 -1
  337. package/dist/cli/program-core.js +62 -5
  338. package/dist/cli/program-core.js.map +1 -1
  339. package/dist/cli/program-mission.d.ts.map +1 -1
  340. package/dist/cli/program-mission.js +59 -35
  341. package/dist/cli/program-mission.js.map +1 -1
  342. package/dist/cli/program-org.d.ts +3 -0
  343. package/dist/cli/program-org.d.ts.map +1 -0
  344. package/dist/cli/program-org.js +119 -0
  345. package/dist/cli/program-org.js.map +1 -0
  346. package/dist/cli/program-workflow.d.ts +2 -1
  347. package/dist/cli/program-workflow.d.ts.map +1 -1
  348. package/dist/cli/program-workflow.js +41 -3
  349. package/dist/cli/program-workflow.js.map +1 -1
  350. package/dist/cli/program.d.ts.map +1 -1
  351. package/dist/cli/program.js +11 -0
  352. package/dist/cli/program.js.map +1 -1
  353. package/package.json +2 -1
  354. package/templates/.gitagent/config.json +4 -0
  355. package/templates/.gitagent/foreman/MANIFEST.json +1 -0
  356. package/templates/.gitagent/foreman/PLANNER.signing.pub +3 -0
  357. package/templates/.gitagent/foreman/POLICY.pointer.json +11 -0
  358. package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
  359. package/templates/.gitagent/planner/MISSION.schema.yaml +51 -0
  360. package/templates/.gitagent/planner/ORG-POLICY.schema.yaml +174 -0
  361. package/templates/.gitagent/planner/RULES.md +36 -2
  362. package/templates/.github/workflows/gxt-attest-ingest.yml +56 -6
  363. package/templates/.github/workflows/gxt-validate.yml +33 -0
  364. package/templates/.gitignore.gxt +1 -0
  365. package/templates/integrations/asset-catalog.json +2 -0
  366. package/templates/integrations/compatibility.json +1 -1
  367. package/templates/scripts/validate-mcp-dogfood.mjs +5 -0
  368. package/templates/scripts/verify-pr-missions.sh +20 -41
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-findings.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/adapter-findings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ESLint adapter (ADR-0041): gate_command MUST run `eslint --format json`.
3
+ * Maps `results[].messages[]` to envelope v3 findings. Selected only via the
4
+ * mission `gate_adapter: eslint` field, never inferred from the command text.
5
+ */
6
+ import type { VerifyFinding } from "../verify-finding.js";
7
+ import { type AdapterParseResult, type GateRunSnapshot } from "./adapter-findings.js";
8
+ import type { GateExecContext } from "./gate-adapter-types.js";
9
+ export type EslintParseResult = AdapterParseResult;
10
+ /** Pure parser for `eslint --format json` stdout. */
11
+ export declare function parseEslintJsonOutput(stdout: string): EslintParseResult;
12
+ export declare function eslintFindingsFromRun(ctx: GateExecContext, run: GateRunSnapshot): VerifyFinding[];
13
+ export declare const eslintJsonAdapter: import("./gate-adapter-types.js").GateExecAdapter;
14
+ //# sourceMappingURL=eslint-json-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-json-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/eslint-json-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAmB/D,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAsCnD,qDAAqD;AACrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAgBvE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,EAAE,CAEjG;AAED,eAAO,MAAM,iBAAiB,mDAAkD,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { findingsFromRun, } from "./adapter-findings.js";
2
+ import { parsingAdapter } from "./parsing-adapter.js";
3
+ function isRecord(v) {
4
+ return typeof v === "object" && v !== null;
5
+ }
6
+ function tryParseJsonArray(text) {
7
+ const trimmed = text.trim();
8
+ const attempts = [trimmed];
9
+ const start = trimmed.indexOf("[");
10
+ const end = trimmed.lastIndexOf("]");
11
+ if (start > 0 && end > start)
12
+ attempts.push(trimmed.slice(start, end + 1));
13
+ for (const candidate of attempts) {
14
+ try {
15
+ const parsed = JSON.parse(candidate);
16
+ if (Array.isArray(parsed))
17
+ return parsed;
18
+ }
19
+ catch {
20
+ // try next candidate
21
+ }
22
+ }
23
+ return null;
24
+ }
25
+ function messageToDiagnostic(filePath, m) {
26
+ const fatal = m.fatal === true;
27
+ const ruleId = typeof m.ruleId === "string" && m.ruleId.length > 0 ? m.ruleId : fatal ? "eslint/parse" : "eslint";
28
+ return {
29
+ file: filePath,
30
+ line: typeof m.line === "number" && m.line > 0 ? m.line : 0,
31
+ column: typeof m.column === "number" && m.column > 0 ? m.column : 0,
32
+ ...(typeof m.endLine === "number" ? { endLine: m.endLine } : {}),
33
+ ...(typeof m.endColumn === "number" ? { endColumn: m.endColumn } : {}),
34
+ severity: m.severity === 2 || fatal ? "error" : "warning",
35
+ ruleId,
36
+ message: typeof m.message === "string" && m.message.length > 0 ? m.message : `${ruleId} violation`,
37
+ };
38
+ }
39
+ /** Pure parser for `eslint --format json` stdout. */
40
+ export function parseEslintJsonOutput(stdout) {
41
+ const results = tryParseJsonArray(stdout);
42
+ if (results === null) {
43
+ return { ok: false, reason: "stdout is not an ESLint JSON results array" };
44
+ }
45
+ const diagnostics = [];
46
+ for (const entry of results) {
47
+ if (!isRecord(entry))
48
+ continue;
49
+ const result = entry;
50
+ const filePath = typeof result.filePath === "string" ? result.filePath : "";
51
+ for (const m of result.messages ?? []) {
52
+ if (!isRecord(m))
53
+ continue;
54
+ diagnostics.push(messageToDiagnostic(filePath, m));
55
+ }
56
+ }
57
+ return { ok: true, diagnostics };
58
+ }
59
+ export function eslintFindingsFromRun(ctx, run) {
60
+ return findingsFromRun("eslint", ctx, run, parseEslintJsonOutput);
61
+ }
62
+ export const eslintJsonAdapter = parsingAdapter("eslint", parseEslintJsonOutput);
63
+ //# sourceMappingURL=eslint-json-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-json-adapter.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/eslint-json-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Explicit gate output parser (ADR-0041). Never inferred from gate_command text. */
2
+ export declare const GATE_ADAPTER_IDS: readonly ["generic", "eslint", "tsc"];
3
+ export type GateAdapterId = (typeof GATE_ADAPTER_IDS)[number];
4
+ /** Adapters that parse structured compiler/linter output (not the generic spawn). */
5
+ export declare const TYPED_GATE_ADAPTER_IDS: readonly ["tsc", "eslint"];
6
+ export type TypedGateAdapterId = (typeof TYPED_GATE_ADAPTER_IDS)[number];
7
+ export declare const DEFAULT_GATE_ADAPTER: GateAdapterId;
8
+ export declare function isGateAdapterId(value: unknown): value is GateAdapterId;
9
+ export declare function isTypedGateAdapterId(value: unknown): value is TypedGateAdapterId;
10
+ //# sourceMappingURL=gate-adapter-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-adapter-id.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/gate-adapter-id.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,uCAAwC,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,4BAA6B,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB,EAAE,aAAyB,CAAC;AAE7D,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF"}
@@ -0,0 +1,12 @@
1
+ /** Explicit gate output parser (ADR-0041). Never inferred from gate_command text. */
2
+ export const GATE_ADAPTER_IDS = ["generic", "eslint", "tsc"];
3
+ /** Adapters that parse structured compiler/linter output (not the generic spawn). */
4
+ export const TYPED_GATE_ADAPTER_IDS = ["tsc", "eslint"];
5
+ export const DEFAULT_GATE_ADAPTER = "generic";
6
+ export function isGateAdapterId(value) {
7
+ return typeof value === "string" && GATE_ADAPTER_IDS.includes(value);
8
+ }
9
+ export function isTypedGateAdapterId(value) {
10
+ return typeof value === "string" && TYPED_GATE_ADAPTER_IDS.includes(value);
11
+ }
12
+ //# sourceMappingURL=gate-adapter-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-adapter-id.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/gate-adapter-id.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAGtE,qFAAqF;AACrF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AAGjE,MAAM,CAAC,MAAM,oBAAoB,GAAkB,SAAS,CAAC;AAE7D,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,sBAA4C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { VerifyFinding } from "../verify-finding.js";
2
+ import type { GateAdapterId } from "./gate-adapter-id.js";
3
+ export interface GateExecContext {
4
+ cwd: string;
5
+ /** Repository root for repo-relative `offending_file`; defaults to `cwd`. */
6
+ repoRoot?: string;
7
+ /** Absolute path for streaming gate subprocess I/O. */
8
+ gateLogPath: string;
9
+ successSubstring: string | null;
10
+ }
11
+ export interface GateExecutionResult {
12
+ exitCode: number | null;
13
+ adapter_id: GateAdapterId | string;
14
+ findings: VerifyFinding[];
15
+ }
16
+ export type GateExecAdapter = (command: string, ctx: GateExecContext) => Promise<GateExecutionResult>;
17
+ //# sourceMappingURL=gate-adapter-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-adapter-types.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/gate-adapter-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,aAAa,GAAG,MAAM,CAAC;IACnC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gate-adapter-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-adapter-types.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/gate-adapter-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { GateExecAdapter } from "./gate-adapter-types.js";
2
+ /** Exit code + optional success substring; one coarse finding on failure. */
3
+ export declare const genericSpawnAdapter: GateExecAdapter;
4
+ //# sourceMappingURL=generic-spawn-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-spawn-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/generic-spawn-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { findingsFromRun } from "./adapter-findings.js";
2
+ import { spawnGateStreaming } from "./spawn-stream-core.js";
3
+ /** Exit code + optional success substring; one coarse finding on failure. */
4
+ export const genericSpawnAdapter = async (command, ctx) => {
5
+ const run = await spawnGateStreaming(command, ctx);
6
+ return {
7
+ exitCode: run.exitCode,
8
+ adapter_id: "generic",
9
+ findings: findingsFromRun("generic", ctx, run),
10
+ };
11
+ };
12
+ //# sourceMappingURL=generic-spawn-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-spawn-adapter.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/generic-spawn-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAoB,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type AdapterParseResult } from "./adapter-findings.js";
2
+ import type { TypedGateAdapterId } from "./gate-adapter-id.js";
3
+ import type { GateExecAdapter } from "./gate-adapter-types.js";
4
+ export declare function parsingAdapter(toolId: TypedGateAdapterId, parse: (stdout: string) => AdapterParseResult): GateExecAdapter;
5
+ //# sourceMappingURL=parsing-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/parsing-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,wBAAgB,cAAc,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,GAC5C,eAAe,CASjB"}
@@ -0,0 +1,13 @@
1
+ import { findingsFromRun } from "./adapter-findings.js";
2
+ import { spawnGateStreaming } from "./spawn-stream-core.js";
3
+ export function parsingAdapter(toolId, parse) {
4
+ return async (command, ctx) => {
5
+ const run = await spawnGateStreaming(command, ctx, { captureStdout: true });
6
+ return {
7
+ exitCode: run.exitCode,
8
+ adapter_id: toolId,
9
+ findings: findingsFromRun(toolId, ctx, run, parse),
10
+ };
11
+ };
12
+ }
13
+ //# sourceMappingURL=parsing-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing-adapter.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/parsing-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,UAAU,cAAc,CAC5B,MAA0B,EAC1B,KAA6C;IAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;SACnD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { GateAdapterId } from "./gate-adapter-id.js";
2
+ import type { GateExecAdapter } from "./gate-adapter-types.js";
3
+ /** Explicit routing from mission `gate_adapter` (ADR-0041). Exhaustive by construction. */
4
+ export declare const GATE_EXEC_ADAPTERS: Record<GateAdapterId, GateExecAdapter>;
5
+ export declare function resolveGateExecAdapter(id: GateAdapterId | undefined): GateExecAdapter;
6
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CAIrE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,SAAS,GAAG,eAAe,CAErF"}
@@ -0,0 +1,13 @@
1
+ import { eslintJsonAdapter } from "./eslint-json-adapter.js";
2
+ import { genericSpawnAdapter } from "./generic-spawn-adapter.js";
3
+ import { tscAdapter } from "./tsc-adapter.js";
4
+ /** Explicit routing from mission `gate_adapter` (ADR-0041). Exhaustive by construction. */
5
+ export const GATE_EXEC_ADAPTERS = {
6
+ generic: genericSpawnAdapter,
7
+ eslint: eslintJsonAdapter,
8
+ tsc: tscAdapter,
9
+ };
10
+ export function resolveGateExecAdapter(id) {
11
+ return GATE_EXEC_ADAPTERS[id ?? "generic"];
12
+ }
13
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAA2C;IACxE,OAAO,EAAE,mBAAmB;IAC5B,MAAM,EAAE,iBAAiB;IACzB,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,EAA6B;IAClE,OAAO,kBAAkB,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared subprocess core for gate adapters: spawn via shell, stream stdout+stderr
3
+ * to `gateLogPath`, and optionally capture stdout in memory (bounded by
4
+ * MAX_IO_BUFFER_BYTES, truncation flagged). Success-substring is checked after
5
+ * close against the written log (fixes multibyte chunk-split false negatives).
6
+ *
7
+ * Adapter-layer module: imports only gate.ts, gate-log-writer, and sibling types.
8
+ */
9
+ import { spawn, type ChildProcess } from "node:child_process";
10
+ import fs from "node:fs";
11
+ import type { GateExecContext } from "./gate-adapter-types.js";
12
+ export interface SpawnStreamOptions {
13
+ /** Keep a bounded copy of stdout in memory for structured parsing. */
14
+ captureStdout?: boolean;
15
+ }
16
+ export interface SpawnStreamResult {
17
+ exitCode: number | null;
18
+ successSubstringMatched: boolean;
19
+ /** Captured stdout (UTF-8); empty when capture disabled. */
20
+ stdout: string;
21
+ /** True when stdout byte count reached MAX_IO_BUFFER_BYTES and capture stopped. */
22
+ stdoutTruncated: boolean;
23
+ }
24
+ export declare function spawnOrDestroyStream(spawnFn: typeof spawn, writeStream: fs.WriteStream, command: string, options: Parameters<typeof spawn>[2]): ChildProcess;
25
+ export declare class BoundedStdoutCapture {
26
+ private readonly enabled;
27
+ private readonly limit;
28
+ private readonly chunks;
29
+ private bytes;
30
+ truncated: boolean;
31
+ constructor(enabled: boolean, limit: number);
32
+ push(chunk: Buffer): void;
33
+ text(): string;
34
+ }
35
+ export declare function spawnGateStreaming(command: string, ctx: GateExecContext, options?: SpawnStreamOptions): Promise<SpawnStreamResult>;
36
+ //# sourceMappingURL=spawn-stream-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-stream-core.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/spawn-stream-core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAkBD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,KAAK,EACrB,WAAW,EAAE,EAAE,CAAC,WAAW,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GACnC,YAAY,CAOd;AAED,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAK;IAClB,SAAS,UAAS;gBAGC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM;IAGhC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAazB,IAAI,IAAI,MAAM;CAGf;AAMD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Shared subprocess core for gate adapters: spawn via shell, stream stdout+stderr
3
+ * to `gateLogPath`, and optionally capture stdout in memory (bounded by
4
+ * MAX_IO_BUFFER_BYTES, truncation flagged). Success-substring is checked after
5
+ * close against the written log (fixes multibyte chunk-split false negatives).
6
+ *
7
+ * Adapter-layer module: imports only gate.ts, gate-log-writer, and sibling types.
8
+ */
9
+ import { spawn } from "node:child_process";
10
+ import fs from "node:fs";
11
+ import { MAX_IO_BUFFER_BYTES, shellForPlatform } from "../gate.js";
12
+ import { readGateLogAbs } from "../gate-log-writer.js";
13
+ function waitForChildClose(child) {
14
+ return new Promise((resolve, reject) => {
15
+ child.once("error", reject);
16
+ child.once("close", (code, signal) => resolve({ exitCode: code, signal }));
17
+ });
18
+ }
19
+ function endWriteStream(stream) {
20
+ return new Promise((resolve, reject) => {
21
+ stream.once("error", reject);
22
+ stream.end(() => resolve());
23
+ });
24
+ }
25
+ export function spawnOrDestroyStream(spawnFn, writeStream, command, options) {
26
+ try {
27
+ return spawnFn(command, [], options);
28
+ }
29
+ catch (spawnErr) {
30
+ writeStream.destroy();
31
+ throw spawnErr;
32
+ }
33
+ }
34
+ export class BoundedStdoutCapture {
35
+ enabled;
36
+ limit;
37
+ chunks = [];
38
+ bytes = 0;
39
+ truncated = false;
40
+ constructor(enabled, limit) {
41
+ this.enabled = enabled;
42
+ this.limit = limit;
43
+ }
44
+ push(chunk) {
45
+ if (!this.enabled || this.truncated)
46
+ return;
47
+ const remaining = this.limit - this.bytes;
48
+ if (chunk.length >= remaining) {
49
+ this.chunks.push(chunk.subarray(0, remaining));
50
+ this.bytes = this.limit;
51
+ this.truncated = true;
52
+ return;
53
+ }
54
+ this.chunks.push(chunk);
55
+ this.bytes += chunk.length;
56
+ }
57
+ text() {
58
+ return this.enabled ? Buffer.concat(this.chunks).toString("utf8") : "";
59
+ }
60
+ }
61
+ function toBuffer(chunk) {
62
+ return Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
63
+ }
64
+ export async function spawnGateStreaming(command, ctx, options = {}) {
65
+ const capture = new BoundedStdoutCapture(options.captureStdout === true, MAX_IO_BUFFER_BYTES);
66
+ const stream = fs.createWriteStream(ctx.gateLogPath, { flags: "w" });
67
+ try {
68
+ const child = spawnOrDestroyStream(spawn, stream, command, {
69
+ cwd: ctx.cwd,
70
+ shell: shellForPlatform(),
71
+ env: process.env,
72
+ stdio: ["ignore", "pipe", "pipe"],
73
+ });
74
+ const forward = (chunk) => {
75
+ stream.write(toBuffer(chunk));
76
+ };
77
+ child.stdout?.on("data", (chunk) => {
78
+ const buf = toBuffer(chunk);
79
+ capture.push(buf);
80
+ forward(buf);
81
+ });
82
+ child.stderr?.on("data", forward);
83
+ const { exitCode } = await waitForChildClose(child);
84
+ await endWriteStream(stream);
85
+ const needle = ctx.successSubstring ?? "";
86
+ const logText = readGateLogAbs(ctx.gateLogPath);
87
+ return {
88
+ exitCode,
89
+ successSubstringMatched: needle.length === 0 || logText.includes(needle),
90
+ stdout: capture.text(),
91
+ stdoutTruncated: capture.truncated,
92
+ };
93
+ }
94
+ catch (e) {
95
+ stream.destroy();
96
+ throw e;
97
+ }
98
+ }
99
+ //# sourceMappingURL=spawn-stream-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-stream-core.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/spawn-stream-core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiBvD,SAAS,iBAAiB,CACxB,KAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAsB;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAqB,EACrB,WAA2B,EAC3B,OAAe,EACf,OAAoC;IAEpC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,QAAQ,EAAE,CAAC;QAClB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,QAAQ,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,oBAAoB;IAMZ;IACA;IANF,MAAM,GAAa,EAAE,CAAC;IAC/B,KAAK,GAAG,CAAC,CAAC;IAClB,SAAS,GAAG,KAAK,CAAC;IAElB,YACmB,OAAgB,EAChB,KAAa;QADb,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAAQ;IAC7B,CAAC;IAEJ,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAsB;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,GAAoB,EACpB,UAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;YACzD,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,gBAAgB,EAAE;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,CAAC,KAAsB,EAAQ,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO;YACL,QAAQ;YACR,uBAAuB,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YACxE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE;YACtB,eAAe,EAAE,OAAO,CAAC,SAAS;SACnC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * TypeScript compiler adapter (ADR-0041): parses plain `tsc` diagnostics
3
+ * path(line,col): error TS2322: message
4
+ * into envelope v3 findings. Line-oriented and noise tolerant: paths may
5
+ * contain parentheses (the `(line,col): error TSnnnn:` tail is the anchor),
6
+ * indented lines extend the active diagnostic, anything else is skipped.
7
+ * Selected only via `gate_adapter: tsc`.
8
+ */
9
+ import type { VerifyFinding } from "../verify-finding.js";
10
+ import { type GateRunSnapshot, type ParsedDiagnostic } from "./adapter-findings.js";
11
+ import type { GateExecContext } from "./gate-adapter-types.js";
12
+ /** Pure parser for tsc stdout; never throws on noise. */
13
+ export declare function parseTscOutput(stdout: string): ParsedDiagnostic[];
14
+ export declare function tscFindingsFromRun(ctx: GateExecContext, run: GateRunSnapshot): VerifyFinding[];
15
+ export declare const tscAdapter: import("./gate-adapter-types.js").GateExecAdapter;
16
+ //# sourceMappingURL=tsc-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsc-adapter.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/tsc-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAyB/D,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAiBjE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,EAAE,CAE9F;AAED,eAAO,MAAM,UAAU,mDAGpB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { findingsFromRun, } from "./adapter-findings.js";
2
+ import { parsingAdapter } from "./parsing-adapter.js";
3
+ /** `path(line,col): error TS1234: message` — greedy path, right-anchored tail. */
4
+ const PAREN_DIAGNOSTIC = /^(.*)\((\d+),(\d+)\): (error|warning) (TS\d+): (.*)$/;
5
+ /** `path:line:col - error TS1234: message` (pretty output with colors stripped). */
6
+ const COLON_DIAGNOSTIC = /^(.*?):(\d+):(\d+) - (error|warning) (TS\d+): (.*)$/;
7
+ // eslint-disable-next-line no-control-regex
8
+ const ANSI_ESCAPES = /\u001b\[[0-9;]*m/g;
9
+ function matchDiagnosticLine(line) {
10
+ const m = PAREN_DIAGNOSTIC.exec(line) ?? COLON_DIAGNOSTIC.exec(line);
11
+ if (m === null)
12
+ return null;
13
+ const [, file, lineNo, col, level, code, message] = m;
14
+ if (file === undefined || file.trim().length === 0)
15
+ return null;
16
+ return {
17
+ file: file.trim(),
18
+ line: Number.parseInt(lineNo ?? "0", 10),
19
+ column: Number.parseInt(col ?? "0", 10),
20
+ severity: level === "warning" ? "warning" : "error",
21
+ ruleId: code ?? "TS0000",
22
+ message: (message ?? "").trim(),
23
+ };
24
+ }
25
+ /** Pure parser for tsc stdout; never throws on noise. */
26
+ export function parseTscOutput(stdout) {
27
+ const diagnostics = [];
28
+ let active = null;
29
+ for (const raw of stdout.replace(ANSI_ESCAPES, "").split(/\r?\n/)) {
30
+ const diagnostic = matchDiagnosticLine(raw);
31
+ if (diagnostic !== null) {
32
+ diagnostics.push(diagnostic);
33
+ active = diagnostic;
34
+ continue;
35
+ }
36
+ if (active !== null && /^\s+\S/.test(raw)) {
37
+ active.message = `${active.message} ${raw.trim()}`;
38
+ continue;
39
+ }
40
+ active = null;
41
+ }
42
+ return diagnostics;
43
+ }
44
+ export function tscFindingsFromRun(ctx, run) {
45
+ return findingsFromRun("tsc", ctx, run, (stdout) => ({ ok: true, diagnostics: parseTscOutput(stdout) }));
46
+ }
47
+ export const tscAdapter = parsingAdapter("tsc", (stdout) => ({
48
+ ok: true,
49
+ diagnostics: parseTscOutput(stdout),
50
+ }));
51
+ //# sourceMappingURL=tsc-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsc-adapter.js","sourceRoot":"","sources":["../../../../src/cli/lib/gate-adapters/tsc-adapter.ts"],"names":[],"mappings":"AASA,OAAO,EACL,eAAe,GAGhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,sDAAsD,CAAC;AAChF,oFAAoF;AACpF,MAAM,gBAAgB,GAAG,qDAAqD,CAAC;AAC/E,4CAA4C;AAC5C,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QACvC,QAAQ,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACnD,MAAM,EAAE,IAAI,IAAI,QAAQ;QACxB,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAM,GAAG,UAAU,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAoB,EAAE,GAAoB;IAC3E,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;CACpC,CAAC,CAAC,CAAC"}
@@ -1,5 +1,13 @@
1
1
  export declare const REL_GATE_LOGS_DIR: ".gitagent/tmp/gate-logs";
2
2
  export declare function gateLogRelPath(msnId: string): string;
3
+ export declare function ensureGateLogPath(root: string, msnId: string): {
4
+ abs: string;
5
+ rel: string;
6
+ };
7
+ /** Read an absolute gate log; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
8
+ export declare function readGateLogAbs(absPath: string): string;
9
+ /** Read gate log from disk; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
10
+ export declare function readGateLogText(root: string, gateLogRel: string | undefined): string;
3
11
  /** Write combined gate stdout/stderr; returns repo-relative POSIX path. */
4
12
  export declare function writeGateLog(root: string, msnId: string | undefined, stdout: string | undefined, stderr: string | undefined): string | undefined;
5
13
  //# sourceMappingURL=gate-log-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate-log-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,EAAG,yBAAkC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAkBpB"}
1
+ {"version":3,"file":"gate-log-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,EAAG,yBAAkC,CAAC;AAEpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAK3F;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGpF;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAkBpB"}
@@ -1,10 +1,45 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { MAX_IO_BUFFER_BYTES } from "./gate.js";
3
4
  export const REL_GATE_LOGS_DIR = ".gitagent/tmp/gate-logs";
4
5
  export function gateLogRelPath(msnId) {
5
6
  const safe = msnId.replace(/[^A-Za-z0-9-]/g, "_");
6
7
  return `${REL_GATE_LOGS_DIR}/${safe}.last.log`;
7
8
  }
9
+ export function ensureGateLogPath(root, msnId) {
10
+ const rel = gateLogRelPath(msnId);
11
+ const absDir = path.join(root, REL_GATE_LOGS_DIR);
12
+ fs.mkdirSync(absDir, { recursive: true });
13
+ return { abs: path.join(root, rel), rel: rel.replace(/\\/g, "/") };
14
+ }
15
+ /** Read an absolute gate log; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
16
+ export function readGateLogAbs(absPath) {
17
+ try {
18
+ const stat = fs.statSync(absPath);
19
+ if (stat.size <= MAX_IO_BUFFER_BYTES) {
20
+ return fs.readFileSync(absPath, "utf8");
21
+ }
22
+ const fd = fs.openSync(absPath, "r");
23
+ try {
24
+ const buffer = Buffer.alloc(MAX_IO_BUFFER_BYTES);
25
+ const start = stat.size - MAX_IO_BUFFER_BYTES;
26
+ const bytesRead = fs.readSync(fd, buffer, 0, MAX_IO_BUFFER_BYTES, start);
27
+ return buffer.subarray(0, bytesRead).toString("utf8");
28
+ }
29
+ finally {
30
+ fs.closeSync(fd);
31
+ }
32
+ }
33
+ catch {
34
+ return "";
35
+ }
36
+ }
37
+ /** Read gate log from disk; tail-capped at MAX_IO_BUFFER_BYTES to avoid V8 OOM. */
38
+ export function readGateLogText(root, gateLogRel) {
39
+ if (!gateLogRel)
40
+ return "";
41
+ return readGateLogAbs(path.join(root, gateLogRel));
42
+ }
8
43
  /** Write combined gate stdout/stderr; returns repo-relative POSIX path. */
9
44
  export function writeGateLog(root, msnId, stdout, stderr) {
10
45
  if (!msnId?.trim())
@@ -1 +1 @@
1
- {"version":3,"file":"gate-log-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAkC,CAAC;AAEpE,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,iBAAiB,IAAI,IAAI,WAAW,CAAC;AACjD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,KAAyB,EACzB,MAA0B,EAC1B,MAA0B;IAE1B,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEnE,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"gate-log-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/gate-log-writer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { GateSpec } from "./types.js";
2
+ export declare const MAX_IO_BUFFER_BYTES: number;
2
3
  export interface GateWorkDirOptions {
3
4
  cwd?: string;
4
5
  }
@@ -10,6 +11,7 @@ export interface GateRunResult {
10
11
  stderr: string;
11
12
  combined: string;
12
13
  }
14
+ export declare function shellForPlatform(): boolean | string;
13
15
  export declare function runGate(workingDirectory: string, spec: GateSpec): GateRunResult;
14
16
  export declare function gatePassed(result: GateRunResult, successSubstring: string | null): boolean;
15
17
  //# sourceMappingURL=gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAEzF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAgB,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,CAgB/E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAI1F"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAEzF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,IAAI,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,CAgB/E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAI1F"}
@@ -1,11 +1,11 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import path from "node:path";
3
- const MAX_IO_BUFFER_BYTES = 20 * 1024 * 1024;
3
+ export const MAX_IO_BUFFER_BYTES = 20 * 1024 * 1024;
4
4
  /** Resolve working directory for gate/scan subprocess execution. */
5
5
  export function resolveGateWorkDir(root, options = {}) {
6
6
  return options.cwd ? path.resolve(root, options.cwd) : root;
7
7
  }
8
- function shellForPlatform() {
8
+ export function shellForPlatform() {
9
9
  return process.platform === "win32" ? true : "/bin/sh";
10
10
  }
11
11
  export function runGate(workingDirectory, spec) {
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAM7C,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,UAA8B,EAAE;IAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AASD,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,gBAAwB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,gBAAgB,EAAE;QACzB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,mBAAmB;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,GAAG,MAAM,KAAK,MAAM,EAAE;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,gBAA+B;IAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/lib/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAMpD,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,UAA8B,EAAE;IAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AASD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,gBAAwB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,gBAAgB,EAAE;QACzB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,mBAAmB;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,GAAG,MAAM,KAAK,MAAM,EAAE;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,gBAA+B;IAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC"}