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":"dark-session.js","sourceRoot":"","sources":["../../../src/core/dark-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the log says when a human decided and the gate could not take it
|
|
3
|
+
* (APRV-235, amended SPEC.md §5.2).
|
|
4
|
+
*
|
|
5
|
+
* ## The fact this module is about
|
|
6
|
+
*
|
|
7
|
+
* Seen live on 2026-09-02, after the seq 13704 ceremony. Carter tapped approve
|
|
8
|
+
* on a request that had been asked under the previous policy. The gate refused
|
|
9
|
+
* `policy-drift`, which is right: the rules the approver was shown are not the
|
|
10
|
+
* rules in force, so a grant recorded there would claim a decision under a
|
|
11
|
+
* policy nobody put in front of them. But the refusal went to the operator's
|
|
12
|
+
* terminal and nowhere else. Nothing was appended, the request stayed pending
|
|
13
|
+
* in `QUEUE.md` and on Telegram, and the person who had tapped saw no reaction
|
|
14
|
+
* at all.
|
|
15
|
+
*
|
|
16
|
+
* Three things were wrong and this module fixes two of them (the third, the
|
|
17
|
+
* message edit, belongs to the channels).
|
|
18
|
+
*
|
|
19
|
+
* ## 1. A human's decision is a fact even when the gate cannot honour it
|
|
20
|
+
*
|
|
21
|
+
* The log is the truth. SPEC.md §11 makes human attention the audit budget, and
|
|
22
|
+
* an approver's tap SPENDS it whether or not an authorization comes out the
|
|
23
|
+
* other end. A reader looking at that log later found a request sitting
|
|
24
|
+
* unanswered with nothing to say a person had answered it, which is a question
|
|
25
|
+
* the log is supposed to be able to settle.
|
|
26
|
+
*
|
|
27
|
+
* So {@link recordRefusedDecision} appends one `audit.decision_refused`. It is
|
|
28
|
+
* an **audit-tier** record in the strict sense:
|
|
29
|
+
*
|
|
30
|
+
* - it grants nothing and mints no token;
|
|
31
|
+
* - `core/state.ts` does not settle a request on it, so no verdict moves;
|
|
32
|
+
* - `core/budgets.ts` charges nothing for it, so no budget moves;
|
|
33
|
+
* - `core/audit.ts` does not sample it and no streak counts it.
|
|
34
|
+
*
|
|
35
|
+
* `tests/decision-refusal.test.ts` asserts that last group by construction: the
|
|
36
|
+
* derived request state, the budget verdicts and the sampling draw are taken
|
|
37
|
+
* before and after and compared, and they are identical.
|
|
38
|
+
*
|
|
39
|
+
* ## The asymmetry: humans yes, agents no
|
|
40
|
+
*
|
|
41
|
+
* Gate-side refusals handed to an AGENT stay unlogged, and that is a choice
|
|
42
|
+
* rather than an omission. An agent that is refused reads the code, stops or
|
|
43
|
+
* asks again, and nothing was spent that a record could account for. A human
|
|
44
|
+
* who is refused has already spent the scarce thing, and cannot be asked to
|
|
45
|
+
* spend it again without the log saying the first spend happened. Recording
|
|
46
|
+
* every agent-side refusal would also put the busiest path in the runtime — a
|
|
47
|
+
* hook classifying every shell command — into the append path, which is a cost
|
|
48
|
+
* with no reader.
|
|
49
|
+
*
|
|
50
|
+
* ## 2. A request the gate calls void must stop being offered
|
|
51
|
+
*
|
|
52
|
+
* `policy-drift` is the one refusal where the gate does not merely decline this
|
|
53
|
+
* decision, it declares the REQUEST dead: "the pending request is void and the
|
|
54
|
+
* action must be requested again". Leaving it pending afterwards offers every
|
|
55
|
+
* approver on every channel a tap that cannot be honoured, forever, until the
|
|
56
|
+
* TTL lapses. So a drift refusal also appends `approval.withdrawn` with the
|
|
57
|
+
* runtime's own reason, `policy-drift` (APRV-106 gave the event; the schema's
|
|
58
|
+
* cross-rule makes that reason `system:`-only and `system:` that-reason-only).
|
|
59
|
+
* `approval queue`, `QUEUE.md` and every channel then read the request as
|
|
60
|
+
* settled, because they all derive state from `core/state.ts` and it settles on
|
|
61
|
+
* `approval.withdrawn` without looking at who wrote it or why.
|
|
62
|
+
*
|
|
63
|
+
* The action is not stranded: its caller requests it again, and the new request
|
|
64
|
+
* is routed, budgeted and displayed under the policy actually in force. That is
|
|
65
|
+
* what the refusal message already told them to do.
|
|
66
|
+
*
|
|
67
|
+
* ## Order, and what an interrupted write leaves behind
|
|
68
|
+
*
|
|
69
|
+
* The audit record is appended first and the withdrawal second, naming it in
|
|
70
|
+
* `payload.refused_seq`. Two appends are two records — the log never batches —
|
|
71
|
+
* so a crash between them is a state this code can reach, and the order is
|
|
72
|
+
* chosen for which half is safe to have alone. The explanation without the
|
|
73
|
+
* withdrawal leaves the request pending exactly as it is today, and a reader can
|
|
74
|
+
* see why. The withdrawal without the explanation would take a request out of a
|
|
75
|
+
* human's queue with nothing on the record saying who tapped, or why it was
|
|
76
|
+
* refused, which is the failure this task exists to end.
|
|
77
|
+
*
|
|
78
|
+
* ## Invariants
|
|
79
|
+
*
|
|
80
|
+
* - **Gate-typed events never accept caller timestamps** (§11.1). `ts` comes
|
|
81
|
+
* from the injected clock at the write boundary; there is no parameter.
|
|
82
|
+
* - **Every check-then-append passes through compare-and-append** (§11.1(5)).
|
|
83
|
+
* Both writes state the head they were derived against, and the whole cycle
|
|
84
|
+
* re-enters from a fresh read on `head-moved` through
|
|
85
|
+
* {@link withHeadRetry} — the same bounded retry APRV-236 gave `decide`.
|
|
86
|
+
* - **Self-reported fields never reduce scrutiny** (§11.1). Everything here only
|
|
87
|
+
* ADDS to what a reviewer sees. The approver's identity comes from the
|
|
88
|
+
* decision surface's configured actor, the same source a grant's does, and the
|
|
89
|
+
* record's own actor is `system:` so that neither party to the refusal is its
|
|
90
|
+
* author.
|
|
91
|
+
* - **Refusals stay machine-readable and distinct** (§11.1). The gate's code is
|
|
92
|
+
* copied verbatim; nothing here invents, merges or softens one.
|
|
93
|
+
*
|
|
94
|
+
* ## No attestation check, deliberately
|
|
95
|
+
*
|
|
96
|
+
* Nothing here asks whether the policy is attested, for the reason `reject` and
|
|
97
|
+
* `revoke` do not: this write confers no authority. Refusing to record a refusal
|
|
98
|
+
* because a file changed would be the strict direction pointing the wrong way,
|
|
99
|
+
* and the case where it would bite hardest is `policy-not-attested` itself —
|
|
100
|
+
* exactly the refusal an operator most needs the log to remember. The write
|
|
101
|
+
* boundary still validates every record, so what lands is still constrained.
|
|
102
|
+
*/
|
|
103
|
+
import { type AppendError, type EventRecord } from "./log.js";
|
|
104
|
+
import { type Decision } from "./state.js";
|
|
105
|
+
import type { GateOptions } from "./gate.js";
|
|
106
|
+
/**
|
|
107
|
+
* The actor every record here carries. `system:`, and the same id the runtime's
|
|
108
|
+
* other unprompted writes use: this is the gate stating what the gate did.
|
|
109
|
+
*/
|
|
110
|
+
export declare const DECISION_REFUSAL_ACTOR = "system:gate";
|
|
111
|
+
/** The runtime's withdrawal reason, closed to requesters by the event schema. */
|
|
112
|
+
export declare const POLICY_DRIFT_REASON = "policy-drift";
|
|
113
|
+
/** Who decided what, on which surface — everything the record needs about the tap. */
|
|
114
|
+
export interface RefusedDecision {
|
|
115
|
+
/** The action whose decision was refused. */
|
|
116
|
+
actionKey: string;
|
|
117
|
+
/** Which of the three human-only verbs was attempted. */
|
|
118
|
+
decision: Decision;
|
|
119
|
+
/** The approver, `human:<id>`, from the surface's configured identity. */
|
|
120
|
+
actor: string;
|
|
121
|
+
/** The surface that collected the gesture: `telegram`, `web`, `cli`. */
|
|
122
|
+
channel: string;
|
|
123
|
+
}
|
|
124
|
+
/** The gate refusal being recorded. Only these fields are ever read. */
|
|
125
|
+
export interface RefusalFacts {
|
|
126
|
+
/** The gate's code, verbatim. */
|
|
127
|
+
code: string;
|
|
128
|
+
/** The gate's message, verbatim. */
|
|
129
|
+
message: string;
|
|
130
|
+
/**
|
|
131
|
+
* The two policy hashes the gate compared, on `policy-drift` alone. Supplied
|
|
132
|
+
* by the refusal that made the comparison rather than re-derived here: a
|
|
133
|
+
* second derivation could disagree with the one that actually refused, and
|
|
134
|
+
* then the record would describe a comparison nobody made.
|
|
135
|
+
*/
|
|
136
|
+
drift?: {
|
|
137
|
+
requested: string;
|
|
138
|
+
attested: string;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/** What the module could not do. Never thrown; the caller carries on regardless. */
|
|
142
|
+
export interface RefusalRecordFailure {
|
|
143
|
+
ok: false;
|
|
144
|
+
code: "log-unreadable" | "append-failed";
|
|
145
|
+
message: string;
|
|
146
|
+
append?: AppendError;
|
|
147
|
+
}
|
|
148
|
+
export type RecordRefusedDecisionResult = {
|
|
149
|
+
ok: true;
|
|
150
|
+
/**
|
|
151
|
+
* The `audit.decision_refused` record, or `null` when the refused actor
|
|
152
|
+
* was not a person and there was therefore nothing to record.
|
|
153
|
+
*/
|
|
154
|
+
audit: EventRecord | null;
|
|
155
|
+
/** The `approval.withdrawn` record, on `policy-drift` alone; `null` otherwise. */
|
|
156
|
+
withdrawn: EventRecord | null;
|
|
157
|
+
} | RefusalRecordFailure;
|
|
158
|
+
/** Is this the refusal that declares the request itself void? */
|
|
159
|
+
export declare function voidsTheRequest(code: string): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Record that a human's decision was refused, and withdraw the request when the
|
|
162
|
+
* refusal was the gate declaring it void.
|
|
163
|
+
*
|
|
164
|
+
* Called by the decision SURFACES — `channels/contract.ts`'s
|
|
165
|
+
* `recordChannelDecision` and `cli/gate.ts`'s `commandDecide` — and never from
|
|
166
|
+
* inside `decide()`. That placement is deliberate twice over. `decide()`'s
|
|
167
|
+
* contract is that a refusal appends nothing, which is what lets a caller retry
|
|
168
|
+
* one without wondering what it wrote; and this record is about a HUMAN having
|
|
169
|
+
* decided, which is a fact only a surface that collected a human's gesture can
|
|
170
|
+
* assert.
|
|
171
|
+
*
|
|
172
|
+
* Best-effort by design: a failure here is returned, never thrown, and the
|
|
173
|
+
* caller shows the gate's refusal either way. The decision was already refused
|
|
174
|
+
* before this ran, and nothing about that outcome depends on this write landing.
|
|
175
|
+
*
|
|
176
|
+
* **Two writes, two retry cycles, and deliberately not one.** `head-retry.ts`
|
|
177
|
+
* asks that the unit of retry be a whole read-check-append cycle, and putting
|
|
178
|
+
* both appends inside one cycle would break that in the direction that matters:
|
|
179
|
+
* a moved head under the SECOND write would re-enter from the top and append a
|
|
180
|
+
* second `audit.decision_refused` for one tap. So each write has its own cycle,
|
|
181
|
+
* each re-reads and re-derives, and the withdrawal's cycle re-checks that the
|
|
182
|
+
* request is still pending — a decision or a withdrawal that landed in the
|
|
183
|
+
* window is the new verdict, and there is then nothing left to withdraw.
|
|
184
|
+
*/
|
|
185
|
+
export declare function recordRefusedDecision(logPath: string, decided: RefusedDecision, refusal: RefusalFacts, options?: GateOptions): RecordRefusedDecisionResult;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the log says when a human decided and the gate could not take it
|
|
3
|
+
* (APRV-235, amended SPEC.md §5.2).
|
|
4
|
+
*
|
|
5
|
+
* ## The fact this module is about
|
|
6
|
+
*
|
|
7
|
+
* Seen live on 2026-09-02, after the seq 13704 ceremony. Carter tapped approve
|
|
8
|
+
* on a request that had been asked under the previous policy. The gate refused
|
|
9
|
+
* `policy-drift`, which is right: the rules the approver was shown are not the
|
|
10
|
+
* rules in force, so a grant recorded there would claim a decision under a
|
|
11
|
+
* policy nobody put in front of them. But the refusal went to the operator's
|
|
12
|
+
* terminal and nowhere else. Nothing was appended, the request stayed pending
|
|
13
|
+
* in `QUEUE.md` and on Telegram, and the person who had tapped saw no reaction
|
|
14
|
+
* at all.
|
|
15
|
+
*
|
|
16
|
+
* Three things were wrong and this module fixes two of them (the third, the
|
|
17
|
+
* message edit, belongs to the channels).
|
|
18
|
+
*
|
|
19
|
+
* ## 1. A human's decision is a fact even when the gate cannot honour it
|
|
20
|
+
*
|
|
21
|
+
* The log is the truth. SPEC.md §11 makes human attention the audit budget, and
|
|
22
|
+
* an approver's tap SPENDS it whether or not an authorization comes out the
|
|
23
|
+
* other end. A reader looking at that log later found a request sitting
|
|
24
|
+
* unanswered with nothing to say a person had answered it, which is a question
|
|
25
|
+
* the log is supposed to be able to settle.
|
|
26
|
+
*
|
|
27
|
+
* So {@link recordRefusedDecision} appends one `audit.decision_refused`. It is
|
|
28
|
+
* an **audit-tier** record in the strict sense:
|
|
29
|
+
*
|
|
30
|
+
* - it grants nothing and mints no token;
|
|
31
|
+
* - `core/state.ts` does not settle a request on it, so no verdict moves;
|
|
32
|
+
* - `core/budgets.ts` charges nothing for it, so no budget moves;
|
|
33
|
+
* - `core/audit.ts` does not sample it and no streak counts it.
|
|
34
|
+
*
|
|
35
|
+
* `tests/decision-refusal.test.ts` asserts that last group by construction: the
|
|
36
|
+
* derived request state, the budget verdicts and the sampling draw are taken
|
|
37
|
+
* before and after and compared, and they are identical.
|
|
38
|
+
*
|
|
39
|
+
* ## The asymmetry: humans yes, agents no
|
|
40
|
+
*
|
|
41
|
+
* Gate-side refusals handed to an AGENT stay unlogged, and that is a choice
|
|
42
|
+
* rather than an omission. An agent that is refused reads the code, stops or
|
|
43
|
+
* asks again, and nothing was spent that a record could account for. A human
|
|
44
|
+
* who is refused has already spent the scarce thing, and cannot be asked to
|
|
45
|
+
* spend it again without the log saying the first spend happened. Recording
|
|
46
|
+
* every agent-side refusal would also put the busiest path in the runtime — a
|
|
47
|
+
* hook classifying every shell command — into the append path, which is a cost
|
|
48
|
+
* with no reader.
|
|
49
|
+
*
|
|
50
|
+
* ## 2. A request the gate calls void must stop being offered
|
|
51
|
+
*
|
|
52
|
+
* `policy-drift` is the one refusal where the gate does not merely decline this
|
|
53
|
+
* decision, it declares the REQUEST dead: "the pending request is void and the
|
|
54
|
+
* action must be requested again". Leaving it pending afterwards offers every
|
|
55
|
+
* approver on every channel a tap that cannot be honoured, forever, until the
|
|
56
|
+
* TTL lapses. So a drift refusal also appends `approval.withdrawn` with the
|
|
57
|
+
* runtime's own reason, `policy-drift` (APRV-106 gave the event; the schema's
|
|
58
|
+
* cross-rule makes that reason `system:`-only and `system:` that-reason-only).
|
|
59
|
+
* `approval queue`, `QUEUE.md` and every channel then read the request as
|
|
60
|
+
* settled, because they all derive state from `core/state.ts` and it settles on
|
|
61
|
+
* `approval.withdrawn` without looking at who wrote it or why.
|
|
62
|
+
*
|
|
63
|
+
* The action is not stranded: its caller requests it again, and the new request
|
|
64
|
+
* is routed, budgeted and displayed under the policy actually in force. That is
|
|
65
|
+
* what the refusal message already told them to do.
|
|
66
|
+
*
|
|
67
|
+
* ## Order, and what an interrupted write leaves behind
|
|
68
|
+
*
|
|
69
|
+
* The audit record is appended first and the withdrawal second, naming it in
|
|
70
|
+
* `payload.refused_seq`. Two appends are two records — the log never batches —
|
|
71
|
+
* so a crash between them is a state this code can reach, and the order is
|
|
72
|
+
* chosen for which half is safe to have alone. The explanation without the
|
|
73
|
+
* withdrawal leaves the request pending exactly as it is today, and a reader can
|
|
74
|
+
* see why. The withdrawal without the explanation would take a request out of a
|
|
75
|
+
* human's queue with nothing on the record saying who tapped, or why it was
|
|
76
|
+
* refused, which is the failure this task exists to end.
|
|
77
|
+
*
|
|
78
|
+
* ## Invariants
|
|
79
|
+
*
|
|
80
|
+
* - **Gate-typed events never accept caller timestamps** (§11.1). `ts` comes
|
|
81
|
+
* from the injected clock at the write boundary; there is no parameter.
|
|
82
|
+
* - **Every check-then-append passes through compare-and-append** (§11.1(5)).
|
|
83
|
+
* Both writes state the head they were derived against, and the whole cycle
|
|
84
|
+
* re-enters from a fresh read on `head-moved` through
|
|
85
|
+
* {@link withHeadRetry} — the same bounded retry APRV-236 gave `decide`.
|
|
86
|
+
* - **Self-reported fields never reduce scrutiny** (§11.1). Everything here only
|
|
87
|
+
* ADDS to what a reviewer sees. The approver's identity comes from the
|
|
88
|
+
* decision surface's configured actor, the same source a grant's does, and the
|
|
89
|
+
* record's own actor is `system:` so that neither party to the refusal is its
|
|
90
|
+
* author.
|
|
91
|
+
* - **Refusals stay machine-readable and distinct** (§11.1). The gate's code is
|
|
92
|
+
* copied verbatim; nothing here invents, merges or softens one.
|
|
93
|
+
*
|
|
94
|
+
* ## No attestation check, deliberately
|
|
95
|
+
*
|
|
96
|
+
* Nothing here asks whether the policy is attested, for the reason `reject` and
|
|
97
|
+
* `revoke` do not: this write confers no authority. Refusing to record a refusal
|
|
98
|
+
* because a file changed would be the strict direction pointing the wrong way,
|
|
99
|
+
* and the case where it would bite hardest is `policy-not-attested` itself —
|
|
100
|
+
* exactly the refusal an operator most needs the log to remember. The write
|
|
101
|
+
* boundary still validates every record, so what lands is still constrained.
|
|
102
|
+
*/
|
|
103
|
+
import { tick } from "./clock.js";
|
|
104
|
+
import { attemptsOf, withHeadRetry } from "./head-retry.js";
|
|
105
|
+
import { appendEvent } from "./log.js";
|
|
106
|
+
import { readVerifiedRecords, requestState } from "./state.js";
|
|
107
|
+
/**
|
|
108
|
+
* The actor every record here carries. `system:`, and the same id the runtime's
|
|
109
|
+
* other unprompted writes use: this is the gate stating what the gate did.
|
|
110
|
+
*/
|
|
111
|
+
export const DECISION_REFUSAL_ACTOR = "system:gate";
|
|
112
|
+
/** The runtime's withdrawal reason, closed to requesters by the event schema. */
|
|
113
|
+
export const POLICY_DRIFT_REASON = "policy-drift";
|
|
114
|
+
/**
|
|
115
|
+
* The decisions this module records: a person's, and nobody else's.
|
|
116
|
+
*
|
|
117
|
+
* Matches `core/gate.ts`'s own `HUMAN_ACTOR`, and it is the FIRST thing checked
|
|
118
|
+
* rather than a schema refusal caught late. `actor-not-human` is a real gate
|
|
119
|
+
* refusal — a misconfigured channel claiming an `agent:` identity produces it —
|
|
120
|
+
* and it is precisely the case where no human decided anything, so there is no
|
|
121
|
+
* spent attention for a record to account for. Letting it through would also
|
|
122
|
+
* mean composing a record whose `payload.actor` the event schema then refuses,
|
|
123
|
+
* which is a failure discovered at the write boundary rather than a rule stated
|
|
124
|
+
* where it belongs.
|
|
125
|
+
*/
|
|
126
|
+
const HUMAN_ACTOR = /^human:.+/u;
|
|
127
|
+
/** Is this the refusal that declares the request itself void? */
|
|
128
|
+
export function voidsTheRequest(code) {
|
|
129
|
+
return code === "policy-drift";
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Record that a human's decision was refused, and withdraw the request when the
|
|
133
|
+
* refusal was the gate declaring it void.
|
|
134
|
+
*
|
|
135
|
+
* Called by the decision SURFACES — `channels/contract.ts`'s
|
|
136
|
+
* `recordChannelDecision` and `cli/gate.ts`'s `commandDecide` — and never from
|
|
137
|
+
* inside `decide()`. That placement is deliberate twice over. `decide()`'s
|
|
138
|
+
* contract is that a refusal appends nothing, which is what lets a caller retry
|
|
139
|
+
* one without wondering what it wrote; and this record is about a HUMAN having
|
|
140
|
+
* decided, which is a fact only a surface that collected a human's gesture can
|
|
141
|
+
* assert.
|
|
142
|
+
*
|
|
143
|
+
* Best-effort by design: a failure here is returned, never thrown, and the
|
|
144
|
+
* caller shows the gate's refusal either way. The decision was already refused
|
|
145
|
+
* before this ran, and nothing about that outcome depends on this write landing.
|
|
146
|
+
*
|
|
147
|
+
* **Two writes, two retry cycles, and deliberately not one.** `head-retry.ts`
|
|
148
|
+
* asks that the unit of retry be a whole read-check-append cycle, and putting
|
|
149
|
+
* both appends inside one cycle would break that in the direction that matters:
|
|
150
|
+
* a moved head under the SECOND write would re-enter from the top and append a
|
|
151
|
+
* second `audit.decision_refused` for one tap. So each write has its own cycle,
|
|
152
|
+
* each re-reads and re-derives, and the withdrawal's cycle re-checks that the
|
|
153
|
+
* request is still pending — a decision or a withdrawal that landed in the
|
|
154
|
+
* window is the new verdict, and there is then nothing left to withdraw.
|
|
155
|
+
*/
|
|
156
|
+
export function recordRefusedDecision(logPath, decided, refusal, options = {}) {
|
|
157
|
+
// No person, no record. See {@link HUMAN_ACTOR}: `actor-not-human` is the
|
|
158
|
+
// refusal a misconfigured channel gets, and it is the one refusal that says
|
|
159
|
+
// nobody's attention was spent.
|
|
160
|
+
if (!HUMAN_ACTOR.test(decided.actor))
|
|
161
|
+
return { ok: true, audit: null, withdrawn: null };
|
|
162
|
+
const attempts = attemptsOf(options.retryOnHeadMoved);
|
|
163
|
+
const audit = withHeadRetry(attempts, () => appendAudit(logPath, decided, refusal, options));
|
|
164
|
+
if (!audit.ok)
|
|
165
|
+
return audit;
|
|
166
|
+
if (!voidsTheRequest(refusal.code))
|
|
167
|
+
return { ok: true, audit: audit.record, withdrawn: null };
|
|
168
|
+
const withdrawn = withHeadRetry(attempts, () => appendWithdrawal(logPath, decided, refusal, audit.record.seq, options));
|
|
169
|
+
if (!withdrawn.ok)
|
|
170
|
+
return withdrawn;
|
|
171
|
+
return { ok: true, audit: audit.record, withdrawn: withdrawn.record };
|
|
172
|
+
}
|
|
173
|
+
/** The audit record's whole cycle: a fresh read, the task off it, one append. */
|
|
174
|
+
function appendAudit(logPath, decided, refusal, options) {
|
|
175
|
+
const ts = tick(options);
|
|
176
|
+
const read = readRecords(logPath, options);
|
|
177
|
+
if (!read.ok)
|
|
178
|
+
return read;
|
|
179
|
+
// The task the request named, off the verified log rather than off the
|
|
180
|
+
// caller: a surface holds a rendering, and the record should say what the log
|
|
181
|
+
// says. TTL is irrelevant here (nothing is being decided), so the derivation
|
|
182
|
+
// is asked for the task alone.
|
|
183
|
+
const derivation = requestState(read.records, decided.actionKey, ts, null);
|
|
184
|
+
const payload = {
|
|
185
|
+
actor: decided.actor,
|
|
186
|
+
decision: decided.decision,
|
|
187
|
+
code: refusal.code,
|
|
188
|
+
message: refusal.message,
|
|
189
|
+
};
|
|
190
|
+
if (refusal.drift !== undefined) {
|
|
191
|
+
payload["policy_sha256_requested"] = refusal.drift.requested;
|
|
192
|
+
payload["policy_sha256_attested"] = refusal.drift.attested;
|
|
193
|
+
}
|
|
194
|
+
return appendOne(logPath, {
|
|
195
|
+
ts,
|
|
196
|
+
event: "audit.decision_refused",
|
|
197
|
+
actor: DECISION_REFUSAL_ACTOR,
|
|
198
|
+
...(derivation.task === null ? {} : { task: derivation.task }),
|
|
199
|
+
action_key: decided.actionKey,
|
|
200
|
+
channel: decided.channel,
|
|
201
|
+
payload,
|
|
202
|
+
}, options, read.head);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The withdrawal's whole cycle, run only for `policy-drift`.
|
|
206
|
+
*
|
|
207
|
+
* The pending-ness check is inside the cycle rather than carried from the audit
|
|
208
|
+
* record's read, which is what makes the retry safe: a request that was decided
|
|
209
|
+
* or withdrawn while this was writing is settled by that record, and appending
|
|
210
|
+
* a second terminal event for it would be this module overwriting an answer.
|
|
211
|
+
* `record: null` is that case, and it is a success — there was nothing to
|
|
212
|
+
* withdraw.
|
|
213
|
+
*/
|
|
214
|
+
function appendWithdrawal(logPath, decided, refusal, refusedSeq, options) {
|
|
215
|
+
const ts = tick(options);
|
|
216
|
+
const read = readRecords(logPath, options);
|
|
217
|
+
if (!read.ok)
|
|
218
|
+
return read;
|
|
219
|
+
const derivation = requestState(read.records, decided.actionKey, ts, null);
|
|
220
|
+
if (derivation.state !== "requested")
|
|
221
|
+
return { ok: true, record: null };
|
|
222
|
+
return appendOne(logPath, {
|
|
223
|
+
ts,
|
|
224
|
+
event: "approval.withdrawn",
|
|
225
|
+
actor: DECISION_REFUSAL_ACTOR,
|
|
226
|
+
...(derivation.task === null ? {} : { task: derivation.task }),
|
|
227
|
+
action_key: decided.actionKey,
|
|
228
|
+
payload: {
|
|
229
|
+
action_key: decided.actionKey,
|
|
230
|
+
reason: POLICY_DRIFT_REASON,
|
|
231
|
+
note: driftNote(refusal),
|
|
232
|
+
refused_seq: refusedSeq,
|
|
233
|
+
},
|
|
234
|
+
}, options, read.head);
|
|
235
|
+
}
|
|
236
|
+
function readRecords(logPath, options) {
|
|
237
|
+
const read = readVerifiedRecords(logPath, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
|
|
238
|
+
return read.ok ? read : { ok: false, code: "log-unreadable", message: read.message };
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* The withdrawal's note: both hashes, so a reader checks the runtime's verdict
|
|
242
|
+
* against the log instead of taking it.
|
|
243
|
+
*/
|
|
244
|
+
function driftNote(refusal) {
|
|
245
|
+
const drift = refusal.drift;
|
|
246
|
+
const hashes = drift === undefined
|
|
247
|
+
? ""
|
|
248
|
+
: ` The request pinned policy ${drift.requested} and the attested policy is now ${drift.attested}.`;
|
|
249
|
+
return `withdrawn by the runtime: a human's decision was refused \`policy-drift\`, so the rules that routed this request are no longer in force and no decision can be recorded about it.${hashes} The action is not refused — request it again, and it is routed, budgeted and displayed under the policy actually in force.`;
|
|
250
|
+
}
|
|
251
|
+
function appendOne(logPath, input, options, expectedHead) {
|
|
252
|
+
const append = { ...options.append };
|
|
253
|
+
if (options.schemaDir !== undefined)
|
|
254
|
+
append.schemaDir = options.schemaDir;
|
|
255
|
+
const result = appendEvent(logPath, input, { ...append, expectedHead });
|
|
256
|
+
if (result.ok)
|
|
257
|
+
return { ok: true, record: result.record };
|
|
258
|
+
return {
|
|
259
|
+
ok: false,
|
|
260
|
+
code: "append-failed",
|
|
261
|
+
message: `${input.event} could not be appended: ${result.error.message}`,
|
|
262
|
+
append: result.error,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=decision-refusal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-refusal.js","sourceRoot":"","sources":["../../../src/core/decision-refusal.ts"],"names":[],"mappings":"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"}
|