@cotal-ai/core 0.3.2 → 0.5.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 (48) hide show
  1. package/README.md +11 -0
  2. package/dist/agent-file.d.ts +36 -5
  3. package/dist/agent-file.d.ts.map +1 -1
  4. package/dist/agent-file.js +91 -11
  5. package/dist/agent-file.js.map +1 -1
  6. package/dist/channels.d.ts +13 -2
  7. package/dist/channels.d.ts.map +1 -1
  8. package/dist/channels.js +24 -1
  9. package/dist/channels.js.map +1 -1
  10. package/dist/command.d.ts +21 -0
  11. package/dist/command.d.ts.map +1 -1
  12. package/dist/connector-config.d.ts +42 -0
  13. package/dist/connector-config.d.ts.map +1 -0
  14. package/dist/connector-config.js +103 -0
  15. package/dist/connector-config.js.map +1 -0
  16. package/dist/connector.d.ts +11 -0
  17. package/dist/connector.d.ts.map +1 -1
  18. package/dist/endpoint.d.ts +331 -40
  19. package/dist/endpoint.d.ts.map +1 -1
  20. package/dist/endpoint.js +1280 -246
  21. package/dist/endpoint.js.map +1 -1
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/members.d.ts +93 -0
  27. package/dist/members.d.ts.map +1 -0
  28. package/dist/members.js +193 -0
  29. package/dist/members.js.map +1 -0
  30. package/dist/provision.d.ts +49 -11
  31. package/dist/provision.d.ts.map +1 -1
  32. package/dist/provision.js +92 -31
  33. package/dist/provision.js.map +1 -1
  34. package/dist/resolve.d.ts +53 -0
  35. package/dist/resolve.d.ts.map +1 -0
  36. package/dist/resolve.js +61 -0
  37. package/dist/resolve.js.map +1 -0
  38. package/dist/streams.d.ts +37 -0
  39. package/dist/streams.d.ts.map +1 -1
  40. package/dist/streams.js +91 -4
  41. package/dist/streams.js.map +1 -1
  42. package/dist/subjects.d.ts +80 -2
  43. package/dist/subjects.d.ts.map +1 -1
  44. package/dist/subjects.js +127 -3
  45. package/dist/subjects.js.map +1 -1
  46. package/dist/types.d.ts +111 -5
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +4 -2
package/dist/types.d.ts CHANGED
@@ -40,15 +40,47 @@ export interface AgentCard {
40
40
  * - `offline`: disconnected or heartbeat lapsed (derived by observers, not self-set while live)
41
41
  */
42
42
  export type PresenceStatus = "idle" | "waiting" | "working" | "offline";
43
+ /**
44
+ * How aggressively peer traffic interrupts an agent — chosen by the agent, orthogonal to
45
+ * {@link PresenceStatus}. Defined here (the wire layer) because it is now published in
46
+ * {@link Presence}; the connector imports it. Advisory observability, not a security boundary.
47
+ */
48
+ export type AttentionMode = "open" | "dnd" | "focus";
49
+ /**
50
+ * Per-channel attention override (more specific than the global {@link AttentionMode}).
51
+ * - `quiet` — still delivered + buffered, but never wakes; an `@`-mention still wakes (per-channel `dnd`).
52
+ * - `muted` — channel messages dropped on receive, incl. `@`-mentions ("don't receive this channel").
53
+ */
54
+ export type ChannelMode = "quiet" | "muted";
43
55
  /** Live presence record. Stored in the space's KV bucket under key = card.id. */
44
56
  export interface Presence {
45
57
  card: AgentCard;
46
58
  status: PresenceStatus;
47
59
  /** Freeform "what I'm doing right now". */
48
60
  activity?: string;
61
+ /** This instance's current global attention mode. Advisory, within-space observability — a peer
62
+ * can see "they're in focus" and choose to DM. Published from the connector's authoritative state
63
+ * (presence is a mirror, never the source of truth for delivery). `open`/absent ⇒ receives all. */
64
+ attention?: AttentionMode;
65
+ /** Per-channel attention overrides this instance currently has (runtime, reset on restart). Keys are
66
+ * concrete channel names. Advisory: lets a peer see "locally muted #deploys → DM to reach me". NOT
67
+ * access control — the broker still authorizes and delivers; this is a receive-side presentation. */
68
+ channelModes?: Record<string, ChannelMode>;
49
69
  /** Epoch ms of the last heartbeat. */
50
70
  ts: number;
51
71
  }
72
+ /**
73
+ * A channel's delivery class (SPEC §4). Fixed per channel, wire-observable.
74
+ * - `live` — native broker-subscription delivery; **at-most-once** (only instances subscribed at
75
+ * publish time receive it; a disconnected/busy/not-yet-joined instance has no claim to it later).
76
+ * - `durable` — `live` plus a per-subscriber durable backstop; **at-least-once for current members**
77
+ * (also retained per member and redelivered on the member's next connection/turn until acked).
78
+ *
79
+ * Effective class is {@link effectiveDeliveryClass}: `channel ?? space default ?? "durable"`. The
80
+ * space default is set at space creation from the deployment profile (local/self-hosted ⇒ `durable`,
81
+ * public/web-scale ⇒ `live`) so it is always discoverable on the wire, never inferred per-component.
82
+ */
83
+ export type DeliveryClass = "live" | "durable";
52
84
  /**
53
85
  * Channel registry entry — channel-global config, stored in the per-space channels KV
54
86
  * (one entry per channel; the space-wide default lives under {@link CHANNEL_DEFAULTS_KEY}).
@@ -60,9 +92,11 @@ export interface ChannelConfig {
60
92
  /** Override the space default for history replay-on-join. */
61
93
  replay?: boolean;
62
94
  /** How far back a joiner's backfill reaches — a duration like `"24h"`, `"30m"`, `"7d"`.
63
- * Maps to a native Direct-Get `start_time` (now − window). Unset + `replay` ⇒ the full
64
- * retained window; ignored when replay is off. */
95
+ * Bounds the join-backfill read horizon (now − window) on the pinned single-filter `chathist`
96
+ * history consumer. Unset + `replay` ⇒ the full retained window; ignored when replay is off. */
65
97
  replayWindow?: string;
98
+ /** Override the space default delivery class (SPEC §4, §7). See {@link DeliveryClass}. */
99
+ deliveryClass?: DeliveryClass;
66
100
  /** One-line "what this channel is for". */
67
101
  description?: string;
68
102
  /** Longer "how to use it" — surfaced to joiners as advisory, attributed data. */
@@ -72,6 +106,71 @@ export interface ChannelConfig {
72
106
  export interface ChannelDefaults {
73
107
  replay?: boolean;
74
108
  replayWindow?: string;
109
+ /** Default delivery class for channels without an explicit one. Written at space creation from
110
+ * the deployment profile (local ⇒ `durable`, web ⇒ `live`); see {@link DeliveryClass}. */
111
+ deliveryClass?: DeliveryClass;
112
+ }
113
+ /**
114
+ * Durable-membership state (Plane-3, SPEC §7). One {@link MembershipRecord} per (concrete channel,
115
+ * owner) in the privileged members registry KV.
116
+ * - `live-confirmed` — the owner is live-subscribed (core-sub / boot durable); no Plane-3 backstop.
117
+ * Fan-out does NOT target these (their durability, if any, is the legacy tail until Stage 5).
118
+ * - `durable-active` — a Plane-3 durable backstop is established for this (channel, owner). Fan-out
119
+ * targets these; the trusted reader re-authorizes each entry against the interval below.
120
+ */
121
+ export type MembershipState = "live-confirmed" | "durable-active";
122
+ /**
123
+ * A durable-membership record (privileged write only; agent-authored membership is forbidden —
124
+ * it would self-authorize delivery + reads). Eligibility is by **CHAT stream sequence**, never
125
+ * wall-clock: a `durable-channel` entry is deliverable to this owner iff
126
+ * `joinCursor < seq <= leaveCursor` (open leave ⇒ no upper bound) — SPEC §7 L355-356. `leaveCursor`
127
+ * present ⇒ this is a tombstone (kept through the retention horizon so late entries are denied
128
+ * deterministically); a rejoin bumps {@link generation} and takes a fresh {@link joinCursor}.
129
+ */
130
+ export interface MembershipRecord {
131
+ /** Concrete channel (never a wildcard — wildcard ACLs grant live breadth, durable is per-channel). */
132
+ channel: string;
133
+ /** Owner agent id (nkey). */
134
+ owner: string;
135
+ state: MembershipState;
136
+ /** CHAT stream seq captured at join — durable eligibility is `seq > joinCursor`. */
137
+ joinCursor: number;
138
+ /** True only once activation catch-up has COMPLETED. A **completeness/reporting** flag, NOT a delivery
139
+ * gate: {@link durableEligible} is pure membership-interval, so a `durable-active` record routes
140
+ * in-interval immediately (no live message is lost during catch-up). `activated` instead gates what is
141
+ * REPORTED — `durableJoin` returns `durable:true` and `channelMembers()` lists the owner only once
142
+ * catch-up confirms; a join whose catch-up never completes reports `durable:false`, stays hidden, and
143
+ * is tombstoned on eviction so it does not route. A tombstone preserves the `activated` it had at leave. */
144
+ activated?: boolean;
145
+ /** CHAT stream seq captured at leave — eligibility upper bound `seq <= leaveCursor`. Present ⇒
146
+ * tombstone. Absent ⇒ open membership (no upper bound). */
147
+ leaveCursor?: number;
148
+ /** Bumped each (re)join. Stale-write guard (with the KV revision CAS) + idempotency-key component
149
+ * for fan-out/catch-up (`<msgId>:<owner>:<generation>`). */
150
+ generation: number;
151
+ /** The privileged writer's id (audit; never an agent). */
152
+ writerIdentity: string;
153
+ /** Epoch ms of the last write (diagnostics only — eligibility is seq, never this). */
154
+ updatedAt: number;
155
+ }
156
+ /**
157
+ * A fan-out entry in an owner's mixed pre-auth inbox (`dinbox.<owner>`, Plane-3). The fan-out writer
158
+ * copies one of these per eligible owner; the trusted reader re-authorizes it (`channel`+`seq` against
159
+ * the membership interval for `durable-channel`, ACL-only for `live-mention`) before transferring the
160
+ * embedded `msg` to the owner's DELIVER store. `seq`/`reason`/`generation` are the re-auth metadata;
161
+ * the agent never sees this envelope (it receives only `msg` on `dlv.<owner>`).
162
+ */
163
+ export interface Plane3Entry {
164
+ msg: CotalMessage;
165
+ /** Concrete channel the message was published on (the re-auth subject). */
166
+ channel: string;
167
+ /** The message's CHAT stream sequence (membership-interval re-auth). */
168
+ seq: number;
169
+ /** Why this owner was fanned to: a `durable` channel's member (interval-gated) vs a `live` channel
170
+ * `@mention` to an authorized target (ACL-only, no membership). */
171
+ reason: "durable-channel" | "live-mention";
172
+ /** The owner's membership generation at fan-out (idempotency-key component + diagnostics). */
173
+ generation: number;
75
174
  }
76
175
  /** Reverse-DNS extension part kind, e.g. `com.acme.snapshot`.
77
176
  * @pattern ^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+$ */
@@ -98,9 +197,11 @@ interface CotalMessageBase {
98
197
  ts: number;
99
198
  space: string;
100
199
  from: EndpointRef;
101
- /** Lowercased peer names called out within a `channel` message — a priority/wake hint,
102
- * not a routing target: the message still multicasts to the whole channel. Omitted when
103
- * empty. */
200
+ /** Lowercased peer names called out within a `channel` message — a wake hint that also, on a
201
+ * `live` channel, routes a durable copy to each mentioned target **authorized to read that
202
+ * channel** (SPEC §4/§5). It never carries content outside the target's read ACL and is not a
203
+ * routing substitute for `channel`/`to`; the message still multicasts to the whole channel.
204
+ * Omitted when empty. */
104
205
  mentions?: string[];
105
206
  parts: Part[];
106
207
  /** Id of the message being replied to. */
@@ -159,6 +260,11 @@ export interface Delivery {
159
260
  ack(): void;
160
261
  /** Decline for now; the message redelivers (e.g. couldn't surface it yet). */
161
262
  nak(): void;
263
+ /** Whether {@link ack} actually COMMITS this copy (durable backstop / JetStream, at-least-once)
264
+ * or is a no-op (live core-sub / history backfill, at-most-once). A receiver coalescing a
265
+ * cross-path duplicate must NOT downgrade a durable ack to a live no-op — else the durable copy
266
+ * is never committed, JetStream redelivers it, and it double-surfaces. See {@link DeliveryClass}. */
267
+ durable: boolean;
162
268
  }
163
269
  /** Control-plane request/reply (e.g. CLI → manager). */
164
270
  export interface ControlRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/core",
3
- "version": "0.3.2",
3
+ "description": "The Cotal protocol: endpoint, subjects, message types, the NATS client layer, and the extension contracts.",
4
+ "version": "0.5.0",
4
5
  "license": "Apache-2.0",
5
6
  "repository": {
6
7
  "type": "git",
@@ -31,6 +32,7 @@
31
32
  },
32
33
  "scripts": {
33
34
  "typecheck": "tsc -p tsconfig.json --noEmit",
34
- "build": "tsc -p tsconfig.json"
35
+ "build": "tsc -p tsconfig.json",
36
+ "test": "tsx smoke/resolve.smoke.ts"
35
37
  }
36
38
  }