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
|
@@ -35,7 +35,9 @@
|
|
|
35
35
|
* is deeply equal across calls, including `decisionPath` strings, because
|
|
36
36
|
* `resolve()` already imposes a total order on candidates.
|
|
37
37
|
*/
|
|
38
|
+
import { dirname } from "node:path";
|
|
38
39
|
import { resolve, STRICTNESS, } from "./policy-match.js";
|
|
40
|
+
import { READ_OUT_OF_SCOPE_CLASS, effectiveReadRoots, renderReadRoots, } from "./read-scope.js";
|
|
39
41
|
/**
|
|
40
42
|
* Action-class grammar for a *concrete* class (not a pattern).
|
|
41
43
|
*
|
|
@@ -51,6 +53,18 @@ export const ACTION_CLASS_PATTERN = /^[a-z0-9][a-z0-9_-]*(?:\.[a-z0-9][a-z0-9_-]
|
|
|
51
53
|
export function isActionClass(value) {
|
|
52
54
|
return ACTION_CLASS_PATTERN.test(value);
|
|
53
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Classes whose explanation should name the read scope in force (APRV-347).
|
|
58
|
+
*
|
|
59
|
+
* The FILE readers, and not every `read.*`. `read.web` and `read.vcs.remote`
|
|
60
|
+
* reach no file, so a scope line under them would be noise on an explanation
|
|
61
|
+
* that is otherwise exactly as long as it needs to be.
|
|
62
|
+
*/
|
|
63
|
+
function scopesReads(actionClass) {
|
|
64
|
+
return (actionClass === READ_OUT_OF_SCOPE_CLASS ||
|
|
65
|
+
actionClass === "read.shell" ||
|
|
66
|
+
actionClass.startsWith("read.file"));
|
|
67
|
+
}
|
|
54
68
|
function quote(text) {
|
|
55
69
|
return JSON.stringify(text);
|
|
56
70
|
}
|
|
@@ -98,6 +112,24 @@ export function explain(load, actionClass, options = {}) {
|
|
|
98
112
|
};
|
|
99
113
|
}
|
|
100
114
|
decisionPath.push(`policy loaded from ${load.source.path}`);
|
|
115
|
+
// APRV-347. The read scope is the fact a reader of a read class most needs
|
|
116
|
+
// and cannot get anywhere else: the autonomy answers "what happens", and this
|
|
117
|
+
// answers "to which reads". Printed for read classes only, so no other
|
|
118
|
+
// explanation grows a line about a key it does not turn on.
|
|
119
|
+
if (scopesReads(actionClass)) {
|
|
120
|
+
const gateRoot = dirname(load.source.path);
|
|
121
|
+
const declared = load.policy.read_scope?.roots;
|
|
122
|
+
const roots = effectiveReadRoots({
|
|
123
|
+
gateRoot,
|
|
124
|
+
...(declared === undefined ? {} : { declared }),
|
|
125
|
+
...(options.systemReadRoots === undefined ? {} : { systemRoots: options.systemReadRoots }),
|
|
126
|
+
});
|
|
127
|
+
decisionPath.push(`read scope (APRV-347): reads resolving inside ${renderReadRoots(roots)} are ordinary ${declared === undefined
|
|
128
|
+
? "reads; the policy declares no `read_scope`, so these are the built-in roots"
|
|
129
|
+
: `reads; \`read_scope.roots\` widened them with ${renderReadRoots(declared)}`}. A read resolving outside all of them is \`${READ_OUT_OF_SCOPE_CLASS}\`${options.systemReadRoots === undefined
|
|
130
|
+
? " (the session scratchpad and the system temp root are resolved by the runtime and are not shown here)"
|
|
131
|
+
: ""}`);
|
|
132
|
+
}
|
|
101
133
|
const candidates = annotate(final.candidates, final.matched?.pattern ?? null);
|
|
102
134
|
describeCandidates(decisionPath, actionClass, candidates);
|
|
103
135
|
describeWinner(decisionPath, load, base.provenance, base.autonomy, candidates);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-explain.js","sourceRoot":"","sources":["../../../src/core/policy-explain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"policy-explain.js","sourceRoot":"","sources":["../../../src/core/policy-explain.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
* directory. No clock, no network, no randomness, no cross-call caching.
|
|
58
58
|
*/
|
|
59
59
|
import { type ProtectedPathEntry } from "./command-class.js";
|
|
60
|
+
import type { ReadScope } from "./read-scope.js";
|
|
60
61
|
import { type ValidationError } from "./validate.js";
|
|
61
62
|
/**
|
|
62
63
|
* Upper bound on alias expansions in one policy document.
|
|
@@ -222,8 +223,37 @@ export interface Policy {
|
|
|
222
223
|
* inoperative.
|
|
223
224
|
*/
|
|
224
225
|
protected_paths?: ProtectedPathEntry[];
|
|
226
|
+
/**
|
|
227
|
+
* Amended SPEC.md §5.2 (APRV-347): directories an agent's reads may stay
|
|
228
|
+
* inside, beyond the built-in roots.
|
|
229
|
+
*
|
|
230
|
+
* ADDITIVE, with the same discipline `protected_paths` has and for a sharper
|
|
231
|
+
* reason: the built-in roots (the gate root, the session scratchpad, the
|
|
232
|
+
* system temp root) are in scope whatever this says, because a runtime denied
|
|
233
|
+
* its own policy and log could not run, and a policy that could NARROW its
|
|
234
|
+
* own read scope would be a policy an agent could edit until nothing was
|
|
235
|
+
* gated. Absent means the built-ins alone, which is the muse jail with no
|
|
236
|
+
* grammar at all: the gate root is the directory holding this file.
|
|
237
|
+
*
|
|
238
|
+
* Nothing here is resolved by the loader. `core/read-scope.ts` turns these
|
|
239
|
+
* into effective roots and `src/cli/hook.ts` resolves them on disk, so a
|
|
240
|
+
* symlink cannot smuggle a read out of one.
|
|
241
|
+
*/
|
|
242
|
+
read_scope?: ReadScope;
|
|
243
|
+
/**
|
|
244
|
+
* The approver roster (SPEC.md §5.1), and since APRV-324 the operator's
|
|
245
|
+
* attested statement of which transport account each of them decides from.
|
|
246
|
+
*
|
|
247
|
+
* `senders` is additive and optional, keyed by a channel whose transport
|
|
248
|
+
* authenticates a sender (`schema/policy.schema.json`'s `senderChannel`, which
|
|
249
|
+
* is `telegram` and nothing else today). It is READ by
|
|
250
|
+
* `channels/contract.ts` through `core/sender-identity.ts`, and by nothing on
|
|
251
|
+
* a routing, budget or token path: it decides WHO a decision is recorded as,
|
|
252
|
+
* never what a decision may authorize.
|
|
253
|
+
*/
|
|
225
254
|
approvers?: Record<string, {
|
|
226
255
|
channels: string[];
|
|
256
|
+
senders?: Record<string, string>;
|
|
227
257
|
}>;
|
|
228
258
|
classes?: Record<string, PolicyClassRule>;
|
|
229
259
|
/**
|
|
@@ -354,7 +384,17 @@ export type PolicyLoadErrorCode = "file-missing" | "no-block" | "multiple-blocks
|
|
|
354
384
|
* line — which no JSON Schema can state. See
|
|
355
385
|
* {@link checkProtectedRouteFloor}.
|
|
356
386
|
*/
|
|
357
|
-
| "protected-route-floor"
|
|
387
|
+
| "protected-route-floor"
|
|
388
|
+
/**
|
|
389
|
+
* Amended SPEC.md §5.2 (APRV-324): two approvers declare one sender id. Like
|
|
390
|
+
* `protected-route-floor` it is a relationship between two parts of a file
|
|
391
|
+
* that is valid against the schema, which no JSON Schema can state. The
|
|
392
|
+
* consequence is the same and for the same reason: the policy does not load,
|
|
393
|
+
* so every class resolves `manual`, because a file that says one account is
|
|
394
|
+
* two people has no reading under which a decision from that account names
|
|
395
|
+
* anybody. See {@link checkSenderMappings}.
|
|
396
|
+
*/
|
|
397
|
+
| "sender-ambiguous";
|
|
358
398
|
/**
|
|
359
399
|
* Result of {@link loadPolicy}.
|
|
360
400
|
*
|
|
@@ -69,6 +69,11 @@ import { scanFences } from "./md-fence.js";
|
|
|
69
69
|
// must never have from the resolution it floors.
|
|
70
70
|
import { resolve, STRICTNESS } from "./policy-match.js";
|
|
71
71
|
import { promptBlockErrors } from "./prompt-layout.js";
|
|
72
|
+
// APRV-324. Same shape as the matcher import above: this module imports a
|
|
73
|
+
// FUNCTION from `sender-identity.ts`, which imports only this module's TYPES,
|
|
74
|
+
// so the cycle is erased at build and the rule the loader enforces and the rule
|
|
75
|
+
// the decision path applies are one implementation.
|
|
76
|
+
import { checkSenderMappings } from "./sender-identity.js";
|
|
72
77
|
import { validate } from "./validate.js";
|
|
73
78
|
/**
|
|
74
79
|
* Upper bound on alias expansions in one policy document.
|
|
@@ -392,6 +397,14 @@ export function loadPolicyText(path, text, options = {}) {
|
|
|
392
397
|
daemon: daemonRead,
|
|
393
398
|
notes: aliasNotes(policy),
|
|
394
399
|
};
|
|
400
|
+
// APRV-324: one sender id, at most one person. Checked here rather than in
|
|
401
|
+
// the schema because it is a relationship between two approvers' blocks, and
|
|
402
|
+
// checked BEFORE the routing floor below because it needs only the parsed
|
|
403
|
+
// roster, not a resolution.
|
|
404
|
+
const senders = checkSenderMappings(policy.approvers);
|
|
405
|
+
if (senders !== null) {
|
|
406
|
+
return failure("sender-ambiguous", `${resolved.path}: ${senders}`, undefined, parsed.value);
|
|
407
|
+
}
|
|
395
408
|
// APRV-266: the routing floor is the LAST gate on a load, because it is the
|
|
396
409
|
// only check here that needs the resolved policy rather than the parsed one.
|
|
397
410
|
const floor = checkProtectedRouteFloor(loaded);
|
|
@@ -484,8 +497,8 @@ function describeLevel(declared, liveRate) {
|
|
|
484
497
|
return liveRate === null ? declared : `${declared} at ${String(liveRate)}`;
|
|
485
498
|
}
|
|
486
499
|
/**
|
|
487
|
-
* Amended SPEC.md §5.2 (APRV-127): one note per place a policy still
|
|
488
|
-
* bare `supervised`.
|
|
500
|
+
* Amended SPEC.md §5.2 (APRV-127, APRV-335): one note per place a policy still
|
|
501
|
+
* writes the bare `supervised`.
|
|
489
502
|
*
|
|
490
503
|
* The alias keeps every pre-split policy meaning exactly what its author meant:
|
|
491
504
|
* `supervised` was retrospective sampling, and `supervised-retro` is that same
|
|
@@ -494,6 +507,11 @@ function describeLevel(declared, liveRate) {
|
|
|
494
507
|
* now means "supervised somehow, possibly live"; the note says, in the one place
|
|
495
508
|
* a reader is already looking, that it does not.
|
|
496
509
|
*
|
|
510
|
+
* Since APRV-335 the note leads with the word `deprecated:`, because the alias
|
|
511
|
+
* is now on a path out: it is still parsed, still admitted by the schema, and a
|
|
512
|
+
* future schema version drops it. A reader who sees only the first clause of a
|
|
513
|
+
* long note should still learn the one thing that has a deadline attached.
|
|
514
|
+
*
|
|
497
515
|
* Pure, total, and ordered: `defaults` first, then class patterns in sorted
|
|
498
516
|
* order, so the notes of one policy are byte-stable across runs.
|
|
499
517
|
*/
|
|
@@ -502,7 +520,7 @@ function aliasNotes(policy) {
|
|
|
502
520
|
const say = (where) => ({
|
|
503
521
|
code: "supervised-alias",
|
|
504
522
|
where,
|
|
505
|
-
message:
|
|
523
|
+
message: `deprecated: ${where} declares the bare \`supervised\`, which parses as \`supervised-retro\`: the action executes immediately and is sampled for review AFTERWARDS. Nothing about it changed with the autonomy split — this is the same behaviour under its honest name. Write \`supervised-retro\` to say so explicitly, or \`supervised-live: <rate>\` to have a fraction of the class stop for a human FIRST. The bare spelling still parses and a future version of the policy schema removes it (APRV-335).`,
|
|
506
524
|
});
|
|
507
525
|
if (policy.defaults?.autonomy === "supervised")
|
|
508
526
|
notes.push(say("defaults.autonomy"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-load.js","sourceRoot":"","sources":["../../../src/core/policy-load.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy-load.js","sourceRoot":"","sources":["../../../src/core/policy-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,6 +243,49 @@ export declare function supervisionOf(declared: DeclaredAutonomy, rule: PolicyCl
|
|
|
243
243
|
* the thing that did not happen as well as the reason it cannot.
|
|
244
244
|
*/
|
|
245
245
|
export declare function humanOnlyRefusal(actionClass: string, whatWasRefused: string): string;
|
|
246
|
+
/**
|
|
247
|
+
* The `harness.launch.*` family: starting an agent harness session (APRV-354).
|
|
248
|
+
*
|
|
249
|
+
* Defined here rather than beside the classifier rows that emit it, because two
|
|
250
|
+
* enforcement paths and the classifier all have to agree on what the family IS,
|
|
251
|
+
* and a second spelling of the prefix is the shape of bug that lets one door
|
|
252
|
+
* close while another stays open.
|
|
253
|
+
*/
|
|
254
|
+
export declare const HARNESS_LAUNCH_PREFIX = "harness.launch.";
|
|
255
|
+
/** Is `actionClass` a member of the `harness.launch.*` family? */
|
|
256
|
+
export declare function isHarnessLaunchClass(actionClass: string): boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Does this family member resolve with NO explicit rule behind it? (APRV-354.)
|
|
259
|
+
*
|
|
260
|
+
* SPEC.md §7 says the family is never inferred autonomous. This is the stronger
|
|
261
|
+
* reading, and the one the family needs: it is never inferred AT ALL. A launch
|
|
262
|
+
* resolves only under a rule an operator wrote — `harness.launch.*` or
|
|
263
|
+
* `harness.launch.NAME` — and a policy that names neither refuses the launch
|
|
264
|
+
* rather than falling to `defaults.autonomy`.
|
|
265
|
+
*
|
|
266
|
+
* The reason is the window the softer reading opens. Before this family existed
|
|
267
|
+
* a harness launch was `unclassified`: refused outright. Adding the class and
|
|
268
|
+
* letting it fall to `defaults.autonomy` would make every launch grantable by a
|
|
269
|
+
* single approval in every project that has ever written `defaults: { autonomy:
|
|
270
|
+
* manual }` — which is all of them — the moment they upgraded. For most classes
|
|
271
|
+
* that is exactly right, because a manual default is an operator saying "ask
|
|
272
|
+
* me". For this one it is not: what the operator would be approving is a whole
|
|
273
|
+
* second agent whose own actions this gate never sees, and a capability that
|
|
274
|
+
* arrives by upgrade rather than by decision is not a capability anybody chose.
|
|
275
|
+
* Muse is the sharp end of it (a Contributor model trains on what it is shown,
|
|
276
|
+
* and the model may come from that harness's own settings where no command line
|
|
277
|
+
* shows it), and the rule is written for the family because the argument is not
|
|
278
|
+
* really about Muse.
|
|
279
|
+
*
|
|
280
|
+
* Keyed on `matched === null`, which is exactly "no rule of the policy's own
|
|
281
|
+
* decided this". That covers both spellings of the fallback: `provenance:
|
|
282
|
+
* "default"` (the file loaded and named nothing for this class) and
|
|
283
|
+
* `provenance: "fail-closed"` (the file did not load, so it names nothing for
|
|
284
|
+
* any class). An explicit rule resolves as written, human-only included.
|
|
285
|
+
*/
|
|
286
|
+
export declare function harnessLaunchNeedsRule(actionClass: string, resolution: Resolution): boolean;
|
|
287
|
+
/** The refusal text for a harness launch no policy rule names (APRV-354). */
|
|
288
|
+
export declare function harnessLaunchUnruledRefusal(actionClass: string, whatWasRefused: string): string;
|
|
246
289
|
/**
|
|
247
290
|
* Does `pattern` match `actionClass`?
|
|
248
291
|
*
|
|
@@ -171,6 +171,58 @@ export function humanOnlyRefusal(actionClass, whatWasRefused) {
|
|
|
171
171
|
`This is not a rejection — nobody decided anything, and asking again with a better summary will get the same answer. ` +
|
|
172
172
|
`Nothing was appended. If the class should be gated rather than reserved, amend APPROVAL.md and re-attest it.`);
|
|
173
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* The `harness.launch.*` family: starting an agent harness session (APRV-354).
|
|
176
|
+
*
|
|
177
|
+
* Defined here rather than beside the classifier rows that emit it, because two
|
|
178
|
+
* enforcement paths and the classifier all have to agree on what the family IS,
|
|
179
|
+
* and a second spelling of the prefix is the shape of bug that lets one door
|
|
180
|
+
* close while another stays open.
|
|
181
|
+
*/
|
|
182
|
+
export const HARNESS_LAUNCH_PREFIX = "harness.launch.";
|
|
183
|
+
/** Is `actionClass` a member of the `harness.launch.*` family? */
|
|
184
|
+
export function isHarnessLaunchClass(actionClass) {
|
|
185
|
+
return actionClass.startsWith(HARNESS_LAUNCH_PREFIX);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Does this family member resolve with NO explicit rule behind it? (APRV-354.)
|
|
189
|
+
*
|
|
190
|
+
* SPEC.md §7 says the family is never inferred autonomous. This is the stronger
|
|
191
|
+
* reading, and the one the family needs: it is never inferred AT ALL. A launch
|
|
192
|
+
* resolves only under a rule an operator wrote — `harness.launch.*` or
|
|
193
|
+
* `harness.launch.NAME` — and a policy that names neither refuses the launch
|
|
194
|
+
* rather than falling to `defaults.autonomy`.
|
|
195
|
+
*
|
|
196
|
+
* The reason is the window the softer reading opens. Before this family existed
|
|
197
|
+
* a harness launch was `unclassified`: refused outright. Adding the class and
|
|
198
|
+
* letting it fall to `defaults.autonomy` would make every launch grantable by a
|
|
199
|
+
* single approval in every project that has ever written `defaults: { autonomy:
|
|
200
|
+
* manual }` — which is all of them — the moment they upgraded. For most classes
|
|
201
|
+
* that is exactly right, because a manual default is an operator saying "ask
|
|
202
|
+
* me". For this one it is not: what the operator would be approving is a whole
|
|
203
|
+
* second agent whose own actions this gate never sees, and a capability that
|
|
204
|
+
* arrives by upgrade rather than by decision is not a capability anybody chose.
|
|
205
|
+
* Muse is the sharp end of it (a Contributor model trains on what it is shown,
|
|
206
|
+
* and the model may come from that harness's own settings where no command line
|
|
207
|
+
* shows it), and the rule is written for the family because the argument is not
|
|
208
|
+
* really about Muse.
|
|
209
|
+
*
|
|
210
|
+
* Keyed on `matched === null`, which is exactly "no rule of the policy's own
|
|
211
|
+
* decided this". That covers both spellings of the fallback: `provenance:
|
|
212
|
+
* "default"` (the file loaded and named nothing for this class) and
|
|
213
|
+
* `provenance: "fail-closed"` (the file did not load, so it names nothing for
|
|
214
|
+
* any class). An explicit rule resolves as written, human-only included.
|
|
215
|
+
*/
|
|
216
|
+
export function harnessLaunchNeedsRule(actionClass, resolution) {
|
|
217
|
+
return isHarnessLaunchClass(actionClass) && resolution.matched === null;
|
|
218
|
+
}
|
|
219
|
+
/** The refusal text for a harness launch no policy rule names (APRV-354). */
|
|
220
|
+
export function harnessLaunchUnruledRefusal(actionClass, whatWasRefused) {
|
|
221
|
+
return (`class ${actionClass} is a harness launch and this policy names no rule for it (SPEC.md §7, APRV-354), so ${whatWasRefused}. ` +
|
|
222
|
+
`Launching an agent harness resolves only under an explicit rule — \`${HARNESS_LAUNCH_PREFIX}*\` or \`${actionClass}\` — and never under \`defaults.autonomy\`, because a grant of this class covers the launch and nothing the launched session then does: that session runs its own tools outside this gate unless its own adapter is installed and attested. ` +
|
|
223
|
+
`This is not a rejection and nobody decided anything. ` +
|
|
224
|
+
`Nothing was appended. To allow it, add the line and re-attest (\`docs/proposals/harness-launch-2026-09.md\` carries this repository's pair, \`${HARNESS_LAUNCH_PREFIX}*\` at manual and \`${HARNESS_LAUNCH_PREFIX}muse\` at human-only).`);
|
|
225
|
+
}
|
|
174
226
|
const WILDCARD = "*";
|
|
175
227
|
/** Split a dotted class or pattern into segments. */
|
|
176
228
|
function segments(text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-match.js","sourceRoot":"","sources":["../../../src/core/policy-match.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy-match.js","sourceRoot":"","sources":["../../../src/core/policy-match.ts"],"names":[],"mappings":"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"}
|
|
@@ -185,6 +185,41 @@ export declare function diffSize(summary: DiffSummary): {
|
|
|
185
185
|
export declare function summarizeDiff(policyPath: string, baseline: Uint8Array | null | undefined, live: Uint8Array, attestedSha256: string | null, schemaDir?: string): DiffSummary;
|
|
186
186
|
/** The stored value a channel displays as the prompt's full payload. */
|
|
187
187
|
export declare function proposalPayloadValue(policyPath: string, text: string): Record<string, unknown>;
|
|
188
|
+
/** What {@link inForcePolicyText} could recover, or why it could not. */
|
|
189
|
+
export type InForcePolicy = {
|
|
190
|
+
ok: true;
|
|
191
|
+
text: string;
|
|
192
|
+
sha256: string;
|
|
193
|
+
} | {
|
|
194
|
+
ok: false;
|
|
195
|
+
reason: string;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* The bytes of the policy currently IN FORCE, recovered and hash-verified
|
|
199
|
+
* (APRV-324 follow-up).
|
|
200
|
+
*
|
|
201
|
+
* The attestation ceremony records only the SHA-256 of the bytes it attests, so
|
|
202
|
+
* the log alone cannot produce them — `summarizeDiff` above says exactly that,
|
|
203
|
+
* and takes its baseline from a caller. What CAN produce them is the payload
|
|
204
|
+
* store: every `policy.proposed` binds the whole policy text as its payload
|
|
205
|
+
* (SPEC.md §10.4, so an approver can read the file rather than a summary of
|
|
206
|
+
* it), and a proposal that was attested therefore left the attested text
|
|
207
|
+
* addressable by its own `payload_hash`.
|
|
208
|
+
*
|
|
209
|
+
* So: find the hash in force, find any proposal that named exactly those bytes,
|
|
210
|
+
* read its stored text, and **verify**. Nothing here trusts the store — the
|
|
211
|
+
* recovered text is hashed and compared against the attested digest from the
|
|
212
|
+
* verified log, so a tampered, truncated or swapped payload file is a failure
|
|
213
|
+
* rather than a different policy wearing the attested hash.
|
|
214
|
+
*
|
|
215
|
+
* It fails, legitimately and often, and callers MUST have an answer for that:
|
|
216
|
+
* a policy attested at a terminal (`approval policy attest`, and `policy amend`
|
|
217
|
+
* on its human path) appends a `policy.updated` and stores nothing, so a chain
|
|
218
|
+
* that has never been attested from a phone has no recoverable bytes at all.
|
|
219
|
+
* `channels/contract.ts` is the caller, and its fallback is to refuse the
|
|
220
|
+
* privileged gesture rather than to assume.
|
|
221
|
+
*/
|
|
222
|
+
export declare function inForcePolicyText(records: readonly EventRecord[], storeDir: string): InForcePolicy;
|
|
188
223
|
/**
|
|
189
224
|
* Append a `policy.proposed` asking a human to attest `policyPath`'s bytes.
|
|
190
225
|
*
|
|
@@ -244,6 +279,23 @@ export interface DecideAttestationOptions extends ProposalOptions {
|
|
|
244
279
|
policyPath?: string;
|
|
245
280
|
/** The channel delivery id this gesture answered, for audit. */
|
|
246
281
|
batchDeliveryId?: string;
|
|
282
|
+
/**
|
|
283
|
+
* The authenticated account this answer arrived from (APRV-324 follow-up),
|
|
284
|
+
* recorded as `payload.sender`, and the kind of evidence it is.
|
|
285
|
+
*
|
|
286
|
+
* Absent means what it means everywhere else: the answer was attributed by
|
|
287
|
+
* configuration rather than by anything a transport authenticated, which is
|
|
288
|
+
* what every attestation before this field says. The RESOLUTION that decides
|
|
289
|
+
* whether a sender may answer at all is the decision surface's
|
|
290
|
+
* (`channels/contract.ts`), against the policy in force rather than the one
|
|
291
|
+
* being attested, and nothing here re-derives or second-guesses it.
|
|
292
|
+
*/
|
|
293
|
+
sender?: {
|
|
294
|
+
channel: string;
|
|
295
|
+
id: string;
|
|
296
|
+
hashed?: true;
|
|
297
|
+
};
|
|
298
|
+
senderSource?: "policy";
|
|
247
299
|
}
|
|
248
300
|
/**
|
|
249
301
|
* Answer a proposal: attest the bytes the prompt displayed, or decline them.
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
*/
|
|
55
55
|
import { readFileSync } from "node:fs";
|
|
56
56
|
import { basename, join } from "node:path";
|
|
57
|
-
import { POLICY_HASH_FIELD, checkAttestationOfBytes, policyBytesHash, } from "./attest.js";
|
|
57
|
+
import { POLICY_HASH_FIELD, attestationSha256, checkAttestationOfBytes, policyBytesHash, } from "./attest.js";
|
|
58
58
|
import { tick } from "./clock.js";
|
|
59
59
|
import { appendEvent, } from "./log.js";
|
|
60
60
|
import { payloadHash } from "./payload.js";
|
|
61
|
-
import { payloadStoreDirFor, storePayload } from "./payload-store.js";
|
|
61
|
+
import { loadPayload, payloadStoreDirFor, storePayload } from "./payload-store.js";
|
|
62
62
|
import { diffPolicies, renderDiff, SPEC_NAMESPACES } from "./policy-diff.js";
|
|
63
63
|
import { loadPolicyText, POLICY_FILENAMES } from "./policy-load.js";
|
|
64
64
|
import { readVerifiedRecords } from "./state.js";
|
|
@@ -76,6 +76,15 @@ const HUMAN_ACTOR = /^human:.+/u;
|
|
|
76
76
|
* attestation as an ordinary authorization.
|
|
77
77
|
*/
|
|
78
78
|
export const PROPOSAL_EVENT = "policy.proposed";
|
|
79
|
+
/**
|
|
80
|
+
* The attestation's own event type (APRV-356).
|
|
81
|
+
*
|
|
82
|
+
* Spelled here rather than imported from `core/attest.ts` for the reason that
|
|
83
|
+
* module's header gives about direction: attestation knows nothing about
|
|
84
|
+
* proposals, and a cycle between the two would be a dependency neither needs.
|
|
85
|
+
* `attestationSha256` above already selects on the same string.
|
|
86
|
+
*/
|
|
87
|
+
const ATTESTATION_EVENT = "policy.updated";
|
|
79
88
|
/** The event a decline appends. An attestation appends `policy.updated`. */
|
|
80
89
|
export const DECLINE_EVENT = "policy.declined";
|
|
81
90
|
/**
|
|
@@ -228,6 +237,82 @@ export function summarizeDiff(policyPath, baseline, live, attestedSha256, schema
|
|
|
228
237
|
export function proposalPayloadValue(policyPath, text) {
|
|
229
238
|
return { policy_path: basename(policyPath), text };
|
|
230
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* The bytes of the policy currently IN FORCE, recovered and hash-verified
|
|
242
|
+
* (APRV-324 follow-up).
|
|
243
|
+
*
|
|
244
|
+
* The attestation ceremony records only the SHA-256 of the bytes it attests, so
|
|
245
|
+
* the log alone cannot produce them — `summarizeDiff` above says exactly that,
|
|
246
|
+
* and takes its baseline from a caller. What CAN produce them is the payload
|
|
247
|
+
* store: every `policy.proposed` binds the whole policy text as its payload
|
|
248
|
+
* (SPEC.md §10.4, so an approver can read the file rather than a summary of
|
|
249
|
+
* it), and a proposal that was attested therefore left the attested text
|
|
250
|
+
* addressable by its own `payload_hash`.
|
|
251
|
+
*
|
|
252
|
+
* So: find the hash in force, find any proposal that named exactly those bytes,
|
|
253
|
+
* read its stored text, and **verify**. Nothing here trusts the store — the
|
|
254
|
+
* recovered text is hashed and compared against the attested digest from the
|
|
255
|
+
* verified log, so a tampered, truncated or swapped payload file is a failure
|
|
256
|
+
* rather than a different policy wearing the attested hash.
|
|
257
|
+
*
|
|
258
|
+
* It fails, legitimately and often, and callers MUST have an answer for that:
|
|
259
|
+
* a policy attested at a terminal (`approval policy attest`, and `policy amend`
|
|
260
|
+
* on its human path) appends a `policy.updated` and stores nothing, so a chain
|
|
261
|
+
* that has never been attested from a phone has no recoverable bytes at all.
|
|
262
|
+
* `channels/contract.ts` is the caller, and its fallback is to refuse the
|
|
263
|
+
* privileged gesture rather than to assume.
|
|
264
|
+
*/
|
|
265
|
+
export function inForcePolicyText(records, storeDir) {
|
|
266
|
+
let attested = null;
|
|
267
|
+
for (let index = records.length - 1; index >= 0; index -= 1) {
|
|
268
|
+
const sha = attestationSha256(records[index]);
|
|
269
|
+
if (sha !== null) {
|
|
270
|
+
attested = sha;
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (attested === null) {
|
|
275
|
+
return { ok: false, reason: "no policy is in force: the log carries no attestation" };
|
|
276
|
+
}
|
|
277
|
+
// Two kinds of record can name the attested bytes, and both are read
|
|
278
|
+
// (APRV-356). A `policy.proposed` binds the whole text so an approver can
|
|
279
|
+
// read the file on a phone; since APRV-356 an ATTESTATION binds it too, so a
|
|
280
|
+
// chain only ever attested at a terminal is recoverable as well. Newest
|
|
281
|
+
// first, and the two are not ranked against each other: both are verified
|
|
282
|
+
// against the same digest from the same verified log, so whichever is found
|
|
283
|
+
// first carries bytes that hash to it or it is skipped.
|
|
284
|
+
for (let index = records.length - 1; index >= 0; index -= 1) {
|
|
285
|
+
const record = records[index];
|
|
286
|
+
if (record.event !== PROPOSAL_EVENT && record.event !== ATTESTATION_EVENT)
|
|
287
|
+
continue;
|
|
288
|
+
const payload = record.payload;
|
|
289
|
+
if (payload === undefined)
|
|
290
|
+
continue;
|
|
291
|
+
if (payload["sha256"] !== attested)
|
|
292
|
+
continue;
|
|
293
|
+
const bound = payload["payload_hash"];
|
|
294
|
+
if (typeof bound !== "string")
|
|
295
|
+
continue;
|
|
296
|
+
const stored = loadPayload(storeDir, bound);
|
|
297
|
+
if (!stored.ok)
|
|
298
|
+
continue;
|
|
299
|
+
const value = stored.value;
|
|
300
|
+
if (typeof value !== "object" || value === null)
|
|
301
|
+
continue;
|
|
302
|
+
const text = value["text"];
|
|
303
|
+
if (typeof text !== "string")
|
|
304
|
+
continue;
|
|
305
|
+
// The verification, and the only reason reading a file beside the log is
|
|
306
|
+
// allowed to answer a question about authority at all.
|
|
307
|
+
if (policyBytesHash(Buffer.from(text, "utf8")) !== attested)
|
|
308
|
+
continue;
|
|
309
|
+
return { ok: true, text, sha256: attested };
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
ok: false,
|
|
313
|
+
reason: `the policy in force hashes ${attested} and its BYTES are not recoverable: no record naming those bytes — neither a policy.proposed nor the attestation itself — binds a payload this log can read beside it. Since APRV-356 every attestation stores the attested text, so this is the ordinary state of a chain last attested BEFORE that landed, where a terminal attestation recorded only the digest.`,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
231
316
|
/**
|
|
232
317
|
* Append a `policy.proposed` asking a human to attest `policyPath`'s bytes.
|
|
233
318
|
*
|
|
@@ -439,6 +524,21 @@ export function decideAttestation(logPath, seq, decision, actor, options = {}) {
|
|
|
439
524
|
sha256: derived.sha256,
|
|
440
525
|
proposed_seq: derived.seq,
|
|
441
526
|
};
|
|
527
|
+
// APRV-324 follow-up. The account the tap came from, when a surface
|
|
528
|
+
// authenticated one and the policy IN FORCE mapped it to this actor. The
|
|
529
|
+
// resolution is `channels/contract.ts`'s and is deliberately not repeated
|
|
530
|
+
// here: what this function records is which account the answer came from,
|
|
531
|
+
// not which account is allowed to give one.
|
|
532
|
+
if (options.sender !== undefined) {
|
|
533
|
+
payload["sender"] = {
|
|
534
|
+
channel: options.sender.channel,
|
|
535
|
+
id: options.sender.id,
|
|
536
|
+
// APRV-370: only when true, so a raw record does not change shape.
|
|
537
|
+
...(options.sender.hashed === true ? { hashed: true } : {}),
|
|
538
|
+
};
|
|
539
|
+
if (options.senderSource !== undefined)
|
|
540
|
+
payload["sender_source"] = options.senderSource;
|
|
541
|
+
}
|
|
442
542
|
if (options.note !== undefined)
|
|
443
543
|
payload["note"] = options.note;
|
|
444
544
|
if (options.batchDeliveryId !== undefined && options.batchDeliveryId.length > 0) {
|