@faicad/faijs 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/LICENSE +4 -5
  2. package/NOTICE +5 -6
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +19 -1
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/assembly/entities.d.ts +1 -1
  7. package/dist/api/assembly/entities.d.ts.map +1 -1
  8. package/dist/api/assembly/entities.js.map +1 -1
  9. package/dist/api/assembly/joints.d.ts +2 -2
  10. package/dist/api/assembly/joints.d.ts.map +1 -1
  11. package/dist/api/assembly/joints.js +2 -2
  12. package/dist/api/assembly/joints.js.map +1 -1
  13. package/dist/api/assembly/lower.d.ts +1 -1
  14. package/dist/api/assembly/lower.d.ts.map +1 -1
  15. package/dist/api/assembly/lower.js.map +1 -1
  16. package/dist/api/assembly/pose.d.ts +3 -3
  17. package/dist/api/assembly/pose.d.ts.map +1 -1
  18. package/dist/api/assembly/pose.js +1 -1
  19. package/dist/api/assembly/pose.js.map +1 -1
  20. package/dist/api/assembly/preview.d.ts +1 -1
  21. package/dist/api/assembly/preview.d.ts.map +1 -1
  22. package/dist/api/assembly/preview.js +1 -1
  23. package/dist/api/assembly/preview.js.map +1 -1
  24. package/dist/api/assembly/solve.d.ts.map +1 -1
  25. package/dist/api/assembly/solve.js +3 -3
  26. package/dist/api/assembly/solve.js.map +1 -1
  27. package/dist/api/assembly/solvers/assembly-tree.d.ts +98 -0
  28. package/dist/api/assembly/solvers/assembly-tree.d.ts.map +1 -0
  29. package/dist/api/assembly/solvers/assembly-tree.js +130 -0
  30. package/dist/api/assembly/solvers/assembly-tree.js.map +1 -0
  31. package/dist/api/assembly/solvers/chain-solver.d.ts +27 -0
  32. package/dist/api/assembly/solvers/chain-solver.d.ts.map +1 -0
  33. package/dist/api/assembly/solvers/chain-solver.js +330 -0
  34. package/dist/api/assembly/solvers/chain-solver.js.map +1 -0
  35. package/dist/api/assembly/solvers/global-solver.js +2 -2
  36. package/dist/api/assembly/solvers/global-solver.js.map +1 -1
  37. package/dist/api/assembly/solvers/joints-kinematics.d.ts +308 -0
  38. package/dist/api/assembly/solvers/joints-kinematics.d.ts.map +1 -0
  39. package/dist/api/assembly/solvers/joints-kinematics.js +643 -0
  40. package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -0
  41. package/dist/api/assembly/solvers/quat.d.ts +35 -0
  42. package/dist/api/assembly/solvers/quat.d.ts.map +1 -0
  43. package/dist/api/assembly/solvers/quat.js +84 -0
  44. package/dist/api/assembly/solvers/quat.js.map +1 -0
  45. package/dist/api/assembly/solvers/types.d.ts +33 -0
  46. package/dist/api/assembly/solvers/types.d.ts.map +1 -1
  47. package/dist/api/assembly/solvers/types.js.map +1 -1
  48. package/dist/api/boolean.d.ts.map +1 -1
  49. package/dist/api/boolean.js +3 -4
  50. package/dist/api/boolean.js.map +1 -1
  51. package/dist/api/brep-mirror/booleanFns.d.ts +40 -0
  52. package/dist/api/brep-mirror/booleanFns.d.ts.map +1 -0
  53. package/dist/api/brep-mirror/booleanFns.js +99 -0
  54. package/dist/api/brep-mirror/booleanFns.js.map +1 -0
  55. package/dist/api/brep-mirror/brepHelpers.d.ts +55 -0
  56. package/dist/api/brep-mirror/brepHelpers.d.ts.map +1 -0
  57. package/dist/api/brep-mirror/brepHelpers.js +131 -0
  58. package/dist/api/brep-mirror/brepHelpers.js.map +1 -0
  59. package/dist/api/brep-mirror/compoundFns.d.ts +47 -0
  60. package/dist/api/brep-mirror/compoundFns.d.ts.map +1 -0
  61. package/dist/api/brep-mirror/compoundFns.js +300 -0
  62. package/dist/api/brep-mirror/compoundFns.js.map +1 -0
  63. package/dist/api/brep-mirror/healingFns.d.ts +78 -0
  64. package/dist/api/brep-mirror/healingFns.d.ts.map +1 -0
  65. package/dist/api/brep-mirror/healingFns.js +294 -0
  66. package/dist/api/brep-mirror/healingFns.js.map +1 -0
  67. package/dist/api/brep-mirror/hullFns.d.ts +20 -0
  68. package/dist/api/brep-mirror/hullFns.d.ts.map +1 -0
  69. package/dist/api/brep-mirror/hullFns.js +46 -0
  70. package/dist/api/brep-mirror/hullFns.js.map +1 -0
  71. package/dist/api/brep-mirror/patternFns.d.ts +43 -0
  72. package/dist/api/brep-mirror/patternFns.d.ts.map +1 -0
  73. package/dist/api/brep-mirror/patternFns.js +178 -0
  74. package/dist/api/brep-mirror/patternFns.js.map +1 -0
  75. package/dist/api/brep-mirror/primitiveFns.d.ts +42 -0
  76. package/dist/api/brep-mirror/primitiveFns.d.ts.map +1 -0
  77. package/dist/api/brep-mirror/primitiveFns.js +104 -0
  78. package/dist/api/brep-mirror/primitiveFns.js.map +1 -0
  79. package/dist/api/brep-mirror/roofFns.d.ts +24 -0
  80. package/dist/api/brep-mirror/roofFns.d.ts.map +1 -0
  81. package/dist/api/brep-mirror/roofFns.js +229 -0
  82. package/dist/api/brep-mirror/roofFns.js.map +1 -0
  83. package/dist/api/brep-mirror/straightSkeleton.d.ts +36 -0
  84. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +1 -0
  85. package/dist/api/brep-mirror/straightSkeleton.js +443 -0
  86. package/dist/api/brep-mirror/straightSkeleton.js.map +1 -0
  87. package/dist/api/brep-mirror/sweepFns.d.ts +55 -0
  88. package/dist/api/brep-mirror/sweepFns.d.ts.map +1 -0
  89. package/dist/api/brep-mirror/sweepFns.js +200 -0
  90. package/dist/api/brep-mirror/sweepFns.js.map +1 -0
  91. package/dist/api/brep-mirror/threadFns.d.ts +15 -0
  92. package/dist/api/brep-mirror/threadFns.d.ts.map +1 -1
  93. package/dist/api/brep-mirror/threadFns.js +37 -2
  94. package/dist/api/brep-mirror/threadFns.js.map +1 -1
  95. package/dist/api/brep-mirror/topologyFns.d.ts +74 -0
  96. package/dist/api/brep-mirror/topologyFns.d.ts.map +1 -0
  97. package/dist/api/brep-mirror/topologyFns.js +273 -0
  98. package/dist/api/brep-mirror/topologyFns.js.map +1 -0
  99. package/dist/api/brep-topology.d.ts +190 -0
  100. package/dist/api/brep-topology.d.ts.map +1 -0
  101. package/dist/api/brep-topology.js +337 -0
  102. package/dist/api/brep-topology.js.map +1 -0
  103. package/dist/api/brepjs-compat/constants.d.ts +11 -0
  104. package/dist/api/brepjs-compat/constants.d.ts.map +1 -0
  105. package/dist/api/brepjs-compat/constants.js +11 -0
  106. package/dist/api/brepjs-compat/constants.js.map +1 -0
  107. package/dist/api/brepjs-compat/index.d.ts +19 -232
  108. package/dist/api/brepjs-compat/index.d.ts.map +1 -1
  109. package/dist/api/brepjs-compat/index.js +19 -286
  110. package/dist/api/brepjs-compat/index.js.map +1 -1
  111. package/dist/api/brepjs-compat/planeOps.d.ts +98 -0
  112. package/dist/api/brepjs-compat/planeOps.d.ts.map +1 -0
  113. package/dist/api/brepjs-compat/planeOps.js +170 -0
  114. package/dist/api/brepjs-compat/planeOps.js.map +1 -0
  115. package/dist/api/brepjs-compat/planeTypes.d.ts +24 -0
  116. package/dist/api/brepjs-compat/planeTypes.d.ts.map +1 -0
  117. package/dist/api/brepjs-compat/planeTypes.js +8 -0
  118. package/dist/api/brepjs-compat/planeTypes.js.map +1 -0
  119. package/dist/api/brepjs-compat/types.d.ts +64 -0
  120. package/dist/api/brepjs-compat/types.d.ts.map +1 -0
  121. package/dist/api/brepjs-compat/types.js +48 -0
  122. package/dist/api/brepjs-compat/types.js.map +1 -0
  123. package/dist/api/brepjs-compat/vecOps.d.ts +124 -0
  124. package/dist/api/brepjs-compat/vecOps.d.ts.map +1 -0
  125. package/dist/api/brepjs-compat/vecOps.js +202 -0
  126. package/dist/api/brepjs-compat/vecOps.js.map +1 -0
  127. package/dist/api/chamfer.d.ts +5 -0
  128. package/dist/api/chamfer.d.ts.map +1 -1
  129. package/dist/api/chamfer.js +13 -8
  130. package/dist/api/chamfer.js.map +1 -1
  131. package/dist/api/compound-geom.d.ts.map +1 -1
  132. package/dist/api/compound-geom.js +8 -2
  133. package/dist/api/compound-geom.js.map +1 -1
  134. package/dist/api/draft.d.ts +69 -0
  135. package/dist/api/draft.d.ts.map +1 -0
  136. package/dist/api/draft.js +109 -0
  137. package/dist/api/draft.js.map +1 -0
  138. package/dist/api/edge-ref.d.ts.map +1 -1
  139. package/dist/api/edge-ref.js +2 -2
  140. package/dist/api/edge-ref.js.map +1 -1
  141. package/dist/api/engrave.d.ts.map +1 -1
  142. package/dist/api/engrave.js +2 -3
  143. package/dist/api/engrave.js.map +1 -1
  144. package/dist/api/extrude.d.ts.map +1 -1
  145. package/dist/api/extrude.js +28 -13
  146. package/dist/api/extrude.js.map +1 -1
  147. package/dist/api/face-ref.d.ts.map +1 -1
  148. package/dist/api/face-ref.js +2 -2
  149. package/dist/api/face-ref.js.map +1 -1
  150. package/dist/api/feature-repair.d.ts +137 -0
  151. package/dist/api/feature-repair.d.ts.map +1 -0
  152. package/dist/api/feature-repair.js +221 -0
  153. package/dist/api/feature-repair.js.map +1 -0
  154. package/dist/api/fillet-variable.d.ts +35 -0
  155. package/dist/api/fillet-variable.d.ts.map +1 -0
  156. package/dist/api/fillet-variable.js +71 -0
  157. package/dist/api/fillet-variable.js.map +1 -0
  158. package/dist/api/fillet.d.ts +3 -0
  159. package/dist/api/fillet.d.ts.map +1 -1
  160. package/dist/api/fillet.js +7 -4
  161. package/dist/api/fillet.js.map +1 -1
  162. package/dist/api/generated/2d.d.ts +1 -13
  163. package/dist/api/generated/2d.d.ts.map +1 -1
  164. package/dist/api/generated/2d.js +6 -1
  165. package/dist/api/generated/2d.js.map +1 -1
  166. package/dist/api/generated/brepjs/index.d.ts +298 -298
  167. package/dist/api/generated/brepjs/index.d.ts.map +1 -1
  168. package/dist/api/generated/brepjs/index.js +183 -183
  169. package/dist/api/generated/brepjs/index.js.map +1 -1
  170. package/dist/api/generated/core.d.ts +3 -123
  171. package/dist/api/generated/core.d.ts.map +1 -1
  172. package/dist/api/generated/core.js +2 -81
  173. package/dist/api/generated/core.js.map +1 -1
  174. package/dist/api/generated/gear.d.ts +1 -15
  175. package/dist/api/generated/gear.d.ts.map +1 -1
  176. package/dist/api/generated/gear.js +6 -3
  177. package/dist/api/generated/gear.js.map +1 -1
  178. package/dist/api/generated/io.d.ts +1 -13
  179. package/dist/api/generated/io.d.ts.map +1 -1
  180. package/dist/api/generated/io.js +6 -1
  181. package/dist/api/generated/io.js.map +1 -1
  182. package/dist/api/generated/kernel.d.ts +1 -39
  183. package/dist/api/generated/kernel.d.ts.map +1 -1
  184. package/dist/api/generated/kernel.js +6 -4
  185. package/dist/api/generated/kernel.js.map +1 -1
  186. package/dist/api/generated/measurement.d.ts +53 -97
  187. package/dist/api/generated/measurement.d.ts.map +1 -1
  188. package/dist/api/generated/measurement.js +48 -143
  189. package/dist/api/generated/measurement.js.map +1 -1
  190. package/dist/api/generated/ns.d.ts +1 -10
  191. package/dist/api/generated/ns.d.ts.map +1 -1
  192. package/dist/api/generated/ns.js +2 -10
  193. package/dist/api/generated/ns.js.map +1 -1
  194. package/dist/api/generated/operations.d.ts +65 -110
  195. package/dist/api/generated/operations.d.ts.map +1 -1
  196. package/dist/api/generated/operations.js +132 -80
  197. package/dist/api/generated/operations.js.map +1 -1
  198. package/dist/api/generated/projection.d.ts +1 -8
  199. package/dist/api/generated/projection.d.ts.map +1 -1
  200. package/dist/api/generated/projection.js +6 -4
  201. package/dist/api/generated/projection.js.map +1 -1
  202. package/dist/api/generated/query.d.ts +1 -9
  203. package/dist/api/generated/query.d.ts.map +1 -1
  204. package/dist/api/generated/query.js +6 -1
  205. package/dist/api/generated/query.js.map +1 -1
  206. package/dist/api/generated/script-face-manifest.d.ts +2 -0
  207. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  208. package/dist/api/generated/script-face-manifest.js +34 -22
  209. package/dist/api/generated/script-face-manifest.js.map +1 -1
  210. package/dist/api/generated/script-face.d.ts +52 -27
  211. package/dist/api/generated/script-face.d.ts.map +1 -1
  212. package/dist/api/generated/script-face.js +18 -4
  213. package/dist/api/generated/script-face.js.map +1 -1
  214. package/dist/api/generated/sketching.d.ts +4 -7
  215. package/dist/api/generated/sketching.d.ts.map +1 -1
  216. package/dist/api/generated/sketching.js +10 -8
  217. package/dist/api/generated/sketching.js.map +1 -1
  218. package/dist/api/generated/text.d.ts +1 -6
  219. package/dist/api/generated/text.d.ts.map +1 -1
  220. package/dist/api/generated/text.js +6 -3
  221. package/dist/api/generated/text.js.map +1 -1
  222. package/dist/api/generated/topology.d.ts +77 -175
  223. package/dist/api/generated/topology.d.ts.map +1 -1
  224. package/dist/api/generated/topology.js +172 -131
  225. package/dist/api/generated/topology.js.map +1 -1
  226. package/dist/api/geom.d.ts.map +1 -1
  227. package/dist/api/geom.js +2 -2
  228. package/dist/api/geom.js.map +1 -1
  229. package/dist/api/helix.d.ts +51 -0
  230. package/dist/api/helix.d.ts.map +1 -0
  231. package/dist/api/helix.js +63 -0
  232. package/dist/api/helix.js.map +1 -0
  233. package/dist/api/import-step.d.ts.map +1 -1
  234. package/dist/api/import-step.js +6 -2
  235. package/dist/api/import-step.js.map +1 -1
  236. package/dist/api/index.d.ts +18 -5
  237. package/dist/api/index.d.ts.map +1 -1
  238. package/dist/api/index.js +29 -12
  239. package/dist/api/index.js.map +1 -1
  240. package/dist/api/internal/compat-op.d.ts +10 -0
  241. package/dist/api/internal/compat-op.d.ts.map +1 -1
  242. package/dist/api/internal/compat-op.js +9 -3
  243. package/dist/api/internal/compat-op.js.map +1 -1
  244. package/dist/api/internal/compat-projection.d.ts +4 -4
  245. package/dist/api/internal/compat-projection.js +7 -7
  246. package/dist/api/internal/compat-projection.js.map +1 -1
  247. package/dist/api/internal/l3-bridge.d.ts +75 -42
  248. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  249. package/dist/api/internal/l3-bridge.js +105 -50
  250. package/dist/api/internal/l3-bridge.js.map +1 -1
  251. package/dist/api/internal/profile-wire.d.ts +31 -0
  252. package/dist/api/internal/profile-wire.d.ts.map +1 -0
  253. package/dist/api/internal/profile-wire.js +37 -0
  254. package/dist/api/internal/profile-wire.js.map +1 -0
  255. package/dist/api/internal/replica-role-table.js +2 -2
  256. package/dist/api/internal/replica-role-table.js.map +1 -1
  257. package/dist/api/loft.d.ts +66 -0
  258. package/dist/api/loft.d.ts.map +1 -0
  259. package/dist/api/loft.js +111 -0
  260. package/dist/api/loft.js.map +1 -0
  261. package/dist/api/measurement/index.d.ts +51 -0
  262. package/dist/api/measurement/index.d.ts.map +1 -0
  263. package/dist/api/measurement/index.js +71 -0
  264. package/dist/api/measurement/index.js.map +1 -0
  265. package/dist/api/occt-kernel-bridge.d.ts +5 -8
  266. package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
  267. package/dist/api/occt-kernel-bridge.js +18 -14
  268. package/dist/api/occt-kernel-bridge.js.map +1 -1
  269. package/dist/api/pattern.d.ts.map +1 -1
  270. package/dist/api/pattern.js +3 -4
  271. package/dist/api/pattern.js.map +1 -1
  272. package/dist/api/place.d.ts.map +1 -1
  273. package/dist/api/place.js +2 -4
  274. package/dist/api/place.js.map +1 -1
  275. package/dist/api/primitives.d.ts.map +1 -1
  276. package/dist/api/primitives.js +3 -4
  277. package/dist/api/primitives.js.map +1 -1
  278. package/dist/api/replicate.d.ts +28 -1
  279. package/dist/api/replicate.d.ts.map +1 -1
  280. package/dist/api/replicate.js +29 -19
  281. package/dist/api/replicate.js.map +1 -1
  282. package/dist/api/result.d.ts +6 -11
  283. package/dist/api/result.d.ts.map +1 -1
  284. package/dist/api/result.js +6 -11
  285. package/dist/api/result.js.map +1 -1
  286. package/dist/api/revolve.d.ts.map +1 -1
  287. package/dist/api/revolve.js +15 -14
  288. package/dist/api/revolve.js.map +1 -1
  289. package/dist/api/screw.d.ts +3 -0
  290. package/dist/api/screw.d.ts.map +1 -1
  291. package/dist/api/screw.js +9 -4
  292. package/dist/api/screw.js.map +1 -1
  293. package/dist/api/sdf.d.ts +1 -1
  294. package/dist/api/section-by-plane.d.ts +42 -0
  295. package/dist/api/section-by-plane.d.ts.map +1 -0
  296. package/dist/api/section-by-plane.js +61 -0
  297. package/dist/api/section-by-plane.js.map +1 -0
  298. package/dist/api/shell.d.ts +45 -0
  299. package/dist/api/shell.d.ts.map +1 -0
  300. package/dist/api/shell.js +73 -0
  301. package/dist/api/shell.js.map +1 -0
  302. package/dist/api/sketch.d.ts +8 -1
  303. package/dist/api/sketch.d.ts.map +1 -1
  304. package/dist/api/sketch.js +12 -7
  305. package/dist/api/sketch.js.map +1 -1
  306. package/dist/api/split-by-plane.d.ts +41 -0
  307. package/dist/api/split-by-plane.d.ts.map +1 -0
  308. package/dist/api/split-by-plane.js +60 -0
  309. package/dist/api/split-by-plane.js.map +1 -0
  310. package/dist/api/split.d.ts +6 -1
  311. package/dist/api/split.d.ts.map +1 -1
  312. package/dist/api/split.js +23 -9
  313. package/dist/api/split.js.map +1 -1
  314. package/dist/api/surface/arg-spec.d.ts +22 -0
  315. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  316. package/dist/api/surface/arg-spec.js +723 -476
  317. package/dist/api/surface/arg-spec.js.map +1 -1
  318. package/dist/api/sweep.d.ts +55 -0
  319. package/dist/api/sweep.d.ts.map +1 -0
  320. package/dist/api/sweep.js +86 -0
  321. package/dist/api/sweep.js.map +1 -0
  322. package/dist/api/thicken.d.ts +36 -0
  323. package/dist/api/thicken.d.ts.map +1 -0
  324. package/dist/api/thicken.js +55 -0
  325. package/dist/api/thicken.js.map +1 -0
  326. package/dist/api/transform.d.ts +8 -0
  327. package/dist/api/transform.d.ts.map +1 -1
  328. package/dist/api/transform.js +15 -4
  329. package/dist/api/transform.js.map +1 -1
  330. package/dist/api/view/cameraFns.d.ts +48 -0
  331. package/dist/api/view/cameraFns.d.ts.map +1 -0
  332. package/dist/api/view/cameraFns.js +75 -0
  333. package/dist/api/view/cameraFns.js.map +1 -0
  334. package/dist/api/view/projectionPlanes.d.ts +25 -0
  335. package/dist/api/view/projectionPlanes.d.ts.map +1 -0
  336. package/dist/api/view/projectionPlanes.js +30 -0
  337. package/dist/api/view/projectionPlanes.js.map +1 -0
  338. package/dist/api/view/view-camera.d.ts +2 -2
  339. package/dist/api/view/view-camera.d.ts.map +1 -1
  340. package/dist/api/view/view-camera.js +3 -3
  341. package/dist/api/view/view-camera.js.map +1 -1
  342. package/dist/api/view/view-projection.d.ts +9 -6
  343. package/dist/api/view/view-projection.d.ts.map +1 -1
  344. package/dist/api/view/view-projection.js +132 -65
  345. package/dist/api/view/view-projection.js.map +1 -1
  346. package/dist/api/wire.d.ts +45 -0
  347. package/dist/api/wire.d.ts.map +1 -0
  348. package/dist/api/wire.js +96 -0
  349. package/dist/api/wire.js.map +1 -0
  350. package/dist/boolean/creased-normals.d.ts +50 -0
  351. package/dist/boolean/creased-normals.d.ts.map +1 -0
  352. package/dist/boolean/creased-normals.js +114 -0
  353. package/dist/boolean/creased-normals.js.map +1 -0
  354. package/dist/boolean/deriveNormals.d.ts +4 -1
  355. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  356. package/dist/boolean/deriveNormals.js +5 -2
  357. package/dist/boolean/deriveNormals.js.map +1 -1
  358. package/dist/brep/brep-ops.d.ts +6 -0
  359. package/dist/brep/brep-ops.d.ts.map +1 -1
  360. package/dist/brep/brep-ops.js +11 -2
  361. package/dist/brep/brep-ops.js.map +1 -1
  362. package/dist/brep/brep-topology.d.ts +4 -0
  363. package/dist/brep/brep-topology.d.ts.map +1 -1
  364. package/dist/brep/brep-topology.js +4 -0
  365. package/dist/brep/brep-topology.js.map +1 -1
  366. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  367. package/dist/brep/engine/adapters/brep-mock.js +79 -59
  368. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  369. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  370. package/dist/brep/engine/adapters/brepkit.js +7 -1
  371. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  372. package/dist/brep/engine/adapters/occt.d.ts +15 -7
  373. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  374. package/dist/brep/engine/adapters/occt.js +52 -167
  375. package/dist/brep/engine/adapters/occt.js.map +1 -1
  376. package/dist/brep/engine/primitives.d.ts +93 -130
  377. package/dist/brep/engine/primitives.d.ts.map +1 -1
  378. package/dist/brep/engine/primitives.js +9 -7
  379. package/dist/brep/engine/primitives.js.map +1 -1
  380. package/dist/brep/engine/types.d.ts +14 -1
  381. package/dist/brep/engine/types.d.ts.map +1 -1
  382. package/dist/brep/engine/types.js +11 -1
  383. package/dist/brep/engine/types.js.map +1 -1
  384. package/dist/brep/export/step.d.ts +3 -0
  385. package/dist/brep/export/step.d.ts.map +1 -1
  386. package/dist/brep/export/step.js +7 -1
  387. package/dist/brep/export/step.js.map +1 -1
  388. package/dist/brep/face-evolution.d.ts +8 -0
  389. package/dist/brep/face-evolution.d.ts.map +1 -1
  390. package/dist/brep/face-evolution.js +15 -3
  391. package/dist/brep/face-evolution.js.map +1 -1
  392. package/dist/brep/handle-bridge.d.ts +20 -2
  393. package/dist/brep/handle-bridge.d.ts.map +1 -1
  394. package/dist/brep/handle-bridge.js +25 -2
  395. package/dist/brep/handle-bridge.js.map +1 -1
  396. package/dist/brepkit-kernel/brepkitKernel.d.ts +25 -5
  397. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  398. package/dist/brepkit-kernel/brepkitKernel.js +336 -144
  399. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  400. package/dist/cad-runtime/admit-compat-lib.d.ts +6 -1
  401. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  402. package/dist/cad-runtime/admit-compat-lib.js +5 -1
  403. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  404. package/dist/cad-runtime/backend-dispatch.d.ts +9 -3
  405. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  406. package/dist/cad-runtime/backend-dispatch.js +32 -2
  407. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  408. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  409. package/dist/cad-runtime/direct-executor.js +8 -2
  410. package/dist/cad-runtime/direct-executor.js.map +1 -1
  411. package/dist/cad-runtime/runtime.d.ts +3 -0
  412. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  413. package/dist/cad-runtime/runtime.js +3 -1
  414. package/dist/cad-runtime/runtime.js.map +1 -1
  415. package/dist/define-op.d.ts +18 -2
  416. package/dist/define-op.d.ts.map +1 -1
  417. package/dist/define-op.js +29 -1
  418. package/dist/define-op.js.map +1 -1
  419. package/dist/env-agnostic.d.ts +3 -0
  420. package/dist/env-agnostic.d.ts.map +1 -1
  421. package/dist/env-agnostic.js +7 -0
  422. package/dist/env-agnostic.js.map +1 -1
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +3 -4
  425. package/dist/index.js.map +1 -1
  426. package/dist/lang/symbol-table.generated.d.ts +28 -0
  427. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  428. package/dist/lang/symbol-table.generated.js +29 -1
  429. package/dist/lang/symbol-table.generated.js.map +1 -1
  430. package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
  431. package/dist/occt-kernel/highLevelApi.js +6 -3
  432. package/dist/occt-kernel/highLevelApi.js.map +1 -1
  433. package/dist/occt-kernel/hullGeometry.d.ts +31 -0
  434. package/dist/occt-kernel/hullGeometry.d.ts.map +1 -0
  435. package/dist/occt-kernel/hullGeometry.js +319 -0
  436. package/dist/occt-kernel/hullGeometry.js.map +1 -0
  437. package/dist/occt-kernel/hullOps.d.ts +24 -0
  438. package/dist/occt-kernel/hullOps.d.ts.map +1 -0
  439. package/dist/occt-kernel/hullOps.js +52 -0
  440. package/dist/occt-kernel/hullOps.js.map +1 -0
  441. package/dist/occt-kernel/occt-primitives.d.ts +14 -0
  442. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -0
  443. package/dist/occt-kernel/occt-primitives.js +351 -0
  444. package/dist/occt-kernel/occt-primitives.js.map +1 -0
  445. package/dist/occt-kernel/occtKernel.d.ts +14 -6
  446. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  447. package/dist/occt-kernel/occtKernel.js +11 -3
  448. package/dist/occt-kernel/occtKernel.js.map +1 -1
  449. package/dist/occt-kernel/topologyExt.js +2 -2
  450. package/dist/occt-kernel/topologyExt.js.map +1 -1
  451. package/dist/primitives/brep-primitives.d.ts +4 -0
  452. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  453. package/dist/primitives/brep-primitives.js +4 -0
  454. package/dist/primitives/brep-primitives.js.map +1 -1
  455. package/dist/result/bug.d.ts +22 -0
  456. package/dist/result/bug.d.ts.map +1 -0
  457. package/dist/result/bug.js +28 -0
  458. package/dist/result/bug.js.map +1 -0
  459. package/dist/result/errors.d.ts +270 -0
  460. package/dist/result/errors.d.ts.map +1 -0
  461. package/dist/result/errors.js +317 -0
  462. package/dist/result/errors.js.map +1 -0
  463. package/dist/result/kernelErrorTranslation.d.ts +21 -0
  464. package/dist/result/kernelErrorTranslation.d.ts.map +1 -0
  465. package/dist/result/kernelErrorTranslation.js +102 -0
  466. package/dist/result/kernelErrorTranslation.js.map +1 -0
  467. package/dist/result/result.d.ts +213 -0
  468. package/dist/result/result.d.ts.map +1 -0
  469. package/dist/result/result.js +336 -0
  470. package/dist/result/result.js.map +1 -0
  471. package/dist/result/vec3.d.ts +12 -0
  472. package/dist/result/vec3.d.ts.map +1 -0
  473. package/dist/result/vec3.js +14 -0
  474. package/dist/result/vec3.js.map +1 -0
  475. package/dist/runtime-state.d.ts +9 -0
  476. package/dist/runtime-state.d.ts.map +1 -1
  477. package/dist/runtime-state.js.map +1 -1
  478. package/dist/sdk.d.ts +3 -1
  479. package/dist/sdk.d.ts.map +1 -1
  480. package/dist/sdk.js +2 -1
  481. package/dist/sdk.js.map +1 -1
  482. package/dist/shape.d.ts +43 -1
  483. package/dist/shape.d.ts.map +1 -1
  484. package/dist/shape.js +57 -1
  485. package/dist/shape.js.map +1 -1
  486. package/dist/topology/naming/geom-hint.js +1 -1
  487. package/dist/topology/naming/geom-hint.js.map +1 -1
  488. package/dist/topology/naming/score.js +1 -1
  489. package/dist/topology/naming/score.js.map +1 -1
  490. package/package.json +6 -16
