approval-md 0.3.0 → 0.4.1
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 +83 -914
- package/SPEC.md +101 -13
- package/cli.js +134 -7
- package/dist/src/adapters/smtp.d.ts +18 -0
- package/dist/src/adapters/smtp.js +24 -3
- package/dist/src/adapters/smtp.js.map +1 -1
- package/dist/src/channels/contract.d.ts +72 -0
- package/dist/src/channels/contract.js +161 -1
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/relay-server.d.ts +90 -0
- package/dist/src/channels/relay-server.js +295 -0
- package/dist/src/channels/relay-server.js.map +1 -0
- package/dist/src/channels/relay.d.ts +273 -0
- package/dist/src/channels/relay.js +564 -0
- package/dist/src/channels/relay.js.map +1 -0
- package/dist/src/channels/tagging.d.ts +25 -0
- package/dist/src/channels/tagging.js +63 -6
- package/dist/src/channels/tagging.js.map +1 -1
- package/dist/src/channels/telegram-minimal.d.ts +251 -0
- package/dist/src/channels/telegram-minimal.js +618 -0
- package/dist/src/channels/telegram-minimal.js.map +1 -0
- package/dist/src/channels/telegram-webhook.d.ts +273 -0
- package/dist/src/channels/telegram-webhook.js +536 -0
- package/dist/src/channels/telegram-webhook.js.map +1 -0
- package/dist/src/channels/telegram.d.ts +725 -20
- package/dist/src/channels/telegram.js +1332 -123
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/cli/amend.js +358 -5
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.js +43 -6
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/audit-card.d.ts +1 -1
- package/dist/src/cli/audit-card.js +40 -1
- package/dist/src/cli/audit-card.js.map +1 -1
- package/dist/src/cli/audit.d.ts +7 -5
- package/dist/src/cli/audit.js +22 -10
- package/dist/src/cli/audit.js.map +1 -1
- package/dist/src/cli/channel-relay.d.ts +108 -0
- package/dist/src/cli/channel-relay.js +334 -0
- package/dist/src/cli/channel-relay.js.map +1 -0
- package/dist/src/cli/channel-telegram-webhook.d.ts +275 -0
- package/dist/src/cli/channel-telegram-webhook.js +716 -0
- package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
- package/dist/src/cli/channel-telegram.d.ts +347 -28
- package/dist/src/cli/channel-telegram.js +648 -56
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +1 -1
- package/dist/src/cli/channel.js +5 -1
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/daemon.js +37 -5
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +63 -0
- package/dist/src/cli/doctor.js +856 -111
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.d.ts +29 -1
- package/dist/src/cli/execute.js +387 -21
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/exit-codes.d.ts +12 -0
- package/dist/src/cli/exit-codes.js +13 -0
- package/dist/src/cli/exit-codes.js.map +1 -1
- package/dist/src/cli/gate.d.ts +2 -0
- package/dist/src/cli/gate.js +233 -2
- package/dist/src/cli/gate.js.map +1 -1
- package/dist/src/cli/help.d.ts +10 -1
- package/dist/src/cli/help.js +283 -54
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook.d.ts +485 -6
- package/dist/src/cli/hook.js +2370 -70
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/init.js +16 -7
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.js +24 -3
- package/dist/src/cli/instructions.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +55 -0
- package/dist/src/cli/log-anchor.js +199 -60
- package/dist/src/cli/log-anchor.js.map +1 -1
- package/dist/src/cli/log-unlock.d.ts +23 -0
- package/dist/src/cli/log-unlock.js +109 -0
- package/dist/src/cli/log-unlock.js.map +1 -0
- package/dist/src/cli/main.d.ts +0 -12
- package/dist/src/cli/main.js +72 -4
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/muse.d.ts +2 -0
- package/dist/src/cli/muse.js +62 -0
- package/dist/src/cli/muse.js.map +1 -0
- package/dist/src/cli/payload.js +79 -1
- package/dist/src/cli/payload.js.map +1 -1
- package/dist/src/cli/scaffold.js +6 -0
- package/dist/src/cli/scaffold.js.map +1 -1
- package/dist/src/cli/serve.d.ts +53 -0
- package/dist/src/cli/serve.js +270 -0
- package/dist/src/cli/serve.js.map +1 -0
- package/dist/src/cli/up.js +26 -2
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +2 -0
- package/dist/src/cli/verb-registry.js +338 -39
- 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/core/attest-bootstrap.d.ts +95 -0
- package/dist/src/core/attest-bootstrap.js +135 -0
- package/dist/src/core/attest-bootstrap.js.map +1 -0
- package/dist/src/core/attest.d.ts +20 -3
- package/dist/src/core/attest.js +25 -0
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +153 -12
- package/dist/src/core/audit.js +415 -20
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/channel-lease.d.ts +322 -0
- package/dist/src/core/channel-lease.js +663 -0
- package/dist/src/core/channel-lease.js.map +1 -0
- package/dist/src/core/command-class.d.ts +51 -0
- package/dist/src/core/command-class.js +766 -8
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/daemon-host.d.ts +178 -0
- package/dist/src/core/daemon-host.js +228 -0
- package/dist/src/core/daemon-host.js.map +1 -0
- package/dist/src/core/daemon-identity.d.ts +238 -0
- package/dist/src/core/daemon-identity.js +252 -0
- package/dist/src/core/daemon-identity.js.map +1 -0
- package/dist/src/core/gate.d.ts +364 -6
- package/dist/src/core/gate.js +802 -27
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/harness-version.d.ts +128 -4
- package/dist/src/core/harness-version.js +179 -12
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +82 -3
- package/dist/src/core/harness-wait.js +89 -3
- package/dist/src/core/harness-wait.js.map +1 -1
- package/dist/src/core/log-lock.d.ts +435 -0
- package/dist/src/core/log-lock.js +1093 -0
- package/dist/src/core/log-lock.js.map +1 -0
- package/dist/src/core/log-subscribe.d.ts +21 -0
- package/dist/src/core/log-subscribe.js +16 -6
- package/dist/src/core/log-subscribe.js.map +1 -1
- package/dist/src/core/log-write-layer.d.ts +55 -0
- package/dist/src/core/log-write-layer.js +91 -0
- package/dist/src/core/log-write-layer.js.map +1 -0
- package/dist/src/core/log.d.ts +130 -22
- package/dist/src/core/log.js +473 -50
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/payload-census.d.ts +51 -0
- package/dist/src/core/payload-census.js +125 -2
- package/dist/src/core/payload-census.js.map +1 -1
- package/dist/src/core/payload-store.d.ts +31 -0
- package/dist/src/core/payload-store.js +113 -8
- package/dist/src/core/payload-store.js.map +1 -1
- package/dist/src/core/payload.d.ts +18 -3
- package/dist/src/core/payload.js +20 -4
- package/dist/src/core/payload.js.map +1 -1
- package/dist/src/core/policy-diff.d.ts +10 -0
- package/dist/src/core/policy-diff.js +10 -2
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-explain.d.ts +7 -1
- package/dist/src/core/policy-explain.js +16 -1
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +24 -0
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +38 -0
- package/dist/src/core/policy-match.js +35 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +40 -0
- package/dist/src/core/policy-proposal.js +37 -16
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/prompt-layout.d.ts +186 -1
- package/dist/src/core/prompt-layout.js +345 -3
- package/dist/src/core/prompt-layout.js.map +1 -1
- package/dist/src/core/read-scope.d.ts +10 -0
- package/dist/src/core/read-scope.js +4 -0
- package/dist/src/core/read-scope.js.map +1 -1
- package/dist/src/core/run-payload.d.ts +160 -0
- package/dist/src/core/run-payload.js +304 -0
- package/dist/src/core/run-payload.js.map +1 -0
- package/dist/src/core/sender-identity.d.ts +59 -11
- package/dist/src/core/sender-identity.js +79 -11
- package/dist/src/core/sender-identity.js.map +1 -1
- package/dist/src/core/state.d.ts +52 -1
- package/dist/src/core/state.js +52 -6
- package/dist/src/core/state.js.map +1 -1
- package/dist/src/core/telegram-config.d.ts +79 -0
- package/dist/src/core/telegram-config.js +108 -0
- package/dist/src/core/telegram-config.js.map +1 -1
- package/dist/src/core/validate.d.ts +20 -6
- package/dist/src/core/validate.js +0 -0
- package/dist/src/core/validate.js.map +1 -1
- package/dist/src/core/verify.d.ts +23 -1
- package/dist/src/core/verify.js +20 -2
- package/dist/src/core/verify.js.map +1 -1
- package/dist/src/daemon/audit.d.ts +80 -5
- package/dist/src/daemon/audit.js +126 -6
- package/dist/src/daemon/audit.js.map +1 -1
- package/dist/src/daemon/daemon.d.ts +174 -2
- package/dist/src/daemon/daemon.js +298 -7
- 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/daemon/projection.d.ts +13 -2
- package/dist/src/daemon/projection.js +39 -6
- package/dist/src/daemon/projection.js.map +1 -1
- package/dist/src/mcp/server.d.ts +39 -3
- package/dist/src/mcp/server.js +22 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/muse/server.d.ts +16 -0
- package/dist/src/muse/server.js +238 -0
- package/dist/src/muse/server.js.map +1 -0
- package/dist/src/serve/archive.d.ts +166 -0
- package/dist/src/serve/archive.js +363 -0
- package/dist/src/serve/archive.js.map +1 -0
- package/dist/src/serve/arguments.d.ts +93 -0
- package/dist/src/serve/arguments.js +228 -0
- package/dist/src/serve/arguments.js.map +1 -0
- package/dist/src/serve/credentials.d.ts +91 -0
- package/dist/src/serve/credentials.js +143 -0
- package/dist/src/serve/credentials.js.map +1 -0
- package/dist/src/serve/follow.d.ts +86 -0
- package/dist/src/serve/follow.js +101 -0
- package/dist/src/serve/follow.js.map +1 -0
- package/dist/src/serve/hook-thread.d.ts +134 -0
- package/dist/src/serve/hook-thread.js +333 -0
- package/dist/src/serve/hook-thread.js.map +1 -0
- package/dist/src/serve/hook-worker.d.ts +134 -0
- package/dist/src/serve/hook-worker.js +173 -0
- package/dist/src/serve/hook-worker.js.map +1 -0
- package/dist/src/serve/server.d.ts +412 -0
- package/dist/src/serve/server.js +1251 -0
- package/dist/src/serve/server.js.map +1 -0
- package/docs/README-extended.md +768 -0
- package/docs/cli-reference.md +2139 -67
- package/package.json +4 -2
- package/schema/event.schema.json +413 -30
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
- package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
- package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
- package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
- package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
- package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
- package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
- package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
- package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
- package/schema/fixtures/event/valid/audit-sampled.json +2 -1
- package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
- package/schema/fixtures/event/valid/daemon-identity.json +16 -0
- package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
- package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
- package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
- package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
- package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
- package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
- package/schema/policy.schema.json +102 -6
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* ## What is evidence here, and what is not
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* Two fields in the whole system are sender facts worth mapping. Telegram's
|
|
17
|
+
* `callback_query.from.id`, the stable numeric account id the Bot API
|
|
18
|
+
* attributes the tap to, and (APRV-455) the EdgeOS `/humans/me` id that an
|
|
19
|
+
* operator's control plane attributes a gesture to when it carries it over
|
|
20
|
+
* `approval channel relay`. {@link SENDER_CHANNELS} is closed to those two
|
|
21
|
+
* channels for that reason. A web form post authenticates nobody and a CLI
|
|
20
22
|
* process authenticates local machine control, so neither may be given an
|
|
21
23
|
* identity key it cannot support: a `senders` entry for either is a schema
|
|
22
24
|
* violation rather than a mapping nothing backs.
|
|
@@ -144,16 +146,39 @@ export declare function senderKeyFrom(env?: NodeJS.ProcessEnv): string | null;
|
|
|
144
146
|
*
|
|
145
147
|
* Closed, and short on purpose. `telegram` is here because the Bot API reports
|
|
146
148
|
* `callback_query.from.id`, a stable numeric account id the sender cannot
|
|
147
|
-
* choose. `
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
149
|
+
* choose. `edgeos` is here (APRV-455) on the same ground: a gesture on it
|
|
150
|
+
* arrives through `approval channel relay`, authenticated by a shared secret
|
|
151
|
+
* from the daemon's launch environment, and the control plane holding that
|
|
152
|
+
* secret attributes it to the EdgeOS `/humans/me` id of the session the person
|
|
153
|
+
* signed in with, which the person cannot choose. In both cases the daemon
|
|
154
|
+
* trusts a relay's report of who acted; that is operator trust, and it is the
|
|
155
|
+
* same trust whichever relay carries the report.
|
|
156
|
+
*
|
|
157
|
+
* `web` and `cli` are absent because neither authenticates a person: the web
|
|
158
|
+
* page takes an unauthenticated form post and the CLI takes whoever controls
|
|
159
|
+
* the process. A policy that named either would be asserting a binding the
|
|
160
|
+
* runtime cannot check, so the schema refuses the key rather than carrying a
|
|
161
|
+
* mapping that reads like identity.
|
|
152
162
|
*/
|
|
153
|
-
export declare const SENDER_CHANNELS: readonly ["telegram"];
|
|
163
|
+
export declare const SENDER_CHANNELS: readonly ["telegram", "edgeos"];
|
|
154
164
|
export type SenderChannel = (typeof SENDER_CHANNELS)[number];
|
|
155
165
|
/** Is `name` a channel whose transport can attribute a gesture (§2)? */
|
|
156
166
|
export declare function isSenderChannel(name: string): name is SenderChannel;
|
|
167
|
+
/**
|
|
168
|
+
* The grammar of a RAW EdgeOS sender id (APRV-455), the same one
|
|
169
|
+
* `schema/policy.schema.json` pins on `senders.edgeos`.
|
|
170
|
+
*
|
|
171
|
+
* The id is the one EdgeOS returns from `/humans/me`, and this runtime treats
|
|
172
|
+
* it as opaque: it is compared byte for byte and never parsed. The grammar is a
|
|
173
|
+
* bound on what may be compared, not a reading of what the id means. An ASCII
|
|
174
|
+
* letter or digit, then up to 127 letters, digits, `.`, `_` or `-`: enough
|
|
175
|
+
* for a UUID or a decimal id, and deliberately without `:` or whitespace, so a
|
|
176
|
+
* raw id can never be mistaken for the {@link SENDER_HASH_PREFIX} form and can
|
|
177
|
+
* never contain the separator {@link senderIndex} joins its keys with.
|
|
178
|
+
*/
|
|
179
|
+
export declare const EDGEOS_SENDER_ID_PATTERN: RegExp;
|
|
180
|
+
/** Is `id` a raw EdgeOS sender id this runtime will compare (APRV-455)? */
|
|
181
|
+
export declare function isEdgeosSenderId(id: string): boolean;
|
|
157
182
|
/**
|
|
158
183
|
* One observed sender: the channel that saw it, and the id that channel's
|
|
159
184
|
* transport attributed the gesture to.
|
|
@@ -232,7 +257,30 @@ export declare const CHANNEL_DECISION_REFUSAL_CODES: readonly [
|
|
|
232
257
|
* mapping. The repair is a terminal, which supplies no sender and is where a
|
|
233
258
|
* `policy.core` edit happens anyway.
|
|
234
259
|
*/
|
|
235
|
-
"attest-requires-terminal"
|
|
260
|
+
"attest-requires-terminal",
|
|
261
|
+
/**
|
|
262
|
+
* A decision button whose nonce this process never issued, on a listener
|
|
263
|
+
* whose stale-copy fallback is OFF (APRV-456): the channel runs through a
|
|
264
|
+
* relay (`--api-base` names something other than the Bot API) or was started
|
|
265
|
+
* with `--no-stale-copy`.
|
|
266
|
+
*
|
|
267
|
+
* APRV-196's fallback carries such a tap to the gate by its action reference
|
|
268
|
+
* when this process holds that action open, and the bound that made it safe
|
|
269
|
+
* is that only the bot token can put a button in front of the approver.
|
|
270
|
+
* Behind a relay that bound is gone: anyone holding the relay token can send
|
|
271
|
+
* the approver a card with forged text whose `callback_data` carries the
|
|
272
|
+
* reference of a real pending action, and the approver's genuine tap would
|
|
273
|
+
* pass the chat check and the sender mapping. So the surface refuses the tap
|
|
274
|
+
* before the gate is called, appends at most one `audit.decision_refused`
|
|
275
|
+
* (when the reference names a delivery this process holds open, which is
|
|
276
|
+
* where the action key on the record comes from), and the request stays
|
|
277
|
+
* pending on the card this process did send.
|
|
278
|
+
*
|
|
279
|
+
* Its own code rather than an ignored callback, because a human's attention
|
|
280
|
+
* was spent and the log is where an operator learns that a card nobody here
|
|
281
|
+
* sent was tapped. The repair is the newest card this listener sent.
|
|
282
|
+
*/
|
|
283
|
+
"nonce-not-issued"];
|
|
236
284
|
export type ChannelDecisionRefusalCode = (typeof CHANNEL_DECISION_REFUSAL_CODES)[number];
|
|
237
285
|
/** Is `code` one of this union's members? Used where a code arrives as a string. */
|
|
238
286
|
export declare function isChannelDecisionRefusalCode(code: string): code is ChannelDecisionRefusalCode;
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* ## What is evidence here, and what is not
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* Two fields in the whole system are sender facts worth mapping. Telegram's
|
|
17
|
+
* `callback_query.from.id`, the stable numeric account id the Bot API
|
|
18
|
+
* attributes the tap to, and (APRV-455) the EdgeOS `/humans/me` id that an
|
|
19
|
+
* operator's control plane attributes a gesture to when it carries it over
|
|
20
|
+
* `approval channel relay`. {@link SENDER_CHANNELS} is closed to those two
|
|
21
|
+
* channels for that reason. A web form post authenticates nobody and a CLI
|
|
20
22
|
* process authenticates local machine control, so neither may be given an
|
|
21
23
|
* identity key it cannot support: a `senders` entry for either is a schema
|
|
22
24
|
* violation rather than a mapping nothing backs.
|
|
@@ -153,17 +155,42 @@ export function senderKeyFrom(env = process.env) {
|
|
|
153
155
|
*
|
|
154
156
|
* Closed, and short on purpose. `telegram` is here because the Bot API reports
|
|
155
157
|
* `callback_query.from.id`, a stable numeric account id the sender cannot
|
|
156
|
-
* choose. `
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
158
|
+
* choose. `edgeos` is here (APRV-455) on the same ground: a gesture on it
|
|
159
|
+
* arrives through `approval channel relay`, authenticated by a shared secret
|
|
160
|
+
* from the daemon's launch environment, and the control plane holding that
|
|
161
|
+
* secret attributes it to the EdgeOS `/humans/me` id of the session the person
|
|
162
|
+
* signed in with, which the person cannot choose. In both cases the daemon
|
|
163
|
+
* trusts a relay's report of who acted; that is operator trust, and it is the
|
|
164
|
+
* same trust whichever relay carries the report.
|
|
165
|
+
*
|
|
166
|
+
* `web` and `cli` are absent because neither authenticates a person: the web
|
|
167
|
+
* page takes an unauthenticated form post and the CLI takes whoever controls
|
|
168
|
+
* the process. A policy that named either would be asserting a binding the
|
|
169
|
+
* runtime cannot check, so the schema refuses the key rather than carrying a
|
|
170
|
+
* mapping that reads like identity.
|
|
161
171
|
*/
|
|
162
|
-
export const SENDER_CHANNELS = ["telegram"];
|
|
172
|
+
export const SENDER_CHANNELS = ["telegram", "edgeos"];
|
|
163
173
|
/** Is `name` a channel whose transport can attribute a gesture (§2)? */
|
|
164
174
|
export function isSenderChannel(name) {
|
|
165
175
|
return SENDER_CHANNELS.includes(name);
|
|
166
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* The grammar of a RAW EdgeOS sender id (APRV-455), the same one
|
|
179
|
+
* `schema/policy.schema.json` pins on `senders.edgeos`.
|
|
180
|
+
*
|
|
181
|
+
* The id is the one EdgeOS returns from `/humans/me`, and this runtime treats
|
|
182
|
+
* it as opaque: it is compared byte for byte and never parsed. The grammar is a
|
|
183
|
+
* bound on what may be compared, not a reading of what the id means. An ASCII
|
|
184
|
+
* letter or digit, then up to 127 letters, digits, `.`, `_` or `-`: enough
|
|
185
|
+
* for a UUID or a decimal id, and deliberately without `:` or whitespace, so a
|
|
186
|
+
* raw id can never be mistaken for the {@link SENDER_HASH_PREFIX} form and can
|
|
187
|
+
* never contain the separator {@link senderIndex} joins its keys with.
|
|
188
|
+
*/
|
|
189
|
+
export const EDGEOS_SENDER_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
|
|
190
|
+
/** Is `id` a raw EdgeOS sender id this runtime will compare (APRV-455)? */
|
|
191
|
+
export function isEdgeosSenderId(id) {
|
|
192
|
+
return EDGEOS_SENDER_ID_PATTERN.test(id);
|
|
193
|
+
}
|
|
167
194
|
/** Where a decision's actor came from, recorded on the decision (design §4). */
|
|
168
195
|
export const SENDER_SOURCES = ["policy"];
|
|
169
196
|
/**
|
|
@@ -228,6 +255,29 @@ export const CHANNEL_DECISION_REFUSAL_CODES = [
|
|
|
228
255
|
* `policy.core` edit happens anyway.
|
|
229
256
|
*/
|
|
230
257
|
"attest-requires-terminal",
|
|
258
|
+
/**
|
|
259
|
+
* A decision button whose nonce this process never issued, on a listener
|
|
260
|
+
* whose stale-copy fallback is OFF (APRV-456): the channel runs through a
|
|
261
|
+
* relay (`--api-base` names something other than the Bot API) or was started
|
|
262
|
+
* with `--no-stale-copy`.
|
|
263
|
+
*
|
|
264
|
+
* APRV-196's fallback carries such a tap to the gate by its action reference
|
|
265
|
+
* when this process holds that action open, and the bound that made it safe
|
|
266
|
+
* is that only the bot token can put a button in front of the approver.
|
|
267
|
+
* Behind a relay that bound is gone: anyone holding the relay token can send
|
|
268
|
+
* the approver a card with forged text whose `callback_data` carries the
|
|
269
|
+
* reference of a real pending action, and the approver's genuine tap would
|
|
270
|
+
* pass the chat check and the sender mapping. So the surface refuses the tap
|
|
271
|
+
* before the gate is called, appends at most one `audit.decision_refused`
|
|
272
|
+
* (when the reference names a delivery this process holds open, which is
|
|
273
|
+
* where the action key on the record comes from), and the request stays
|
|
274
|
+
* pending on the card this process did send.
|
|
275
|
+
*
|
|
276
|
+
* Its own code rather than an ignored callback, because a human's attention
|
|
277
|
+
* was spent and the log is where an operator learns that a card nobody here
|
|
278
|
+
* sent was tapped. The repair is the newest card this listener sent.
|
|
279
|
+
*/
|
|
280
|
+
"nonce-not-issued",
|
|
231
281
|
];
|
|
232
282
|
/** Is `code` one of this union's members? Used where a code arrives as a string. */
|
|
233
283
|
export function isChannelDecisionRefusalCode(code) {
|
|
@@ -377,7 +427,17 @@ export function resolveSender(load, sender, key = null) {
|
|
|
377
427
|
// digits — so asking both questions widens nothing and lets one policy carry
|
|
378
428
|
// a migration in progress. They are kept apart rather than concatenated
|
|
379
429
|
// because WHICH one matched decides the form the record takes.
|
|
380
|
-
|
|
430
|
+
//
|
|
431
|
+
// APRV-455: an OBSERVED id that already wears the keyed prefix is never
|
|
432
|
+
// compared raw. A Telegram id is digits and cannot wear it, so this changes
|
|
433
|
+
// nothing there; on a channel whose ids a relay reports, a caller that copied
|
|
434
|
+
// a digest out of the published policy and reported it as the account would
|
|
435
|
+
// otherwise match the keyed entry by string equality, without the key and
|
|
436
|
+
// without being the account. The keyed comparison below still runs, over the
|
|
437
|
+
// digest OF that string, which no approver's entry is.
|
|
438
|
+
const rawClaimed = isHashedSenderId(sender.id)
|
|
439
|
+
? []
|
|
440
|
+
: (index.get(indexKey(sender.channel, sender.id)) ?? []);
|
|
381
441
|
const keyedClaimed = key === null ? [] : (index.get(indexKey(sender.channel, hashedSenderId(key, sender.id))) ?? []);
|
|
382
442
|
const claimed = [...rawClaimed, ...keyedClaimed];
|
|
383
443
|
// THE FORM FOLLOWS THE ENTRY THAT MATCHED, so the id in the record is the
|
|
@@ -567,6 +627,14 @@ export function senderRefusalLine(code) {
|
|
|
567
627
|
// the operator's own and whose repair is one line they can act on at once.
|
|
568
628
|
return `Not recorded — this gate's sender mapping is keyed and the listener has no ${SENDER_KEY_ENV}, so it can resolve no account at all. This says nothing about your account. The operator sets that variable and restarts the listener.`;
|
|
569
629
|
}
|
|
630
|
+
if (code === "nonce-not-issued") {
|
|
631
|
+
// APRV-456. It says nothing about the request the button named, because
|
|
632
|
+
// the button may be a forgery and its text may not be the request's.
|
|
633
|
+
// APRV-456 refutation S3: "not holding" rather than "did not send", because
|
|
634
|
+
// most taps that reach this are genuine buttons from before a restart, and
|
|
635
|
+
// no claim about a record, because many of these refusals write none.
|
|
636
|
+
return "Not recorded — this listener is not holding that button (an earlier copy, or one it never sent), so it will not act on it. Tap the newest card this listener sent for the request.";
|
|
637
|
+
}
|
|
570
638
|
return "Not recorded — the policy maps this account to more than one approver, so the runtime cannot say who decided. Ask the operator to fix the policy.";
|
|
571
639
|
}
|
|
572
640
|
//# sourceMappingURL=sender-identity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender-identity.js","sourceRoot":"","sources":["../../../src/core/sender-identity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sender-identity.js","sourceRoot":"","sources":["../../../src/core/sender-identity.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/state.d.ts
CHANGED
|
@@ -424,6 +424,27 @@ export interface DeclaredAction {
|
|
|
424
424
|
* is, never less.
|
|
425
425
|
*/
|
|
426
426
|
wait_until: string | null;
|
|
427
|
+
/**
|
|
428
|
+
* The harness's own ceiling on the hook process that opened this request, in
|
|
429
|
+
* milliseconds, or `null` (APRV-423).
|
|
430
|
+
*
|
|
431
|
+
* A BOUNDED INPUT rather than a deadline. The hook states the per-entry
|
|
432
|
+
* timeout its harness runs it under (Hermes caps an entry at 300 s; Claude
|
|
433
|
+
* Code kills the process at the `timeout` in its settings file), and the
|
|
434
|
+
* runtime takes the SHORTER of that minus a fixed margin and the policy's
|
|
435
|
+
* own `defaults.approval_ttl` — see `core/harness-wait.ts`'s
|
|
436
|
+
* `harnessCappedTtlMs`. Claimed, and on the ratchet's safe side for the same
|
|
437
|
+
* structural reason `execution` is: the minimum can only move the deadline
|
|
438
|
+
* EARLIER, so a requester that overstates its cap changes nothing and one
|
|
439
|
+
* that understates it gives itself less time, never more (SPEC.md §11.1
|
|
440
|
+
* invariant 4).
|
|
441
|
+
*
|
|
442
|
+
* A value that is not a positive integer reads as `null`, which is the
|
|
443
|
+
* pre-APRV-423 shape: the policy's TTL governs alone. That is the baseline
|
|
444
|
+
* rather than a reduction below it, and the write boundary refuses such a
|
|
445
|
+
* value anyway.
|
|
446
|
+
*/
|
|
447
|
+
harness_cap_ms: number | null;
|
|
427
448
|
/**
|
|
428
449
|
* The SHA-256 of the attested policy in force when the runtime evaluated the
|
|
429
450
|
* request (APRV-118, amended SPEC.md §5.2), or `null` for a record written
|
|
@@ -464,6 +485,16 @@ export interface RequestDerivation {
|
|
|
464
485
|
expiredByEvent: boolean;
|
|
465
486
|
/** The TTL lapsed by arithmetic, with no `approval.expired` record. */
|
|
466
487
|
expiredLazily: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* The window this cycle was actually judged by: the policy's TTL narrowed by
|
|
490
|
+
* the requesting hook's declared harness ceiling, or `null` when neither
|
|
491
|
+
* bounds it (APRV-423).
|
|
492
|
+
*
|
|
493
|
+
* Reported rather than left to be recomputed. A caller that wants to SAY the
|
|
494
|
+
* deadline (the hook's deny text, the expiry record, a channel's line) reads
|
|
495
|
+
* it from here, so the words and the verdict come from one derivation.
|
|
496
|
+
*/
|
|
497
|
+
effectiveTtlMs: number | null;
|
|
467
498
|
declared: DeclaredAction;
|
|
468
499
|
execution: ExecutionFacts;
|
|
469
500
|
}
|
|
@@ -496,10 +527,30 @@ export declare function payloadOf(record: EventRecord): Record<string, unknown>;
|
|
|
496
527
|
* appended after a human's answer does not erase the answer; the gate refuses
|
|
497
528
|
* to append one at all in that case.
|
|
498
529
|
* - Expiry: an `approval.expired` record sets `expiredByEvent`. With no such
|
|
499
|
-
* record,
|
|
530
|
+
* record, the request lapses against the EFFECTIVE window — `ttlMs` narrowed
|
|
531
|
+
* by the declared harness ceiling (APRV-423, `core/harness-wait.ts`) — and
|
|
532
|
+
* `ts > requestTs + effectiveTtlMs` sets `expiredLazily`. The ceiling can
|
|
533
|
+
* only shorten that window, never lengthen it, so a request under a policy
|
|
534
|
+
* with no TTL is bounded exactly when the hook that opened it declared a
|
|
535
|
+
* ceiling and not otherwise.
|
|
500
536
|
* Both yield `state: "expired"`. An unparseable `requestTs` or `ts` also
|
|
501
537
|
* yields `expired`: liveness that cannot be demonstrated is not assumed. (The
|
|
502
538
|
* event schema's `date-time` format makes that unreachable through the real
|
|
503
539
|
* append path; it is a backstop, not a live branch.)
|
|
504
540
|
*/
|
|
505
541
|
export declare function requestState(records: EventRecord[], actionKey: string, ts: string, ttlMs: number | null): RequestDerivation;
|
|
542
|
+
/**
|
|
543
|
+
* The instant this request lapses, ISO-8601, or `null` when nothing bounds it
|
|
544
|
+
* (APRV-423).
|
|
545
|
+
*
|
|
546
|
+
* The deadline in words, for the places that have to SAY it: the hook's deny
|
|
547
|
+
* text, the `approval.expired` payload's own account of the window it closed,
|
|
548
|
+
* and the line a channel renders on a phone. Derived from the same
|
|
549
|
+
* `effectiveTtlMs` the state above was derived from, so a message can never
|
|
550
|
+
* name a deadline the verdict beside it disagreed with.
|
|
551
|
+
*
|
|
552
|
+
* `null` for a request whose instant does not parse, because a deadline
|
|
553
|
+
* measured from an unreadable start is not a deadline — that request already
|
|
554
|
+
* reads `expired`, and the caller says so in those words instead.
|
|
555
|
+
*/
|
|
556
|
+
export declare function requestExpiresAt(derivation: RequestDerivation): string | null;
|
package/dist/src/core/state.js
CHANGED
|
@@ -124,6 +124,7 @@ import { createHash } from "node:crypto";
|
|
|
124
124
|
import { closeSync, fstatSync, openSync, readFileSync, readSync, statSync } from "node:fs";
|
|
125
125
|
import { resolve } from "node:path";
|
|
126
126
|
import { isPolicySha256, POLICY_HASH_FIELD } from "./attest.js";
|
|
127
|
+
import { harnessCappedTtlMs } from "./harness-wait.js";
|
|
127
128
|
import { onLogAppended } from "./log.js";
|
|
128
129
|
import { normalizeUsd } from "./money.js";
|
|
129
130
|
import { isPayloadHash } from "./payload.js";
|
|
@@ -827,6 +828,7 @@ function declaredFrom(record) {
|
|
|
827
828
|
const hash = payload["payload_hash"];
|
|
828
829
|
const execution = payload["execution"];
|
|
829
830
|
const waitUntil = payload["wait_until"];
|
|
831
|
+
const capMs = payload["harness_cap_ms"];
|
|
830
832
|
const policySha256 = payload[POLICY_HASH_FIELD];
|
|
831
833
|
return {
|
|
832
834
|
class: typeof cls === "string" ? cls : null,
|
|
@@ -839,6 +841,11 @@ function declaredFrom(record) {
|
|
|
839
841
|
// understand must not change what the runtime does.
|
|
840
842
|
execution: execution === "harness" ? "harness" : null,
|
|
841
843
|
wait_until: typeof waitUntil === "string" && !Number.isNaN(Date.parse(waitUntil)) ? waitUntil : null,
|
|
844
|
+
// A positive integer or nothing (APRV-423). Zero, a fraction, a negative
|
|
845
|
+
// and a non-number all read as `null` — the policy TTL alone — because a
|
|
846
|
+
// cap this runtime cannot read is a cap it cannot subtract a margin from,
|
|
847
|
+
// and guessing one would be inventing a deadline for the requester.
|
|
848
|
+
harness_cap_ms: typeof capMs === "number" && Number.isInteger(capMs) && capMs > 0 ? capMs : null,
|
|
842
849
|
// A malformed hash reads as `null`, which is the pre-APRV-118 shape: the
|
|
843
850
|
// grant path then has nothing to compare and proceeds under the current
|
|
844
851
|
// policy. Treating an unreadable value as a mismatch would let a corrupt
|
|
@@ -874,7 +881,12 @@ function declaredFrom(record) {
|
|
|
874
881
|
* appended after a human's answer does not erase the answer; the gate refuses
|
|
875
882
|
* to append one at all in that case.
|
|
876
883
|
* - Expiry: an `approval.expired` record sets `expiredByEvent`. With no such
|
|
877
|
-
* record,
|
|
884
|
+
* record, the request lapses against the EFFECTIVE window — `ttlMs` narrowed
|
|
885
|
+
* by the declared harness ceiling (APRV-423, `core/harness-wait.ts`) — and
|
|
886
|
+
* `ts > requestTs + effectiveTtlMs` sets `expiredLazily`. The ceiling can
|
|
887
|
+
* only shorten that window, never lengthen it, so a request under a policy
|
|
888
|
+
* with no TTL is bounded exactly when the hook that opened it declared a
|
|
889
|
+
* ceiling and not otherwise.
|
|
878
890
|
* Both yield `state: "expired"`. An unparseable `requestTs` or `ts` also
|
|
879
891
|
* yields `expired`: liveness that cannot be demonstrated is not assumed. (The
|
|
880
892
|
* event schema's `date-time` format makes that unreachable through the real
|
|
@@ -897,6 +909,7 @@ export function requestState(records, actionKey, ts, ttlMs) {
|
|
|
897
909
|
payload_hash: null,
|
|
898
910
|
execution: null,
|
|
899
911
|
wait_until: null,
|
|
912
|
+
harness_cap_ms: null,
|
|
900
913
|
policy_sha256: null,
|
|
901
914
|
};
|
|
902
915
|
const execution = { started: null, completed: null, failed: null };
|
|
@@ -963,16 +976,26 @@ export function requestState(records, actionKey, ts, ttlMs) {
|
|
|
963
976
|
}
|
|
964
977
|
let state;
|
|
965
978
|
let expiredLazily = false;
|
|
979
|
+
// APRV-423. The window this cycle is judged by, which is the policy's TTL
|
|
980
|
+
// narrowed by whatever ceiling the requesting hook declared it runs under.
|
|
981
|
+
// Derived HERE, from the declaration this loop just read, so that every
|
|
982
|
+
// caller of this function — the gate's decide, the withdraw and expire
|
|
983
|
+
// verbs, the carry lookup, the daemon's sweep, the queue, the channels —
|
|
984
|
+
// reaches the same deadline without a second copy of the arithmetic. Two
|
|
985
|
+
// copies would be two answers to "has this lapsed", and the one that said
|
|
986
|
+
// "no" would be the one a late tap was recorded against.
|
|
987
|
+
const effectiveTtlMs = harnessCappedTtlMs(ttlMs, declared.harness_cap_ms);
|
|
966
988
|
if (requestSeq === null) {
|
|
967
989
|
state = "none";
|
|
968
990
|
}
|
|
969
991
|
else if (decision !== null) {
|
|
970
992
|
state = decision;
|
|
971
993
|
}
|
|
972
|
-
else if (
|
|
973
|
-
// No `defaults.approval_ttl`
|
|
974
|
-
// stays live until a human decides it; inventing a default TTL
|
|
975
|
-
// silently reject approvals a policy author never asked to
|
|
994
|
+
else if (effectiveTtlMs === null) {
|
|
995
|
+
// No `defaults.approval_ttl` and no declared cap means nothing bounded this
|
|
996
|
+
// request. It stays live until a human decides it; inventing a default TTL
|
|
997
|
+
// here would silently reject approvals a policy author never asked to
|
|
998
|
+
// expire.
|
|
976
999
|
state = "requested";
|
|
977
1000
|
}
|
|
978
1001
|
else {
|
|
@@ -982,7 +1005,7 @@ export function requestState(records, actionKey, ts, ttlMs) {
|
|
|
982
1005
|
state = "expired";
|
|
983
1006
|
expiredLazily = true;
|
|
984
1007
|
}
|
|
985
|
-
else if (now > requestedAt +
|
|
1008
|
+
else if (now > requestedAt + effectiveTtlMs) {
|
|
986
1009
|
state = "expired";
|
|
987
1010
|
expiredLazily = true;
|
|
988
1011
|
}
|
|
@@ -1002,8 +1025,31 @@ export function requestState(records, actionKey, ts, ttlMs) {
|
|
|
1002
1025
|
decisionTs,
|
|
1003
1026
|
expiredByEvent,
|
|
1004
1027
|
expiredLazily,
|
|
1028
|
+
effectiveTtlMs,
|
|
1005
1029
|
declared,
|
|
1006
1030
|
execution,
|
|
1007
1031
|
};
|
|
1008
1032
|
}
|
|
1033
|
+
/**
|
|
1034
|
+
* The instant this request lapses, ISO-8601, or `null` when nothing bounds it
|
|
1035
|
+
* (APRV-423).
|
|
1036
|
+
*
|
|
1037
|
+
* The deadline in words, for the places that have to SAY it: the hook's deny
|
|
1038
|
+
* text, the `approval.expired` payload's own account of the window it closed,
|
|
1039
|
+
* and the line a channel renders on a phone. Derived from the same
|
|
1040
|
+
* `effectiveTtlMs` the state above was derived from, so a message can never
|
|
1041
|
+
* name a deadline the verdict beside it disagreed with.
|
|
1042
|
+
*
|
|
1043
|
+
* `null` for a request whose instant does not parse, because a deadline
|
|
1044
|
+
* measured from an unreadable start is not a deadline — that request already
|
|
1045
|
+
* reads `expired`, and the caller says so in those words instead.
|
|
1046
|
+
*/
|
|
1047
|
+
export function requestExpiresAt(derivation) {
|
|
1048
|
+
if (derivation.effectiveTtlMs === null)
|
|
1049
|
+
return null;
|
|
1050
|
+
const requestedAt = Date.parse(derivation.requestTs ?? "");
|
|
1051
|
+
if (Number.isNaN(requestedAt))
|
|
1052
|
+
return null;
|
|
1053
|
+
return new Date(requestedAt + derivation.effectiveTtlMs).toISOString();
|
|
1054
|
+
}
|
|
1009
1055
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/state.ts"],"names":[],"mappings":"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"}
|