@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
package/dist/run-migration.js
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The MIGRATION record: a run's move onto edited source, and who authorised what it discarded.
|
|
3
|
-
*
|
|
4
|
-
* **Why it is its own kind rather than a field on the run.** A records-KV record has two halves and
|
|
5
|
-
* a migration fits neither. The spec half is what a thing IS, decided once and never re-decided —
|
|
6
|
-
* a run's pins. The status half is what it is DOING, last-value-wins, rewritten by the driver on
|
|
7
|
-
* every state change. A migration is append-only HISTORY with an actor on it, and a run can be
|
|
8
|
-
* migrated more than once: putting it in the status half would let the second migration erase the
|
|
9
|
-
* first, and putting it in the spec half would collide with what the spec already says.
|
|
10
|
-
*
|
|
11
|
-
* **The id is derived from the report's own content.** A migration is decided by a dry walk that a
|
|
12
|
-
* crash can force to be re-run, so the same decision must land on the same record instead of filing
|
|
13
|
-
* a second one — and a counter would need somebody to allocate it, which is a second arbiter for a
|
|
14
|
-
* fact the content already determines. Identical retry, identical id, create-only write: the same
|
|
15
|
-
* shape as a notice, for the same reason.
|
|
16
|
-
*
|
|
17
|
-
* **Deciding and applying are separate, and the CAS is the arbiter of the second.** The spec is the
|
|
18
|
-
* report — what the check found, immutable. The status is the COMMIT: which driver actually
|
|
19
|
-
* advanced the run. Two drivers racing to apply one migration both find no status and both write;
|
|
20
|
-
* the store decides and the loser gets a conflict rather than a second belief.
|
|
21
|
-
*/
|
|
22
|
-
import { createHash } from "node:crypto";
|
|
23
1
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
24
2
|
import { assertIdToken } from "./endpoint-subjects.js";
|
|
3
|
+
import { digestIdToken } from "./digest-id.js";
|
|
25
4
|
import { RECORD_KINDS, createRecordEntry, readRecord, recordSpecKey, recordStatusKey, assertStatusValue, } from "./endpoint-records.js";
|
|
26
5
|
import { canonicalJson } from "./canonical.js";
|
|
27
6
|
import { walkKvEntries } from "./kv-scan.js";
|
|
@@ -30,10 +9,6 @@ const STATUS_KEYS = ["v", "appliedAt", "by", "observedSpecRevision"];
|
|
|
30
9
|
function qualifiers(endpoint, runId, migrationId) {
|
|
31
10
|
return [endpoint, runId, migrationId];
|
|
32
11
|
}
|
|
33
|
-
/** base64url of the sha256, truncated to 43 — an `<id-token>` by construction, as elsewhere. */
|
|
34
|
-
function digestId(canonical) {
|
|
35
|
-
return createHash("sha256").update(canonical, "utf8").digest("base64url").slice(0, 43);
|
|
36
|
-
}
|
|
37
12
|
/**
|
|
38
13
|
* The id one migration is filed under: a digest of the report itself.
|
|
39
14
|
*
|
|
@@ -42,7 +17,7 @@ function digestId(canonical) {
|
|
|
42
17
|
* or what was overridden and it is a different migration, which is exactly right — it is.
|
|
43
18
|
*/
|
|
44
19
|
export function runMigrationId(value) {
|
|
45
|
-
return
|
|
20
|
+
return digestIdToken(canonicalJson(value));
|
|
46
21
|
}
|
|
47
22
|
function parseSpec(raw, key) {
|
|
48
23
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../src/run-migration.ts"],"names":[],"mappings":"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"}
|
package/dist/run-notice.d.ts
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The RUN NOTICE record: a bounded decision a workflow told an agent about, written onto the run.
|
|
3
|
+
*
|
|
4
|
+
* **A record and not a channel post.** `notify` is the only primitive that moves program-authored
|
|
5
|
+
* bytes toward an agent's context, and a post would put the program into the conversation as a
|
|
6
|
+
* participant — the one thing this plane's first non-negotiable forbids. So a notice is filed here,
|
|
7
|
+
* addressed to one agent, and rendered as a fixed key→value table ahead of that agent's next turn.
|
|
8
|
+
*
|
|
9
|
+
* **Keyed by a DERIVED addressee id.** An agent's name is dotted and a dot is the records-key
|
|
10
|
+
* separator, so a raw name in the key would silently re-tokenize it into a key of another shape —
|
|
11
|
+
* and a name is not an id token in the first place. The id is a digest of the name; a reader holding
|
|
12
|
+
* the handle re-derives it, so enumerating one agent's notices is still a single prefix scan.
|
|
13
|
+
*
|
|
14
|
+
* **The spec is create-only; the status is the consumption.** A notice is something the program
|
|
15
|
+
* decided, so its content is immutable — a retry after a crash re-derives the same id and lands on
|
|
16
|
+
* its own record rather than filing a second one. Whether it has been CONSUMED is a fact somebody
|
|
17
|
+
* else establishes later, which is why it lives in the status half: the migrate rule refuses to
|
|
18
|
+
* move a run whose notice has not yet been consumed by its addressee's next turn, and that rule
|
|
19
|
+
* needs something to read.
|
|
20
|
+
*/
|
|
1
21
|
import type { KV } from "@nats-io/kv";
|
|
2
22
|
/** The bounded decision itself. The bound is the language's (L3043) and is enforced before a
|
|
3
23
|
* notice is ever written; this type is the shape it arrives in. */
|
package/dist/run-notice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-notice.d.ts","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-notice.d.ts","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAetC;oEACoE;AACpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AASD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExE;AA6CD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiB5C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED,iGAAiG;AACjG,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEpC;AAkBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,EAAE,CAAC,CAK1B;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAK1B;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
package/dist/run-notice.js
CHANGED
|
@@ -1,26 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The RUN NOTICE record: a bounded decision a workflow told an agent about, written onto the run.
|
|
3
|
-
*
|
|
4
|
-
* **A record and not a channel post.** `notify` is the only primitive that moves program-authored
|
|
5
|
-
* bytes toward an agent's context, and a post would put the program into the conversation as a
|
|
6
|
-
* participant — the one thing this plane's first non-negotiable forbids. So a notice is filed here,
|
|
7
|
-
* addressed to one agent, and rendered as a fixed key→value table ahead of that agent's next turn.
|
|
8
|
-
*
|
|
9
|
-
* **Keyed by a DERIVED addressee id.** An agent's name is dotted and a dot is the records-key
|
|
10
|
-
* separator, so a raw name in the key would silently re-tokenize it into a key of another shape —
|
|
11
|
-
* and a name is not an id token in the first place. The id is a digest of the name; a reader holding
|
|
12
|
-
* the handle re-derives it, so enumerating one agent's notices is still a single prefix scan.
|
|
13
|
-
*
|
|
14
|
-
* **The spec is create-only; the status is the consumption.** A notice is something the program
|
|
15
|
-
* decided, so its content is immutable — a retry after a crash re-derives the same id and lands on
|
|
16
|
-
* its own record rather than filing a second one. Whether it has been CONSUMED is a fact somebody
|
|
17
|
-
* else establishes later, which is why it lives in the status half: the migrate rule refuses to
|
|
18
|
-
* move a run whose notice has not yet been consumed by its addressee's next turn, and that rule
|
|
19
|
-
* needs something to read.
|
|
20
|
-
*/
|
|
21
|
-
import { createHash } from "node:crypto";
|
|
22
1
|
import { EpEnvelopeError } from "./endpoint-envelope.js";
|
|
23
2
|
import { assertIdToken } from "./endpoint-subjects.js";
|
|
3
|
+
import { digestIdToken } from "./digest-id.js";
|
|
24
4
|
import { RECORD_KINDS, createRecordEntry, readRecord, recordSpecKey, recordStatusKey, assertStatusValue, } from "./endpoint-records.js";
|
|
25
5
|
import { canonicalJson } from "./canonical.js";
|
|
26
6
|
import { walkKvEntries } from "./kv-scan.js";
|
|
@@ -29,16 +9,11 @@ const STATUS_KEYS = ["v", "consumedAt", "by", "observedSpecRevision"];
|
|
|
29
9
|
function qualifiers(endpoint, runId, addresseeId, noticeId) {
|
|
30
10
|
return [endpoint, runId, addresseeId, noticeId];
|
|
31
11
|
}
|
|
32
|
-
/** base64url of the sha256, truncated to 43 characters — the same shape and alphabet as a run's
|
|
33
|
-
* request ids and a checkpoint answer id, so a derived id is an `<id-token>` by construction. */
|
|
34
|
-
function digestId(canonical) {
|
|
35
|
-
return createHash("sha256").update(canonical, "utf8").digest("base64url").slice(0, 43);
|
|
36
|
-
}
|
|
37
12
|
/** The key token standing for an agent. Derived from the name, never the name itself. */
|
|
38
13
|
export function noticeAddresseeId(agent) {
|
|
39
14
|
if (agent.length === 0)
|
|
40
15
|
throw new EpEnvelopeError("failed-precondition", `a notice addressee is an agent name; the empty string names nobody`);
|
|
41
|
-
return
|
|
16
|
+
return digestIdToken(canonicalJson({ agent }));
|
|
42
17
|
}
|
|
43
18
|
/**
|
|
44
19
|
* The id one notice is filed under.
|
|
@@ -48,7 +23,7 @@ export function noticeAddresseeId(agent) {
|
|
|
48
23
|
* call to N agents writes N notices, and the addressee is what separates them.
|
|
49
24
|
*/
|
|
50
25
|
export function runNoticeId(requestId, addressee) {
|
|
51
|
-
return
|
|
26
|
+
return digestIdToken(canonicalJson({ requestId, addressee }));
|
|
52
27
|
}
|
|
53
28
|
function parseSpec(raw, key) {
|
|
54
29
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
package/dist/run-notice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-notice.js","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-notice.js","sourceRoot":"","sources":["../src/run-notice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Registration-time bounds (SPEC §13.7/§13.8). Fixed by the profile, not caller-tunable, and
|
|
2
|
+
* RUNTIME-frozen (the afa715b class): a post-import `maxDepth = MAX_SAFE_INTEGER` would remove
|
|
3
|
+
* the pre-compilation recursion/DoS ceiling, so mutation throws instead. */
|
|
4
|
+
export declare const SCHEMA_PROFILE: Readonly<{
|
|
5
|
+
/** One schema document's canonical form, bytes. */
|
|
6
|
+
readonly maxDocumentBytes: number;
|
|
7
|
+
/** The complete resolved closure (root + digest-referenced members), bytes. */
|
|
8
|
+
readonly maxClosureBytes: number;
|
|
9
|
+
/** Structural nesting depth of any document. */
|
|
10
|
+
readonly maxDepth: 32;
|
|
11
|
+
/** Digest-reference chain depth (root → member → member …). */
|
|
12
|
+
readonly maxRefChain: 32;
|
|
13
|
+
/** Compile budget per closure, ms. */
|
|
14
|
+
readonly compileBudgetMs: 100;
|
|
15
|
+
/** Bounded pattern complexity: max characters of any `pattern` / `patternProperties` regex. */
|
|
16
|
+
readonly maxPatternChars: 256;
|
|
17
|
+
/** Per-value validation budget at the serving boundary, ms (§13.8 reference). REPORTED on the
|
|
18
|
+
* request path, not enforced — no available instrument can justify refusing a caller on it; see
|
|
19
|
+
* `reportValidateBudget` in endpoint-envelope.ts. */
|
|
20
|
+
readonly validateBudgetMs: 10;
|
|
21
|
+
/** Compiled-schema cache entries (the SPEC's reference 256-entry LRU). */
|
|
22
|
+
readonly compiledCacheEntries: 256;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=schema-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-bounds.d.ts","sourceRoot":"","sources":["../src/schema-bounds.ts"],"names":[],"mappings":"AAAA;;6EAE6E;AAC7E,eAAO,MAAM,cAAc;IACzB,mDAAmD;;IAEnD,+EAA+E;;IAE/E,gDAAgD;;IAoDhD,+DAA+D;;IAE/D,sCAAsC;;IAEtC,+FAA+F;;IAE/F;;0DAEsD;;IAEtD,0EAA0E;;EAEjE,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** Registration-time bounds (SPEC §13.7/§13.8). Fixed by the profile, not caller-tunable, and
|
|
2
|
+
* RUNTIME-frozen (the afa715b class): a post-import `maxDepth = MAX_SAFE_INTEGER` would remove
|
|
3
|
+
* the pre-compilation recursion/DoS ceiling, so mutation throws instead. */
|
|
4
|
+
export const SCHEMA_PROFILE = Object.freeze({
|
|
5
|
+
/** One schema document's canonical form, bytes. */
|
|
6
|
+
maxDocumentBytes: 256 * 1024,
|
|
7
|
+
/** The complete resolved closure (root + digest-referenced members), bytes. */
|
|
8
|
+
maxClosureBytes: 1024 * 1024,
|
|
9
|
+
/** Structural nesting depth of any document. */
|
|
10
|
+
maxDepth: 32,
|
|
11
|
+
// THERE IS DELIBERATELY NO SUBSCHEMA-NODE BOUND HERE, and this note is the guard on that: a node
|
|
12
|
+
// ceiling was proposed twice, and the second attempt was killed by the measurement it asked for.
|
|
13
|
+
//
|
|
14
|
+
// The proposal was to refuse a "pathological" schema by counting subschema nodes before compiling
|
|
15
|
+
// — deterministic, host-independent, and unlike a timer, immune to the machine. Two bases were
|
|
16
|
+
// offered for the constant, and both are dead:
|
|
17
|
+
//
|
|
18
|
+
// COST. There is no knee. Compile cost varies by an ORDER OF MAGNITUDE across schema shapes at a
|
|
19
|
+
// single node count, the spread itself grows with node count, and no two measurements of one
|
|
20
|
+
// cell have ever agreed. NO FIGURE IS QUOTED HERE ON PURPOSE. Six runs of the same quantity
|
|
21
|
+
// across four parties spanned a factor of six, agreeing only where one had read another's number
|
|
22
|
+
// first, so any single ratio in this comment would be an unreplicated observation presented as a
|
|
23
|
+
// measurement. Node count is a sound bound and a poor predictor: a single scalar is set by the
|
|
24
|
+
// worst family and refuses the best, rejecting a cheap union while admitting a far costlier
|
|
25
|
+
// object schema. THAT SHAPE is what defeats the proposal, and unlike a ratio it survives a re-run
|
|
26
|
+
// on another host. To see the numbers for your host, run the probe named below.
|
|
27
|
+
//
|
|
28
|
+
// CRASH. A 2048-node patterned-properties document was observed to RangeError in Ajv's codegen
|
|
29
|
+
// at ~186KB — inside `maxDocumentBytes` — which looked like a hard edge worth standing in front
|
|
30
|
+
// of. It is not an edge — not because it is unstable (re-measured for #1551: the SAME 2062-
|
|
31
|
+
// property/187545-byte document RangeErrors 15/15 fresh processes at this profile's default
|
|
32
|
+
// stack, and the reported cold-then-warm-compiles pattern did not reproduce once) — but because
|
|
33
|
+
// the edge is a function of the STACK BUDGET, not the schema: it moves linearly with
|
|
34
|
+
// `--stack-size` (measured 256KB→~460, 8MB default→~2050, on the pin this profile ships;
|
|
35
|
+
// flattening ajv's codegen with `allErrors: true` moves the same edge to roughly 3.4x wider at
|
|
36
|
+
// any given stack budget, never removes it) and by a fraction of a property per extra caller
|
|
37
|
+
// frame burned before the compile call. A frozen node-count constant cannot express an edge that
|
|
38
|
+
// moves with the CALLER's stack depth, which is outside this module's control.
|
|
39
|
+
//
|
|
40
|
+
// AND THE VALUE WAS UNSAFE ON AN AXIS NOBODY MEASURED. Under `node --stack-size=256` a 512-node
|
|
41
|
+
// object RangeErrors, while 384 compiles — so the proposed `maxSchemaNodes: 512` did not hold
|
|
42
|
+
// at a supported process configuration. A bound that is not a bound across the axes it ships on
|
|
43
|
+
// is not a bound.
|
|
44
|
+
//
|
|
45
|
+
// WHAT STANDS IN ITS PLACE is what was doing the work the whole time: `maxDocumentBytes` and
|
|
46
|
+
// `maxClosureBytes`, `maxDepth`, `maxRefChain`, `maxPatternChars`, the admitted-vocabulary
|
|
47
|
+
// refusal, and — for exactly the codegen overflow above — the compile-error catch in
|
|
48
|
+
// `compileWithinBudget`, which normalises a stack overflow to `contract-invalid` naming the
|
|
49
|
+
// COMPILER's generated-code shape and the property count that triggered it, never the caller's
|
|
50
|
+
// schema (#1551). That set refuses everything it refused before; removing an unfounded bound only
|
|
51
|
+
// LOOSENS, and
|
|
52
|
+
// loosening cannot break a contract that was already valid.
|
|
53
|
+
//
|
|
54
|
+
// BEFORE PROPOSING ONE AGAIN, run `implementations/manager/smoke/_probe-nodecount-rejected.ts`.
|
|
55
|
+
// It MEASURES the spread and the crash boundary on your host, against the compiler that actually
|
|
56
|
+
// ships, and reports no stored figures of its own. The first version of
|
|
57
|
+
// this ceiling was derived from a corpus THE CEILING ITSELF BOUNDED — every synthetic above the
|
|
58
|
+
// line was refused, so the calibration reported that nothing measured had exceeded the budget,
|
|
59
|
+
// and the number was unfalsifiable the moment it shipped. Measure above the line, or do not set
|
|
60
|
+
// the line.
|
|
61
|
+
/** Digest-reference chain depth (root → member → member …). */
|
|
62
|
+
maxRefChain: 32,
|
|
63
|
+
/** Compile budget per closure, ms. */
|
|
64
|
+
compileBudgetMs: 100,
|
|
65
|
+
/** Bounded pattern complexity: max characters of any `pattern` / `patternProperties` regex. */
|
|
66
|
+
maxPatternChars: 256,
|
|
67
|
+
/** Per-value validation budget at the serving boundary, ms (§13.8 reference). REPORTED on the
|
|
68
|
+
* request path, not enforced — no available instrument can justify refusing a caller on it; see
|
|
69
|
+
* `reportValidateBudget` in endpoint-envelope.ts. */
|
|
70
|
+
validateBudgetMs: 10,
|
|
71
|
+
/** Compiled-schema cache entries (the SPEC's reference 256-entry LRU). */
|
|
72
|
+
compiledCacheEntries: 256,
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=schema-bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-bounds.js","sourceRoot":"","sources":["../src/schema-bounds.ts"],"names":[],"mappings":"AAAA;;6EAE6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,mDAAmD;IACnD,gBAAgB,EAAE,GAAG,GAAG,IAAI;IAC5B,+EAA+E;IAC/E,eAAe,EAAE,IAAI,GAAG,IAAI;IAC5B,gDAAgD;IAChD,QAAQ,EAAE,EAAE;IACZ,iGAAiG;IACjG,iGAAiG;IACjG,EAAE;IACF,kGAAkG;IAClG,+FAA+F;IAC/F,+CAA+C;IAC/C,EAAE;IACF,mGAAmG;IACnG,+FAA+F;IAC/F,8FAA8F;IAC9F,mGAAmG;IACnG,mGAAmG;IACnG,iGAAiG;IACjG,8FAA8F;IAC9F,oGAAoG;IACpG,kFAAkF;IAClF,EAAE;IACF,iGAAiG;IACjG,kGAAkG;IAClG,8FAA8F;IAC9F,8FAA8F;IAC9F,kGAAkG;IAClG,uFAAuF;IACvF,2FAA2F;IAC3F,iGAAiG;IACjG,+FAA+F;IAC/F,mGAAmG;IACnG,iFAAiF;IACjF,EAAE;IACF,kGAAkG;IAClG,gGAAgG;IAChG,kGAAkG;IAClG,oBAAoB;IACpB,EAAE;IACF,6FAA6F;IAC7F,2FAA2F;IAC3F,qFAAqF;IACrF,4FAA4F;IAC5F,+FAA+F;IAC/F,kGAAkG;IAClG,eAAe;IACf,4DAA4D;IAC5D,EAAE;IACF,gGAAgG;IAChG,iGAAiG;IACjG,wEAAwE;IACxE,gGAAgG;IAChG,+FAA+F;IAC/F,gGAAgG;IAChG,YAAY;IACZ,+DAA+D;IAC/D,WAAW,EAAE,EAAE;IACf,sCAAsC;IACtC,eAAe,EAAE,GAAG;IACpB,+FAA+F;IAC/F,eAAe,EAAE,GAAG;IACpB;;0DAEsD;IACtD,gBAAgB,EAAE,EAAE;IACpB,0EAA0E;IAC1E,oBAAoB,EAAE,GAAG;CACjB,CAAC,CAAC"}
|
package/dist/schema-profile.d.ts
CHANGED
|
@@ -9,30 +9,9 @@
|
|
|
9
9
|
* BEFORE compilation so a hostile descriptor cannot turn registration into a DoS.
|
|
10
10
|
*/
|
|
11
11
|
import { type ValidateFunction } from "ajv/dist/2020.js";
|
|
12
|
+
import { SCHEMA_PROFILE } from "./schema-bounds.js";
|
|
12
13
|
import { type ContractClosureManifest } from "./contract-manifest.js";
|
|
13
|
-
|
|
14
|
-
* RUNTIME-frozen (the afa715b class): a post-import `maxDepth = MAX_SAFE_INTEGER` would remove
|
|
15
|
-
* the pre-compilation recursion/DoS ceiling, so mutation throws instead. */
|
|
16
|
-
export declare const SCHEMA_PROFILE: Readonly<{
|
|
17
|
-
/** One schema document's canonical form, bytes. */
|
|
18
|
-
readonly maxDocumentBytes: number;
|
|
19
|
-
/** The complete resolved closure (root + digest-referenced members), bytes. */
|
|
20
|
-
readonly maxClosureBytes: number;
|
|
21
|
-
/** Structural nesting depth of any document. */
|
|
22
|
-
readonly maxDepth: 32;
|
|
23
|
-
/** Digest-reference chain depth (root → member → member …). */
|
|
24
|
-
readonly maxRefChain: 32;
|
|
25
|
-
/** Compile budget per closure, ms. */
|
|
26
|
-
readonly compileBudgetMs: 100;
|
|
27
|
-
/** Bounded pattern complexity: max characters of any `pattern` / `patternProperties` regex. */
|
|
28
|
-
readonly maxPatternChars: 256;
|
|
29
|
-
/** Per-value validation budget at the serving boundary, ms (§13.8 reference). REPORTED on the
|
|
30
|
-
* request path, not enforced — no available instrument can justify refusing a caller on it; see
|
|
31
|
-
* `reportValidateBudget` in endpoint-envelope.ts. */
|
|
32
|
-
readonly validateBudgetMs: 10;
|
|
33
|
-
/** Compiled-schema cache entries (the SPEC's reference 256-entry LRU). */
|
|
34
|
-
readonly compiledCacheEntries: 256;
|
|
35
|
-
}>;
|
|
14
|
+
export { SCHEMA_PROFILE };
|
|
36
15
|
/** The §13.7 closure of one self-contained document: the manifest naming it with no members, and
|
|
37
16
|
* that manifest's digest, the closure digest a registration or an `op` digest carries. It needs no
|
|
38
17
|
* compile, and `compileContract` returns the same digest for a member-free schema. Producers build
|
|
@@ -91,6 +70,15 @@ export declare function assertCompiledContract(c: unknown, what: string): Compil
|
|
|
91
70
|
* validator. No network, no filesystem: `loadSchema` is never installed, and every
|
|
92
71
|
* `cotal:` reference must be present in `bundle.members`. */
|
|
93
72
|
export declare function compileContract(bundle: SchemaBundle): CompiledContract;
|
|
73
|
+
/** BUILD-TIME ONLY: the same profile walk and the same Ajv options as {@link compileContract}, with
|
|
74
|
+
* the validator emitted as standalone ES module source instead of a function built at runtime. A
|
|
75
|
+
* page under a strict CSP cannot run Ajv's runtime code generation, so the browser entry carries
|
|
76
|
+
* validators generated here for the closures it supports (`scripts/gen-browser-contracts.ts`).
|
|
77
|
+
* `code` selects the output form only; every option that decides a verdict is unchanged. */
|
|
78
|
+
export declare function standaloneContractSource(bundle: SchemaBundle): {
|
|
79
|
+
closureDigest: string;
|
|
80
|
+
source: string;
|
|
81
|
+
};
|
|
94
82
|
/** {@link compileContract} without the closure identity, kept for validation-only callers. */
|
|
95
83
|
export declare function compileContractSchema(bundle: SchemaBundle): ValidateFunction;
|
|
96
84
|
/** A bounded compiled-schema LRU (SPEC §13.7's reference 256-entry cache), keyed by CLOSURE
|
|
@@ -118,5 +106,4 @@ export declare function serviceContractTable(rows: ReadonlyArray<{
|
|
|
118
106
|
contracts: Readonly<Record<string, ContractPair>>;
|
|
119
107
|
artifactValues: () => unknown[];
|
|
120
108
|
};
|
|
121
|
-
export {};
|
|
122
109
|
//# sourceMappingURL=schema-profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-profile.d.ts","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-profile.d.ts","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAAgC,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,CAAC;AAyE1B;;;;;sDAKsD;AACtD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAGjH;AAED;;cAEc;AACd,eAAO,MAAM,WAAW;;EAA2C,CAAC;AACpE,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,QAA8B,CAAC;AACvE;8EAC8E;AAC9E,eAAO,MAAM,kBAAkB,QAAmD,CAAC;AAKnF;wFACwF;AACxF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAqED;mFACmF;AACnF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AA2HD;;;;;;;;;;gCAUgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAaD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAEpE;AAED;gGACgG;AAChG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAIjF;AA8JD;;8DAE8D;AAC9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAGtE;AAED;;;;6FAI6F;AAC7F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKxG;AAED,8FAA8F;AAC9F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAE5E;AAED;;;;4BAI4B;AAC5B,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,MAA4C,GAAG;IACnG,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,gBAAgB,CAAC;IACpD,IAAI,EAAE,MAAM,MAAM,CAAC;CACpB,CAmBA;AAED,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE1E;;;sGAGsG;AACtG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG;IAC5G,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,EAAE,CAAC;CACjC,CAkCA"}
|
package/dist/schema-profile.js
CHANGED
|
@@ -9,82 +9,13 @@
|
|
|
9
9
|
* BEFORE compilation so a hostile descriptor cannot turn registration into a DoS.
|
|
10
10
|
*/
|
|
11
11
|
import { Ajv2020 } from "ajv/dist/2020.js";
|
|
12
|
+
import { SCHEMA_PROFILE } from "./schema-bounds.js";
|
|
13
|
+
// CommonJS under NodeNext: the default import is `module.exports`, whose `default` is the function.
|
|
14
|
+
import ajvStandalone from "ajv/dist/standalone/index.js";
|
|
12
15
|
import { canonicalJson, contractDigest, isContractDigest } from "./canonical.js";
|
|
13
16
|
import { assertSafePattern } from "./safe-pattern.js";
|
|
14
17
|
import { buildContractClosureManifest } from "./contract-manifest.js";
|
|
15
|
-
|
|
16
|
-
* RUNTIME-frozen (the afa715b class): a post-import `maxDepth = MAX_SAFE_INTEGER` would remove
|
|
17
|
-
* the pre-compilation recursion/DoS ceiling, so mutation throws instead. */
|
|
18
|
-
export const SCHEMA_PROFILE = Object.freeze({
|
|
19
|
-
/** One schema document's canonical form, bytes. */
|
|
20
|
-
maxDocumentBytes: 256 * 1024,
|
|
21
|
-
/** The complete resolved closure (root + digest-referenced members), bytes. */
|
|
22
|
-
maxClosureBytes: 1024 * 1024,
|
|
23
|
-
/** Structural nesting depth of any document. */
|
|
24
|
-
maxDepth: 32,
|
|
25
|
-
// THERE IS DELIBERATELY NO SUBSCHEMA-NODE BOUND HERE, and this note is the guard on that: a node
|
|
26
|
-
// ceiling was proposed twice, and the second attempt was killed by the measurement it asked for.
|
|
27
|
-
//
|
|
28
|
-
// The proposal was to refuse a "pathological" schema by counting subschema nodes before compiling
|
|
29
|
-
// — deterministic, host-independent, and unlike a timer, immune to the machine. Two bases were
|
|
30
|
-
// offered for the constant, and both are dead:
|
|
31
|
-
//
|
|
32
|
-
// COST. There is no knee. Compile cost varies by an ORDER OF MAGNITUDE across schema shapes at a
|
|
33
|
-
// single node count, the spread itself grows with node count, and no two measurements of one
|
|
34
|
-
// cell have ever agreed. NO FIGURE IS QUOTED HERE ON PURPOSE. Six runs of the same quantity
|
|
35
|
-
// across four parties spanned a factor of six, agreeing only where one had read another's number
|
|
36
|
-
// first, so any single ratio in this comment would be an unreplicated observation presented as a
|
|
37
|
-
// measurement. Node count is a sound bound and a poor predictor: a single scalar is set by the
|
|
38
|
-
// worst family and refuses the best, rejecting a cheap union while admitting a far costlier
|
|
39
|
-
// object schema. THAT SHAPE is what defeats the proposal, and unlike a ratio it survives a re-run
|
|
40
|
-
// on another host. To see the numbers for your host, run the probe named below.
|
|
41
|
-
//
|
|
42
|
-
// CRASH. A 2048-node patterned-properties document was observed to RangeError in Ajv's codegen
|
|
43
|
-
// at ~186KB — inside `maxDocumentBytes` — which looked like a hard edge worth standing in front
|
|
44
|
-
// of. It is not an edge — not because it is unstable (re-measured for #1551: the SAME 2062-
|
|
45
|
-
// property/187545-byte document RangeErrors 15/15 fresh processes at this profile's default
|
|
46
|
-
// stack, and the reported cold-then-warm-compiles pattern did not reproduce once) — but because
|
|
47
|
-
// the edge is a function of the STACK BUDGET, not the schema: it moves linearly with
|
|
48
|
-
// `--stack-size` (measured 256KB→~460, 8MB default→~2050, on the pin this profile ships;
|
|
49
|
-
// flattening ajv's codegen with `allErrors: true` moves the same edge to roughly 3.4x wider at
|
|
50
|
-
// any given stack budget, never removes it) and by a fraction of a property per extra caller
|
|
51
|
-
// frame burned before the compile call. A frozen node-count constant cannot express an edge that
|
|
52
|
-
// moves with the CALLER's stack depth, which is outside this module's control.
|
|
53
|
-
//
|
|
54
|
-
// AND THE VALUE WAS UNSAFE ON AN AXIS NOBODY MEASURED. Under `node --stack-size=256` a 512-node
|
|
55
|
-
// object RangeErrors, while 384 compiles — so the proposed `maxSchemaNodes: 512` did not hold
|
|
56
|
-
// at a supported process configuration. A bound that is not a bound across the axes it ships on
|
|
57
|
-
// is not a bound.
|
|
58
|
-
//
|
|
59
|
-
// WHAT STANDS IN ITS PLACE is what was doing the work the whole time: `maxDocumentBytes` and
|
|
60
|
-
// `maxClosureBytes`, `maxDepth`, `maxRefChain`, `maxPatternChars`, the admitted-vocabulary
|
|
61
|
-
// refusal, and — for exactly the codegen overflow above — the compile-error catch in
|
|
62
|
-
// `compileWithinBudget`, which normalises a stack overflow to `contract-invalid` naming the
|
|
63
|
-
// COMPILER's generated-code shape and the property count that triggered it, never the caller's
|
|
64
|
-
// schema (#1551). That set refuses everything it refused before; removing an unfounded bound only
|
|
65
|
-
// LOOSENS, and
|
|
66
|
-
// loosening cannot break a contract that was already valid.
|
|
67
|
-
//
|
|
68
|
-
// BEFORE PROPOSING ONE AGAIN, run `implementations/manager/smoke/_probe-nodecount-rejected.ts`.
|
|
69
|
-
// It MEASURES the spread and the crash boundary on your host, against the compiler that actually
|
|
70
|
-
// ships, and reports no stored figures of its own. The first version of
|
|
71
|
-
// this ceiling was derived from a corpus THE CEILING ITSELF BOUNDED — every synthetic above the
|
|
72
|
-
// line was refused, so the calibration reported that nothing measured had exceeded the budget,
|
|
73
|
-
// and the number was unfalsifiable the moment it shipped. Measure above the line, or do not set
|
|
74
|
-
// the line.
|
|
75
|
-
/** Digest-reference chain depth (root → member → member …). */
|
|
76
|
-
maxRefChain: 32,
|
|
77
|
-
/** Compile budget per closure, ms. */
|
|
78
|
-
compileBudgetMs: 100,
|
|
79
|
-
/** Bounded pattern complexity: max characters of any `pattern` / `patternProperties` regex. */
|
|
80
|
-
maxPatternChars: 256,
|
|
81
|
-
/** Per-value validation budget at the serving boundary, ms (§13.8 reference). REPORTED on the
|
|
82
|
-
* request path, not enforced — no available instrument can justify refusing a caller on it; see
|
|
83
|
-
* `reportValidateBudget` in endpoint-envelope.ts. */
|
|
84
|
-
validateBudgetMs: 10,
|
|
85
|
-
/** Compiled-schema cache entries (the SPEC's reference 256-entry LRU). */
|
|
86
|
-
compiledCacheEntries: 256,
|
|
87
|
-
});
|
|
18
|
+
export { SCHEMA_PROFILE };
|
|
88
19
|
/**
|
|
89
20
|
* The EXACT Ajv configuration the profile compiles with. Module-private: it was briefly exported so
|
|
90
21
|
* a node-ceiling calibration could measure the real compiler, and that ceiling is gone (see
|
|
@@ -567,6 +498,18 @@ export function compileContract(bundle) {
|
|
|
567
498
|
const closureDigest = assertClosureProfile(bundle);
|
|
568
499
|
return makeCompiled(compileWithinBudget(bundle), closureDigest);
|
|
569
500
|
}
|
|
501
|
+
/** BUILD-TIME ONLY: the same profile walk and the same Ajv options as {@link compileContract}, with
|
|
502
|
+
* the validator emitted as standalone ES module source instead of a function built at runtime. A
|
|
503
|
+
* page under a strict CSP cannot run Ajv's runtime code generation, so the browser entry carries
|
|
504
|
+
* validators generated here for the closures it supports (`scripts/gen-browser-contracts.ts`).
|
|
505
|
+
* `code` selects the output form only; every option that decides a verdict is unchanged. */
|
|
506
|
+
export function standaloneContractSource(bundle) {
|
|
507
|
+
const closureDigest = assertClosureProfile(bundle);
|
|
508
|
+
const ajv = new Ajv2020({ ...AJV_PROFILE_OPTIONS, code: { source: true, esm: true } });
|
|
509
|
+
for (const [digest, member] of Object.entries(bundle.members ?? {}))
|
|
510
|
+
ajv.addSchema(member, `cotal:${digest}`);
|
|
511
|
+
return { closureDigest, source: ajvStandalone.default(ajv, ajv.compile(bundle.root)) };
|
|
512
|
+
}
|
|
570
513
|
/** {@link compileContract} without the closure identity, kept for validation-only callers. */
|
|
571
514
|
export function compileContractSchema(bundle) {
|
|
572
515
|
return compileContract(bundle).validate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-profile.js","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-profile.js","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
export interface StartupReply {
|
|
4
4
|
prompt: string;
|
|
5
5
|
key: "Down" | "Enter";
|
|
6
|
+
/** The choice may never appear, for example one of two layouts a harness draws a dialog in. While
|
|
7
|
+
* it is not on screen, the next choice can be answered instead, which skips this one for good. */
|
|
8
|
+
optional?: boolean;
|
|
6
9
|
}
|
|
7
10
|
/** The seat package repeats this small matcher because it has no core dependency. Both operate on
|
|
8
11
|
* current screen snapshots, never scrollback accumulated from an earlier dialog. */
|
|
9
12
|
export declare class StartupConfirmSequence {
|
|
10
13
|
#private;
|
|
11
|
-
constructor(prompt: string, before?: readonly StartupReply[]);
|
|
14
|
+
constructor(prompt: string, before?: readonly StartupReply[], ready?: readonly string[]);
|
|
15
|
+
/** The key to press, if any; `done` ends the watch. */
|
|
12
16
|
observe(screen: string): {
|
|
13
|
-
key
|
|
17
|
+
key?: "Down" | "Enter";
|
|
14
18
|
done: boolean;
|
|
15
19
|
} | undefined;
|
|
16
20
|
}
|
|
@@ -26,7 +30,7 @@ export interface ConfirmPane {
|
|
|
26
30
|
/** Stop the child and report the failure. Must not throw from the watch's timer. */
|
|
27
31
|
fail(message: string): void;
|
|
28
32
|
}
|
|
29
|
-
/** Honor {@link LaunchSpec.confirm}
|
|
30
|
-
* No key is sent for an unrelated dialog, after exit, or
|
|
31
|
-
export declare function confirmWatch(prompt: string, before?: readonly StartupReply[]): (pane: ConfirmPane) => void;
|
|
33
|
+
/** Honor {@link LaunchSpec.confirm}, its optional preceding choices and its ready texts within one
|
|
34
|
+
* startup bound. No key is sent for an unrelated dialog, after exit, or once the watch is done. */
|
|
35
|
+
export declare function confirmWatch(prompt: string, before?: readonly StartupReply[], ready?: readonly string[]): (pane: ConfirmPane) => void;
|
|
32
36
|
//# sourceMappingURL=startup-confirm.d.ts.map
|