@lannguyensi/harness 0.63.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +46 -42
  3. package/dist/cli/add/index.js +17 -21
  4. package/dist/cli/add/index.js.map +1 -1
  5. package/dist/cli/adopt/derive.d.ts +2 -2
  6. package/dist/cli/adopt/derive.js +2 -19
  7. package/dist/cli/adopt/derive.js.map +1 -1
  8. package/dist/cli/adopt/index.d.ts +1 -1
  9. package/dist/cli/adopt/index.js +1 -12
  10. package/dist/cli/adopt/index.js.map +1 -1
  11. package/dist/cli/apply/apply.d.ts +20 -35
  12. package/dist/cli/apply/apply.js +61 -136
  13. package/dist/cli/apply/apply.js.map +1 -1
  14. package/dist/cli/apply/generate-codex-config.js +10 -58
  15. package/dist/cli/apply/generate-codex-config.js.map +1 -1
  16. package/dist/cli/apply/generate-memory-index.js +1 -2
  17. package/dist/cli/apply/generate-memory-index.js.map +1 -1
  18. package/dist/cli/apply/generate-opencode-config.d.ts +2 -10
  19. package/dist/cli/apply/generate-opencode-config.js +74 -113
  20. package/dist/cli/apply/generate-opencode-config.js.map +1 -1
  21. package/dist/cli/apply/generate-settings.d.ts +11 -64
  22. package/dist/cli/apply/generate-settings.js +27 -132
  23. package/dist/cli/apply/generate-settings.js.map +1 -1
  24. package/dist/cli/apply/index.d.ts +1 -1
  25. package/dist/cli/apply/index.js +1 -1
  26. package/dist/cli/apply/index.js.map +1 -1
  27. package/dist/cli/apply/install-codex-config.d.ts +153 -1
  28. package/dist/cli/apply/install-codex-config.js +445 -70
  29. package/dist/cli/apply/install-codex-config.js.map +1 -1
  30. package/dist/cli/apply/next-steps.d.ts +7 -0
  31. package/dist/cli/apply/next-steps.js +13 -1
  32. package/dist/cli/apply/next-steps.js.map +1 -1
  33. package/dist/cli/bounded-stdin.d.ts +0 -23
  34. package/dist/cli/bounded-stdin.js +2 -49
  35. package/dist/cli/bounded-stdin.js.map +1 -1
  36. package/dist/cli/describe.d.ts +1 -1
  37. package/dist/cli/describe.js +0 -3
  38. package/dist/cli/describe.js.map +1 -1
  39. package/dist/cli/diff/engine.d.ts +0 -11
  40. package/dist/cli/diff/engine.js +1 -17
  41. package/dist/cli/diff/engine.js.map +1 -1
  42. package/dist/cli/diff/index.js +14 -25
  43. package/dist/cli/diff/index.js.map +1 -1
  44. package/dist/cli/doctor/claude-mcp.d.ts +4 -19
  45. package/dist/cli/doctor/claude-mcp.js +11 -22
  46. package/dist/cli/doctor/claude-mcp.js.map +1 -1
  47. package/dist/cli/doctor/codex.d.ts +12 -14
  48. package/dist/cli/doctor/codex.js +31 -144
  49. package/dist/cli/doctor/codex.js.map +1 -1
  50. package/dist/cli/doctor/format.js +23 -338
  51. package/dist/cli/doctor/format.js.map +1 -1
  52. package/dist/cli/doctor/hook-liveness.d.ts +56 -0
  53. package/dist/cli/doctor/hook-liveness.js +455 -0
  54. package/dist/cli/doctor/hook-liveness.js.map +1 -0
  55. package/dist/cli/doctor/index.d.ts +13 -87
  56. package/dist/cli/doctor/index.js +57 -705
  57. package/dist/cli/doctor/index.js.map +1 -1
  58. package/dist/cli/doctor/opencode.d.ts +2 -1
  59. package/dist/cli/doctor/opencode.js.map +1 -1
  60. package/dist/cli/doctor/types.d.ts +21 -378
  61. package/dist/cli/doctor/types.js.map +1 -1
  62. package/dist/cli/drain-stdio.d.ts +31 -0
  63. package/dist/cli/drain-stdio.js +76 -0
  64. package/dist/cli/drain-stdio.js.map +1 -0
  65. package/dist/cli/export.d.ts +3 -1
  66. package/dist/cli/export.js +7 -16
  67. package/dist/cli/export.js.map +1 -1
  68. package/dist/cli/gate/codex-disable.d.ts +29 -0
  69. package/dist/cli/gate/codex-disable.js +195 -0
  70. package/dist/cli/gate/codex-disable.js.map +1 -0
  71. package/dist/cli/gate/codex-enable.d.ts +41 -0
  72. package/dist/cli/gate/codex-enable.js +127 -0
  73. package/dist/cli/gate/codex-enable.js.map +1 -0
  74. package/dist/cli/gate/codex-snapshot.d.ts +208 -0
  75. package/dist/cli/gate/codex-snapshot.js +402 -0
  76. package/dist/cli/gate/codex-snapshot.js.map +1 -0
  77. package/dist/cli/gate/disable.d.ts +9 -0
  78. package/dist/cli/gate/disable.js +263 -28
  79. package/dist/cli/gate/disable.js.map +1 -1
  80. package/dist/cli/gate/enable.d.ts +26 -6
  81. package/dist/cli/gate/enable.js +152 -80
  82. package/dist/cli/gate/enable.js.map +1 -1
  83. package/dist/cli/gate/link-chain.d.ts +53 -0
  84. package/dist/cli/gate/link-chain.js +122 -0
  85. package/dist/cli/gate/link-chain.js.map +1 -0
  86. package/dist/cli/gate/snapshot.d.ts +289 -12
  87. package/dist/cli/gate/snapshot.js +481 -22
  88. package/dist/cli/gate/snapshot.js.map +1 -1
  89. package/dist/cli/index.d.ts +0 -9
  90. package/dist/cli/index.js +15 -2607
  91. package/dist/cli/index.js.map +1 -1
  92. package/dist/cli/init/composer.d.ts +3 -6
  93. package/dist/cli/init/composer.js +6 -370
  94. package/dist/cli/init/composer.js.map +1 -1
  95. package/dist/cli/init/dependencies.d.ts +1 -2
  96. package/dist/cli/init/dependencies.js +4 -80
  97. package/dist/cli/init/dependencies.js.map +1 -1
  98. package/dist/cli/init/detect.js +5 -4
  99. package/dist/cli/init/detect.js.map +1 -1
  100. package/dist/cli/init/interactive.d.ts +1 -23
  101. package/dist/cli/init/interactive.js +33 -247
  102. package/dist/cli/init/interactive.js.map +1 -1
  103. package/dist/cli/init/profiles.d.ts +2 -2
  104. package/dist/cli/init/profiles.js +51 -243
  105. package/dist/cli/init/profiles.js.map +1 -1
  106. package/dist/cli/init/templates.d.ts +2 -37
  107. package/dist/cli/init/templates.js +25 -1237
  108. package/dist/cli/init/templates.js.map +1 -1
  109. package/dist/cli/list.d.ts +1 -1
  110. package/dist/cli/list.js +1 -38
  111. package/dist/cli/list.js.map +1 -1
  112. package/dist/cli/loader.d.ts +15 -1
  113. package/dist/cli/loader.js +56 -39
  114. package/dist/cli/loader.js.map +1 -1
  115. package/dist/cli/main.js +7 -2
  116. package/dist/cli/main.js.map +1 -1
  117. package/dist/cli/migrate-home/index.js +2 -2
  118. package/dist/cli/migrate-home/index.js.map +1 -1
  119. package/dist/cli/pack/add.js +1 -1
  120. package/dist/cli/pack/add.js.map +1 -1
  121. package/dist/cli/pack/hook-bootstrap.d.ts +5 -164
  122. package/dist/cli/pack/hook-bootstrap.js +15 -291
  123. package/dist/cli/pack/hook-bootstrap.js.map +1 -1
  124. package/dist/cli/pack/hook-branch-protection.d.ts +28 -21
  125. package/dist/cli/pack/hook-branch-protection.js +365 -340
  126. package/dist/cli/pack/hook-branch-protection.js.map +1 -1
  127. package/dist/cli/pack/index.d.ts +0 -1
  128. package/dist/cli/pack/index.js +0 -1
  129. package/dist/cli/pack/index.js.map +1 -1
  130. package/dist/cli/pack/list.js +1 -6
  131. package/dist/cli/pack/list.js.map +1 -1
  132. package/dist/cli/pack/mutate.d.ts +7 -9
  133. package/dist/cli/pack/mutate.js +6 -9
  134. package/dist/cli/pack/mutate.js.map +1 -1
  135. package/dist/cli/pack/reseed.d.ts +2 -2
  136. package/dist/cli/pack/reseed.js +16 -22
  137. package/dist/cli/pack/reseed.js.map +1 -1
  138. package/dist/cli/register-gate-group.d.ts +5 -0
  139. package/dist/cli/register-gate-group.js +348 -0
  140. package/dist/cli/register-gate-group.js.map +1 -0
  141. package/dist/cli/register-inspect-group.d.ts +6 -0
  142. package/dist/cli/register-inspect-group.js +189 -0
  143. package/dist/cli/register-inspect-group.js.map +1 -0
  144. package/dist/cli/register-operator-lifecycle.d.ts +5 -0
  145. package/dist/cli/register-operator-lifecycle.js +20 -0
  146. package/dist/cli/register-operator-lifecycle.js.map +1 -0
  147. package/dist/cli/register-pack-group.d.ts +5 -0
  148. package/dist/cli/register-pack-group.js +134 -0
  149. package/dist/cli/register-pack-group.js.map +1 -0
  150. package/dist/cli/register-setup-group.d.ts +5 -0
  151. package/dist/cli/register-setup-group.js +495 -0
  152. package/dist/cli/register-setup-group.js.map +1 -0
  153. package/dist/cli/remove/index.d.ts +0 -14
  154. package/dist/cli/remove/index.js +2 -115
  155. package/dist/cli/remove/index.js.map +1 -1
  156. package/dist/cli/remove/mutate.d.ts +0 -2
  157. package/dist/cli/remove/mutate.js +1 -19
  158. package/dist/cli/remove/mutate.js.map +1 -1
  159. package/dist/cli/remove/register.d.ts +5 -0
  160. package/dist/cli/remove/register.js +25 -0
  161. package/dist/cli/remove/register.js.map +1 -0
  162. package/dist/cli/shell-quote.d.ts +7 -0
  163. package/dist/cli/shell-quote.js +17 -0
  164. package/dist/cli/shell-quote.js.map +1 -0
  165. package/dist/cli/uninstall/index.d.ts +4 -2
  166. package/dist/cli/uninstall/index.js +15 -7
  167. package/dist/cli/uninstall/index.js.map +1 -1
  168. package/dist/cli/uninstall/register.d.ts +5 -0
  169. package/dist/cli/uninstall/register.js +171 -0
  170. package/dist/cli/uninstall/register.js.map +1 -0
  171. package/dist/cli/uninstall/snapshot.d.ts +15 -0
  172. package/dist/cli/uninstall/snapshot.js +38 -0
  173. package/dist/cli/uninstall/snapshot.js.map +1 -1
  174. package/dist/cli/validate/checks.d.ts +0 -77
  175. package/dist/cli/validate/checks.js +3 -1049
  176. package/dist/cli/validate/checks.js.map +1 -1
  177. package/dist/cli/validate/index.js +19 -15
  178. package/dist/cli/validate/index.js.map +1 -1
  179. package/dist/index.d.ts +0 -3
  180. package/dist/index.js +0 -3
  181. package/dist/index.js.map +1 -1
  182. package/dist/io/claude-mcp.d.ts +1 -1
  183. package/dist/io/claude-mcp.js +27 -14
  184. package/dist/io/claude-mcp.js.map +1 -1
  185. package/dist/io/harness-lock.js +2 -2
  186. package/dist/io/harness-lock.js.map +1 -1
  187. package/dist/io/lock.d.ts +0 -26
  188. package/dist/io/lock.js +10 -27
  189. package/dist/io/lock.js.map +1 -1
  190. package/dist/io/merge-settings.js +6 -4
  191. package/dist/io/merge-settings.js.map +1 -1
  192. package/dist/io/project-name.d.ts +22 -39
  193. package/dist/io/project-name.js +25 -42
  194. package/dist/io/project-name.js.map +1 -1
  195. package/dist/io/read-regular-file.d.ts +103 -40
  196. package/dist/io/read-regular-file.js +196 -35
  197. package/dist/io/read-regular-file.js.map +1 -1
  198. package/dist/io/restart-hints.js +3 -6
  199. package/dist/io/restart-hints.js.map +1 -1
  200. package/dist/io/version-compare.d.ts +1 -3
  201. package/dist/io/version-compare.js +1 -3
  202. package/dist/io/version-compare.js.map +1 -1
  203. package/dist/io/write-regular-file.d.ts +30 -0
  204. package/dist/io/write-regular-file.js +85 -0
  205. package/dist/io/write-regular-file.js.map +1 -0
  206. package/dist/overrides/index.d.ts +1 -0
  207. package/dist/overrides/index.js +1 -0
  208. package/dist/overrides/index.js.map +1 -1
  209. package/dist/overrides/merge-layers.d.ts +43 -0
  210. package/dist/overrides/merge-layers.js +76 -0
  211. package/dist/overrides/merge-layers.js.map +1 -0
  212. package/dist/overrides/merge.d.ts +16 -0
  213. package/dist/overrides/merge.js +21 -8
  214. package/dist/overrides/merge.js.map +1 -1
  215. package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
  216. package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
  217. package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
  218. package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
  219. package/dist/policy-packs/builtin/branch-protection.js +56 -89
  220. package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
  221. package/dist/policy-packs/config-check.d.ts +7 -5
  222. package/dist/policy-packs/config-check.js +2 -2
  223. package/dist/policy-packs/config-check.js.map +1 -1
  224. package/dist/policy-packs/expand.d.ts +1 -3
  225. package/dist/policy-packs/expand.js +5 -42
  226. package/dist/policy-packs/expand.js.map +1 -1
  227. package/dist/policy-packs/index.d.ts +3 -3
  228. package/dist/policy-packs/index.js +2 -2
  229. package/dist/policy-packs/index.js.map +1 -1
  230. package/dist/policy-packs/registry.d.ts +9 -38
  231. package/dist/policy-packs/registry.js +5 -65
  232. package/dist/policy-packs/registry.js.map +1 -1
  233. package/dist/policy-packs/runtime.d.ts +0 -4
  234. package/dist/policy-packs/runtime.js +9 -22
  235. package/dist/policy-packs/runtime.js.map +1 -1
  236. package/dist/policy-packs/types.d.ts +0 -19
  237. package/dist/policy-packs/ux-compare.d.ts +1 -11
  238. package/dist/policy-packs/ux-compare.js +6 -42
  239. package/dist/policy-packs/ux-compare.js.map +1 -1
  240. package/dist/policy-packs/ux-drift-check.d.ts +5 -5
  241. package/dist/policy-packs/ux-drift-check.js +17 -22
  242. package/dist/policy-packs/ux-drift-check.js.map +1 -1
  243. package/dist/policy-packs/version-check.d.ts +5 -26
  244. package/dist/policy-packs/version-check.js +19 -74
  245. package/dist/policy-packs/version-check.js.map +1 -1
  246. package/dist/probes/memory.d.ts +1 -1
  247. package/dist/probes/memory.js +1 -1
  248. package/dist/probes/memory.js.map +1 -1
  249. package/dist/runtime/agent-facing.d.ts +9 -0
  250. package/dist/runtime/agent-facing.js +28 -14
  251. package/dist/runtime/agent-facing.js.map +1 -1
  252. package/dist/runtime/bounded-text.d.ts +15 -0
  253. package/dist/runtime/bounded-text.js +27 -0
  254. package/dist/runtime/bounded-text.js.map +1 -0
  255. package/dist/runtime/git-branch.d.ts +125 -0
  256. package/dist/runtime/git-branch.js +381 -0
  257. package/dist/runtime/git-branch.js.map +1 -0
  258. package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
  259. package/dist/runtime/hermetic-spawn-guard.js +24 -34
  260. package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
  261. package/dist/runtime/home-dir.js +3 -2
  262. package/dist/runtime/home-dir.js.map +1 -1
  263. package/dist/runtime/tool-name-aliases.d.ts +0 -6
  264. package/dist/runtime/tool-name-aliases.js +5 -18
  265. package/dist/runtime/tool-name-aliases.js.map +1 -1
  266. package/dist/schema/grounding.d.ts +7 -54
  267. package/dist/schema/grounding.js +10 -12
  268. package/dist/schema/grounding.js.map +1 -1
  269. package/dist/schema/hooks.d.ts +39 -136
  270. package/dist/schema/hooks.js +3 -6
  271. package/dist/schema/hooks.js.map +1 -1
  272. package/dist/schema/index.d.ts +114 -3828
  273. package/dist/schema/index.js +41 -80
  274. package/dist/schema/index.js.map +1 -1
  275. package/dist/schema/memory.d.ts +54 -131
  276. package/dist/schema/memory.js +2 -2
  277. package/dist/schema/memory.js.map +1 -1
  278. package/dist/schema/policy-packs.d.ts +3 -45
  279. package/dist/schema/policy-packs.js +7 -13
  280. package/dist/schema/policy-packs.js.map +1 -1
  281. package/dist/schema/policy-ux.d.ts +7 -0
  282. package/dist/schema/policy-ux.js +18 -0
  283. package/dist/schema/policy-ux.js.map +1 -0
  284. package/dist/schema/removed-keys.d.ts +185 -0
  285. package/dist/schema/removed-keys.js +531 -0
  286. package/dist/schema/removed-keys.js.map +1 -0
  287. package/dist/schema/tools.d.ts +30 -268
  288. package/dist/schema/tools.js +4 -4
  289. package/dist/schema/tools.js.map +1 -1
  290. package/package.json +5 -16
  291. package/dist/cli/approve/branch-protection.d.ts +0 -69
  292. package/dist/cli/approve/branch-protection.js +0 -144
  293. package/dist/cli/approve/branch-protection.js.map +0 -1
  294. package/dist/cli/approve/risk.d.ts +0 -112
  295. package/dist/cli/approve/risk.js +0 -197
  296. package/dist/cli/approve/risk.js.map +0 -1
  297. package/dist/cli/approve/stdin-report.d.ts +0 -57
  298. package/dist/cli/approve/stdin-report.js +0 -145
  299. package/dist/cli/approve/stdin-report.js.map +0 -1
  300. package/dist/cli/approve/understanding.d.ts +0 -410
  301. package/dist/cli/approve/understanding.js +0 -996
  302. package/dist/cli/approve/understanding.js.map +0 -1
  303. package/dist/cli/audit.d.ts +0 -80
  304. package/dist/cli/audit.js +0 -252
  305. package/dist/cli/audit.js.map +0 -1
  306. package/dist/cli/delegate/index.d.ts +0 -76
  307. package/dist/cli/delegate/index.js +0 -443
  308. package/dist/cli/delegate/index.js.map +0 -1
  309. package/dist/cli/doctor/auto-approve-mode.d.ts +0 -37
  310. package/dist/cli/doctor/auto-approve-mode.js +0 -80
  311. package/dist/cli/doctor/auto-approve-mode.js.map +0 -1
  312. package/dist/cli/doctor/bypass-without-auto-approve.d.ts +0 -38
  313. package/dist/cli/doctor/bypass-without-auto-approve.js +0 -95
  314. package/dist/cli/doctor/bypass-without-auto-approve.js.map +0 -1
  315. package/dist/cli/doctor/codex-config-drift.d.ts +0 -28
  316. package/dist/cli/doctor/codex-config-drift.js +0 -240
  317. package/dist/cli/doctor/codex-config-drift.js.map +0 -1
  318. package/dist/cli/doctor/rogue-ledger.d.ts +0 -53
  319. package/dist/cli/doctor/rogue-ledger.js +0 -153
  320. package/dist/cli/doctor/rogue-ledger.js.map +0 -1
  321. package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
  322. package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
  323. package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
  324. package/dist/cli/doctor/settings-drift.d.ts +0 -25
  325. package/dist/cli/doctor/settings-drift.js +0 -213
  326. package/dist/cli/doctor/settings-drift.js.map +0 -1
  327. package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
  328. package/dist/cli/doctor/toolchain-parity.js +0 -154
  329. package/dist/cli/doctor/toolchain-parity.js.map +0 -1
  330. package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
  331. package/dist/cli/doctor/ug-auto-approvals.js +0 -91
  332. package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
  333. package/dist/cli/doctor/ug-delegations.d.ts +0 -26
  334. package/dist/cli/doctor/ug-delegations.js +0 -121
  335. package/dist/cli/doctor/ug-delegations.js.map +0 -1
  336. package/dist/cli/doctor/ug-inflight.d.ts +0 -35
  337. package/dist/cli/doctor/ug-inflight.js +0 -57
  338. package/dist/cli/doctor/ug-inflight.js.map +0 -1
  339. package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
  340. package/dist/cli/doctor/understanding-mode-env.js +0 -98
  341. package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
  342. package/dist/cli/dry-run.d.ts +0 -46
  343. package/dist/cli/dry-run.js +0 -250
  344. package/dist/cli/dry-run.js.map +0 -1
  345. package/dist/cli/event-input.d.ts +0 -28
  346. package/dist/cli/event-input.js +0 -73
  347. package/dist/cli/event-input.js.map +0 -1
  348. package/dist/cli/explain-action.d.ts +0 -20
  349. package/dist/cli/explain-action.js +0 -27
  350. package/dist/cli/explain-action.js.map +0 -1
  351. package/dist/cli/explain-policy.d.ts +0 -135
  352. package/dist/cli/explain-policy.js +0 -266
  353. package/dist/cli/explain-policy.js.map +0 -1
  354. package/dist/cli/explain.d.ts +0 -31
  355. package/dist/cli/explain.js +0 -159
  356. package/dist/cli/explain.js.map +0 -1
  357. package/dist/cli/gc/index.d.ts +0 -63
  358. package/dist/cli/gc/index.js +0 -566
  359. package/dist/cli/gc/index.js.map +0 -1
  360. package/dist/cli/pack/approve-escape.d.ts +0 -19
  361. package/dist/cli/pack/approve-escape.js +0 -190
  362. package/dist/cli/pack/approve-escape.js.map +0 -1
  363. package/dist/cli/pack/auto-approve-path.d.ts +0 -146
  364. package/dist/cli/pack/auto-approve-path.js +0 -462
  365. package/dist/cli/pack/auto-approve-path.js.map +0 -1
  366. package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
  367. package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
  368. package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
  369. package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
  370. package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
  371. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
  372. package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
  373. package/dist/cli/pack/hook-codex-stop.js +0 -329
  374. package/dist/cli/pack/hook-codex-stop.js.map +0 -1
  375. package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
  376. package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
  377. package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
  378. package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
  379. package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
  380. package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
  381. package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
  382. package/dist/cli/pack/hook-post-merge-gate.js +0 -277
  383. package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
  384. package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
  385. package/dist/cli/pack/hook-post-tool-use.js +0 -137
  386. package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
  387. package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
  388. package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
  389. package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
  390. package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
  391. package/dist/cli/pack/hook-runtime-reality.js +0 -210
  392. package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
  393. package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
  394. package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -337
  395. package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
  396. package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
  397. package/dist/cli/pack/hook-solution-acceptance.js +0 -530
  398. package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
  399. package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
  400. package/dist/cli/pack/hook-stay-in-scope.js +0 -128
  401. package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
  402. package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
  403. package/dist/cli/pack/hook-subagent-start.js +0 -88
  404. package/dist/cli/pack/hook-subagent-start.js.map +0 -1
  405. package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
  406. package/dist/cli/pack/hook-subagent-stop.js +0 -41
  407. package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
  408. package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
  409. package/dist/cli/pack/hook-track-active-claim.js +0 -275
  410. package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
  411. package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
  412. package/dist/cli/pack/transcript-report-scan.js +0 -359
  413. package/dist/cli/pack/transcript-report-scan.js.map +0 -1
  414. package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
  415. package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
  416. package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
  417. package/dist/cli/pack/upgrade.d.ts +0 -32
  418. package/dist/cli/pack/upgrade.js +0 -273
  419. package/dist/cli/pack/upgrade.js.map +0 -1
  420. package/dist/cli/pause/index.d.ts +0 -113
  421. package/dist/cli/pause/index.js +0 -251
  422. package/dist/cli/pause/index.js.map +0 -1
  423. package/dist/cli/pause-check.d.ts +0 -22
  424. package/dist/cli/pause-check.js +0 -54
  425. package/dist/cli/pause-check.js.map +0 -1
  426. package/dist/cli/policy/intercept.d.ts +0 -233
  427. package/dist/cli/policy/intercept.js +0 -1020
  428. package/dist/cli/policy/intercept.js.map +0 -1
  429. package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
  430. package/dist/cli/policy/risk-envelope-enrichment.js +0 -108
  431. package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
  432. package/dist/cli/record/index.d.ts +0 -81
  433. package/dist/cli/record/index.js +0 -348
  434. package/dist/cli/record/index.js.map +0 -1
  435. package/dist/cli/resolve-env.d.ts +0 -32
  436. package/dist/cli/resolve-env.js +0 -47
  437. package/dist/cli/resolve-env.js.map +0 -1
  438. package/dist/cli/session-export/index.d.ts +0 -46
  439. package/dist/cli/session-export/index.js +0 -169
  440. package/dist/cli/session-export/index.js.map +0 -1
  441. package/dist/cli/session-export/redact.d.ts +0 -22
  442. package/dist/cli/session-export/redact.js +0 -47
  443. package/dist/cli/session-export/redact.js.map +0 -1
  444. package/dist/cli/session-export/transcript.d.ts +0 -24
  445. package/dist/cli/session-export/transcript.js +0 -164
  446. package/dist/cli/session-export/transcript.js.map +0 -1
  447. package/dist/cli/session-start/branch-check.d.ts +0 -18
  448. package/dist/cli/session-start/branch-check.js +0 -140
  449. package/dist/cli/session-start/branch-check.js.map +0 -1
  450. package/dist/cli/session-start/index.d.ts +0 -121
  451. package/dist/cli/session-start/index.js +0 -591
  452. package/dist/cli/session-start/index.js.map +0 -1
  453. package/dist/cli/session-start/shared-options.d.ts +0 -103
  454. package/dist/cli/session-start/shared-options.js +0 -107
  455. package/dist/cli/session-start/shared-options.js.map +0 -1
  456. package/dist/cli/session-start/stale-base-check.d.ts +0 -46
  457. package/dist/cli/session-start/stale-base-check.js +0 -352
  458. package/dist/cli/session-start/stale-base-check.js.map +0 -1
  459. package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
  460. package/dist/cli/session-start/toolchain-parity.js +0 -797
  461. package/dist/cli/session-start/toolchain-parity.js.map +0 -1
  462. package/dist/cli/smoke/assertions.d.ts +0 -46
  463. package/dist/cli/smoke/assertions.js +0 -170
  464. package/dist/cli/smoke/assertions.js.map +0 -1
  465. package/dist/cli/smoke/index.d.ts +0 -76
  466. package/dist/cli/smoke/index.js +0 -245
  467. package/dist/cli/smoke/index.js.map +0 -1
  468. package/dist/cli/smoke/runner.d.ts +0 -55
  469. package/dist/cli/smoke/runner.js +0 -134
  470. package/dist/cli/smoke/runner.js.map +0 -1
  471. package/dist/cli/smoke/stream-parser.d.ts +0 -65
  472. package/dist/cli/smoke/stream-parser.js +0 -115
  473. package/dist/cli/smoke/stream-parser.js.map +0 -1
  474. package/dist/cli/test-risk.d.ts +0 -26
  475. package/dist/cli/test-risk.js +0 -34
  476. package/dist/cli/test-risk.js.map +0 -1
  477. package/dist/io/display-path.d.ts +0 -11
  478. package/dist/io/display-path.js +0 -29
  479. package/dist/io/display-path.js.map +0 -1
  480. package/dist/io/duration.d.ts +0 -5
  481. package/dist/io/duration.js +0 -50
  482. package/dist/io/duration.js.map +0 -1
  483. package/dist/io/extract.d.ts +0 -79
  484. package/dist/io/extract.js +0 -226
  485. package/dist/io/extract.js.map +0 -1
  486. package/dist/io/ledger-record.d.ts +0 -83
  487. package/dist/io/ledger-record.js +0 -301
  488. package/dist/io/ledger-record.js.map +0 -1
  489. package/dist/io/read-json-dir-entries.d.ts +0 -36
  490. package/dist/io/read-json-dir-entries.js +0 -48
  491. package/dist/io/read-json-dir-entries.js.map +0 -1
  492. package/dist/io/safe-json-parse.d.ts +0 -5
  493. package/dist/io/safe-json-parse.js +0 -21
  494. package/dist/io/safe-json-parse.js.map +0 -1
  495. package/dist/policies/index.d.ts +0 -5
  496. package/dist/policies/index.js +0 -6
  497. package/dist/policies/index.js.map +0 -1
  498. package/dist/policies/ledger-client.d.ts +0 -113
  499. package/dist/policies/ledger-client.js +0 -500
  500. package/dist/policies/ledger-client.js.map +0 -1
  501. package/dist/policies/producers.d.ts +0 -12
  502. package/dist/policies/producers.js +0 -61
  503. package/dist/policies/producers.js.map +0 -1
  504. package/dist/policies/requires.d.ts +0 -75
  505. package/dist/policies/requires.js +0 -240
  506. package/dist/policies/requires.js.map +0 -1
  507. package/dist/policies/timestamp.d.ts +0 -14
  508. package/dist/policies/timestamp.js +0 -36
  509. package/dist/policies/timestamp.js.map +0 -1
  510. package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
  511. package/dist/policy-packs/builtin/permission-profiles.js +0 -74
  512. package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
  513. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
  514. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
  515. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
  516. package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
  517. package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
  518. package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
  519. package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
  520. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
  521. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
  522. package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
  523. package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
  524. package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
  525. package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
  526. package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
  527. package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
  528. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
  529. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
  530. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
  531. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
  532. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
  533. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
  534. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
  535. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
  536. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
  537. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
  538. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
  539. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
  540. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
  541. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
  542. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
  543. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
  544. package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
  545. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
  546. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
  547. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -618
  548. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
  549. package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
  550. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
  551. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
  552. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
  553. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -93
  554. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
  555. package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
  556. package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
  557. package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
  558. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
  559. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
  560. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
  561. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
  562. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
  563. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
  564. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -620
  565. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1047
  566. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
  567. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
  568. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
  569. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
  570. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
  571. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
  572. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
  573. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
  574. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
  575. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
  576. package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
  577. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
  578. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
  579. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
  580. package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1074
  581. package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
  582. package/dist/policy-packs/permission-translator.d.ts +0 -9
  583. package/dist/policy-packs/permission-translator.js +0 -76
  584. package/dist/policy-packs/permission-translator.js.map +0 -1
  585. package/dist/runtime/action-envelope.d.ts +0 -64
  586. package/dist/runtime/action-envelope.js +0 -46
  587. package/dist/runtime/action-envelope.js.map +0 -1
  588. package/dist/runtime/approval-signing.d.ts +0 -111
  589. package/dist/runtime/approval-signing.js +0 -384
  590. package/dist/runtime/approval-signing.js.map +0 -1
  591. package/dist/runtime/bash-match-facts.d.ts +0 -60
  592. package/dist/runtime/bash-match-facts.js +0 -196
  593. package/dist/runtime/bash-match-facts.js.map +0 -1
  594. package/dist/runtime/bash-match-registry.d.ts +0 -112
  595. package/dist/runtime/bash-match-registry.js +0 -406
  596. package/dist/runtime/bash-match-registry.js.map +0 -1
  597. package/dist/runtime/bash-prefix-parse.d.ts +0 -31
  598. package/dist/runtime/bash-prefix-parse.js +0 -576
  599. package/dist/runtime/bash-prefix-parse.js.map +0 -1
  600. package/dist/runtime/command-normalize.d.ts +0 -658
  601. package/dist/runtime/command-normalize.js +0 -2410
  602. package/dist/runtime/command-normalize.js.map +0 -1
  603. package/dist/runtime/deletion-target-resolve.d.ts +0 -28
  604. package/dist/runtime/deletion-target-resolve.js +0 -1078
  605. package/dist/runtime/deletion-target-resolve.js.map +0 -1
  606. package/dist/runtime/destructive-shell-floor.d.ts +0 -19
  607. package/dist/runtime/destructive-shell-floor.js +0 -611
  608. package/dist/runtime/destructive-shell-floor.js.map +0 -1
  609. package/dist/runtime/environment-resolver.d.ts +0 -36
  610. package/dist/runtime/environment-resolver.js +0 -138
  611. package/dist/runtime/environment-resolver.js.map +0 -1
  612. package/dist/runtime/git-context.d.ts +0 -201
  613. package/dist/runtime/git-context.js +0 -422
  614. package/dist/runtime/git-context.js.map +0 -1
  615. package/dist/runtime/index.d.ts +0 -12
  616. package/dist/runtime/index.js +0 -13
  617. package/dist/runtime/index.js.map +0 -1
  618. package/dist/runtime/intercept.d.ts +0 -494
  619. package/dist/runtime/intercept.js +0 -1313
  620. package/dist/runtime/intercept.js.map +0 -1
  621. package/dist/runtime/kube-context.d.ts +0 -16
  622. package/dist/runtime/kube-context.js +0 -63
  623. package/dist/runtime/kube-context.js.map +0 -1
  624. package/dist/runtime/kubectl-target-parse.d.ts +0 -31
  625. package/dist/runtime/kubectl-target-parse.js +0 -249
  626. package/dist/runtime/kubectl-target-parse.js.map +0 -1
  627. package/dist/runtime/ledger-add.d.ts +0 -16
  628. package/dist/runtime/ledger-add.js +0 -150
  629. package/dist/runtime/ledger-add.js.map +0 -1
  630. package/dist/runtime/ledger-writer.d.ts +0 -27
  631. package/dist/runtime/ledger-writer.js +0 -46
  632. package/dist/runtime/ledger-writer.js.map +0 -1
  633. package/dist/runtime/pause-sentinel.d.ts +0 -60
  634. package/dist/runtime/pause-sentinel.js +0 -156
  635. package/dist/runtime/pause-sentinel.js.map +0 -1
  636. package/dist/runtime/pending-approval.d.ts +0 -23
  637. package/dist/runtime/pending-approval.js +0 -67
  638. package/dist/runtime/pending-approval.js.map +0 -1
  639. package/dist/runtime/read-only-bash.d.ts +0 -141
  640. package/dist/runtime/read-only-bash.js +0 -2204
  641. package/dist/runtime/read-only-bash.js.map +0 -1
  642. package/dist/runtime/recovery-git-commit.d.ts +0 -22
  643. package/dist/runtime/recovery-git-commit.js +0 -284
  644. package/dist/runtime/recovery-git-commit.js.map +0 -1
  645. package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
  646. package/dist/runtime/reject-malformed-session-id.js +0 -16
  647. package/dist/runtime/reject-malformed-session-id.js.map +0 -1
  648. package/dist/runtime/risk-classifier.d.ts +0 -38
  649. package/dist/runtime/risk-classifier.js +0 -311
  650. package/dist/runtime/risk-classifier.js.map +0 -1
  651. package/dist/runtime/session-id.d.ts +0 -113
  652. package/dist/runtime/session-id.js +0 -193
  653. package/dist/runtime/session-id.js.map +0 -1
  654. package/dist/runtime/shell-word.d.ts +0 -62
  655. package/dist/runtime/shell-word.js +0 -410
  656. package/dist/runtime/shell-word.js.map +0 -1
  657. package/dist/runtime/task-providers/agent-tasks.d.ts +0 -103
  658. package/dist/runtime/task-providers/agent-tasks.js +0 -245
  659. package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
  660. package/dist/runtime/when-eval.d.ts +0 -62
  661. package/dist/runtime/when-eval.js +0 -212
  662. package/dist/runtime/when-eval.js.map +0 -1
  663. package/dist/runtime/workflow-policies.d.ts +0 -207
  664. package/dist/runtime/workflow-policies.js +0 -596
  665. package/dist/runtime/workflow-policies.js.map +0 -1
  666. package/dist/schema/audit.d.ts +0 -71
  667. package/dist/schema/audit.js +0 -32
  668. package/dist/schema/audit.js.map +0 -1
  669. package/dist/schema/doctor.d.ts +0 -25
  670. package/dist/schema/doctor.js +0 -23
  671. package/dist/schema/doctor.js.map +0 -1
  672. package/dist/schema/environments.d.ts +0 -215
  673. package/dist/schema/environments.js +0 -101
  674. package/dist/schema/environments.js.map +0 -1
  675. package/dist/schema/extract.d.ts +0 -9
  676. package/dist/schema/extract.js +0 -86
  677. package/dist/schema/extract.js.map +0 -1
  678. package/dist/schema/permission-profiles.d.ts +0 -2292
  679. package/dist/schema/permission-profiles.js +0 -60
  680. package/dist/schema/permission-profiles.js.map +0 -1
  681. package/dist/schema/policies.d.ts +0 -974
  682. package/dist/schema/policies.js +0 -298
  683. package/dist/schema/policies.js.map +0 -1
  684. package/dist/schema/requires.d.ts +0 -131
  685. package/dist/schema/requires.js +0 -88
  686. package/dist/schema/requires.js.map +0 -1
  687. package/dist/schema/risk.d.ts +0 -144
  688. package/dist/schema/risk.js +0 -194
  689. package/dist/schema/risk.js.map +0 -1
  690. package/dist/schema/session-start-preflight.d.ts +0 -10
  691. package/dist/schema/session-start-preflight.js +0 -106
  692. package/dist/schema/session-start-preflight.js.map +0 -1
  693. package/dist/schema/stale-base-check.d.ts +0 -18
  694. package/dist/schema/stale-base-check.js +0 -37
  695. package/dist/schema/stale-base-check.js.map +0 -1
  696. package/dist/schema/toolchain-parity.d.ts +0 -21
  697. package/dist/schema/toolchain-parity.js +0 -48
  698. package/dist/schema/toolchain-parity.js.map +0 -1
  699. package/dist/schema/workflows.d.ts +0 -519
  700. package/dist/schema/workflows.js +0 -81
  701. package/dist/schema/workflows.js.map +0 -1
  702. package/scripts/runtime-reality-docker-probe.mjs +0 -71
