@lannguyensi/harness 0.64.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 (710) hide show
  1. package/CHANGELOG.md +64 -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 -345
  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 -713
  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 -387
  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 +9 -2131
  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 -245
  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/{delegate/register.d.ts → register-gate-group.d.ts} +1 -1
  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 +1 -1
  145. package/dist/cli/register-operator-lifecycle.js +3 -100
  146. package/dist/cli/register-operator-lifecycle.js.map +1 -1
  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-audit-group.d.ts → register-setup-group.d.ts} +1 -1
  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.js +2 -19
  160. package/dist/cli/remove/register.js.map +1 -1
  161. package/dist/cli/shell-quote.d.ts +7 -0
  162. package/dist/cli/shell-quote.js +17 -0
  163. package/dist/cli/shell-quote.js.map +1 -0
  164. package/dist/cli/uninstall/index.d.ts +4 -2
  165. package/dist/cli/uninstall/index.js +15 -7
  166. package/dist/cli/uninstall/index.js.map +1 -1
  167. package/dist/cli/uninstall/register.js +6 -4
  168. package/dist/cli/uninstall/register.js.map +1 -1
  169. package/dist/cli/uninstall/snapshot.d.ts +15 -0
  170. package/dist/cli/uninstall/snapshot.js +38 -0
  171. package/dist/cli/uninstall/snapshot.js.map +1 -1
  172. package/dist/cli/validate/checks.d.ts +0 -77
  173. package/dist/cli/validate/checks.js +3 -1049
  174. package/dist/cli/validate/checks.js.map +1 -1
  175. package/dist/cli/validate/index.js +19 -15
  176. package/dist/cli/validate/index.js.map +1 -1
  177. package/dist/index.d.ts +0 -3
  178. package/dist/index.js +0 -3
  179. package/dist/index.js.map +1 -1
  180. package/dist/io/claude-mcp.d.ts +1 -1
  181. package/dist/io/claude-mcp.js +27 -14
  182. package/dist/io/claude-mcp.js.map +1 -1
  183. package/dist/io/harness-lock.js +2 -2
  184. package/dist/io/harness-lock.js.map +1 -1
  185. package/dist/io/lock.d.ts +0 -26
  186. package/dist/io/lock.js +10 -27
  187. package/dist/io/lock.js.map +1 -1
  188. package/dist/io/merge-settings.js +6 -4
  189. package/dist/io/merge-settings.js.map +1 -1
  190. package/dist/io/project-name.d.ts +22 -39
  191. package/dist/io/project-name.js +25 -42
  192. package/dist/io/project-name.js.map +1 -1
  193. package/dist/io/read-regular-file.d.ts +103 -40
  194. package/dist/io/read-regular-file.js +196 -35
  195. package/dist/io/read-regular-file.js.map +1 -1
  196. package/dist/io/restart-hints.js +3 -6
  197. package/dist/io/restart-hints.js.map +1 -1
  198. package/dist/io/version-compare.d.ts +1 -3
  199. package/dist/io/version-compare.js +1 -3
  200. package/dist/io/version-compare.js.map +1 -1
  201. package/dist/io/write-regular-file.d.ts +30 -0
  202. package/dist/io/write-regular-file.js +85 -0
  203. package/dist/io/write-regular-file.js.map +1 -0
  204. package/dist/overrides/index.d.ts +1 -0
  205. package/dist/overrides/index.js +1 -0
  206. package/dist/overrides/index.js.map +1 -1
  207. package/dist/overrides/merge-layers.d.ts +43 -0
  208. package/dist/overrides/merge-layers.js +76 -0
  209. package/dist/overrides/merge-layers.js.map +1 -0
  210. package/dist/overrides/merge.d.ts +16 -0
  211. package/dist/overrides/merge.js +21 -8
  212. package/dist/overrides/merge.js.map +1 -1
  213. package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
  214. package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
  215. package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
  216. package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
  217. package/dist/policy-packs/builtin/branch-protection.js +56 -89
  218. package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
  219. package/dist/policy-packs/config-check.d.ts +7 -5
  220. package/dist/policy-packs/config-check.js +2 -2
  221. package/dist/policy-packs/config-check.js.map +1 -1
  222. package/dist/policy-packs/expand.d.ts +1 -3
  223. package/dist/policy-packs/expand.js +5 -42
  224. package/dist/policy-packs/expand.js.map +1 -1
  225. package/dist/policy-packs/index.d.ts +3 -3
  226. package/dist/policy-packs/index.js +2 -2
  227. package/dist/policy-packs/index.js.map +1 -1
  228. package/dist/policy-packs/registry.d.ts +9 -38
  229. package/dist/policy-packs/registry.js +5 -65
  230. package/dist/policy-packs/registry.js.map +1 -1
  231. package/dist/policy-packs/runtime.d.ts +0 -4
  232. package/dist/policy-packs/runtime.js +9 -22
  233. package/dist/policy-packs/runtime.js.map +1 -1
  234. package/dist/policy-packs/types.d.ts +0 -19
  235. package/dist/policy-packs/ux-compare.d.ts +1 -11
  236. package/dist/policy-packs/ux-compare.js +6 -42
  237. package/dist/policy-packs/ux-compare.js.map +1 -1
  238. package/dist/policy-packs/ux-drift-check.d.ts +5 -5
  239. package/dist/policy-packs/ux-drift-check.js +17 -22
  240. package/dist/policy-packs/ux-drift-check.js.map +1 -1
  241. package/dist/policy-packs/version-check.d.ts +5 -26
  242. package/dist/policy-packs/version-check.js +19 -74
  243. package/dist/policy-packs/version-check.js.map +1 -1
  244. package/dist/probes/memory.d.ts +1 -1
  245. package/dist/probes/memory.js +1 -1
  246. package/dist/probes/memory.js.map +1 -1
  247. package/dist/runtime/agent-facing.d.ts +9 -0
  248. package/dist/runtime/agent-facing.js +28 -14
  249. package/dist/runtime/agent-facing.js.map +1 -1
  250. package/dist/runtime/bounded-text.d.ts +15 -0
  251. package/dist/runtime/bounded-text.js +27 -0
  252. package/dist/runtime/bounded-text.js.map +1 -0
  253. package/dist/runtime/git-branch.d.ts +125 -0
  254. package/dist/runtime/git-branch.js +381 -0
  255. package/dist/runtime/git-branch.js.map +1 -0
  256. package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
  257. package/dist/runtime/hermetic-spawn-guard.js +24 -34
  258. package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
  259. package/dist/runtime/home-dir.js +3 -2
  260. package/dist/runtime/home-dir.js.map +1 -1
  261. package/dist/runtime/tool-name-aliases.d.ts +0 -6
  262. package/dist/runtime/tool-name-aliases.js +5 -18
  263. package/dist/runtime/tool-name-aliases.js.map +1 -1
  264. package/dist/schema/grounding.d.ts +7 -54
  265. package/dist/schema/grounding.js +10 -12
  266. package/dist/schema/grounding.js.map +1 -1
  267. package/dist/schema/hooks.d.ts +39 -136
  268. package/dist/schema/hooks.js +3 -6
  269. package/dist/schema/hooks.js.map +1 -1
  270. package/dist/schema/index.d.ts +114 -3828
  271. package/dist/schema/index.js +41 -80
  272. package/dist/schema/index.js.map +1 -1
  273. package/dist/schema/memory.d.ts +54 -131
  274. package/dist/schema/memory.js +2 -2
  275. package/dist/schema/memory.js.map +1 -1
  276. package/dist/schema/policy-packs.d.ts +3 -45
  277. package/dist/schema/policy-packs.js +7 -13
  278. package/dist/schema/policy-packs.js.map +1 -1
  279. package/dist/schema/policy-ux.d.ts +7 -0
  280. package/dist/schema/policy-ux.js +18 -0
  281. package/dist/schema/policy-ux.js.map +1 -0
  282. package/dist/schema/removed-keys.d.ts +185 -0
  283. package/dist/schema/removed-keys.js +531 -0
  284. package/dist/schema/removed-keys.js.map +1 -0
  285. package/dist/schema/tools.d.ts +30 -268
  286. package/dist/schema/tools.js +4 -4
  287. package/dist/schema/tools.js.map +1 -1
  288. package/package.json +5 -16
  289. package/dist/cli/approve/branch-protection.d.ts +0 -69
  290. package/dist/cli/approve/branch-protection.js +0 -144
  291. package/dist/cli/approve/branch-protection.js.map +0 -1
  292. package/dist/cli/approve/risk.d.ts +0 -112
  293. package/dist/cli/approve/risk.js +0 -197
  294. package/dist/cli/approve/risk.js.map +0 -1
  295. package/dist/cli/approve/stdin-report.d.ts +0 -57
  296. package/dist/cli/approve/stdin-report.js +0 -145
  297. package/dist/cli/approve/stdin-report.js.map +0 -1
  298. package/dist/cli/approve/understanding.d.ts +0 -410
  299. package/dist/cli/approve/understanding.js +0 -996
  300. package/dist/cli/approve/understanding.js.map +0 -1
  301. package/dist/cli/audit.d.ts +0 -80
  302. package/dist/cli/audit.js +0 -252
  303. package/dist/cli/audit.js.map +0 -1
  304. package/dist/cli/delegate/index.d.ts +0 -76
  305. package/dist/cli/delegate/index.js +0 -444
  306. package/dist/cli/delegate/index.js.map +0 -1
  307. package/dist/cli/delegate/register.js +0 -90
  308. package/dist/cli/delegate/register.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/expire-on-tool-match.d.ts +0 -15
  319. package/dist/cli/doctor/expire-on-tool-match.js +0 -58
  320. package/dist/cli/doctor/expire-on-tool-match.js.map +0 -1
  321. package/dist/cli/doctor/rogue-ledger.d.ts +0 -53
  322. package/dist/cli/doctor/rogue-ledger.js +0 -153
  323. package/dist/cli/doctor/rogue-ledger.js.map +0 -1
  324. package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
  325. package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
  326. package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
  327. package/dist/cli/doctor/settings-drift.d.ts +0 -25
  328. package/dist/cli/doctor/settings-drift.js +0 -213
  329. package/dist/cli/doctor/settings-drift.js.map +0 -1
  330. package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
  331. package/dist/cli/doctor/toolchain-parity.js +0 -154
  332. package/dist/cli/doctor/toolchain-parity.js.map +0 -1
  333. package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
  334. package/dist/cli/doctor/ug-auto-approvals.js +0 -91
  335. package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
  336. package/dist/cli/doctor/ug-delegations.d.ts +0 -26
  337. package/dist/cli/doctor/ug-delegations.js +0 -121
  338. package/dist/cli/doctor/ug-delegations.js.map +0 -1
  339. package/dist/cli/doctor/ug-inflight.d.ts +0 -35
  340. package/dist/cli/doctor/ug-inflight.js +0 -57
  341. package/dist/cli/doctor/ug-inflight.js.map +0 -1
  342. package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
  343. package/dist/cli/doctor/understanding-mode-env.js +0 -98
  344. package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
  345. package/dist/cli/dry-run.d.ts +0 -58
  346. package/dist/cli/dry-run.js +0 -283
  347. package/dist/cli/dry-run.js.map +0 -1
  348. package/dist/cli/enriched-event.d.ts +0 -35
  349. package/dist/cli/enriched-event.js +0 -60
  350. package/dist/cli/enriched-event.js.map +0 -1
  351. package/dist/cli/event-input.d.ts +0 -28
  352. package/dist/cli/event-input.js +0 -73
  353. package/dist/cli/event-input.js.map +0 -1
  354. package/dist/cli/explain-action.d.ts +0 -25
  355. package/dist/cli/explain-action.js +0 -57
  356. package/dist/cli/explain-action.js.map +0 -1
  357. package/dist/cli/explain-policy.d.ts +0 -147
  358. package/dist/cli/explain-policy.js +0 -248
  359. package/dist/cli/explain-policy.js.map +0 -1
  360. package/dist/cli/explain.d.ts +0 -31
  361. package/dist/cli/explain.js +0 -159
  362. package/dist/cli/explain.js.map +0 -1
  363. package/dist/cli/gc/index.d.ts +0 -63
  364. package/dist/cli/gc/index.js +0 -566
  365. package/dist/cli/gc/index.js.map +0 -1
  366. package/dist/cli/pack/approve-escape.d.ts +0 -19
  367. package/dist/cli/pack/approve-escape.js +0 -190
  368. package/dist/cli/pack/approve-escape.js.map +0 -1
  369. package/dist/cli/pack/auto-approve-path.d.ts +0 -146
  370. package/dist/cli/pack/auto-approve-path.js +0 -462
  371. package/dist/cli/pack/auto-approve-path.js.map +0 -1
  372. package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
  373. package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
  374. package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
  375. package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
  376. package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
  377. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
  378. package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
  379. package/dist/cli/pack/hook-codex-stop.js +0 -329
  380. package/dist/cli/pack/hook-codex-stop.js.map +0 -1
  381. package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
  382. package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
  383. package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
  384. package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
  385. package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
  386. package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
  387. package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
  388. package/dist/cli/pack/hook-post-merge-gate.js +0 -277
  389. package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
  390. package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
  391. package/dist/cli/pack/hook-post-tool-use.js +0 -137
  392. package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
  393. package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
  394. package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
  395. package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
  396. package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
  397. package/dist/cli/pack/hook-runtime-reality.js +0 -210
  398. package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
  399. package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
  400. package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -438
  401. package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
  402. package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
  403. package/dist/cli/pack/hook-solution-acceptance.js +0 -530
  404. package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
  405. package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
  406. package/dist/cli/pack/hook-stay-in-scope.js +0 -128
  407. package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
  408. package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
  409. package/dist/cli/pack/hook-subagent-start.js +0 -88
  410. package/dist/cli/pack/hook-subagent-start.js.map +0 -1
  411. package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
  412. package/dist/cli/pack/hook-subagent-stop.js +0 -41
  413. package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
  414. package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
  415. package/dist/cli/pack/hook-track-active-claim.js +0 -275
  416. package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
  417. package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
  418. package/dist/cli/pack/transcript-report-scan.js +0 -359
  419. package/dist/cli/pack/transcript-report-scan.js.map +0 -1
  420. package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
  421. package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
  422. package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
  423. package/dist/cli/pack/upgrade.d.ts +0 -32
  424. package/dist/cli/pack/upgrade.js +0 -273
  425. package/dist/cli/pack/upgrade.js.map +0 -1
  426. package/dist/cli/pause/index.d.ts +0 -113
  427. package/dist/cli/pause/index.js +0 -251
  428. package/dist/cli/pause/index.js.map +0 -1
  429. package/dist/cli/pause-check.d.ts +0 -22
  430. package/dist/cli/pause-check.js +0 -54
  431. package/dist/cli/pause-check.js.map +0 -1
  432. package/dist/cli/policy/intercept.d.ts +0 -233
  433. package/dist/cli/policy/intercept.js +0 -1022
  434. package/dist/cli/policy/intercept.js.map +0 -1
  435. package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
  436. package/dist/cli/policy/risk-envelope-enrichment.js +0 -110
  437. package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
  438. package/dist/cli/record/index.d.ts +0 -81
  439. package/dist/cli/record/index.js +0 -348
  440. package/dist/cli/record/index.js.map +0 -1
  441. package/dist/cli/register-audit-group.js +0 -91
  442. package/dist/cli/register-audit-group.js.map +0 -1
  443. package/dist/cli/resolve-env.d.ts +0 -32
  444. package/dist/cli/resolve-env.js +0 -46
  445. package/dist/cli/resolve-env.js.map +0 -1
  446. package/dist/cli/session-export/index.d.ts +0 -46
  447. package/dist/cli/session-export/index.js +0 -169
  448. package/dist/cli/session-export/index.js.map +0 -1
  449. package/dist/cli/session-export/redact.d.ts +0 -22
  450. package/dist/cli/session-export/redact.js +0 -47
  451. package/dist/cli/session-export/redact.js.map +0 -1
  452. package/dist/cli/session-export/transcript.d.ts +0 -24
  453. package/dist/cli/session-export/transcript.js +0 -164
  454. package/dist/cli/session-export/transcript.js.map +0 -1
  455. package/dist/cli/session-start/branch-check.d.ts +0 -18
  456. package/dist/cli/session-start/branch-check.js +0 -140
  457. package/dist/cli/session-start/branch-check.js.map +0 -1
  458. package/dist/cli/session-start/index.d.ts +0 -121
  459. package/dist/cli/session-start/index.js +0 -591
  460. package/dist/cli/session-start/index.js.map +0 -1
  461. package/dist/cli/session-start/shared-options.d.ts +0 -103
  462. package/dist/cli/session-start/shared-options.js +0 -107
  463. package/dist/cli/session-start/shared-options.js.map +0 -1
  464. package/dist/cli/session-start/stale-base-check.d.ts +0 -46
  465. package/dist/cli/session-start/stale-base-check.js +0 -352
  466. package/dist/cli/session-start/stale-base-check.js.map +0 -1
  467. package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
  468. package/dist/cli/session-start/toolchain-parity.js +0 -797
  469. package/dist/cli/session-start/toolchain-parity.js.map +0 -1
  470. package/dist/cli/smoke/assertions.d.ts +0 -46
  471. package/dist/cli/smoke/assertions.js +0 -170
  472. package/dist/cli/smoke/assertions.js.map +0 -1
  473. package/dist/cli/smoke/index.d.ts +0 -76
  474. package/dist/cli/smoke/index.js +0 -245
  475. package/dist/cli/smoke/index.js.map +0 -1
  476. package/dist/cli/smoke/runner.d.ts +0 -55
  477. package/dist/cli/smoke/runner.js +0 -134
  478. package/dist/cli/smoke/runner.js.map +0 -1
  479. package/dist/cli/smoke/stream-parser.d.ts +0 -65
  480. package/dist/cli/smoke/stream-parser.js +0 -115
  481. package/dist/cli/smoke/stream-parser.js.map +0 -1
  482. package/dist/cli/test-risk.d.ts +0 -27
  483. package/dist/cli/test-risk.js +0 -38
  484. package/dist/cli/test-risk.js.map +0 -1
  485. package/dist/io/display-path.d.ts +0 -11
  486. package/dist/io/display-path.js +0 -29
  487. package/dist/io/display-path.js.map +0 -1
  488. package/dist/io/duration.d.ts +0 -5
  489. package/dist/io/duration.js +0 -50
  490. package/dist/io/duration.js.map +0 -1
  491. package/dist/io/extract.d.ts +0 -79
  492. package/dist/io/extract.js +0 -226
  493. package/dist/io/extract.js.map +0 -1
  494. package/dist/io/ledger-record.d.ts +0 -83
  495. package/dist/io/ledger-record.js +0 -301
  496. package/dist/io/ledger-record.js.map +0 -1
  497. package/dist/io/read-json-dir-entries.d.ts +0 -36
  498. package/dist/io/read-json-dir-entries.js +0 -48
  499. package/dist/io/read-json-dir-entries.js.map +0 -1
  500. package/dist/io/safe-json-parse.d.ts +0 -5
  501. package/dist/io/safe-json-parse.js +0 -21
  502. package/dist/io/safe-json-parse.js.map +0 -1
  503. package/dist/policies/index.d.ts +0 -5
  504. package/dist/policies/index.js +0 -6
  505. package/dist/policies/index.js.map +0 -1
  506. package/dist/policies/ledger-client.d.ts +0 -113
  507. package/dist/policies/ledger-client.js +0 -500
  508. package/dist/policies/ledger-client.js.map +0 -1
  509. package/dist/policies/producers.d.ts +0 -12
  510. package/dist/policies/producers.js +0 -61
  511. package/dist/policies/producers.js.map +0 -1
  512. package/dist/policies/requires.d.ts +0 -75
  513. package/dist/policies/requires.js +0 -240
  514. package/dist/policies/requires.js.map +0 -1
  515. package/dist/policies/timestamp.d.ts +0 -14
  516. package/dist/policies/timestamp.js +0 -36
  517. package/dist/policies/timestamp.js.map +0 -1
  518. package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
  519. package/dist/policy-packs/builtin/permission-profiles.js +0 -74
  520. package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
  521. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
  522. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
  523. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
  524. package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
  525. package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
  526. package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
  527. package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
  528. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
  529. package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
  530. package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
  531. package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
  532. package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
  533. package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
  534. package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
  535. package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
  536. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
  537. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
  538. package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
  539. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
  540. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
  541. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
  542. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
  543. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
  544. package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
  545. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
  546. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
  547. package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
  548. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
  549. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
  550. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
  551. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
  552. package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
  553. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
  554. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
  555. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -643
  556. package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
  557. package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
  558. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
  559. package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
  560. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
  561. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -106
  562. package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
  563. package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
  564. package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
  565. package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
  566. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
  567. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
  568. package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
  569. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
  570. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
  571. package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
  572. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -625
  573. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1076
  574. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
  575. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
  576. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
  577. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
  578. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
  579. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
  580. package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
  581. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
  582. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
  583. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
  584. package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
  585. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
  586. package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
  587. package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
  588. package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1078
  589. package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
  590. package/dist/policy-packs/permission-translator.d.ts +0 -9
  591. package/dist/policy-packs/permission-translator.js +0 -76
  592. package/dist/policy-packs/permission-translator.js.map +0 -1
  593. package/dist/runtime/action-envelope.d.ts +0 -64
  594. package/dist/runtime/action-envelope.js +0 -46
  595. package/dist/runtime/action-envelope.js.map +0 -1
  596. package/dist/runtime/approval-signing.d.ts +0 -111
  597. package/dist/runtime/approval-signing.js +0 -384
  598. package/dist/runtime/approval-signing.js.map +0 -1
  599. package/dist/runtime/bash-match-facts.d.ts +0 -60
  600. package/dist/runtime/bash-match-facts.js +0 -196
  601. package/dist/runtime/bash-match-facts.js.map +0 -1
  602. package/dist/runtime/bash-match-registry.d.ts +0 -112
  603. package/dist/runtime/bash-match-registry.js +0 -406
  604. package/dist/runtime/bash-match-registry.js.map +0 -1
  605. package/dist/runtime/bash-prefix-parse.d.ts +0 -31
  606. package/dist/runtime/bash-prefix-parse.js +0 -576
  607. package/dist/runtime/bash-prefix-parse.js.map +0 -1
  608. package/dist/runtime/command-normalize.d.ts +0 -658
  609. package/dist/runtime/command-normalize.js +0 -2410
  610. package/dist/runtime/command-normalize.js.map +0 -1
  611. package/dist/runtime/deletion-target-resolve.d.ts +0 -28
  612. package/dist/runtime/deletion-target-resolve.js +0 -1078
  613. package/dist/runtime/deletion-target-resolve.js.map +0 -1
  614. package/dist/runtime/destructive-shell-floor.d.ts +0 -19
  615. package/dist/runtime/destructive-shell-floor.js +0 -611
  616. package/dist/runtime/destructive-shell-floor.js.map +0 -1
  617. package/dist/runtime/environment-resolver.d.ts +0 -36
  618. package/dist/runtime/environment-resolver.js +0 -138
  619. package/dist/runtime/environment-resolver.js.map +0 -1
  620. package/dist/runtime/git-context.d.ts +0 -201
  621. package/dist/runtime/git-context.js +0 -422
  622. package/dist/runtime/git-context.js.map +0 -1
  623. package/dist/runtime/index.d.ts +0 -12
  624. package/dist/runtime/index.js +0 -13
  625. package/dist/runtime/index.js.map +0 -1
  626. package/dist/runtime/intercept.d.ts +0 -623
  627. package/dist/runtime/intercept.js +0 -1384
  628. package/dist/runtime/intercept.js.map +0 -1
  629. package/dist/runtime/kube-context.d.ts +0 -16
  630. package/dist/runtime/kube-context.js +0 -63
  631. package/dist/runtime/kube-context.js.map +0 -1
  632. package/dist/runtime/kubectl-target-parse.d.ts +0 -31
  633. package/dist/runtime/kubectl-target-parse.js +0 -249
  634. package/dist/runtime/kubectl-target-parse.js.map +0 -1
  635. package/dist/runtime/ledger-add.d.ts +0 -16
  636. package/dist/runtime/ledger-add.js +0 -150
  637. package/dist/runtime/ledger-add.js.map +0 -1
  638. package/dist/runtime/ledger-writer.d.ts +0 -27
  639. package/dist/runtime/ledger-writer.js +0 -46
  640. package/dist/runtime/ledger-writer.js.map +0 -1
  641. package/dist/runtime/pause-sentinel.d.ts +0 -60
  642. package/dist/runtime/pause-sentinel.js +0 -156
  643. package/dist/runtime/pause-sentinel.js.map +0 -1
  644. package/dist/runtime/pending-approval.d.ts +0 -23
  645. package/dist/runtime/pending-approval.js +0 -67
  646. package/dist/runtime/pending-approval.js.map +0 -1
  647. package/dist/runtime/read-only-bash.d.ts +0 -141
  648. package/dist/runtime/read-only-bash.js +0 -2204
  649. package/dist/runtime/read-only-bash.js.map +0 -1
  650. package/dist/runtime/recovery-git-commit.d.ts +0 -22
  651. package/dist/runtime/recovery-git-commit.js +0 -284
  652. package/dist/runtime/recovery-git-commit.js.map +0 -1
  653. package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
  654. package/dist/runtime/reject-malformed-session-id.js +0 -16
  655. package/dist/runtime/reject-malformed-session-id.js.map +0 -1
  656. package/dist/runtime/risk-classifier.d.ts +0 -38
  657. package/dist/runtime/risk-classifier.js +0 -311
  658. package/dist/runtime/risk-classifier.js.map +0 -1
  659. package/dist/runtime/session-id.d.ts +0 -113
  660. package/dist/runtime/session-id.js +0 -193
  661. package/dist/runtime/session-id.js.map +0 -1
  662. package/dist/runtime/shell-word.d.ts +0 -62
  663. package/dist/runtime/shell-word.js +0 -410
  664. package/dist/runtime/shell-word.js.map +0 -1
  665. package/dist/runtime/task-providers/agent-tasks.d.ts +0 -105
  666. package/dist/runtime/task-providers/agent-tasks.js +0 -247
  667. package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
  668. package/dist/runtime/when-eval.d.ts +0 -62
  669. package/dist/runtime/when-eval.js +0 -212
  670. package/dist/runtime/when-eval.js.map +0 -1
  671. package/dist/runtime/workflow-policies.d.ts +0 -207
  672. package/dist/runtime/workflow-policies.js +0 -596
  673. package/dist/runtime/workflow-policies.js.map +0 -1
  674. package/dist/schema/audit.d.ts +0 -71
  675. package/dist/schema/audit.js +0 -32
  676. package/dist/schema/audit.js.map +0 -1
  677. package/dist/schema/doctor.d.ts +0 -25
  678. package/dist/schema/doctor.js +0 -23
  679. package/dist/schema/doctor.js.map +0 -1
  680. package/dist/schema/environments.d.ts +0 -215
  681. package/dist/schema/environments.js +0 -101
  682. package/dist/schema/environments.js.map +0 -1
  683. package/dist/schema/extract.d.ts +0 -9
  684. package/dist/schema/extract.js +0 -86
  685. package/dist/schema/extract.js.map +0 -1
  686. package/dist/schema/permission-profiles.d.ts +0 -2292
  687. package/dist/schema/permission-profiles.js +0 -60
  688. package/dist/schema/permission-profiles.js.map +0 -1
  689. package/dist/schema/policies.d.ts +0 -974
  690. package/dist/schema/policies.js +0 -298
  691. package/dist/schema/policies.js.map +0 -1
  692. package/dist/schema/requires.d.ts +0 -131
  693. package/dist/schema/requires.js +0 -88
  694. package/dist/schema/requires.js.map +0 -1
  695. package/dist/schema/risk.d.ts +0 -144
  696. package/dist/schema/risk.js +0 -194
  697. package/dist/schema/risk.js.map +0 -1
  698. package/dist/schema/session-start-preflight.d.ts +0 -10
  699. package/dist/schema/session-start-preflight.js +0 -106
  700. package/dist/schema/session-start-preflight.js.map +0 -1
  701. package/dist/schema/stale-base-check.d.ts +0 -18
  702. package/dist/schema/stale-base-check.js +0 -37
  703. package/dist/schema/stale-base-check.js.map +0 -1
  704. package/dist/schema/toolchain-parity.d.ts +0 -21
  705. package/dist/schema/toolchain-parity.js +0 -48
  706. package/dist/schema/toolchain-parity.js.map +0 -1
  707. package/dist/schema/workflows.d.ts +0 -519
  708. package/dist/schema/workflows.js +0 -81
  709. package/dist/schema/workflows.js.map +0 -1
  710. package/scripts/runtime-reality-docker-probe.mjs +0 -71
