approval-md 0.2.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 +85 -877
- package/SPEC.md +150 -19
- 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 +53 -1
- package/dist/src/channels/contract.js +304 -7
- 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 +394 -12
- package/dist/src/channels/telegram.js +621 -68
- 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 +564 -34
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.d.ts +9 -0
- package/dist/src/cli/attest.js +177 -13
- 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 +347 -28
- package/dist/src/cli/channel-telegram.js +763 -28
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +10 -1
- package/dist/src/cli/channel.js +14 -1
- 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 +41 -6
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +63 -0
- package/dist/src/cli/doctor.js +1322 -122
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.d.ts +17 -1
- package/dist/src/cli/execute.js +366 -22
- 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 +14 -2
- package/dist/src/cli/help.js +395 -82
- 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 +828 -4
- package/dist/src/cli/hook.js +2972 -142
- 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/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 +56 -3
- 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/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 +7 -1
- 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/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 +134 -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.d.ts +2 -0
- package/dist/src/cli/verb-registry.js +510 -47
- 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-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 +234 -2
- package/dist/src/core/attest.js +342 -7
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +73 -3
- package/dist/src/core/audit.js +65 -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/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 +205 -0
- package/dist/src/core/command-class.js +1433 -28
- 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/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/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 +392 -6
- package/dist/src/core/gate.js +852 -24
- 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 +128 -4
- package/dist/src/core/harness-version.js +181 -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/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-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 +89 -22
- 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 +17 -1
- package/dist/src/core/policy-explain.js +48 -1
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +65 -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 +81 -0
- package/dist/src/core/policy-match.js +87 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +75 -0
- package/dist/src/core/policy-proposal.js +110 -4
- 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 +182 -0
- package/dist/src/core/read-scope.js +256 -0
- package/dist/src/core/read-scope.js.map +1 -0
- 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/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 +501 -0
- package/dist/src/core/sender-identity.js +609 -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/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/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/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/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/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 +307 -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 +30 -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 +2563 -73
- package/docs/codex-enforced-session.md +75 -2
- package/docs/codex-workspace-broker.md +118 -0
- package/package.json +6 -2
- package/schema/event.schema.json +595 -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/daemon-id-malformed.json +15 -0
- package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -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/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-granted-sender-hashed.json +20 -0
- package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -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/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/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-hermes.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
- package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -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/daemons-allowlist.json +19 -0
- package/schema/fixtures/policy/valid/senders-keyed.json +24 -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/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 +100 -4
- package/schema/values.schema.json +7 -11
- package/schema/fixtures/values/invalid/version-string.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagging.js","sourceRoot":"","sources":["../../../src/channels/tagging.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tagging.js","sourceRoot":"","sources":["../../../src/channels/tagging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Telegram webhook receiver (SPEC.md §10.3, APRV-424).
|
|
3
|
+
*
|
|
4
|
+
* §10.3 has always written the channel interface as `notify(request) ->
|
|
5
|
+
* delivery_id`, `poll()/webhook() -> decision`. Until this task only the first
|
|
6
|
+
* half of the second clause existed: the Telegram channel long-polled
|
|
7
|
+
* `getUpdates`, which needs one always-running process per bot and forbids a
|
|
8
|
+
* second poller on the same token. This is the other half. Telegram posts each
|
|
9
|
+
* update to a URL the runtime registered, and a host that sleeps between
|
|
10
|
+
* requests can therefore serve a gate.
|
|
11
|
+
*
|
|
12
|
+
* ## It decides nothing, and it barely reads
|
|
13
|
+
*
|
|
14
|
+
* This file checks one header, one path, one method and one body size, parses
|
|
15
|
+
* JSON, and hands the object to {@link TelegramChannel.deliverUpdate}. Which
|
|
16
|
+
* account the Bot API attributed the tap to, which approver the attested
|
|
17
|
+
* policy maps that account to, whether the gate will take the answer, and what
|
|
18
|
+
* the message is edited to say afterwards are all decided exactly where they
|
|
19
|
+
* were decided before this task existed — in `channels/telegram.ts`'s
|
|
20
|
+
* `handleUpdate` and in `channels/contract.ts`'s `recordChannelDecision`,
|
|
21
|
+
* reached by the same call the poll loop makes. An update that arrives here is
|
|
22
|
+
* an update; it is not evidence about itself.
|
|
23
|
+
*
|
|
24
|
+
* ## The secret is the whole of the authentication
|
|
25
|
+
*
|
|
26
|
+
* A webhook URL is a public endpoint. Anyone who can route to it can POST a
|
|
27
|
+
* JSON object that LOOKS like a tap from the approver's chat, and nothing in
|
|
28
|
+
* the body could tell the difference: SPEC.md §11.1 invariant 4 — a
|
|
29
|
+
* self-reported field never reduces scrutiny — is exactly the rule that makes
|
|
30
|
+
* a body-only check worthless here. So Telegram's own `secret_token` is
|
|
31
|
+
* REQUIRED rather than optional. It is set on `setWebhook`, echoed on every
|
|
32
|
+
* delivery in `X-Telegram-Bot-Api-Secret-Token`, compared here in constant
|
|
33
|
+
* time, and a post without the matching value is refused before its path, its
|
|
34
|
+
* method or its body is looked at.
|
|
35
|
+
*
|
|
36
|
+
* Three consequences, each deliberate:
|
|
37
|
+
*
|
|
38
|
+
* - **The comparison is over SHA-256 digests under `timingSafeEqual`**, which
|
|
39
|
+
* is constant-time AND length-independent (`timingSafeEqual` throws on a
|
|
40
|
+
* length mismatch, which would itself be an oracle for the secret's length).
|
|
41
|
+
* `serve/credentials.ts` states the same argument for the same reason.
|
|
42
|
+
* - **Duplicate headers are refused rather than resolved.** Node joins
|
|
43
|
+
* repeated headers, so two of them would make the value this server compares
|
|
44
|
+
* differ from the one a reader of the request would name. There is no
|
|
45
|
+
* correct choice; the request is malformed.
|
|
46
|
+
* - **A refusal appends NOTHING to the log.** It is counted, complained about
|
|
47
|
+
* on the runner's stderr and answered with its own machine-readable code,
|
|
48
|
+
* and it never reaches the decision path. This is `TELEGRAM_ANOMALY_KINDS`'s
|
|
49
|
+
* rule, and it matters more here than it does there: writing "somebody
|
|
50
|
+
* posted a forgery" into an append-only approval log would let anyone who
|
|
51
|
+
* can reach this URL grow the record a human is asked to trust. A refusal is
|
|
52
|
+
* a fact about this transport, and this transport reports it where facts
|
|
53
|
+
* about transports belong.
|
|
54
|
+
*
|
|
55
|
+
* ## What is reused from `approval serve`, and what could not be
|
|
56
|
+
*
|
|
57
|
+
* The shape is APRV-421's, deliberately: loopback bind by default with the
|
|
58
|
+
* operator's proxy terminating TLS, the credential checked before the URL is
|
|
59
|
+
* parsed, a refusal carried as a body with a frozen code rather than as a bare
|
|
60
|
+
* status, an oversized body drained before the refusal is written (a response
|
|
61
|
+
* written while the client is still uploading closes the socket under it), and
|
|
62
|
+
* no state a restart loses.
|
|
63
|
+
*
|
|
64
|
+
* Its CODE could not be reused, and the reason is structural rather than
|
|
65
|
+
* stylistic. `src/serve/` imports `src/cli/`, which imports `src/channels/`;
|
|
66
|
+
* an import from here back into `src/serve/` would close an ESM cycle, which
|
|
67
|
+
* is not a compile error but a binding that is `undefined` in one direction on
|
|
68
|
+
* the day module initialisation order changes. `tests/layering.test.ts` pins
|
|
69
|
+
* that direction. The two servers are also different surfaces: that one
|
|
70
|
+
* answers two bearer credentials for two parties across six routes, this one
|
|
71
|
+
* answers Telegram's echoed secret on one.
|
|
72
|
+
*
|
|
73
|
+
* ## One update at a time
|
|
74
|
+
*
|
|
75
|
+
* Deliveries are serialized through a promise chain. `handleUpdate` keeps a
|
|
76
|
+
* single callback-query ack slot and the delivery maps are plain `Map`s, so
|
|
77
|
+
* two updates handled concurrently would interleave in ways nobody ordered.
|
|
78
|
+
* The poll loop gets this for free by awaiting each update in turn; an HTTP
|
|
79
|
+
* server has to say it.
|
|
80
|
+
*
|
|
81
|
+
* ## Stopping waits for the update it is holding
|
|
82
|
+
*
|
|
83
|
+
* A stop closes the listener, drains what is in flight, and only then drops
|
|
84
|
+
* the sockets. The first version of this file did the opposite — it destroyed
|
|
85
|
+
* every socket synchronously and resolved in about a millisecond — so
|
|
86
|
+
* `deleteWebhook`, the "stopped" line and the process's exit all ran while an
|
|
87
|
+
* update was still being handled: an append in progress, a dispatch cycle
|
|
88
|
+
* halfway through a send, and a caller whose response never arrived. The order
|
|
89
|
+
* is now stop accepting, drain, drop, and the verb's own stop path does its
|
|
90
|
+
* `deleteWebhook` after this resolves rather than beside it.
|
|
91
|
+
*
|
|
92
|
+
* ## Redelivery is safe because the gate is
|
|
93
|
+
*
|
|
94
|
+
* Telegram retries a delivery it did not get a 2xx for, so the same tap can
|
|
95
|
+
* arrive twice. Nothing here deduplicates, and nothing needs to: the second
|
|
96
|
+
* one reaches `decide()` through the same path as the first and is refused
|
|
97
|
+
* `already-decided` with the first human answer standing. That is the same
|
|
98
|
+
* property a button pressed twice has had since APRV-26.
|
|
99
|
+
*/
|
|
100
|
+
import type { TelegramChannel, TelegramPollResult } from "./telegram.js";
|
|
101
|
+
/**
|
|
102
|
+
* The header Telegram echoes the `secret_token` in, lowercased as Node
|
|
103
|
+
* presents it.
|
|
104
|
+
*/
|
|
105
|
+
export declare const TELEGRAM_SECRET_HEADER = "x-telegram-bot-api-secret-token";
|
|
106
|
+
/** The path this server answers when the operator names none. */
|
|
107
|
+
export declare const TELEGRAM_WEBHOOK_DEFAULT_PATH = "/telegram/webhook";
|
|
108
|
+
/** The interface it binds when the operator names none. Loopback, always. */
|
|
109
|
+
export declare const TELEGRAM_WEBHOOK_DEFAULT_HOST = "127.0.0.1";
|
|
110
|
+
/** The port it binds when the operator names none. */
|
|
111
|
+
export declare const TELEGRAM_WEBHOOK_DEFAULT_PORT = 4683;
|
|
112
|
+
/**
|
|
113
|
+
* Largest body accepted. A Telegram update is a small JSON object; the
|
|
114
|
+
* largest thing one can carry is a message's 4096-character text.
|
|
115
|
+
*/
|
|
116
|
+
export declare const TELEGRAM_WEBHOOK_MAX_BODY_BYTES: number;
|
|
117
|
+
/**
|
|
118
|
+
* How much of an oversized body is read and thrown away before the socket is
|
|
119
|
+
* dropped. `serve/server.ts` carries the argument: the refusal cannot be
|
|
120
|
+
* written until the client stops writing, or the response closes the socket
|
|
121
|
+
* under it and the caller sees a transport error instead of a refusal.
|
|
122
|
+
*/
|
|
123
|
+
export declare const TELEGRAM_WEBHOOK_DRAIN_LIMIT_BYTES: number;
|
|
124
|
+
/**
|
|
125
|
+
* How long {@link TelegramWebhookHandle.close} waits for requests already in
|
|
126
|
+
* flight before it destroys their sockets (APRV-424, review finding 2).
|
|
127
|
+
*
|
|
128
|
+
* A stop has to end. What this bounds is the pathological case — a client that
|
|
129
|
+
* opened a request and stopped writing, a handler that will never return — and
|
|
130
|
+
* not the ordinary one, which is an update whose decision is being appended
|
|
131
|
+
* and takes milliseconds. The ordinary one is what the drain exists for: the
|
|
132
|
+
* first version of this file destroyed every socket synchronously and
|
|
133
|
+
* resolved in about a millisecond, so `deleteWebhook`, the "stopped" line and
|
|
134
|
+
* the process's exit all happened while an append and a dispatch were still
|
|
135
|
+
* running.
|
|
136
|
+
*/
|
|
137
|
+
export declare const TELEGRAM_WEBHOOK_CLOSE_TIMEOUT_MS = 10000;
|
|
138
|
+
/** How long the close drain waits between checks of the in-flight count. */
|
|
139
|
+
export declare const TELEGRAM_WEBHOOK_DRAIN_POLL_MS = 5;
|
|
140
|
+
/**
|
|
141
|
+
* Everything this receiver refuses, and nothing else. Frozen, per SPEC.md
|
|
142
|
+
* §11.1 invariant 6: a refusal is machine-readable and distinct.
|
|
143
|
+
*
|
|
144
|
+
* Distinct because the repairs are distinct. A secret mismatch is a forgery or
|
|
145
|
+
* a rotation the registration did not follow; an unknown path is a URL that
|
|
146
|
+
* does not match the one registered; a body too large is a caller that is not
|
|
147
|
+
* Telegram. None of them is a decision, and none of them is the same fact.
|
|
148
|
+
*/
|
|
149
|
+
export declare const TELEGRAM_WEBHOOK_REFUSAL_CODES: readonly [
|
|
150
|
+
/** No `X-Telegram-Bot-Api-Secret-Token`, or one that is not the registered value. */
|
|
151
|
+
"webhook-secret-mismatch",
|
|
152
|
+
/** More than one secret header. Malformed, and not resolvable by choosing. */
|
|
153
|
+
"webhook-duplicate-secret-header",
|
|
154
|
+
/**
|
|
155
|
+
* The request line and the `Host` header do not form a URL (400).
|
|
156
|
+
*
|
|
157
|
+
* Split from `webhook-unknown-path` in the review of this task: one code for
|
|
158
|
+
* both collapsed "what arrived is not a request this server can parse" into
|
|
159
|
+
* "you are posting to a path this server does not serve", and those two
|
|
160
|
+
* share nothing but a status family — the first is a broken proxy or a
|
|
161
|
+
* hand-written client, the second is a registration that does not match the
|
|
162
|
+
* bind. `src/serve/server.ts` makes the same split, between
|
|
163
|
+
* `serve-malformed-url` and `serve-unknown-path`.
|
|
164
|
+
*/
|
|
165
|
+
"webhook-malformed-request",
|
|
166
|
+
/** A path this server does not serve (404). */
|
|
167
|
+
"webhook-unknown-path",
|
|
168
|
+
/** The right path, the wrong method. Telegram POSTs. */
|
|
169
|
+
"webhook-method-not-allowed",
|
|
170
|
+
/** Larger than {@link TELEGRAM_WEBHOOK_MAX_BODY_BYTES}. */
|
|
171
|
+
"webhook-body-too-large",
|
|
172
|
+
/** The body could not be read off the socket, or is not JSON. */
|
|
173
|
+
"webhook-body-unreadable",
|
|
174
|
+
/** JSON that is not an Update object. */
|
|
175
|
+
"webhook-not-an-update",
|
|
176
|
+
/** The channel is already receiving updates by the other transport. */
|
|
177
|
+
"webhook-transport-conflict",
|
|
178
|
+
/** The channel threw while handling the update. Nothing is claimed about the log. */
|
|
179
|
+
"webhook-handler-failed"];
|
|
180
|
+
export type TelegramWebhookRefusalCode = (typeof TELEGRAM_WEBHOOK_REFUSAL_CODES)[number];
|
|
181
|
+
/** What this receiver has done since it bound. Counters, never decisions. */
|
|
182
|
+
export interface TelegramWebhookStats {
|
|
183
|
+
/** Requests answered, of any kind. */
|
|
184
|
+
requests: number;
|
|
185
|
+
/** Updates handed to the channel. */
|
|
186
|
+
updates: number;
|
|
187
|
+
/** Refusals, by code. Never a decision, never a log event. */
|
|
188
|
+
refusals: Record<TelegramWebhookRefusalCode, number>;
|
|
189
|
+
}
|
|
190
|
+
export interface TelegramWebhookOptions {
|
|
191
|
+
/** The channel every accepted update is handed to. */
|
|
192
|
+
channel: TelegramChannel;
|
|
193
|
+
/**
|
|
194
|
+
* The registered `secret_token`, as a value.
|
|
195
|
+
*
|
|
196
|
+
* Resolved by the VERB from the launch environment (SPEC.md §11.1 invariant
|
|
197
|
+
* 7: configuration is never loaded implicitly from the working tree).
|
|
198
|
+
* Nothing under `src/channels/` reads `process.env`, here as everywhere.
|
|
199
|
+
*/
|
|
200
|
+
secret: string;
|
|
201
|
+
/** The path to answer. Defaults to {@link TELEGRAM_WEBHOOK_DEFAULT_PATH}. */
|
|
202
|
+
path?: string;
|
|
203
|
+
/** Interface to bind. Defaults to loopback; the CLI owns any widening. */
|
|
204
|
+
host?: string;
|
|
205
|
+
/** TCP port. `0` asks the kernel for an ephemeral one, which is what tests use. */
|
|
206
|
+
port?: number;
|
|
207
|
+
/** Where operational complaints go. Defaults to stderr. */
|
|
208
|
+
log?: (message: string) => void;
|
|
209
|
+
/**
|
|
210
|
+
* How long {@link TelegramWebhookHandle.close} drains before it drops what
|
|
211
|
+
* is left. Defaults to {@link TELEGRAM_WEBHOOK_CLOSE_TIMEOUT_MS}; a test
|
|
212
|
+
* that deliberately holds a handler open shortens it.
|
|
213
|
+
*/
|
|
214
|
+
closeTimeoutMs?: number;
|
|
215
|
+
/**
|
|
216
|
+
* Run after each update the channel accepted (APRV-424).
|
|
217
|
+
*
|
|
218
|
+
* This is where the runtime's dispatch cycle goes, and it is the webhook's
|
|
219
|
+
* equivalent of the listener's `beforePoll`: the channel holds
|
|
220
|
+
* no queue and reads no log, so putting the next pending request on the
|
|
221
|
+
* phone after a tap is the caller's job. It MUST NOT throw; a rejection is
|
|
222
|
+
* complained about and swallowed, because a dispatch that failed must not
|
|
223
|
+
* turn an answered tap into an unanswered request.
|
|
224
|
+
*/
|
|
225
|
+
afterUpdate?: (result: TelegramPollResult) => Promise<void> | void;
|
|
226
|
+
}
|
|
227
|
+
export interface TelegramWebhookHandle {
|
|
228
|
+
readonly host: string;
|
|
229
|
+
readonly port: number;
|
|
230
|
+
readonly path: string;
|
|
231
|
+
stats(): TelegramWebhookStats;
|
|
232
|
+
/** Run `work` behind the same queue update delivery uses. */
|
|
233
|
+
serialize<T>(work: () => Promise<T>): Promise<T>;
|
|
234
|
+
/** Requests this receiver has accepted and not yet answered. */
|
|
235
|
+
inFlight(): number;
|
|
236
|
+
/**
|
|
237
|
+
* Stop accepting, let what is in flight finish, then drop the sockets.
|
|
238
|
+
*
|
|
239
|
+
* In that order, and the order is the fix for review finding 2: a close that
|
|
240
|
+
* destroyed sockets first would tear the response off an update whose
|
|
241
|
+
* decision was mid-append, and would hand its caller back control in time
|
|
242
|
+
* to call `deleteWebhook` and print "stopped" over the top of it. Idempotent
|
|
243
|
+
* and safe to await twice; a second call awaits the first.
|
|
244
|
+
*/
|
|
245
|
+
close(): Promise<void>;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Is `offered` the registered secret?
|
|
249
|
+
*
|
|
250
|
+
* Both sides are hashed first, so the comparison is over two equal-length
|
|
251
|
+
* buffers and `timingSafeEqual` can never throw — which is what keeps the
|
|
252
|
+
* length of the real secret out of the answer.
|
|
253
|
+
*/
|
|
254
|
+
export declare function secretMatches(expected: string, offered: string | null): boolean;
|
|
255
|
+
/**
|
|
256
|
+
* The one secret header a request offered, `null` for none, and `"duplicate"`
|
|
257
|
+
* for more than one.
|
|
258
|
+
*
|
|
259
|
+
* Read off `rawHeaders` rather than `headers`, because Node joins repeats of a
|
|
260
|
+
* non-special header into one comma-separated value and the join is exactly
|
|
261
|
+
* what hides the second one.
|
|
262
|
+
*/
|
|
263
|
+
export declare function secretHeaderOf(rawHeaders: readonly string[]): string | null | "duplicate";
|
|
264
|
+
/**
|
|
265
|
+
* Start the receiver. Resolves once it is bound and its real port is known;
|
|
266
|
+
* rejects when the bind fails, so the verb can report it and exit.
|
|
267
|
+
*
|
|
268
|
+
* The channel's transport is claimed BEFORE the listener exists, for the
|
|
269
|
+
* reason `approval serve` settles its credentials first: a server that bound
|
|
270
|
+
* and then discovered it could not receive would be a server Telegram had
|
|
271
|
+
* already posted to.
|
|
272
|
+
*/
|
|
273
|
+
export declare function serveTelegramWebhook(options: TelegramWebhookOptions): Promise<TelegramWebhookHandle>;
|