@cotal-ai/core 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/acls.d.ts +21 -0
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +75 -12
  4. package/dist/acls.js.map +1 -1
  5. package/dist/artifact.d.ts +45 -0
  6. package/dist/artifact.d.ts.map +1 -0
  7. package/dist/artifact.js +82 -0
  8. package/dist/artifact.js.map +1 -0
  9. package/dist/backup-config.d.ts +9 -2
  10. package/dist/backup-config.d.ts.map +1 -1
  11. package/dist/backup-config.js +6 -2
  12. package/dist/backup-config.js.map +1 -1
  13. package/dist/broker-tls.d.ts +70 -0
  14. package/dist/broker-tls.d.ts.map +1 -0
  15. package/dist/broker-tls.js +195 -0
  16. package/dist/broker-tls.js.map +1 -0
  17. package/dist/canonical.d.ts +14 -1
  18. package/dist/canonical.d.ts.map +1 -1
  19. package/dist/canonical.js +21 -1
  20. package/dist/canonical.js.map +1 -1
  21. package/dist/channels.d.ts.map +1 -1
  22. package/dist/channels.js +18 -9
  23. package/dist/channels.js.map +1 -1
  24. package/dist/endpoint-action.d.ts +108 -3
  25. package/dist/endpoint-action.d.ts.map +1 -1
  26. package/dist/endpoint-action.js +209 -20
  27. package/dist/endpoint-action.js.map +1 -1
  28. package/dist/endpoint-binding.d.ts +138 -8
  29. package/dist/endpoint-binding.d.ts.map +1 -1
  30. package/dist/endpoint-binding.js +233 -26
  31. package/dist/endpoint-binding.js.map +1 -1
  32. package/dist/endpoint-contract-store.d.ts +24 -1
  33. package/dist/endpoint-contract-store.d.ts.map +1 -1
  34. package/dist/endpoint-contract-store.js +79 -27
  35. package/dist/endpoint-contract-store.js.map +1 -1
  36. package/dist/endpoint-envelope.d.ts +15 -37
  37. package/dist/endpoint-envelope.d.ts.map +1 -1
  38. package/dist/endpoint-envelope.js +93 -44
  39. package/dist/endpoint-envelope.js.map +1 -1
  40. package/dist/endpoint-error.d.ts +33 -0
  41. package/dist/endpoint-error.d.ts.map +1 -0
  42. package/dist/endpoint-error.js +34 -0
  43. package/dist/endpoint-error.js.map +1 -0
  44. package/dist/endpoint-grants.d.ts +48 -7
  45. package/dist/endpoint-grants.d.ts.map +1 -1
  46. package/dist/endpoint-grants.js +97 -9
  47. package/dist/endpoint-grants.js.map +1 -1
  48. package/dist/endpoint-invoke.d.ts +138 -0
  49. package/dist/endpoint-invoke.d.ts.map +1 -0
  50. package/dist/endpoint-invoke.js +340 -0
  51. package/dist/endpoint-invoke.js.map +1 -0
  52. package/dist/endpoint-records.d.ts.map +1 -1
  53. package/dist/endpoint-records.js +17 -0
  54. package/dist/endpoint-records.js.map +1 -1
  55. package/dist/endpoint-serve-kv.d.ts +97 -0
  56. package/dist/endpoint-serve-kv.d.ts.map +1 -0
  57. package/dist/endpoint-serve-kv.js +336 -0
  58. package/dist/endpoint-serve-kv.js.map +1 -0
  59. package/dist/endpoint-serve.d.ts.map +1 -1
  60. package/dist/endpoint-serve.js +21 -1
  61. package/dist/endpoint-serve.js.map +1 -1
  62. package/dist/endpoint-service.d.ts +1 -1
  63. package/dist/endpoint-service.d.ts.map +1 -1
  64. package/dist/endpoint-service.js +34 -10
  65. package/dist/endpoint-service.js.map +1 -1
  66. package/dist/endpoint-session-rail.d.ts +127 -0
  67. package/dist/endpoint-session-rail.d.ts.map +1 -0
  68. package/dist/endpoint-session-rail.js +325 -0
  69. package/dist/endpoint-session-rail.js.map +1 -0
  70. package/dist/endpoint-session.d.ts +1 -115
  71. package/dist/endpoint-session.d.ts.map +1 -1
  72. package/dist/endpoint-session.js +4 -316
  73. package/dist/endpoint-session.js.map +1 -1
  74. package/dist/endpoint-subjects.d.ts +10 -1
  75. package/dist/endpoint-subjects.d.ts.map +1 -1
  76. package/dist/endpoint-subjects.js +10 -1
  77. package/dist/endpoint-subjects.js.map +1 -1
  78. package/dist/endpoint-verbs.d.ts +1 -2
  79. package/dist/endpoint-verbs.d.ts.map +1 -1
  80. package/dist/endpoint-verbs.js +6 -6
  81. package/dist/endpoint-verbs.js.map +1 -1
  82. package/dist/endpoint.d.ts +169 -15
  83. package/dist/endpoint.d.ts.map +1 -1
  84. package/dist/endpoint.js +491 -43
  85. package/dist/endpoint.js.map +1 -1
  86. package/dist/identity.d.ts +19 -0
  87. package/dist/identity.d.ts.map +1 -1
  88. package/dist/identity.js +12 -0
  89. package/dist/identity.js.map +1 -1
  90. package/dist/index.d.ts +9 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +9 -0
  93. package/dist/index.js.map +1 -1
  94. package/dist/kv-scan.d.ts +105 -0
  95. package/dist/kv-scan.d.ts.map +1 -0
  96. package/dist/kv-scan.js +192 -0
  97. package/dist/kv-scan.js.map +1 -0
  98. package/dist/lease.d.ts +12 -5
  99. package/dist/lease.d.ts.map +1 -1
  100. package/dist/lease.js.map +1 -1
  101. package/dist/lifecycle-saga.d.ts +174 -0
  102. package/dist/lifecycle-saga.d.ts.map +1 -0
  103. package/dist/lifecycle-saga.js +418 -0
  104. package/dist/lifecycle-saga.js.map +1 -0
  105. package/dist/lifecycle-state.d.ts +202 -0
  106. package/dist/lifecycle-state.d.ts.map +1 -0
  107. package/dist/lifecycle-state.js +347 -0
  108. package/dist/lifecycle-state.js.map +1 -0
  109. package/dist/members.d.ts +8 -4
  110. package/dist/members.d.ts.map +1 -1
  111. package/dist/members.js +19 -9
  112. package/dist/members.js.map +1 -1
  113. package/dist/parts.d.ts +13 -0
  114. package/dist/parts.d.ts.map +1 -0
  115. package/dist/parts.js +17 -0
  116. package/dist/parts.js.map +1 -0
  117. package/dist/provision.d.ts +106 -9
  118. package/dist/provision.d.ts.map +1 -1
  119. package/dist/provision.js +506 -110
  120. package/dist/provision.js.map +1 -1
  121. package/dist/schema-profile.d.ts +3 -2
  122. package/dist/schema-profile.d.ts.map +1 -1
  123. package/dist/schema-profile.js +242 -18
  124. package/dist/schema-profile.js.map +1 -1
  125. package/dist/session-browser.d.ts +15 -0
  126. package/dist/session-browser.d.ts.map +1 -0
  127. package/dist/session-browser.js +14 -0
  128. package/dist/session-browser.js.map +1 -0
  129. package/dist/session-terminal-frames.d.ts +36 -0
  130. package/dist/session-terminal-frames.d.ts.map +1 -0
  131. package/dist/session-terminal-frames.js +149 -0
  132. package/dist/session-terminal-frames.js.map +1 -0
  133. package/dist/spaces.d.ts.map +1 -1
  134. package/dist/spaces.js +6 -1
  135. package/dist/spaces.js.map +1 -1
  136. package/dist/streams.d.ts +53 -1
  137. package/dist/streams.d.ts.map +1 -1
  138. package/dist/streams.js +135 -8
  139. package/dist/streams.js.map +1 -1
  140. package/dist/subjects.d.ts +32 -26
  141. package/dist/subjects.d.ts.map +1 -1
  142. package/dist/subjects.js +38 -25
  143. package/dist/subjects.js.map +1 -1
  144. package/dist/types.d.ts +27 -1
  145. package/dist/types.d.ts.map +1 -1
  146. package/package.json +6 -1
