@cotal-ai/core 0.12.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/acls.d.ts +31 -7
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +105 -17
  4. package/dist/acls.js.map +1 -1
  5. package/dist/agent-file.js +1 -1
  6. package/dist/agent-file.js.map +1 -1
  7. package/dist/auth-provider.d.ts +8 -0
  8. package/dist/auth-provider.d.ts.map +1 -1
  9. package/dist/auth-provider.js.map +1 -1
  10. package/dist/backup.d.ts.map +1 -1
  11. package/dist/backup.js +6 -4
  12. package/dist/backup.js.map +1 -1
  13. package/dist/broker-floor.d.ts +34 -0
  14. package/dist/broker-floor.d.ts.map +1 -0
  15. package/dist/broker-floor.js +39 -0
  16. package/dist/broker-floor.js.map +1 -0
  17. package/dist/canonical.d.ts +24 -0
  18. package/dist/canonical.d.ts.map +1 -0
  19. package/dist/canonical.js +159 -0
  20. package/dist/canonical.js.map +1 -0
  21. package/dist/connector.d.ts +4 -0
  22. package/dist/connector.d.ts.map +1 -1
  23. package/dist/endpoint-action.d.ts +424 -0
  24. package/dist/endpoint-action.d.ts.map +1 -0
  25. package/dist/endpoint-action.js +910 -0
  26. package/dist/endpoint-action.js.map +1 -0
  27. package/dist/endpoint-binding.d.ts +344 -0
  28. package/dist/endpoint-binding.d.ts.map +1 -0
  29. package/dist/endpoint-binding.js +753 -0
  30. package/dist/endpoint-binding.js.map +1 -0
  31. package/dist/endpoint-checkpoint.d.ts +292 -0
  32. package/dist/endpoint-checkpoint.d.ts.map +1 -0
  33. package/dist/endpoint-checkpoint.js +818 -0
  34. package/dist/endpoint-checkpoint.js.map +1 -0
  35. package/dist/endpoint-cluster.d.ts +95 -0
  36. package/dist/endpoint-cluster.d.ts.map +1 -0
  37. package/dist/endpoint-cluster.js +194 -0
  38. package/dist/endpoint-cluster.js.map +1 -0
  39. package/dist/endpoint-contract-store.d.ts +90 -0
  40. package/dist/endpoint-contract-store.d.ts.map +1 -0
  41. package/dist/endpoint-contract-store.js +348 -0
  42. package/dist/endpoint-contract-store.js.map +1 -0
  43. package/dist/endpoint-envelope.d.ts +165 -0
  44. package/dist/endpoint-envelope.d.ts.map +1 -0
  45. package/dist/endpoint-envelope.js +346 -0
  46. package/dist/endpoint-envelope.js.map +1 -0
  47. package/dist/endpoint-grants.d.ts +123 -0
  48. package/dist/endpoint-grants.d.ts.map +1 -0
  49. package/dist/endpoint-grants.js +215 -0
  50. package/dist/endpoint-grants.js.map +1 -0
  51. package/dist/endpoint-guard.d.ts +222 -0
  52. package/dist/endpoint-guard.d.ts.map +1 -0
  53. package/dist/endpoint-guard.js +468 -0
  54. package/dist/endpoint-guard.js.map +1 -0
  55. package/dist/endpoint-handle.d.ts +176 -0
  56. package/dist/endpoint-handle.d.ts.map +1 -0
  57. package/dist/endpoint-handle.js +608 -0
  58. package/dist/endpoint-handle.js.map +1 -0
  59. package/dist/endpoint-journal.d.ts +225 -0
  60. package/dist/endpoint-journal.d.ts.map +1 -0
  61. package/dist/endpoint-journal.js +431 -0
  62. package/dist/endpoint-journal.js.map +1 -0
  63. package/dist/endpoint-receipt.d.ts +225 -0
  64. package/dist/endpoint-receipt.d.ts.map +1 -0
  65. package/dist/endpoint-receipt.js +417 -0
  66. package/dist/endpoint-receipt.js.map +1 -0
  67. package/dist/endpoint-records.d.ts +243 -0
  68. package/dist/endpoint-records.d.ts.map +1 -0
  69. package/dist/endpoint-records.js +591 -0
  70. package/dist/endpoint-records.js.map +1 -0
  71. package/dist/endpoint-serve.d.ts +176 -0
  72. package/dist/endpoint-serve.d.ts.map +1 -0
  73. package/dist/endpoint-serve.js +446 -0
  74. package/dist/endpoint-serve.js.map +1 -0
  75. package/dist/endpoint-service.d.ts +518 -0
  76. package/dist/endpoint-service.d.ts.map +1 -0
  77. package/dist/endpoint-service.js +973 -0
  78. package/dist/endpoint-service.js.map +1 -0
  79. package/dist/endpoint-session.d.ts +398 -0
  80. package/dist/endpoint-session.d.ts.map +1 -0
  81. package/dist/endpoint-session.js +834 -0
  82. package/dist/endpoint-session.js.map +1 -0
  83. package/dist/endpoint-signing.d.ts +105 -0
  84. package/dist/endpoint-signing.d.ts.map +1 -0
  85. package/dist/endpoint-signing.js +190 -0
  86. package/dist/endpoint-signing.js.map +1 -0
  87. package/dist/endpoint-subjects.d.ts +222 -0
  88. package/dist/endpoint-subjects.d.ts.map +1 -0
  89. package/dist/endpoint-subjects.js +381 -0
  90. package/dist/endpoint-subjects.js.map +1 -0
  91. package/dist/endpoint-supervisor.d.ts +19 -0
  92. package/dist/endpoint-supervisor.d.ts.map +1 -0
  93. package/dist/endpoint-supervisor.js +12 -0
  94. package/dist/endpoint-supervisor.js.map +1 -0
  95. package/dist/endpoint-traits.d.ts +225 -0
  96. package/dist/endpoint-traits.d.ts.map +1 -0
  97. package/dist/endpoint-traits.js +469 -0
  98. package/dist/endpoint-traits.js.map +1 -0
  99. package/dist/endpoint-verbs.d.ts +277 -0
  100. package/dist/endpoint-verbs.d.ts.map +1 -0
  101. package/dist/endpoint-verbs.js +576 -0
  102. package/dist/endpoint-verbs.js.map +1 -0
  103. package/dist/endpoint-virtual.d.ts +308 -0
  104. package/dist/endpoint-virtual.d.ts.map +1 -0
  105. package/dist/endpoint-virtual.js +440 -0
  106. package/dist/endpoint-virtual.js.map +1 -0
  107. package/dist/endpoint-work.d.ts +304 -0
  108. package/dist/endpoint-work.d.ts.map +1 -0
  109. package/dist/endpoint-work.js +728 -0
  110. package/dist/endpoint-work.js.map +1 -0
  111. package/dist/endpoint.d.ts +66 -22
  112. package/dist/endpoint.d.ts.map +1 -1
  113. package/dist/endpoint.js +289 -89
  114. package/dist/endpoint.js.map +1 -1
  115. package/dist/evict.d.ts +95 -32
  116. package/dist/evict.d.ts.map +1 -1
  117. package/dist/evict.js +193 -3
  118. package/dist/evict.js.map +1 -1
  119. package/dist/index.d.ts +25 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +25 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/lease.d.ts +4 -0
  124. package/dist/lease.d.ts.map +1 -1
  125. package/dist/lease.js.map +1 -1
  126. package/dist/members.d.ts +4 -4
  127. package/dist/members.d.ts.map +1 -1
  128. package/dist/members.js +12 -12
  129. package/dist/members.js.map +1 -1
  130. package/dist/provision.d.ts +70 -18
  131. package/dist/provision.d.ts.map +1 -1
  132. package/dist/provision.js +194 -33
  133. package/dist/provision.js.map +1 -1
  134. package/dist/safe-pattern.d.ts +33 -0
  135. package/dist/safe-pattern.d.ts.map +1 -0
  136. package/dist/safe-pattern.js +486 -0
  137. package/dist/safe-pattern.js.map +1 -0
  138. package/dist/schema-profile.d.ts +93 -0
  139. package/dist/schema-profile.d.ts.map +1 -0
  140. package/dist/schema-profile.js +284 -0
  141. package/dist/schema-profile.js.map +1 -0
  142. package/dist/streams.d.ts +13 -8
  143. package/dist/streams.d.ts.map +1 -1
  144. package/dist/streams.js +35 -18
  145. package/dist/streams.js.map +1 -1
  146. package/dist/subjects.d.ts +100 -40
  147. package/dist/subjects.d.ts.map +1 -1
  148. package/dist/subjects.js +136 -60
  149. package/dist/subjects.js.map +1 -1
  150. package/dist/types.d.ts +9 -0
  151. package/dist/types.d.ts.map +1 -1
  152. package/package.json +3 -1
