@cotal-ai/core 0.85.0 → 0.86.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.
- package/dist/agent-file.d.ts.map +1 -1
- package/dist/agent-file.js +10 -3
- package/dist/agent-file.js.map +1 -1
- package/dist/base64url.d.ts +5 -0
- package/dist/base64url.d.ts.map +1 -0
- package/dist/base64url.js +14 -0
- package/dist/base64url.js.map +1 -0
- package/dist/browser-control.d.ts +97 -0
- package/dist/browser-control.d.ts.map +1 -0
- package/dist/browser-control.js +66 -0
- package/dist/browser-control.js.map +1 -0
- package/dist/browser-validators-build.d.ts +23 -0
- package/dist/browser-validators-build.d.ts.map +1 -0
- package/dist/browser-validators-build.js +149 -0
- package/dist/browser-validators-build.js.map +1 -0
- package/dist/canonical-json.d.ts +14 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +121 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/canonical.d.ts +2 -10
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +2 -108
- package/dist/canonical.js.map +1 -1
- package/dist/checkpoint-answer.d.ts.map +1 -1
- package/dist/checkpoint-answer.js +3 -4
- package/dist/checkpoint-answer.js.map +1 -1
- package/dist/connector-setup.d.ts +10 -1
- package/dist/connector-setup.d.ts.map +1 -1
- package/dist/digest-id.d.ts +4 -0
- package/dist/digest-id.d.ts.map +1 -0
- package/dist/digest-id.js +7 -0
- package/dist/digest-id.js.map +1 -0
- package/dist/endpoint-action.d.ts.map +1 -1
- package/dist/endpoint-action.js +2 -16
- package/dist/endpoint-action.js.map +1 -1
- package/dist/endpoint-auth-digest.d.ts +7 -0
- package/dist/endpoint-auth-digest.d.ts.map +1 -0
- package/dist/endpoint-auth-digest.js +13 -0
- package/dist/endpoint-auth-digest.js.map +1 -0
- package/dist/endpoint-call.d.ts +176 -0
- package/dist/endpoint-call.d.ts.map +1 -0
- package/dist/endpoint-call.js +490 -0
- package/dist/endpoint-call.js.map +1 -0
- package/dist/endpoint-caller.d.ts +113 -0
- package/dist/endpoint-caller.d.ts.map +1 -0
- package/dist/endpoint-caller.js +260 -0
- package/dist/endpoint-caller.js.map +1 -0
- package/dist/endpoint-checkpoint.d.ts.map +1 -1
- package/dist/endpoint-checkpoint.js +5 -14
- package/dist/endpoint-checkpoint.js.map +1 -1
- package/dist/endpoint-envelope.d.ts +0 -6
- package/dist/endpoint-envelope.d.ts.map +1 -1
- package/dist/endpoint-envelope.js +17 -18
- package/dist/endpoint-envelope.js.map +1 -1
- package/dist/endpoint-guard.d.ts.map +1 -1
- package/dist/endpoint-guard.js +2 -10
- package/dist/endpoint-guard.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +36 -119
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +56 -300
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-publish-denial.d.ts +1 -1
- package/dist/endpoint-publish-denial.d.ts.map +1 -1
- package/dist/endpoint-publish-denial.js +1 -1
- package/dist/endpoint-publish-denial.js.map +1 -1
- package/dist/endpoint-receipt.d.ts.map +1 -1
- package/dist/endpoint-receipt.js +2 -16
- package/dist/endpoint-receipt.js.map +1 -1
- package/dist/endpoint-subjects.d.ts.map +1 -1
- package/dist/endpoint-subjects.js.map +1 -1
- package/dist/endpoint-traits.d.ts.map +1 -1
- package/dist/endpoint-traits.js +3 -20
- package/dist/endpoint-traits.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +18 -151
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +4 -500
- package/dist/endpoint-verbs.js.map +1 -1
- package/dist/endpoint-work.d.ts.map +1 -1
- package/dist/endpoint-work.js +2 -17
- package/dist/endpoint-work.js.map +1 -1
- package/dist/endpoint.d.ts +39 -15
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +90 -42
- package/dist/endpoint.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/issued-accepted.d.ts +27 -0
- package/dist/issued-accepted.d.ts.map +1 -0
- package/dist/issued-accepted.js +62 -0
- package/dist/issued-accepted.js.map +1 -0
- package/dist/issued-authority.d.ts +3 -18
- package/dist/issued-authority.d.ts.map +1 -1
- package/dist/issued-authority.js +4 -55
- package/dist/issued-authority.js.map +1 -1
- package/dist/lifecycle-state.d.ts +3 -0
- package/dist/lifecycle-state.d.ts.map +1 -1
- package/dist/lifecycle-state.js +7 -0
- package/dist/lifecycle-state.js.map +1 -1
- package/dist/manager-caller.d.ts.map +1 -1
- package/dist/manager-caller.js +2 -1
- package/dist/manager-caller.js.map +1 -1
- package/dist/one-line.d.ts +6 -0
- package/dist/one-line.d.ts.map +1 -0
- package/dist/one-line.js +8 -0
- package/dist/one-line.js.map +1 -0
- package/dist/peer-label.d.ts +16 -0
- package/dist/peer-label.d.ts.map +1 -0
- package/dist/peer-label.js +15 -0
- package/dist/peer-label.js.map +1 -0
- package/dist/permission-denied.d.ts +8 -0
- package/dist/permission-denied.d.ts.map +1 -0
- package/dist/permission-denied.js +15 -0
- package/dist/permission-denied.js.map +1 -0
- package/dist/presence-text.d.ts +6 -0
- package/dist/presence-text.d.ts.map +1 -0
- package/dist/presence-text.js +25 -0
- package/dist/presence-text.js.map +1 -0
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +8 -2
- package/dist/provision.js.map +1 -1
- package/dist/resolve.d.ts +2 -13
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +2 -12
- package/dist/resolve.js.map +1 -1
- package/dist/run-driver-grants.d.ts +5 -0
- package/dist/run-driver-grants.d.ts.map +1 -1
- package/dist/run-driver-grants.js +16 -4
- package/dist/run-driver-grants.js.map +1 -1
- package/dist/run-migration.d.ts +21 -0
- package/dist/run-migration.d.ts.map +1 -1
- package/dist/run-migration.js +2 -27
- package/dist/run-migration.js.map +1 -1
- package/dist/run-notice.d.ts +20 -0
- package/dist/run-notice.d.ts.map +1 -1
- package/dist/run-notice.js +3 -28
- package/dist/run-notice.js.map +1 -1
- package/dist/schema-bounds.d.ts +24 -0
- package/dist/schema-bounds.d.ts.map +1 -0
- package/dist/schema-bounds.js +74 -0
- package/dist/schema-bounds.js.map +1 -0
- package/dist/schema-profile.d.ts +11 -24
- package/dist/schema-profile.d.ts.map +1 -1
- package/dist/schema-profile.js +16 -73
- package/dist/schema-profile.js.map +1 -1
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +1 -2
- package/dist/subjects.js.map +1 -1
- package/dist/turn-contract.d.ts.map +1 -1
- package/dist/turn-contract.js +14 -4
- package/dist/turn-contract.js.map +1 -1
- package/package.json +14 -1
package/dist/endpoint-verbs.d.ts
CHANGED
|
@@ -1,157 +1,24 @@
|
|
|
1
|
-
import type { NatsConnection } from "@nats-io/transport-node";
|
|
2
|
-
import { type EpCaller, type EpRoute } from "./endpoint-subjects.js";
|
|
3
|
-
import { EpEnvelopeError, type EndpointReply, type EndpointEvent, type EpCorrelation, type EpBindBlock } from "./endpoint-envelope.js";
|
|
4
|
-
import type { JetStreamManager } from "@nats-io/jetstream";
|
|
5
|
-
import type { CompiledContract } from "./schema-profile.js";
|
|
6
|
-
import { type FrozenInstance } from "./endpoint-service.js";
|
|
7
|
-
/** A verb's target: one input shape that builds BOTH halves of the §13.2/§13.3 targeted form —
|
|
8
|
-
* the subject's authorization-mode token block and the body target block — so they can never
|
|
9
|
-
* disagree. `self` carries no body target (the caller triple IS the target, §13.3). */
|
|
10
|
-
export type EpVerbTarget = {
|
|
11
|
-
mode: "self";
|
|
12
|
-
} | {
|
|
13
|
-
mode: "owner" | "any" | "child" | "ledger" | "handle" | "exact";
|
|
14
|
-
owner: string;
|
|
15
|
-
actor: string;
|
|
16
|
-
lifecycleUid: string;
|
|
17
|
-
mappingRevision?: number;
|
|
18
|
-
};
|
|
19
|
-
/** What every verb needs to address one command: the compiled §13.7 contracts (digests derive
|
|
20
|
-
* from `closureDigest`, exactly like the serve table), the caller triple the credential pins,
|
|
21
|
-
* and an optional display name for the advisory `from.name`. */
|
|
22
|
-
export interface EpVerbOp {
|
|
23
|
-
endpoint: string;
|
|
24
|
-
command: string;
|
|
25
|
-
contract: {
|
|
26
|
-
input: CompiledContract;
|
|
27
|
-
output: CompiledContract;
|
|
28
|
-
};
|
|
29
|
-
caller: EpCaller;
|
|
30
|
-
args?: Record<string, unknown>;
|
|
31
|
-
target?: EpVerbTarget;
|
|
32
|
-
/** The incarnation this caller resolved against (§13.3). Carrying it makes a responder that is
|
|
33
|
-
* not that incarnation refuse BEFORE running the command, which is the only place the refusal
|
|
34
|
-
* can be a guard rather than a report. Omitted ⇒ any member of the class may serve the call. */
|
|
35
|
-
bind?: EpBindBlock;
|
|
36
|
-
correlation?: EpCorrelation;
|
|
37
|
-
/** Opaque signed authorization-context slot (§13.3); carried as-is. */
|
|
38
|
-
auth?: string;
|
|
39
|
-
goalId?: string;
|
|
40
|
-
/**
|
|
41
|
-
* A caller-PINNED envelope id, replacing the per-publish nonce. A goal-accepting command binds
|
|
42
|
-
* its goal under the envelope id, so a durable caller that must resubmit idempotently — a
|
|
43
|
-
* workflow run resuming across a crash re-derives the same `requestId` and the far side serves
|
|
44
|
-
* the recorded acceptance instead of accepting twice — pins the id it derived BEFORE submitting.
|
|
45
|
-
* Validated as an id token; reply correlation still rides the per-publish subject nonce, so two
|
|
46
|
-
* calls pinning one id cannot cross-deliver replies.
|
|
47
|
-
*/
|
|
48
|
-
id?: string;
|
|
49
|
-
/** Advisory display name for `from.name`; `from.id` is DERIVED from the caller triple, so it
|
|
50
|
-
* always equals the broker-authenticated sender principal (§13.3). */
|
|
51
|
-
name?: string;
|
|
52
|
-
}
|
|
53
|
-
/** What a liveness probe can establish about ONE frozen instance (§13.5). Only `gone` is an
|
|
54
|
-
* AFFIRMATIVE fact — the broker itself reporting that the instance holds no subscription on its
|
|
55
|
-
* own rail. `live` and `unknown` are handled identically by the gather: they license nothing and
|
|
56
|
-
* the full deadline stands. There is deliberately NO verdict for "its presence entry expired":
|
|
57
|
-
* a lapsed heartbeat is absence of evidence, and reading absence of evidence as death is how a
|
|
58
|
-
* slow correct answer becomes a fast wrong one. */
|
|
59
|
-
export type EpInstanceLiveness = "gone" | "live" | "unknown";
|
|
60
|
-
/**
|
|
61
|
-
* Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
|
|
62
|
-
*
|
|
63
|
-
* A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
|
|
64
|
-
* it serves, so a request published there with a reply-to only the broker can reach either draws
|
|
65
|
-
* the broker's no-responders 503 — an affirmative statement that this instance holds no
|
|
66
|
-
* subscription — or draws nothing at all.
|
|
67
|
-
*
|
|
68
|
-
* NOTHING IS `unknown` BUT A REFUSED PUBLISH, AND NOTHING IS EVER DEATH. A slow broker, a responder
|
|
69
|
-
* that receives the request and declines to answer, and a perfectly healthy instance are
|
|
70
|
-
* indistinguishable from here, and every one of them must keep the caller waiting. A REFUSED
|
|
71
|
-
* PUBLISH IS THE ONE EXCEPTION, and it is a refusal rather than a verdict: `nc.publish` returns
|
|
72
|
-
* normally on a violation, so the permission watch (see {@link openPublishDenialWatch}, registered
|
|
73
|
-
* before the publish and released in the `finally`) races the budget and settles the probe
|
|
74
|
-
* `permission-denied` naming the refused subject as soon as the connection reports it — never a
|
|
75
|
-
* silent `unknown` that consumes the full budget on a permission problem. The failure direction is
|
|
76
|
-
* otherwise the whole safety argument: because only a 503 says anything, a short probe budget can
|
|
77
|
-
* never turn a live instance into a fast `missing` — it can only fail to speed up a dead one.
|
|
78
|
-
*
|
|
79
|
-
* It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
|
|
80
|
-
* rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
|
|
81
|
-
* an instance whose describe is broken still reads as present.
|
|
82
|
-
*/
|
|
83
|
-
export declare function epProbeInstanceInterest(nc: NatsConnection, space: string, endpoint: string, instanceId: string, caller: EpCaller, opts: {
|
|
84
|
-
deadlineMs: number;
|
|
85
|
-
}): Promise<EpInstanceLiveness>;
|
|
86
|
-
/** One attributed reply: the structural attribution comes from the reply SUBJECT (§13.2), never
|
|
87
|
-
* from the body. */
|
|
88
|
-
export interface EpAttributedReply {
|
|
89
|
-
reply: EndpointReply;
|
|
90
|
-
responder: {
|
|
91
|
-
endpoint: string;
|
|
92
|
-
instanceId: string;
|
|
93
|
-
epoch: number;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
1
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* - `inst` pins the addressed `(instanceId, epoch)` incarnation up front; a stale-epoch reply is
|
|
102
|
-
* `expired` and a wrong-instance reply `internal`.
|
|
103
|
-
* - `one` cannot pin an instance up front (the queue picks the responder), so the caller MUST supply
|
|
104
|
-
* `currentEpoch(instanceId)`: after the reply lands, the answering incarnation's epoch is checked
|
|
105
|
-
* against its current registry epoch, and a superseded-but-still-connected queue member's reply is
|
|
106
|
-
* `expired`. The queue winner is NOT implicitly current — that is a check, not an assumption.
|
|
107
|
-
* `currencyReference` says what that hook returns, for the refusal's wording and marker: the
|
|
108
|
-
* documented `registry` read (default), or `bind` when a caller supplies its own resolve's epoch
|
|
109
|
-
* instead (the describe-bound default in {@link invokeCommand}), where a responder ahead of it is
|
|
110
|
-
* a successor and the caller's handle is the stale side.
|
|
2
|
+
* v0.4 caller-side verbs (SPEC §13.5 "Verbs", §13.2 rails, §13.3 envelope) — call, cast, watch,
|
|
3
|
+
* and scatter over the endpoint rails. The verb never changes the subject grammar (§13.2): a
|
|
4
|
+
* call and a cast publish the same request form; the verb rides `replyExpected`, and only the
|
|
5
|
+
* §13.5 gather semantics differ.
|
|
111
6
|
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* responder without leaving a lingering request); a failed reply subscription `unavailable`; a
|
|
120
|
-
* broker publish violation `permission-denied` naming the refused subject (the connection-status
|
|
121
|
-
* watch that keeps a missing GRANT from reading as an unanswered deadline); the elapsed budget
|
|
122
|
-
* `deadline-exceeded`. Every subscription, timer, and status watch is released in the `finally`.
|
|
7
|
+
* Boundary discipline mirrors the serve side: args validate against the COMPILED input contract
|
|
8
|
+
* before publish (a caller never emits a request its own contract refuses), the pinned
|
|
9
|
+
* invocation digests are DERIVED from each contract's closure digest, and every consumed reply
|
|
10
|
+
* or event is runtime-validated at this, its consuming boundary (§13.3) — subject-attributed
|
|
11
|
+
* (instance + epoch from the SUBJECT, never the body), id-echoed, and schema-checked under the
|
|
12
|
+
* same fixed §13.8 budget the responder ran. Journal-class work never rides these rails: the
|
|
13
|
+
* verbs pin `class: "ephemeral"`; submissions go through the `epj` journal machinery (§13.4).
|
|
123
14
|
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
deadlineMs: number;
|
|
132
|
-
currentEpoch?: (instanceId: string) => Promise<number> | number;
|
|
133
|
-
currencyReference?: "bind" | "registry";
|
|
134
|
-
signal?: AbortSignal;
|
|
135
|
-
}): Promise<EpAttributedReply>;
|
|
136
|
-
/**
|
|
137
|
-
* Cast one command: the same request form with `replyExpected: false` — the responder never
|
|
138
|
-
* replies, even on failure (§13.5 at-most-once), so this resolves once the request is flushed to
|
|
139
|
-
* the broker. `deadlineMs` is optional and advisory for `one`/`inst` (the envelope requires it only
|
|
140
|
-
* for calls and journal submissions, §13.3), but MANDATORY for `all`: §13.2's
|
|
141
|
-
* `checkRequestSubjectAgreement` refuses an all-rail request without a deadline regardless of
|
|
142
|
-
* `replyExpected`, and a cast has no reply on which that refusal could surface — so an all-cast
|
|
143
|
-
* without a deadline would be silently dropped by every responder. Fail loud at the caller instead.
|
|
144
|
-
*
|
|
145
|
-
* A broker publish refusal is NOT a flushed cast: `nc.publish` returns normally on a violation, so
|
|
146
|
-
* the permission watch (see {@link openPublishDenialWatch}, registered before the publish and
|
|
147
|
-
* released in the `finally`) races the flush, and a refused cast settles `permission-denied`
|
|
148
|
-
* naming the refused subject as soon as the connection reports it — never a resolution the caller
|
|
149
|
-
* could read as "it was cast". Nothing is added to the healthy path: a permitted publish is
|
|
150
|
-
* unaffected and the flush round-trip stands as the settling time.
|
|
151
|
-
*/
|
|
152
|
-
export declare function epCast(nc: NatsConnection, space: string, route: EpRoute, op: EpVerbOp, opts?: {
|
|
153
|
-
deadlineMs?: number;
|
|
154
|
-
}): Promise<void>;
|
|
15
|
+
import type { NatsConnection } from "@nats-io/transport-node";
|
|
16
|
+
import { EpEnvelopeError, type EndpointEvent } from "./endpoint-envelope.js";
|
|
17
|
+
import type { JetStreamManager } from "@nats-io/jetstream";
|
|
18
|
+
import { type FrozenInstance } from "./endpoint-service.js";
|
|
19
|
+
import { type EpAttributedReply, type EpInstanceLiveness, type EpVerbOp } from "./endpoint-call.js";
|
|
20
|
+
export { epCall, epCast, epProbeInstanceInterest } from "./endpoint-call.js";
|
|
21
|
+
export type { EpAttributedReply, EpInstanceLiveness, EpVerbOp, EpVerbTarget } from "./endpoint-call.js";
|
|
155
22
|
/** One attributed event: identity and epoch come from the SUBJECT (§13.2: forge-locked tokens;
|
|
156
23
|
* a stale-epoch event is attributably stale — surfaced, never hidden). */
|
|
157
24
|
export interface EpAttributedEvent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"endpoint-verbs.d.ts","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
|