approval-md 0.2.0 → 0.3.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 +63 -24
- package/SPEC.md +57 -11
- package/dist/src/channels/contract.d.ts +34 -1
- package/dist/src/channels/contract.js +200 -7
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/telegram.d.ts +123 -11
- package/dist/src/channels/telegram.js +218 -23
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/channels/web.d.ts +9 -0
- package/dist/src/channels/web.js +17 -0
- package/dist/src/channels/web.js.map +1 -1
- package/dist/src/cli/amend.js +214 -30
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.d.ts +9 -0
- package/dist/src/cli/attest.js +134 -7
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/channel-telegram.d.ts +99 -26
- package/dist/src/cli/channel-telegram.js +311 -13
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +9 -0
- package/dist/src/cli/channel.js +9 -0
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/codex-bridge.d.ts +819 -0
- package/dist/src/cli/codex-bridge.js +1607 -0
- package/dist/src/cli/codex-bridge.js.map +1 -0
- package/dist/src/cli/codex.d.ts +1 -1
- package/dist/src/cli/codex.js +304 -7
- package/dist/src/cli/codex.js.map +1 -1
- package/dist/src/cli/daemon.js +4 -1
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.js +467 -12
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.js +25 -2
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/help.d.ts +6 -2
- package/dist/src/cli/help.js +165 -60
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook-codex.d.ts +49 -1
- package/dist/src/cli/hook-codex.js +60 -1
- package/dist/src/cli/hook-codex.js.map +1 -1
- package/dist/src/cli/hook.d.ts +459 -3
- package/dist/src/cli/hook.js +1062 -114
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/import.js +1 -1
- package/dist/src/cli/import.js.map +1 -1
- package/dist/src/cli/main.js +5 -3
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/policy-apply.d.ts +195 -0
- package/dist/src/cli/policy-apply.js +573 -0
- package/dist/src/cli/policy-apply.js.map +1 -0
- package/dist/src/cli/policy.js +14 -1
- package/dist/src/cli/policy.js.map +1 -1
- package/dist/src/cli/preflight.d.ts +151 -13
- package/dist/src/cli/preflight.js +398 -41
- package/dist/src/cli/preflight.js.map +1 -1
- package/dist/src/cli/sandbox.js +17 -1
- package/dist/src/cli/sandbox.js.map +1 -1
- package/dist/src/cli/scaffold.d.ts +1 -1
- package/dist/src/cli/scaffold.js +1 -1
- package/dist/src/cli/setup-channel.d.ts +9 -0
- package/dist/src/cli/setup-channel.js +28 -1
- package/dist/src/cli/setup-channel.js.map +1 -1
- package/dist/src/cli/setup-common.d.ts +3 -1
- package/dist/src/cli/setup-common.js +3 -2
- package/dist/src/cli/setup-common.js.map +1 -1
- package/dist/src/cli/setup.d.ts +2 -0
- package/dist/src/cli/setup.js +94 -2
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/up.js +115 -51
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/values.js +3 -4
- package/dist/src/cli/values.js.map +1 -1
- package/dist/src/cli/verb-registry.js +174 -9
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +2 -2
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/codex/broker.d.ts +229 -0
- package/dist/src/codex/broker.js +548 -0
- package/dist/src/codex/broker.js.map +1 -0
- package/dist/src/codex/runner.d.ts +178 -0
- package/dist/src/codex/runner.js +231 -0
- package/dist/src/codex/runner.js.map +1 -0
- package/dist/src/codex/serve.d.ts +56 -0
- package/dist/src/codex/serve.js +98 -0
- package/dist/src/codex/serve.js.map +1 -0
- package/dist/src/codex/workspace-commit.d.ts +219 -0
- package/dist/src/codex/workspace-commit.js +549 -0
- package/dist/src/codex/workspace-commit.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +51 -0
- package/dist/src/core/advance-cycle.js +66 -2
- package/dist/src/core/advance-cycle.js.map +1 -1
- package/dist/src/core/agents-md.d.ts +20 -18
- package/dist/src/core/agents-md.js +33 -31
- package/dist/src/core/agents-md.js.map +1 -1
- package/dist/src/core/attest.d.ts +215 -0
- package/dist/src/core/attest.js +317 -7
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +18 -0
- package/dist/src/core/audit.js +13 -0
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/channel-owner.d.ts +213 -0
- package/dist/src/core/channel-owner.js +358 -0
- package/dist/src/core/channel-owner.js.map +1 -0
- package/dist/src/core/command-class.d.ts +154 -0
- package/dist/src/core/command-class.js +673 -20
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/commit-guard.d.ts +272 -0
- package/dist/src/core/commit-guard.js +424 -0
- package/dist/src/core/commit-guard.js.map +1 -0
- package/dist/src/core/daemon-actor.d.ts +45 -0
- package/dist/src/core/daemon-actor.js +54 -0
- package/dist/src/core/daemon-actor.js.map +1 -0
- package/dist/src/core/dark-session.d.ts +109 -8
- package/dist/src/core/dark-session.js +266 -82
- package/dist/src/core/dark-session.js.map +1 -1
- package/dist/src/core/decision-refusal.d.ts +23 -2
- package/dist/src/core/decision-refusal.js +24 -2
- package/dist/src/core/decision-refusal.js.map +1 -1
- package/dist/src/core/env-file.d.ts +5 -0
- package/dist/src/core/env-file.js +60 -1
- package/dist/src/core/env-file.js.map +1 -1
- package/dist/src/core/execute.d.ts +15 -2
- package/dist/src/core/execute.js +15 -2
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/gate.d.ts +86 -1
- package/dist/src/core/gate.js +81 -1
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/gesture-refusal.d.ts +166 -0
- package/dist/src/core/gesture-refusal.js +188 -0
- package/dist/src/core/gesture-refusal.js.map +1 -0
- package/dist/src/core/harness-version.d.ts +1 -1
- package/dist/src/core/harness-version.js +3 -1
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/instance.d.ts +59 -2
- package/dist/src/core/instance.js +113 -0
- package/dist/src/core/instance.js.map +1 -1
- package/dist/src/core/log.d.ts +39 -1
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/policy-explain.d.ts +10 -0
- package/dist/src/core/policy-explain.js +32 -0
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +41 -1
- package/dist/src/core/policy-load.js +21 -3
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +43 -0
- package/dist/src/core/policy-match.js +52 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +52 -0
- package/dist/src/core/policy-proposal.js +102 -2
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/protected-path-guard.d.ts +117 -4
- package/dist/src/core/protected-path-guard.js +362 -48
- package/dist/src/core/protected-path-guard.js.map +1 -1
- package/dist/src/core/question-preempted.d.ts +141 -0
- package/dist/src/core/question-preempted.js +152 -0
- package/dist/src/core/question-preempted.js.map +1 -0
- package/dist/src/core/read-scope.d.ts +172 -0
- package/dist/src/core/read-scope.js +252 -0
- package/dist/src/core/read-scope.js.map +1 -0
- package/dist/src/core/sandbox.d.ts +81 -0
- package/dist/src/core/sandbox.js +190 -1
- package/dist/src/core/sandbox.js.map +1 -1
- package/dist/src/core/sender-identity.d.ts +476 -0
- package/dist/src/core/sender-identity.js +572 -0
- package/dist/src/core/sender-identity.js.map +1 -0
- package/dist/src/core/shlex.d.ts +102 -0
- package/dist/src/core/shlex.js +159 -0
- package/dist/src/core/shlex.js.map +1 -0
- package/dist/src/core/values.d.ts +18 -8
- package/dist/src/core/values.js +36 -1
- package/dist/src/core/values.js.map +1 -1
- package/dist/src/daemon/advance.d.ts +10 -0
- package/dist/src/daemon/advance.js +25 -4
- package/dist/src/daemon/advance.js.map +1 -1
- package/dist/src/daemon/daemon.js +9 -0
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/mcp/server.js +8 -0
- package/dist/src/mcp/server.js.map +1 -1
- package/docs/cli-reference.md +932 -32
- package/docs/codex-enforced-session.md +75 -2
- package/docs/codex-workspace-broker.md +118 -0
- package/package.json +3 -1
- package/schema/event.schema.json +538 -9
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
- package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
- package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
- package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
- package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
- package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
- package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
- package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
- package/schema/fixtures/policy/valid/canonical.json +1 -1
- package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
- package/schema/fixtures/policy-md/valid/canonical.md +1 -1
- package/schema/fixtures/policy-md/valid/with-values.md +5 -7
- package/schema/fixtures/values/invalid/class-shaped.json +1 -1
- package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
- package/schema/fixtures/values/invalid/non-string-item.json +1 -1
- package/schema/fixtures/values/invalid/over-cap.json +1 -1
- package/schema/fixtures/values/invalid/unknown-key.json +1 -1
- package/schema/fixtures/values/invalid/version-float.json +1 -0
- package/schema/fixtures/values/invalid/version-integer.json +1 -0
- package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
- package/schema/fixtures/values/valid/empty-lists.json +2 -3
- package/schema/fixtures/values/valid/full.json +5 -7
- package/schema/fixtures/values/valid/minimal.json +1 -1
- package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
- package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
- package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
- package/schema/fixtures/values-md/invalid/version-1.md +69 -0
- package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
- package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
- package/schema/fixtures/values-md/valid/absent.md +1 -1
- package/schema/fixtures/values-md/valid/with-values.md +5 -7
- package/schema/policy.schema.json +54 -2
- package/schema/values.schema.json +7 -11
- package/schema/fixtures/values/invalid/version-string.json +0 -1
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
* (`tests/layering.test.ts`). One home, so the three cannot disagree about
|
|
10
10
|
* which records are an advance's own.
|
|
11
11
|
*/
|
|
12
|
+
import { ADVANCE_DAEMON_CLASS } from "./command-class.js";
|
|
12
13
|
import { danglingExecutions } from "./execute.js";
|
|
14
|
+
import { resolve } from "./policy-match.js";
|
|
13
15
|
import { payloadOf, requestState } from "./state.js";
|
|
14
16
|
/**
|
|
15
17
|
* Who proposes an advance.
|
|
@@ -23,6 +25,64 @@ import { payloadOf, requestState } from "./state.js";
|
|
|
23
25
|
export const ADVANCE_ACTOR = "agent:daemon";
|
|
24
26
|
/** The class an advance is gated as. Declared, resolved, and never assumed. */
|
|
25
27
|
export const ADVANCE_CLASS = "log.advance";
|
|
28
|
+
// The daemon's own class travels from `core/command-class.ts`, where the
|
|
29
|
+
// reachability answer lives, so the class a cycle asks under and the class the
|
|
30
|
+
// amendment ceremony accepts as fireable are one string (APRV-382).
|
|
31
|
+
export { ADVANCE_DAEMON_CLASS };
|
|
32
|
+
/** Every class an advance cycle may be gated as, newest first. */
|
|
33
|
+
export const ADVANCE_CLASSES = [ADVANCE_DAEMON_CLASS, ADVANCE_CLASS];
|
|
34
|
+
/** The refusal a non-daemon actor gets where the route would be autonomous. */
|
|
35
|
+
export const ADVANCE_ACTOR_REFUSAL = "advance-actor-not-daemon";
|
|
36
|
+
/**
|
|
37
|
+
* The class this advance asks under, decided by WHO is running it (APRV-382).
|
|
38
|
+
*
|
|
39
|
+
* Carter's 2026-09-19 question, answered as policy plus one check. An advance
|
|
40
|
+
* appends nothing and decides nothing: it publishes records the log already
|
|
41
|
+
* holds to a records branch, and the CI guard reads grants that exist whether
|
|
42
|
+
* or not an advance ran. So the DAEMON may make it unattended. Every other
|
|
43
|
+
* actor — a session in a worktree, a human terminal — stays where the class was
|
|
44
|
+
* declared at seq 513, because a lane that could publish the log could choose
|
|
45
|
+
* which records the world sees first.
|
|
46
|
+
*
|
|
47
|
+
* The policy grammar has no actor condition, so the rule is two classes and
|
|
48
|
+
* this function is the actor half of it. Three outcomes, and each one is the
|
|
49
|
+
* stricter reading of its case:
|
|
50
|
+
*
|
|
51
|
+
* 1. **The daemon, with a rule on {@link ADVANCE_DAEMON_CLASS}.** The daemon's
|
|
52
|
+
* own class, whatever autonomy the operator gave it.
|
|
53
|
+
* 2. **The daemon, with no such rule.** {@link ADVANCE_CLASS}, exactly as every
|
|
54
|
+
* build before this one. A policy that has not declared the daemon class has
|
|
55
|
+
* not decided anything about it, and resolving to the fail-closed default
|
|
56
|
+
* there would put a phone tap on every cadence advance between the day this
|
|
57
|
+
* code ships and the day the page is applied. Falling back to the class the
|
|
58
|
+
* operator DID write is the behaviour they attested to.
|
|
59
|
+
* 3. **Any other actor.** {@link ADVANCE_CLASS}, unless that class resolves
|
|
60
|
+
* `autonomous`, which is refused {@link ADVANCE_ACTOR_REFUSAL}. The
|
|
61
|
+
* autonomous route is the daemon's, so an actor that is not the daemon
|
|
62
|
+
* taking it is a policy that was loosened past what this repository decided,
|
|
63
|
+
* and the refusal says so rather than publishing the log unattended.
|
|
64
|
+
*
|
|
65
|
+
* PURE: the policy load is an argument and the actor answer is a boolean the
|
|
66
|
+
* caller read from `core/daemon-actor.ts`, so the whole rule is testable in
|
|
67
|
+
* both directions with no daemon, no git, and no clock.
|
|
68
|
+
*/
|
|
69
|
+
export function advanceRoute(daemon, load) {
|
|
70
|
+
if (daemon) {
|
|
71
|
+
const own = resolve(load, ADVANCE_DAEMON_CLASS);
|
|
72
|
+
if (own.provenance === "rule")
|
|
73
|
+
return { ok: true, cls: ADVANCE_DAEMON_CLASS, daemon };
|
|
74
|
+
return { ok: true, cls: ADVANCE_CLASS, daemon };
|
|
75
|
+
}
|
|
76
|
+
const base = resolve(load, ADVANCE_CLASS);
|
|
77
|
+
if (base.autonomy === "autonomous") {
|
|
78
|
+
return {
|
|
79
|
+
ok: false,
|
|
80
|
+
code: ADVANCE_ACTOR_REFUSAL,
|
|
81
|
+
message: `${ADVANCE_CLASS} resolves autonomous and this process is not the daemon, so nothing was asked and nothing was committed. An unattended advance is the daemon's route alone (${ADVANCE_DAEMON_CLASS}); run the advance from the daemon, or run \`approval log advance\` yourself, where the gate can see who is asking.`,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return { ok: true, cls: ADVANCE_CLASS, daemon };
|
|
85
|
+
}
|
|
26
86
|
/** The task id every advance cycle registers under, plus its head seq. */
|
|
27
87
|
export const ADVANCE_TASK_PREFIX = "daemon-advance";
|
|
28
88
|
/** The idempotency key prefix. One key per (published head → working head) span. */
|
|
@@ -76,8 +136,12 @@ export function openAdvanceRequest(records, ts, ttlMs) {
|
|
|
76
136
|
continue;
|
|
77
137
|
// The class is read off the record rather than assumed from the prefix: a
|
|
78
138
|
// key that merely LOOKS like the daemon's must not be able to make the
|
|
79
|
-
// daemon adopt somebody else's question.
|
|
80
|
-
|
|
139
|
+
// daemon adopt somebody else's question. Either advance class counts
|
|
140
|
+
// (APRV-382): a question opened under `log.advance` before the daemon had
|
|
141
|
+
// its own class is still this cadence's question, and a daemon that refused
|
|
142
|
+
// to adopt it would ask the human a second time for the same span.
|
|
143
|
+
const declared = payloadOf(record)["class"];
|
|
144
|
+
if (typeof declared !== "string" || !ADVANCE_CLASSES.includes(declared))
|
|
81
145
|
continue;
|
|
82
146
|
actionKey = key;
|
|
83
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advance-cycle.js","sourceRoot":"","sources":["../../../src/core/advance-cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"advance-cycle.js","sourceRoot":"","sources":["../../../src/core/advance-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,11 +64,12 @@
|
|
|
64
64
|
* headings ("what I value", "what good looks like", "how I like to work",
|
|
65
65
|
* "what I want from you") and their bullets are drafted into a
|
|
66
66
|
* ` ```yaml approval-values ` block (SPEC.md §5.3). Every bullet lands in
|
|
67
|
-
* `
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
67
|
+
* `like:`, and nothing is ever placed in `love:` or `dislike:`. Since APRV-336
|
|
68
|
+
* folded `wants:` away, `like:` is the list that carries both what an operator
|
|
69
|
+
* prefers and what they ask of an agent, and it is the middle of the three
|
|
70
|
+
* grades: the importer can see that a line was written down and cannot see how
|
|
71
|
+
* much its author meant it, so it declines to reach for the strongest grade or
|
|
72
|
+
* the negative one. Promoting an entry to `love:` is the human's act.
|
|
72
73
|
*
|
|
73
74
|
* ## Namespaces
|
|
74
75
|
*
|
|
@@ -150,8 +151,8 @@ export declare function parseAgentsMd(markdown: string): AgentsMdParse;
|
|
|
150
151
|
export interface ValuesDraft {
|
|
151
152
|
/** The recognised headings, normalised, in source order. */
|
|
152
153
|
headings: string[];
|
|
153
|
-
/** Bullets destined for `
|
|
154
|
-
|
|
154
|
+
/** Bullets destined for `like:`: truncated, deduped, capped. */
|
|
155
|
+
like: string[];
|
|
155
156
|
/** Bullets past {@link VALUES_MAX_ITEMS}, kept so none is dropped silently. */
|
|
156
157
|
overflow: string[];
|
|
157
158
|
/** Human-facing notes; never a reason to relax anything. */
|
|
@@ -161,18 +162,19 @@ export interface ValuesDraft {
|
|
|
161
162
|
* Collect the bullets under the optional values headings of an AGENTS.md-style
|
|
162
163
|
* document (SPEC.md §5.3).
|
|
163
164
|
*
|
|
164
|
-
* ## Everything goes to `
|
|
165
|
+
* ## Everything goes to `like`, and nothing is promoted
|
|
165
166
|
*
|
|
166
|
-
* The values block has three standing grades (`love`, `like`, `dislike`) and
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
* bullet
|
|
167
|
+
* The values block has three standing grades (`love`, `like`, `dislike`) and,
|
|
168
|
+
* since APRV-336, nothing else: `like` carries what the operator prefers and
|
|
169
|
+
* what they ask of an agent alike. This function fills `like` and leaves `love`
|
|
170
|
+
* and `dislike` empty, always. The strength of a grade is a statement of taste
|
|
171
|
+
* and it is the human's to make: the source shows that a line was written under
|
|
172
|
+
* a heading, it does not show how strongly it was meant, and an importer that
|
|
173
|
+
* inferred "love" from an exclamation mark or a heading's wording would be
|
|
174
|
+
* putting words in its reader's mouth in the one block of `APPROVAL.md` that
|
|
175
|
+
* exists to carry theirs. The middle grade is the honest destination for a
|
|
176
|
+
* bullet whose strength is unknown: it says the operator asked for something,
|
|
177
|
+
* which is exactly what a bullet under "what I want from you" demonstrates.
|
|
176
178
|
*
|
|
177
179
|
* ## The scan
|
|
178
180
|
*
|
|
@@ -64,11 +64,12 @@
|
|
|
64
64
|
* headings ("what I value", "what good looks like", "how I like to work",
|
|
65
65
|
* "what I want from you") and their bullets are drafted into a
|
|
66
66
|
* ` ```yaml approval-values ` block (SPEC.md §5.3). Every bullet lands in
|
|
67
|
-
* `
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
67
|
+
* `like:`, and nothing is ever placed in `love:` or `dislike:`. Since APRV-336
|
|
68
|
+
* folded `wants:` away, `like:` is the list that carries both what an operator
|
|
69
|
+
* prefers and what they ask of an agent, and it is the middle of the three
|
|
70
|
+
* grades: the importer can see that a line was written down and cannot see how
|
|
71
|
+
* much its author meant it, so it declines to reach for the strongest grade or
|
|
72
|
+
* the negative one. Promoting an entry to `love:` is the human's act.
|
|
72
73
|
*
|
|
73
74
|
* ## Namespaces
|
|
74
75
|
*
|
|
@@ -415,18 +416,19 @@ function capLength(text) {
|
|
|
415
416
|
* Collect the bullets under the optional values headings of an AGENTS.md-style
|
|
416
417
|
* document (SPEC.md §5.3).
|
|
417
418
|
*
|
|
418
|
-
* ## Everything goes to `
|
|
419
|
+
* ## Everything goes to `like`, and nothing is promoted
|
|
419
420
|
*
|
|
420
|
-
* The values block has three standing grades (`love`, `like`, `dislike`) and
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
*
|
|
424
|
-
*
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
* bullet
|
|
421
|
+
* The values block has three standing grades (`love`, `like`, `dislike`) and,
|
|
422
|
+
* since APRV-336, nothing else: `like` carries what the operator prefers and
|
|
423
|
+
* what they ask of an agent alike. This function fills `like` and leaves `love`
|
|
424
|
+
* and `dislike` empty, always. The strength of a grade is a statement of taste
|
|
425
|
+
* and it is the human's to make: the source shows that a line was written under
|
|
426
|
+
* a heading, it does not show how strongly it was meant, and an importer that
|
|
427
|
+
* inferred "love" from an exclamation mark or a heading's wording would be
|
|
428
|
+
* putting words in its reader's mouth in the one block of `APPROVAL.md` that
|
|
429
|
+
* exists to carry theirs. The middle grade is the honest destination for a
|
|
430
|
+
* bullet whose strength is unknown: it says the operator asked for something,
|
|
431
|
+
* which is exactly what a bullet under "what I want from you" demonstrates.
|
|
430
432
|
*
|
|
431
433
|
* ## The scan
|
|
432
434
|
*
|
|
@@ -514,12 +516,12 @@ export function parseValuesHeadings(markdown) {
|
|
|
514
516
|
if (duplicates > 0) {
|
|
515
517
|
warnings.push(`${String(duplicates)} repeated values ${duplicates === 1 ? "bullet was" : "bullets were"} collapsed; values.schema.json requires the entries of a list to be unique`);
|
|
516
518
|
}
|
|
517
|
-
const
|
|
519
|
+
const like = unique.slice(0, VALUES_MAX_ITEMS);
|
|
518
520
|
const overflow = unique.slice(VALUES_MAX_ITEMS);
|
|
519
521
|
if (overflow.length > 0) {
|
|
520
|
-
warnings.push(`${String(overflow.length)} values ${overflow.length === 1 ? "bullet is" : "bullets are"} past the cap of ${String(VALUES_MAX_ITEMS)}; they are preserved as comments in the draft instead of in
|
|
522
|
+
warnings.push(`${String(overflow.length)} values ${overflow.length === 1 ? "bullet is" : "bullets are"} past the cap of ${String(VALUES_MAX_ITEMS)}; they are preserved as comments in the draft instead of in like:, and a human promotes the ones they want`);
|
|
521
523
|
}
|
|
522
|
-
return { headings,
|
|
524
|
+
return { headings, like, overflow, warnings };
|
|
523
525
|
}
|
|
524
526
|
/** Ordered (section, bullet) pairs: allowed, then approval-first, then never. */
|
|
525
527
|
function orderedBullets(parse) {
|
|
@@ -648,29 +650,29 @@ export function renderFencedValuesDraft(draft, source) {
|
|
|
648
650
|
"# The values block lives INSIDE APPROVAL.md, so pasting it changes the file's",
|
|
649
651
|
"# bytes and invalidates the standing attestation; renew it immediately after.",
|
|
650
652
|
"#",
|
|
651
|
-
"# EVERY bullet is in `
|
|
652
|
-
"# `dislike:` are yours to fill in.
|
|
653
|
-
"# yours to
|
|
653
|
+
"# EVERY bullet is in `like:`, the middle grade, and nothing is promoted.",
|
|
654
|
+
"# `love:` and `dislike:` are yours to fill in. How strongly a line is meant",
|
|
655
|
+
"# is yours to say: this importer can see that you wrote it down, and cannot",
|
|
654
656
|
"# see how much you meant it. Guessing would put words in your mouth.",
|
|
655
657
|
"#",
|
|
656
658
|
"# This block is guidance and never policy. Nothing here is enforced, counted",
|
|
657
659
|
"# or checked, and no routing, class match, sampling draw, budget or token",
|
|
658
660
|
"# reads it (SPEC.md §11.1 invariant 10).",
|
|
659
661
|
"",
|
|
660
|
-
|
|
662
|
+
'version: "0.2"',
|
|
661
663
|
];
|
|
662
|
-
if (draft.
|
|
663
|
-
lines.push("# The headings were there and carried no bullets. An empty list is a real", "# answer: it says the question was considered and left blank.", "
|
|
664
|
+
if (draft.like.length === 0) {
|
|
665
|
+
lines.push("# The headings were there and carried no bullets. An empty list is a real", "# answer: it says the question was considered and left blank.", "like: []");
|
|
664
666
|
}
|
|
665
667
|
else {
|
|
666
|
-
lines.push("
|
|
667
|
-
for (const
|
|
668
|
-
lines.push(` - ${JSON.stringify(
|
|
668
|
+
lines.push("like:");
|
|
669
|
+
for (const entry of draft.like)
|
|
670
|
+
lines.push(` - ${JSON.stringify(entry)}`);
|
|
669
671
|
}
|
|
670
672
|
if (draft.overflow.length > 0) {
|
|
671
|
-
lines.push("", `# OVER THE CAP: values.schema.json admits ${String(VALUES_MAX_ITEMS)} entries and the source`, "# offered more. These are preserved verbatim and are NOT in `
|
|
672
|
-
for (const
|
|
673
|
-
lines.push(`# ${
|
|
673
|
+
lines.push("", `# OVER THE CAP: values.schema.json admits ${String(VALUES_MAX_ITEMS)} entries and the source`, "# offered more. These are preserved verbatim and are NOT in `like:`. Promote", "# the ones you want by hand, in place of ones above:");
|
|
674
|
+
for (const entry of draft.overflow)
|
|
675
|
+
lines.push(`# ${entry}`);
|
|
674
676
|
}
|
|
675
677
|
return `\`\`\`${VALUES_INFO_STRING}\n${lines.join("\n")}\n\`\`\`\n`;
|
|
676
678
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../../src/core/agents-md.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../../src/core/agents-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
* validation. Nothing in this file opens the log itself.
|
|
37
37
|
*/
|
|
38
38
|
import { type ClockOptions } from "./clock.js";
|
|
39
|
+
import { type ProtectedPathEntry } from "./command-class.js";
|
|
39
40
|
import { type AppendOptions, type EventRecord } from "./log.js";
|
|
40
41
|
import type { ValidationError } from "./validate.js";
|
|
41
42
|
/** Environment variable naming the human on whose behalf the CLI attests. */
|
|
@@ -201,7 +202,41 @@ export declare function policyBytesHash(bytes: Uint8Array): string;
|
|
|
201
202
|
* moment, and the *latest* attestation is the one `checkAttestation` honors.
|
|
202
203
|
* Passing a precondition here would only manufacture spurious failures.
|
|
203
204
|
*/
|
|
205
|
+
/**
|
|
206
|
+
* The value a terminal attestation stores for the bytes it attests (APRV-356).
|
|
207
|
+
*
|
|
208
|
+
* One author for the shape, because two parties need it and they must agree:
|
|
209
|
+
* {@link appendAttestation} writes it, and `cli/amend.ts` has to name the file
|
|
210
|
+
* it will land in before the append happens, so the ceremony commit can carry
|
|
211
|
+
* it. A second spelling of `{ text }` anywhere would be a store file the
|
|
212
|
+
* ceremony quietly left behind.
|
|
213
|
+
*
|
|
214
|
+
* Deliberately narrower than `proposalPayloadValue` in `core/policy-proposal.ts`,
|
|
215
|
+
* which carries `policy_path` beside the text: a proposal is a prompt and names
|
|
216
|
+
* the file it is asking about, while an attestation is a binding and the bytes
|
|
217
|
+
* are the whole of it. The two therefore address different files in the store
|
|
218
|
+
* for the same policy, which costs one duplicate and keeps each record's
|
|
219
|
+
* binding meaning exactly one thing.
|
|
220
|
+
*/
|
|
221
|
+
export declare function attestedPolicyPayload(text: string): {
|
|
222
|
+
text: string;
|
|
223
|
+
};
|
|
224
|
+
/** The store hash {@link attestedPolicyPayload} addresses for these bytes. */
|
|
225
|
+
export declare function attestedPolicyPayloadHash(text: string): string;
|
|
204
226
|
export declare function appendAttestation(logPath: string, policyPath: string, actor: string, options?: AttestOptions): AttestationAppendResult;
|
|
227
|
+
/**
|
|
228
|
+
* Is this record an attestation — a `policy.updated` carrying a `sha256`?
|
|
229
|
+
*
|
|
230
|
+
* `policy.updated` records **without** a `payload.sha256` are ignored for
|
|
231
|
+
* attestation purposes. Two reasons, one forward and one backward: the event
|
|
232
|
+
* type predates this verb (SPEC.md §8 has always had it, and the schema keeps
|
|
233
|
+
* it base-only with no required payload fields), so pre-attestation logs and
|
|
234
|
+
* hand-rolled tooling may carry `policy.updated` events that assert nothing
|
|
235
|
+
* about bytes; and treating such a record as an attestation would mean a
|
|
236
|
+
* payload-less event could *satisfy* the guard, which is exactly backwards.
|
|
237
|
+
* Ignoring them means an old log reads as `not-attested` — fail closed.
|
|
238
|
+
*/
|
|
239
|
+
export declare function attestationSha256(record: EventRecord): string | null;
|
|
205
240
|
/**
|
|
206
241
|
* Compare the live policy file against the latest attestation in `records`.
|
|
207
242
|
*
|
|
@@ -418,3 +453,183 @@ export declare function findOrganAttestation(records: readonly EventRecord[], or
|
|
|
418
453
|
* it: {@link findOrganAttestation} is the question the guard asks.
|
|
419
454
|
*/
|
|
420
455
|
export declare function latestOrganAttestation(records: readonly EventRecord[], organPath: string): OrganAttestation | null;
|
|
456
|
+
/**
|
|
457
|
+
* The event a protected-path SIGN-OFF is: a human's statement that they read
|
|
458
|
+
* one `policy.edit` file at these exact bytes and stand behind them.
|
|
459
|
+
*
|
|
460
|
+
* ## The hole this fills
|
|
461
|
+
*
|
|
462
|
+
* SPEC.md's amendment-provenance rule says text that reached a protected file
|
|
463
|
+
* without a grant carries `(Amended APRV-n, pending sign-off.)` until a human
|
|
464
|
+
* ratifies it, and doubt resolves to pending. Nothing recorded the
|
|
465
|
+
* ratification. A human who had read a diff and agreed with it had exactly two
|
|
466
|
+
* ways to get it past the protected-path guard: re-make the edit under a grant,
|
|
467
|
+
* or change the guard. Both are the wrong shape — the first re-does work the
|
|
468
|
+
* human has already done with their eyes, and the second edits an enforcement
|
|
469
|
+
* path to admit one change.
|
|
470
|
+
*
|
|
471
|
+
* ## Why it is not the organ record, and not a grant either
|
|
472
|
+
*
|
|
473
|
+
* It sits between them, and the ordering is the point.
|
|
474
|
+
*
|
|
475
|
+
* A grant binds the exact hunk: `{before, after}` bytes a human saw in a
|
|
476
|
+
* prompt. It is the strongest evidence in the system about a CHANGE, and
|
|
477
|
+
* nothing here weakens it — {@link findPathSignOff} is asked only after the
|
|
478
|
+
* guard's hunk search has failed, so a covered change still passes on its
|
|
479
|
+
* grants and still prints them as its reason.
|
|
480
|
+
*
|
|
481
|
+
* {@link ORGAN_ATTESTATION_EVENT} is the other end. An organ is `policy.core`,
|
|
482
|
+
* a policy may resolve `policy.core` to `human-only`, and the gate mints
|
|
483
|
+
* nothing for a human-only class (§11.1 invariant 9), so for an organ content
|
|
484
|
+
* attestation is not the weaker evidence, it is the only evidence that can
|
|
485
|
+
* exist. A protected path is not in that position: a `policy.edit` grant for it
|
|
486
|
+
* is obtainable, so this record must never be the first thing a reader reaches
|
|
487
|
+
* for. A separate type is what makes that ordering structural rather than a
|
|
488
|
+
* convention every reader has to remember, and it is why the organ verb's
|
|
489
|
+
* refusals and this one's are not merged.
|
|
490
|
+
*
|
|
491
|
+
* The `gate.` prefix is deliberate: SPEC.md §8 keys the write-boundary clock on
|
|
492
|
+
* it, and a signer who could supply the moment could place a sign-off before
|
|
493
|
+
* bytes they had not yet seen.
|
|
494
|
+
*/
|
|
495
|
+
export declare const PATH_SIGN_OFF_EVENT: "gate.path.signed_off";
|
|
496
|
+
/**
|
|
497
|
+
* The payload field naming which file was signed off.
|
|
498
|
+
*
|
|
499
|
+
* Repository-relative and `/`-separated, for the reason {@link ORGAN_PATH_FIELD}
|
|
500
|
+
* is: the log is copied and read on other machines, and an absolute path would
|
|
501
|
+
* leak the signer's home directory into a permanent record. Spelled `path`
|
|
502
|
+
* rather than `signed_path` because the record type already says what kind of
|
|
503
|
+
* statement it is, and a reader should not have to learn a second noun.
|
|
504
|
+
*/
|
|
505
|
+
export declare const SIGN_OFF_PATH_FIELD = "path";
|
|
506
|
+
/**
|
|
507
|
+
* Why a sign-off was refused: the attestation codes, plus the three path rules
|
|
508
|
+
* this verb has of its own.
|
|
509
|
+
*
|
|
510
|
+
* Three and not one, because the repair differs in each case and a caller has
|
|
511
|
+
* to be able to tell them apart without reading prose:
|
|
512
|
+
*
|
|
513
|
+
* - `path-is-policy` — the policy file, whose sign-off is its attestation and
|
|
514
|
+
* which the gate reads on every operation. A second record that looked like
|
|
515
|
+
* a statement about the policy's bytes is exactly what the organ verb refuses
|
|
516
|
+
* to create, for the same reason.
|
|
517
|
+
* - `path-is-core` — a `policy.core` surface or the log directory. An organ is
|
|
518
|
+
* signed off with `--organ`, which is a different record under different
|
|
519
|
+
* rules; the approval home and the log are the human's own ceremony surface
|
|
520
|
+
* and are not ratified by any verb at all.
|
|
521
|
+
* - `path-not-protected` — an ordinary file, or a path that is not
|
|
522
|
+
* repository-relative. Nothing to ratify: an unprotected file's edits are not
|
|
523
|
+
* gated, so a record about them would assert authority over nothing.
|
|
524
|
+
*/
|
|
525
|
+
export declare const PATH_SIGN_OFF_ERROR_CODES: readonly ["lock-timeout", "corrupt-tail", "validation", "canonicalization", "io", "head-moved", "actor-not-human", "path-not-protected", "path-is-policy", "path-is-core"];
|
|
526
|
+
export type PathSignOffErrorCode = (typeof PATH_SIGN_OFF_ERROR_CODES)[number];
|
|
527
|
+
export interface PathSignOffError {
|
|
528
|
+
code: PathSignOffErrorCode;
|
|
529
|
+
message: string;
|
|
530
|
+
/** Schema errors, present when `code` is "validation". */
|
|
531
|
+
errors?: ValidationError[];
|
|
532
|
+
}
|
|
533
|
+
/** {@link appendPathSignOff}'s result: the append's, widened by three codes. */
|
|
534
|
+
export type PathSignOffAppendResult = {
|
|
535
|
+
ok: true;
|
|
536
|
+
record: EventRecord;
|
|
537
|
+
line: string;
|
|
538
|
+
} | {
|
|
539
|
+
ok: false;
|
|
540
|
+
error: PathSignOffError;
|
|
541
|
+
};
|
|
542
|
+
/**
|
|
543
|
+
* Which file to sign off, in the two spellings that are not the same fact,
|
|
544
|
+
* plus the policy's own protected list.
|
|
545
|
+
*
|
|
546
|
+
* `path` is the identity the record carries and the checker matches on, so it
|
|
547
|
+
* is repository-relative; `root` is where that path is rooted on THIS machine
|
|
548
|
+
* and never reaches the log. `protectedPaths` is `policy.protected_paths`: a
|
|
549
|
+
* project that widened its protected surface may sign off the files it added,
|
|
550
|
+
* and a caller that omits the list gets the built-in set alone, which is the
|
|
551
|
+
* strictly NARROWER answer and therefore the fail-closed one.
|
|
552
|
+
*/
|
|
553
|
+
export interface SignOffTarget {
|
|
554
|
+
/** Repository-relative, e.g. `SPEC.md`. */
|
|
555
|
+
path: string;
|
|
556
|
+
/** The checkout `path` is relative to; `join(root, path)` is hashed. */
|
|
557
|
+
root: string;
|
|
558
|
+
/** `policy.protected_paths`, widening which paths are signable. */
|
|
559
|
+
protectedPaths?: readonly ProtectedPathEntry[];
|
|
560
|
+
}
|
|
561
|
+
/** The identity and digest a sign-off carries, or `null`. */
|
|
562
|
+
export interface PathSignOffFields {
|
|
563
|
+
path: string;
|
|
564
|
+
sha256: string;
|
|
565
|
+
}
|
|
566
|
+
/** A sign-off found in the log, with the record it came from. */
|
|
567
|
+
export interface PathSignOff extends PathSignOffFields {
|
|
568
|
+
record: EventRecord;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Append a `gate.path.signed_off` record for `target` to `logPath`.
|
|
572
|
+
*
|
|
573
|
+
* The rules, refused as structured results and never as throws, in the order
|
|
574
|
+
* they are checked — and the order is normative, because a path can break more
|
|
575
|
+
* than one of them and the caller's repair depends on which they are told:
|
|
576
|
+
*
|
|
577
|
+
* 1. `actor` MUST match `^human:.+`. This is the verb an agent must not
|
|
578
|
+
* perform: a record the party under oversight could write would let it
|
|
579
|
+
* ratify its own text, which is the whole of what the pending-sign-off
|
|
580
|
+
* suffix exists to prevent (§11.1 invariants 4 and 9).
|
|
581
|
+
* 2. The path must be repository-relative: absolute paths and `..` are refused,
|
|
582
|
+
* because the recorded identity has to mean the same file on the machine
|
|
583
|
+
* that later reads the log.
|
|
584
|
+
* 3. The policy file is refused with its own code; it has its own attestation.
|
|
585
|
+
* 4. `policy.core` and `log.mutate` surfaces are refused with their own code.
|
|
586
|
+
* 5. What remains must classify `policy.edit` or a `policy.edit.*` sub-class.
|
|
587
|
+
* Anything else is not a protected path, and this verb is not a general
|
|
588
|
+
* "bless these bytes" primitive.
|
|
589
|
+
*
|
|
590
|
+
* Every one of those is decided BEFORE the file is read, so a path this verb
|
|
591
|
+
* would never sign off is refused whether or not it exists.
|
|
592
|
+
*
|
|
593
|
+
* The digest is computed by the runtime from the file's exact bytes. There is
|
|
594
|
+
* no parameter for it and none for `ts`, for the reason
|
|
595
|
+
* {@link appendOrganAttestation} has neither: a caller who could supply the
|
|
596
|
+
* hash could ratify bytes nobody read, and one who could supply the moment
|
|
597
|
+
* could backdate what they had seen when.
|
|
598
|
+
*
|
|
599
|
+
* Like the attestations this append carries no `expectedHead`: it reads nothing
|
|
600
|
+
* from the log, so it has no check-then-act window to close.
|
|
601
|
+
*/
|
|
602
|
+
export declare function appendPathSignOff(logPath: string, target: SignOffTarget, actor: string, options?: AttestOptions): PathSignOffAppendResult;
|
|
603
|
+
/**
|
|
604
|
+
* Is this record a protected-path sign-off, and which bytes of which file does
|
|
605
|
+
* it stand behind?
|
|
606
|
+
*
|
|
607
|
+
* A record missing either field is ignored, for the reason a `policy.updated`
|
|
608
|
+
* with no `sha256` is ignored: a record that asserts nothing about bytes must
|
|
609
|
+
* never be able to SATISFY a check about bytes. Fail closed.
|
|
610
|
+
*/
|
|
611
|
+
export declare function pathSignOffOf(record: EventRecord): PathSignOffFields | null;
|
|
612
|
+
/**
|
|
613
|
+
* The record in which a human signed off THIS digest FOR THIS path, latest
|
|
614
|
+
* first, or `null`.
|
|
615
|
+
*
|
|
616
|
+
* Both halves are required and that is the whole rule, exactly as it is for an
|
|
617
|
+
* organ: a digest signed for some other file is not evidence about this one,
|
|
618
|
+
* and bytes edited after a sign-off are bytes nobody signed. Two files that
|
|
619
|
+
* happen to hash alike are still two files, and a human who read one has said
|
|
620
|
+
* nothing about the other.
|
|
621
|
+
*
|
|
622
|
+
* There is no "latest wins" supersession. A sign-off stands for the bytes it
|
|
623
|
+
* names: the checker asks about a blob at a commit that may be old, and the
|
|
624
|
+
* newest sign-off of a file says nothing about whether an earlier state was
|
|
625
|
+
* once ratified.
|
|
626
|
+
*/
|
|
627
|
+
export declare function findPathSignOff(records: readonly EventRecord[], path: string, sha256: string): EventRecord | null;
|
|
628
|
+
/**
|
|
629
|
+
* The most recent sign-off of `path` at ANY digest, or `null`.
|
|
630
|
+
*
|
|
631
|
+
* What a status surface needs to tell "this file was never signed off" from
|
|
632
|
+
* "this file was signed off and has been edited since". Nothing enforcing reads
|
|
633
|
+
* it: {@link findPathSignOff} is the question the guard asks.
|
|
634
|
+
*/
|
|
635
|
+
export declare function latestPathSignOff(records: readonly EventRecord[], path: string): PathSignOff | null;
|