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