@faicad/faijs 0.13.2 → 0.16.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 (485) hide show
  1. package/dist/api/api-namespace.d.ts +7 -0
  2. package/dist/api/api-namespace.d.ts.map +1 -1
  3. package/dist/api/api-namespace.js +44 -17
  4. package/dist/api/api-namespace.js.map +1 -1
  5. package/dist/api/boolean.d.ts +19 -0
  6. package/dist/api/boolean.d.ts.map +1 -1
  7. package/dist/api/boolean.js +71 -12
  8. package/dist/api/boolean.js.map +1 -1
  9. package/dist/api/chamfer.d.ts.map +1 -1
  10. package/dist/api/chamfer.js +12 -8
  11. package/dist/api/chamfer.js.map +1 -1
  12. package/dist/api/compound-geom.d.ts +45 -0
  13. package/dist/api/compound-geom.d.ts.map +1 -0
  14. package/dist/api/compound-geom.js +85 -0
  15. package/dist/api/compound-geom.js.map +1 -0
  16. package/dist/api/edge-ref.d.ts.map +1 -1
  17. package/dist/api/edge-ref.js +7 -4
  18. package/dist/api/edge-ref.js.map +1 -1
  19. package/dist/api/engrave.d.ts.map +1 -1
  20. package/dist/api/engrave.js +1 -0
  21. package/dist/api/engrave.js.map +1 -1
  22. package/dist/api/extrude.d.ts.map +1 -1
  23. package/dist/api/extrude.js +131 -3
  24. package/dist/api/extrude.js.map +1 -1
  25. package/dist/api/face-ref.d.ts.map +1 -1
  26. package/dist/api/face-ref.js +7 -4
  27. package/dist/api/face-ref.js.map +1 -1
  28. package/dist/api/fillet.d.ts.map +1 -1
  29. package/dist/api/fillet.js +6 -5
  30. package/dist/api/fillet.js.map +1 -1
  31. package/dist/api/generated/cad/script-face.d.ts +1 -1
  32. package/dist/api/generated/cad/script-face.d.ts.map +1 -1
  33. package/dist/api/generated/cad/script-face.js +1 -2
  34. package/dist/api/generated/cad/script-face.js.map +1 -1
  35. package/dist/api/generated/operations.js +16 -16
  36. package/dist/api/generated/operations.js.map +1 -1
  37. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  38. package/dist/api/generated/script-face-manifest.js +0 -2
  39. package/dist/api/generated/script-face-manifest.js.map +1 -1
  40. package/dist/api/generated/script-face.d.ts +1 -7
  41. package/dist/api/generated/script-face.d.ts.map +1 -1
  42. package/dist/api/generated/script-face.js +2 -4
  43. package/dist/api/generated/script-face.js.map +1 -1
  44. package/dist/api/generated/sketching.js +1 -1
  45. package/dist/api/generated/sketching.js.map +1 -1
  46. package/dist/api/generated/topology.d.ts +0 -56
  47. package/dist/api/generated/topology.d.ts.map +1 -1
  48. package/dist/api/generated/topology.js +19 -68
  49. package/dist/api/generated/topology.js.map +1 -1
  50. package/dist/api/import-brep.d.ts +36 -0
  51. package/dist/api/import-brep.d.ts.map +1 -0
  52. package/dist/api/import-brep.js +72 -0
  53. package/dist/api/import-brep.js.map +1 -0
  54. package/dist/api/import-step.d.ts +28 -0
  55. package/dist/api/import-step.d.ts.map +1 -0
  56. package/dist/api/import-step.js +57 -0
  57. package/dist/api/import-step.js.map +1 -0
  58. package/dist/api/index.d.ts +8 -12
  59. package/dist/api/index.d.ts.map +1 -1
  60. package/dist/api/index.js +22 -16
  61. package/dist/api/index.js.map +1 -1
  62. package/dist/api/internal/compat-op.d.ts.map +1 -1
  63. package/dist/api/internal/compat-op.js +2 -1
  64. package/dist/api/internal/compat-op.js.map +1 -1
  65. package/dist/api/internal/compat-projection.d.ts +3 -1
  66. package/dist/api/internal/compat-projection.d.ts.map +1 -1
  67. package/dist/api/internal/compat-projection.js +8 -5
  68. package/dist/api/internal/compat-projection.js.map +1 -1
  69. package/dist/api/internal/replica-role-table.d.ts +36 -0
  70. package/dist/api/internal/replica-role-table.d.ts.map +1 -0
  71. package/dist/api/internal/replica-role-table.js +73 -0
  72. package/dist/api/internal/replica-role-table.js.map +1 -0
  73. package/dist/api/internal/result-unwrap.d.ts +3 -1
  74. package/dist/api/internal/result-unwrap.d.ts.map +1 -1
  75. package/dist/api/internal/result-unwrap.js +2 -2
  76. package/dist/api/internal/result-unwrap.js.map +1 -1
  77. package/dist/api/knurl.d.ts.map +1 -1
  78. package/dist/api/knurl.js +1 -0
  79. package/dist/api/knurl.js.map +1 -1
  80. package/dist/api/occt-kernel-bridge.d.ts +105 -27
  81. package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
  82. package/dist/api/occt-kernel-bridge.js +255 -41
  83. package/dist/api/occt-kernel-bridge.js.map +1 -1
  84. package/dist/api/pattern.d.ts +32 -0
  85. package/dist/api/pattern.d.ts.map +1 -0
  86. package/dist/api/pattern.js +85 -0
  87. package/dist/api/pattern.js.map +1 -0
  88. package/dist/api/place.d.ts +35 -0
  89. package/dist/api/place.d.ts.map +1 -0
  90. package/dist/api/place.js +113 -0
  91. package/dist/api/place.js.map +1 -0
  92. package/dist/api/primitives.d.ts.map +1 -1
  93. package/dist/api/primitives.js +10 -3
  94. package/dist/api/primitives.js.map +1 -1
  95. package/dist/api/replicate.d.ts +145 -0
  96. package/dist/api/replicate.d.ts.map +1 -0
  97. package/dist/api/replicate.js +351 -0
  98. package/dist/api/replicate.js.map +1 -0
  99. package/dist/api/revolve.d.ts +36 -0
  100. package/dist/api/revolve.d.ts.map +1 -0
  101. package/dist/api/revolve.js +165 -0
  102. package/dist/api/revolve.js.map +1 -0
  103. package/dist/api/screw.d.ts.map +1 -1
  104. package/dist/api/screw.js +1 -0
  105. package/dist/api/screw.js.map +1 -1
  106. package/dist/api/sdf.d.ts.map +1 -1
  107. package/dist/api/sdf.js +1 -0
  108. package/dist/api/sdf.js.map +1 -1
  109. package/dist/api/sketch.d.ts.map +1 -1
  110. package/dist/api/sketch.js +1 -0
  111. package/dist/api/sketch.js.map +1 -1
  112. package/dist/api/split.d.ts +31 -0
  113. package/dist/api/split.d.ts.map +1 -0
  114. package/dist/api/split.js +96 -0
  115. package/dist/api/split.js.map +1 -0
  116. package/dist/api/surface/arg-spec.d.ts +17 -0
  117. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  118. package/dist/api/surface/arg-spec.js +86 -66
  119. package/dist/api/surface/arg-spec.js.map +1 -1
  120. package/dist/api/surface/projection-overrides.d.ts.map +1 -1
  121. package/dist/api/surface/projection-overrides.js +6 -0
  122. package/dist/api/surface/projection-overrides.js.map +1 -1
  123. package/dist/api/topo-resolve.d.ts.map +1 -1
  124. package/dist/api/topo-resolve.js +65 -3
  125. package/dist/api/topo-resolve.js.map +1 -1
  126. package/dist/api/transform.d.ts +4 -0
  127. package/dist/api/transform.d.ts.map +1 -1
  128. package/dist/api/transform.js +44 -12
  129. package/dist/api/transform.js.map +1 -1
  130. package/dist/boolean/deriveNormals.d.ts +5 -4
  131. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  132. package/dist/boolean/deriveNormals.js +24 -7
  133. package/dist/boolean/deriveNormals.js.map +1 -1
  134. package/dist/brep/brep-ops.d.ts +34 -1
  135. package/dist/brep/brep-ops.d.ts.map +1 -1
  136. package/dist/brep/brep-ops.js +62 -22
  137. package/dist/brep/brep-ops.js.map +1 -1
  138. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  139. package/dist/brep/engine/adapters/brep-mock.js +66 -0
  140. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  141. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  142. package/dist/brep/engine/adapters/brepkit.js +44 -1
  143. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  144. package/dist/brep/engine/adapters/occt.d.ts +1 -5
  145. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  146. package/dist/brep/engine/adapters/occt.js +246 -9
  147. package/dist/brep/engine/adapters/occt.js.map +1 -1
  148. package/dist/brep/engine/primitives.d.ts +96 -0
  149. package/dist/brep/engine/primitives.d.ts.map +1 -1
  150. package/dist/brep/engine/primitives.js.map +1 -1
  151. package/dist/brep/engine/types.d.ts +66 -6
  152. package/dist/brep/engine/types.d.ts.map +1 -1
  153. package/dist/brep/engine/types.js.map +1 -1
  154. package/dist/brep/export/step.d.ts.map +1 -1
  155. package/dist/brep/export/step.js +6 -1
  156. package/dist/brep/export/step.js.map +1 -1
  157. package/dist/brep/face-evolution.d.ts +78 -8
  158. package/dist/brep/face-evolution.d.ts.map +1 -1
  159. package/dist/brep/face-evolution.js +130 -17
  160. package/dist/brep/face-evolution.js.map +1 -1
  161. package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
  162. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  163. package/dist/brepkit-kernel/brepkitKernel.js +108 -12
  164. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  165. package/dist/browser.d.ts +6 -28
  166. package/dist/browser.d.ts.map +1 -1
  167. package/dist/browser.js +6 -17
  168. package/dist/browser.js.map +1 -1
  169. package/dist/cad-runtime/admit-compat-lib.d.ts +13 -0
  170. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  171. package/dist/cad-runtime/admit-compat-lib.js +27 -0
  172. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  173. package/dist/cad-runtime/backend-dispatch.d.ts +46 -3
  174. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  175. package/dist/cad-runtime/backend-dispatch.js +48 -3
  176. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  177. package/dist/cad-runtime/browser-lib-loader.d.ts +4 -4
  178. package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
  179. package/dist/cad-runtime/browser-lib-loader.js +7 -4
  180. package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
  181. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  182. package/dist/cad-runtime/direct-executor.js +14 -4
  183. package/dist/cad-runtime/direct-executor.js.map +1 -1
  184. package/dist/cad-runtime/module-registry.d.ts +3 -1
  185. package/dist/cad-runtime/module-registry.d.ts.map +1 -1
  186. package/dist/cad-runtime/module-registry.js +13 -1
  187. package/dist/cad-runtime/module-registry.js.map +1 -1
  188. package/dist/cad-runtime/runtime-concurrent-error.d.ts +38 -0
  189. package/dist/cad-runtime/runtime-concurrent-error.d.ts.map +1 -0
  190. package/dist/cad-runtime/runtime-concurrent-error.js +43 -0
  191. package/dist/cad-runtime/runtime-concurrent-error.js.map +1 -0
  192. package/dist/cad-runtime/runtime.d.ts +52 -2
  193. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  194. package/dist/cad-runtime/runtime.js +180 -9
  195. package/dist/cad-runtime/runtime.js.map +1 -1
  196. package/dist/define-op.d.ts +22 -0
  197. package/dist/define-op.d.ts.map +1 -1
  198. package/dist/define-op.js +82 -12
  199. package/dist/define-op.js.map +1 -1
  200. package/dist/env-agnostic.d.ts +38 -0
  201. package/dist/env-agnostic.d.ts.map +1 -0
  202. package/dist/env-agnostic.js +29 -0
  203. package/dist/env-agnostic.js.map +1 -0
  204. package/dist/fcstd/attachment.d.ts +8 -1
  205. package/dist/fcstd/attachment.d.ts.map +1 -1
  206. package/dist/fcstd/attachment.js +7 -1
  207. package/dist/fcstd/attachment.js.map +1 -1
  208. package/dist/fcstd/build-fai-zip.d.ts.map +1 -1
  209. package/dist/fcstd/build-fai-zip.js +12 -7
  210. package/dist/fcstd/build-fai-zip.js.map +1 -1
  211. package/dist/fcstd/codegen.d.ts +10 -1
  212. package/dist/fcstd/codegen.d.ts.map +1 -1
  213. package/dist/fcstd/codegen.js +158 -49
  214. package/dist/fcstd/codegen.js.map +1 -1
  215. package/dist/fcstd/contour.d.ts.map +1 -1
  216. package/dist/fcstd/contour.js +23 -24
  217. package/dist/fcstd/contour.js.map +1 -1
  218. package/dist/fcstd/convert.d.ts +2 -18
  219. package/dist/fcstd/convert.d.ts.map +1 -1
  220. package/dist/fcstd/convert.js +35 -53
  221. package/dist/fcstd/convert.js.map +1 -1
  222. package/dist/fcstd/expressions.d.ts +24 -0
  223. package/dist/fcstd/expressions.d.ts.map +1 -1
  224. package/dist/fcstd/expressions.js +91 -0
  225. package/dist/fcstd/expressions.js.map +1 -1
  226. package/dist/fcstd/external-geo.d.ts +12 -1
  227. package/dist/fcstd/external-geo.d.ts.map +1 -1
  228. package/dist/fcstd/external-geo.js +15 -1
  229. package/dist/fcstd/external-geo.js.map +1 -1
  230. package/dist/fcstd/feature-translate.d.ts +21 -1
  231. package/dist/fcstd/feature-translate.d.ts.map +1 -1
  232. package/dist/fcstd/feature-translate.js +124 -8
  233. package/dist/fcstd/feature-translate.js.map +1 -1
  234. package/dist/fcstd/structural-types.d.ts +83 -0
  235. package/dist/fcstd/structural-types.d.ts.map +1 -0
  236. package/dist/fcstd/structural-types.js +121 -0
  237. package/dist/fcstd/structural-types.js.map +1 -0
  238. package/dist/index.d.ts +7 -23
  239. package/dist/index.d.ts.map +1 -1
  240. package/dist/index.js +10 -16
  241. package/dist/index.js.map +1 -1
  242. package/dist/lang/determinism-scanner.d.ts +71 -0
  243. package/dist/lang/determinism-scanner.d.ts.map +1 -0
  244. package/dist/lang/determinism-scanner.js +625 -0
  245. package/dist/lang/determinism-scanner.js.map +1 -0
  246. package/dist/lang/symbol-table.d.ts +31 -0
  247. package/dist/lang/symbol-table.d.ts.map +1 -1
  248. package/dist/lang/symbol-table.generated.d.ts +13 -19
  249. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  250. package/dist/lang/symbol-table.generated.js +13 -19
  251. package/dist/lang/symbol-table.generated.js.map +1 -1
  252. package/dist/lang/symbol-table.js +50 -1
  253. package/dist/lang/symbol-table.js.map +1 -1
  254. package/dist/mesh/creased-normals.d.ts +50 -0
  255. package/dist/mesh/creased-normals.d.ts.map +1 -0
  256. package/dist/mesh/creased-normals.js +114 -0
  257. package/dist/mesh/creased-normals.js.map +1 -0
  258. package/dist/mesh/decoration-provider.d.ts +53 -0
  259. package/dist/mesh/decoration-provider.d.ts.map +1 -0
  260. package/dist/mesh/decoration-provider.js +21 -0
  261. package/dist/mesh/decoration-provider.js.map +1 -0
  262. package/dist/mesh/engrave.d.ts +4 -0
  263. package/dist/mesh/engrave.d.ts.map +1 -1
  264. package/dist/mesh/engrave.js +22 -31
  265. package/dist/mesh/engrave.js.map +1 -1
  266. package/dist/mesh/index.d.ts +5 -14
  267. package/dist/mesh/index.d.ts.map +1 -1
  268. package/dist/mesh/index.js +7 -18
  269. package/dist/mesh/index.js.map +1 -1
  270. package/dist/mesh/io.d.ts +2 -1
  271. package/dist/mesh/io.d.ts.map +1 -1
  272. package/dist/mesh/io.js +5 -7
  273. package/dist/mesh/io.js.map +1 -1
  274. package/dist/mesh/primitives.d.ts +5 -18
  275. package/dist/mesh/primitives.d.ts.map +1 -1
  276. package/dist/mesh/primitives.js +4 -48
  277. package/dist/mesh/primitives.js.map +1 -1
  278. package/dist/mesh/stl-loader.d.ts +23 -0
  279. package/dist/mesh/stl-loader.d.ts.map +1 -0
  280. package/dist/mesh/stl-loader.js +139 -0
  281. package/dist/mesh/stl-loader.js.map +1 -0
  282. package/dist/module-resolver/parse-imports.d.ts +37 -0
  283. package/dist/module-resolver/parse-imports.d.ts.map +1 -0
  284. package/dist/module-resolver/parse-imports.js +39 -0
  285. package/dist/module-resolver/parse-imports.js.map +1 -0
  286. package/dist/module-resolver/resolver.d.ts +1 -1
  287. package/dist/module-resolver/resolver.js +2 -2
  288. package/dist/module-resolver/resolver.js.map +1 -1
  289. package/dist/node-host/cli.d.ts.map +1 -1
  290. package/dist/node-host/cli.js +37 -4
  291. package/dist/node-host/cli.js.map +1 -1
  292. package/dist/primitives/text/cjk-font.d.ts +42 -0
  293. package/dist/primitives/text/cjk-font.d.ts.map +1 -0
  294. package/dist/primitives/text/cjk-font.js +86 -0
  295. package/dist/primitives/text/cjk-font.js.map +1 -0
  296. package/dist/runtime-state.d.ts +18 -6
  297. package/dist/runtime-state.d.ts.map +1 -1
  298. package/dist/runtime-state.js +9 -1
  299. package/dist/runtime-state.js.map +1 -1
  300. package/dist/sdk.d.ts +2 -2
  301. package/dist/sdk.js +2 -2
  302. package/dist/sdk.js.map +1 -1
  303. package/dist/shape.d.ts +15 -0
  304. package/dist/shape.d.ts.map +1 -1
  305. package/dist/shape.js +26 -3
  306. package/dist/shape.js.map +1 -1
  307. package/dist/symbol-table.d.ts +15 -0
  308. package/dist/symbol-table.d.ts.map +1 -0
  309. package/dist/symbol-table.js +14 -0
  310. package/dist/symbol-table.js.map +1 -0
  311. package/dist/topology/naming/build-naming.d.ts +14 -30
  312. package/dist/topology/naming/build-naming.d.ts.map +1 -1
  313. package/dist/topology/naming/build-naming.js +21 -54
  314. package/dist/topology/naming/build-naming.js.map +1 -1
  315. package/dist/topology/naming/capture-topo-ref.d.ts.map +1 -1
  316. package/dist/topology/naming/capture-topo-ref.js +5 -0
  317. package/dist/topology/naming/capture-topo-ref.js.map +1 -1
  318. package/dist/topology/naming/index.d.ts +3 -0
  319. package/dist/topology/naming/index.d.ts.map +1 -1
  320. package/dist/topology/naming/index.js +3 -0
  321. package/dist/topology/naming/index.js.map +1 -1
  322. package/dist/topology/naming/lineage-resolve.d.ts +80 -0
  323. package/dist/topology/naming/lineage-resolve.d.ts.map +1 -0
  324. package/dist/topology/naming/lineage-resolve.js +120 -0
  325. package/dist/topology/naming/lineage-resolve.js.map +1 -0
  326. package/dist/topology/naming/lineage.d.ts +349 -0
  327. package/dist/topology/naming/lineage.d.ts.map +1 -0
  328. package/dist/topology/naming/lineage.js +398 -0
  329. package/dist/topology/naming/lineage.js.map +1 -0
  330. package/dist/topology/naming/migrate.d.ts +41 -0
  331. package/dist/topology/naming/migrate.d.ts.map +1 -0
  332. package/dist/topology/naming/migrate.js +88 -0
  333. package/dist/topology/naming/migrate.js.map +1 -0
  334. package/dist/topology/naming/role-name.d.ts +176 -0
  335. package/dist/topology/naming/role-name.d.ts.map +1 -0
  336. package/dist/topology/naming/role-name.js +344 -0
  337. package/dist/topology/naming/role-name.js.map +1 -0
  338. package/dist/topology/naming/roles.d.ts +20 -22
  339. package/dist/topology/naming/roles.d.ts.map +1 -1
  340. package/dist/topology/naming/roles.js +51 -49
  341. package/dist/topology/naming/roles.js.map +1 -1
  342. package/dist/topology/naming/types.d.ts +65 -18
  343. package/dist/topology/naming/types.d.ts.map +1 -1
  344. package/dist/topology/naming/types.js.map +1 -1
  345. package/dist/vendored/brepjs/kernel/index.d.ts +5 -0
  346. package/dist/vendored/brepjs/kernel/index.d.ts.map +1 -1
  347. package/dist/vendored/brepjs/kernel/index.js +11 -0
  348. package/dist/vendored/brepjs/kernel/index.js.map +1 -1
  349. package/dist/weapp.d.ts +4 -4
  350. package/dist/weapp.d.ts.map +1 -1
  351. package/dist/weapp.js +7 -4
  352. package/dist/weapp.js.map +1 -1
  353. package/package.json +16 -14
  354. package/dist/api/compat/index.d.ts +0 -173
  355. package/dist/api/compat/index.d.ts.map +0 -1
  356. package/dist/api/compat/index.js +0 -222
  357. package/dist/api/compat/index.js.map +0 -1
  358. package/dist/api/compound.d.ts +0 -108
  359. package/dist/api/compound.d.ts.map +0 -1
  360. package/dist/api/compound.js +0 -162
  361. package/dist/api/compound.js.map +0 -1
  362. package/dist/api/copy.d.ts +0 -39
  363. package/dist/api/copy.d.ts.map +0 -1
  364. package/dist/api/copy.js +0 -81
  365. package/dist/api/copy.js.map +0 -1
  366. package/dist/api/fai_drill.d.ts +0 -46
  367. package/dist/api/fai_drill.d.ts.map +0 -1
  368. package/dist/api/fai_drill.js +0 -230
  369. package/dist/api/fai_drill.js.map +0 -1
  370. package/dist/api/fai_extrude.d.ts +0 -36
  371. package/dist/api/fai_extrude.d.ts.map +0 -1
  372. package/dist/api/fai_extrude.js +0 -78
  373. package/dist/api/fai_extrude.js.map +0 -1
  374. package/dist/api/fai_split.d.ts +0 -46
  375. package/dist/api/fai_split.d.ts.map +0 -1
  376. package/dist/api/fai_split.js +0 -253
  377. package/dist/api/fai_split.js.map +0 -1
  378. package/dist/api/load.d.ts +0 -39
  379. package/dist/api/load.d.ts.map +0 -1
  380. package/dist/api/load.js +0 -82
  381. package/dist/api/load.js.map +0 -1
  382. package/dist/api/svgExtrude.d.ts +0 -32
  383. package/dist/api/svgExtrude.d.ts.map +0 -1
  384. package/dist/api/svgExtrude.js +0 -73
  385. package/dist/api/svgExtrude.js.map +0 -1
  386. package/dist/api/text.d.ts +0 -34
  387. package/dist/api/text.d.ts.map +0 -1
  388. package/dist/api/text.js +0 -100
  389. package/dist/api/text.js.map +0 -1
  390. package/dist/brep/text/fontTestHelper.d.ts +0 -30
  391. package/dist/brep/text/fontTestHelper.d.ts.map +0 -1
  392. package/dist/brep/text/fontTestHelper.js +0 -57
  393. package/dist/brep/text/fontTestHelper.js.map +0 -1
  394. package/dist/cad-runtime/module-executor.d.ts +0 -271
  395. package/dist/cad-runtime/module-executor.d.ts.map +0 -1
  396. package/dist/cad-runtime/module-executor.js +0 -630
  397. package/dist/cad-runtime/module-executor.js.map +0 -1
  398. package/dist/cad-runtime/terminal-dag.d.ts +0 -65
  399. package/dist/cad-runtime/terminal-dag.d.ts.map +0 -1
  400. package/dist/cad-runtime/terminal-dag.js +0 -167
  401. package/dist/cad-runtime/terminal-dag.js.map +0 -1
  402. package/dist/faqts/browser.d.ts +0 -16
  403. package/dist/faqts/browser.d.ts.map +0 -1
  404. package/dist/faqts/browser.js +0 -13
  405. package/dist/faqts/browser.js.map +0 -1
  406. package/dist/faqts/exec-blob.d.ts +0 -14
  407. package/dist/faqts/exec-blob.d.ts.map +0 -1
  408. package/dist/faqts/exec-blob.js +0 -22
  409. package/dist/faqts/exec-blob.js.map +0 -1
  410. package/dist/faqts/exec-node.d.ts +0 -15
  411. package/dist/faqts/exec-node.d.ts.map +0 -1
  412. package/dist/faqts/exec-node.js +0 -29
  413. package/dist/faqts/exec-node.js.map +0 -1
  414. package/dist/faqts/imports.d.ts +0 -74
  415. package/dist/faqts/imports.d.ts.map +0 -1
  416. package/dist/faqts/imports.js +0 -95
  417. package/dist/faqts/imports.js.map +0 -1
  418. package/dist/faqts/index.d.ts +0 -22
  419. package/dist/faqts/index.d.ts.map +0 -1
  420. package/dist/faqts/index.js +0 -21
  421. package/dist/faqts/index.js.map +0 -1
  422. package/dist/faqts/node.d.ts +0 -23
  423. package/dist/faqts/node.d.ts.map +0 -1
  424. package/dist/faqts/node.js +0 -23
  425. package/dist/faqts/node.js.map +0 -1
  426. package/dist/faqts/run.d.ts +0 -62
  427. package/dist/faqts/run.d.ts.map +0 -1
  428. package/dist/faqts/run.js +0 -62
  429. package/dist/faqts/run.js.map +0 -1
  430. package/dist/faqts/transform.d.ts +0 -43
  431. package/dist/faqts/transform.d.ts.map +0 -1
  432. package/dist/faqts/transform.js +0 -35
  433. package/dist/faqts/transform.js.map +0 -1
  434. package/dist/lang/compile.d.ts +0 -50
  435. package/dist/lang/compile.d.ts.map +0 -1
  436. package/dist/lang/compile.js +0 -368
  437. package/dist/lang/compile.js.map +0 -1
  438. package/dist/lang/keep.d.ts +0 -109
  439. package/dist/lang/keep.d.ts.map +0 -1
  440. package/dist/lang/keep.js +0 -226
  441. package/dist/lang/keep.js.map +0 -1
  442. package/dist/lang/parser.d.ts +0 -91
  443. package/dist/lang/parser.d.ts.map +0 -1
  444. package/dist/lang/parser.js +0 -1594
  445. package/dist/lang/parser.js.map +0 -1
  446. package/dist/mesh/drill-hole/DrillHoleCore.d.ts +0 -90
  447. package/dist/mesh/drill-hole/DrillHoleCore.d.ts.map +0 -1
  448. package/dist/mesh/drill-hole/DrillHoleCore.js +0 -287
  449. package/dist/mesh/drill-hole/DrillHoleCore.js.map +0 -1
  450. package/dist/mesh/drill-hole/drill-types.d.ts +0 -34
  451. package/dist/mesh/drill-hole/drill-types.d.ts.map +0 -1
  452. package/dist/mesh/drill-hole/drill-types.js +0 -7
  453. package/dist/mesh/drill-hole/drill-types.js.map +0 -1
  454. package/dist/mesh/fai_drill.d.ts +0 -21
  455. package/dist/mesh/fai_drill.d.ts.map +0 -1
  456. package/dist/mesh/fai_drill.js +0 -92
  457. package/dist/mesh/fai_drill.js.map +0 -1
  458. package/dist/mesh/fai_extrude.d.ts +0 -24
  459. package/dist/mesh/fai_extrude.d.ts.map +0 -1
  460. package/dist/mesh/fai_extrude.js +0 -42
  461. package/dist/mesh/fai_extrude.js.map +0 -1
  462. package/dist/mesh/fai_split.d.ts +0 -164
  463. package/dist/mesh/fai_split.d.ts.map +0 -1
  464. package/dist/mesh/fai_split.js +0 -269
  465. package/dist/mesh/fai_split.js.map +0 -1
  466. package/dist/primitives/svg-extrude.d.ts +0 -43
  467. package/dist/primitives/svg-extrude.d.ts.map +0 -1
  468. package/dist/primitives/svg-extrude.js +0 -78
  469. package/dist/primitives/svg-extrude.js.map +0 -1
  470. package/dist/primitives/text/cjk.d.ts +0 -61
  471. package/dist/primitives/text/cjk.d.ts.map +0 -1
  472. package/dist/primitives/text/cjk.js +0 -215
  473. package/dist/primitives/text/cjk.js.map +0 -1
  474. package/dist/primitives/text-geometry.d.ts +0 -47
  475. package/dist/primitives/text-geometry.d.ts.map +0 -1
  476. package/dist/primitives/text-geometry.js +0 -127
  477. package/dist/primitives/text-geometry.js.map +0 -1
  478. package/dist/test-helpers.d.ts +0 -31
  479. package/dist/test-helpers.d.ts.map +0 -1
  480. package/dist/test-helpers.js +0 -55
  481. package/dist/test-helpers.js.map +0 -1
  482. package/dist/vendored/brepjs/core/kernelReentrancy.d.ts +0 -41
  483. package/dist/vendored/brepjs/core/kernelReentrancy.d.ts.map +0 -1
  484. package/dist/vendored/brepjs/core/kernelReentrancy.js +0 -68
  485. package/dist/vendored/brepjs/core/kernelReentrancy.js.map +0 -1