@@ -35,11 +35,11 @@ export const ARG_SPEC = [
35
35
  {
36
36
  name: 'Bounds3D',
37
37
  source: 'topology/shapeFns.js#Bounds3D',
38
- kind: 'type',
38
+ kind: 'skip',
39
39
  },
40
40
  {
41
41
  name: 'torus',
42
- source: 'topology/primitiveFns.js#torus',
42
+ source: 'brep-mirror/primitiveFns.ts#torusBrep', selfhost: true,
43
43
  kind: 'brep-op',
44
44
  capabilities: ["dispose", "makeTorus"],
45
45
  args: '(majorRadius: number, minorRadius: number, options?: TorusOptions)',
@@ -53,9 +53,11 @@ export const ARG_SPEC = [
53
53
  },
54
54
  {
55
55
  name: 'fuse',
56
- source: 'topology/booleanFns.js#fuse',
56
+ source: 'brep-mirror/booleanFns.ts#fuseBrep', selfhost: true,
57
57
  kind: 'brep-op',
58
- capabilities: ["dispose", "fuse", "fuseWithHistory", "isNull"],
58
+ // Phase 5 补漏(§1.5 推论 1 / D11):vendored fuse 默认 trackEvolution 路径依赖
59
+ // kernel.isNull / kernel.dispose(occt 平台面)→ 平台 op,声明 engines: ['occt']
60
+ // 在 brepkit 下执行前报错(D11-4)。
59
61
  args: '(a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>',
60
62
  // 两个输入都是 faijs Shape → 借入 brepjs handle;第三参 options 透传。
61
63
  geometryArgs: [0, 1],
@@ -63,17 +65,22 @@ export const ARG_SPEC = [
63
65
  params: ['a', 'b', 'options'],
64
66
  formClass: 'A',
65
67
  scriptFace: true,
68
+ // 依赖声明(诚实原则):isNull / dispose 是 vendored fuse 的真实内核依赖,二者都在
69
+ // BrepMethodKind 逐核真名里。本条目早前因 D11-7 互斥被迫只留 engines;互斥已于
70
+ // 2026-09-24 撤销,两条轴可并存,届时按 capability-map.json 实证补回依赖清单。
71
+ engines: ['occt'],
66
72
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
67
73
  },
68
74
  {
69
75
  name: 'getBounds',
70
- source: 'topology/shapeFns.js#getBounds',
76
+ source: 'core:brep-mirror#getBounds',
71
77
  kind: 'query',
72
- args: '(shape: AnyShape) -> Bounds3D',
78
+ selfhost: true,
79
+ args: '(shape: Shape) -> BrepBoundingBox(core selfhost)',
73
80
  // 查询:输入 Shape(借入),返回纯数据 Bounds3D → 不进 defineOp(直接导出函数)。
74
81
  geometryArgs: [0],
75
82
  returnsResult: false,
76
- returnType: 'Bounds3D',
83
+ returnType: '{ xmin: number; ymin: number; zmin: number; xmax: number; ymax: number; zmax: number }',
77
84
  params: ['shape'],
78
85
  formClass: 'A',
79
86
  },
@@ -87,49 +94,49 @@ export const ARG_SPEC = [
87
94
  {
88
95
  name: 'CurvatureResult',
89
96
  source: 'measurement/measureFns.js#CurvatureResult',
90
- kind: 'type',
97
+ kind: 'skip',
91
98
  module: 'measurement',
92
99
  },
93
100
  {
94
101
  name: 'DistanceProps',
95
102
  source: 'measurement/measureFns.js#DistanceProps',
96
- kind: 'type',
103
+ kind: 'skip',
97
104
  module: 'measurement',
98
105
  },
99
106
  {
100
107
  name: 'InterferencePair',
101
108
  source: 'measurement/interferenceFns.js#InterferencePair',
102
- kind: 'type',
109
+ kind: 'skip',
103
110
  module: 'measurement',
104
111
  },
105
112
  {
106
113
  name: 'InterferenceResult',
107
114
  source: 'measurement/interferenceFns.js#InterferenceResult',
108
- kind: 'type',
115
+ kind: 'skip',
109
116
  module: 'measurement',
110
117
  },
111
118
  {
112
119
  name: 'LinearProps',
113
120
  source: 'measurement/measureFns.js#LinearProps',
114
- kind: 'type',
121
+ kind: 'skip',
115
122
  module: 'measurement',
116
123
  },
117
124
  {
118
125
  name: 'PhysicalProps',
119
126
  source: 'measurement/measureFns.js#PhysicalProps',
120
- kind: 'type',
127
+ kind: 'skip',
121
128
  module: 'measurement',
122
129
  },
123
130
  {
124
131
  name: 'SurfaceProps',
125
132
  source: 'measurement/measureFns.js#SurfaceProps',
126
- kind: 'type',
133
+ kind: 'skip',
127
134
  module: 'measurement',
128
135
  },
129
136
  {
130
137
  name: 'VolumeProps',
131
138
  source: 'measurement/measureFns.js#VolumeProps',
132
- kind: 'type',
139
+ kind: 'skip',
133
140
  module: 'measurement',
134
141
  },
135
142
  // 1 × skip(状态化查询工具)
@@ -147,71 +154,83 @@ export const ARG_SPEC = [
147
154
  source: 'measurement/measureFns.js#measureVolumeProps',
148
155
  kind: 'query',
149
156
  module: 'measurement',
150
- args: '(shape: Shape3D) -> Result<VolumeProps>',
157
+ selfhost: true,
158
+ args: '(shape: Shape) -> { volume, centerOfMass }(core selfhost)',
151
159
  geometryArgs: [0],
152
160
  returnsResult: true,
153
- returnType: 'VolumeProps',
161
+ returnType: '{ volume: number; centerOfMass: { x: number; y: number; z: number } }',
154
162
  params: ['shape'], formClass: 'A',
163
+ engines: ['occt'],
155
164
  },
156
165
  {
157
166
  name: 'measureSurfaceProps',
158
167
  source: 'measurement/measureFns.js#measureSurfaceProps',
159
168
  kind: 'query',
160
169
  module: 'measurement',
161
- args: '(shape: Face | Shape3D) -> Result<SurfaceProps>',
170
+ selfhost: true,
171
+ args: '(shape: Shape) -> { area }(core selfhost)',
162
172
  geometryArgs: [0],
163
173
  returnsResult: true,
164
- returnType: 'SurfaceProps',
174
+ returnType: '{ area: number }',
165
175
  params: ['shape'], formClass: 'A',
176
+ engines: ['occt'],
166
177
  },
167
178
  {
168
179
  name: 'measureLinearProps',
169
180
  source: 'measurement/measureFns.js#measureLinearProps',
170
181
  kind: 'query',
171
182
  module: 'measurement',
172
- args: '(shape: AnyShape) -> Result<LinearProps>',
183
+ selfhost: true,
184
+ args: '(shape: Shape) -> { length }(core selfhost)',
173
185
  geometryArgs: [0],
174
186
  returnsResult: true,
175
- returnType: 'LinearProps',
187
+ returnType: '{ length: number }',
176
188
  params: ['shape'], formClass: 'A',
189
+ engines: ['occt'],
177
190
  },
178
191
  {
179
192
  name: 'measureVolume',
180
193
  source: 'measurement/measureFns.js#measureVolume',
181
194
  kind: 'query',
182
195
  module: 'measurement',
183
- args: '(shape: Shape3D) -> Result<number>',
196
+ selfhost: true,
197
+ args: '(shape: Shape) -> number(core selfhost)',
184
198
  geometryArgs: [0],
185
199
  returnsResult: true,
186
200
  returnType: 'number',
187
201
  params: ['shape'], formClass: 'A',
202
+ engines: ['occt'],
188
203
  },
189
204
  {
190
205
  name: 'measureArea',
191
206
  source: 'measurement/measureFns.js#measureArea',
192
207
  kind: 'query',
193
208
  module: 'measurement',
194
- args: '(shape: Face | Shape3D) -> Result<number>',
209
+ selfhost: true,
210
+ args: '(shape: Shape) -> number(core selfhost)',
195
211
  geometryArgs: [0],
196
212
  returnsResult: true,
197
213
  returnType: 'number',
198
214
  params: ['shape'], formClass: 'A',
215
+ engines: ['occt'],
199
216
  },
200
217
  {
201
218
  name: 'measureLength',
202
219
  source: 'measurement/measureFns.js#measureLength',
203
220
  kind: 'query',
204
221
  module: 'measurement',
205
- args: '(shape: AnyShape) -> Result<number>',
222
+ selfhost: true,
223
+ args: '(shape: Shape) -> number(core selfhost)',
206
224
  geometryArgs: [0],
207
225
  returnsResult: true,
208
226
  returnType: 'number',
209
227
  params: ['shape'], formClass: 'A',
228
+ engines: ['occt'],
210
229
  },
211
230
  {
212
231
  name: 'measureDistance',
213
232
  source: 'measurement/measureFns.js#measureDistance',
214
- kind: 'query',
233
+ kind: 'skip',
215
234
  module: 'measurement',
216
235
  args: '(a: AnyShape, b: AnyShape) -> Result<number>',
217
236
  geometryArgs: [0, 1],
@@ -222,11 +241,12 @@ export const ARG_SPEC = [
222
241
  returnsResult: true,
223
242
  returnType: 'number',
224
243
  params: ['a', 'b'], formClass: 'A',
244
+ engines: ['occt'],
225
245
  },
226
246
  {
227
247
  name: 'measureDistanceProps',
228
248
  source: 'measurement/measureFns.js#measureDistanceProps',
229
- kind: 'query',
249
+ kind: 'skip',
230
250
  module: 'measurement',
231
251
  args: '(a: AnyShape, b: AnyShape) -> Result<DistanceProps>',
232
252
  geometryArgs: [0, 1],
@@ -237,11 +257,12 @@ export const ARG_SPEC = [
237
257
  returnsResult: true,
238
258
  returnType: 'DistanceProps',
239
259
  params: ['a', 'b'], formClass: 'A',
260
+ engines: ['occt'],
240
261
  },
241
262
  {
242
263
  name: 'measureCurvatureAt',
243
264
  source: 'measurement/measureFns.js#measureCurvatureAt',
244
- kind: 'query',
265
+ kind: 'skip',
245
266
  module: 'measurement',
246
267
  args: '(face: OrientedFace, u: number, v: number) -> Result<CurvatureResult>',
247
268
  geometryArgs: [0],
@@ -253,22 +274,24 @@ export const ARG_SPEC = [
253
274
  returnsResult: true,
254
275
  returnType: 'CurvatureResult',
255
276
  params: ['face', 'u', 'v'], formClass: 'A',
277
+ engines: ['occt'],
256
278
  },
257
279
  {
258
280
  name: 'measureCurvatureAtMid',
259
281
  source: 'measurement/measureFns.js#measureCurvatureAtMid',
260
- kind: 'query',
282
+ kind: 'skip',
261
283
  module: 'measurement',
262
284
  args: '(face: Face) -> Result<CurvatureResult>',
263
285
  geometryArgs: [0],
264
286
  returnsResult: true,
265
287
  returnType: 'CurvatureResult',
266
288
  params: ['face'], formClass: 'A',
289
+ engines: ['occt'],
267
290
  },
268
291
  {
269
292
  name: 'checkInterference',
270
293
  source: 'measurement/interferenceFns.js#checkInterference',
271
- kind: 'query',
294
+ kind: 'skip',
272
295
  module: 'measurement',
273
296
  args: '(a: AnyShape, b: AnyShape, tolerance?: number) -> Result<InterferenceResult>',
274
297
  geometryArgs: [0, 1],
@@ -280,11 +303,12 @@ export const ARG_SPEC = [
280
303
  returnsResult: true,
281
304
  returnType: 'InterferenceResult',
282
305
  params: ['a', 'b', 'tolerance'], formClass: 'A',
306
+ engines: ['occt'],
283
307
  },
284
308
  {
285
309
  name: 'checkAllInterferences',
286
310
  source: 'measurement/interferenceFns.js#checkAllInterferences',
287
- kind: 'query',
311
+ kind: 'skip',
288
312
  module: 'measurement',
289
313
  args: '(shapes: AnyShape[], tolerance?: number) -> InterferencePair[]',
290
314
  // 数组输入:geometryCollectionArgs 索引对应的 Shape 数组逐元素借入 brepjs handle。
@@ -296,6 +320,137 @@ export const ARG_SPEC = [
296
320
  returnsResult: false,
297
321
  returnType: 'InterferencePair[]',
298
322
  params: ['shapes', 'tolerance'], formClass: 'A',
323
+ engines: ['occt'],
324
+ },
325
+ // Phase 7 待裁决 4(方案 §7.1 建议 4,2026-09-24):occt 独占诊断族进脚本面,
326
+ // 统一 `inspect*` 命名(不走 measure*——避免与中立量形成误导性双轨)。三条无
327
+ // 中立替代的族:干涉 / 曲率 / 质量属性(惯量/主轴)。name 与 vendored 导出
328
+ // 解耦(renderQuery 按 source 的 exportName 导入、按 name 声明),engines:['occt']
329
+ // → 函数体第一行执行前断言(D11-4)。
330
+ {
331
+ name: 'inspectInterference',
332
+ source: 'measurement/interferenceFns.js#checkInterference',
333
+ kind: 'skip',
334
+ module: 'measurement',
335
+ args: '(a: Shape, b: Shape, tolerance?: number) -> InterferenceResult',
336
+ geometryArgs: [0, 1],
337
+ queryParams: [
338
+ { name: 'a', type: 'Shape', docs: '第一个形状' },
339
+ { name: 'b', type: 'Shape', docs: '第二个形状' },
340
+ { name: 'tolerance', type: 'number', optional: true, docs: '干涉距离阈值(缺省 1e-6)' },
341
+ ],
342
+ returnsResult: true,
343
+ returnType: 'InterferenceResult',
344
+ params: ['a', 'b', 'tolerance'], formClass: 'A',
345
+ engines: ['occt'],
346
+ scriptFace: true,
347
+ reason: 'occt 独占诊断(装配/公差刚需,无中立替代)→ inspect* 命名进脚本面(§7 待裁决 4)',
348
+ },
349
+ {
350
+ name: 'inspectAllInterferences',
351
+ source: 'measurement/interferenceFns.js#checkAllInterferences',
352
+ kind: 'skip',
353
+ module: 'measurement',
354
+ args: '(shapes: Shape[], tolerance?: number) -> InterferencePair[]',
355
+ geometryCollectionArgs: [0],
356
+ queryParams: [
357
+ { name: 'shapes', type: 'Shape[]', docs: '成对检测的形状数组' },
358
+ { name: 'tolerance', type: 'number', optional: true, docs: '干涉距离阈值(缺省 1e-6)' },
359
+ ],
360
+ returnsResult: false,
361
+ returnType: 'InterferencePair[]',
362
+ params: ['shapes', 'tolerance'], formClass: 'A',
363
+ engines: ['occt'],
364
+ scriptFace: true,
365
+ reason: 'occt 独占诊断(装配/公差刚需,无中立替代)→ inspect* 命名进脚本面(§7 待裁决 4)',
366
+ },
367
+ {
368
+ name: 'inspectCurvature',
369
+ source: 'measurement/measureFns.js#measureCurvatureAt',
370
+ kind: 'skip',
371
+ module: 'measurement',
372
+ args: '(face: Shape, u: number, v: number) -> CurvatureResult',
373
+ geometryArgs: [0],
374
+ queryParams: [
375
+ { name: 'face', type: 'Shape', docs: '被查询的曲面/面' },
376
+ { name: 'u', type: 'number', docs: '参数域 u' },
377
+ { name: 'v', type: 'number', docs: '参数域 v' },
378
+ ],
379
+ returnsResult: true,
380
+ returnType: 'CurvatureResult',
381
+ params: ['face', 'u', 'v'], formClass: 'A',
382
+ engines: ['occt'],
383
+ scriptFace: true,
384
+ reason: 'occt 独占诊断(曲面质量诊断,无中立替代)→ inspect* 命名进脚本面(§7 待裁决 4)',
385
+ },
386
+ {
387
+ name: 'inspectCurvatureAtMid',
388
+ source: 'measurement/measureFns.js#measureCurvatureAtMid',
389
+ kind: 'skip',
390
+ module: 'measurement',
391
+ args: '(face: Shape) -> CurvatureResult',
392
+ geometryArgs: [0],
393
+ queryParams: [{ name: 'face', type: 'Shape', docs: '被查询的曲面/面(取参数域中点)' }],
394
+ returnsResult: true,
395
+ returnType: 'CurvatureResult',
396
+ params: ['face'], formClass: 'A',
397
+ engines: ['occt'],
398
+ scriptFace: true,
399
+ reason: 'occt 独占诊断(曲面质量诊断,无中立替代)→ inspect* 命名进脚本面(§7 待裁决 4)',
400
+ },
401
+ {
402
+ name: 'inspectMassProps',
403
+ source: 'measurement/measureFns.js#measureVolumeProps',
404
+ kind: 'query',
405
+ module: 'measurement',
406
+ selfhost: true,
407
+ args: '(shape: Shape) -> { volume, area, centerOfMass }(core selfhost)',
408
+ geometryArgs: [0],
409
+ queryParams: [{ name: 'shape', type: 'Shape', docs: '目标实体(体积/质心/惯量/主轴)' }],
410
+ returnsResult: true,
411
+ returnType: '{ volume: number; area: number; centerOfMass: { x: number; y: number; z: number } }',
412
+ params: ['shape'], formClass: 'A',
413
+ engines: ['occt'],
414
+ scriptFace: true,
415
+ reason: 'occt 独占诊断(绕轴惯性矩/主轴,中立面没有)→ inspect* 命名进脚本面(§7 待裁决 4)',
416
+ },
417
+ // Phase 7(narrowing plan §Phase 7 / Q4):cad 脚本面测量 op(手写实现,
418
+ // kind 'faijs'——api/measurement/index.ts)。直接调 getBrepApi() 的 L1 测量面
419
+ // (getSurfaceArea / getLength),无 vendored 借入层、无引擎绑定 → **中立 op**
420
+ // (occt / brepkit 同一份 .fai.js 可跑)。返回纯数字,不产出 Shape。
421
+ // 三源一致(B1):scriptFace: true → gen-l3-surface 进 script-face.ts /
422
+ // script-face-manifest.ts,gen-symbol-table 同步 check() 符号表。
423
+ {
424
+ name: 'area',
425
+ source: 'measurement/index.js#area',
426
+ kind: 'faijs',
427
+ module: 'measurement',
428
+ args: '(shape: Shape) -> number(面积 mm²)',
429
+ scriptFace: true,
430
+ },
431
+ {
432
+ name: 'length',
433
+ source: 'measurement/index.js#length',
434
+ kind: 'faijs',
435
+ module: 'measurement',
436
+ args: '(shape: Shape) -> number(长度 mm)',
437
+ scriptFace: true,
438
+ },
439
+ {
440
+ name: 'volume',
441
+ source: 'measurement/index.js#volume',
442
+ kind: 'faijs',
443
+ module: 'measurement',
444
+ args: '(shape: Shape) -> number(体积 mm³)',
445
+ scriptFace: true,
446
+ },
447
+ {
448
+ name: 'centerOfMass',
449
+ source: 'measurement/index.js#centerOfMass',
450
+ kind: 'faijs',
451
+ module: 'measurement',
452
+ args: '(shape: Shape) -> BrepVec3(质心 mm)',
453
+ scriptFace: true,
299
454
  },
300
455
  // ──── P14 第二片:text 模块(8 符号:3 pure + 3 skip + 2 type)────
301
456
  // 纯字体/度量函数直接 re-export;字体加载(fetch/ArrayBuffer + 全局注册表
@@ -304,32 +459,37 @@ export const ARG_SPEC = [
304
459
  {
305
460
  name: 'FontMetricsResult',
306
461
  source: 'text/textMetrics.js#FontMetricsResult',
307
- kind: 'type',
462
+ kind: 'skip',
308
463
  module: 'text',
464
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
309
465
  },
310
466
  {
311
467
  name: 'TextMetricsResult',
312
468
  source: 'text/textMetrics.js#TextMetricsResult',
313
- kind: 'type',
469
+ kind: 'skip',
314
470
  module: 'text',
471
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
315
472
  },
316
473
  {
317
474
  name: 'fontMetrics',
318
475
  source: 'text/textMetrics.js#fontMetrics',
319
- kind: 'pure',
476
+ kind: 'skip',
320
477
  module: 'text',
478
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
321
479
  },
322
480
  {
323
481
  name: 'getFont',
324
482
  source: 'text/fontRegistry.js#getFont',
325
- kind: 'pure',
483
+ kind: 'skip',
326
484
  module: 'text',
485
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
327
486
  },
328
487
  {
329
488
  name: 'textMetrics',
330
489
  source: 'text/textMetrics.js#textMetrics',
331
- kind: 'pure',
490
+ kind: 'skip',
332
491
  module: 'text',
492
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
333
493
  },
334
494
  {
335
495
  name: 'loadFont',
@@ -362,44 +522,51 @@ export const ARG_SPEC = [
362
522
  {
363
523
  name: 'Camera',
364
524
  source: 'projection/cameraFns.js#Camera',
365
- kind: 'type',
525
+ kind: 'skip',
366
526
  module: 'projection',
527
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
367
528
  },
368
529
  {
369
530
  name: 'CubeFace',
370
531
  source: 'projection/projectionPlanes.js#CubeFace',
371
- kind: 'type',
532
+ kind: 'skip',
372
533
  module: 'projection',
534
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
373
535
  },
374
536
  {
375
537
  name: 'ProjectionPlane',
376
538
  source: 'projection/projectionPlanes.js#ProjectionPlane',
377
- kind: 'type',
539
+ kind: 'skip',
378
540
  module: 'projection',
541
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
379
542
  },
380
543
  {
381
544
  name: 'cameraFromPlane',
382
545
  source: 'projection/cameraFns.js#cameraFromPlane',
383
- kind: 'pure',
546
+ kind: 'skip',
384
547
  module: 'projection',
548
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
385
549
  },
386
550
  {
387
551
  name: 'cameraLookAt',
388
552
  source: 'projection/cameraFns.js#cameraLookAt',
389
- kind: 'pure',
553
+ kind: 'skip',
390
554
  module: 'projection',
555
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
391
556
  },
392
557
  {
393
558
  name: 'createCamera',
394
559
  source: 'projection/cameraFns.js#createCamera',
395
- kind: 'pure',
560
+ kind: 'skip',
396
561
  module: 'projection',
562
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
397
563
  },
398
564
  {
399
565
  name: 'isProjectionPlane',
400
566
  source: 'projection/projectionPlanes.js#isProjectionPlane',
401
- kind: 'pure',
567
+ kind: 'skip',
402
568
  module: 'projection',
569
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
403
570
  },
404
571
  {
405
572
  name: 'makeProjectedEdges',
@@ -455,50 +622,58 @@ export const ARG_SPEC = [
455
622
  {
456
623
  name: 'CornerFilter',
457
624
  source: 'query/finderFns.js#CornerFilter',
458
- kind: 'type',
625
+ kind: 'skip',
459
626
  module: 'query',
627
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
460
628
  },
461
629
  {
462
630
  name: 'CornerFinderFn',
463
631
  source: 'query/finderFns.js#CornerFinderFn',
464
- kind: 'type',
632
+ kind: 'skip',
465
633
  module: 'query',
634
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
466
635
  },
467
636
  {
468
637
  name: 'EdgeFinderFn',
469
638
  source: 'query/finderFns.js#EdgeFinderFn',
470
- kind: 'type',
639
+ kind: 'skip',
471
640
  module: 'query',
641
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
472
642
  },
473
643
  {
474
644
  name: 'FaceFinderFn',
475
645
  source: 'query/finderFns.js#FaceFinderFn',
476
- kind: 'type',
646
+ kind: 'skip',
477
647
  module: 'query',
648
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
478
649
  },
479
650
  {
480
651
  name: 'ShapeFinder',
481
652
  source: 'query/finderFns.js#ShapeFinder',
482
- kind: 'type',
653
+ kind: 'skip',
483
654
  module: 'query',
655
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
484
656
  },
485
657
  {
486
658
  name: 'SingleFace',
487
659
  source: 'query/helpers.js#SingleFace',
488
- kind: 'type',
660
+ kind: 'skip',
489
661
  module: 'query',
662
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
490
663
  },
491
664
  {
492
665
  name: 'VertexFinderFn',
493
666
  source: 'query/finderFns.js#VertexFinderFn',
494
- kind: 'type',
667
+ kind: 'skip',
495
668
  module: 'query',
669
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
496
670
  },
497
671
  {
498
672
  name: 'WireFinderFn',
499
673
  source: 'query/finderFns.js#WireFinderFn',
500
- kind: 'type',
674
+ kind: 'skip',
501
675
  module: 'query',
676
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
502
677
  },
503
678
  {
504
679
  name: 'cornerFinder',
@@ -558,56 +733,65 @@ export const ARG_SPEC = [
558
733
  {
559
734
  name: 'booleans',
560
735
  source: 'index.js#booleans',
561
- kind: 'pure',
736
+ kind: 'skip',
562
737
  module: 'ns',
738
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
563
739
  },
564
740
  {
565
741
  name: 'construction',
566
742
  source: 'index.js#construction',
567
- kind: 'pure',
743
+ kind: 'skip',
568
744
  module: 'ns',
745
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
569
746
  },
570
747
  {
571
748
  name: 'io',
572
749
  source: 'index.js#io',
573
- kind: 'pure',
750
+ kind: 'skip',
574
751
  module: 'ns',
752
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
575
753
  },
576
754
  {
577
755
  name: 'measurement',
578
756
  source: 'index.js#measurement',
579
- kind: 'pure',
757
+ kind: 'skip',
580
758
  module: 'ns',
759
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
581
760
  },
582
761
  {
583
762
  name: 'modifiers',
584
763
  source: 'index.js#modifiers',
585
- kind: 'pure',
764
+ kind: 'skip',
586
765
  module: 'ns',
766
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
587
767
  },
588
768
  {
589
769
  name: 'patterns',
590
770
  source: 'index.js#patterns',
591
- kind: 'pure',
771
+ kind: 'skip',
592
772
  module: 'ns',
773
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
593
774
  },
594
775
  {
595
776
  name: 'primitives',
596
777
  source: 'index.js#primitives',
597
- kind: 'pure',
778
+ kind: 'skip',
598
779
  module: 'ns',
780
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
599
781
  },
600
782
  {
601
783
  name: 'query',
602
784
  source: 'index.js#query',
603
- kind: 'pure',
785
+ kind: 'skip',
604
786
  module: 'ns',
787
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
605
788
  },
606
789
  {
607
790
  name: 'transforms',
608
791
  source: 'index.js#transforms',
609
- kind: 'pure',
792
+ kind: 'skip',
610
793
  module: 'ns',
794
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
611
795
  },
612
796
  // ──── P14 第五片:gear 模块(17 符号 = 11 type + 3 pure + 3 skip)────
613
797
  // 纯数学/校验助手(无 Shape 参数,返回几何数据/校验结果)→ pure 直连 brepjs 函数。
@@ -620,86 +804,100 @@ export const ARG_SPEC = [
620
804
  {
621
805
  name: 'ExternalGearParams',
622
806
  source: 'gear/index.js#ExternalGearParams',
623
- kind: 'type',
807
+ kind: 'skip',
624
808
  module: 'gear',
809
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
625
810
  },
626
811
  {
627
812
  name: 'GearDiagnostic',
628
813
  source: 'gear/index.js#GearDiagnostic',
629
- kind: 'type',
814
+ kind: 'skip',
630
815
  module: 'gear',
816
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
631
817
  },
632
818
  {
633
819
  name: 'GearDiagnosticCode',
634
820
  source: 'gear/index.js#GearDiagnosticCode',
635
- kind: 'type',
821
+ kind: 'skip',
636
822
  module: 'gear',
823
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
637
824
  },
638
825
  {
639
826
  name: 'GearDiagnosticSeverity',
640
827
  source: 'gear/index.js#GearDiagnosticSeverity',
641
- kind: 'type',
828
+ kind: 'skip',
642
829
  module: 'gear',
830
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
643
831
  },
644
832
  {
645
833
  name: 'GearGeometry',
646
834
  source: 'gear/index.js#GearGeometry',
647
- kind: 'type',
835
+ kind: 'skip',
648
836
  module: 'gear',
837
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
649
838
  },
650
839
  {
651
840
  name: 'GearResult',
652
841
  source: 'gear/index.js#GearResult',
653
- kind: 'type',
842
+ kind: 'skip',
654
843
  module: 'gear',
844
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
655
845
  },
656
846
  {
657
847
  name: 'InternalGearParams',
658
848
  source: 'gear/index.js#InternalGearParams',
659
- kind: 'type',
849
+ kind: 'skip',
660
850
  module: 'gear',
851
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
661
852
  },
662
853
  {
663
854
  name: 'PlanetPlacement',
664
855
  source: 'gear/index.js#PlanetPlacement',
665
- kind: 'type',
856
+ kind: 'skip',
666
857
  module: 'gear',
858
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
667
859
  },
668
860
  {
669
861
  name: 'PlanetPlacementParams',
670
862
  source: 'gear/index.js#PlanetPlacementParams',
671
- kind: 'type',
863
+ kind: 'skip',
672
864
  module: 'gear',
865
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
673
866
  },
674
867
  {
675
868
  name: 'PlanetaryGearAssembly',
676
869
  source: 'gear/index.js#PlanetaryGearAssembly',
677
- kind: 'type',
870
+ kind: 'skip',
678
871
  module: 'gear',
872
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
679
873
  },
680
874
  {
681
875
  name: 'PlanetaryGearParams',
682
876
  source: 'gear/index.js#PlanetaryGearParams',
683
- kind: 'type',
877
+ kind: 'skip',
684
878
  module: 'gear',
879
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
685
880
  },
686
881
  {
687
882
  name: 'gearGeometry',
688
883
  source: 'gear/index.js#gearGeometry',
689
- kind: 'pure',
884
+ kind: 'skip',
690
885
  module: 'gear',
886
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
691
887
  },
692
888
  {
693
889
  name: 'planetPlacements',
694
890
  source: 'gear/index.js#planetPlacements',
695
- kind: 'pure',
891
+ kind: 'skip',
696
892
  module: 'gear',
893
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
697
894
  },
698
895
  {
699
896
  name: 'validatePlanetary',
700
897
  source: 'gear/index.js#validatePlanetary',
701
- kind: 'pure',
898
+ kind: 'skip',
702
899
  module: 'gear',
900
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
703
901
  },
704
902
  {
705
903
  name: 'makeExternalGear',
@@ -736,74 +934,86 @@ export const ARG_SPEC = [
736
934
  {
737
935
  name: 'Blueprint',
738
936
  source: 'index.js#Blueprint',
739
- kind: 'type',
937
+ kind: 'skip',
740
938
  module: '2d',
939
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
741
940
  },
742
941
  {
743
942
  name: 'Blueprints',
744
943
  source: 'index.js#Blueprints',
745
- kind: 'type',
944
+ kind: 'skip',
746
945
  module: '2d',
946
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
747
947
  },
748
948
  {
749
949
  name: 'BoundingBox2d',
750
950
  source: 'index.js#BoundingBox2d',
751
- kind: 'type',
951
+ kind: 'skip',
752
952
  module: '2d',
953
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
753
954
  },
754
955
  {
755
956
  name: 'CompoundBlueprint',
756
957
  source: 'index.js#CompoundBlueprint',
757
- kind: 'type',
958
+ kind: 'skip',
758
959
  module: '2d',
960
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
759
961
  },
760
962
  {
761
963
  name: 'Curve2D',
762
964
  source: 'index.js#Curve2D',
763
- kind: 'type',
965
+ kind: 'skip',
764
966
  module: '2d',
967
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
765
968
  },
766
969
  {
767
970
  name: 'DrawingInterface',
768
971
  source: 'index.js#DrawingInterface',
769
- kind: 'type',
972
+ kind: 'skip',
770
973
  module: '2d',
974
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
771
975
  },
772
976
  {
773
977
  name: 'GenericSketcher',
774
978
  source: 'index.js#GenericSketcher',
775
- kind: 'type',
979
+ kind: 'skip',
776
980
  module: '2d',
981
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
777
982
  },
778
983
  {
779
984
  name: 'Point2D',
780
985
  source: 'index.js#Point2D',
781
- kind: 'type',
986
+ kind: 'skip',
782
987
  module: '2d',
988
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
783
989
  },
784
990
  {
785
991
  name: 'ScaleMode',
786
992
  source: 'index.js#ScaleMode',
787
- kind: 'type',
993
+ kind: 'skip',
788
994
  module: '2d',
995
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
789
996
  },
790
997
  {
791
998
  name: 'Shape2D',
792
999
  source: 'index.js#Shape2D',
793
- kind: 'type',
1000
+ kind: 'skip',
794
1001
  module: '2d',
1002
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
795
1003
  },
796
1004
  {
797
1005
  name: 'SketchData',
798
1006
  source: 'index.js#SketchData',
799
- kind: 'type',
1007
+ kind: 'skip',
800
1008
  module: '2d',
1009
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
801
1010
  },
802
1011
  {
803
1012
  name: 'SplineOptions',
804
1013
  source: 'index.js#SplineOptions',
805
- kind: 'type',
1014
+ kind: 'skip',
806
1015
  module: '2d',
1016
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
807
1017
  },
808
1018
  {
809
1019
  name: 'BaseSketcher2d',
@@ -1049,74 +1259,86 @@ export const ARG_SPEC = [
1049
1259
  {
1050
1260
  name: 'DXFEntity',
1051
1261
  source: 'index.js#DXFEntity',
1052
- kind: 'type',
1262
+ kind: 'skip',
1053
1263
  module: 'io',
1264
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1054
1265
  },
1055
1266
  {
1056
1267
  name: 'DXFExportOptions',
1057
1268
  source: 'index.js#DXFExportOptions',
1058
- kind: 'type',
1269
+ kind: 'skip',
1059
1270
  module: 'io',
1271
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1060
1272
  },
1061
1273
  {
1062
1274
  name: 'DXFImportOptions',
1063
1275
  source: 'index.js#DXFImportOptions',
1064
- kind: 'type',
1276
+ kind: 'skip',
1065
1277
  module: 'io',
1278
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1066
1279
  },
1067
1280
  {
1068
1281
  name: 'GltfExportOptions',
1069
1282
  source: 'index.js#GltfExportOptions',
1070
- kind: 'type',
1283
+ kind: 'skip',
1071
1284
  module: 'io',
1285
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1072
1286
  },
1073
1287
  {
1074
1288
  name: 'GltfFace',
1075
1289
  source: 'index.js#GltfFace',
1076
- kind: 'type',
1290
+ kind: 'skip',
1077
1291
  module: 'io',
1292
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1078
1293
  },
1079
1294
  {
1080
1295
  name: 'GltfMaterial',
1081
1296
  source: 'index.js#GltfMaterial',
1082
- kind: 'type',
1297
+ kind: 'skip',
1083
1298
  module: 'io',
1299
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1084
1300
  },
1085
1301
  {
1086
1302
  name: 'MaterialFn',
1087
1303
  source: 'index.js#MaterialFn',
1088
- kind: 'type',
1304
+ kind: 'skip',
1089
1305
  module: 'io',
1306
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1090
1307
  },
1091
1308
  {
1092
1309
  name: 'StepExportOptions',
1093
1310
  source: 'index.js#StepExportOptions',
1094
- kind: 'type',
1311
+ kind: 'skip',
1095
1312
  module: 'io',
1313
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1096
1314
  },
1097
1315
  {
1098
1316
  name: 'StepExportPart',
1099
1317
  source: 'index.js#StepExportPart',
1100
- kind: 'type',
1318
+ kind: 'skip',
1101
1319
  module: 'io',
1320
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1102
1321
  },
1103
1322
  {
1104
1323
  name: 'SVGImportOptions',
1105
1324
  source: 'index.js#SVGImportOptions',
1106
- kind: 'type',
1325
+ kind: 'skip',
1107
1326
  module: 'io',
1327
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1108
1328
  },
1109
1329
  {
1110
1330
  name: 'ThreeMFExportOptions',
1111
1331
  source: 'index.js#ThreeMFExportOptions',
1112
- kind: 'type',
1332
+ kind: 'skip',
1113
1333
  module: 'io',
1334
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1114
1335
  },
1115
1336
  {
1116
1337
  name: 'ThreeMFMaterial',
1117
1338
  source: 'index.js#ThreeMFMaterial',
1118
- kind: 'type',
1339
+ kind: 'skip',
1119
1340
  module: 'io',
1341
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1120
1342
  },
1121
1343
  {
1122
1344
  name: 'blueprintToDXF',
@@ -1232,199 +1454,201 @@ export const ARG_SPEC = [
1232
1454
  },
1233
1455
  // ──── P14 第八片:operations 模块(122 符号 = 16 brep-op + 11 pure + 45 skip + 8u/others) ────
1234
1456
  // brep-op:Shapeable<…> 单/双形状入参 → faijs Shape 借入 → vendored Result → adopt 单产物;
1235
- // 数组形状入参(loft/guidedSweep/multiSectionSweep 的 Wire[])与多产物结果(extrudeAll/
1236
- // loftAll = Shape[]/ValidSolid[])不在单产物收养模板内 → skip(与 P14 派生早先判据一致);
1457
+ // 数组形状入参(loft/guidedSweep/multiSectionSweep 的 Wire[])已无障碍——compat-op 的
1458
+ // borrowDeep 递归借入数组/对象内的 Shape(2026-09-24 校正:loft 已由手写平台 op 上脚本面,
1459
+ // guidedSweep/multiSectionSweep 的真障碍是 wire 输入 + 多截面/导轨语义,见各自条目);
1460
+ // 多产物结果(extrudeAll/loftAll = Shape[]/ValidSolid[])不在单产物收养模板内 → skip;
1237
1461
  // history/assembly/mate/instance 家族 = 状态化 DSL / kernel 句柄容器 → skip;
1238
1462
  // export*/createAssembly = host IO(同 io 判据)/宿主 API → skip;KernelType raw 句柄入参
1239
1463
  //(supportExtrude)→ skip。joint 构造/数值助手与骨架计算 → pure。
1240
1464
  {
1241
1465
  // ---- 类型(全部 re-export;barrel 别名走 index.js)----
1242
- name: 'AssemblyExporter', source: 'operations/exporters.js#AssemblyExporter', kind: 'type', module: 'operations', reason: '',
1466
+ name: 'AssemblyExporter', source: 'operations/exporters.js#AssemblyExporter', kind: 'skip', module: 'operations', reason: '',
1243
1467
  },
1244
1468
  {
1245
- name: 'AssemblyNode', source: 'operations/assemblyFns.js#AssemblyNode', kind: 'type', module: 'operations', reason: '',
1469
+ name: 'AssemblyNode', source: 'operations/assemblyFns.js#AssemblyNode', kind: 'skip', module: 'operations', reason: '',
1246
1470
  },
1247
1471
  {
1248
- name: 'AssemblyNodeOptions', source: 'operations/assemblyFns.js#AssemblyNodeOptions', kind: 'type', module: 'operations', reason: '',
1472
+ name: 'AssemblyNodeOptions', source: 'operations/assemblyFns.js#AssemblyNodeOptions', kind: 'skip', module: 'operations', reason: '',
1249
1473
  },
1250
1474
  {
1251
- name: 'AssemblySolveResult', source: 'operations/mateFns.js#AssemblySolveResult', kind: 'type', module: 'operations', reason: '',
1475
+ name: 'AssemblySolveResult', source: 'operations/mateFns.js#AssemblySolveResult', kind: 'skip', module: 'operations', reason: '',
1252
1476
  },
1253
1477
  {
1254
- name: 'CleanLoftOptions', source: 'index.js#CleanLoftOptions', kind: 'type', module: 'operations', reason: '',
1478
+ name: 'CleanLoftOptions', source: 'index.js#CleanLoftOptions', kind: 'skip', module: 'operations', reason: '',
1255
1479
  },
1256
1480
  {
1257
- name: 'CleanSweepOptions', source: 'index.js#CleanSweepOptions', kind: 'type', module: 'operations', reason: '',
1481
+ name: 'CleanSweepOptions', source: 'index.js#CleanSweepOptions', kind: 'skip', module: 'operations', reason: '',
1258
1482
  },
1259
1483
  {
1260
- name: 'CylindricalOptions', source: 'operations/jointFns.js#CylindricalOptions', kind: 'type', module: 'operations', reason: '',
1484
+ name: 'CylindricalOptions', source: 'operations/jointFns.js#CylindricalOptions', kind: 'skip', module: 'operations', reason: '',
1261
1485
  },
1262
1486
  {
1263
- name: 'DHOptions', source: 'operations/dhFns.js#DHOptions', kind: 'type', module: 'operations', reason: '',
1487
+ name: 'DHOptions', source: 'operations/dhFns.js#DHOptions', kind: 'skip', module: 'operations', reason: '',
1264
1488
  },
1265
1489
  {
1266
- name: 'DHRow', source: 'operations/dhFns.js#DHRow', kind: 'type', module: 'operations', reason: '',
1490
+ name: 'DHRow', source: 'operations/dhFns.js#DHRow', kind: 'skip', module: 'operations', reason: '',
1267
1491
  },
1268
1492
  {
1269
- name: 'ExtrudeAllEntry', source: 'operations/extrudeFns.js#ExtrudeAllEntry', kind: 'type', module: 'operations', reason: '',
1493
+ name: 'ExtrudeAllEntry', source: 'operations/extrudeFns.js#ExtrudeAllEntry', kind: 'skip', module: 'operations', reason: '',
1270
1494
  },
1271
1495
  {
1272
- name: 'ExtrusionProfile', source: 'operations/extrudeFns.js#ExtrusionProfile', kind: 'type', module: 'operations', reason: '',
1496
+ name: 'ExtrusionProfile', source: 'operations/extrudeFns.js#ExtrusionProfile', kind: 'skip', module: 'operations', reason: '',
1273
1497
  },
1274
1498
  {
1275
- name: 'GuidedSweepOptions', source: 'operations/guidedSweepFns.js#GuidedSweepOptions', kind: 'type', module: 'operations', reason: '',
1499
+ name: 'GuidedSweepOptions', source: 'operations/guidedSweepFns.js#GuidedSweepOptions', kind: 'skip', module: 'operations', reason: '',
1276
1500
  },
1277
1501
  {
1278
- name: 'HistoryOperationRegistry', source: 'index.js#HistoryOperationRegistry', kind: 'type', module: 'operations', reason: '',
1502
+ name: 'HistoryOperationRegistry', source: 'index.js#HistoryOperationRegistry', kind: 'skip', module: 'operations', reason: '',
1279
1503
  },
1280
1504
  {
1281
- name: 'IKOptions', source: 'operations/ikFns.js#IKOptions', kind: 'type', module: 'operations', reason: '',
1505
+ name: 'IKOptions', source: 'operations/ikFns.js#IKOptions', kind: 'skip', module: 'operations', reason: '',
1282
1506
  },
1283
1507
  {
1284
- name: 'IKResult', source: 'operations/ikFns.js#IKResult', kind: 'type', module: 'operations', reason: '',
1508
+ name: 'IKResult', source: 'operations/ikFns.js#IKResult', kind: 'skip', module: 'operations', reason: '',
1285
1509
  },
1286
1510
  {
1287
- name: 'IKTarget', source: 'operations/ikFns.js#IKTarget', kind: 'type', module: 'operations', reason: '',
1511
+ name: 'IKTarget', source: 'operations/ikFns.js#IKTarget', kind: 'skip', module: 'operations', reason: '',
1288
1512
  },
1289
1513
  {
1290
- name: 'InstancedMesh', source: 'operations/instanceFns.js#InstancedMesh', kind: 'type', module: 'operations', reason: '',
1514
+ name: 'InstancedMesh', source: 'operations/instanceFns.js#InstancedMesh', kind: 'skip', module: 'operations', reason: '',
1291
1515
  },
1292
1516
  {
1293
- name: 'InstancedShape', source: 'operations/instanceFns.js#InstancedShape', kind: 'type', module: 'operations', reason: '',
1517
+ name: 'InstancedShape', source: 'operations/instanceFns.js#InstancedShape', kind: 'skip', module: 'operations', reason: '',
1294
1518
  },
1295
1519
  {
1296
- name: 'InstanceGridOptions', source: 'operations/instanceFns.js#InstanceGridOptions', kind: 'type', module: 'operations', reason: '',
1520
+ name: 'InstanceGridOptions', source: 'operations/instanceFns.js#InstanceGridOptions', kind: 'skip', module: 'operations', reason: '',
1297
1521
  },
1298
1522
  {
1299
- name: 'Joint', source: 'operations/jointFns.js#Joint', kind: 'type', module: 'operations', reason: '',
1523
+ name: 'Joint', source: 'operations/jointFns.js#Joint', kind: 'skip', module: 'operations', reason: '',
1300
1524
  },
1301
1525
  {
1302
- name: 'JointAxis', source: 'operations/jointFns.js#JointAxis', kind: 'type', module: 'operations', reason: '',
1526
+ name: 'JointAxis', source: 'operations/jointFns.js#JointAxis', kind: 'skip', module: 'operations', reason: '',
1303
1527
  },
1304
1528
  {
1305
- name: 'JointDOF', source: 'operations/jointFns.js#JointDOF', kind: 'type', module: 'operations', reason: '',
1529
+ name: 'JointDOF', source: 'operations/jointFns.js#JointDOF', kind: 'skip', module: 'operations', reason: '',
1306
1530
  },
1307
1531
  {
1308
- name: 'JointOptions', source: 'operations/jointFns.js#JointOptions', kind: 'type', module: 'operations', reason: '',
1532
+ name: 'JointOptions', source: 'operations/jointFns.js#JointOptions', kind: 'skip', module: 'operations', reason: '',
1309
1533
  },
1310
1534
  {
1311
- name: 'JointPose', source: 'operations/jointFns.js#JointPose', kind: 'type', module: 'operations', reason: '',
1535
+ name: 'JointPose', source: 'operations/jointFns.js#JointPose', kind: 'skip', module: 'operations', reason: '',
1312
1536
  },
1313
1537
  {
1314
- name: 'JointType', source: 'operations/jointFns.js#JointType', kind: 'type', module: 'operations', reason: '',
1538
+ name: 'JointType', source: 'operations/jointFns.js#JointType', kind: 'skip', module: 'operations', reason: '',
1315
1539
  },
1316
1540
  {
1317
- name: 'LoftAllEntry', source: 'operations/loftFns.js#LoftAllEntry', kind: 'type', module: 'operations', reason: '',
1541
+ name: 'LoftAllEntry', source: 'operations/loftFns.js#LoftAllEntry', kind: 'skip', module: 'operations', reason: '',
1318
1542
  },
1319
1543
  {
1320
- name: 'MateConstraint', source: 'operations/mateFns.js#MateConstraint', kind: 'type', module: 'operations', reason: '',
1544
+ name: 'MateConstraint', source: 'operations/mateFns.js#MateConstraint', kind: 'skip', module: 'operations', reason: '',
1321
1545
  },
1322
1546
  {
1323
- name: 'MateEntity', source: 'operations/mateFns.js#MateEntity', kind: 'type', module: 'operations', reason: '',
1547
+ name: 'MateEntity', source: 'operations/mateFns.js#MateEntity', kind: 'skip', module: 'operations', reason: '',
1324
1548
  },
1325
1549
  {
1326
- name: 'MaterializeOptions', source: 'operations/instanceFns.js#MaterializeOptions', kind: 'type', module: 'operations', reason: '',
1550
+ name: 'MaterializeOptions', source: 'operations/instanceFns.js#MaterializeOptions', kind: 'skip', module: 'operations', reason: '',
1327
1551
  },
1328
1552
  {
1329
- name: 'ModelHistory', source: 'operations/historyFns.js#ModelHistory', kind: 'type', module: 'operations', reason: '',
1553
+ name: 'ModelHistory', source: 'operations/historyFns.js#ModelHistory', kind: 'skip', module: 'operations', reason: '',
1330
1554
  },
1331
1555
  {
1332
- name: 'MultiSweepOptions', source: 'operations/multiSweepFns.js#MultiSweepOptions', kind: 'type', module: 'operations', reason: '',
1556
+ name: 'MultiSweepOptions', source: 'operations/multiSweepFns.js#MultiSweepOptions', kind: 'skip', module: 'operations', reason: '',
1333
1557
  },
1334
1558
  {
1335
- name: 'OperationFn', source: 'operations/historyFns.js#OperationFn', kind: 'type', module: 'operations', reason: '',
1559
+ name: 'OperationFn', source: 'operations/historyFns.js#OperationFn', kind: 'skip', module: 'operations', reason: '',
1336
1560
  },
1337
1561
  {
1338
- name: 'OperationStep', source: 'operations/historyFns.js#OperationStep', kind: 'type', module: 'operations', reason: '',
1562
+ name: 'OperationStep', source: 'operations/historyFns.js#OperationStep', kind: 'skip', module: 'operations', reason: '',
1339
1563
  },
1340
1564
  {
1341
- name: 'PlanarOptions', source: 'operations/jointFns.js#PlanarOptions', kind: 'type', module: 'operations', reason: '',
1565
+ name: 'PlanarOptions', source: 'operations/jointFns.js#PlanarOptions', kind: 'skip', module: 'operations', reason: '',
1342
1566
  },
1343
1567
  {
1344
- name: 'RevolveOptions', source: 'operations/api.js#RevolveOptions', kind: 'type', module: 'operations', reason: '',
1568
+ name: 'RevolveOptions', source: 'operations/api.js#RevolveOptions', kind: 'skip', module: 'operations', reason: '',
1345
1569
  },
1346
1570
  {
1347
- name: 'RoofOptions', source: 'operations/roofFns.js#RoofOptions', kind: 'type', module: 'operations', reason: '',
1571
+ name: 'RoofOptions', source: 'operations/roofFns.js#RoofOptions', kind: 'skip', module: 'operations', reason: '',
1348
1572
  },
1349
1573
  {
1350
- name: 'SerializedHistory', source: 'operations/historyFns.js#SerializedHistory', kind: 'type', module: 'operations', reason: '',
1574
+ name: 'SerializedHistory', source: 'operations/historyFns.js#SerializedHistory', kind: 'skip', module: 'operations', reason: '',
1351
1575
  },
1352
1576
  {
1353
- name: 'ShapeOptions', source: 'operations/exporterFns.js#ShapeOptions', kind: 'type', module: 'operations', reason: '',
1577
+ name: 'ShapeOptions', source: 'operations/exporterFns.js#ShapeOptions', kind: 'skip', module: 'operations', reason: '',
1354
1578
  },
1355
1579
  {
1356
- name: 'SkeletonFace', source: 'operations/straightSkeleton.js#SkeletonFace', kind: 'type', module: 'operations', reason: '',
1580
+ name: 'SkeletonFace', source: 'operations/straightSkeleton.js#SkeletonFace', kind: 'skip', module: 'operations', reason: '',
1357
1581
  },
1358
1582
  {
1359
- name: 'SkeletonNode', source: 'operations/straightSkeleton.js#SkeletonNode', kind: 'type', module: 'operations', reason: '',
1583
+ name: 'SkeletonNode', source: 'operations/straightSkeleton.js#SkeletonNode', kind: 'skip', module: 'operations', reason: '',
1360
1584
  },
1361
1585
  {
1362
- name: 'SkPoint2D', source: 'operations/straightSkeleton.js#SkPoint2D', kind: 'type', module: 'operations', reason: '',
1586
+ name: 'SkPoint2D', source: 'operations/straightSkeleton.js#SkPoint2D', kind: 'skip', module: 'operations', reason: '',
1363
1587
  },
1364
1588
  {
1365
- name: 'SphericalOptions', source: 'operations/jointFns.js#SphericalOptions', kind: 'type', module: 'operations', reason: '',
1589
+ name: 'SphericalOptions', source: 'operations/jointFns.js#SphericalOptions', kind: 'skip', module: 'operations', reason: '',
1366
1590
  },
1367
1591
  {
1368
- name: 'StraightSkeleton', source: 'operations/straightSkeleton.js#StraightSkeleton', kind: 'type', module: 'operations', reason: '',
1592
+ name: 'StraightSkeleton', source: 'operations/straightSkeleton.js#StraightSkeleton', kind: 'skip', module: 'operations', reason: '',
1369
1593
  },
1370
1594
  {
1371
- name: 'SupportedUnit', source: 'operations/exporterFns.js#SupportedUnit', kind: 'type', module: 'operations', reason: '',
1595
+ name: 'SupportedUnit', source: 'operations/exporterFns.js#SupportedUnit', kind: 'skip', module: 'operations', reason: '',
1372
1596
  },
1373
1597
  {
1374
- name: 'SweepOptions', source: 'operations/extrudeFns.js#SweepOptions', kind: 'type', module: 'operations', reason: '',
1598
+ name: 'SweepOptions', source: 'operations/extrudeFns.js#SweepOptions', kind: 'skip', module: 'operations', reason: '',
1375
1599
  },
1376
1600
  {
1377
- name: 'SweepSectionConfig', source: 'operations/multiSweepFns.js#SweepSectionConfig', kind: 'type', module: 'operations', reason: '',
1601
+ name: 'SweepSectionConfig', source: 'operations/multiSweepFns.js#SweepSectionConfig', kind: 'skip', module: 'operations', reason: '',
1378
1602
  },
1379
1603
  {
1380
- name: 'ThreadOptions', source: 'operations/threadFns.js#ThreadOptions', kind: 'type', module: 'operations', reason: '',
1604
+ name: 'ThreadOptions', source: 'operations/threadFns.js#ThreadOptions', kind: 'skip', module: 'operations', reason: '',
1381
1605
  },
1382
1606
  {
1383
- name: 'TrajectorySample', source: 'operations/ikFns.js#TrajectorySample', kind: 'type', module: 'operations', reason: '',
1607
+ name: 'TrajectorySample', source: 'operations/ikFns.js#TrajectorySample', kind: 'skip', module: 'operations', reason: '',
1384
1608
  },
1385
1609
  {
1386
- name: 'UrdfDocument', source: 'operations/urdfFns.js#UrdfDocument', kind: 'type', module: 'operations', reason: '',
1610
+ name: 'UrdfDocument', source: 'operations/urdfFns.js#UrdfDocument', kind: 'skip', module: 'operations', reason: '',
1387
1611
  },
1388
1612
  {
1389
- name: 'UrdfExportOptions', source: 'operations/urdfFns.js#UrdfExportOptions', kind: 'type', module: 'operations', reason: '',
1613
+ name: 'UrdfExportOptions', source: 'operations/urdfFns.js#UrdfExportOptions', kind: 'skip', module: 'operations', reason: '',
1390
1614
  },
1391
1615
  {
1392
1616
  // ---- pure:纯数据/几何构造,直接 re-export ----
1393
- name: 'revoluteJoint', source: 'operations/jointFns.js#revoluteJoint', kind: 'pure', module: 'operations', reason: '纯数据构造(无 kernel/Shape 参数)',
1617
+ name: 'revoluteJoint', source: 'operations/jointFns.js#revoluteJoint', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1394
1618
  },
1395
1619
  {
1396
- name: 'prismaticJoint', source: 'operations/jointFns.js#prismaticJoint', kind: 'pure', module: 'operations', reason: '纯数据构造(无 kernel 参数)',
1620
+ name: 'prismaticJoint', source: 'operations/jointFns.js#prismaticJoint', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1397
1621
  },
1398
1622
  {
1399
- name: 'cylindricalJoint', source: 'operations/jointFns.js#cylindricalJoint', kind: 'pure', module: 'operations', reason: '纯数据构造(无 kernel 参数)',
1623
+ name: 'cylindricalJoint', source: 'operations/jointFns.js#cylindricalJoint', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1400
1624
  },
1401
1625
  {
1402
- name: 'planarJoint', source: 'operations/jointFns.js#planarJoint', kind: 'pure', module: 'operations', reason: '纯数据构造(无 kernel 参数)',
1626
+ name: 'planarJoint', source: 'operations/jointFns.js#planarJoint', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1403
1627
  },
1404
1628
  {
1405
- name: 'sphericalJoint', source: 'operations/jointFns.js#sphericalJoint', kind: 'pure', module: 'operations', reason: '纯数据构造(无 kernel 参数)',
1629
+ name: 'sphericalJoint', source: 'operations/jointFns.js#sphericalJoint', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1406
1630
  },
1407
1631
  {
1408
- name: 'setJointValue', source: 'operations/jointFns.js#setJointValue', kind: 'pure', module: 'operations', reason: 'Joint→Joint 数值更新(纯数据)',
1632
+ name: 'setJointValue', source: 'operations/jointFns.js#setJointValue', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1409
1633
  },
1410
1634
  {
1411
- name: 'setJointValues', source: 'operations/jointFns.js#setJointValues', kind: 'pure', module: 'operations', reason: 'Joint→Joint 数值批量更新(纯数据)',
1635
+ name: 'setJointValues', source: 'operations/jointFns.js#setJointValues', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1412
1636
  },
1413
1637
  {
1414
- name: 'jointTransform', source: 'operations/jointFns.js#jointTransform', kind: 'pure', module: 'operations', reason: 'Joint→JointPose(纯数据)',
1638
+ name: 'jointTransform', source: 'operations/jointFns.js#jointTransform', kind: 'skip', module: 'operations', reason: '§5.6 自有化 core solvers/joints-kinematics(未平铺,generated re-export 冗余)',
1415
1639
  },
1416
1640
  {
1417
- name: 'jointsFromDH', source: 'operations/dhFns.js#jointsFromDH', kind: 'pure', module: 'operations', reason: 'DH 表→Joint[](纯数据)',
1641
+ name: 'jointsFromDH', source: 'operations/dhFns.js#jointsFromDH', kind: 'skip', module: 'operations', reason: '§5.6 后 dhFns 未自有化、未平铺(唯一消费方 p5 随删)',
1418
1642
  },
1419
1643
  {
1420
- name: 'computeStraightSkeleton', source: 'operations/straightSkeleton.js#computeStraightSkeleton', kind: 'pure', module: 'operations', reason: '纯 2D 骨架计算(无 kernel/Shape 参数)',
1644
+ name: 'computeStraightSkeleton', source: 'operations/straightSkeleton.js#computeStraightSkeleton', kind: 'skip', module: 'operations', reason: 'core brep-mirror 有自有版;operations vendored 版未平铺(唯一消费方 p5 随删)',
1421
1645
  },
1422
1646
  {
1423
- name: 'isInstanced', source: 'operations/instanceFns.js#isInstanced', kind: 'pure', module: 'operations', reason: 'type guard(无 kernel 参数)',
1647
+ name: 'isInstanced', source: 'operations/instanceFns.js#isInstanced', kind: 'skip', module: 'operations', reason: '未自有化、未平铺(唯一消费方 p5 随删)',
1424
1648
  },
1425
1649
  {
1426
1650
  // ---- brep-op:单/多单形状入参 → 单产物收养 ----
1427
- name: 'extrude', source: 'operations/api.js#extrude', kind: 'brep-op', capabilities: ["dispose", "downcast", "extrude", "isNull"], module: 'operations',
1651
+ name: 'extrude', source: 'brep-mirror/sweepFns.ts#extrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1428
1652
  geometryArgs: [0],
1429
1653
  reason: 'faijs 侧 cad.extrude 由手写平台 op 覆盖(api/extrude.ts:对象形态 + upTo 拉伸到面/到支持体端面)。本投影只作为「长度形态」的引擎被手写 op 委托调用(vendored 是唯一拉伸引擎,既有 cad.extrude(face,[x,y,z]) 语义零漂移),生成模块符号不直接进 cad 命名空间 by design(同 fillet 口径)。',
1430
1654
  args: 'extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape',
@@ -1432,35 +1656,38 @@ export const ARG_SPEC = [
1432
1656
  naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }] } },
1433
1657
  },
1434
1658
  {
1435
- name: 'revolve', source: 'operations/api.js#revolve', kind: 'brep-op', capabilities: ["dispose", "isNull", "revolveVec", "shapeType"], module: 'operations',
1659
+ name: 'revolve', source: 'brep-mirror/sweepFns.ts#revolveBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1436
1660
  geometryArgs: [0], reason: 'shapeable 面 → Result(Shape3D),brep-op',
1437
1661
  args: 'revolve(face: Shape, options?: RevolveOptions): Shape',
1438
1662
  params: ['face', 'options'], formClass: 'A',
1439
1663
  naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }, { kind: 'wall', index: 0 }] } },
1440
1664
  },
1441
1665
  {
1442
- name: 'sweep', source: 'operations/extrudeFns.js#sweep', kind: 'brep-op', capabilities: ["dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1443
- geometryArgs: [0, 1], reason: 'wire + spine → Result(Shape3D|tuple),默认单产物,brep-op',
1666
+ name: 'sweep', source: 'brep-mirror/sweepFns.ts#sweepBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1667
+ geometryArgs: [0, 1],
1668
+ reason: 'faijs 侧 cad.sweep 由手写平台 op 覆盖(api/sweep.ts:截面接受 face → 取外环;shellMode 元组产物不暴露,§2.4 ①)。本投影保留为引擎记录(capability-map),生成模块符号不直接进 cad 命名空间 by design(同 revolve / extrude 口径)。',
1444
1669
  args: 'sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape',
1445
1670
  params: ['wire', 'spine', 'config', 'shellMode'], formClass: 'A',
1446
1671
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1447
1672
  },
1448
1673
  {
1449
- name: 'complexExtrude', source: 'operations/extrudeFns.js#complexExtrude', kind: 'brep-op', capabilities: ["buildExtrusionLaw", "dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1674
+ name: 'complexExtrude', source: 'brep-mirror/sweepFns.ts#complexExtrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1450
1675
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1451
1676
  args: 'complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape',
1452
1677
  params: ['wire', 'center', 'normal', 'profile'], formClass: 'A',
1678
+ scriptFace: true,
1453
1679
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1454
1680
  },
1455
1681
  {
1456
- name: 'twistExtrude', source: 'operations/extrudeFns.js#twistExtrude', kind: 'brep-op', capabilities: ["buildExtrusionLaw", "dispose", "shapeType", "simplePipe", "sweepPipeShell"], module: 'operations',
1682
+ name: 'twistExtrude', source: 'brep-mirror/sweepFns.ts#twistExtrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1457
1683
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1458
1684
  args: 'twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape',
1459
1685
  params: ['wire', 'angleDegrees', 'center', 'normal'], formClass: 'A',
1686
+ scriptFace: true,
1460
1687
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1461
1688
  },
1462
1689
  {
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',
1690
+ name: 'linearPattern', source: 'brep-mirror/patternFns.ts#linearPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1464
1691
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1465
1692
  args: 'linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape',
1466
1693
  params: ['shape', 'direction', 'count', 'spacing'], formClass: 'A',
@@ -1468,7 +1695,7 @@ export const ARG_SPEC = [
1468
1695
  naming: { kind: 'replicate', k: 0 },
1469
1696
  },
1470
1697
  {
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',
1698
+ name: 'circularPattern', source: 'brep-mirror/patternFns.ts#circularPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1472
1699
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1473
1700
  args: 'circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape',
1474
1701
  params: ['shape', 'axis', 'count', 'fullAngle', 'center'], formClass: 'A',
@@ -1476,7 +1703,7 @@ export const ARG_SPEC = [
1476
1703
  naming: { kind: 'replicate', k: 0 },
1477
1704
  },
1478
1705
  {
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',
1706
+ name: 'gridPattern', source: 'brep-mirror/patternFns.ts#gridPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1480
1707
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1481
1708
  args: 'gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape',
1482
1709
  params: ['shape', 'directionX', 'directionY', 'countX', 'countY', 'spacingX', 'spacingY'], formClass: 'A',
@@ -1484,14 +1711,15 @@ export const ARG_SPEC = [
1484
1711
  naming: { kind: 'replicate', k: 0 },
1485
1712
  },
1486
1713
  {
1487
- name: 'roof', source: 'operations/roofFns.js#roof', kind: 'brep-op', capabilities: ["buildTriFace", "dispose", "fixShape", "isValid", "sew", "sewAndSolidify"], module: 'operations',
1714
+ name: 'roof', source: 'brep-mirror/roofFns.ts#roofBrep', selfhost: true, kind: 'brep-op', capabilities: ["buildTriFace", "dispose", "fixShape", "isValid", "sew", "sewAndSolidify"], module: 'operations',
1488
1715
  geometryArgs: [0], reason: 'wire → Result(ValidSolid)→solid,brep-op',
1489
1716
  args: 'roof(wire: Shape, options?: RoofOptions): Shape',
1490
1717
  params: ['wire', 'options'], formClass: 'A',
1718
+ scriptFace: true,
1491
1719
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1492
1720
  },
1493
1721
  {
1494
- name: 'drill', source: 'operations/compoundOpsFns.js#drill', kind: 'brep-op', capabilities: ["boundingBox", "cut", "cutWithHistory", "dispose", "isNull", "makeCylinder"], module: 'operations',
1722
+ name: 'drill', source: 'brep-mirror/compoundFns.ts#drillBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1495
1723
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1496
1724
  args: 'drill(shape: Shape, options: DrillOptions): Shape',
1497
1725
  params: ['shape', 'options'], formClass: 'A',
@@ -1499,7 +1727,7 @@ export const ARG_SPEC = [
1499
1727
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1500
1728
  },
1501
1729
  {
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',
1730
+ name: 'pocket', source: 'brep-mirror/compoundFns.ts#pocketBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1503
1731
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1504
1732
  args: 'pocket(shape: Shape, options: PocketOptions): Shape',
1505
1733
  params: ['shape', 'options'], formClass: 'A',
@@ -1507,7 +1735,7 @@ export const ARG_SPEC = [
1507
1735
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1508
1736
  },
1509
1737
  {
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',
1738
+ name: 'boss', source: 'brep-mirror/compoundFns.ts#bossBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1511
1739
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1512
1740
  args: 'boss(shape: Shape, options: BossOptions): Shape',
1513
1741
  params: ['shape', 'options'], formClass: 'A',
@@ -1515,7 +1743,7 @@ export const ARG_SPEC = [
1515
1743
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1516
1744
  },
1517
1745
  {
1518
- name: 'mirrorJoin', source: 'operations/compoundOpsFns.js#mirrorJoin', kind: 'brep-op', capabilities: ["dispose", "fuse", "fuseWithHistory", "isNull", "mirrorWithHistory"], module: 'operations',
1746
+ name: 'mirrorJoin', source: 'brep-mirror/compoundFns.ts#mirrorJoinBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1519
1747
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1520
1748
  args: 'mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape',
1521
1749
  params: ['shape', 'options'], formClass: 'A',
@@ -1523,7 +1751,7 @@ export const ARG_SPEC = [
1523
1751
  naming: { kind: 'replicate', k: 2 },
1524
1752
  },
1525
1753
  {
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',
1754
+ name: 'rectangularPattern', source: 'brep-mirror/patternFns.ts#rectangularPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1527
1755
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1528
1756
  args: 'rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape',
1529
1757
  params: ['shape', 'options'], formClass: 'A',
@@ -1531,14 +1759,15 @@ export const ARG_SPEC = [
1531
1759
  naming: { kind: 'replicate', k: 0 },
1532
1760
  },
1533
1761
  {
1534
- name: 'thread', source: 'operations/threadFns.js#thread', kind: 'brep-op', capabilities: ["dispose", "loftAdvanced", "makeLineEdge", "makeVertex", "makeWireFromMixed", "shapeType"], module: 'operations',
1762
+ name: 'thread', source: 'brep-mirror/threadFns.ts#threadBrepOp', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1535
1763
  geometryArgs: [], reason: '仅参数构造 → Result(Shape3D),单产物,brep-op',
1536
1764
  args: 'thread(options: ThreadOptions): Shape',
1537
1765
  params: ['options'], formClass: 'B1',
1538
1766
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1767
+ scriptFace: true,
1539
1768
  },
1540
1769
  {
1541
- name: 'convexHull', source: 'operations/convexHullFns.js#convexHull', kind: 'brep-op', capabilities: ["dispose", "hullFromPoints", "shapeType"], module: 'operations',
1770
+ name: 'convexHull', source: 'brep-mirror/hullFns.ts#convexHullBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1542
1771
  geometryArgs: [], reason: '点集构造 → Result(Solid),单产物,brep-op',
1543
1772
  args: 'convexHull(points: Vec3[]): Shape',
1544
1773
  params: ['points'], formClass: 'A',
@@ -1577,16 +1806,18 @@ export const ARG_SPEC = [
1577
1806
  name: 'extrudeAll', source: 'operations/extrudeFns.js#extrudeAll', kind: 'skip', module: 'operations', reason: '返回 ValidSolid[](多产物),单产物收养缺位,skip',
1578
1807
  },
1579
1808
  {
1580
- name: 'loft', source: 'operations/api.js#loft', kind: 'skip', module: 'operations', reason: '入参 Shapeable<Wire>[](形状数组),brep-op 模板单柄借入不适用,skip',
1809
+ name: 'loft', source: 'operations/api.js#loft', kind: 'skip', module: 'operations',
1810
+ args: 'loft(sections: Shape[], opts?: LoftOptions): Shape',
1811
+ reason: 'overridden by handwritten api/loft.ts (faijs 侧平台 op engines:[occt]:截面接受 face → 取外环;数组入参本身已无障碍——compat-op 的 borrowDeep 递归借入数组,不适用的是输入形态适配)',
1581
1812
  },
1582
1813
  {
1583
1814
  name: 'loftAll', source: 'operations/loftFns.js#loftAll', kind: 'skip', module: 'operations', reason: '返回 Shape3D 数组(多产物),skip',
1584
1815
  },
1585
1816
  {
1586
- name: 'guidedSweep', source: 'operations/guidedSweepFns.js#guidedSweep', kind: 'skip', module: 'operations', reason: 'guides: Wire[](数组)入参,brefreq 模板无法数组借入,skip',
1817
+ name: 'guidedSweep', source: 'operations/guidedSweepFns.js#guidedSweep', kind: 'skip', module: 'operations', reason: 'guides: Wire[] 数组入参本身已无障碍(compat-op 的 borrowDeep 递归借入);faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1587
1818
  },
1588
1819
  {
1589
- name: 'multiSectionSweep', source: 'operations/multiSweepFns.js#multiSectionSweep', kind: 'skip', module: 'operations', reason: 'sections: SweepSectionConfig[](每份含 wire)数组入参,skip',
1820
+ name: 'multiSectionSweep', source: 'operations/multiSweepFns.js#multiSectionSweep', kind: 'skip', module: 'operations', reason: 'sections: SweepSectionConfig[] 数组入参本身已无障碍(compat-op 的 borrowDeep 递归借入);faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1590
1821
  },
1591
1822
  {
1592
1823
  name: 'addJoint', source: 'operations/jointFns.js#addJoint', kind: 'skip', module: 'operations', reason: '运动副 DSL(AssemblyNode 输入):P3 起改由 cad.assembly 的 joints[] 约束面暴露(库面 buildJoint 直调,2026-09-07 方案 §3.1),仍不直接暴露',
@@ -1688,358 +1919,360 @@ export const ARG_SPEC = [
1688
1919
  // shapeTypes 裸句柄族登记 skip;纯数据函数与常量直接 re-export(pure)。
1689
1920
  // 47 × type(全量 re-export,无行为)
1690
1921
  {
1691
- name: 'Curve2DHandle', source: 'core/curve2dHandle.js#Curve2DHandle', kind: 'type', module: 'core',
1922
+ name: 'Curve2DHandle', source: 'core/curve2dHandle.js#Curve2DHandle', kind: 'skip', module: 'core',
1692
1923
  },
1693
1924
  {
1694
- name: 'DimensionError', source: 'core/dimensionTypes.js#DimensionError', kind: 'type', module: 'core',
1925
+ name: 'DimensionError', source: 'core/dimensionTypes.js#DimensionError', kind: 'skip', module: 'core',
1695
1926
  },
1696
1927
  {
1697
- name: 'RequireDimension', source: 'core/dimensionTypes.js#RequireDimension', kind: 'type', module: 'core',
1928
+ name: 'RequireDimension', source: 'core/dimensionTypes.js#RequireDimension', kind: 'skip', module: 'core',
1698
1929
  },
1699
1930
  {
1700
- name: 'SameDimension', source: 'core/dimensionTypes.js#SameDimension', kind: 'type', module: 'core',
1931
+ name: 'SameDimension', source: 'core/dimensionTypes.js#SameDimension', kind: 'skip', module: 'core',
1701
1932
  },
1702
1933
  {
1703
- name: 'Deletable', source: 'core/disposal.js#Deletable', kind: 'type', module: 'core',
1934
+ name: 'Deletable', source: 'core/disposal.js#Deletable', kind: 'skip', module: 'core',
1704
1935
  },
1705
1936
  {
1706
- name: 'DisposalStats', source: 'core/disposal.js#DisposalStats', kind: 'type', module: 'core',
1937
+ name: 'DisposalStats', source: 'core/disposal.js#DisposalStats', kind: 'skip', module: 'core',
1707
1938
  },
1708
1939
  {
1709
- name: 'KernelHandle', source: 'core/disposal.js#KernelHandle', kind: 'type', module: 'core',
1940
+ name: 'KernelHandle', source: 'core/disposal.js#KernelHandle', kind: 'skip', module: 'core',
1710
1941
  },
1711
1942
  {
1712
- name: 'ShapeHandle', source: 'core/disposal.js#ShapeHandle', kind: 'type', module: 'core',
1943
+ name: 'ShapeHandle', source: 'core/disposal.js#ShapeHandle', kind: 'skip', module: 'core',
1713
1944
  },
1714
1945
  {
1715
- name: 'BrepError', source: 'core/errors.js#BrepError', kind: 'type', module: 'core',
1946
+ name: 'BrepError', source: 'core/errors.js#BrepError', kind: 'skip', module: 'core',
1716
1947
  },
1717
1948
  {
1718
- name: 'BrepErrorKind', source: 'core/errors.js#BrepErrorKind', kind: 'type', module: 'core',
1949
+ name: 'BrepErrorKind', source: 'core/errors.js#BrepErrorKind', kind: 'skip', module: 'core',
1719
1950
  },
1720
1951
  {
1721
- name: 'Plane', source: 'core/planeTypes.js#Plane', kind: 'type', module: 'core',
1952
+ name: 'Plane', source: 'core/planeTypes.js#Plane', kind: 'skip', module: 'core',
1722
1953
  },
1723
1954
  {
1724
- name: 'PlaneInput', source: 'core/planeTypes.js#PlaneInput', kind: 'type', module: 'core',
1955
+ name: 'PlaneInput', source: 'core/planeTypes.js#PlaneInput', kind: 'skip', module: 'core',
1725
1956
  },
1726
1957
  {
1727
- name: 'PlaneName', source: 'core/planeTypes.js#PlaneName', kind: 'type', module: 'core',
1958
+ name: 'PlaneName', source: 'core/planeTypes.js#PlaneName', kind: 'skip', module: 'core',
1728
1959
  },
1729
1960
  {
1730
- name: 'Err', source: 'core/result.js#Err', kind: 'type', module: 'core',
1961
+ name: 'Err', source: 'core/result.js#Err', kind: 'skip', module: 'core',
1731
1962
  },
1732
1963
  {
1733
- name: 'Ok', source: 'core/result.js#Ok', kind: 'type', module: 'core',
1964
+ name: 'Ok', source: 'core/result.js#Ok', kind: 'skip', module: 'core',
1734
1965
  },
1735
1966
  {
1736
- name: 'Result', source: 'core/result.js#Result', kind: 'type', module: 'core',
1967
+ name: 'Result', source: 'core/result.js#Result', kind: 'skip', module: 'core',
1737
1968
  },
1738
1969
  {
1739
- name: 'ResultPipeline', source: 'core/result.js#ResultPipeline', kind: 'type', module: 'core',
1970
+ name: 'ResultPipeline', source: 'core/result.js#ResultPipeline', kind: 'skip', module: 'core',
1740
1971
  },
1741
1972
  {
1742
- name: 'Unit', source: 'core/result.js#Unit', kind: 'type', module: 'core',
1973
+ name: 'Unit', source: 'core/result.js#Unit', kind: 'skip', module: 'core',
1743
1974
  },
1744
1975
  {
1745
- name: 'AnyShape', source: 'core/shapeTypes.js#AnyShape', kind: 'type', module: 'core',
1976
+ name: 'AnyShape', source: 'core/shapeTypes.js#AnyShape', kind: 'skip', module: 'core',
1746
1977
  },
1747
1978
  {
1748
- name: 'ClosedWire', source: 'core/shapeTypes.js#ClosedWire', kind: 'type', module: 'core',
1979
+ name: 'ClosedWire', source: 'core/shapeTypes.js#ClosedWire', kind: 'skip', module: 'core',
1749
1980
  },
1750
1981
  {
1751
- name: 'Compound', source: 'core/shapeTypes.js#Compound', kind: 'type', module: 'core',
1982
+ name: 'Compound', source: 'core/shapeTypes.js#Compound', kind: 'skip', module: 'core',
1752
1983
  },
1753
1984
  {
1754
- name: 'CompSolid', source: 'core/shapeTypes.js#CompSolid', kind: 'type', module: 'core',
1985
+ name: 'CompSolid', source: 'core/shapeTypes.js#CompSolid', kind: 'skip', module: 'core',
1755
1986
  },
1756
1987
  {
1757
- name: 'CurveLike', source: 'core/shapeTypes.js#CurveLike', kind: 'type', module: 'core',
1988
+ name: 'CurveLike', source: 'core/shapeTypes.js#CurveLike', kind: 'skip', module: 'core',
1758
1989
  },
1759
1990
  {
1760
- name: 'Dimension', source: 'core/shapeTypes.js#Dimension', kind: 'type', module: 'core',
1991
+ name: 'Dimension', source: 'core/shapeTypes.js#Dimension', kind: 'skip', module: 'core',
1761
1992
  },
1762
1993
  {
1763
- name: 'Edge', source: 'core/shapeTypes.js#Edge', kind: 'type', module: 'core',
1994
+ name: 'Edge', source: 'core/shapeTypes.js#Edge', kind: 'skip', module: 'core',
1764
1995
  },
1765
1996
  {
1766
- name: 'Face', source: 'core/shapeTypes.js#Face', kind: 'type', module: 'core',
1997
+ name: 'Face', source: 'core/shapeTypes.js#Face', kind: 'skip', module: 'core',
1767
1998
  },
1768
1999
  {
1769
- name: 'ManifoldShell', source: 'core/shapeTypes.js#ManifoldShell', kind: 'type', module: 'core',
2000
+ name: 'ManifoldShell', source: 'core/shapeTypes.js#ManifoldShell', kind: 'skip', module: 'core',
1770
2001
  },
1771
2002
  {
1772
- name: 'OrientedFace', source: 'core/shapeTypes.js#OrientedFace', kind: 'type', module: 'core',
2003
+ name: 'OrientedFace', source: 'core/shapeTypes.js#OrientedFace', kind: 'skip', module: 'core',
1773
2004
  },
1774
2005
  {
1775
- name: 'PlanarFace', source: 'core/shapeTypes.js#PlanarFace', kind: 'type', module: 'core',
2006
+ name: 'PlanarFace', source: 'core/shapeTypes.js#PlanarFace', kind: 'skip', module: 'core',
1776
2007
  },
1777
2008
  {
1778
- name: 'PlanarWire', source: 'core/shapeTypes.js#PlanarWire', kind: 'type', module: 'core',
2009
+ name: 'PlanarWire', source: 'core/shapeTypes.js#PlanarWire', kind: 'skip', module: 'core',
1779
2010
  },
1780
2011
  {
1781
- name: 'Shape1D', source: 'core/shapeTypes.js#Shape1D', kind: 'type', module: 'core',
2012
+ name: 'Shape1D', source: 'core/shapeTypes.js#Shape1D', kind: 'skip', module: 'core',
1782
2013
  },
1783
2014
  {
1784
- name: 'Shape3D', source: 'core/shapeTypes.js#Shape3D', kind: 'type', module: 'core',
2015
+ name: 'Shape3D', source: 'core/shapeTypes.js#Shape3D', kind: 'skip', module: 'core',
1785
2016
  },
1786
2017
  {
1787
- name: 'ShapeKind', source: 'core/shapeTypes.js#ShapeKind', kind: 'type', module: 'core',
2018
+ name: 'ShapeKind', source: 'core/shapeTypes.js#ShapeKind', kind: 'skip', module: 'core',
1788
2019
  },
1789
2020
  {
1790
- name: 'Shell', source: 'core/shapeTypes.js#Shell', kind: 'type', module: 'core',
2021
+ name: 'Shell', source: 'core/shapeTypes.js#Shell', kind: 'skip', module: 'core',
1791
2022
  },
1792
2023
  {
1793
- name: 'Solid', source: 'core/shapeTypes.js#Solid', kind: 'type', module: 'core',
2024
+ name: 'Solid', source: 'core/shapeTypes.js#Solid', kind: 'skip', module: 'core',
1794
2025
  },
1795
2026
  {
1796
- name: 'UnknownDimShape', source: 'core/shapeTypes.js#UnknownDimShape', kind: 'type', module: 'core',
2027
+ name: 'UnknownDimShape', source: 'core/shapeTypes.js#UnknownDimShape', kind: 'skip', module: 'core',
1797
2028
  },
1798
2029
  {
1799
- name: 'ValidSolid', source: 'core/shapeTypes.js#ValidSolid', kind: 'type', module: 'core',
2030
+ name: 'ValidSolid', source: 'core/shapeTypes.js#ValidSolid', kind: 'skip', module: 'core',
1800
2031
  },
1801
2032
  {
1802
- name: 'Vertex', source: 'core/shapeTypes.js#Vertex', kind: 'type', module: 'core',
2033
+ name: 'Vertex', source: 'core/shapeTypes.js#Vertex', kind: 'skip', module: 'core',
1803
2034
  },
1804
2035
  {
1805
- name: 'Wire', source: 'core/shapeTypes.js#Wire', kind: 'type', module: 'core',
2036
+ name: 'Wire', source: 'core/shapeTypes.js#Wire', kind: 'skip', module: 'core',
1806
2037
  },
1807
2038
  {
1808
- name: 'CurveType', source: 'core/typeDiscriminants.js#CurveType', kind: 'type', module: 'core',
2039
+ name: 'CurveType', source: 'core/typeDiscriminants.js#CurveType', kind: 'skip', module: 'core',
1809
2040
  },
1810
2041
  {
1811
2042
  // 别名:vendored types.ts 只导出 Direction;根 barrel `Direction as DirectionInput`
1812
- name: 'DirectionInput', source: 'index.js#DirectionInput', kind: 'type', module: 'core',
2043
+ name: 'DirectionInput', source: 'index.js#DirectionInput', kind: 'skip', module: 'core',
1813
2044
  },
1814
2045
  {
1815
- name: 'Matrix4x4', source: 'core/types.js#Matrix4x4', kind: 'type', module: 'core',
2046
+ name: 'Matrix4x4', source: 'core/types.js#Matrix4x4', kind: 'skip', module: 'core',
1816
2047
  },
1817
2048
  {
1818
- name: 'MatrixInput', source: 'core/types.js#MatrixInput', kind: 'type', module: 'core',
2049
+ name: 'MatrixInput', source: 'core/types.js#MatrixInput', kind: 'skip', module: 'core',
1819
2050
  },
1820
2051
  {
1821
- name: 'MatrixTransform', source: 'core/types.js#MatrixTransform', kind: 'type', module: 'core',
2052
+ name: 'MatrixTransform', source: 'core/types.js#MatrixTransform', kind: 'skip', module: 'core',
1822
2053
  },
1823
2054
  {
1824
- name: 'PointInput', source: 'core/types.js#PointInput', kind: 'type', module: 'core',
2055
+ name: 'PointInput', source: 'core/types.js#PointInput', kind: 'skip', module: 'core',
1825
2056
  },
1826
2057
  {
1827
- name: 'Vec2', source: 'core/types.js#Vec2', kind: 'type', module: 'core',
2058
+ name: 'Vec2', source: 'core/types.js#Vec2', kind: 'skip', module: 'core',
1828
2059
  },
1829
2060
  {
1830
- name: 'Vec3', source: 'core/types.js#Vec3', kind: 'type', module: 'core',
2061
+ name: 'Vec3', source: 'core/types.js#Vec3', kind: 'skip', module: 'core',
1831
2062
  },
1832
2063
  // 67 × pure(无 Shape/kernel 参数 → 直接 re-export,不进 defineOp)
1833
2064
  {
1834
- name: 'DEG2RAD', source: 'core/constants.js#DEG2RAD', kind: 'pure', module: 'core', reason: '角度换算常量(纯数据)',
2065
+ name: 'DEG2RAD', source: 'core/constants.js#DEG2RAD', kind: 'skip', module: 'core', reason: '角度换算常量(纯数据)',
1835
2066
  },
1836
2067
  {
1837
- name: 'RAD2DEG', source: 'core/constants.js#RAD2DEG', kind: 'pure', module: 'core', reason: '角度换算常量(纯数据)',
2068
+ name: 'RAD2DEG', source: 'core/constants.js#RAD2DEG', kind: 'skip', module: 'core', reason: '角度换算常量(纯数据)',
1838
2069
  },
1839
2070
  {
1840
- name: 'HASH_CODE_MAX', source: 'core/constants.js#HASH_CODE_MAX', kind: 'pure', module: 'core', reason: '哈希上限常量(纯数据)',
2071
+ name: 'HASH_CODE_MAX', source: 'core/constants.js#HASH_CODE_MAX', kind: 'skip', module: 'core', reason: '哈希上限常量(纯数据)',
1841
2072
  },
1842
2073
  {
1843
- name: 'BrepBugError', source: 'core/errors.js#BrepBugError', kind: 'pure', module: 'core', reason: '错误类(纯构造,无 kernel 参数)',
2074
+ name: 'BrepBugError', source: 'core/errors.js#BrepBugError', kind: 'skip', module: 'core', reason: '错误类(纯构造,无 kernel 参数)',
1844
2075
  },
1845
2076
  {
1846
- name: 'BrepErrorCode', source: 'core/errors.js#BrepErrorCode', kind: 'pure', module: 'core', reason: '错误码常量表(纯数据)',
2077
+ name: 'BrepErrorCode', source: 'core/errors.js#BrepErrorCode', kind: 'skip', module: 'core', reason: '错误码常量表(纯数据)',
1847
2078
  },
1848
2079
  {
1849
- name: 'bug', source: 'core/errors.js#bug', kind: 'pure', module: 'core', reason: 'bug 错误构造器(纯函数)',
2080
+ name: 'bug', source: 'core/errors.js#bug', kind: 'skip', module: 'core', reason: 'bug 错误构造器(纯函数)',
1850
2081
  },
1851
2082
  {
1852
- name: 'computationError', source: 'core/errors.js#computationError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2083
+ name: 'computationError', source: 'core/errors.js#computationError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1853
2084
  },
1854
2085
  {
1855
- name: 'ioError', source: 'core/errors.js#ioError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2086
+ name: 'ioError', source: 'core/errors.js#ioError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1856
2087
  },
1857
2088
  {
1858
- name: 'kernelError', source: 'core/errors.js#kernelError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2089
+ name: 'kernelError', source: 'core/errors.js#kernelError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1859
2090
  },
1860
2091
  {
1861
- name: 'moduleInitError', source: 'core/errors.js#moduleInitError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2092
+ name: 'moduleInitError', source: 'core/errors.js#moduleInitError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1862
2093
  },
1863
2094
  {
1864
- name: 'queryError', source: 'core/errors.js#queryError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2095
+ name: 'queryError', source: 'core/errors.js#queryError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1865
2096
  },
1866
2097
  {
1867
- name: 'sketcherStateError', source: 'core/errors.js#sketcherStateError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2098
+ name: 'sketcherStateError', source: 'core/errors.js#sketcherStateError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1868
2099
  },
1869
2100
  {
1870
- name: 'typeCastError', source: 'core/errors.js#typeCastError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2101
+ name: 'typeCastError', source: 'core/errors.js#typeCastError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1871
2102
  },
1872
2103
  {
1873
- name: 'unsupportedError', source: 'core/errors.js#unsupportedError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2104
+ name: 'unsupportedError', source: 'core/errors.js#unsupportedError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1874
2105
  },
1875
2106
  {
1876
- name: 'validationError', source: 'core/errors.js#validationError', kind: 'pure', module: 'core', reason: '错误构造器(纯函数)',
2107
+ name: 'validationError', source: 'core/errors.js#validationError', kind: 'skip', module: 'core', reason: '错误构造器(纯函数)',
1877
2108
  },
1878
2109
  {
1879
- name: 'createNamedPlane', source: 'core/planeOps.js#createNamedPlane', kind: 'pure', module: 'core', reason: '命名平面构造(PlaneName,无 kernel 参数)',
2110
+ name: 'createNamedPlane', source: 'core/planeOps.js#createNamedPlane', kind: 'skip', module: 'core', reason: '命名平面构造(PlaneName,无 kernel 参数)',
1880
2111
  },
1881
2112
  {
1882
- name: 'createPlane', source: 'core/planeOps.js#createPlane', kind: 'pure', module: 'core', reason: '平面构造(纯数据)',
2113
+ name: 'createPlane', source: 'core/planeOps.js#createPlane', kind: 'skip', module: 'core', reason: '平面构造(纯数据)',
1883
2114
  },
1884
2115
  {
1885
- name: 'makePlane', source: 'core/planeOps.js#makePlane', kind: 'pure', module: 'core', reason: '平面构造(纯数据,PlaneInput)',
2116
+ name: 'makePlane', source: 'core/planeOps.js#makePlane', kind: 'skip', module: 'core', reason: '平面构造(纯数据,PlaneInput)',
1886
2117
  },
1887
2118
  {
1888
- name: 'pivotPlane', source: 'core/planeOps.js#pivotPlane', kind: 'pure', module: 'core', reason: '平面旋转变换(纯数据)',
2119
+ name: 'pivotPlane', source: 'core/planeOps.js#pivotPlane', kind: 'skip', module: 'core', reason: '平面旋转变换(纯数据)',
1889
2120
  },
1890
2121
  {
1891
- name: 'resolvePlane', source: 'core/planeOps.js#resolvePlane', kind: 'pure', module: 'core', reason: 'PlaneInput → Result<Plane>(无 Shape 参数)',
2122
+ name: 'resolvePlane', source: 'core/planeOps.js#resolvePlane', kind: 'skip', module: 'core', reason: 'PlaneInput → Result<Plane>(无 Shape 参数)',
1892
2123
  },
1893
2124
  {
1894
- name: 'translatePlane', source: 'core/planeOps.js#translatePlane', kind: 'pure', module: 'core', reason: '平面平移(纯数据)',
2125
+ name: 'translatePlane', source: 'core/planeOps.js#translatePlane', kind: 'skip', module: 'core', reason: '平面平移(纯数据)',
1895
2126
  },
1896
2127
  {
1897
- name: 'ok', source: 'core/result.js#ok', kind: 'pure', module: 'core', reason: 'Result Ok 构造(纯函数)',
2128
+ name: 'ok', source: 'core/result.js#ok', kind: 'skip', module: 'core', reason: 'Result Ok 构造(纯函数)',
1898
2129
  },
1899
2130
  {
1900
- name: 'err', source: 'core/result.js#err', kind: 'pure', module: 'core', reason: 'Result Err 构造(纯函数)',
2131
+ name: 'err', source: 'core/result.js#err', kind: 'skip', module: 'core', reason: 'Result Err 构造(纯函数)',
1901
2132
  },
1902
2133
  {
1903
- name: 'OK', source: 'core/result.js#OK', kind: 'pure', module: 'core', reason: 'Ok<Unit> 常量',
2134
+ name: 'OK', source: 'core/result.js#OK', kind: 'skip', module: 'core', reason: 'Ok<Unit> 常量',
1904
2135
  },
1905
2136
  {
1906
- name: 'isOk', source: 'core/result.js#isOk', kind: 'pure', module: 'core', reason: 'Result 判别(纯函数)',
2137
+ name: 'isOk', source: 'core/result.js#isOk', kind: 'skip', module: 'core', reason: 'Result 判别(纯函数)',
1907
2138
  },
1908
2139
  {
1909
- name: 'isErr', source: 'core/result.js#isErr', kind: 'pure', module: 'core', reason: 'Result 判别(纯函数)',
2140
+ name: 'isErr', source: 'core/result.js#isErr', kind: 'skip', module: 'core', reason: 'Result 判别(纯函数)',
1910
2141
  },
1911
2142
  {
1912
- name: 'map', source: 'core/result.js#map', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2143
+ name: 'map', source: 'core/result.js#map', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1913
2144
  },
1914
2145
  {
1915
- name: 'mapErr', source: 'core/result.js#mapErr', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2146
+ name: 'mapErr', source: 'core/result.js#mapErr', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1916
2147
  },
1917
2148
  {
1918
- name: 'mapBoth', source: 'core/result.js#mapBoth', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2149
+ name: 'mapBoth', source: 'core/result.js#mapBoth', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1919
2150
  },
1920
2151
  {
1921
- name: 'andThen', source: 'core/result.js#andThen', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2152
+ name: 'andThen', source: 'core/result.js#andThen', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1922
2153
  },
1923
2154
  {
1924
- name: 'flatMap', source: 'core/result.js#flatMap', kind: 'pure', module: 'core', reason: 'andThen 别名(纯函数)',
2155
+ name: 'flatMap', source: 'core/result.js#flatMap', kind: 'skip', module: 'core', reason: 'andThen 别名(纯函数)',
1925
2156
  },
1926
2157
  {
1927
- name: 'or', source: 'core/result.js#or', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2158
+ name: 'or', source: 'core/result.js#or', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1928
2159
  },
1929
2160
  {
1930
- name: 'orElse', source: 'core/result.js#orElse', kind: 'pure', module: 'core', reason: 'Result 组合子(纯函数)',
2161
+ name: 'orElse', source: 'core/result.js#orElse', kind: 'skip', module: 'core', reason: 'Result 组合子(纯函数)',
1931
2162
  },
1932
2163
  {
1933
- name: 'all', source: 'core/result.js#all', kind: 'pure', module: 'core', reason: 'collect 别名(纯函数)',
2164
+ name: 'all', source: 'core/result.js#all', kind: 'skip', module: 'core', reason: 'collect 别名(纯函数)',
1934
2165
  },
1935
2166
  {
1936
- name: 'collect', source: 'core/result.js#collect', kind: 'pure', module: 'core', reason: 'Result[] 收集(纯函数)',
2167
+ name: 'collect', source: 'core/result.js#collect', kind: 'skip', module: 'core', reason: 'Result[] 收集(纯函数)',
1937
2168
  },
1938
2169
  {
1939
- name: 'tap', source: 'core/result.js#tap', kind: 'pure', module: 'core', reason: 'Result 副作用(纯函数)',
2170
+ name: 'tap', source: 'core/result.js#tap', kind: 'skip', module: 'core', reason: 'Result 副作用(纯函数)',
1940
2171
  },
1941
2172
  {
1942
- name: 'tapErr', source: 'core/result.js#tapErr', kind: 'pure', module: 'core', reason: 'Result 副作用(纯函数)',
2173
+ name: 'tapErr', source: 'core/result.js#tapErr', kind: 'skip', module: 'core', reason: 'Result 副作用(纯函数)',
1943
2174
  },
1944
2175
  {
1945
- name: 'flatten', source: 'core/result.js#flatten', kind: 'pure', module: 'core', reason: 'Result 嵌套展平(纯函数)',
2176
+ name: 'flatten', source: 'core/result.js#flatten', kind: 'skip', module: 'core', reason: 'Result 嵌套展平(纯函数)',
1946
2177
  },
1947
2178
  {
1948
- name: 'fromNullable', source: 'core/result.js#fromNullable', kind: 'pure', module: 'core', reason: 'nullable → Result(纯函数)',
2179
+ name: 'fromNullable', source: 'core/result.js#fromNullable', kind: 'skip', module: 'core', reason: 'nullable → Result(纯函数)',
1949
2180
  },
1950
2181
  {
1951
- name: 'unwrap', source: 'core/result.js#unwrap', kind: 'pure', module: 'core', reason: 'Result 解包(纯函数)',
2182
+ name: 'unwrap', source: 'core/result.js#unwrap', kind: 'skip', module: 'core', reason: 'Result 解包(纯函数)',
1952
2183
  },
1953
2184
  {
1954
- name: 'unwrapOr', source: 'core/result.js#unwrapOr', kind: 'pure', module: 'core', reason: 'Result 解包(纯函数)',
2185
+ name: 'unwrapOr', source: 'core/result.js#unwrapOr', kind: 'skip', module: 'core', reason: 'Result 解包(纯函数)',
1955
2186
  },
1956
2187
  {
1957
- name: 'unwrapOrElse', source: 'core/result.js#unwrapOrElse', kind: 'pure', module: 'core', reason: 'Result 解包(纯函数)',
2188
+ name: 'unwrapOrElse', source: 'core/result.js#unwrapOrElse', kind: 'skip', module: 'core', reason: 'Result 解包(纯函数)',
1958
2189
  },
1959
2190
  {
1960
- name: 'unwrapErr', source: 'core/result.js#unwrapErr', kind: 'pure', module: 'core', reason: 'Result 解包(纯函数)',
2191
+ name: 'unwrapErr', source: 'core/result.js#unwrapErr', kind: 'skip', module: 'core', reason: 'Result 解包(纯函数)',
1961
2192
  },
1962
2193
  {
1963
- name: 'match', source: 'core/result.js#match', kind: 'pure', module: 'core', reason: 'Result 模式匹配(纯函数)',
2194
+ name: 'match', source: 'core/result.js#match', kind: 'skip', module: 'core', reason: 'Result 模式匹配(纯函数)',
1964
2195
  },
1965
2196
  {
1966
- name: 'tryCatch', source: 'core/result.js#tryCatch', kind: 'pure', module: 'core', reason: '同步 try→Result(纯函数)',
2197
+ name: 'tryCatch', source: 'core/result.js#tryCatch', kind: 'skip', module: 'core', reason: '同步 try→Result(纯函数)',
1967
2198
  },
1968
2199
  {
1969
- name: 'tryCatchAsync', source: 'core/result.js#tryCatchAsync', kind: 'pure', module: 'core', reason: '异步 try→Result(纯函数)',
2200
+ name: 'tryCatchAsync', source: 'core/result.js#tryCatchAsync', kind: 'skip', module: 'core', reason: '异步 try→Result(纯函数)',
1970
2201
  },
1971
2202
  {
1972
- name: 'pipeline', source: 'core/result.js#pipeline', kind: 'pure', module: 'core', reason: 'Result 管道入口(纯函数)',
2203
+ name: 'pipeline', source: 'core/result.js#pipeline', kind: 'skip', module: 'core', reason: 'Result 管道入口(纯函数)',
1973
2204
  },
1974
2205
  {
1975
2206
  // 别名:vendored result.ts 导出名 zip;根 barrel `zip as zipResults`
1976
- name: 'zipResults', source: 'index.js#zipResults', kind: 'pure', module: 'core', reason: 'zip 的根 barrel 别名导出(纯函数)',
2207
+ name: 'zipResults', source: 'index.js#zipResults', kind: 'skip', module: 'core', reason: 'zip 的根 barrel 别名导出(纯函数)',
1977
2208
  },
1978
2209
  {
1979
- name: 'resolveDirection', source: 'core/types.js#resolveDirection', kind: 'pure', module: 'core', reason: '方向简写 → Vec3(纯函数)',
2210
+ name: 'resolveDirection', source: 'core/types.js#resolveDirection', kind: 'skip', module: 'core', reason: '方向简写 → Vec3(纯函数)',
1980
2211
  },
1981
2212
  {
1982
- name: 'toVec2', source: 'core/types.js#toVec2', kind: 'pure', module: 'core', reason: 'PointInput → Vec2(纯函数)',
2213
+ name: 'toVec2', source: 'core/types.js#toVec2', kind: 'skip', module: 'core', reason: 'PointInput → Vec2(纯函数)',
1983
2214
  },
1984
2215
  {
1985
- name: 'toVec3', source: 'core/types.js#toVec3', kind: 'pure', module: 'core', reason: 'PointInput → Vec3(纯函数)',
2216
+ name: 'toVec3', source: 'core/types.js#toVec3', kind: 'skip', module: 'core', reason: 'PointInput → Vec3(纯函数)',
1986
2217
  },
1987
2218
  {
1988
- name: 'vecAdd', source: 'core/vecOps.js#vecAdd', kind: 'pure', module: 'core', reason: '向量加法(纯函数)',
2219
+ name: 'vecAdd', source: 'core/vecOps.js#vecAdd', kind: 'skip', module: 'core', reason: '向量加法(纯函数)',
1989
2220
  },
1990
2221
  {
1991
- name: 'vecAngle', source: 'core/vecOps.js#vecAngle', kind: 'pure', module: 'core', reason: '向量夹角(纯函数)',
2222
+ name: 'vecAngle', source: 'core/vecOps.js#vecAngle', kind: 'skip', module: 'core', reason: '向量夹角(纯函数)',
1992
2223
  },
1993
2224
  {
1994
- name: 'vecCross', source: 'core/vecOps.js#vecCross', kind: 'pure', module: 'core', reason: '向量叉积(纯函数)',
2225
+ name: 'vecCross', source: 'core/vecOps.js#vecCross', kind: 'skip', module: 'core', reason: '向量叉积(纯函数)',
1995
2226
  },
1996
2227
  {
1997
- name: 'vecDistance', source: 'core/vecOps.js#vecDistance', kind: 'pure', module: 'core', reason: '向量距离(纯函数)',
2228
+ name: 'vecDistance', source: 'core/vecOps.js#vecDistance', kind: 'skip', module: 'core', reason: '向量距离(纯函数)',
1998
2229
  },
1999
2230
  {
2000
- name: 'vecDot', source: 'core/vecOps.js#vecDot', kind: 'pure', module: 'core', reason: '向量点积(纯函数)',
2231
+ name: 'vecDot', source: 'core/vecOps.js#vecDot', kind: 'skip', module: 'core', reason: '向量点积(纯函数)',
2001
2232
  },
2002
2233
  {
2003
- name: 'vecEquals', source: 'core/vecOps.js#vecEquals', kind: 'pure', module: 'core', reason: '向量相等(纯函数)',
2234
+ name: 'vecEquals', source: 'core/vecOps.js#vecEquals', kind: 'skip', module: 'core', reason: '向量相等(纯函数)',
2004
2235
  },
2005
2236
  {
2006
- name: 'vecIsZero', source: 'core/vecOps.js#vecIsZero', kind: 'pure', module: 'core', reason: '零向量判别(纯函数)',
2237
+ name: 'vecIsZero', source: 'core/vecOps.js#vecIsZero', kind: 'skip', module: 'core', reason: '零向量判别(纯函数)',
2007
2238
  },
2008
2239
  {
2009
- name: 'vecLength', source: 'core/vecOps.js#vecLength', kind: 'pure', module: 'core', reason: '向量模长(纯函数)',
2240
+ name: 'vecLength', source: 'core/vecOps.js#vecLength', kind: 'skip', module: 'core', reason: '向量模长(纯函数)',
2010
2241
  },
2011
2242
  {
2012
- name: 'vecLengthSq', source: 'core/vecOps.js#vecLengthSq', kind: 'pure', module: 'core', reason: '向量模长平方(纯函数)',
2243
+ name: 'vecLengthSq', source: 'core/vecOps.js#vecLengthSq', kind: 'skip', module: 'core', reason: '向量模长平方(纯函数)',
2013
2244
  },
2014
2245
  {
2015
- name: 'vecNegate', source: 'core/vecOps.js#vecNegate', kind: 'pure', module: 'core', reason: '向量取反(纯函数)',
2246
+ name: 'vecNegate', source: 'core/vecOps.js#vecNegate', kind: 'skip', module: 'core', reason: '向量取反(纯函数)',
2016
2247
  },
2017
2248
  {
2018
- name: 'vecNormalize', source: 'core/vecOps.js#vecNormalize', kind: 'pure', module: 'core', reason: '向量归一化(纯函数)',
2249
+ name: 'vecNormalize', source: 'core/vecOps.js#vecNormalize', kind: 'skip', module: 'core', reason: '向量归一化(纯函数)',
2019
2250
  },
2020
2251
  {
2021
- name: 'vecProjectToPlane', source: 'core/vecOps.js#vecProjectToPlane', kind: 'pure', module: 'core', reason: '向量平面投影(纯函数)',
2252
+ name: 'vecProjectToPlane', source: 'core/vecOps.js#vecProjectToPlane', kind: 'skip', module: 'core', reason: '向量平面投影(纯函数)',
2022
2253
  },
2023
2254
  {
2024
- name: 'vecRepr', source: 'core/vecOps.js#vecRepr', kind: 'pure', module: 'core', reason: '向量字符串(纯函数)',
2255
+ name: 'vecRepr', source: 'core/vecOps.js#vecRepr', kind: 'skip', module: 'core', reason: '向量字符串(纯函数)',
2025
2256
  },
2026
2257
  {
2027
- name: 'vecRotate', source: 'core/vecOps.js#vecRotate', kind: 'pure', module: 'core', reason: '向量绕轴旋转(纯函数)',
2258
+ name: 'vecRotate', source: 'core/vecOps.js#vecRotate', kind: 'skip', module: 'core', reason: '向量绕轴旋转(纯函数)',
2028
2259
  },
2029
2260
  {
2030
- name: 'vecScale', source: 'core/vecOps.js#vecScale', kind: 'pure', module: 'core', reason: '向量缩放(纯函数)',
2261
+ name: 'vecScale', source: 'core/vecOps.js#vecScale', kind: 'skip', module: 'core', reason: '向量缩放(纯函数)',
2031
2262
  },
2032
2263
  {
2033
- name: 'vecSub', source: 'core/vecOps.js#vecSub', kind: 'pure', module: 'core', reason: '向量减法(纯函数)',
2264
+ name: 'vecSub', source: 'core/vecOps.js#vecSub', kind: 'skip', module: 'core', reason: '向量减法(纯函数)',
2034
2265
  },
2035
2266
  // 1 × query:形状判别串查询(Shape 进 → ShapeKind 字符串出,纯数据)
2036
2267
  {
2037
- name: 'getShapeKind', source: 'core/shapeTypes.js#getShapeKind', kind: 'query', module: 'core',
2268
+ name: 'getShapeKind', source: 'core/shapeTypes.js#getShapeKind', kind: 'skip', module: 'core',
2038
2269
  args: '(shape: AnyShape) -> ShapeKind',
2039
2270
  geometryArgs: [0],
2040
2271
  returnsResult: false,
2041
2272
  returnType: 'ShapeKind',
2042
2273
  params: ['shape'], formClass: 'A',
2274
+ scriptFace: true,
2275
+ reason: 'core 引擎无等价方法(occt-wasm 无 isEmpty;getShapeType/isEqual 未进 L1),未平铺未公开(§5.5 第 2 条裁定删除)',
2043
2276
  },
2044
2277
  // 53 × skip(裸 kernel 句柄族;faijs 面 Shape 所有权经 l3-bridge 借入/收养,不暴露裸句柄)
2045
2278
  // disposal:内核句柄生命周期/作用域基础设施
@@ -2215,21 +2448,21 @@ export const ARG_SPEC = [
2215
2448
  // 构造 → Shape3D,brep-op 构造类,与 torus 同款模板)。
2216
2449
  // 3 × type
2217
2450
  {
2218
- name: 'Drawing', source: 'sketching/drawing.js#Drawing', kind: 'type', module: 'sketching',
2451
+ name: 'Drawing', source: 'sketching/drawing.js#Drawing', kind: 'skip', module: 'sketching',
2219
2452
  },
2220
2453
  {
2221
- name: 'DrawingPen', source: 'sketching/drawingPen.js#DrawingPen', kind: 'type', module: 'sketching',
2454
+ name: 'DrawingPen', source: 'sketching/drawingPen.js#DrawingPen', kind: 'skip', module: 'sketching',
2222
2455
  },
2223
2456
  {
2224
- name: 'SketchInterface', source: 'sketching/sketch.js#SketchInterface', kind: 'type', module: 'sketching',
2457
+ name: 'SketchInterface', source: 'sketching/sketch.js#SketchInterface', kind: 'skip', module: 'sketching',
2225
2458
  },
2226
2459
  // 1 × pure
2227
2460
  {
2228
- name: 'polysideInnerRadius', source: 'sketching/cannedSketches.js#polysideInnerRadius', kind: 'pure', module: 'sketching', reason: '正多边形内径计算(纯数学,无 kernel/Shape)',
2461
+ name: 'polysideInnerRadius', source: 'sketching/cannedSketches.js#polysideInnerRadius', kind: 'skip', module: 'sketching', reason: '未自有化、未平铺(唯一消费方 p5 随删)',
2229
2462
  },
2230
2463
  // 1 × brep-op(构造类:纯数值参数 → Shape3D,无几何输入)
2231
2464
  {
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',
2465
+ name: 'makeBaseBox', source: 'brep-mirror/primitiveFns.ts#makeBaseBoxBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'sketching',
2233
2466
  args: '(xLength: number, yLength: number, zLength: number) -> Shape3D',
2234
2467
  geometryArgs: [],
2235
2468
  returnsResult: false,
@@ -2387,101 +2620,101 @@ export const ARG_SPEC = [
2387
2620
  // 条目缺省 module='topology'(与 P13a 样本一致;generator moduleOf 缺省同值)。
2388
2621
  //
2389
2622
  // 95 × type(96 − P13a Bounds3D)
2390
- { name: 'ComposedTransform', source: 'topology/api.js#ComposedTransform', kind: 'type' },
2391
- { name: 'MirrorOptions', source: 'topology/api.js#MirrorOptions', kind: 'type' },
2392
- { name: 'RotateOptions', source: 'topology/api.js#RotateOptions', kind: 'type' },
2393
- { name: 'ScaleOptions', source: 'topology/api.js#ScaleOptions', kind: 'type' },
2394
- { name: 'TransformOp', source: 'topology/api.js#TransformOp', kind: 'type' },
2395
- { name: 'BossOptions', source: 'topology/apiTypes.js#BossOptions', kind: 'type' },
2396
- { name: 'ChamferDistance', source: 'topology/apiTypes.js#ChamferDistance', kind: 'type' },
2397
- { name: 'DraftAngle', source: 'topology/apiTypes.js#DraftAngle', kind: 'type' },
2398
- { name: 'DraftOptions', source: 'topology/apiTypes.js#DraftOptions', kind: 'type' },
2399
- { name: 'DrawingLike', source: 'topology/apiTypes.js#DrawingLike', kind: 'type' },
2400
- { name: 'DrillOptions', source: 'topology/apiTypes.js#DrillOptions', kind: 'type' },
2401
- { name: 'FilletRadius', source: 'topology/apiTypes.js#FilletRadius', kind: 'type' },
2402
- { name: 'FinderFn', source: 'topology/apiTypes.js#FinderFn', kind: 'type' },
2403
- { name: 'MirrorJoinOptions', source: 'topology/apiTypes.js#MirrorJoinOptions', kind: 'type' },
2404
- { name: 'PocketOptions', source: 'topology/apiTypes.js#PocketOptions', kind: 'type' },
2405
- { name: 'RectangularPatternOptions', source: 'topology/apiTypes.js#RectangularPatternOptions', kind: 'type' },
2406
- { name: 'Shapeable', source: 'topology/apiTypes.js#Shapeable', kind: 'type' },
2407
- { name: 'WrappedMarker', source: 'topology/apiTypes.js#WrappedMarker', kind: 'type' },
2408
- { name: 'BatchBisectResult', source: 'topology/booleanBatchFns.js#BatchBisectResult', kind: 'type' },
2409
- { name: 'BatchBisectTelemetry', source: 'topology/booleanBatchFns.js#BatchBisectTelemetry', kind: 'type' },
2410
- { name: 'BooleanOptions', source: 'topology/booleanFns.js#BooleanOptions', kind: 'type' },
2411
- { name: 'BooleanPipelineStep', source: 'topology/booleanFns.js#BooleanPipelineStep', kind: 'type' },
2412
- { name: 'PipelineOp', source: 'topology/booleanFns.js#PipelineOp', kind: 'type' },
2413
- { name: 'ApproximateCurveOptions', source: 'topology/curveFns.js#ApproximateCurveOptions', kind: 'type' },
2414
- { name: 'InterpolateCurveOptions', source: 'topology/curveFns.js#InterpolateCurveOptions', kind: 'type' },
2415
- { name: 'EvolutionResult', source: 'topology/evolutionFns.js#EvolutionResult', kind: 'type' },
2416
- { name: 'PointProjectionResult', source: 'topology/faceFns.js#PointProjectionResult', kind: 'type' },
2417
- { name: 'UVBounds', source: 'topology/faceFns.js#UVBounds', kind: 'type' },
2418
- { name: 'AutoHealOptions', source: 'topology/healingFns.js#AutoHealOptions', kind: 'type' },
2419
- { name: 'HealingReport', source: 'topology/healingFns.js#HealingReport', kind: 'type' },
2420
- { name: 'HealingStepDiagnostic', source: 'topology/healingFns.js#HealingStepDiagnostic', kind: 'type' },
2421
- { name: 'HullOptions', source: 'topology/hullFns.js#HullOptions', kind: 'type' },
2422
- { name: 'ChamferRadius', source: 'topology/index.js#ChamferRadius', kind: 'type' },
2423
- { name: 'GenericTopo', source: 'topology/index.js#GenericTopo', kind: 'type' },
2424
- { name: 'RadiusOptions', source: 'topology/index.js#RadiusOptions', kind: 'type' },
2425
- { name: 'TopoEntity', source: 'topology/index.js#TopoEntity', kind: 'type' },
2426
- { name: 'MeshCacheContext', source: 'topology/meshCache.js#MeshCacheContext', kind: 'type' },
2427
- { name: 'EdgeMesh', source: 'topology/meshFns.js#EdgeMesh', kind: 'type' },
2428
- { name: 'LODMesh', source: 'topology/meshFns.js#LODMesh', kind: 'type' },
2429
- { name: 'MeshLevelFn', source: 'topology/meshFns.js#MeshLevelFn', kind: 'type' },
2430
- { name: 'MeshLODsOptions', source: 'topology/meshFns.js#MeshLODsOptions', kind: 'type' },
2431
- { name: 'MeshLODsProgressiveOptions', source: 'topology/meshFns.js#MeshLODsProgressiveOptions', kind: 'type' },
2432
- { name: 'MeshOptions', source: 'topology/meshFns.js#MeshOptions', kind: 'type' },
2433
- { name: 'MultiLODMesh', source: 'topology/meshFns.js#MultiLODMesh', kind: 'type' },
2434
- { name: 'ShapeMesh', source: 'topology/meshFns.js#ShapeMesh', kind: 'type' },
2435
- { name: 'Color', source: 'topology/metadata/colorFns.js#Color', kind: 'type' },
2436
- { name: 'ColorInput', source: 'topology/metadata/colorFns.js#ColorInput', kind: 'type' },
2437
- { name: 'MinkowskiOptions', source: 'topology/minkowskiFns.js#MinkowskiOptions', kind: 'type' },
2438
- { name: 'VariableFilletRadius', source: 'topology/modifierFns.js#VariableFilletRadius', kind: 'type' },
2439
- { name: 'PolyhedronOptions', source: 'topology/polyhedronFns.js#PolyhedronOptions', kind: 'type' },
2440
- { name: 'BoxOptions', source: 'topology/primitiveFns.js#BoxOptions', kind: 'type' },
2441
- { name: 'CircleOptions', source: 'topology/primitiveFns.js#CircleOptions', kind: 'type' },
2442
- { name: 'ConeOptions', source: 'topology/primitiveFns.js#ConeOptions', kind: 'type' },
2443
- { name: 'CylinderOptions', source: 'topology/primitiveFns.js#CylinderOptions', kind: 'type' },
2444
- { name: 'EllipseArcOptions', source: 'topology/primitiveFns.js#EllipseArcOptions', kind: 'type' },
2445
- { name: 'EllipseOptions', source: 'topology/primitiveFns.js#EllipseOptions', kind: 'type' },
2446
- { name: 'EllipsoidOptions', source: 'topology/primitiveFns.js#EllipsoidOptions', kind: 'type' },
2447
- { name: 'HelixOptions', source: 'topology/primitiveFns.js#HelixOptions', kind: 'type' },
2448
- { name: 'SphereOptions', source: 'topology/primitiveFns.js#SphereOptions', kind: 'type' },
2449
- { name: 'TorusOptions', source: 'topology/primitiveFns.js#TorusOptions', kind: 'type' },
2450
- { name: 'ShapeDescription', source: 'topology/shapeFns.js#ShapeDescription', kind: 'type' },
2451
- { name: 'BrokenDerivedFaceRef', source: 'topology/shapeRef/index.js#BrokenDerivedFaceRef', kind: 'type' },
2452
- { name: 'BrokenEdgeRef', source: 'topology/shapeRef/index.js#BrokenEdgeRef', kind: 'type' },
2453
- { name: 'BrokenReason', source: 'topology/shapeRef/index.js#BrokenReason', kind: 'type' },
2454
- { name: 'BrokenRef', source: 'topology/shapeRef/index.js#BrokenRef', kind: 'type' },
2455
- { name: 'BrokenVertexRef', source: 'topology/shapeRef/index.js#BrokenVertexRef', kind: 'type' },
2456
- { name: 'DerivedFaceHint', source: 'topology/shapeRef/index.js#DerivedFaceHint', kind: 'type' },
2457
- { name: 'DerivedFaceRef', source: 'topology/shapeRef/index.js#DerivedFaceRef', kind: 'type' },
2458
- { name: 'EdgeHint', source: 'topology/shapeRef/index.js#EdgeHint', kind: 'type' },
2459
- { name: 'EdgeRef', source: 'topology/shapeRef/index.js#EdgeRef', kind: 'type' },
2460
- { name: 'FaceScorer', source: 'topology/shapeRef/index.js#FaceScorer', kind: 'type' },
2461
- { name: 'GeometricHint', source: 'topology/shapeRef/index.js#GeometricHint', kind: 'type' },
2462
- { name: 'LineageRef', source: 'topology/shapeRef/index.js#LineageRef', kind: 'type' },
2463
- { name: 'LineageResolution', source: 'topology/shapeRef/index.js#LineageResolution', kind: 'type' },
2464
- { name: 'ResolvedDerivedFaceRef', source: 'topology/shapeRef/index.js#ResolvedDerivedFaceRef', kind: 'type' },
2465
- { name: 'ResolvedEdgeRef', source: 'topology/shapeRef/index.js#ResolvedEdgeRef', kind: 'type' },
2466
- { name: 'ResolvedEntity', source: 'topology/shapeRef/index.js#ResolvedEntity', kind: 'type' },
2467
- { name: 'ResolvedRef', source: 'topology/shapeRef/index.js#ResolvedRef', kind: 'type' },
2468
- { name: 'ResolvedVertexRef', source: 'topology/shapeRef/index.js#ResolvedVertexRef', kind: 'type' },
2469
- { name: 'RoleTable', source: 'topology/shapeRef/index.js#RoleTable', kind: 'type' },
2470
- { name: 'ShapeRef', source: 'topology/shapeRef/index.js#ShapeRef', kind: 'type' },
2471
- { name: 'VertexHint', source: 'topology/shapeRef/index.js#VertexHint', kind: 'type' },
2472
- { name: 'VertexRef', source: 'topology/shapeRef/index.js#VertexRef', kind: 'type' },
2473
- { name: 'SurfaceFromGridOptions', source: 'topology/surfaceFns.js#SurfaceFromGridOptions', kind: 'type' },
2474
- { name: 'SurfaceFromImageOptions', source: 'topology/surfaceFns.js#SurfaceFromImageOptions', kind: 'type' },
2475
- { name: 'BufferGeometryData', source: 'topology/threeHelpers.js#BufferGeometryData', kind: 'type' },
2476
- { name: 'BufferGeometryGroup', source: 'topology/threeHelpers.js#BufferGeometryGroup', kind: 'type' },
2477
- { name: 'GroupedBufferGeometryData', source: 'topology/threeHelpers.js#GroupedBufferGeometryData', kind: 'type' },
2478
- { name: 'LineGeometryData', source: 'topology/threeHelpers.js#LineGeometryData', kind: 'type' },
2479
- { name: 'LODGeometryData', source: 'topology/threeHelpers.js#LODGeometryData', kind: 'type' },
2480
- { name: 'LODGeometryLevel', source: 'topology/threeHelpers.js#LODGeometryLevel', kind: 'type' },
2481
- { name: 'Wrapped', source: 'topology/wrapperFns.js#Wrapped', kind: 'type' },
2482
- { name: 'Wrapped3D', source: 'topology/wrapperFns.js#Wrapped3D', kind: 'type' },
2483
- { name: 'WrappedCurve', source: 'topology/wrapperFns.js#WrappedCurve', kind: 'type' },
2484
- { name: 'WrappedFace', source: 'topology/wrapperFns.js#WrappedFace', kind: 'type' },
2623
+ { name: 'ComposedTransform', source: 'topology/api.js#ComposedTransform', kind: 'skip' },
2624
+ { name: 'MirrorOptions', source: 'topology/api.js#MirrorOptions', kind: 'skip' },
2625
+ { name: 'RotateOptions', source: 'topology/api.js#RotateOptions', kind: 'skip' },
2626
+ { name: 'ScaleOptions', source: 'topology/api.js#ScaleOptions', kind: 'skip' },
2627
+ { name: 'TransformOp', source: 'topology/api.js#TransformOp', kind: 'skip' },
2628
+ { name: 'BossOptions', source: 'topology/apiTypes.js#BossOptions', kind: 'skip' },
2629
+ { name: 'ChamferDistance', source: 'topology/apiTypes.js#ChamferDistance', kind: 'skip' },
2630
+ { name: 'DraftAngle', source: 'topology/apiTypes.js#DraftAngle', kind: 'skip' },
2631
+ { name: 'DraftOptions', source: 'topology/apiTypes.js#DraftOptions', kind: 'skip' },
2632
+ { name: 'DrawingLike', source: 'topology/apiTypes.js#DrawingLike', kind: 'skip' },
2633
+ { name: 'DrillOptions', source: 'topology/apiTypes.js#DrillOptions', kind: 'skip' },
2634
+ { name: 'FilletRadius', source: 'topology/apiTypes.js#FilletRadius', kind: 'skip' },
2635
+ { name: 'FinderFn', source: 'topology/apiTypes.js#FinderFn', kind: 'skip' },
2636
+ { name: 'MirrorJoinOptions', source: 'topology/apiTypes.js#MirrorJoinOptions', kind: 'skip' },
2637
+ { name: 'PocketOptions', source: 'topology/apiTypes.js#PocketOptions', kind: 'skip' },
2638
+ { name: 'RectangularPatternOptions', source: 'topology/apiTypes.js#RectangularPatternOptions', kind: 'skip' },
2639
+ { name: 'Shapeable', source: 'topology/apiTypes.js#Shapeable', kind: 'skip' },
2640
+ { name: 'WrappedMarker', source: 'topology/apiTypes.js#WrappedMarker', kind: 'skip' },
2641
+ { name: 'BatchBisectResult', source: 'topology/booleanBatchFns.js#BatchBisectResult', kind: 'skip' },
2642
+ { name: 'BatchBisectTelemetry', source: 'topology/booleanBatchFns.js#BatchBisectTelemetry', kind: 'skip' },
2643
+ { name: 'BooleanOptions', source: 'topology/booleanFns.js#BooleanOptions', kind: 'skip' },
2644
+ { name: 'BooleanPipelineStep', source: 'topology/booleanFns.js#BooleanPipelineStep', kind: 'skip' },
2645
+ { name: 'PipelineOp', source: 'topology/booleanFns.js#PipelineOp', kind: 'skip' },
2646
+ { name: 'ApproximateCurveOptions', source: 'topology/curveFns.js#ApproximateCurveOptions', kind: 'skip' },
2647
+ { name: 'InterpolateCurveOptions', source: 'topology/curveFns.js#InterpolateCurveOptions', kind: 'skip' },
2648
+ { name: 'EvolutionResult', source: 'topology/evolutionFns.js#EvolutionResult', kind: 'skip' },
2649
+ { name: 'PointProjectionResult', source: 'topology/faceFns.js#PointProjectionResult', kind: 'skip' },
2650
+ { name: 'UVBounds', source: 'topology/faceFns.js#UVBounds', kind: 'skip' },
2651
+ { name: 'AutoHealOptions', source: 'topology/healingFns.js#AutoHealOptions', kind: 'skip' },
2652
+ { name: 'HealingReport', source: 'topology/healingFns.js#HealingReport', kind: 'skip' },
2653
+ { name: 'HealingStepDiagnostic', source: 'topology/healingFns.js#HealingStepDiagnostic', kind: 'skip' },
2654
+ { name: 'HullOptions', source: 'topology/hullFns.js#HullOptions', kind: 'skip' },
2655
+ { name: 'ChamferRadius', source: 'topology/index.js#ChamferRadius', kind: 'skip' },
2656
+ { name: 'GenericTopo', source: 'topology/index.js#GenericTopo', kind: 'skip' },
2657
+ { name: 'RadiusOptions', source: 'topology/index.js#RadiusOptions', kind: 'skip' },
2658
+ { name: 'TopoEntity', source: 'topology/index.js#TopoEntity', kind: 'skip' },
2659
+ { name: 'MeshCacheContext', source: 'topology/meshCache.js#MeshCacheContext', kind: 'skip' },
2660
+ { name: 'EdgeMesh', source: 'topology/meshFns.js#EdgeMesh', kind: 'skip' },
2661
+ { name: 'LODMesh', source: 'topology/meshFns.js#LODMesh', kind: 'skip' },
2662
+ { name: 'MeshLevelFn', source: 'topology/meshFns.js#MeshLevelFn', kind: 'skip' },
2663
+ { name: 'MeshLODsOptions', source: 'topology/meshFns.js#MeshLODsOptions', kind: 'skip' },
2664
+ { name: 'MeshLODsProgressiveOptions', source: 'topology/meshFns.js#MeshLODsProgressiveOptions', kind: 'skip' },
2665
+ { name: 'MeshOptions', source: 'topology/meshFns.js#MeshOptions', kind: 'skip' },
2666
+ { name: 'MultiLODMesh', source: 'topology/meshFns.js#MultiLODMesh', kind: 'skip' },
2667
+ { name: 'ShapeMesh', source: 'topology/meshFns.js#ShapeMesh', kind: 'skip' },
2668
+ { name: 'Color', source: 'topology/metadata/colorFns.js#Color', kind: 'skip' },
2669
+ { name: 'ColorInput', source: 'topology/metadata/colorFns.js#ColorInput', kind: 'skip' },
2670
+ { name: 'MinkowskiOptions', source: 'topology/minkowskiFns.js#MinkowskiOptions', kind: 'skip' },
2671
+ { name: 'VariableFilletRadius', source: 'topology/modifierFns.js#VariableFilletRadius', kind: 'skip' },
2672
+ { name: 'PolyhedronOptions', source: 'topology/polyhedronFns.js#PolyhedronOptions', kind: 'skip' },
2673
+ { name: 'BoxOptions', source: 'topology/primitiveFns.js#BoxOptions', kind: 'skip' },
2674
+ { name: 'CircleOptions', source: 'topology/primitiveFns.js#CircleOptions', kind: 'skip' },
2675
+ { name: 'ConeOptions', source: 'topology/primitiveFns.js#ConeOptions', kind: 'skip' },
2676
+ { name: 'CylinderOptions', source: 'topology/primitiveFns.js#CylinderOptions', kind: 'skip' },
2677
+ { name: 'EllipseArcOptions', source: 'topology/primitiveFns.js#EllipseArcOptions', kind: 'skip' },
2678
+ { name: 'EllipseOptions', source: 'topology/primitiveFns.js#EllipseOptions', kind: 'skip' },
2679
+ { name: 'EllipsoidOptions', source: 'topology/primitiveFns.js#EllipsoidOptions', kind: 'skip' },
2680
+ { name: 'HelixOptions', source: 'topology/primitiveFns.js#HelixOptions', kind: 'skip' },
2681
+ { name: 'SphereOptions', source: 'topology/primitiveFns.js#SphereOptions', kind: 'skip' },
2682
+ { name: 'TorusOptions', source: 'topology/primitiveFns.js#TorusOptions', kind: 'skip' },
2683
+ { name: 'ShapeDescription', source: 'topology/shapeFns.js#ShapeDescription', kind: 'skip' },
2684
+ { name: 'BrokenDerivedFaceRef', source: 'topology/shapeRef/index.js#BrokenDerivedFaceRef', kind: 'skip' },
2685
+ { name: 'BrokenEdgeRef', source: 'topology/shapeRef/index.js#BrokenEdgeRef', kind: 'skip' },
2686
+ { name: 'BrokenReason', source: 'topology/shapeRef/index.js#BrokenReason', kind: 'skip' },
2687
+ { name: 'BrokenRef', source: 'topology/shapeRef/index.js#BrokenRef', kind: 'skip' },
2688
+ { name: 'BrokenVertexRef', source: 'topology/shapeRef/index.js#BrokenVertexRef', kind: 'skip' },
2689
+ { name: 'DerivedFaceHint', source: 'topology/shapeRef/index.js#DerivedFaceHint', kind: 'skip' },
2690
+ { name: 'DerivedFaceRef', source: 'topology/shapeRef/index.js#DerivedFaceRef', kind: 'skip' },
2691
+ { name: 'EdgeHint', source: 'topology/shapeRef/index.js#EdgeHint', kind: 'skip' },
2692
+ { name: 'EdgeRef', source: 'topology/shapeRef/index.js#EdgeRef', kind: 'skip' },
2693
+ { name: 'FaceScorer', source: 'topology/shapeRef/index.js#FaceScorer', kind: 'skip' },
2694
+ { name: 'GeometricHint', source: 'topology/shapeRef/index.js#GeometricHint', kind: 'skip' },
2695
+ { name: 'LineageRef', source: 'topology/shapeRef/index.js#LineageRef', kind: 'skip' },
2696
+ { name: 'LineageResolution', source: 'topology/shapeRef/index.js#LineageResolution', kind: 'skip' },
2697
+ { name: 'ResolvedDerivedFaceRef', source: 'topology/shapeRef/index.js#ResolvedDerivedFaceRef', kind: 'skip' },
2698
+ { name: 'ResolvedEdgeRef', source: 'topology/shapeRef/index.js#ResolvedEdgeRef', kind: 'skip' },
2699
+ { name: 'ResolvedEntity', source: 'topology/shapeRef/index.js#ResolvedEntity', kind: 'skip' },
2700
+ { name: 'ResolvedRef', source: 'topology/shapeRef/index.js#ResolvedRef', kind: 'skip' },
2701
+ { name: 'ResolvedVertexRef', source: 'topology/shapeRef/index.js#ResolvedVertexRef', kind: 'skip' },
2702
+ { name: 'RoleTable', source: 'topology/shapeRef/index.js#RoleTable', kind: 'skip' },
2703
+ { name: 'ShapeRef', source: 'topology/shapeRef/index.js#ShapeRef', kind: 'skip' },
2704
+ { name: 'VertexHint', source: 'topology/shapeRef/index.js#VertexHint', kind: 'skip' },
2705
+ { name: 'VertexRef', source: 'topology/shapeRef/index.js#VertexRef', kind: 'skip' },
2706
+ { name: 'SurfaceFromGridOptions', source: 'topology/surfaceFns.js#SurfaceFromGridOptions', kind: 'skip' },
2707
+ { name: 'SurfaceFromImageOptions', source: 'topology/surfaceFns.js#SurfaceFromImageOptions', kind: 'skip' },
2708
+ { name: 'BufferGeometryData', source: 'topology/threeHelpers.js#BufferGeometryData', kind: 'skip' },
2709
+ { name: 'BufferGeometryGroup', source: 'topology/threeHelpers.js#BufferGeometryGroup', kind: 'skip' },
2710
+ { name: 'GroupedBufferGeometryData', source: 'topology/threeHelpers.js#GroupedBufferGeometryData', kind: 'skip' },
2711
+ { name: 'LineGeometryData', source: 'topology/threeHelpers.js#LineGeometryData', kind: 'skip' },
2712
+ { name: 'LODGeometryData', source: 'topology/threeHelpers.js#LODGeometryData', kind: 'skip' },
2713
+ { name: 'LODGeometryLevel', source: 'topology/threeHelpers.js#LODGeometryLevel', kind: 'skip' },
2714
+ { name: 'Wrapped', source: 'topology/wrapperFns.js#Wrapped', kind: 'skip' },
2715
+ { name: 'Wrapped3D', source: 'topology/wrapperFns.js#Wrapped3D', kind: 'skip' },
2716
+ { name: 'WrappedCurve', source: 'topology/wrapperFns.js#WrappedCurve', kind: 'skip' },
2717
+ { name: 'WrappedFace', source: 'topology/wrapperFns.js#WrappedFace', kind: 'skip' },
2485
2718
  // ── topology value 登记(203 = 206 − P13a 的 torus/fuse/getBounds)──
2486
2719
  // brep-op:整件 Shape 进出(构造/变换/布尔/修饰,走 defineOp + borrow/adopt);
2487
2720
  // query:整件 Shape 进 → 纯数据出;pure:无 Shape 参数;skip:divergence 见 reason
@@ -2512,7 +2745,7 @@ export const ARG_SPEC = [
2512
2745
  reason: 'overridden by handwritten api/primitives.ts (cone dual-op, mesh+brep)',
2513
2746
  },
2514
2747
  {
2515
- name: 'ellipsoid', source: 'topology/primitiveFns.js#ellipsoid', kind: 'brep-op', capabilities: ["dispose", "makeEllipsoid", "translateWithHistory"],
2748
+ name: 'ellipsoid', source: 'brep-mirror/primitiveFns.ts#ellipsoidBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2516
2749
  geometryArgs: [], returnsResult: false,
2517
2750
  args: 'ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape',
2518
2751
  reason: '纯数值整件构造(rx/ry/rz → ValidSolid),brep-op',
@@ -2611,7 +2844,7 @@ export const ARG_SPEC = [
2611
2844
  reason: 'faijs 同名 translate(§5.1 双形态:对象形态手写面覆盖 + v:Vec3 位置形态并入),生成层不重复投影',
2612
2845
  },
2613
2846
  {
2614
- name: 'rotate', source: 'topology/api.js#rotate', kind: 'brep-op', capabilities: ["dispose", "rotateWithHistory"],
2847
+ name: 'rotate', source: 'brep-mirror/topologyFns.ts#rotateBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2615
2848
  geometryArgs: [0], returnsResult: false,
2616
2849
  args: 'rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape',
2617
2850
  reason: 'faijs rotate 已更名 rotate_euler(faijs 面只导出 rotate_euler),上游轴角 rotate 空出 → brep-op 进脚本面'
@@ -2627,7 +2860,7 @@ export const ARG_SPEC = [
2627
2860
  reason: 'overridden by handwritten api/transform.ts (scale dual-op, mesh+brep)',
2628
2861
  },
2629
2862
  {
2630
- name: 'mirror', source: 'topology/api.js#mirror', kind: 'brep-op', capabilities: ["dispose", "mirrorWithHistory"],
2863
+ name: 'mirror', source: 'brep-mirror/topologyFns.ts#mirrorBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2631
2864
  geometryArgs: [0], returnsResult: false,
2632
2865
  args: 'mirror(shape: Shape, options?: MirrorOptions): Shape',
2633
2866
  reason: 'faijs 无同名 mirror,整件反射 → brep-op',
@@ -2636,7 +2869,7 @@ export const ARG_SPEC = [
2636
2869
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2637
2870
  },
2638
2871
  {
2639
- name: 'clone', source: 'topology/api.js#clone', kind: 'brep-op', capabilities: ["copyShape", "dispose"],
2872
+ name: 'clone', source: 'brep-mirror/topologyFns.ts#cloneBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2640
2873
  geometryArgs: [0], returnsResult: true,
2641
2874
  args: 'clone(shape: Shape): Shape',
2642
2875
  reason: 'faijs 用 copy(不同名),整件克隆(Result<T>)→ brep-op',
@@ -2645,7 +2878,7 @@ export const ARG_SPEC = [
2645
2878
  naming: { kind: 'identity' },
2646
2879
  },
2647
2880
  {
2648
- name: 'applyMatrix', source: 'topology/api.js#applyMatrix', kind: 'brep-op', capabilities: ["dispose", "generalTransformNonOrthogonal", "generalTransformWithHistory", "hashCode", "iterShapes", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"],
2881
+ name: 'applyMatrix', source: 'brep-mirror/topologyFns.ts#applyMatrixBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2649
2882
  geometryArgs: [0], returnsResult: true,
2650
2883
  args: 'applyMatrix(shape: Shape, matrix: unknown): Shape',
2651
2884
  reason: 'faijs 用 applyTransform(不同名),整件矩阵变换 → brep-op',
@@ -2662,7 +2895,7 @@ export const ARG_SPEC = [
2662
2895
  naming: { kind: 'identity' },
2663
2896
  },
2664
2897
  {
2665
- name: 'locate', source: 'topology/api.js#locate', kind: 'brep-op', capabilities: ["composeTransform", "dispose", "hashCode", "locate"],
2898
+ name: 'locate', source: 'brep-mirror/topologyFns.ts#locateBrep', selfhost: true, kind: 'brep-op', capabilities: ["composeTransform", "dispose", "hashCode", "locate"],
2666
2899
  geometryArgs: [0], returnsResult: false,
2667
2900
  args: 'locate(shape: Shape, placement: unknown): Shape',
2668
2901
  reason: 'faijs 无同名,整件定位变换 → brep-op',
@@ -2671,7 +2904,7 @@ export const ARG_SPEC = [
2671
2904
  naming: { kind: 'identity' },
2672
2905
  },
2673
2906
  {
2674
- name: 'composeTransforms', source: 'topology/api.js#composeTransforms', kind: 'pure',
2907
+ name: 'composeTransforms', source: 'topology/api.js#composeTransforms', kind: 'skip',
2675
2908
  reason: '变换函数组合器(纯数据,无 Shape 参数)',
2676
2909
  },
2677
2910
  {
@@ -2699,7 +2932,7 @@ export const ARG_SPEC = [
2699
2932
  + '(含 UI ops 与存量迁移)——生成期守卫见 gen-l3-surface.ts(§4.8 触发条件)。',
2700
2933
  },
2701
2934
  {
2702
- name: 'section', source: 'topology/api.js#section', kind: 'brep-op', capabilities: ["dispose", "isNull", "section"],
2935
+ name: 'section', source: 'brep-mirror/booleanFns.ts#sectionBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2703
2936
  geometryArgs: [0], returnsResult: true,
2704
2937
  args: 'section(shape: Shape, plane: PlaneInput): Shape',
2705
2938
  params: ['shape', 'plane'], formClass: 'A',
@@ -2710,7 +2943,7 @@ export const ARG_SPEC = [
2710
2943
  reason: '返回 Face 子形状产物,faijs 整件面不承载,skip',
2711
2944
  },
2712
2945
  {
2713
- name: 'split', source: 'topology/api.js#split', kind: 'brep-op', capabilities: ["dispose", "isNull", "split"],
2946
+ name: 'split', source: 'brep-mirror/booleanFns.ts#splitBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2714
2947
  geometryArgs: [0], returnsResult: true,
2715
2948
  args: 'split(shape: Shape, tools: Shape[]): Shape',
2716
2949
  reason: 'faijs split 已更名 fai_split,上游工具切件 split 空出 → brep-op(§5.1 D-SPLIT;tools 暂登记几何首参,数组切件经 faijs 侧适配)',
@@ -2732,14 +2965,15 @@ export const ARG_SPEC = [
2732
2965
  reason: 'faijs 同名 chamfer(§5.1 O-CHAMFER-1:role 取边已保留,上游 Edge 句柄取边形态待处置),生成层不重复投影',
2733
2966
  },
2734
2967
  {
2735
- name: 'shell', source: 'topology/api.js#shell', kind: 'brep-op', capabilities: ["dispose", "shapeType", "shell", "shellWithHistory"],
2968
+ name: 'shell', source: 'brep-mirror/topologyFns.ts#shellBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2736
2969
  geometryArgs: [0], returnsResult: true,
2970
+ reason: 'faijs 侧 cad.shell 由手写中立 op 覆盖(api/shell.ts:选面走 FaceTopoRef,能力经 capabilities:["directEdit"] 路由 ⇒ 相对 vendored 的 occt 平台版是能力升级,brepkit 的 L1 shell 亦可用)。本投影保留为引擎记录(capability-map),生成模块符号不直接进 cad 命名空间 by design(同 extrude / sweep 口径)。',
2737
2971
  args: 'shell(shape: Shape, faces?: Shape[], thickness: number): Shape',
2738
2972
  params: ['shape', 'faces', 'thickness'], formClass: 'A',
2739
2973
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2740
2974
  },
2741
2975
  {
2742
- name: 'offset', source: 'topology/api.js#offset', kind: 'brep-op', capabilities: ["dispose", "offsetWithHistory", "shapeType"],
2976
+ name: 'offset', source: 'brep-mirror/topologyFns.ts#offsetBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2743
2977
  geometryArgs: [0], returnsResult: true,
2744
2978
  args: 'offset(shape: Shape, distance: number): Shape',
2745
2979
  reason: 'faijs 无同名偏置 → brep-op',
@@ -2749,14 +2983,14 @@ export const ARG_SPEC = [
2749
2983
  },
2750
2984
  {
2751
2985
  name: 'thicken', source: 'topology/api.js#thicken', kind: 'skip',
2752
- reason: '入参 Face|Shell 子形状句柄,faijs 整件面无法提供,skip',
2986
+ reason: 'overridden by handwritten api/thicken.ts (平台 op engines:[occt]:入参取面/壳整件 Shape——cad.sketch 产物即天然面来源;内部借入喂 vendored thicken,不再要求子形状句柄)',
2753
2987
  },
2754
2988
  {
2755
2989
  name: 'draft', source: 'topology/api.js#draft', kind: 'skip',
2756
- reason: 'DraftOptions 含 NeutralPlane 等 face 引用,faijs 面引用体系不同,skip',
2990
+ reason: 'overridden by handwritten api/draft.ts (平台 op engines:[occt] —— 实证收窄:brepkit 的 L1 draft 对对称 box 破坏对称性、部分 ordinal 静默无操作;选面走 FaceTopoRef,中性面用点而非 face 引用,且 occt 侧只支持原点中性面)',
2757
2991
  },
2758
2992
  {
2759
- name: 'heal', source: 'topology/api.js#heal', kind: 'brep-op', capabilities: ["dispose", "healFace", "healSolid", "healWire", "isValid", "shapeType"],
2993
+ name: 'heal', source: 'brep-mirror/healingFns.ts#healBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2760
2994
  geometryArgs: [0], returnsResult: true,
2761
2995
  args: 'heal(shape: Shape): Shape',
2762
2996
  reason: 'faijs 无同名整件修复 → brep-op',
@@ -2765,7 +2999,7 @@ export const ARG_SPEC = [
2765
2999
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2766
3000
  },
2767
3001
  {
2768
- name: 'simplify', source: 'topology/api.js#simplify', kind: 'brep-op', capabilities: ["dispose", "simplify"],
3002
+ name: 'simplify', source: 'brep-mirror/healingFns.ts#simplifyBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2769
3003
  geometryArgs: [0], returnsResult: true,
2770
3004
  args: 'simplify(shape: Shape): Shape',
2771
3005
  reason: 'faijs 无同名整件简化 → brep-op',
@@ -2794,18 +3028,20 @@ export const ARG_SPEC = [
2794
3028
  reason: 'BREP 反序列化(string 入参 → AnyShape),faijs 以 load/asset 体系承担,skip',
2795
3029
  },
2796
3030
  {
2797
- name: 'isValid', source: 'topology/api.js#isValid', kind: 'query',
3031
+ name: 'isValid', source: 'core:brep-mirror#isValid', kind: 'query', selfhost: true,
2798
3032
  geometryArgs: [0], returnsResult: false, returnType: 'boolean',
2799
- args: 'isValid(shape: Shape): boolean',
3033
+ args: 'isValid(shape: Shape): boolean(core selfhost)',
2800
3034
  reason: '整件合法性检查(Shape → boolean 纯数据),query',
2801
3035
  params: ['shape'], formClass: 'A',
3036
+ scriptFace: true,
2802
3037
  },
2803
3038
  {
2804
- name: 'isEmpty', source: 'topology/api.js#isEmpty', kind: 'query',
3039
+ name: 'isEmpty', source: 'topology/api.js#isEmpty', kind: 'skip',
2805
3040
  geometryArgs: [0], returnsResult: false, returnType: 'boolean',
2806
3041
  args: 'isEmpty(shape: Shape): boolean',
2807
- reason: '整件空判(Shape → boolean 纯数据),query',
2808
3042
  params: ['shape'], formClass: 'A',
3043
+ scriptFace: true,
3044
+ reason: 'core 引擎无等价方法(occt-wasm 无 isEmpty;getShapeType/isEqual 未进 L1),未平铺未公开(§5.5 第 2 条裁定删除)',
2809
3045
  },
2810
3046
  // shapeFns:整件 Shape 进出的查询/修饰;返回子形状句柄数组(get*/iter*)skip。
2811
3047
  {
@@ -2881,18 +3117,28 @@ export const ARG_SPEC = [
2881
3117
  reason: '内核形状缓存失效(状态操作),skip',
2882
3118
  },
2883
3119
  {
2884
- name: 'isEqualShape', source: 'topology/shapeFns.js#isEqualShape', kind: 'query',
3120
+ name: 'isEqualShape', source: 'topology/shapeFns.js#isEqualShape', kind: 'skip',
2885
3121
  geometryArgs: [0, 1], returnsResult: false, returnType: 'boolean',
2886
3122
  args: 'isEqualShape(a: Shape, b: Shape): boolean',
2887
- reason: '两整件几何相等比较(纯数据),query',
2888
3123
  params: ['a', 'b'], formClass: 'A',
3124
+ queryParams: [
3125
+ { name: 'a', type: 'Shape', docs: '第一个被比较形状' },
3126
+ { name: 'b', type: 'Shape', docs: '第二个被比较形状' },
3127
+ ],
3128
+ scriptFace: true,
3129
+ reason: 'core 引擎无等价方法(occt-wasm 无 isEmpty;getShapeType/isEqual 未进 L1),未平铺未公开(§5.5 第 2 条裁定删除)',
2889
3130
  },
2890
3131
  {
2891
- name: 'isSameShape', source: 'topology/shapeFns.js#isSameShape', kind: 'query',
3132
+ name: 'isSameShape', source: 'core:brep-mirror#isSameShape', kind: 'query', selfhost: true,
2892
3133
  geometryArgs: [0, 1], returnsResult: false, returnType: 'boolean',
2893
- args: 'isSameShape(a: Shape, b: Shape): boolean',
3134
+ args: 'isSameShape(a: Shape, b: Shape): boolean(core selfhost)',
2894
3135
  reason: '两整件同构比较(纯数据),query',
2895
3136
  params: ['a', 'b'], formClass: 'A',
3137
+ queryParams: [
3138
+ { name: 'a', type: 'Shape', docs: '第一个被比较形状' },
3139
+ { name: 'b', type: 'Shape', docs: '第二个被比较形状' },
3140
+ ],
3141
+ scriptFace: true,
2896
3142
  },
2897
3143
  {
2898
3144
  name: 'getHashCode', source: 'topology/shapeFns.js#getHashCode', kind: 'skip',
@@ -3033,7 +3279,7 @@ export const ARG_SPEC = [
3033
3279
  },
3034
3280
  {
3035
3281
  name: 'removeHolesFromFace', source: 'topology/faceFns.js#removeHolesFromFace', kind: 'skip',
3036
- reason: 'Face 子形状入参,skip',
3282
+ reason: 'overridden by handwritten api/feature-repair.ts (入参取整件面 Shape 的 BREP 槽位句柄;孔索引由 L1 适配器按「除外环外全部 wire」推导,不再要求子形状句柄)',
3037
3283
  },
3038
3284
  {
3039
3285
  name: 'pointOnSurface', source: 'topology/faceFns.js#pointOnSurface', kind: 'skip',
@@ -3061,16 +3307,16 @@ export const ARG_SPEC = [
3061
3307
  },
3062
3308
  // healingFns:整件修复 brep-op;face/wire 级修复与 shell 组装 skip
3063
3309
  {
3064
- name: 'autoHeal', source: 'topology/healingFns.js#autoHeal', kind: 'brep-op', capabilities: ["dispose", "fixSelfIntersection", "healFace", "healSolid", "healWire", "isValid", "iterShapes", "sew", "shapeType"],
3065
- geometryArgs: [0], returnsResult: true,
3066
- args: 'autoHeal(shape: Shape, options?: AutoHealOptions): Shape',
3310
+ name: 'autoHeal', source: 'brep-mirror/healingFns.ts#autoHealBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3311
+ geometryArgs: [0], returnsResult: true, outputs: ['shape'],
3312
+ args: 'autoHeal(shape: Shape, options?: AutoHealOptions): { shape: Shape, report }',
3067
3313
  reason: '整件自动修复(Result<Shape>),brep-op',
3068
3314
  params: ['shape', 'options'], formClass: 'A',
3069
3315
  scriptFace: true,
3070
3316
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3071
3317
  },
3072
3318
  {
3073
- name: 'fixShape', source: 'topology/healingFns.js#fixShape', kind: 'brep-op', capabilities: ["fixShape"],
3319
+ name: 'fixShape', source: 'brep-mirror/healingFns.ts#fixShapeBrep', selfhost: true, kind: 'brep-op', capabilities: ["fixShape"],
3074
3320
  geometryArgs: [0], returnsResult: true,
3075
3321
  args: 'fixShape(shape: Shape): Shape',
3076
3322
  reason: '整件修复(Result<Shape>),brep-op',
@@ -3079,7 +3325,7 @@ export const ARG_SPEC = [
3079
3325
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3080
3326
  },
3081
3327
  {
3082
- name: 'healSolid', source: 'topology/healingFns.js#healSolid', kind: 'brep-op', capabilities: ["dispose", "healSolid", "isValid", "shapeType"],
3328
+ name: 'healSolid', source: 'brep-mirror/healingFns.ts#healSolidBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3083
3329
  geometryArgs: [0], returnsResult: true,
3084
3330
  args: 'healSolid(solid: Shape): Shape',
3085
3331
  reason: 'Solid 修复(Result<ValidSolid>),brep-op',
@@ -3088,11 +3334,12 @@ export const ARG_SPEC = [
3088
3334
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3089
3335
  },
3090
3336
  {
3091
- name: 'fixSelfIntersection', source: 'topology/healingFns.js#fixSelfIntersection', kind: 'brep-op', capabilities: ["dispose", "fixSelfIntersection", "shapeType"],
3337
+ name: 'fixSelfIntersection', source: 'brep-mirror/healingFns.ts#fixSelfIntersectionBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3092
3338
  geometryArgs: [0], returnsResult: true,
3093
3339
  args: 'fixSelfIntersection(shape: Shape): Shape',
3094
3340
  params: ['shape'], formClass: 'A',
3095
3341
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3342
+ scriptFace: true,
3096
3343
  },
3097
3344
  {
3098
3345
  name: 'healFace', source: 'topology/healingFns.js#healFace', kind: 'skip',
@@ -3195,15 +3442,15 @@ export const ARG_SPEC = [
3195
3442
  reason: 'KernelShape 谓词,faijs 以 isCompound/ShapeKind 覆盖,skip',
3196
3443
  },
3197
3444
  {
3198
- name: 'isNumber', source: 'topology/index.js#isNumber', kind: 'pure',
3445
+ name: 'isNumber', source: 'topology/index.js#isNumber', kind: 'skip',
3199
3446
  reason: '纯类型守卫(无 Shape 参数)',
3200
3447
  },
3201
3448
  {
3202
- name: 'isChamferRadius', source: 'topology/index.js#isChamferRadius', kind: 'pure',
3449
+ name: 'isChamferRadius', source: 'topology/index.js#isChamferRadius', kind: 'skip',
3203
3450
  reason: '纯类型守卫(radius 联合判别,无 Shape 参数)',
3204
3451
  },
3205
3452
  {
3206
- name: 'isFilletRadius', source: 'topology/index.js#isFilletRadius', kind: 'pure',
3453
+ name: 'isFilletRadius', source: 'topology/index.js#isFilletRadius', kind: 'skip',
3207
3454
  reason: '纯类型守卫(radius 联合判别,无 Shape 参数)',
3208
3455
  },
3209
3456
  // chamferAngleFns:角-距倒角 DSL → skip(chamfer 同名处置见上)
@@ -3269,23 +3516,23 @@ export const ARG_SPEC = [
3269
3516
  reason: 'lineage 解析(kernel 引用),skip',
3270
3517
  },
3271
3518
  {
3272
- name: 'isLineageRef', source: 'topology/shapeRef/index.js#isLineageRef', kind: 'pure',
3519
+ name: 'isLineageRef', source: 'topology/shapeRef/index.js#isLineageRef', kind: 'skip',
3273
3520
  reason: '纯类型守卫(引用判别,无 kernel 调用)',
3274
3521
  },
3275
3522
  {
3276
- name: 'isFaceRef', source: 'topology/shapeRef/index.js#isFaceRef', kind: 'pure',
3523
+ name: 'isFaceRef', source: 'topology/shapeRef/index.js#isFaceRef', kind: 'skip',
3277
3524
  reason: '纯类型守卫(引用判别,无 kernel 调用)',
3278
3525
  },
3279
3526
  {
3280
- name: 'isEdgeRef', source: 'topology/shapeRef/index.js#isEdgeRef', kind: 'pure',
3527
+ name: 'isEdgeRef', source: 'topology/shapeRef/index.js#isEdgeRef', kind: 'skip',
3281
3528
  reason: '纯类型守卫(引用判别,无 kernel 调用)',
3282
3529
  },
3283
3530
  {
3284
- name: 'isVertexRef', source: 'topology/shapeRef/index.js#isVertexRef', kind: 'pure',
3531
+ name: 'isVertexRef', source: 'topology/shapeRef/index.js#isVertexRef', kind: 'skip',
3285
3532
  reason: '纯类型守卫(引用判别,无 kernel 调用)',
3286
3533
  },
3287
3534
  {
3288
- name: 'isDerivedFaceRef', source: 'topology/shapeRef/index.js#isDerivedFaceRef', kind: 'pure',
3535
+ name: 'isDerivedFaceRef', source: 'topology/shapeRef/index.js#isDerivedFaceRef', kind: 'skip',
3289
3536
  reason: '纯类型守卫(引用判别,无 kernel 调用)',
3290
3537
  },
3291
3538
  {
@@ -3430,62 +3677,62 @@ export const ARG_SPEC = [
3430
3677
  reason: '多面体构造(面片选项 DSL,返回 ValidSolid 形态待核),skip',
3431
3678
  },
3432
3679
  // ──── P14 补批 12:kernel 模块(57 = 21 value + 36 type;D10 冻结 registry)────
3433
- // kernel 是 L0 注册表面:D10 单实例 occt-wasm 由 faijs occt-kernel-bridge 装配并冻结,
3680
+ // kernel 是 L0 注册表面:D10 单实例 occt-wasm 由 faijs 侧装配并冻结`n // (2026-09-25 core-decouple 后 vendored registry 由宿主/测试自装配),
3434
3681
  // 只读/纯数据符号 re-export;registry 生命周期(init/with*/register*/tier/perf)与
3435
3682
  // KernelAdapter 对象谓词登记 skip(理由见各条);上游已剪除符号(BrepkitHandle、
3436
3683
  // PerformanceStats、BrepkitAdapter、init 系等)同样 skip——vendored 树无对应导出。
3437
3684
  //
3438
3685
  // 36 type:34 个 re-export(真身所在文件)+ 2 个 skip(vendored 无此类型)
3439
- { name: 'BooleanDiagnostics', source: 'kernel/types.js#BooleanDiagnostics', kind: 'type', module: 'kernel' },
3440
- { name: 'BooleanIssue', source: 'kernel/types.js#BooleanIssue', kind: 'type', module: 'kernel' },
3441
- { name: 'BooleanOpType', source: 'kernel/types.js#BooleanOpType', kind: 'type', module: 'kernel' },
3442
- { name: 'CheckBooleanResult', source: 'kernel/types.js#CheckBooleanResult', kind: 'type', module: 'kernel' },
3443
- { name: 'NurbsCurveData', source: 'kernel/types.js#NurbsCurveData', kind: 'type', module: 'kernel' },
3444
- { name: 'NurbsSurfaceData', source: 'kernel/types.js#NurbsSurfaceData', kind: 'type', module: 'kernel' },
3445
- { name: 'ShapeEvolution', source: 'kernel/types.js#ShapeEvolution', kind: 'type', module: 'kernel' },
3446
- { name: 'ShapeOrientation', source: 'kernel/types.js#ShapeOrientation', kind: 'type', module: 'kernel' },
3447
- { name: 'ShapeType', source: 'kernel/types.js#ShapeType', kind: 'type', module: 'kernel' },
3448
- { name: 'SurfaceType', source: 'kernel/types.js#SurfaceType', kind: 'type', module: 'kernel' },
3449
- { name: 'ProjectionCapability', source: 'kernel/types.js#ProjectionCapability', kind: 'type', module: 'kernel' },
3450
- { name: 'ConstraintSketchCapability', source: 'kernel/types.js#ConstraintSketchCapability', kind: 'type', module: 'kernel' },
3451
- { name: 'KernelAdapter', source: 'kernel/interfaces/index.js#KernelAdapter', kind: 'type', module: 'kernel' },
3452
- { name: 'KernelCore', source: 'kernel/interfaces/index.js#KernelCore', kind: 'type', module: 'kernel' },
3453
- { name: 'KernelBooleanOps', source: 'kernel/interfaces/index.js#KernelBooleanOps', kind: 'type', module: 'kernel' },
3454
- { name: 'KernelBuilderOps', source: 'kernel/interfaces/index.js#KernelBuilderOps', kind: 'type', module: 'kernel' },
3455
- { name: 'KernelCurveOps', source: 'kernel/interfaces/index.js#KernelCurveOps', kind: 'type', module: 'kernel' },
3456
- { name: 'KernelEvolutionOps', source: 'kernel/interfaces/index.js#KernelEvolutionOps', kind: 'type', module: 'kernel' },
3457
- { name: 'KernelIOOps', source: 'kernel/interfaces/index.js#KernelIOOps', kind: 'type', module: 'kernel' },
3458
- { name: 'KernelMeasureOps', source: 'kernel/interfaces/index.js#KernelMeasureOps', kind: 'type', module: 'kernel' },
3459
- { name: 'KernelMeshOps', source: 'kernel/interfaces/index.js#KernelMeshOps', kind: 'type', module: 'kernel' },
3460
- { name: 'KernelModifierOps', source: 'kernel/interfaces/index.js#KernelModifierOps', kind: 'type', module: 'kernel' },
3461
- { name: 'KernelPrimitiveOps', source: 'kernel/interfaces/index.js#KernelPrimitiveOps', kind: 'type', module: 'kernel' },
3462
- { name: 'KernelRepairOps', source: 'kernel/interfaces/index.js#KernelRepairOps', kind: 'type', module: 'kernel' },
3463
- { name: 'KernelSurfaceOps', source: 'kernel/interfaces/index.js#KernelSurfaceOps', kind: 'type', module: 'kernel' },
3464
- { name: 'KernelSweepOps', source: 'kernel/interfaces/index.js#KernelSweepOps', kind: 'type', module: 'kernel' },
3465
- { name: 'KernelTopologyOps', source: 'kernel/interfaces/index.js#KernelTopologyOps', kind: 'type', module: 'kernel' },
3466
- { name: 'KernelTransformOps', source: 'kernel/interfaces/index.js#KernelTransformOps', kind: 'type', module: 'kernel' },
3467
- { name: 'KernelCapabilities', source: 'kernel/capabilities.js#KernelCapabilities', kind: 'type', module: 'kernel' },
3468
- { name: 'TessellationModel', source: 'kernel/capabilities.js#TessellationModel', kind: 'type', module: 'kernel' },
3469
- { name: 'QualityLevel', source: 'kernel/quality.js#QualityLevel', kind: 'type', module: 'kernel' },
3470
- { name: 'OcctKernelWasm', source: 'kernel/occtWasm/occtWasmTypes.js#OcctKernelWasm', kind: 'type', module: 'kernel' },
3471
- { name: 'OcctWasmHandle', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmHandle', kind: 'type', module: 'kernel' },
3472
- { name: 'OcctWasmModule', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmModule', kind: 'type', module: 'kernel' },
3686
+ { name: 'BooleanDiagnostics', source: 'kernel/types.js#BooleanDiagnostics', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3687
+ { name: 'BooleanIssue', source: 'kernel/types.js#BooleanIssue', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3688
+ { name: 'BooleanOpType', source: 'kernel/types.js#BooleanOpType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3689
+ { name: 'CheckBooleanResult', source: 'kernel/types.js#CheckBooleanResult', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3690
+ { name: 'NurbsCurveData', source: 'kernel/types.js#NurbsCurveData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3691
+ { name: 'NurbsSurfaceData', source: 'kernel/types.js#NurbsSurfaceData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3692
+ { name: 'ShapeEvolution', source: 'kernel/types.js#ShapeEvolution', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3693
+ { name: 'ShapeOrientation', source: 'kernel/types.js#ShapeOrientation', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3694
+ { name: 'ShapeType', source: 'kernel/types.js#ShapeType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3695
+ { name: 'SurfaceType', source: 'kernel/types.js#SurfaceType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3696
+ { name: 'ProjectionCapability', source: 'kernel/types.js#ProjectionCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3697
+ { name: 'ConstraintSketchCapability', source: 'kernel/types.js#ConstraintSketchCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3698
+ { name: 'KernelAdapter', source: 'kernel/interfaces/index.js#KernelAdapter', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3699
+ { name: 'KernelCore', source: 'kernel/interfaces/index.js#KernelCore', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3700
+ { name: 'KernelBooleanOps', source: 'kernel/interfaces/index.js#KernelBooleanOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3701
+ { name: 'KernelBuilderOps', source: 'kernel/interfaces/index.js#KernelBuilderOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3702
+ { name: 'KernelCurveOps', source: 'kernel/interfaces/index.js#KernelCurveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3703
+ { name: 'KernelEvolutionOps', source: 'kernel/interfaces/index.js#KernelEvolutionOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3704
+ { name: 'KernelIOOps', source: 'kernel/interfaces/index.js#KernelIOOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3705
+ { name: 'KernelMeasureOps', source: 'kernel/interfaces/index.js#KernelMeasureOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3706
+ { name: 'KernelMeshOps', source: 'kernel/interfaces/index.js#KernelMeshOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3707
+ { name: 'KernelModifierOps', source: 'kernel/interfaces/index.js#KernelModifierOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3708
+ { name: 'KernelPrimitiveOps', source: 'kernel/interfaces/index.js#KernelPrimitiveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3709
+ { name: 'KernelRepairOps', source: 'kernel/interfaces/index.js#KernelRepairOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3710
+ { name: 'KernelSurfaceOps', source: 'kernel/interfaces/index.js#KernelSurfaceOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3711
+ { name: 'KernelSweepOps', source: 'kernel/interfaces/index.js#KernelSweepOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3712
+ { name: 'KernelTopologyOps', source: 'kernel/interfaces/index.js#KernelTopologyOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3713
+ { name: 'KernelTransformOps', source: 'kernel/interfaces/index.js#KernelTransformOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3714
+ { name: 'KernelCapabilities', source: 'kernel/capabilities.js#KernelCapabilities', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3715
+ { name: 'TessellationModel', source: 'kernel/capabilities.js#TessellationModel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3716
+ { name: 'QualityLevel', source: 'kernel/quality.js#QualityLevel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3717
+ { name: 'OcctKernelWasm', source: 'kernel/occtWasm/occtWasmTypes.js#OcctKernelWasm', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3718
+ { name: 'OcctWasmHandle', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmHandle', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3719
+ { name: 'OcctWasmModule', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmModule', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3473
3720
  {
3474
3721
  name: 'BrepkitHandle', source: 'kernel/index.js#BrepkitHandle', kind: 'skip', module: 'kernel',
3475
- reason: '上游 brepkit 句柄类型(faijs 以 occt-kernel-bridge/OcctWasmHandle 承担),vendored 无此导出,skip',
3722
+ reason: '上游 brepkit 句柄类型(faijs 以 OcctWasmHandle 承担),vendored 无此导出,skip',
3476
3723
  },
3477
3724
  {
3478
3725
  name: 'PerformanceStats', source: 'kernel/perfStats.js#PerformanceStats', kind: 'skip', module: 'kernel',
3479
3726
  reason: '性能统计类型,vendored perfStats 模块已剪除,skip',
3480
3727
  },
3481
3728
  // 21 value:4 个只读/纯数据 re-export;registry 生命周期与对象谓词 skip
3482
- { name: 'DEFAULT_CAPABILITIES', source: 'kernel/capabilities.js#DEFAULT_CAPABILITIES', kind: 'pure', module: 'kernel', reason: 'kernel 能力常量表(纯数据)' },
3483
- { name: 'EXACT_BREP_CAPABILITIES', source: 'kernel/capabilities.js#EXACT_BREP_CAPABILITIES', kind: 'pure', module: 'kernel', reason: 'kernel 能力常量表(纯数据)' },
3484
- { name: 'currentQuality', source: 'kernel/quality.js#currentQuality', kind: 'pure', module: 'kernel', reason: '当前细分质量档读取(无 Shape 参数,纯读取)' },
3485
- { name: 'getKernelCapabilities', source: 'kernel/index.js#getKernelCapabilities', kind: 'pure', module: 'kernel', reason: 'kernel 能力查询(返回 KernelCapabilities 纯数据)' },
3729
+ { name: 'DEFAULT_CAPABILITIES', source: 'kernel/capabilities.js#DEFAULT_CAPABILITIES', kind: 'skip', module: 'kernel', reason: 'kernel 能力常量表(纯数据)' },
3730
+ { name: 'EXACT_BREP_CAPABILITIES', source: 'kernel/capabilities.js#EXACT_BREP_CAPABILITIES', kind: 'skip', module: 'kernel', reason: 'kernel 能力常量表(纯数据)' },
3731
+ { name: 'currentQuality', source: 'kernel/quality.js#currentQuality', kind: 'skip', module: 'kernel', reason: '当前细分质量档读取(无 Shape 参数,纯读取)' },
3732
+ { name: 'getKernelCapabilities', source: 'kernel/index.js#getKernelCapabilities', kind: 'skip', module: 'kernel', reason: 'kernel 能力查询(返回 KernelCapabilities 纯数据)' },
3486
3733
  {
3487
3734
  name: 'getKernel', source: 'kernel/index.js#getKernel', kind: 'skip', module: 'kernel',
3488
- reason: 'L0 kernel 读取器(D10:faijs occt-kernel-bridge 单实例装配并冻结),不向 L3 用户面暴露,skip',
3735
+ reason: 'L0 kernel 读取器(D10:faijs 侧装配并冻结 vendored registry),不向 L3 用户面暴露,skip',
3489
3736
  },
3490
3737
  {
3491
3738
  name: 'registerKernel', source: 'kernel/index.js#registerKernel', kind: 'skip', module: 'kernel',
@@ -3501,11 +3748,11 @@ export const ARG_SPEC = [
3501
3748
  },
3502
3749
  {
3503
3750
  name: 'OcctWasmAdapter', source: 'kernel/occtWasm/occtWasmAdapter.js#OcctWasmAdapter', kind: 'skip', module: 'kernel',
3504
- reason: 'occt-wasm 宿主适配器类(faijs occt-kernel-bridge 装配期构造单实例,D10),skip',
3751
+ reason: 'occt-wasm 宿主适配器类(faijs 侧装配期构造单实例,D10),skip',
3505
3752
  },
3506
3753
  {
3507
3754
  name: 'BrepkitAdapter', source: 'kernel/index.js#BrepkitAdapter', kind: 'skip', module: 'kernel',
3508
- reason: '上游 brepkit 适配器(faijs 以 occt-kernel-bridge 承担),vendored 无此导出,skip',
3755
+ reason: '上游 brepkit 适配器(faijs 以 occt 面承担),vendored 无此导出,skip',
3509
3756
  },
3510
3757
  {
3511
3758
  name: 'init', source: 'kernel/index.js#init', kind: 'skip', module: 'kernel',