@@ -1,245 +0,0 @@
1
- // Internal agent-tasks runtime adapter. Consumers keep their own event and
2
- // diagnostic handling; this module owns provider-specific semantics only.
3
- import { expandToolNameAliases } from "../tool-name-aliases.js";
4
- export const AGENT_TASKS_MCP_PREFIX = "mcp__agent-tasks__";
5
- export const TASK_START_TOOL = `${AGENT_TASKS_MCP_PREFIX}task_start`;
6
- export const TASK_FINISH_TOOL = `${AGENT_TASKS_MCP_PREFIX}task_finish`;
7
- export const TASK_ABANDON_TOOL = `${AGENT_TASKS_MCP_PREFIX}task_abandon`;
8
- export const TASKS_TRANSITION_TOOL = `${AGENT_TASKS_MCP_PREFIX}tasks_transition`;
9
- export const TASK_MERGE_TOOL = `${AGENT_TASKS_MCP_PREFIX}task_merge`;
10
- export const PULL_REQUESTS_MERGE_TOOL = `${AGENT_TASKS_MCP_PREFIX}pull_requests_merge`;
11
- export const ACTIVE_CLAIM_TOOL_NAMES = [
12
- TASK_START_TOOL,
13
- TASK_FINISH_TOOL,
14
- TASK_ABANDON_TOOL,
15
- TASKS_TRANSITION_TOOL,
16
- TASK_MERGE_TOOL,
17
- ];
18
- /**
19
- * Default approval-marker expiry tool list. It only shapes the EMITTED
20
- * PostToolUse matcher when a manifest configures no explicit
21
- * `approval_lifecycle.expire_on_tool_match`; the runtime boundary list
22
- * the hook applies comes from the config alone (`parseApprovalLifecycle`
23
- * returns an empty list when the key is absent). `task_merge` is listed
24
- * because a `task_finish` that lands in `review` no longer expires the
25
- * approval (it keeps the work claim, task 5018c0c4); an operator's
26
- * explicit list, and every `harness init` scaffold, needs `task_merge`
27
- * too for the review-then-`task_merge` path to expire the approval.
28
- */
29
- export const DEFAULT_BOUNDARY_TOOL_NAMES = [
30
- TASK_FINISH_TOOL,
31
- TASK_ABANDON_TOOL,
32
- PULL_REQUESTS_MERGE_TOOL,
33
- TASKS_TRANSITION_TOOL,
34
- TASK_MERGE_TOOL,
35
- ];
36
- export const DEFAULT_PROTECTED_COMPLETION_TOOLS = [
37
- "task_finish",
38
- "task_submit_pr",
39
- "task_merge",
40
- "pull_requests_merge",
41
- ];
42
- export const TASK_FINISH_AUTOMERGE_INPUT_MATCH = {
43
- "toolArgs.autoMerge": true,
44
- };
45
- export const TASK_ID_EXTRACT = { TASK_ID: "toolArgs.taskId" };
46
- export const PR_NUMBER_EXTRACT = { PR_NUMBER: "toolArgs.prNumber" };
47
- function inputRecord(input) {
48
- if (typeof input !== "object" || input === null || Array.isArray(input))
49
- return null;
50
- return input;
51
- }
52
- export function taskIdFromInput(input) {
53
- const taskId = inputRecord(input)?.["taskId"];
54
- return typeof taskId === "string" ? taskId : "";
55
- }
56
- export function tasksTransitionStatusFromInput(input) {
57
- const status = inputRecord(input)?.["status"];
58
- return typeof status === "string" ? status : "";
59
- }
60
- export function tasksTransitionReleasesClaim(input) {
61
- return tasksTransitionStatusFromInput(input) === "done";
62
- }
63
- /**
64
- * Best-effort recursive unwrap of a task_finish tool RESULT into the
65
- * mcp-server receipt object it ultimately carries, tolerating every
66
- * transport shape observed or plausible for a PostToolUse event (task
67
- * c86e3c4a: an earlier version of this function read only shape (a)
68
- * below and was inert against the shape Claude Code actually sends):
69
- *
70
- * (a) the receipt object itself, `{ ok, task: { id, status } }` -- both
71
- * the small default receipt and the `include:["task"]` full-object
72
- * variant, since both nest the task under `task` and this function
73
- * only reads that key, not the rest of the shape;
74
- * (b) Claude Code's REAL PostToolUse `tool_response` for an MCP tool
75
- * (live capture, claude 2.1.280): a content-block array
76
- * `[{ type: "text", text: "<json>" }, ...]` -- the first `text`
77
- * block is located and its `text` is JSON-parsed, then unwrapped
78
- * again as (a). See `tests/fixtures/track-active-claim/
79
- * real-posttooluse-task-finish-2.1.280.json` for the verbatim
80
- * redacted capture;
81
- * (c) an MCP `CallToolResult` object, `{ content: [{ type: "text",
82
- * text: "<json>" }] }` -- plausible on Codex, UNMEASURED here (no
83
- * Codex capture exists in this run; see
84
- * `docs/policy-packs/understanding-before-execution.md`), handled
85
- * defensively the same way as (b);
86
- * (d) a bare JSON string -- parsed once, then unwrapped again.
87
- *
88
- * Anything else, a `JSON.parse` failure at any step, or a nesting depth
89
- * past a small guard, returns `null` so the caller fails safe rather
90
- * than throwing or silently misreading.
91
- */
92
- function unwrapToolResponseEnvelope(toolResponse, depth = 0) {
93
- if (depth > 4)
94
- return null;
95
- if (typeof toolResponse === "string") {
96
- let parsed;
97
- try {
98
- parsed = JSON.parse(toolResponse);
99
- }
100
- catch {
101
- return null;
102
- }
103
- return unwrapToolResponseEnvelope(parsed, depth + 1);
104
- }
105
- if (Array.isArray(toolResponse)) {
106
- const textBlock = toolResponse.find((block) => {
107
- const rec = inputRecord(block);
108
- return rec !== null && rec["type"] === "text" && typeof rec["text"] === "string";
109
- });
110
- const text = inputRecord(textBlock)?.["text"];
111
- return typeof text === "string" ? unwrapToolResponseEnvelope(text, depth + 1) : null;
112
- }
113
- const record = inputRecord(toolResponse);
114
- if (record === null)
115
- return null;
116
- if (Array.isArray(record["content"])) {
117
- return unwrapToolResponseEnvelope(record["content"], depth + 1);
118
- }
119
- return record;
120
- }
121
- /**
122
- * Read the resulting status off a task_finish tool RESULT (not the
123
- * request), unwrapping whichever transport shape it arrived in (see
124
- * `unwrapToolResponseEnvelope`). Returns `null` when the result is
125
- * absent, malformed, or carries no string status, so a caller can tell
126
- * "the task landed on a known non-review status" apart from "we could
127
- * not tell" (task c86e3c4a).
128
- */
129
- export function taskFinishResultingStatus(toolResponse) {
130
- const task = unwrapToolResponseEnvelope(toolResponse)?.["task"];
131
- const status = inputRecord(task)?.["status"];
132
- return typeof status === "string" && status.length > 0 ? status : null;
133
- }
134
- /**
135
- * Read the acted-on task id off a task_finish (or any agent-tasks) tool
136
- * RESULT, unwrapping the same shapes as `taskFinishResultingStatus`.
137
- * Used as a fallback when the tool_input did not carry a `taskId` (task
138
- * c86e3c4a, id-equality guard on release verbs), and by the stay-in-scope
139
- * hook to read the created task id off a create verb's result, which never
140
- * carries a `taskId` input (task b5e65f5e).
141
- */
142
- export function taskIdFromToolResponse(toolResponse) {
143
- const task = unwrapToolResponseEnvelope(toolResponse)?.["task"];
144
- const id = inputRecord(task)?.["id"];
145
- return typeof id === "string" ? id : "";
146
- }
147
- /**
148
- * Diagnostic-only companion to `claimEffectForAgentTasksTool`: was a
149
- * task_finish's resulting status actually readable? This does NOT feed
150
- * back into the release/keep decision (that stays the classifier's
151
- * alone) -- it lets `hook-track-active-claim.ts` label its stderr line
152
- * so a silent fail-safe fallback release does not look identical to an
153
- * intentional `done` release in the operator's own trail (task
154
- * c86e3c4a).
155
- */
156
- export function taskFinishReleaseIsUnreadable(toolResponse) {
157
- return taskFinishResultingStatus(toolResponse) === null;
158
- }
159
- /**
160
- * Coarse shape label for a tool_response, for the same stderr diagnostic
161
- * above -- never used to decide anything, only to name what shape a
162
- * fail-safe release fell back from.
163
- */
164
- export function describeToolResponseShape(toolResponse) {
165
- if (toolResponse === undefined || toolResponse === null)
166
- return "absent";
167
- if (Array.isArray(toolResponse))
168
- return "array";
169
- if (typeof toolResponse === "string")
170
- return "string";
171
- return "object";
172
- }
173
- export function agentTasksToolName(verb) {
174
- return `${AGENT_TASKS_MCP_PREFIX}${verb}`;
175
- }
176
- /** Alias-aware for runtime events, including mcp__server.verb variants. */
177
- export function matchesAgentTasksRuntimeVerb(toolName, verbs) {
178
- const expected = new Set(verbs.map(agentTasksToolName));
179
- return expandToolNameAliases(toolName).some((alias) => expected.has(alias));
180
- }
181
- /** Strict canonical parsing for Solution Acceptance's deliberately narrow gate. */
182
- export function canonicalAgentTasksVerb(toolName, verbs) {
183
- if (!toolName.startsWith(AGENT_TASKS_MCP_PREFIX))
184
- return null;
185
- const verb = toolName.slice(AGENT_TASKS_MCP_PREFIX.length);
186
- return verbs.includes(verb) ? verb : null;
187
- }
188
- /**
189
- * Claim lifecycle is separate from approval boundaries: only a completed
190
- * legacy transition releases a claim, while abandon and merge always do.
191
- *
192
- * task_finish is decided from the RESULT, not the verb (task c86e3c4a):
193
- * agent-tasks's own v2 semantics clear the work claim going to `done`
194
- * and keep it going to `review`, so `toolResponse` (the tool RESULT
195
- * envelope, optional third parameter -- the caller's PostToolUse event
196
- * carries this alongside `tool_input`) is read via
197
- * `taskFinishResultingStatus`. A resulting status of `review` returns
198
- * `none` (keep); `done`, any other resolvable status, and an
199
- * unresolvable result (no `toolResponse`, or a malformed one) all
200
- * return `release`.
201
- *
202
- * Fail-safe rationale (task c86e3c4a -- corrected from an earlier
203
- * wording of this comment that was wrong about what the marker feeds):
204
- * the active-claim file
205
- * this classifier feeds is read by the FAIL-CLOSED completion gate
206
- * (`src/cli/pack/hook-solution-acceptance.ts`'s `readActiveClaim` call)
207
- * to derive the verdict id it gates `task_finish` / `task_submit_pr` /
208
- * `task_merge` / `pull_requests_merge` / `git push` on. Release-on-
209
- * unreadable is chosen because a KEPT marker for a task that actually
210
- * finished would fail OPEN: until the next `task_start` overwrites it,
211
- * post-done completion-gated actions (git push, task_merge, PR merge)
212
- * would pass on that finished task's already-accepted verdict, and the
213
- * marker would override SOLUTION_VERDICT_ID. Releasing fails CLOSED
214
- * instead, at the cost of a possible wedge (the gate refuses with "no
215
- * active-claim task id recorded" until a fresh `task_start` or an
216
- * operator clears the file). It is not costless, and it is not merely
217
- * giving up an "ergonomic shortcut".
218
- *
219
- * This is the ONE place that decision is made: callers (e.g.
220
- * `hook-track-active-claim.ts`) do not re-derive it locally.
221
- */
222
- export function claimEffectForAgentTasksTool(toolName, input, toolResponse) {
223
- if (matchesAgentTasksRuntimeVerb(toolName, ["task_start"]))
224
- return "acquire";
225
- if (matchesAgentTasksRuntimeVerb(toolName, ["task_finish"])) {
226
- return taskFinishResultingStatus(toolResponse) === "review" ? "none" : "release";
227
- }
228
- if (matchesAgentTasksRuntimeVerb(toolName, ["task_abandon", "task_merge"])) {
229
- return "release";
230
- }
231
- if (matchesAgentTasksRuntimeVerb(toolName, ["tasks_transition"]) &&
232
- tasksTransitionReleasesClaim(input)) {
233
- return "release";
234
- }
235
- return "none";
236
- }
237
- export function resolveProtectedCompletionTools(config) {
238
- if (Array.isArray(config) &&
239
- config.length > 0 &&
240
- config.every((verb) => typeof verb === "string" && verb.length > 0)) {
241
- return config;
242
- }
243
- return [...DEFAULT_PROTECTED_COMPLETION_TOOLS];
244
- }
245
- //# sourceMappingURL=agent-tasks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-tasks.js","sourceRoot":"","sources":["../../../src/runtime/task-providers/agent-tasks.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import type { PolicyWhen } from "../schema/index.js";
2
- import type { DeletionTargetVerdict } from "./deletion-target-resolve.js";
3
- import type { EnvironmentResolution } from "./environment-resolver.js";
4
- import type { RiskProfile } from "./risk-classifier.js";
5
- /**
6
- * The severity NAME the unclassified fallback is treated as, for
7
- * surfaces that have to say it out loud (`intercept.ts`'s deny
8
- * envelope). Exported so no caller hard-codes "high" beside a constant
9
- * that is derived.
10
- */
11
- export declare const UNCLASSIFIED_FALLBACK_SEVERITY: string;
12
- /** The enriched-envelope inputs a `when:` block is evaluated against. */
13
- export interface WhenContext {
14
- risk: RiskProfile;
15
- environment: EnvironmentResolution;
16
- /**
17
- * Static deletion-target verdict for this action (task d03af8f6), or
18
- * `null`/omitted when the command was not recognized as a deletion
19
- * verb at all — see `deletion-target-resolve.ts`. Optional so every
20
- * caller/fixture that predates this arm keeps compiling and behaving
21
- * exactly as before (treated the same as `null`).
22
- */
23
- deletionTarget?: DeletionTargetVerdict | null;
24
- }
25
- /** The five `when:` clause keys, exactly as they appear in the manifest. */
26
- export type WhenClauseKey = "risk.severity_at_least" | "risk.category_in" | "environment.name" | "action.reversible" | "action.deletion_target_unresolvable";
27
- /** One declared clause's verdict, carried for explainability. */
28
- export interface WhenClauseResult {
29
- clause: WhenClauseKey;
30
- /** Human-readable expected value, as written in the manifest. */
31
- expected: string;
32
- /** Human-readable observed value, from the enriched envelope. */
33
- actual: string;
34
- matched: boolean;
35
- }
36
- export interface WhenEvaluation {
37
- /** AND of every declared clause. A `when:` with no clauses cannot be
38
- * constructed (the schema rejects `when: {}`), so an evaluated
39
- * `when:` always has at least one clause. */
40
- matched: boolean;
41
- /** One entry per DECLARED clause, in manifest-key order. */
42
- clauses: WhenClauseResult[];
43
- /** True when at least one clause's outcome was decided by the
44
- * unclassified fallback rather than a real classification ("unknown
45
- * is not safe" for `risk.category_in` / `action.reversible`, or the
46
- * "treated as high" rung for `risk.severity_at_least`) — true
47
- * whether that fallback made the clause match or fail. Surfaced so
48
- * `explain-policy` can tell an operator a clause outcome was
49
- * fail-closed, not a real hit. */
50
- unclassifiedFallback: boolean;
51
- }
52
- /**
53
- * Evaluate a policy's `when:` block against the enriched envelope.
54
- *
55
- * Every clause is optional; only declared clauses are evaluated, and
56
- * `matched` is their AND. An unclassified risk profile (`classified:
57
- * false`) satisfies `risk.category_in` / `action.reversible` by the
58
- * "unknown is not safe" rule, and satisfies `risk.severity_at_least`
59
- * up through `high` but never `critical` (see the module header);
60
- * `environment.name` is always a plain equality test.
61
- */
62
- export declare function evaluateWhen(when: PolicyWhen, ctx: WhenContext): WhenEvaluation;
@@ -1,212 +0,0 @@
1
- // Phase 7 #5 — `policy.when:` evaluator.
2
- //
3
- // A policy's `trigger:` decides WHICH tool calls it inspects; its
4
- // optional `when:` block decides whether — given the enriched Action
5
- // Envelope — the policy actually applies to this particular call. The
6
- // runtime ANDs the two: a policy fires only when `trigger:` AND every
7
- // declared `when:` clause hold.
8
- //
9
- // Pure: the risk profile (#3) + environment resolution (#4) come in, a
10
- // match verdict with a per-clause breakdown comes out, no I/O. The
11
- // breakdown is what `harness explain-policy` renders.
12
- //
13
- // "Unknown is not safe" — the load-bearing decision in this module.
14
- // The Risk Classifier emits `severity: null` / `reversible: null` /
15
- // `categories: []` for an action no pattern matched (`classified:
16
- // false`). A null does not silently fail to satisfy a clause: an
17
- // UNCLASSIFIED action satisfies every `risk.category_in` /
18
- // `action.reversible` clause, so a risk-gating policy treats "we could
19
- // not classify this" as risk-bearing rather than letting it slip the
20
- // gate. A *classified* action is compared on its real values.
21
- // `environment.name` needs no such rule: the resolver always returns a
22
- // concrete environment, with `unknown` as the matchable no-resolver-
23
- // fired case.
24
- //
25
- // `risk.severity_at_least` is the ONE exception to a blanket "satisfies
26
- // every threshold". An unknown severity is risk-bearing: it still
27
- // satisfies `low`/`medium`/`high`, so an approval-required gate on an
28
- // unrecognized production command stays fail-closed, but it is not
29
- // itself proof of the WORST tier: an unclassified profile is treated as
30
- // sitting at the "high" rung, one below `critical`, for this one clause
31
- // only, so it never triggers a hard, agent-unoverridable block on its
32
- // own. A hard block deserves a real classification.
33
- //
34
- // The rule is deliberately paired with two things this module does NOT
35
- // do: (1) it does not touch `risk.category_in` / `action.reversible`,
36
- // which keep the full "satisfies everything" fallback; (2) it leans on
37
- // the Risk Classifier's built-in floors (`read-only-bash.ts`'s
38
- // read-only floors, `destructive-shell-floor.ts`'s mutating-head floor)
39
- // and the manifest's `risk.classifiers[]` to make the common cases
40
- // explicitly `low` or explicitly `high`/`critical`. The "treated as
41
- // high" rung is a safety net for the genuinely unenumerable case, not a
42
- // replacement for classification. There is no manifest opt-in to restore
43
- // the blanket behavior. Rationale, the incident that motivated it, and
44
- // the disclosed residual gaps: docs/risk-gate.md, "Unclassified actions
45
- // and the fail-close rule"; the measurement is in the CHANGELOG entry
46
- // for agent-tasks task 2929c5b7.
47
- //
48
- // Design source: lava-ice-logs/2026-04-30/harness-risk-gate-extension.md
49
- // (design phase D); the null-handling steer is the Phase 7 #3 review
50
- // note on agent-tasks task harness-phase-7-5.
51
- import { RiskSeveritySchema } from "../schema/index.js";
52
- // Ordered severity scale; an index is the comparison key for
53
- // `severity_at_least`. Sourced from the schema enum so a reordering
54
- // there flows through unchanged — same pattern as the Risk Classifier.
55
- const SEVERITY_ORDER = RiskSeveritySchema.options;
56
- // The rung an UNCLASSIFIED action is treated as sitting at for
57
- // `risk.severity_at_least` comparisons only (see the module header):
58
- // one below the top of `SEVERITY_ORDER` ("critical"), i.e. "high" on
59
- // the shipped four-value scale. Derived from the scale's length rather
60
- // than a literal "high" so a future scale reordering/extension still
61
- // lands one rung below the top without a second hand-edit.
62
- //
63
- // That derivation has a precondition the schema must keep satisfying: a
64
- // scale with fewer than two rungs has no "one below the top". Asserted
65
- // at module load rather than left implicit, because a silently negative
66
- // index would make EVERY threshold comparison fail and quietly disable
67
- // the fail-close for unclassified actions.
68
- if (SEVERITY_ORDER.length < 2) {
69
- throw new Error(`when-eval: the severity scale must have at least two rungs for the ` +
70
- `unclassified fallback to sit one below the top (got ${SEVERITY_ORDER.length})`);
71
- }
72
- const UNCLASSIFIED_FALLBACK_SEVERITY_INDEX = SEVERITY_ORDER.length - 2;
73
- /**
74
- * The severity NAME the unclassified fallback is treated as, for
75
- * surfaces that have to say it out loud (`intercept.ts`'s deny
76
- * envelope). Exported so no caller hard-codes "high" beside a constant
77
- * that is derived.
78
- */
79
- export const UNCLASSIFIED_FALLBACK_SEVERITY = SEVERITY_ORDER[UNCLASSIFIED_FALLBACK_SEVERITY_INDEX];
80
- function severityIndex(severity) {
81
- return SEVERITY_ORDER.indexOf(severity);
82
- }
83
- /**
84
- * Evaluate a policy's `when:` block against the enriched envelope.
85
- *
86
- * Every clause is optional; only declared clauses are evaluated, and
87
- * `matched` is their AND. An unclassified risk profile (`classified:
88
- * false`) satisfies `risk.category_in` / `action.reversible` by the
89
- * "unknown is not safe" rule, and satisfies `risk.severity_at_least`
90
- * up through `high` but never `critical` (see the module header);
91
- * `environment.name` is always a plain equality test.
92
- */
93
- export function evaluateWhen(when, ctx) {
94
- const clauses = [];
95
- let unclassifiedFallback = false;
96
- const unclassified = !ctx.risk.classified;
97
- const sevAtLeast = when["risk.severity_at_least"];
98
- if (sevAtLeast !== undefined) {
99
- let matched;
100
- let actual;
101
- if (unclassified) {
102
- // severity is null — treated as risk-bearing at the "high" rung
103
- // (SEVERITY_ORDER.length - 2), not at "critical": satisfies
104
- // low/medium/high thresholds, but never critical on its own. See
105
- // the module header for why (task 2929c5b7).
106
- matched = UNCLASSIFIED_FALLBACK_SEVERITY_INDEX >= severityIndex(sevAtLeast);
107
- actual = "null (unclassified, treated as high)";
108
- unclassifiedFallback = true;
109
- }
110
- else {
111
- matched =
112
- severityIndex(ctx.risk.severity) >= severityIndex(sevAtLeast);
113
- actual = ctx.risk.severity;
114
- }
115
- clauses.push({
116
- clause: "risk.severity_at_least",
117
- expected: `>= ${sevAtLeast}`,
118
- actual,
119
- matched,
120
- });
121
- }
122
- const categoryIn = when["risk.category_in"];
123
- if (categoryIn !== undefined) {
124
- let matched;
125
- let actual;
126
- if (unclassified) {
127
- // categories is [] — treat as risk-bearing, consistent with the
128
- // severity clause: an unclassified action satisfies every risk
129
- // clause so a multi-clause `when:` cannot be slipped by one
130
- // clause matching null while another fails an empty set.
131
- matched = true;
132
- actual = "[] (unclassified)";
133
- unclassifiedFallback = true;
134
- }
135
- else {
136
- matched = categoryIn.some((c) => ctx.risk.categories.includes(c));
137
- actual =
138
- ctx.risk.categories.length > 0
139
- ? `[${ctx.risk.categories.join(", ")}]`
140
- : "[]";
141
- }
142
- clauses.push({
143
- clause: "risk.category_in",
144
- expected: `any of [${categoryIn.join(", ")}]`,
145
- actual,
146
- matched,
147
- });
148
- }
149
- const envName = when["environment.name"];
150
- if (envName !== undefined) {
151
- clauses.push({
152
- clause: "environment.name",
153
- expected: envName,
154
- actual: ctx.environment.name,
155
- matched: ctx.environment.name === envName,
156
- });
157
- }
158
- const reversible = when["action.reversible"];
159
- if (reversible !== undefined) {
160
- let matched;
161
- let actual;
162
- if (unclassified) {
163
- // reversible is null — reversibility unknown. "Unknown is not
164
- // safe": the clause matches whichever value the policy gates on,
165
- // so an unclassified action never escapes a reversibility gate.
166
- matched = true;
167
- actual = "null (unclassified)";
168
- unclassifiedFallback = true;
169
- }
170
- else {
171
- matched = ctx.risk.reversible === reversible;
172
- actual = String(ctx.risk.reversible);
173
- }
174
- clauses.push({
175
- clause: "action.reversible",
176
- expected: String(reversible),
177
- actual,
178
- matched,
179
- });
180
- }
181
- // `action.deletion_target_unresolvable` (task d03af8f6) is deliberately
182
- // NOT wired through the `unclassified` fail-close path above: it reads
183
- // an entirely separate signal (`ctx.deletionTarget`, from
184
- // `deletion-target-resolve.ts`), not the Risk Classifier's
185
- // `classified`/`severity`/`categories` triad. An action the deletion
186
- // resolver does not recognize as a deletion verb (`deletionTarget ===
187
- // null`) simply does not satisfy `true` here — it never falls back to
188
- // matched=true the way the four clauses above do for an unclassified
189
- // risk profile. This is what lets a policy gate purely on this clause,
190
- // environment-independently, without becoming a blanket gate on every
191
- // unrelated unclassified Bash call (see this module's header and
192
- // docs/risk-gate.md).
193
- const deletionUnresolvable = when["action.deletion_target_unresolvable"];
194
- if (deletionUnresolvable !== undefined) {
195
- const verdict = ctx.deletionTarget ?? null;
196
- const actualUnresolvable = verdict?.unresolvable ?? false;
197
- clauses.push({
198
- clause: "action.deletion_target_unresolvable",
199
- expected: String(deletionUnresolvable),
200
- actual: verdict === null
201
- ? "false (not a recognized deletion-verb command)"
202
- : String(actualUnresolvable),
203
- matched: actualUnresolvable === deletionUnresolvable,
204
- });
205
- }
206
- return {
207
- matched: clauses.every((c) => c.matched),
208
- clauses,
209
- unclassifiedFallback,
210
- };
211
- }
212
- //# sourceMappingURL=when-eval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when-eval.js","sourceRoot":"","sources":["../../src/runtime/when-eval.ts"],"names":[],"mappings":"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"}