@faicad/faijs 0.29.5 → 0.30.9

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 (582) hide show
  1. package/NOTICE +6 -5
  2. package/dist/api/api-namespace.d.ts +1 -1
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +53 -1
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/appearance.d.ts +0 -2
  7. package/dist/api/appearance.d.ts.map +1 -1
  8. package/dist/api/appearance.js +0 -2
  9. package/dist/api/appearance.js.map +1 -1
  10. package/dist/api/assembly/entities.d.ts +1 -1
  11. package/dist/api/assembly/entities.js +1 -1
  12. package/dist/api/assembly/entities.js.map +1 -1
  13. package/dist/api/assembly/index.d.ts +1 -1
  14. package/dist/api/assembly/index.js +1 -1
  15. package/dist/api/assembly/index.js.map +1 -1
  16. package/dist/api/assembly/joints.d.ts +33 -15
  17. package/dist/api/assembly/joints.d.ts.map +1 -1
  18. package/dist/api/assembly/joints.js +31 -13
  19. package/dist/api/assembly/joints.js.map +1 -1
  20. package/dist/api/assembly/preview.d.ts +1 -1
  21. package/dist/api/assembly/preview.js +1 -1
  22. package/dist/api/assembly/preview.js.map +1 -1
  23. package/dist/api/assembly/solve.d.ts +1 -1
  24. package/dist/api/assembly/solve.js +1 -1
  25. package/dist/api/assembly/solve.js.map +1 -1
  26. package/dist/api/assembly/solvers/assembly-tree.d.ts +1 -1
  27. package/dist/api/assembly/solvers/assembly-tree.js +1 -1
  28. package/dist/api/assembly/solvers/assembly-tree.js.map +1 -1
  29. package/dist/api/assembly/solvers/chain-solver.d.ts +2 -2
  30. package/dist/api/assembly/solvers/chain-solver.js.map +1 -1
  31. package/dist/api/assembly/solvers/global-solver.d.ts +1 -2
  32. package/dist/api/assembly/solvers/global-solver.d.ts.map +1 -1
  33. package/dist/api/assembly/solvers/global-solver.js +3 -4
  34. package/dist/api/assembly/solvers/global-solver.js.map +1 -1
  35. package/dist/api/assembly/solvers/joints-kinematics.js +1 -1
  36. package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -1
  37. package/dist/api/assembly/solvers/linalg.d.ts +2 -2
  38. package/dist/api/assembly/solvers/linalg.js +2 -2
  39. package/dist/api/assembly/solvers/linalg.js.map +1 -1
  40. package/dist/api/assembly/solvers/types.d.ts +2 -5
  41. package/dist/api/assembly/solvers/types.d.ts.map +1 -1
  42. package/dist/api/assembly/solvers/types.js +1 -4
  43. package/dist/api/assembly/solvers/types.js.map +1 -1
  44. package/dist/api/boolean.d.ts.map +1 -1
  45. package/dist/api/boolean.js +7 -6
  46. package/dist/api/boolean.js.map +1 -1
  47. package/dist/api/brep-mirror/booleanFns.d.ts +3 -3
  48. package/dist/api/brep-mirror/booleanFns.js +5 -5
  49. package/dist/api/brep-mirror/booleanFns.js.map +1 -1
  50. package/dist/api/brep-mirror/compoundFns.d.ts +1 -1
  51. package/dist/api/brep-mirror/compoundFns.js +4 -4
  52. package/dist/api/brep-mirror/compoundFns.js.map +1 -1
  53. package/dist/api/brep-mirror/healingFns.d.ts +4 -4
  54. package/dist/api/brep-mirror/healingFns.js +4 -4
  55. package/dist/api/brep-mirror/healingFns.js.map +1 -1
  56. package/dist/api/brep-mirror/hullFns.d.ts +2 -2
  57. package/dist/api/brep-mirror/hullFns.js +2 -2
  58. package/dist/api/brep-mirror/hullFns.js.map +1 -1
  59. package/dist/api/brep-mirror/patternFns.d.ts +5 -5
  60. package/dist/api/brep-mirror/patternFns.js +10 -10
  61. package/dist/api/brep-mirror/patternFns.js.map +1 -1
  62. package/dist/api/brep-mirror/primitiveFns.d.ts +4 -4
  63. package/dist/api/brep-mirror/primitiveFns.js +4 -4
  64. package/dist/api/brep-mirror/primitiveFns.js.map +1 -1
  65. package/dist/api/brep-mirror/roofFns.d.ts +3 -3
  66. package/dist/api/brep-mirror/roofFns.js +7 -7
  67. package/dist/api/brep-mirror/roofFns.js.map +1 -1
  68. package/dist/api/brep-mirror/sweepFns.d.ts +7 -7
  69. package/dist/api/brep-mirror/sweepFns.js +14 -14
  70. package/dist/api/brep-mirror/sweepFns.js.map +1 -1
  71. package/dist/api/brep-mirror/threadFns.d.ts +1 -1
  72. package/dist/api/brep-mirror/threadFns.js +1 -1
  73. package/dist/api/brep-mirror/threadFns.js.map +1 -1
  74. package/dist/api/brep-mirror/topologyFns.d.ts +5 -5
  75. package/dist/api/brep-mirror/topologyFns.js +8 -8
  76. package/dist/api/brep-mirror/topologyFns.js.map +1 -1
  77. package/dist/api/brep-operations/booleanFns.d.ts +40 -0
  78. package/dist/api/brep-operations/booleanFns.d.ts.map +1 -0
  79. package/dist/api/brep-operations/booleanFns.js +104 -0
  80. package/dist/api/brep-operations/booleanFns.js.map +1 -0
  81. package/dist/api/brep-operations/brepHelpers.d.ts +55 -0
  82. package/dist/api/brep-operations/brepHelpers.d.ts.map +1 -0
  83. package/dist/api/brep-operations/brepHelpers.js +131 -0
  84. package/dist/api/brep-operations/brepHelpers.js.map +1 -0
  85. package/dist/api/brep-operations/compoundFns.d.ts +46 -0
  86. package/dist/api/brep-operations/compoundFns.d.ts.map +1 -0
  87. package/dist/api/brep-operations/compoundFns.js +299 -0
  88. package/dist/api/brep-operations/compoundFns.js.map +1 -0
  89. package/dist/api/brep-operations/healingFns.d.ts +78 -0
  90. package/dist/api/brep-operations/healingFns.d.ts.map +1 -0
  91. package/dist/api/brep-operations/healingFns.js +294 -0
  92. package/dist/api/brep-operations/healingFns.js.map +1 -0
  93. package/dist/api/brep-operations/hullFns.d.ts +20 -0
  94. package/dist/api/brep-operations/hullFns.d.ts.map +1 -0
  95. package/dist/api/brep-operations/hullFns.js +46 -0
  96. package/dist/api/brep-operations/hullFns.js.map +1 -0
  97. package/dist/api/brep-operations/joinery-brep.d.ts +172 -0
  98. package/dist/api/brep-operations/joinery-brep.d.ts.map +1 -0
  99. package/dist/api/brep-operations/joinery-brep.js +463 -0
  100. package/dist/api/brep-operations/joinery-brep.js.map +1 -0
  101. package/dist/api/brep-operations/patternFns.d.ts +43 -0
  102. package/dist/api/brep-operations/patternFns.d.ts.map +1 -0
  103. package/dist/api/brep-operations/patternFns.js +178 -0
  104. package/dist/api/brep-operations/patternFns.js.map +1 -0
  105. package/dist/api/brep-operations/primitiveFns.d.ts +42 -0
  106. package/dist/api/brep-operations/primitiveFns.d.ts.map +1 -0
  107. package/dist/api/brep-operations/primitiveFns.js +104 -0
  108. package/dist/api/brep-operations/primitiveFns.js.map +1 -0
  109. package/dist/api/brep-operations/roofFns.d.ts +24 -0
  110. package/dist/api/brep-operations/roofFns.d.ts.map +1 -0
  111. package/dist/api/brep-operations/roofFns.js +229 -0
  112. package/dist/api/brep-operations/roofFns.js.map +1 -0
  113. package/dist/api/brep-operations/straightSkeleton.d.ts +36 -0
  114. package/dist/api/brep-operations/straightSkeleton.d.ts.map +1 -0
  115. package/dist/api/brep-operations/straightSkeleton.js +431 -0
  116. package/dist/api/brep-operations/straightSkeleton.js.map +1 -0
  117. package/dist/api/brep-operations/sweepFns.d.ts +60 -0
  118. package/dist/api/brep-operations/sweepFns.d.ts.map +1 -0
  119. package/dist/api/brep-operations/sweepFns.js +323 -0
  120. package/dist/api/brep-operations/sweepFns.js.map +1 -0
  121. package/dist/api/brep-operations/threadFns.d.ts +83 -0
  122. package/dist/api/brep-operations/threadFns.d.ts.map +1 -0
  123. package/dist/api/brep-operations/threadFns.js +138 -0
  124. package/dist/api/brep-operations/threadFns.js.map +1 -0
  125. package/dist/api/brep-operations/topologyFns.d.ts +90 -0
  126. package/dist/api/brep-operations/topologyFns.d.ts.map +1 -0
  127. package/dist/api/brep-operations/topologyFns.js +276 -0
  128. package/dist/api/brep-operations/topologyFns.js.map +1 -0
  129. package/dist/api/brep-topology.d.ts +1 -1
  130. package/dist/api/brep-topology.d.ts.map +1 -1
  131. package/dist/api/brep-topology.js +1 -1
  132. package/dist/api/brep-topology.js.map +1 -1
  133. package/dist/api/brepjs-compat/index.d.ts +1 -1
  134. package/dist/api/brepjs-compat/index.js +3 -3
  135. package/dist/api/brepjs-compat/index.js.map +1 -1
  136. package/dist/api/cadquery-selectors/borrow-bridge.d.ts.map +1 -1
  137. package/dist/api/cadquery-selectors/borrow-bridge.js +3 -4
  138. package/dist/api/cadquery-selectors/borrow-bridge.js.map +1 -1
  139. package/dist/api/curve-sketch/index.d.ts +235 -0
  140. package/dist/api/curve-sketch/index.d.ts.map +1 -0
  141. package/dist/api/curve-sketch/index.js +487 -0
  142. package/dist/api/curve-sketch/index.js.map +1 -0
  143. package/dist/api/engrave.d.ts.map +1 -1
  144. package/dist/api/engrave.js +3 -2
  145. package/dist/api/engrave.js.map +1 -1
  146. package/dist/api/export-brep.d.ts +41 -0
  147. package/dist/api/export-brep.d.ts.map +1 -0
  148. package/dist/api/export-brep.js +58 -0
  149. package/dist/api/export-brep.js.map +1 -0
  150. package/dist/api/export-stl.d.ts +50 -0
  151. package/dist/api/export-stl.d.ts.map +1 -0
  152. package/dist/api/export-stl.js +99 -0
  153. package/dist/api/export-stl.js.map +1 -0
  154. package/dist/api/extrude.d.ts +8 -11
  155. package/dist/api/extrude.d.ts.map +1 -1
  156. package/dist/api/extrude.js +11 -14
  157. package/dist/api/extrude.js.map +1 -1
  158. package/dist/api/fillet-variable.d.ts +2 -2
  159. package/dist/api/fillet-variable.js +2 -2
  160. package/dist/api/fillet-variable.js.map +1 -1
  161. package/dist/api/fillet.d.ts +2 -4
  162. package/dist/api/fillet.d.ts.map +1 -1
  163. package/dist/api/fillet.js +2 -4
  164. package/dist/api/fillet.js.map +1 -1
  165. package/dist/api/generated/2d.d.ts +4 -0
  166. package/dist/api/generated/2d.d.ts.map +1 -1
  167. package/dist/api/generated/2d.js +4 -0
  168. package/dist/api/generated/2d.js.map +1 -1
  169. package/dist/api/generated/core.d.ts +4 -0
  170. package/dist/api/generated/core.d.ts.map +1 -1
  171. package/dist/api/generated/core.js +4 -0
  172. package/dist/api/generated/core.js.map +1 -1
  173. package/dist/api/generated/gear.d.ts +4 -0
  174. package/dist/api/generated/gear.d.ts.map +1 -1
  175. package/dist/api/generated/gear.js +4 -0
  176. package/dist/api/generated/gear.js.map +1 -1
  177. package/dist/api/generated/io.d.ts +4 -0
  178. package/dist/api/generated/io.d.ts.map +1 -1
  179. package/dist/api/generated/io.js +4 -0
  180. package/dist/api/generated/io.js.map +1 -1
  181. package/dist/api/generated/kernel.d.ts +4 -0
  182. package/dist/api/generated/kernel.d.ts.map +1 -1
  183. package/dist/api/generated/kernel.js +4 -0
  184. package/dist/api/generated/kernel.js.map +1 -1
  185. package/dist/api/generated/measurement.d.ts +21 -21
  186. package/dist/api/generated/measurement.d.ts.map +1 -1
  187. package/dist/api/generated/measurement.js +25 -21
  188. package/dist/api/generated/measurement.js.map +1 -1
  189. package/dist/api/generated/ns.d.ts +4 -0
  190. package/dist/api/generated/ns.d.ts.map +1 -1
  191. package/dist/api/generated/ns.js +4 -0
  192. package/dist/api/generated/ns.js.map +1 -1
  193. package/dist/api/generated/operations.d.ts +32 -32
  194. package/dist/api/generated/operations.d.ts.map +1 -1
  195. package/dist/api/generated/operations.js +52 -48
  196. package/dist/api/generated/operations.js.map +1 -1
  197. package/dist/api/generated/projection.d.ts +4 -0
  198. package/dist/api/generated/projection.d.ts.map +1 -1
  199. package/dist/api/generated/projection.js +4 -0
  200. package/dist/api/generated/projection.js.map +1 -1
  201. package/dist/api/generated/query.d.ts +4 -0
  202. package/dist/api/generated/query.d.ts.map +1 -1
  203. package/dist/api/generated/query.js +4 -0
  204. package/dist/api/generated/query.js.map +1 -1
  205. package/dist/api/generated/sketching.d.ts +2 -2
  206. package/dist/api/generated/sketching.d.ts.map +1 -1
  207. package/dist/api/generated/sketching.js +7 -3
  208. package/dist/api/generated/sketching.js.map +1 -1
  209. package/dist/api/generated/text.d.ts +4 -0
  210. package/dist/api/generated/text.d.ts.map +1 -1
  211. package/dist/api/generated/text.js +4 -0
  212. package/dist/api/generated/text.js.map +1 -1
  213. package/dist/api/generated/topology.d.ts +45 -45
  214. package/dist/api/generated/topology.d.ts.map +1 -1
  215. package/dist/api/generated/topology.js +67 -63
  216. package/dist/api/generated/topology.js.map +1 -1
  217. package/dist/api/generated/view.d.ts +4 -0
  218. package/dist/api/generated/view.d.ts.map +1 -1
  219. package/dist/api/generated/view.js +4 -0
  220. package/dist/api/generated/view.js.map +1 -1
  221. package/dist/api/geom-types/constants.d.ts +11 -0
  222. package/dist/api/geom-types/constants.d.ts.map +1 -0
  223. package/dist/api/geom-types/constants.js +11 -0
  224. package/dist/api/geom-types/constants.js.map +1 -0
  225. package/dist/api/geom-types/index.d.ts +21 -0
  226. package/dist/api/geom-types/index.d.ts.map +1 -0
  227. package/dist/api/geom-types/index.js +22 -0
  228. package/dist/api/geom-types/index.js.map +1 -0
  229. package/dist/api/geom-types/planeOps.d.ts +98 -0
  230. package/dist/api/geom-types/planeOps.d.ts.map +1 -0
  231. package/dist/api/geom-types/planeOps.js +170 -0
  232. package/dist/api/geom-types/planeOps.js.map +1 -0
  233. package/dist/api/geom-types/planeTypes.d.ts +24 -0
  234. package/dist/api/geom-types/planeTypes.d.ts.map +1 -0
  235. package/dist/api/geom-types/planeTypes.js +8 -0
  236. package/dist/api/geom-types/planeTypes.js.map +1 -0
  237. package/dist/api/geom-types/types.d.ts +64 -0
  238. package/dist/api/geom-types/types.d.ts.map +1 -0
  239. package/dist/api/geom-types/types.js +48 -0
  240. package/dist/api/geom-types/types.js.map +1 -0
  241. package/dist/api/geom-types/vecOps.d.ts +124 -0
  242. package/dist/api/geom-types/vecOps.d.ts.map +1 -0
  243. package/dist/api/geom-types/vecOps.js +202 -0
  244. package/dist/api/geom-types/vecOps.js.map +1 -0
  245. package/dist/api/geom.d.ts.map +1 -1
  246. package/dist/api/geom.js +6 -5
  247. package/dist/api/geom.js.map +1 -1
  248. package/dist/api/half-space.d.ts +56 -0
  249. package/dist/api/half-space.d.ts.map +1 -0
  250. package/dist/api/half-space.js +82 -0
  251. package/dist/api/half-space.js.map +1 -0
  252. package/dist/api/helix.d.ts +10 -1
  253. package/dist/api/helix.d.ts.map +1 -1
  254. package/dist/api/helix.js +19 -3
  255. package/dist/api/helix.js.map +1 -1
  256. package/dist/api/index.d.ts +15 -6
  257. package/dist/api/index.d.ts.map +1 -1
  258. package/dist/api/index.js +29 -8
  259. package/dist/api/index.js.map +1 -1
  260. package/dist/api/internal/compat-op.d.ts +4 -30
  261. package/dist/api/internal/compat-op.d.ts.map +1 -1
  262. package/dist/api/internal/compat-op.js +10 -42
  263. package/dist/api/internal/compat-op.js.map +1 -1
  264. package/dist/api/internal/compat-projection.d.ts +5 -5
  265. package/dist/api/internal/compat-projection.js +5 -5
  266. package/dist/api/internal/compat-projection.js.map +1 -1
  267. package/dist/api/internal/dual-form-args.d.ts +0 -2
  268. package/dist/api/internal/dual-form-args.d.ts.map +1 -1
  269. package/dist/api/internal/dual-form-args.js +1 -3
  270. package/dist/api/internal/dual-form-args.js.map +1 -1
  271. package/dist/api/internal/l3-bridge.d.ts +5 -37
  272. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  273. package/dist/api/internal/l3-bridge.js +7 -76
  274. package/dist/api/internal/l3-bridge.js.map +1 -1
  275. package/dist/api/internal/profile-wire.d.ts +1 -1
  276. package/dist/api/internal/profile-wire.js +1 -1
  277. package/dist/api/internal/profile-wire.js.map +1 -1
  278. package/dist/api/internal/result-unwrap.d.ts +4 -6
  279. package/dist/api/internal/result-unwrap.d.ts.map +1 -1
  280. package/dist/api/internal/result-unwrap.js +4 -6
  281. package/dist/api/internal/result-unwrap.js.map +1 -1
  282. package/dist/api/knurl.d.ts.map +1 -1
  283. package/dist/api/knurl.js +5 -3
  284. package/dist/api/knurl.js.map +1 -1
  285. package/dist/api/loft.d.ts +2 -2
  286. package/dist/api/loft.d.ts.map +1 -1
  287. package/dist/api/loft.js +2 -2
  288. package/dist/api/loft.js.map +1 -1
  289. package/dist/api/measurement/index.d.ts +3 -3
  290. package/dist/api/measurement/index.js +3 -3
  291. package/dist/api/measurement/index.js.map +1 -1
  292. package/dist/api/meta.d.ts +0 -2
  293. package/dist/api/meta.d.ts.map +1 -1
  294. package/dist/api/meta.js +0 -2
  295. package/dist/api/meta.js.map +1 -1
  296. package/dist/api/offset2d.d.ts +49 -0
  297. package/dist/api/offset2d.d.ts.map +1 -0
  298. package/dist/api/offset2d.js +86 -0
  299. package/dist/api/offset2d.js.map +1 -0
  300. package/dist/api/pattern.js +3 -3
  301. package/dist/api/pattern.js.map +1 -1
  302. package/dist/api/primitives.d.ts.map +1 -1
  303. package/dist/api/primitives.js +7 -6
  304. package/dist/api/primitives.js.map +1 -1
  305. package/dist/api/replicate.d.ts +2 -2
  306. package/dist/api/replicate.d.ts.map +1 -1
  307. package/dist/api/replicate.js +12 -12
  308. package/dist/api/replicate.js.map +1 -1
  309. package/dist/api/result.d.ts +1 -1
  310. package/dist/api/result.js +1 -1
  311. package/dist/api/result.js.map +1 -1
  312. package/dist/api/revolve.d.ts +2 -2
  313. package/dist/api/revolve.js +3 -3
  314. package/dist/api/revolve.js.map +1 -1
  315. package/dist/api/screw.d.ts +1 -1
  316. package/dist/api/screw.d.ts.map +1 -1
  317. package/dist/api/screw.js +5 -4
  318. package/dist/api/screw.js.map +1 -1
  319. package/dist/api/sdf.d.ts.map +1 -1
  320. package/dist/api/sdf.js +3 -2
  321. package/dist/api/sdf.js.map +1 -1
  322. package/dist/api/shape-type/index.d.ts +141 -0
  323. package/dist/api/shape-type/index.d.ts.map +1 -0
  324. package/dist/api/shape-type/index.js +182 -0
  325. package/dist/api/shape-type/index.js.map +1 -0
  326. package/dist/api/shell.d.ts +2 -2
  327. package/dist/api/shell.js +2 -2
  328. package/dist/api/shell.js.map +1 -1
  329. package/dist/api/solid-from-faces.d.ts +45 -0
  330. package/dist/api/solid-from-faces.d.ts.map +1 -0
  331. package/dist/api/solid-from-faces.js +72 -0
  332. package/dist/api/solid-from-faces.js.map +1 -0
  333. package/dist/api/solid-offset/index.d.ts +67 -0
  334. package/dist/api/solid-offset/index.d.ts.map +1 -0
  335. package/dist/api/solid-offset/index.js +132 -0
  336. package/dist/api/solid-offset/index.js.map +1 -0
  337. package/dist/api/surface/arg-spec.d.ts +35 -33
  338. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  339. package/dist/api/surface/arg-spec.js +222 -224
  340. package/dist/api/surface/arg-spec.js.map +1 -1
  341. package/dist/api/surface-face/index.d.ts +104 -0
  342. package/dist/api/surface-face/index.d.ts.map +1 -0
  343. package/dist/api/surface-face/index.js +217 -0
  344. package/dist/api/surface-face/index.js.map +1 -0
  345. package/dist/api/surface.d.ts +44 -0
  346. package/dist/api/surface.d.ts.map +1 -0
  347. package/dist/api/surface.js +66 -0
  348. package/dist/api/surface.js.map +1 -0
  349. package/dist/api/sweep.d.ts +59 -9
  350. package/dist/api/sweep.d.ts.map +1 -1
  351. package/dist/api/sweep.js +11 -6
  352. package/dist/api/sweep.js.map +1 -1
  353. package/dist/api/thicken.d.ts +1 -1
  354. package/dist/api/thicken.js +1 -1
  355. package/dist/api/thicken.js.map +1 -1
  356. package/dist/api/transform.d.ts +5 -5
  357. package/dist/api/transform.d.ts.map +1 -1
  358. package/dist/api/transform.js +11 -10
  359. package/dist/api/transform.js.map +1 -1
  360. package/dist/api/view/cameraFns.d.ts +1 -1
  361. package/dist/api/view/cameraFns.d.ts.map +1 -1
  362. package/dist/api/view/cameraFns.js +1 -1
  363. package/dist/api/view/cameraFns.js.map +1 -1
  364. package/dist/api/view/index.d.ts +0 -2
  365. package/dist/api/view/index.d.ts.map +1 -1
  366. package/dist/api/view/index.js +0 -2
  367. package/dist/api/view/index.js.map +1 -1
  368. package/dist/api/view/projectionPlanes.d.ts +1 -1
  369. package/dist/api/view/projectionPlanes.d.ts.map +1 -1
  370. package/dist/api/view/projectionPlanes.js.map +1 -1
  371. package/dist/api/view/view-camera.d.ts +7 -9
  372. package/dist/api/view/view-camera.d.ts.map +1 -1
  373. package/dist/api/view/view-camera.js +4 -6
  374. package/dist/api/view/view-camera.js.map +1 -1
  375. package/dist/api/view/view-projection.d.ts +0 -2
  376. package/dist/api/view/view-projection.d.ts.map +1 -1
  377. package/dist/api/view/view-projection.js +0 -2
  378. package/dist/api/view/view-projection.js.map +1 -1
  379. package/dist/api/view/view-sheet.d.ts +0 -2
  380. package/dist/api/view/view-sheet.d.ts.map +1 -1
  381. package/dist/api/view/view-sheet.js +0 -2
  382. package/dist/api/view/view-sheet.js.map +1 -1
  383. package/dist/api/view-export/index.d.ts +97 -0
  384. package/dist/api/view-export/index.d.ts.map +1 -0
  385. package/dist/api/view-export/index.js +118 -0
  386. package/dist/api/view-export/index.js.map +1 -0
  387. package/dist/brep/brep-ops.d.ts +89 -1
  388. package/dist/brep/brep-ops.d.ts.map +1 -1
  389. package/dist/brep/brep-ops.js +176 -10
  390. package/dist/brep/brep-ops.js.map +1 -1
  391. package/dist/brep/brep-topology.d.ts +20 -0
  392. package/dist/brep/brep-topology.d.ts.map +1 -1
  393. package/dist/brep/brep-topology.js +46 -0
  394. package/dist/brep/brep-topology.js.map +1 -1
  395. package/dist/brep/engine/adapters/occt.d.ts +1 -1
  396. package/dist/brep/engine/adapters/occt.js +7 -7
  397. package/dist/brep/engine/adapters/occt.js.map +1 -1
  398. package/dist/brep/engine/primitives.d.ts +2 -3
  399. package/dist/brep/engine/primitives.d.ts.map +1 -1
  400. package/dist/brep/engine/primitives.js +1 -2
  401. package/dist/brep/engine/primitives.js.map +1 -1
  402. package/dist/brep/engine/registry.d.ts +1 -1
  403. package/dist/brep/engine/registry.js +1 -1
  404. package/dist/brep/engine/registry.js.map +1 -1
  405. package/dist/brep/engine/types.d.ts +2 -2
  406. package/dist/brep/engine/types.js.map +1 -1
  407. package/dist/brep/handle-bridge.d.ts +2 -2
  408. package/dist/brep/handle-bridge.js +2 -2
  409. package/dist/brep/handle-bridge.js.map +1 -1
  410. package/dist/brep/index.d.ts +6 -3
  411. package/dist/brep/index.d.ts.map +1 -1
  412. package/dist/brep/index.js +6 -3
  413. package/dist/brep/index.js.map +1 -1
  414. package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
  415. package/dist/brepkit-kernel/brepkitKernel.js +2 -2
  416. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  417. package/dist/browser.d.ts +2 -2
  418. package/dist/browser.d.ts.map +1 -1
  419. package/dist/browser.js +5 -4
  420. package/dist/browser.js.map +1 -1
  421. package/dist/cad-runtime/admit-compat-lib.d.ts +3 -10
  422. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  423. package/dist/cad-runtime/admit-compat-lib.js +3 -9
  424. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  425. package/dist/cad-runtime/backend-dispatch.js +12 -3
  426. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  427. package/dist/cad-runtime/direct-executor.d.ts +6 -3
  428. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  429. package/dist/cad-runtime/direct-executor.js +31 -9
  430. package/dist/cad-runtime/direct-executor.js.map +1 -1
  431. package/dist/cad-runtime/interp/env.d.ts +1 -1
  432. package/dist/cad-runtime/interp/env.js.map +1 -1
  433. package/dist/cad-runtime/lib-id.d.ts +0 -2
  434. package/dist/cad-runtime/lib-id.d.ts.map +1 -1
  435. package/dist/cad-runtime/lib-id.js +0 -2
  436. package/dist/cad-runtime/lib-id.js.map +1 -1
  437. package/dist/cad-runtime/live-shapes.d.ts +3 -5
  438. package/dist/cad-runtime/live-shapes.d.ts.map +1 -1
  439. package/dist/cad-runtime/live-shapes.js +8 -10
  440. package/dist/cad-runtime/live-shapes.js.map +1 -1
  441. package/dist/cad-runtime/ports.d.ts +3 -3
  442. package/dist/cad-runtime/ports.js.map +1 -1
  443. package/dist/cad-runtime/runtime.d.ts +21 -7
  444. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  445. package/dist/cad-runtime/runtime.js +45 -6
  446. package/dist/cad-runtime/runtime.js.map +1 -1
  447. package/dist/define-op.d.ts +4 -3
  448. package/dist/define-op.d.ts.map +1 -1
  449. package/dist/define-op.js +2 -2
  450. package/dist/define-op.js.map +1 -1
  451. package/dist/geometry2d/bridge/plane.d.ts +1 -1
  452. package/dist/geometry2d/bridge/plane.js +1 -1
  453. package/dist/geometry2d/bridge/plane.js.map +1 -1
  454. package/dist/geometry2d/curve2d.d.ts +1 -1
  455. package/dist/geometry2d/curve2d.js +1 -1
  456. package/dist/geometry2d/curve2d.js.map +1 -1
  457. package/dist/index.d.ts +1 -1
  458. package/dist/index.d.ts.map +1 -1
  459. package/dist/index.js +10 -4
  460. package/dist/index.js.map +1 -1
  461. package/dist/io/fai-zip/container-read.d.ts +16 -0
  462. package/dist/io/fai-zip/container-read.d.ts.map +1 -1
  463. package/dist/io/fai-zip/container-read.js +22 -0
  464. package/dist/io/fai-zip/container-read.js.map +1 -1
  465. package/dist/io/fai-zip/index.d.ts +1 -1
  466. package/dist/io/fai-zip/index.d.ts.map +1 -1
  467. package/dist/io/fai-zip/index.js +1 -1
  468. package/dist/io/fai-zip/index.js.map +1 -1
  469. package/dist/lang/code-to-args.d.ts.map +1 -1
  470. package/dist/lang/code-to-args.js +10 -1
  471. package/dist/lang/code-to-args.js.map +1 -1
  472. package/dist/lang/determinism-scanner.d.ts.map +1 -1
  473. package/dist/lang/determinism-scanner.js +22 -9
  474. package/dist/lang/determinism-scanner.js.map +1 -1
  475. package/dist/lang/metadata-extractor.d.ts +27 -6
  476. package/dist/lang/metadata-extractor.d.ts.map +1 -1
  477. package/dist/lang/metadata-extractor.js +88 -8
  478. package/dist/lang/metadata-extractor.js.map +1 -1
  479. package/dist/lang/parse-error.d.ts +4 -0
  480. package/dist/lang/parse-error.d.ts.map +1 -1
  481. package/dist/lang/parse-error.js.map +1 -1
  482. package/dist/lang/security-scanner.d.ts +27 -2
  483. package/dist/lang/security-scanner.d.ts.map +1 -1
  484. package/dist/lang/security-scanner.js +29 -2
  485. package/dist/lang/security-scanner.js.map +1 -1
  486. package/dist/lang/source-edit.d.ts +2 -2
  487. package/dist/lang/source-edit.js.map +1 -1
  488. package/dist/lang/symbol-table.generated.d.ts +36 -0
  489. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  490. package/dist/lang/symbol-table.generated.js +36 -0
  491. package/dist/lang/symbol-table.generated.js.map +1 -1
  492. package/dist/mesh/import-model.d.ts +94 -0
  493. package/dist/mesh/import-model.d.ts.map +1 -0
  494. package/dist/mesh/import-model.js +15 -0
  495. package/dist/mesh/import-model.js.map +1 -0
  496. package/dist/mesh/index.d.ts +19 -58
  497. package/dist/mesh/index.d.ts.map +1 -1
  498. package/dist/mesh/index.js +19 -70
  499. package/dist/mesh/index.js.map +1 -1
  500. package/dist/mesh/io.d.ts +33 -16
  501. package/dist/mesh/io.d.ts.map +1 -1
  502. package/dist/mesh/io.js +144 -39
  503. package/dist/mesh/io.js.map +1 -1
  504. package/dist/mesh/primitives.js +1 -1
  505. package/dist/mesh/primitives.js.map +1 -1
  506. package/dist/mesh/threemf-bambu.d.ts +12 -1
  507. package/dist/mesh/threemf-bambu.d.ts.map +1 -1
  508. package/dist/mesh/threemf-bambu.js +68 -16
  509. package/dist/mesh/threemf-bambu.js.map +1 -1
  510. package/dist/mesh/threemf-loader.d.ts +14 -1
  511. package/dist/mesh/threemf-loader.d.ts.map +1 -1
  512. package/dist/mesh/threemf-loader.js +24 -7
  513. package/dist/mesh/threemf-loader.js.map +1 -1
  514. package/dist/mesh/transform.d.ts +1 -1
  515. package/dist/mesh/transform.js +1 -1
  516. package/dist/mesh/transform.js.map +1 -1
  517. package/dist/mesh/types.d.ts +5 -5
  518. package/dist/mesh/types.d.ts.map +1 -1
  519. package/dist/mesh/types.js.map +1 -1
  520. package/dist/node-host/cli.d.ts +49 -1
  521. package/dist/node-host/cli.d.ts.map +1 -1
  522. package/dist/node-host/cli.js +125 -19
  523. package/dist/node-host/cli.js.map +1 -1
  524. package/dist/node-host/execute-script.d.ts +55 -0
  525. package/dist/node-host/execute-script.d.ts.map +1 -0
  526. package/dist/node-host/execute-script.js +46 -0
  527. package/dist/node-host/execute-script.js.map +1 -0
  528. package/dist/node.d.ts +2 -0
  529. package/dist/node.d.ts.map +1 -1
  530. package/dist/node.js +3 -0
  531. package/dist/node.js.map +1 -1
  532. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +260 -0
  533. package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +1 -0
  534. package/dist/occt-kernel/generated/occtPlatform.generated.js +875 -0
  535. package/dist/occt-kernel/generated/occtPlatform.generated.js.map +1 -0
  536. package/dist/occt-kernel/hullGeometry.d.ts +2 -2
  537. package/dist/occt-kernel/hullGeometry.js +2 -3
  538. package/dist/occt-kernel/hullGeometry.js.map +1 -1
  539. package/dist/occt-kernel/hullOps.d.ts +3 -3
  540. package/dist/occt-kernel/hullOps.js +4 -4
  541. package/dist/occt-kernel/hullOps.js.map +1 -1
  542. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
  543. package/dist/occt-kernel/occt-primitives.js +31 -4
  544. package/dist/occt-kernel/occt-primitives.js.map +1 -1
  545. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  546. package/dist/occt-kernel/occtKernel.js +18 -0
  547. package/dist/occt-kernel/occtKernel.js.map +1 -1
  548. package/dist/occt-scan/recognize.d.ts +58 -0
  549. package/dist/occt-scan/recognize.d.ts.map +1 -0
  550. package/dist/occt-scan/recognize.js +216 -0
  551. package/dist/occt-scan/recognize.js.map +1 -0
  552. package/dist/primitives/brep-primitives.js +7 -7
  553. package/dist/primitives/brep-primitives.js.map +1 -1
  554. package/dist/result/bug.d.ts +1 -1
  555. package/dist/result/bug.js +1 -1
  556. package/dist/result/bug.js.map +1 -1
  557. package/dist/result/errors.d.ts +2 -2
  558. package/dist/result/errors.d.ts.map +1 -1
  559. package/dist/result/errors.js +1 -1
  560. package/dist/result/errors.js.map +1 -1
  561. package/dist/result/vec3.d.ts +1 -1
  562. package/dist/result/vec3.js +1 -1
  563. package/dist/result/vec3.js.map +1 -1
  564. package/dist/runtime-state.d.ts +16 -0
  565. package/dist/runtime-state.d.ts.map +1 -1
  566. package/dist/runtime-state.js +27 -0
  567. package/dist/runtime-state.js.map +1 -1
  568. package/dist/script-globals.d.ts +24 -0
  569. package/dist/script-globals.d.ts.map +1 -0
  570. package/dist/script-globals.js +24 -0
  571. package/dist/script-globals.js.map +1 -0
  572. package/dist/shape.d.ts +24 -0
  573. package/dist/shape.d.ts.map +1 -1
  574. package/dist/shape.js +40 -0
  575. package/dist/shape.js.map +1 -1
  576. package/dist/topology/naming/lineage.d.ts +3 -2
  577. package/dist/topology/naming/lineage.d.ts.map +1 -1
  578. package/dist/topology/naming/lineage.js.map +1 -1
  579. package/dist/weapp.d.ts +1 -1
  580. package/dist/weapp.js +1 -1
  581. package/dist/weapp.js.map +1 -1
  582. package/package.json +8 -10
