@metamesh/generator-sdk 0.13.0 → 0.15.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 (193) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +1 -0
  3. package/dist/contracts.d.ts +9 -2
  4. package/dist/contracts.d.ts.map +1 -1
  5. package/dist/docs/guides/authoring.md +13 -0
  6. package/dist/docs/guides/package.md +1 -0
  7. package/dist/docs/guides/parameters.md +8 -10
  8. package/dist/docs/manifest.json +2 -2
  9. package/dist/docs/reference/fonts/FontSelection.md +1 -1
  10. package/dist/docs/reference/fonts/isFontSelection.md +1 -1
  11. package/dist/docs/reference/index/ArrayParameterDefinition.md +1 -1
  12. package/dist/docs/reference/index/BaseParameterDefinition.md +1 -1
  13. package/dist/docs/reference/index/BooleanParameterDefinition.md +1 -1
  14. package/dist/docs/reference/index/ChoiceOption.md +1 -1
  15. package/dist/docs/reference/index/ChoiceParameterDefinition.md +1 -1
  16. package/dist/docs/reference/index/ChoiceSetParameterDefinition.md +1 -1
  17. package/dist/docs/reference/index/ColorParameterDefinition.md +1 -1
  18. package/dist/docs/reference/index/ConditionExpression.md +1 -1
  19. package/dist/docs/reference/index/ContourAnchor.md +1 -1
  20. package/dist/docs/reference/index/ContourParameterDefinition.md +1 -1
  21. package/dist/docs/reference/index/ContourParameterUi.md +1 -1
  22. package/dist/docs/reference/index/ContourPoint.md +1 -1
  23. package/dist/docs/reference/index/ContourSegment.md +1 -1
  24. package/dist/docs/reference/index/ContourValue.md +1 -1
  25. package/dist/docs/reference/index/FontParameterDefinition.md +1 -1
  26. package/dist/docs/reference/index/FontSelection.md +1 -1
  27. package/dist/docs/reference/index/GeneratorDefinition.md +1 -1
  28. package/dist/docs/reference/index/GeneratorIssue.md +1 -1
  29. package/dist/docs/reference/index/GeneratorModule.md +1 -1
  30. package/dist/docs/reference/index/GeneratorModuleOptions.md +1 -1
  31. package/dist/docs/reference/index/GeneratorParamId.md +1 -1
  32. package/dist/docs/reference/index/GeneratorParams.md +1 -1
  33. package/dist/docs/reference/index/GeneratorPreset.md +1 -1
  34. package/dist/docs/reference/index/GeneratorProgram.md +1 -1
  35. package/dist/docs/reference/index/GeneratorServices.md +1 -1
  36. package/dist/docs/reference/index/GeneratorTextArcBaseline.md +2 -2
  37. package/dist/docs/reference/index/GeneratorTextLayout.md +1 -1
  38. package/dist/docs/reference/index/GeneratorTextMetrics.md +1 -1
  39. package/dist/docs/reference/index/GeneratorTextOptions.md +1 -1
  40. package/dist/docs/reference/index/MAX_CONTOUR_SEGMENTS.md +1 -1
  41. package/dist/docs/reference/index/MAX_SIDE_PROFILE_SEGMENTS.md +1 -1
  42. package/dist/docs/reference/index/NumberArrayItemDefinition.md +1 -1
  43. package/dist/docs/reference/index/NumberArrayParameterDefinition.md +1 -1
  44. package/dist/docs/reference/index/NumberParameterDefinition.md +1 -1
  45. package/dist/docs/reference/index/NumberParameterUi.md +1 -1
  46. package/dist/docs/reference/index/ParameterDefinition.md +1 -1
  47. package/dist/docs/reference/index/ParameterDefinitionDocument.md +1 -1
  48. package/dist/docs/reference/index/ParameterGroup.md +1 -1
  49. package/dist/docs/reference/index/ParameterIssue.md +1 -1
  50. package/dist/docs/reference/index/ParameterIssueCode.md +1 -1
  51. package/dist/docs/reference/index/ParameterIssueSeverity.md +1 -1
  52. package/dist/docs/reference/index/ParameterScaleReference.md +1 -1
  53. package/dist/docs/reference/index/ParameterUi.md +1 -1
  54. package/dist/docs/reference/index/ParameterValidationResult.md +1 -1
  55. package/dist/docs/reference/index/ParameterValue.md +1 -1
  56. package/dist/docs/reference/index/ParameterValues.md +1 -1
  57. package/dist/docs/reference/index/RowParameterUi.md +1 -1
  58. package/dist/docs/reference/index/ScalarParameterValue.md +1 -1
  59. package/dist/docs/reference/index/SideProfileAnchor.md +1 -1
  60. package/dist/docs/reference/index/SideProfileParameterDefinition.md +1 -1
  61. package/dist/docs/reference/index/SideProfileParameterUi.md +1 -1
  62. package/dist/docs/reference/index/SideProfilePoint.md +1 -1
  63. package/dist/docs/reference/index/SideProfileSegment.md +1 -1
  64. package/dist/docs/reference/index/SideProfileValue.md +1 -1
  65. package/dist/docs/reference/index/SourceVisibility.md +1 -1
  66. package/dist/docs/reference/index/StringArrayItemDefinition.md +1 -1
  67. package/dist/docs/reference/index/StringArrayParameterDefinition.md +1 -1
  68. package/dist/docs/reference/index/SvgParameterDefinition.md +1 -1
  69. package/dist/docs/reference/index/TextParameterDefinition.md +1 -1
  70. package/dist/docs/reference/index/UNPREPARED_GENERATOR_SERVICES.md +1 -1
  71. package/dist/docs/reference/index/cloneContourValue.md +1 -1
  72. package/dist/docs/reference/index/cloneSideProfileValue.md +1 -1
  73. package/dist/docs/reference/index/contourValuesEqual.md +1 -1
  74. package/dist/docs/reference/index/defineGenerator.md +1 -1
  75. package/dist/docs/reference/index/defineGeneratorModule.md +1 -1
  76. package/dist/docs/reference/index/definePresets.md +1 -1
  77. package/dist/docs/reference/index/evaluateCondition.md +1 -1
  78. package/dist/docs/reference/index/isContourValue.md +1 -1
  79. package/dist/docs/reference/index/isFontSelection.md +1 -1
  80. package/dist/docs/reference/index/isSideProfileValue.md +1 -1
  81. package/dist/docs/reference/index/sideProfileValuesEqual.md +1 -1
  82. package/dist/docs/reference/packages/GENERATOR_PACKAGE_FORMAT_VERSION.md +1 -1
  83. package/dist/docs/reference/packages/GeneratorAccess.md +1 -1
  84. package/dist/docs/reference/packages/GeneratorDefinitionIssue.md +1 -1
  85. package/dist/docs/reference/packages/GeneratorDefinitionParseResult.md +1 -1
  86. package/dist/docs/reference/packages/GeneratorDescriptor.md +1 -1
  87. package/dist/docs/reference/packages/GeneratorPackageManifest.md +1 -1
  88. package/dist/docs/reference/packages/GeneratorPackageSource.md +1 -1
  89. package/dist/docs/reference/packages/GeneratorPackageValidationError.md +1 -1
  90. package/dist/docs/reference/packages/GeneratorPreset.md +1 -1
  91. package/dist/docs/reference/packages/GeneratorRuntimeReference.md +1 -1
  92. package/dist/docs/reference/packages/InstalledGenerator.md +1 -1
  93. package/dist/docs/reference/packages/MAX_ARRAY_ITEMS.md +1 -1
  94. package/dist/docs/reference/packages/MAX_CONDITION_BRANCHES.md +1 -1
  95. package/dist/docs/reference/packages/MAX_CONDITION_DEPTH.md +1 -1
  96. package/dist/docs/reference/packages/MAX_DESCRIPTOR_LIST_ITEMS.md +1 -1
  97. package/dist/docs/reference/packages/MAX_GENERATOR_ID_LENGTH.md +1 -1
  98. package/dist/docs/reference/packages/MAX_GENERATOR_PACKAGE_BYTES.md +1 -1
  99. package/dist/docs/reference/packages/MAX_GENERATOR_PRESETS.md +1 -1
  100. package/dist/docs/reference/packages/MAX_METADATA_TEXT_LENGTH.md +1 -1
  101. package/dist/docs/reference/packages/MAX_PARAMETERS.md +1 -1
  102. package/dist/docs/reference/packages/MAX_PARAMETER_GROUPS.md +1 -1
  103. package/dist/docs/reference/packages/MAX_PARAMETER_OPTIONS.md +1 -1
  104. package/dist/docs/reference/packages/MAX_TEXT_PARAMETER_LENGTH.md +1 -1
  105. package/dist/docs/reference/packages/METAMESH_RUNTIME_VERSION.md +2 -2
  106. package/dist/docs/reference/packages/compareSemanticVersions.md +1 -1
  107. package/dist/docs/reference/packages/definitionIssuesFromZod.md +1 -1
  108. package/dist/docs/reference/packages/isRuntimeCompatible.md +1 -1
  109. package/dist/docs/reference/packages/parseGeneratorDefinition.md +1 -1
  110. package/dist/docs/reference/packages/parseGeneratorDescriptor.md +1 -1
  111. package/dist/docs/reference/packages/parseGeneratorPackageManifest.md +1 -1
  112. package/dist/docs/reference/packages/parseParameterDefinitionDocument.md +1 -1
  113. package/dist/docs/reference/packages/safeParseGeneratorDefinition.md +1 -1
  114. package/dist/docs/reference/packages/safeParseParameterDefinitionDocument.md +1 -1
  115. package/dist/docs/reference/packages/validateGeneratorPresets.md +1 -1
  116. package/dist/docs/reference/packages/validationErrorFromIssues.md +1 -1
  117. package/dist/docs/reference/packages/validationErrorFromZod.md +1 -1
  118. package/dist/docs/reference/parameters/EMPTY_SVG_PARAMETER_DEFAULT.md +1 -1
  119. package/dist/docs/reference/parameters/MAX_PARAMETER_ISSUES.md +1 -1
  120. package/dist/docs/reference/parameters/MAX_PARAMETER_ISSUE_MESSAGE_LENGTH.md +1 -1
  121. package/dist/docs/reference/parameters/MAX_PROJECT_SVG_PARAMETER_BYTES.md +1 -1
  122. package/dist/docs/reference/parameters/MAX_SVG_PARAMETER_BYTES.md +1 -1
  123. package/dist/docs/reference/parameters/ParamCodec.md +1 -1
  124. package/dist/docs/reference/parameters/ParamDecodeCode.md +1 -1
  125. package/dist/docs/reference/parameters/ParamDecodeError.md +1 -1
  126. package/dist/docs/reference/parameters/ParamDecodeIssue.md +1 -1
  127. package/dist/docs/reference/parameters/ParamParseResult.md +1 -1
  128. package/dist/docs/reference/parameters/PreparedParameters.md +1 -1
  129. package/dist/docs/reference/parameters/aggregateParameterIssues.md +1 -1
  130. package/dist/docs/reference/parameters/canonicalizeParameters.md +1 -1
  131. package/dist/docs/reference/parameters/createParamCodec.md +1 -1
  132. package/dist/docs/reference/parameters/getDefaultParameters.md +1 -1
  133. package/dist/docs/reference/parameters/normalizeParameters.md +1 -1
  134. package/dist/docs/reference/parameters/parameterValueEquals.md +1 -1
  135. package/dist/docs/reference/parameters/parseParameterIssues.md +1 -1
  136. package/dist/docs/reference/parameters/prepareParameters.md +1 -1
  137. package/dist/docs/reference/parameters/svgParameterBytes.md +1 -1
  138. package/dist/docs/reference/parameters/validateParameters.md +1 -1
  139. package/dist/docs/reference/runtime/ExecuteGeneratorOptions.md +1 -1
  140. package/dist/docs/reference/runtime/Export3mfRequest.md +1 -1
  141. package/dist/docs/reference/runtime/ExportError.md +1 -1
  142. package/dist/docs/reference/runtime/ExportSuccess.md +1 -1
  143. package/dist/docs/reference/runtime/ExportedFile.md +1 -1
  144. package/dist/docs/reference/runtime/GenerateRequest.md +1 -1
  145. package/dist/docs/reference/runtime/GeneratedModel.md +1 -1
  146. package/dist/docs/reference/runtime/GeneratedModelDelivery.md +1 -1
  147. package/dist/docs/reference/runtime/GeneratedPart.md +1 -1
  148. package/dist/docs/reference/runtime/GeneratedPartDelivery.md +1 -1
  149. package/dist/docs/reference/runtime/GeneratedPartsDecoder.md +1 -1
  150. package/dist/docs/reference/runtime/GeneratedPartsLimits.md +1 -1
  151. package/dist/docs/reference/runtime/GenerationError.md +1 -1
  152. package/dist/docs/reference/runtime/GenerationInvalid.md +1 -1
  153. package/dist/docs/reference/runtime/GenerationSuccess.md +1 -1
  154. package/dist/docs/reference/runtime/GeneratorExecutionGenerated.md +1 -1
  155. package/dist/docs/reference/runtime/GeneratorExecutionInvalid.md +1 -1
  156. package/dist/docs/reference/runtime/GeneratorExecutionResult.md +1 -1
  157. package/dist/docs/reference/runtime/MeshTopologyMode.md +1 -1
  158. package/dist/docs/reference/runtime/ModelBounds.md +1 -1
  159. package/dist/docs/reference/runtime/ModelStats.md +11 -4
  160. package/dist/docs/reference/runtime/ModelTimings.md +1 -1
  161. package/dist/docs/reference/runtime/ParsedGeneratorModule.md +1 -1
  162. package/dist/docs/reference/runtime/RuntimeError.md +1 -1
  163. package/dist/docs/reference/runtime/ValidateRequest.md +1 -1
  164. package/dist/docs/reference/runtime/ValidationError.md +1 -1
  165. package/dist/docs/reference/runtime/ValidationSuccess.md +1 -1
  166. package/dist/docs/reference/runtime/WorkerRequest.md +1 -1
  167. package/dist/docs/reference/runtime/WorkerResponse.md +1 -1
  168. package/dist/docs/reference/runtime/executeGenerator.md +1 -1
  169. package/dist/docs/reference/runtime/generationIssues.md +1 -1
  170. package/dist/docs/reference/runtime/isGeneratorModule.md +1 -1
  171. package/dist/docs/reference/runtime/parseGeneratedParts.md +1 -1
  172. package/dist/docs/reference/runtime/parseGenerationSentAt.md +1 -1
  173. package/dist/docs/reference/runtime/parseGeneratorModule.md +1 -1
  174. package/dist/generator-package/constants.d.ts +1 -1
  175. package/dist/generator-package/constants.js +1 -1
  176. package/dist/generator-package/validate-manifest.d.ts.map +1 -1
  177. package/dist/generator-package/validate-manifest.js +4 -3
  178. package/dist/generator-package/validate-manifest.js.map +1 -1
  179. package/dist/generator-services.d.ts +1 -1
  180. package/dist/generator-services.d.ts.map +1 -1
  181. package/dist/parameters/recovery.d.ts +1 -2
  182. package/dist/parameters/recovery.d.ts.map +1 -1
  183. package/dist/parameters/recovery.js +39 -45
  184. package/dist/parameters/recovery.js.map +1 -1
  185. package/dist/parameters/strict.js +3 -3
  186. package/dist/parameters/strict.js.map +1 -1
  187. package/dist/parameters/values.d.ts.map +1 -1
  188. package/dist/parameters/values.js +2 -10
  189. package/dist/parameters/values.js.map +1 -1
  190. package/dist/runtime/generated-parts.d.ts.map +1 -1
  191. package/dist/runtime/generated-parts.js +9 -2
  192. package/dist/runtime/generated-parts.js.map +1 -1
  193. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @metamesh/generator-sdk
