@cotal-ai/core 0.86.0 → 0.88.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/browser-control.d.ts +53 -1
- package/dist/browser-control.d.ts.map +1 -1
- package/dist/browser-control.js +102 -1
- package/dist/browser-control.js.map +1 -1
- package/dist/channels.d.ts +4 -0
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +6 -2
- package/dist/channels.js.map +1 -1
- package/dist/endpoint-action.d.ts +2 -2
- package/dist/endpoint-action.d.ts.map +1 -1
- package/dist/endpoint-action.js +4 -28
- package/dist/endpoint-action.js.map +1 -1
- package/dist/endpoint-goal-follow.d.ts +37 -0
- package/dist/endpoint-goal-follow.d.ts.map +1 -0
- package/dist/endpoint-goal-follow.js +328 -0
- package/dist/endpoint-goal-follow.js.map +1 -0
- package/dist/endpoint-grants.d.ts +0 -4
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +1 -7
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +4 -27
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +6 -307
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-signing.d.ts +1 -1
- package/dist/endpoint-signing.d.ts.map +1 -1
- package/dist/endpoint-signing.js +1 -1
- package/dist/endpoint-signing.js.map +1 -1
- package/dist/endpoint-subjects.d.ts +4 -0
- package/dist/endpoint-subjects.d.ts.map +1 -1
- package/dist/endpoint-subjects.js +6 -0
- package/dist/endpoint-subjects.js.map +1 -1
- package/dist/endpoint.d.ts +78 -13
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +253 -43
- package/dist/endpoint.js.map +1 -1
- package/dist/goal-result-fact.d.ts +13 -0
- package/dist/goal-result-fact.d.ts.map +1 -0
- package/dist/goal-result-fact.js +40 -0
- package/dist/goal-result-fact.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/jetstream-missing.d.ts +4 -0
- package/dist/jetstream-missing.d.ts.map +1 -1
- package/dist/jetstream-missing.js +6 -0
- package/dist/jetstream-missing.js.map +1 -1
- package/dist/kv-scan.d.ts +15 -0
- package/dist/kv-scan.d.ts.map +1 -1
- package/dist/kv-scan.js +32 -0
- package/dist/kv-scan.js.map +1 -1
- package/dist/launch-material.d.ts.map +1 -1
- package/dist/launch-material.js +6 -2
- package/dist/launch-material.js.map +1 -1
- package/dist/lease.d.ts +50 -0
- package/dist/lease.d.ts.map +1 -1
- package/dist/lease.js +71 -0
- package/dist/lease.js.map +1 -1
- package/dist/private-tool-results.d.ts +253 -0
- package/dist/private-tool-results.d.ts.map +1 -0
- package/dist/private-tool-results.js +141 -0
- package/dist/private-tool-results.js.map +1 -0
- package/dist/process-runtime.d.ts +6 -0
- package/dist/process-runtime.d.ts.map +1 -0
- package/dist/process-runtime.js +15 -0
- package/dist/process-runtime.js.map +1 -0
- package/dist/provision.d.ts +5 -0
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +32 -14
- package/dist/provision.js.map +1 -1
- package/dist/remote-manager-authority.d.ts +17 -0
- package/dist/remote-manager-authority.d.ts.map +1 -1
- package/dist/remote-manager-authority.js +40 -1
- package/dist/remote-manager-authority.js.map +1 -1
- package/dist/run-journal.d.ts.map +1 -1
- package/dist/run-journal.js +1 -6
- package/dist/run-journal.js.map +1 -1
- package/dist/subjects.d.ts +17 -0
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +29 -0
- package/dist/subjects.js.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -12,11 +12,16 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Authority stays the host's: it passes its own connection (`wsconnect`, its current credentials)
|
|
14
14
|
* and the caller it was issued. This entry mints, persists and selects nothing, and never retries.
|
|
15
|
+
*
|
|
16
|
+
* `openBrowserManagerCaller` builds that connection for one selected Manager instance from the
|
|
17
|
+
* signed-in person's `manager-caller` bearer, and adds the stock goal follow and the `goal-result`
|
|
18
|
+
* read back, so an accepted goal is followed and reconciled and never submitted again.
|
|
15
19
|
*/
|
|
16
|
-
import type
|
|
20
|
+
import { type NatsConnection } from "@nats-io/nats-core";
|
|
17
21
|
import { type ResolvedCommand, type ResolvedService } from "./endpoint-caller.js";
|
|
18
22
|
import type { EpAttributedReply, EpVerbTarget } from "./endpoint-call.js";
|
|
19
23
|
import type { EpCaller } from "./endpoint-subjects.js";
|
|
24
|
+
import type { GoalRef, GoalResultFact } from "./endpoint-action.js";
|
|
20
25
|
export { EpEnvelopeError, unansweredRequest, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
21
26
|
/** One validator emitted by the build-time generator (Ajv standalone, the §13.7 profile options). */
|
|
22
27
|
export type BrowserValidator = ((data: unknown) => boolean) & {
|
|
@@ -94,4 +99,51 @@ export declare function browserServiceSurface(descriptor: {
|
|
|
94
99
|
}, set: BrowserContractSet): Map<string, ResolvedCommand>;
|
|
95
100
|
/** Describe the endpoint on the selected instance and return a caller bound to that answer. */
|
|
96
101
|
export declare function openBrowserEndpointCaller(opts: BrowserEndpointCallerOptions): Promise<BrowserEndpointCaller>;
|
|
102
|
+
/** The signed-in person's authority for one connection. */
|
|
103
|
+
export interface BrowserManagerAuthority {
|
|
104
|
+
/** Their `manager-caller` bearer, issued for the selected instance (SPEC 10). */
|
|
105
|
+
bearer: string;
|
|
106
|
+
/** The space's sentinel credential, which lands the connection in the callout account. */
|
|
107
|
+
sentinelCreds: string;
|
|
108
|
+
}
|
|
109
|
+
export interface BrowserManagerCallerOptions {
|
|
110
|
+
/** WebSocket URL(s) of the space's broker. */
|
|
111
|
+
servers: string | string[];
|
|
112
|
+
space: string;
|
|
113
|
+
/** The principal and interactive lifecycle the issuer bound the bearer to. */
|
|
114
|
+
owner: string;
|
|
115
|
+
actor: string;
|
|
116
|
+
lifecycleUid: string;
|
|
117
|
+
/** The Manager instance the person selected. Required: there is no implicit selection. */
|
|
118
|
+
instanceId: string;
|
|
119
|
+
/** Returns fresh authority. Called on open and on every `reopen`. */
|
|
120
|
+
acquire: (signal?: AbortSignal) => Promise<BrowserManagerAuthority>;
|
|
121
|
+
/** The Manager's contracts, generated at the host's build from `managerBrowserContractSource()`. */
|
|
122
|
+
contracts: BrowserContractSet;
|
|
123
|
+
deadlineMs?: number;
|
|
124
|
+
signal?: AbortSignal;
|
|
125
|
+
}
|
|
126
|
+
export interface BrowserManagerCaller extends BrowserEndpointCaller {
|
|
127
|
+
/** Submit once under the caller's persisted envelope id and follow the goal to its terminal (the
|
|
128
|
+
* stock goal follow). A goal still open at the deadline answers `deadline-exceeded` with outcome
|
|
129
|
+
* `unknown`, and is read back with `reconcileGoal`, never submitted again. Refuses before sending when the
|
|
130
|
+
* Manager serves no `goal-result`, because an accepted goal could never be read back. */
|
|
131
|
+
followGoal(command: string, args: Record<string, unknown> | undefined, opts: BrowserInvokeOptions & {
|
|
132
|
+
id: string;
|
|
133
|
+
}): Promise<EpAttributedReply>;
|
|
134
|
+
/** Read an accepted goal's recorded terminal through the stock `goal-result` command. */
|
|
135
|
+
reconcileGoal(goalId: string, opts?: {
|
|
136
|
+
deadlineMs?: number;
|
|
137
|
+
signal?: AbortSignal;
|
|
138
|
+
}): Promise<EpAttributedReply & {
|
|
139
|
+
outcome: BrowserInvokeOutcome;
|
|
140
|
+
}>;
|
|
141
|
+
/** Close this connection and open a new one through `acquire`, re-checking every pin. */
|
|
142
|
+
reopen(signal?: AbortSignal): Promise<BrowserManagerCaller>;
|
|
143
|
+
close(): Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
/** `parseGoalResultFact` with Web Crypto: the same shape checks and the same outcome digest. */
|
|
146
|
+
export declare function verifyGoalResultFact(raw: unknown, subject: string, ref: GoalRef): Promise<GoalResultFact>;
|
|
147
|
+
/** Open a caller for one explicitly selected Manager instance. */
|
|
148
|
+
export declare function openBrowserManagerCaller(opts: BrowserManagerCallerOptions): Promise<BrowserManagerCaller>;
|
|
97
149
|
//# sourceMappingURL=browser-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-control.d.ts","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"browser-control.d.ts","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"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"}
|
package/dist/browser-control.js
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The browser control entry (`@cotal-ai/core/browser-control`): describe and invoke ANY endpoint from
|
|
3
|
+
* a strict-CSP page, with no Node built-in and no runtime code generation.
|
|
4
|
+
*
|
|
5
|
+
* The package root compiles a described service's §13.7 schema closures with Ajv at runtime, which a
|
|
6
|
+
* `script-src 'self'` page forbids. Here the HOST supplies the validators instead, generated at its
|
|
7
|
+
* own build time by `@cotal-ai/core/browser-validators-build` for the endpoint contracts it calls.
|
|
8
|
+
* A closure digest is the closure's identity, so the generated validator for a digest IS that
|
|
9
|
+
* closure's validator. A cluster or closure the host did not generate refuses as
|
|
10
|
+
* `unsupported-version` before any command is sent: never compiled, guessed or skipped. The read-only
|
|
11
|
+
* `describe` that names those digests has already run; no command, and so no mutation, follows it.
|
|
12
|
+
*
|
|
13
|
+
* Authority stays the host's: it passes its own connection (`wsconnect`, its current credentials)
|
|
14
|
+
* and the caller it was issued. This entry mints, persists and selects nothing, and never retries.
|
|
15
|
+
*
|
|
16
|
+
* `openBrowserManagerCaller` builds that connection for one selected Manager instance from the
|
|
17
|
+
* signed-in person's `manager-caller` bearer, and adds the stock goal follow and the `goal-result`
|
|
18
|
+
* read back, so an accepted goal is followed and reconciled and never submitted again.
|
|
19
|
+
*/
|
|
20
|
+
import { credsAuthenticator, tokenAuthenticator, wsconnect } from "@nats-io/nats-core";
|
|
21
|
+
import { describeEndpoint, goalFollowRefusal, invokeCommand } from "./endpoint-caller.js";
|
|
2
22
|
import { EpEnvelopeError, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
23
|
+
import { submitAndFollowGoalWith } from "./endpoint-goal-follow.js";
|
|
24
|
+
import { assertGoalResultFactShape, goalOutcomeDigestMismatch } from "./goal-result-fact.js";
|
|
25
|
+
import { DIGEST_PREFIX, canonicalJson } from "./canonical-json.js";
|
|
26
|
+
import { issuedCallerOfToken } from "./issued-accepted.js";
|
|
27
|
+
import { managerCallerBinding } from "./manager-caller.js";
|
|
3
28
|
// The stock classifiers, from THIS entry's own module instance: a host that imported them from the
|
|
4
29
|
// package root would hold a second EpEnvelopeError class, and `instanceof` would miss every error.
|
|
5
30
|
export { EpEnvelopeError, unansweredRequest, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
@@ -63,4 +88,80 @@ export async function openBrowserEndpointCaller(opts) {
|
|
|
63
88
|
},
|
|
64
89
|
};
|
|
65
90
|
}
|
|
91
|
+
/** The stock Manager endpoint (`BASELINE_LIFECYCLE_ENDPOINT`). */
|
|
92
|
+
const MANAGER_ENDPOINT = "manager";
|
|
93
|
+
const hex = (bytes) => Array.from(new Uint8Array(bytes), (b) => b.toString(16).padStart(2, "0")).join("");
|
|
94
|
+
const sha256Hex = async (text) => hex(await globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(text)));
|
|
95
|
+
/** `parseGoalResultFact` with Web Crypto: the same shape checks and the same outcome digest. */
|
|
96
|
+
export async function verifyGoalResultFact(raw, subject, ref) {
|
|
97
|
+
const o = assertGoalResultFactShape(raw, subject, ref);
|
|
98
|
+
if (DIGEST_PREFIX + await sha256Hex(canonicalJson(o.data === undefined ? null : o.data)) !== o.outcomeDigest)
|
|
99
|
+
throw goalOutcomeDigestMismatch(subject);
|
|
100
|
+
return o;
|
|
101
|
+
}
|
|
102
|
+
/** Open a caller for one explicitly selected Manager instance. */
|
|
103
|
+
export async function openBrowserManagerCaller(opts) {
|
|
104
|
+
opts.signal?.throwIfAborted();
|
|
105
|
+
const deadlineMs = opts.deadlineMs ?? 10_000;
|
|
106
|
+
const authority = await opts.acquire(opts.signal);
|
|
107
|
+
// The bearer must name this space, principal, lifecycle and instance before anything is dialled.
|
|
108
|
+
const bound = managerCallerBinding(authority.bearer, {
|
|
109
|
+
space: opts.space, owner: opts.owner, actor: opts.actor, lifecycleUid: opts.lifecycleUid, instanceId: opts.instanceId,
|
|
110
|
+
});
|
|
111
|
+
// The user-mode connect of `standaloneConnectOpts`: a fresh nonce names the connection and its inbox.
|
|
112
|
+
const connId = `ibx${globalThis.crypto.randomUUID().replace(/-/g, "")}`;
|
|
113
|
+
const nc = await wsconnect({
|
|
114
|
+
servers: opts.servers,
|
|
115
|
+
name: connId,
|
|
116
|
+
inboxPrefix: `_INBOX_${connId}`,
|
|
117
|
+
authenticator: [credsAuthenticator(new TextEncoder().encode(authority.sentinelCreds)), tokenAuthenticator(authority.bearer)],
|
|
118
|
+
maxReconnectAttempts: 0,
|
|
119
|
+
timeout: Math.min(deadlineMs, 5_000),
|
|
120
|
+
});
|
|
121
|
+
try {
|
|
122
|
+
opts.signal?.throwIfAborted();
|
|
123
|
+
// The person's manager view is issued at the callout (SPEC 13.15): read its generation back from
|
|
124
|
+
// this connection's accepted row. A missing row refuses; there is no legacy-rail retry.
|
|
125
|
+
const caller = await issuedCallerOfToken(nc, opts.space, (await sha256Hex(`cotal.accepted.v1\0${connId}`)).slice(0, 32), bound.caller);
|
|
126
|
+
const endpointCaller = await openBrowserEndpointCaller({
|
|
127
|
+
nc, space: opts.space, endpoint: MANAGER_ENDPOINT, caller, instanceId: bound.instanceId, contracts: opts.contracts, deadlineMs,
|
|
128
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
129
|
+
});
|
|
130
|
+
const reconcileGoal = (goalId, o = {}) => endpointCaller.invoke("goal-result", { goalId }, { deadlineMs: o.deadlineMs ?? deadlineMs, ...(o.signal ? { signal: o.signal } : {}) });
|
|
131
|
+
const handle = {
|
|
132
|
+
...endpointCaller,
|
|
133
|
+
async followGoal(command, args, o) {
|
|
134
|
+
if (typeof o?.id !== "string" || o.id.length === 0)
|
|
135
|
+
throw new EpEnvelopeError("bad-request", "followGoal needs the caller's persisted envelope id; a goal is never submitted under an id the caller cannot reconcile", undefined, "not-executed");
|
|
136
|
+
const unfollowable = goalFollowRefusal(endpointCaller.service);
|
|
137
|
+
if (unfollowable)
|
|
138
|
+
return unfollowable;
|
|
139
|
+
const followMs = o.deadlineMs ?? deadlineMs;
|
|
140
|
+
return submitAndFollowGoalWith(verifyGoalResultFact, nc, opts.space, MANAGER_ENDPOINT, caller, followMs, (signal) => endpointCaller.invoke(command, args, { ...o, ...(signal ? { signal } : {}) }), {
|
|
141
|
+
reconcile: async (goalId, _attributed, context) => {
|
|
142
|
+
const q = await reconcileGoal(goalId, { deadlineMs: Math.min(followMs, context.deadlineMs), signal: context.signal });
|
|
143
|
+
if (q.reply.ok !== true)
|
|
144
|
+
throw new Error(q.reply.error?.message ?? "goal-result query refused");
|
|
145
|
+
return q.reply.data;
|
|
146
|
+
},
|
|
147
|
+
...(o.signal ? { signal: o.signal } : {}),
|
|
148
|
+
});
|
|
149
|
+
},
|
|
150
|
+
reconcileGoal,
|
|
151
|
+
async reopen(signal) {
|
|
152
|
+
await handle.close();
|
|
153
|
+
return openBrowserManagerCaller({ ...opts, ...(signal ? { signal } : {}) });
|
|
154
|
+
},
|
|
155
|
+
async close() {
|
|
156
|
+
if (!nc.isClosed())
|
|
157
|
+
await nc.close();
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
return handle;
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
await nc.close();
|
|
164
|
+
throw e;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
66
167
|
//# sourceMappingURL=browser-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-control.js","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser-control.js","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAA8C,MAAM,sBAAsB,CAAC;AAEtI,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,mGAAmG;AACnG,mGAAmG;AACnG,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAwDnG,kGAAkG;AAClG,SAAS,UAAU,CAAC,GAAuB,EAAE,aAAqB;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,IAAI,OAAO,QAAQ,KAAK,UAAU;QAChC,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kBAAkB,aAAa,iGAAiG,CAAC,CAAC;IACrL,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAiC,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAwF,EAAE,GAAuB;IACrJ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC,MAAM,iGAAiG,CAAC,CAAC;QAC3L,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBACpB,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE;gBAChG,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU;aACjF,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAkC;IAChF,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;QACpG,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QAC1C,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,YAAY,SAAS,CAAC,UAAU,kCAAkC,IAAI,CAAC,UAAU,WAAW,CAAC,CAAC;IACjJ,MAAM,OAAO,GAAoB;QAC/B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS;QACpG,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU;KACtG,CAAC;IACF,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO;QACP,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9E,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU;gBACjF,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF,CAAC,CAAC;YACH,MAAM,OAAO,GAAyB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS;gBACzE,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;YAC3F,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAyCnC,MAAM,GAAG,GAAG,CAAC,KAAkB,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/H,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjJ,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY,EAAE,OAAe,EAAE,GAAY;IACpF,MAAM,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,aAAa,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa;QAAE,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACvJ,OAAO,CAA8B,CAAC;AACxC,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAiC;IAC9E,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,iGAAiG;IACjG,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE;QACnD,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU;KACtH,CAAC,CAAC;IACH,sGAAsG;IACtG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IACxE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,UAAU,MAAM,EAAE;QAC/B,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5H,oBAAoB,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;KACrC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC9B,iGAAiG;QACjG,wFAAwF;QACxF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,SAAS,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvI,MAAM,cAAc,GAAG,MAAM,yBAAyB,CAAC;YACrD,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU;YAC9H,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,aAAa,GAA0C,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAC9E,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1I,MAAM,MAAM,GAAyB;YACnC,GAAG,cAAc;YACjB,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,EAAE,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;oBAChD,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,wHAAwH,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;gBAChM,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,YAAY;oBAAE,OAAO,YAAY,CAAC;gBACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;gBAC5C,OAAO,uBAAuB,CAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EACrG,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;oBACzF,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;wBAChD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtH,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,2BAA2B,CAAC,CAAC;wBAChG,OAAO,CAAC,CAAC,KAAK,CAAC,IAA+D,CAAC;oBACjF,CAAC;oBACD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;YACP,CAAC;YACD,aAAa;YACb,KAAK,CAAC,MAAM,CAAC,MAAM;gBACjB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,wBAAwB,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,KAAK,CAAC,KAAK;gBACT,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;oBAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACvC,CAAC;SACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|
package/dist/channels.d.ts
CHANGED
|
@@ -114,5 +114,9 @@ export declare function readChannelRegistry(opts: {
|
|
|
114
114
|
* world-readable in-space, so no elevated view is needed for the read side. */
|
|
115
115
|
bearer?: string;
|
|
116
116
|
sentinelCreds?: string;
|
|
117
|
+
/** Read with one batched Direct Get ({@link lastKvEntries}) and bind no consumer. For a credential
|
|
118
|
+
* that holds the bare `$JS.API.DIRECT.GET` row on the registry stream (the `operator` profile) and
|
|
119
|
+
* no CONSUMER.DELETE there: the default scan's consumer outlives the read by five minutes (#4091). */
|
|
120
|
+
directGet?: boolean;
|
|
117
121
|
}): Promise<ChannelRegistryFile>;
|
|
118
122
|
//# sourceMappingURL=channels.d.ts.map
|
package/dist/channels.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
|
package/dist/channels.js
CHANGED
|
@@ -12,7 +12,7 @@ import {} from "@nats-io/transport-node";
|
|
|
12
12
|
import { dialerFor } from "./endpoint.js";
|
|
13
13
|
import { channelBucket, CHANNEL_DEFAULTS_KEY } from "./subjects.js";
|
|
14
14
|
import { standaloneConnectOpts } from "./streams.js";
|
|
15
|
-
import { liveKvEntries } from "./kv-scan.js";
|
|
15
|
+
import { lastKvEntries, liveKvEntries } from "./kv-scan.js";
|
|
16
16
|
/** Length caps on the model-facing registry text — unbounded text would stuff every agent's
|
|
17
17
|
* context and bloat the KV, so a write past these throws rather than clamps. */
|
|
18
18
|
export const MAX_CHANNEL_DESCRIPTION = 200;
|
|
@@ -196,7 +196,11 @@ export async function readChannelRegistry(opts) {
|
|
|
196
196
|
let defaults;
|
|
197
197
|
try {
|
|
198
198
|
// ONE pass: this was a `keys()` scan plus a per-key `get()`, so one round trip per channel.
|
|
199
|
-
|
|
199
|
+
// A Direct Get to a missing stream has no responder, so its 404 comes from STREAM.INFO first.
|
|
200
|
+
const entries = opts.directGet
|
|
201
|
+
? (await kv.status(), (await lastKvEntries(kv)).filter((e) => e.operation !== "DEL" && e.operation !== "PURGE"))
|
|
202
|
+
: await liveKvEntries(kv);
|
|
203
|
+
for (const e of entries) {
|
|
200
204
|
if (e.key === CHANNEL_DEFAULTS_KEY) {
|
|
201
205
|
try {
|
|
202
206
|
defaults = decodeChannelEntry(e);
|
package/dist/channels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAyB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAuB,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ import type { KV } from "@nats-io/kv";
|
|
|
40
40
|
import { type JetStreamClient, type JetStreamManager } from "@nats-io/jetstream";
|
|
41
41
|
import { type NatsConnection } from "@nats-io/transport-node";
|
|
42
42
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
43
|
+
import { GOAL_TERMINAL_STATES } from "./goal-result-fact.js";
|
|
43
44
|
import { type EpCaller, type ParsedEpRequest } from "./endpoint-subjects.js";
|
|
44
45
|
import { type Receipt, type ReceiptStoreContext } from "./endpoint-receipt.js";
|
|
45
46
|
/** A trusted, space-bonded action context: the KV + JS + JSM all DERIVE from one binding-layer
|
|
@@ -149,8 +150,7 @@ export declare function resolveGoalSubmission(ctx: ActionContext, request: Parse
|
|
|
149
150
|
/** The §13.6 single status vocabulary for every long-running surface. */
|
|
150
151
|
export declare const GOAL_STATES: readonly ["accepted", "running", "waiting", "cancelling", "succeeded", "failed", "cancelled", "expired", "uncertain"];
|
|
151
152
|
export type GoalState = (typeof GOAL_STATES)[number];
|
|
152
|
-
|
|
153
|
-
export declare const GOAL_TERMINAL_STATES: readonly GoalState[];
|
|
153
|
+
export { GOAL_TERMINAL_STATES };
|
|
154
154
|
/** The legal §13.6 transitions: `accepted → running ⇄ waiting`, `cancelling` between a cancel
|
|
155
155
|
* and its terminal, every non-terminal may project a terminal, a terminal absorbs. */
|
|
156
156
|
export declare function isLegalGoalTransition(from: GoalState, to: GoalState): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-action.d.ts","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAA+B,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint-action.d.ts","sourceRoot":"","sources":["../src/endpoint-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAA+B,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAA0E,MAAM,uBAAuB,CAAC;AAErI,OAAO,EAA4C,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIvH,OAAO,EAGL,KAAK,OAAO,EAAE,KAAK,mBAAmB,EACvC,MAAM,uBAAuB,CAAC;AAE/B;;;;;4BAK4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,EAAE,CAAC;IACP,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,wBAAsB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7F;AAMD;;;;6FAI6F;AAC7F,MAAM,WAAW,gBAAgB;IAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAE5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAKrE;AAUD;;;;;8FAK8F;AAC9F,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAG3D;;0EAE0E;AAC1E,wBAAgB,uBAAuB,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,KAAK,cAAc,CAUhG;AAQD,gGAAgG;AAChG,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;6DAG6D;AAC7D,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMjD;AAED;;;4CAG4C;AAC5C,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG3E;AAED;;;;;;;;;;;6EAW6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAExD;AAcD,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAAG,CAAC,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAc3E;;;;2FAI2F;AAC3F,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAcrE;AAeD,uEAAuE;AACvE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7C;;;;;qDAKqD;AACrD,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAoBhC;AAID,yEAAyE;AACzE,eAAO,MAAM,WAAW,uHAAuI,CAAC;AAChK,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;uFACuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAU7E;AAED;;iGAEiG;AACjG,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACzF;;;;;;oFAMgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;oGAGgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB;;;;4BAIwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6CD,6FAA6F;AAC7F,wBAAsB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CASpI;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;0FAE0F;AAC1F,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B/I;AA+BD,8EAA8E;AAC9E,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAQxI;AAwBD;;;;;;oGAMoG;AACpG,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAIxI;AAED;0DAC0D;AAC1D,MAAM,WAAW,YAAY;IAAG,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAmCrE;;;;;;4DAM4D;AAC5D,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,SAAS,EACb,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACjI,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;2FACuF;IACvF,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;2EAEuE;IACvE,SAAS,CAAC,EAAE,cAAc,CAAC;CACvB,GACL,OAAO,CAAC,eAAe,CAAC,CAqE1B;AAED;;;;;iEAKiE;AACjE,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAiCpG;AAID,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9F,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,CAAC,CAAC;IACL,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;4EAMwE;IACxE,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;oDAKoD;AACpD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACtI,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC3F,EAAE,EAAE,MAAM,GACT,cAAc,CAUhB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAElE;AAoCD,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,CAI/F;AAED;;gGAEgG;AAChG,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAM1G;AAsCD;;;;6FAI6F;AAC7F,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,OAAO,EAAE;QAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAA;KAAE,CAAC;CAClD;AAED;;;8EAG8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG;IAAE,OAAO,EAAE,SAAS,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AA0F3F;;;;gGAIgG;AAChG,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,qBAAqB,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAW7D;AAED;;;;;;6DAM6D;AAC7D,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/C;;;;;;;;;;uCAUuC;AACvC,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9P;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3C;;;;;;;;;;;kFAWkF;AAClF,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,eAAe,GACzI,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,eAAe,CAAC,EAAE,qBAAqB,GAAG;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE,CAAA;CAAE,CAAC,CAuInK;AAID,8FAA8F;AAC9F,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE;wCACwC;AACxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,eAAe,CAIzF;AAED;;;;;sDAKsD;AACtD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAA;CAAE,GACjF,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAID;;;8FAG8F;AAC9F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACtG,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAE1E;AAID;;;;;;;;;;yFAUyF;AACzF,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAC/F;;;;;;;;wGAQoG;IACpG,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvG;;;;sGAIkG;IAClG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA+BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAwB7E;AAED;;;;;4FAK4F;AAC5F,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GACpG,OAAO,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC,CAqB7E;AAED;0EAC0E;AAC1E,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED;;;2BAG2B;AAC3B,wBAAsB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAMzG;AAED;;;;yFAIyF;AACzF,wBAAsB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAe9J;AAID;+FAC+F;AAC/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAE7G"}
|
package/dist/endpoint-action.js
CHANGED
|
@@ -2,6 +2,7 @@ import { jetstream, jetstreamManager } from "@nats-io/jetstream";
|
|
|
2
2
|
import { headers as natsHeaders } from "@nats-io/transport-node";
|
|
3
3
|
import { canonicalJson, contractDigest } from "./canonical.js";
|
|
4
4
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
5
|
+
import { GOAL_TERMINAL_STATES, assertClosedKeys, assertGoalResultFactShape, goalOutcomeDigestMismatch } from "./goal-result-fact.js";
|
|
5
6
|
import { withDeadline } from "./deadline.js";
|
|
6
7
|
import { epfSubject, assertIdToken, endpointToken } from "./endpoint-subjects.js";
|
|
7
8
|
import { RECORD_KINDS, recordSpecKey, recordStatusKey, recordAtomicKey, createRecordEntry, updateRecordEntry, assertStatusValue, openRecordsBucket, readRecordLeader, decodeEntry } from "./endpoint-records.js";
|
|
@@ -115,11 +116,6 @@ function assertSafeInt(v, what) {
|
|
|
115
116
|
throw new EpEnvelopeError("failed-precondition", `${what} must be a non-negative safe integer; got ${JSON.stringify(v)}`);
|
|
116
117
|
return v;
|
|
117
118
|
}
|
|
118
|
-
function assertClosedKeys(o, allowed, what) {
|
|
119
|
-
for (const k of Object.keys(o))
|
|
120
|
-
if (!allowed.includes(k))
|
|
121
|
-
throw new EpEnvelopeError("internal", `${what} carries unknown field ${JSON.stringify(k)}; a closed schema admits no extras - garbled state never authorizes (SPEC 13.4)`);
|
|
122
|
-
}
|
|
123
119
|
function parseBind(raw, subject, goalId) {
|
|
124
120
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
125
121
|
throw new EpEnvelopeError("internal", `goal-bind fact on ${subject} is not an object; garbled mediated fact state never authorizes (SPEC 13.4)`);
|
|
@@ -199,8 +195,7 @@ export async function resolveGoalSubmission(ctx, request, goalId, fingerprint) {
|
|
|
199
195
|
// ---- the goal record: spec + status projection (§13.6 item 2/3, commit-path-owned) -----------
|
|
200
196
|
/** The §13.6 single status vocabulary for every long-running surface. */
|
|
201
197
|
export const GOAL_STATES = Object.freeze(["accepted", "running", "waiting", "cancelling", "succeeded", "failed", "cancelled", "expired", "uncertain"]);
|
|
202
|
-
|
|
203
|
-
export const GOAL_TERMINAL_STATES = Object.freeze(["succeeded", "failed", "cancelled", "expired", "uncertain"]);
|
|
198
|
+
export { GOAL_TERMINAL_STATES };
|
|
204
199
|
/** The legal §13.6 transitions: `accepted → running ⇄ waiting`, `cancelling` between a cancel
|
|
205
200
|
* and its terminal, every non-terminal may project a terminal, a terminal absorbs. */
|
|
206
201
|
export function isLegalGoalTransition(from, to) {
|
|
@@ -605,28 +600,9 @@ function assertTerminalAttribution(fact, spec, goalId) {
|
|
|
605
600
|
}
|
|
606
601
|
/** Closed validation, IDENTITY-BOUND to the ref, with the tombstone digest RE-VERIFIED. */
|
|
607
602
|
export function parseGoalResultFact(raw, subject, ref) {
|
|
608
|
-
|
|
609
|
-
throw new EpEnvelopeError("internal", `goal result fact on ${subject} is not an object; garbled state never authorizes (SPEC 13.6)`);
|
|
610
|
-
const o = raw;
|
|
611
|
-
assertClosedKeys(o, ["v", "goalId", "fingerprint", "state", "outcomeDigest", "data", "committer", "ts"], `goal result fact on ${subject}`);
|
|
612
|
-
if (o.committer !== undefined) {
|
|
613
|
-
const cm = o.committer;
|
|
614
|
-
if (cm === null || typeof cm !== "object" || Array.isArray(cm))
|
|
615
|
-
throw new EpEnvelopeError("internal", `goal result fact on ${subject} committer is not an object; garbled state never authorizes (SPEC 13.6)`);
|
|
616
|
-
assertClosedKeys(cm, ["instanceId", "epoch"], `goal result fact on ${subject} committer`);
|
|
617
|
-
if (typeof cm.instanceId !== "string" || cm.instanceId.length === 0
|
|
618
|
-
|| typeof cm.epoch !== "number" || !Number.isSafeInteger(cm.epoch) || cm.epoch < 0)
|
|
619
|
-
throw new EpEnvelopeError("internal", `goal result fact on ${subject} carries a malformed committer; garbled state never authorizes (SPEC 13.6)`);
|
|
620
|
-
}
|
|
621
|
-
if (o.v !== 1 || typeof o.goalId !== "string" || typeof o.fingerprint !== "string" || o.fingerprint.length === 0
|
|
622
|
-
|| typeof o.state !== "string" || !GOAL_TERMINAL_STATES.includes(o.state)
|
|
623
|
-
|| typeof o.outcomeDigest !== "string" || o.outcomeDigest.length === 0
|
|
624
|
-
|| typeof o.ts !== "number" || !Number.isSafeInteger(o.ts) || o.ts < 0)
|
|
625
|
-
throw new EpEnvelopeError("internal", `goal result fact on ${subject} is malformed; garbled state never authorizes (SPEC 13.6)`);
|
|
626
|
-
if (o.goalId !== ref.goalId)
|
|
627
|
-
throw new EpEnvelopeError("internal", `goal result fact on ${subject} names goalId ${JSON.stringify(o.goalId)}, not its subject's ${ref.goalId}; a mis-subjected fact never authorizes (SPEC 13.4)`);
|
|
603
|
+
const o = assertGoalResultFactShape(raw, subject, ref);
|
|
628
604
|
if (contractDigest(o.data === undefined ? null : o.data) !== o.outcomeDigest)
|
|
629
|
-
throw
|
|
605
|
+
throw goalOutcomeDigestMismatch(subject);
|
|
630
606
|
return o;
|
|
631
607
|
}
|
|
632
608
|
/** Read the goal's cached terminal outcome (`undefined` = not terminal yet). ONE goal, ONE
|