@@ -72,6 +72,27 @@ export declare function principalKey(owner: string, actor: string): {
72
72
  key: string;
73
73
  name: string;
74
74
  };
75
+ export declare function assertLifecycleToken(v: string, what?: string): string;
76
+ /** Mint a fresh lifecycle UID: `[a-z0-9]{26,32}`, >=128 bits of CSPRNG entropy (SPEC §13.1). 20
77
+ * random bytes (160 bits) render to at most 31 base36 chars; left-padding to 26 keeps the rare
78
+ * short render in-grammar without losing entropy. The UID is minted ONCE per lifecycle by the
79
+ * provisioning path and preserved across supervised restarts — never re-minted per process. */
80
+ export declare function mintLifecycleUid(): string;
81
+ /** The lifecycle-scoped JetStream-name form `<owner>-<actor>-<lifecycleUid>` (SPEC §13.1 "the UID is
82
+ * part of the resource NAME"). Injective: owner/actor tokens ban `-` (see {@link principalKey}), the
83
+ * UID is `[a-z0-9]` (dash-free), and `-` is the sole separator. */
84
+ export declare function lifecycleNameKey(owner: string, actor: string, lifecycleUid: string): string;
85
+ /** The lifecycle-scoped subject/KV dot-form `<owner>.<actor>.<lifecycleUid>` (ACL rows, member-row
86
+ * principals, dinbox/dlv subject tails). Injective: owner/actor are dot-free tokens and the UID is
87
+ * `[a-z0-9]`, so exactly three dot-separated tokens. */
88
+ export declare function lifecycleSubjectKey(owner: string, actor: string, lifecycleUid: string): string;
89
+ /** Inverse of {@link lifecycleSubjectKey}: split `<owner>.<actor>.<uid>` back into its three tokens,
90
+ * or `null` if the string is not exactly that shape. */
91
+ export declare function parseLifecycleSubjectKey(key: string): {
92
+ owner: string;
93
+ actor: string;
94
+ lifecycleUid: string;
95
+ } | null;
75
96
  /** Principal key form for subjects and KV keys. Alias for callers/tests that need one form explicitly. */
76
97
  export declare function principalSubjectKey(owner: string, actor: string): string;
77
98
  /** Principal key form for JetStream names. Alias for callers/tests that need one form explicitly. */
@@ -81,12 +102,24 @@ export declare function principalNameKey(owner: string, actor: string): string;
81
102
  * single `.` separates them unambiguously — exactly two segments, both {@link assertValidOwnerToken}-valid.
