@clowder-ai/plugin-contract 0.1.0-beta.3 → 0.1.0-beta.37

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.
Files changed (159) hide show
  1. package/dist/codegen/generate-contract.d.ts +10 -0
  2. package/dist/codegen/generate-contract.d.ts.map +1 -1
  3. package/dist/codegen/generate-contract.js +362 -21
  4. package/dist/codegen/generate-contract.js.map +1 -1
  5. package/dist/conformance/fixtures.d.ts +11 -0
  6. package/dist/conformance/fixtures.d.ts.map +1 -0
  7. package/dist/conformance/fixtures.js +9 -0
  8. package/dist/conformance/fixtures.js.map +1 -0
  9. package/dist/conformance/index.d.ts +4 -1
  10. package/dist/conformance/index.d.ts.map +1 -1
  11. package/dist/conformance/index.js +3 -1
  12. package/dist/conformance/index.js.map +1 -1
  13. package/dist/conformance/messaging-behavior-fixture.d.ts +12 -0
  14. package/dist/conformance/messaging-behavior-fixture.d.ts.map +1 -0
  15. package/dist/conformance/messaging-behavior-fixture.js +30 -0
  16. package/dist/conformance/messaging-behavior-fixture.js.map +1 -0
  17. package/dist/conformance/runner.d.ts.map +1 -1
  18. package/dist/conformance/runner.js +23 -3
  19. package/dist/conformance/runner.js.map +1 -1
  20. package/dist/conformance/stdio-harness/child-process-harness.d.ts +6 -0
  21. package/dist/conformance/stdio-harness/child-process-harness.d.ts.map +1 -1
  22. package/dist/conformance/stdio-harness/child-process-harness.js +26 -9
  23. package/dist/conformance/stdio-harness/child-process-harness.js.map +1 -1
  24. package/dist/conformance/stdio-harness/index.d.ts +1 -1
  25. package/dist/conformance/stdio-harness/index.d.ts.map +1 -1
  26. package/dist/conformance/stdio-harness/index.js +1 -1
  27. package/dist/conformance/stdio-harness/index.js.map +1 -1
  28. package/dist/conformance/stdio-harness/ndjson-frame.d.ts +6 -1
  29. package/dist/conformance/stdio-harness/ndjson-frame.d.ts.map +1 -1
  30. package/dist/conformance/stdio-harness/ndjson-frame.js +7 -1
  31. package/dist/conformance/stdio-harness/ndjson-frame.js.map +1 -1
  32. package/dist/conformance/stdio-harness/wire-shape.d.ts +1 -1
  33. package/dist/docx-materialization.d.ts +8 -0
  34. package/dist/docx-materialization.d.ts.map +1 -0
  35. package/dist/docx-materialization.js +19 -0
  36. package/dist/docx-materialization.js.map +1 -0
  37. package/dist/generated/contract.generated.d.ts +1793 -32
  38. package/dist/generated/contract.generated.d.ts.map +1 -1
  39. package/dist/generated/contract.generated.js +72 -3
  40. package/dist/generated/contract.generated.js.map +1 -1
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/validation/catalog.d.ts +21 -0
  46. package/dist/validation/catalog.d.ts.map +1 -0
  47. package/dist/validation/catalog.js +140 -0
  48. package/dist/validation/catalog.js.map +1 -0
  49. package/dist/validation/cloud-conversation-host.d.ts +18 -0
  50. package/dist/validation/cloud-conversation-host.d.ts.map +1 -0
  51. package/dist/validation/cloud-conversation-host.js +83 -0
  52. package/dist/validation/cloud-conversation-host.js.map +1 -0
  53. package/dist/validation/companion-bridge.d.ts +6 -0
  54. package/dist/validation/companion-bridge.d.ts.map +1 -0
  55. package/dist/validation/companion-bridge.js +198 -0
  56. package/dist/validation/companion-bridge.js.map +1 -0
  57. package/dist/validation/docx-materialization.d.ts +6 -0
  58. package/dist/validation/docx-materialization.d.ts.map +1 -0
  59. package/dist/validation/docx-materialization.js +36 -0
  60. package/dist/validation/docx-materialization.js.map +1 -0
  61. package/dist/validation/index.d.ts +10 -0
  62. package/dist/validation/index.d.ts.map +1 -1
  63. package/dist/validation/index.js +10 -0
  64. package/dist/validation/index.js.map +1 -1
  65. package/dist/validation/manifest.d.ts +23 -0
  66. package/dist/validation/manifest.d.ts.map +1 -0
  67. package/dist/validation/manifest.js +273 -0
  68. package/dist/validation/manifest.js.map +1 -0
  69. package/dist/validation/members.d.ts +4 -0
  70. package/dist/validation/members.d.ts.map +1 -0
  71. package/dist/validation/members.js +11 -0
  72. package/dist/validation/members.js.map +1 -0
  73. package/dist/validation/messaging-semantic.d.ts.map +1 -1
  74. package/dist/validation/messaging-semantic.js +98 -0
  75. package/dist/validation/messaging-semantic.js.map +1 -1
  76. package/dist/validation/messaging-wire.d.ts +42 -0
  77. package/dist/validation/messaging-wire.d.ts.map +1 -0
  78. package/dist/validation/messaging-wire.js +184 -0
  79. package/dist/validation/messaging-wire.js.map +1 -0
  80. package/dist/validation/operation-rows.d.ts +25 -0
  81. package/dist/validation/operation-rows.d.ts.map +1 -0
  82. package/dist/validation/operation-rows.js +135 -0
  83. package/dist/validation/operation-rows.js.map +1 -0
  84. package/dist/validation/signals.d.ts +17 -0
  85. package/dist/validation/signals.d.ts.map +1 -0
  86. package/dist/validation/signals.js +32 -0
  87. package/dist/validation/signals.js.map +1 -0
  88. package/dist/wire/constants.d.ts +2 -1
  89. package/dist/wire/constants.d.ts.map +1 -1
  90. package/dist/wire/constants.js +2 -1
  91. package/dist/wire/constants.js.map +1 -1
  92. package/dist/wire/dispatch.d.ts +49 -0
  93. package/dist/wire/dispatch.d.ts.map +1 -0
  94. package/dist/wire/dispatch.js +880 -0
  95. package/dist/wire/dispatch.js.map +1 -0
  96. package/dist/wire/disposition-fixtures.d.ts +19 -2
  97. package/dist/wire/disposition-fixtures.d.ts.map +1 -1
  98. package/dist/wire/disposition-fixtures.js +1110 -77
  99. package/dist/wire/disposition-fixtures.js.map +1 -1
  100. package/dist/wire/disposition.d.ts +10 -8
  101. package/dist/wire/disposition.d.ts.map +1 -1
  102. package/dist/wire/disposition.js +20 -8
  103. package/dist/wire/disposition.js.map +1 -1
  104. package/dist/wire/envelope.d.ts +31 -0
  105. package/dist/wire/envelope.d.ts.map +1 -1
  106. package/dist/wire/envelope.js +48 -1
  107. package/dist/wire/envelope.js.map +1 -1
  108. package/dist/wire/errors.d.ts +31 -1
  109. package/dist/wire/errors.d.ts.map +1 -1
  110. package/dist/wire/errors.js +36 -0
  111. package/dist/wire/errors.js.map +1 -1
  112. package/dist/wire/grants.d.ts +4 -4
  113. package/dist/wire/grants.js +3 -3
  114. package/dist/wire/handshake-byte-bounds.d.ts +69 -0
  115. package/dist/wire/handshake-byte-bounds.d.ts.map +1 -0
  116. package/dist/wire/handshake-byte-bounds.js +176 -0
  117. package/dist/wire/handshake-byte-bounds.js.map +1 -0
  118. package/dist/wire/handshake.d.ts +59 -7
  119. package/dist/wire/handshake.d.ts.map +1 -1
  120. package/dist/wire/handshake.js +132 -10
  121. package/dist/wire/handshake.js.map +1 -1
  122. package/dist/wire/index.d.ts +18 -7
  123. package/dist/wire/index.d.ts.map +1 -1
  124. package/dist/wire/index.js +35 -6
  125. package/dist/wire/index.js.map +1 -1
  126. package/dist/wire/lifecycle-byte-bounds.d.ts +40 -0
  127. package/dist/wire/lifecycle-byte-bounds.d.ts.map +1 -0
  128. package/dist/wire/lifecycle-byte-bounds.js +149 -0
  129. package/dist/wire/lifecycle-byte-bounds.js.map +1 -0
  130. package/dist/wire/messaging-byte-bounds.d.ts +62 -0
  131. package/dist/wire/messaging-byte-bounds.d.ts.map +1 -0
  132. package/dist/wire/messaging-byte-bounds.js +581 -0
  133. package/dist/wire/messaging-byte-bounds.js.map +1 -0
  134. package/dist/wire/registry.d.ts +192 -35
  135. package/dist/wire/registry.d.ts.map +1 -1
  136. package/dist/wire/registry.js +57 -79
  137. package/dist/wire/registry.js.map +1 -1
  138. package/dist/wire/row-shapes.d.ts +98 -81
  139. package/dist/wire/row-shapes.d.ts.map +1 -1
  140. package/dist/wire/row-shapes.js +31 -4
  141. package/dist/wire/row-shapes.js.map +1 -1
  142. package/fixtures/behavior/messaging/adversarial-invariants.json +92 -2
  143. package/fixtures/manifest/invalid/duplicate-signal-type.json +35 -0
  144. package/fixtures/manifest/invalid/icon-package-escape.json +22 -0
  145. package/fixtures/manifest/valid/localized-product-metadata.json +27 -0
  146. package/fixtures/messaging/valid/subscription-delivery.json +1 -1
  147. package/fixtures/signals/invalid/dynamic-schema-url.json +10 -0
  148. package/fixtures/signals/invalid/forbidden-raw-privacy.json +10 -0
  149. package/fixtures/signals/valid/remote-service-declaration.json +10 -0
  150. package/package.json +18 -5
  151. package/src/schemas/behavior-fixture.schema.json +903 -116
  152. package/src/schemas/catalog.schema.json +91 -0
  153. package/src/schemas/companion-bridge.schema.json +2256 -0
  154. package/src/schemas/docx-materialization.schema.json +302 -0
  155. package/src/schemas/manifest.schema.json +2223 -89
  156. package/src/schemas/messaging.schema.json +692 -40
  157. package/src/schemas/physical-limb.schema.json +319 -0
  158. package/src/schemas/plugin-metadata.schema.json +62 -0
  159. package/src/schemas/signal.schema.json +119 -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;AAUD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQpE;AAyXD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA6BvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS/D"}
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;AAcD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAoBpE;AA6sBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAwDvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS/D"}
@@ -4,13 +4,22 @@ 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/';
9
+ const MESSAGING_SCHEMA_PREFIX = 'https://clowder-ai.dev/schemas/messaging/v0.1#/$defs/';
7
10
  async function readSchema(url) {
8
11
  return JSON.parse(await readFile(url, 'utf8'));
9
12
  }