@@ -1,22 +1,23 @@
1
1
  /**
2
2
  * arg-spec — L3 投影签名适配表(E5 唯一人工维护点)
3
3
  *
4
- * 设计文档:docs/plans/2026-09-02-faijs-api-surface-completion.md §E5 / §5.2
5
- *
6
- * 输入:brepjs `src/index.ts`(upstream-surface.json 已按 §2.6 排除)。
7
4
  * 作用:为每个保留符号声明「faijs 面投影方式」。生成器
8
- * `scripts/gen-l3-surface.ts` 读取本表 + surface 清单,产出
9
- * `api/generated/<module>.ts`(E5:不手写 699 个;本表之外符号按默认规则推导)。
5
+ * `packages/core/scripts/gen-l3-surface.ts` 读取本表,按
6
+ * PROJECTED_MODULES 分片产出 `api/generated/<module>.ts`;未列入本表的符号不进生成。
7
+ *
8
+ * 产出类别(生成器按此判别;完整定义见 gen-l3-surface.ts 头部):
9
+ * brep-op : defineOp({ brep: __own_* }) —— Solid 进出,直连 core 自有实现(api/brep-operations/)
10
+ * query : 普通导出函数(getBrepApi().* 直连引擎,返回纯数据,不进 defineOp——先例 api/geom.ts)
11
+ * faijs : re-export 自手写 api/ 模块
12
+ * skip : 仅登记不生成(divergence:语义 faijs 面无法表达 / 已由既有 op 覆盖),带 reason
13
+ * (历史 kind 'type' / 'pure' 已无条目,出现即抛错)
10
14
  *
11
- * 产出类别(对齐 §5.2 / E5 分类表;生成器按本类判别产出):
12
- * brep-op : defineOp({ brep }) —— Solid 进出(构造/变换/布尔/修饰)
13
- * query : 普通导出函数(输入 Shape 借入 brepjs handle → 调 vendored → 返回纯数据;
14
- * 返回非 Shape,不进 defineOp——先例 api/geom.ts,generated/topology.ts getBounds)
15
- * pure : 无 Shape 参数的纯函数 → 直接 re-export(不进 defineOp,不是 op)
16
- * type : `export type { … } from '<vendored>'` re-export
17
- * skip : 登记跳过(divergence:语义 faijs 面无法表达 / 已由 faijs 既有 op 覆盖),带 reason
15
+ * A6(2026-10-06)口径指认:本表 + 生成的 generated/*.ts 是 L3 投影面的
16
+ * **增量**清单;cad 脚本面的**全集**清单权威来源是 generated/script-face.ts
17
+ * (scriptFace: true 条目)与 lang/symbol-table.generated.ts(95 op)。两个清单
18
+ * 回答不同问题、互不为超集——禁止互相反推。
18
19
  *
19
- * 双形态(E2):同名符号由生成器注入 `normalizeArgs` 判别器(faijs 对象形态 ↔ brepjs
20
+ * 双形态(E2):同名符号由生成器注入 `normalizeArgs` 判别器(faijs 对象形态 ↔
20
21
  * 位置形态),适配表给 faijs 形参映射;本文件首批样本聚焦「faijs 无同名」的纯新增符号,
21
22
  * 双形态条目随 §5.1 同名处置逐批加入(P14 分批)。
22
23
  *
@@ -27,8 +28,8 @@
27
28
  * 4. getBounds — query(topology/shapeFns,faijs 用 bbox* 但无同名)
28
29
  */
