approval-md 0.4.0 → 0.4.2

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 (190) hide show
  1. package/SPEC.md +11 -0
  2. package/cli.js +72 -4
  3. package/dist/src/channels/contract.d.ts +53 -0
  4. package/dist/src/channels/contract.js +56 -0
  5. package/dist/src/channels/contract.js.map +1 -1
  6. package/dist/src/channels/tagging.d.ts +25 -0
  7. package/dist/src/channels/tagging.js +57 -5
  8. package/dist/src/channels/tagging.js.map +1 -1
  9. package/dist/src/channels/telegram-minimal.d.ts +251 -0
  10. package/dist/src/channels/telegram-minimal.js +618 -0
  11. package/dist/src/channels/telegram-minimal.js.map +1 -0
  12. package/dist/src/channels/telegram.d.ts +454 -19
  13. package/dist/src/channels/telegram.js +931 -80
  14. package/dist/src/channels/telegram.js.map +1 -1
  15. package/dist/src/cli/amend.js +8 -1
  16. package/dist/src/cli/amend.js.map +1 -1
  17. package/dist/src/cli/attest.js +2 -1
  18. package/dist/src/cli/attest.js.map +1 -1
  19. package/dist/src/cli/audit-card.d.ts +1 -1
  20. package/dist/src/cli/audit-card.js +40 -1
  21. package/dist/src/cli/audit-card.js.map +1 -1
  22. package/dist/src/cli/audit.d.ts +7 -5
  23. package/dist/src/cli/audit.js +25 -12
  24. package/dist/src/cli/audit.js.map +1 -1
  25. package/dist/src/cli/channel-telegram-webhook.d.ts +2 -0
  26. package/dist/src/cli/channel-telegram-webhook.js +7 -0
  27. package/dist/src/cli/channel-telegram-webhook.js.map +1 -1
  28. package/dist/src/cli/channel-telegram.d.ts +75 -2
  29. package/dist/src/cli/channel-telegram.js +172 -16
  30. package/dist/src/cli/channel-telegram.js.map +1 -1
  31. package/dist/src/cli/channel-web.js +2 -1
  32. package/dist/src/cli/channel-web.js.map +1 -1
  33. package/dist/src/cli/channel.js +2 -1
  34. package/dist/src/cli/channel.js.map +1 -1
  35. package/dist/src/cli/doctor.js +1 -1
  36. package/dist/src/cli/doctor.js.map +1 -1
  37. package/dist/src/cli/execute.d.ts +12 -0
  38. package/dist/src/cli/execute.js +50 -4
  39. package/dist/src/cli/execute.js.map +1 -1
  40. package/dist/src/cli/gate.js +2 -1
  41. package/dist/src/cli/gate.js.map +1 -1
  42. package/dist/src/cli/help.d.ts +1 -0
  43. package/dist/src/cli/help.js +39 -18
  44. package/dist/src/cli/help.js.map +1 -1
  45. package/dist/src/cli/hook.d.ts +121 -3
  46. package/dist/src/cli/hook.js +719 -79
  47. package/dist/src/cli/hook.js.map +1 -1
  48. package/dist/src/cli/log-checkpoint.js +2 -1
  49. package/dist/src/cli/log-checkpoint.js.map +1 -1
  50. package/dist/src/cli/log-unlock.d.ts +23 -0
  51. package/dist/src/cli/log-unlock.js +110 -0
  52. package/dist/src/cli/log-unlock.js.map +1 -0
  53. package/dist/src/cli/main.js +23 -6
  54. package/dist/src/cli/main.js.map +1 -1
  55. package/dist/src/cli/setup-common.js +2 -1
  56. package/dist/src/cli/setup-common.js.map +1 -1
  57. package/dist/src/cli/up.js +5 -0
  58. package/dist/src/cli/up.js.map +1 -1
  59. package/dist/src/cli/vault.js +2 -1
  60. package/dist/src/cli/vault.js.map +1 -1
  61. package/dist/src/cli/verb-registry.js +1 -0
  62. package/dist/src/cli/verb-registry.js.map +1 -1
  63. package/dist/src/cli/wordmark.d.ts +2 -2
  64. package/dist/src/cli/wordmark.js +2 -2
  65. package/dist/src/core/attest-bootstrap.js +2 -1
  66. package/dist/src/core/attest-bootstrap.js.map +1 -1
  67. package/dist/src/core/attest.js +5 -4
  68. package/dist/src/core/attest.js.map +1 -1
  69. package/dist/src/core/audit.d.ts +113 -9
  70. package/dist/src/core/audit.js +382 -18
  71. package/dist/src/core/audit.js.map +1 -1
  72. package/dist/src/core/budgets.d.ts +12 -0
  73. package/dist/src/core/budgets.js +54 -1
  74. package/dist/src/core/budgets.js.map +1 -1
  75. package/dist/src/core/checkpoint.js +3 -2
  76. package/dist/src/core/checkpoint.js.map +1 -1
  77. package/dist/src/core/command-class.js +6 -0
  78. package/dist/src/core/command-class.js.map +1 -1
  79. package/dist/src/core/decision-refusal.js +2 -1
  80. package/dist/src/core/decision-refusal.js.map +1 -1
  81. package/dist/src/core/delegation.d.ts +109 -0
  82. package/dist/src/core/delegation.js +244 -0
  83. package/dist/src/core/delegation.js.map +1 -0
  84. package/dist/src/core/execute.js +12 -3
  85. package/dist/src/core/execute.js.map +1 -1
  86. package/dist/src/core/gate-window.js +4 -3
  87. package/dist/src/core/gate-window.js.map +1 -1
  88. package/dist/src/core/gate.d.ts +84 -43
  89. package/dist/src/core/gate.js +114 -6
  90. package/dist/src/core/gate.js.map +1 -1
  91. package/dist/src/core/gesture-refusal.js +2 -1
  92. package/dist/src/core/gesture-refusal.js.map +1 -1
  93. package/dist/src/core/identity.d.ts +105 -0
  94. package/dist/src/core/identity.js +122 -0
  95. package/dist/src/core/identity.js.map +1 -0
  96. package/dist/src/core/log-lock.d.ts +435 -0
  97. package/dist/src/core/log-lock.js +1093 -0
  98. package/dist/src/core/log-lock.js.map +1 -0
  99. package/dist/src/core/log.d.ts +82 -3
  100. package/dist/src/core/log.js +285 -40
  101. package/dist/src/core/log.js.map +1 -1
  102. package/dist/src/core/loop.d.ts +11 -0
  103. package/dist/src/core/loop.js +63 -4
  104. package/dist/src/core/loop.js.map +1 -1
  105. package/dist/src/core/policy-diff.js +20 -1
  106. package/dist/src/core/policy-diff.js.map +1 -1
  107. package/dist/src/core/policy-explain.js +18 -2
  108. package/dist/src/core/policy-explain.js.map +1 -1
  109. package/dist/src/core/policy-load.d.ts +38 -1
  110. package/dist/src/core/policy-load.js +34 -2
  111. package/dist/src/core/policy-load.js.map +1 -1
  112. package/dist/src/core/policy-match.js +30 -5
  113. package/dist/src/core/policy-match.js.map +1 -1
  114. package/dist/src/core/policy-proposal.d.ts +17 -0
  115. package/dist/src/core/policy-proposal.js +32 -16
  116. package/dist/src/core/policy-proposal.js.map +1 -1
  117. package/dist/src/core/prompt-layout.d.ts +186 -1
  118. package/dist/src/core/prompt-layout.js +345 -3
  119. package/dist/src/core/prompt-layout.js.map +1 -1
  120. package/dist/src/core/sender-identity.d.ts +24 -1
  121. package/dist/src/core/sender-identity.js +31 -0
  122. package/dist/src/core/sender-identity.js.map +1 -1
  123. package/dist/src/core/token.js +11 -0
  124. package/dist/src/core/token.js.map +1 -1
  125. package/dist/src/core/tool-map.d.ts +125 -0
  126. package/dist/src/core/tool-map.js +179 -0
  127. package/dist/src/core/tool-map.js.map +1 -0
  128. package/dist/src/core/validate.d.ts +20 -6
  129. package/dist/src/core/validate.js +0 -0
  130. package/dist/src/core/validate.js.map +1 -1
  131. package/dist/src/daemon/git-evidence.d.ts +2 -2
  132. package/dist/src/daemon/git-evidence.js +1 -1
  133. package/dist/src/serve/archive.d.ts +8 -0
  134. package/dist/src/serve/archive.js +11 -2
  135. package/dist/src/serve/archive.js.map +1 -1
  136. package/docs/README-extended.md +15 -0
  137. package/docs/cli-reference.md +571 -28
  138. package/package.json +2 -2
  139. package/schema/event.schema.json +387 -29
  140. package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
  141. package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
  142. package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
  143. package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
  144. package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
  145. package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
  146. package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
  147. package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
  148. package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
  149. package/schema/fixtures/event/invalid/audit-reviewed-model-actor.json +20 -0
  150. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
  151. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
  152. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
  153. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
  154. package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
  155. package/schema/fixtures/event/invalid/audit-reviewed-verdict-source-model.json +20 -0
  156. package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
  157. package/schema/fixtures/event/invalid/execution-started-harness-tool-space.json +18 -0
  158. package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
  159. package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
  160. package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
  161. package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
  162. package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
  163. package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
  164. package/schema/fixtures/event/valid/audit-sampled.json +2 -1
  165. package/schema/fixtures/event/valid/daemon-identity.json +2 -1
  166. package/schema/fixtures/event/valid/execution-started-harness-tool.json +19 -0
  167. package/schema/fixtures/policy/invalid/delegation-advice-string.json +15 -0
  168. package/schema/fixtures/policy/invalid/delegation-class-duplicate.json +18 -0
  169. package/schema/fixtures/policy/invalid/delegation-class-wildcard.json +17 -0
  170. package/schema/fixtures/policy/invalid/delegation-daily-cap-fractional.json +15 -0
  171. package/schema/fixtures/policy/invalid/delegation-daily-cap-negative.json +15 -0
  172. package/schema/fixtures/policy/invalid/delegation-daily-cap-too-high.json +15 -0
  173. package/schema/fixtures/policy/invalid/delegation-escalate-duplicate.json +18 -0
  174. package/schema/fixtures/policy/invalid/delegation-escalate-unknown.json +17 -0
  175. package/schema/fixtures/policy/invalid/delegation-max-autonomy-alias.json +15 -0
  176. package/schema/fixtures/policy/invalid/delegation-max-autonomy-autonomous.json +15 -0
  177. package/schema/fixtures/policy/invalid/delegation-model-no-version.json +15 -0
  178. package/schema/fixtures/policy/invalid/delegation-model-provider-form.json +15 -0
  179. package/schema/fixtures/policy/invalid/delegation-null.json +7 -0
  180. package/schema/fixtures/policy/invalid/delegation-reviewer-agent.json +17 -0
  181. package/schema/fixtures/policy/invalid/delegation-reviewer-bare-id.json +17 -0
  182. package/schema/fixtures/policy/invalid/delegation-unknown-key.json +16 -0
  183. package/schema/fixtures/policy/invalid/tools-class-wildcard.json +9 -0
  184. package/schema/fixtures/policy/invalid/tools-match-double-star.json +9 -0
  185. package/schema/fixtures/policy/invalid/unmapped-tool-unknown.json +7 -0
  186. package/schema/fixtures/policy/valid/delegation-empty.json +7 -0
  187. package/schema/fixtures/policy/valid/delegation-grammar-full.json +41 -0
  188. package/schema/fixtures/policy/valid/delegation-off.json +15 -0
  189. package/schema/fixtures/policy/valid/tools-mapping.json +17 -0
  190. package/schema/policy.schema.json +178 -0