@@ -41,6 +41,7 @@ export const ARG_SPEC = [
41
41
  name: 'torus',
42
42
  source: 'topology/primitiveFns.js#torus',
43
43
  kind: 'brep-op',
44
+ capabilities: ["dispose", "makeTorus"],
44
45
  args: '(majorRadius: number, minorRadius: number, options?: TorusOptions)',
45
46
  // 构造类:无几何输入(纯数值参数),brepjs 返回裸 ValidSolid(非 Result)。
46
47
  geometryArgs: [],
@@ -48,11 +49,13 @@ export const ARG_SPEC = [
48
49
  params: ['majorRadius', 'minorRadius', 'options'],
49
50
  formClass: 'A',
50
51
  scriptFace: true,
52
+ naming: { kind: 'unmodeled', reason: 'construct vocabulary pending Phase 3' },
51
53
  },
52
54
  {
53
55
  name: 'fuse',
54
56
  source: 'topology/booleanFns.js#fuse',
55
57
  kind: 'brep-op',
58
+ capabilities: ["dispose", "fuse", "fuseWithHistory", "isNull"],
56
59
  args: '(a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>',
57
60
  // 两个输入都是 faijs Shape → 借入 brepjs handle;第三参 options 透传。
58
61
  geometryArgs: [0, 1],
@@ -60,6 +63,7 @@ export const ARG_SPEC = [
60
63
  params: ['a', 'b', 'options'],
61
64
  formClass: 'A',
62
65
  scriptFace: true,
66
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
63
67
  },
64
68
  {
65
69
  name: 'getBounds',
@@ -1420,110 +1424,126 @@ export const ARG_SPEC = [
1420
1424
  },
1421
1425
  {
1422
1426
  // ---- brep-op:单/多单形状入参 → 单产物收养 ----
1423
- name: 'extrude', source: 'operations/api.js#extrude', kind: 'brep-op', module: 'operations',
1427
+ name: 'extrude', source: 'operations/api.js#extrude', kind: 'brep-op', capabilities: ["dispose", "downcast", "extrude", "isNull"], module: 'operations',
1424
1428
  geometryArgs: [0],
1425
1429
  reason: 'faijs 侧 cad.extrude 由手写平台 op 覆盖(api/extrude.ts:对象形态 + upTo 拉伸到面/到支持体端面)。本投影只作为「长度形态」的引擎被手写 op 委托调用(vendored 是唯一拉伸引擎,既有 cad.extrude(face,[x,y,z]) 语义零漂移),生成模块符号不直接进 cad 命名空间 by design(同 fillet 口径)。',
1426
1430
  args: 'extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape',
1427
1431
  params: ['face', 'height'], formClass: 'A',
1432
+ naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }] } },
1428
1433
  },