@@ -0,0 +1,531 @@
1
+ // Manifest posture for removed keys and removed packs: warn and ignore,
2
+ // never reject (task a4d8adc5).
3
+ //
4
+ // `ManifestSchema` is `.strict()`, so a key the schema no longer declares
5
+ // would fail the whole load. Every hook loads the manifest, and the
6
+ // branch-protection hook refuses every edit when the load fails, so a machine
7
+ // whose manifest still carries a key a newer release removed would lock
8
+ // itself out the moment the new release is installed. Instead the table below
9
+ // names every removed manifest path and every removed pack name; matching
10
+ // entries are stripped from the raw manifest before the strict parse and
11
+ // returned as warnings (`harness validate`, `harness doctor` and `harness
12
+ // apply` print them, `harness validate --strict` fails on them). A key that was
13
+ // never valid is not in the table and still fails the parse.
14
+ //
15
+ // An empty value (`[]`, `{}`, null) of a key marked `silentWhenEmpty` is
16
+ // stripped without a warning: a manifest written before the removal often
17
+ // carries an empty `policies: []`, and warning about a key that configures
18
+ // nothing would only make `harness validate --strict` fail on it. A non-empty
19
+ // value warns. A path may also name the exact shape an older release wrote by
20
+ // default (`silentWhen`): `harness export` serialised the parsed manifest, so
21
+ // every exported manifest carried `audit: { redact: [] }` and `doctor: {
22
+ // ignore_template_drift: [] }`, and those two shapes are stripped silently too.
23
+ //
24
+ // A removed per-hook field (REMOVED_HOOK_FIELDS below) is stripped from the
25
+ // hook, which stays: `hooks[].bash_match` and `hooks[].path_match` were never
26
+ // projected into settings.json or the Codex config (`generate-settings.ts` and
27
+ // `generate-codex-config.ts` documented them as script-side filters), so
28
+ // dropping the key does not change what the hook runs on, while dropping the
29
+ // hook would remove an operator's own script. There is one warning per hook.
30
+ //
31
+ // Removed manifest paths and removed per-hook fields are also stripped from
32
+ // the base and from every override layer BEFORE the layers are merged
33
+ // (`stripRemovedManifestPaths` and `stripRemovedHookFields`, used by
34
+ // `mergeLayersStrippingRemovedPaths` in src/overrides): the merge walks
35
+ // name-keyed lists and throws on a shape it cannot reconcile, and that throw
36
+ // happens before the strip of the merged manifest runs. A removed hook field
37
+ // can collide the same way (`bash_match` as a list of named objects in the
38
+ // base under a plain list in a layer), so its strip runs pre-merge too; the
39
+ // post-merge strip of `stripRemovedManifestEntries` stays as the safety net
40
+ // for callers that parse a single source without merging, where it finds
41
+ // nothing left and warns no second time.
42
+ //
43
+ // Removed CLI commands (REMOVED_COMMANDS below) are not stripped: a hook or
44
+ // pack config that still calls one parses fine, so `findRemovedCommandUses`
45
+ // reports each such site through the same warning channel.
46
+ export const REMOVED_MANIFEST_PATHS = [
47
+ {
48
+ path: "grounding.evidence_ledger.retention_days",
49
+ removedIn: "1.0.0",
50
+ reason: "reserved and never consumed: evidence-ledger implements no retention pruning",
51
+ },
52
+ {
53
+ path: "grounding.policies_source",
54
+ removedIn: "1.0.0",
55
+ reason: "reserved and never consumed: policies live in policy_packs[]",
56
+ },
57
+ {
58
+ path: "session_start_preflight",
59
+ removedIn: "1.0.0",
60
+ reason: "the session-start preflight producer is removed",
61
+ },
62
+ {
63
+ path: "toolchain_parity",
64
+ removedIn: "1.0.0",
65
+ reason: "the session-start toolchain-parity producer is removed",
66
+ },
67
+ {
68
+ path: "stale_base_check",
69
+ removedIn: "1.0.0",
70
+ reason: "the session-start stale-base-check producer is removed",
71
+ },
72
+ {
73
+ path: "permission_profiles",
74
+ removedIn: "1.0.0",
75
+ reason: "only the removed understanding-gate pack consumed permission profiles",
76
+ },
77
+ {
78
+ path: "risk",
79
+ removedIn: "1.0.0",
80
+ reason: "the Risk Gate is removed, so its classifier configuration has no consumer",
81
+ note: (stripped) => isPlainObject(stripped) && stripped["degraded_fail_posture"] === "fail_open"
82
+ ? "risk.degraded_fail_posture: fail_open is no longer honoured: manifest policies are no longer evaluated, so no policy fails open or closed on unreadable evidence"
83
+ : undefined,
84
+ },
85
+ {
86
+ path: "environments",
87
+ removedIn: "1.0.0",
88
+ reason: "the Risk Gate is removed, so environment resolution has no consumer",
89
+ },
90
+ {
91
+ path: "policies",
92
+ removedIn: "1.0.0",
93
+ reason: "the policy engine is removed, so manifest policies are no longer evaluated (the branch-protection pack in policy_packs[] is unaffected)",
94
+ silentWhenEmpty: true,
95
+ note: policiesNote,
96
+ },
97
+ {
98
+ path: "workflows",
99
+ removedIn: "1.0.0",
100
+ reason: "workflows[] only derived review-gate policies, and the policy engine is removed",
101
+ silentWhenEmpty: true,
102
+ note: () => "workflow-derived review gates are no longer enforced",
103
+ },
104
+ {
105
+ path: "review_templates",
106
+ removedIn: "1.0.0",
107
+ reason: "only workflows[] used review templates",
108
+ silentWhenEmpty: true,
109
+ },
110
+ {
111
+ path: "doctor",
112
+ removedIn: "1.0.0",
113
+ reason: "its only setting, ignore_template_drift, has no reader since the template drift check was removed",
114
+ silentWhenEmpty: true,
115
+ silentWhen: (stripped) => isOnlyEmptyListKey(stripped, "ignore_template_drift"),
116
+ },
117
+ {
118
+ path: "audit",
119
+ removedIn: "1.0.0",
120
+ reason: "only the removed `harness session-export` read audit.redact",
121
+ silentWhenEmpty: true,
122
+ silentWhen: (stripped) => isOnlyEmptyListKey(stripped, "redact"),
123
+ },
124
+ ];
125
+ /** How many policy names the `policies` note spells out. */
126
+ const POLICY_NAMES_IN_NOTE = 5;
127
+ function policiesNote(stripped) {
128
+ if (!Array.isArray(stripped))
129
+ return "manifest policies are no longer evaluated";
130
+ const names = stripped
131
+ .map((p) => stringAt(p, "name"))
132
+ .filter((n) => n !== undefined);
133
+ const count = stripped.length;
134
+ const listed = names.slice(0, POLICY_NAMES_IN_NOTE).map((n) => `"${n}"`);
135
+ const more = names.length - listed.length;
136
+ const suffix = listed.length === 0 ? "" : ` (${listed.join(", ")}${more > 0 ? `, and ${more} more` : ""})`;
137
+ return `${count} ${count === 1 ? "policy is" : "policies are"} no longer evaluated${suffix}`;
138
+ }
139
+ const HOOK_FILTER_REASON = "it was never projected into settings.json or the Codex config, so the hook runs on the same events with or without it";
140
+ export const REMOVED_HOOK_FIELDS = [
141
+ { field: "bash_match", removedIn: "1.0.0", reason: HOOK_FILTER_REASON },
142
+ { field: "path_match", removedIn: "1.0.0", reason: HOOK_FILTER_REASON },
143
+ ];
144
+ export const REMOVED_PACK_NAMES = [
145
+ {
146
+ name: "post-merge-gate",
147
+ removedIn: "1.0.0",
148
+ reason: "opt-in ledger-backed gate removed with the harness simplification",
149
+ },
150
+ {
151
+ name: "solution-acceptance",
152
+ removedIn: "1.0.0",
153
+ reason: "opt-in verdict-gated completion gate removed with the harness simplification",
154
+ },
155
+ {
156
+ name: "understanding-before-execution",
157
+ removedIn: "1.0.0",
158
+ reason: "the understanding-gate pack is removed with the harness simplification",
159
+ },
160
+ ];
161
+ export const REMOVED_MANIFEST_TABLE = {
162
+ paths: REMOVED_MANIFEST_PATHS,
163
+ hookFields: REMOVED_HOOK_FIELDS,
164
+ packs: REMOVED_PACK_NAMES,
165
+ };
166
+ export const REMOVED_LIST_CATEGORIES = [
167
+ { name: "policies", removedIn: "1.0.0", reason: "the manifest has no policies key any more" },
168
+ { name: "workflows", removedIn: "1.0.0", reason: "the manifest has no workflows key any more" },
169
+ ];
170
+ export const REMOVED_DESCRIBE_PILLARS = [
171
+ { name: "policies", removedIn: "1.0.0", reason: "the manifest has no policies key any more" },
172
+ { name: "workflows", removedIn: "1.0.0", reason: "the manifest has no workflows key any more" },
173
+ { name: "review_templates", removedIn: "1.0.0", reason: "the manifest has no review_templates key any more" },
174
+ ];
175
+ /** The usage-error text for a removed `kind` ("list category", "pillar") given on the command line. */
176
+ export function removedInspectNameMessage(kind, removed) {
177
+ return `${kind} "${removed.name}" was removed in ${removed.removedIn} (${removed.reason})`;
178
+ }
179
+ /**
180
+ * The index in the manifest as written for index `k` of the stripped array.
181
+ * An index past the kept entries (an entry appended after the parse) keeps
182
+ * its distance from the end.
183
+ */
184
+ export function originalIndex(map, k) {
185
+ if (map === undefined)
186
+ return k;
187
+ const hit = map.kept[k];
188
+ return hit !== undefined ? hit : k + (map.originalLength - map.kept.length);
189
+ }
190
+ /** Remap a zod issue path (`["policy_packs", 0, ...]`) to the manifest as written. */
191
+ export function remapIssuePath(path, maps) {
192
+ const [head, idx, ...rest] = path;
193
+ if (maps === undefined || typeof idx !== "number")
194
+ return [...path];
195
+ if (head === "policy_packs")
196
+ return [head, originalIndex(maps.policy_packs, idx), ...rest];
197
+ return [...path];
198
+ }
199
+ /**
200
+ * Remap a diagnostic path that names `policy_packs[k]` (also the dotted
201
+ * `policy_packs.k`) to the manifest as written. Any other path is returned
202
+ * unchanged.
203
+ */
204
+ export function remapDiagnosticPath(path, maps) {
205
+ if (maps === undefined)
206
+ return path;
207
+ const m = /^policy_packs(?:\[(\d+)\]|\.(\d+)(?=\.|$))/.exec(path);
208
+ if (m === null)
209
+ return path;
210
+ const k = Number(m[1] ?? m[2]);
211
+ const mapped = originalIndex(maps.policy_packs, k);
212
+ return `policy_packs${m[1] !== undefined ? `[${mapped}]` : `.${mapped}`}${path.slice(m[0].length)}`;
213
+ }
214
+ /**
215
+ * A plain `{...}` mapping: not null, not an array, and with `Object.prototype`
216
+ * or no prototype at all. The one shared copy (the merge engine and the
217
+ * layer-root check were copies of this); YAML-parsed documents only ever
218
+ * carry such objects, arrays, and scalars, so the prototype check only
219
+ * excludes exotic values like a YAML timestamp's `Date`.
220
+ */
221
+ export function isPlainObject(v) {
222
+ if (v === null || typeof v !== "object" || Array.isArray(v))
223
+ return false;
224
+ const proto = Object.getPrototypeOf(v);
225
+ return proto === Object.prototype || proto === null;
226
+ }
227
+ /**
228
+ * Remove the key at `segments` from `node`, copying every object on the way
229
+ * so the caller's raw manifest is never mutated. Returns the new node and
230
+ * whether a key was removed. A path through anything but plain objects is
231
+ * left alone (the strict parse then reports whatever is wrong there).
232
+ */
233
+ function withoutPath(node, segments) {
234
+ if (!isPlainObject(node) || segments.length === 0)
235
+ return { node, removed: false };
236
+ const [head, ...rest] = segments;
237
+ if (!Object.prototype.hasOwnProperty.call(node, head))
238
+ return { node, removed: false };
239
+ if (rest.length === 0) {
240
+ const copy = { ...node };
241
+ delete copy[head];
242
+ return { node: copy, removed: true };
243
+ }
244
+ const inner = withoutPath(node[head], rest);
245
+ if (!inner.removed)
246
+ return { node, removed: false };
247
+ return { node: { ...node, [head]: inner.node }, removed: true };
248
+ }
249
+ /** The value at `segments` under `node`, or undefined (own properties only). */
250
+ function valueAt(node, segments) {
251
+ let cur = node;
252
+ for (const seg of segments) {
253
+ if (!isPlainObject(cur) || !Object.prototype.hasOwnProperty.call(cur, seg))
254
+ return undefined;
255
+ cur = cur[seg];
256
+ }
257
+ return cur;
258
+ }
259
+ /**
260
+ * True for a value that configures nothing: null, `[]` or `{}`. Only a
261
+ * prototype-plain object counts as `{}`: a YAML-typed value (a `!!set` Set, an
262
+ * `!!omap` Map, a `!!timestamp` Date) has no own enumerable keys either, but
263
+ * it is not empty, so it warns.
264
+ */
265
+ function isEmptyValue(v) {
266
+ if (v === null)
267
+ return true;
268
+ if (Array.isArray(v))
269
+ return v.length === 0;
270
+ if (!isPlainObject(v))
271
+ return false;
272
+ const proto = Object.getPrototypeOf(v);
273
+ return (proto === Object.prototype || proto === null) && Object.keys(v).length === 0;
274
+ }
275
+ /**
276
+ * True for a prototype-plain object whose only own key is `key` and whose
277
+ * value is an empty array: the shape an old schema default serialised
278
+ * (`{ redact: [] }`). `{ redact: null }` is not that shape and warns: no
279
+ * release wrote it.
280
+ */
281
+ function isOnlyEmptyListKey(v, key) {
282
+ if (!isPlainObject(v))
283
+ return false;
284
+ const proto = Object.getPrototypeOf(v);
285
+ if (proto !== Object.prototype && proto !== null)
286
+ return false;
287
+ const keys = Object.keys(v);
288
+ const value = keys.length === 1 && keys[0] === key ? v[key] : undefined;
289
+ return Array.isArray(value) && value.length === 0;
290
+ }
291
+ /**
292
+ * Strip every removed manifest path from a raw manifest (or one override
293
+ * layer), one warning per path that was present, none for an empty value of a
294
+ * `silentWhenEmpty` path or a value its `silentWhen` accepts. Pure: `raw` is
295
+ * not modified, and the same object is returned when nothing was stripped.
296
+ */
297
+ export function stripRemovedManifestPaths(raw, paths = REMOVED_MANIFEST_PATHS) {
298
+ const warnings = [];
299
+ let current = raw;
300
+ for (const entry of paths) {
301
+ const segments = entry.path.split(".");
302
+ const stripped = valueAt(current, segments);
303
+ const r = withoutPath(current, segments);
304
+ if (!r.removed)
305
+ continue;
306
+ current = r.node;
307
+ if (entry.silentWhenEmpty === true && isEmptyValue(stripped))
308
+ continue;
309
+ if (entry.silentWhen?.(stripped) === true)
310
+ continue;
311
+ const note = entry.note?.(stripped);
312
+ warnings.push({
313
+ path: entry.path,
314
+ message: `removed in ${entry.removedIn} and ignored (${entry.reason}); delete it from the manifest` +
315
+ (note !== undefined ? `. ${note}` : ""),
316
+ });
317
+ }
318
+ return { raw: current, warnings };
319
+ }
320
+ /**
321
+ * Strip every removed field from the hooks that carry it (the hook stays,
322
+ * one warning per hook), over one `hooks` array. Shared by
323
+ * `stripRemovedHookFields` (one raw source, before the merge) and
324
+ * `stripRemovedManifestEntries` (the merged manifest), so the wording exists
325
+ * once. Pure: `hooks` is not modified.
326
+ */
327
+ function stripRemovedHookFieldsFromHooks(hooks, hookFields) {
328
+ const warnings = [];
329
+ let changed = false;
330
+ const next = hooks.map((hook, i) => {
331
+ if (!isPlainObject(hook))
332
+ return hook;
333
+ const found = hookFields.filter((f) => Object.prototype.hasOwnProperty.call(hook, f.field));
334
+ if (found.length === 0)
335
+ return hook;
336
+ changed = true;
337
+ const copy = { ...hook };
338
+ for (const f of found)
339
+ delete copy[f.field];
340
+ const name = stringAt(hook, "name");
341
+ warnings.push({
342
+ path: `hooks[${i}]`,
343
+ message: `${name !== undefined ? `hook "${name}"` : "this hook"} carries ${found.map((f) => f.field).join(" and ")}, ` +
344
+ `removed in ${found[0].removedIn} (${[...new Set(found.map((f) => f.reason))].join("; ")}); the field is ignored, delete the ` +
345
+ `${found.length === 1 ? "key" : "keys"} from it`,
346
+ });
347
+ return copy;
348
+ });
349
+ return { hooks: next, changed, warnings };
350
+ }
351
+ /**
352
+ * Strip every removed per-hook field from one raw source (the base manifest
353
+ * or one override layer) BEFORE it is merged: the merge walks name-keyed
354
+ * lists and throws on a shape it cannot reconcile, and a removed field like
355
+ * `bash_match` can carry exactly such colliding shapes across sources. The
356
+ * hooks stay; one warning per hook that carried a key, as in
357
+ * `stripRemovedManifestEntries`, whose post-merge strip stays as the safety
358
+ * net for callers that parse without merging (it then finds nothing left).
359
+ * Pure: `raw` is not modified, and the same object is returned when nothing
360
+ * was stripped.
361
+ */
362
+ export function stripRemovedHookFields(raw, hookFields = REMOVED_HOOK_FIELDS) {
363
+ if (!isPlainObject(raw) || !Array.isArray(raw["hooks"]) || hookFields.length === 0) {
364
+ return { raw, warnings: [] };
365
+ }
366
+ const stripped = stripRemovedHookFieldsFromHooks(raw["hooks"], hookFields);
367
+ if (!stripped.changed)
368
+ return { raw, warnings: [] };
369
+ return { raw: { ...raw, hooks: stripped.hooks }, warnings: stripped.warnings };
370
+ }
371
+ /**
372
+ * Strip every removed manifest path, strip every removed field from the
373
+ * hooks that carry it (the hook stays), and drop every removed pack entry
374
+ * from a raw (merged, not yet parsed) manifest. After a
375
+ * `mergeLayersStrippingRemovedPaths` merge the hook fields are already
376
+ * stripped (they went before the merge), so this strip finds nothing left of
377
+ * them and warns no second time; it stays for callers that parse a single
378
+ * source without merging. Pure: `raw` is not modified.
379
+ */
380
+ export function stripRemovedManifestEntries(raw, table = REMOVED_MANIFEST_TABLE) {
381
+ const indexMaps = {};
382
+ const paths = stripRemovedManifestPaths(raw, table.paths);
383
+ const warnings = paths.warnings;
384
+ let current = paths.raw;
385
+ if (isPlainObject(current) && Array.isArray(current["hooks"]) && table.hookFields.length > 0) {
386
+ const stripped = stripRemovedHookFieldsFromHooks(current["hooks"], table.hookFields);
387
+ warnings.push(...stripped.warnings);
388
+ if (stripped.changed)
389
+ current = { ...current, hooks: stripped.hooks };
390
+ }
391
+ if (isPlainObject(current) && Array.isArray(current["policy_packs"]) && table.packs.length > 0) {
392
+ const packs = current["policy_packs"];
393
+ const kept = [];
394
+ const keptFrom = [];
395
+ packs.forEach((pack, i) => {
396
+ const name = isPlainObject(pack) ? pack["name"] : undefined;
397
+ const removed = typeof name === "string" ? table.packs.find((p) => p.name === name) : undefined;
398
+ if (removed === undefined) {
399
+ kept.push(pack);
400
+ keptFrom.push(i);
401
+ return;
402
+ }
403
+ warnings.push({
404
+ path: `policy_packs[${i}]`,
405
+ message: `pack "${removed.name}" was removed in ${removed.removedIn} and is skipped (${removed.reason}); delete the entry from the manifest`,
406
+ });
407
+ });
408
+ if (kept.length !== packs.length) {
409
+ current = { ...current, policy_packs: kept };
410
+ indexMaps.policy_packs = { kept: keptFrom, originalLength: packs.length };
411
+ }
412
+ }
413
+ return Object.keys(indexMaps).length > 0 ? { raw: current, warnings, indexMaps } : { raw: current, warnings };
414
+ }
415
+ /** One line per warning, as `harness validate` / `harness doctor` print it. */
416
+ export function formatPostureWarning(w) {
417
+ return `${w.path}: ${w.message}`;
418
+ }
419
+ export const REMOVED_COMMANDS = [
420
+ { command: "harness session-start", removedIn: "1.0.0", reason: "the SessionStart producers are removed" },
421
+ { command: "harness preflight", removedIn: "1.0.0", reason: "alias of the removed session-start preflight producer" },
422
+ { command: "harness pack hook post-merge-gate", removedIn: "1.0.0", reason: "the post-merge-gate pack is removed" },
423
+ { command: "harness pack hook solution-acceptance", removedIn: "1.0.0", reason: "the solution-acceptance pack is removed" },
424
+ { command: "harness pack hook pre-tool-use", removedIn: "1.0.0", reason: "the understanding-gate PreToolUse hook is removed" },
425
+ { command: "harness pack hook post-tool-use", removedIn: "1.0.0", reason: "the understanding-gate PostToolUse hook is removed" },
426
+ { command: "harness pack hook track-active-claim", removedIn: "1.0.0", reason: "the understanding-gate active-claim hook is removed" },
427
+ { command: "harness pack hook stay-in-scope", removedIn: "1.0.0", reason: "the understanding-gate stay-in-scope hook is removed" },
428
+ { command: "harness pack hook subagent-start", removedIn: "1.0.0", reason: "the understanding-gate subagent hooks are removed" },
429
+ { command: "harness pack hook subagent-stop", removedIn: "1.0.0", reason: "the understanding-gate subagent hooks are removed" },
430
+ { command: "harness pack hook codex-pre-tool-use", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
431
+ { command: "harness pack hook codex-post-tool-use", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
432
+ { command: "harness pack hook codex-user-prompt-submit", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
433
+ { command: "harness pack hook codex-stop", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
434
+ { command: "harness pack hook runtime-reality", removedIn: "1.0.0", reason: "the runtime-reality hook is removed" },
435
+ { command: "harness delegate", removedIn: "1.0.0", reason: "subagent delegation for the understanding gate is removed" },
436
+ { command: "harness approve understanding", removedIn: "1.0.0", reason: "the understanding-gate approval verb is removed" },
437
+ { command: "harness gc", removedIn: "1.0.0", reason: "the understanding-gate state cleanup verb is removed" },
438
+ { command: "harness pack upgrade", removedIn: "1.0.0", reason: "the understanding-gate auto_approve upgrade verb is removed" },
439
+ { command: "harness explain-action", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
440
+ { command: "harness test-risk", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
441
+ { command: "harness resolve-env", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
442
+ { command: "harness approve risk", removedIn: "1.0.0", reason: "the Risk Gate approval verb is removed" },
443
+ { command: "harness explain-policy", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
444
+ { command: "harness dry-run", removedIn: "1.0.0", reason: "the policy engine's debug verbs are removed" },
445
+ { command: "harness policy intercept", removedIn: "1.0.0", reason: "the policy engine behind the PreToolUse intercept hook is removed" },
446
+ { command: "harness record", removedIn: "1.0.0", reason: "the evidence recording verbs for the removed policy gates are removed" },
447
+ { command: "harness smoke", removedIn: "1.0.0", reason: "the end-to-end smoke verb, whose decision mode read the removed policy engine, is removed" },
448
+ { command: "harness pause", removedIn: "1.0.0", reason: "the operator pause is removed; use `harness gate disable`" },
449
+ { command: "harness resume", removedIn: "1.0.0", reason: "the operator pause is removed; use `harness gate enable`" },
450
+ { command: "harness audit", removedIn: "1.0.0", reason: "the policy-decision replay is removed; read the ledger with the evidence-ledger CLI" },
451
+ { command: "harness session-export", removedIn: "1.0.0", reason: "the transcript and ledger export is removed; harness no longer reads the evidence ledger" },
452
+ // `harness explain` is a prefix of `harness explain-action` and
453
+ // `harness explain-policy` (hyphen continuation) and lookup takes the
454
+ // FIRST matching row, so this row must stay below both of them; pinned
455
+ // in tests/schema/removed-commands.test.ts (task bfe5efb4).
456
+ { command: "harness explain", removedIn: "1.0.0", reason: "the policy engine's debug verbs are removed" },
457
+ ];
458
+ // Leading `NAME=value` shell assignments in front of the command word. Only
459
+ // unquoted values without shell metacharacters count: a quote, a backslash, a
460
+ // `$` or a backtick could hide where the assignment ends, so such a command is
461
+ // left unmatched (a missed warning) rather than guessed at (a false one).
462
+ const LEADING_ENV_ASSIGNMENTS = /^(?:[A-Za-z_][A-Za-z0-9_]*=[^\s'"\\$`;|&<>()]*\s+)*/;
463
+ /**
464
+ * The removed command `command` invokes, if any. Matching rule: after trimming
465
+ * and dropping leading plain `NAME=value` assignments, the command must start
466
+ * with a table entry followed by the end, whitespace or a hyphen. Anything
467
+ * else is not matched: a command word given as a path (`/usr/local/bin/harness
468
+ * preflight`), a wrapper (`npx harness preflight`), a compound command (`cd x
469
+ * && harness preflight`), or an assignment with a quoted or expanded value.
470
+ */
471
+ export function invokesRemovedCommand(command, table = REMOVED_COMMANDS) {
472
+ const trimmed = command.trim().replace(LEADING_ENV_ASSIGNMENTS, "");
473
+ return table.find((r) => trimmed === r.command || trimmed.startsWith(`${r.command} `) || trimmed.startsWith(`${r.command}-`));
474
+ }
475
+ export function removedCommandMessage(removed, remedy) {
476
+ return `calls "${removed.command}", removed in ${removed.removedIn} (${removed.reason}), so it fails with "unknown command"; ${remedy}`;
477
+ }
478
+ function stringAt(node, key) {
479
+ if (!isPlainObject(node))
480
+ return undefined;
481
+ const v = node[key];
482
+ return typeof v === "string" ? v : undefined;
483
+ }
484
+ function arrayAt(node, key) {
485
+ if (!isPlainObject(node))
486
+ return [];
487
+ const v = node[key];
488
+ return Array.isArray(v) ? v : [];
489
+ }
490
+ /**
491
+ * Every place a raw (merged) manifest still calls a removed CLI command, one
492
+ * warning per site. A manifest generated before the removal keeps such hooks
493
+ * and pack configs until the operator deletes them: `harness apply` renders from
494
+ * the manifest, so it re-emits them, and the hook or the agent-facing remedy
495
+ * then runs a command that no longer exists.
496
+ *
497
+ * Scanned sites: `hooks[].command`; each pack's `config.producers[].command`
498
+ * and `config.ux.run[]`. An entry of a removed pack is skipped (the pack
499
+ * itself already warns). Pure and tolerant: anything that is not the expected
500
+ * shape is skipped, the strict parse reports it.
501
+ */
502
+ export function findRemovedCommandUses(raw, commands = REMOVED_COMMANDS, removedPacks = REMOVED_PACK_NAMES) {
503
+ const warnings = [];
504
+ const check = (value, path, remedy) => {
505
+ if (typeof value !== "string")
506
+ return;
507
+ const removed = invokesRemovedCommand(value, commands);
508
+ if (removed !== undefined)
509
+ warnings.push({ path, message: removedCommandMessage(removed, remedy()) });
510
+ };
511
+ arrayAt(raw, "hooks").forEach((hook, i) => {
512
+ const name = stringAt(hook, "name");
513
+ check(stringAt(hook, "command"), `hooks[${i}].command`, () => `delete ${name !== undefined ? `hook "${name}"` : "this hook"} from the manifest, then re-run \`harness apply\``);
514
+ });
515
+ arrayAt(raw, "policy_packs").forEach((pack, i) => {
516
+ const name = stringAt(pack, "name");
517
+ if (name !== undefined && removedPacks.some((p) => p.name === name))
518
+ return;
519
+ const config = isPlainObject(pack) ? pack["config"] : undefined;
520
+ const remedy = () => `remove the line from the pack's config, or run \`harness pack reseed ${name ?? "<name>"}\` when the pack ships a default`;
521
+ arrayAt(config, "producers").forEach((producer, j) => {
522
+ check(stringAt(producer, "command"), `policy_packs[${i}].config.producers[${j}].command`, remedy);
523
+ });
524
+ const ux = isPlainObject(config) ? config["ux"] : undefined;
525
+ arrayAt(ux, "run").forEach((line, j) => {
526
+ check(line, `policy_packs[${i}].config.ux.run[${j}]`, remedy);
527
+ });
528
+ });
529
+ return warnings;
530
+ }
531
+ //# sourceMappingURL=removed-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removed-keys.js","sourceRoot":"","sources":["../../src/schema/removed-keys.ts"],"names":[],"mappings":"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"}