@clowder-ai/plugin-contract 0.1.0-beta.2 → 0.1.0-beta.21
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/codegen/generate-contract.d.ts +10 -0
- package/dist/codegen/generate-contract.d.ts.map +1 -1
- package/dist/codegen/generate-contract.js +201 -19
- package/dist/codegen/generate-contract.js.map +1 -1
- package/dist/conformance/fixtures.d.ts +11 -0
- package/dist/conformance/fixtures.d.ts.map +1 -0
- package/dist/conformance/fixtures.js +9 -0
- package/dist/conformance/fixtures.js.map +1 -0
- package/dist/conformance/index.d.ts +4 -0
- package/dist/conformance/index.d.ts.map +1 -1
- package/dist/conformance/index.js +3 -0
- package/dist/conformance/index.js.map +1 -1
- package/dist/conformance/messaging-behavior-fixture.d.ts +12 -0
- package/dist/conformance/messaging-behavior-fixture.d.ts.map +1 -0
- package/dist/conformance/messaging-behavior-fixture.js +30 -0
- package/dist/conformance/messaging-behavior-fixture.js.map +1 -0
- package/dist/conformance/runner.d.ts.map +1 -1
- package/dist/conformance/runner.js +22 -2
- package/dist/conformance/runner.js.map +1 -1
- package/dist/conformance/stdio-harness/child-process-harness.d.ts +65 -0
- package/dist/conformance/stdio-harness/child-process-harness.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/child-process-harness.js +296 -0
- package/dist/conformance/stdio-harness/child-process-harness.js.map +1 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.d.ts +26 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.js +32 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.js.map +1 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.d.ts +27 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.js +43 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.js.map +1 -0
- package/dist/conformance/stdio-harness/index.d.ts +5 -0
- package/dist/conformance/stdio-harness/index.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/index.js +4 -0
- package/dist/conformance/stdio-harness/index.js.map +1 -0
- package/dist/conformance/stdio-harness/ndjson-frame.d.ts +31 -0
- package/dist/conformance/stdio-harness/ndjson-frame.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/ndjson-frame.js +125 -0
- package/dist/conformance/stdio-harness/ndjson-frame.js.map +1 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.d.ts +15 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.js +78 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.js.map +1 -0
- package/dist/conformance/stdio-harness/process-tree-controller.d.ts +51 -0
- package/dist/conformance/stdio-harness/process-tree-controller.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/process-tree-controller.js +162 -0
- package/dist/conformance/stdio-harness/process-tree-controller.js.map +1 -0
- package/dist/conformance/stdio-harness/windows-sentinel.d.ts +15 -0
- package/dist/conformance/stdio-harness/windows-sentinel.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/windows-sentinel.js +160 -0
- package/dist/conformance/stdio-harness/windows-sentinel.js.map +1 -0
- package/dist/conformance/stdio-harness/wire-shape.d.ts +18 -0
- package/dist/conformance/stdio-harness/wire-shape.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/wire-shape.js +2 -0
- package/dist/conformance/stdio-harness/wire-shape.js.map +1 -0
- package/dist/docx-materialization.d.ts +8 -0
- package/dist/docx-materialization.d.ts.map +1 -0
- package/dist/docx-materialization.js +19 -0
- package/dist/docx-materialization.js.map +1 -0
- package/dist/generated/contract.generated.d.ts +984 -12
- package/dist/generated/contract.generated.d.ts.map +1 -1
- package/dist/generated/contract.generated.js +9 -1
- package/dist/generated/contract.generated.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/validation/catalog.d.ts +21 -0
- package/dist/validation/catalog.d.ts.map +1 -0
- package/dist/validation/catalog.js +140 -0
- package/dist/validation/catalog.js.map +1 -0
- package/dist/validation/companion-bridge.d.ts +6 -0
- package/dist/validation/companion-bridge.d.ts.map +1 -0
- package/dist/validation/companion-bridge.js +70 -0
- package/dist/validation/companion-bridge.js.map +1 -0
- package/dist/validation/docx-materialization.d.ts +6 -0
- package/dist/validation/docx-materialization.d.ts.map +1 -0
- package/dist/validation/docx-materialization.js +36 -0
- package/dist/validation/docx-materialization.js.map +1 -0
- package/dist/validation/index.d.ts +6 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/manifest.d.ts +23 -0
- package/dist/validation/manifest.d.ts.map +1 -0
- package/dist/validation/manifest.js +160 -0
- package/dist/validation/manifest.js.map +1 -0
- package/dist/validation/messaging-semantic.d.ts.map +1 -1
- package/dist/validation/messaging-semantic.js +49 -0
- package/dist/validation/messaging-semantic.js.map +1 -1
- package/dist/validation/messaging-wire.d.ts +38 -0
- package/dist/validation/messaging-wire.d.ts.map +1 -0
- package/dist/validation/messaging-wire.js +164 -0
- package/dist/validation/messaging-wire.js.map +1 -0
- package/dist/validation/signals.d.ts +26 -0
- package/dist/validation/signals.d.ts.map +1 -0
- package/dist/validation/signals.js +206 -0
- package/dist/validation/signals.js.map +1 -0
- package/dist/wire/constants.d.ts +36 -0
- package/dist/wire/constants.d.ts.map +1 -0
- package/dist/wire/constants.js +36 -0
- package/dist/wire/constants.js.map +1 -0
- package/dist/wire/disposition-fixtures.d.ts +118 -0
- package/dist/wire/disposition-fixtures.d.ts.map +1 -0
- package/dist/wire/disposition-fixtures.js +1881 -0
- package/dist/wire/disposition-fixtures.js.map +1 -0
- package/dist/wire/disposition.d.ts +102 -0
- package/dist/wire/disposition.d.ts.map +1 -0
- package/dist/wire/disposition.js +217 -0
- package/dist/wire/disposition.js.map +1 -0
- package/dist/wire/envelope.d.ts +253 -0
- package/dist/wire/envelope.d.ts.map +1 -0
- package/dist/wire/envelope.js +19 -0
- package/dist/wire/envelope.js.map +1 -0
- package/dist/wire/errors.d.ts +222 -0
- package/dist/wire/errors.d.ts.map +1 -0
- package/dist/wire/errors.js +153 -0
- package/dist/wire/errors.js.map +1 -0
- package/dist/wire/grants.d.ts +57 -0
- package/dist/wire/grants.d.ts.map +1 -0
- package/dist/wire/grants.js +59 -0
- package/dist/wire/grants.js.map +1 -0
- package/dist/wire/handshake-byte-bounds.d.ts +69 -0
- package/dist/wire/handshake-byte-bounds.d.ts.map +1 -0
- package/dist/wire/handshake-byte-bounds.js +173 -0
- package/dist/wire/handshake-byte-bounds.js.map +1 -0
- package/dist/wire/handshake.d.ts +146 -0
- package/dist/wire/handshake.d.ts.map +1 -0
- package/dist/wire/handshake.js +189 -0
- package/dist/wire/handshake.js.map +1 -0
- package/dist/wire/index.d.ts +37 -0
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +61 -0
- package/dist/wire/index.js.map +1 -0
- package/dist/wire/lifecycle-byte-bounds.d.ts +55 -0
- package/dist/wire/lifecycle-byte-bounds.d.ts.map +1 -0
- package/dist/wire/lifecycle-byte-bounds.js +209 -0
- package/dist/wire/lifecycle-byte-bounds.js.map +1 -0
- package/dist/wire/messaging-byte-bounds.d.ts +61 -0
- package/dist/wire/messaging-byte-bounds.d.ts.map +1 -0
- package/dist/wire/messaging-byte-bounds.js +459 -0
- package/dist/wire/messaging-byte-bounds.js.map +1 -0
- package/dist/wire/registry.d.ts +294 -0
- package/dist/wire/registry.d.ts.map +1 -0
- package/dist/wire/registry.js +256 -0
- package/dist/wire/registry.js.map +1 -0
- package/dist/wire/request-id.d.ts +34 -0
- package/dist/wire/request-id.d.ts.map +1 -0
- package/dist/wire/request-id.js +40 -0
- package/dist/wire/request-id.js.map +1 -0
- package/dist/wire/row-shapes.d.ts +217 -0
- package/dist/wire/row-shapes.d.ts.map +1 -0
- package/dist/wire/row-shapes.js +75 -0
- package/dist/wire/row-shapes.js.map +1 -0
- package/dist/wire/signal-byte-bounds.d.ts +97 -0
- package/dist/wire/signal-byte-bounds.d.ts.map +1 -0
- package/dist/wire/signal-byte-bounds.js +229 -0
- package/dist/wire/signal-byte-bounds.js.map +1 -0
- package/dist/wire/wire-uint53.d.ts +26 -0
- package/dist/wire/wire-uint53.d.ts.map +1 -0
- package/dist/wire/wire-uint53.js +32 -0
- package/dist/wire/wire-uint53.js.map +1 -0
- package/fixtures/behavior/messaging/adversarial-invariants.json +85 -0
- package/fixtures/manifest/invalid/duplicate-signal-type.json +33 -0
- package/fixtures/manifest/invalid/icon-package-escape.json +22 -0
- package/fixtures/manifest/valid/localized-product-metadata.json +27 -0
- package/fixtures/messaging/valid/subscription-delivery.json +1 -1
- package/fixtures/signals/invalid/destination-injection.json +15 -0
- package/fixtures/signals/invalid/dynamic-schema-url.json +10 -0
- package/fixtures/signals/invalid/forbidden-raw-privacy.json +10 -0
- package/fixtures/signals/invalid/non-utc-occurred-at.json +12 -0
- package/fixtures/signals/valid/feishu-meeting-artifact.json +18 -0
- package/fixtures/signals/valid/remote-service-declaration.json +10 -0
- package/package.json +19 -6
- package/src/schemas/behavior-fixture.schema.json +262 -2
- package/src/schemas/catalog.schema.json +91 -0
- package/src/schemas/companion-bridge.schema.json +1011 -0
- package/src/schemas/docx-materialization.schema.json +302 -0
- package/src/schemas/manifest.schema.json +490 -4
- package/src/schemas/messaging.schema.json +209 -32
- package/src/schemas/physical-limb.schema.json +319 -0
- package/src/schemas/plugin-metadata.schema.json +62 -0
- package/src/schemas/signal.schema.json +129 -0
|
@@ -4,18 +4,28 @@ export interface JsonSchema {
|
|
|
4
4
|
readonly type?: string | readonly string[];
|
|
5
5
|
readonly enum?: string[];
|
|
6
6
|
readonly const?: unknown;
|
|
7
|
+
readonly pattern?: string;
|
|
7
8
|
readonly properties?: Record<string, JsonSchema>;
|
|
8
9
|
readonly required?: readonly string[];
|
|
9
10
|
readonly items?: JsonSchema;
|
|
11
|
+
readonly minItems?: number;
|
|
12
|
+
readonly maxItems?: number;
|
|
10
13
|
readonly oneOf?: readonly JsonSchema[];
|
|
11
14
|
readonly anyOf?: readonly JsonSchema[];
|
|
12
15
|
readonly allOf?: readonly JsonSchema[];
|
|
16
|
+
readonly not?: JsonSchema;
|
|
13
17
|
readonly additionalProperties?: boolean | JsonSchema;
|
|
14
18
|
readonly [key: string]: unknown;
|
|
15
19
|
}
|
|
16
20
|
export interface ContractSchemas {
|
|
21
|
+
readonly pluginMetadata: JsonSchema;
|
|
17
22
|
readonly manifest: JsonSchema;
|
|
23
|
+
readonly catalog: JsonSchema;
|
|
24
|
+
readonly signals: JsonSchema;
|
|
18
25
|
readonly messaging: JsonSchema;
|
|
26
|
+
readonly physicalLimb: JsonSchema;
|
|
27
|
+
readonly docxMaterialization: JsonSchema;
|
|
28
|
+
readonly companionBridge: JsonSchema;
|
|
19
29
|
readonly behavior: JsonSchema;
|
|
20
30
|
}
|
|
21
31
|
export declare function loadContractSchemas(): Promise<ContractSchemas>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-contract.d.ts","sourceRoot":"","sources":["../../src/codegen/generate-contract.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACrD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"generate-contract.d.ts","sourceRoot":"","sources":["../../src/codegen/generate-contract.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACrD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;CAC/B;AAaD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAoBpE;AAgjBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA+CvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS/D"}
|
|
@@ -4,13 +4,21 @@ import { dirname, resolve } from 'node:path';
|
|
|
4
4
|
import { isDeepStrictEqual } from 'node:util';
|
|
5
5
|
const GENERATED_URL = new URL('../generated/contract.generated.ts', import.meta.url);
|
|
6
6
|
const MANIFEST_CAPABILITY_REF = 'https://clowder-ai.dev/schemas/manifest/v0.1#/$defs/Capability';
|
|
7
|
+
const PLUGIN_METADATA_SCHEMA_PREFIX = 'https://clowder-ai.dev/schemas/plugin-metadata/v1#/$defs/';
|
|
8
|
+
const SIGNAL_SCHEMA_PREFIX = 'https://clowder-ai.dev/schemas/signals/v0.2#/$defs/';
|
|
7
9
|
async function readSchema(url) {
|
|
8
10
|
return JSON.parse(await readFile(url, 'utf8'));
|
|
9
11
|
}
|
|
10
12
|
export async function loadContractSchemas() {
|
|
11
13
|
return {
|
|
14
|
+
pluginMetadata: await readSchema(new URL('../schemas/plugin-metadata.schema.json', import.meta.url)),
|
|
12
15
|
manifest: await readSchema(new URL('../schemas/manifest.schema.json', import.meta.url)),
|
|
16
|
+
catalog: await readSchema(new URL('../schemas/catalog.schema.json', import.meta.url)),
|
|
17
|
+
signals: await readSchema(new URL('../schemas/signal.schema.json', import.meta.url)),
|
|
13
18
|
messaging: await readSchema(new URL('../schemas/messaging.schema.json', import.meta.url)),
|
|
19
|
+
physicalLimb: await readSchema(new URL('../schemas/physical-limb.schema.json', import.meta.url)),
|
|
20
|
+
docxMaterialization: await readSchema(new URL('../schemas/docx-materialization.schema.json', import.meta.url)),
|
|
21
|
+
companionBridge: await readSchema(new URL('../schemas/companion-bridge.schema.json', import.meta.url)),
|
|
14
22
|
behavior: await readSchema(new URL('../schemas/behavior-fixture.schema.json', import.meta.url)),
|
|
15
23
|
};
|
|
16
24
|
}
|
|
@@ -29,13 +37,26 @@ function literal(value) {
|
|
|
29
37
|
function refName(ref) {
|
|
30
38
|
if (ref === MANIFEST_CAPABILITY_REF)
|
|
31
39
|
return 'Capability';
|
|
40
|
+
if (ref.startsWith(PLUGIN_METADATA_SCHEMA_PREFIX)) {
|
|
41
|
+
return decodeURIComponent(ref.slice(PLUGIN_METADATA_SCHEMA_PREFIX.length));
|
|
42
|
+
}
|
|
43
|
+
if (ref.startsWith(SIGNAL_SCHEMA_PREFIX)) {
|
|
44
|
+
return decodeURIComponent(ref.slice(SIGNAL_SCHEMA_PREFIX.length));
|
|
45
|
+
}
|
|
32
46
|
const marker = '#/$defs/';
|
|
33
47
|
if (!ref.startsWith(marker)) {
|
|
34
48
|
throw new Error(`Unsupported schema reference: ${ref}`);
|
|
35
49
|
}
|
|
36
50
|
return decodeURIComponent(ref.slice(marker.length));
|
|
37
51
|
}
|
|
38
|
-
function arrayType(itemType) {
|
|
52
|
+
function arrayType(schema, itemType) {
|
|
53
|
+
const fixedLength = schema.minItems;
|
|
54
|
+
if (typeof fixedLength === 'number' &&
|
|
55
|
+
Number.isInteger(fixedLength) &&
|
|
56
|
+
fixedLength === schema.maxItems &&
|
|
57
|
+
fixedLength >= 0) {
|
|
58
|
+
return `readonly [${Array.from({ length: fixedLength }, () => itemType).join(', ')}]`;
|
|
59
|
+
}
|
|
39
60
|
const needsParentheses = itemType.includes(' | ') || itemType.includes('\n');
|
|
40
61
|
return `readonly ${needsParentheses ? `(${itemType})` : itemType}[]`;
|
|
41
62
|
}
|
|
@@ -46,10 +67,37 @@ function indentContinuation(value, spaces) {
|
|
|
46
67
|
const indent = ' '.repeat(spaces);
|
|
47
68
|
return value.replaceAll('\n', `\n${indent}`);
|
|
48
69
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
70
|
+
function renderPropertyType(schema) {
|
|
71
|
+
if (schema.$ref && schema.pattern) {
|
|
72
|
+
const suffix = /^\\\.([A-Za-z0-9]+)\$$/u.exec(schema.pattern)?.[1];
|
|
73
|
+
if (!suffix) {
|
|
74
|
+
throw new Error(`Unsupported referenced string pattern: ${schema.pattern}`);
|
|
75
|
+
}
|
|
76
|
+
return `${renderType({ $ref: schema.$ref })} & \`\${string}.${suffix}\``;
|
|
77
|
+
}
|
|
78
|
+
return renderType(schema);
|
|
79
|
+
}
|
|
80
|
+
function renderObjectShape(properties, required, forbidden = new Set(), renderedProperties = {}) {
|
|
51
81
|
const entries = Object.entries(properties);
|
|
52
82
|
if (entries.length === 0) {
|
|
83
|
+
return 'Record<string, never>';
|
|
84
|
+
}
|
|
85
|
+
const fields = entries.map(([name, property]) => {
|
|
86
|
+
if (forbidden.has(name)) {
|
|
87
|
+
if (required.has(name)) {
|
|
88
|
+
throw new Error(`Schema property ${name} cannot be both required and forbidden`);
|
|
89
|
+
}
|
|
90
|
+
return ` readonly ${propertyName(name)}?: never;`;
|
|
91
|
+
}
|
|
92
|
+
const optional = required.has(name) ? '' : '?';
|
|
93
|
+
const rendered = indentContinuation(renderedProperties[name] ?? renderPropertyType(property), 2);
|
|
94
|
+
return ` readonly ${propertyName(name)}${optional}: ${rendered};`;
|
|
95
|
+
});
|
|
96
|
+
return `{\n${fields.join('\n')}\n}`;
|
|
97
|
+
}
|
|
98
|
+
function renderObject(schema) {
|
|
99
|
+
const properties = schema.properties ?? {};
|
|
100
|
+
if (Object.keys(properties).length === 0) {
|
|
53
101
|
if (schema.additionalProperties === false)
|
|
54
102
|
return 'Record<string, never>';
|
|
55
103
|
if (typeof schema.additionalProperties === 'object') {
|
|
@@ -57,13 +105,101 @@ function renderObject(schema) {
|
|
|
57
105
|
}
|
|
58
106
|
return 'Readonly<Record<string, unknown>>';
|
|
59
107
|
}
|
|
108
|
+
return renderObjectShape(properties, new Set(schema.required ?? []));
|
|
109
|
+
}
|
|
110
|
+
function renderDiscriminatedObject(schema, discriminator) {
|
|
111
|
+
if (schema.type !== 'object') {
|
|
112
|
+
throw new Error(`Discriminated schema must be an object: ${discriminator}`);
|
|
113
|
+
}
|
|
114
|
+
const baseProperties = schema.properties ?? {};
|
|
115
|
+
const values = baseProperties[discriminator]?.enum;
|
|
116
|
+
if (!values?.length) {
|
|
117
|
+
throw new Error(`Discriminated schema must enumerate ${discriminator}`);
|
|
118
|
+
}
|
|
119
|
+
return values
|
|
120
|
+
.map((value) => {
|
|
121
|
+
const properties = {
|
|
122
|
+
...baseProperties,
|
|
123
|
+
[discriminator]: { const: value },
|
|
124
|
+
};
|
|
125
|
+
const required = new Set(schema.required ?? []);
|
|
126
|
+
const forbidden = new Set();
|
|
127
|
+
for (const rule of schema.allOf ?? []) {
|
|
128
|
+
const condition = rule['if'];
|
|
129
|
+
if (!condition) {
|
|
130
|
+
throw new Error(`Unsupported unconditional allOf rule for ${discriminator}`);
|
|
131
|
+
}
|
|
132
|
+
const discriminatorCondition = condition.properties?.[discriminator];
|
|
133
|
+
if (!discriminatorCondition) {
|
|
134
|
+
throw new Error(`Conditional rule must constrain ${discriminator}`);
|
|
135
|
+
}
|
|
136
|
+
const conditionMatches = discriminatorCondition.const === value ||
|
|
137
|
+
discriminatorCondition.enum?.includes(value) === true;
|
|
138
|
+
const branch = rule[conditionMatches ? 'then' : 'else'];
|
|
139
|
+
if (!branch)
|
|
140
|
+
continue;
|
|
141
|
+
for (const name of branch.required ?? [])
|
|
142
|
+
required.add(name);
|
|
143
|
+
for (const name of branch.not?.required ?? [])
|
|
144
|
+
forbidden.add(name);
|
|
145
|
+
for (const [name, override] of Object.entries((branch.properties ?? {}))) {
|
|
146
|
+
if (override === false) {
|
|
147
|
+
forbidden.add(name);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
properties[name] = { ...properties[name], ...override };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return renderObjectShape(properties, required, forbidden);
|
|
154
|
+
})
|
|
155
|
+
.join(' | ');
|
|
156
|
+
}
|
|
157
|
+
function schemaStringValues(schema, label) {
|
|
158
|
+
const values = schema?.enum ?? (typeof schema?.const === 'string' ? [schema.const] : undefined);
|
|
159
|
+
if (!values?.length || !values.every((value) => typeof value === 'string')) {
|
|
160
|
+
throw new Error(`${label} must be a non-empty string const or enum`);
|
|
161
|
+
}
|
|
162
|
+
return values;
|
|
163
|
+
}
|
|
164
|
+
function renderBehaviorExecutionConstraint(schema) {
|
|
165
|
+
const planes = schemaStringValues(schema.properties?.['plane'], 'BehaviorCase execution.plane');
|
|
166
|
+
const methodSchema = schema.properties?.['method'];
|
|
167
|
+
const methods = methodSchema
|
|
168
|
+
? schemaStringValues(methodSchema, 'BehaviorCase execution.method')
|
|
169
|
+
: [];
|
|
170
|
+
return planes
|
|
171
|
+
.flatMap((plane) => {
|
|
172
|
+
const base = `Extract<BehaviorExecution, { readonly plane: ${quote(plane)} }>`;
|
|
173
|
+
if (methods.length === 0)
|
|
174
|
+
return [base];
|
|
175
|
+
return methods.map((method) => `${base} & { readonly method: ${quote(method)} }`);
|
|
176
|
+
})
|
|
177
|
+
.join(' | ');
|
|
178
|
+
}
|
|
179
|
+
function renderBehaviorCase(schema) {
|
|
180
|
+
if (schema.type !== 'object') {
|
|
181
|
+
throw new Error('BehaviorCase must be an object');
|
|
182
|
+
}
|
|
183
|
+
const properties = schema.properties ?? {};
|
|
60
184
|
const required = new Set(schema.required ?? []);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
185
|
+
return (schema.allOf ?? [])
|
|
186
|
+
.map((rule) => {
|
|
187
|
+
const condition = rule['if'];
|
|
188
|
+
const consequence = rule['then'];
|
|
189
|
+
const operation = condition?.properties?.['when']?.properties?.['operation'];
|
|
190
|
+
const execution = consequence?.properties?.['execution'];
|
|
191
|
+
const operations = schemaStringValues(operation, 'BehaviorCase when.operation');
|
|
192
|
+
if (!execution) {
|
|
193
|
+
throw new Error('BehaviorCase conditional must constrain execution');
|
|
194
|
+
}
|
|
195
|
+
return renderObjectShape(properties, required, new Set(), {
|
|
196
|
+
when: `Extract<FixtureOperation, { readonly operation: ${operations
|
|
197
|
+
.map(quote)
|
|
198
|
+
.join(' | ')} }>`,
|
|
199
|
+
execution: renderBehaviorExecutionConstraint(execution),
|
|
200
|
+
});
|
|
201
|
+
})
|
|
202
|
+
.join(' | ');
|
|
67
203
|
}
|
|
68
204
|
function renderType(schema) {
|
|
69
205
|
if (schema.$ref)
|
|
@@ -82,7 +218,7 @@ function renderType(schema) {
|
|
|
82
218
|
case 'object':
|
|
83
219
|
return renderObject(schema);
|
|
84
220
|
case 'array':
|
|
85
|
-
return arrayType(renderType(schema.items ?? {}));
|
|
221
|
+
return arrayType(schema, renderType(schema.items ?? {}));
|
|
86
222
|
case 'string':
|
|
87
223
|
return 'string';
|
|
88
224
|
case 'integer':
|
|
@@ -110,13 +246,23 @@ function renderDataDeclaration(schema, definition) {
|
|
|
110
246
|
}));
|
|
111
247
|
return variants.join(' | ');
|
|
112
248
|
}
|
|
249
|
+
function renderDefinition(schema, name, definition) {
|
|
250
|
+
if (name === 'DataDeclaration' && schema['x-clowder-data-class-strategies'] !== undefined) {
|
|
251
|
+
return renderDataDeclaration(schema, definition);
|
|
252
|
+
}
|
|
253
|
+
if (name === 'ConfigurationField') {
|
|
254
|
+
return renderDiscriminatedObject(definition, 'kind');
|
|
255
|
+
}
|
|
256
|
+
if (name === 'PackageIcon') {
|
|
257
|
+
return renderDiscriminatedObject(definition, 'type');
|
|
258
|
+
}
|
|
259
|
+
if (definition.allOf?.length) {
|
|
260
|
+
throw new Error(`Unhandled conditional schema definition: ${name}`);
|
|
261
|
+
}
|
|
262
|
+
return renderType(definition);
|
|
263
|
+
}
|
|
113
264
|
function renderDefinitions(schema) {
|
|
114
|
-
return Object.entries(schema.$defs ?? {}).map(([name, definition]) => {
|
|
115
|
-
const rendered = name === 'DataDeclaration' && schema['x-clowder-data-class-strategies'] !== undefined
|
|
116
|
-
? renderDataDeclaration(schema, definition)
|
|
117
|
-
: renderType(definition);
|
|
118
|
-
return `export type ${name} = ${rendered};`;
|
|
119
|
-
});
|
|
265
|
+
return Object.entries(schema.$defs ?? {}).map(([name, definition]) => `export type ${name} = ${renderDefinition(schema, name, definition)};`);
|
|
120
266
|
}
|
|
121
267
|
function renderBehaviorDefinitions(behavior, manifest, messaging) {
|
|
122
268
|
const existingDefinitions = new Map([
|
|
@@ -125,8 +271,25 @@ function renderBehaviorDefinitions(behavior, manifest, messaging) {
|
|
|
125
271
|
]);
|
|
126
272
|
return Object.entries(behavior.$defs ?? {}).flatMap(([name, definition]) => {
|
|
127
273
|
const existing = existingDefinitions.get(name);
|
|
128
|
-
if (!existing)
|
|
129
|
-
|
|
274
|
+
if (!existing) {
|
|
275
|
+
let rendered;
|
|
276
|
+
if (name === 'SideEffectAssertion') {
|
|
277
|
+
rendered = renderDiscriminatedObject(definition, 'assertion');
|
|
278
|
+
}
|
|
279
|
+
else if (name === 'ExpectedVerdict') {
|
|
280
|
+
rendered = renderDiscriminatedObject(definition, 'status');
|
|
281
|
+
}
|
|
282
|
+
else if (name === 'BehaviorCase') {
|
|
283
|
+
rendered = renderBehaviorCase(definition);
|
|
284
|
+
}
|
|
285
|
+
else if (definition.allOf?.length) {
|
|
286
|
+
throw new Error(`Unhandled conditional behavior definition: ${name}`);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
rendered = renderType(definition);
|
|
290
|
+
}
|
|
291
|
+
return [`export type ${name} = ${rendered};`];
|
|
292
|
+
}
|
|
130
293
|
if (!isDeepStrictEqual(definition, existing.schema)) {
|
|
131
294
|
throw new Error(`behavior ${name} must match the ${existing.owner} schema definition`);
|
|
132
295
|
}
|
|
@@ -292,16 +455,35 @@ export function generateContractSource(schemas) {
|
|
|
292
455
|
validateMessagingBounds(schemas.messaging);
|
|
293
456
|
const sections = [
|
|
294
457
|
'/**',
|
|
295
|
-
' * Generated from manifest.schema.json, messaging.schema.json, and behavior-fixture.schema.json.',
|
|
458
|
+
' * Generated from plugin-metadata.schema.json, manifest.schema.json, catalog.schema.json, signal.schema.json, messaging.schema.json, physical-limb.schema.json, docx-materialization.schema.json, and behavior-fixture.schema.json.',
|
|
296
459
|
' * Do not edit by hand. Run `pnpm generate` after changing a schema.',
|
|
297
460
|
' */',
|
|
298
461
|
'',
|
|
462
|
+
...renderDefinitions(schemas.pluginMetadata),
|
|
463
|
+
'',
|
|
299
464
|
...renderDefinitions(schemas.manifest),
|
|
300
465
|
'',
|
|
301
466
|
`export type PluginManifest = ${renderType(schemas.manifest)};`,
|
|
302
467
|
'',
|
|
468
|
+
...renderDefinitions(schemas.catalog),
|
|
469
|
+
'',
|
|
470
|
+
`export type PluginCatalog = ${renderType(schemas.catalog)};`,
|
|
471
|
+
'',
|
|
472
|
+
...renderDefinitions(schemas.signals),
|
|
473
|
+
'',
|
|
303
474
|
...renderDefinitions(schemas.messaging),
|
|
304
475
|
'',
|
|
476
|
+
...renderDefinitions(schemas.physicalLimb),
|
|
477
|
+
'',
|
|
478
|
+
...renderDefinitions(schemas.docxMaterialization),
|
|
479
|
+
...renderDefinitions(schemas.companionBridge),
|
|
480
|
+
...['Text', 'Author'].map(kind => {
|
|
481
|
+
const pattern = schemas.docxMaterialization.$defs?.[`DocxMaterialization${kind}`]?.pattern;
|
|
482
|
+
if (typeof pattern !== 'string')
|
|
483
|
+
throw new Error(`Missing DOCX ${kind} pattern`);
|
|
484
|
+
return `export const DOCX_MATERIALIZATION_${kind.toUpperCase()}_PATTERN = ${quote(pattern)};`;
|
|
485
|
+
}),
|
|
486
|
+
'',
|
|
305
487
|
...renderBehaviorDefinitions(schemas.behavior, schemas.manifest, schemas.messaging),
|
|
306
488
|
'',
|
|
307
489
|
`export type BehaviorFixture = ${renderType(schemas.behavior)};`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-contract.js","sourceRoot":"","sources":["../../src/codegen/generate-contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-contract.js","sourceRoot":"","sources":["../../src/codegen/generate-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public, machine-readable wire-disposition safety vectors.
|
|
3
|
+
*
|
|
4
|
+
* These are contract data for conformance runners. They do not implement
|
|
5
|
+
* Host activation or a handshake codec.
|
|
6
|
+
*/
|
|
7
|
+
export { DISPOSITION_FIXTURE_VECTORS, BETA8_HANDSHAKE_VECTOR_IDS, BETA9_EVENTS_PUBLISH_VECTOR_IDS, BETA10_LIFECYCLE_VECTOR_IDS, BETA11_MESSAGING_VECTOR_IDS, CLOSED_ERROR_ARM_NAMES, RESPONSE_CANDIDATE_CASES, NOTIFICATION_PARTITION_CASES, } from '../wire/disposition-fixtures.js';
|
|
8
|
+
export { M0C_BEHAVIOR_CASE_IDS, M0C_BEHAVIOR_FIXTURE_EXPORT, } from './messaging-behavior-fixture.js';
|
|
9
|
+
export type { M0CBehaviorCaseId } from './messaging-behavior-fixture.js';
|
|
10
|
+
export type { ClosedErrorArmName, RequestSnapshot, InFlightRecord, FixturePreState, DispositionFixtureVector, PartitionCase, } from '../wire/disposition-fixtures.js';
|
|
11
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/conformance/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,aAAa,GACd,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public, machine-readable wire-disposition safety vectors.
|
|
3
|
+
*
|
|
4
|
+
* These are contract data for conformance runners. They do not implement
|
|
5
|
+
* Host activation or a handshake codec.
|
|
6
|
+
*/
|
|
7
|
+
export { DISPOSITION_FIXTURE_VECTORS, BETA8_HANDSHAKE_VECTOR_IDS, BETA9_EVENTS_PUBLISH_VECTOR_IDS, BETA10_LIFECYCLE_VECTOR_IDS, BETA11_MESSAGING_VECTOR_IDS, CLOSED_ERROR_ARM_NAMES, RESPONSE_CANDIDATE_CASES, NOTIFICATION_PARTITION_CASES, } from '../wire/disposition-fixtures.js';
|
|
8
|
+
export { M0C_BEHAVIOR_CASE_IDS, M0C_BEHAVIOR_FIXTURE_EXPORT, } from './messaging-behavior-fixture.js';
|
|
9
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/conformance/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC"}
|
|
@@ -11,5 +11,9 @@ export { isValidDataClassStrategy } from '../types/data-class.js';
|
|
|
11
11
|
export { getCapabilityLayer } from '../types/capability.js';
|
|
12
12
|
export { executeBehaviorCase, type BehaviorAdapter, type BehaviorCaseReport, type BehaviorTarget, type BehaviorVerdict, } from './behavior-executor.js';
|
|
13
13
|
export { MessagingLoopbackAdapter } from './messaging-loopback-adapter.js';
|
|
14
|
+
export { M0C_BEHAVIOR_CASE_IDS, M0C_BEHAVIOR_FIXTURE_EXPORT, type M0CBehaviorCaseId, } from './messaging-behavior-fixture.js';
|
|
15
|
+
export { DISPOSITION_FIXTURE_VECTORS, BETA8_HANDSHAKE_VECTOR_IDS, BETA9_EVENTS_PUBLISH_VECTOR_IDS, BETA10_LIFECYCLE_VECTOR_IDS, BETA11_MESSAGING_VECTOR_IDS, CLOSED_ERROR_ARM_NAMES, RESPONSE_CANDIDATE_CASES, NOTIFICATION_PARTITION_CASES, } from './fixtures.js';
|
|
16
|
+
export type { ClosedErrorArmName, RequestSnapshot, InFlightRecord, FixturePreState, DispositionFixtureVector, PartitionCase, } from './fixtures.js';
|
|
17
|
+
export { HarnessChild, HarnessChildExitedError, HarnessCleanupError, HarnessFrameBacklogError, HarnessTimeoutError, MAX_HARNESS_QUEUED_FRAMES, MAX_NDJSON_FRAME_BYTES, MAX_TIMER_MS, NdjsonFrameDecoder, NdjsonFrameError, encodeNdjsonFrame, runDualTransportOracle, runHarnessCase, spawnHarnessChild, type DecodedNdjsonFrame, type DualTransportOracleCase, type DualTransportOracleReport, type HarnessChildExit, type HarnessReceiveOptions, type HarnessWireShape, type JsonObject, type NdjsonFrameErrorCode, type OracleTransport, type RunHarnessCaseOptions, type SpawnHarnessChildOptions, type TransportTranscript, } from './stdio-harness/index.js';
|
|
14
18
|
export { DATA_CLASS_ALLOWED_STRATEGIES, CAPABILITY_TABLE, L0_CAPABILITIES, L1_CAPABILITIES, L2_CAPABILITIES, } from '../generated/contract.generated.js';
|
|
15
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC"}
|
|
@@ -11,5 +11,8 @@ export { isValidDataClassStrategy } from '../types/data-class.js';
|
|
|
11
11
|
export { getCapabilityLayer } from '../types/capability.js';
|
|
12
12
|
export { executeBehaviorCase, } from './behavior-executor.js';
|
|
13
13
|
export { MessagingLoopbackAdapter } from './messaging-loopback-adapter.js';
|
|
14
|
+
export { M0C_BEHAVIOR_CASE_IDS, M0C_BEHAVIOR_FIXTURE_EXPORT, } from './messaging-behavior-fixture.js';
|
|
15
|
+
export { DISPOSITION_FIXTURE_VECTORS, BETA8_HANDSHAKE_VECTOR_IDS, BETA9_EVENTS_PUBLISH_VECTOR_IDS, BETA10_LIFECYCLE_VECTOR_IDS, BETA11_MESSAGING_VECTOR_IDS, CLOSED_ERROR_ARM_NAMES, RESPONSE_CANDIDATE_CASES, NOTIFICATION_PARTITION_CASES, } from './fixtures.js';
|
|
16
|
+
export { HarnessChild, HarnessChildExitedError, HarnessCleanupError, HarnessFrameBacklogError, HarnessTimeoutError, MAX_HARNESS_QUEUED_FRAMES, MAX_NDJSON_FRAME_BYTES, MAX_TIMER_MS, NdjsonFrameDecoder, NdjsonFrameError, encodeNdjsonFrame, runDualTransportOracle, runHarnessCase, spawnHarnessChild, } from './stdio-harness/index.js';
|
|
14
17
|
export { DATA_CLASS_ALLOWED_STRATEGIES, CAPABILITY_TABLE, L0_CAPABILITIES, L1_CAPABILITIES, L2_CAPABILITIES, } from '../generated/contract.generated.js';
|
|
15
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EACL,mBAAmB,GAKpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EACL,mBAAmB,GAKpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAalB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable identities for the canonical M0-C behavior fixture.
|
|
3
|
+
*
|
|
4
|
+
* The executable cases remain owned by the published JSON fixture. This
|
|
5
|
+
* ordered ID projection lets SDK and Host conformance select that exact
|
|
6
|
+
* matrix without copying its setup, operations, or oracles.
|
|
7
|
+
*/
|
|
8
|
+
export declare const M0C_BEHAVIOR_CASE_IDS: readonly ["raw-thread-id-rejection", "system-audience-dual-rejection", "cross-instance-handle-rejection", "origin-forgery-rejection", "base-revision-conflict-zero-change", "stale-cursor-snapshot-roundtrip", "cross-subscription-ack-rejection", "reply-to-cross-thread-leakage", "epistemic-status-upgrade-rejection", "preset-l2-rejected", "preset-visible-revocable", "whisper-target-beyond-default-empty-grant-rejected", "append-without-grant-rejected", "denied-on-message-rejected", "permission-matrix-complete", "delete-replay-events-preserves-canonical-messages", "snapshot-without-grant-rejected", "foreign-replay-delete-rejected"];
|
|
9
|
+
export type M0CBehaviorCaseId = (typeof M0C_BEHAVIOR_CASE_IDS)[number];
|
|
10
|
+
/** Public package export containing the executable case data and oracles. */
|
|
11
|
+
export declare const M0C_BEHAVIOR_FIXTURE_EXPORT: "@clowder-ai/plugin-contract/fixtures/behavior/messaging/adversarial-invariants";
|
|
12
|
+
//# sourceMappingURL=messaging-behavior-fixture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging-behavior-fixture.d.ts","sourceRoot":"","sources":["../../src/conformance/messaging-behavior-fixture.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,0nBAmBxB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,EACtC,gFAAyF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable identities for the canonical M0-C behavior fixture.
|
|
3
|
+
*
|
|
4
|
+
* The executable cases remain owned by the published JSON fixture. This
|
|
5
|
+
* ordered ID projection lets SDK and Host conformance select that exact
|
|
6
|
+
* matrix without copying its setup, operations, or oracles.
|
|
7
|
+
*/
|
|
8
|
+
export const M0C_BEHAVIOR_CASE_IDS = [
|
|
9
|
+
'raw-thread-id-rejection',
|
|
10
|
+
'system-audience-dual-rejection',
|
|
11
|
+
'cross-instance-handle-rejection',
|
|
12
|
+
'origin-forgery-rejection',
|
|
13
|
+
'base-revision-conflict-zero-change',
|
|
14
|
+
'stale-cursor-snapshot-roundtrip',
|
|
15
|
+
'cross-subscription-ack-rejection',
|
|
16
|
+
'reply-to-cross-thread-leakage',
|
|
17
|
+
'epistemic-status-upgrade-rejection',
|
|
18
|
+
'preset-l2-rejected',
|
|
19
|
+
'preset-visible-revocable',
|
|
20
|
+
'whisper-target-beyond-default-empty-grant-rejected',
|
|
21
|
+
'append-without-grant-rejected',
|
|
22
|
+
'denied-on-message-rejected',
|
|
23
|
+
'permission-matrix-complete',
|
|
24
|
+
'delete-replay-events-preserves-canonical-messages',
|
|
25
|
+
'snapshot-without-grant-rejected',
|
|
26
|
+
'foreign-replay-delete-rejected',
|
|
27
|
+
];
|
|
28
|
+
/** Public package export containing the executable case data and oracles. */
|
|
29
|
+
export const M0C_BEHAVIOR_FIXTURE_EXPORT = '@clowder-ai/plugin-contract/fixtures/behavior/messaging/adversarial-invariants';
|
|
30
|
+
//# sourceMappingURL=messaging-behavior-fixture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging-behavior-fixture.js","sourceRoot":"","sources":["../../src/conformance/messaging-behavior-fixture.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,yBAAyB;IACzB,gCAAgC;IAChC,iCAAiC;IACjC,0BAA0B;IAC1B,oCAAoC;IACpC,iCAAiC;IACjC,kCAAkC;IAClC,+BAA+B;IAC/B,oCAAoC;IACpC,oBAAoB;IACpB,0BAA0B;IAC1B,oDAAoD;IACpD,+BAA+B;IAC/B,4BAA4B;IAC5B,4BAA4B;IAC5B,mDAAmD;IACnD,iCAAiC;IACjC,gCAAgC;CACxB,CAAC;AAIX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GACtC,gFAAyF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAqMhC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,eAAe,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAeD,wBAAsB,cAAc,CAClC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAwL5B"}
|
|
@@ -18,6 +18,7 @@ import { readdir, readFile } from 'node:fs/promises';
|
|
|
18
18
|
import { createRequire } from 'node:module';
|
|
19
19
|
import { join, relative, resolve } from 'node:path';
|
|
20
20
|
import { fileURLToPath } from 'node:url';
|
|
21
|
+
import { validateManifest } from '../validation/manifest.js';
|
|
21
22
|
import { validateMessagingSemantics } from '../validation/messaging-semantic.js';
|
|
22
23
|
import { executeBehaviorCase, } from './behavior-executor.js';
|
|
23
24
|
import { MessagingLoopbackAdapter } from './messaging-loopback-adapter.js';
|
|
@@ -37,7 +38,7 @@ async function loadSchema(schemaPath) {
|
|
|
37
38
|
}
|
|
38
39
|
async function discoverFixtures(fixturesDir) {
|
|
39
40
|
const fixtures = [];
|
|
40
|
-
const domains = ['manifest', 'messaging'];
|
|
41
|
+
const domains = ['manifest', 'messaging', 'signals'];
|
|
41
42
|
for (const domain of domains) {
|
|
42
43
|
for (const validity of ['valid', 'invalid']) {
|
|
43
44
|
const dir = join(fixturesDir, domain, validity);
|
|
@@ -67,6 +68,7 @@ function getDefaultSchemaId(domain) {
|
|
|
67
68
|
const ids = {
|
|
68
69
|
manifest: 'https://clowder-ai.dev/schemas/manifest/v0.1',
|
|
69
70
|
messaging: 'https://clowder-ai.dev/schemas/messaging/v0.1',
|
|
71
|
+
signals: 'https://clowder-ai.dev/schemas/signals/v0.2',
|
|
70
72
|
};
|
|
71
73
|
return ids[domain] ?? '';
|
|
72
74
|
}
|
|
@@ -112,7 +114,20 @@ async function validateFixture(ajv, fixture, schemas) {
|
|
|
112
114
|
const isSchemaValid = validate(data);
|
|
113
115
|
const semanticResult = fixture.domain === 'messaging' && isSchemaValid
|
|
114
116
|
? validateMessagingSemantics(meta?.schemaRef ?? 'root', data)
|
|
115
|
-
:
|
|
117
|
+
: fixture.domain === 'manifest' && isSchemaValid
|
|
118
|
+
? (() => {
|
|
119
|
+
const result = validateManifest(data);
|
|
120
|
+
return result.valid
|
|
121
|
+
? { valid: true, errors: [] }
|
|
122
|
+
: {
|
|
123
|
+
valid: false,
|
|
124
|
+
errors: result.errors.map(({ instancePath, message }) => ({
|
|
125
|
+
path: instancePath,
|
|
126
|
+
message,
|
|
127
|
+
})),
|
|
128
|
+
};
|
|
129
|
+
})()
|
|
130
|
+
: { valid: true, errors: [] };
|
|
116
131
|
const isValid = isSchemaValid && semanticResult.valid;
|
|
117
132
|
if (fixture.validity === 'valid') {
|
|
118
133
|
// Valid fixtures MUST pass structural and semantic validation.
|
|
@@ -159,14 +174,19 @@ export async function runConformance(options = {}) {
|
|
|
159
174
|
write('');
|
|
160
175
|
// Load schemas
|
|
161
176
|
const schemas = new Map();
|
|
177
|
+
const pluginMetadataSchema = await loadSchema(join(schemasDir, 'plugin-metadata.schema.json'));
|
|
162
178
|
const manifestSchema = await loadSchema(join(schemasDir, 'manifest.schema.json'));
|
|
163
179
|
const messagingSchema = await loadSchema(join(schemasDir, 'messaging.schema.json'));
|
|
180
|
+
const signalSchema = await loadSchema(join(schemasDir, 'signal.schema.json'));
|
|
164
181
|
const behaviorSchema = await loadSchema(join(schemasDir, 'behavior-fixture.schema.json'));
|
|
165
182
|
schemas.set('manifest', manifestSchema);
|
|
166
183
|
schemas.set('messaging', messagingSchema);
|
|
184
|
+
schemas.set('signals', signalSchema);
|
|
167
185
|
// Set up Ajv with format validation (date-time, uri, email, etc.)
|
|
168
186
|
const ajv = new Ajv({ allErrors: true, strict: false });
|
|
169
187
|
addFormats(ajv);
|
|
188
|
+
ajv.addSchema(pluginMetadataSchema, pluginMetadataSchema['$id']);
|
|
189
|
+
ajv.addSchema(signalSchema, signalSchema['$id']);
|
|
170
190
|
ajv.addSchema(manifestSchema, manifestSchema['$id']);
|
|
171
191
|
ajv.addSchema(messagingSchema, messagingSchema['$id']);
|
|
172
192
|
ajv.addSchema(behaviorSchema, behaviorSchema['$id']);
|