82
103
  * Used where a stored principal (a member/from.id dot-form) must be re-split to feed the owner+actor
83
104
  * subject builders (e.g. fan-out → `dinboxSubject`). */
84
- /** Resolve a deprovision target: a full principal dot-form (`u_….<actor>`, user-mode agents) or a
85
- * bare static/dev actor id (an nkey pub never contains a dot), keyed under {@link DEV_OWNER}.
86
- * Shared by the deprovisioner permission pin and the teardown helper so they can't diverge. */
87
- export declare function deprovisionTargetPrincipal(target: string): {
105
+ /** A deprovision target is a LIFECYCLE, never an alias (SPEC §13.1 "the teardown credential is
106
+ * minted target-pinned to `(principal, lifecycleUid)` by exact name"): the principal dot-form
107
+ * (`u_….<actor>`, user-mode agents) or a bare static/dev actor id (an nkey pub never contains a
108
+ * dot, keyed under {@link DEV_OWNER}), PLUS the lifecycle UID of exactly the incarnation being torn
109
+ * down. A stale/replayed teardown for a retired lifecycle then names only retired resources — it is
110
+ * broker-denied against a same-alias successor. */
111
+ export interface DeprovisionTarget {
112
+ /** `<owner>.<actor>` dot-form, or a bare static actor id. */
113
+ principal: string;
114
+ /** The retired/target incarnation's lifecycle UID — the successor's differs by construction. */
115
+ lifecycleUid: string;
116
+ }
117
+ /** Resolve a deprovision target to its `(owner, actor, lifecycleUid)` triple. Shared by the
118
+ * deprovisioner permission pin and the teardown helper so they can't diverge. */
119
+ export declare function deprovisionTargetPrincipal(target: DeprovisionTarget): {
88
120
  owner: string;
89
121
  actor: string;
122
+ lifecycleUid: string;
90
123
  };
91
124
  export declare function parsePrincipalKey(key: string): {
92
125
  owner: string;
@@ -254,6 +287,16 @@ export declare const CONTROL_DELIVERY: "delivery";
254
287
  * cred is default-denied — nats-server is the boundary, same pattern as {@link CONTROL_ADMIN});
255
288
  * the `delivery` cred holds the serve + bounded-reply side. */
256
289
  export declare const CONTROL_DELIVERY_ADMIN: "delivery-admin";
290
+ /** The AUTH service's control rail (#29 piece 3; SPEC 13.2 reserved): lifecycle-authority ops the
291
+ * AUTH plane serves — the D5 split's other half (retirement is the auth plane's operation; it
292
+ * never rides the DELIVERY daemon's rail). The surface is GENERIC — "retire a lifecycle
293
+ * (owner, actor, lifecycleUid)" — never caller-specific: the manager's despawn is ONE caller,
294
+ * and the serve-time authz (the space-manager-lease holder check, leader-read fresh per
295
+ * request) is the auth service's, not the subject grammar's. Caller attribution is
296
+ * SUBJECT-derived (`ctl.auth-admin.<owner>.<actor>`, broker-ACL-enforced): only a credential
297
+ * minted with that principal's request-publish grant reaches it, and replies are bound under
298
+ * the sender's own `<request>.reply.>` subtree. */
299
+ export declare const CONTROL_AUTH_ADMIN: "auth-admin";
257
300
  /** The three control-plane tiers the manager serves — values tie to the `CONTROL_*` service
258
301
  * names so handler routing can't drift from the subject names. */
259
302
  export type ControlTier = typeof CONTROL_PRIVILEGED | typeof CONTROL_SELF_SERVICE | typeof CONTROL_ADMIN;
@@ -311,19 +354,22 @@ export declare const CHANNEL_DEFAULTS_KEY = "=defaults";
311
354
  * owner) under {@link memberKey}; the source of truth for `channelMembers()` and the fan-out's
