approval-md 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/README.md +584 -553
  2. package/SPEC.md +42 -13
  3. package/dist/src/adapters/agentmail.d.ts +426 -0
  4. package/dist/src/adapters/agentmail.js +2 -2
  5. package/dist/src/adapters/conformance.d.ts +149 -0
  6. package/dist/src/adapters/contract.d.ts +628 -0
  7. package/dist/src/adapters/contract.js +110 -16
  8. package/dist/src/adapters/contract.js.map +1 -1
  9. package/dist/src/adapters/email.d.ts +324 -0
  10. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  11. package/dist/src/adapters/public.d.ts +11 -0
  12. package/dist/src/adapters/public.js +11 -0
  13. package/dist/src/adapters/public.js.map +1 -0
  14. package/dist/src/adapters/registry.d.ts +59 -0
  15. package/dist/src/adapters/registry.js +2 -1
  16. package/dist/src/adapters/registry.js.map +1 -1
  17. package/dist/src/adapters/smtp.d.ts +213 -0
  18. package/dist/src/adapters/vault-provider.d.ts +114 -0
  19. package/dist/src/adapters/vault-provider.js +3 -3
  20. package/dist/src/adapters/zzz.d.ts +66 -0
  21. package/dist/src/adapters/zzz.js +299 -0
  22. package/dist/src/adapters/zzz.js.map +1 -0
  23. package/dist/src/channels/batch.d.ts +109 -0
  24. package/dist/src/channels/cli.d.ts +193 -0
  25. package/dist/src/channels/conformance.d.ts +92 -0
  26. package/dist/src/channels/contract.d.ts +623 -0
  27. package/dist/src/channels/payload-view.d.ts +35 -0
  28. package/dist/src/channels/render-queue.d.ts +149 -0
  29. package/dist/src/channels/tagging.d.ts +196 -0
  30. package/dist/src/channels/telegram.d.ts +1832 -0
  31. package/dist/src/channels/web.d.ts +341 -0
  32. package/dist/src/cli/adapter.d.ts +90 -0
  33. package/dist/src/cli/adapter.js +25 -15
  34. package/dist/src/cli/adapter.js.map +1 -1
  35. package/dist/src/cli/amend.d.ts +59 -0
  36. package/dist/src/cli/args.d.ts +43 -0
  37. package/dist/src/cli/attest.d.ts +41 -0
  38. package/dist/src/cli/audit-card.d.ts +62 -0
  39. package/dist/src/cli/audit.d.ts +59 -0
  40. package/dist/src/cli/channel-telegram.d.ts +806 -0
  41. package/dist/src/cli/channel-web.d.ts +131 -0
  42. package/dist/src/cli/channel.d.ts +71 -0
  43. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  44. package/dist/src/cli/codex.d.ts +2 -0
  45. package/dist/src/cli/codex.js +172 -0
  46. package/dist/src/cli/codex.js.map +1 -0
  47. package/dist/src/cli/coverage.d.ts +61 -0
  48. package/dist/src/cli/daemon.d.ts +120 -0
  49. package/dist/src/cli/doctor.d.ts +129 -0
  50. package/dist/src/cli/doctor.js +119 -5
  51. package/dist/src/cli/doctor.js.map +1 -1
  52. package/dist/src/cli/env.d.ts +65 -0
  53. package/dist/src/cli/execute.d.ts +202 -0
  54. package/dist/src/cli/exit-codes.d.ts +73 -0
  55. package/dist/src/cli/feedback.d.ts +60 -0
  56. package/dist/src/cli/gate-window.d.ts +40 -0
  57. package/dist/src/cli/gate.d.ts +68 -0
  58. package/dist/src/cli/git-scope.d.ts +190 -0
  59. package/dist/src/cli/gloss-attach.d.ts +85 -0
  60. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  61. package/dist/src/cli/gloss-codex.d.ts +24 -0
  62. package/dist/src/cli/gloss-options.d.ts +42 -0
  63. package/dist/src/cli/gloss.d.ts +265 -0
  64. package/dist/src/cli/help.d.ts +103 -0
  65. package/dist/src/cli/help.js +173 -51
  66. package/dist/src/cli/help.js.map +1 -1
  67. package/dist/src/cli/hook-codex.d.ts +78 -0
  68. package/dist/src/cli/hook-codex.js +167 -0
  69. package/dist/src/cli/hook-codex.js.map +1 -0
  70. package/dist/src/cli/hook.d.ts +331 -0
  71. package/dist/src/cli/hook.js +186 -80
  72. package/dist/src/cli/hook.js.map +1 -1
  73. package/dist/src/cli/import.d.ts +35 -0
  74. package/dist/src/cli/init.d.ts +84 -0
  75. package/dist/src/cli/init.js +2 -2
  76. package/dist/src/cli/init.js.map +1 -1
  77. package/dist/src/cli/instructions.d.ts +23 -0
  78. package/dist/src/cli/journal.d.ts +41 -0
  79. package/dist/src/cli/log-advance.d.ts +287 -0
  80. package/dist/src/cli/log-advance.js +102 -11
  81. package/dist/src/cli/log-advance.js.map +1 -1
  82. package/dist/src/cli/log-anchor.d.ts +176 -0
  83. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  84. package/dist/src/cli/log-sync.d.ts +243 -0
  85. package/dist/src/cli/log-verbs.d.ts +16 -0
  86. package/dist/src/cli/log-verbs.js +7 -1
  87. package/dist/src/cli/log-verbs.js.map +1 -1
  88. package/dist/src/cli/long-help.d.ts +70 -0
  89. package/dist/src/cli/main.d.ts +77 -0
  90. package/dist/src/cli/main.js +155 -5
  91. package/dist/src/cli/main.js.map +1 -1
  92. package/dist/src/cli/mcp.d.ts +52 -0
  93. package/dist/src/cli/paths.d.ts +56 -0
  94. package/dist/src/cli/payload.d.ts +58 -0
  95. package/dist/src/cli/policy.d.ts +43 -0
  96. package/dist/src/cli/preflight.d.ts +363 -0
  97. package/dist/src/cli/preflight.js +294 -7
  98. package/dist/src/cli/preflight.js.map +1 -1
  99. package/dist/src/cli/progress.d.ts +78 -0
  100. package/dist/src/cli/prompt.d.ts +209 -0
  101. package/dist/src/cli/quickstart.d.ts +46 -0
  102. package/dist/src/cli/quickstart.js +297 -0
  103. package/dist/src/cli/quickstart.js.map +1 -0
  104. package/dist/src/cli/records.d.ts +34 -0
  105. package/dist/src/cli/render.d.ts +22 -0
  106. package/dist/src/cli/sandbox.d.ts +51 -0
  107. package/dist/src/cli/scaffold.d.ts +79 -0
  108. package/dist/src/cli/setup-adapter.d.ts +137 -0
  109. package/dist/src/cli/setup-adapter.js +38 -4
  110. package/dist/src/cli/setup-adapter.js.map +1 -1
  111. package/dist/src/cli/setup-channel.d.ts +117 -0
  112. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  113. package/dist/src/cli/setup-common.d.ts +275 -0
  114. package/dist/src/cli/setup-flow.d.ts +287 -0
  115. package/dist/src/cli/setup-service.d.ts +96 -0
  116. package/dist/src/cli/setup.d.ts +202 -0
  117. package/dist/src/cli/style.d.ts +320 -0
  118. package/dist/src/cli/token.d.ts +39 -0
  119. package/dist/src/cli/up.d.ts +155 -0
  120. package/dist/src/cli/up.js +4 -2
  121. package/dist/src/cli/up.js.map +1 -1
  122. package/dist/src/cli/usage.d.ts +37 -0
  123. package/dist/src/cli/values.d.ts +40 -0
  124. package/dist/src/cli/vault.d.ts +59 -0
  125. package/dist/src/cli/vault.js +2 -2
  126. package/dist/src/cli/vault.js.map +1 -1
  127. package/dist/src/cli/verb-registry.d.ts +76 -0
  128. package/dist/src/cli/verb-registry.js +176 -8
  129. package/dist/src/cli/verb-registry.js.map +1 -1
  130. package/dist/src/cli/wordmark.d.ts +31 -0
  131. package/dist/src/cli/wordmark.js +2 -2
  132. package/dist/src/codex/doctor.d.ts +13 -0
  133. package/dist/src/codex/doctor.js +41 -0
  134. package/dist/src/codex/doctor.js.map +1 -0
  135. package/dist/src/codex/manifest.d.ts +49 -0
  136. package/dist/src/codex/manifest.js +103 -0
  137. package/dist/src/codex/manifest.js.map +1 -0
  138. package/dist/src/codex/templates.d.ts +41 -0
  139. package/dist/src/codex/templates.js +319 -0
  140. package/dist/src/codex/templates.js.map +1 -0
  141. package/dist/src/codex/trust.d.ts +19 -0
  142. package/dist/src/codex/trust.js +183 -0
  143. package/dist/src/codex/trust.js.map +1 -0
  144. package/dist/src/codex/workspace-plan.d.ts +131 -0
  145. package/dist/src/codex/workspace-plan.js +561 -0
  146. package/dist/src/codex/workspace-plan.js.map +1 -0
  147. package/dist/src/core/actor.d.ts +2 -0
  148. package/dist/src/core/actor.js +5 -0
  149. package/dist/src/core/actor.js.map +1 -0
  150. package/dist/src/core/advance-cycle.d.ts +170 -0
  151. package/dist/src/core/agents-md.d.ts +276 -0
  152. package/dist/src/core/apply-patch.d.ts +49 -0
  153. package/dist/src/core/apply-patch.js +266 -0
  154. package/dist/src/core/apply-patch.js.map +1 -0
  155. package/dist/src/core/attest.d.ts +420 -0
  156. package/dist/src/core/attest.js +13 -1
  157. package/dist/src/core/attest.js.map +1 -1
  158. package/dist/src/core/audit.d.ts +492 -0
  159. package/dist/src/core/budgets.d.ts +238 -0
  160. package/dist/src/core/checkpoint.d.ts +500 -0
  161. package/dist/src/core/child-env.d.ts +88 -0
  162. package/dist/src/core/clock.d.ts +52 -0
  163. package/dist/src/core/command-class.d.ts +543 -0
  164. package/dist/src/core/command-class.js +43 -8
  165. package/dist/src/core/command-class.js.map +1 -1
  166. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  167. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  168. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  169. package/dist/src/core/coverage.d.ts +217 -0
  170. package/dist/src/core/credential-spec.d.ts +72 -0
  171. package/dist/src/core/dark-session.d.ts +331 -0
  172. package/dist/src/core/decision-refusal.d.ts +185 -0
  173. package/dist/src/core/env-file.d.ts +450 -0
  174. package/dist/src/core/execute.d.ts +858 -0
  175. package/dist/src/core/execute.js +44 -6
  176. package/dist/src/core/execute.js.map +1 -1
  177. package/dist/src/core/frontmatter.d.ts +78 -0
  178. package/dist/src/core/gate-window.d.ts +312 -0
  179. package/dist/src/core/gate.d.ts +1364 -0
  180. package/dist/src/core/gate.js +68 -13
  181. package/dist/src/core/gate.js.map +1 -1
  182. package/dist/src/core/git-run.d.ts +73 -0
  183. package/dist/src/core/harness-version.d.ts +157 -0
  184. package/dist/src/core/harness-version.js +2 -1
  185. package/dist/src/core/harness-version.js.map +1 -1
  186. package/dist/src/core/harness-wait.d.ts +55 -0
  187. package/dist/src/core/head-retry.d.ts +107 -0
  188. package/dist/src/core/instance.d.ts +253 -0
  189. package/dist/src/core/intake-limits.d.ts +247 -0
  190. package/dist/src/core/jcs.d.ts +52 -0
  191. package/dist/src/core/journal.d.ts +144 -0
  192. package/dist/src/core/live-draw.d.ts +436 -0
  193. package/dist/src/core/log-reconcile.d.ts +89 -0
  194. package/dist/src/core/log-subscribe.d.ts +36 -0
  195. package/dist/src/core/log-subscribe.js +162 -0
  196. package/dist/src/core/log-subscribe.js.map +1 -0
  197. package/dist/src/core/log.d.ts +278 -0
  198. package/dist/src/core/loop.d.ts +274 -0
  199. package/dist/src/core/loop.js +11 -0
  200. package/dist/src/core/loop.js.map +1 -1
  201. package/dist/src/core/md-fence.d.ts +41 -0
  202. package/dist/src/core/money.d.ts +147 -0
  203. package/dist/src/core/payload-census.d.ts +74 -0
  204. package/dist/src/core/payload-store.d.ts +175 -0
  205. package/dist/src/core/payload.d.ts +71 -0
  206. package/dist/src/core/policy-diff.d.ts +292 -0
  207. package/dist/src/core/policy-diff.js +27 -4
  208. package/dist/src/core/policy-diff.js.map +1 -1
  209. package/dist/src/core/policy-expectations.d.ts +199 -0
  210. package/dist/src/core/policy-explain.d.ts +150 -0
  211. package/dist/src/core/policy-explain.js +31 -3
  212. package/dist/src/core/policy-explain.js.map +1 -1
  213. package/dist/src/core/policy-load.d.ts +527 -0
  214. package/dist/src/core/policy-load.js +15 -3
  215. package/dist/src/core/policy-load.js.map +1 -1
  216. package/dist/src/core/policy-match.d.ts +281 -0
  217. package/dist/src/core/policy-match.js +20 -9
  218. package/dist/src/core/policy-match.js.map +1 -1
  219. package/dist/src/core/policy-proposal.d.ts +265 -0
  220. package/dist/src/core/prompt-layout.d.ts +221 -0
  221. package/dist/src/core/protected-path-guard.d.ts +453 -0
  222. package/dist/src/core/protected-path-guard.js +514 -35
  223. package/dist/src/core/protected-path-guard.js.map +1 -1
  224. package/dist/src/core/registration.d.ts +25 -0
  225. package/dist/src/core/reindex.d.ts +99 -0
  226. package/dist/src/core/sampler.d.ts +313 -0
  227. package/dist/src/core/sandbox.d.ts +290 -0
  228. package/dist/src/core/seal.d.ts +165 -0
  229. package/dist/src/core/state.d.ts +505 -0
  230. package/dist/src/core/task-file.d.ts +185 -0
  231. package/dist/src/core/telegram-config.d.ts +93 -0
  232. package/dist/src/core/token.d.ts +409 -0
  233. package/dist/src/core/token.js +21 -38
  234. package/dist/src/core/token.js.map +1 -1
  235. package/dist/src/core/validate.d.ts +138 -0
  236. package/dist/src/core/values.d.ts +137 -0
  237. package/dist/src/core/vault.d.ts +291 -0
  238. package/dist/src/core/verified-snapshot.d.ts +204 -0
  239. package/dist/src/core/verify.d.ts +336 -0
  240. package/dist/src/core/version.d.ts +8 -0
  241. package/dist/src/core/wysiwys.d.ts +370 -0
  242. package/dist/src/daemon/advance-child.d.ts +39 -0
  243. package/dist/src/daemon/advance.d.ts +466 -0
  244. package/dist/src/daemon/audit.d.ts +87 -0
  245. package/dist/src/daemon/daemon.d.ts +1180 -0
  246. package/dist/src/daemon/dark-session.d.ts +64 -0
  247. package/dist/src/daemon/draw-child.d.ts +36 -0
  248. package/dist/src/daemon/draw.d.ts +154 -0
  249. package/dist/src/daemon/git-evidence.d.ts +173 -0
  250. package/dist/src/daemon/git-evidence.js +1 -1
  251. package/dist/src/daemon/projection.d.ts +180 -0
  252. package/dist/src/daemon/prune.d.ts +207 -0
  253. package/dist/src/mcp/http.d.ts +113 -0
  254. package/dist/src/mcp/server.d.ts +265 -0
  255. package/dist/src/mcp/server.js +9 -1
  256. package/dist/src/mcp/server.js.map +1 -1
  257. package/docs/adapter-api.md +106 -0
  258. package/docs/cli-reference.md +389 -36
  259. package/docs/codex-enforced-session.md +30 -0
  260. package/package.json +12 -2
  261. package/schema/codex-instance.schema.json +82 -0
  262. package/schema/event.schema.json +2 -1
  263. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  264. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  265. package/schema/policy.schema.json +21 -1
  266. package/templates/codex/README.md +9 -0
