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.
Files changed (270) hide show
  1. package/README.md +83 -914
  2. package/SPEC.md +101 -13
  3. package/cli.js +134 -7
  4. package/dist/src/adapters/smtp.d.ts +18 -0
  5. package/dist/src/adapters/smtp.js +24 -3
  6. package/dist/src/adapters/smtp.js.map +1 -1
  7. package/dist/src/channels/contract.d.ts +72 -0
  8. package/dist/src/channels/contract.js +161 -1
  9. package/dist/src/channels/contract.js.map +1 -1
  10. package/dist/src/channels/relay-server.d.ts +90 -0
  11. package/dist/src/channels/relay-server.js +295 -0
  12. package/dist/src/channels/relay-server.js.map +1 -0
  13. package/dist/src/channels/relay.d.ts +273 -0
  14. package/dist/src/channels/relay.js +564 -0
  15. package/dist/src/channels/relay.js.map +1 -0
  16. package/dist/src/channels/tagging.d.ts +25 -0
  17. package/dist/src/channels/tagging.js +63 -6
  18. package/dist/src/channels/tagging.js.map +1 -1
  19. package/dist/src/channels/telegram-minimal.d.ts +251 -0
  20. package/dist/src/channels/telegram-minimal.js +618 -0
  21. package/dist/src/channels/telegram-minimal.js.map +1 -0
  22. package/dist/src/channels/telegram-webhook.d.ts +273 -0
  23. package/dist/src/channels/telegram-webhook.js +536 -0
  24. package/dist/src/channels/telegram-webhook.js.map +1 -0
  25. package/dist/src/channels/telegram.d.ts +725 -20
  26. package/dist/src/channels/telegram.js +1332 -123
  27. package/dist/src/channels/telegram.js.map +1 -1
  28. package/dist/src/cli/amend.js +358 -5
  29. package/dist/src/cli/amend.js.map +1 -1
  30. package/dist/src/cli/attest.js +43 -6
  31. package/dist/src/cli/attest.js.map +1 -1
  32. package/dist/src/cli/audit-card.d.ts +1 -1
  33. package/dist/src/cli/audit-card.js +40 -1
  34. package/dist/src/cli/audit-card.js.map +1 -1
  35. package/dist/src/cli/audit.d.ts +7 -5
  36. package/dist/src/cli/audit.js +22 -10
  37. package/dist/src/cli/audit.js.map +1 -1
  38. package/dist/src/cli/channel-relay.d.ts +108 -0
  39. package/dist/src/cli/channel-relay.js +334 -0
  40. package/dist/src/cli/channel-relay.js.map +1 -0
  41. package/dist/src/cli/channel-telegram-webhook.d.ts +275 -0
  42. package/dist/src/cli/channel-telegram-webhook.js +716 -0
  43. package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
  44. package/dist/src/cli/channel-telegram.d.ts +347 -28
  45. package/dist/src/cli/channel-telegram.js +648 -56
  46. package/dist/src/cli/channel-telegram.js.map +1 -1
  47. package/dist/src/cli/channel.d.ts +1 -1
  48. package/dist/src/cli/channel.js +5 -1
  49. package/dist/src/cli/channel.js.map +1 -1
  50. package/dist/src/cli/daemon.js +37 -5
  51. package/dist/src/cli/daemon.js.map +1 -1
  52. package/dist/src/cli/doctor.d.ts +63 -0
  53. package/dist/src/cli/doctor.js +856 -111
  54. package/dist/src/cli/doctor.js.map +1 -1
  55. package/dist/src/cli/execute.d.ts +29 -1
  56. package/dist/src/cli/execute.js +387 -21
  57. package/dist/src/cli/execute.js.map +1 -1
  58. package/dist/src/cli/exit-codes.d.ts +12 -0
  59. package/dist/src/cli/exit-codes.js +13 -0
  60. package/dist/src/cli/exit-codes.js.map +1 -1
  61. package/dist/src/cli/gate.d.ts +2 -0
  62. package/dist/src/cli/gate.js +233 -2
  63. package/dist/src/cli/gate.js.map +1 -1
  64. package/dist/src/cli/help.d.ts +10 -1
  65. package/dist/src/cli/help.js +283 -54
  66. package/dist/src/cli/help.js.map +1 -1
  67. package/dist/src/cli/hook.d.ts +485 -6
  68. package/dist/src/cli/hook.js +2370 -70
  69. package/dist/src/cli/hook.js.map +1 -1
  70. package/dist/src/cli/init.js +16 -7
  71. package/dist/src/cli/init.js.map +1 -1
  72. package/dist/src/cli/instructions.js +24 -3
  73. package/dist/src/cli/instructions.js.map +1 -1
  74. package/dist/src/cli/log-anchor.d.ts +55 -0
  75. package/dist/src/cli/log-anchor.js +199 -60
  76. package/dist/src/cli/log-anchor.js.map +1 -1
  77. package/dist/src/cli/log-unlock.d.ts +23 -0
  78. package/dist/src/cli/log-unlock.js +109 -0
  79. package/dist/src/cli/log-unlock.js.map +1 -0
  80. package/dist/src/cli/main.d.ts +0 -12
  81. package/dist/src/cli/main.js +72 -4
  82. package/dist/src/cli/main.js.map +1 -1
  83. package/dist/src/cli/muse.d.ts +2 -0
  84. package/dist/src/cli/muse.js +62 -0
  85. package/dist/src/cli/muse.js.map +1 -0
  86. package/dist/src/cli/payload.js +79 -1
  87. package/dist/src/cli/payload.js.map +1 -1
  88. package/dist/src/cli/scaffold.js +6 -0
  89. package/dist/src/cli/scaffold.js.map +1 -1
  90. package/dist/src/cli/serve.d.ts +53 -0
  91. package/dist/src/cli/serve.js +270 -0
  92. package/dist/src/cli/serve.js.map +1 -0
  93. package/dist/src/cli/up.js +26 -2
  94. package/dist/src/cli/up.js.map +1 -1
  95. package/dist/src/cli/verb-registry.d.ts +2 -0
  96. package/dist/src/cli/verb-registry.js +338 -39
  97. package/dist/src/cli/verb-registry.js.map +1 -1
  98. package/dist/src/cli/wordmark.d.ts +2 -2
  99. package/dist/src/cli/wordmark.js +2 -2
  100. package/dist/src/core/attest-bootstrap.d.ts +95 -0
  101. package/dist/src/core/attest-bootstrap.js +135 -0
  102. package/dist/src/core/attest-bootstrap.js.map +1 -0
  103. package/dist/src/core/attest.d.ts +20 -3
  104. package/dist/src/core/attest.js +25 -0
  105. package/dist/src/core/attest.js.map +1 -1
  106. package/dist/src/core/audit.d.ts +153 -12
  107. package/dist/src/core/audit.js +415 -20
  108. package/dist/src/core/audit.js.map +1 -1
  109. package/dist/src/core/channel-lease.d.ts +322 -0
  110. package/dist/src/core/channel-lease.js +663 -0
  111. package/dist/src/core/channel-lease.js.map +1 -0
  112. package/dist/src/core/command-class.d.ts +51 -0
  113. package/dist/src/core/command-class.js +766 -8
  114. package/dist/src/core/command-class.js.map +1 -1
  115. package/dist/src/core/daemon-host.d.ts +178 -0
  116. package/dist/src/core/daemon-host.js +228 -0
  117. package/dist/src/core/daemon-host.js.map +1 -0
  118. package/dist/src/core/daemon-identity.d.ts +238 -0
  119. package/dist/src/core/daemon-identity.js +252 -0
  120. package/dist/src/core/daemon-identity.js.map +1 -0
  121. package/dist/src/core/gate.d.ts +364 -6
  122. package/dist/src/core/gate.js +802 -27
  123. package/dist/src/core/gate.js.map +1 -1
  124. package/dist/src/core/harness-version.d.ts +128 -4
  125. package/dist/src/core/harness-version.js +179 -12
  126. package/dist/src/core/harness-version.js.map +1 -1
  127. package/dist/src/core/harness-wait.d.ts +82 -3
  128. package/dist/src/core/harness-wait.js +89 -3
  129. package/dist/src/core/harness-wait.js.map +1 -1
  130. package/dist/src/core/log-lock.d.ts +435 -0
  131. package/dist/src/core/log-lock.js +1093 -0
  132. package/dist/src/core/log-lock.js.map +1 -0
  133. package/dist/src/core/log-subscribe.d.ts +21 -0
  134. package/dist/src/core/log-subscribe.js +16 -6
  135. package/dist/src/core/log-subscribe.js.map +1 -1
  136. package/dist/src/core/log-write-layer.d.ts +55 -0
  137. package/dist/src/core/log-write-layer.js +91 -0
  138. package/dist/src/core/log-write-layer.js.map +1 -0
  139. package/dist/src/core/log.d.ts +130 -22
  140. package/dist/src/core/log.js +473 -50
  141. package/dist/src/core/log.js.map +1 -1
  142. package/dist/src/core/payload-census.d.ts +51 -0
  143. package/dist/src/core/payload-census.js +125 -2
  144. package/dist/src/core/payload-census.js.map +1 -1
  145. package/dist/src/core/payload-store.d.ts +31 -0
  146. package/dist/src/core/payload-store.js +113 -8
  147. package/dist/src/core/payload-store.js.map +1 -1
  148. package/dist/src/core/payload.d.ts +18 -3
  149. package/dist/src/core/payload.js +20 -4
  150. package/dist/src/core/payload.js.map +1 -1
  151. package/dist/src/core/policy-diff.d.ts +10 -0
  152. package/dist/src/core/policy-diff.js +10 -2
  153. package/dist/src/core/policy-diff.js.map +1 -1
  154. package/dist/src/core/policy-explain.d.ts +7 -1
  155. package/dist/src/core/policy-explain.js +16 -1
  156. package/dist/src/core/policy-explain.js.map +1 -1
  157. package/dist/src/core/policy-load.d.ts +24 -0
  158. package/dist/src/core/policy-load.js.map +1 -1
  159. package/dist/src/core/policy-match.d.ts +38 -0
  160. package/dist/src/core/policy-match.js +35 -0
  161. package/dist/src/core/policy-match.js.map +1 -1
  162. package/dist/src/core/policy-proposal.d.ts +40 -0
  163. package/dist/src/core/policy-proposal.js +37 -16
  164. package/dist/src/core/policy-proposal.js.map +1 -1
  165. package/dist/src/core/prompt-layout.d.ts +186 -1
  166. package/dist/src/core/prompt-layout.js +345 -3
  167. package/dist/src/core/prompt-layout.js.map +1 -1
  168. package/dist/src/core/read-scope.d.ts +10 -0
  169. package/dist/src/core/read-scope.js +4 -0
  170. package/dist/src/core/read-scope.js.map +1 -1
  171. package/dist/src/core/run-payload.d.ts +160 -0
  172. package/dist/src/core/run-payload.js +304 -0
  173. package/dist/src/core/run-payload.js.map +1 -0
  174. package/dist/src/core/sender-identity.d.ts +59 -11
  175. package/dist/src/core/sender-identity.js +79 -11
  176. package/dist/src/core/sender-identity.js.map +1 -1
  177. package/dist/src/core/state.d.ts +52 -1
  178. package/dist/src/core/state.js +52 -6
  179. package/dist/src/core/state.js.map +1 -1
  180. package/dist/src/core/telegram-config.d.ts +79 -0
  181. package/dist/src/core/telegram-config.js +108 -0
  182. package/dist/src/core/telegram-config.js.map +1 -1
  183. package/dist/src/core/validate.d.ts +20 -6
  184. package/dist/src/core/validate.js +0 -0
  185. package/dist/src/core/validate.js.map +1 -1
  186. package/dist/src/core/verify.d.ts +23 -1
  187. package/dist/src/core/verify.js +20 -2
  188. package/dist/src/core/verify.js.map +1 -1
  189. package/dist/src/daemon/audit.d.ts +80 -5
  190. package/dist/src/daemon/audit.js +126 -6
  191. package/dist/src/daemon/audit.js.map +1 -1
  192. package/dist/src/daemon/daemon.d.ts +174 -2
  193. package/dist/src/daemon/daemon.js +298 -7
  194. package/dist/src/daemon/daemon.js.map +1 -1
  195. package/dist/src/daemon/git-evidence.d.ts +2 -2
  196. package/dist/src/daemon/git-evidence.js +1 -1
  197. package/dist/src/daemon/projection.d.ts +13 -2
  198. package/dist/src/daemon/projection.js +39 -6
  199. package/dist/src/daemon/projection.js.map +1 -1
  200. package/dist/src/mcp/server.d.ts +39 -3
  201. package/dist/src/mcp/server.js +22 -3
  202. package/dist/src/mcp/server.js.map +1 -1
  203. package/dist/src/muse/server.d.ts +16 -0
  204. package/dist/src/muse/server.js +238 -0
  205. package/dist/src/muse/server.js.map +1 -0
  206. package/dist/src/serve/archive.d.ts +166 -0
  207. package/dist/src/serve/archive.js +363 -0
  208. package/dist/src/serve/archive.js.map +1 -0
  209. package/dist/src/serve/arguments.d.ts +93 -0
  210. package/dist/src/serve/arguments.js +228 -0
  211. package/dist/src/serve/arguments.js.map +1 -0
  212. package/dist/src/serve/credentials.d.ts +91 -0
  213. package/dist/src/serve/credentials.js +143 -0
  214. package/dist/src/serve/credentials.js.map +1 -0
  215. package/dist/src/serve/follow.d.ts +86 -0
  216. package/dist/src/serve/follow.js +101 -0
  217. package/dist/src/serve/follow.js.map +1 -0
  218. package/dist/src/serve/hook-thread.d.ts +134 -0
  219. package/dist/src/serve/hook-thread.js +333 -0
  220. package/dist/src/serve/hook-thread.js.map +1 -0
  221. package/dist/src/serve/hook-worker.d.ts +134 -0
  222. package/dist/src/serve/hook-worker.js +173 -0
  223. package/dist/src/serve/hook-worker.js.map +1 -0
  224. package/dist/src/serve/server.d.ts +412 -0
  225. package/dist/src/serve/server.js +1251 -0
  226. package/dist/src/serve/server.js.map +1 -0
  227. package/docs/README-extended.md +768 -0
  228. package/docs/cli-reference.md +2139 -67
  229. package/package.json +4 -2
  230. package/schema/event.schema.json +413 -30
  231. package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
  232. package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
  233. package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
  234. package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
  235. package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
  236. package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
  237. package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
  238. package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
  239. package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
  240. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
  241. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
  242. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
  243. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
  244. package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
  245. package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
  246. package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
  247. package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
  248. package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
  249. package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
  250. package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
  251. package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
  252. package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
  253. package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
  254. package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
  255. package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
  256. package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
  257. package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
  258. package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
  259. package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
  260. package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
  261. package/schema/fixtures/event/valid/audit-sampled.json +2 -1
  262. package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
  263. package/schema/fixtures/event/valid/daemon-identity.json +16 -0
  264. package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
  265. package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
  266. package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
  267. package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
  268. package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
  269. package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
  270. 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