312
355
  * member list, moved off JetStream consumer topology (which core-sub joins don't create). */
313
356
  export declare function membersBucket(space: string): string;
314
- /** KV key for one membership record: `<channel>/<principal>`, where `principal` is the member's
315
- * owner+actor dot-form (`<owner>.<actor>` = {@link principalKey}`.key`) membership is per-agent
316
- * (owner+actor), not per-owner-shared. The channel is concrete (no `*`/`>`, validated at the write
317
- * path) so it is dotted-but-`/`-free, and a principal dot-form is `[A-Za-z0-9_.]` (also `/`-free), so
318
- * the single `/` separates them unambiguously both halves recover via {@link parseMemberKey}. `/`,
319
- * `.`, and `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
320
- export declare function memberKey(channel: string, principal: string): string;
321
- /** Inverse of {@link memberKey}: split a member key back into `{ channel, principal }`, or `null` if
322
- * it isn't one (no `/`). Splits on the single separator channels and principal dot-forms are both
323
- * `/`-free (the `.` inside a principal is not a `/`). */
357
+ /** KV key for one membership record: `<channel>/<principal>.<lifecycleUid>`, where the tail is the
358
+ * member's lifecycle-scoped dot-form ({@link lifecycleSubjectKey}, SPEC §13.1: membership rows are
359
+ * lifecycle-keyed, so a same-alias successor starts unjoined and inherits no cursors the
360
+ * join/leave cursors ride this row). The channel is concrete (no `*`/`>`, validated at the write
361
+ * path) so it is dotted-but-`/`-free, and the tail is `[A-Za-z0-9_.]` (also `/`-free), so the single
362
+ * `/` separates them unambiguously both halves recover via {@link parseMemberKey}. `/`, `.`, and
363
+ * `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
364
+ export declare function memberKey(channel: string, principal: string, lifecycleUid: string): string;
365
+ /** Inverse of {@link memberKey}: split a member key back into `{ channel, principal, lifecycleUid }`,
366
+ * or `null` if it isn't one (no `/`, or the tail is not a lifecycle-scoped dot-form). Splits on the
367
+ * single `/`, then peels the trailing `.<uid>` token — owner/actor tokens are dot-free, so the last
368
+ * dot separates the uid unambiguously. */
324
369
  export declare function parseMemberKey(key: string): {
325
370
  channel: string;
326
371
  principal: string;
372
+ lifecycleUid: string;
327
373
  } | null;
328
374
  /** Name of the KV bucket holding the durable read-ACL registry (Plane-3) for a space — a
329
375
  * privileged-write sibling of the members/channels buckets. One record per OWNER (key = owner id),
@@ -332,11 +378,16 @@ export declare function parseMemberKey(key: string): {
332
378
  * stateless, server-side daemon re-reads it on boot (fixes the restart-fragility nak-loop). It is
333
379
  * ALSO what the daemon validates a runtime durable-join against (channel ∈ the owner's ACL). */
334
380
  export declare function aclBucket(space: string): string;
335
- /** KV key for one principal's read-ACL record: the member's owner+actor dot-form (`<owner>.<actor>` =
336
- * {@link principalKey}`.key`) the read ACL is per-agent (owner+actor), like membership. The dot-form
337
- * is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do NOT run it through `token()`,
338
- * which rewrites `.`→`_` and would alias distinct principals onto one key. */
339
- export declare function aclKey(principal: string): string;
381
+ /** KV key for one lifecycle's read-ACL record: `<owner>.<actor>.<lifecycleUid>` (SPEC §13.1: ACL rows
382
+ * are lifecycle-keyed, so the deprovisioner's exact-key delete grant can never name a same-alias
383
+ * successor's row). The dot-form is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
384
+ * NOT run it through `token()`, which rewrites `.`→`_` and would alias distinct principals onto one
385
+ * key. Alias-level lookups that hold no uid enumerate `aclAliasFilter` and REFUSE ambiguity. */
386
+ export declare function aclKey(principal: string, lifecycleUid: string): string;
387
+ /** KV key filter matching every lifecycle row of one alias: `<owner>.<actor>.*`. For the bounded
388
+ * alias-level enumeration (join authz, deprovision-by-alias refusal): AT MOST ONE live row per alias
389
+ * is the §13.1 invariant, and a reader that finds two MUST fail loud, never take first-match. */
390
+ export declare function aclAliasFilter(principal: string): string;
340
391
  /** Name of the KV bucket holding the derived channel-membership feed for a space (data-account, derived
341
392
  * from CONNZ ∪ the members registry). One entry per AGENT (key = the agent nkey / `card.id`); value is a
342
393
  * {@link import("./types.js").ChannelMembership}. Per-agent keying (not per-channel) keeps keys dot-free
@@ -427,23 +478,29 @@ export declare function taskStream(space: string): string;
427
478
  export declare function inboxStream(space: string): string;
428
479
  /** Stream capturing `dlv.>` — the per-member post-auth delivery store (agent binds + acks). */
429
480
  export declare function dlvStream(space: string): string;
430
- /** Subject of a principal's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>` (one per agent —
431
- * the fan-out delivers a per-member copy, and a member is a principal). Either identity slot accepts `*`
432
- * for the daemon's fan-out write grant (`dinbox.*.*`). */
433
- export declare function dinboxSubject(space: string, owner: string, actor: string): string;
434
- /** Subject of a principal's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>` (one per agent). */
435
- export declare function dlvSubject(space: string, owner: string, actor: string): string;
436
- /** Parse the principal out of a mixed-inbox subject `cotal.<space>.dinbox.<owner>.<actor>`, or null.
437
- * The trusted reader is a SINGLE consumer over `dinbox.>` (all principals), so it recovers the
438
- * per-message owner+actor from the subject (split only the broker forge-locked the slots at write). */
481
+ /** Subject of a lifecycle's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`
482
+ * (one per LIFECYCLE, SPEC §13.1: the fan-out delivers a per-member copy addressed to the member
483
+ * row's recorded lifecycle, so a same-alias successor inherits no pending entries). Identity slots
484
+ * accept `*` for the daemon's fan-out write grant (`dinbox.*.*.*`). */
485
+ export declare function dinboxSubject(space: string, owner: string, actor: string, lifecycleUid: string): string;
486
+ /** Subject of a lifecycle's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>.<lifecycleUid>`. */
487
+ export declare function dlvSubject(space: string, owner: string, actor: string, lifecycleUid: string): string;
488
+ /** Parse the lifecycle-scoped principal out of a mixed-inbox subject
489
+ * `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`, or null. The trusted reader is a SINGLE
490
+ * consumer over `dinbox.>` (all principals), so it recovers the per-message owner+actor+lifecycle
491
+ * from the subject (split only — the broker forge-locked the slots at write). A 5-segment pre-cut
492
+ * subject parses to null and the reader refuses it loudly rather than delivering unattributed. */
439
493
  export declare function parseDinboxPrincipal(subject: string): {
440
494
  owner: string;
441
495
  actor: string;
496
+ lifecycleUid: string;
442
497
  } | null;
443
- /** An agent's bind-only per-member consumer on {@link dlvStream} (filter `dlv.<owner>.<actor>`). The
444
- * durable NAME is the principal's JetStream-safe dash-form (`dlv_<owner>-<actor>`) — a `.` is illegal
445
- * in a durable name, so this uses {@link principalKey}`.name`, never the dot-form. */
446
- export declare function dlvDurable(owner: string, actor: string): string;
498
+ /** A lifecycle's bind-only per-member consumer on {@link dlvStream} (filter
499
+ * `dlv.<owner>.<actor>.<lifecycleUid>`). The durable NAME is the lifecycle-scoped dash-form
500
+ * (`dlv_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1/§8): the UID in the NAME is what lets the
501
+ * deprovisioner be target-pinned by exact name, so a stale teardown credential structurally cannot
502
+ * reach a same-alias successor's consumer. */
503
+ export declare function dlvDurable(owner: string, actor: string, lifecycleUid: string): string;
447
504
  /** The single privileged fan-out consumer on the CHAT stream (delivery-daemon-pumped; routing, not
448
505
  * auth). N=1 keeps this exact name (see {@link fanoutDurable}). */
449
506
  export declare const FANOUT_DURABLE: "fanout";
@@ -461,14 +518,17 @@ export declare function readerDurable(shard?: number, shards?: number): string;
461
518
  * read-ACL conformance test asserts an agent can NOT create — it has no live callers, the live read is
462
519
  * now a native core subscription. Principal name-form (`chat_<owner>-<actor>`) for namespace consistency. */
463
520
  export declare function chatDurable(owner: string, actor: string): string;
464
- /** Consumer name for an agent's short-lived chat **history** reads (join-backfill, focus-recall,
465
- * drop-marker). A single per-agent name in the principal's JetStream-safe dash-form
466
- * (`chathist_<owner>-<actor>`) so its create/info/fetch/delete grants name-scope to that principal —
467
- * a peer can never bind it — while the per-read single `filter_subject` is what the create-time ACL
468
- * pins to `allowSubscribe`. */
469
- export declare function chatHistDurable(owner: string, actor: string): string;
470
- /** Durable consumer name for an agent's private DM inbox — the principal's dash-form (`dm_<owner>-<actor>`). */
471
- export declare function dmDurable(owner: string, actor: string): string;
521
+ /** Consumer name for a lifecycle's short-lived chat **history** reads (join-backfill, focus-recall,
522
+ * drop-marker). A single per-lifecycle name in the lifecycle-scoped dash-form
523
+ * (`chathist_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1) so its create/info/fetch/delete grants
524
+ * name-scope to that lifecycle — a peer or a same-alias successor can never bind it — while the
525
+ * per-read single `filter_subject` is what the create-time ACL pins to `allowSubscribe`. */
526
+ export declare function chatHistDurable(owner: string, actor: string, lifecycleUid: string): string;
527
+ /** Durable consumer name for a lifecycle's private DM inbox — the lifecycle-scoped dash-form
528
+ * (`dm_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1). The DM SUBJECTS (`inst.>`) keep the alias
529
+ * grammar; the backing consumer is lifecycle-keyed and starts at the activation frontier
530
+ * ({@link import("./streams.js").dmDurableConfig}), so a successor inherits no predecessor DMs. */
531
+ export declare function dmDurable(owner: string, actor: string, lifecycleUid: string): string;
472
532
  /** Durable consumer name (shared across instances of a role) for the task queue. */
473
533
  export declare function taskDurable(service: string): string;
474
534
  //# sourceMappingURL=subjects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}
package/dist/subjects.js CHANGED
@@ -10,6 +10,7 @@
10
10
  *
11
11
  * Presence lives in a JetStream KV bucket, not a subject (see presenceBucket()).
12
12
  */
13
+ import { randomBytes } from "node:crypto";
13
14
  const ILLEGAL = /[^A-Za-z0-9_-]/g;
14
15
  /** Make a string safe to use as a single NATS subject token. */
15
16
  export function token(s) {
@@ -165,6 +166,50 @@ export function principalKey(owner, actor) {
165
166
  assertValidOwnerToken(actor);
166
167
  return { key: `${owner}.${actor}`, name: `${owner}-${actor}` };
167
168
  }
169
+ // ---- Lifecycle UID (SPEC §13.1) ----
170
+ //
171
+ // One grammar bounds both `lifecycleUid` and the endpoint-surface `instanceId` (§13.1/§13.2) —
172
+ // deliberately a single definition so the bound cannot drift. Defined HERE (the module with no
173
+ // local imports) because the messaging plane needs it for lifecycle-keyed resource names;
174
+ // endpoint-subjects re-exports it for the endpoint rails.
175
+ const LIFECYCLE_TOKEN = /^[a-z0-9]{26,32}$/;
176
+ export function assertLifecycleToken(v, what = "lifecycleUid") {
177
+ if (!LIFECYCLE_TOKEN.test(v))
178
+ throw new Error(`${what} "${v}" is not a valid lifecycle token ([a-z0-9]{26,32})`);
179
+ return v;
180
+ }
181
+ /** Mint a fresh lifecycle UID: `[a-z0-9]{26,32}`, >=128 bits of CSPRNG entropy (SPEC §13.1). 20
182
+ * random bytes (160 bits) render to at most 31 base36 chars; left-padding to 26 keeps the rare
183
+ * short render in-grammar without losing entropy. The UID is minted ONCE per lifecycle by the
184
+ * provisioning path and preserved across supervised restarts — never re-minted per process. */
185
+ export function mintLifecycleUid() {
186
+ return assertLifecycleToken(BigInt(`0x${randomBytes(20).toString("hex")}`).toString(36).padStart(26, "0"));
187
+ }
188
+ /** The lifecycle-scoped JetStream-name form `<owner>-<actor>-<lifecycleUid>` (SPEC §13.1 "the UID is
189
+ * part of the resource NAME"). Injective: owner/actor tokens ban `-` (see {@link principalKey}), the
190
+ * UID is `[a-z0-9]` (dash-free), and `-` is the sole separator. */
191
+ export function lifecycleNameKey(owner, actor, lifecycleUid) {
192
+ return `${principalKey(owner, actor).name}-${assertLifecycleToken(lifecycleUid)}`;
193
+ }
194
+ /** The lifecycle-scoped subject/KV dot-form `<owner>.<actor>.<lifecycleUid>` (ACL rows, member-row
195
+ * principals, dinbox/dlv subject tails). Injective: owner/actor are dot-free tokens and the UID is
196
+ * `[a-z0-9]`, so exactly three dot-separated tokens. */
197
+ export function lifecycleSubjectKey(owner, actor, lifecycleUid) {
198
+ return `${principalKey(owner, actor).key}.${assertLifecycleToken(lifecycleUid)}`;
199
+ }
200
+ /** Inverse of {@link lifecycleSubjectKey}: split `<owner>.<actor>.<uid>` back into its three tokens,
201
+ * or `null` if the string is not exactly that shape. */
202
+ export function parseLifecycleSubjectKey(key) {
203
+ if (typeof key !== "string")
204
+ return null;
205
+ const parts = key.split(".");
206
+ if (parts.length !== 3)
207
+ return null;
208
+ const [owner, actor, uid] = parts;
209
+ if (!/^[A-Za-z0-9_]+$/.test(owner) || !/^[A-Za-z0-9_]+$/.test(actor) || !LIFECYCLE_TOKEN.test(uid))
210
+ return null;
211
+ return { owner, actor, lifecycleUid: uid };
212
+ }
168
213
  /** Principal key form for subjects and KV keys. Alias for callers/tests that need one form explicitly. */
169
214
  export function principalSubjectKey(owner, actor) {
170
215
  return principalKey(owner, actor).key;
@@ -173,16 +218,11 @@ export function principalSubjectKey(owner, actor) {
173
218
  export function principalNameKey(owner, actor) {
174
219
  return principalKey(owner, actor).name;
175
220
  }
176
- /** Inverse of {@link principalKey}'s dot-form `key`: split a principal `<owner>.<actor>` back into its
177
- * two tokens, or `null` if it isn't a valid one. Owner/actor tokens are `[A-Za-z0-9_]+` (dot-free), so a
178
- * single `.` separates them unambiguously — exactly two segments, both {@link assertValidOwnerToken}-valid.
179
- * Used where a stored principal (a member/from.id dot-form) must be re-split to feed the owner+actor
180
- * subject builders (e.g. fan-out → `dinboxSubject`). */
181
- /** Resolve a deprovision target: a full principal dot-form (`u_….<actor>`, user-mode agents) or a
182
- * bare static/dev actor id (an nkey pub — never contains a dot), keyed under {@link DEV_OWNER}.
183
- * Shared by the deprovisioner permission pin and the teardown helper so they can't diverge. */
221
+ /** Resolve a deprovision target to its `(owner, actor, lifecycleUid)` triple. Shared by the
222
+ * deprovisioner permission pin and the teardown helper so they can't diverge. */
184
223
  export function deprovisionTargetPrincipal(target) {
185
- return parsePrincipalKey(target) ?? { owner: DEV_OWNER, actor: target };
224
+ const pr = parsePrincipalKey(target.principal) ?? { owner: DEV_OWNER, actor: target.principal };
225
+ return { ...pr, lifecycleUid: assertLifecycleToken(target.lifecycleUid) };
186
226
  }
187
227
  export function parsePrincipalKey(key) {
188
228
  if (typeof key !== "string")
@@ -448,6 +488,16 @@ export const CONTROL_DELIVERY = "delivery";
448
488
  * cred is default-denied — nats-server is the boundary, same pattern as {@link CONTROL_ADMIN});
449
489
  * the `delivery` cred holds the serve + bounded-reply side. */
450
490
  export const CONTROL_DELIVERY_ADMIN = "delivery-admin";
491
+ /** The AUTH service's control rail (#29 piece 3; SPEC 13.2 reserved): lifecycle-authority ops the
492
+ * AUTH plane serves — the D5 split's other half (retirement is the auth plane's operation; it
493
+ * never rides the DELIVERY daemon's rail). The surface is GENERIC — "retire a lifecycle
494
+ * (owner, actor, lifecycleUid)" — never caller-specific: the manager's despawn is ONE caller,
495
+ * and the serve-time authz (the space-manager-lease holder check, leader-read fresh per
496
+ * request) is the auth service's, not the subject grammar's. Caller attribution is
497
+ * SUBJECT-derived (`ctl.auth-admin.<owner>.<actor>`, broker-ACL-enforced): only a credential
498
+ * minted with that principal's request-publish grant reaches it, and replies are bound under
499
+ * the sender's own `<request>.reply.>` subtree. */
500
+ export const CONTROL_AUTH_ADMIN = "auth-admin";
451
501
  export function traceSubject(space, agentId) {
452
502
  return `${spacePrefix(space)}.trace.${token(agentId)}`;
453
503
  }
@@ -527,23 +577,34 @@ export const CHANNEL_DEFAULTS_KEY = "=defaults";
527
577
  export function membersBucket(space) {
528
578
  return `cotal_members_${token(space)}`;
529
579
  }
530
- /** KV key for one membership record: `<channel>/<principal>`, where `principal` is the member's
531
- * owner+actor dot-form (`<owner>.<actor>` = {@link principalKey}`.key`) membership is per-agent
532
- * (owner+actor), not per-owner-shared. The channel is concrete (no `*`/`>`, validated at the write
533
- * path) so it is dotted-but-`/`-free, and a principal dot-form is `[A-Za-z0-9_.]` (also `/`-free), so
534
- * the single `/` separates them unambiguously both halves recover via {@link parseMemberKey}. `/`,
535
- * `.`, and `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
536
- export function memberKey(channel, principal) {
537
- return `${channel}/${principal}`;
538
- }
539
- /** Inverse of {@link memberKey}: split a member key back into `{ channel, principal }`, or `null` if
540
- * it isn't one (no `/`). Splits on the single separator channels and principal dot-forms are both
541
- * `/`-free (the `.` inside a principal is not a `/`). */
580
+ /** KV key for one membership record: `<channel>/<principal>.<lifecycleUid>`, where the tail is the
581
+ * member's lifecycle-scoped dot-form ({@link lifecycleSubjectKey}, SPEC §13.1: membership rows are
582
+ * lifecycle-keyed, so a same-alias successor starts unjoined and inherits no cursors the
583
+ * join/leave cursors ride this row). The channel is concrete (no `*`/`>`, validated at the write
584
+ * path) so it is dotted-but-`/`-free, and the tail is `[A-Za-z0-9_.]` (also `/`-free), so the single
585
+ * `/` separates them unambiguously both halves recover via {@link parseMemberKey}. `/`, `.`, and
586
+ * `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
587
+ export function memberKey(channel, principal, lifecycleUid) {
588
+ return `${channel}/${principal}.${assertLifecycleToken(lifecycleUid)}`;
589
+ }
590
+ /** Inverse of {@link memberKey}: split a member key back into `{ channel, principal, lifecycleUid }`,
591
+ * or `null` if it isn't one (no `/`, or the tail is not a lifecycle-scoped dot-form). Splits on the
592
+ * single `/`, then peels the trailing `.<uid>` token — owner/actor tokens are dot-free, so the last
593
+ * dot separates the uid unambiguously. */
542
594
  export function parseMemberKey(key) {
543
595
  const i = key.indexOf("/");
544
596
  if (i <= 0 || i >= key.length - 1)
545
597
  return null;
546
- return { channel: key.slice(0, i), principal: key.slice(i + 1) };
598
+ const channel = key.slice(0, i);
599
+ const tail = key.slice(i + 1);
600
+ const dot = tail.lastIndexOf(".");
601
+ if (dot <= 0 || dot >= tail.length - 1)
602
+ return null;
603
+ const principal = tail.slice(0, dot);
604
+ const uid = tail.slice(dot + 1);
605
+ if (!LIFECYCLE_TOKEN.test(uid) || parsePrincipalKey(principal) === null)
606
+ return null;
607
+ return { channel, principal, lifecycleUid: uid };
547
608
  }
548
609
  /** Name of the KV bucket holding the durable read-ACL registry (Plane-3) for a space — a
549
610
  * privileged-write sibling of the members/channels buckets. One record per OWNER (key = owner id),
@@ -554,12 +615,19 @@ export function parseMemberKey(key) {
554
615
  export function aclBucket(space) {
555
616
  return `cotal_acl_${token(space)}`;
556
617
  }
557
- /** KV key for one principal's read-ACL record: the member's owner+actor dot-form (`<owner>.<actor>` =
558
- * {@link principalKey}`.key`) the read ACL is per-agent (owner+actor), like membership. The dot-form
559
- * is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do NOT run it through `token()`,
560
- * which rewrites `.`→`_` and would alias distinct principals onto one key. */
561
- export function aclKey(principal) {
562
- return principal;
618
+ /** KV key for one lifecycle's read-ACL record: `<owner>.<actor>.<lifecycleUid>` (SPEC §13.1: ACL rows
619
+ * are lifecycle-keyed, so the deprovisioner's exact-key delete grant can never name a same-alias
620
+ * successor's row). The dot-form is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
621
+ * NOT run it through `token()`, which rewrites `.`→`_` and would alias distinct principals onto one
622
+ * key. Alias-level lookups that hold no uid enumerate `aclAliasFilter` and REFUSE ambiguity. */
623
+ export function aclKey(principal, lifecycleUid) {
624
+ return `${principal}.${assertLifecycleToken(lifecycleUid)}`;
625
+ }
626
+ /** KV key filter matching every lifecycle row of one alias: `<owner>.<actor>.*`. For the bounded
627
+ * alias-level enumeration (join authz, deprovision-by-alias refusal): AT MOST ONE live row per alias
628
+ * is the §13.1 invariant, and a reader that finds two MUST fail loud, never take first-match. */
629
+ export function aclAliasFilter(principal) {
630
+ return `${principal}.*`;
563
631
  }
564
632
  // ---- Authoritative channel membership (broker CONNZ → derived feed) ----
565
633
  //
@@ -708,31 +776,36 @@ export function inboxStream(space) {
708
776
  export function dlvStream(space) {
709
777
  return `DLV_${token(space)}`;
710
778
  }
711
- /** Subject of a principal's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>` (one per agent —
712
- * the fan-out delivers a per-member copy, and a member is a principal). Either identity slot accepts `*`
713
- * for the daemon's fan-out write grant (`dinbox.*.*`). */
714
- export function dinboxSubject(space, owner, actor) {
715
- return `${spacePrefix(space)}.dinbox.${ownerToken(owner)}.${ownerToken(actor)}`;
716
- }
717
- /** Subject of a principal's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>` (one per agent). */
718
- export function dlvSubject(space, owner, actor) {
719
- return `${spacePrefix(space)}.dlv.${ownerToken(owner)}.${ownerToken(actor)}`;
720
- }
721
- /** Parse the principal out of a mixed-inbox subject `cotal.<space>.dinbox.<owner>.<actor>`, or null.
722
- * The trusted reader is a SINGLE consumer over `dinbox.>` (all principals), so it recovers the
723
- * per-message owner+actor from the subject (split only the broker forge-locked the slots at write). */
779
+ /** Subject of a lifecycle's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`
780
+ * (one per LIFECYCLE, SPEC §13.1: the fan-out delivers a per-member copy addressed to the member
781
+ * row's recorded lifecycle, so a same-alias successor inherits no pending entries). Identity slots
782
+ * accept `*` for the daemon's fan-out write grant (`dinbox.*.*.*`). */
783
+ export function dinboxSubject(space, owner, actor, lifecycleUid) {
784
+ return `${spacePrefix(space)}.dinbox.${ownerToken(owner)}.${ownerToken(actor)}.${assertLifecycleToken(lifecycleUid)}`;
785
+ }
786
+ /** Subject of a lifecycle's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>.<lifecycleUid>`. */
787
+ export function dlvSubject(space, owner, actor, lifecycleUid) {
788
+ return `${spacePrefix(space)}.dlv.${ownerToken(owner)}.${ownerToken(actor)}.${assertLifecycleToken(lifecycleUid)}`;
789
+ }
790
+ /** Parse the lifecycle-scoped principal out of a mixed-inbox subject
791
+ * `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`, or null. The trusted reader is a SINGLE
792
+ * consumer over `dinbox.>` (all principals), so it recovers the per-message owner+actor+lifecycle
793
+ * from the subject (split only — the broker forge-locked the slots at write). A 5-segment pre-cut
794
+ * subject parses to null and the reader refuses it loudly rather than delivering unattributed. */
724
795
  export function parseDinboxPrincipal(subject) {
725
796
  const parts = subject.split(".");
726
- // cotal.<space>.dinbox.<owner>.<actor>
727
- return parts.length === 5 && parts[0] === ROOT && parts[2] === "dinbox"
728
- ? { owner: parts[3], actor: parts[4] }
797
+ // cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>
798
+ return parts.length === 6 && parts[0] === ROOT && parts[2] === "dinbox" && LIFECYCLE_TOKEN.test(parts[5])
799
+ ? { owner: parts[3], actor: parts[4], lifecycleUid: parts[5] }
729
800
  : null;
730
801
  }
731
- /** An agent's bind-only per-member consumer on {@link dlvStream} (filter `dlv.<owner>.<actor>`). The
732
- * durable NAME is the principal's JetStream-safe dash-form (`dlv_<owner>-<actor>`) — a `.` is illegal
733
- * in a durable name, so this uses {@link principalKey}`.name`, never the dot-form. */
734
- export function dlvDurable(owner, actor) {
735
- return `dlv_${principalKey(owner, actor).name}`;
802
+ /** A lifecycle's bind-only per-member consumer on {@link dlvStream} (filter
803
+ * `dlv.<owner>.<actor>.<lifecycleUid>`). The durable NAME is the lifecycle-scoped dash-form
804
+ * (`dlv_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1/§8): the UID in the NAME is what lets the
805
+ * deprovisioner be target-pinned by exact name, so a stale teardown credential structurally cannot
806
+ * reach a same-alias successor's consumer. */
807
+ export function dlvDurable(owner, actor, lifecycleUid) {
808
+ return `dlv_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
736
809
  }
737
810
  /** The single privileged fan-out consumer on the CHAT stream (delivery-daemon-pumped; routing, not
738
811
  * auth). N=1 keeps this exact name (see {@link fanoutDurable}). */
@@ -757,17 +830,20 @@ export function readerDurable(shard = 0, shards = 1) {
757
830
  export function chatDurable(owner, actor) {
758
831
  return `chat_${principalKey(owner, actor).name}`;
759
832
  }
760
- /** Consumer name for an agent's short-lived chat **history** reads (join-backfill, focus-recall,
761
- * drop-marker). A single per-agent name in the principal's JetStream-safe dash-form
762
- * (`chathist_<owner>-<actor>`) so its create/info/fetch/delete grants name-scope to that principal —
763
- * a peer can never bind it — while the per-read single `filter_subject` is what the create-time ACL
764
- * pins to `allowSubscribe`. */
765
- export function chatHistDurable(owner, actor) {
766
- return `chathist_${principalKey(owner, actor).name}`;
767
- }
768
- /** Durable consumer name for an agent's private DM inbox — the principal's dash-form (`dm_<owner>-<actor>`). */
769
- export function dmDurable(owner, actor) {
770
- return `dm_${principalKey(owner, actor).name}`;
833
+ /** Consumer name for a lifecycle's short-lived chat **history** reads (join-backfill, focus-recall,
834
+ * drop-marker). A single per-lifecycle name in the lifecycle-scoped dash-form
835
+ * (`chathist_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1) so its create/info/fetch/delete grants
836
+ * name-scope to that lifecycle — a peer or a same-alias successor can never bind it — while the
837
+ * per-read single `filter_subject` is what the create-time ACL pins to `allowSubscribe`. */
838
+ export function chatHistDurable(owner, actor, lifecycleUid) {
839
+ return `chathist_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
840
+ }
841
+ /** Durable consumer name for a lifecycle's private DM inbox — the lifecycle-scoped dash-form
842
+ * (`dm_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1). The DM SUBJECTS (`inst.>`) keep the alias
843
+ * grammar; the backing consumer is lifecycle-keyed and starts at the activation frontier
844
+ * ({@link import("./streams.js").dmDurableConfig}), so a successor inherits no predecessor DMs. */
845
+ export function dmDurable(owner, actor, lifecycleUid) {
846
+ return `dm_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
771
847
  }
772
848
  /** Durable consumer name (shared across instances of a role) for the task queue. */
773
849
  export function taskDurable(service) {
@@ -1 +1 @@
1
- {"version":3,"file":"subjects.js","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subjects.js","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}