approval-md 0.3.0 → 0.4.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 +83 -914
- package/SPEC.md +98 -13
- package/cli.js +66 -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 +19 -0
- package/dist/src/channels/contract.js +105 -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.js +6 -1
- package/dist/src/channels/tagging.js.map +1 -1
- 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 +271 -1
- package/dist/src/channels/telegram.js +403 -45
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/cli/amend.js +350 -4
- 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/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 +273 -0
- package/dist/src/cli/channel-telegram-webhook.js +709 -0
- package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
- package/dist/src/cli/channel-telegram.d.ts +272 -26
- package/dist/src/cli/channel-telegram.js +478 -41
- 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 +17 -1
- package/dist/src/cli/execute.js +341 -20
- 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 +9 -1
- package/dist/src/cli/help.js +246 -38
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook.d.ts +371 -3
- package/dist/src/cli/hook.js +1926 -44
- 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/main.d.ts +0 -12
- package/dist/src/cli/main.js +51 -0
- 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 +21 -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 +337 -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 +55 -3
- package/dist/src/core/audit.js +52 -5
- 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 +760 -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 +306 -5
- package/dist/src/core/gate.js +772 -24
- 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-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 +50 -21
- package/dist/src/core/log.js +197 -19
- 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 +23 -0
- package/dist/src/core/policy-proposal.js +8 -2
- package/dist/src/core/policy-proposal.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 +35 -10
- package/dist/src/core/sender-identity.js +48 -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/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 +158 -0
- package/dist/src/serve/archive.js +354 -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 +766 -0
- package/docs/cli-reference.md +1633 -43
- package/package.json +4 -2
- package/schema/event.schema.json +59 -2
- 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/daemon-identity-declared.json +17 -0
- package/schema/fixtures/event/valid/daemon-identity.json +15 -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 +50 -6
|
@@ -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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"}
|
|
@@ -32,6 +32,85 @@ export declare const TELEGRAM_TOKEN_ENV = "APPROVAL_TG_TOKEN";
|
|
|
32
32
|
* declares no `channels.telegram.chat_id_env`. Also a default.
|
|
33
33
|
*/
|
|
34
34
|
export declare const TELEGRAM_CHAT_ENV = "APPROVAL_TG_CHAT";
|
|
35
|
+
/**
|
|
36
|
+
* The environment variable the webhook `secret_token` is read from (APRV-424).
|
|
37
|
+
*
|
|
38
|
+
* ## Why this one is conventional and the two above are declared
|
|
39
|
+
*
|
|
40
|
+
* `token_env` and `chat_id_env` are policy keys because a machine may run two
|
|
41
|
+
* gates against two bots, and the policy is where that pair is written down.
|
|
42
|
+
* This is not that kind of key, for two reasons and in that order:
|
|
43
|
+
*
|
|
44
|
+
* 1. `channels.telegram` in `schema/policy.schema.json` is
|
|
45
|
+
* `additionalProperties: false`, so declaring a name there is a schema
|
|
46
|
+
* amendment, which is its own task. A capability does not get to arrive by
|
|
47
|
+
* widening a validated document on the way past.
|
|
48
|
+
* 2. It is launch configuration in the sense of SPEC.md §11.1 invariant 7,
|
|
49
|
+
* which is where the precedent is: `APPROVAL_SENDER_KEY` (APRV-370) and
|
|
50
|
+
* `approval serve`'s two bearer credentials (APRV-421) are conventional
|
|
51
|
+
* names for the same reason. The host that launches one process per tenant
|
|
52
|
+
* sets it, exactly as it sets the bot token and the vault passphrase
|
|
53
|
+
* (`design/hosted-daemon-identity.md` §1.2), and two gates on one machine
|
|
54
|
+
* already have two environments rather than one.
|
|
55
|
+
*
|
|
56
|
+
* The VALUE never appears in a policy, a log, a record or a message. Telegram
|
|
57
|
+
* constrains it to 1-256 characters of `A-Z a-z 0-9 _ -`; the verb refuses
|
|
58
|
+
* anything outside that, and anything short enough to have been chosen by a
|
|
59
|
+
* person rather than generated.
|
|
60
|
+
*/
|
|
61
|
+
export declare const TELEGRAM_WEBHOOK_SECRET_ENV = "APPROVAL_TG_WEBHOOK_SECRET";
|
|
62
|
+
/**
|
|
63
|
+
* One webhook URL, reduced so two spellings of one endpoint compare equal
|
|
64
|
+
* (APRV-424, review finding 6).
|
|
65
|
+
*
|
|
66
|
+
* The host is lowercased and one trailing slash is dropped from the path.
|
|
67
|
+
* Nothing more is attempted: `normaliseApiBase` in `core/channel-owner.ts`
|
|
68
|
+
* argues the same restraint, and the direction of the error matters here. Two
|
|
69
|
+
* spellings that compare UNEQUAL turn a restart into a refusal, which an
|
|
70
|
+
* operator clears with one flag; two that compare equal when they are
|
|
71
|
+
* different endpoints would let a second host quietly take a first host's
|
|
72
|
+
* taps, which nobody would see.
|
|
73
|
+
*
|
|
74
|
+
* The path's case is preserved, because a path is case-sensitive and a webhook
|
|
75
|
+
* path is often a random token.
|
|
76
|
+
*
|
|
77
|
+
* `null` for anything that is not a URL, so a caller compares two known URLs
|
|
78
|
+
* or refuses. A failed parse is never "equal to everything".
|
|
79
|
+
*/
|
|
80
|
+
export declare function normaliseWebhookUrl(raw: string): string | null;
|
|
81
|
+
/**
|
|
82
|
+
* A webhook PATH as it may be printed (APRV-424, reviews 1 to 3).
|
|
83
|
+
*
|
|
84
|
+
* With two segments or more, the first is kept and the rest is replaced:
|
|
85
|
+
* `/hook/8Xk2-a-long-random-value` prints as `/hook/<path redacted>`, which is
|
|
86
|
+
* enough for an operator to recognise their own endpoint while the bearer half
|
|
87
|
+
* stays theirs. With exactly ONE segment the whole path is replaced, because a
|
|
88
|
+
* single-segment path is the shape a tunnel's own token takes
|
|
89
|
+
* (`https://host/8Xk2-a-long-random-value`) and keeping "the first segment"
|
|
90
|
+
* there would print the token itself (third review, finding 3).
|
|
91
|
+
*
|
|
92
|
+
* The operator loses nothing either way. They typed it into `--url`.
|
|
93
|
+
*
|
|
94
|
+
* The second review found the first version printing the SERVED path verbatim,
|
|
95
|
+
* on the argument that a path this process serves is a path the operator
|
|
96
|
+
* chose. That argument is right about the operator and wrong about everyone
|
|
97
|
+
* else who reads a terminal, a log aggregator or a pasted banner.
|
|
98
|
+
*/
|
|
99
|
+
export declare function redactWebhookPath(path: string): string;
|
|
100
|
+
/**
|
|
101
|
+
* A webhook URL as it may be printed (APRV-424, review finding 10).
|
|
102
|
+
*
|
|
103
|
+
* The origin, which carries no userinfo by construction, plus
|
|
104
|
+
* {@link redactWebhookPath}'s reading of the path. Used by every line this
|
|
105
|
+
* runtime writes about a webhook url: the start-up banner, the
|
|
106
|
+
* `webhook_started` object, the registration refusal and the listener's
|
|
107
|
+
* `webhook-registered` message, whether the url is this process's own or
|
|
108
|
+
* another host's.
|
|
109
|
+
*
|
|
110
|
+
* A url carrying userinfo is refused at startup rather than printed; this is
|
|
111
|
+
* the belt on that brace, because the origin never contains it.
|
|
112
|
+
*/
|
|
113
|
+
export declare function redactWebhookUrl(raw: string): string;
|
|
35
114
|
/** The NAME of the variable this policy says the bot token lives in. */
|
|
36
115
|
export declare function telegramTokenEnvFor(load: PolicyLoadResult): string;
|
|
37
116
|
/** The NAME of the variable this policy says the approver chat id lives in. */
|
|
@@ -30,6 +30,114 @@ export const TELEGRAM_TOKEN_ENV = "APPROVAL_TG_TOKEN";
|
|
|
30
30
|
* declares no `channels.telegram.chat_id_env`. Also a default.
|
|
31
31
|
*/
|
|
32
32
|
export const TELEGRAM_CHAT_ENV = "APPROVAL_TG_CHAT";
|
|
33
|
+
/**
|
|
34
|
+
* The environment variable the webhook `secret_token` is read from (APRV-424).
|
|
35
|
+
*
|
|
36
|
+
* ## Why this one is conventional and the two above are declared
|
|
37
|
+
*
|
|
38
|
+
* `token_env` and `chat_id_env` are policy keys because a machine may run two
|
|
39
|
+
* gates against two bots, and the policy is where that pair is written down.
|
|
40
|
+
* This is not that kind of key, for two reasons and in that order:
|
|
41
|
+
*
|
|
42
|
+
* 1. `channels.telegram` in `schema/policy.schema.json` is
|
|
43
|
+
* `additionalProperties: false`, so declaring a name there is a schema
|
|
44
|
+
* amendment, which is its own task. A capability does not get to arrive by
|
|
45
|
+
* widening a validated document on the way past.
|
|
46
|
+
* 2. It is launch configuration in the sense of SPEC.md §11.1 invariant 7,
|
|
47
|
+
* which is where the precedent is: `APPROVAL_SENDER_KEY` (APRV-370) and
|
|
48
|
+
* `approval serve`'s two bearer credentials (APRV-421) are conventional
|
|
49
|
+
* names for the same reason. The host that launches one process per tenant
|
|
50
|
+
* sets it, exactly as it sets the bot token and the vault passphrase
|
|
51
|
+
* (`design/hosted-daemon-identity.md` §1.2), and two gates on one machine
|
|
52
|
+
* already have two environments rather than one.
|
|
53
|
+
*
|
|
54
|
+
* The VALUE never appears in a policy, a log, a record or a message. Telegram
|
|
55
|
+
* constrains it to 1-256 characters of `A-Z a-z 0-9 _ -`; the verb refuses
|
|
56
|
+
* anything outside that, and anything short enough to have been chosen by a
|
|
57
|
+
* person rather than generated.
|
|
58
|
+
*/
|
|
59
|
+
export const TELEGRAM_WEBHOOK_SECRET_ENV = "APPROVAL_TG_WEBHOOK_SECRET";
|
|
60
|
+
/**
|
|
61
|
+
* One webhook URL, reduced so two spellings of one endpoint compare equal
|
|
62
|
+
* (APRV-424, review finding 6).
|
|
63
|
+
*
|
|
64
|
+
* The host is lowercased and one trailing slash is dropped from the path.
|
|
65
|
+
* Nothing more is attempted: `normaliseApiBase` in `core/channel-owner.ts`
|
|
66
|
+
* argues the same restraint, and the direction of the error matters here. Two
|
|
67
|
+
* spellings that compare UNEQUAL turn a restart into a refusal, which an
|
|
68
|
+
* operator clears with one flag; two that compare equal when they are
|
|
69
|
+
* different endpoints would let a second host quietly take a first host's
|
|
70
|
+
* taps, which nobody would see.
|
|
71
|
+
*
|
|
72
|
+
* The path's case is preserved, because a path is case-sensitive and a webhook
|
|
73
|
+
* path is often a random token.
|
|
74
|
+
*
|
|
75
|
+
* `null` for anything that is not a URL, so a caller compares two known URLs
|
|
76
|
+
* or refuses. A failed parse is never "equal to everything".
|
|
77
|
+
*/
|
|
78
|
+
export function normaliseWebhookUrl(raw) {
|
|
79
|
+
let url;
|
|
80
|
+
try {
|
|
81
|
+
url = new URL(raw);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const path = url.pathname.length > 1 ? url.pathname.replace(/\/+$/u, "") : url.pathname;
|
|
87
|
+
return `${url.protocol.toLowerCase()}//${url.host.toLowerCase()}${path}${url.search}`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* A webhook PATH as it may be printed (APRV-424, reviews 1 to 3).
|
|
91
|
+
*
|
|
92
|
+
* With two segments or more, the first is kept and the rest is replaced:
|
|
93
|
+
* `/hook/8Xk2-a-long-random-value` prints as `/hook/<path redacted>`, which is
|
|
94
|
+
* enough for an operator to recognise their own endpoint while the bearer half
|
|
95
|
+
* stays theirs. With exactly ONE segment the whole path is replaced, because a
|
|
96
|
+
* single-segment path is the shape a tunnel's own token takes
|
|
97
|
+
* (`https://host/8Xk2-a-long-random-value`) and keeping "the first segment"
|
|
98
|
+
* there would print the token itself (third review, finding 3).
|
|
99
|
+
*
|
|
100
|
+
* The operator loses nothing either way. They typed it into `--url`.
|
|
101
|
+
*
|
|
102
|
+
* The second review found the first version printing the SERVED path verbatim,
|
|
103
|
+
* on the argument that a path this process serves is a path the operator
|
|
104
|
+
* chose. That argument is right about the operator and wrong about everyone
|
|
105
|
+
* else who reads a terminal, a log aggregator or a pasted banner.
|
|
106
|
+
*/
|
|
107
|
+
export function redactWebhookPath(path) {
|
|
108
|
+
const segments = path
|
|
109
|
+
.replace(/^\/+/u, "")
|
|
110
|
+
.split("/")
|
|
111
|
+
.filter((segment) => segment.length > 0);
|
|
112
|
+
const first = segments[0];
|
|
113
|
+
if (first === undefined)
|
|
114
|
+
return "/";
|
|
115
|
+
return segments.length === 1 ? "/<path redacted>" : `/${first}/<path redacted>`;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* A webhook URL as it may be printed (APRV-424, review finding 10).
|
|
119
|
+
*
|
|
120
|
+
* The origin, which carries no userinfo by construction, plus
|
|
121
|
+
* {@link redactWebhookPath}'s reading of the path. Used by every line this
|
|
122
|
+
* runtime writes about a webhook url: the start-up banner, the
|
|
123
|
+
* `webhook_started` object, the registration refusal and the listener's
|
|
124
|
+
* `webhook-registered` message, whether the url is this process's own or
|
|
125
|
+
* another host's.
|
|
126
|
+
*
|
|
127
|
+
* A url carrying userinfo is refused at startup rather than printed; this is
|
|
128
|
+
* the belt on that brace, because the origin never contains it.
|
|
129
|
+
*/
|
|
130
|
+
export function redactWebhookUrl(raw) {
|
|
131
|
+
let url;
|
|
132
|
+
try {
|
|
133
|
+
url = new URL(raw);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return "<not a url>";
|
|
137
|
+
}
|
|
138
|
+
const query = url.search === "" ? "" : "?<query redacted>";
|
|
139
|
+
return `${url.origin}${redactWebhookPath(url.pathname)}${query}`;
|
|
140
|
+
}
|
|
33
141
|
/** The NAME of the variable this policy says the bot token lives in. */
|
|
34
142
|
export function telegramTokenEnvFor(load) {
|
|
35
143
|
return declaredEnvName(load, "token_env") ?? TELEGRAM_TOKEN_ENV;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-config.js","sourceRoot":"","sources":["../../../src/core/telegram-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAEpD,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,IAAsB;IACxD,OAAO,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,kBAAkB,CAAC;AAClE,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,OAAO,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,iBAAiB,CAAC;AACnE,CAAC;AAiBD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAqB,OAAO,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAsB;IACxD,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,yBAAyB,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAClE,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAsB;IAC5D,OAAO;QACL;YACE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,2BAA2B;YAClC,QAAQ,EACN,sFAAsF;YACxF,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EACN,oFAAoF;YACtF,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,SAAS,eAAe,CAAC,IAAsB,EAAE,GAAW;IAC1D,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC"}
|
|
1
|
+
{"version":3,"file":"telegram-config.js","sourceRoot":"","sources":["../../../src/core/telegram-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,7 +171,9 @@ export type VerifyFailureReason = "malformed-line" | "schema-invalid" | "bad-alg
|
|
|
171
171
|
* - `torn-tail` — the file's final line is torn (it is not newline-terminated,
|
|
172
172
|
* i.e. a writer died mid-line) while every complete line before it verifies.
|
|
173
173
|
* This is the crashed-write signature and is deliberately distinct from
|
|
174
|
-
* corruption: it is an incomplete write, not evidence of tampering.
|
|
174
|
+
* corruption: it is an incomplete write, not evidence of tampering. `tear`
|
|
175
|
+
* says which crash (APRV-440), and `intactBytes` is where the verified log
|
|
176
|
+
* ends, which is the length a human truncates the file to.
|
|
175
177
|
* - `corrupt` — everything else, reported at the first offending record.
|
|
176
178
|
*/
|
|
177
179
|
export type VerifyResult = {
|
|
@@ -183,6 +185,11 @@ export type VerifyResult = {
|
|
|
183
185
|
status: "torn-tail";
|
|
184
186
|
records: number;
|
|
185
187
|
intactThroughSeq: number;
|
|
188
|
+
tear: TornTailKind;
|
|
189
|
+
/** UTF-8 byte length of the unterminated tail (exact for a NUL-filled one). */
|
|
190
|
+
tornBytes: number;
|
|
191
|
+
/** Byte offset where the tail starts: the verified log is the file's first this-many bytes. */
|
|
192
|
+
intactBytes: number;
|
|
186
193
|
message: string;
|
|
187
194
|
anomalies: ChainAnomaly[];
|
|
188
195
|
} | {
|
|
@@ -192,6 +199,21 @@ export type VerifyResult = {
|
|
|
192
199
|
message: string;
|
|
193
200
|
anomalies: ChainAnomaly[];
|
|
194
201
|
};
|
|
202
|
+
/**
|
|
203
|
+
* Which crash a torn tail is the signature of (APRV-440).
|
|
204
|
+
*
|
|
205
|
+
* - `nul-filled` — every byte of the unterminated tail is NUL. The file was
|
|
206
|
+
* extended (its size reached the disk) but the data blocks under the new size
|
|
207
|
+
* never did: the machine stopped after the append was acknowledged and before
|
|
208
|
+
* writeback. A kill between the write and its fsync, or an append made before
|
|
209
|
+
* fsync was in the append path, leaves exactly this. No record text survives
|
|
210
|
+
* to be half-written, so it is neither a tampered line nor a partial one.
|
|
211
|
+
* - `partial-line` — anything else: some of a record's bytes reached the file
|
|
212
|
+
* and its newline did not, the signature of a writer that died mid-write.
|
|
213
|
+
*
|
|
214
|
+
* Neither is corruption, and neither is ever repaired here.
|
|
215
|
+
*/
|
|
216
|
+
export type TornTailKind = "nul-filled" | "partial-line";
|
|
195
217
|
/** Options accepted by {@link verify}. */
|
|
196
218
|
export interface VerifyOptions extends ValidateOptions {
|
|
197
219
|
/**
|