1429
1434
  {
1430
- name: 'revolve', source: 'operations/api.js#revolve', kind: 'brep-op', module: 'operations',
1435
+ name: 'revolve', source: 'operations/api.js#revolve', kind: 'brep-op', capabilities: ["dispose", "isNull", "revolveVec", "shapeType"], module: 'operations',
1431
1436
  geometryArgs: [0], reason: 'shapeable 面 → Result(Shape3D),brep-op',
1432
1437
  args: 'revolve(face: Shape, options?: RevolveOptions): Shape',
1433
1438
  params: ['face', 'options'], formClass: 'A',
1439
+ naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }, { kind: 'wall', index: 0 }] } },
1434
1440
  },
1435
1441
  {
1436
- name: 'sweep', source: 'operations/extrudeFns.js#sweep', kind: 'brep-op', module: 'operations',
1442
+ name: 'sweep', source: 'operations/extrudeFns.js#sweep', kind: 'brep-op', capabilities: ["dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1437
1443
  geometryArgs: [0, 1], reason: 'wire + spine → Result(Shape3D|tuple),默认单产物,brep-op',
1438
1444
  args: 'sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape',
1439
1445
  params: ['wire', 'spine', 'config', 'shellMode'], formClass: 'A',
1446
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1440
1447
  },
1441
1448
  {
1442
- name: 'complexExtrude', source: 'operations/extrudeFns.js#complexExtrude', kind: 'brep-op', module: 'operations',
1449
+ name: 'complexExtrude', source: 'operations/extrudeFns.js#complexExtrude', kind: 'brep-op', capabilities: ["buildExtrusionLaw", "dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1443
1450
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1444
1451
  args: 'complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape',
1445
1452
  params: ['wire', 'center', 'normal', 'profile'], formClass: 'A',
1453
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1446
1454
  },
1447
1455
  {
1448
- name: 'twistExtrude', source: 'operations/extrudeFns.js#twistExtrude', kind: 'brep-op', module: 'operations',
1456
+ name: 'twistExtrude', source: 'operations/extrudeFns.js#twistExtrude', kind: 'brep-op', capabilities: ["buildExtrusionLaw", "dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1449
1457
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1450
1458
  args: 'twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape',
1451
1459
  params: ['wire', 'angleDegrees', 'center', 'normal'], formClass: 'A',
1460
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1452
1461
  },
1453
1462
  {
1454
- name: 'linearPattern', source: 'operations/patternFns.js#linearPattern', kind: 'brep-op', module: 'operations',
1463
+ name: 'linearPattern', source: 'operations/patternFns.js#linearPattern', kind: 'brep-op', capabilities: ["dispose", "fuseAll", "hashCode", "isNull", "iterShapes", "linearPattern", "section", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"], module: 'operations',
1455
1464
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1456
1465
  args: 'linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape',
1457
1466
  params: ['shape', 'direction', 'count', 'spacing'], formClass: 'A',
1458
1467
  scriptFace: true,
1468
+ naming: { kind: 'replicate', k: 0 },
1459
1469
  },
1460
1470
  {
1461
- name: 'circularPattern', source: 'operations/patternFns.js#circularPattern', kind: 'brep-op', module: 'operations',
1471
+ name: 'circularPattern', source: 'operations/patternFns.js#circularPattern', kind: 'brep-op', capabilities: ["circularPattern", "dispose", "fuseAll", "hashCode", "isNull", "iterShapes", "section", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"], module: 'operations',
1462
1472
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1463
1473
  args: 'circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape',
1464
1474
  params: ['shape', 'axis', 'count', 'fullAngle', 'center'], formClass: 'A',
1465
1475
  scriptFace: true,
1476
+ naming: { kind: 'replicate', k: 0 },
1466
1477
  },
1467
1478
  {
1468
- name: 'gridPattern', source: 'operations/patternFns.js#gridPattern', kind: 'brep-op', module: 'operations',
1479
+ name: 'gridPattern', source: 'operations/patternFns.js#gridPattern', kind: 'brep-op', capabilities: ["dispose", "fuseAll", "gridPattern", "hashCode", "isNull", "iterShapes", "linearPattern", "section", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"], module: 'operations',
1469
1480
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1470
1481
  args: 'gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape',
1471
1482
  params: ['shape', 'directionX', 'directionY', 'countX', 'countY', 'spacingX', 'spacingY'], formClass: 'A',
1472
1483
  scriptFace: true,
1484
+ naming: { kind: 'replicate', k: 0 },
1473
1485
  },
1474
1486
  {
1475
- name: 'roof', source: 'operations/roofFns.js#roof', kind: 'brep-op', module: 'operations',
1487
+ name: 'roof', source: 'operations/roofFns.js#roof', kind: 'brep-op', capabilities: ["buildTriFace", "dispose", "fixShape", "isValid", "sew", "sewAndSolidify"], module: 'operations',
1476
1488
  geometryArgs: [0], reason: 'wire → Result(ValidSolid)→solid,brep-op',
1477
1489
  args: 'roof(wire: Shape, options?: RoofOptions): Shape',
1478
1490
  params: ['wire', 'options'], formClass: 'A',
1491
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1479
1492
  },
1480
1493
  {
1481
- name: 'drill', source: 'operations/compoundOpsFns.js#drill', kind: 'brep-op', module: 'operations',
1494
+ name: 'drill', source: 'operations/compoundOpsFns.js#drill', kind: 'brep-op', capabilities: ["boundingBox", "cut", "cutWithHistory", "dispose", "isNull", "makeCylinder"], module: 'operations',
1482
1495
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1483
1496
  args: 'drill(shape: Shape, options: DrillOptions): Shape',
1484
1497
  params: ['shape', 'options'], formClass: 'A',
1485
1498
  scriptFace: true,
1499
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1486
1500
  },
1487
1501
  {
1488
- name: 'pocket', source: 'operations/compoundOpsFns.js#pocket', kind: 'brep-op', module: 'operations',
1502
+ name: 'pocket', source: 'operations/compoundOpsFns.js#pocket', kind: 'brep-op', capabilities: ["addHolesInFace", "cut", "cutWithHistory", "dispose", "downcast", "extrude", "isNull", "makeFace", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "translateWithHistory", "uvBounds"], module: 'operations',
1489
1503
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1490
1504
  args: 'pocket(shape: Shape, options: PocketOptions): Shape',
1491
1505
  params: ['shape', 'options'], formClass: 'A',
1492
1506
  scriptFace: true,
1507
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1493
1508
  },
1494
1509
  {
1495
- name: 'boss', source: 'operations/compoundOpsFns.js#boss', kind: 'brep-op', module: 'operations',
1510
+ name: 'boss', source: 'operations/compoundOpsFns.js#boss', kind: 'brep-op', capabilities: ["addHolesInFace", "dispose", "downcast", "extrude", "fuse", "fuseWithHistory", "isNull", "makeFace", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "translateWithHistory", "uvBounds"], module: 'operations',
1496
1511
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1497
1512
  args: 'boss(shape: Shape, options: BossOptions): Shape',
1498
1513
  params: ['shape', 'options'], formClass: 'A',
1499
1514
  scriptFace: true,
1515
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1500
1516
  },
1501
1517
  {
1502
- name: 'mirrorJoin', source: 'operations/compoundOpsFns.js#mirrorJoin', kind: 'brep-op', module: 'operations',
1518
+ name: 'mirrorJoin', source: 'operations/compoundOpsFns.js#mirrorJoin', kind: 'brep-op', capabilities: ["dispose", "fuse", "fuseWithHistory", "isNull", "mirrorWithHistory"], module: 'operations',
1503
1519
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1504
1520
  args: 'mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape',
1505
1521
  params: ['shape', 'options'], formClass: 'A',
1506
1522
  scriptFace: true,
1523
+ naming: { kind: 'replicate', k: 2 },
1507
1524
  },
1508
1525
  {
1509
- name: 'rectangularPattern', source: 'operations/compoundOpsFns.js#rectangularPattern', kind: 'brep-op', module: 'operations',
1526
+ name: 'rectangularPattern', source: 'operations/compoundOpsFns.js#rectangularPattern', kind: 'brep-op', capabilities: ["dispose", "fuse", "fuseAll", "fuseWithHistory", "hashCode", "isNull", "iterShapes", "section", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "translateWithHistory", "uvBounds"], module: 'operations',
1510
1527
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1511
1528
  args: 'rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape',
1512
1529
  params: ['shape', 'options'], formClass: 'A',
1513
1530
  scriptFace: true,
1531
+ naming: { kind: 'replicate', k: 0 },
1514
1532
  },
1515
1533
  {
1516
- name: 'thread', source: 'operations/threadFns.js#thread', kind: 'brep-op', module: 'operations',
1534
+ name: 'thread', source: 'operations/threadFns.js#thread', kind: 'brep-op', capabilities: ["dispose", "loftAdvanced", "makeLineEdge", "makeVertex", "makeWireFromMixed", "shapeType"], module: 'operations',
1517
1535
  geometryArgs: [], reason: '仅参数构造 → Result(Shape3D),单产物,brep-op',
1518
1536
  args: 'thread(options: ThreadOptions): Shape',
1519
1537
  params: ['options'], formClass: 'B1',
1538
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1520
1539
  },
1521
1540
  {
1522
- name: 'convexHull', source: 'operations/convexHullFns.js#convexHull', kind: 'brep-op', module: 'operations',
1541
+ name: 'convexHull', source: 'operations/convexHullFns.js#convexHull', kind: 'brep-op', capabilities: ["dispose", "hullFromPoints", "shapeType"], module: 'operations',
1523
1542
  geometryArgs: [], reason: '点集构造 → Result(Solid),单产物,brep-op',
1524
1543
  args: 'convexHull(points: Vec3[]): Shape',
1525
1544
  params: ['points'], formClass: 'A',
1526
1545
  scriptFace: true,
1546
+ naming: { kind: 'unmodeled', reason: 'construct vocabulary pending Phase 3' },
1527
1547
  },
1528
1548
  {
1529
1549
  // ---- skip:状态 DSL/多产物/数组入参/host IO/kernel 入参 ----
@@ -2209,12 +2229,13 @@ export const ARG_SPEC = [
2209
2229
  },
2210
2230
  // 1 × brep-op(构造类:纯数值参数 → Shape3D,无几何输入)
2211
2231
  {
2212
- name: 'makeBaseBox', source: 'sketching/shortcuts.js#makeBaseBox', kind: 'brep-op', module: 'sketching',
2232
+ name: 'makeBaseBox', source: 'sketching/shortcuts.js#makeBaseBox', kind: 'brep-op', capabilities: ["addHolesInFace", "buildEdgeOnSurface", "buildExtrusionLaw", "copyShape", "curveParameters", "curvePointAtParam", "curveTangent", "dispose", "downcast", "extrude", "isNull", "loftAdvanced", "makeFace", "makeFaceOnSurface", "makeVertex", "makeWireFromMixed", "mirror", "revolveVec", "shapeType", "simplePipe", "surfaceType", "sweepPipeShell"], module: 'sketching',
2213
2233
  args: '(xLength: number, yLength: number, zLength: number) -> Shape3D',
2214
2234
  geometryArgs: [],
2215
2235
  returnsResult: false,
2216
2236
  params: ['xLength', 'yLength', 'zLength'], formClass: 'A',
2217
2237
  scriptFace: true,
2238
+ naming: { kind: 'unmodeled', reason: 'construct vocabulary pending Phase 3' },
2218
2239
  },
2219
2240
  // 47 × skip(状态化草图/绘图 DSL 族)
2220
2241
  {
@@ -2472,40 +2493,32 @@ export const ARG_SPEC = [
2472
2493
  // 投影到 brepjs 契约,但**不投 scriptFace**(faijs 侧由手写 dual-op 覆盖,生成模块
2473
2494
  // 符号为孤儿 by design)。
2474
2495
  {
2475
- name: 'box', source: 'topology/primitiveFns.js#box', kind: 'brep-op',
2476
- geometryArgs: [], returnsResult: false,
2496
+ name: 'box', source: 'topology/primitiveFns.js#box', kind: 'skip',
2477
2497
  args: 'box(width: number, depth: number, height: number, options?: BoxOptions): Shape',
2478
- reason: 'faijs 侧由手写 dual-op 覆盖(§4.1 A 决策,mesh+brep 双实现);本条目仅投影到 vendored 盒契约,生成模块符号为孤儿 by design,scriptFace 不投(避免与手写 box 撞名)。',
2479
- params: ['width', 'depth', 'height', 'options'], formClass: 'A',
2480
- scriptFace: false,
2498
+ reason: 'overridden by handwritten api/primitives.ts (box dual-op, mesh+brep)',
2481
2499
  },
2482
2500
  {
2483
2501
  name: 'sphere', source: 'topology/primitiveFns.js#sphere', kind: 'skip',
2484
2502
  reason: 'faijs 同名 sphere(§5.1 双形态同 box),生成层不重复投影',
2485
2503
  },
2486
2504
  {
2487
- name: 'cylinder', source: 'topology/primitiveFns.js#cylinder', kind: 'brep-op',
2488
- geometryArgs: [], returnsResult: false,
2505
+ name: 'cylinder', source: 'topology/primitiveFns.js#cylinder', kind: 'skip',
2489
2506
  args: 'cylinder(radius: number, height: number, options?: CylinderOptions): Shape',
2490
- reason: 'faijs 侧由手写 dual-op 覆盖(§4.3 A 决策,mesh+brep 双实现,at/centered BASE 语义);本条目仅投影到 vendored 圆柱契约,生成模块符号为孤儿 by design,scriptFace 不投(避免与手写 cylinder 撞名)。',
2491
- params: ['radius', 'height', 'options'], formClass: 'A',
2492
- scriptFace: false,
2507
+ reason: 'overridden by handwritten api/primitives.ts (cylinder dual-op, mesh+brep)',
2493
2508
  },
2494
2509
  {
2495
- name: 'cone', source: 'topology/primitiveFns.js#cone', kind: 'brep-op',
2496
- geometryArgs: [], returnsResult: false,
2510
+ name: 'cone', source: 'topology/primitiveFns.js#cone', kind: 'skip',
2497
2511
  args: 'cone(radiusBottom: number, radiusTop: number, height: number, options?: ConeOptions): Shape',
2498
- reason: 'faijs 侧由手写 dual-op 覆盖(§4.1 P 决策,mesh+brep 双实现,at/centered BASE 语义);本条目仅投影到 vendored 圆锥契约,生成模块符号为孤儿 by design,scriptFace 不投(避免与手写 cone 撞名)。',
2499
- params: ['radiusBottom', 'radiusTop', 'height', 'options'], formClass: 'A',
2500
- scriptFace: false,
2512
+ reason: 'overridden by handwritten api/primitives.ts (cone dual-op, mesh+brep)',
2501
2513
  },
2502
2514
  {
2503
- name: 'ellipsoid', source: 'topology/primitiveFns.js#ellipsoid', kind: 'brep-op',
2515
+ name: 'ellipsoid', source: 'topology/primitiveFns.js#ellipsoid', kind: 'brep-op', capabilities: ["dispose", "makeEllipsoid", "translateWithHistory"],
2504
2516
  geometryArgs: [], returnsResult: false,
2505
2517
  args: 'ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape',
2506
2518
  reason: '纯数值整件构造(rx/ry/rz → ValidSolid),brep-op',
2507
2519
  params: ['rx', 'ry', 'rz', 'options'], formClass: 'A',
2508
2520
  scriptFace: true,
2521
+ naming: { kind: 'unmodeled', reason: 'construct vocabulary pending Phase 3' },
2509
2522
  },
2510
2523
  {
2511
2524
  name: 'addHoles', source: 'topology/primitiveFns.js#addHoles', kind: 'skip',
@@ -2598,7 +2611,7 @@ export const ARG_SPEC = [
2598
2611
  reason: 'faijs 同名 translate(§5.1 双形态:对象形态手写面覆盖 + v:Vec3 位置形态并入),生成层不重复投影',
2599
2612
  },
2600
2613
  {
2601
- name: 'rotate', source: 'topology/api.js#rotate', kind: 'brep-op',
2614
+ name: 'rotate', source: 'topology/api.js#rotate', kind: 'brep-op', capabilities: ["dispose", "rotateWithHistory"],
2602
2615
  geometryArgs: [0], returnsResult: false,
2603
2616
  args: 'rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape',
2604
2617
  reason: 'faijs rotate 已更名 rotate_euler(faijs 面只导出 rotate_euler),上游轴角 rotate 空出 → brep-op 进脚本面'
@@ -2606,66 +2619,69 @@ export const ARG_SPEC = [
2606
2619
  + '3d_editor UI 不得暴露;将来暴露前必须先补 mesh 实现。',
2607
2620
  params: ['shape', 'angle', 'options'], formClass: 'A',
2608
2621
  scriptFace: true,
2622
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2609
2623
  },
2610
2624
  {
2611
- name: 'scale', source: 'topology/api.js#scale', kind: 'brep-op',
2612
- geometryArgs: [0], returnsResult: false,
2625
+ name: 'scale', source: 'topology/api.js#scale', kind: 'skip',
2613
2626
  args: 'scale(shape: Shape, factor: number, options?: { center?: Vec3 }): Shape',
2614
- reason: 'faijs 侧由手写 dual-op 覆盖(§4.6 裁决 4/2:scale = vendored 等比 + center 不动点,mesh+brep 双实现);本条目仅投影到 vendored scale 契约,生成模块符号为孤儿 by design,scriptFace 不投(避免与手写 scale 撞名)。',
2615
- params: ['shape', 'factor', 'options'], formClass: 'A',
2616
- scriptFace: false,
2627
+ reason: 'overridden by handwritten api/transform.ts (scale dual-op, mesh+brep)',
2617
2628
  },
2618
2629
  {
2619
- name: 'mirror', source: 'topology/api.js#mirror', kind: 'brep-op',
2630
+ name: 'mirror', source: 'topology/api.js#mirror', kind: 'brep-op', capabilities: ["dispose", "mirrorWithHistory"],
2620
2631
  geometryArgs: [0], returnsResult: false,
2621
2632
  args: 'mirror(shape: Shape, options?: MirrorOptions): Shape',
2622
2633
  reason: 'faijs 无同名 mirror,整件反射 → brep-op',
2623
2634
  params: ['shape', 'options'], formClass: 'A',
2624
2635
  scriptFace: true,
2636
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2625
2637
  },
2626
2638
  {
2627
- name: 'clone', source: 'topology/api.js#clone', kind: 'brep-op',
2639
+ name: 'clone', source: 'topology/api.js#clone', kind: 'brep-op', capabilities: ["copyShape", "dispose"],
2628
2640
  geometryArgs: [0], returnsResult: true,
2629
2641
  args: 'clone(shape: Shape): Shape',
2630
2642
  reason: 'faijs 用 copy(不同名),整件克隆(Result<T>)→ brep-op',
2631
2643
  params: ['shape'], formClass: 'A',
2632
2644
  scriptFace: true,
2645
+ naming: { kind: 'identity' },
2633
2646
  },
2634
2647
  {
2635
- name: 'applyMatrix', source: 'topology/api.js#applyMatrix', kind: 'brep-op',
2648
+ name: 'applyMatrix', source: 'topology/api.js#applyMatrix', kind: 'brep-op', capabilities: ["dispose", "generalTransformNonOrthogonal", "generalTransformWithHistory", "hashCode", "iterShapes", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"],
2636
2649
  geometryArgs: [0], returnsResult: true,
2637
2650
  args: 'applyMatrix(shape: Shape, matrix: unknown): Shape',
2638
2651
  reason: 'faijs 用 applyTransform(不同名),整件矩阵变换 → brep-op',
2639
2652
  params: ['shape', 'matrix'], formClass: 'A',
2640
2653
  scriptFace: true,
2654
+ naming: { kind: 'identity' },
2641
2655
  },
2642
2656
  {
2643
- name: 'transformCopy', source: 'topology/api.js#transformCopy', kind: 'brep-op',
2657
+ name: 'transformCopy', source: 'topology/api.js#transformCopy', kind: 'skip',
2644
2658
  geometryArgs: [0], returnsResult: false,
2645
2659
  args: 'transformCopy(shape: Shape, composed: ComposedTransform): Shape',
2646
- reason: 'faijs 无同名,克隆+复合变换 → brep-op',
2660
+ reason: 'scriptFace: ComposedTransform holds a kernel WASM handle — not constructible in .fai.js (no literal/params path), so the script-face op is dead. Covered by clone+translate/rotate chains and locate. TS library surface keeps the plain re-export (non-op).',
2647
2661
  params: ['shape', 'composed'], formClass: 'A',
2648
- scriptFace: true,
2662
+ naming: { kind: 'identity' },
2649
2663
  },
2650
2664
  {
2651
- name: 'locate', source: 'topology/api.js#locate', kind: 'brep-op',
2665
+ name: 'locate', source: 'topology/api.js#locate', kind: 'brep-op', capabilities: ["composeTransform", "dispose", "hashCode", "locate"],
2652
2666
  geometryArgs: [0], returnsResult: false,
2653
2667
  args: 'locate(shape: Shape, placement: unknown): Shape',
2654
2668
  reason: 'faijs 无同名,整件定位变换 → brep-op',
2655
2669
  params: ['shape', 'placement'], formClass: 'A',
2656
2670
  scriptFace: true,
2671
+ naming: { kind: 'identity' },
2657
2672
  },
2658
2673
  {
2659
2674
  name: 'composeTransforms', source: 'topology/api.js#composeTransforms', kind: 'pure',
2660
2675
  reason: '变换函数组合器(纯数据,无 Shape 参数)',
2661
2676
  },
2662
2677
  {
2663
- name: 'cut', source: 'topology/api.js#cut', kind: 'brep-op',
2678
+ name: 'cut', source: 'topology/api.js#cut', kind: 'skip',
2664
2679
  geometryArgs: [0, 1], returnsResult: true,
2665
2680
  args: 'cut(base: Shape, tool: Shape, options?: BooleanOptions): Shape',
2666
- reason: 'faijs 用 subtract(不同名),布尔减 → brep-op',
2681
+ reason: 'overridden by handwritten boolean.ts:cut (Phase 3 roleTable propagation)',
2667
2682
  params: ['base', 'tool', 'options'], formClass: 'A',
2668
2683
  scriptFace: true,
2684
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2669
2685
  },
2670
2686
  {
2671
2687
  name: 'fuseAll', source: 'topology/api.js#fuseAll', kind: 'skip',
@@ -2683,54 +2699,53 @@ export const ARG_SPEC = [
2683
2699
  + '(含 UI ops 与存量迁移)——生成期守卫见 gen-l3-surface.ts(§4.8 触发条件)。',
2684
2700
  },
2685
2701
  {
2686
- name: 'section', source: 'topology/api.js#section', kind: 'brep-op',
2702
+ name: 'section', source: 'topology/api.js#section', kind: 'brep-op', capabilities: ["dispose", "isNull", "section"],
2687
2703
  geometryArgs: [0], returnsResult: true,
2688
2704
  args: 'section(shape: Shape, plane: PlaneInput): Shape',
2689
- reason: 'faijs 无同名截面查询(平面入参非几何)→ brep-op',
2690
2705
  params: ['shape', 'plane'], formClass: 'A',
2706
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2691
2707
  },
2692
2708
  {
2693
2709
  name: 'sectionToFace', source: 'topology/api.js#sectionToFace', kind: 'skip',
2694
2710
  reason: '返回 Face 子形状产物,faijs 整件面不承载,skip',
2695
2711
  },
2696
2712
  {
2697
- name: 'split', source: 'topology/api.js#split', kind: 'brep-op',
2713
+ name: 'split', source: 'topology/api.js#split', kind: 'brep-op', capabilities: ["dispose", "isNull", "split"],
2698
2714
  geometryArgs: [0], returnsResult: true,
2699
2715
  args: 'split(shape: Shape, tools: Shape[]): Shape',
2700
2716
  reason: 'faijs split 已更名 fai_split,上游工具切件 split 空出 → brep-op(§5.1 D-SPLIT;tools 暂登记几何首参,数组切件经 faijs 侧适配)',
2701
2717
  params: ['shape', 'tools'], formClass: 'A',
2702
2718
  scriptFace: true,
2719
+ naming: { kind: 'subdivide' },
2703
2720
  },
2704
2721
  {
2705
2722
  name: 'slice', source: 'topology/api.js#slice', kind: 'skip',
2706
2723
  reason: 'planes 数组入参且返回 AnyShape[](多产物),skip',
2707
2724
  },
2708
2725
  {
2709
- name: 'fillet', source: 'topology/api.js#fillet', kind: 'brep-op',
2710
- geometryArgs: [0], returnsResult: true,
2726
+ name: 'fillet', source: 'topology/api.js#fillet', kind: 'skip',
2711
2727
  args: 'fillet(shape: Shape, edges?, radius | [r1,r2]): Shape',
2712
- reason: 'D-FILLET:faijs 侧由手写 dual-op 覆盖(§2.1 等半径 + filletWithHistory roleTable 传播);本条目仅投影到 vendored fillet 契约,生成模块符号为孤儿 by design,scriptFace 不投(避免与手写 fillet 撞名)。',
2713
- params: ['shape', 'edges', 'radius'], formClass: 'A',
2714
- scriptFace: false,
2728
+ reason: 'overridden by handwritten api/fillet.ts (fillet dual-op, roleTable propagation)',
2715
2729
  },
2716
2730
  {
2717
2731
  name: 'chamfer', source: 'topology/api.js#chamfer', kind: 'skip',
2718
2732
  reason: 'faijs 同名 chamfer(§5.1 O-CHAMFER-1:role 取边已保留,上游 Edge 句柄取边形态待处置),生成层不重复投影',
2719
2733
  },
2720
2734
  {
2721
- name: 'shell', source: 'topology/api.js#shell', kind: 'brep-op',
2735
+ name: 'shell', source: 'topology/api.js#shell', kind: 'brep-op', capabilities: ["dispose", "shapeType", "shell", "shellWithHistory"],
2722
2736
  geometryArgs: [0], returnsResult: true,
2723
2737
  args: 'shell(shape: Shape, faces?: Shape[], thickness: number): Shape',
2724
- reason: 'faijs 无同名抽壳 → brep-op(faces 可选,整件抽壳可表达)',
2725
2738
  params: ['shape', 'faces', 'thickness'], formClass: 'A',
2739
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2726
2740
  },
2727
2741
  {
2728
- name: 'offset', source: 'topology/api.js#offset', kind: 'brep-op',
2742
+ name: 'offset', source: 'topology/api.js#offset', kind: 'brep-op', capabilities: ["dispose", "offsetWithHistory", "shapeType"],
2729
2743
  geometryArgs: [0], returnsResult: true,
2730
2744
  args: 'offset(shape: Shape, distance: number): Shape',
2731
2745
  reason: 'faijs 无同名偏置 → brep-op',
2732
2746
  params: ['shape', 'distance'], formClass: 'A',
2733
2747
  scriptFace: true,
2748
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2734
2749
  },
2735
2750
  {
2736
2751
  name: 'thicken', source: 'topology/api.js#thicken', kind: 'skip',
@@ -2741,20 +2756,22 @@ export const ARG_SPEC = [
2741
2756
  reason: 'DraftOptions 含 NeutralPlane 等 face 引用,faijs 面引用体系不同,skip',
2742
2757
  },
2743
2758
  {
2744
- name: 'heal', source: 'topology/api.js#heal', kind: 'brep-op',
2759
+ name: 'heal', source: 'topology/api.js#heal', kind: 'brep-op', capabilities: ["dispose", "healFace", "healSolid", "healWire", "isValid", "shapeType"],
2745
2760
  geometryArgs: [0], returnsResult: true,
2746
2761
  args: 'heal(shape: Shape): Shape',
2747
2762
  reason: 'faijs 无同名整件修复 → brep-op',
2748
2763
  params: ['shape'], formClass: 'A',
2749
2764
  scriptFace: true,
2765
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2750
2766
  },
2751
2767
  {
2752
- name: 'simplify', source: 'topology/api.js#simplify', kind: 'brep-op',
2768
+ name: 'simplify', source: 'topology/api.js#simplify', kind: 'brep-op', capabilities: ["dispose", "simplify"],
2753
2769
  geometryArgs: [0], returnsResult: true,
2754
2770
  args: 'simplify(shape: Shape): Shape',
2755
2771
  reason: 'faijs 无同名整件简化 → brep-op',
2756
2772
  params: ['shape'], formClass: 'A',
2757
2773
  scriptFace: true,
2774
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2758
2775
  },
2759
2776
  {
2760
2777
  name: 'mesh', source: 'topology/api.js#mesh', kind: 'skip',
@@ -3044,35 +3061,38 @@ export const ARG_SPEC = [
3044
3061
  },
3045
3062
  // healingFns:整件修复 brep-op;face/wire 级修复与 shell 组装 skip
3046
3063
  {
3047
- name: 'autoHeal', source: 'topology/healingFns.js#autoHeal', kind: 'brep-op',
3064
+ name: 'autoHeal', source: 'topology/healingFns.js#autoHeal', kind: 'brep-op', capabilities: ["dispose", "fixSelfIntersection", "healFace", "healSolid", "healWire", "isValid", "iterShapes", "sew", "shapeType"],
3048
3065
  geometryArgs: [0], returnsResult: true,
3049
3066
  args: 'autoHeal(shape: Shape, options?: AutoHealOptions): Shape',
3050
3067
  reason: '整件自动修复(Result<Shape>),brep-op',
3051
3068
  params: ['shape', 'options'], formClass: 'A',
3052
3069
  scriptFace: true,
3070
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3053
3071
  },
3054
3072
  {
3055
- name: 'fixShape', source: 'topology/healingFns.js#fixShape', kind: 'brep-op',
3073
+ name: 'fixShape', source: 'topology/healingFns.js#fixShape', kind: 'brep-op', capabilities: ["fixShape"],
3056
3074
  geometryArgs: [0], returnsResult: true,
3057
3075
  args: 'fixShape(shape: Shape): Shape',
3058
3076
  reason: '整件修复(Result<Shape>),brep-op',
3059
3077
  params: ['shape'], formClass: 'A',
3060
3078
  scriptFace: true,
3079
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3061
3080
  },
3062
3081
  {
3063
- name: 'healSolid', source: 'topology/healingFns.js#healSolid', kind: 'brep-op',
3082
+ name: 'healSolid', source: 'topology/healingFns.js#healSolid', kind: 'brep-op', capabilities: ["dispose", "healSolid", "isValid", "shapeType"],
3064
3083
  geometryArgs: [0], returnsResult: true,
3065
3084
  args: 'healSolid(solid: Shape): Shape',
3066
3085
  reason: 'Solid 修复(Result<ValidSolid>),brep-op',
3067
3086
  params: ['solid'], formClass: 'A',
3068
3087
  scriptFace: true,
3088
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3069
3089
  },
3070
3090
  {
3071
- name: 'fixSelfIntersection', source: 'topology/healingFns.js#fixSelfIntersection', kind: 'brep-op',
3091
+ name: 'fixSelfIntersection', source: 'topology/healingFns.js#fixSelfIntersection', kind: 'brep-op', capabilities: ["dispose", "fixSelfIntersection", "shapeType"],
3072
3092
  geometryArgs: [0], returnsResult: true,
3073
3093
  args: 'fixSelfIntersection(shape: Shape): Shape',
3074
- reason: '整件自交修复(Result<Shape>),brep-op',
3075
3094
  params: ['shape'], formClass: 'A',
3095
+ naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3076
3096
  },
3077
3097
  {
3078
3098
  name: 'healFace', source: 'topology/healingFns.js#healFace', kind: 'skip',