10
13
  export async function loadContractSchemas() {
11
14
  return {
15
+ pluginMetadata: await readSchema(new URL('../schemas/plugin-metadata.schema.json', import.meta.url)),
12
16
  manifest: await readSchema(new URL('../schemas/manifest.schema.json', import.meta.url)),
17
+ catalog: await readSchema(new URL('../schemas/catalog.schema.json', import.meta.url)),
18
+ signals: await readSchema(new URL('../schemas/signal.schema.json', import.meta.url)),
13
19
  messaging: await readSchema(new URL('../schemas/messaging.schema.json', import.meta.url)),
20
+ physicalLimb: await readSchema(new URL('../schemas/physical-limb.schema.json', import.meta.url)),
21
+ docxMaterialization: await readSchema(new URL('../schemas/docx-materialization.schema.json', import.meta.url)),
22
+ companionBridge: await readSchema(new URL('../schemas/companion-bridge.schema.json', import.meta.url)),
14
23
  behavior: await readSchema(new URL('../schemas/behavior-fixture.schema.json', import.meta.url)),
15
24
  };
16
25
  }
@@ -29,13 +38,29 @@ function literal(value) {
29
38
  function refName(ref) {
30
39
  if (ref === MANIFEST_CAPABILITY_REF)
31
40
  return 'Capability';
41
+ if (ref.startsWith(PLUGIN_METADATA_SCHEMA_PREFIX)) {
42
+ return decodeURIComponent(ref.slice(PLUGIN_METADATA_SCHEMA_PREFIX.length));
43
+ }
44
+ if (ref.startsWith(SIGNAL_SCHEMA_PREFIX)) {
45
+ return decodeURIComponent(ref.slice(SIGNAL_SCHEMA_PREFIX.length));
46
+ }
47
+ if (ref.startsWith(MESSAGING_SCHEMA_PREFIX)) {
48
+ return decodeURIComponent(ref.slice(MESSAGING_SCHEMA_PREFIX.length));
49
+ }
32
50
  const marker = '#/$defs/';
33
51
  if (!ref.startsWith(marker)) {
34
52
  throw new Error(`Unsupported schema reference: ${ref}`);
35
53
  }
36
54
  return decodeURIComponent(ref.slice(marker.length));
37
55
  }
38
- function arrayType(itemType) {
56
+ function arrayType(schema, itemType) {
57
+ const fixedLength = schema.minItems;
58
+ if (typeof fixedLength === 'number' &&
59
+ Number.isInteger(fixedLength) &&
60
+ fixedLength === schema.maxItems &&
61
+ fixedLength >= 0) {
62
+ return `readonly [${Array.from({ length: fixedLength }, () => itemType).join(', ')}]`;
63
+ }
39
64
  const needsParentheses = itemType.includes(' | ') || itemType.includes('\n');
40
65
  return `readonly ${needsParentheses ? `(${itemType})` : itemType}[]`;
41
66
  }
@@ -46,10 +71,37 @@ function indentContinuation(value, spaces) {
46
71
  const indent = ' '.repeat(spaces);
47
72
  return value.replaceAll('\n', `\n${indent}`);
48
73
  }
49
- function renderObject(schema) {
50
- const properties = schema.properties ?? {};
74
+ function renderPropertyType(schema) {
75
+ if (schema.$ref && schema.pattern) {
76
+ const suffix = /^\\\.([A-Za-z0-9]+)\$$/u.exec(schema.pattern)?.[1];
77
+ if (!suffix) {
78
+ throw new Error(`Unsupported referenced string pattern: ${schema.pattern}`);
79
+ }
80
+ return `${renderType({ $ref: schema.$ref })} & \`\${string}.${suffix}\``;
81
+ }
82
+ return renderType(schema);
83
+ }
84
+ function renderObjectShape(properties, required, forbidden = new Set(), renderedProperties = {}) {
51
85
  const entries = Object.entries(properties);
52
86
  if (entries.length === 0) {
87
+ return 'Record<string, never>';
88
+ }
89
+ const fields = entries.map(([name, property]) => {
90
+ if (forbidden.has(name)) {
91
+ if (required.has(name)) {
92
+ throw new Error(`Schema property ${name} cannot be both required and forbidden`);
93
+ }
94
+ return ` readonly ${propertyName(name)}?: never;`;
95
+ }
96
+ const optional = required.has(name) ? '' : '?';
97
+ const rendered = indentContinuation(renderedProperties[name] ?? renderPropertyType(property), 2);
98
+ return ` readonly ${propertyName(name)}${optional}: ${rendered};`;
99
+ });
100
+ return `{\n${fields.join('\n')}\n}`;
101
+ }
102
+ function renderObject(schema) {
103
+ const properties = schema.properties ?? {};
104
+ if (Object.keys(properties).length === 0) {
53
105
  if (schema.additionalProperties === false)
54
106
  return 'Record<string, never>';
55
107
  if (typeof schema.additionalProperties === 'object') {
@@ -57,13 +109,176 @@ function renderObject(schema) {
57
109
  }
58
110
  return 'Readonly<Record<string, unknown>>';
59
111
  }
112
+ return renderObjectShape(properties, new Set(schema.required ?? []));
113
+ }
114
+ function renderOpenObject(schema) {
115
+ const structural = renderObject(schema);
116
+ if (structural === 'Readonly<Record<string, unknown>>')
117
+ return structural;
118
+ return structural.replace(/\n\}$/u, '\n readonly [key: string]: unknown;\n}');
119
+ }
120
+ function schemaAllowsLiteral(schema, value) {
121
+ if (schema.const !== undefined)
122
+ return isDeepStrictEqual(schema.const, value);
123
+ if (schema.enum)
124
+ return schema.enum.some((candidate) => isDeepStrictEqual(candidate, value));
125
+ const alternatives = schema.oneOf ?? schema.anyOf;
126
+ if (alternatives)
127
+ return alternatives.some((alternative) => schemaAllowsLiteral(alternative, value));
128
+ if (Array.isArray(schema.type))
129
+ return schema.type.some((type) => schemaAllowsLiteral({ type }, value));
130
+ switch (schema.type) {
131
+ case 'string':
132
+ return typeof value === 'string';
133
+ case 'integer':
134
+ return Number.isInteger(value);
135
+ case 'number':
136
+ return typeof value === 'number' && Number.isFinite(value);
137
+ case 'boolean':
138
+ return typeof value === 'boolean';
139
+ case 'null':
140
+ return value === null;
141
+ case 'object':
142
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
143
+ case 'array':
144
+ return Array.isArray(value);
145
+ case undefined:
146
+ return schema.$ref === undefined;
147
+ default:
148
+ return false;
149
+ }
150
+ }
151
+ function mergeAlternativeProperty(name, base, constraint) {
152
+ const constraintKeys = Object.keys(constraint).filter((key) => !['description', 'const', 'enum'].includes(key));
153
+ if (constraintKeys.length > 0) {
154
+ throw new Error(`Unsupported object alternative constraint for ${name}: ${constraintKeys.join(', ')}`);
155
+ }
156
+ const values = constraint.const !== undefined ? [constraint.const] : constraint.enum;
157
+ if (!values)
158
+ return base;
159
+ if (!values.every((value) => schemaAllowsLiteral(base, value))) {
160
+ throw new Error(`Object alternative widens the base property ${name}`);
161
+ }
162
+ return constraint;
163
+ }
164
+ // JSON Schema applies object siblings and oneOf/anyOf together. Repeat the
165
+ // shared shape in every TypeScript arm, while allowing branches only to narrow
166
+ // shared fields to literals the base schema already admits.
167
+ function renderObjectAlternatives(schema, alternatives) {
168
+ const baseProperties = schema.properties ?? {};
169
+ const baseRequired = schema.required ?? [];
170
+ return alternatives
171
+ .map((alternative) => {
172
+ if (alternative.type !== undefined && alternative.type !== 'object') {
173
+ throw new Error('Object alternative must remain an object');
174
+ }
175
+ const unsupported = Object.keys(alternative).filter((key) => !['description', 'type', 'properties', 'required', 'additionalProperties'].includes(key));
176
+ if (unsupported.length > 0) {
177
+ throw new Error(`Unsupported object alternative keywords: ${unsupported.join(', ')}`);
178
+ }
179
+ const properties = { ...baseProperties };
180
+ for (const [name, constraint] of Object.entries(alternative.properties ?? {})) {
181
+ properties[name] = properties[name]
182
+ ? mergeAlternativeProperty(name, properties[name], constraint)
183
+ : constraint;
184
+ }
185
+ return renderObjectShape(properties, new Set([...baseRequired, ...(alternative.required ?? [])]));
186
+ })
187
+ .join(' | ');
188
+ }
189
+ function renderDiscriminatedObject(schema, discriminator) {
190
+ if (schema.type !== 'object') {
191
+ throw new Error(`Discriminated schema must be an object: ${discriminator}`);
192
+ }
193
+ const baseProperties = schema.properties ?? {};
194
+ const values = baseProperties[discriminator]?.enum;
195
+ if (!values?.length) {
196
+ throw new Error(`Discriminated schema must enumerate ${discriminator}`);
197
+ }
198
+ return values
199
+ .map((value) => {
200
+ const properties = {
201
+ ...baseProperties,
202
+ [discriminator]: { const: value },
203
+ };
204
+ const required = new Set(schema.required ?? []);
205
+ const forbidden = new Set();
206
+ for (const rule of schema.allOf ?? []) {
207
+ const condition = rule['if'];
208
+ if (!condition) {
209
+ throw new Error(`Unsupported unconditional allOf rule for ${discriminator}`);
210
+ }
211
+ const discriminatorCondition = condition.properties?.[discriminator];
212
+ if (!discriminatorCondition) {
213
+ throw new Error(`Conditional rule must constrain ${discriminator}`);
214
+ }
215
+ const conditionMatches = discriminatorCondition.const === value ||
216
+ discriminatorCondition.enum?.includes(value) === true;
217
+ const branch = rule[conditionMatches ? 'then' : 'else'];
218
+ if (!branch)
219
+ continue;
220
+ for (const name of branch.required ?? [])
221
+ required.add(name);
222
+ for (const name of branch.not?.required ?? [])
223
+ forbidden.add(name);
224
+ for (const [name, override] of Object.entries((branch.properties ?? {}))) {
225
+ if (override === false) {
226
+ forbidden.add(name);
227
+ continue;
228
+ }
229
+ properties[name] = { ...properties[name], ...override };
230
+ }
231
+ }
232
+ return renderObjectShape(properties, required, forbidden);
233
+ })
234
+ .join(' | ');
235
+ }
236
+ function schemaStringValues(schema, label) {
237
+ const values = schema?.enum ?? (typeof schema?.const === 'string' ? [schema.const] : undefined);
238
+ if (!values?.length || !values.every((value) => typeof value === 'string')) {
239
+ throw new Error(`${label} must be a non-empty string const or enum`);
240
+ }
241
+ return values;
242
+ }
243
+ function renderBehaviorExecutionConstraint(schema) {
244
+ const planes = schemaStringValues(schema.properties?.['plane'], 'BehaviorCase execution.plane');
245
+ const methodSchema = schema.properties?.['method'];
246
+ const methods = methodSchema
247
+ ? schemaStringValues(methodSchema, 'BehaviorCase execution.method')
248
+ : [];
249
+ return planes
250
+ .flatMap((plane) => {
251
+ const base = `Extract<BehaviorExecution, { readonly plane: ${quote(plane)} }>`;
252
+ if (methods.length === 0)
253
+ return [base];
254
+ return methods.map((method) => `${base} & { readonly method: ${quote(method)} }`);
255
+ })
256
+ .join(' | ');
257
+ }
258
+ function renderBehaviorCase(schema) {
259
+ if (schema.type !== 'object') {
260
+ throw new Error('BehaviorCase must be an object');
261
+ }
262
+ const properties = schema.properties ?? {};
60
263
  const required = new Set(schema.required ?? []);
61
- const fields = entries.map(([name, property]) => {
62
- const optional = required.has(name) ? '' : '?';
63
- const rendered = indentContinuation(renderType(property), 2);
64
- return ` readonly ${propertyName(name)}${optional}: ${rendered};`;
65
- });
66
- return `{\n${fields.join('\n')}\n}`;
264
+ return (schema.allOf ?? [])
265
+ .map((rule) => {
266
+ const condition = rule['if'];
267
+ const consequence = rule['then'];
268
+ const operation = condition?.properties?.['when']?.properties?.['operation'];
269
+ const execution = consequence?.properties?.['execution'];
270
+ const operations = schemaStringValues(operation, 'BehaviorCase when.operation');
271
+ if (!execution) {
272
+ throw new Error('BehaviorCase conditional must constrain execution');
273
+ }
274
+ return renderObjectShape(properties, required, new Set(), {
275
+ when: `Extract<FixtureOperation, { readonly operation: ${operations
276
+ .map(quote)
277
+ .join(' | ')} }>`,
278
+ execution: renderBehaviorExecutionConstraint(execution),
279
+ });
280
+ })
281
+ .join(' | ');
67
282
  }
68
283
  function renderType(schema) {
69
284
  if (schema.$ref)
@@ -73,8 +288,11 @@ function renderType(schema) {
73
288
  if (schema.enum)
74
289
  return schema.enum.map(quote).join(' | ');
75
290
  const alternatives = schema.oneOf ?? schema.anyOf;
76
- if (alternatives)
291
+ if (alternatives) {
292
+ if (schema.type === 'object')
293
+ return renderObjectAlternatives(schema, alternatives);
77
294
  return alternatives.map(renderType).join(' | ');
295
+ }
78
296
  if (Array.isArray(schema.type)) {
79
297
  return schema.type.map((type) => renderType({ ...schema, type })).join(' | ');
80
298
  }
@@ -82,7 +300,7 @@ function renderType(schema) {
82
300
  case 'object':
83
301
  return renderObject(schema);
84
302
  case 'array':
85
- return arrayType(renderType(schema.items ?? {}));
303
+ return arrayType(schema, renderType(schema.items ?? {}));
86
304
  case 'string':
87
305
  return 'string';
88
306
  case 'integer':
@@ -110,13 +328,42 @@ function renderDataDeclaration(schema, definition) {
110
328
  }));
111
329
  return variants.join(' | ');
112
330
  }
331
+ function renderDefinition(schema, name, definition) {
332
+ if (name === 'DataDeclaration' && schema['x-clowder-data-class-strategies'] !== undefined) {
333
+ return renderDataDeclaration(schema, definition);
334
+ }
335
+ if (name === 'ConfigurationField') {
336
+ return renderDiscriminatedObject(definition, 'kind');
337
+ }
338
+ if (name === 'PackageIcon') {
339
+ return renderDiscriminatedObject(definition, 'type');
340
+ }
341
+ if (name === 'MediaRefElementPayload') {
342
+ // The remaining provider-specific metadata is intentionally open, while
343
+ // JSON Schema owns the conditional pmr/hmr relation.
344
+ return renderOpenObject(definition);
345
+ }
346
+ if (name === 'MediaReadResult'
347
+ || name === 'MessageDraft'
348
+ || name === 'MessageSubscriptionContribution'
349
+ || name === 'OperationActionResult') {
350
+ // JSON Schema owns conditional cross-field relations. The TypeScript
351
+ // projection remains structural because these rules depend on nested
352
+ // values (pmr/hmr, done/nextOffset, and whisper media admission).
353
+ // The generated structural projection keeps every declared property while
354
+ // runtime validation enforces the cross-field constraints.
355
+ return renderObject(definition);
356
+ }
357
+ if (name === 'RichBlockElementPayload') {
358
+ return renderOpenObject(definition);
359
+ }
360
+ if (definition.allOf?.length) {
361
+ throw new Error(`Unhandled conditional schema definition: ${name}`);
362
+ }
363
+ return renderType(definition);
364
+ }
113
365
  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
- });
366
+ return Object.entries(schema.$defs ?? {}).map(([name, definition]) => `export type ${name} = ${renderDefinition(schema, name, definition)};`);
120
367
  }
