@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
@@ -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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"}