@metamesh/generator-sdk 0.16.0 → 0.17.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 (180) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +10 -8
  3. package/dist/docs/guides/package.md +10 -8
  4. package/dist/docs/manifest.json +16 -2
  5. package/dist/docs/reference/fonts/FontSelection.md +1 -1
  6. package/dist/docs/reference/fonts/isFontSelection.md +1 -1
  7. package/dist/docs/reference/index/ArrayParameterDefinition.md +1 -1
  8. package/dist/docs/reference/index/BaseParameterDefinition.md +1 -1
  9. package/dist/docs/reference/index/BooleanParameterDefinition.md +1 -1
  10. package/dist/docs/reference/index/ChoiceOption.md +1 -1
  11. package/dist/docs/reference/index/ChoiceParameterDefinition.md +1 -1
  12. package/dist/docs/reference/index/ChoiceSetParameterDefinition.md +1 -1
  13. package/dist/docs/reference/index/ColorParameterDefinition.md +1 -1
  14. package/dist/docs/reference/index/ConditionExpression.md +1 -1
  15. package/dist/docs/reference/index/ContourAnchor.md +1 -1
  16. package/dist/docs/reference/index/ContourParameterDefinition.md +1 -1
  17. package/dist/docs/reference/index/ContourParameterUi.md +1 -1
  18. package/dist/docs/reference/index/ContourPoint.md +1 -1
  19. package/dist/docs/reference/index/ContourSegment.md +1 -1
  20. package/dist/docs/reference/index/ContourValue.md +1 -1
  21. package/dist/docs/reference/index/FontParameterDefinition.md +1 -1
  22. package/dist/docs/reference/index/FontSelection.md +1 -1
  23. package/dist/docs/reference/index/GeneratorDefinition.md +1 -1
  24. package/dist/docs/reference/index/GeneratorIssue.md +1 -1
  25. package/dist/docs/reference/index/GeneratorModule.md +1 -1
  26. package/dist/docs/reference/index/GeneratorModuleOptions.md +1 -1
  27. package/dist/docs/reference/index/GeneratorParamId.md +1 -1
  28. package/dist/docs/reference/index/GeneratorParams.md +1 -1
  29. package/dist/docs/reference/index/GeneratorPreset.md +1 -1
  30. package/dist/docs/reference/index/GeneratorProgram.md +3 -3
  31. package/dist/docs/reference/index/GeneratorServices.md +1 -1
  32. package/dist/docs/reference/index/GeneratorTextArcBaseline.md +1 -1
  33. package/dist/docs/reference/index/GeneratorTextLayout.md +1 -1
  34. package/dist/docs/reference/index/GeneratorTextMetrics.md +1 -1
  35. package/dist/docs/reference/index/GeneratorTextOptions.md +1 -1
  36. package/dist/docs/reference/index/MAX_CONTOUR_SEGMENTS.md +1 -1
  37. package/dist/docs/reference/index/MAX_SIDE_PROFILE_SEGMENTS.md +1 -1
  38. package/dist/docs/reference/index/NumberArrayItemDefinition.md +1 -1
  39. package/dist/docs/reference/index/NumberArrayParameterDefinition.md +1 -1
  40. package/dist/docs/reference/index/NumberParameterDefinition.md +1 -1
  41. package/dist/docs/reference/index/NumberParameterUi.md +1 -1
  42. package/dist/docs/reference/index/ParameterDefinition.md +1 -1
  43. package/dist/docs/reference/index/ParameterDefinitionDocument.md +1 -1
  44. package/dist/docs/reference/index/ParameterGroup.md +1 -1
  45. package/dist/docs/reference/index/ParameterIssue.md +1 -1
  46. package/dist/docs/reference/index/ParameterIssueCode.md +1 -1
  47. package/dist/docs/reference/index/ParameterIssueSeverity.md +1 -1
  48. package/dist/docs/reference/index/ParameterScaleReference.md +1 -1
  49. package/dist/docs/reference/index/ParameterUi.md +1 -1
  50. package/dist/docs/reference/index/ParameterValidationResult.md +1 -1
  51. package/dist/docs/reference/index/ParameterValue.md +1 -1
  52. package/dist/docs/reference/index/ParameterValues.md +1 -1
  53. package/dist/docs/reference/index/RowParameterUi.md +1 -1
  54. package/dist/docs/reference/index/ScalarParameterValue.md +1 -1
  55. package/dist/docs/reference/index/SideProfileAnchor.md +1 -1
  56. package/dist/docs/reference/index/SideProfileParameterDefinition.md +1 -1
  57. package/dist/docs/reference/index/SideProfileParameterUi.md +1 -1
  58. package/dist/docs/reference/index/SideProfilePoint.md +1 -1
  59. package/dist/docs/reference/index/SideProfileSegment.md +1 -1
  60. package/dist/docs/reference/index/SideProfileValue.md +1 -1
  61. package/dist/docs/reference/index/SourceVisibility.md +1 -1
  62. package/dist/docs/reference/index/StringArrayItemDefinition.md +1 -1
  63. package/dist/docs/reference/index/StringArrayParameterDefinition.md +1 -1
  64. package/dist/docs/reference/index/SvgParameterDefinition.md +1 -1
  65. package/dist/docs/reference/index/TextParameterDefinition.md +1 -1
  66. package/dist/docs/reference/index/UNPREPARED_GENERATOR_SERVICES.md +1 -1
  67. package/dist/docs/reference/index/cloneContourValue.md +1 -1
  68. package/dist/docs/reference/index/cloneSideProfileValue.md +1 -1
  69. package/dist/docs/reference/index/contourValuesEqual.md +1 -1
  70. package/dist/docs/reference/index/defineGenerator.md +1 -1
  71. package/dist/docs/reference/index/defineGeneratorModule.md +1 -1
  72. package/dist/docs/reference/index/definePresets.md +1 -1
  73. package/dist/docs/reference/index/evaluateCondition.md +1 -1
  74. package/dist/docs/reference/index/isContourValue.md +1 -1
  75. package/dist/docs/reference/index/isFontSelection.md +1 -1
  76. package/dist/docs/reference/index/isSideProfileValue.md +1 -1
  77. package/dist/docs/reference/index/sideProfileValuesEqual.md +1 -1
  78. package/dist/docs/reference/modeling/defineGeneratorModel.md +14 -0
  79. package/dist/docs/reference/packages/GENERATOR_PACKAGE_FORMAT_VERSION.md +1 -1
  80. package/dist/docs/reference/packages/GeneratorAccess.md +1 -1
  81. package/dist/docs/reference/packages/GeneratorDefinitionIssue.md +1 -1
  82. package/dist/docs/reference/packages/GeneratorDefinitionParseResult.md +1 -1
  83. package/dist/docs/reference/packages/GeneratorDescriptor.md +1 -1
  84. package/dist/docs/reference/packages/GeneratorPackageManifest.md +1 -1
  85. package/dist/docs/reference/packages/GeneratorPackageSource.md +1 -1
  86. package/dist/docs/reference/packages/GeneratorPackageValidationError.md +1 -1
  87. package/dist/docs/reference/packages/GeneratorPreset.md +1 -1
  88. package/dist/docs/reference/packages/GeneratorRuntimeReference.md +1 -1
  89. package/dist/docs/reference/packages/InstalledGenerator.md +1 -1
  90. package/dist/docs/reference/packages/MAX_ARRAY_ITEMS.md +1 -1
  91. package/dist/docs/reference/packages/MAX_CONDITION_BRANCHES.md +1 -1
  92. package/dist/docs/reference/packages/MAX_CONDITION_DEPTH.md +1 -1
  93. package/dist/docs/reference/packages/MAX_DESCRIPTOR_LIST_ITEMS.md +1 -1
  94. package/dist/docs/reference/packages/MAX_GENERATOR_ID_LENGTH.md +1 -1
  95. package/dist/docs/reference/packages/MAX_GENERATOR_PACKAGE_BYTES.md +1 -1
  96. package/dist/docs/reference/packages/MAX_GENERATOR_PRESETS.md +1 -1
  97. package/dist/docs/reference/packages/MAX_METADATA_TEXT_LENGTH.md +1 -1
  98. package/dist/docs/reference/packages/MAX_PARAMETERS.md +1 -1
  99. package/dist/docs/reference/packages/MAX_PARAMETER_GROUPS.md +1 -1
  100. package/dist/docs/reference/packages/MAX_PARAMETER_OPTIONS.md +1 -1
  101. package/dist/docs/reference/packages/MAX_TEXT_PARAMETER_LENGTH.md +1 -1
  102. package/dist/docs/reference/packages/METAMESH_RUNTIME_VERSION.md +2 -2
  103. package/dist/docs/reference/packages/compareSemanticVersions.md +1 -1
  104. package/dist/docs/reference/packages/definitionIssuesFromZod.md +1 -1
  105. package/dist/docs/reference/packages/isRuntimeCompatible.md +1 -1
  106. package/dist/docs/reference/packages/parseGeneratorDefinition.md +1 -1
  107. package/dist/docs/reference/packages/parseGeneratorDescriptor.md +1 -1
  108. package/dist/docs/reference/packages/parseGeneratorPackageManifest.md +1 -1
  109. package/dist/docs/reference/packages/parseParameterDefinitionDocument.md +1 -1
  110. package/dist/docs/reference/packages/safeParseGeneratorDefinition.md +1 -1
  111. package/dist/docs/reference/packages/safeParseParameterDefinitionDocument.md +1 -1
  112. package/dist/docs/reference/packages/validateGeneratorPresets.md +1 -1
  113. package/dist/docs/reference/packages/validationErrorFromIssues.md +1 -1
  114. package/dist/docs/reference/packages/validationErrorFromZod.md +1 -1
  115. package/dist/docs/reference/parameters/EMPTY_SVG_PARAMETER_DEFAULT.md +1 -1
  116. package/dist/docs/reference/parameters/MAX_PARAMETER_ISSUES.md +1 -1
  117. package/dist/docs/reference/parameters/MAX_PARAMETER_ISSUE_MESSAGE_LENGTH.md +1 -1
  118. package/dist/docs/reference/parameters/MAX_PROJECT_SVG_PARAMETER_BYTES.md +1 -1
  119. package/dist/docs/reference/parameters/MAX_SVG_PARAMETER_BYTES.md +1 -1
  120. package/dist/docs/reference/parameters/ParamCodec.md +1 -1
  121. package/dist/docs/reference/parameters/ParamDecodeCode.md +1 -1
  122. package/dist/docs/reference/parameters/ParamDecodeError.md +1 -1
  123. package/dist/docs/reference/parameters/ParamDecodeIssue.md +1 -1
  124. package/dist/docs/reference/parameters/ParamParseResult.md +1 -1
  125. package/dist/docs/reference/parameters/PreparedParameters.md +1 -1
  126. package/dist/docs/reference/parameters/aggregateParameterIssues.md +1 -1
  127. package/dist/docs/reference/parameters/canonicalizeParameters.md +1 -1
  128. package/dist/docs/reference/parameters/createParamCodec.md +1 -1
  129. package/dist/docs/reference/parameters/getDefaultParameters.md +1 -1
  130. package/dist/docs/reference/parameters/normalizeParameters.md +1 -1
  131. package/dist/docs/reference/parameters/parameterValueEquals.md +1 -1
  132. package/dist/docs/reference/parameters/parseParameterIssues.md +1 -1
  133. package/dist/docs/reference/parameters/prepareParameters.md +1 -1
  134. package/dist/docs/reference/parameters/svgParameterBytes.md +1 -1
  135. package/dist/docs/reference/parameters/validateParameters.md +1 -1
  136. package/dist/docs/reference/runtime/ExecuteGeneratorOptions.md +1 -1
  137. package/dist/docs/reference/runtime/Export3mfRequest.md +1 -1
  138. package/dist/docs/reference/runtime/ExportError.md +1 -1
  139. package/dist/docs/reference/runtime/ExportSuccess.md +1 -1
  140. package/dist/docs/reference/runtime/ExportedFile.md +1 -1
  141. package/dist/docs/reference/runtime/GenerateRequest.md +1 -1
  142. package/dist/docs/reference/runtime/GeneratedModel.md +1 -1
  143. package/dist/docs/reference/runtime/GeneratedModelDelivery.md +1 -1
  144. package/dist/docs/reference/runtime/GeneratedPart.md +1 -1
  145. package/dist/docs/reference/runtime/GeneratedPartDelivery.md +1 -1
  146. package/dist/docs/reference/runtime/GeneratedPartsDecoder.md +1 -1
  147. package/dist/docs/reference/runtime/GeneratedPartsLimits.md +1 -1
  148. package/dist/docs/reference/runtime/GenerationError.md +1 -1
  149. package/dist/docs/reference/runtime/GenerationInvalid.md +1 -1
  150. package/dist/docs/reference/runtime/GenerationSuccess.md +1 -1
  151. package/dist/docs/reference/runtime/GeneratorExecutionGenerated.md +1 -1
  152. package/dist/docs/reference/runtime/GeneratorExecutionInvalid.md +1 -1
  153. package/dist/docs/reference/runtime/GeneratorExecutionResult.md +1 -1
  154. package/dist/docs/reference/runtime/MeshTopologyMode.md +1 -1
  155. package/dist/docs/reference/runtime/ModelBounds.md +1 -1
  156. package/dist/docs/reference/runtime/ModelStats.md +1 -1
  157. package/dist/docs/reference/runtime/ModelTimings.md +1 -1
  158. package/dist/docs/reference/runtime/ParsedGeneratorModule.md +1 -1
  159. package/dist/docs/reference/runtime/RuntimeError.md +1 -1
  160. package/dist/docs/reference/runtime/ValidateRequest.md +1 -1
  161. package/dist/docs/reference/runtime/ValidationError.md +1 -1
  162. package/dist/docs/reference/runtime/ValidationSuccess.md +1 -1
  163. package/dist/docs/reference/runtime/WorkerRequest.md +1 -1
  164. package/dist/docs/reference/runtime/WorkerResponse.md +1 -1
  165. package/dist/docs/reference/runtime/executeGenerator.md +1 -1
  166. package/dist/docs/reference/runtime/generationIssues.md +1 -1
  167. package/dist/docs/reference/runtime/isGeneratorModule.md +1 -1
  168. package/dist/docs/reference/runtime/parseGeneratedParts.md +1 -1
  169. package/dist/docs/reference/runtime/parseGenerationSentAt.md +1 -1
  170. package/dist/docs/reference/runtime/parseGeneratorModule.md +1 -1
  171. package/dist/generator-module.d.ts +1 -1
  172. package/dist/generator-module.d.ts.map +1 -1
  173. package/dist/generator-package/constants.d.ts +1 -1
  174. package/dist/generator-package/constants.js +1 -1
  175. package/dist/generator-package/versions.spec.js +5 -5
  176. package/dist/modeling.d.ts +11 -0
  177. package/dist/modeling.d.ts.map +1 -0
  178. package/dist/modeling.js +11 -0
  179. package/dist/modeling.js.map +1 -0
  180. package/package.json +14 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @metamesh/generator-sdk