121
368
  function renderBehaviorDefinitions(behavior, manifest, messaging) {
122
369
  const existingDefinitions = new Map([
@@ -125,8 +372,25 @@ function renderBehaviorDefinitions(behavior, manifest, messaging) {
125
372
  ]);
126
373
  return Object.entries(behavior.$defs ?? {}).flatMap(([name, definition]) => {
127
374
  const existing = existingDefinitions.get(name);
128
- if (!existing)
129
- return [`export type ${name} = ${renderType(definition)};`];
375
+ if (!existing) {
376
+ let rendered;
377
+ if (name === 'SideEffectAssertion') {
378
+ rendered = renderDiscriminatedObject(definition, 'assertion');
379
+ }
380
+ else if (name === 'ExpectedVerdict') {
381
+ rendered = renderDiscriminatedObject(definition, 'status');
382
+ }
383
+ else if (name === 'BehaviorCase') {
384
+ rendered = renderBehaviorCase(definition);
385
+ }
386
+ else if (definition.allOf?.length) {
387
+ throw new Error(`Unhandled conditional behavior definition: ${name}`);
388
+ }
389
+ else {
390
+ rendered = renderType(definition);
391
+ }
392
+ return [`export type ${name} = ${rendered};`];
393
+ }
130
394
  if (!isDeepStrictEqual(definition, existing.schema)) {
131
395
  throw new Error(`behavior ${name} must match the ${existing.owner} schema definition`);
132
396
  }
@@ -211,6 +475,55 @@ function renderMessagingReplayWindowDefault(schema) {
211
475
  `export const MESSAGING_REPLAY_WINDOW_DEFAULT = ${quote(replayWindow)} as const;`,
212
476
  ];
213
477
  }
478
+ /**
479
+ * Deterministic def-name → SCREAMING_SNAKE conversion.
480
+ * Inserts `_` only at lowercase → uppercase word boundaries, so
481
+ * `M0CSubscribeInput` → `M0C_SUBSCRIBE_INPUT` (the `M0C` prefix stays
482
+ * attached; digit→uppercase boundaries are not word starts). All messaging
483
+ * def names are PascalCase words with an optional `M0C` digit-caps prefix,
484
+ * which this rule tokenizes exactly.
485
+ */
486
+ function screamingSnake(name) {
487
+ return name.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
488
+ }
489
+ /**
490
+ * Runtime key sets and enum value arrays projected from the messaging
491
+ * schema's closed definitions:
492
+ *
493
+ * - every `additionalProperties: false` object def exports
494
+ * `<SCREAMING_SNAKE(defName)>_KEYS` with the def's property keys in
495
+ * schema declaration order (mirrors the same-named generated type);
496
+ * - every string-enum def exports `<SCREAMING_SNAKE(defName)>_VALUES`
497
+ * with the enum members in schema order.
498
+ *
499
+ * The `*_VALUES` suffix (not `*_CODES`) avoids shadowing module-local
500
+ * constants in wire/messaging-byte-bounds.ts.
501
+ */
502
+ function renderClosedKeySets(schema) {
503
+ const lines = [];
504
+ for (const [name, definition] of Object.entries(schema.$defs ?? {})) {
505
+ if (definition.type === 'object' && definition.additionalProperties === false) {
506
+ lines.push(renderConstArray(`${screamingSnake(name)}_KEYS`, Object.keys(definition.properties ?? {})));
507
+ }
508
+ else if (definition.type === 'string' &&
509
+ definition.enum !== undefined &&
510
+ definition.enum.length > 0 &&
511
+ definition.enum.every((value) => typeof value === 'string')) {
512
+ lines.push(renderConstArray(`${screamingSnake(name)}_VALUES`, definition.enum));
513
+ }
514
+ }
515
+ return lines;
516
+ }
517
+ /** Fail closed if the generated source would export two consts with one name. */
518
+ function assertUniqueConstExports(source) {
519
+ const seen = new Set();
520
+ for (const match of source.matchAll(/export const ([A-Za-z0-9_$]+)/g)) {
521
+ if (seen.has(match[1])) {
522
+ throw new Error(`Duplicate generated const export: ${match[1]}`);
523
+ }
524
+ seen.add(match[1]);
525
+ }
526
+ }
214
527
  function schemaProperty(schema, definitionName, property) {
215
528
  const result = schema.$defs?.[definitionName]?.properties?.[property];
216
529
  if (!result)
@@ -288,20 +601,46 @@ function validateDataStrategyMetadata(schema) {
288
601
  }
289
602
  }
290
603
  export function generateContractSource(schemas) {
604
+ const layers = schemas.manifest['x-clowder-capability-layers'];
605
+ const count = Object.values(layers).flat().length;
606
+ const matrix = schemas.behavior.$defs?.PermissionMatrixInput?.properties?.entries;
607
+ if (matrix?.minItems !== count || matrix.maxItems !== count)
608
+ throw new Error('behavior permission matrix bounds must match manifest capabilities');
291
609
  validateDataStrategyMetadata(schemas.manifest);
292
610
  validateMessagingBounds(schemas.messaging);
293
611
  const sections = [
294
612
  '/**',
295
- ' * Generated from manifest.schema.json, messaging.schema.json, and behavior-fixture.schema.json.',
613
+ ' * 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
614
  ' * Do not edit by hand. Run `pnpm generate` after changing a schema.',
297
615
  ' */',
298
616
  '',
617
+ ...renderDefinitions(schemas.pluginMetadata),
618
+ '',
299
619
  ...renderDefinitions(schemas.manifest),
300
620
  '',
301
621
  `export type PluginManifest = ${renderType(schemas.manifest)};`,
302
622
  '',
623
+ ...renderDefinitions(schemas.catalog),
624
+ '',
625
+ `export type PluginCatalog = ${renderType(schemas.catalog)};`,
626
+ '',
627
+ ...renderDefinitions(schemas.signals),
628
+ '',
303
629
  ...renderDefinitions(schemas.messaging),
304
630
  '',
631
+ ...renderClosedKeySets(schemas.messaging),
632
+ '',
633
+ ...renderDefinitions(schemas.physicalLimb),
634
+ '',
635
+ ...renderDefinitions(schemas.docxMaterialization),
636
+ ...renderDefinitions(schemas.companionBridge),
637
+ ...['Text', 'Author'].map(kind => {
638
+ const pattern = schemas.docxMaterialization.$defs?.[`DocxMaterialization${kind}`]?.pattern;
639
+ if (typeof pattern !== 'string')
640
+ throw new Error(`Missing DOCX ${kind} pattern`);
641
+ return `export const DOCX_MATERIALIZATION_${kind.toUpperCase()}_PATTERN = ${quote(pattern)};`;
642
+ }),
643
+ '',
305
644
  ...renderBehaviorDefinitions(schemas.behavior, schemas.manifest, schemas.messaging),
306
645
  '',
307
646
  `export type BehaviorFixture = ${renderType(schemas.behavior)};`,
@@ -315,7 +654,9 @@ export function generateContractSource(schemas) {
315
654
  ...renderMessagingReplayWindowDefault(schemas.messaging),
316
655
  '',
317
656
  ];
318
- return `${sections.join('\n').trimEnd()}\n`;
657
+ const source = `${sections.join('\n').trimEnd()}\n`;
658
+ assertUniqueConstExports(source);
659
+ return source;
319
660
  }
320
661
  export async function writeGeneratedContract() {
321
662
  const source = generateContractSource(await loadContractSchemas());
@@ -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, 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,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, 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