@@ -9,7 +9,7 @@
9
9
  * created by exactly one trusted principal (provisioner or the owning infra principal) and the
10
10
  * §13.9 grant rows are generated against these same names and filters.
11
11
  */
12
- import { AckPolicy, DeliverPolicy, RetentionPolicy, StorageType, } from "@nats-io/jetstream";
12
+ import { AckPolicy, DeliverPolicy, DiscardPolicy, RetentionPolicy, StorageType, } from "@nats-io/jetstream";
13
13
  import { nanos } from "@nats-io/transport-node";
14
14
  import { spacePrefix, token, assertInboxConnId } from "./subjects.js";
15
15
  import { endpointToken, assertIdToken, assertGrantId, assertPoolToken, assertLifecycleToken, callerTokens, } from "./endpoint-subjects.js";
@@ -44,6 +44,17 @@ export function retirementFrontierStreams(space) {
44
44
  export function epAuthBucket(space) {
45
45
  return `cotal_auth_${token(space)}`;
46
46
  }
47
+ /** The per-space SESSION ledger store (P2 item 6, §13.6): the `session.<id>` rows the manager's
48
+ * session plane CASes over. DEDICATED — split out of the auth bucket deliberately. KV reads are
49
+ * subject-BLIND (a `STREAM.MSG.GET` on a bucket serves any key, the campaign's known vector class),
50
+ * so co-locating session rows with credentials + gates would let the standing session-ledger cred read
51
+ * the whole control plane. A dedicated bucket makes that blind read STRUCTURALLY confined to session
52
+ * rows and nothing else. `allow_direct=false` for the SAME reason the auth bucket carries it: every
53
+ * ledger fence is a leader-served revision-pinned CAS (the one-use `createIssuing`, the finalize +
54
+ * terminal updates), and Direct Get's follower/mirror reads would defeat read-your-writes (§13.1). */
55
+ export function sessionsBucket(space) {
56
+ return `cotal_sessions_${token(space)}`;
57
+ }
47
58
  // ---- §13.12 retention knobs (documented defaults, overridable per space policy) ----
48
59
  /** EPJ duplicate window: the server MINIMUM (100 ms), set explicitly. A `0` is not accepted
49
60
  * (it normalizes to the 120 s default), and native dedupe is deliberately NOT relied upon —
@@ -70,11 +81,14 @@ export const EP_TIMER_MAX_AGE_MS = 31 * 24 * 60 * 60 * 1000;
70
81
  export const EP_AUTH_MARKER_TTL_MS = 60 * 60 * 1000;
71
82
  /**
72
83
  * Create (idempotently) the §13.12 per-space control-surface resources: the seven JetStream
73
- * streams, the work-pool WorkQueue, and the two KV buckets. Privileged runs at space setup.
74
- * `jsm.streams.add`/`kvm.create` are idempotent for an identical config and FAIL LOUD on a
75
- * config delta, which is wanted: a drifted resource is an operator error, never silently adopted.
84
+ * streams, the work-pool WorkQueue, and the KV buckets (records + auth + the §13.6 session ledger).
85
+ * Privileged — runs at space setup. `jsm.streams.add`/`kvm.create` are idempotent for an identical
86
+ * config and FAIL LOUD on a config delta, which is wanted: a drifted resource is an operator error,
87
+ * never silently adopted.
76
88
  *
77
- * Sessions (`eps`) are deliberately absent: core-only, never captured (§13.12).
89
+ * The session byte SUBJECTS (`eps`) are deliberately absent: core-only, never captured (§13.12).
90
+ * Only the durable `session.<id>` ledger rows are captured — in their own dedicated bucket
91
+ * ({@link createSessionsStore}), never the auth bucket.
78
92
  */
79
93
  export async function createEndpointStreams(jsm, kvm, space, opts = {}) {
80
94
  const p = spacePrefix(space);
@@ -148,24 +162,109 @@ export async function createEndpointStreams(jsm, kvm, space, opts = {}) {
148
162
  storage: StorageType.File,
149
163
  allow_direct: false,
150
164
  });
151
- // EPC — content-addressed contract artifacts: one immutable message per digest subject,
152
- // create-only mediated publication, NO age eviction (artifacts are permanent). allow_direct:
153
- // the subject-scoped last-by-subject read IS the fetch path. Permanence is BROKER-ENFORCED,
154
- // not just configured-by-omission: deny_delete/deny_purge reject the message-delete and purge
155
- // APIs even from a stream-API-holding principal, so a digest subject cannot be emptied and
156
- // re-created through them. Per §13.12 the flags alone are NOT the whole claim: permanence is
157
- // their COMBINATION with the retention floor (no age eviction, no teardown), verify-on-read
158
- // pinning WHAT a subject carries, and stream management held by no profile.
159
- await jsm.streams.add({
160
- name: epcStreamName(space),
161
- subjects: [`${p}.epc.>`],
162
- retention: RetentionPolicy.Limits,
163
- storage: StorageType.File,
164
- allow_direct: true,
165
- deny_delete: true,
166
- deny_purge: true,
167
- });
165
+ await ensureContractStore(jsm, space);
168
166
  await ensureAuthorityStores(jsm, kvm, space);
167
+ // P2 item 6: the DEDICATED §13.6 session ledger bucket. The eps byte SUBJECTS stay core-only and
168
+ // uncaptured (above), but the `session.<id>` ledger rows are a captured authority KV — kept in
169
+ // their own bucket so the manager's standing session-ledger cred's bucket-blind STREAM.MSG.GET reads
170
+ // ONLY session rows (the §13.9 subject-blindness structural fix). Provisioned here so every mesh
171
+ // that ensures the endpoint streams (auth + open both run this at the manager's boot) has it.
172
+ await createSessionsStore(jsm, kvm, space);
173
+ }
174
+ /**
175
+ * Ensure the per-space CONTRACT store (EPC) exists with its normative shape (§13.7/§13.12) —
176
+ * content-addressed artifacts, one immutable message per digest subject, create-only mediated
177
+ * publication, NO age eviction (artifacts are permanent). allow_direct: the subject-scoped
178
+ * last-by-subject read IS the fetch path.
179
+ *
180
+ * PER-SUBJECT IMMUTABILITY is BROKER-ENFORCED, not left to publisher cooperation (the append-shadow
181
+ * blocker, live-confirmed by the panel). The create-only fence `Nats-Expected-Last-Subject-Sequence:
182
+ * 0` is a publisher-SET header the `epc.*` publish grant cannot compel, so a non-cooperative
183
+ * grant-holder could APPEND a second message to an already-published digest subject; `last_by_subj`
184
+ * would then return that shadow and a fail-closed read would make the honest artifact permanently
185
+ * unfetchable (deny_delete/deny_purge block recovery — an operator-reprovision-only DoS, and at
186
+ * §13.11's ep-only cut the SOLE contract path). The store closes this at the SOURCE:
187
+ * `max_msgs_per_subject: 1` + `discard: new` + `discard_new_per_subject: true` makes a second
188
+ * publish to an occupied digest subject BROKER-REJECTED (err 10077) regardless of headers, so a
189
+ * digest subject holds exactly one message forever. `deny_delete`/`deny_purge` then keep that one
190
+ * message from being removed. (The read path additionally defends itself version-agnostically —
191
+ * {@link fetchContractArtifact} prefers the create-only winner over any shadow — so a broker or a
192
+ * legacy stream that lacked the per-subject cap is still safe.)
193
+ *
194
+ * Create-or-verify-AND-harden, safe at every authority-daemon boot (the {@link
195
+ * ensureAuthorityStores} discipline): a fresh space gets the store created with the full shape; a
196
+ * CLEAN pre-existing store (incl. a pre-hardening one from an earlier release, OR the config-A
197
+ * footgun `max_msgs_per_subject:1` + `discard:old` that would DELETE the honest artifact) is UPDATED
198
+ * to the three config-B flags (idempotent, like the records store's rollup/deny update) and then
199
+ * VERIFIED - a shape that cannot be brought to config B FAILS LOUD, never silently adopted.
200
+ *
201
+ * The config-B upgrade ENFORCES per-subject immutability GOING FORWARD; it does NOT heal a shadow
202
+ * that predates it. Applying `max_msgs_per_subject:1` trims each subject to its newest message, so a
203
+ * legacy store that ALREADY holds a shadow (some digest subject with >1 message) would have the
204
+ * honest create-only winner trimmed away and the shadow cemented. Rather than silently cement it,
205
+ * the upgrade REFUSES LOUD on such a store (`messages > num_subjects`), so the operator reprovisions
206
+ * a clean store. This is a narrow guard: a fresh deploy is born at config B and never reaches it.
207
+ *
208
+ * FAIL-LOUD IS THE AGENT'S DEFENSE (critic completeness item): because this verify refuses to serve
209
+ * unless all three config-B flags are present, the manager NEVER serves an un-hardened EPC store —
210
+ * so a shadow-append cannot exist on any store an agent reads. That is why the ordinary agent
211
+ * baseline needs only the subject-scoped `last_by_subj` read (never the bare `next_by_subj` the
212
+ * shadow fallback uses): on every store the manager actually serves, `last_by_subj` always verifies
213
+ * and the fallback never triggers. The {@link fetchContractArtifact} create-only-winner fallback is
214
+ * defense-in-depth for the publisher path (the executor, which holds `next_by_subj`) and for a
215
+ * hypothetical un-hardened store the manager would refuse to serve anyway. On the pinned broker
216
+ * floor (nats-server >= 2.12, well past the 2.9 that added `discard_new_per_subject`) config B always
217
+ * lands; an older broker that ignores the flag is caught here and the daemon fails to start.
218
+ */
219
+ export async function ensureContractStore(jsm, space) {
220
+ const name = epcStreamName(space);
221
+ const subject = `${spacePrefix(space)}.epc.>`;
222
+ const hardening = { max_msgs_per_subject: 1, discard: DiscardPolicy.New, discard_new_per_subject: true };
223
+ if (await jsm.streams.info(name).catch(() => undefined) === undefined) {
224
+ await jsm.streams.add({
225
+ name,
226
+ subjects: [subject],
227
+ retention: RetentionPolicy.Limits,
228
+ storage: StorageType.File,
229
+ allow_direct: true,
230
+ deny_delete: true,
231
+ deny_purge: true,
232
+ ...hardening,
233
+ });
234
+ }
235
+ else {
236
+ // Upgrade path: an EPC stream from a pre-hardening release lacks the per-subject cap. Add it
237
+ // idempotently (a live update of max_msgs_per_subject + discard settings is allowed and, tested,
238
+ // leaves a CLEAN store's artifacts intact). A stream that WON'T take the update surfaces at the
239
+ // verify below.
240
+ const info = await jsm.streams.info(name);
241
+ const cur = info.config;
242
+ if (cur.max_msgs_per_subject !== 1 || cur.discard !== DiscardPolicy.New || cur.discard_new_per_subject !== true) {
243
+ // HEAL-OR-FAIL, never cement (critic upgrade-trim residual): applying max_msgs_per_subject:1
244
+ // TRIMS each subject to its NEWEST message. On a CLEAN legacy store (create-only, ≤1 message
245
+ // per subject) that trims nothing. But if a legacy store ALREADY holds a shadow (a raw append
246
+ // left a subject with >1 message, from before this hardening existed), the trim would keep the
247
+ // NEWEST (the shadow) and DELETE the honest create-only winner - cementing the shadow
248
+ // permanently. `messages > num_subjects` is exactly "some subject has more than one message",
249
+ // so refuse the upgrade LOUD there: the operator reprovisions a clean store rather than the
250
+ // daemon silently trim-cementing a pre-existing shadow. (Fresh deploys are born at config B and
251
+ // never reach this; the check only guards a legacy store that was shadowed before its first
252
+ // config-B boot.)
253
+ const { messages, num_subjects } = info.state;
254
+ if (messages > 0 && (num_subjects === undefined || messages > num_subjects))
255
+ throw new Error(`the contract store ${name} is a pre-hardening stream that cannot be proven clean (${messages} messages across ${String(num_subjects)} subjects) - a subject holding more than one message means a shadow-append predates this immutability upgrade, and applying the per-subject cap would TRIM to the newest (shadow) message and delete the honest artifact; reprovision a clean store rather than cement the shadow (SPEC 13.7/13.12)`);
256
+ await jsm.streams.update(name, { ...cur, ...hardening });
257
+ }
258
+ }
259
+ const cfg = (await jsm.streams.info(name)).config;
260
+ if (cfg.allow_direct !== true || cfg.deny_delete !== true || cfg.deny_purge !== true)
261
+ throw new Error(`the contract store ${name} has a drifted shape (allow_direct=${String(cfg.allow_direct)}, deny_delete=${String(cfg.deny_delete)}, deny_purge=${String(cfg.deny_purge)}); an authority store is never silently adopted - reprovision it (SPEC 13.12)`);
262
+ if (cfg.max_msgs_per_subject !== 1 || cfg.discard !== DiscardPolicy.New || cfg.discard_new_per_subject !== true)
263
+ throw new Error(`the contract store ${name} does not enforce per-subject immutability (max_msgs_per_subject=${String(cfg.max_msgs_per_subject)}, discard=${String(cfg.discard)}, discard_new_per_subject=${String(cfg.discard_new_per_subject)}); a digest subject must hold exactly one broker-immutable message or an append-shadow can DoS the store - reprovision it (SPEC 13.7/13.12)`);
264
+ if (!Array.isArray(cfg.subjects) || cfg.subjects.length !== 1 || cfg.subjects[0] !== subject)
265
+ throw new Error(`the contract store ${name} does not carry exactly the subject ${subject} (got ${JSON.stringify(cfg.subjects)}); a stream that captures anything else is not the contract store - reprovision it (SPEC 13.12)`);
266
+ if (cfg.storage !== "file")
267
+ throw new Error(`the contract store ${name} has storage ${JSON.stringify(cfg.storage)}, not file; a non-durable contract store forgets permanent artifacts on restart - reprovision it (SPEC 13.12)`);
169
268
  }
