@cotal-ai/core 0.85.0 → 0.87.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 (204) hide show
  1. package/dist/agent-file.d.ts.map +1 -1
  2. package/dist/agent-file.js +10 -3
  3. package/dist/agent-file.js.map +1 -1
  4. package/dist/base64url.d.ts +5 -0
  5. package/dist/base64url.d.ts.map +1 -0
  6. package/dist/base64url.js +14 -0
  7. package/dist/base64url.js.map +1 -0
  8. package/dist/browser-control.d.ts +149 -0
  9. package/dist/browser-control.d.ts.map +1 -0
  10. package/dist/browser-control.js +167 -0
  11. package/dist/browser-control.js.map +1 -0
  12. package/dist/browser-validators-build.d.ts +23 -0
  13. package/dist/browser-validators-build.d.ts.map +1 -0
  14. package/dist/browser-validators-build.js +149 -0
  15. package/dist/browser-validators-build.js.map +1 -0
  16. package/dist/canonical-json.d.ts +14 -0
  17. package/dist/canonical-json.d.ts.map +1 -0
  18. package/dist/canonical-json.js +121 -0
  19. package/dist/canonical-json.js.map +1 -0
  20. package/dist/canonical.d.ts +2 -10
  21. package/dist/canonical.d.ts.map +1 -1
  22. package/dist/canonical.js +2 -108
  23. package/dist/canonical.js.map +1 -1
  24. package/dist/channels.d.ts +4 -0
  25. package/dist/channels.d.ts.map +1 -1
  26. package/dist/channels.js +6 -2
  27. package/dist/channels.js.map +1 -1
  28. package/dist/checkpoint-answer.d.ts.map +1 -1
  29. package/dist/checkpoint-answer.js +3 -4
  30. package/dist/checkpoint-answer.js.map +1 -1
  31. package/dist/connector-setup.d.ts +10 -1
  32. package/dist/connector-setup.d.ts.map +1 -1
  33. package/dist/digest-id.d.ts +4 -0
  34. package/dist/digest-id.d.ts.map +1 -0
  35. package/dist/digest-id.js +7 -0
  36. package/dist/digest-id.js.map +1 -0
  37. package/dist/endpoint-action.d.ts +2 -2
  38. package/dist/endpoint-action.d.ts.map +1 -1
  39. package/dist/endpoint-action.js +6 -44
  40. package/dist/endpoint-action.js.map +1 -1
  41. package/dist/endpoint-auth-digest.d.ts +7 -0
  42. package/dist/endpoint-auth-digest.d.ts.map +1 -0
  43. package/dist/endpoint-auth-digest.js +13 -0
  44. package/dist/endpoint-auth-digest.js.map +1 -0
  45. package/dist/endpoint-call.d.ts +176 -0
  46. package/dist/endpoint-call.d.ts.map +1 -0
  47. package/dist/endpoint-call.js +490 -0
  48. package/dist/endpoint-call.js.map +1 -0
  49. package/dist/endpoint-caller.d.ts +113 -0
  50. package/dist/endpoint-caller.d.ts.map +1 -0
  51. package/dist/endpoint-caller.js +260 -0
  52. package/dist/endpoint-caller.js.map +1 -0
  53. package/dist/endpoint-checkpoint.d.ts.map +1 -1
  54. package/dist/endpoint-checkpoint.js +5 -14
  55. package/dist/endpoint-checkpoint.js.map +1 -1
  56. package/dist/endpoint-envelope.d.ts +0 -6
  57. package/dist/endpoint-envelope.d.ts.map +1 -1
  58. package/dist/endpoint-envelope.js +17 -18
  59. package/dist/endpoint-envelope.js.map +1 -1
  60. package/dist/endpoint-goal-follow.d.ts +37 -0
  61. package/dist/endpoint-goal-follow.d.ts.map +1 -0
  62. package/dist/endpoint-goal-follow.js +328 -0
  63. package/dist/endpoint-goal-follow.js.map +1 -0
  64. package/dist/endpoint-grants.d.ts +0 -4
  65. package/dist/endpoint-grants.d.ts.map +1 -1
  66. package/dist/endpoint-grants.js +1 -7
  67. package/dist/endpoint-grants.js.map +1 -1
  68. package/dist/endpoint-guard.d.ts.map +1 -1
  69. package/dist/endpoint-guard.js +2 -10
  70. package/dist/endpoint-guard.js.map +1 -1
  71. package/dist/endpoint-invoke.d.ts +37 -143
  72. package/dist/endpoint-invoke.d.ts.map +1 -1
  73. package/dist/endpoint-invoke.js +60 -605
  74. package/dist/endpoint-invoke.js.map +1 -1
  75. package/dist/endpoint-publish-denial.d.ts +1 -1
  76. package/dist/endpoint-publish-denial.d.ts.map +1 -1
  77. package/dist/endpoint-publish-denial.js +1 -1
  78. package/dist/endpoint-publish-denial.js.map +1 -1
  79. package/dist/endpoint-receipt.d.ts.map +1 -1
  80. package/dist/endpoint-receipt.js +2 -16
  81. package/dist/endpoint-receipt.js.map +1 -1
  82. package/dist/endpoint-signing.d.ts +1 -1
  83. package/dist/endpoint-signing.d.ts.map +1 -1
  84. package/dist/endpoint-signing.js +1 -1
  85. package/dist/endpoint-signing.js.map +1 -1
  86. package/dist/endpoint-subjects.d.ts +4 -0
  87. package/dist/endpoint-subjects.d.ts.map +1 -1
  88. package/dist/endpoint-subjects.js +6 -0
  89. package/dist/endpoint-subjects.js.map +1 -1
  90. package/dist/endpoint-traits.d.ts.map +1 -1
  91. package/dist/endpoint-traits.js +3 -20
  92. package/dist/endpoint-traits.js.map +1 -1
  93. package/dist/endpoint-verbs.d.ts +18 -151
  94. package/dist/endpoint-verbs.d.ts.map +1 -1
  95. package/dist/endpoint-verbs.js +4 -500
  96. package/dist/endpoint-verbs.js.map +1 -1
  97. package/dist/endpoint-work.d.ts.map +1 -1
  98. package/dist/endpoint-work.js +2 -17
  99. package/dist/endpoint-work.js.map +1 -1
  100. package/dist/endpoint.d.ts +113 -24
  101. package/dist/endpoint.d.ts.map +1 -1
  102. package/dist/endpoint.js +330 -78
  103. package/dist/endpoint.js.map +1 -1
  104. package/dist/goal-result-fact.d.ts +13 -0
  105. package/dist/goal-result-fact.d.ts.map +1 -0
  106. package/dist/goal-result-fact.js +40 -0
  107. package/dist/goal-result-fact.js.map +1 -0
  108. package/dist/index.d.ts +5 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +5 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/issued-accepted.d.ts +27 -0
  113. package/dist/issued-accepted.d.ts.map +1 -0
  114. package/dist/issued-accepted.js +62 -0
  115. package/dist/issued-accepted.js.map +1 -0
  116. package/dist/issued-authority.d.ts +3 -18
  117. package/dist/issued-authority.d.ts.map +1 -1
  118. package/dist/issued-authority.js +4 -55
  119. package/dist/issued-authority.js.map +1 -1
  120. package/dist/jetstream-missing.d.ts +4 -0
  121. package/dist/jetstream-missing.d.ts.map +1 -1
  122. package/dist/jetstream-missing.js +6 -0
  123. package/dist/jetstream-missing.js.map +1 -1
  124. package/dist/kv-scan.d.ts +15 -0
  125. package/dist/kv-scan.d.ts.map +1 -1
  126. package/dist/kv-scan.js +32 -0
  127. package/dist/kv-scan.js.map +1 -1
  128. package/dist/launch-material.d.ts.map +1 -1
  129. package/dist/launch-material.js +6 -2
  130. package/dist/launch-material.js.map +1 -1
  131. package/dist/lease.d.ts +50 -0
  132. package/dist/lease.d.ts.map +1 -1
  133. package/dist/lease.js +71 -0
  134. package/dist/lease.js.map +1 -1
  135. package/dist/lifecycle-state.d.ts +3 -0
  136. package/dist/lifecycle-state.d.ts.map +1 -1
  137. package/dist/lifecycle-state.js +7 -0
  138. package/dist/lifecycle-state.js.map +1 -1
  139. package/dist/manager-caller.d.ts.map +1 -1
  140. package/dist/manager-caller.js +2 -1
  141. package/dist/manager-caller.js.map +1 -1
  142. package/dist/one-line.d.ts +6 -0
  143. package/dist/one-line.d.ts.map +1 -0
  144. package/dist/one-line.js +8 -0
  145. package/dist/one-line.js.map +1 -0
  146. package/dist/peer-label.d.ts +16 -0
  147. package/dist/peer-label.d.ts.map +1 -0
  148. package/dist/peer-label.js +15 -0
  149. package/dist/peer-label.js.map +1 -0
  150. package/dist/permission-denied.d.ts +8 -0
  151. package/dist/permission-denied.d.ts.map +1 -0
  152. package/dist/permission-denied.js +15 -0
  153. package/dist/permission-denied.js.map +1 -0
  154. package/dist/presence-text.d.ts +6 -0
  155. package/dist/presence-text.d.ts.map +1 -0
  156. package/dist/presence-text.js +25 -0
  157. package/dist/presence-text.js.map +1 -0
  158. package/dist/private-tool-results.d.ts +253 -0
  159. package/dist/private-tool-results.d.ts.map +1 -0
  160. package/dist/private-tool-results.js +141 -0
  161. package/dist/private-tool-results.js.map +1 -0
  162. package/dist/provision.d.ts +5 -0
  163. package/dist/provision.d.ts.map +1 -1
  164. package/dist/provision.js +40 -16
  165. package/dist/provision.js.map +1 -1
  166. package/dist/remote-manager-authority.d.ts +17 -0
  167. package/dist/remote-manager-authority.d.ts.map +1 -1
  168. package/dist/remote-manager-authority.js +40 -1
  169. package/dist/remote-manager-authority.js.map +1 -1
  170. package/dist/resolve.d.ts +2 -13
  171. package/dist/resolve.d.ts.map +1 -1
  172. package/dist/resolve.js +2 -12
  173. package/dist/resolve.js.map +1 -1
  174. package/dist/run-driver-grants.d.ts +5 -0
  175. package/dist/run-driver-grants.d.ts.map +1 -1
  176. package/dist/run-driver-grants.js +16 -4
  177. package/dist/run-driver-grants.js.map +1 -1
  178. package/dist/run-journal.d.ts.map +1 -1
  179. package/dist/run-journal.js +1 -6
  180. package/dist/run-journal.js.map +1 -1
  181. package/dist/run-migration.d.ts +21 -0
  182. package/dist/run-migration.d.ts.map +1 -1
  183. package/dist/run-migration.js +2 -27
  184. package/dist/run-migration.js.map +1 -1
  185. package/dist/run-notice.d.ts +20 -0
  186. package/dist/run-notice.d.ts.map +1 -1
  187. package/dist/run-notice.js +3 -28
  188. package/dist/run-notice.js.map +1 -1
  189. package/dist/schema-bounds.d.ts +24 -0
  190. package/dist/schema-bounds.d.ts.map +1 -0
  191. package/dist/schema-bounds.js +74 -0
  192. package/dist/schema-bounds.js.map +1 -0
  193. package/dist/schema-profile.d.ts +11 -24
  194. package/dist/schema-profile.d.ts.map +1 -1
  195. package/dist/schema-profile.js +16 -73
  196. package/dist/schema-profile.js.map +1 -1
  197. package/dist/subjects.d.ts +17 -0
  198. package/dist/subjects.d.ts.map +1 -1
  199. package/dist/subjects.js +30 -2
  200. package/dist/subjects.js.map +1 -1
  201. package/dist/turn-contract.d.ts.map +1 -1
  202. package/dist/turn-contract.js +14 -4
  203. package/dist/turn-contract.js.map +1 -1
  204. package/package.json +14 -1