2
2
 
3
+ ## 0.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 25561f6: Consolidate sampled paths into immutable `path2` and `path3` values with explicit closure,
8
+ transformation, resampling, measurements, and closest-point queries. Geometry accepts paths and
9
+ fluent vector collections directly; tuple path data is named `Path2Data` and `Path3Data`.
10
+ Remove redundant public path query and transform helpers and move mesh observation to
11
+ `solid.toTriangleMesh()`. Runtime protocol 7 rejects incompatible older compiled generators.
12
+
13
+ Complete dimensional XY patterning and fluent geometry interoperability. Consolidate degree-based
14
+ attachment options under `AttachOptions` and primitive `attachment`, rename immutable tolerance
15
+ changes to `withTolerance`, and use `analyzeTriangleMesh` as the single mesh measurement operation.
16
+ Geometry and text validation report structured errors; host lifecycle and copying contracts are explicit.
17
+
18
+ Use concise value factories and semantic degree options, including `anchor3`, `threadProfile`,
19
+ attachment `spin`, full thread `includedAngle`, and revolution `degrees`. Segment intersections use
20
+ `castSegment`; stroke APIs share `StrokeOptions`, `StrokeCap`, and `StrokeJoin`. Engines accept a
21
+ fixed `wasmUrl`. Remove superseded public names and update included consumers.
22
+
23
+ Make `components()` return disconnected material with holes and enclosed cavities intact.
24
+ Inspection uses `componentCount`; snapshots use `partCount`, `vertexCount`, `triangleCount`, and
25
+ `byteCount`, preserving instance counts and shared-storage accounting.
26
+
27
+ Inspect zero-volume Boolean contacts without treating their native boundary remnants as
28
+ material components. Retain thin material pieces and inward cavity boundaries without a volume
29
+ tolerance cutoff.
30
+
31
+ Keep ordinary component inspection on a certified native fast path, reserving exact arithmetic
32
+ for ambiguous contact boundaries. Reuse captured generation-data metadata during cache retention,
33
+ and include retention, commit, and cleanup in total generation timing.
34
+
35
+ Preserve shared snapshot buffers and rigid placements in Testkit part assertions. Validate CLI
36
+ capture bounds by coordinates, independently of JSON property order.
37
+
38
+ Use concise input bounds such as `maxTriangles`, `maxVertices`, `minSegments`, and `maxSegments`,
39
+ including mesh-optimization work budgets. Remove the superseded long option spellings.
40
+
41
+ Refresh Testkit sessions when prepared services change, validate CLI callback results against the
42
+ installed Modeling contract, and reject conflicting buffers for one generated geometry identity
43
+ and revision. Correct closest-point projection when finite path edges have overflowing squared lengths.
44
+
45
+ ## 0.14.0
46
+
47
+ ### Minor Changes
48
+
49
+ - be565ad: Add native `stroke()` sections and pure `closestPointOnPath()` queries. Correct face-sized
50
+ circular sampling and odd-pinion internal gear motion. Native stroke uses the current runtime
51
+ contract so older hosts reject packages requiring the new operation before execution.
52
+
3
53
  ## 0.13.0