@@ -58,6 +58,7 @@
58
58
  * true. The row names below are the `ChannelRequest` member names spelled as
59
59
  * plain strings for exactly that reason.
60
60
  */
61
+ import { CLASSIFIER_CLASSES } from "./command-class.js";
61
62
  /**
62
63
  * The row vocabulary: every `ChannelRequest` member a channel renders as a row.
63
64
  *
@@ -241,6 +242,291 @@ export const DEFAULT_PROMPT_LAYOUTS = {
241
242
  web: WEB_PROMPT_LAYOUT,
242
243
  telegram: TELEGRAM_PROMPT_LAYOUT,
243
244
  };
245
+ // ---------------------------------------------------------------------------
246
+ // The prompt style (APRV-489)
247
+ // ---------------------------------------------------------------------------
248
+ /**
249
+ * How a channel lays out a prompt, as the attested policy chooses it (APRV-489).
250
+ *
251
+ * - `technical` is every prompt this runtime has ever sent: the computed block,
252
+ * the canonical rendering, the claimed block. It is the default, and what an
253
+ * absent key means, so every policy written before the key renders byte for
254
+ * byte what it rendered before.
255
+ * - `minimal` is a short card in plain words for a reader who is not an
256
+ * engineer: a headline the RUNTIME computes from the class, the payload's own
257
+ * words quoted from the bound bytes, a deadline in plain words, and the whole
258
+ * technical card, canonical rendering included, collapsed inside the same
259
+ * message as the buttons (SPEC.md §10.3, amended APRV-489).
260
+ *
261
+ * A style chooses what is in front of the reader first. It cannot change what
262
+ * the approver SIGNS: the canonical rendering is in the button-bearing message
263
+ * either way, the `display_hash` names the same text, and the callback data and
264
+ * the log are the same.
265
+ *
266
+ * Closed for `delivery`'s reason: a style this runtime cannot draw is a screen
267
+ * the author believes is in force that nothing renders.
268
+ */
269
+ export const PROMPT_STYLES = ["technical", "minimal"];
270
+ /** What an absent `style`, a policy that did not load, and every channel but Telegram mean. */
271
+ export const DEFAULT_PROMPT_STYLE = "technical";
272
+ /**
273
+ * The channels that draw a `minimal` card. Telegram only, in this release.
274
+ *
275
+ * Every other channel IGNORES the key (APRV-489, documented in
276
+ * `docs/cli-reference.md`): `style: minimal` under `channels.web.prompt` or
277
+ * `channels.cli.prompt` loads and changes nothing. Ignoring is the safe
278
+ * direction, because the channel then shows MORE than was asked for, never
279
+ * less, and it is never an error at prompt time. The value is still validated
280
+ * wherever it appears, so a misspelling fails the load on every channel alike.
281
+ */
282
+ export const PROMPT_STYLE_CHANNELS = ["telegram"];
283
+ /** The two words `say.<class>.note` may say. */
284
+ export const PROMPT_SAY_NOTES = ["summary", "none"];
285
+ /** The longest `does` phrase, in characters. A headline is one line on a phone. */
286
+ export const PROMPT_SAY_DOES_MAX = 120;
287
+ /** The longest `quote` label, in characters. */
288
+ export const PROMPT_SAY_LABEL_MAX = 24;
289
+ /**
290
+ * The phrases for the classes core itself emits (APRV-489; R3: core supplies
291
+ * phrases only for its own built-in classes and payload kinds). Here in core so
292
+ * the loader can refuse a `say.<class>.does` that would override one (fix round
293
+ * 3, R2-S2): a phrase is the first line of a card, and an operator's friendlier
294
+ * words for a dangerous built-in class must not replace the runtime's.
295
+ * `policy.edit` is absent on purpose: a policy edit is always the technical card.
296
+ */
297
+ export const BUILTIN_CLASS_PHRASES = {
298
+ "network.call": "contact a website or online service",
299
+ "read.web": "read a web page",
300
+ "browser.exec": "use a web browser",
301
+ "cron.manage": "change its scheduled jobs",
302
+ "process.write": "control a program it is running",
303
+ "skill.manage": "add or change one of its skills",
304
+ "agent.delegate": "hand a task to another agent",
305
+ "message.send": "send a message",
306
+ "files.delete.scratch": "delete files in its scratch space",
307
+ };
308
+ /** Whether core phrases `actionClass` itself. */
309
+ export function isBuiltinPhraseClass(actionClass) {
310
+ return Object.prototype.hasOwnProperty.call(BUILTIN_CLASS_PHRASES, actionClass);
311
+ }
312
+ /**
313
+ * Whether the runtime reads `actionClass`'s payload itself, as far as can be
314
+ * known at load (fix round 4, R3-S1): a class the command classifier emits
315
+ * (`CLASSIFIER_CLASSES`, e.g. `files.delete.out_of_scope`, `vcs.push.main`)
316
+ * is requested over a command or a file change, both payload kinds the minimal
317
+ * card phrases itself ("run a command (type: …)"). An operator's `does` for
318
+ * such a class could only put milder words over a payload core understands, so
319
+ * it is refused at load (`prompt-say-kind`). For any other class the payload's
320
+ * kind is known only when a request arrives; the card then ignores a `does`
321
+ * over a payload it reads itself and the decision record notes it.
322
+ */
323
+ export function isReadableKindClass(actionClass) {
324
+ return !isBuiltinPhraseClass(actionClass) && CLASSIFIER_CLASSES.includes(actionClass);
325
+ }
326
+ /** The longest payload key a `quote` map may name. */
327
+ export const PROMPT_SAY_KEY_MAX = 64;
328
+ /**
329
+ * Whether `value` is one of {@link PROMPT_STYLES}.
330
+ */
331
+ export function isPromptStyle(value) {
332
+ return typeof value === "string" && PROMPT_STYLES.includes(value);
333
+ }
334
+ /**
335
+ * The style in force for `channel` (APRV-489).
336
+ *
337
+ * Fail-soft to {@link DEFAULT_PROMPT_STYLE}, in the direction
338
+ * {@link promptLayoutFor} fails: a policy that did not load, an absent key, a
339
+ * channel that does not draw a minimal card, and a value from a later version
340
+ * all mean `technical`, which shows more rather than less. A LOADED policy
341
+ * cannot carry an unknown value, because {@link promptBlockErrors} and the
342
+ * schema refuse it at load.
343
+ */
344
+ export function promptStyleFor(load, channel) {
345
+ if (!load.ok)
346
+ return DEFAULT_PROMPT_STYLE;
347
+ if (!PROMPT_STYLE_CHANNELS.includes(channel))
348
+ return DEFAULT_PROMPT_STYLE;
349
+ const raw = promptObjectOf(load.policy.channels?.[channel]);
350
+ if (raw === null)
351
+ return DEFAULT_PROMPT_STYLE;
352
+ const style = raw["style"];
353
+ return isPromptStyle(style) ? style : DEFAULT_PROMPT_STYLE;
354
+ }
355
+ /**
356
+ * The `say` declarations in force for `channel`, or an empty map (APRV-489).
357
+ *
358
+ * Same fail-soft rule as {@link promptStyleFor}. An entry that is not
359
+ * well-formed is dropped rather than half-read; from a loaded policy none is,
360
+ * since {@link promptBlockErrors} refuses it at load. An empty map is safe:
361
+ * every opaque payload then falls back to the technical card.
362
+ */
363
+ export function promptSayFor(load, channel) {
364
+ if (!load.ok)
365
+ return {};
366
+ if (!PROMPT_STYLE_CHANNELS.includes(channel))
367
+ return {};
368
+ const raw = promptObjectOf(load.policy.channels?.[channel]);
369
+ if (raw === null)
370
+ return {};
371
+ const say = raw["say"];
372
+ if (say === null || typeof say !== "object" || Array.isArray(say))
373
+ return {};
374
+ const out = {};
375
+ for (const [pattern, entry] of Object.entries(say)) {
376
+ if (sayEntryErrors(entry, "", pattern).length > 0 || !EXACT_CLASS.test(pattern))
377
+ continue;
378
+ const record = entry;
379
+ const quote = record["quote"];
380
+ const note = record["note"];
381
+ const does = record["does"];
382
+ out[pattern] = {
383
+ ...(does === undefined ? {} : { does }),
384
+ ...(quote === undefined ? {} : { quote: { ...quote } }),
385
+ ...(note === undefined ? {} : { note }),
386
+ };
387
+ }
388
+ return out;
389
+ }
390
+ /**
391
+ * The declaration for exactly `actionClass`, or `null` (APRV-489).
392
+ *
393
+ * EXACT class names only (fix round 2, S6). A pattern such as `files.*` would
394
+ * let one friendly phrase ("tidy up a little") stand for every class under it,
395
+ * dangerous ones included, so `say` keys are refused at load unless they name
396
+ * one class. The class is the one the LOG records; nothing a payload or an
397
+ * agent says chooses it.
398
+ */
399
+ export function sayEntryFor(say, actionClass) {
400
+ if (!Object.prototype.hasOwnProperty.call(say, actionClass))
401
+ return null;
402
+ const entry = say[actionClass];
403
+ return entry === undefined ? null : { pattern: actionClass, entry };
404
+ }
405
+ /** A `say` key: one exact class name, no wildcard segment (`$defs.exactClass` in the policy schema). */
406
+ const EXACT_CLASS = /^[a-z0-9][a-z0-9_-]*(?:\.[a-z0-9][a-z0-9_-]*)*$/u;
407
+ /** A `say` key that is a class PATTERN: well-formed, but carrying a `*` segment. */
408
+ const CLASS_PATTERN = /^(?:[a-z0-9][a-z0-9_-]*|\*)(?:\.(?:[a-z0-9][a-z0-9_-]*|\*))*$/u;
409
+ /**
410
+ * The marker the minimal card reserves for its own computed notices. An
411
+ * operator's phrase or label may not carry it, so attested operator text cannot
412
+ * look like the runtime's warning that a quotation was cut (fix round 2, S6).
413
+ */
414
+ const RESERVED_NOTICE_MARK = "⚠";
415
+ /** Characters an operator's phrase or label may not carry: controls, format (bidi, zero-width) and line separators. */
416
+ const INVISIBLE = /[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u;
417
+ /** The `prompt` object under one channel entry, or `null`. */
418
+ function promptObjectOf(entry) {
419
+ if (entry === null || typeof entry !== "object")
420
+ return null;
421
+ const raw = entry["prompt"];
422
+ if (raw === null || raw === undefined || typeof raw !== "object" || Array.isArray(raw))
423
+ return null;
424
+ return raw;
425
+ }
426
+ /**
427
+ * What a `does` phrase may be (fix round 3, R2-S3): a plain verb phrase that
428
+ * completes "Your agent wants to …". It starts with a letter (no symbol, emoji
429
+ * or ⚠ that could pass for the runtime's notices), and carries no sentence
430
+ * punctuation, no colon and no markup, so operator text cannot read as a second
431
+ * sentence such as "There is no time limit" or "Not shown here:".
432
+ */
433
+ const DOES_SHAPE = /^\p{L}[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}.!?…:;<>&]*$/u;
434
+ /** What a `quote` label may be: letters, digits and spaces, nothing else (R2-S3). */
435
+ const LABEL_SHAPE = /^[\p{L}\p{N} ]*$/u;
436
+ /** The shape errors of one `say` entry for class `className`; empty means well-formed. */
437
+ function sayEntryErrors(entry, at, className) {
438
+ const errors = [];
439
+ const shape = (path, message) => {
440
+ errors.push({ path, keyword: "prompt-say-shape", message });
441
+ };
442
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
443
+ shape(at, "expected an object with any of does, quote, note");
444
+ return errors;
445
+ }
446
+ const record = entry;
447
+ for (const key of Object.keys(record).sort()) {
448
+ if (key !== "does" && key !== "quote" && key !== "note") {
449
+ shape(`${at}/${key}`, "unknown key; a say entry defines does, quote, note");
450
+ }
451
+ }
452
+ const does = record["does"];
453
+ const builtin = isBuiltinPhraseClass(className);
454
+ const readable = isReadableKindClass(className);
455
+ if (does !== undefined && builtin) {
456
+ errors.push({
457
+ path: `${at}/does`,
458
+ keyword: "prompt-say-builtin",
459
+ message: `core phrases ${JSON.stringify(className)} itself (${JSON.stringify(BUILTIN_CLASS_PHRASES[className])}); a say entry for it may set quote and note but not does`,
460
+ });
461
+ }
462
+ else if (does !== undefined && readable) {
463
+ errors.push({
464
+ path: `${at}/does`,
465
+ keyword: "prompt-say-kind",
466
+ message: `the command classifier emits ${JSON.stringify(className)} over a payload the runtime reads and phrases itself ("run a command" or "change a file", with "(type: …)"); a say entry for it may set quote and note but not does`,
467
+ });
468
+ }
469
+ else if (does === undefined && !builtin && !readable) {
470
+ errors.push({
471
+ path: `${at}/does`,
472
+ keyword: "prompt-say-does",
473
+ message: "a class core does not phrase needs a does phrase",
474
+ });
475
+ }
476
+ else if (does !== undefined &&
477
+ (typeof does !== "string" ||
478
+ [...does].length > PROMPT_SAY_DOES_MAX ||
479
+ !DOES_SHAPE.test(does) ||
480
+ does.includes(RESERVED_NOTICE_MARK))) {
481
+ errors.push({
482
+ path: `${at}/does`,
483
+ keyword: "prompt-say-does",
484
+ message: `expected a verb phrase of 1 to ${String(PROMPT_SAY_DOES_MAX)} characters that starts with a letter and has no line break, sentence punctuation (. ! ? … : ;), markup (< > &) or ${RESERVED_NOTICE_MARK}`,
485
+ });
486
+ }
487
+ const quote = record["quote"];
488
+ if (quote !== undefined) {
489
+ if (quote === null || typeof quote !== "object" || Array.isArray(quote)) {
490
+ shape(`${at}/quote`, "expected a map from payload key to a label or ~");
491
+ }
492
+ else {
493
+ const entries = Object.entries(quote);
494
+ const shown = entries.filter(([, label]) => typeof label === "string");
495
+ // A quote map that shows nothing is a minimal card that can never be
496
+ // drawn: refused at load rather than falling back on every request while
497
+ // its author believes the simple card is on (fix round 2, S6).
498
+ if (shown.length === 0)
499
+ shape(`${at}/quote`, "the quote map shows no field: give at least one key a label");
500
+ for (const [key, label] of entries) {
501
+ const keyOk = key.length > 0 && [...key].length <= PROMPT_SAY_KEY_MAX && !INVISIBLE.test(key);
502
+ if (!keyOk)
503
+ shape(`${at}/quote/${key}`, `expected a payload key of 1 to ${String(PROMPT_SAY_KEY_MAX)} characters`);
504
+ if (label === null)
505
+ continue;
506
+ if (typeof label !== "string" || [...label].length > PROMPT_SAY_LABEL_MAX || !LABEL_SHAPE.test(label)) {
507
+ errors.push({
508
+ path: `${at}/quote/${key}`,
509
+ keyword: "prompt-say-label",
510
+ message: `expected a label of letters, digits and spaces, at most ${String(PROMPT_SAY_LABEL_MAX)} characters, or ~`,
511
+ });
512
+ }
513
+ else if (label.trim().length === 0 && shown.length > 1) {
514
+ // R2-B2: a value may stand alone only when it is the only quotation.
515
+ errors.push({
516
+ path: `${at}/quote/${key}`,
517
+ keyword: "prompt-say-label",
518
+ message: "an empty label is allowed only when this is the only field quoted; with two or more, every label must say what the value is",
519
+ });
520
+ }
521
+ }
522
+ }
523
+ }
524
+ const note = record["note"];
525
+ if (note !== undefined && !PROMPT_SAY_NOTES.includes(note)) {
526
+ shape(`${at}/note`, `expected one of ${PROMPT_SAY_NOTES.join(", ")}`);
527
+ }
528
+ return errors;
529
+ }
244
530
  /**
245
531
  * The layout in force for `channel`.
246
532
  *
@@ -327,8 +613,25 @@ export const PROMPT_BLOCK_ERROR_KEYWORDS = [
327
613
  "prompt-row-conflict",
328
614
  /** A key the `prompt` block does not define. */