- * Exactly one field in the whole system is a sender fact worth mapping:
17
- * Telegram's `callback_query.from.id`, the stable numeric account id the Bot
18
- * API attributes the tap to. {@link SENDER_CHANNELS} is closed to that one
19
- * channel for that reason. A web form post authenticates nobody and a CLI
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. `web` and `cli` are absent because neither authenticates a person:
148
- * the web page takes an unauthenticated form post and the CLI takes whoever
149
- * controls the process. A policy that named either would be asserting a binding
150
- * the runtime cannot check, so the schema refuses the key rather than carrying
151
- * a mapping that reads like identity.
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
- * Exactly one field in the whole system is a sender fact worth mapping:
17
- * Telegram's `callback_query.from.id`, the stable numeric account id the Bot
18
- * API attributes the tap to. {@link SENDER_CHANNELS} is closed to that one
19
- * channel for that reason. A web form post authenticates nobody and a CLI
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. `web` and `cli` are absent because neither authenticates a person:
157
- * the web page takes an unauthenticated form post and the CLI takes whoever
158
- * controls the process. A policy that named either would be asserting a binding
159
- * the runtime cannot check, so the schema refuses the key rather than carrying
160
- * a mapping that reads like identity.
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
- const rawClaimed = index.get(indexKey(sender.channel, sender.id)) ?? [];
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":"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"}
1
+ {"version":3,"file":"sender-identity.js","sourceRoot":"","sources":["../../../src/core/sender-identity.ts"],"names":[],"mappings":"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"}
@@ -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, `ttlMs !== null` and `ts > requestTs + ttlMs` sets `expiredLazily`.
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;
@@ -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, `ttlMs !== null` and `ts > requestTs + ttlMs` sets `expiredLazily`.
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 (ttlMs === null) {
973
- // No `defaults.approval_ttl` means the policy declares no lapse. A request
974
- // stays live until a human decides it; inventing a default TTL here would
975
- // silently reject approvals a policy author never asked to expire.
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 + ttlMs) {
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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"}