approval-md 0.0.1 → 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.
- package/LICENSE +176 -0
- package/NOTICE +5 -0
- package/README.md +940 -4
- package/SPEC.md +476 -34
- package/cli.js +29 -3
- package/dist/src/adapters/agentmail.d.ts +426 -0
- package/dist/src/adapters/agentmail.js +1200 -0
- package/dist/src/adapters/agentmail.js.map +1 -0
- package/dist/src/adapters/conformance.d.ts +149 -0
- package/dist/src/adapters/conformance.js +461 -0
- package/dist/src/adapters/conformance.js.map +1 -0
- package/dist/src/adapters/contract.d.ts +628 -0
- package/dist/src/adapters/contract.js +1035 -0
- package/dist/src/adapters/contract.js.map +1 -0
- package/dist/src/adapters/email.d.ts +324 -0
- package/dist/src/adapters/email.js +749 -0
- package/dist/src/adapters/email.js.map +1 -0
- package/dist/src/adapters/env-passphrase.d.ts +93 -0
- package/dist/src/adapters/env-passphrase.js +132 -0
- package/dist/src/adapters/env-passphrase.js.map +1 -0
- package/dist/src/adapters/public.d.ts +11 -0
- package/dist/src/adapters/public.js +11 -0
- package/dist/src/adapters/public.js.map +1 -0
- package/dist/src/adapters/registry.d.ts +59 -0
- package/dist/src/adapters/registry.js +77 -0
- package/dist/src/adapters/registry.js.map +1 -0
- package/dist/src/adapters/smtp.d.ts +213 -0
- package/dist/src/adapters/smtp.js +499 -0
- package/dist/src/adapters/smtp.js.map +1 -0
- package/dist/src/adapters/vault-provider.d.ts +114 -0
- package/dist/src/adapters/vault-provider.js +161 -0
- package/dist/src/adapters/vault-provider.js.map +1 -0
- package/dist/src/adapters/zzz.d.ts +66 -0
- package/dist/src/adapters/zzz.js +299 -0
- package/dist/src/adapters/zzz.js.map +1 -0
- package/dist/src/channels/batch.d.ts +109 -0
- package/dist/src/channels/batch.js +121 -0
- package/dist/src/channels/batch.js.map +1 -0
- package/dist/src/channels/cli.d.ts +193 -0
- package/dist/src/channels/cli.js +468 -0
- package/dist/src/channels/cli.js.map +1 -0
- package/dist/src/channels/conformance.d.ts +92 -0
- package/dist/src/channels/conformance.js +445 -0
- package/dist/src/channels/conformance.js.map +1 -0
- package/dist/src/channels/contract.d.ts +623 -0
- package/dist/src/channels/contract.js +494 -0
- package/dist/src/channels/contract.js.map +1 -0
- package/dist/src/channels/payload-view.d.ts +35 -0
- package/dist/src/channels/payload-view.js +43 -0
- package/dist/src/channels/payload-view.js.map +1 -0
- package/dist/src/channels/render-queue.d.ts +149 -0
- package/dist/src/channels/render-queue.js +564 -0
- package/dist/src/channels/render-queue.js.map +1 -0
- package/dist/src/channels/tagging.d.ts +196 -0
- package/dist/src/channels/tagging.js +723 -0
- package/dist/src/channels/tagging.js.map +1 -0
- package/dist/src/channels/telegram.d.ts +1832 -0
- package/dist/src/channels/telegram.js +3190 -0
- package/dist/src/channels/telegram.js.map +1 -0
- package/dist/src/channels/web.d.ts +341 -0
- package/dist/src/channels/web.js +903 -0
- package/dist/src/channels/web.js.map +1 -0
- package/dist/src/cli/adapter.d.ts +90 -0
- package/dist/src/cli/adapter.js +288 -0
- package/dist/src/cli/adapter.js.map +1 -0
- package/dist/src/cli/amend.d.ts +59 -0
- package/dist/src/cli/amend.js +2171 -0
- package/dist/src/cli/amend.js.map +1 -0
- package/dist/src/cli/args.d.ts +43 -0
- package/dist/src/cli/args.js +86 -0
- package/dist/src/cli/args.js.map +1 -0
- package/dist/src/cli/attest.d.ts +41 -0
- package/dist/src/cli/attest.js +307 -0
- package/dist/src/cli/attest.js.map +1 -0
- package/dist/src/cli/audit-card.d.ts +62 -0
- package/dist/src/cli/audit-card.js +201 -0
- package/dist/src/cli/audit-card.js.map +1 -0
- package/dist/src/cli/audit.d.ts +59 -0
- package/dist/src/cli/audit.js +460 -0
- package/dist/src/cli/audit.js.map +1 -0
- package/dist/src/cli/channel-telegram.d.ts +806 -0
- package/dist/src/cli/channel-telegram.js +2063 -0
- package/dist/src/cli/channel-telegram.js.map +1 -0
- package/dist/src/cli/channel-web.d.ts +131 -0
- package/dist/src/cli/channel-web.js +357 -0
- package/dist/src/cli/channel-web.js.map +1 -0
- package/dist/src/cli/channel.d.ts +71 -0
- package/dist/src/cli/channel.js +438 -0
- package/dist/src/cli/channel.js.map +1 -0
- package/dist/src/cli/checkpoint-tap.d.ts +169 -0
- package/dist/src/cli/checkpoint-tap.js +238 -0
- package/dist/src/cli/checkpoint-tap.js.map +1 -0
- package/dist/src/cli/codex.d.ts +2 -0
- package/dist/src/cli/codex.js +172 -0
- package/dist/src/cli/codex.js.map +1 -0
- package/dist/src/cli/coverage.d.ts +61 -0
- package/dist/src/cli/coverage.js +343 -0
- package/dist/src/cli/coverage.js.map +1 -0
- package/dist/src/cli/daemon.d.ts +120 -0
- package/dist/src/cli/daemon.js +631 -0
- package/dist/src/cli/daemon.js.map +1 -0
- package/dist/src/cli/doctor.d.ts +129 -0
- package/dist/src/cli/doctor.js +2762 -0
- package/dist/src/cli/doctor.js.map +1 -0
- package/dist/src/cli/env.d.ts +65 -0
- package/dist/src/cli/env.js +302 -0
- package/dist/src/cli/env.js.map +1 -0
- package/dist/src/cli/execute.d.ts +202 -0
- package/dist/src/cli/execute.js +1682 -0
- package/dist/src/cli/execute.js.map +1 -0
- package/dist/src/cli/exit-codes.d.ts +73 -0
- package/dist/src/cli/exit-codes.js +82 -0
- package/dist/src/cli/exit-codes.js.map +1 -0
- package/dist/src/cli/feedback.d.ts +60 -0
- package/dist/src/cli/feedback.js +205 -0
- package/dist/src/cli/feedback.js.map +1 -0
- package/dist/src/cli/gate-window.d.ts +40 -0
- package/dist/src/cli/gate-window.js +294 -0
- package/dist/src/cli/gate-window.js.map +1 -0
- package/dist/src/cli/gate.d.ts +68 -0
- package/dist/src/cli/gate.js +557 -0
- package/dist/src/cli/gate.js.map +1 -0
- package/dist/src/cli/git-scope.d.ts +190 -0
- package/dist/src/cli/git-scope.js +295 -0
- package/dist/src/cli/git-scope.js.map +1 -0
- package/dist/src/cli/gloss-attach.d.ts +85 -0
- package/dist/src/cli/gloss-attach.js +107 -0
- package/dist/src/cli/gloss-attach.js.map +1 -0
- package/dist/src/cli/gloss-codex-child.d.ts +9 -0
- package/dist/src/cli/gloss-codex-child.js +149 -0
- package/dist/src/cli/gloss-codex-child.js.map +1 -0
- package/dist/src/cli/gloss-codex.d.ts +24 -0
- package/dist/src/cli/gloss-codex.js +255 -0
- package/dist/src/cli/gloss-codex.js.map +1 -0
- package/dist/src/cli/gloss-options.d.ts +42 -0
- package/dist/src/cli/gloss-options.js +79 -0
- package/dist/src/cli/gloss-options.js.map +1 -0
- package/dist/src/cli/gloss.d.ts +265 -0
- package/dist/src/cli/gloss.js +362 -0
- package/dist/src/cli/gloss.js.map +1 -0
- package/dist/src/cli/help.d.ts +103 -0
- package/dist/src/cli/help.js +2339 -0
- package/dist/src/cli/help.js.map +1 -0
- package/dist/src/cli/hook-codex.d.ts +78 -0
- package/dist/src/cli/hook-codex.js +167 -0
- package/dist/src/cli/hook-codex.js.map +1 -0
- package/dist/src/cli/hook.d.ts +331 -0
- package/dist/src/cli/hook.js +2849 -0
- package/dist/src/cli/hook.js.map +1 -0
- package/dist/src/cli/import.d.ts +35 -0
- package/dist/src/cli/import.js +175 -0
- package/dist/src/cli/import.js.map +1 -0
- package/dist/src/cli/init.d.ts +84 -0
- package/dist/src/cli/init.js +336 -0
- package/dist/src/cli/init.js.map +1 -0
- package/dist/src/cli/instructions.d.ts +23 -0
- package/dist/src/cli/instructions.js +262 -0
- package/dist/src/cli/instructions.js.map +1 -0
- package/dist/src/cli/journal.d.ts +41 -0
- package/dist/src/cli/journal.js +238 -0
- package/dist/src/cli/journal.js.map +1 -0
- package/dist/src/cli/log-advance.d.ts +287 -0
- package/dist/src/cli/log-advance.js +840 -0
- package/dist/src/cli/log-advance.js.map +1 -0
- package/dist/src/cli/log-anchor.d.ts +176 -0
- package/dist/src/cli/log-anchor.js +387 -0
- package/dist/src/cli/log-anchor.js.map +1 -0
- package/dist/src/cli/log-checkpoint.d.ts +22 -0
- package/dist/src/cli/log-checkpoint.js +128 -0
- package/dist/src/cli/log-checkpoint.js.map +1 -0
- package/dist/src/cli/log-sync.d.ts +243 -0
- package/dist/src/cli/log-sync.js +849 -0
- package/dist/src/cli/log-sync.js.map +1 -0
- package/dist/src/cli/log-verbs.d.ts +16 -0
- package/dist/src/cli/log-verbs.js +360 -0
- package/dist/src/cli/log-verbs.js.map +1 -0
- package/dist/src/cli/long-help.d.ts +70 -0
- package/dist/src/cli/long-help.js +148 -0
- package/dist/src/cli/long-help.js.map +1 -0
- package/dist/src/cli/main.d.ts +77 -0
- package/dist/src/cli/main.js +1206 -0
- package/dist/src/cli/main.js.map +1 -0
- package/dist/src/cli/mcp.d.ts +52 -0
- package/dist/src/cli/mcp.js +306 -0
- package/dist/src/cli/mcp.js.map +1 -0
- package/dist/src/cli/paths.d.ts +56 -0
- package/dist/src/cli/paths.js +79 -0
- package/dist/src/cli/paths.js.map +1 -0
- package/dist/src/cli/payload.d.ts +58 -0
- package/dist/src/cli/payload.js +253 -0
- package/dist/src/cli/payload.js.map +1 -0
- package/dist/src/cli/policy.d.ts +43 -0
- package/dist/src/cli/policy.js +229 -0
- package/dist/src/cli/policy.js.map +1 -0
- package/dist/src/cli/preflight.d.ts +363 -0
- package/dist/src/cli/preflight.js +1175 -0
- package/dist/src/cli/preflight.js.map +1 -0
- package/dist/src/cli/progress.d.ts +78 -0
- package/dist/src/cli/progress.js +112 -0
- package/dist/src/cli/progress.js.map +1 -0
- package/dist/src/cli/prompt.d.ts +209 -0
- package/dist/src/cli/prompt.js +312 -0
- package/dist/src/cli/prompt.js.map +1 -0
- package/dist/src/cli/quickstart.d.ts +46 -0
- package/dist/src/cli/quickstart.js +297 -0
- package/dist/src/cli/quickstart.js.map +1 -0
- package/dist/src/cli/records.d.ts +34 -0
- package/dist/src/cli/records.js +66 -0
- package/dist/src/cli/records.js.map +1 -0
- package/dist/src/cli/render.d.ts +22 -0
- package/dist/src/cli/render.js +132 -0
- package/dist/src/cli/render.js.map +1 -0
- package/dist/src/cli/sandbox.d.ts +51 -0
- package/dist/src/cli/sandbox.js +150 -0
- package/dist/src/cli/sandbox.js.map +1 -0
- package/dist/src/cli/scaffold.d.ts +79 -0
- package/dist/src/cli/scaffold.js +137 -0
- package/dist/src/cli/scaffold.js.map +1 -0
- package/dist/src/cli/setup-adapter.d.ts +137 -0
- package/dist/src/cli/setup-adapter.js +509 -0
- package/dist/src/cli/setup-adapter.js.map +1 -0
- package/dist/src/cli/setup-channel.d.ts +117 -0
- package/dist/src/cli/setup-channel.js +635 -0
- package/dist/src/cli/setup-channel.js.map +1 -0
- package/dist/src/cli/setup-checkpoint.d.ts +57 -0
- package/dist/src/cli/setup-checkpoint.js +196 -0
- package/dist/src/cli/setup-checkpoint.js.map +1 -0
- package/dist/src/cli/setup-common.d.ts +275 -0
- package/dist/src/cli/setup-common.js +376 -0
- package/dist/src/cli/setup-common.js.map +1 -0
- package/dist/src/cli/setup-flow.d.ts +287 -0
- package/dist/src/cli/setup-flow.js +476 -0
- package/dist/src/cli/setup-flow.js.map +1 -0
- package/dist/src/cli/setup-service.d.ts +96 -0
- package/dist/src/cli/setup-service.js +308 -0
- package/dist/src/cli/setup-service.js.map +1 -0
- package/dist/src/cli/setup.d.ts +202 -0
- package/dist/src/cli/setup.js +473 -0
- package/dist/src/cli/setup.js.map +1 -0
- package/dist/src/cli/style.d.ts +320 -0
- package/dist/src/cli/style.js +469 -0
- package/dist/src/cli/style.js.map +1 -0
- package/dist/src/cli/token.d.ts +39 -0
- package/dist/src/cli/token.js +274 -0
- package/dist/src/cli/token.js.map +1 -0
- package/dist/src/cli/up.d.ts +155 -0
- package/dist/src/cli/up.js +849 -0
- package/dist/src/cli/up.js.map +1 -0
- package/dist/src/cli/usage.d.ts +37 -0
- package/dist/src/cli/usage.js +91 -0
- package/dist/src/cli/usage.js.map +1 -0
- package/dist/src/cli/values.d.ts +40 -0
- package/dist/src/cli/values.js +189 -0
- package/dist/src/cli/values.js.map +1 -0
- package/dist/src/cli/vault.d.ts +59 -0
- package/dist/src/cli/vault.js +362 -0
- package/dist/src/cli/vault.js.map +1 -0
- package/dist/src/cli/verb-registry.d.ts +76 -0
- package/dist/src/cli/verb-registry.js +2341 -0
- package/dist/src/cli/verb-registry.js.map +1 -0
- package/dist/src/cli/wordmark.d.ts +31 -0
- package/dist/src/cli/wordmark.js +52 -0
- package/dist/src/cli/wordmark.js.map +1 -0
- package/dist/src/codex/doctor.d.ts +13 -0
- package/dist/src/codex/doctor.js +41 -0
- package/dist/src/codex/doctor.js.map +1 -0
- package/dist/src/codex/manifest.d.ts +49 -0
- package/dist/src/codex/manifest.js +103 -0
- package/dist/src/codex/manifest.js.map +1 -0
- package/dist/src/codex/templates.d.ts +41 -0
- package/dist/src/codex/templates.js +319 -0
- package/dist/src/codex/templates.js.map +1 -0
- package/dist/src/codex/trust.d.ts +19 -0
- package/dist/src/codex/trust.js +183 -0
- package/dist/src/codex/trust.js.map +1 -0
- package/dist/src/codex/workspace-plan.d.ts +131 -0
- package/dist/src/codex/workspace-plan.js +561 -0
- package/dist/src/codex/workspace-plan.js.map +1 -0
- package/dist/src/core/actor.d.ts +2 -0
- package/dist/src/core/actor.js +5 -0
- package/dist/src/core/actor.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +170 -0
- package/dist/src/core/advance-cycle.js +200 -0
- package/dist/src/core/advance-cycle.js.map +1 -0
- package/dist/src/core/agents-md.d.ts +276 -0
- package/dist/src/core/agents-md.js +747 -0
- package/dist/src/core/agents-md.js.map +1 -0
- package/dist/src/core/apply-patch.d.ts +49 -0
- package/dist/src/core/apply-patch.js +266 -0
- package/dist/src/core/apply-patch.js.map +1 -0
- package/dist/src/core/attest.d.ts +420 -0
- package/dist/src/core/attest.js +589 -0
- package/dist/src/core/attest.js.map +1 -0
- package/dist/src/core/audit.d.ts +492 -0
- package/dist/src/core/audit.js +882 -0
- package/dist/src/core/audit.js.map +1 -0
- package/dist/src/core/budgets.d.ts +238 -0
- package/dist/src/core/budgets.js +449 -0
- package/dist/src/core/budgets.js.map +1 -0
- package/dist/src/core/checkpoint.d.ts +500 -0
- package/dist/src/core/checkpoint.js +738 -0
- package/dist/src/core/checkpoint.js.map +1 -0
- package/dist/src/core/child-env.d.ts +88 -0
- package/dist/src/core/child-env.js +86 -0
- package/dist/src/core/child-env.js.map +1 -0
- package/dist/src/core/clock.d.ts +52 -0
- package/dist/src/core/clock.js +43 -0
- package/dist/src/core/clock.js.map +1 -0
- package/dist/src/core/command-class.d.ts +543 -0
- package/dist/src/core/command-class.js +2356 -0
- package/dist/src/core/command-class.js.map +1 -0
- package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
- package/dist/src/core/coverage-sources/adapter.js +71 -0
- package/dist/src/core/coverage-sources/adapter.js.map +1 -0
- package/dist/src/core/coverage-sources/gh.d.ts +48 -0
- package/dist/src/core/coverage-sources/gh.js +136 -0
- package/dist/src/core/coverage-sources/gh.js.map +1 -0
- package/dist/src/core/coverage-sources/git.d.ts +101 -0
- package/dist/src/core/coverage-sources/git.js +269 -0
- package/dist/src/core/coverage-sources/git.js.map +1 -0
- package/dist/src/core/coverage.d.ts +217 -0
- package/dist/src/core/coverage.js +337 -0
- package/dist/src/core/coverage.js.map +1 -0
- package/dist/src/core/credential-spec.d.ts +72 -0
- package/dist/src/core/credential-spec.js +23 -0
- package/dist/src/core/credential-spec.js.map +1 -0
- package/dist/src/core/dark-session.d.ts +331 -0
- package/dist/src/core/dark-session.js +714 -0
- package/dist/src/core/dark-session.js.map +1 -0
- package/dist/src/core/decision-refusal.d.ts +185 -0
- package/dist/src/core/decision-refusal.js +265 -0
- package/dist/src/core/decision-refusal.js.map +1 -0
- package/dist/src/core/env-file.d.ts +450 -0
- package/dist/src/core/env-file.js +837 -0
- package/dist/src/core/env-file.js.map +1 -0
- package/dist/src/core/execute.d.ts +858 -0
- package/dist/src/core/execute.js +1271 -0
- package/dist/src/core/execute.js.map +1 -0
- package/dist/src/core/frontmatter.d.ts +78 -0
- package/dist/src/core/frontmatter.js +100 -0
- package/dist/src/core/frontmatter.js.map +1 -0
- package/dist/src/core/gate-window.d.ts +312 -0
- package/dist/src/core/gate-window.js +506 -0
- package/dist/src/core/gate-window.js.map +1 -0
- package/dist/src/core/gate.d.ts +1364 -0
- package/dist/src/core/gate.js +3002 -0
- package/dist/src/core/gate.js.map +1 -0
- package/dist/src/core/git-run.d.ts +73 -0
- package/dist/src/core/git-run.js +93 -0
- package/dist/src/core/git-run.js.map +1 -0
- package/dist/src/core/harness-version.d.ts +157 -0
- package/dist/src/core/harness-version.js +211 -0
- package/dist/src/core/harness-version.js.map +1 -0
- package/dist/src/core/harness-wait.d.ts +55 -0
- package/dist/src/core/harness-wait.js +58 -0
- package/dist/src/core/harness-wait.js.map +1 -0
- package/dist/src/core/head-retry.d.ts +107 -0
- package/dist/src/core/head-retry.js +121 -0
- package/dist/src/core/head-retry.js.map +1 -0
- package/dist/src/core/instance.d.ts +253 -0
- package/dist/src/core/instance.js +319 -0
- package/dist/src/core/instance.js.map +1 -0
- package/dist/src/core/intake-limits.d.ts +247 -0
- package/dist/src/core/intake-limits.js +350 -0
- package/dist/src/core/intake-limits.js.map +1 -0
- package/dist/src/core/jcs.d.ts +52 -0
- package/dist/src/core/jcs.js +132 -0
- package/dist/src/core/jcs.js.map +1 -0
- package/dist/src/core/journal.d.ts +144 -0
- package/dist/src/core/journal.js +200 -0
- package/dist/src/core/journal.js.map +1 -0
- package/dist/src/core/live-draw.d.ts +436 -0
- package/dist/src/core/live-draw.js +703 -0
- package/dist/src/core/live-draw.js.map +1 -0
- package/dist/src/core/log-reconcile.d.ts +89 -0
- package/dist/src/core/log-reconcile.js +136 -0
- package/dist/src/core/log-reconcile.js.map +1 -0
- package/dist/src/core/log-subscribe.d.ts +36 -0
- package/dist/src/core/log-subscribe.js +162 -0
- package/dist/src/core/log-subscribe.js.map +1 -0
- package/dist/src/core/log.d.ts +278 -0
- package/dist/src/core/log.js +546 -0
- package/dist/src/core/log.js.map +1 -0
- package/dist/src/core/loop.d.ts +274 -0
- package/dist/src/core/loop.js +487 -0
- package/dist/src/core/loop.js.map +1 -0
- package/dist/src/core/md-fence.d.ts +41 -0
- package/dist/src/core/md-fence.js +74 -0
- package/dist/src/core/md-fence.js.map +1 -0
- package/dist/src/core/money.d.ts +147 -0
- package/dist/src/core/money.js +195 -0
- package/dist/src/core/money.js.map +1 -0
- package/dist/src/core/payload-census.d.ts +74 -0
- package/dist/src/core/payload-census.js +146 -0
- package/dist/src/core/payload-census.js.map +1 -0
- package/dist/src/core/payload-store.d.ts +175 -0
- package/dist/src/core/payload-store.js +340 -0
- package/dist/src/core/payload-store.js.map +1 -0
- package/dist/src/core/payload.d.ts +71 -0
- package/dist/src/core/payload.js +80 -0
- package/dist/src/core/payload.js.map +1 -0
- package/dist/src/core/policy-diff.d.ts +292 -0
- package/dist/src/core/policy-diff.js +588 -0
- package/dist/src/core/policy-diff.js.map +1 -0
- package/dist/src/core/policy-expectations.d.ts +199 -0
- package/dist/src/core/policy-expectations.js +394 -0
- package/dist/src/core/policy-expectations.js.map +1 -0
- package/dist/src/core/policy-explain.d.ts +150 -0
- package/dist/src/core/policy-explain.js +258 -0
- package/dist/src/core/policy-explain.js.map +1 -0
- package/dist/src/core/policy-load.d.ts +527 -0
- package/dist/src/core/policy-load.js +536 -0
- package/dist/src/core/policy-load.js.map +1 -0
- package/dist/src/core/policy-match.d.ts +281 -0
- package/dist/src/core/policy-match.js +478 -0
- package/dist/src/core/policy-match.js.map +1 -0
- package/dist/src/core/policy-proposal.d.ts +265 -0
- package/dist/src/core/policy-proposal.js +458 -0
- package/dist/src/core/policy-proposal.js.map +1 -0
- package/dist/src/core/prompt-layout.d.ts +221 -0
- package/dist/src/core/prompt-layout.js +422 -0
- package/dist/src/core/prompt-layout.js.map +1 -0
- package/dist/src/core/protected-path-guard.d.ts +453 -0
- package/dist/src/core/protected-path-guard.js +1566 -0
- package/dist/src/core/protected-path-guard.js.map +1 -0
- package/dist/src/core/registration.d.ts +25 -0
- package/dist/src/core/registration.js +39 -0
- package/dist/src/core/registration.js.map +1 -0
- package/dist/src/core/reindex.d.ts +99 -0
- package/dist/src/core/reindex.js +336 -0
- package/dist/src/core/reindex.js.map +1 -0
- package/dist/src/core/sampler.d.ts +313 -0
- package/dist/src/core/sampler.js +388 -0
- package/dist/src/core/sampler.js.map +1 -0
- package/dist/src/core/sandbox.d.ts +290 -0
- package/dist/src/core/sandbox.js +424 -0
- package/dist/src/core/sandbox.js.map +1 -0
- package/dist/src/core/seal.d.ts +165 -0
- package/dist/src/core/seal.js +290 -0
- package/dist/src/core/seal.js.map +1 -0
- package/dist/src/core/state.d.ts +505 -0
- package/dist/src/core/state.js +1009 -0
- package/dist/src/core/state.js.map +1 -0
- package/dist/src/core/task-file.d.ts +185 -0
- package/dist/src/core/task-file.js +464 -0
- package/dist/src/core/task-file.js.map +1 -0
- package/dist/src/core/telegram-config.d.ts +93 -0
- package/dist/src/core/telegram-config.js +114 -0
- package/dist/src/core/telegram-config.js.map +1 -0
- package/dist/src/core/token.d.ts +409 -0
- package/dist/src/core/token.js +561 -0
- package/dist/src/core/token.js.map +1 -0
- package/dist/src/core/validate.d.ts +138 -0
- package/dist/src/core/validate.js +0 -0
- package/dist/src/core/validate.js.map +1 -0
- package/dist/src/core/values.d.ts +137 -0
- package/dist/src/core/values.js +153 -0
- package/dist/src/core/values.js.map +1 -0
- package/dist/src/core/vault.d.ts +291 -0
- package/dist/src/core/vault.js +612 -0
- package/dist/src/core/vault.js.map +1 -0
- package/dist/src/core/verified-snapshot.d.ts +204 -0
- package/dist/src/core/verified-snapshot.js +506 -0
- package/dist/src/core/verified-snapshot.js.map +1 -0
- package/dist/src/core/verify.d.ts +336 -0
- package/dist/src/core/verify.js +549 -0
- package/dist/src/core/verify.js.map +1 -0
- package/dist/src/core/version.d.ts +8 -0
- package/dist/src/core/version.js +9 -0
- package/dist/src/core/version.js.map +1 -0
- package/dist/src/core/wysiwys.d.ts +370 -0
- package/dist/src/core/wysiwys.js +728 -0
- package/dist/src/core/wysiwys.js.map +1 -0
- package/dist/src/daemon/advance-child.d.ts +39 -0
- package/dist/src/daemon/advance-child.js +78 -0
- package/dist/src/daemon/advance-child.js.map +1 -0
- package/dist/src/daemon/advance.d.ts +466 -0
- package/dist/src/daemon/advance.js +849 -0
- package/dist/src/daemon/advance.js.map +1 -0
- package/dist/src/daemon/audit.d.ts +87 -0
- package/dist/src/daemon/audit.js +90 -0
- package/dist/src/daemon/audit.js.map +1 -0
- package/dist/src/daemon/daemon.d.ts +1180 -0
- package/dist/src/daemon/daemon.js +1988 -0
- package/dist/src/daemon/daemon.js.map +1 -0
- package/dist/src/daemon/dark-session.d.ts +64 -0
- package/dist/src/daemon/dark-session.js +119 -0
- package/dist/src/daemon/dark-session.js.map +1 -0
- package/dist/src/daemon/draw-child.d.ts +36 -0
- package/dist/src/daemon/draw-child.js +132 -0
- package/dist/src/daemon/draw-child.js.map +1 -0
- package/dist/src/daemon/draw.d.ts +154 -0
- package/dist/src/daemon/draw.js +458 -0
- package/dist/src/daemon/draw.js.map +1 -0
- package/dist/src/daemon/git-evidence.d.ts +173 -0
- package/dist/src/daemon/git-evidence.js +345 -0
- package/dist/src/daemon/git-evidence.js.map +1 -0
- package/dist/src/daemon/projection.d.ts +180 -0
- package/dist/src/daemon/projection.js +233 -0
- package/dist/src/daemon/projection.js.map +1 -0
- package/dist/src/daemon/prune.d.ts +207 -0
- package/dist/src/daemon/prune.js +376 -0
- package/dist/src/daemon/prune.js.map +1 -0
- package/dist/src/mcp/http.d.ts +113 -0
- package/dist/src/mcp/http.js +343 -0
- package/dist/src/mcp/http.js.map +1 -0
- package/dist/src/mcp/server.d.ts +265 -0
- package/dist/src/mcp/server.js +602 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/docs/adapter-api.md +106 -0
- package/docs/cli-reference.md +5716 -0
- package/docs/codex-enforced-session.md +30 -0
- package/package.json +53 -4
- package/schema/.gitkeep +0 -0
- package/schema/LICENSE +117 -0
- package/schema/codex-instance.schema.json +82 -0
- package/schema/envelope.schema.json +137 -0
- package/schema/event.schema.json +1811 -0
- package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
- package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
- package/schema/fixtures/envelope/invalid/action-missing-idempotency-key.json +15 -0
- package/schema/fixtures/envelope/invalid/action-unknown-class-format.json +14 -0
- package/schema/fixtures/envelope/invalid/confidence-out-of-range.json +11 -0
- package/schema/fixtures/envelope/invalid/est-cost-bare-number.json +14 -0
- package/schema/fixtures/envelope/invalid/est-cost-noncanonical-string.json +14 -0
- package/schema/fixtures/envelope/invalid/malformed-assignee.json +10 -0
- package/schema/fixtures/envelope/invalid/malformed-created-by.json +7 -0
- package/schema/fixtures/envelope/invalid/malformed-max-latency.json +11 -0
- package/schema/fixtures/envelope/invalid/malformed-payload-hash.json +14 -0
- package/schema/fixtures/envelope/invalid/max-cost-bare-number.json +11 -0
- package/schema/fixtures/envelope/invalid/missing-origin.json +3 -0
- package/schema/fixtures/envelope/invalid/negative-est-cost.json +14 -0
- package/schema/fixtures/envelope/invalid/unknown-state.json +7 -0
- package/schema/fixtures/envelope/invalid/unknown-top-level-field.json +8 -0
- package/schema/fixtures/envelope/valid/action-payload-hash.json +17 -0
- package/schema/fixtures/envelope/valid/actions-without-budget.json +18 -0
- package/schema/fixtures/envelope/valid/canonical.json +25 -0
- package/schema/fixtures/envelope/valid/minimal.json +7 -0
- package/schema/fixtures/envelope/valid/multi-action-executed.json +30 -0
- package/schema/fixtures/envelope/valid/record-write-stage.json +22 -0
- package/schema/fixtures/event/invalid/approval-granted-agent-actor.json +15 -0
- package/schema/fixtures/event/invalid/approval-granted-empty-batch-delivery-id.json +17 -0
- package/schema/fixtures/event/invalid/approval-granted-fifth-reaction.json +16 -0
- package/schema/fixtures/event/invalid/approval-granted-missing-actor.json +14 -0
- package/schema/fixtures/event/invalid/approval-requested-missing-action-key.json +14 -0
- package/schema/fixtures/event/invalid/approval-withdrawn-agent-policy-drift.json +15 -0
- package/schema/fixtures/event/invalid/approval-withdrawn-missing-reason.json +15 -0
- package/schema/fixtures/event/invalid/approval-withdrawn-system-actor.json +15 -0
- package/schema/fixtures/event/invalid/audit-decision-refused-human-actor.json +17 -0
- package/schema/fixtures/event/invalid/audit-decision-refused-missing-code.json +16 -0
- package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +15 -0
- package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +16 -0
- package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +15 -0
- package/schema/fixtures/event/invalid/bad-actor-prefix.json +15 -0
- package/schema/fixtures/event/invalid/est-cost-bare-number.json +17 -0
- package/schema/fixtures/event/invalid/execution-completed-fabricated-exit-code.json +16 -0
- package/schema/fixtures/event/invalid/execution-completed-provider-ref-empty-id.json +18 -0
- package/schema/fixtures/event/invalid/execution-completed-provider-ref-extra-field.json +19 -0
- package/schema/fixtures/event/invalid/execution-completed-provider-ref-id-not-string.json +18 -0
- package/schema/fixtures/event/invalid/execution-completed-provider-ref-missing-adapter.json +17 -0
- package/schema/fixtures/event/invalid/execution-failed-open-reported-by.json +16 -0
- package/schema/fixtures/event/invalid/execution-indeterminate-open-reason.json +14 -0
- package/schema/fixtures/event/invalid/execution-reconciled-agent-actor.json +17 -0
- package/schema/fixtures/event/invalid/execution-started-negative-env-stripped.json +16 -0
- package/schema/fixtures/event/invalid/gate-bypassed-missing-opened-seq.json +15 -0
- package/schema/fixtures/event/invalid/gate-closed-non-integer-opened-seq.json +13 -0
- package/schema/fixtures/event/invalid/gate-opened-agent-actor.json +16 -0
- package/schema/fixtures/event/invalid/gate-organ-attested-absolute-path.json +14 -0
- package/schema/fixtures/event/invalid/gate-organ-attested-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/gate-organ-attested-missing-organ-path.json +13 -0
- package/schema/fixtures/event/invalid/harness-unknown-kind.json +18 -0
- package/schema/fixtures/event/invalid/harness-version-multiline.json +16 -0
- package/schema/fixtures/event/invalid/log-checkpoint-agent-actor.json +17 -0
- package/schema/fixtures/event/invalid/log-checkpoint-missing-signature.json +16 -0
- package/schema/fixtures/event/invalid/log-checkpoint-short-signed-hash.json +17 -0
- package/schema/fixtures/event/invalid/log-checkpoint-unknown-signature-alg.json +17 -0
- package/schema/fixtures/event/invalid/malformed-ts.json +15 -0
- package/schema/fixtures/event/invalid/missing-alg.json +14 -0
- package/schema/fixtures/event/invalid/missing-hash.json +14 -0
- package/schema/fixtures/event/invalid/non-integer-seq.json +15 -0
- package/schema/fixtures/event/invalid/payload-pruned-human-actor.json +14 -0
- package/schema/fixtures/event/invalid/payload-pruned-missing-hash.json +14 -0
- package/schema/fixtures/event/invalid/policy-declined-agent-actor.json +15 -0
- package/schema/fixtures/event/invalid/policy-proposed-missing-diff.json +19 -0
- package/schema/fixtures/event/invalid/policy-proposed-system-actor.json +26 -0
- package/schema/fixtures/event/invalid/short-hash.json +15 -0
- package/schema/fixtures/event/invalid/unknown-alg.json +15 -0
- package/schema/fixtures/event/invalid/unknown-event-type.json +15 -0
- package/schema/fixtures/event/invalid/unknown-top-level-field.json +16 -0
- package/schema/fixtures/event/valid/approval-expired.json +15 -0
- package/schema/fixtures/event/valid/approval-granted-batch.json +19 -0
- package/schema/fixtures/event/valid/approval-granted-reaction.json +16 -0
- package/schema/fixtures/event/valid/approval-granted.json +15 -0
- package/schema/fixtures/event/valid/approval-rejected.json +15 -0
- package/schema/fixtures/event/valid/approval-requested.json +19 -0
- package/schema/fixtures/event/valid/approval-revoked.json +15 -0
- package/schema/fixtures/event/valid/approval-withdrawn-policy-drift.json +17 -0
- package/schema/fixtures/event/valid/approval-withdrawn.json +16 -0
- package/schema/fixtures/event/valid/audit-decision-refused.json +20 -0
- package/schema/fixtures/event/valid/audit-reviewed-reaction.json +17 -0
- package/schema/fixtures/event/valid/audit-reviewed.json +15 -0
- package/schema/fixtures/event/valid/audit-sampled.json +14 -0
- package/schema/fixtures/event/valid/budget-exceeded.json +21 -0
- package/schema/fixtures/event/valid/envelope-drift.json +16 -0
- package/schema/fixtures/event/valid/execution-completed-harness-report.json +16 -0
- package/schema/fixtures/event/valid/execution-completed-provider-ref.json +18 -0
- package/schema/fixtures/event/valid/execution-completed.json +15 -0
- package/schema/fixtures/event/valid/execution-failed-harness-report.json +16 -0
- package/schema/fixtures/event/valid/execution-failed.json +15 -0
- package/schema/fixtures/event/valid/execution-indeterminate.json +15 -0
- package/schema/fixtures/event/valid/execution-reconciled.json +17 -0
- package/schema/fixtures/event/valid/execution-started-env-stripped.json +17 -0
- package/schema/fixtures/event/valid/execution-started.json +14 -0
- package/schema/fixtures/event/valid/gate-bypassed-harness-version.json +18 -0
- package/schema/fixtures/event/valid/gate-bypassed.json +19 -0
- package/schema/fixtures/event/valid/gate-closed.json +14 -0
- package/schema/fixtures/event/valid/gate-opened.json +16 -0
- package/schema/fixtures/event/valid/gate-organ-attested.json +14 -0
- package/schema/fixtures/event/valid/genesis-null-prev.json +14 -0
- package/schema/fixtures/event/valid/log-checkpoint.json +17 -0
- package/schema/fixtures/event/valid/payload-pruned-orphan.json +13 -0
- package/schema/fixtures/event/valid/payload-pruned.json +17 -0
- package/schema/fixtures/event/valid/policy-declined.json +16 -0
- package/schema/fixtures/event/valid/policy-proposed.json +35 -0
- package/schema/fixtures/event/valid/policy-updated.json +14 -0
- package/schema/fixtures/event/valid/reconciliation-required.json +18 -0
- package/schema/fixtures/event/valid/reconciliation-satisfied.json +17 -0
- package/schema/fixtures/event/valid/route-accepted.json +15 -0
- package/schema/fixtures/event/valid/route-proposed.json +16 -0
- package/schema/fixtures/event/valid/spec-example.json +15 -0
- package/schema/fixtures/event/valid/task-registered-harness-version.json +23 -0
- package/schema/fixtures/event/valid/task-registered.json +14 -0
- package/schema/fixtures/hash/known-answer-pre-121.json +74 -0
- package/schema/fixtures/hash/known-answer.json +74 -0
- package/schema/fixtures/policy/invalid/bad-approval-ttl.json +7 -0
- package/schema/fixtures/policy/invalid/bad-web-port.json +4 -0
- package/schema/fixtures/policy/invalid/checkpoint-key-not-base64.json +6 -0
- package/schema/fixtures/policy/invalid/class-rule-missing-autonomy.json +9 -0
- package/schema/fixtures/policy/invalid/empty-class-key.json +6 -0
- package/schema/fixtures/policy/invalid/live-rate-on-human-only.json +7 -0
- package/schema/fixtures/policy/invalid/malformed-class-key.json +6 -0
- package/schema/fixtures/policy/invalid/missing-version.json +8 -0
- package/schema/fixtures/policy/invalid/negative-limit.json +9 -0
- package/schema/fixtures/policy/invalid/non-numeric-limit.json +9 -0
- package/schema/fixtures/policy/invalid/non-positive-max-pending.json +9 -0
- package/schema/fixtures/policy/invalid/on-expiry-grant.json +8 -0
- package/schema/fixtures/policy/invalid/payload-retention-bare-number.json +4 -0
- package/schema/fixtures/policy/invalid/payload-retention-compound.json +4 -0
- package/schema/fixtures/policy/invalid/payload-retention-fractional.json +4 -0
- package/schema/fixtures/policy/invalid/payload-retention-zero.json +4 -0
- package/schema/fixtures/policy/invalid/protected-paths-escape.json +4 -0
- package/schema/fixtures/policy/invalid/protected-paths-glob.json +4 -0
- package/schema/fixtures/policy/invalid/retro-rate-on-human-only.json +7 -0
- package/schema/fixtures/policy/invalid/retro-rate-on-manual.json +7 -0
- package/schema/fixtures/policy/invalid/retro-rate-zero.json +7 -0
- package/schema/fixtures/policy/invalid/sample-rate-too-high.json +5 -0
- package/schema/fixtures/policy/invalid/sampling-secret-env-empty.json +7 -0
- package/schema/fixtures/policy/invalid/sampling-secret-env-not-string.json +6 -0
- package/schema/fixtures/policy/invalid/skew-tolerance-compound.json +6 -0
- package/schema/fixtures/policy/invalid/unknown-autonomy.json +7 -0
- package/schema/fixtures/policy/invalid/unknown-class-rule-key.json +6 -0
- package/schema/fixtures/policy/invalid/unknown-top-level-key.json +7 -0
- package/schema/fixtures/policy/invalid/vault-passphrase-env-empty.json +6 -0
- package/schema/fixtures/policy/invalid/vault-passphrase-literal.json +6 -0
- package/schema/fixtures/policy/invalid/version-not-string.json +4 -0
- package/schema/fixtures/policy/valid/canonical.json +47 -0
- package/schema/fixtures/policy/valid/checkpoint-keys.json +18 -0
- package/schema/fixtures/policy/valid/class-approvers-limits.json +25 -0
- package/schema/fixtures/policy/valid/class-retro-rate.json +17 -0
- package/schema/fixtures/policy/valid/global-budgets.json +19 -0
- package/schema/fixtures/policy/valid/human-only.json +9 -0
- package/schema/fixtures/policy/valid/minimal.json +6 -0
- package/schema/fixtures/policy/valid/protected-paths.json +10 -0
- package/schema/fixtures/policy/valid/record-namespace.json +13 -0
- package/schema/fixtures/policy/valid/request-volume-limits.json +26 -0
- package/schema/fixtures/policy/valid/retention-and-sampling-secret.json +16 -0
- package/schema/fixtures/policy/valid/skew-tolerance.json +15 -0
- package/schema/fixtures/policy/valid/vault-passphrase-env.json +14 -0
- package/schema/fixtures/policy/valid/wildcards.json +15 -0
- package/schema/fixtures/policy-md/invalid/alias-bomb.md +15 -0
- package/schema/fixtures/policy-md/invalid/no-fence.md +7 -0
- package/schema/fixtures/policy-md/invalid/protected-route-not-a-subclass.md +16 -0
- package/schema/fixtures/policy-md/invalid/schema-invalid-autonomy.md +16 -0
- package/schema/fixtures/policy-md/invalid/schema-invalid-read-proof.md +17 -0
- package/schema/fixtures/policy-md/invalid/two-fences.md +19 -0
- package/schema/fixtures/policy-md/invalid/unclosed-fence.md +11 -0
- package/schema/fixtures/policy-md/invalid/wrong-info-string.md +11 -0
- package/schema/fixtures/policy-md/invalid/yaml-syntax-error.md +13 -0
- package/schema/fixtures/policy-md/precedence/both/APPROVAL.md +7 -0
- package/schema/fixtures/policy-md/precedence/both/APPROVALS.md +7 -0
- package/schema/fixtures/policy-md/precedence/fallback-only/APPROVALS.md +7 -0
- package/schema/fixtures/policy-md/valid/canonical.md +50 -0
- package/schema/fixtures/policy-md/valid/daemon-read-proof.md +18 -0
- package/schema/fixtures/policy-md/valid/minimal.md +3 -0
- package/schema/fixtures/policy-md/valid/prose-lookalikes.md +54 -0
- package/schema/fixtures/policy-md/valid/routed-protected-paths.md +49 -0
- package/schema/fixtures/policy-md/valid/with-values.md +79 -0
- package/schema/fixtures/sample-record/invalid/bad-date-time.json +4 -0
- package/schema/fixtures/sample-record/invalid/missing-required-field.json +3 -0
- package/schema/fixtures/sample-record/invalid/unknown-top-level-field.json +5 -0
- package/schema/fixtures/sample-record/invalid/wrong-type.json +4 -0
- package/schema/fixtures/sample-record/valid/minimal.json +4 -0
- package/schema/fixtures/sample-record/valid/with-note.json +5 -0
- package/schema/fixtures/values/invalid/class-shaped.json +9 -0
- package/schema/fixtures/values/invalid/duplicate-entry.json +4 -0
- package/schema/fixtures/values/invalid/non-string-item.json +4 -0
- package/schema/fixtures/values/invalid/over-cap.json +26 -0
- package/schema/fixtures/values/invalid/unknown-key.json +5 -0
- package/schema/fixtures/values/invalid/version-string.json +1 -0
- package/schema/fixtures/values/valid/empty-lists.json +7 -0
- package/schema/fixtures/values/valid/full.json +20 -0
- package/schema/fixtures/values/valid/minimal.json +1 -0
- package/schema/fixtures/values-md/invalid/schema-invalid.md +62 -0
- package/schema/fixtures/values-md/invalid/two-blocks.md +69 -0
- package/schema/fixtures/values-md/invalid/unterminated.md +61 -0
- package/schema/fixtures/values-md/invalid/yaml-error.md +63 -0
- package/schema/fixtures/values-md/valid/absent.md +50 -0
- package/schema/fixtures/values-md/valid/with-values.md +79 -0
- package/schema/policy.schema.json +501 -0
- package/schema/sample-record.schema.json +26 -0
- package/schema/values.schema.json +55 -0
- package/templates/codex/README.md +9 -0
|
@@ -0,0 +1 @@
|
|
|
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,100 @@
|
|
|
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
|
+
import { readFileSync } from "node:fs";
|
|
39
|
+
import { parseHardenedYaml } from "./policy-load.js";
|
|
40
|
+
/** The line that opens and closes a frontmatter block. */
|
|
41
|
+
export const FRONTMATTER_DELIMITER = "---";
|
|
42
|
+
function errorMessage(cause) {
|
|
43
|
+
return cause instanceof Error ? cause.message : String(cause);
|
|
44
|
+
}
|
|
45
|
+
function failure(code, message) {
|
|
46
|
+
return { ok: false, code, message };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extract and parse the YAML frontmatter of `text`.
|
|
50
|
+
*
|
|
51
|
+
* Returns the mapping and the remaining markdown body. Line endings are handled
|
|
52
|
+
* for CRLF and CR as well as LF, because a task file edited on Windows is still
|
|
53
|
+
* a task file; the body is rejoined with `\n`, and callers must not treat the
|
|
54
|
+
* returned body as byte-faithful (nothing in v0.1 writes it back).
|
|
55
|
+
*/
|
|
56
|
+
export function parseFrontmatter(text) {
|
|
57
|
+
const lines = text.split(/\r\n|\n|\r/u);
|
|
58
|
+
if (lines[0] !== FRONTMATTER_DELIMITER) {
|
|
59
|
+
return failure("no-frontmatter", `the file does not begin with a ${FRONTMATTER_DELIMITER} line, so it carries no frontmatter (SPEC.md §6: a task with no envelope is valid markdown and simply cannot request side-effecting execution)`);
|
|
60
|
+
}
|
|
61
|
+
let close = -1;
|
|
62
|
+
for (let index = 1; index < lines.length; index += 1) {
|
|
63
|
+
if (lines[index] === FRONTMATTER_DELIMITER) {
|
|
64
|
+
close = index;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (close === -1) {
|
|
69
|
+
return failure("unterminated", `frontmatter opened with ${FRONTMATTER_DELIMITER} but no closing ${FRONTMATTER_DELIMITER} line was found; a truncated frontmatter block is indistinguishable from a complete one and is refused`);
|
|
70
|
+
}
|
|
71
|
+
const source = lines.slice(1, close).join("\n");
|
|
72
|
+
const body = lines.slice(close + 1).join("\n");
|
|
73
|
+
const parsed = parseHardenedYaml(source, {
|
|
74
|
+
subject: "frontmatter YAML",
|
|
75
|
+
tagContext: "a task envelope",
|
|
76
|
+
});
|
|
77
|
+
if (!parsed.ok)
|
|
78
|
+
return failure("yaml-error", parsed.message);
|
|
79
|
+
const value = parsed.value;
|
|
80
|
+
if (value === null || value === undefined) {
|
|
81
|
+
// An empty frontmatter block is a mapping with no keys, not an error.
|
|
82
|
+
return { ok: true, data: {}, body };
|
|
83
|
+
}
|
|
84
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
85
|
+
return failure("not-a-map", `frontmatter must be a YAML mapping, got ${Array.isArray(value) ? "a sequence" : typeof value}`);
|
|
86
|
+
}
|
|
87
|
+
return { ok: true, data: value, body };
|
|
88
|
+
}
|
|
89
|
+
/** {@link parseFrontmatter} over a file, with read failures as their own code. */
|
|
90
|
+
export function readTaskFile(path) {
|
|
91
|
+
let text;
|
|
92
|
+
try {
|
|
93
|
+
text = readFileSync(path, "utf8");
|
|
94
|
+
}
|
|
95
|
+
catch (cause) {
|
|
96
|
+
return { ok: false, code: "io", message: `task file ${path} could not be read: ${errorMessage(cause)}` };
|
|
97
|
+
}
|
|
98
|
+
return parseFrontmatter(text);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=frontmatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../src/core/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAiB3C,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,OAAO,CAAC,IAA0B,EAAE,OAAe;IAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;QACvC,OAAO,OAAO,CACZ,gBAAgB,EAChB,kCAAkC,qBAAqB,gJAAgJ,CACxM,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,qBAAqB,EAAE,CAAC;YAC3C,KAAK,GAAG,KAAK,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,OAAO,CACZ,cAAc,EACd,2BAA2B,qBAAqB,mBAAmB,qBAAqB,wGAAwG,CACjM,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE;QACvC,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,sEAAsE;QACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,OAAO,CACZ,WAAW,EACX,2CAA2C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAChG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAgC,EAAE,IAAI,EAAE,CAAC;AACpE,CAAC;AAMD,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,IAAI,uBAAuB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAC3G,CAAC;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -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;
|