170
269
  /**
171
270
  * Ensure the two per-space AUTHORITY stores exist with their normative shape (§13.12):
@@ -209,6 +308,27 @@ export async function ensureAuthorityStores(jsm, kvm, space) {
209
308
  throw new Error(`the auth store ${authBucket} has a drifted shape (allow_direct=${String(authCfg.allow_direct)}, allow_msg_ttl=${String(authCfg.allow_msg_ttl)}); an authority store is never silently adopted - reprovision it (SPEC 13.12)`);
210
309
  assertAuthorityStoreBinding(authCfg, authBucket);
211
310
  }
311
+ /** Create (idempotently) the per-space SESSION ledger store (P2 item 6, §13.6): the DEDICATED
312
+ * {@link sessionsBucket} the manager's session plane CASes `session.<id>` rows over. Kept OUT of
313
+ * {@link ensureAuthorityStores} deliberately — the auth path never touches session rows, and the
314
+ * manager provisions this store from its own boot — but it wears the SAME authority-store shape as
315
+ * the auth bucket: `allow_direct=false` (every ledger fence is a leader-served revision-pinned CAS,
316
+ * and Direct Get's follower reads would defeat read-your-writes, §13.1) plus the per-key TTL
317
+ * machinery (a terminal/expired session row can carry a delete-marker TTL). The dedication is the
318
+ * security substance: the standing session-ledger cred's `kv.get` is a bucket-blind body-selected read,
319
+ * and a bucket holding ONLY `session.>` rows makes that read expose nothing but session state — the
320
+ * structural fix for the §13.9 subject-blindness a shared auth bucket would carry (creds + gates).
321
+ * Create-or-verify, safe at every manager boot; a drifted store FAILS LOUD (§13.12). */
322
+ export async function createSessionsStore(jsm, kvm, space) {
323
+ const bucket = sessionsBucket(space);
324
+ const stream = `KV_${bucket}`;
325
+ if (await jsm.streams.info(stream).catch(() => undefined) === undefined)
326
+ await kvm.create(bucket, { allow_direct: false, markerTTL: EP_AUTH_MARKER_TTL_MS });
327
+ const cfg = (await jsm.streams.info(stream)).config;
328
+ if (cfg.allow_direct !== false || cfg.allow_msg_ttl !== true)
329
+ throw new Error(`the sessions store ${bucket} has a drifted shape (allow_direct=${String(cfg.allow_direct)}, allow_msg_ttl=${String(cfg.allow_msg_ttl)}); an authority store is never silently adopted - reprovision it (SPEC 13.12)`);
330
+ assertAuthorityStoreBinding(cfg, bucket);
331
+ }
212
332
  /** The store-BINDING half of the verify (SPEC 13.12): a stream wearing an authority bucket's name
213
333
  * must BE that KV bucket — exactly the one `$KV.<bucket>.>` subject (an extra captured subject
214
334
  * would put foreign bodies inside every body-selected MSG.GET grant on the stream) and durable
@@ -712,6 +832,9 @@ export function commitPrincipalGrants(space, endpoint, connId) {
712
832
  const p = spacePrefix(space);
713
833
  const records = recordsBucket(space);
714
834
  const publish = [
835
+ // ONE terminal subject per goal (SPEC:1394, the §13.9 "Result/receipt/terminal/resume facts"
836
+ // row): the exact-arity `…result` leaf, never an `…result.*` epoch-scoped variant — a per-epoch
837
+ // subject hid a legitimate pre-restart winner from every reader.
715
838
  `${p}.epf.${e}.goal.*.*.*.*.result`,
716
839
  `${p}.epf.${e}.eff.>`,
717
840
  `${p}.epf.${e}.receipt.>`,
@@ -726,6 +849,84 @@ export function commitPrincipalGrants(space, endpoint, connId) {
726
849
  ];
727
850
  return { publish, subscribe: [`_INBOX_${assertInboxConnId(connId)}.>`] };
728
851
  }
852
+ /** The SELF-MEDIATED GOAL-WRITER profile (P2 item 2 "spawn becomes an action"): a standing
853
+ * connection that both BINDS a goal at accept AND COMMITS its terminal, for an endpoint that
854
+ * accepts action goals INLINE on its ephemeral serve handler (Model B) rather than through a
855
+ * separate canonicalizer + effects executor. It is exactly {@link commitPrincipalGrants} (the
856
+ * `goal.*.*.*.*.result` terminal + `$KV.<records>.goal.<e>.>` record write + the two leader-served
857
+ * `STREAM.MSG.GET` fencing reads the substrate uses) PLUS the ONE row commitPrincipalGrants
858
+ * deliberately leaves to the canonicalizer — the goal `.bind` leaf
859
+ * (`epf.<e>.goal.*.*.*.*.bind`) — so this single principal owns the whole `accepted → terminal`
860
+ * goal-fact chain of its OWN endpoint. The endpoint's SERVE credential
861
+ * ({@link import("./endpoint-grants.js").epServePublishRows}) holds NONE of these: a serve
862
+ * connection is broker-DENIED every goal write, which is the item-2 privilege separation (the
863
+ * dedicated writer is minted on a distinct connection, the serve rails stay serve-only). All of
864
+ * commitPrincipalGrants' D32 residuals carry unchanged (payload-blind create-only publish; raw
865
+ * `$KV` cannot enforce the per-key CAS the substrate layers on; the two body-selected
866
+ * `STREAM.MSG.GET` reads expose EPF + records space-wide). The reply inbox is connection-scoped
867
+ * (`_INBOX_<connId>.>`). The `eff`/`wrk`/`receipt`/`cp`/`lease` families in the commit-principal
868
+ * base are inert for a goal-only endpoint (the manager writes none) but are the commit-principal
869
+ * profile's standard ceiling; a tighter goal-only ceiling is a follow-up if the panel prefers it. */
870
+ export function goalWriterGrants(space, endpoint, connId) {
871
+ const base = commitPrincipalGrants(space, endpoint, connId);
872
+ const e = endpointToken(endpoint);
873
+ const bindLeaf = `${spacePrefix(space)}.epf.${e}.goal.*.*.*.*.bind`;
874
+ // must-5 Q-B — the reconcile index: the goal-writer records each accepted goal under
875
+ // `goalidx.<e>.<caller triple>.<goalId>` (create-only) before the bind and deletes it at the
876
+ // terminal, so a successor incarnation can settle orphaned goals. Key-pinned to THIS endpoint's
877
+ // index subtree; the goal-writer holds NO records CONSUMER.CREATE (the boot sweep enumerates the
878
+ // index over the PROVISIONER, never this standing connection).
879
+ const indexRow = `$KV.${recordsBucket(space)}.goalidx.${e}.>`;
880
+ // must-5 (a) — the own-gate currency belt: the manager reads its OWN issuance gate
881
+ // (`epgate.<e>.<iid>`) over this connection before the first-terminal-fact CAS and skips a
882
+ // superseded commit. The auth store is `allow_direct=false`, so the read is a body-selected
883
+ // leader `STREAM.MSG.GET` that cannot be key-pinned to the single gate key — the SAME residual
884
+ // class the `endpoint-serve-executor` carries (reads any auth-bucket row = gate + ledger
885
+ // metadata, never bearer bytes), here on a standing rather than one-shot connection. The manager
886
+ // reads ONLY `epgate.<e>.<iid>`; (a) is the fast-fail belt, (b) barrier-revoke is the durable fence.
887
+ const gateRead = `${JSAPI}.STREAM.MSG.GET.KV_${epAuthBucket(space)}`;
888
+ return { publish: [bindLeaf, indexRow, gateRead, ...base.publish], subscribe: base.subscribe };
889
+ }
890
+ /** The manager's SESSION-LEDGER rows (P2 item 6): the standing connection that owns the §13.6
891
+ * session ledger and NOTHING else. It holds NO session rail — not the wildcard it used to hold,
892
+ * not an exact one. That is the whole point of the split.
893
+ *
894
+ * §13.6 gives the ledger a job the byte rails do not have: it is "a DURABLE named authority that
895
+ * survives the serving endpoint", the thing that still knows what to revoke after the endpoint
896
+ * serving a session is gone. So it is standing and renewable, while the rails it records are
897
+ * per-session, exact-subject, and die with their session ({@link import("./provision.js").Profile}
898
+ * `session-serving` / `session-caller`). An earlier revision fused the two into one standing
899
+ * credential carrying `eps.<endpoint>.*.<epoch>.{in,out}`, which contradicted §13.9:2526 ("no
900
+ * standing EPS grant exists on either side") and let one credential read and write every live
901
+ * session's bytes at that epoch. Splitting on the lifetime boundary is what removes the wildcard:
902
+ * the standing half no longer has rails to widen.
903
+ *
904
+ * Its store is the DEDICATED {@link sessionsBucket}, NOT the auth bucket. The write is
905
+ * `$KV.<sessions>.session.*` (create-only CAS + revision-pinned update; `sessionLedgerKey` is the
906
+ * single-token `session.<id>`). The read is a bucket-blind leader `STREAM.MSG.GET` (allow_direct=
907
+ * false, so `kv.get` is a body-selected read that cannot be key-pinned) — but the dedicated bucket
908
+ * holds ONLY `session.>` rows, so that blind read exposes nothing but session ledger state,
909
+ * structurally closing the §13.9 subject-blindness the auth bucket carries (creds + gates). The
910
+ * reply inbox is connection-scoped. NO auth-bucket, records-bucket, or messaging-plane grant.
911
+ *
912
+ * NAMED RESIDUAL: `session.*` is one token wide and carries no endpoint component, because a
913
+ * `sessionId` is an opaque unguessable token with no endpoint inside it. So this credential can
914
+ * read and CAS any session row in its space, including another endpoint's. That was equally true
915
+ * of the credential it replaces; it is not a regression, and it is confined to ledger STATE — row
916
+ * state and credential ids — never to session bytes, which now require a per-session credential
917
+ * this profile cannot mint. */
918
+ export function sessionLedgerGrants(space, connId) {
919
+ const SESS = sessionsBucket(space);
920
+ return {
921
+ publish: [
922
+ `$KV.${SESS}.session.*`, // ledger create/update — single-token key (`session.<id>`)
923
+ `${JSAPI}.STREAM.MSG.GET.KV_${SESS}`, // kv.get: leader-served body-selected read, confined to the sessions bucket
924
+ `${JSAPI}.STREAM.INFO.KV_${SESS}`, // Kvm bind probe (§13.12)
925
+ `${JSAPI}.INFO`, // JS-API context info (KV client)
926
+ ],
927
+ subscribe: [`_INBOX_${assertInboxConnId(connId)}.>`], // connection-scoped reply inbox
928
+ };
929
+ }
729
930
  /** The CONTRACT PUBLISHER principal's rows (§13.9 matrix "Contract-artifact publication" +
730
931
  * the trusted-infra half of "Contract-artifact read"): publish `epc.*` (the digest-hex is ONE
731
932
  * subject token; create-only rides `Nats-Expected-Last-Subject-Sequence: 0` at the typed path,
@@ -737,10 +938,16 @@ export function commitPrincipalGrants(space, endpoint, connId) {
737
938
  * connection-scoped (`_INBOX_<connId>.>`, never the account-wide default).
738
939
  *
739
940
  * D32 residuals, EXPLICIT: (1) the `epc.*` publish is payload-blind — a compromised publisher
740
- * can flood NEW digest subjects with garbage artifacts (verify-on-read refuses to SERVE
741
- * non-canonical or digest-mismatched bytes, and an existing digest subject is CAS-protected,
742
- * so it can waste storage but never corrupt or replace a published artifact); (2) the raw JS
743
- * API request carries a caller-selected reply subject (the same confused-deputy injection
941
+ * can publish garbage artifacts at NEW (previously-unused) digest subjects (verify-on-read refuses
942
+ * to SERVE non-canonical or digest-mismatched bytes, so this is a bounded storage flood carrying
943
+ * no authority). It can NOT overwrite, shadow, or replace an EXISTING published artifact: the EPC
944
+ * store's shape ({@link ensureContractStore}: `max_msgs_per_subject:1` + discard-new-per-subject)
945
+ * makes a second publish to an occupied digest subject broker-REJECTED regardless of the
946
+ * create-only header, so per-subject immutability is broker-enforced, not publisher-cooperative.
947
+ * (Earlier revisions relied on the cooperative create-only header alone and a fail-closed read,
948
+ * which the panel's live repro showed a non-cooperative publisher could defeat by raw append — a
949
+ * permanent shadow-DoS; the stream shape + the create-only-winner read fallback close it.) (2) the
950
+ * raw JS API request carries a caller-selected reply subject (the same confused-deputy injection
744
951
  * class as every API-holding profile). */