@@ -0,0 +1,176 @@
1
+ import type { NatsConnection } from "@nats-io/transport-node";
2
+ import { type EpCaller, type EpRoute } from "./endpoint-subjects.js";
3
+ import { type EndpointReply, type EpCorrelation, type EpRegistryReadFailedDetail, type EpErrorDetail, type EpBindBlock } from "./endpoint-envelope.js";
4
+ import type { CompiledContract } from "./schema-profile.js";
5
+ /** A verb's target: one input shape that builds BOTH halves of the §13.2/§13.3 targeted form —
6
+ * the subject's authorization-mode token block and the body target block — so they can never
7
+ * disagree. `self` carries no body target (the caller triple IS the target, §13.3). */
8
+ export type EpVerbTarget = {
9
+ mode: "self";
10
+ } | {
11
+ mode: "owner" | "any" | "child" | "ledger" | "handle" | "exact";
12
+ owner: string;
13
+ actor: string;
14
+ lifecycleUid: string;
15
+ mappingRevision?: number;
16
+ };
17
+ /** What every verb needs to address one command: the compiled §13.7 contracts (digests derive
18
+ * from `closureDigest`, exactly like the serve table), the caller triple the credential pins,
19
+ * and an optional display name for the advisory `from.name`. */
20
+ export interface EpVerbOp {
21
+ endpoint: string;
22
+ command: string;
23
+ contract: {
24
+ input: CompiledContract;
25
+ output: CompiledContract;
26
+ };
27
+ caller: EpCaller;
28
+ args?: Record<string, unknown>;
29
+ target?: EpVerbTarget;
30
+ /** The incarnation this caller resolved against (§13.3). Carrying it makes a responder that is
31
+ * not that incarnation refuse BEFORE running the command, which is the only place the refusal
32
+ * can be a guard rather than a report. Omitted ⇒ any member of the class may serve the call. */
33
+ bind?: EpBindBlock;
34
+ correlation?: EpCorrelation;
35
+ /** Opaque signed authorization-context slot (§13.3); carried as-is. */
36
+ auth?: string;
37
+ goalId?: string;
38
+ /**
39
+ * A caller-PINNED envelope id, replacing the per-publish nonce. A goal-accepting command binds
40
+ * its goal under the envelope id, so a durable caller that must resubmit idempotently — a
41
+ * workflow run resuming across a crash re-derives the same `requestId` and the far side serves
42
+ * the recorded acceptance instead of accepting twice — pins the id it derived BEFORE submitting.
43
+ * Validated as an id token; reply correlation still rides the per-publish subject nonce, so two
44
+ * calls pinning one id cannot cross-deliver replies.
45
+ */
46
+ id?: string;
47
+ /** Advisory display name for `from.name`; `from.id` is DERIVED from the caller triple, so it
48
+ * always equals the broker-authenticated sender principal (§13.3). */
49
+ name?: string;
50
+ }
51
+ export declare function buildRequest(space: string, route: EpRoute, op: EpVerbOp, verb: {
52
+ replyExpected: boolean;
53
+ deadlineMs?: number;
54
+ }): {
55
+ subject: string;
56
+ requestId: string;
57
+ n: string;
58
+ body: Uint8Array;
59
+ };
60
+ export declare function assertDeadline(deadlineMs: number, what?: string): number;
61
+ /** What a liveness probe can establish about ONE frozen instance (§13.5). Only `gone` is an
62
+ * AFFIRMATIVE fact — the broker itself reporting that the instance holds no subscription on its
63
+ * own rail. `live` and `unknown` are handled identically by the gather: they license nothing and
64
+ * the full deadline stands. There is deliberately NO verdict for "its presence entry expired":
65
+ * a lapsed heartbeat is absence of evidence, and reading absence of evidence as death is how a
66
+ * slow correct answer becomes a fast wrong one. */
67
+ export type EpInstanceLiveness = "gone" | "live" | "unknown";
68
+ /**
69
+ * Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
70
+ *
71
+ * A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
72
+ * it serves, so a request published there with a reply-to only the broker can reach either draws
73
+ * the broker's no-responders 503 — an affirmative statement that this instance holds no
74
+ * subscription — or draws nothing at all.
75
+ *
76
+ * NOTHING IS `unknown` BUT A REFUSED PUBLISH, AND NOTHING IS EVER DEATH. A slow broker, a responder
77
+ * that receives the request and declines to answer, and a perfectly healthy instance are
78
+ * indistinguishable from here, and every one of them must keep the caller waiting. A REFUSED
79
+ * PUBLISH IS THE ONE EXCEPTION, and it is a refusal rather than a verdict: `nc.publish` returns
80
+ * normally on a violation, so the permission watch (see {@link openPublishDenialWatch}, registered
81
+ * before the publish and released in the `finally`) races the budget and settles the probe
82
+ * `permission-denied` naming the refused subject as soon as the connection reports it — never a
83
+ * silent `unknown` that consumes the full budget on a permission problem. The failure direction is
84
+ * otherwise the whole safety argument: because only a 503 says anything, a short probe budget can
85
+ * never turn a live instance into a fast `missing` — it can only fail to speed up a dead one.
86
+ *
87
+ * It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
88
+ * rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
89
+ * an instance whose describe is broken still reads as present.
90
+ */
91
+ export declare function epProbeInstanceInterest(nc: NatsConnection, space: string, endpoint: string, instanceId: string, caller: EpCaller, opts: {
92
+ deadlineMs: number;
93
+ }): Promise<EpInstanceLiveness>;
94
+ /** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
95
+ * operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
96
+ export declare function raceBounded<T>(read: () => Promise<T> | T, ms: number, what: string, details?: EpErrorDetail[]): Promise<T>;
97
+ /** The {@link EP_REGISTRY_READ_FAILED} detail for `op`: set where the scatter's OWN registry read
98
+ * (freeze or reconcile) failed, so the failure is never read as the responders' silence. */
99
+ export declare const registryReadDetail: (op: EpVerbOp) => EpRegistryReadFailedDetail;
100
+ /** The caller's per-request reply subscription: its own rail narrowed to exactly this request's
101
+ * nonce (contained in the §13.9 reply-read grant), so concurrent calls never see each other. */
102
+ export declare function replySubjectFor(space: string, caller: EpCaller, n: string): string;
103
+ /** One attributed reply: the structural attribution comes from the reply SUBJECT (§13.2), never
104
+ * from the body. */
105
+ export interface EpAttributedReply {
106
+ reply: EndpointReply;
107
+ responder: {
108
+ endpoint: string;
109
+ instanceId: string;
110
+ epoch: number;
111
+ };
112
+ }
113
+ export declare function parseAttributedReply(space: string, subject: string, data: Uint8Array, requestId: string, op: EpVerbOp, expect?: {
114
+ instanceId?: string;
115
+ epoch?: number;
116
+ }): EpAttributedReply;
117
+ /**
118
+ * Call one command and await its reply within `deadlineMs`: on the `one` (queue-group anycast) or
119
+ * `inst` (stable incarnation) rail with `replyExpected: true`, subscribe the caller's own
120
+ * nonce-scoped reply subject BEFORE publishing, and resolve the first attributed reply — BOUND to
121
+ * the invoked identity (§13.2, the stale-reply rejection rule: "callers reject" stale-process replies), on BOTH rails:
122
+ * - `inst` pins the addressed `(instanceId, epoch)` incarnation up front; a stale-epoch reply is
123
+ * `expired` and a wrong-instance reply `internal`.
124
+ * - `one` cannot pin an instance up front (the queue picks the responder), so the caller MUST supply
125
+ * `currentEpoch(instanceId)`: after the reply lands, the answering incarnation's epoch is checked
126
+ * against its current registry epoch, and a superseded-but-still-connected queue member's reply is
127
+ * `expired`. The queue winner is NOT implicitly current — that is a check, not an assumption.
128
+ * `currencyReference` says what that hook returns, for the refusal's wording and marker: the
129
+ * documented `registry` read (default), or `bind` when a caller supplies its own resolve's epoch
130
+ * instead (the describe-bound default in {@link invokeCommand}), where a responder ahead of it is
131
+ * a successor and the caller's handle is the stale side.
132
+ *
133
+ * Application-level failure is NOT a throw: the resolved `reply` carries `ok: false` with the
134
+ * responder's structured error (§13.3). This boundary throws only for its own refusals: invalid args
135
+ * `bad-request`; an unparseable/mis-echoed/mis-attributed reply `internal` (a raw decode error never
136
+ * escapes); a throwing `currentEpoch` hook `internal` and a garbled (non-integer/negative) currency
137
+ * value `failed-precondition` (the read's own failure, never mislabeled staleness); a stale reply `expired`;
138
+ * NO responder `unavailable` (SPEC 13.5, the broker no-responders answer — the broker's no-responders 503 lands on a reply-to that
139
+ * sits on THIS caller's own rail, so a manual, fully-disposed probe distinguishes it from a slow
140
+ * responder without leaving a lingering request); a failed reply subscription `unavailable`; a
141
+ * broker publish violation `permission-denied` naming the refused subject (the connection-status
142
+ * watch that keeps a missing GRANT from reading as an unanswered deadline); the elapsed budget
143
+ * `deadline-exceeded`. Every subscription, timer, and status watch is released in the `finally`.
144
+ */
145
+ export declare function epCall(nc: NatsConnection, space: string, route: {
146
+ mode: "one";
147
+ } | {
148
+ mode: "inst";
149
+ instanceId: string;
150
+ epoch: number;
151
+ }, op: EpVerbOp, opts: {
152
+ deadlineMs: number;
153
+ currentEpoch?: (instanceId: string) => Promise<number> | number;
154
+ currencyReference?: "bind" | "registry";
155
+ signal?: AbortSignal;
156
+ }): Promise<EpAttributedReply>;
157
+ /**
158
+ * Cast one command: the same request form with `replyExpected: false` — the responder never
159
+ * replies, even on failure (§13.5 at-most-once), so this resolves once the request is flushed to
160
+ * the broker. `deadlineMs` is optional and advisory for `one`/`inst` (the envelope requires it only
161
+ * for calls and journal submissions, §13.3), but MANDATORY for `all`: §13.2's
162
+ * `checkRequestSubjectAgreement` refuses an all-rail request without a deadline regardless of
163
+ * `replyExpected`, and a cast has no reply on which that refusal could surface — so an all-cast
164
+ * without a deadline would be silently dropped by every responder. Fail loud at the caller instead.
165
+ *
166
+ * A broker publish refusal is NOT a flushed cast: `nc.publish` returns normally on a violation, so
167
+ * the permission watch (see {@link openPublishDenialWatch}, registered before the publish and
168
+ * released in the `finally`) races the flush, and a refused cast settles `permission-denied`
169
+ * naming the refused subject as soon as the connection reports it — never a resolution the caller
170
+ * could read as "it was cast". Nothing is added to the healthy path: a permitted publish is
171
+ * unaffected and the flush round-trip stands as the settling time.
172
+ */
173
+ export declare function epCast(nc: NatsConnection, space: string, route: EpRoute, op: EpVerbOp, opts?: {
174
+ deadlineMs?: number;
175
+ }): Promise<void>;
176
+ //# sourceMappingURL=endpoint-call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-call.d.ts","sourceRoot":"","sources":["../src/endpoint-call.ts"],"names":[],"mappings":"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"}