4
54
 
5
55
  ### Minor Changes
package/README.md CHANGED
@@ -14,6 +14,7 @@ pnpm add @metamesh/generator-sdk
14
14
 
15
15
  The SDK is renderer-neutral. To build geometry in the example below, also install
16
16
  [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/README.md).
17
+ Keep installed MetaMesh packages on the same exact release.
17
18
 
18
19
  ## Define controls
19
20
 
@@ -71,9 +71,16 @@ export interface ModelBounds {
71
71
  readonly min: Vector3;
72
72
  readonly max: Vector3;
73
73
  }
74
+ /** Aggregate model facts and execution timings supplied by the host. */
74
75
  export interface ModelStats {
75
- readonly triangles?: number | undefined;
76
- readonly vertices?: number | undefined;
76
+ /** Declared output parts, including repeated geometry instances. */
77
+ readonly partCount?: number | undefined;
78
+ /** Aggregate indexed triangles across output parts. */
79
+ readonly triangleCount?: number | undefined;
80
+ /** Aggregate position-buffer vertices across output parts. */
81
+ readonly vertexCount?: number | undefined;
82
+ /** Unique transferable backing-buffer bytes, counted once across output parts. */
83
+ readonly byteCount?: number | undefined;
77
84
  readonly generationMs?: number | undefined;
78
85
  readonly volumeMm3?: number | undefined;
79
86
  readonly timings?: ModelTimings | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,19 @@ Inspect each output and check the exported model in its intended downstream tool
99
99
  alone does not establish a suitable fit or printable wall thickness. Follow the
100
100
  [export guide](https://metamesh.studio/docs/use/export-3mf) for format capabilities and verification steps.
101
101
 
102
+ ## Use the same design in a local module
103
+
104
+ These control-design principles also apply to a Generator authored in a local TypeScript project.
105
+ Use `@metamesh/generator-sdk` for its serializable definition and module envelope, and
106
+ `@metamesh/modeling` for generation. Studio's virtual `@metamesh/project` import is specific to
107
+ Studio and cannot be copied into a local Node module.
108
+
109
+ Follow [local authoring](https://metamesh.studio/docs/develop/agent-authoring#generator-entries) to check and run the
110
+ module with the CLI, inspect dimensions and named parts, and render the captured result. Add
111
+ [Testkit checks](https://metamesh.studio/docs/develop/agent-authoring#test-models) when you need repeatable assertions for
112
+ defaults, presets, supported bounds, or validation recovery. Keep those tests in your project's
113
+ test runner; the CLI owns compilation and capture tools.
114
+
102
115
  ## Keep a portable copy
103
116
 
104
117
  Save the authored Project as a `.metamesh.json` file, then
@@ -14,6 +14,7 @@ pnpm add @metamesh/generator-sdk
14
14
 
15
15
  The SDK is renderer-neutral. To build geometry in the example below, also install
16
16
  [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/README.md).
17
+ Keep installed MetaMesh packages on the same exact release.
17
18
 
18
19
  ## Define controls
19
20
 
@@ -63,7 +63,7 @@ For a control shared by socket and spigot modes, omit the hint and explain both
63
63
  its description: measure the mating part's outside diameter for a socket or the opening's inside
64
64
  diameter for a spigot. Add this metadata to the existing control object. Keep hints short and
65
65
  avoid repeating labels, units, or descriptions. A declared hint must be non-empty and at most
66
- 4,096 characters. Generator packages use format `4` and runtime major `5`.
66
+ 4,096 characters.
67
67
 
68
68
  ## Choose the right control
69
69
 
@@ -130,7 +130,7 @@ full-width control. Shared rows support number inputs, `choice`, and `text`; sli
130
130
  their own rows. Prefer full width for long option names or text values.
131
131
 
132
132
  Shared fields have equal widths and compact labels. They stack when the panel is too
133
- narrow, and hidden fields leave space for the remaining row members. Each field keeps its own
133
+ narrow; when one field is hidden, the remaining field fills the row. Each field keeps its own
134
134
  value, units, validation, and history; `params.width` and `params.height` remain
135
135
  separate numbers.
136
136
 
@@ -379,15 +379,13 @@ assert(
379
379
 
380
380
  `assert(condition, message, { parameterId? })` stops on the first false condition. The parameter ID
381
381
  is checked against your controls and tells the user where to make a correction. Successful assertions
382
- return normally. For a valid result with a meaningful caution, use a warning in the outer callback:
382
+ return normally. For a valid result with a meaningful caution, call
383
+ `warn(message, { parameterId })` in the outer callback.
383
384
 
384
- ```ts
385
- assert(params.wall > 0, "Wall thickness must be positive.", { parameterId: "wall" });
386
- if (params.wall < 1) warn("This wall may be difficult to print.", { parameterId: "wall" });
387
- ```
388
-
389
- A zero wall stops generation; a 0.5 mm wall generates with a warning. A failed edit leaves the last
390
- valid preview and its export available. Warnings allow a current model to generate and export.
385
+ For example, assert that a wall thickness is positive, then warn when a positive wall is thinner
386
+ than your model's recommended minimum. A zero wall stops generation; a 0.5 mm wall can generate
387
+ with a warning. Choose that minimum for the model and manufacturing process. A failed edit leaves
388
+ the last valid preview and its export available. Warnings allow a current model to generate and export.
391
389
 
392
390
  Checks run in JavaScript order. Reading a computed value evaluates it when necessary, and a
393
391
  geometry observation must realize its input first. This also applies to draft validation: it runs
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "formatVersion": 1,
3
3
  "packageName": "@metamesh/generator-sdk",
4
- "packageVersion": "0.13.0",
4
+ "packageVersion": "0.15.0",
5
5
  "documents": [
6
6
  {
7
7
  "id": "sdk/guide/authoring",
@@ -2192,7 +2192,7 @@
2192
2192
  {
2193
2193
  "id": "sdk/reference/runtime/ModelStats",
2194
2194
  "title": "ModelStats",
2195
- "summary": "ModelStats exported from @metamesh/generator-sdk/runtime.",
2195
+ "summary": "Aggregate model facts and execution timings supplied by the host.",
2196
2196
  "path": "reference/runtime/ModelStats.md",
2197
2197
  "importPath": "@metamesh/generator-sdk/runtime",
2198
2198
  "availability": "Portable Generator contracts",
@@ -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.13.0).
5
+ Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk/fonts` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.0).
6
6
 
7
7
  ```ts
8
8
  export interface GeneratorPreset<D extends GeneratorDefinition = GeneratorDefinition> {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Structural program boundary; the SDK never imports a Modeling runtime or kernel.
4
4
 
5
- Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.0).
6
6
 
7
7
  ```ts
8
8
  /** Structural program boundary; the SDK never imports a Modeling runtime or kernel. */
@@ -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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.0).
6
6
 
7
7
  ```ts
8
8
  /** Circular text baseline centered at the XY origin; glyph groups retain their proportions. */
@@ -11,7 +11,7 @@ export interface GeneratorTextArcBaseline {
11
11
  /** Baseline radius in millimetres, greater than zero and at most 10000. */
12
12
  readonly radius: number;
13
13
  /** Alignment datum in degrees counterclockwise from +X; defaults to 90. */
14
- readonly centerAngleDegrees?: number;
14
+ readonly centerAngle?: number;
15
15
  /** Reading direction; defaults to clockwise. */
16
16
  readonly direction?: "clockwise" | "counterclockwise";
17
17
  }
@@ -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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.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.13.0).
5
+ Import from `@metamesh/generator-sdk` (@metamesh/generator-sdk@0.15.0).
6
6
 
7
7
  ```ts
8
8
  /** Ordered presentation group; these objects contain no value semantics. */