745
952
  export function contractPublisherGrants(space, connId) {
746
953
  const publish = [
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-binding.js","sourceRoot":"","sources":["../src/endpoint-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,GAIZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,YAAY,GAEb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,4FAA4F;AAC5F,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAErE,+EAA+E;AAC/E,MAAM,UAAU,aAAa,CAAC,KAAa,IAAY,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,gBAAgB,CAAC,KAAa,IAAY,OAAO,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,MAAM,UAAU,aAAa,CAAC,KAAa,IAAY,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa,IAAY,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa,IAAY,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa,IAAY,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtF;;;;;;;qFAOqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;;oFAGoF;AACpF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,cAAc,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,uFAAuF;AAEvF;;;iGAGiG;AACjG,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;4CAE4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5D,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD;8DAC8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD;;2DAE2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5D;;;kDAGkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAgBpD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAqB,EACrB,GAAQ,EACR,KAAa,EACb,OAA8B,EAAE;IAEhC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,6FAA6F;IAC7F,+FAA+F;IAC/F,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC;QACnE,gBAAgB,EAAE,KAAK,CAAC,uBAAuB,CAAC;KACjD,CAAC,CAAC;IACH,sFAAsF;IACtF,uFAAuF;IACvF,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,YAAY,EAAE,IAAI;QAClB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,yBAAyB;IACzB,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC;KAC1D,CAAC,CAAC;IACH,wFAAwF;IACxF,4FAA4F;IAC5F,wFAAwF;IACxF,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAC7B,QAAQ,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvC,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,qBAAqB,CAAC;KAC9D,CAAC,CAAC;IACH,4EAA4E;IAC5E,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,qBAAqB,CAAC;KAC9D,CAAC,CAAC;IACH,2FAA2F;IAC3F,2FAA2F;IAC3F,yFAAyF;IACzF,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,mBAAmB,CAAC;QAC7D,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,mBAAmB,EAAE,IAAI;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC;KAC1D,CAAC,CAAC;IACH,0FAA0F;IAC1F,uFAAuF;IACvF,4FAA4F;IAC5F,8FAA8F;IAC9F,uFAAuF;IACvF,+DAA+D;IAC/D,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,wFAAwF;IACxF,6FAA6F;IAC7F,4FAA4F;IAC5F,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,4FAA4F;IAC5F,4EAA4E;IAC5E,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,SAAS,EAAE,eAAe,CAAC,MAAM;QACjC,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAqB,EAAE,GAAQ,EAAE,KAAa;IACxF,8FAA8F;IAC9F,iGAAiG;IACjG,2FAA2F;IAC3F,+FAA+F;IAC/F,gGAAgG;IAChG,4CAA4C;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,MAAM,YAAY,EAAE,CAAC;IAC1C,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9E,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,IAAI,SAAS,CAAC,iBAAiB,KAAK,KAAK,IAAI,SAAS,CAAC,WAAW,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI;QAC7I,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,sCAAsC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,uBAAuB,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,+EAA+E,CAAC,CAAC;IAC5V,2BAA2B,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS;QACzE,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAoD,CAAC;IAC1G,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI;QAClE,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,sCAAsC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,+EAA+E,CAAC,CAAC;IACjP,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;;+EAG+E;AAC/E,SAAS,2BAA2B,CAAC,GAAiB,EAAE,MAAc;IACpE,MAAM,QAAQ,GAAG,OAAO,MAAM,IAAI,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC3F,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,uCAAuC,QAAQ,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,6FAA6F,CAAC,CAAC;IACxN,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM;QACxB,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,mHAAmH,CAAC,CAAC;AACvM,CAAC;AAED,+FAA+F;AAE/F;4CAC4C;AAC5C,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAY;IACxD,OAAO,QAAQ,aAAa,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,UAAU,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAClC,CAAC;AAED;;;;;gEAKgE;AAChE,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,IAAY;IAC7D,OAAO,QAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED;0EAC0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,QAAgB;IACjE,OAAO,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,QAAgB;IAC7D,OAAO,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;uFAMuF;AACvF,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,QAAgB,EAAE,OAAe,EAAE,CAAS;IAC1F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,EAAE,CAAC,CAAC;IAC1H,OAAO,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACtG,CAAC;AAED;wGACwG;AACxG,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,OAAe,EAAE,CAAS;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,EAAE,CAAC,CAAC;IAC3H,OAAO,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAgBD,MAAM,MAAM,GAAG,IAAI,OAAO,EAAuC,CAAC;AAClE,SAAS,MAAM,CAAC,MAAc,EAAE,GAA4B;IAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,YAAa,EAAE,MAAM,EAAE,GAAG,CAAC,cAAe,EAAE,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAA4B,EAAE,IAAY;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,2FAA2F,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/J,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;IACjM,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;QACzE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,2FAA2F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,4CAA4C,CAAC,CAAC;IAC9T,wFAAwF;IACxF,+FAA+F;IAC/F,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oHAAoH,CAAC,CAAC;AACjJ,CAAC;AAED;6FAC6F;AAC7F,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,QAAgB,EAChB,OAAuD,EAAE;IAEzD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;QACpC,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,IAAI;QACxE,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;QACjC,eAAe,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,QAAgB,EAChB,OAAuD,EAAE;IAEzD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC;QACtC,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,QAAQ;QAC5E,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;QACjC,eAAe,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;;;;iGAKiG;AACjG,MAAM,UAAU,0BAA0B,CACxC,KAAa,EACb,GAAkB,EAClB,OAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;QAClD,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE;QACxD,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;qFAEqF;AACrF,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,OAA+B,EAAE;IAEjC,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;QACrC,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACvC,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,uBAAuB;QAC5D,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;qCAIqC;AACrC,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,QAAgB,EAChB,IAAY,EACZ,OAA+B,EAAE;IAEjC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;QACzC,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI;QACjG,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,4FAA4F;QAC5F,6FAA6F;QAC7F,2FAA2F;QAC3F,2FAA2F;QAC3F,0FAA0F;QAC1F,mCAAmC;QACnC,WAAW,EAAE,CAAC,CAAC;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;qEAEqE;AACrE,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,QAAgB,EAChB,MAAgB,EAChB,OAA+B,EAAE;IAEjC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;QACzD,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,QAAQ,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAC9G,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,QAAgB,EAChB,MAAgB,EAChB,OAA+B,EAAE;IAEjC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;QACrD,cAAc,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAC/G,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;2DAO2D;AAC3D,SAAS,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY;IAClE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1H,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,sDAAsD;QAC/G,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC;IACjK,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;sFAIsF;AACtF,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,IAAwF,EACxF,OAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC/F,2FAA2F;IAC3F,4FAA4F;IAC5F,kDAAkD;IAClD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,oDAAoD,CAAC,CAAC;IAC1P,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAClC,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QACnF,cAAc,EAAE,IAAI,CAAC,OAAO;QAC5B,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;;2DAK2D;AAC3D,MAAM,oBAAoB,GAAgC,IAAI,GAAG,CAC/D,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAClE,CAAC;AAEF;;;0EAG0E;AAC1E,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,IAAsE,EACtE,OAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,wFAAwF;IACxF,yFAAyF;IACzF,IAAI,IAAI,KAAK,GAAG;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,iFAAiF,CAAC,CAAC;IAC1J,gGAAgG;IAChG,8FAA8F;IAC9F,+FAA+F;IAC/F,iGAAiG;IACjG,+FAA+F;IAC/F,8FAA8F;IAC9F,gGAAgG;IAChG,8FAA8F;IAC9F,sDAAsD;IACtD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzH,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,cAAc,0KAA0K,CAAC,CAAC;QAC1V,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iJAAiJ,CAAC,CAAC;IAC1P,CAAC;IACD,kGAAkG;IAClG,iGAAiG;IACjG,8FAA8F;IAC9F,iGAAiG;IACjG,yFAAyF;IACzF,4FAA4F;IAC5F,4FAA4F;IAC5F,gFAAgF;IAChF,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,gGAAgG;QAChG,iGAAiG;QACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;QAChF,IAAI,YAAY;YACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,wFAAwF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACzS,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO;YACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,OAAO,0LAA0L,CAAC,CAAC;IAC9U,CAAC;IACD,OAAO,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;QACxC,YAAY,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QACrE,cAAc,EAAE,IAAI,CAAC,OAAO;QAC5B,UAAU,EAAE,SAAS,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QACzC,cAAc,EAAE,aAAa,CAAC,GAAG;KAClC,CAAC,CAAC;AACL,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,mBAAmB,CAAC,KAAa,IAAY,OAAO,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnG,sGAAsG;AACtG,8FAA8F;AAC9F,gGAAgG;AAChG,8FAA8F;AAC9F,+FAA+F;AAC/F,+EAA+E;AAE/E,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB;;;8FAG8F;AAC9F,SAAS,eAAe,CAAC,CAAS,EAAE,IAAY;IAC9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC;IAClH,OAAO,CAAC,CAAC;AACX,CAAC;AACD;;;wEAGwE;AACxE,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAY;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,yBAAyB;QAClF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC;IACzJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAA4B;IACpE,4FAA4F;IAC5F,4FAA4F;IAC5F,6DAA6D;IAC7D,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,8FAA8F;IAC9F,wCAAwC;IACxC,OAAO,GAAG,KAAK,oBAAoB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,CAAC;AAChM,CAAC;AACD,SAAS,eAAe,CAAC,MAAc,EAAE,OAAe;IACtD,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC1C,OAAO;QACL,GAAG,KAAK,kBAAkB,MAAM,IAAI,OAAO,EAAE;QAC7C,GAAG,KAAK,sBAAsB,MAAM,IAAI,OAAO,EAAE;QACjD,WAAW,MAAM,IAAI,OAAO,IAAI;KACjC,CAAC;AACJ,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAc,EAAE,OAAe;IACvD,OAAO,GAAG,KAAK,oBAAoB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,YAAa,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;;;;wEASwE;AACxE,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,QAAgB;IACrE,OAAO;QACL,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,QAAQ,CAAC,IAAI;QACxD,GAAG,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;iGACiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,OAAO,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,GAAkB;IAClE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,YAAa,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,YAAa,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;uGACuG;AACvG,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB,EAAE,IAAY;IAC/E,OAAO,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;4FAC4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAA4B;IAC3E,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACnF,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACnD,CAAC;AAKD;;;mGAGmG;AACnG,MAAM,UAAU,yBAAyB,CAAC,QAA6B;IACrE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,YAAa,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA+BuE;AACvE,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,QAAgB,EAAE,MAAc;IACrF,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;IACjE,MAAM,OAAO,GAAG;QACd,WAAW;QACX,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACtC,GAAG,KAAK,mBAAmB,MAAM,EAAE;QACnC,GAAG,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,EAAE;QACjD,GAAG,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,EAAE;QACjD,GAAG,KAAK,gBAAgB,MAAM,EAAE;QAChC,GAAG,KAAK,OAAO;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,UAAU,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;6FAc6F;AAC7F,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAe,EAAE,MAAc;IACtG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,uIAAuI,CAAC,CAAC;IAC3J,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACjF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,UAAU,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;4FAuB4F;AAC5F,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,QAAgB,EAAE,MAAc;IACnF,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,QAAQ,CAAC,sBAAsB;QACnC,GAAG,CAAC,QAAQ,CAAC,QAAQ;QACrB,GAAG,CAAC,QAAQ,CAAC,YAAY;QACzB,GAAG,CAAC,QAAQ,CAAC,QAAQ;QACrB,GAAG,CAAC,QAAQ,CAAC,OAAO;QACpB,OAAO,OAAO,SAAS,CAAC,IAAI;QAC5B,OAAO,OAAO,OAAO,CAAC,IAAI;QAC1B,OAAO,OAAO,UAAU,CAAC,IAAI;QAC7B,GAAG,KAAK,mBAAmB,aAAa,CAAC,KAAK,CAAC,EAAE;QACjD,GAAG,KAAK,mBAAmB,mBAAmB,CAAC,KAAK,CAAC,EAAE;QACvD,GAAG,KAAK,OAAO;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,UAAU,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;2CAe2C;AAC3C,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,MAAc;IACnE,MAAM,OAAO,GAAG;QACd,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ;QAC7B,GAAG,KAAK,eAAe,aAAa,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ;QACzE,GAAG,KAAK,OAAO;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,UAAU,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"endpoint-binding.js","sourceRoot":"","sources":["../src/endpoint-binding.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,30 @@ export declare function publishContractArtifact(ctx: ContractStoreContext, bytes
46
46
  }>;
47
47
  /** Fetch one artifact by digest (`undefined` = not published). VERIFY-ON-READ is unconditional
48
48
  * and TWO-PROOF: the fetched bytes must recompute the digest AND be strict canonical JSON —
49
- * content addressing is the tamper boundary and a garbled store never serves (§13.7). */
49
+ * content addressing is the tamper boundary (§13.7).
50
+ *
51
+ * APPEND-SHADOW DEFENSE (critic, live-confirmed): the `epc.*` publish grant is a raw JS publish;
52
+ * the create-only fence is a publisher-SET header (`Nats-Expected-Last-Subject-Sequence: 0`) the
53
+ * grant cannot compel, so a non-cooperative grant-holder can APPEND garbage at an
54
+ * already-published digest subject. `last_by_subj` would then return that shadow and a fail-closed
55
+ * read would make the honest artifact permanently unfetchable (a total, operator-recovery-only
56
+ * DoS once ep is the sole contract path). The subject IS the content digest and honest
57
+ * publication is create-only, so the FIRST message at the subject is the unique verifying
58
+ * artifact and every shadow is a strictly later append. The read therefore verifies `last_by_subj`
59
+ * (the O(1) fast path, correct whenever nobody shadowed) and, on a verify-miss, FALLS BACK to the
60
+ * create-only winner (`next_by_subj` from the stream start) and verifies THAT — so a shadow-append
61
+ * is defeated by the reader, never relying on publisher cooperation. Only when NEITHER the last nor
62
+ * the first message verifies is the store genuinely corrupt (fail loud). Pre-emptive garbage
63
+ * BEFORE the honest publish is the already-loud case: the honest create-only publish then loses at
64
+ * registration, so there is no honest artifact to recover.
65
+ *
66
+ * GRANT NOTE (critic completeness item): the fallback issues `next_by_subj`, which rides the bare
67
+ * `$JS.API.DIRECT.GET.<stream>` form — the executor publisher holds it, the ordinary agent baseline
68
+ * does NOT (it holds only the subject-scoped `last_by_subj`, per the D32 read-grant bound). Sound
69
+ * because {@link ensureContractStore} fails loud unless the store is config-B immutable, so the
70
+ * manager never serves a store where an agent's `last_by_subj` could return a shadow — the fallback
71
+ * never triggers on the agent path. Widening the agent grant to the bare form is unnecessary (and
72
+ * would relax the D32 bound for no gain). */
50
73
  export declare function fetchContractArtifact(ctx: ContractStoreContext, digestHex: string): Promise<Uint8Array | undefined>;
51
74
  /** The §13.7 closure MANIFEST artifact: contract identity is THIS artifact's digest (the
52
75
  * closure digest), never the root document digest alone. Digest fields carry the one scalar
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-contract-store.d.ts","sourceRoot":"","sources":["../src/endpoint-contract-store.ts"],"names":[],"mappings":"AAmCA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOtF,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,QAAa,CAAC;AACtD,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,QAAc,CAAC;AACtD,uEAAuE;AACvE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAIjD;;;;4FAI4F;AAC5F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAQD;;wEAEwE;AACxE,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAU3G;AAWD;;0FAE0F;AAC1F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;0FAC0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;yEACyE;AACzE,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAGzE;AAED;;;;kEAIkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAarF;AAED;;;;yFAIyF;AACzF,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB9C;AAED;;0FAE0F;AAC1F,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,oBAAoB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqBjC;AAID;;4BAE4B;AAC5B,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,MAAM,CAAC;IACb;8FAC0F;IAC1F,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAeD;;;2DAG2D;AAC3D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,uBAAuB,CAIpH;AAyBD;8BAC8B;AAC9B,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,oBAAoB,EACzB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAKrD;AAED;;;;;;;;;;oEAUoE;AACpE,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,oBAAoB,EACzB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,EAC/D,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CAAC,CAoFpF"}
1
+ {"version":3,"file":"endpoint-contract-store.d.ts","sourceRoot":"","sources":["../src/endpoint-contract-store.ts"],"names":[],"mappings":"AAmCA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOtF,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,QAAa,CAAC;AACtD,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,QAAc,CAAC;AACtD,uEAAuE;AACvE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAIjD;;;;4FAI4F;AAC5F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAQD;;wEAEwE;AACxE,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAa3G;AAWD;;0FAE0F;AAC1F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;0FAC0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;yEACyE;AACzE,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAGzE;AAED;;;;kEAIkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAarF;AAED;;;;yFAIyF;AACzF,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CA8B9C;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;8CAyB8C;AAC9C,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,oBAAoB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA2BjC;AAID;;4BAE4B;AAC5B,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,MAAM,CAAC;IACb;8FAC0F;IAC1F,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAeD;;;2DAG2D;AAC3D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,uBAAuB,CAIpH;AAyBD;8BAC8B;AAC9B,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,oBAAoB,EACzB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAKrD;AAED;;;;;;;;;;oEAUoE;AACpE,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,oBAAoB,EACzB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,EAC/D,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CAAC,CAoFpF"}
@@ -60,7 +60,10 @@ export async function contractStoreContext(nc, space) {
60
60
  if (typeof space !== "string" || space.length === 0)
61
61
  throw new EpEnvelopeError("failed-precondition", "a contract-store context needs a space");
62
62
  const js = jetstream(nc);
63
- const jsm = await jetstreamManager(nc);
63
+ // checkAPI:false - the manager construction otherwise probes `$JS.API.INFO`, a grant the
64
+ // minimal fetch-only callers (operator instruments: Direct Get + publish rows only) do not and
65
+ // should not hold; every real read/publish below still fails loud on its own denial.
66
+ const jsm = await jetstreamManager(nc, { checkAPI: false });
64
67
  const ctx = Object.freeze({ space });
65
68
  STORE_RESOURCES.set(ctx, { js, jsm });
66
69
  return ctx;
@@ -151,7 +154,12 @@ export async function publishContractArtifact(ctx, bytes) {
151
154
  }
152
155
  catch (e) {
153
156
  const code = e?.code;
154
- if (code !== 10071 && code !== 10164)
157
+ // A publish to an ALREADY-OCCUPIED digest subject loses idempotently: the create-only header
158
+ // mismatch (10071/10164) OR — under the store's per-subject-immutability shape
159
+ // (ensureContractStore: max_msgs_per_subject:1 + discard-new) — the broker's per-subject reject
160
+ // (10077), which fires when a second publish reaches an occupied subject. All three mean "this
161
+ // digest is already published"; anything else is a real infra error.
162
+ if (code !== 10071 && code !== 10164 && code !== 10077)
155
163
  throw e;
156
164
  // The subject is the digest: a prior write with this address holds these bytes (verified
157
165
  // on fetch). The loss is idempotent; an unreadable prior write is loud.
@@ -161,37 +169,81 @@ export async function publishContractArtifact(ctx, bytes) {
161
169
  return { digestHex, won: false };
162
170
  }
163
171
  }
172
+ /** Prove one fetched message IS the artifact for `digestHex` at `subject`: within the document
173
+ * bound, recomputes its digest, and strict canonical JSON. `undefined` (never a throw) when it
174
+ * does not verify — the caller decides whether a miss is fatal or a fallback. */
175
+ function verifyStored(data, digestHex, subject) {
176
+ if (data.length > CONTRACT_ARTIFACT_MAX_BYTES)
177
+ return undefined; // an oversize plant never serves (distsys 8dcad72 M2)
178
+ if (contractArtifactDigestHex(data) !== digestHex)
179
+ return undefined;
180
+ try {
181
+ assertCanonicalArtifactBytes(data, `the artifact at ${subject}`);
182
+ }
183
+ catch {
184
+ return undefined;
185
+ }
186
+ return data;
187
+ }
164
188
  /** Fetch one artifact by digest (`undefined` = not published). VERIFY-ON-READ is unconditional
165
189
  * and TWO-PROOF: the fetched bytes must recompute the digest AND be strict canonical JSON —
166
- * content addressing is the tamper boundary and a garbled store never serves (§13.7). */
190
+ * content addressing is the tamper boundary (§13.7).
191
+ *
192
+ * APPEND-SHADOW DEFENSE (critic, live-confirmed): the `epc.*` publish grant is a raw JS publish;
193
+ * the create-only fence is a publisher-SET header (`Nats-Expected-Last-Subject-Sequence: 0`) the
194
+ * grant cannot compel, so a non-cooperative grant-holder can APPEND garbage at an
195
+ * already-published digest subject. `last_by_subj` would then return that shadow and a fail-closed
196
+ * read would make the honest artifact permanently unfetchable (a total, operator-recovery-only
197
+ * DoS once ep is the sole contract path). The subject IS the content digest and honest
198
+ * publication is create-only, so the FIRST message at the subject is the unique verifying
199
+ * artifact and every shadow is a strictly later append. The read therefore verifies `last_by_subj`
200
+ * (the O(1) fast path, correct whenever nobody shadowed) and, on a verify-miss, FALLS BACK to the
201
+ * create-only winner (`next_by_subj` from the stream start) and verifies THAT — so a shadow-append
202
+ * is defeated by the reader, never relying on publisher cooperation. Only when NEITHER the last nor
203
+ * the first message verifies is the store genuinely corrupt (fail loud). Pre-emptive garbage
204
+ * BEFORE the honest publish is the already-loud case: the honest create-only publish then loses at
205
+ * registration, so there is no honest artifact to recover.
206
+ *
207
+ * GRANT NOTE (critic completeness item): the fallback issues `next_by_subj`, which rides the bare
208
+ * `$JS.API.DIRECT.GET.<stream>` form — the executor publisher holds it, the ordinary agent baseline
209
+ * does NOT (it holds only the subject-scoped `last_by_subj`, per the D32 read-grant bound). Sound
210
+ * because {@link ensureContractStore} fails loud unless the store is config-B immutable, so the
211
+ * manager never serves a store where an agent's `last_by_subj` could return a shadow — the fallback
212
+ * never triggers on the agent path. Widening the agent grant to the bare form is unnecessary (and
213
+ * would relax the D32 bound for no gain). */
167
214
  export async function fetchContractArtifact(ctx, digestHex) {
168
215
  const { jsm } = resources(ctx);
216
+ const stream = epcStreamName(ctx.space);
169
217
  const subject = epcSubject(ctx.space, digestHex); // validates the token
170
- let stored;
171
- try {
172
- stored = await jsm.direct.getMessage(epcStreamName(ctx.space), { last_by_subj: subject });
173
- }
174
- catch (e) {
175
- if (e?.code === 10037)
176
- return undefined; // the ONLY "genuinely absent" result
177
- throw new EpEnvelopeError("unavailable", `the contract-store read for ${digestHex} failed (a failed observation is never absence, SPEC 13.7): ${e?.message ?? String(e)}`);
178
- }
179
- if (stored === null)
218
+ const read = async (req) => {
219
+ try {
220
+ const stored = await jsm.direct.getMessage(stream, req);
221
+ return stored === null ? "absent" : stored.data;
222
+ }
223
+ catch (e) {
224
+ if (e?.code === 10037)
225
+ return "absent"; // the ONLY "genuinely absent" result
226
+ throw new EpEnvelopeError("unavailable", `the contract-store read for ${digestHex} failed (a failed observation is never absence, SPEC 13.7): ${e?.message ?? String(e)}`);
227
+ }
228
+ };
229
+ // Fast path: the last message at the subject. Verifies whenever nobody shadowed (the common case).
230
+ const last = await read({ last_by_subj: subject });
231
+ if (last === "absent")
180
232
  return undefined;
181
- // The 256 KiB document bound is enforced on EVERY consuming read, not just publication (distsys
182
- // 8dcad72 M2): a directly-planted oversize artifact (bypassing publishContractArtifact) must
183
- // never be served, and the closure walk (which reads through here) inherits the per-document cap.
184
- if (stored.data.length > CONTRACT_ARTIFACT_MAX_BYTES)
185
- throw new EpEnvelopeError("internal", `the artifact at ${subject} is ${stored.data.length} bytes, above the ${CONTRACT_ARTIFACT_MAX_BYTES} document bound; a store that admitted an oversize artifact never serves it (SPEC 13.7)`);
186
- if (contractArtifactDigestHex(stored.data) !== digestHex)
187
- throw new EpEnvelopeError("internal", `the artifact at ${subject} does not recompute its digest; verify-on-read is the tamper boundary and fails loud (SPEC 13.7)`);
188
- try {
189
- assertCanonicalArtifactBytes(stored.data, `the artifact at ${subject}`);
190
- }
191
- catch {
192
- throw new EpEnvelopeError("internal", `the artifact at ${subject} is not strict canonical JSON; a garbled store never serves (SPEC 13.7)`);
193
- }
194
- return stored.data;
233
+ const okLast = verifyStored(last, digestHex, subject);
234
+ if (okLast !== undefined)
235
+ return okLast;
236
+ // Shadow suspected: fall back to the create-only WINNER (the first message at the subject) — a
237
+ // valid artifact was published create-only, so it is first; anything after it is an append.
238
+ const first = await read({ seq: 0, next_by_subj: subject });
239
+ if (first === "absent")
240
+ return undefined;
241
+ const okFirst = verifyStored(first, digestHex, subject);
242
+ if (okFirst !== undefined)
243
+ return okFirst;
244
+ // Neither the last nor the create-only winner verifies: the store is genuinely corrupt for this
245
+ // subject (no honest artifact was ever published, or the first message is itself garbage).
246
+ throw new EpEnvelopeError("internal", `no message at ${subject} recomputes its digest as strict canonical JSON (checked both the last and the create-only winner); verify-on-read is the tamper boundary and a store with no verifying artifact never serves (SPEC 13.7)`);
195
247
  }
196
248
  const sha256Ref = (hex) => `sha256:${hex}`;
197
249
  /** A manifest digest field is EXACTLY `sha256:<64-hex>` (frozen SPEC 13.7:1858-1861), never a