approval-md 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -914
- package/SPEC.md +101 -13
- package/cli.js +134 -7
- package/dist/src/adapters/smtp.d.ts +18 -0
- package/dist/src/adapters/smtp.js +24 -3
- package/dist/src/adapters/smtp.js.map +1 -1
- package/dist/src/channels/contract.d.ts +72 -0
- package/dist/src/channels/contract.js +161 -1
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/relay-server.d.ts +90 -0
- package/dist/src/channels/relay-server.js +295 -0
- package/dist/src/channels/relay-server.js.map +1 -0
- package/dist/src/channels/relay.d.ts +273 -0
- package/dist/src/channels/relay.js +564 -0
- package/dist/src/channels/relay.js.map +1 -0
- package/dist/src/channels/tagging.d.ts +25 -0
- package/dist/src/channels/tagging.js +63 -6
- package/dist/src/channels/tagging.js.map +1 -1
- package/dist/src/channels/telegram-minimal.d.ts +251 -0
- package/dist/src/channels/telegram-minimal.js +618 -0
- package/dist/src/channels/telegram-minimal.js.map +1 -0
- package/dist/src/channels/telegram-webhook.d.ts +273 -0
- package/dist/src/channels/telegram-webhook.js +536 -0
- package/dist/src/channels/telegram-webhook.js.map +1 -0
- package/dist/src/channels/telegram.d.ts +725 -20
- package/dist/src/channels/telegram.js +1332 -123
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/cli/amend.js +358 -5
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.js +43 -6
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/audit-card.d.ts +1 -1
- package/dist/src/cli/audit-card.js +40 -1
- package/dist/src/cli/audit-card.js.map +1 -1
- package/dist/src/cli/audit.d.ts +7 -5
- package/dist/src/cli/audit.js +22 -10
- package/dist/src/cli/audit.js.map +1 -1
- package/dist/src/cli/channel-relay.d.ts +108 -0
- package/dist/src/cli/channel-relay.js +334 -0
- package/dist/src/cli/channel-relay.js.map +1 -0
- package/dist/src/cli/channel-telegram-webhook.d.ts +275 -0
- package/dist/src/cli/channel-telegram-webhook.js +716 -0
- package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
- package/dist/src/cli/channel-telegram.d.ts +347 -28
- package/dist/src/cli/channel-telegram.js +648 -56
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +1 -1
- package/dist/src/cli/channel.js +5 -1
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/daemon.js +37 -5
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +63 -0
- package/dist/src/cli/doctor.js +856 -111
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.d.ts +29 -1
- package/dist/src/cli/execute.js +387 -21
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/exit-codes.d.ts +12 -0
- package/dist/src/cli/exit-codes.js +13 -0
- package/dist/src/cli/exit-codes.js.map +1 -1
- package/dist/src/cli/gate.d.ts +2 -0
- package/dist/src/cli/gate.js +233 -2
- package/dist/src/cli/gate.js.map +1 -1
- package/dist/src/cli/help.d.ts +10 -1
- package/dist/src/cli/help.js +283 -54
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook.d.ts +485 -6
- package/dist/src/cli/hook.js +2370 -70
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/init.js +16 -7
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.js +24 -3
- package/dist/src/cli/instructions.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +55 -0
- package/dist/src/cli/log-anchor.js +199 -60
- package/dist/src/cli/log-anchor.js.map +1 -1
- package/dist/src/cli/log-unlock.d.ts +23 -0
- package/dist/src/cli/log-unlock.js +109 -0
- package/dist/src/cli/log-unlock.js.map +1 -0
- package/dist/src/cli/main.d.ts +0 -12
- package/dist/src/cli/main.js +72 -4
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/muse.d.ts +2 -0
- package/dist/src/cli/muse.js +62 -0
- package/dist/src/cli/muse.js.map +1 -0
- package/dist/src/cli/payload.js +79 -1
- package/dist/src/cli/payload.js.map +1 -1
- package/dist/src/cli/scaffold.js +6 -0
- package/dist/src/cli/scaffold.js.map +1 -1
- package/dist/src/cli/serve.d.ts +53 -0
- package/dist/src/cli/serve.js +270 -0
- package/dist/src/cli/serve.js.map +1 -0
- package/dist/src/cli/up.js +26 -2
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +2 -0
- package/dist/src/cli/verb-registry.js +338 -39
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +2 -2
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/core/attest-bootstrap.d.ts +95 -0
- package/dist/src/core/attest-bootstrap.js +135 -0
- package/dist/src/core/attest-bootstrap.js.map +1 -0
- package/dist/src/core/attest.d.ts +20 -3
- package/dist/src/core/attest.js +25 -0
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +153 -12
- package/dist/src/core/audit.js +415 -20
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/channel-lease.d.ts +322 -0
- package/dist/src/core/channel-lease.js +663 -0
- package/dist/src/core/channel-lease.js.map +1 -0
- package/dist/src/core/command-class.d.ts +51 -0
- package/dist/src/core/command-class.js +766 -8
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/daemon-host.d.ts +178 -0
- package/dist/src/core/daemon-host.js +228 -0
- package/dist/src/core/daemon-host.js.map +1 -0
- package/dist/src/core/daemon-identity.d.ts +238 -0
- package/dist/src/core/daemon-identity.js +252 -0
- package/dist/src/core/daemon-identity.js.map +1 -0
- package/dist/src/core/gate.d.ts +364 -6
- package/dist/src/core/gate.js +802 -27
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/harness-version.d.ts +128 -4
- package/dist/src/core/harness-version.js +179 -12
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +82 -3
- package/dist/src/core/harness-wait.js +89 -3
- package/dist/src/core/harness-wait.js.map +1 -1
- package/dist/src/core/log-lock.d.ts +435 -0
- package/dist/src/core/log-lock.js +1093 -0
- package/dist/src/core/log-lock.js.map +1 -0
- package/dist/src/core/log-subscribe.d.ts +21 -0
- package/dist/src/core/log-subscribe.js +16 -6
- package/dist/src/core/log-subscribe.js.map +1 -1
- package/dist/src/core/log-write-layer.d.ts +55 -0
- package/dist/src/core/log-write-layer.js +91 -0
- package/dist/src/core/log-write-layer.js.map +1 -0
- package/dist/src/core/log.d.ts +130 -22
- package/dist/src/core/log.js +473 -50
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/payload-census.d.ts +51 -0
- package/dist/src/core/payload-census.js +125 -2
- package/dist/src/core/payload-census.js.map +1 -1
- package/dist/src/core/payload-store.d.ts +31 -0
- package/dist/src/core/payload-store.js +113 -8
- package/dist/src/core/payload-store.js.map +1 -1
- package/dist/src/core/payload.d.ts +18 -3
- package/dist/src/core/payload.js +20 -4
- package/dist/src/core/payload.js.map +1 -1
- package/dist/src/core/policy-diff.d.ts +10 -0
- package/dist/src/core/policy-diff.js +10 -2
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-explain.d.ts +7 -1
- package/dist/src/core/policy-explain.js +16 -1
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +24 -0
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +38 -0
- package/dist/src/core/policy-match.js +35 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +40 -0
- package/dist/src/core/policy-proposal.js +37 -16
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/prompt-layout.d.ts +186 -1
- package/dist/src/core/prompt-layout.js +345 -3
- package/dist/src/core/prompt-layout.js.map +1 -1
- package/dist/src/core/read-scope.d.ts +10 -0
- package/dist/src/core/read-scope.js +4 -0
- package/dist/src/core/read-scope.js.map +1 -1
- package/dist/src/core/run-payload.d.ts +160 -0
- package/dist/src/core/run-payload.js +304 -0
- package/dist/src/core/run-payload.js.map +1 -0
- package/dist/src/core/sender-identity.d.ts +59 -11
- package/dist/src/core/sender-identity.js +79 -11
- package/dist/src/core/sender-identity.js.map +1 -1
- package/dist/src/core/state.d.ts +52 -1
- package/dist/src/core/state.js +52 -6
- package/dist/src/core/state.js.map +1 -1
- package/dist/src/core/telegram-config.d.ts +79 -0
- package/dist/src/core/telegram-config.js +108 -0
- package/dist/src/core/telegram-config.js.map +1 -1
- package/dist/src/core/validate.d.ts +20 -6
- package/dist/src/core/validate.js +0 -0
- package/dist/src/core/validate.js.map +1 -1
- package/dist/src/core/verify.d.ts +23 -1
- package/dist/src/core/verify.js +20 -2
- package/dist/src/core/verify.js.map +1 -1
- package/dist/src/daemon/audit.d.ts +80 -5
- package/dist/src/daemon/audit.js +126 -6
- package/dist/src/daemon/audit.js.map +1 -1
- package/dist/src/daemon/daemon.d.ts +174 -2
- package/dist/src/daemon/daemon.js +298 -7
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/daemon/projection.d.ts +13 -2
- package/dist/src/daemon/projection.js +39 -6
- package/dist/src/daemon/projection.js.map +1 -1
- package/dist/src/mcp/server.d.ts +39 -3
- package/dist/src/mcp/server.js +22 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/muse/server.d.ts +16 -0
- package/dist/src/muse/server.js +238 -0
- package/dist/src/muse/server.js.map +1 -0
- package/dist/src/serve/archive.d.ts +166 -0
- package/dist/src/serve/archive.js +363 -0
- package/dist/src/serve/archive.js.map +1 -0
- package/dist/src/serve/arguments.d.ts +93 -0
- package/dist/src/serve/arguments.js +228 -0
- package/dist/src/serve/arguments.js.map +1 -0
- package/dist/src/serve/credentials.d.ts +91 -0
- package/dist/src/serve/credentials.js +143 -0
- package/dist/src/serve/credentials.js.map +1 -0
- package/dist/src/serve/follow.d.ts +86 -0
- package/dist/src/serve/follow.js +101 -0
- package/dist/src/serve/follow.js.map +1 -0
- package/dist/src/serve/hook-thread.d.ts +134 -0
- package/dist/src/serve/hook-thread.js +333 -0
- package/dist/src/serve/hook-thread.js.map +1 -0
- package/dist/src/serve/hook-worker.d.ts +134 -0
- package/dist/src/serve/hook-worker.js +173 -0
- package/dist/src/serve/hook-worker.js.map +1 -0
- package/dist/src/serve/server.d.ts +412 -0
- package/dist/src/serve/server.js +1251 -0
- package/dist/src/serve/server.js.map +1 -0
- package/docs/README-extended.md +768 -0
- package/docs/cli-reference.md +2139 -67
- package/package.json +4 -2
- package/schema/event.schema.json +413 -30
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
- package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
- package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
- package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
- package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
- package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
- package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
- package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
- package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
- package/schema/fixtures/event/valid/audit-sampled.json +2 -1
- package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
- package/schema/fixtures/event/valid/daemon-identity.json +16 -0
- package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
- package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
- package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
- package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
- package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
- package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
- package/schema/policy.schema.json +102 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-proposal.js","sourceRoot":"","sources":["../../../src/core/policy-proposal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy-proposal.js","sourceRoot":"","sources":["../../../src/core/policy-proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -173,7 +173,178 @@ export interface PromptBlock {
|
|
|
173
173
|
rows?: PromptRow[];
|
|
174
174
|
always?: PromptRow[];
|
|
175
175
|
hide?: PromptRow[];
|
|
176
|
+
/** {@link PromptStyle} (APRV-489). Read by {@link promptStyleFor}, never by the row layout. */
|
|
177
|
+
style?: PromptStyle;
|
|
178
|
+
/** {@link PromptSay} (APRV-489). Read by {@link promptSayFor}, never by the row layout. */
|
|
179
|
+
say?: PromptSay;
|
|
176
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* How a channel lays out a prompt, as the attested policy chooses it (APRV-489).
|
|
183
|
+
*
|
|
184
|
+
* - `technical` is every prompt this runtime has ever sent: the computed block,
|
|
185
|
+
* the canonical rendering, the claimed block. It is the default, and what an
|
|
186
|
+
* absent key means, so every policy written before the key renders byte for
|
|
187
|
+
* byte what it rendered before.
|
|
188
|
+
* - `minimal` is a short card in plain words for a reader who is not an
|
|
189
|
+
* engineer: a headline the RUNTIME computes from the class, the payload's own
|
|
190
|
+
* words quoted from the bound bytes, a deadline in plain words, and the whole
|
|
191
|
+
* technical card, canonical rendering included, collapsed inside the same
|
|
192
|
+
* message as the buttons (SPEC.md §10.3, amended APRV-489).
|
|
193
|
+
*
|
|
194
|
+
* A style chooses what is in front of the reader first. It cannot change what
|
|
195
|
+
* the approver SIGNS: the canonical rendering is in the button-bearing message
|
|
196
|
+
* either way, the `display_hash` names the same text, and the callback data and
|
|
197
|
+
* the log are the same.
|
|
198
|
+
*
|
|
199
|
+
* Closed for `delivery`'s reason: a style this runtime cannot draw is a screen
|
|
200
|
+
* the author believes is in force that nothing renders.
|
|
201
|
+
*/
|
|
202
|
+
export declare const PROMPT_STYLES: readonly ["technical", "minimal"];
|
|
203
|
+
/** One of {@link PROMPT_STYLES}. */
|
|
204
|
+
export type PromptStyle = (typeof PROMPT_STYLES)[number];
|
|
205
|
+
/** What an absent `style`, a policy that did not load, and every channel but Telegram mean. */
|
|
206
|
+
export declare const DEFAULT_PROMPT_STYLE: PromptStyle;
|
|
207
|
+
/**
|
|
208
|
+
* The channels that draw a `minimal` card. Telegram only, in this release.
|
|
209
|
+
*
|
|
210
|
+
* Every other channel IGNORES the key (APRV-489, documented in
|
|
211
|
+
* `docs/cli-reference.md`): `style: minimal` under `channels.web.prompt` or
|
|
212
|
+
* `channels.cli.prompt` loads and changes nothing. Ignoring is the safe
|
|
213
|
+
* direction, because the channel then shows MORE than was asked for, never
|
|
214
|
+
* less, and it is never an error at prompt time. The value is still validated
|
|
215
|
+
* wherever it appears, so a misspelling fails the load on every channel alike.
|
|
216
|
+
*/
|
|
217
|
+
export declare const PROMPT_STYLE_CHANNELS: readonly PromptChannel[];
|
|
218
|
+
/**
|
|
219
|
+
* Which layout an approver decided on, as a decision record states it
|
|
220
|
+
* (APRV-489): `payload.rendering` on `approval.granted` / `approval.rejected`.
|
|
221
|
+
*
|
|
222
|
+
* Written only when the policy asked for a style other than `technical`, so a
|
|
223
|
+
* record under a technical policy is byte-identical to every earlier one.
|
|
224
|
+
* `style` is what was SHOWN; `fallback` is present when the policy asked for
|
|
225
|
+
* `minimal` and the channel sent the technical card instead, naming why (the
|
|
226
|
+
* codes are `MINIMAL_FALLBACKS` in `channels/telegram-minimal.ts`).
|
|
227
|
+
*
|
|
228
|
+
* A statement by the channel about its own screen, read by nothing that
|
|
229
|
+
* decides: no verdict, budget, token or sampling path reads it (SPEC.md §11.1
|
|
230
|
+
* invariant 4 holds by there being no reader). The style a policy requested is
|
|
231
|
+
* recoverable from the policy hash the record already carries.
|
|
232
|
+
*/
|
|
233
|
+
export interface PromptRendering {
|
|
234
|
+
style: PromptStyle;
|
|
235
|
+
fallback?: string;
|
|
236
|
+
/**
|
|
237
|
+
* Present, and `true`, on a minimal card whose class's `say` entry set a
|
|
238
|
+
* `does` phrase the runtime did not use, because it reads the payload itself
|
|
239
|
+
* (a command, a file change, an email) and drew its own kind phrase (fix
|
|
240
|
+
* round 4, R3-S1). Only possible for a class whose payload kind is not known
|
|
241
|
+
* at load; for the classes the command classifier emits, such a `does` is
|
|
242
|
+
* refused at load (`prompt-say-kind`).
|
|
243
|
+
*/
|
|
244
|
+
say_does_ignored?: true;
|
|
245
|
+
}
|
|
246
|
+
/** The two words `say.<class>.note` may say. */
|
|
247
|
+
export declare const PROMPT_SAY_NOTES: readonly ["summary", "none"];
|
|
248
|
+
/** One of {@link PROMPT_SAY_NOTES}. */
|
|
249
|
+
export type PromptSayNote = (typeof PROMPT_SAY_NOTES)[number];
|
|
250
|
+
/**
|
|
251
|
+
* What the operator declares about one class for the minimal card (APRV-489).
|
|
252
|
+
*
|
|
253
|
+
* - `does` is the plain-words verb phrase the headline completes: "Your agent
|
|
254
|
+
* wants to <does>". Operator text the resident attested; it is the headline
|
|
255
|
+
* only for a class this entry matches, chosen by the runtime from the class
|
|
256
|
+
* the log records, and only over an opaque payload: like `quote`, it is
|
|
257
|
+
* ignored for the structured kinds, whose phrase the runtime computes (fix
|
|
258
|
+
* round 4, R3-S1). Nothing the agent writes reaches it.
|
|
259
|
+
* - `quote` is the closed field set for an OPAQUE payload: every top-level key
|
|
260
|
+
* the payload may carry, each with the label its value is quoted under, or
|
|
261
|
+
* `null` (YAML `~`) for "known, deliberately not on the simple card". A
|
|
262
|
+
* payload carrying a key this map does not name is drawn as the technical
|
|
263
|
+
* card instead (SPEC.md §9's closed-field-set rule, applied to the summary
|
|
264
|
+
* view). Ignored for the structured kinds (command, file change, email),
|
|
265
|
+
* whose computed excerpt is built in.
|
|
266
|
+
* - `note` says whether the agent's own summary is shown, labelled as the
|
|
267
|
+
* agent's: `summary` (the default) or `none`.
|
|
268
|
+
*/
|
|
269
|
+
export interface PromptSayEntry {
|
|
270
|
+
/**
|
|
271
|
+
* Absent for a class core phrases itself, where core's phrase always wins
|
|
272
|
+
* (R2-S2), and for a class the command classifier emits, whose payload core
|
|
273
|
+
* reads itself (R3-S1). Used only over an OPAQUE payload: over a command, a
|
|
274
|
+
* file change or an email the runtime's kind phrase is drawn instead.
|
|
275
|
+
*/
|
|
276
|
+
does?: string;
|
|
277
|
+
quote?: Readonly<Record<string, string | null>>;
|
|
278
|
+
note?: PromptSayNote;
|
|
279
|
+
}
|
|
280
|
+
/** `channels.telegram.prompt.say`: class pattern -> declaration. */
|
|
281
|
+
export type PromptSay = Readonly<Record<string, PromptSayEntry>>;
|
|
282
|
+
/** The longest `does` phrase, in characters. A headline is one line on a phone. */
|
|
283
|
+
export declare const PROMPT_SAY_DOES_MAX = 120;
|
|
284
|
+
/** The longest `quote` label, in characters. */
|
|
285
|
+
export declare const PROMPT_SAY_LABEL_MAX = 24;
|
|
286
|
+
/**
|
|
287
|
+
* The phrases for the classes core itself emits (APRV-489; R3: core supplies
|
|
288
|
+
* phrases only for its own built-in classes and payload kinds). Here in core so
|
|
289
|
+
* the loader can refuse a `say.<class>.does` that would override one (fix round
|
|
290
|
+
* 3, R2-S2): a phrase is the first line of a card, and an operator's friendlier
|
|
291
|
+
* words for a dangerous built-in class must not replace the runtime's.
|
|
292
|
+
* `policy.edit` is absent on purpose: a policy edit is always the technical card.
|
|
293
|
+
*/
|
|
294
|
+
export declare const BUILTIN_CLASS_PHRASES: Readonly<Record<string, string>>;
|
|
295
|
+
/** Whether core phrases `actionClass` itself. */
|
|
296
|
+
export declare function isBuiltinPhraseClass(actionClass: string): boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Whether the runtime reads `actionClass`'s payload itself, as far as can be
|
|
299
|
+
* known at load (fix round 4, R3-S1): a class the command classifier emits
|
|
300
|
+
* (`CLASSIFIER_CLASSES`, e.g. `files.delete.out_of_scope`, `vcs.push.main`)
|
|
301
|
+
* is requested over a command or a file change, both payload kinds the minimal
|
|
302
|
+
* card phrases itself ("run a command (type: …)"). An operator's `does` for
|
|
303
|
+
* such a class could only put milder words over a payload core understands, so
|
|
304
|
+
* it is refused at load (`prompt-say-kind`). For any other class the payload's
|
|
305
|
+
* kind is known only when a request arrives; the card then ignores a `does`
|
|
306
|
+
* over a payload it reads itself and the decision record notes it.
|
|
307
|
+
*/
|
|
308
|
+
export declare function isReadableKindClass(actionClass: string): boolean;
|
|
309
|
+
/** The longest payload key a `quote` map may name. */
|
|
310
|
+
export declare const PROMPT_SAY_KEY_MAX = 64;
|
|
311
|
+
/**
|
|
312
|
+
* Whether `value` is one of {@link PROMPT_STYLES}.
|
|
313
|
+
*/
|
|
314
|
+
export declare function isPromptStyle(value: unknown): value is PromptStyle;
|
|
315
|
+
/**
|
|
316
|
+
* The style in force for `channel` (APRV-489).
|
|
317
|
+
*
|
|
318
|
+
* Fail-soft to {@link DEFAULT_PROMPT_STYLE}, in the direction
|
|
319
|
+
* {@link promptLayoutFor} fails: a policy that did not load, an absent key, a
|
|
320
|
+
* channel that does not draw a minimal card, and a value from a later version
|
|
321
|
+
* all mean `technical`, which shows more rather than less. A LOADED policy
|
|
322
|
+
* cannot carry an unknown value, because {@link promptBlockErrors} and the
|
|
323
|
+
* schema refuse it at load.
|
|
324
|
+
*/
|
|
325
|
+
export declare function promptStyleFor(load: PolicyLoadResult, channel: string): PromptStyle;
|
|
326
|
+
/**
|
|
327
|
+
* The `say` declarations in force for `channel`, or an empty map (APRV-489).
|
|
328
|
+
*
|
|
329
|
+
* Same fail-soft rule as {@link promptStyleFor}. An entry that is not
|
|
330
|
+
* well-formed is dropped rather than half-read; from a loaded policy none is,
|
|
331
|
+
* since {@link promptBlockErrors} refuses it at load. An empty map is safe:
|
|
332
|
+
* every opaque payload then falls back to the technical card.
|
|
333
|
+
*/
|
|
334
|
+
export declare function promptSayFor(load: PolicyLoadResult, channel: string): PromptSay;
|
|
335
|
+
/**
|
|
336
|
+
* The declaration for exactly `actionClass`, or `null` (APRV-489).
|
|
337
|
+
*
|
|
338
|
+
* EXACT class names only (fix round 2, S6). A pattern such as `files.*` would
|
|
339
|
+
* let one friendly phrase ("tidy up a little") stand for every class under it,
|
|
340
|
+
* dangerous ones included, so `say` keys are refused at load unless they name
|
|
341
|
+
* one class. The class is the one the LOG records; nothing a payload or an
|
|
342
|
+
* agent says chooses it.
|
|
343
|
+
*/
|
|
344
|
+
export declare function sayEntryFor(say: PromptSay, actionClass: string): {
|
|
345
|
+
pattern: string;
|
|
346
|
+
entry: PromptSayEntry;
|
|
347
|
+
} | null;
|
|
177
348
|
/**
|
|
178
349
|
* The layout in force for `channel`.
|
|
179
350
|
*
|
|
@@ -204,7 +375,21 @@ export declare const PROMPT_BLOCK_ERROR_KEYWORDS: readonly [
|
|
|
204
375
|
/** One row named by both `always` and `hide`. */
|
|
205
376
|
"prompt-row-conflict",
|
|
206
377
|
/** A key the `prompt` block does not define. */
|
|
207
|
-
"prompt-key-unknown"
|
|
378
|
+
"prompt-key-unknown",
|
|
379
|
+
/** `style` is not one of {@link PROMPT_STYLES} (APRV-489). */
|
|
380
|
+
"prompt-style-unknown",
|
|
381
|
+
/** `say` is not a map of class name to a well-formed declaration (APRV-489). */
|
|
382
|
+
"prompt-say-shape",
|
|
383
|
+
/** A `say` key is a class pattern (a `*` segment), not one exact class (fix round 2, S6). */
|
|
384
|
+
"prompt-say-wildcard",
|
|
385
|
+
/** A `say` entry sets `does` for a class core phrases itself (fix round 3, R2-S2). */
|
|
386
|
+
"prompt-say-builtin",
|
|
387
|
+
/** A `say` entry sets `does` for a class the command classifier emits, whose payload core reads itself (fix round 4, R3-S1). */
|
|
388
|
+
"prompt-say-kind",
|
|
389
|
+
/** A `does` phrase that is not a plain verb phrase, or is missing for an operator class (fix round 3, R2-S3). */
|
|
390
|
+
"prompt-say-does",
|
|
391
|
+
/** A `quote` label that is not plain words, or an empty label beside another quoted field (fix round 3). */
|
|
392
|
+
"prompt-say-label"];
|
|
208
393
|
/**
|
|
209
394
|
* Validate every `channels.<name>.prompt` in a policy. Empty means clean.
|
|
210
395
|
*
|
|
@@ -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
|
-
|
|
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
|
|
719
|
+
for (const key of PROMPT_ROW_KEYS) {
|
|
378
720
|
const value = block[key];
|
|
379
721
|
if (value === undefined)
|
|
380
722
|
continue;
|