@@ -76,6 +76,7 @@
76
76
  */
77
77
  import { existsSync } from "node:fs";
78
78
  import { join } from "node:path";
79
+ import { isPrincipalActor } from "./actor.js";
79
80
  import { attestationRefusal, checkAttestation } from "./attest.js";
80
81
  import { evaluateBudgetsWithTask } from "./budgets.js";
81
82
  import { tick } from "./clock.js";
@@ -88,7 +89,7 @@ import { loadPolicy, POLICY_FILENAMES } from "./policy-load.js";
88
89
  import { humanOnlyRefusal, resolve } from "./policy-match.js";
89
90
  import { readVerifiedRecords } from "./state.js";
90
91
  import { forgetPrivateKey, keyStoreDirFor } from "./seal.js";
91
- import { consumeToken, deliveredToken } from "./token.js";
92
+ import { consumeToken, deliveredToken, verifyTokenSpend, } from "./token.js";
92
93
  export { isLoopEscalated, loopEscalation, LOOP_ESCALATION_THRESHOLD, } from "./loop.js";
93
94
  /**
94
95
  * The closed set of execution refusal codes. Frozen public API in the same sense
@@ -102,6 +103,8 @@ export { isLoopEscalated, loopEscalation, LOOP_ESCALATION_THRESHOLD, } from "./l
102
103
  * responses.
103
104
  */