329
615
  "prompt-key-unknown",
616
+ /** `style` is not one of {@link PROMPT_STYLES} (APRV-489). */
617
+ "prompt-style-unknown",
618
+ /** `say` is not a map of class name to a well-formed declaration (APRV-489). */
619
+ "prompt-say-shape",
620
+ /** A `say` key is a class pattern (a `*` segment), not one exact class (fix round 2, S6). */
621
+ "prompt-say-wildcard",
622
+ /** A `say` entry sets `does` for a class core phrases itself (fix round 3, R2-S2). */
623
+ "prompt-say-builtin",
624
+ /** A `say` entry sets `does` for a class the command classifier emits, whose payload core reads itself (fix round 4, R3-S1). */
625
+ "prompt-say-kind",
626
+ /** A `does` phrase that is not a plain verb phrase, or is missing for an operator class (fix round 3, R2-S3). */
627
+ "prompt-say-does",
628
+ /** A `quote` label that is not plain words, or an empty label beside another quoted field (fix round 3). */
629
+ "prompt-say-label",
330
630
  ];
331
- const PROMPT_BLOCK_KEYS = ["rows", "always", "hide"];
631
+ /** The three row-list keys, each an array of row names. */
632
+ const PROMPT_ROW_KEYS = ["rows", "always", "hide"];
633
+ /** Every key a `prompt` block defines (APRV-489 adds `style` and `say`). */
634
+ const PROMPT_BLOCK_KEYS = [...PROMPT_ROW_KEYS, "style", "say"];
332
635
  /**
333
636
  * Validate every `channels.<name>.prompt` in a policy. Empty means clean.
334
637
  *
@@ -359,7 +662,7 @@ export function promptBlockErrors(policy) {
359
662
  errors.push({
360
663
  path: at,
361
664
  keyword: "prompt-block-shape",
362
- message: "expected an object with any of `rows`, `always`, `hide`",
665
+ message: "expected an object with any of `rows`, `always`, `hide`, `style`, `say`",
363
666
  });
364
667
  continue;
365
668
  }
@@ -373,8 +676,47 @@ export function promptBlockErrors(policy) {
373
676
  });
374
677
  }
375
678
  }
679
+ // APRV-489. Checked wherever it appears, on every channel name, although
680
+ // only Telegram draws it: a misspelt style is a statement the runtime cannot
681
+ // honour on any channel, and the policy fails closed on all of them alike.
682
+ const style = block["style"];
683
+ if (style !== undefined && !isPromptStyle(style)) {
684
+ errors.push({
685
+ path: `${at}/style`,
686
+ keyword: "prompt-style-unknown",
687
+ message: `unknown prompt style ${JSON.stringify(style)}; known styles are ${PROMPT_STYLES.join(", ")}`,
688
+ });
689
+ }
690
+ const say = block["say"];
691
+ if (say !== undefined) {
692
+ if (say === null || typeof say !== "object" || Array.isArray(say)) {
693
+ errors.push({
694
+ path: `${at}/say`,
695
+ keyword: "prompt-say-shape",
696
+ message: "expected a map from class pattern to { does, quote, note }",
697
+ });
698
+ }
699
+ else {
700
+ for (const pattern of Object.keys(say).sort()) {
701
+ const entryAt = `${at}/say/${pattern}`;
702
+ if (!EXACT_CLASS.test(pattern)) {
703
+ const wildcard = CLASS_PATTERN.test(pattern);
704
+ errors.push({
705
+ path: entryAt,
706
+ keyword: wildcard ? "prompt-say-wildcard" : "prompt-say-shape",
707
+ message: wildcard
708
+ ? `${JSON.stringify(pattern)} is a class pattern; a say entry names exactly one class, so one phrase can never stand for several classes`
709
+ : `${JSON.stringify(pattern)} is not a class name`,
710
+ });
711
+ }
712
+ for (const problem of sayEntryErrors(say[pattern], entryAt, pattern)) {
713
+ errors.push(problem);
714
+ }
715
+ }
716
+ }
717
+ }
376
718
  const seen = {};
377
- for (const key of PROMPT_BLOCK_KEYS) {
719
+ for (const key of PROMPT_ROW_KEYS) {
378
720
  const value = block[key];
379
721
  if (value === undefined)
380
722
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-layout.js","sourceRoot":"","sources":["../../../src/core/prompt-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-layout.js","sourceRoot":"","sources":["../../../src/core/prompt-layout.ts"],"names":[],"mappings":"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"}
@@ -257,7 +257,30 @@ export declare const CHANNEL_DECISION_REFUSAL_CODES: readonly [
257
257
  * mapping. The repair is a terminal, which supplies no sender and is where a
258
258
  * `policy.core` edit happens anyway.
259
259
  */