29
30
  /**
30
- * 首批机制验证样本(P13a)。每个样本都选了 faijs 无同名、brepjs 有完整实现的符号,
31
- * 生成产物可立即 typecheck 并桥接 vendored 跑通(E5 模板:句柄借入 → 调 vendored →
31
+ * 首批机制验证样本(P13a)。每个样本都选了 faijs 无同名、来源有完整实现的符号,
32
+ * 生成产物可立即 typecheck 并桥接来源实现跑通(E5 模板:输入原样直传 → 调来源实现 →
32
33
  * Result 翻转 → fromBrep 所有权转入)。
33
34
  */
34
35
  export const ARG_SPEC = [
@@ -39,11 +40,11 @@ export const ARG_SPEC = [
39
40
  },
40
41
  {
41
42
  name: 'torus',
42
- source: 'brep-mirror/primitiveFns.ts#torusBrep', selfhost: true,
43
+ source: 'brep-operations/primitiveFns.ts#torusBrep',
43
44
  kind: 'brep-op',
44
45
  capabilities: ["dispose", "makeTorus"],
45
46
  args: '(majorRadius: number, minorRadius: number, options?: TorusOptions)',
46
- // 构造类:无几何输入(纯数值参数),brepjs 返回裸 ValidSolid(非 Result)。
47
+ // 构造类:无几何输入(纯数值参数),来源实现返回裸 ValidSolid(非 Result)。
47
48
  geometryArgs: [],
48
49
  returnsResult: false,
49
50
  params: ['majorRadius', 'minorRadius', 'options'],
@@ -53,19 +54,19 @@ export const ARG_SPEC = [
53
54
  },
54
55
  {
55
56
  name: 'fuse',
56
- source: 'brep-mirror/booleanFns.ts#fuseBrep', selfhost: true,
57
+ source: 'brep-operations/booleanFns.ts#fuseBrep',
57
58
  kind: 'brep-op',
58
- // Phase 5 补漏(§1.5 推论 1 / D11):vendored fuse 默认 trackEvolution 路径依赖
59
+ // Phase 5 补漏(§1.5 推论 1 / D11):来源实现 fuse 默认 trackEvolution 路径依赖
59
60
  // kernel.isNull / kernel.dispose(occt 平台面)→ 平台 op,声明 engines: ['occt']
60
61
  // 在 brepkit 下执行前报错(D11-4)。
61
62
  args: '(a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>',
62
- // 两个输入都是 faijs Shape → 借入 brepjs handle;第三参 options 透传。
63
+ // 两个输入都是 faijs Shape → 原样直传给来源实现(引擎不改写入参);第三参 options 透传。
63
64
  geometryArgs: [0, 1],
64
65
  returnsResult: true,
65
66
  params: ['a', 'b', 'options'],
66
67
  formClass: 'A',
67
68
  scriptFace: true,
68
- // 依赖声明(诚实原则):isNull / dispose 是 vendored fuse 的真实内核依赖,二者都在
69
+ // 依赖声明(诚实原则):isNull / dispose 是来源实现 fuse 的真实内核依赖,二者都在
69
70
  // BrepMethodKind 逐核真名里。本条目早前因 D11-7 互斥被迫只留 engines;互斥已于
70
71
  // 2026-09-24 撤销,两条轴可并存,届时按 capability-map.json 实证补回依赖清单。
71
72
  engines: ['occt'],
@@ -73,11 +74,10 @@ export const ARG_SPEC = [
73
74
  },
74
75
  {
75
76
  name: 'getBounds',
76
- source: 'core:brep-mirror#getBounds',
77
+ source: 'core:brep-operations#getBounds',
77
78
  kind: 'query',
78
- selfhost: true,
79
- args: '(shape: Shape) -> BrepBoundingBox(core selfhost)',
80
- // 查询:输入 Shape(借入),返回纯数据 Bounds3D → 不进 defineOp(直接导出函数)。
79
+ args: '(shape: Shape) -> BrepBoundingBox(core)',
80
+ // 查询:输入 Shape(函数内经 brepOf 直读内核句柄),返回纯数据 Bounds3D → 不进 defineOp(直接导出函数)。
81
81
  geometryArgs: [0],
82
82
  returnsResult: false,
83
83
  returnType: '{ xmin: number; ymin: number; zmin: number; xmax: number; ymax: number; zmax: number }',
@@ -146,7 +146,7 @@ export const ARG_SPEC = [
146
146
  kind: 'skip',
147
147
  module: 'measurement',
148
148
  reason: '状态化查询工具:返回带闭包引用(distanceTo/dispose)的 brep 距离工具,faijs 面' +
149
- '无法静态建模(查询对象生命周期 + 后续 Shape 参数逐次借入);跳过,待宿主适配器手工实现',
149
+ '无法静态建模(查询对象生命周期 + 后续 Shape 参数的逐次取句柄);跳过,待宿主适配器手工实现',
150
150
  },
151
151
  // 12 × query(volume / area / length / distance / curvature / interference)
152
152
  {
@@ -154,8 +154,7 @@ export const ARG_SPEC = [
154
154
  source: 'measurement/measureFns.js#measureVolumeProps',
155
155
  kind: 'query',
156
156
  module: 'measurement',
157
- selfhost: true,
158
- args: '(shape: Shape) -> { volume, centerOfMass }(core selfhost)',
157
+ args: '(shape: Shape) -> { volume, centerOfMass }(core)',
159
158
  geometryArgs: [0],
160
159
  returnsResult: true,
161
160
  returnType: '{ volume: number; centerOfMass: { x: number; y: number; z: number } }',
@@ -167,8 +166,7 @@ export const ARG_SPEC = [
167
166
  source: 'measurement/measureFns.js#measureSurfaceProps',
168
167
  kind: 'query',
169
168
  module: 'measurement',
170
- selfhost: true,
171
- args: '(shape: Shape) -> { area }(core selfhost)',
169
+ args: '(shape: Shape) -> { area }(core)',
172
170
  geometryArgs: [0],
173
171
  returnsResult: true,
174
172
  returnType: '{ area: number }',
@@ -180,8 +178,7 @@ export const ARG_SPEC = [
180
178
  source: 'measurement/measureFns.js#measureLinearProps',
181
179
  kind: 'query',
182
180
  module: 'measurement',
183
- selfhost: true,
184
- args: '(shape: Shape) -> { length }(core selfhost)',
181
+ args: '(shape: Shape) -> { length }(core)',
185
182
  geometryArgs: [0],
186
183
  returnsResult: true,
187
184
  returnType: '{ length: number }',
@@ -193,8 +190,7 @@ export const ARG_SPEC = [
193
190
  source: 'measurement/measureFns.js#measureVolume',
194
191
  kind: 'query',
195
192
  module: 'measurement',
196
- selfhost: true,
197
- args: '(shape: Shape) -> number(core selfhost)',
193
+ args: '(shape: Shape) -> number(core)',
198
194
  geometryArgs: [0],
199
195
  returnsResult: true,
200
196
  returnType: 'number',
@@ -206,8 +202,7 @@ export const ARG_SPEC = [
206
202
  source: 'measurement/measureFns.js#measureArea',
207
203
  kind: 'query',
208
204
  module: 'measurement',
209
- selfhost: true,
210
- args: '(shape: Shape) -> number(core selfhost)',
205
+ args: '(shape: Shape) -> number(core)',
211
206
  geometryArgs: [0],
212
207
  returnsResult: true,
213
208
  returnType: 'number',
@@ -219,8 +214,7 @@ export const ARG_SPEC = [
219
214
  source: 'measurement/measureFns.js#measureLength',
220
215
  kind: 'query',
221
216
  module: 'measurement',
222
- selfhost: true,
223
- args: '(shape: Shape) -> number(core selfhost)',
217
+ args: '(shape: Shape) -> number(core)',
224
218
  geometryArgs: [0],
225
219
  returnsResult: true,
226
220
  returnType: 'number',
@@ -311,7 +305,7 @@ export const ARG_SPEC = [
311
305
  kind: 'skip',
312
306
  module: 'measurement',
313
307
  args: '(shapes: AnyShape[], tolerance?: number) -> InterferencePair[]',
314
- // 数组输入:geometryCollectionArgs 索引对应的 Shape 数组逐元素借入 brepjs handle。
308
+ // 数组输入:geometryCollectionArgs 索引对应的 Shape 数组,query 体内经 brepOf 逐元素直读内核句柄。
315
309
  geometryCollectionArgs: [0],
316
310
  queryParams: [
317
311
  { name: 'shapes', type: 'Shape[]', docs: '成对检测的形状数组' },
@@ -324,7 +318,7 @@ export const ARG_SPEC = [
324
318
  },
325
319
  // Phase 7 待裁决 4(方案 §7.1 建议 4,2026-09-24):occt 独占诊断族进脚本面,
326
320
  // 统一 `inspect*` 命名(不走 measure*——避免与中立量形成误导性双轨)。三条无
327
- // 中立替代的族:干涉 / 曲率 / 质量属性(惯量/主轴)。name 与 vendored 导出
321
+ // 中立替代的族:干涉 / 曲率 / 质量属性(惯量/主轴)。name 与来源导出
328
322
  // 解耦(renderQuery 按 source 的 exportName 导入、按 name 声明),engines:['occt']
329
323
  // → 函数体第一行执行前断言(D11-4)。
330
324
  {
@@ -403,8 +397,7 @@ export const ARG_SPEC = [
403
397
  source: 'measurement/measureFns.js#measureVolumeProps',
404
398
  kind: 'query',
405
399
  module: 'measurement',
406
- selfhost: true,
407
- args: '(shape: Shape) -> { volume, area, centerOfMass }(core selfhost)',
400
+ args: '(shape: Shape) -> { volume, area, centerOfMass }(core)',
408
401
  geometryArgs: [0],
409
402
  queryParams: [{ name: 'shape', type: 'Shape', docs: '目标实体(体积/质心/惯量/主轴)' }],
410
403
  returnsResult: true,
@@ -416,7 +409,7 @@ export const ARG_SPEC = [
416
409
  },
417
410
  // Phase 7(narrowing plan §Phase 7 / Q4):cad 脚本面测量 op(手写实现,
418
411
  // kind 'faijs'——api/measurement/index.ts)。直接调 getBrepApi() 的 L1 测量面
419
- // (getSurfaceArea / getLength),无 vendored 借入层、无引擎绑定 → **中立 op**
412
+ // (getSurfaceArea / getLength),无来源实现中转、无引擎绑定 → **中立 op**
420
413
  // (occt / brepkit 同一份 .fai.js 可跑)。返回纯数字,不产出 Shape。
421
414
  // 三源一致(B1):scriptFace: true → gen-l3-surface 进 script-face.ts /
422
415
  // script-face-manifest.ts,gen-symbol-table 同步 check() 符号表。
@@ -426,6 +419,7 @@ export const ARG_SPEC = [
426
419
  kind: 'faijs',
427
420
  module: 'measurement',
428
421
  args: '(shape: Shape) -> number(面积 mm²)',
422
+ manualNote: '**中立 op**:直连 L1 测量面,无引擎绑定,occt / brepkit 上同一份 `.fai.js` 都跑。返回纯数字,不产 Shape;需要体积+面积+质心一次取回且接受 occt 独占时用 `cad.inspectMassProps`。',
429
423
  scriptFace: true,
430
424
  },
431
425
  {
@@ -434,6 +428,7 @@ export const ARG_SPEC = [
434
428
  kind: 'faijs',
435
429
  module: 'measurement',
436
430
  args: '(shape: Shape) -> number(长度 mm)',
431
+ manualNote: '**中立 op**:直连 L1 测量面,无引擎绑定,occt / brepkit 上同一份 `.fai.js` 都跑(线/边长度)。返回纯数字,不产 Shape。',
437
432
  scriptFace: true,
438
433
  },
439
434
  {
@@ -442,6 +437,7 @@ export const ARG_SPEC = [
442
437
  kind: 'faijs',
443
438
  module: 'measurement',
444
439
  args: '(shape: Shape) -> number(体积 mm³)',
440
+ manualNote: '**中立 op**:直连 L1 测量面,无引擎绑定,occt / brepkit 上同一份 `.fai.js` 都跑。返回纯数字,不产 Shape;需要体积+面积+质心一次取回且接受 occt 独占时用 `cad.inspectMassProps`。',
445
441
  scriptFace: true,
446
442
  },
447
443
  {
@@ -461,35 +457,35 @@ export const ARG_SPEC = [
461
457
  source: 'text/textMetrics.js#FontMetricsResult',
462
458
  kind: 'skip',
463
459
  module: 'text',
464
- reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
460
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
465
461
  },
466
462
  {
467
463
  name: 'TextMetricsResult',
468
464
  source: 'text/textMetrics.js#TextMetricsResult',
469
465
  kind: 'skip',
470
466
  module: 'text',
471
- reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
467
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
472
468
  },
473
469
  {
474
470
  name: 'fontMetrics',
475
471
  source: 'text/textMetrics.js#fontMetrics',
476
472
  kind: 'skip',
477
473
  module: 'text',
478
- reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
474
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
479
475
  },
480
476
  {
481
477
  name: 'getFont',
482
478
  source: 'text/fontRegistry.js#getFont',
483
479
  kind: 'skip',
484
480
  module: 'text',
485
- reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
481
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
486
482
  },
487
483
  {
488
484
  name: 'textMetrics',
489
485
  source: 'text/textMetrics.js#textMetrics',
490
486
  kind: 'skip',
491
487
  module: 'text',
492
- reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随 brepjs 删除,无接收方(裁决 9)',
488
+ reason: '零引用死分片(§5.5 第 1 条):generated/text.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
493
489
  },
494
490
  {
495
491
  name: 'loadFont',
@@ -524,49 +520,49 @@ export const ARG_SPEC = [
524
520
  source: 'projection/cameraFns.js#Camera',
525
521
  kind: 'skip',
526
522
  module: 'projection',
527
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
523
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
528
524
  },
529
525
  {
530
526
  name: 'CubeFace',
531
527
  source: 'projection/projectionPlanes.js#CubeFace',
532
528
  kind: 'skip',
533
529
  module: 'projection',
534
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
530
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
535
531
  },
536
532
  {
537
533
  name: 'ProjectionPlane',
538
534
  source: 'projection/projectionPlanes.js#ProjectionPlane',
539
535
  kind: 'skip',
540
536
  module: 'projection',
541
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
537
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
542
538
  },
543
539
  {
544
540
  name: 'cameraFromPlane',
545
541
  source: 'projection/cameraFns.js#cameraFromPlane',
546
542
  kind: 'skip',
547
543
  module: 'projection',
548
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
544
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
549
545
  },
550
546
  {
551
547
  name: 'cameraLookAt',
552
548
  source: 'projection/cameraFns.js#cameraLookAt',
553
549
  kind: 'skip',
554
550
  module: 'projection',
555
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
551
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
556
552
  },
557
553
  {
558
554
  name: 'createCamera',
559
555
  source: 'projection/cameraFns.js#createCamera',
560
556
  kind: 'skip',
561
557
  module: 'projection',
562
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
558
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
563
559
  },
564
560
  {
565
561
  name: 'isProjectionPlane',
566
562
  source: 'projection/projectionPlanes.js#isProjectionPlane',
567
563
  kind: 'skip',
568
564
  module: 'projection',
569
- reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随 brepjs 删除,无接收方(裁决 9)',
565
+ reason: '零引用死分片(§5.5 第 1 条):generated/projection.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
570
566
  },
571
567
  {
572
568
  name: 'makeProjectedEdges',
@@ -584,11 +580,10 @@ export const ARG_SPEC = [
584
580
  reason: '同 makeProjectedEdges:返回 Edge 句柄数组 + 所有权生命周期,无法静态收养,跳过(divergence)',
585
581
  },
586
582
  // ──── 视图投影能力(P25):view 模块(3 符号,全部 scriptFace=true)────
587
- // faijs 自研视图投影 op(方案 docs/plans/2026-09-10-faijs-view-projection-and-screenshot.md
588
- // §3.2,路径 A):工程线稿,只返回纯数据(SVG 字符串 / 相机对象),不产出 Shape。
589
- // 实现是手写模块(api/view/,内部借入 brepjs handle → vendored HLR → SVG 序列化),
583
+ // faijs 自研视图投影 op(路径 A):工程线稿,只返回纯数据(SVG 字符串 / 相机对象),不产出 Shape。
584
+ // 实现是手写模块(api/view/,内部经 brepOf 取内核句柄 → HLR → SVG 序列化),
590
585
  // 生成器只负责 re-export 进 L3 面与 cad 脚本面——kind 'faijs' 不入 upstream-surface
591
- // 基线(faijs 自研符号),也不走 vendored import 模板。
586
+ // 基线(faijs 自研符号),也不走来源 import 模板。
592
587
  {
593
588
  name: 'viewCamera',
594
589
  source: 'view/index.js#viewCamera',
@@ -617,63 +612,63 @@ export const ARG_SPEC = [
617
612
  // finder 体系(edge/face/wire/vertex/corner + ShapeFinder 基接口)是「状态化查询工具」:
618
613
  // finder 工厂返回带内部闭包状态的 DSL 对象(.when/.inList/.findAll…逐步链式),与
619
614
  // createDistanceQuery 同类(§5.2/测量批的 skip 先例)。faijs 面无法以静态函数忠实建模
620
- // (finder 生命周期 + 逐次 Shape 借入需宿主适配),值侧全部 skip + reason。类型侧仍然
615
+ // (finder 生命周期 + 逐次 Shape 取句柄需宿主适配),值侧全部 skip + reason。类型侧仍然
621
616
  // re-export:这些类型是可复用查询契约的形态面,无运行时语义。
622
617
  {
623
618
  name: 'CornerFilter',
624
619
  source: 'query/finderFns.js#CornerFilter',
625
620
  kind: 'skip',
626
621
  module: 'query',
627
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
622
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
628
623
  },
629
624
  {
630
625
  name: 'CornerFinderFn',
631
626
  source: 'query/finderFns.js#CornerFinderFn',
632
627
  kind: 'skip',
633
628
  module: 'query',
634
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
629
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
635
630
  },
636
631
  {
637
632
  name: 'EdgeFinderFn',
638
633
  source: 'query/finderFns.js#EdgeFinderFn',
639
634
  kind: 'skip',
640
635
  module: 'query',
641
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
636
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
642
637
  },
643
638
  {
644
639
  name: 'FaceFinderFn',
645
640
  source: 'query/finderFns.js#FaceFinderFn',
646
641
  kind: 'skip',
647
642
  module: 'query',
648
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
643
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
649
644
  },
650
645
  {
651
646
  name: 'ShapeFinder',
652
647
  source: 'query/finderFns.js#ShapeFinder',
653
648
  kind: 'skip',
654
649
  module: 'query',
655
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
650
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
656
651
  },
657
652
  {
658
653
  name: 'SingleFace',
659
654
  source: 'query/helpers.js#SingleFace',
660
655
  kind: 'skip',
661
656
  module: 'query',
662
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
657
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
663
658
  },
664
659
  {
665
660
  name: 'VertexFinderFn',
666
661
  source: 'query/finderFns.js#VertexFinderFn',
667
662
  kind: 'skip',
668
663
  module: 'query',
669
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
664
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
670
665
  },
671
666
  {
672
667
  name: 'WireFinderFn',
673
668
  source: 'query/finderFns.js#WireFinderFn',
674
669
  kind: 'skip',
675
670
  module: 'query',
676
- reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随 brepjs 删除,无接收方(裁决 9)',
671
+ reason: '零引用死分片(§5.5 第 1 条):generated/query.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
677
672
  },
678
673
  {
679
674
  name: 'cornerFinder',
@@ -681,7 +676,7 @@ export const ARG_SPEC = [
681
676
  kind: 'skip',
682
677
  module: 'query',
683
678
  reason: '返回带状态链式的 2D 角 finder 对象(builder DSL),同 createDistanceQuery 判例:' +
684
- 'faijs 面无法静态建模(逐 Shape 借入 + 生命周期),跳过(divergence)',
679
+ 'faijs 面无法静态建模(逐 Shape 取句柄 + 生命周期),跳过(divergence)',
685
680
  },
686
681
  {
687
682
  name: 'edgeFinder',
@@ -724,77 +719,77 @@ export const ARG_SPEC = [
724
719
  'faijs 面无法静态建模,跳过(divergence)',
725
720
  },
726
721
  // ──── P14 第四片:ns 模块(9 符号)────
727
- // 9 个符号均为「命名空间对象」:vendored 根 barrel 以
722
+ // 9 个符号均为「命名空间对象」:来源根 barrel 以
728
723
  // `export * as booleans from './ns/booleans.js'` 形式聚合子命名空间。
729
724
  // surface 把每个 namespace 记为 value(file 指向子模块),但实际导出名来自
730
725
  // 根 barrel 的 *-as 再导出,故 source 指向 `index.js#<name>`(子文件只有
731
726
  // 逐名导出、无名空间值)。faijs 面以 `pure` 整包 re-export 该命名空间对象
732
- // 即可——保持 brepjs 的组织形态(§5.2 pure 判据:纯导出、无 Shape 参数)。
727
+ // 即可——保持来源树的组织形态(§5.2 pure 判据:纯导出、无 Shape 参数)。
733
728
  {
734
729
  name: 'booleans',
735
730
  source: 'index.js#booleans',
736
731
  kind: 'skip',
737
732
  module: 'ns',
738
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
733
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
739
734
  },
740
735
  {
741
736
  name: 'construction',
742
737
  source: 'index.js#construction',
743
738
  kind: 'skip',
744
739
  module: 'ns',
745
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
740
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
746
741
  },
747
742
  {
748
743
  name: 'io',
749
744
  source: 'index.js#io',
750
745
  kind: 'skip',
751
746
  module: 'ns',
752
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
747
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
753
748
  },
754
749
  {
755
750
  name: 'measurement',
756
751
  source: 'index.js#measurement',
757
752
  kind: 'skip',
758
753
  module: 'ns',
759
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
754
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
760
755
  },
761
756
  {
762
757
  name: 'modifiers',
763
758
  source: 'index.js#modifiers',
764
759
  kind: 'skip',
765
760
  module: 'ns',
766
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
761
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
767
762
  },
768
763
  {
769
764
  name: 'patterns',
770
765
  source: 'index.js#patterns',
771
766
  kind: 'skip',
772
767
  module: 'ns',
773
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
768
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
774
769
  },
775
770
  {
776
771
  name: 'primitives',
777
772
  source: 'index.js#primitives',
778
773
  kind: 'skip',
779
774
  module: 'ns',
780
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
775
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
781
776
  },
782
777
  {
783
778
  name: 'query',
784
779
  source: 'index.js#query',
785
780
  kind: 'skip',
786
781
  module: 'ns',
787
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
782
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
788
783
  },
789
784
  {
790
785
  name: 'transforms',
791
786
  source: 'index.js#transforms',
792
787
  kind: 'skip',
793
788
  module: 'ns',
794
- reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随 brepjs 删除,无接收方(裁决 9)',
789
+ reason: '零引用死分片(§5.5 第 1 条):generated/ns.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
795
790
  },
796
791
  // ──── P14 第五片:gear 模块(17 符号 = 11 type + 3 pure + 3 skip)────
797
- // 纯数学/校验助手(无 Shape 参数,返回几何数据/校验结果)→ pure 直连 brepjs 函数。
792
+ // 纯数学/校验助手(无 Shape 参数,返回几何数据/校验结果)→ pure 直连来源函数。
798
793
  // 3 个 make*Gear 构造器返回「复合多句柄结果」:GearResult 内含 solid + 计量字段
799
794
  // (pitch/base/tip/root 直径 + diagnostics);PlanetaryGearAssembly 内含 sun +
800
795
  // planets[] + ring 多个 solid。faijs 面的 ops 模板当前只收「单产物 Shape」
@@ -806,98 +801,98 @@ export const ARG_SPEC = [
806
801
  source: 'gear/index.js#ExternalGearParams',
807
802
  kind: 'skip',
808
803
  module: 'gear',
809
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
804
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
810
805
  },
811
806
  {
812
807
  name: 'GearDiagnostic',
813
808
  source: 'gear/index.js#GearDiagnostic',
814
809
  kind: 'skip',
815
810
  module: 'gear',
816
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
811
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
817
812
  },
818
813
  {
819
814
  name: 'GearDiagnosticCode',
820
815
  source: 'gear/index.js#GearDiagnosticCode',
821
816
  kind: 'skip',
822
817
  module: 'gear',
823
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
818
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
824
819
  },
825
820
  {
826
821
  name: 'GearDiagnosticSeverity',
827
822
  source: 'gear/index.js#GearDiagnosticSeverity',
828
823
  kind: 'skip',
829
824
  module: 'gear',
830
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
825
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
831
826
  },
832
827
  {
833
828
  name: 'GearGeometry',
834
829
  source: 'gear/index.js#GearGeometry',
835
830
  kind: 'skip',
836
831
  module: 'gear',
837
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
832
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
838
833
  },
839
834
  {
840
835
  name: 'GearResult',
841
836
  source: 'gear/index.js#GearResult',
842
837
  kind: 'skip',
843
838
  module: 'gear',
844
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
839
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
845
840
  },
846
841
  {
847
842
  name: 'InternalGearParams',
848
843
  source: 'gear/index.js#InternalGearParams',
849
844
  kind: 'skip',
850
845
  module: 'gear',
851
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
846
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
852
847
  },
853
848
  {
854
849
  name: 'PlanetPlacement',
855
850
  source: 'gear/index.js#PlanetPlacement',
856
851
  kind: 'skip',
857
852
  module: 'gear',
858
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
853
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
859
854
  },
860
855
  {
861
856
  name: 'PlanetPlacementParams',
862
857
  source: 'gear/index.js#PlanetPlacementParams',
863
858
  kind: 'skip',
864
859
  module: 'gear',
865
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
860
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
866
861
  },
867
862
  {
868
863
  name: 'PlanetaryGearAssembly',
869
864
  source: 'gear/index.js#PlanetaryGearAssembly',
870
865
  kind: 'skip',
871
866
  module: 'gear',
872
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
867
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
873
868
  },
874
869
  {
875
870
  name: 'PlanetaryGearParams',
876
871
  source: 'gear/index.js#PlanetaryGearParams',
877
872
  kind: 'skip',
878
873
  module: 'gear',
879
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
874
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
880
875
  },
881
876
  {
882
877
  name: 'gearGeometry',
883
878
  source: 'gear/index.js#gearGeometry',
884
879
  kind: 'skip',
885
880
  module: 'gear',
886
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
881
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
887
882
  },
888
883
  {
889
884
  name: 'planetPlacements',
890
885
  source: 'gear/index.js#planetPlacements',
891
886
  kind: 'skip',
892
887
  module: 'gear',
893
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
888
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
894
889
  },
895
890
  {
896
891
  name: 'validatePlanetary',
897
892
  source: 'gear/index.js#validatePlanetary',
898
893
  kind: 'skip',
899
894
  module: 'gear',
900
- reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随 brepjs 删除,无接收方(裁决 9)',
895
+ reason: '零引用死分片(§5.5 第 1 条):generated/gear.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
901
896
  },
902
897
  {
903
898
  name: 'makeExternalGear',
@@ -936,84 +931,84 @@ export const ARG_SPEC = [
936
931
  source: 'index.js#Blueprint',
937
932
  kind: 'skip',
938
933
  module: '2d',
939
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
934
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
940
935
  },
941
936
  {
942
937
  name: 'Blueprints',
943
938
  source: 'index.js#Blueprints',
944
939
  kind: 'skip',
945
940
  module: '2d',
946
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
941
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
947
942
  },
948
943
  {
949
944
  name: 'BoundingBox2d',
950
945
  source: 'index.js#BoundingBox2d',
951
946
  kind: 'skip',
952
947
  module: '2d',
953
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
948
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
954
949
  },
955
950
  {
956
951
  name: 'CompoundBlueprint',
957
952
  source: 'index.js#CompoundBlueprint',
958
953
  kind: 'skip',
959
954
  module: '2d',
960
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
955
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
961
956
  },
962
957
  {
963
958
  name: 'Curve2D',
964
959
  source: 'index.js#Curve2D',
965
960
  kind: 'skip',
966
961
  module: '2d',
967
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
962
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
968
963
  },
969
964
  {
970
965
  name: 'DrawingInterface',
971
966
  source: 'index.js#DrawingInterface',
972
967
  kind: 'skip',
973
968
  module: '2d',
974
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
969
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
975
970
  },
976
971
  {
977
972
  name: 'GenericSketcher',
978
973
  source: 'index.js#GenericSketcher',
979
974
  kind: 'skip',
980
975
  module: '2d',
981
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
976
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
982
977
  },
983
978
  {
984
979
  name: 'Point2D',
985
980
  source: 'index.js#Point2D',
986
981
  kind: 'skip',
987
982
  module: '2d',
988
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
983
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
989
984
  },
990
985
  {
991
986
  name: 'ScaleMode',
992
987
  source: 'index.js#ScaleMode',
993
988
  kind: 'skip',
994
989
  module: '2d',
995
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
990
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
996
991
  },
997
992
  {
998
993
  name: 'Shape2D',
999
994
  source: 'index.js#Shape2D',
1000
995
  kind: 'skip',
1001
996
  module: '2d',
1002
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
997
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1003
998
  },
1004
999
  {
1005
1000
  name: 'SketchData',
1006
1001
  source: 'index.js#SketchData',
1007
1002
  kind: 'skip',
1008
1003
  module: '2d',
1009
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
1004
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1010
1005
  },
1011
1006
  {
1012
1007
  name: 'SplineOptions',
1013
1008
  source: 'index.js#SplineOptions',
1014
1009
  kind: 'skip',
1015
1010
  module: '2d',
1016
- reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随 brepjs 删除,无接收方(裁决 9)',
1011
+ reason: '零引用死分片(§5.5 第 1 条):generated/2d.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1017
1012
  },
1018
1013
  {
1019
1014
  name: 'BaseSketcher2d',
@@ -1261,84 +1256,84 @@ export const ARG_SPEC = [
1261
1256
  source: 'index.js#DXFEntity',
1262
1257
  kind: 'skip',
1263
1258
  module: 'io',
1264
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1259
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1265
1260
  },
1266
1261
  {
1267
1262
  name: 'DXFExportOptions',
1268
1263
  source: 'index.js#DXFExportOptions',
1269
1264
  kind: 'skip',
1270
1265
  module: 'io',
1271
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1266
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1272
1267
  },
1273
1268
  {
1274
1269
  name: 'DXFImportOptions',
1275
1270
  source: 'index.js#DXFImportOptions',
1276
1271
  kind: 'skip',
1277
1272
  module: 'io',
1278
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1273
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1279
1274
  },
1280
1275
  {
1281
1276
  name: 'GltfExportOptions',
1282
1277
  source: 'index.js#GltfExportOptions',
1283
1278
  kind: 'skip',
1284
1279
  module: 'io',
1285
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1280
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1286
1281
  },
1287
1282
  {
1288
1283
  name: 'GltfFace',
1289
1284
  source: 'index.js#GltfFace',
1290
1285
  kind: 'skip',
1291
1286
  module: 'io',
1292
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1287
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1293
1288
  },
1294
1289
  {
1295
1290
  name: 'GltfMaterial',
1296
1291
  source: 'index.js#GltfMaterial',
1297
1292
  kind: 'skip',
1298
1293
  module: 'io',
1299
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1294
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1300
1295
  },
1301
1296
  {
1302
1297
  name: 'MaterialFn',
1303
1298
  source: 'index.js#MaterialFn',
1304
1299
  kind: 'skip',
1305
1300
  module: 'io',
1306
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1301
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1307
1302
  },
1308
1303
  {
1309
1304
  name: 'StepExportOptions',
1310
1305
  source: 'index.js#StepExportOptions',
1311
1306
  kind: 'skip',
1312
1307
  module: 'io',
1313
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1308
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1314
1309
  },
1315
1310
  {
1316
1311
  name: 'StepExportPart',
1317
1312
  source: 'index.js#StepExportPart',
1318
1313
  kind: 'skip',
1319
1314
  module: 'io',
1320
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1315
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1321
1316
  },
1322
1317
  {
1323
1318
  name: 'SVGImportOptions',
1324
1319
  source: 'index.js#SVGImportOptions',
1325
1320
  kind: 'skip',
1326
1321
  module: 'io',
1327
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1322
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1328
1323
  },
1329
1324
  {
1330
1325
  name: 'ThreeMFExportOptions',
1331
1326
  source: 'index.js#ThreeMFExportOptions',
1332
1327
  kind: 'skip',
1333
1328
  module: 'io',
1334
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1329
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1335
1330
  },
1336
1331
  {
1337
1332
  name: 'ThreeMFMaterial',
1338
1333
  source: 'index.js#ThreeMFMaterial',
1339
1334
  kind: 'skip',
1340
1335
  module: 'io',
1341
- reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随 brepjs 删除,无接收方(裁决 9)',
1336
+ reason: '零引用死分片(§5.5 第 1 条):generated/io.ts 已随原 brepjs 树删除,无接收方(裁决 9)',
1342
1337
  },
1343
1338
  {
1344
1339
  name: 'blueprintToDXF',
@@ -1453,10 +1448,11 @@ export const ARG_SPEC = [
1453
1448
  reason: 'plan §5.5/§7.10: IO/字节 → host ports,skip(divergence)',
1454
1449
  },
1455
1450
  // ──── P14 第八片:operations 模块(122 符号 = 16 brep-op + 11 pure + 45 skip + 8u/others) ────
1456
- // brep-op:Shapeable<…> 单/双形状入参 → faijs Shape 借入 → vendored Result → adopt 单产物;
1457
- // 数组形状入参(loft/guidedSweep/multiSectionSweep 的 Wire[])已无障碍——compat-op 的
1458
- // borrowDeep 递归借入数组/对象内的 Shape(2026-09-24 校正:loft 已由手写平台 op 上脚本面,
1459
- // guidedSweep/multiSectionSweep 的真障碍是 wire 输入 + 多截面/导轨语义,见各自条目);
1451
+ // brep-op:Shapeable<…> 单/双形状入参 → 输入原样直传给来源实现 → Result 翻转 → adopt 单产物;
1452
+ // 数组形状入参(loft/guidedSweep/multiSectionSweep 的 Wire[])不再经任何入参转换
1453
+ // (compat-op 输入直传,见 api/internal/compat-op.ts 的 buildAdapter)——2026-09-24 校正:
1454
+ // loft 已由手写平台 op 上脚本面,guidedSweep/multiSectionSweep 的真障碍是 wire 输入 +
1455
+ // 多截面/导轨语义,见各自条目;
1460
1456
  // 多产物结果(extrudeAll/loftAll = Shape[]/ValidSolid[])不在单产物收养模板内 → skip;
1461
1457
  // history/assembly/mate/instance 家族 = 状态化 DSL / kernel 句柄容器 → skip;
1462
1458
  // export*/createAssembly = host IO(同 io 判据)/宿主 API → skip;KernelType raw 句柄入参
@@ -1641,29 +1637,29 @@ export const ARG_SPEC = [
1641
1637
  name: 'jointsFromDH', source: 'operations/dhFns.js#jointsFromDH', kind: 'skip', module: 'operations', reason: '§5.6 后 dhFns 未自有化、未平铺(唯一消费方 p5 随删)',
1642
1638
  },
1643
1639
  {
1644
- name: 'computeStraightSkeleton', source: 'operations/straightSkeleton.js#computeStraightSkeleton', kind: 'skip', module: 'operations', reason: 'core brep-mirror 有自有版;operations vendored 版未平铺(唯一消费方 p5 随删)',
1640
+ name: 'computeStraightSkeleton', source: 'operations/straightSkeleton.js#computeStraightSkeleton', kind: 'skip', module: 'operations', reason: 'core brep-operations 有自有版;operations 原 brepjs 版未平铺(唯一消费方 p5 随删)',
1645
1641
  },
1646
1642
  {
1647
1643
  name: 'isInstanced', source: 'operations/instanceFns.js#isInstanced', kind: 'skip', module: 'operations', reason: '未自有化、未平铺(唯一消费方 p5 随删)',
1648
1644
  },
1649
1645
  {
1650
1646
  // ---- brep-op:单/多单形状入参 → 单产物收养 ----
1651
- name: 'extrude', source: 'brep-mirror/sweepFns.ts#extrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1647
+ name: 'extrude', source: 'brep-operations/sweepFns.ts#extrudeBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1652
1648
  geometryArgs: [0],
1653
- reason: 'faijs 侧 cad.extrude 由手写平台 op 覆盖(api/extrude.ts:对象形态 + upTo 拉伸到面/到支持体端面)。本投影只作为「长度形态」的引擎被手写 op 委托调用(vendored 是唯一拉伸引擎,既有 cad.extrude(face,[x,y,z]) 语义零漂移),生成模块符号不直接进 cad 命名空间 by design(同 fillet 口径)。',
1649
+ reason: 'faijs 侧 cad.extrude 由手写平台 op 覆盖(api/extrude.ts:对象形态 + upTo 拉伸到面/到支持体端面)。本投影只作为「长度形态」的引擎被手写 op 委托调用(来源实现是唯一拉伸引擎,既有 cad.extrude(face,[x,y,z]) 语义零漂移),生成模块符号不直接进 cad 命名空间 by design(同 fillet 口径)。',
1654
1650
  args: 'extrude(face: Shape, height: number|Vec3) → Shape|extrude(face: Shape, params: { length? | upTo, normal?, mode?, baseFeature?, offset? }) → Shape',
1655
1651
  params: ['face', 'height'], formClass: 'A',
1656
1652
  naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }] } },
1657
1653
  },
1658
1654
  {
1659
- name: 'revolve', source: 'brep-mirror/sweepFns.ts#revolveBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1655
+ name: 'revolve', source: 'brep-operations/sweepFns.ts#revolveBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1660
1656
  geometryArgs: [0], reason: 'shapeable 面 → Result(Shape3D),brep-op',
1661
1657
  args: 'revolve(face: Shape, options?: RevolveOptions): Shape',
1662
1658
  params: ['face', 'options'], formClass: 'A',
1663
1659
  naming: { kind: 'construct', newFaces: { via: 'explicit', vocab: [{ kind: 'semantic', name: 'top' }, { kind: 'semantic', name: 'bottom' }, { kind: 'wall', index: 0 }] } },
1664
1660
  },
1665
1661
  {
1666
- name: 'sweep', source: 'brep-mirror/sweepFns.ts#sweepBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1662
+ name: 'sweep', source: 'brep-operations/sweepFns.ts#sweepBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1667
1663
  geometryArgs: [0, 1],
1668
1664
  reason: 'faijs 侧 cad.sweep 由手写平台 op 覆盖(api/sweep.ts:截面接受 face → 取外环;shellMode 元组产物不暴露,§2.4 ①)。本投影保留为引擎记录(capability-map),生成模块符号不直接进 cad 命名空间 by design(同 revolve / extrude 口径)。',
1669
1665
  args: 'sweep(wire: Shape, spine: Shape, config?: SweepOptions, shellMode?: boolean): Shape',
@@ -1671,7 +1667,7 @@ export const ARG_SPEC = [
1671
1667
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1672
1668
  },
1673
1669
  {
1674
- name: 'complexExtrude', source: 'brep-mirror/sweepFns.ts#complexExtrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1670
+ name: 'complexExtrude', source: 'brep-operations/sweepFns.ts#complexExtrudeBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1675
1671
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1676
1672
  args: 'complexExtrude(wire: Shape, center: Vec3, normal: Vec3, profile?: ExtrusionProfile): Shape',
1677
1673
  params: ['wire', 'center', 'normal', 'profile'], formClass: 'A',
@@ -1679,7 +1675,7 @@ export const ARG_SPEC = [
1679
1675
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1680
1676
  },
1681
1677
  {
1682
- name: 'twistExtrude', source: 'brep-mirror/sweepFns.ts#twistExtrudeBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1678
+ name: 'twistExtrude', source: 'brep-operations/sweepFns.ts#twistExtrudeBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1683
1679
  geometryArgs: [0], reason: 'wire → Result(Shape3D),brep-op',
1684
1680
  args: 'twistExtrude(wire: Shape, angleDegrees: number, center: Vec3, normal: Vec3): Shape',
1685
1681
  params: ['wire', 'angleDegrees', 'center', 'normal'], formClass: 'A',
@@ -1687,7 +1683,7 @@ export const ARG_SPEC = [
1687
1683
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1688
1684
  },
1689
1685
  {
1690
- name: 'linearPattern', source: 'brep-mirror/patternFns.ts#linearPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1686
+ name: 'linearPattern', source: 'brep-operations/patternFns.ts#linearPatternBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1691
1687
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1692
1688
  args: 'linearPattern(shape: Shape, direction: Vec3, count: number, spacing: number): Shape',
1693
1689
  params: ['shape', 'direction', 'count', 'spacing'], formClass: 'A',
@@ -1695,7 +1691,7 @@ export const ARG_SPEC = [
1695
1691
  naming: { kind: 'replicate', k: 0 },
1696
1692
  },
1697
1693
  {
1698
- name: 'circularPattern', source: 'brep-mirror/patternFns.ts#circularPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1694
+ name: 'circularPattern', source: 'brep-operations/patternFns.ts#circularPatternBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1699
1695
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1700
1696
  args: 'circularPattern(shape: Shape, axis: Vec3, count: number, fullAngle?: number, center?: Vec3): Shape',
1701
1697
  params: ['shape', 'axis', 'count', 'fullAngle', 'center'], formClass: 'A',
@@ -1703,7 +1699,7 @@ export const ARG_SPEC = [
1703
1699
  naming: { kind: 'replicate', k: 0 },
1704
1700
  },
1705
1701
  {
1706
- name: 'gridPattern', source: 'brep-mirror/patternFns.ts#gridPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1702
+ name: 'gridPattern', source: 'brep-operations/patternFns.ts#gridPatternBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1707
1703
  geometryArgs: [0], reason: 'shape → Result(Shape3D),brep-op',
1708
1704
  args: 'gridPattern(shape: Shape, directionX: Vec3, directionY: Vec3, countX: number, countY: number, spacingX: number, spacingY: number): Shape',
1709
1705
  params: ['shape', 'directionX', 'directionY', 'countX', 'countY', 'spacingX', 'spacingY'], formClass: 'A',
@@ -1711,7 +1707,7 @@ export const ARG_SPEC = [
1711
1707
  naming: { kind: 'replicate', k: 0 },
1712
1708
  },
1713
1709
  {
1714
- name: 'roof', source: 'brep-mirror/roofFns.ts#roofBrep', selfhost: true, kind: 'brep-op', capabilities: ["buildTriFace", "dispose", "fixShape", "isValid", "sew", "sewAndSolidify"], module: 'operations',
1710
+ name: 'roof', source: 'brep-operations/roofFns.ts#roofBrep', kind: 'brep-op', capabilities: ["buildTriFace", "dispose", "fixShape", "isValid", "sew", "sewAndSolidify"], module: 'operations',
1715
1711
  geometryArgs: [0], reason: 'wire → Result(ValidSolid)→solid,brep-op',
1716
1712
  args: 'roof(wire: Shape, options?: RoofOptions): Shape',
1717
1713
  params: ['wire', 'options'], formClass: 'A',
@@ -1719,7 +1715,7 @@ export const ARG_SPEC = [
1719
1715
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1720
1716
  },
1721
1717
  {
1722
- name: 'drill', source: 'brep-mirror/compoundFns.ts#drillBrep', selfhost: true, kind: 'brep-op',
1718
+ name: 'drill', source: 'brep-operations/compoundFns.ts#drillBrep', kind: 'brep-op',
1723
1719
  capabilities: ["makeCylinder", "located", "getBoundingBox", "cut"], module: 'operations',
1724
1720
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1725
1721
  args: 'drill(shape: Shape, options: DrillOptions): Shape',
@@ -1728,7 +1724,7 @@ export const ARG_SPEC = [
1728
1724
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1729
1725
  },
1730
1726
  {
1731
- name: 'pocket', source: 'brep-mirror/compoundFns.ts#pocketBrep', selfhost: true, kind: 'brep-op',
1727
+ name: 'pocket', source: 'brep-operations/compoundFns.ts#pocketBrep', kind: 'brep-op',
1732
1728
  capabilities: ["getSubShapes", "surfaceCenterOfMass", "uvBounds", "surfaceNormal", "makeFace", "translate", "extrude", "cut"], module: 'operations',
1733
1729
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1734
1730
  args: 'pocket(shape: Shape, options: PocketOptions): Shape',
@@ -1737,7 +1733,7 @@ export const ARG_SPEC = [
1737
1733
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1738
1734
  },
1739
1735
  {
1740
- name: 'boss', source: 'brep-mirror/compoundFns.ts#bossBrep', selfhost: true, kind: 'brep-op',
1736
+ name: 'boss', source: 'brep-operations/compoundFns.ts#bossBrep', kind: 'brep-op',
1741
1737
  capabilities: ["getSubShapes", "surfaceCenterOfMass", "uvBounds", "surfaceNormal", "makeFace", "translate", "extrude", "fuse"], module: 'operations',
1742
1738
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1743
1739
  args: 'boss(shape: Shape, options: BossOptions): Shape',
@@ -1746,7 +1742,7 @@ export const ARG_SPEC = [
1746
1742
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
1747
1743
  },
1748
1744
  {
1749
- name: 'mirrorJoin', source: 'brep-mirror/compoundFns.ts#mirrorJoinBrep', selfhost: true, kind: 'brep-op',
1745
+ name: 'mirrorJoin', source: 'brep-operations/compoundFns.ts#mirrorJoinBrep', kind: 'brep-op',
1750
1746
  capabilities: ["mirror", "fuse"], module: 'operations',
1751
1747
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1752
1748
  args: 'mirrorJoin(shape: Shape, options?: MirrorJoinOptions): Shape',
@@ -1755,7 +1751,7 @@ export const ARG_SPEC = [
1755
1751
  naming: { kind: 'replicate', k: 2 },
1756
1752
  },
1757
1753
  {
1758
- name: 'rectangularPattern', source: 'brep-mirror/patternFns.ts#rectangularPatternBrep', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1754
+ name: 'rectangularPattern', source: 'brep-operations/patternFns.ts#rectangularPatternBrep', kind: 'brep-op', engines: ['occt'], module: 'operations',
1759
1755
  geometryArgs: [0], reason: 'Shapeable<Shape3D> → Result<T>,brep-op',
1760
1756
  args: 'rectangularPattern(shape: Shape, options: RectangularPatternOptions): Shape',
1761
1757
  params: ['shape', 'options'], formClass: 'A',
@@ -1763,7 +1759,7 @@ export const ARG_SPEC = [
1763
1759
  naming: { kind: 'replicate', k: 0 },
1764
1760
  },
1765
1761
  {
1766
- name: 'thread', source: 'brep-mirror/threadFns.ts#threadBrepOp', selfhost: true, kind: 'brep-op', engines: ['occt'], module: 'operations',
1762
+ name: 'thread', source: 'brep-operations/threadFns.ts#threadBrepOp', kind: 'brep-op', engines: ['occt'], module: 'operations',
1767
1763
  geometryArgs: [], reason: '仅参数构造 → Result(Shape3D),单产物,brep-op',
1768
1764
  args: 'thread(options: ThreadOptions): Shape',
1769
1765
  params: ['options'], formClass: 'B1',
@@ -1771,7 +1767,7 @@ export const ARG_SPEC = [
1771
1767
  scriptFace: true,
1772
1768
  },
1773
1769
  {
1774
- name: 'convexHull', source: 'brep-mirror/hullFns.ts#convexHullBrep', selfhost: true, kind: 'brep-op', capabilities: ['hullFromPoints'], module: 'operations',
1770
+ name: 'convexHull', source: 'brep-operations/hullFns.ts#convexHullBrep', kind: 'brep-op', capabilities: ['hullFromPoints'], module: 'operations',
1775
1771
  geometryArgs: [], reason: '点集构造 → Result(Solid),单产物,brep-op',
1776
1772
  args: 'convexHull(points: Vec3[]): Shape',
1777
1773
  params: ['points'], formClass: 'A',
@@ -1812,16 +1808,16 @@ export const ARG_SPEC = [
1812
1808
  {
1813
1809
  name: 'loft', source: 'operations/api.js#loft', kind: 'skip', module: 'operations',
1814
1810
  args: 'loft(sections: Shape[], opts?: LoftOptions): Shape',
1815
- reason: 'overridden by handwritten api/loft.ts (faijs 侧平台 op engines:[occt]:截面接受 face → 取外环;数组入参本身已无障碍——compat-op 的 borrowDeep 递归借入数组,不适用的是输入形态适配)',
1811
+ reason: 'overridden by handwritten api/loft.ts (faijs 侧平台 op engines:[occt]:截面接受 face → 取外环;faijs 侧唯一实现路径即该手写 op,生成投影不做输入形态适配)',
1816
1812
  },
1817
1813
  {
1818
1814
  name: 'loftAll', source: 'operations/loftFns.js#loftAll', kind: 'skip', module: 'operations', reason: '返回 Shape3D 数组(多产物),skip',
1819
1815
  },
1820
1816
  {
1821
- name: 'guidedSweep', source: 'operations/guidedSweepFns.js#guidedSweep', kind: 'skip', module: 'operations', reason: 'guides: Wire[] 数组入参本身已无障碍(compat-op 的 borrowDeep 递归借入);faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1817
+ name: 'guidedSweep', source: 'operations/guidedSweepFns.js#guidedSweep', kind: 'skip', module: 'operations', reason: 'guides: Wire[];faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1822
1818
  },
1823
1819
  {
1824
- name: 'multiSectionSweep', source: 'operations/multiSweepFns.js#multiSectionSweep', kind: 'skip', module: 'operations', reason: 'sections: SweepSectionConfig[] 数组入参本身已无障碍(compat-op 的 borrowDeep 递归借入);faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1820
+ name: 'multiSectionSweep', source: 'operations/multiSweepFns.js#multiSectionSweep', kind: 'skip', module: 'operations', reason: 'sections: SweepSectionConfig[];faijs 侧尚未手写对应 op(长尾,本轮不做),skip',
1825
1821
  },
1826
1822
  {
1827
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),仍不直接暴露',
@@ -1836,7 +1832,7 @@ export const ARG_SPEC = [
1836
1832
  name: 'addMate', source: 'operations/mateFns.js#addMate', kind: 'skip', module: 'operations', reason: '装配约束 DSL(MateEntity 持 kernel 活句柄,不可序列化):P1 起改由 cad.assembly 的 constraints[] 纯数据约束面暴露(2026-09-06 装配方案 §5),仍不直接暴露',
1837
1833
  },
1838
1834
  {
1839
- name: 'solveAssembly', source: 'operations/mateFns.js#solveAssembly', kind: 'skip', module: 'operations', reason: '命令式求解入口(kernel 句柄输入):P1 起由 asm.solve()/do_assemble() 替代,求解内核复用 vendored solverAdapter.solveConstraints(2026-09-06 装配方案 §4),仍不直接暴露',
1835
+ name: 'solveAssembly', source: 'operations/mateFns.js#solveAssembly', kind: 'skip', module: 'operations', reason: '命令式求解入口(kernel 句柄输入):P1 起由 asm.solve()/do_assemble() 替代,求解内核复用原 brepjs `solverAdapter` 的同源移植(api/assembly/solvers/chain-solver.ts;2026-09-06 装配方案 §4),仍不直接暴露',
1840
1836
  },
1841
1837
  {
1842
1838
  name: 'createHistory', source: 'operations/historyFns.js#createHistory', kind: 'skip', module: 'operations', reason: '状态化历史 DSL,skip host 适配',
@@ -1917,9 +1913,9 @@ export const ARG_SPEC = [
1917
1913
  name: 'createAssembly', source: 'operations/exporters.js#createAssembly', kind: 'skip', module: 'operations', reason: '返回 AssemblyExporter(kernel 包裹),skip host API',
1918
1914
  },
1919
1915
  // ──── P14 batch 9:core 模块(168 = 47 type + 67 pure + 1 query + 53 skip)────
1920
- // core 是 brepjs 的 L0/L1 基础设施层:Result 组合子、错误构造、向量/平面数学、
1916
+ // core 是来源树的 L0/L1 基础设施层:Result 组合子、错误构造、向量/平面数学、
1921
1917
  // 类型判别与 Shape 类型体系、内核句柄生命周期。faijs 面把「裸 kernel 句柄」排除在
1922
- // 外(Shape 所有权经 l3-bridge 借入/收养),故 disposal/kernelBoundary/kernelCall/
1918
+ // 外(Shape 所有权经 l3-bridge adopt 收养,取句柄经 brepOf),故 disposal/kernelBoundary/kernelCall/
1923
1919
  // shapeTypes 裸句柄族登记 skip;纯数据函数与常量直接 re-export(pure)。
1924
1920
  // 47 × type(全量 re-export,无行为)
1925
1921
  {
@@ -2043,7 +2039,7 @@ export const ARG_SPEC = [
2043
2039
  name: 'CurveType', source: 'core/typeDiscriminants.js#CurveType', kind: 'skip', module: 'core',
2044
2040
  },
2045
2041
  {
2046
- // 别名:vendored types.ts 只导出 Direction;根 barrel `Direction as DirectionInput`
2042
+ // 别名:来源 `types.ts` 只导出 Direction;根 barrel `Direction as DirectionInput`
2047
2043
  name: 'DirectionInput', source: 'index.js#DirectionInput', kind: 'skip', module: 'core',
2048
2044
  },
2049
2045
  {
@@ -2207,7 +2203,7 @@ export const ARG_SPEC = [
2207
2203
  name: 'pipeline', source: 'core/result.js#pipeline', kind: 'skip', module: 'core', reason: 'Result 管道入口(纯函数)',
2208
2204
  },
2209
2205
  {
2210
- // 别名:vendored result.ts 导出名 zip;根 barrel `zip as zipResults`
2206
+ // 别名:来源 `result.ts` 导出名 zip;根 barrel `zip as zipResults`
2211
2207
  name: 'zipResults', source: 'index.js#zipResults', kind: 'skip', module: 'core', reason: 'zip 的根 barrel 别名导出(纯函数)',
2212
2208
  },
2213
2209
  {
@@ -2278,7 +2274,7 @@ export const ARG_SPEC = [
2278
2274
  scriptFace: true,
2279
2275
  reason: 'core 引擎无等价方法(occt-wasm 无 isEmpty;getShapeType/isEqual 未进 L1),未平铺未公开(§5.5 第 2 条裁定删除)',
2280
2276
  },
2281
- // 53 × skip(裸 kernel 句柄族;faijs 面 Shape 所有权经 l3-bridge 借入/收养,不暴露裸句柄)
2277
+ // 53 × skip(裸 kernel 句柄族;faijs 面 Shape 所有权经 l3-bridge adopt 收养,不暴露裸句柄)
2282
2278
  // disposal:内核句柄生命周期/作用域基础设施
2283
2279
  {
2284
2280
  name: 'createHandle', source: 'core/disposal.js#createHandle', kind: 'skip', module: 'core', reason: '裸 OCCT Shape 句柄注册(KernelShape 入参),skip host 生命周期管理',
@@ -2443,8 +2439,8 @@ export const ARG_SPEC = [
2443
2439
  name: 'validSolid', source: 'core/shapeTypes.js#validSolid', kind: 'skip', module: 'core', reason: 'Solid → ValidSolid 判别包装(KernelShape),skip',
2444
2440
  },
2445
2441
  // ──── P14 batch 10:sketching 模块(52 = 3 type + 1 pure + 1 brep-op + 47 skip)────
2446
- // sketching 是 brepjs 的「状态化草图 DSL」层:Sketcher/Sketch/Sketches/FaceSketcher/
2447
- // CompoundSketch 类 + draw*/drawing*/sketch*/compoundSketch* 函数全部消费 brepjs 内部
2442
+ // sketching 是来源树的「状态化草图 DSL」层:Sketcher/Sketch/Sketches/FaceSketcher/
2443
+ // CompoundSketch 类 + draw*/drawing*/sketch*/compoundSketch* 函数全部消费来源树内部
2448
2444
  // 草图状态对象(内部持有 kernel 引用/草绘平面),faijs 面以 cad 命名空间的声明式 op
2449
2445
  // 表达建模,不暴露草图 DSL 状态机 —— 整层除下列 5 个符号外登记 skip。
2450
2446
  // 保留:Drawing/DrawingPen/SketchInterface 类型 re-export(TS 消费方类型面需要);
@@ -2466,7 +2462,7 @@ export const ARG_SPEC = [
2466
2462
  },
2467
2463
  // 1 × brep-op(构造类:纯数值参数 → Shape3D,无几何输入)
2468
2464
  {
2469
- name: 'makeBaseBox', source: 'brep-mirror/primitiveFns.ts#makeBaseBoxBrep', selfhost: true, kind: 'brep-op', capabilities: ['makeRectangle', 'extrude'], module: 'sketching',
2465
+ name: 'makeBaseBox', source: 'brep-operations/primitiveFns.ts#makeBaseBoxBrep', kind: 'brep-op', capabilities: ['makeRectangle', 'extrude'], module: 'sketching',
2470
2466
  args: '(xLength: number, yLength: number, zLength: number) -> Shape3D',
2471
2467
  geometryArgs: [],
2472
2468
  returnsResult: false,
@@ -2617,7 +2613,7 @@ export const ARG_SPEC = [
2617
2613
  name: 'Sketches', source: 'sketching/sketches.js#Sketches', kind: 'skip', module: 'sketching', reason: '草图集合状态类(kernel 引用),skip',
2618
2614
  },
2619
2615
  // ──── P14 补批 11:topology 模块(302 = 96 type + 206 value;P13a 4 样本已登)────
2620
- // topology 是 brepjs 建模核心面(primitive/boolean/transform/modifier/shape 查询)。
2616
+ // topology 是来源树建模核心面(primitive/boolean/transform/modifier/shape 查询)。
2621
2617
  // 本批按 surface 基线逐符号登记:类型全量 re-export;整件进出的几何 op 投 brep-op;
2622
2618
  // Shape→纯数据查询投 query;纯函数投 pure;子形状句柄(Face/Edge/Wire/Vertex)入参
2623
2619
  // 或句柄数组/状态机/宿主渲染 DSL 登记 skip(faijs Shape 面只能表达整件,理由见各条)。
@@ -2720,14 +2716,14 @@ export const ARG_SPEC = [
2720
2716
  { name: 'WrappedCurve', source: 'topology/wrapperFns.js#WrappedCurve', kind: 'skip' },
2721
2717
  { name: 'WrappedFace', source: 'topology/wrapperFns.js#WrappedFace', kind: 'skip' },
2722
2718
  // ── topology value 登记(203 = 206 − P13a 的 torus/fuse/getBounds)──
2723
- // brep-op:整件 Shape 进出(构造/变换/布尔/修饰,走 defineOp + borrow/adopt);
2719
+ // brep-op:整件 Shape 进出(构造/变换/布尔/修饰,走 defineOp + adopt 收养);
2724
2720
  // query:整件 Shape 进 → 纯数据出;pure:无 Shape 参数;skip:divergence 见 reason
2725
2721
  // (子形状句柄入参/句柄数组产物/宿主渲染/状态 DSL 等——faijs Shape 面只有整件值)。
2726
2722
  // primitiveFns:box/sphere/cylinder/cone/compound/solid 是 faijs 同名 op(§5.1 双形态
2727
2723
  // 或手写面已覆盖),生成层不重复投影 → skip;曲线/线框/面类构造产物是 Edge/Wire/Face
2728
2724
  // 子形状句柄,faijs Shape 面整件模型无法承载 → skip;ellipsoid 是纯数值整件构造 → brep-op;
2729
2725
  // box(§4.1 A)、cone(§4.1 P)与 cylinder(§4.3 A)自 P3/P4/P5 起由 skip → brep-op:
2730
- // 投影到 brepjs 契约,但**不投 scriptFace**(faijs 侧由手写 dual-op 覆盖,生成模块
2726
+ // 投影到来源契约,但**不投 scriptFace**(faijs 侧由手写 dual-op 覆盖,生成模块
2731
2727
  // 符号为孤儿 by design)。
2732
2728
  {
2733
2729
  name: 'box', source: 'topology/primitiveFns.js#box', kind: 'skip',
@@ -2749,7 +2745,7 @@ export const ARG_SPEC = [
2749
2745
  reason: 'overridden by handwritten api/primitives.ts (cone dual-op, mesh+brep)',
2750
2746
  },
2751
2747
  {
2752
- name: 'ellipsoid', source: 'brep-mirror/primitiveFns.ts#ellipsoidBrep', selfhost: true, kind: 'brep-op', capabilities: ['makeEllipsoid', 'translate'],
2748
+ name: 'ellipsoid', source: 'brep-operations/primitiveFns.ts#ellipsoidBrep', kind: 'brep-op', capabilities: ['makeEllipsoid', 'translate'],
2753
2749
  geometryArgs: [], returnsResult: false,
2754
2750
  args: 'ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape',
2755
2751
  reason: '纯数值整件构造(rx/ry/rz → ValidSolid),brep-op',
@@ -2848,7 +2844,7 @@ export const ARG_SPEC = [
2848
2844
  reason: 'faijs 同名 translate(§5.1 双形态:对象形态手写面覆盖 + v:Vec3 位置形态并入),生成层不重复投影',
2849
2845
  },
2850
2846
  {
2851
- name: 'rotate', source: 'brep-mirror/topologyFns.ts#rotateBrep', selfhost: true, kind: 'brep-op', capabilities: ['transform'],
2847
+ name: 'rotate', source: 'brep-operations/topologyFns.ts#rotateBrep', kind: 'brep-op', capabilities: ['transform'],
2852
2848
  geometryArgs: [0], returnsResult: false,
2853
2849
  args: 'rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape',
2854
2850
  reason: 'faijs rotate 已更名 rotate_euler(faijs 面只导出 rotate_euler),上游轴角 rotate 空出 → brep-op 进脚本面'
@@ -2864,7 +2860,7 @@ export const ARG_SPEC = [
2864
2860
  reason: 'overridden by handwritten api/transform.ts (scale dual-op, mesh+brep)',
2865
2861
  },
2866
2862
  {
2867
- name: 'mirror', source: 'brep-mirror/topologyFns.ts#mirrorBrep', selfhost: true, kind: 'brep-op', capabilities: ['mirror'],
2863
+ name: 'mirror', source: 'brep-operations/topologyFns.ts#mirrorBrep', kind: 'brep-op', capabilities: ['mirror'],
2868
2864
  geometryArgs: [0], returnsResult: false,
2869
2865
  args: 'mirror(shape: Shape, options?: MirrorOptions): Shape',
2870
2866
  reason: 'faijs 无同名 mirror,整件反射 → brep-op',
@@ -2873,7 +2869,7 @@ export const ARG_SPEC = [
2873
2869
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2874
2870
  },
2875
2871
  {
2876
- name: 'clone', source: 'brep-mirror/topologyFns.ts#cloneBrep', selfhost: true, kind: 'brep-op', capabilities: ['copyShape'],
2872
+ name: 'clone', source: 'brep-operations/topologyFns.ts#cloneBrep', kind: 'brep-op', capabilities: ['copyShape'],
2877
2873
  geometryArgs: [0], returnsResult: true,
2878
2874
  args: 'clone(shape: Shape): Shape',
2879
2875
  reason: 'faijs 用 copy(不同名),整件克隆(Result<T>)→ brep-op;纯 copyShape 调用、无 occt 特有 API(2026-09-26 从 engines:[occt] 白名单降级为 copyShape 能力路由,brepkit 已声明 copyShape)',
@@ -2882,10 +2878,11 @@ export const ARG_SPEC = [
2882
2878
  naming: { kind: 'identity' },
2883
2879
  },
2884
2880
  {
2885
- name: 'applyMatrix', source: 'brep-mirror/topologyFns.ts#applyMatrixBrep', selfhost: true, kind: 'brep-op', capabilities: ['transform', 'generalTransform'],
2881
+ name: 'applyMatrix', source: 'brep-operations/topologyFns.ts#applyMatrixBrep', kind: 'brep-op', capabilities: ['transform', 'generalTransform'],
2886
2882
  geometryArgs: [0], returnsResult: true,
2887
2883
  args: 'applyMatrix(shape: Shape, matrix: unknown): Shape',
2888
2884
  reason: 'faijs 用 applyTransform(不同名),整件矩阵变换 → brep-op',
2885
+ manualNote: '**任意仿射变换就是这样做的**——等价 OpenSCAD `multmatrix`:`matrix` 是**行主序 4×4**(四个 `[x,y,z,w]` 行组成的数组,底行必须 `[0,0,0,1]`,否则报错),如绕 Z 转 90° 的 `cad.applyMatrix(b, [[0,-1,0,0],[1,0,0,0],[0,0,1,0],[0,0,0,1]])`;也可给结构形态 `{ linear: 9 个数(行主序), translation: [tx,ty,tz] }`。线性部分行列式 ≈ 0(不可逆)报错;正交等长行(旋转 + 等比缩放)走仿射快路径,其余走通用变换。下游常误判「faijs 不具备任意仿射能力」,实为本 op 此前未进手册所致。',
2889
2886
  params: ['shape', 'matrix'], formClass: 'A',
2890
2887
  scriptFace: true,
2891
2888
  naming: { kind: 'identity' },
@@ -2899,7 +2896,7 @@ export const ARG_SPEC = [
2899
2896
  naming: { kind: 'identity' },
2900
2897
  },
2901
2898
  {
2902
- name: 'locate', source: 'brep-mirror/topologyFns.ts#locateBrep', selfhost: true, kind: 'brep-op', capabilities: ["composeTransform", "dispose", "hashCode", "locate"],
2899
+ name: 'locate', source: 'brep-operations/topologyFns.ts#locateBrep', kind: 'brep-op', capabilities: ["composeTransform", "dispose", "hashCode", "locate"],
2903
2900
  geometryArgs: [0], returnsResult: false,
2904
2901
  args: 'locate(shape: Shape, placement: unknown): Shape',
2905
2902
  reason: 'faijs 无同名,整件定位变换 → brep-op',
@@ -2922,7 +2919,7 @@ export const ARG_SPEC = [
2922
2919
  },
2923
2920
  {
2924
2921
  name: 'fuseAll', source: 'topology/api.js#fuseAll', kind: 'skip',
2925
- reason: '入参 Shapeable<T>[](几何数组),brep-op 模板单柄借入不适用;faijs 用 union 变参,skip',
2922
+ reason: '入参 Shapeable<T>[](几何数组),brep-op 模板单柄形参不适配;faijs 用 union 变参,skip',
2926
2923
  },
2927
2924
  {
2928
2925
  name: 'cutAll', source: 'topology/api.js#cutAll', kind: 'skip',
@@ -2931,12 +2928,12 @@ export const ARG_SPEC = [
2931
2928
  {
2932
2929
  name: 'intersect', source: 'topology/api.js#intersect', kind: 'skip',
2933
2930
  reason: '禁止投脚本面(§4.8):faijs 侧 cad.intersect 是 variadic、async、带 keepHidden 时间线副作用、roleTable '
2934
- + '合流的 dual-op,mesh+brep 双实现;vendored 的 intersect 是二元同步 Result 契约,仅驻留 compat 面,不共面不投影。'
2931
+ + '合流的 dual-op,mesh+brep 双实现;来源实现的 intersect 是二元同步 Result 契约,仅驻留 compat 面,不共面不投影。'
2935
2932
  + '任何想把上游 intersect 标为 brep-op / scriptFace 的改动,必须同时把 faijs 的 intersect 改名为 intersect_all'
2936
2933
  + '(含 UI ops 与存量迁移)——生成期守卫见 gen-l3-surface.ts(§4.8 触发条件)。',
2937
2934
  },
2938
2935
  {
2939
- name: 'section', source: 'brep-mirror/booleanFns.ts#sectionBrep', selfhost: true, kind: 'brep-op',
2936
+ name: 'section', source: 'brep-operations/booleanFns.ts#sectionBrep', kind: 'brep-op',
2940
2937
  capabilities: ["sectionByPlane", "makeCompound"],
2941
2938
  geometryArgs: [0], returnsResult: true,
2942
2939
  args: 'section(shape: Shape, plane: PlaneInput): Shape',
@@ -2948,7 +2945,7 @@ export const ARG_SPEC = [
2948
2945
  reason: '返回 Face 子形状产物,faijs 整件面不承载,skip',
2949
2946
  },
2950
2947
  {
2951
- name: 'split', source: 'brep-mirror/booleanFns.ts#splitBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2948
+ name: 'split', source: 'brep-operations/booleanFns.ts#splitBrep', kind: 'brep-op', engines: ['occt'],
2952
2949
  geometryArgs: [0], returnsResult: true,
2953
2950
  args: 'split(shape: Shape, tools: Shape[]): Shape',
2954
2951
  reason: 'faijs split 已更名 fai_split,上游工具切件 split 空出 → brep-op(§5.1 D-SPLIT;tools 暂登记几何首参,数组切件经 faijs 侧适配)',
@@ -2970,15 +2967,15 @@ export const ARG_SPEC = [
2970
2967
  reason: 'faijs 同名 chamfer(§5.1 O-CHAMFER-1:role 取边已保留,上游 Edge 句柄取边形态待处置),生成层不重复投影',
2971
2968
  },
2972
2969
  {
2973
- name: 'shell', source: 'brep-mirror/topologyFns.ts#shellBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2970
+ name: 'shell', source: 'brep-operations/topologyFns.ts#shellBrep', kind: 'brep-op', engines: ['occt'],
2974
2971
  geometryArgs: [0], returnsResult: true,
2975
- reason: 'faijs 侧 cad.shell 由手写中立 op 覆盖(api/shell.ts:选面走 FaceTopoRef,能力经 capabilities:["directEdit"] 路由 ⇒ 相对 vendored 的 occt 平台版是能力升级,brepkit 的 L1 shell 亦可用)。本投影保留为引擎记录(capability-map),生成模块符号不直接进 cad 命名空间 by design(同 extrude / sweep 口径)。',
2972
+ reason: 'faijs 侧 cad.shell 由手写中立 op 覆盖(api/shell.ts:选面走 FaceTopoRef,能力经 capabilities:["directEdit"] 路由 ⇒ 相对来源实现的 occt 平台版是能力升级,brepkit 的 L1 shell 亦可用)。本投影保留为引擎记录(capability-map),生成模块符号不直接进 cad 命名空间 by design(同 extrude / sweep 口径)。',
2976
2973
  args: 'shell(shape: Shape, faces?: Shape[], thickness: number): Shape',
2977
2974
  params: ['shape', 'faces', 'thickness'], formClass: 'A',
2978
2975
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
2979
2976
  },
2980
2977
  {
2981
- name: 'offset', source: 'brep-mirror/topologyFns.ts#offsetBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2978
+ name: 'offset', source: 'brep-operations/topologyFns.ts#offsetBrep', kind: 'brep-op', engines: ['occt'],
2982
2979
  geometryArgs: [0], returnsResult: true,
2983
2980
  args: 'offset(shape: Shape, distance: number): Shape',
2984
2981
  reason: 'faijs 无同名偏置 → brep-op',
@@ -2988,14 +2985,14 @@ export const ARG_SPEC = [
2988
2985
  },
2989
2986
  {
2990
2987
  name: 'thicken', source: 'topology/api.js#thicken', kind: 'skip',
2991
- reason: 'overridden by handwritten api/thicken.ts (平台 op engines:[occt]:入参取面/壳整件 Shape——cad.profile 产物即天然面来源;内部借入喂 vendored thicken,不再要求子形状句柄)',
2988
+ reason: 'overridden by handwritten api/thicken.ts (平台 op engines:[occt]:入参取面/壳整件 Shape——cad.profile 产物即天然面来源;内部经 brepOf 取句柄直连 occt 内核 thicken,不再要求子形状句柄)',
2992
2989
  },
2993
2990
  {
2994
2991
  name: 'draft', source: 'topology/api.js#draft', kind: 'skip',
2995
2992
  reason: 'overridden by handwritten api/draft.ts (平台 op engines:[occt] —— 实证收窄:brepkit 的 L1 draft 对对称 box 破坏对称性、部分 ordinal 静默无操作;选面走 FaceTopoRef,中性面用点而非 face 引用,且 occt 侧只支持原点中性面)',
2996
2993
  },
2997
2994
  {
2998
- name: 'heal', source: 'brep-mirror/healingFns.ts#healBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
2995
+ name: 'heal', source: 'brep-operations/healingFns.ts#healBrep', kind: 'brep-op', engines: ['occt'],
2999
2996
  geometryArgs: [0], returnsResult: true,
3000
2997
  args: 'heal(shape: Shape): Shape',
3001
2998
  reason: 'faijs 无同名整件修复 → brep-op',
@@ -3004,7 +3001,7 @@ export const ARG_SPEC = [
3004
3001
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3005
3002
  },
3006
3003
  {
3007
- name: 'simplify', source: 'brep-mirror/healingFns.ts#simplifyBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3004
+ name: 'simplify', source: 'brep-operations/healingFns.ts#simplifyBrep', kind: 'brep-op', engines: ['occt'],
3008
3005
  geometryArgs: [0], returnsResult: true,
3009
3006
  args: 'simplify(shape: Shape): Shape',
3010
3007
  reason: 'faijs 无同名整件简化 → brep-op',
@@ -3033,9 +3030,9 @@ export const ARG_SPEC = [
3033
3030
  reason: 'BREP 反序列化(string 入参 → AnyShape),faijs 以 load/asset 体系承担,skip',
3034
3031
  },
3035
3032
  {
3036
- name: 'isValid', source: 'core:brep-mirror#isValid', kind: 'query', selfhost: true,
3033
+ name: 'isValid', source: 'core:brep-operations#isValid', kind: 'query',
3037
3034
  geometryArgs: [0], returnsResult: false, returnType: 'boolean',
3038
- args: 'isValid(shape: Shape): boolean(core selfhost)',
3035
+ args: 'isValid(shape: Shape): boolean(core)',
3039
3036
  reason: '整件合法性检查(Shape → boolean 纯数据),query',
3040
3037
  params: ['shape'], formClass: 'A',
3041
3038
  scriptFace: true,
@@ -3134,9 +3131,9 @@ export const ARG_SPEC = [
3134
3131
  reason: 'core 引擎无等价方法(occt-wasm 无 isEmpty;getShapeType/isEqual 未进 L1),未平铺未公开(§5.5 第 2 条裁定删除)',
3135
3132
  },
3136
3133
  {
3137
- name: 'isSameShape', source: 'core:brep-mirror#isSameShape', kind: 'query', selfhost: true,
3134
+ name: 'isSameShape', source: 'core:brep-operations#isSameShape', kind: 'query',
3138
3135
  geometryArgs: [0, 1], returnsResult: false, returnType: 'boolean',
3139
- args: 'isSameShape(a: Shape, b: Shape): boolean(core selfhost)',
3136
+ args: 'isSameShape(a: Shape, b: Shape): boolean(core)',
3140
3137
  reason: '两整件同构比较(纯数据),query',
3141
3138
  params: ['a', 'b'], formClass: 'A',
3142
3139
  queryParams: [
@@ -3252,7 +3249,7 @@ export const ARG_SPEC = [
3252
3249
  name: 'faceCenter', source: 'topology/faceFns.js#faceCenter', kind: 'skip',
3253
3250
  reason: 'faijs 无同名 op(§4.9):faceCenter 仅作为 api/engrave.ts 与 api/knurl.ts 的参数键(绝对坐标快照)存在,'
3254
3251
  + '不共面、不冲突。若将来要在 cad 面提供质心查询,契约应为 cad.faceCenter(shape, ordinal?)(入参是 faijs Shape + 面'
3255
- + '序号,与 vendored 的 Face 入参不同),两面各持各的契约。',
3252
+ + '序号,与来源实现的 Face 入参不同),两面各持各的契约。',
3256
3253
  },
3257
3254
  {
3258
3255
  name: 'getSurfaceType', source: 'topology/faceFns.js#getSurfaceType', kind: 'skip',
@@ -3312,7 +3309,7 @@ export const ARG_SPEC = [
3312
3309
  },
3313
3310
  // healingFns:整件修复 brep-op;face/wire 级修复与 shell 组装 skip
3314
3311
  {
3315
- name: 'autoHeal', source: 'brep-mirror/healingFns.ts#autoHealBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3312
+ name: 'autoHeal', source: 'brep-operations/healingFns.ts#autoHealBrep', kind: 'brep-op', engines: ['occt'],
3316
3313
  geometryArgs: [0], returnsResult: true, outputs: ['shape'],
3317
3314
  args: 'autoHeal(shape: Shape, options?: AutoHealOptions): { shape: Shape, report }',
3318
3315
  reason: '整件自动修复(Result<Shape>),brep-op',
@@ -3321,7 +3318,7 @@ export const ARG_SPEC = [
3321
3318
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3322
3319
  },
3323
3320
  {
3324
- name: 'fixShape', source: 'brep-mirror/healingFns.ts#fixShapeBrep', selfhost: true, kind: 'brep-op', capabilities: ["fixShape"],
3321
+ name: 'fixShape', source: 'brep-operations/healingFns.ts#fixShapeBrep', kind: 'brep-op', capabilities: ["fixShape"],
3325
3322
  geometryArgs: [0], returnsResult: true,
3326
3323
  args: 'fixShape(shape: Shape): Shape',
3327
3324
  reason: '整件修复(Result<Shape>),brep-op',
@@ -3330,7 +3327,7 @@ export const ARG_SPEC = [
3330
3327
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3331
3328
  },
3332
3329
  {
3333
- name: 'healSolid', source: 'brep-mirror/healingFns.ts#healSolidBrep', selfhost: true, kind: 'brep-op', capabilities: ['healSolid'],
3330
+ name: 'healSolid', source: 'brep-operations/healingFns.ts#healSolidBrep', kind: 'brep-op', capabilities: ['healSolid'],
3334
3331
  geometryArgs: [0], returnsResult: true,
3335
3332
  args: 'healSolid(solid: Shape): Shape',
3336
3333
  reason: 'Solid 修复(Result<ValidSolid>),brep-op',
@@ -3339,7 +3336,7 @@ export const ARG_SPEC = [
3339
3336
  naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
3340
3337
  },
3341
3338
  {
3342
- name: 'fixSelfIntersection', source: 'brep-mirror/healingFns.ts#fixSelfIntersectionBrep', selfhost: true, kind: 'brep-op', engines: ['occt'],
3339
+ name: 'fixSelfIntersection', source: 'brep-operations/healingFns.ts#fixSelfIntersectionBrep', kind: 'brep-op', engines: ['occt'],
3343
3340
  geometryArgs: [0], returnsResult: true,
3344
3341
  args: 'fixSelfIntersection(shape: Shape): Shape',
3345
3342
  params: ['shape'], formClass: 'A',
@@ -3682,53 +3679,54 @@ export const ARG_SPEC = [
3682
3679
  reason: '多面体构造(面片选项 DSL,返回 ValidSolid 形态待核),skip',
3683
3680
  },
3684
3681
  // ──── P14 补批 12:kernel 模块(57 = 21 value + 36 type;D10 冻结 registry)────
3685
- // kernel 是 L0 注册表面:D10 单实例 occt-wasm 由 faijs 侧装配并冻结`n // (2026-09-25 core-decouple 后 vendored registry 由宿主/测试自装配),
3682
+ // kernel 是 L0 注册表面:D10 单实例 occt-wasm 由 faijs 侧装配并冻结
3683
+ // (2026-09-25 core-decouple 后原 brepjs 内核注册表由宿主/测试自装配),
3686
3684
  // 只读/纯数据符号 re-export;registry 生命周期(init/with*/register*/tier/perf)与
3687
3685
  // KernelAdapter 对象谓词登记 skip(理由见各条);上游已剪除符号(BrepkitHandle、
3688
- // PerformanceStats、BrepkitAdapter、init 系等)同样 skip——vendored 树无对应导出。
3686
+ // PerformanceStats、BrepkitAdapter、init 系等)同样 skip——原 brepjs 树无对应导出。
3689
3687
  //
3690
- // 36 type:34 个 re-export(真身所在文件)+ 2 个 skip(vendored 无此类型)
3691
- { name: 'BooleanDiagnostics', source: 'kernel/types.js#BooleanDiagnostics', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3692
- { name: 'BooleanIssue', source: 'kernel/types.js#BooleanIssue', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3693
- { name: 'BooleanOpType', source: 'kernel/types.js#BooleanOpType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3694
- { name: 'CheckBooleanResult', source: 'kernel/types.js#CheckBooleanResult', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3695
- { name: 'NurbsCurveData', source: 'kernel/types.js#NurbsCurveData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3696
- { name: 'NurbsSurfaceData', source: 'kernel/types.js#NurbsSurfaceData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3697
- { name: 'ShapeEvolution', source: 'kernel/types.js#ShapeEvolution', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3698
- { name: 'ShapeOrientation', source: 'kernel/types.js#ShapeOrientation', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3699
- { name: 'ShapeType', source: 'kernel/types.js#ShapeType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3700
- { name: 'SurfaceType', source: 'kernel/types.js#SurfaceType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3701
- { name: 'ProjectionCapability', source: 'kernel/types.js#ProjectionCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3702
- { name: 'ConstraintSketchCapability', source: 'kernel/types.js#ConstraintSketchCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3703
- { name: 'KernelAdapter', source: 'kernel/interfaces/index.js#KernelAdapter', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3704
- { name: 'KernelCore', source: 'kernel/interfaces/index.js#KernelCore', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3705
- { name: 'KernelBooleanOps', source: 'kernel/interfaces/index.js#KernelBooleanOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3706
- { name: 'KernelBuilderOps', source: 'kernel/interfaces/index.js#KernelBuilderOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3707
- { name: 'KernelCurveOps', source: 'kernel/interfaces/index.js#KernelCurveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3708
- { name: 'KernelEvolutionOps', source: 'kernel/interfaces/index.js#KernelEvolutionOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3709
- { name: 'KernelIOOps', source: 'kernel/interfaces/index.js#KernelIOOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3710
- { name: 'KernelMeasureOps', source: 'kernel/interfaces/index.js#KernelMeasureOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3711
- { name: 'KernelMeshOps', source: 'kernel/interfaces/index.js#KernelMeshOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3712
- { name: 'KernelModifierOps', source: 'kernel/interfaces/index.js#KernelModifierOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3713
- { name: 'KernelPrimitiveOps', source: 'kernel/interfaces/index.js#KernelPrimitiveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3714
- { name: 'KernelRepairOps', source: 'kernel/interfaces/index.js#KernelRepairOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3715
- { name: 'KernelSurfaceOps', source: 'kernel/interfaces/index.js#KernelSurfaceOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3716
- { name: 'KernelSweepOps', source: 'kernel/interfaces/index.js#KernelSweepOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3717
- { name: 'KernelTopologyOps', source: 'kernel/interfaces/index.js#KernelTopologyOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3718
- { name: 'KernelTransformOps', source: 'kernel/interfaces/index.js#KernelTransformOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3719
- { name: 'KernelCapabilities', source: 'kernel/capabilities.js#KernelCapabilities', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3720
- { name: 'TessellationModel', source: 'kernel/capabilities.js#TessellationModel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3721
- { name: 'QualityLevel', source: 'kernel/quality.js#QualityLevel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3722
- { name: 'OcctKernelWasm', source: 'kernel/occtWasm/occtWasmTypes.js#OcctKernelWasm', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3723
- { name: 'OcctWasmHandle', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmHandle', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3724
- { name: 'OcctWasmModule', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmModule', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随 brepjs 删除,无接收方(裁决 9)' },
3688
+ // 36 type:34 个 re-export(真身所在文件)+ 2 个 skip(原 brepjs 无此类型)
3689
+ { name: 'BooleanDiagnostics', source: 'kernel/types.js#BooleanDiagnostics', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3690
+ { name: 'BooleanIssue', source: 'kernel/types.js#BooleanIssue', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3691
+ { name: 'BooleanOpType', source: 'kernel/types.js#BooleanOpType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3692
+ { name: 'CheckBooleanResult', source: 'kernel/types.js#CheckBooleanResult', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3693
+ { name: 'NurbsCurveData', source: 'kernel/types.js#NurbsCurveData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3694
+ { name: 'NurbsSurfaceData', source: 'kernel/types.js#NurbsSurfaceData', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3695
+ { name: 'ShapeEvolution', source: 'kernel/types.js#ShapeEvolution', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3696
+ { name: 'ShapeOrientation', source: 'kernel/types.js#ShapeOrientation', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3697
+ { name: 'ShapeType', source: 'kernel/types.js#ShapeType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3698
+ { name: 'SurfaceType', source: 'kernel/types.js#SurfaceType', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3699
+ { name: 'ProjectionCapability', source: 'kernel/types.js#ProjectionCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3700
+ { name: 'ConstraintSketchCapability', source: 'kernel/types.js#ConstraintSketchCapability', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3701
+ { name: 'KernelAdapter', source: 'kernel/interfaces/index.js#KernelAdapter', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3702
+ { name: 'KernelCore', source: 'kernel/interfaces/index.js#KernelCore', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3703
+ { name: 'KernelBooleanOps', source: 'kernel/interfaces/index.js#KernelBooleanOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3704
+ { name: 'KernelBuilderOps', source: 'kernel/interfaces/index.js#KernelBuilderOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3705
+ { name: 'KernelCurveOps', source: 'kernel/interfaces/index.js#KernelCurveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3706
+ { name: 'KernelEvolutionOps', source: 'kernel/interfaces/index.js#KernelEvolutionOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3707
+ { name: 'KernelIOOps', source: 'kernel/interfaces/index.js#KernelIOOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3708
+ { name: 'KernelMeasureOps', source: 'kernel/interfaces/index.js#KernelMeasureOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3709
+ { name: 'KernelMeshOps', source: 'kernel/interfaces/index.js#KernelMeshOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3710
+ { name: 'KernelModifierOps', source: 'kernel/interfaces/index.js#KernelModifierOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3711
+ { name: 'KernelPrimitiveOps', source: 'kernel/interfaces/index.js#KernelPrimitiveOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3712
+ { name: 'KernelRepairOps', source: 'kernel/interfaces/index.js#KernelRepairOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3713
+ { name: 'KernelSurfaceOps', source: 'kernel/interfaces/index.js#KernelSurfaceOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3714
+ { name: 'KernelSweepOps', source: 'kernel/interfaces/index.js#KernelSweepOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3715
+ { name: 'KernelTopologyOps', source: 'kernel/interfaces/index.js#KernelTopologyOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3716
+ { name: 'KernelTransformOps', source: 'kernel/interfaces/index.js#KernelTransformOps', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3717
+ { name: 'KernelCapabilities', source: 'kernel/capabilities.js#KernelCapabilities', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3718
+ { name: 'TessellationModel', source: 'kernel/capabilities.js#TessellationModel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3719
+ { name: 'QualityLevel', source: 'kernel/quality.js#QualityLevel', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3720
+ { name: 'OcctKernelWasm', source: 'kernel/occtWasm/occtWasmTypes.js#OcctKernelWasm', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3721
+ { name: 'OcctWasmHandle', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmHandle', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3722
+ { name: 'OcctWasmModule', source: 'kernel/occtWasm/occtWasmTypes.js#OcctWasmModule', kind: 'skip', module: 'kernel', reason: '零引用死分片(§5.5 第 1 条):generated/kernel.ts 已随原 brepjs 树删除,无接收方(裁决 9)' },
3725
3723
  {
3726
3724
  name: 'BrepkitHandle', source: 'kernel/index.js#BrepkitHandle', kind: 'skip', module: 'kernel',
3727
- reason: '上游 brepkit 句柄类型(faijs 以 OcctWasmHandle 承担),vendored 无此导出,skip',
3725
+ reason: '上游 brepkit 句柄类型(faijs 以 OcctWasmHandle 承担),原 brepjs 无此导出,skip',
3728
3726
  },
3729
3727
  {
3730
3728
  name: 'PerformanceStats', source: 'kernel/perfStats.js#PerformanceStats', kind: 'skip', module: 'kernel',
3731
- reason: '性能统计类型,vendored perfStats 模块已剪除,skip',
3729
+ reason: '性能统计类型,原 brepjs perfStats 模块已剪除,skip',
3732
3730
  },
3733
3731
  // 21 value:4 个只读/纯数据 re-export;registry 生命周期与对象谓词 skip
3734
3732
  { name: 'DEFAULT_CAPABILITIES', source: 'kernel/capabilities.js#DEFAULT_CAPABILITIES', kind: 'skip', module: 'kernel', reason: 'kernel 能力常量表(纯数据)' },
@@ -3737,7 +3735,7 @@ export const ARG_SPEC = [
3737
3735
  { name: 'getKernelCapabilities', source: 'kernel/index.js#getKernelCapabilities', kind: 'skip', module: 'kernel', reason: 'kernel 能力查询(返回 KernelCapabilities 纯数据)' },
3738
3736
  {
3739
3737
  name: 'getKernel', source: 'kernel/index.js#getKernel', kind: 'skip', module: 'kernel',
3740
- reason: 'L0 kernel 读取器(D10:faijs 侧装配并冻结 vendored registry),不向 L3 用户面暴露,skip',
3738
+ reason: 'L0 kernel 读取器(D10:faijs 侧装配并冻结原 brepjs 内核注册表),不向 L3 用户面暴露,skip',
3741
3739
  },
3742
3740
  {
3743
3741
  name: 'registerKernel', source: 'kernel/index.js#registerKernel', kind: 'skip', module: 'kernel',
@@ -3757,7 +3755,7 @@ export const ARG_SPEC = [
3757
3755
  },
3758
3756
  {
3759
3757
  name: 'BrepkitAdapter', source: 'kernel/index.js#BrepkitAdapter', kind: 'skip', module: 'kernel',
3760
- reason: '上游 brepkit 适配器(faijs 以 occt 面承担),vendored 无此导出,skip',
3758
+ reason: '上游 brepkit 适配器(faijs 以 occt 面承担),原 brepjs 无此导出,skip',
3761
3759
  },
3762
3760
  {
3763
3761
  name: 'init', source: 'kernel/index.js#init', kind: 'skip', module: 'kernel',
@@ -3797,11 +3795,11 @@ export const ARG_SPEC = [
3797
3795
  },
3798
3796
  {
3799
3797
  name: 'getPerformanceStats', source: 'kernel/index.js#getPerformanceStats', kind: 'skip', module: 'kernel',
3800
- reason: '上游性能统计读取(vendored 剪除),skip',
3798
+ reason: '上游性能统计读取(原 brepjs 剪除),skip',
3801
3799
  },
3802
3800
  {
3803
3801
  name: 'resetPerformanceStats', source: 'kernel/index.js#resetPerformanceStats', kind: 'skip', module: 'kernel',
3804
- reason: '上游性能统计重置(vendored 剪除),skip',
3802
+ reason: '上游性能统计重置(原 brepjs 剪除),skip',
3805
3803
  },
3806
3804
  ];
3807
3805
  //# sourceMappingURL=arg-spec.js.map