@metamesh/generator-sdk 0.9.0 → 0.11.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.
Files changed (120) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +71 -336
  3. package/dist/authoring.d.ts +1 -52
  4. package/dist/authoring.d.ts.map +1 -1
  5. package/dist/authoring.js +0 -24
  6. package/dist/authoring.js.map +1 -1
  7. package/dist/contours.d.ts +36 -0
  8. package/dist/contours.d.ts.map +1 -0
  9. package/dist/{cross-sections.js → contours.js} +19 -61
  10. package/dist/contours.js.map +1 -0
  11. package/dist/contracts.d.ts +30 -11
  12. package/dist/contracts.d.ts.map +1 -1
  13. package/dist/curve-data.d.ts +11 -0
  14. package/dist/curve-data.d.ts.map +1 -0
  15. package/dist/curve-data.js +53 -0
  16. package/dist/curve-data.js.map +1 -0
  17. package/dist/execute-generator.d.ts +14 -23
  18. package/dist/execute-generator.d.ts.map +1 -1
  19. package/dist/execute-generator.js +33 -32
  20. package/dist/execute-generator.js.map +1 -1
  21. package/dist/generated-parts.d.ts +16 -0
  22. package/dist/generated-parts.d.ts.map +1 -1
  23. package/dist/generated-parts.js +155 -67
  24. package/dist/generated-parts.js.map +1 -1
  25. package/dist/generator-module.d.ts +20 -17
  26. package/dist/generator-module.d.ts.map +1 -1
  27. package/dist/generator-module.js +3 -4
  28. package/dist/generator-module.js.map +1 -1
  29. package/dist/generator-package/constants.d.ts +2 -2
  30. package/dist/generator-package/constants.js +2 -2
  31. package/dist/generator-package/errors.d.ts +19 -1
  32. package/dist/generator-package/errors.d.ts.map +1 -1
  33. package/dist/generator-package/errors.js +58 -11
  34. package/dist/generator-package/errors.js.map +1 -1
  35. package/dist/generator-package/index.d.ts +7 -2
  36. package/dist/generator-package/index.d.ts.map +1 -1
  37. package/dist/generator-package/index.js +52 -9
  38. package/dist/generator-package/index.js.map +1 -1
  39. package/dist/generator-package/portable-data.d.ts +12 -0
  40. package/dist/generator-package/portable-data.d.ts.map +1 -0
  41. package/dist/generator-package/portable-data.js +102 -0
  42. package/dist/generator-package/portable-data.js.map +1 -0
  43. package/dist/generator-package/schemas/common.schema.d.ts.map +1 -1
  44. package/dist/generator-package/schemas/common.schema.js +4 -2
  45. package/dist/generator-package/schemas/common.schema.js.map +1 -1
  46. package/dist/generator-package/schemas/definition.schema.d.ts +451 -57
  47. package/dist/generator-package/schemas/definition.schema.d.ts.map +1 -1
  48. package/dist/generator-package/schemas/definition.schema.js +5 -2
  49. package/dist/generator-package/schemas/definition.schema.js.map +1 -1
  50. package/dist/generator-package/schemas/manifest.schema.d.ts +178 -62
  51. package/dist/generator-package/schemas/manifest.schema.d.ts.map +1 -1
  52. package/dist/generator-package/schemas/manifest.schema.js.map +1 -1
  53. package/dist/generator-package/schemas/parameter-document-json-schema.d.ts +4 -0
  54. package/dist/generator-package/schemas/parameter-document-json-schema.d.ts.map +1 -0
  55. package/dist/generator-package/schemas/parameter-document-json-schema.js +17 -0
  56. package/dist/generator-package/schemas/parameter-document-json-schema.js.map +1 -0
  57. package/dist/generator-package/schemas/parameter.schema.d.ts +173 -275
  58. package/dist/generator-package/schemas/parameter.schema.d.ts.map +1 -1
  59. package/dist/generator-package/schemas/parameter.schema.js +169 -79
  60. package/dist/generator-package/schemas/parameter.schema.js.map +1 -1
  61. package/dist/generator-package/schemas/preset.schema.d.ts.map +1 -1
  62. package/dist/generator-package/schemas/preset.schema.js +4 -4
  63. package/dist/generator-package/schemas/preset.schema.js.map +1 -1
  64. package/dist/generator-package/validate-definition.d.ts +4 -7
  65. package/dist/generator-package/validate-definition.d.ts.map +1 -1
  66. package/dist/generator-package/validate-definition.js +210 -272
  67. package/dist/generator-package/validate-definition.js.map +1 -1
  68. package/dist/generator-package/validate-manifest.d.ts.map +1 -1
  69. package/dist/generator-package/validate-manifest.js +5 -10
  70. package/dist/generator-package/validate-manifest.js.map +1 -1
  71. package/dist/index.d.ts +7 -8
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +3 -3
  74. package/dist/index.js.map +1 -1
  75. package/dist/parameter-contracts.d.ts +62 -39
  76. package/dist/parameter-contracts.d.ts.map +1 -1
  77. package/dist/parameters/issues.d.ts.map +1 -1
  78. package/dist/parameters/issues.js +9 -10
  79. package/dist/parameters/issues.js.map +1 -1
  80. package/dist/parameters/preparation.d.ts +8 -6
  81. package/dist/parameters/preparation.d.ts.map +1 -1
  82. package/dist/parameters/preparation.js +21 -10
  83. package/dist/parameters/preparation.js.map +1 -1
  84. package/dist/parameters/recovery.d.ts.map +1 -1
  85. package/dist/parameters/recovery.js +11 -12
  86. package/dist/parameters/recovery.js.map +1 -1
  87. package/dist/parameters/strict.d.ts.map +1 -1
  88. package/dist/parameters/strict.js +7 -10
  89. package/dist/parameters/strict.js.map +1 -1
  90. package/dist/parameters/values.d.ts +1 -0
  91. package/dist/parameters/values.d.ts.map +1 -1
  92. package/dist/parameters/values.js +7 -6
  93. package/dist/parameters/values.js.map +1 -1
  94. package/dist/parameters.d.ts +1 -1
  95. package/dist/parameters.d.ts.map +1 -1
  96. package/dist/parameters.js +1 -1
  97. package/dist/parameters.js.map +1 -1
  98. package/dist/parameters.schema.json +1757 -0
  99. package/dist/parse-generator-module.d.ts +5 -27
  100. package/dist/parse-generator-module.d.ts.map +1 -1
  101. package/dist/parse-generator-module.js +29 -96
  102. package/dist/parse-generator-module.js.map +1 -1
  103. package/dist/runtime.d.ts +6 -6
  104. package/dist/runtime.d.ts.map +1 -1
  105. package/dist/runtime.js +3 -3
  106. package/dist/runtime.js.map +1 -1
  107. package/dist/side-profiles.d.ts +36 -0
  108. package/dist/side-profiles.d.ts.map +1 -0
  109. package/dist/{profiles.js → side-profiles.js} +21 -66
  110. package/dist/side-profiles.js.map +1 -0
  111. package/dist/worker-contracts.d.ts +2 -2
  112. package/dist/worker-contracts.d.ts.map +1 -1
  113. package/dist/worker-contracts.js.map +1 -1
  114. package/package.json +7 -7
  115. package/dist/cross-sections.d.ts +0 -41
  116. package/dist/cross-sections.d.ts.map +0 -1
  117. package/dist/cross-sections.js.map +0 -1
  118. package/dist/profiles.d.ts +0 -41
  119. package/dist/profiles.d.ts.map +0 -1
  120. package/dist/profiles.js.map +0 -1