104
105
  export const EXECUTE_REFUSAL_CODES = [
106
+ /** Execution preflight requires a person or agent principal, never runtime identity. */
107
+ "actor-invalid",
105
108
  /** No `task.registered` record declares this action key (SPEC.md §7). */
106
109
  "action-not-registered",
107
110
  /**
@@ -127,6 +130,8 @@ export const EXECUTE_REFUSAL_CODES = [
127
130
  "loop-escalated",
128
131
  /** Policy is unattested or its bytes changed (`core/attest.ts`). */
129
132
  "policy-not-attested",
133
+ /** The attested policy changed after supervised-live intake decided to proceed. */
134
+ "policy-drift",
130
135
  /** An `execution.started` already exists for this key (idempotency). */
131
136
  "already-executed",
132
137
  /** Budgets refused the start; a `budget.exceeded` event WAS appended. */
@@ -432,6 +437,18 @@ export function declaringTasks(records, actionKey) {
432
437
  export function hasApprovalCycle(records, actionKey) {
433
438
  return records.some((record) => record.event === "approval.requested" && record.action_key === actionKey);
434
439
  }
440
+ /**
441
+ * Check whether an adapter execution may proceed to credential resolution.
442
+ *
443
+ * This is a preflight, never an execution permit. A successful result appends
444
+ * nothing, consumes nothing and leaves delivered-token key material in place.
445
+ * {@link startExecution} must still run after adapter precheck and repeats every
446
+ * check against a fresh verified read before compare-and-append. A budget
447
+ * refusal retains `startExecution`'s required `budget.exceeded` audit record.
448
+ */
449
+ export function checkExecutionEligibility(logPath, actionKey, options, actor) {
450
+ return withHeadRetry(attemptsOf(options.retryOnHeadMoved), () => attemptStart(logPath, actionKey, options, actor, true));
451
+ }
435
452
  /**
436
453
  * Begin an execution: the single entry point for appending `execution.started`.
437
454
  *
@@ -469,7 +486,7 @@ export function hasApprovalCycle(records, actionKey) {
469
486
  * enforced in one place.
470
487
  */
471
488
  export function startExecution(logPath, actionKey, options, actor) {
472
- return withHeadRetry(attemptsOf(options.retryOnHeadMoved), () => attemptStart(logPath, actionKey, options, actor));
489
+ return withHeadRetry(attemptsOf(options.retryOnHeadMoved), () => attemptStart(logPath, actionKey, options, actor, false));
473
490
  }
474
491
  /**
475
492
  * One whole start, from the clock read to the append (APRV-236 put it under the
@@ -490,8 +507,11 @@ export function startExecution(logPath, actionKey, options, actor) {
490
507
  * skipped, and a token another process spent in the window is refused
491
508
  * `token-consumed`. Double-spend stays exactly as pinned.
492
509
  */
493
- function attemptStart(logPath, actionKey, options, actor) {
510
+ function attemptStart(logPath, actionKey, options, actor, preflight) {
494
511
  const ts = tick(options);
512
+ if (preflight && !isPrincipalActor(actor)) {
513
+ return refuse("actor-invalid", `execution preflight requires a human: or agent: actor, got ${JSON.stringify(actor)}`);
514
+ }
495
515
  const read = readVerifiedRecords(logPath, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
496
516
  if (!read.ok)
497
517
  return fromReadRefusal(read);
@@ -567,7 +587,7 @@ function attemptStart(logPath, actionKey, options, actor) {
567
587
  ? `action ${actionKey} resolves to manual (${resolution.provenance}${resolution.floorApplied ? ", irreversibility floor" : ""}) and cannot execute without the single-use token minted at grant. Request the action, have a human grant it, and pass the token that grant printed.`
568
588
  : `action ${actionKey} resolves to ${resolution.autonomy} but the log already carries an approval.requested for it, so a human was asked about this action and it executes on their answer. This is what a supervised-live draw looks like from the executor's side: the gate selected this action into the live fraction and it now follows the manual path. Wait for the decision and pass the token the grant printed.`);
569
589
  }
570
- const consumed = consumeToken(logPath, actionKey, token, actor, {
590
+ const tokenOptions = {
571
591
  ...(options.policy?.file === undefined ? {} : { policyFile: options.policy.file }),
572
592
  ...(options.policy?.file === undefined
573
593
  ? { policyDir: options.policy?.dir ?? process.cwd() }
@@ -587,7 +607,14 @@ function attemptStart(logPath, actionKey, options, actor) {
587
607
  // the one the spend records, so `startExecution` and the `execution.started`
588
608
  // it produces cannot disagree about when this happened.
589
609
  clock: () => ts,
590
- });
610
+ };
611
+ if (preflight) {
612
+ const verified = verifyTokenSpend(records, actionKey, token, ts, load, options.presentedPayloadHash);
613
+ if (!verified.ok)
614
+ return fromTokenRefusal(verified);
615
+ return { ok: true, mode: "token", autonomy: "manual", token };
616
+ }
617
+ const consumed = consumeToken(logPath, actionKey, token, actor, tokenOptions);
591
618
  if (!consumed.ok)
592
619
  return fromTokenRefusal(consumed);
593
620
  // APRV-105. The token is spent, so its delivery address is finished. Done
@@ -607,10 +634,16 @@ function attemptStart(logPath, actionKey, options, actor) {
607
634
  };
608
635
  }
609
636
  // --- supervised / autonomous: no grant exists, so no token exists ---------
610
- const attestation = attestationRefusal(checkAttestation(records, policyPathOf(options)));
637
+ const attestationStatus = checkAttestation(records, policyPathOf(options));
638
+ const attestation = attestationRefusal(attestationStatus);
611
639
  if (attestation !== null) {
612
640
  return refuse("policy-not-attested", attestation.message, { detail: attestation.detail });
613
641
  }
642
+ if (options.expectedPolicySha256 !== undefined &&
643
+ attestationStatus.status === "attested" &&
644
+ attestationStatus.sha256 !== options.expectedPolicySha256) {
645
+ return refuse("policy-drift", `the attested policy changed after supervised-live intake decided action ${actionKey} could proceed (intake ${options.expectedPolicySha256}, current ${attestationStatus.sha256}). No credential or side effect may rely on an unrecorded draw under different rules; retry so intake can draw under the current policy.`);
646
+ }
614
647
  if (isLoopEscalated(records, declared.task)) {
615
648
  return refuse("loop-escalated", `task ${declared.task} has three consecutive execution.failed events and is escalated to manual (SPEC.md §10.2), so its ${resolution.autonomy} actions may not start unsupervised. This is a redirection, not a ban: request ${actionKey}, have a human grant it, and run it with the token. The escalation clears only when an execution.completed for the task lands.`);
616
649
  }
@@ -675,10 +708,15 @@ function attemptStart(logPath, actionKey, options, actor) {
675
708
  const message = `budget refused the execution: ${failed
676
709
  .map((entry) => `${entry.limit} (${entry.scope})`)
677
710
  .join(", ")}`;
711
+ if (!logged.ok && logged.append?.code === "head-moved")
712
+ return logged;
678
713
  return logged.ok
679
714
  ? refuse("budget-exceeded", message, { verdicts: failed, record: logged.record })
680
715
  : refuse("budget-exceeded", `${message}; the budget.exceeded event could not be appended: ${logged.message}`, { verdicts: failed });
681
716
  }
717
+ if (preflight) {
718
+ return { ok: true, mode: "policy", autonomy: resolution.autonomy };
719
+ }
682
720
  const appended = append(logPath, {
683
721
  ts,
684
722
  event: "execution.started",
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/core/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/core/execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * YAML frontmatter extraction for Backlog.md-style task files (SPEC.md §6).
3
+ *
4
+ * A task file is "ordinary Backlog.md-style markdown" whose frontmatter carries
5
+ * one added key, `approval:`, holding the entire envelope. This module reads
6
+ * that frontmatter. It is **read-only in the strongest sense**: nothing here
7
+ * writes, rewrites, or reserializes a task file. Round-trip rewriting with
8
+ * unknown-key preservation is M6 (APRV-6x), and doing it early — badly — is
9
+ * exactly how a board tool's metadata gets silently dropped.
10
+ *
11
+ * ## Delimiters
12
+ *
13
+ * The document MUST begin with a line that is exactly `---`, and the block ends
14
+ * at the next line that is exactly `---`. No leading blank lines, no BOM
15
+ * tolerance, no `...` terminator, no indented fences. A file whose first bytes
16
+ * are not the opening delimiter simply has no frontmatter — which SPEC.md §6
17
+ * says implementations MUST tolerate ("a task with no envelope … simply cannot
18
+ * request side-effecting execution"), so that is a distinct, non-alarming code
19
+ * rather than a parse error.
20
+ *
21
+ * ## YAML stance — literally the same hardening as the policy loader
22
+ *
23
+ * `core/policy-load.ts` documents at length why a permission document must be
24
+ * parsed under YAML 1.2 core with tags rejected, warnings fatal, duplicate keys
25
+ * fatal, and alias expansion bounded. A task envelope is the *other* half of the
26
+ * same permission surface — it declares the class, cost, and reversibility that
27
+ * policy is matched against — so it is parsed under exactly the same settings.
28
+ *
29
+ * Those settings used to be **replicated** here. APRV-20 (finding S5) removed
30
+ * the replica: `policy-load.ts` now exports {@link parseHardenedYaml} and this
31
+ * module calls it. There is one hardened parser in the codebase, and a task file
32
+ * and a policy block are hardened by the same lines of code — no `parseDocument`
33
+ * call survives in this file, so the two can no longer drift.
34
+ *
35
+ * Determinism: a pure function of the input text. No clock, no network, no
36
+ * caching. Never throws — every failure is a structured result.
37
+ */
38
+ /** The line that opens and closes a frontmatter block. */
39
+ export declare const FRONTMATTER_DELIMITER = "---";
40
+ /** Why frontmatter could not be read. */
41
+ export type FrontmatterErrorCode =
42
+ /** The file does not begin with a `---` line: it has no frontmatter at all. */
43
+ "no-frontmatter"
44
+ /** An opening `---` with no closing `---` before end of file. */
45
+ | "unterminated"
46
+ /** The block is not parseable YAML under the hardened settings. */
47
+ | "yaml-error"
48
+ /** The block parsed, but not to a mapping (a list or scalar at the root). */
49
+ | "not-a-map";
50
+ export type FrontmatterResult = {
51
+ ok: true;
52
+ data: Record<string, unknown>;
53
+ body: string;
54
+ } | {
55
+ ok: false;
56
+ code: FrontmatterErrorCode;
57
+ message: string;
58
+ };
59
+ /**
60
+ * Extract and parse the YAML frontmatter of `text`.
61
+ *
62
+ * Returns the mapping and the remaining markdown body. Line endings are handled
63
+ * for CRLF and CR as well as LF, because a task file edited on Windows is still
64
+ * a task file; the body is rejoined with `\n`, and callers must not treat the
65
+ * returned body as byte-faithful (nothing in v0.1 writes it back).
66
+ */
67
+ export declare function parseFrontmatter(text: string): FrontmatterResult;
68
+ export type TaskFileResult = {
69
+ ok: true;
70
+ data: Record<string, unknown>;
71
+ body: string;
72
+ } | {
73
+ ok: false;
74
+ code: FrontmatterErrorCode | "io";
75
+ message: string;
76
+ };
77
+ /** {@link parseFrontmatter} over a file, with read failures as their own code. */
78
+ export declare function readTaskFile(path: string): TaskFileResult;
@@ -0,0 +1,312 @@
1
+ /**
2
+ * The open window (amended SPEC.md §5.2, APRV-214): a human-only, time-boxed
3
+ * suspension of the harness gate's POLICY, so the gate can be debugged from
4
+ * inside a session it would otherwise refuse everything to.
5
+ *
6
+ * ## Why this exists
7
+ *
8
+ * `cli/hook.ts` fails closed on every axis, which is right, and which means the
9
+ * moment the gate itself is broken (an unattested policy, a drifted
10
+ * attestation, a hung daemon, a dark channel) every command a session issues
11
+ * dies, including the ones a person would use to repair it. The only escape
12
+ * before this was hand-editing the hook out of `.claude/settings.json`: an
13
+ * ungated session nobody records, which is the exact failure this project
14
+ * exists to prevent.
15
+ *
16
+ * ## Where the state lives, and why it lives there
17
+ *
18
+ * In the log, as `gate.opened` / `gate.closed`, and NOWHERE else. The
19
+ * `.approval/env` precedent (`cli/init.ts`) states the rule this follows: a
20
+ * file the runtime reads on its own authority lets anything able to write that
21
+ * file act as the human. A window flag in a dotfile would be exactly that, and
22
+ * an agent that can write files is the party the window is a bypass for.
23
+ *
24
+ * The consequence is deliberate and is the property that keeps this safe: a log
25
+ * the hook cannot read, or cannot verify, yields NO window and the hook denies
26
+ * as it always did. The window suspends the policy; it never suspends the log.
27
+ *
28
+ * ## What is derived rather than written
29
+ *
30
+ * Nothing is appended when a window lapses. A reader derives the window from
31
+ * the latest `gate.opened`: it is open when no `gate.closed` names its seq and
32
+ * the moment of asking is before its expiry. Expiry is `ts` plus `duration`,
33
+ * both of which are on the record, and the runtime authored the `ts` at the
34
+ * write boundary (`core/clock.ts`), so an opener cannot author the length of
35
+ * their own window. `expires_at` rides along for a human reading the log; a
36
+ * record claiming one BEYOND `ts + duration` reads as the shorter of the two,
37
+ * and a duration over {@link MAX_WINDOW_MS} is clamped at read time as well as
38
+ * refused at write time. Every path through this file resolves an ambiguity by
39
+ * shortening the window, never by lengthening it.
40
+ *
41
+ * ## What this module does not do
42
+ *
43
+ * It does not decide anything about a command. The hook classifies inside an
44
+ * open window exactly as it does outside one, still denies `log.mutate`, still
45
+ * denies every class the policy reserves to human hands, and still denies a
46
+ * command the classifier cannot read. All this module offers is the derived
47
+ * window and the three appends, each through `core/log.ts`'s `appendEvent` with
48
+ * a compare-and-append precondition (§11.1 invariant 5).
49
+ *
50
+ * `core/gate.ts`'s `startHarnessExecution` is deliberately NOT reused for the
51
+ * bypass record: it refuses on an unattested policy, on manual, on the loop
52
+ * floor and on budget, which are the very things being bypassed. What is reused
53
+ * is the mechanism, `appendEvent` with `expectedHead` under a head-moved retry.
54
+ */
55
+ import { type ClockOptions } from "./clock.js";
56
+ import { type HarnessProvenance } from "./harness-version.js";
57
+ import { type AppendError, type AppendOptions, type EventRecord } from "./log.js";
58
+ /** What an open window suspends. One value at v0.1, matching the schema enum. */
59
+ export declare const GATE_WINDOW_SCOPE = "hook";
60
+ /** The duration `approval gate open` uses when none is asked for. */
61
+ export declare const DEFAULT_WINDOW = "30m";
62
+ /**
63
+ * The longest window anyone may open, enforced at BOTH ends: `openWindow`
64
+ * refuses a longer one, and {@link openGateWindow} clamps a record claiming one
65
+ * so that a hand-written `gate.opened` buys no more time than the ceremony
66
+ * would have granted.
67
+ *
68
+ * A day, because the window's purpose is one debugging session and because a
69
+ * bypass that outlives the person's attention is a bypass nobody is watching.
70
+ */
71
+ export declare const MAX_WINDOW_MS: number;
72
+ /**
73
+ * The verb-level refusal codes of the open window. **Frozen union**, in the
74
+ * same sense as `GATE_REFUSAL_CODES`, `EXECUTION_REFUSAL_CODES`,
75
+ * `AUDIT_REFUSAL_CODES`, `DARK_SESSION_CODES` and `HOOK_DENY_CODES`: a caller
76
+ * branches on these, so members are added and never repurposed (SPEC.md §11.1
77
+ * invariant 6, which this makes the sixth such union).
78
+ *
79
+ * Every one of them appends nothing.
80
+ */
81
+ export declare const GATE_WINDOW_REFUSAL_CODES: readonly [
82
+ /**
83
+ * The actor is not `human:`-prefixed. Opening a window is the one act that
84
+ * suspends the policy, so an agent able to perform it could authorize its own
85
+ * next command. Refused here in code, and again in `event.schema.json`.
86
+ */
87
+ "actor-not-human",
88
+ /** No reason was given. A bypass nobody stated a reason for cannot be reviewed. */
89
+ "gate-reason-required",
90
+ /**
91
+ * The duration is over {@link MAX_WINDOW_MS}, zero, negative, or unreadable.
92
+ * One code for the family because the repair is one sentence: ask for a
93
+ * shorter window, spelled the way SPEC.md §5.2 spells durations.
94
+ */
95
+ "gate-duration-too-long",
96
+ /** A window is already open. Close it, or wait for it to lapse. */
97
+ "gate-already-open",
98
+ /**
99
+ * No window is open. `close` says so rather than appending a record that
100
+ * closes nothing, and a bypass asked for with no window behind it at all says
101
+ * so rather than recording a bypass nothing authorized.
102
+ */
103
+ "gate-not-open",
104
+ /**
105
+ * The window a caller DECIDED under is gone by the time the bypass is
106
+ * recorded (APRV-294).
107
+ *
108
+ * Distinct from `gate-not-open`, and the difference is the fact each states.
109
+ * That one says there was no window to begin with, which is the ordinary
110
+ * closed gate. This one says a window stood when the verdict was formed and
111
+ * does not stand at the append: a human closed it, it lapsed, or a later
112
+ * `gate.opened` superseded the one the caller named. The refusal names the
113
+ * `gate.closed` seq that ended it, or the expiry it ran past, so a reviewer
114
+ * holding the log alone can place the boundary.
115
+ *
116
+ * The repair is a retry, and it is a retry of an ordinary gated tool call:
117
+ * nothing is appended here, nothing ran, and the next invocation derives the
118
+ * window from its own read and is answered by the policy where there is none.
119
+ * A refusal on this path is therefore not a failed execution and accrues no
120
+ * loop-safety streak (SPEC.md §10.2), because no execution was started for it.
121
+ */
122
+ "gate-window-closed",
123
+ /**
124
+ * Stdin is not a terminal (or `--json` was asked for). The ceremony is a
125
+ * person typing a word, and a prompt a pipe could answer is a ceremony a
126
+ * harness shell tool can perform.
127
+ */
128
+ "gate-stdin-not-tty",
129
+ /** The typed confirmation was not exactly `understood`. Includes EOF. */
130
+ "gate-confirmation-mismatch",
131
+ /** The log could not be opened. */
132
+ "log-unreadable",
133
+ /** The log's last line is truncated: a crashed write, repaired by a human. */
134
+ "log-torn-tail",
135
+ /** The chain does not verify, so no window may be derived from it. */
136
+ "log-corrupt",
137
+ /** The append itself was refused; `append` carries the writer's own code. */
138
+ "append-failed"];
139
+ export type GateWindowRefusalCode = (typeof GATE_WINDOW_REFUSAL_CODES)[number];
140
+ /** A refusal from this module. Nothing was appended. */
141
+ export interface GateWindowRefusal {
142
+ ok: false;
143
+ code: GateWindowRefusalCode;
144
+ message: string;
145
+ /** The underlying writer error, when `code` is `append-failed`. */
146
+ append?: AppendError;
147
+ }
148
+ /** An open window, as derived from the log. */
149
+ export interface OpenWindow {
150
+ /** The `seq` of the `gate.opened` record. Every bypass names it. */
151
+ seq: number;
152
+ /** The runtime-stamped instant the window opened. */
153
+ openedAt: string;
154
+ /** The human who opened it. */
155
+ openedBy: string;
156
+ /** Why, in their words. */
157
+ reason: string;
158
+ /** The effective length, after the {@link MAX_WINDOW_MS} clamp. */
159
+ durationMs: number;
160
+ /** The effective expiry: the earlier of `ts + duration` and the claim. */
161
+ expiresAt: string;
162
+ /** How many `gate.bypassed` records name this window so far. */
163
+ bypassCount: number;
164
+ }
165
+ /** A successful append, with the window the caller may now report. */
166
+ export interface GateWindowResult {
167
+ ok: true;
168
+ record: EventRecord;
169
+ window: OpenWindow;
170
+ }
171
+ /** A successful close: the record, and the window it ended. */
172
+ export interface GateCloseResult {
173
+ ok: true;
174
+ record: EventRecord;
175
+ closed: OpenWindow;
176
+ }
177
+ /** Options every write here accepts: the injected clock, plus append tuning. */
178
+ export interface GateWindowOptions extends ClockOptions {
179
+ schemaDir?: string;
180
+ append?: AppendOptions;
181
+ /** Lowers the head-moved attempt bound; never raises it. */
182
+ retryOnHeadMoved?: number;
183
+ }
184
+ /**
185
+ * The window open at `now`, or `null`.
186
+ *
187
+ * Pure over the records it is given, so every caller (the hook, the CLI verb,
188
+ * `approval status`) derives the same fact from the same log and none of them
189
+ * reads a clock of its own.
190
+ *
191
+ * Only the LATEST `gate.opened` is considered. An older one that was never
192
+ * closed is not a second window: the ceremony refuses to open a second while
193
+ * one stands, so an unclosed older record is either lapsed or superseded, and
194
+ * treating it as live would let a stale record outlive the window a human
195
+ * actually opened.
196
+ *
197
+ * Every ambiguity resolves closed. An unreadable duration, a missing reason, a
198
+ * `ts` that does not parse: each yields `null` rather than a window nobody can
199
+ * state the bounds of.
200
+ */
201
+ export declare function openGateWindow(records: readonly EventRecord[], now?: Date | number): OpenWindow | null;
202
+ /** Milliseconds left on a window at `now`, floored at zero. */
203
+ export declare function remainingMs(window: OpenWindow, now?: Date | number): number;
204
+ /** What `approval gate open` asks for, already parsed by its caller. */
205
+ export interface OpenWindowInput {
206
+ /** The duration as typed (`30m`), recorded verbatim on the event. */
207
+ durationText: string;
208
+ /** The same duration in milliseconds, as the caller parsed it. */
209
+ durationMs: number;
210
+ /** Why the window is being opened. */
211
+ reason: string;
212
+ }
213
+ /**
214
+ * Append `gate.opened`, after establishing that the actor is a human, the
215
+ * duration is inside the cap, and no window is already open.
216
+ *
217
+ * One `tick()` supplies BOTH the record's `ts` and its `expires_at`, so the two
218
+ * cannot disagree by a scheduling delay and the derived expiry is exactly the
219
+ * claimed one on a record this runtime wrote.
220
+ */
221
+ export declare function openWindow(logPath: string, input: OpenWindowInput, actor: string, options?: GateWindowOptions): GateWindowResult | GateWindowRefusal;
222
+ /**
223
+ * Append `gate.closed` for whatever window stands.
224
+ *
225
+ * No confirmation anywhere on this path: closing only ever TIGHTENS, and a
226
+ * ceremony guarding the safe direction is a ceremony people learn to type past.
227
+ */
228
+ export declare function closeWindow(logPath: string, actor: string, options?: GateWindowOptions & {
229
+ note?: string;
230
+ }): GateCloseResult | GateWindowRefusal;
231
+ /** One gated tool call the hook is about to allow because a window is open. */
232
+ export interface GateBypassInput {
233
+ /** The harness tool the call came through. */
234
+ tool: string;
235
+ /** The one-line headline, already truncated to the hook's `SUMMARY_LIMIT`. */
236
+ summary: string;
237
+ /** The classes the command resolved to. At least one. */
238
+ classes: readonly string[];
239
+ /** The `payload_hash` of the binding bytes. */
240
+ payloadHash: string;
241
+ sessionId?: string;
242
+ toolUseId?: string;
243
+ cwd?: string;
244
+ /**
245
+ * Which harness binary is printing the allow, and at what version (APRV-227).
246
+ *
247
+ * Derived by the hook process from its own event and its own PATH and handed
248
+ * in here; copied into the payload verbatim when present, omitted entirely
249
+ * when absent. Nothing reads it back — the window was authorized by a human's
250
+ * `gate.opened` and this pair moves no part of that (SPEC.md §11.1 invariant
251
+ * 4, and `core/harness-version.ts`'s header). What it does is let a reviewer
252
+ * of a bypass see which binary was standing in front of the gate at the time,
253
+ * which on this path is the record a human actually goes back and reads.
254
+ */
255
+ harness?: HarnessProvenance;
256
+ }
257
+ /**
258
+ * The window verdict a caller already reached, handed to the append that
259
+ * records it (APRV-294).
260
+ *
261
+ * ## Why the append takes the caller's read
262
+ *
263
+ * On 2026-09-07 two hook invocations disagreed about one window inside a
264
+ * minute: the first decided "open" from its own verified read and took the
265
+ * bypass path, and the append re-read, derived no window from the fresher
266
+ * bytes, and refused `gate-not-open`. Both reads were honest and the pair was
267
+ * not: the verdict was formed on one view of the log and acted on another, and
268
+ * the refusal named a state ("no window is open") that had never been true for
269
+ * the invocation being refused.
270
+ *
271
+ * So the decision travels with the write. `read` is the verified read the
272
+ * caller derived its window from, used by the FIRST append attempt, which makes
273
+ * the decision and the record one read rather than two. `openedSeq` is the
274
+ * window that decision named, and it outlives the seed: a `head-moved` retry
275
+ * re-reads (it must — the head it would chain onto has moved), and the window
276
+ * it then derives is compared against this seq, so a window that ended in
277
+ * between refuses {@link GATE_WINDOW_REFUSAL_CODES}'s `gate-window-closed`
278
+ * naming what ended it rather than the bare `gate-not-open`.
279
+ *
280
+ * Nothing here reads unverified bytes as verified: `read` is the caller's own
281
+ * verified read, and every retry past the first performs its own (§11.1
282
+ * invariant 1).
283
+ */
284
+ export interface GateBypassDecision {
285
+ /** The `seq` of the `gate.opened` the caller's verdict was decided under. */
286
+ openedSeq: number;
287
+ /** The verified read that verdict was formed on. The first attempt uses it. */
288
+ read?: {
289
+ records: readonly EventRecord[];
290
+ head: {
291
+ seq: number;
292
+ hash: string;
293
+ } | null;
294
+ };
295
+ }
296
+ /**
297
+ * Record a bypassed tool call, BEFORE its allow is printed.
298
+ *
299
+ * The order is record-then-allow for the same reason `recordUnattended`'s is
300
+ * (§11.1 invariant 8): a bypassed command that ran and left no record is the
301
+ * one state this whole feature must not be able to reach, so an append failure
302
+ * is the caller's deny.
303
+ *
304
+ * The window is re-derived on every attempt past the first. A head that moved
305
+ * says the read was stale, so the next attempt re-reads, re-derives, and appends
306
+ * against the head it saw; a window that lapsed or was closed refuses rather
307
+ * than recording a bypass nothing authorized. Which refusal depends on what the
308
+ * caller stated: with a {@link GateBypassDecision} in hand the refusal is
309
+ * `gate-window-closed` and names the record or the expiry that ended the window,
310
+ * and with none it is the historical `gate-not-open`.
311
+ */
312
+ export declare function recordGateBypass(logPath: string, input: GateBypassInput, actor: string, options?: GateWindowOptions, decided?: GateBypassDecision): GateWindowResult | GateWindowRefusal;