260
- "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"];
261
284
  export type ChannelDecisionRefusalCode = (typeof CHANNEL_DECISION_REFUSAL_CODES)[number];
262
285
  /** Is `code` one of this union's members? Used where a code arrives as a string. */
263
286
  export declare function isChannelDecisionRefusalCode(code: string): code is ChannelDecisionRefusalCode;
@@ -255,6 +255,29 @@ export const CHANNEL_DECISION_REFUSAL_CODES = [
255
255
  * `policy.core` edit happens anyway.
256
256
  */
257
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",
258
281
  ];
259
282
  /** Is `code` one of this union's members? Used where a code arrives as a string. */
260
283
  export function isChannelDecisionRefusalCode(code) {
@@ -604,6 +627,14 @@ export function senderRefusalLine(code) {
604
627
  // the operator's own and whose repair is one line they can act on at once.
605
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.`;
606
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
+ }
607
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.";
608
639
  }
609
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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"}
@@ -96,6 +96,7 @@ import { loadPolicy } from "./policy-load.js";
96
96
  import { humanOnlyRefusal, resolve } from "./policy-match.js";
97
97
  import { asSealedToken, openSealedToken, readPrivateKey, SEALED_TOKEN_FIELD, } from "./seal.js";
98
98
  import { readVerifiedRecords, requestState, } from "./state.js";
99
+ import { UNMAPPED_TOOL_CLASS } from "./tool-map.js";
99
100
  /** Token entropy. 32 bytes = 256 bits, rendered as 64 lowercase hex chars. */
100
101
  export const TOKEN_BYTES = 32;
101
102
  /** The payload key carrying the token's digest, on both grant and start. */
@@ -453,6 +454,16 @@ export function verifyTokenSpend(records, actionKey, presentedToken, now, load,
453
454
  const verified = verifyToken(records, actionKey, presentedToken, now, load.ok ? load.durations.approvalTtlMs : null);
454
455
  if (!verified.ok)
455
456
  return verified;
457
+ // APRV-499 fix round 2 (recheck SF2), the mirror of `core/execute.ts`'s
458
+ // `attemptStart` refusal: `harness.tool.unmapped` is reserved to the harness
459
+ // hook, whose spend goes through `consumeHarnessGrant` and names the tool it
460
+ // ran. A token grant on that class (reachable only by withdrawing the hook's
461
+ // harness request and re-requesting the key by hand) is not `approval
462
+ // consume`'s to spend either, so no start without a `harness_tool` can be
463
+ // written under the class. Same code and same words as `approval run`.
464
+ if (verified.class === UNMAPPED_TOOL_CLASS) {
465
+ return refuse("harness-executed", `action ${actionKey} is declared under ${UNMAPPED_TOOL_CLASS}, which is reserved to the harness hook: the harness runs such a call itself and the hook records it, so the token granted at seq ${verified.grantSeq} may not be spent by \`approval consume\` or \`approval run\`. No execution.started was written.`, { state: "granted", seq: verified.grantSeq });
466
+ }
456
467
  const reserved = humanOnlyClassRefusal(load, verified.class, `the token for action ${actionKey}, granted at seq ${verified.grantSeq}, may not be spent and no execution.started was written`);
457
468
  if (reserved !== null)
458
469
  return reserved;