2
2
 
3
+ ## 0.17.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add `defineGeneratorModel(definition, callback)` through the optional
8
+ `@metamesh/generator-sdk/modeling` adapter. It infers controls, synchronous services, and diagnostic
9
+ parameter IDs while leaving the SDK root independent of the Modeling runtime.
10
+
11
+ Add `runner.withModel(parameters, callback)` and Testkit's `withModel(program, parameters, callback,
12
+ options?)` for scoped assertions. Both await synchronous or asynchronous callbacks and release
13
+ their snapshot in `finally`; the plain-model helper also releases its temporary session.
14
+ Generator validation failures throw the existing structured `GenerationError` diagnostics.
15
+
16
+ Migration tip: replace private definition-plus-`generate` wrappers with the SDK adapter, and use
17
+ scoped callbacks instead of repeated successful-result narrowing and snapshot disposal. Keep
18
+ `runner.execute` and direct engine sessions for tests that inspect invalid results, cache behavior,
19
+ or explicit snapshot ownership. Prepared services are required for plain models that declare them.
20
+
21
+ Scoped callbacks retain snapshot parts without eagerly copying their buffers. For cross-run
22
+ geometry comparisons, select manufacturing fields rather than transient geometry resource IDs.
23
+ Capture `positions` and `indices` once before dense traversal: each accessor read returns a copy.
24
+
25
+ - Add deferred `holeCutter` recipes for circular screw holes and existing Section pocket profiles.
26
+ Circular cutters support counterbores and countersinks; convex single-contour profiles support
27
+ 45-degree entry chamfers. Explicit `overrun.bottom` and `overrun.top` preserve blind-pocket floors
28
+ unless the caller deliberately extends the cutter.
29
+ Circular entry chamfers retain nominal circular radii; Section entry chamfers offset the supplied
30
+ sampled contour's edges.
31
+
32
+ Advance the Modeling host runtime to major 9 for hole cutters and fitted SVG recipe options.
33
+ Rebuild Generator packages against the new library set; old host/runtime packages are rejected.
34
+
35
+ Migration tip: reuse `regularPolygon`, `rectangle`, or other Section constructors as the cutter's
36
+ `profile`. Position a blind cutter at its intended floor and set only `overrun.top` for opening
37
+ padding. Keep allowances, minimum floor thickness and feature-specific assertions in your model.
38
+
39
+ ### Patch Changes
40
+
41
+ - Updated dependencies
42
+ - Updated dependencies [d0cc194]
43
+ - Updated dependencies
44
+ - Updated dependencies
45
+ - @metamesh/modeling@0.17.0
46
+
3
47
  ## 0.16.0
4
48
 
5
49
  ### Minor Changes
package/README.md CHANGED
@@ -22,7 +22,7 @@ A definition describes the Generator and its editable parameters. Literal IDs an
22
22
  you exact parameter types:
23
23
 
24
24
  ```ts