@@ -1,4 +1,13 @@
1
- const GENERATED_PART_FIELDS = new Set(["id", "positions", "indices", "color"]);
1
+ const GENERATED_PART_FIELDS = new Set([
2
+ "id",
3
+ "positions",
4
+ "indices",
5
+ "color",
6
+ "geometryId",
7
+ "geometryRevision",
8
+ "position",
9
+ "rotation",
10
+ ]);
2
11
  const GENERATED_PART_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
3
12
  const GENERATED_PART_COLOR_PATTERN = /^#[\da-f]{6}$/i;
4
13
  const MAX_GENERATED_PART_ID_LENGTH = 64;
@@ -29,8 +38,7 @@ function resolveLimits(overrides) {
29
38
  maxBytes: positiveInteger(overrides.maxBytes, "limits.maxBytes"),
30
39
  };
31
40
  }
32
- function parsePart(value, index, limits, totals) {
33
- const path = `Generated part ${index + 1}`;
41
+ function parseMetadata(value, path) {
34
42
  if (!isRecord(value)) {
35
43
  throw new TypeError(`${path} must be an object.`);
36
44
  }
@@ -44,6 +52,61 @@ function parsePart(value, index, limits, totals) {
44
52
  !GENERATED_PART_ID_PATTERN.test(id)) {
45
53
  throw new TypeError(`${path}.id must be a lowercase kebab-case identifier of at most ${MAX_GENERATED_PART_ID_LENGTH} characters.`);
46
54
  }
55
+ const geometryId = ownDataValue(value, "geometryId", path);
56
+ if (typeof geometryId !== "string" || geometryId.length === 0 || geometryId.length > 256) {
57
+ throw new TypeError(`${path}.geometryId must be a nonempty resource identity of at most 256 characters.`);
58
+ }
59
+ const geometryRevision = ownDataValue(value, "geometryRevision", path);
60
+ if (typeof geometryRevision !== "number" ||
61
+ !Number.isSafeInteger(geometryRevision) ||
62
+ geometryRevision < 0) {
63
+ throw new TypeError(`${path}.geometryRevision must be a nonnegative safe integer.`);
64
+ }
65
+ const pose = (key) => {
66
+ const candidate = ownDataValue(value, key, path);
67
+ if (!Array.isArray(candidate) ||
68
+ candidate.length !== 3 ||
69
+ Reflect.ownKeys(candidate).length !== 4) {
70
+ throw new TypeError(`${path}.${key} must contain exactly three finite numbers.`);
71
+ }
72
+ const values = [0, 1, 2].map((index) => {
73
+ const descriptor = Object.getOwnPropertyDescriptor(candidate, String(index));
74
+ if (descriptor === undefined ||
75
+ !("value" in descriptor) ||
76
+ typeof descriptor.value !== "number" ||
77
+ !Number.isFinite(descriptor.value)) {
78
+ throw new TypeError(`${path}.${key} must contain exactly three finite numbers.`);
79
+ }
80
+ return descriptor.value;
81
+ });
82
+ return Object.freeze(values);
83
+ };
84
+ const position = pose("position");
85
+ const rotation = pose("rotation");
86
+ const colorValue = Object.hasOwn(value, "color") ? ownDataValue(value, "color", path) : undefined;
87
+ let color;
88
+ if (colorValue === undefined) {
89
+ color = undefined;
90
+ }
91
+ else {
92
+ if (typeof colorValue !== "string" || !GENERATED_PART_COLOR_PATTERN.test(colorValue)) {
93
+ throw new TypeError(`${path}.color must be a six-digit hex color.`);
94
+ }
95
+ color = colorValue.toLowerCase();
96
+ }
97
+ return {
98
+ source: value,
99
+ metadata: {
100
+ id,
101
+ geometryId,
102
+ geometryRevision,
103
+ position,
104
+ rotation,
105
+ ...(color === undefined ? {} : { color }),
106
+ },
107
+ };
108
+ }
109
+ function readResource(value, path) {
47
110
  const positions = ownDataValue(value, "positions", path);
48
111
  if (!(positions instanceof Float32Array)) {
49
112
  throw new TypeError(`${path}.positions must be a Float32Array.`);
@@ -58,70 +121,34 @@ function parsePart(value, index, limits, totals) {
58
121
  if (indices.length === 0 || indices.length % 3 !== 0) {
59
122
  throw new TypeError(`${path}.indices must contain at least one complete triangle.`);
60
123
  }
61
- const colorValue = Object.hasOwn(value, "color") ? ownDataValue(value, "color", path) : undefined;
62
- let color;
63
- if (colorValue === undefined) {
64
- color = undefined;
65
- }
66
- else {
67
- if (typeof colorValue !== "string" || !GENERATED_PART_COLOR_PATTERN.test(colorValue)) {
68
- throw new TypeError(`${path}.color must be a six-digit hex color.`);
69
- }
70
- color = colorValue.toLowerCase();
71
- }
72
- const vertexCount = positions.length / 3;
73
- const triangleCount = indices.length / 3;
74
- const views = [positions, indices];
75
124
  const buffers = new Set();
76
- for (const view of views) {
125
+ for (const view of [positions, indices]) {
77
126
  if (!(view.buffer instanceof ArrayBuffer)) {
78
127
  throw new TypeError(`${path} mesh data must use transferable ArrayBuffer storage.`);
79
128
  }
80
- if (!totals.buffers.has(view.buffer))
81
- buffers.add(view.buffer);
82
- }
83
- const byteCount = [...buffers].reduce((total, buffer) => total + buffer.byteLength, 0);
84
- if (totals.vertices + vertexCount > limits.maxVertices) {
85
- throw new TypeError(limitMessage(limits.maxVertices, "vertex", "vertices"));
86
- }
87
- if (totals.triangles + triangleCount > limits.maxTriangles) {
88
- throw new TypeError(limitMessage(limits.maxTriangles, "triangle"));
89
- }
90
- if (totals.bytes + byteCount > limits.maxBytes) {
91
- throw new TypeError(limitMessage(limits.maxBytes, "mesh byte"));
129
+ buffers.add(view.buffer);
92
130
  }
131
+ return {
132
+ positions,
133
+ indices,
134
+ vertices: positions.length / 3,
135
+ triangles: indices.length / 3,
136
+ buffers: [...buffers],
137
+ };
138
+ }
139
+ function validateResource({ positions, indices, vertices }, path) {
93
140
  for (let coordinate = 0; coordinate < positions.length; coordinate += 1) {
94
141
  if (!Number.isFinite(positions[coordinate])) {
95
142
  throw new TypeError(`${path}.positions[${coordinate}] must be finite.`);
96
143
  }
97
144
  }
98
145
  for (let offset = 0; offset < indices.length; offset += 1) {
99
- if (indices[offset] >= vertexCount) {
146
+ if (indices[offset] >= vertices) {
100
147
  throw new TypeError(`${path}.indices[${offset}] must reference an existing vertex.`);
101
148
  }
102
149
  }
103
- const part = Object.freeze({
104
- id,
105
- positions,
106
- indices,
107
- ...(color === undefined ? {} : { color }),
108
- });
109
- return {
110
- part,
111
- vertices: vertexCount,
112
- triangles: triangleCount,
113
- bytes: byteCount,
114
- buffers: [...buffers],
115
- };
116
150
  }
117
- /**
118
- * Strictly parses generated runtime output without copying transferable mesh buffers.
119
- *
120
- * This checks the renderer-neutral structure and aggregate resource limits. Geometric
121
- * validity, such as non-degenerate or closed topology, remains a Geometry concern.
122
- */
123
- export function parseGeneratedParts(value, limitOverrides) {
124
- const limits = resolveLimits(limitOverrides);
151
+ function parseParts(value, limits, previous) {
125
152
  if (!Array.isArray(value)) {
126
153
  throw new TypeError("Generated output must be an array of parts.");
127
154
  }
@@ -133,6 +160,7 @@ export function parseGeneratedParts(value, limitOverrides) {
133
160
  }
134
161
  const ids = new Set();
135
162
  const parts = [];
163
+ const resources = new Map();
136
164
  let vertices = 0;
137
165
  let triangles = 0;
138
166
  let bytes = 0;
@@ -142,23 +170,83 @@ export function parseGeneratedParts(value, limitOverrides) {
142
170
  if (descriptor === undefined || !("value" in descriptor)) {
143
171
  throw new TypeError(`Generated part ${index + 1} must be an own array data value.`);
144
172
  }
145
- const parsed = parsePart(descriptor.value, index, limits, {
146
- vertices,
147
- triangles,
148
- bytes,
149
- buffers,
150
- });
151
- if (ids.has(parsed.part.id)) {
152
- throw new TypeError(`Generated part ${index + 1}.id duplicates "${parsed.part.id}".`);
173
+ const path = `Generated part ${index + 1}`;
174
+ const { metadata, source } = parseMetadata(descriptor.value, path);
175
+ if (ids.has(metadata.id)) {
176
+ throw new TypeError(`${path}.id duplicates "${metadata.id}".`);
177
+ }
178
+ ids.add(metadata.id);
179
+ const key = JSON.stringify([metadata.geometryId, metadata.geometryRevision]);
180
+ const reference = previous !== undefined &&
181
+ !Object.hasOwn(source, "positions") &&
182
+ !Object.hasOwn(source, "indices");
183
+ let resource;
184
+ if (reference) {
185
+ const known = resources.get(key) ?? previous.get(key);
186
+ if (known === undefined)
187
+ throw new TypeError("The worker referenced an unknown geometry resource.");
188
+ resource = known;
153
189
  }
154
- ids.add(parsed.part.id);
155
- vertices += parsed.vertices;
156
- triangles += parsed.triangles;
157
- bytes += parsed.bytes;
158
- for (const buffer of parsed.buffers)
190
+ else {
191
+ if (previous !== undefined && (previous.has(key) || resources.has(key))) {
192
+ throw new TypeError("A delivered geometry identity cannot replace its immutable buffers.");
193
+ }
194
+ resource = readResource(source, path);
195
+ }
196
+ vertices += resource.vertices;
197
+ triangles += resource.triangles;
198
+ for (const buffer of resource.buffers) {
199
+ if (buffers.has(buffer))
200
+ continue;
159
201
  buffers.add(buffer);
160
- parts.push(parsed.part);
202
+ bytes += buffer.byteLength;
203
+ }
204
+ if (vertices > limits.maxVertices)
205
+ throw new TypeError(limitMessage(limits.maxVertices, "vertex", "vertices"));
206
+ if (triangles > limits.maxTriangles)
207
+ throw new TypeError(limitMessage(limits.maxTriangles, "triangle"));
208
+ if (bytes > limits.maxBytes)
209
+ throw new TypeError(limitMessage(limits.maxBytes, "mesh byte"));
210
+ if (!reference)
211
+ validateResource(resource, path);
212
+ if (previous !== undefined)
213
+ resources.set(key, resource);
214
+ parts.push(Object.freeze({ ...metadata, positions: resource.positions, indices: resource.indices }));
215
+ }
216
+ return { parts: Object.freeze(parts), resources };
217
+ }
218
+ /**
219
+ * Strictly parses generated runtime output without copying transferable mesh buffers.
220
+ *
221
+ * This checks the renderer-neutral structure and aggregate resource limits. Geometric
222
+ * validity, such as non-degenerate or closed topology, remains a Geometry concern.
223
+ */
224
+ export function parseGeneratedParts(value, limitOverrides) {
225
+ return parseParts(value, resolveLimits(limitOverrides)).parts;
226
+ }
227
+ /**
228
+ * Admits each delivered geometry resource once and hydrates later references without rescanning it.
229
+ *
230
+ * The receiving host owns admitted buffers and must keep them immutable and attached. Every
231
+ * delivery still validates part metadata and aggregate limits. Only a successful delivery replaces
232
+ * the bounded resource map; captured parts retain their own buffers after clear or later deliveries.
233
+ */
234
+ export class GeneratedPartsDecoder {
235
+ #limits;
236
+ #resources = new Map();
237
+ /** Fixes the receiving host's aggregate resource limits for this decoder's lifetime. */
238
+ constructor(limits) {
239
+ this.#limits = resolveLimits(limits);
240
+ }
241
+ /** Validates a complete delivery and commits resource ownership only after every part succeeds. */
242
+ decode(value) {
243
+ const result = parseParts(value, this.#limits, this.#resources);
244
+ this.#resources = result.resources;
245
+ return result.parts;
246
+ }
247
+ /** Forgets admitted resources; previously returned parts remain valid and retain their buffers. */
248
+ clear() {
249
+ this.#resources.clear();
161
250
  }
162
- return Object.freeze(parts);
163
251
  }
164
252
  //# sourceMappingURL=generated-parts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-parts.js","sourceRoot":"","sources":["../src/generated-parts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generated-parts.js","sourceRoot":"","sources":["../src/generated-parts.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,30 @@
1
- import type { GeneratorDefinition, GeneratorIssue, GeneratorParams } from "./contracts.js";
1
+ import type { GeneratorDefinition, GeneratorParams } from "./contracts.js";
2
2
  import { GENERATOR_PACKAGE_FORMAT_VERSION } from "./generator-package/constants.js";
3
3
  import type { GeneratorServices } from "./generator-services.js";
4
- /** Preparation stays inside one request, before the host acquires modeling resources. */
5
- export type Preparation<D extends GeneratorDefinition, P> = {
6
- readonly ok: true;
7
- readonly value: P;
8
- readonly issues: readonly GeneratorIssue<D>[];
9
- } | {
10
- readonly ok: false;
11
- readonly issues: readonly GeneratorIssue<D>[];
4
+ /** Structural program boundary; the SDK never imports a Modeling runtime or kernel. */
5
+ export interface GeneratorProgram {
6
+ readonly kind: "metamesh-model";
7
+ readonly generate: (context: never) => unknown;
8
+ }
9
+ /** Checks only portable host inputs; Modeling owns the rest of its authoring context. */
10
+ type DefinitionBoundProgram<D extends GeneratorDefinition, Program extends GeneratorProgram> = Program & {
11
+ readonly generate: (context: Omit<Parameters<Program["generate"]>[0], "params" | "services"> & {
12
+ readonly params: Readonly<GeneratorParams<D>>;
13
+ readonly services: GeneratorServices;
14
+ }) => unknown;
12
15
  };
13
- export interface GeneratorModule<D extends GeneratorDefinition = GeneratorDefinition, P = unknown, Context = unknown, Output = unknown> {
16
+ /** The sole executable package envelope. Metadata stays callback-free. */
17
+ export interface GeneratorModule<D extends GeneratorDefinition = GeneratorDefinition, Program extends GeneratorProgram = GeneratorProgram> {
14
18
  readonly formatVersion: typeof GENERATOR_PACKAGE_FORMAT_VERSION;
15
19
  readonly generatorId: D["id"];
16
20
  readonly version: D["version"];
17
- readonly prepare: (parameters: GeneratorParams<D>, services: GeneratorServices) => Preparation<D, P>;
18
- readonly build: (prepared: P, model: Context) => Output;
21
+ readonly generate: Program;
19
22
  }
20
- export interface GeneratorModuleOptions<D extends GeneratorDefinition, P, Context, Output> {
23
+ export interface GeneratorModuleOptions<D extends GeneratorDefinition, Program extends GeneratorProgram> {
21
24
  readonly definition: D;
22
- readonly prepare: (parameters: GeneratorParams<NoInfer<D>>, services: GeneratorServices) => Preparation<NoInfer<D>, P>;
23
- readonly build: (prepared: P, model: Context) => Output;
25
+ readonly generate: DefinitionBoundProgram<D, Program>;
24
26
  }
25
- /** Codec-free authoring helper. Hosts check metadata and callback results. */
26
- export declare function defineGeneratorModule<const D extends GeneratorDefinition, P, Context, Output>({ definition, prepare, build, }: GeneratorModuleOptions<D, P, Context, Output>): GeneratorModule<D, P, Context, Output>;
27
+ /** Binds a Modeling program to serializable identity without executing it. */
28
+ export declare function defineGeneratorModule<const D extends GeneratorDefinition, Program extends GeneratorProgram>({ definition, generate }: GeneratorModuleOptions<D, Program>): GeneratorModule<D, Program>;
29
+ export {};
27
30
  //# sourceMappingURL=generator-module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator-module.d.ts","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,yFAAyF;AACzF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,IACpD;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,GACvF;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACnD,CAAC,GAAG,OAAO,EACX,OAAO,GAAG,OAAO,EACjB,MAAM,GAAG,OAAO;IAEhB,QAAQ,CAAC,aAAa,EAAE,OAAO,gCAAgC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAChB,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,QAAQ,EAAE,iBAAiB,KACxB,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM;IACvF,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,CAChB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACvC,QAAQ,EAAE,iBAAiB,KACxB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAC7F,UAAU,EACV,OAAO,EACP,KAAK,GACN,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAQxF"}
1
+ {"version":3,"file":"generator-module.d.ts","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC;CAChD;AAED,yFAAyF;AACzF,KAAK,sBAAsB,CACzB,CAAC,SAAS,mBAAmB,EAC7B,OAAO,SAAS,gBAAgB,IAC9B,OAAO,GAAG;IACZ,QAAQ,CAAC,QAAQ,EAAE,CACjB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QACzE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACtC,KACE,OAAO,CAAC;CACd,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACnD,OAAO,SAAS,gBAAgB,GAAG,gBAAgB;IAEnD,QAAQ,CAAC,aAAa,EAAE,OAAO,gCAAgC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,OAAO,SAAS,gBAAgB;IAEhC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CACvD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EACnC,OAAO,SAAS,gBAAgB,EAChC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAO3F"}
@@ -1,12 +1,11 @@
1
1
  import { GENERATOR_PACKAGE_FORMAT_VERSION } from "./generator-package/constants.js";
2
- /** Codec-free authoring helper. Hosts check metadata and callback results. */
3
- export function defineGeneratorModule({ definition, prepare, build, }) {
2
+ /** Binds a Modeling program to serializable identity without executing it. */
3
+ export function defineGeneratorModule({ definition, generate }) {
4
4
  return Object.freeze({
5
5
  formatVersion: GENERATOR_PACKAGE_FORMAT_VERSION,
6
6
  generatorId: definition.id,
7
7
  version: definition.version,
8
- prepare,
9
- build,
8
+ generate,
10
9
  });
11
10
  }
12
11
  //# sourceMappingURL=generator-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator-module.js","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AAiCpF,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAA0D,EAC7F,UAAU,EACV,OAAO,EACP,KAAK,GACyC;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,gCAAgC;QAC/C,WAAW,EAAE,UAAU,CAAC,EAAE;QAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,OAAO;QACP,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"generator-module.js","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AAyCpF,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAGnC,EAAE,UAAU,EAAE,QAAQ,EAAsC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,gCAAgC;QAC/C,WAAW,EAAE,UAAU,CAAC,EAAE;QAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
- export declare const METAMESH_RUNTIME_VERSION = "2.2.0";
2
- export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
1
+ export declare const METAMESH_RUNTIME_VERSION = "4.0.0";
2
+ export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 4;
3
3
  export declare const MAX_GENERATOR_PACKAGE_BYTES: number;
4
4
  /** Portable metadata limits enforced before package content reaches Studio. */
5
5
  export declare const MAX_GENERATOR_ID_LENGTH = 120;
@@ -1,5 +1,5 @@
1
- export const METAMESH_RUNTIME_VERSION = "2.2.0";
2
- export const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
1
+ export const METAMESH_RUNTIME_VERSION = "4.0.0";
2
+ export const GENERATOR_PACKAGE_FORMAT_VERSION = 4;
3
3
  export const MAX_GENERATOR_PACKAGE_BYTES = 5 * 1024 * 1024;
4
4
  /** Portable metadata limits enforced before package content reaches Studio. */
5
5
  export const MAX_GENERATOR_ID_LENGTH = 120;
@@ -1,6 +1,24 @@
1
1
  import type { ZodError } from "zod";
2
+ import type { ParameterIssueCode } from "../contracts.js";
3
+ export interface GeneratorDefinitionIssue {
4
+ readonly kind: "structural" | "semantic";
5
+ readonly path: readonly (string | number)[];
6
+ readonly code: ParameterIssueCode;
7
+ readonly message: string;
8
+ }
9
+ export type GeneratorDefinitionParseResult<T> = {
10
+ readonly success: true;
11
+ readonly data: T;
12
+ } | {
13
+ readonly success: false;
14
+ readonly issues: readonly GeneratorDefinitionIssue[];
15
+ };
2
16
  export declare class GeneratorPackageValidationError extends Error {
3
- constructor(message: string);
17
+ readonly issues: readonly GeneratorDefinitionIssue[];
18
+ constructor(message: string, issues?: readonly GeneratorDefinitionIssue[]);
4
19
  }
20
+ /** Custom refinements need SDK markers because JSON Schema cannot represent them. */
21
+ export declare function definitionIssuesFromZod(error: ZodError): readonly GeneratorDefinitionIssue[];
22
+ export declare function validationErrorFromIssues(context: string, issues: readonly GeneratorDefinitionIssue[]): GeneratorPackageValidationError;
5
23
  export declare function validationErrorFromZod(context: string, error: ZodError): GeneratorPackageValidationError;
6
24
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,KAAK,CAAC;AAE9C,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAUD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,GACd,+BAA+B,CAOjC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,KAAK,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,8BAA8B,CAAC,CAAC,IACxC;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAEtF,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;gBACzC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,wBAAwB,EAAO;CAK9E;AAiCD,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,wBAAwB,EAAE,CAwB5F;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,wBAAwB,EAAE,GAC1C,+BAA+B,CASjC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,GACd,+BAA+B,CAEjC"}
@@ -1,22 +1,69 @@
1
+ import { MAX_PARAMETER_ISSUES } from "../parameters/issues.js";
1
2
  export class GeneratorPackageValidationError extends Error {
2
- constructor(message) {
3
+ issues;
4
+ constructor(message, issues = []) {
3
5
  super(message);
4
6
  this.name = "GeneratorPackageValidationError";
7
+ this.issues = issues;
5
8
  }
6
9
  }
7
10
  function formatPath(path) {
8
- return path.reduce((result, segment) => {
9
- if (typeof segment === "number")
10
- return `${result}[${segment}]`;
11
- const key = String(segment);
12
- return result === "" ? key : `${result}.${key}`;
13
- }, "");
11
+ return path.reduce((result, segment) => typeof segment === "number"
12
+ ? `${result}[${segment}]`
13
+ : result === ""
14
+ ? segment
15
+ : `${result}.${segment}`, "");
14
16
  }
15
- export function validationErrorFromZod(context, error) {
16
- const issue = error.issues[0];
17
+ function issueCode(issue) {
18
+ switch (issue.code) {
19
+ case "invalid_type":
20
+ return "type";
21
+ case "unrecognized_keys":
22
+ return "unknown";
23
+ case "invalid_value":
24
+ return "choice";
25
+ case "too_small":
26
+ return "minimum";
27
+ case "too_big":
28
+ return "maximum";
29
+ case "invalid_union":
30
+ return "structure";
31
+ default:
32
+ return "invalid";
33
+ }
34
+ }
35
+ /** Custom refinements need SDK markers because JSON Schema cannot represent them. */
36
+ export function definitionIssuesFromZod(error) {
37
+ return error.issues
38
+ .slice(0, MAX_PARAMETER_ISSUES)
39
+ .flatMap((issue) => {
40
+ const path = issue.path.map((segment) => typeof segment === "number" ? segment : String(segment));
41
+ if (issue.code === "unrecognized_keys")
42
+ return issue.keys.map((key) => ({
43
+ kind: "structural",
44
+ path: [...path, key],
45
+ code: "unknown",
46
+ message: `Unrecognized key: "${key}"`,
47
+ }));
48
+ return [
49
+ {
50
+ kind: issue.code === "custom" ? "semantic" : "structural",
51
+ path,
52
+ code: issueCode(issue),
53
+ message: issue.message,
54
+ },
55
+ ];
56
+ })
57
+ .slice(0, MAX_PARAMETER_ISSUES);
58
+ }
59
+ export function validationErrorFromIssues(context, issues) {
60
+ const issue = issues[0];
17
61
  if (issue === undefined)
18
- return new GeneratorPackageValidationError(`${context} is invalid.`);
62
+ return new GeneratorPackageValidationError(`${context} is invalid.`, issues);
19
63
  const path = formatPath(issue.path);
20
- return new GeneratorPackageValidationError(`${context}${path === "" ? "" : `${path.startsWith("[") ? "" : "."}${path}`}: ${issue.message}`);
64
+ return new GeneratorPackageValidationError(`${context}${path === "" ? "" : `${path.startsWith("[") ? "" : "."}${path}`}: ${issue.message}`, issues);
65
+ }
66
+ export function validationErrorFromZod(context, error) {
67
+ return validationErrorFromIssues(context, definitionIssuesFromZod(error));
21
68
  }
22
69
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAsB;IACxC,OAAO,IAAI,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,KAAe;IAEf,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,+BAA+B,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,+BAA+B,CACxC,GAAG,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAChG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAa/D,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,MAAM,CAAsC;IACrD,YAAY,OAAe,EAAE,SAA8C,EAAE;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAkC;IACpD,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAClB,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,GAAG;QACzB,CAAC,CAAC,MAAM,KAAK,EAAE;YACb,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAC9B,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC;QAChB,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,OAAO,KAAK,CAAC,MAAM;SAChB,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,OAAO,CAAC,CAAC,KAAK,EAA8B,EAAE;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACxD,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;YACpC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;gBACpB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,sBAAsB,GAAG,GAAG;aACtC,CAAC,CAAC,CAAC;QACN,OAAO;YACL;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;gBACzD,IAAI;gBACJ,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB;SACF,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,MAA2C;IAE3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS;QACrB,OAAO,IAAI,+BAA+B,CAAC,GAAG,OAAO,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,+BAA+B,CACxC,GAAG,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAC/F,MAAM,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,KAAe;IAEf,OAAO,yBAAyB,CAAC,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,4 +1,5 @@
1
- import { type GeneratorDefinition } from "./schemas/definition.schema.js";
1
+ import { type GeneratorDefinitionParseResult } from "./errors.js";
2
+ import { type GeneratorDefinition, type ParameterDefinitionDocument } from "./schemas/definition.schema.js";
2
3
  import { type GeneratorDescriptor } from "./schemas/descriptor.schema.js";
3
4
  import { type GeneratorPackageManifest } from "./schemas/manifest.schema.js";
4
5
  export * from "./constants.js";
@@ -22,7 +23,11 @@ export type GeneratorRuntimeReference = {
22
23
  readonly kind: "installed";
23
24
  readonly version: string;
24
25
  };
25
- /** Parses untrusted generator metadata and enforces its semantic invariants. */
26
+ /** Validates the editable groups/parameters document; issue paths are relative to its root. */
27
+ export declare function safeParseParameterDefinitionDocument(value: unknown): GeneratorDefinitionParseResult<ParameterDefinitionDocument>;
28
+ export declare function parseParameterDefinitionDocument(value: unknown): ParameterDefinitionDocument;
29
+ /** Validates untrusted Generator metadata, collecting independent semantic issues. */
30
+ export declare function safeParseGeneratorDefinition(value: unknown): GeneratorDefinitionParseResult<GeneratorDefinition>;
26
31
  export declare function parseGeneratorDefinition(value: unknown): GeneratorDefinition;
27
32
  export declare function parseGeneratorPackageManifest(value: unknown): GeneratorPackageManifest;
28
33
  export declare function parseGeneratorDescriptor(value: unknown): GeneratorDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAItC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAW7D,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAI5E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAetF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAE5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAErB,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAItC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoC7D,+FAA+F;AAC/F,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,8BAA8B,CAAC,2BAA2B,CAAC,CAE7D;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAI5F;AAED,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,8BAA8B,CAAC,mBAAmB,CAAC,CAErD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAI5E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAkBtF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAE5E"}