@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/agent-file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-file.d.ts","sourceRoot":"","sources":["../src/agent-file.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;gGAG4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;sGAGkG;IAClG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;yCAGqC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;qFAEiF;IACjF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;oFAEgF;IAChF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;0EACsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;oGAGgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;;;;;;;uDAQmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;oGAIgG;IAChG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;qDACiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-file.d.ts","sourceRoot":"","sources":["../src/agent-file.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-file.js
CHANGED
|
@@ -52,6 +52,11 @@ function parseFrontmatter(src, path) {
|
|
|
52
52
|
const AGENT_FILE_FENCE = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;
|
|
53
53
|
/** Named error prefix when a persona prompt starts with `---` but is not a closed, valid agent file. */
|
|
54
54
|
export const PROMPT_FRONTMATTER = "prompt-frontmatter";
|
|
55
|
+
/** Frontmatter keys {@link AgentDef} models. The parser keeps them out of `meta`, and the writer
|
|
56
|
+
* refuses a `meta` entry that names one, so a hint can never overwrite a field the file models. */
|
|
57
|
+
const MODELED_KEYS = new Set(["name", "role", "kind", "description", "tags", "subscribe", "allowSubscribe", "allowPublish", "quiet", "muted", "agent", "model", "variant", "launchOptions", "capabilities", "owner"]);
|
|
58
|
+
/** Pre-ACL field names the parser refuses outright, so the writer must never emit them from `meta`. */
|
|
59
|
+
const RENAMED_KEYS = ["channels", "publish"];
|
|
55
60
|
/** Refuse a whitespace-only `model` or `variant`. Launchers and connectors read these as set or
|
|
56
61
|
* absent, and a blank value is neither, so letting one through leaves each of them to drop, render
|
|
57
62
|
* or refuse it on its own. */
|
|
@@ -104,7 +109,7 @@ export function parseAgentFileSource(src, path) {
|
|
|
104
109
|
// The pre-ACL field names were renamed (channels→subscribe, publish→allowPublish, +allowSubscribe).
|
|
105
110
|
// Fail loud on the old names rather than silently sweeping them into meta and ignoring them —
|
|
106
111
|
// an unmigrated file would otherwise lose its read/post scope without warning (no silent degrade).
|
|
107
|
-
for (const old of
|
|
112
|
+
for (const old of RENAMED_KEYS)
|
|
108
113
|
if (old in fm)
|
|
109
114
|
throw new Error(`agent file ${path}: "${old}" was renamed - use "subscribe"/"allowSubscribe" (read) and "allowPublish" (post)`);
|
|
110
115
|
const subscribe = list("subscribe");
|
|
@@ -164,10 +169,9 @@ export function parseAgentFileSource(src, path) {
|
|
|
164
169
|
}
|
|
165
170
|
// Sweep every scalar frontmatter key we don't model into meta, verbatim — connector launcher
|
|
166
171
|
// hints ride here so core stays ignorant of surface-specific keys.
|
|
167
|
-
const known = new Set(["name", "role", "kind", "description", "tags", "subscribe", "allowSubscribe", "allowPublish", "quiet", "muted", "agent", "model", "variant", "launchOptions", "capabilities", "owner"]);
|
|
168
172
|
const meta = {};
|
|
169
173
|
for (const [k, v] of Object.entries(fm))
|
|
170
|
-
if (!
|
|
174
|
+
if (!MODELED_KEYS.has(k) && v !== null && typeof v !== "object")
|
|
171
175
|
meta[k] = String(v);
|
|
172
176
|
return {
|
|
173
177
|
name,
|
|
@@ -199,6 +203,9 @@ export function saveAgentFile(path, def) {
|
|
|
199
203
|
throw new Error('saveAgentFile: "name" is required');
|
|
200
204
|
assertValidName(def.name);
|
|
201
205
|
assertLaunchSelectors(def, "saveAgentFile");
|
|
206
|
+
for (const k of Object.keys(def.meta ?? {}))
|
|
207
|
+
if (MODELED_KEYS.has(k) || RENAMED_KEYS.includes(k))
|
|
208
|
+
throw new Error(`saveAgentFile: meta key "${k}" collides with a modeled frontmatter field`);
|
|
202
209
|
// The read set must be SAID, not inferred. A persona saved without one used to inherit a channel
|
|
203
210
|
// nobody chose, and the file gave a later reader no way to tell a deliberate silence from a
|
|
204
211
|
// forgotten field. Refusing here rather than filling in an empty list keeps that distinction:
|
package/dist/agent-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-file.js","sourceRoot":"","sources":["../src/agent-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-file.js","sourceRoot":"","sources":["../src/agent-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** RFC 4648 base64url without padding, the form `Buffer#toString("base64url")` produces, on any host. */
|
|
2
|
+
export declare function base64url(bytes: Uint8Array): string;
|
|
3
|
+
/** Decode base64url (padding optional) to bytes, on any host. */
|
|
4
|
+
export declare function fromBase64url(text: string): Uint8Array;
|
|
5
|
+
//# sourceMappingURL=base64url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64url.d.ts","sourceRoot":"","sources":["../src/base64url.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAInD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAItD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** RFC 4648 base64url without padding, the form `Buffer#toString("base64url")` produces, on any host. */
|
|
2
|
+
export function base64url(bytes) {
|
|
3
|
+
let binary = "";
|
|
4
|
+
for (const b of bytes)
|
|
5
|
+
binary += String.fromCharCode(b);
|
|
6
|
+
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
7
|
+
}
|
|
8
|
+
/** Decode base64url (padding optional) to bytes, on any host. */
|
|
9
|
+
export function fromBase64url(text) {
|
|
10
|
+
const b64 = text.replace(/-/g, "+").replace(/_/g, "/");
|
|
11
|
+
const binary = atob(b64 + "=".repeat((4 - (b64.length % 4)) % 4));
|
|
12
|
+
return Uint8Array.from(binary, (ch) => ch.charCodeAt(0));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=base64url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64url.js","sourceRoot":"","sources":["../src/base64url.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
import type { NatsConnection } from "@nats-io/nats-core";
|
|
17
|
+
import { type ResolvedCommand, type ResolvedService } from "./endpoint-caller.js";
|
|
18
|
+
import type { EpAttributedReply, EpVerbTarget } from "./endpoint-call.js";
|
|
19
|
+
import type { EpCaller } from "./endpoint-subjects.js";
|
|
20
|
+
export { EpEnvelopeError, unansweredRequest, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
21
|
+
/** One validator emitted by the build-time generator (Ajv standalone, the §13.7 profile options). */
|
|
22
|
+
export type BrowserValidator = ((data: unknown) => boolean) & {
|
|
23
|
+
errors?: Array<{
|
|
24
|
+
instancePath?: string;
|
|
25
|
+
message?: string;
|
|
26
|
+
}> | null;
|
|
27
|
+
};
|
|
28
|
+
/** One cluster document the generator verified against its recorded digest. */
|
|
29
|
+
export interface BrowserCluster {
|
|
30
|
+
readonly urn: string;
|
|
31
|
+
readonly revision: number;
|
|
32
|
+
readonly commands: ReadonlyArray<{
|
|
33
|
+
name: string;
|
|
34
|
+
class: string;
|
|
35
|
+
targeted: boolean;
|
|
36
|
+
modes?: readonly string[];
|
|
37
|
+
capability: string;
|
|
38
|
+
inputDigest: string;
|
|
39
|
+
outputDigest: string;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/** The generated module's export: validators by closure digest, cluster documents by cluster digest. */
|
|
43
|
+
export interface BrowserContractSet {
|
|
44
|
+
readonly validators: Readonly<Record<string, BrowserValidator>>;
|
|
45
|
+
readonly clusters: Readonly<Record<string, BrowserCluster>>;
|
|
46
|
+
}
|
|
47
|
+
export interface BrowserEndpointCallerOptions {
|
|
48
|
+
/** The host's own connection, opened with its current credentials. */
|
|
49
|
+
nc: NatsConnection;
|
|
50
|
+
space: string;
|
|
51
|
+
endpoint: string;
|
|
52
|
+
/** The caller the host was issued for this connection. */
|
|
53
|
+
caller: EpCaller;
|
|
54
|
+
/** The instance the host selected. Required: there is no implicit selection. */
|
|
55
|
+
instanceId: string;
|
|
56
|
+
contracts: BrowserContractSet;
|
|
57
|
+
deadlineMs?: number;
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}
|
|
60
|
+
export interface BrowserInvokeOptions {
|
|
61
|
+
target?: EpVerbTarget;
|
|
62
|
+
deadlineMs?: number;
|
|
63
|
+
signal?: AbortSignal;
|
|
64
|
+
/** Caller-pinned envelope id; persist it before sending so a reload can reconcile, not resend. */
|
|
65
|
+
id?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* What one invoke established. `replied` means the pinned responder answered ok; it is not a
|
|
69
|
+
* completed domain goal. `refused-before-effect` is a refusal the stock envelope proves ran nothing.
|
|
70
|
+
* `error-reply` is any other error reply. A request that got no answer throws the stock unanswered
|
|
71
|
+
* error (`unansweredRequest`): its effect is unknown and this entry never repeats it.
|
|
72
|
+
*/
|
|
73
|
+
export type BrowserInvokeOutcome = "replied" | "refused-before-effect" | "error-reply";
|
|
74
|
+
export interface BrowserEndpointCaller {
|
|
75
|
+
readonly instanceId: string;
|
|
76
|
+
readonly caller: EpCaller;
|
|
77
|
+
/** The described surface with host contracts, pinned to `instanceId` and its describe epoch. */
|
|
78
|
+
readonly service: ResolvedService;
|
|
79
|
+
invoke(command: string, args?: Record<string, unknown>, opts?: BrowserInvokeOptions): Promise<EpAttributedReply & {
|
|
80
|
+
outcome: BrowserInvokeOutcome;
|
|
81
|
+
}>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The invocable surface of a described service from host contracts only, assembled as the root's
|
|
85
|
+
* `resolveService` assembles it from the store: clusters in descriptor order, commands narrowed to
|
|
86
|
+
* those the describe view lists, a later cluster's command replacing an earlier one of the same
|
|
87
|
+
* name. Any cluster or closure the host did not generate refuses the WHOLE surface.
|
|
88
|
+
*/
|
|
89
|
+
export declare function browserServiceSurface(descriptor: {
|
|
90
|
+
clusters: ReadonlyArray<{
|
|
91
|
+
digest: string;
|
|
92
|
+
commands: readonly string[];
|
|
93
|
+
}>;
|
|
94
|
+
}, set: BrowserContractSet): Map<string, ResolvedCommand>;
|
|
95
|
+
/** Describe the endpoint on the selected instance and return a caller bound to that answer. */
|
|
96
|
+
export declare function openBrowserEndpointCaller(opts: BrowserEndpointCallerOptions): Promise<BrowserEndpointCaller>;
|
|
97
|
+
//# sourceMappingURL=browser-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-control.d.ts","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { describeEndpoint, invokeCommand } from "./endpoint-caller.js";
|
|
2
|
+
import { EpEnvelopeError, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
3
|
+
// The stock classifiers, from THIS entry's own module instance: a host that imported them from the
|
|
4
|
+
// package root would hold a second EpEnvelopeError class, and `instanceof` would miss every error.
|
|
5
|
+
export { EpEnvelopeError, unansweredRequest, replyRefusedBeforeEffect } from "./endpoint-error.js";
|
|
6
|
+
/** The host validator for one closure digest, or `unsupported-version` when the host has none. */
|
|
7
|
+
function contractOf(set, closureDigest) {
|
|
8
|
+
const validate = Object.hasOwn(set.validators, closureDigest) ? set.validators[closureDigest] : undefined;
|
|
9
|
+
if (typeof validate !== "function")
|
|
10
|
+
throw new EpEnvelopeError("unsupported-version", `schema closure ${closureDigest} has no host-generated validator; regenerate the host's contracts for this endpoint (SPEC 13.7)`);
|
|
11
|
+
return { validate, closureDigest };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The invocable surface of a described service from host contracts only, assembled as the root's
|
|
15
|
+
* `resolveService` assembles it from the store: clusters in descriptor order, commands narrowed to
|
|
16
|
+
* those the describe view lists, a later cluster's command replacing an earlier one of the same
|
|
17
|
+
* name. Any cluster or closure the host did not generate refuses the WHOLE surface.
|
|
18
|
+
*/
|
|
19
|
+
export function browserServiceSurface(descriptor, set) {
|
|
20
|
+
const visible = new Set(descriptor.clusters.flatMap((cl) => cl.commands));
|
|
21
|
+
const surface = new Map();
|
|
22
|
+
for (const cl of descriptor.clusters) {
|
|
23
|
+
const doc = Object.hasOwn(set.clusters, cl.digest) ? set.clusters[cl.digest] : undefined;
|
|
24
|
+
if (!doc)
|
|
25
|
+
throw new EpEnvelopeError("unsupported-version", `cluster document ${cl.digest} has no host-generated contracts; regenerate the host's contracts for this endpoint (SPEC 13.7)`);
|
|
26
|
+
for (const cmd of doc.commands) {
|
|
27
|
+
if (!visible.has(cmd.name))
|
|
28
|
+
continue;
|
|
29
|
+
surface.set(cmd.name, {
|
|
30
|
+
command: cmd.name,
|
|
31
|
+
contract: { input: contractOf(set, cmd.inputDigest), output: contractOf(set, cmd.outputDigest) },
|
|
32
|
+
class: cmd.class, targeted: cmd.targeted, modes: [...(cmd.modes ?? [])], capability: cmd.capability,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return surface;
|
|
37
|
+
}
|
|
38
|
+
/** Describe the endpoint on the selected instance and return a caller bound to that answer. */
|
|
39
|
+
export async function openBrowserEndpointCaller(opts) {
|
|
40
|
+
opts.signal?.throwIfAborted();
|
|
41
|
+
const deadlineMs = opts.deadlineMs ?? 10_000;
|
|
42
|
+
const { answer, responder } = await describeEndpoint(opts.nc, opts.space, opts.endpoint, opts.caller, {
|
|
43
|
+
instanceId: opts.instanceId, deadlineMs, ...(opts.signal ? { signal: opts.signal } : {}),
|
|
44
|
+
});
|
|
45
|
+
if (responder.instanceId !== opts.instanceId)
|
|
46
|
+
throw new EpEnvelopeError("failed-precondition", `instance ${responder.instanceId} answered a describe pinned to ${opts.instanceId}; refused`);
|
|
47
|
+
const service = {
|
|
48
|
+
endpoint: answer.descriptor.endpoint, owner: answer.descriptor.owner, caller: opts.caller, responder,
|
|
49
|
+
commands: browserServiceSurface(answer.descriptor, opts.contracts), pinnedInstanceId: opts.instanceId,
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
instanceId: opts.instanceId,
|
|
53
|
+
caller: opts.caller,
|
|
54
|
+
service,
|
|
55
|
+
async invoke(command, args, o = {}) {
|
|
56
|
+
const result = await invokeCommand(opts.nc, opts.space, service, command, args, {
|
|
57
|
+
...(o.target ? { target: o.target } : {}), deadlineMs: o.deadlineMs ?? deadlineMs,
|
|
58
|
+
...(o.signal ? { signal: o.signal } : {}), ...(o.id !== undefined ? { id: o.id } : {}),
|
|
59
|
+
});
|
|
60
|
+
const outcome = result.reply.ok !== false ? "replied"
|
|
61
|
+
: replyRefusedBeforeEffect(result.reply.error) ? "refused-before-effect" : "error-reply";
|
|
62
|
+
return { ...result, outcome };
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=browser-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-control.js","sourceRoot":"","sources":["../src/browser-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface BrowserContractSource {
|
|
2
|
+
/** Free label recorded beside the cluster (e.g. the endpoint release it came from). */
|
|
3
|
+
label: string;
|
|
4
|
+
/** The digest the endpoint publishes for this cluster document. */
|
|
5
|
+
clusterDigest: string;
|
|
6
|
+
document: {
|
|
7
|
+
urn: string;
|
|
8
|
+
revision: number;
|
|
9
|
+
commands: Array<{
|
|
10
|
+
name: string;
|
|
11
|
+
inputDigest: string;
|
|
12
|
+
outputDigest: string;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
roots: unknown[];
|
|
16
|
+
}
|
|
17
|
+
/** The generated module text, and how many clusters and closures it carries. */
|
|
18
|
+
export declare function generateBrowserContracts(sources: readonly BrowserContractSource[]): {
|
|
19
|
+
text: string;
|
|
20
|
+
clusters: number;
|
|
21
|
+
closures: number;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=browser-validators-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-validators-build.d.ts","sourceRoot":"","sources":["../src/browser-validators-build.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC1H,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAqFD,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA6CxI"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build-time generator for `@cotal-ai/core/browser-control` (`@cotal-ai/core/browser-validators-build`).
|
|
3
|
+
* Node only: it runs Ajv's code generation at the host's build, so the page never does.
|
|
4
|
+
*
|
|
5
|
+
* Input: the cluster documents and schema roots of the endpoints a host will call, as data. Each
|
|
6
|
+
* cluster and closure digest is recomputed with THIS core's §13.7 profile, and a digest that does
|
|
7
|
+
* not match the recorded one refuses. Output: one ES module exporting `contracts`, a
|
|
8
|
+
* `BrowserContractSet` with one standalone validator per closure digest (`standaloneContractSource`,
|
|
9
|
+
* the same profile options as `compileContract`) and the cluster documents by cluster digest.
|
|
10
|
+
*/
|
|
11
|
+
import { parse } from "acorn";
|
|
12
|
+
import { singleDocumentClosure, standaloneContractSource } from "./schema-profile.js";
|
|
13
|
+
/** Ajv's standalone output still names its runtime helpers with `require`, even in ESM mode. Each
|
|
14
|
+
* `require("ajv/dist/runtime/<helper>").<name>` read is rewritten to an ESM namespace import. The
|
|
15
|
+
* check walks the parsed validator, so schema data in a string literal or a comment is never taken
|
|
16
|
+
* for code: any other reference to `require`, `eval` or `Function`, or a call of a member with one
|
|
17
|
+
* of those names, refuses. */
|
|
18
|
+
const RUNTIME_HELPERS = new Set(["ucs2length", "equal", "uri", "quote", "timestamp", "re2", "parseJson"]);
|
|
19
|
+
const RUNTIME_PREFIX = "ajv/dist/runtime/";
|
|
20
|
+
const EXECUTABLE = new Set(["require", "eval", "Function"]);
|
|
21
|
+
const HEADER = /^"use strict";\s*export const validate = (\w+);\s*export default \1;/;
|
|
22
|
+
const PROLOGUE = '(() => {\n"use strict";\n';
|
|
23
|
+
const isNode = (value) => typeof value === "object" && value !== null && typeof value.type === "string";
|
|
24
|
+
/** The name a callee reads: `x`, `o.x` and `o["x"]` all name `x`. */
|
|
25
|
+
function calleeName(node) {
|
|
26
|
+
if (node.type === "Identifier")
|
|
27
|
+
return node.name;
|
|
28
|
+
if (node.type !== "MemberExpression")
|
|
29
|
+
return undefined;
|
|
30
|
+
const property = node.property;
|
|
31
|
+
if (!node.computed)
|
|
32
|
+
return property.type === "Identifier" ? property.name : undefined;
|
|
33
|
+
return property.type === "Literal" && typeof property.value === "string" ? property.value : undefined;
|
|
34
|
+
}
|
|
35
|
+
/** `require("ajv/dist/runtime/<helper>").<name>` with a known helper, as that helper and name. */
|
|
36
|
+
function runtimeHelper(node) {
|
|
37
|
+
if (node.type !== "MemberExpression" || node.computed || node.optional)
|
|
38
|
+
return undefined;
|
|
39
|
+
const call = node.object;
|
|
40
|
+
const property = node.property;
|
|
41
|
+
if (call.type !== "CallExpression" || call.optional || property.type !== "Identifier")
|
|
42
|
+
return undefined;
|
|
43
|
+
const callee = call.callee;
|
|
44
|
+
const args = call.arguments;
|
|
45
|
+
const spec = args[0];
|
|
46
|
+
if (callee.type !== "Identifier" || callee.name !== "require" || args.length !== 1 || spec?.type !== "Literal")
|
|
47
|
+
return undefined;
|
|
48
|
+
if (typeof spec.value !== "string" || !spec.value.startsWith(RUNTIME_PREFIX))
|
|
49
|
+
return undefined;
|
|
50
|
+
const helper = spec.value.slice(RUNTIME_PREFIX.length);
|
|
51
|
+
return RUNTIME_HELPERS.has(helper) ? { helper, name: property.name } : undefined;
|
|
52
|
+
}
|
|
53
|
+
function collectHelperReads(node, digest, reads) {
|
|
54
|
+
const read = runtimeHelper(node);
|
|
55
|
+
if (read) {
|
|
56
|
+
reads.push({ start: node.start, end: node.end, ...read });
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const callee = node.type === "CallExpression" || node.type === "NewExpression" ? node.callee
|
|
60
|
+
: node.type === "TaggedTemplateExpression" ? node.tag
|
|
61
|
+
: undefined;
|
|
62
|
+
const called = callee && calleeName(callee);
|
|
63
|
+
if ((node.type === "Identifier" && EXECUTABLE.has(node.name)) || (called !== undefined && EXECUTABLE.has(called)))
|
|
64
|
+
throw new Error(`closure ${digest}: standalone output still needs require or runtime evaluation`);
|
|
65
|
+
for (const [key, value] of Object.entries(node)) {
|
|
66
|
+
// A property name is not a reference: `data.eval` reads the field a schema calls "eval".
|
|
67
|
+
if (!node.computed && ((node.type === "MemberExpression" && key === "property") || (node.type === "Property" && key === "key")))
|
|
68
|
+
continue;
|
|
69
|
+
for (const child of Array.isArray(value) ? value : [value])
|
|
70
|
+
if (isNode(child))
|
|
71
|
+
collectHelperReads(child, digest, reads);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function validatorBody(source, digest, helpers) {
|
|
75
|
+
const head = HEADER.exec(source);
|
|
76
|
+
if (!head)
|
|
77
|
+
throw new Error(`closure ${digest}: unexpected standalone output shape`);
|
|
78
|
+
const body = source.slice(head[0].length);
|
|
79
|
+
const epilogue = `\nreturn ${head[1]};\n})()`;
|
|
80
|
+
let program;
|
|
81
|
+
try {
|
|
82
|
+
program = parse(PROLOGUE + body + epilogue, { ecmaVersion: "latest", sourceType: "script" });
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new Error(`closure ${digest}: standalone output does not parse: ${error.message}`);
|
|
86
|
+
}
|
|
87
|
+
const reads = [];
|
|
88
|
+
collectHelperReads(program, digest, reads);
|
|
89
|
+
let rewritten = body;
|
|
90
|
+
for (const { start, end, helper, name } of reads.sort((a, b) => b.start - a.start)) {
|
|
91
|
+
helpers.add(helper);
|
|
92
|
+
rewritten = `${rewritten.slice(0, start - PROLOGUE.length)}__rt(__rt_${helper}, ${JSON.stringify(name)})${rewritten.slice(end - PROLOGUE.length)}`;
|
|
93
|
+
}
|
|
94
|
+
return PROLOGUE + rewritten + epilogue;
|
|
95
|
+
}
|
|
96
|
+
/** The generated module text, and how many clusters and closures it carries. */
|
|
97
|
+
export function generateBrowserContracts(sources) {
|
|
98
|
+
if (sources.length === 0)
|
|
99
|
+
throw new Error("no contract sources");
|
|
100
|
+
const clusters = new Map();
|
|
101
|
+
const roots = new Map();
|
|
102
|
+
for (const src of sources) {
|
|
103
|
+
const clusterDigest = singleDocumentClosure(src.document).closureDigest;
|
|
104
|
+
if (clusterDigest !== src.clusterDigest)
|
|
105
|
+
throw new Error(`${src.label}: cluster document recomputes to ${clusterDigest}, the source recorded ${src.clusterDigest}`);
|
|
106
|
+
for (const root of src.roots)
|
|
107
|
+
roots.set(singleDocumentClosure(root).closureDigest, root);
|
|
108
|
+
for (const command of src.document.commands)
|
|
109
|
+
for (const digest of [command.inputDigest, command.outputDigest])
|
|
110
|
+
if (!roots.has(digest))
|
|
111
|
+
throw new Error(`${src.label}: ${command.name} names closure ${digest} with no schema root`);
|
|
112
|
+
const seen = clusters.get(clusterDigest);
|
|
113
|
+
if (seen)
|
|
114
|
+
seen.labels.push(src.label);
|
|
115
|
+
else
|
|
116
|
+
clusters.set(clusterDigest, { labels: [src.label], document: src.document });
|
|
117
|
+
}
|
|
118
|
+
const helpers = new Set();
|
|
119
|
+
const validators = [];
|
|
120
|
+
for (const [digest, root] of [...roots].sort(([a], [b]) => a.localeCompare(b))) {
|
|
121
|
+
const { closureDigest, source } = standaloneContractSource({ root });
|
|
122
|
+
if (closureDigest !== digest)
|
|
123
|
+
throw new Error(`closure ${digest} compiles as ${closureDigest}`);
|
|
124
|
+
validators.push(` ${JSON.stringify(digest)}: ${validatorBody(source, digest, helpers)},`);
|
|
125
|
+
}
|
|
126
|
+
const imports = [...helpers].sort().map((m) => `import * as __rt_${m} from "ajv/dist/runtime/${m}.js";`);
|
|
127
|
+
const clusterRows = [...clusters].sort(([a], [b]) => a.localeCompare(b))
|
|
128
|
+
.map(([digest, c]) => ` ${JSON.stringify(digest)}: ${JSON.stringify({ sources: c.labels, ...c.document })},`);
|
|
129
|
+
const text = [
|
|
130
|
+
"// @ts-nocheck",
|
|
131
|
+
"// GENERATED by @cotal-ai/core/browser-validators-build. Do not edit; regenerate from the contract sources.",
|
|
132
|
+
...imports,
|
|
133
|
+
"/** An Ajv runtime helper from a CommonJS module, whichever way the importer exposes its exports. */",
|
|
134
|
+
"const __rt = (ns, name) => {",
|
|
135
|
+
" const exports = ns.default !== null && typeof ns.default === \"object\" && name in ns.default ? ns.default : ns;",
|
|
136
|
+
" const value = exports[name];",
|
|
137
|
+
" if (typeof value !== \"function\") throw new Error(`ajv runtime helper ${name} is not a function`);",
|
|
138
|
+
" return value;",
|
|
139
|
+
"};",
|
|
140
|
+
"export const contracts = Object.freeze({ validators: Object.freeze({",
|
|
141
|
+
...validators,
|
|
142
|
+
"}), clusters: Object.freeze({",
|
|
143
|
+
...clusterRows,
|
|
144
|
+
"}) });",
|
|
145
|
+
"",
|
|
146
|
+
].join("\n");
|
|
147
|
+
return { text, clusters: clusters.size, closures: roots.size };
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=browser-validators-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-validators-build.js","sourceRoot":"","sources":["../src/browser-validators-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,EAAa,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAWtF;;;;+BAI+B;AAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1G,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5D,MAAM,MAAM,GAAG,sEAAsE,CAAC;AACtF,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAM7C,MAAM,MAAM,GAAG,CAAC,KAAc,EAAoB,EAAE,CAClD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAExG,qEAAqE;AACrE,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,IAAc,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAmB,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxG,CAAC;AAED,kGAAkG;AAClG,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAiB,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAmB,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACxG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiB,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAsB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,MAAc,EAAE,KAAmB;IAC5E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAE,IAAI,CAAC,MAAkB;QAC1F,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC,CAAE,IAAI,CAAC,GAAe;YAClE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzH,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,+DAA+D,CAAC,CAAC;IACpG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,yFAAyF;QACzF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC1I,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,IAAI,MAAM,CAAC,KAAK,CAAC;gBAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1H,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,OAAoB;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,sCAAsC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAuB,CAAC;IACrH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,uCAAwC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,SAAS,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACrJ,CAAC;IACD,OAAO,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,OAAyC;IAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6E,CAAC;IACtG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;QACxE,IAAI,aAAa,KAAK,GAAG,CAAC,aAAa;YACrC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,oCAAoC,aAAa,yBAAyB,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7H,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzF,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ;YACzC,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,kBAAkB,MAAM,sBAAsB,CAAC,CAAC;QACzH,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;YACjC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,aAAa,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,gBAAgB,aAAa,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACzG,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACrE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG;QACX,gBAAgB;QAChB,6GAA6G;QAC7G,GAAG,OAAO;QACV,sGAAsG;QACtG,8BAA8B;QAC9B,oHAAoH;QACpH,gCAAgC;QAChC,uGAAuG;QACvG,iBAAiB;QACjB,IAAI;QACJ,sEAAsE;QACtE,GAAG,UAAU;QACb,+BAA+B;QAC/B,GAAG,WAAW;QACd,QAAQ;QACR,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Digest identity form used everywhere a contract artifact is referenced: `sha256:<hex>`. */
|
|
2
|
+
export declare const DIGEST_PREFIX: "sha256:";
|
|
3
|
+
/** True iff `s` is a well-formed `sha256:<hex>` artifact digest. */
|
|
4
|
+
export declare function isContractDigest(s: string): boolean;
|
|
5
|
+
/** True iff the string is well-formed UTF-16 (no unpaired surrogate). A lone surrogate has NO
|
|
6
|
+
* UTF-8 byte encoding — encoders silently substitute U+FFFD, so two distinct malformed strings
|
|
7
|
+
* can collapse to one byte sequence; anything digest- or wire-bound must refuse them. */
|
|
8
|
+
export declare function isWellFormedUnicode(s: string): boolean;
|
|
9
|
+
/** True iff the string contains an unpaired UTF-16 surrogate (not well-formed / I-JSON
|
|
10
|
+
* violation). Manual scan: the repo's TS lib target predates `String#isWellFormed`. */
|
|
11
|
+
export declare function hasLoneSurrogate(s: string): boolean;
|
|
12
|
+
/** RFC 8785 canonical JSON text of a value (strict: I-JSON enforced, no undefined→null). */
|
|
13
|
+
export declare function canonicalJson(value: unknown): string;
|
|
14
|
+
//# sourceMappingURL=canonical-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.d.ts","sourceRoot":"","sources":["../src/canonical-json.ts"],"names":[],"mappings":"AAGA,8FAA8F;AAC9F,eAAO,MAAM,aAAa,EAAG,SAAkB,CAAC;AAGhD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;0FAE0F;AAC1F,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;wFACwF;AACxF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAYnD;AAkFD,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD"}
|