@cotal-ai/core 0.84.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/connector.d.ts +8 -2
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js.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 +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -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/startup-confirm.d.ts +9 -5
- package/dist/startup-confirm.d.ts.map +1 -1
- package/dist/startup-confirm.js +51 -18
- package/dist/startup-confirm.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 +94 -0
- package/dist/turn-contract.d.ts.map +1 -0
- package/dist/turn-contract.js +62 -0
- package/dist/turn-contract.js.map +1 -0
- package/package.json +14 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** The node-free half of `canonical.ts`: digest grammar and RFC 8785 canonical JSON. */
|
|
2
|
+
import { canonicalizeEx } from "json-canonicalize";
|
|
3
|
+
/** Digest identity form used everywhere a contract artifact is referenced: `sha256:<hex>`. */
|
|
4
|
+
export const DIGEST_PREFIX = "sha256:";
|
|
5
|
+
const DIGEST_RE = /^sha256:[0-9a-f]{64}$/;
|
|
6
|
+
/** True iff `s` is a well-formed `sha256:<hex>` artifact digest. */
|
|
7
|
+
export function isContractDigest(s) {
|
|
8
|
+
return DIGEST_RE.test(s);
|
|
9
|
+
}
|
|
10
|
+
/** True iff the string is well-formed UTF-16 (no unpaired surrogate). A lone surrogate has NO
|
|
11
|
+
* UTF-8 byte encoding — encoders silently substitute U+FFFD, so two distinct malformed strings
|
|
12
|
+
* can collapse to one byte sequence; anything digest- or wire-bound must refuse them. */
|
|
13
|
+
export function isWellFormedUnicode(s) {
|
|
14
|
+
return !hasLoneSurrogate(s);
|
|
15
|
+
}
|
|
16
|
+
/** True iff the string contains an unpaired UTF-16 surrogate (not well-formed / I-JSON
|
|
17
|
+
* violation). Manual scan: the repo's TS lib target predates `String#isWellFormed`. */
|
|
18
|
+
export function hasLoneSurrogate(s) {
|
|
19
|
+
for (let i = 0; i < s.length; i++) {
|
|
20
|
+
const c = s.charCodeAt(i);
|
|
21
|
+
if (c >= 0xd800 && c <= 0xdbff) {
|
|
22
|
+
const n = s.charCodeAt(i + 1);
|
|
23
|
+
if (!(n >= 0xdc00 && n <= 0xdfff))
|
|
24
|
+
return true;
|
|
25
|
+
i++; // well-formed pair; skip the low half
|
|
26
|
+
}
|
|
27
|
+
else if (c >= 0xdc00 && c <= 0xdfff) {
|
|
28
|
+
return true; // low surrogate with no preceding high half
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
/** Walk a JSON value once and return a plain copy of what the walk read, throwing on anything
|
|
34
|
+
* that cannot canonicalize EXACTLY (D28: verification and digesting must never run over a
|
|
35
|
+
* normalizing projection):
|
|
36
|
+
* - strings that are not well-formed UTF-16 (a lone surrogate violates I-JSON; canonicalizing
|
|
37
|
+
* it would mint a digest for text that cannot interchange), in values AND keys;
|
|
38
|
+
* - `undefined` anywhere and non-finite numbers (RFC 8785 cannot represent them);
|
|
39
|
+
* - NON-PLAIN-DATA graphs. `Object.entries` sees only enumerable string-keyed own data props,
|
|
40
|
+
* and the canonicalizer applies `toJSON`, so a symbol-keyed or non-enumerable own property,
|
|
41
|
+
* an accessor, or a class/exotic instance (Date → ISO string, Map → `{}`) would be SILENTLY
|
|
42
|
+
* projected away or rewritten — the exact field-dropping class D28 forbids (an artifact
|
|
43
|
+
* carrying state its signature never covered must refuse, not launder through the
|
|
44
|
+
* projection). Objects must be ordinary with a `null`/`Object.prototype` prototype and only
|
|
45
|
+
* enumerable string-keyed own DATA properties; arrays must be ordinary `Array.prototype`
|
|
46
|
+
* arrays with no holes and no extra own properties.
|
|
47
|
+
* The serializer gets the copy, never the input, and each copied value is the one in the
|
|
48
|
+
* descriptor the check inspected: a Proxy can answer a second read, or `toJSON`, differently,
|
|
49
|
+
* and the text must encode only data that was checked. */
|
|
50
|
+
function interchangeableCopy(v, path) {
|
|
51
|
+
if (v === null)
|
|
52
|
+
return null;
|
|
53
|
+
switch (typeof v) {
|
|
54
|
+
case "string":
|
|
55
|
+
if (hasLoneSurrogate(v))
|
|
56
|
+
throw new Error(`canonicalJson: lone surrogate in string at ${path} (I-JSON violation)`);
|
|
57
|
+
return v;
|
|
58
|
+
case "number":
|
|
59
|
+
if (!Number.isFinite(v))
|
|
60
|
+
throw new Error(`canonicalJson: non-finite number at ${path}`);
|
|
61
|
+
return v;
|
|
62
|
+
case "boolean":
|
|
63
|
+
return v;
|
|
64
|
+
case "undefined":
|
|
65
|
+
throw new Error(`canonicalJson: undefined at ${path} (strict mode never coerces to null)`);
|
|
66
|
+
case "object": {
|
|
67
|
+
if (Array.isArray(v)) {
|
|
68
|
+
if (Object.getPrototypeOf(v) !== Array.prototype)
|
|
69
|
+
throw new Error(`canonicalJson: non-ordinary array at ${path} (a subclassed/exotic array canonicalizes through projections)`);
|
|
70
|
+
// One read of `length`, from its descriptor, bounds both the index check and the copy. A
|
|
71
|
+
// second read could add an element no index check covered or drop one the check accepted.
|
|
72
|
+
const length = Object.getOwnPropertyDescriptor(v, "length")?.value;
|
|
73
|
+
if (typeof length !== "number" || !Number.isInteger(length) || length < 0)
|
|
74
|
+
throw new Error(`canonicalJson: invalid array length at ${path} (refusing the projection)`);
|
|
75
|
+
for (const k of Reflect.ownKeys(v)) {
|
|
76
|
+
if (typeof k !== "string")
|
|
77
|
+
throw new Error(`canonicalJson: symbol-keyed own property on array at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
78
|
+
if (k === "length")
|
|
79
|
+
continue;
|
|
80
|
+
if (!/^(0|[1-9][0-9]*)$/.test(k) || Number(k) >= length)
|
|
81
|
+
throw new Error(`canonicalJson: non-index own property "${k}" on array at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
82
|
+
}
|
|
83
|
+
const copy = [];
|
|
84
|
+
for (let i = 0; i < length; i++) {
|
|
85
|
+
const d = Object.getOwnPropertyDescriptor(v, i);
|
|
86
|
+
if (d === undefined)
|
|
87
|
+
throw new Error(`canonicalJson: hole at ${path}[${i}] (a hole would be coerced to null; refusing the projection)`);
|
|
88
|
+
if (!d.enumerable || d.get !== undefined || d.set !== undefined)
|
|
89
|
+
throw new Error(`canonicalJson: non-enumerable or accessor element at ${path}[${i}] (refusing the projection)`);
|
|
90
|
+
copy.push(interchangeableCopy(d.value, `${path}[${i}]`));
|
|
91
|
+
}
|
|
92
|
+
return copy;
|
|
93
|
+
}
|
|
94
|
+
const proto = Object.getPrototypeOf(v);
|
|
95
|
+
if (proto !== Object.prototype && proto !== null)
|
|
96
|
+
throw new Error(`canonicalJson: non-plain object at ${path} (a class/exotic instance canonicalizes through projections like toJSON; only plain data objects are interchangeable)`);
|
|
97
|
+
// A null prototype keeps an own `__proto__` key a key instead of a prototype assignment.
|
|
98
|
+
const copy = Object.create(null);
|
|
99
|
+
for (const k of Reflect.ownKeys(v)) {
|
|
100
|
+
if (typeof k !== "string")
|
|
101
|
+
throw new Error(`canonicalJson: symbol-keyed own property at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
102
|
+
if (hasLoneSurrogate(k))
|
|
103
|
+
throw new Error(`canonicalJson: lone surrogate in key at ${path}.${k}`);
|
|
104
|
+
const d = Object.getOwnPropertyDescriptor(v, k);
|
|
105
|
+
if (!d.enumerable)
|
|
106
|
+
throw new Error(`canonicalJson: non-enumerable own property "${k}" at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
107
|
+
if (d.get !== undefined || d.set !== undefined)
|
|
108
|
+
throw new Error(`canonicalJson: accessor property "${k}" at ${path} (a getter is code, not data; refusing the projection)`);
|
|
109
|
+
copy[k] = interchangeableCopy(d.value, `${path}.${k}`);
|
|
110
|
+
}
|
|
111
|
+
return copy;
|
|
112
|
+
}
|
|
113
|
+
default:
|
|
114
|
+
throw new Error(`canonicalJson: unsupported ${typeof v} at ${path}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** RFC 8785 canonical JSON text of a value (strict: I-JSON enforced, no undefined→null). */
|
|
118
|
+
export function canonicalJson(value) {
|
|
119
|
+
return canonicalizeEx(interchangeableCopy(value, "$"), { undefinedInArrayToNull: false });
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=canonical-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../src/canonical-json.ts"],"names":[],"mappings":"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"}
|
package/dist/canonical.d.ts
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
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
|
-
/** RFC 8785 canonical JSON text of a value (strict: I-JSON enforced, no undefined→null). */
|
|
10
|
-
export declare function canonicalJson(value: unknown): string;
|
|
1
|
+
import { DIGEST_PREFIX, canonicalJson, isContractDigest, isWellFormedUnicode } from "./canonical-json.js";
|
|
2
|
+
export { DIGEST_PREFIX, canonicalJson, isContractDigest, isWellFormedUnicode };
|
|
11
3
|
/** Content address of a contract artifact: `sha256:<hex>` over its RFC 8785 form (SPEC §13.7). */
|
|
12
4
|
export declare function contractDigest(value: unknown): string;
|
|
13
5
|
/** `sha256:<hex>` over RAW bytes (a string digests as its UTF-8 encoding), NEVER re-canonicalized:
|
package/dist/canonical.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAoB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5H,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AAE/E,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED;;;;;qEAKqE;AACrE,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAS3D;AAED;;;;;;;;;;0CAU0C;AAC1C,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAK5E;AAED;;;8DAG8D;AAC9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWzE"}
|
package/dist/canonical.js
CHANGED
|
@@ -8,114 +8,8 @@
|
|
|
8
8
|
* error, not data, and MUST NOT silently become `null`.
|
|
9
9
|
*/
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
export const DIGEST_PREFIX = "sha256:";
|
|
14
|
-
const DIGEST_RE = /^sha256:[0-9a-f]{64}$/;
|
|
15
|
-
/** True iff `s` is a well-formed `sha256:<hex>` artifact digest. */
|
|
16
|
-
export function isContractDigest(s) {
|
|
17
|
-
return DIGEST_RE.test(s);
|
|
18
|
-
}
|
|
19
|
-
/** True iff the string is well-formed UTF-16 (no unpaired surrogate). A lone surrogate has NO
|
|
20
|
-
* UTF-8 byte encoding — encoders silently substitute U+FFFD, so two distinct malformed strings
|
|
21
|
-
* can collapse to one byte sequence; anything digest- or wire-bound must refuse them. */
|
|
22
|
-
export function isWellFormedUnicode(s) {
|
|
23
|
-
return !hasLoneSurrogate(s);
|
|
24
|
-
}
|
|
25
|
-
/** True iff the string contains an unpaired UTF-16 surrogate (not well-formed / I-JSON
|
|
26
|
-
* violation). Manual scan: the repo's TS lib target predates `String#isWellFormed`. */
|
|
27
|
-
function hasLoneSurrogate(s) {
|
|
28
|
-
for (let i = 0; i < s.length; i++) {
|
|
29
|
-
const c = s.charCodeAt(i);
|
|
30
|
-
if (c >= 0xd800 && c <= 0xdbff) {
|
|
31
|
-
const n = s.charCodeAt(i + 1);
|
|
32
|
-
if (!(n >= 0xdc00 && n <= 0xdfff))
|
|
33
|
-
return true;
|
|
34
|
-
i++; // well-formed pair; skip the low half
|
|
35
|
-
}
|
|
36
|
-
else if (c >= 0xdc00 && c <= 0xdfff) {
|
|
37
|
-
return true; // low surrogate with no preceding high half
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
/** Walk a JSON value and throw on anything that cannot canonicalize EXACTLY (D28: verification
|
|
43
|
-
* and digesting must never run over a normalizing projection):
|
|
44
|
-
* - strings that are not well-formed UTF-16 (a lone surrogate violates I-JSON; canonicalizing
|
|
45
|
-
* it would mint a digest for text that cannot interchange), in values AND keys;
|
|
46
|
-
* - `undefined` anywhere and non-finite numbers (RFC 8785 cannot represent them);
|
|
47
|
-
* - NON-PLAIN-DATA graphs. `Object.entries` sees only enumerable string-keyed own data props,
|
|
48
|
-
* and the canonicalizer applies `toJSON`, so a symbol-keyed or non-enumerable own property,
|
|
49
|
-
* an accessor, or a class/exotic instance (Date → ISO string, Map → `{}`) would be SILENTLY
|
|
50
|
-
* projected away or rewritten — the exact field-dropping class D28 forbids (an artifact
|
|
51
|
-
* carrying state its signature never covered must refuse, not launder through the
|
|
52
|
-
* projection). Objects must be ordinary with a `null`/`Object.prototype` prototype and only
|
|
53
|
-
* enumerable string-keyed own DATA properties; arrays must be ordinary `Array.prototype`
|
|
54
|
-
* arrays with no holes and no extra own properties. */
|
|
55
|
-
function assertInterchangeable(v, path) {
|
|
56
|
-
if (v === null)
|
|
57
|
-
return;
|
|
58
|
-
switch (typeof v) {
|
|
59
|
-
case "string":
|
|
60
|
-
if (hasLoneSurrogate(v))
|
|
61
|
-
throw new Error(`canonicalJson: lone surrogate in string at ${path} (I-JSON violation)`);
|
|
62
|
-
return;
|
|
63
|
-
case "number":
|
|
64
|
-
if (!Number.isFinite(v))
|
|
65
|
-
throw new Error(`canonicalJson: non-finite number at ${path}`);
|
|
66
|
-
return;
|
|
67
|
-
case "boolean":
|
|
68
|
-
return;
|
|
69
|
-
case "undefined":
|
|
70
|
-
throw new Error(`canonicalJson: undefined at ${path} (strict mode never coerces to null)`);
|
|
71
|
-
case "object": {
|
|
72
|
-
if (Array.isArray(v)) {
|
|
73
|
-
if (Object.getPrototypeOf(v) !== Array.prototype)
|
|
74
|
-
throw new Error(`canonicalJson: non-ordinary array at ${path} (a subclassed/exotic array canonicalizes through projections)`);
|
|
75
|
-
for (const k of Reflect.ownKeys(v)) {
|
|
76
|
-
if (typeof k !== "string")
|
|
77
|
-
throw new Error(`canonicalJson: symbol-keyed own property on array at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
78
|
-
if (k === "length")
|
|
79
|
-
continue;
|
|
80
|
-
if (!/^(0|[1-9][0-9]*)$/.test(k) || Number(k) >= v.length)
|
|
81
|
-
throw new Error(`canonicalJson: non-index own property "${k}" on array at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
82
|
-
}
|
|
83
|
-
for (let i = 0; i < v.length; i++) {
|
|
84
|
-
const d = Object.getOwnPropertyDescriptor(v, i);
|
|
85
|
-
if (d === undefined)
|
|
86
|
-
throw new Error(`canonicalJson: hole at ${path}[${i}] (a hole would be coerced to null; refusing the projection)`);
|
|
87
|
-
if (!d.enumerable || d.get !== undefined || d.set !== undefined)
|
|
88
|
-
throw new Error(`canonicalJson: non-enumerable or accessor element at ${path}[${i}] (refusing the projection)`);
|
|
89
|
-
assertInterchangeable(v[i], `${path}[${i}]`);
|
|
90
|
-
}
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const proto = Object.getPrototypeOf(v);
|
|
94
|
-
if (proto !== Object.prototype && proto !== null)
|
|
95
|
-
throw new Error(`canonicalJson: non-plain object at ${path} (a class/exotic instance canonicalizes through projections like toJSON; only plain data objects are interchangeable)`);
|
|
96
|
-
for (const k of Reflect.ownKeys(v)) {
|
|
97
|
-
if (typeof k !== "string")
|
|
98
|
-
throw new Error(`canonicalJson: symbol-keyed own property at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
99
|
-
if (hasLoneSurrogate(k))
|
|
100
|
-
throw new Error(`canonicalJson: lone surrogate in key at ${path}.${k}`);
|
|
101
|
-
const d = Object.getOwnPropertyDescriptor(v, k);
|
|
102
|
-
if (!d.enumerable)
|
|
103
|
-
throw new Error(`canonicalJson: non-enumerable own property "${k}" at ${path} (invisible to canonicalization; refusing the projection)`);
|
|
104
|
-
if (d.get !== undefined || d.set !== undefined)
|
|
105
|
-
throw new Error(`canonicalJson: accessor property "${k}" at ${path} (a getter is code, not data; refusing the projection)`);
|
|
106
|
-
assertInterchangeable(v[k], `${path}.${k}`);
|
|
107
|
-
}
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
default:
|
|
111
|
-
throw new Error(`canonicalJson: unsupported ${typeof v} at ${path}`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/** RFC 8785 canonical JSON text of a value (strict: I-JSON enforced, no undefined→null). */
|
|
115
|
-
export function canonicalJson(value) {
|
|
116
|
-
assertInterchangeable(value, "$");
|
|
117
|
-
return canonicalizeEx(value, { undefinedInArrayToNull: false });
|
|
118
|
-
}
|
|
11
|
+
import { DIGEST_PREFIX, canonicalJson, hasLoneSurrogate, isContractDigest, isWellFormedUnicode } from "./canonical-json.js";
|
|
12
|
+
export { DIGEST_PREFIX, canonicalJson, isContractDigest, isWellFormedUnicode };
|
|
119
13
|
/** Content address of a contract artifact: `sha256:<hex>` over its RFC 8785 form (SPEC §13.7). */
|
|
120
14
|
export function contractDigest(value) {
|
|
121
15
|
return DIGEST_PREFIX + createHash("sha256").update(canonicalJson(value), "utf8").digest("hex");
|
package/dist/canonical.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5H,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AAE/E,kGAAkG;AAClG,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;AAED;;;;;qEAKqE;AACrE,MAAM,UAAU,SAAS,CAAC,IAAyB;IACjD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qHAAqH,CAAC,CAAC;QACnK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;0CAU0C;AAC1C,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAc;IAC9D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7G,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,UAAU,sBAAsB,MAAM,gBAAgB,MAAM,EAAE,CAAC,CAAC;IACrJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;8DAG8D;AAC9D,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAc;IAC9D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7G,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,6BAA8B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,gBAAgB,MAAM,EAAE,CAAC,CAAC;IACtH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-answer.d.ts","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint-answer.d.ts","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAQtC;oGACoG;AACpG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;uEACmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA+BD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQ/G;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAe5C;AAED,wEAAwE;AACxE,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAO5C;AAED;;;;;;;4EAO4E;AAC5E,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAQxH"}
|
|
@@ -27,9 +27,10 @@
|
|
|
27
27
|
* acted on the accepted answer and that stays true. It exists so a participant who changes their
|
|
28
28
|
* position records the change where the original sits, and a reader of the run sees both.
|
|
29
29
|
*/
|
|
30
|
-
import {
|
|
30
|
+
import { randomBytes } from "node:crypto";
|
|
31
31
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
32
32
|
import { assertIdToken, endpointToken } from "./endpoint-subjects.js";
|
|
33
|
+
import { digestIdToken } from "./digest-id.js";
|
|
33
34
|
import { RECORD_KINDS, createRecordEntry, recordAtomicKey } from "./endpoint-records.js";
|
|
34
35
|
import { canonicalJson } from "./canonical.js";
|
|
35
36
|
import { walkKvEntries } from "./kv-scan.js";
|
|
@@ -79,9 +80,7 @@ export function checkpointAnswerId(a) {
|
|
|
79
80
|
value: a.value ?? null,
|
|
80
81
|
artifact: a.artifact ?? null,
|
|
81
82
|
});
|
|
82
|
-
|
|
83
|
-
// request ids use, so an answer id is a `<token>` by construction rather than by hope.
|
|
84
|
-
return createHash("sha256").update(canonical, "utf8").digest("base64url").slice(0, 43);
|
|
83
|
+
return digestIdToken(canonical);
|
|
85
84
|
}
|
|
86
85
|
/**
|
|
87
86
|
* The id an AMENDMENT is filed under: fresh for every filing, never derived from its content.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-answer.js","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"checkpoint-answer.js","sourceRoot":"","sources":["../src/checkpoint-answer.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ export interface ConnectorSetupAction<Input = void> {
|
|
|
11
11
|
* provider whose action narrows `Input` past what the CLI sends would still compile. */
|
|
12
12
|
readonly run: (input: Input) => Promise<string> | string;
|
|
13
13
|
}
|
|
14
|
+
/** What a connector's install action receives. */
|
|
15
|
+
export interface ConnectorSetupInput {
|
|
16
|
+
/** The argv that runs this Cotal CLI, `[node, ...loaderFlags, entry]` by absolute path, so an asset
|
|
17
|
+
* the action installs can run the CLI without `cotal` on its PATH. */
|
|
18
|
+
readonly cotal: readonly string[];
|
|
19
|
+
}
|
|
14
20
|
/** Inputs shared by connector-specific skills installers. The authored skills themselves use the
|
|
15
21
|
* cross-vendor Agent Skills format; a provider decides how its harness consumes them. */
|
|
16
22
|
export interface ConnectorSkillsSetupInput {
|
|
@@ -59,7 +65,10 @@ export interface ConnectorSetupProvider extends Extension {
|
|
|
59
65
|
/** Native executables required to run this provider. If none are present on PATH, setup skips this
|
|
60
66
|
* provider while still reconciling the cross-vendor skills drop. */
|
|
61
67
|
readonly requires?: readonly string[];
|
|
62
|
-
readonly connector?: ConnectorSetupAction
|
|
68
|
+
readonly connector?: ConnectorSetupAction<ConnectorSetupInput>;
|
|
69
|
+
/** Brings what {@link connector} installed earlier up to this release and installs nothing new. A
|
|
70
|
+
* repeat `cotal setup` and `cotal update` run it, so an upgrade reaches the harness's own copy. */
|
|
71
|
+
readonly refresh?: ConnectorSetupAction<ConnectorSetupInput>;
|
|
63
72
|
readonly skills?: ConnectorSetupAction<ConnectorSkillsSetupInput>;
|
|
64
73
|
/** Shares the MCP servers the user's own harness sessions load with the agents this connector
|
|
65
74
|
* spawns. First-run setup runs it; a share list the cotal config already declares is kept. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-setup.d.ts","sourceRoot":"","sources":["../src/connector-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;oGACoG;AACpG,MAAM,WAAW,oBAAoB,CAAC,KAAK,GAAG,IAAI;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;4FACwF;IACxF,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC1D;AAED;yFACyF;AACzF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;iGACiG;AACjG,MAAM,WAAW,wBAAwB;IACvC;2CACuC;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC;CACvD;AAED;;gDAEgD;AAChD,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;uDAEmD;IACnD,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;gCACgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;6BAE6B;AAC7B,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;wEACoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"connector-setup.d.ts","sourceRoot":"","sources":["../src/connector-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;oGACoG;AACpG,MAAM,WAAW,oBAAoB,CAAC,KAAK,GAAG,IAAI;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;4FACwF;IACxF,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC1D;AAED,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC;2EACuE;IACvE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;yFACyF;AACzF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;iGACiG;AACjG,MAAM,WAAW,wBAAwB;IACvC;2CACuC;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC;CACvD;AAED;;gDAEgD;AAChD,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;uDAEmD;IACnD,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;gCACgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;6BAE6B;AAC7B,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;wEACoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAC/D;uGACmG;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAClE;kGAC8F;IAC9F,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC;wGACoG;IACpG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,kBAAkB,EAAE,CAAC;CAClF"}
|
package/dist/connector.d.ts
CHANGED
|
@@ -163,9 +163,15 @@ export interface LaunchSpec {
|
|
|
163
163
|
* text with cursor moves, not spaces); a text with nothing left after stripping, `""` included,
|
|
164
164
|
* is refused before the seat starts. */
|
|
165
165
|
confirm?: string;
|
|
166
|
-
/** Optional native startup choices, answered in order before confirm.
|
|
167
|
-
* may
|
|
166
|
+
/** Optional native startup choices, answered in order before confirm. A choice marked
|
|
167
|
+
* `optional` may be passed over for the next one. Only the startup watch may answer them;
|
|
168
|
+
* ordinary tool permissions remain the harness's responsibility. */
|
|
168
169
|
confirmBefore?: readonly StartupReply[];
|
|
170
|
+
/** Optional texts that show the harness reached its input screen without showing confirm, for a
|
|
171
|
+
* harness that shows that prompt only in some setups. Each is matched within one visible line,
|
|
172
|
+
* normalized like confirm. Seen on two consecutive screen reads, it ends the startup watch with
|
|
173
|
+
* no key. Requires confirm. */
|
|
174
|
+
confirmReady?: readonly string[];
|
|
169
175
|
/** This agent's local control endpoint — the OS path its lifecycle hooks connect to (passed in
|
|
170
176
|
* the child env as `COTAL_CONTROL_SOCKET`/`COTAL_CONTROL_TOKEN`), plus the first-frame `token`
|
|
171
177
|
* that authenticates it. The connector mints it in `buildLaunch`; the manager keeps it IN MEMORY
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/connector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAiVA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAmG;IAEnG,IAAI,SAAS,CAAC,2BAA2B;QAAE,OAAO,OAAO,CAAC;IAC1D,IAAI,SAAS,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,SAAsD;IACpG,IAAI,SAAS,CAAC,wBAAwB,KAAK,IAAI;QAAE,OAAO;IACxD,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** An id derived from `input`: its base64url sha256, 43 characters, so it fits {@link ID} and the
|
|
2
|
+
* same input re-derives the same id in every module that needs it. */
|
|
3
|
+
export declare function digestIdToken(input: string): string;
|
|
4
|
+
//# sourceMappingURL=digest-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest-id.d.ts","sourceRoot":"","sources":["../src/digest-id.ts"],"names":[],"mappings":"AAEA;uEACuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
/** An id derived from `input`: its base64url sha256, 43 characters, so it fits {@link ID} and the
|
|
3
|
+
* same input re-derives the same id in every module that needs it. */
|
|
4
|
+
export function digestIdToken(input) {
|
|
5
|
+
return createHash("sha256").update(input, "utf8").digest("base64url");
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=digest-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest-id.js","sourceRoot":"","sources":["../src/digest-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;uEACuE;AACvE,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -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":"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"}
|
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 { withDeadline } from "./deadline.js";
|
|
5
6
|
import { epfSubject, assertIdToken, endpointToken } from "./endpoint-subjects.js";
|
|
6
7
|
import { RECORD_KINDS, recordSpecKey, recordStatusKey, recordAtomicKey, createRecordEntry, updateRecordEntry, assertStatusValue, openRecordsBucket, readRecordLeader, decodeEntry } from "./endpoint-records.js";
|
|
7
8
|
import { epfStreamName, epfGoalBindSubject, readLastFact, parseDecisionFact } from "./endpoint-journal.js";
|
|
@@ -119,21 +120,6 @@ function assertClosedKeys(o, allowed, what) {
|
|
|
119
120
|
if (!allowed.includes(k))
|
|
120
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)`);
|
|
121
122
|
}
|
|
122
|
-
/** Bound an executor-epoch resolver await: past the budget the caller REFUSES `unavailable`
|
|
123
|
-
* (fail-closed, retryable) instead of hanging. Races `Promise.resolve` unconditionally so a
|
|
124
|
-
* non-native thenable cannot bypass the deadline. */
|
|
125
|
-
async function resolveWithBudget(p, budgetMs) {
|
|
126
|
-
let timer;
|
|
127
|
-
const deadline = new Promise((_, reject) => {
|
|
128
|
-
timer = setTimeout(() => reject(new EpEnvelopeError("unavailable", `the executor-epoch resolver did not answer within ${budgetMs}ms; a stuck lifecycle authority is a bounded refusal, never a hung transition (SPEC 13.6)`)), budgetMs);
|
|
129
|
-
});
|
|
130
|
-
try {
|
|
131
|
-
return await Promise.race([Promise.resolve(p), deadline]);
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
clearTimeout(timer);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
123
|
function parseBind(raw, subject, goalId) {
|
|
138
124
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
139
125
|
throw new EpEnvelopeError("internal", `goal-bind fact on ${subject} is not an object; garbled mediated fact state never authorizes (SPEC 13.4)`);
|
|
@@ -413,7 +399,7 @@ async function assertExecutorCurrency(spec, goalId, executor, resolveCurrentEpoc
|
|
|
413
399
|
throw new EpEnvelopeError("failed-precondition", `goal "${goalId}" is pinned to a target lifecycle; this requires a fresh-epoch resolver (SPEC 13.6: a superseded epoch cannot commit transitions)`);
|
|
414
400
|
if (executor.lifecycleUid !== spec.target.lifecycleUid)
|
|
415
401
|
throw new EpEnvelopeError("expired", `goal "${goalId}" was accepted against lifecycle ${spec.target.lifecycleUid} but the executor is ${executor.lifecycleUid}; a goal is never effectful against a same-name successor (SPEC 13.6)`);
|
|
416
|
-
const current = await
|
|
402
|
+
const current = await withDeadline(Promise.resolve(resolveCurrentEpoch(spec.target)), budgetMs, () => new EpEnvelopeError("unavailable", `the executor-epoch resolver did not answer within ${budgetMs}ms; a stuck lifecycle authority is a bounded refusal, never a hung transition (SPEC 13.6)`));
|
|
417
403
|
if (current !== null && (typeof current !== "number" || !Number.isSafeInteger(current) || current < 0))
|
|
418
404
|
throw new EpEnvelopeError("internal", `the fresh-epoch resolver returned ${JSON.stringify(current)}; a non-integer epoch never authorizes (SPEC 13.6)`);
|
|
419
405
|
if (current === null)
|