25
- import { defineGenerator, type GeneratorParams } from "@metamesh/generator-sdk";
25
+ import { defineGenerator } from "@metamesh/generator-sdk";
26
26
 
27
27
  export const definition = defineGenerator({
28
28
  id: "sleeve",
@@ -34,7 +34,6 @@ export const definition = defineGenerator({
34
34
  { id: "boreDiameter", label: "Bore diameter", type: "number", default: 10, min: 1 },
35
35
  ],
36
36
  });
37
- type Parameters = GeneratorParams<typeof definition>;
38
37
  ```
39
38
 
40
39
  Definitions are serializable. Optional `ui` metadata describes grouping, visibility, hints, and
@@ -45,14 +44,14 @@ for the full set of controls.
45
44
 
46
45
  ## Generate a model
47
46
 
48
- Add a synchronous generation program to the same module. Assertions describe relationships
49
- between controls; the module helper binds the program to its definition:
47
+ Add a synchronous generation program to the same module. The Modeling adapter infers controls,
48
+ prepared services, and diagnostic parameter IDs from the definition:
50
49
 
51
50
  ```ts
52
- import { defineGeneratorModule } from "@metamesh/generator-sdk";
53
- import { generate, tube } from "@metamesh/modeling";
51
+ import { defineGeneratorModel } from "@metamesh/generator-sdk/modeling";
52
+ import { tube } from "@metamesh/modeling";
54
53
 
55
- const model = generate<Parameters>(({ params, assert, part }) => {
54
+ export default defineGeneratorModel(definition, ({ params, assert, part }) => {
56
55
  assert(
57
56
  params.boreDiameter < params.outerDiameter,
58
57
  "The bore must be smaller than the outside diameter.",
@@ -67,7 +66,6 @@ const model = generate<Parameters>(({ params, assert, part }) => {
67
66
  })
68
67
  );
69
68
  });
70
- export default defineGeneratorModule({ definition, generate: model });
71
69
  ```
72
70
 
73
71
  Return a single `part(...)` or a readonly array of parts. The host normalizes parameters and prepares
@@ -75,6 +73,9 @@ assets before generation. Modeling manages geometry, sessions, and snapshots; th
75
73
  portable definitions, module envelopes, and validated runtime messages. Unsupported package formats
76
74
  reject before executable bytes are evaluated.
77
75
 
76
+ The optional `/modeling` adapter imports Modeling's program helper; other SDK entry points remain
77
+ independent of its runtime. Use `defineGeneratorModule` when binding an existing model program.
78
+
78
79
  ## Work with saved values
79
80
 
80
81
  Use `normalizeParameters` from `/parameters` to recover saved values: it drops unknown keys,
@@ -95,6 +96,7 @@ completion; SDK validation also checks references, defaults, and cross-field rul
95
96
  | `@metamesh/generator-sdk/runtime` | Module execution, mesh data, and Worker messages |
96
97
  | `@metamesh/generator-sdk/packages` | Package, catalog, and installation parsing |
97
98
  | `@metamesh/generator-sdk/fonts` | Immutable font selection values |
99
+ | `@metamesh/generator-sdk/modeling` | Definition-inferred Modeling programs |
98
100
 
99
101
  Incremental Worker hosts can use `GeneratedPartsDecoder` from `/runtime` to hydrate validated
100
102
  geometry resources while checking part metadata and aggregate limits on every delivery. Keep
@@ -22,7 +22,7 @@ A definition describes the Generator and its editable parameters. Literal IDs an
22
22
  you exact parameter types:
23
23
 
24
24
  ```ts
25
- import { defineGenerator, type GeneratorParams } from "@metamesh/generator-sdk";
25
+ import { defineGenerator } from "@metamesh/generator-sdk";
26
26
 
27
27
  export const definition = defineGenerator({
28
28
  id: "sleeve",
@@ -34,7 +34,6 @@ export const definition = defineGenerator({
34
34
  { id: "boreDiameter", label: "Bore diameter", type: "number", default: 10, min: 1 },
35
35
  ],
36
36
  });
37
- type Parameters = GeneratorParams<typeof definition>;
38
37
  ```
39
38
 
40
39
  Definitions are serializable. Optional `ui` metadata describes grouping, visibility, hints, and
@@ -45,14 +44,14 @@ for the full set of controls.
45
44
 
46
45
  ## Generate a model
47
46
 
48
- Add a synchronous generation program to the same module. Assertions describe relationships
49
- between controls; the module helper binds the program to its definition:
47
+ Add a synchronous generation program to the same module. The Modeling adapter infers controls,
48
+ prepared services, and diagnostic parameter IDs from the definition:
50
49
 
51
50
  ```ts
52
- import { defineGeneratorModule } from "@metamesh/generator-sdk";
53
- import { generate, tube } from "@metamesh/modeling";
51
+ import { defineGeneratorModel } from "@metamesh/generator-sdk/modeling";
52
+ import { tube } from "@metamesh/modeling";
54
53
 
55
- const model = generate<Parameters>(({ params, assert, part }) => {
54
+ export default defineGeneratorModel(definition, ({ params, assert, part }) => {
56
55
  assert(
57
56
  params.boreDiameter < params.outerDiameter,
58
57
  "The bore must be smaller than the outside diameter.",
@@ -67,7 +66,6 @@ const model = generate<Parameters>(({ params, assert, part }) => {
67
66
  })
68
67
  );
69
68
  });
70
- export default defineGeneratorModule({ definition, generate: model });
71
69
  ```
72
70
 
73
71
  Return a single `part(...)` or a readonly array of parts. The host normalizes parameters and prepares
@@ -75,6 +73,9 @@ assets before generation. Modeling manages geometry, sessions, and snapshots; th
75
73
  portable definitions, module envelopes, and validated runtime messages. Unsupported package formats
76
74
  reject before executable bytes are evaluated.
77
75
 
76
+ The optional `/modeling` adapter imports Modeling's program helper; other SDK entry points remain
77
+ independent of its runtime. Use `defineGeneratorModule` when binding an existing model program.
78
+
78
79
  ## Work with saved values
79
80
 
80
81
  Use `normalizeParameters` from `/parameters` to recover saved values: it drops unknown keys,
@@ -95,6 +96,7 @@ completion; SDK validation also checks references, defaults, and cross-field rul
95
96
  | `@metamesh/generator-sdk/runtime` | Module execution, mesh data, and Worker messages |
96
97
  | `@metamesh/generator-sdk/packages` | Package, catalog, and installation parsing |
97
98
  | `@metamesh/generator-sdk/fonts` | Immutable font selection values |
99
+ | `@metamesh/generator-sdk/modeling` | Definition-inferred Modeling programs |
98
100
 
99
101
  Incremental Worker hosts can use `GeneratedPartsDecoder` from `/runtime` to hydrate validated
100
102
  geometry resources while checking part metadata and aggregate limits on every delivery. Keep
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "formatVersion": 1,
3
3
  "packageName": "@metamesh/generator-sdk",
4
- "packageVersion": "0.16.0",
4
+ "packageVersion": "0.17.0",
5
5
  "documents": [
6
6
  {
7
7
  "id": "sdk/guide/authoring",
@@ -517,7 +517,7 @@
517
517
  {
518
518
  "id": "sdk/reference/index/GeneratorProgram",
519
519
  "title": "GeneratorProgram",
520
- "summary": "Structural program boundary; the SDK never imports a Modeling runtime or kernel.",
520
+ "summary": "Structural program boundary; the SDK root never imports a Modeling runtime or kernel.",
521
521
  "path": "reference/index/GeneratorProgram.md",
522
522
  "importPath": "@metamesh/generator-sdk",
523
523
  "availability": "Portable Generator contracts",
@@ -1088,6 +1088,20 @@
1088
1088
  "UNPREPARED_GENERATOR_SERVICES"
1089
1089
  ]
1090
1090
  },
1091
+ {
1092
+ "id": "sdk/reference/modeling/defineGeneratorModel",
1093
+ "title": "defineGeneratorModel",
1094
+ "summary": "Defines a Generator model with parameters and prepared services inferred from its definition. The callback stays synchronous; hosts own normalization, assets, execution and cleanup. Import this adapter from `@metamesh/generator-sdk/modeling` with matching Modeling installed.",
1095
+ "path": "reference/modeling/defineGeneratorModel.md",
1096
+ "importPath": "@metamesh/generator-sdk/modeling",
1097
+ "availability": "Portable Generator contracts",
1098
+ "canonical": "https://metamesh.studio/docs/develop/agent-authoring#generator-entries",
1099
+ "keywords": [
1100
+ "reference",
1101
+ "modeling",
1102
+ "defineGeneratorModel"
1103
+ ]
1104
+ },
1091
1105
  {
1092
1106
  "id": "sdk/reference/packages/compareSemanticVersions",
1093
1107
  "title": "compareSemanticVersions",
@@ -2,7 +2,7 @@
2
2
 
3
3
  An immutable catalog face; revision is the SHA-256 digest of the complete font file.
4
4
 
5
- Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** An immutable catalog face; revision is the SHA-256 digest of the complete font file. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Checks only the portable value, without consulting a catalog or substituting fonts.
4
4
 
5
- Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Checks only the portable value, without consulting a catalog or substituting fonts. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  ArrayParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ArrayParameterDefinition extends ArrayParameterBase {
@@ -2,7 +2,7 @@
2
2
 
3
3
  BaseParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  BooleanParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface BooleanParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ChoiceOption exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ChoiceOption {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ChoiceParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ChoiceParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ChoiceSetParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ChoiceSetParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ColorParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ColorParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ConditionExpression exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export type ConditionExpression = {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Editing intent accompanies the explicit curve controls; no tangent is inferred at runtime.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Editing intent accompanies the explicit curve controls; no tangent is inferred at runtime. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  ContourParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ContourParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ContourParameterUi exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ContourParameterUi extends ParameterUi {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Normalized planar coordinates, with X rightward and Y upward, in the unit square.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Normalized planar coordinates, with X rightward and Y upward, in the unit square. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  ContourSegment exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export type ContourSegment = {
@@ -2,7 +2,7 @@
2
2
 
3
3
  One explicitly closed planar contour. Generators own physical scaling and topology checks.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** One explicitly closed planar contour. Generators own physical scaling and topology checks. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  FontParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface FontParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  An immutable catalog face; revision is the SHA-256 digest of the complete font file.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** An immutable catalog face; revision is the SHA-256 digest of the complete font file. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  GeneratorDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface GeneratorDefinition extends ParameterDefinitionDocument {
@@ -2,7 +2,7 @@
2
2
 
3
3
  A validation issue whose optional parameter ID is tied to one definition.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** A validation issue whose optional parameter ID is tied to one definition. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  The sole executable package envelope. Metadata stays callback-free.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** The sole executable package envelope. Metadata stays callback-free. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  GeneratorModuleOptions exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface GeneratorModuleOptions<D extends GeneratorDefinition, Program extends GeneratorProgram> {
@@ -2,7 +2,7 @@
2
2
 
3
3
  The declared parameter ID union for a Generator definition.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** The declared parameter ID union for a Generator definition. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Exact normalized parameter values derived from a Generator definition.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Exact normalized parameter values derived from a Generator definition. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  GeneratorPreset exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface GeneratorPreset<D extends GeneratorDefinition = GeneratorDefinition> {
@@ -1,11 +1,11 @@
1
1
  # GeneratorProgram
2
2
 
3
- Structural program boundary; the SDK never imports a Modeling runtime or kernel.
3
+ Structural program boundary; the SDK root never imports a Modeling runtime or kernel.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
- /** Structural program boundary; the SDK never imports a Modeling runtime or kernel. */
8
+ /** Structural program boundary; the SDK root never imports a Modeling runtime or kernel. */
9
9
  export interface GeneratorProgram {
10
10
  readonly kind: "metamesh-model";
11
11
  readonly generate: (context: never) => unknown;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Host services are local to an execution; functions never cross the Worker protocol.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Host services are local to an execution; functions never cross the Worker protocol. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Circular text baseline centered at the XY origin; glyph groups retain their proportions.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Circular text baseline centered at the XY origin; glyph groups retain their proportions. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Exact vector paths and measurements in Y-up millimetres, never font bytes or live objects.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Exact vector paths and measurements in Y-up millimetres, never font bytes or live objects. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Structural mirror of Geometry text metrics, keeping the SDK renderer-independent.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Structural mirror of Geometry text metrics, keeping the SDK renderer-independent. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Text layout uses millimetres and prepared catalog fonts, with no runtime network access.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Text layout uses millimetres and prepared catalog fonts, with no runtime network access. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  Maximum number of straight or cubic segments in an editable closed cross section.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  MAX_CONTOUR_SEGMENTS = 32
@@ -2,7 +2,7 @@
2
2
 
3
3
  Maximum number of straight or cubic segments in an editable side profile.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  MAX_SIDE_PROFILE_SEGMENTS = 31
@@ -2,7 +2,7 @@
2
2
 
3
3
  NumberArrayItemDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface NumberArrayItemDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  NumberArrayParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface NumberArrayParameterDefinition extends ArrayParameterBase {
@@ -2,7 +2,7 @@
2
2
 
3
3
  NumberParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface NumberParameterDefinition extends BaseParameterDefinition {
@@ -2,7 +2,7 @@
2
2
 
3
3
  NumberParameterUi exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface NumberParameterUi extends RowParameterUi {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ParameterDefinition exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export type ParameterDefinition = NumberParameterDefinition | BooleanParameterDefinition | ChoiceParameterDefinition | ChoiceSetParameterDefinition | ColorParameterDefinition | TextParameterDefinition | FontParameterDefinition | SvgParameterDefinition | SideProfileParameterDefinition | ContourParameterDefinition | ArrayParameterDefinition;
@@ -2,7 +2,7 @@
2
2
 
3
3
  ParameterDefinitionDocument exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ParameterDefinitionDocument {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ordered presentation group; these objects contain no value semantics.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  /** Ordered presentation group; these objects contain no value semantics. */
@@ -2,7 +2,7 @@
2
2
 
3
3
  ParameterIssue exported from @metamesh/generator-sdk.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.16.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.17.0).
6
6
 
7
7
  ```ts
8
8
  export interface ParameterIssue {