@pascal-app/core 1.0.6 → 1.0.7

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 (940) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
  4. package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
  5. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  6. package/dist/agent-operations/__fixtures__/cases.js +19 -11
  7. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
  8. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
  9. package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
  10. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
  11. package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
  12. package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
  13. package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
  14. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
  15. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
  16. package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
  17. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
  18. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
  19. package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
  20. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  21. package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
  22. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
  23. package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
  24. package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
  25. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
  26. package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
  27. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  28. package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
  29. package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
  30. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
  31. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
  32. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  33. package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
  34. package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
  35. package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
  36. package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
  37. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
  38. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  39. package/dist/agent-operations/add-column.d.ts.map +1 -1
  40. package/dist/agent-operations/add-column.js +32 -3
  41. package/dist/agent-operations/add-fence.d.ts.map +1 -1
  42. package/dist/agent-operations/add-fence.js +2 -1
  43. package/dist/agent-operations/add-level.d.ts.map +1 -1
  44. package/dist/agent-operations/add-level.js +4 -4
  45. package/dist/agent-operations/add-object.d.ts +32 -6
  46. package/dist/agent-operations/add-object.d.ts.map +1 -1
  47. package/dist/agent-operations/add-object.js +59 -12
  48. package/dist/agent-operations/add-wall.d.ts +3 -8
  49. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  50. package/dist/agent-operations/add-wall.js +31 -8
  51. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  52. package/dist/agent-operations/apply-changes.js +2 -1
  53. package/dist/agent-operations/asset-catalog.d.ts +63 -0
  54. package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
  55. package/dist/agent-operations/asset-catalog.js +182 -0
  56. package/dist/agent-operations/asset-views.d.ts +4 -2
  57. package/dist/agent-operations/asset-views.d.ts.map +1 -1
  58. package/dist/agent-operations/asset-views.js +1 -3
  59. package/dist/agent-operations/author-scene-checks.d.ts +38 -0
  60. package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
  61. package/dist/agent-operations/author-scene-checks.js +266 -0
  62. package/dist/agent-operations/author-scene.d.ts +54 -20
  63. package/dist/agent-operations/author-scene.d.ts.map +1 -1
  64. package/dist/agent-operations/author-scene.js +1164 -196
  65. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
  66. package/dist/agent-operations/authored-scene-merge.js +61 -3
  67. package/dist/agent-operations/batch.d.ts +1 -1
  68. package/dist/agent-operations/batch.d.ts.map +1 -1
  69. package/dist/agent-operations/batch.js +38 -39
  70. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
  71. package/dist/agent-operations/ceiling-object-observations.js +5 -4
  72. package/dist/agent-operations/circulation-geometry.d.ts +14 -0
  73. package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
  74. package/dist/agent-operations/circulation-geometry.js +151 -0
  75. package/dist/agent-operations/circulation-graph.d.ts +72 -0
  76. package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
  77. package/dist/agent-operations/circulation-graph.js +713 -0
  78. package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
  79. package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
  80. package/dist/agent-operations/circulation-non-spaces.js +88 -0
  81. package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
  82. package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
  83. package/dist/agent-operations/circulation-spaces.js +368 -0
  84. package/dist/agent-operations/collections.d.ts.map +1 -1
  85. package/dist/agent-operations/collections.js +9 -7
  86. package/dist/agent-operations/corner-window.d.ts.map +1 -1
  87. package/dist/agent-operations/corner-window.js +2 -4
  88. package/dist/agent-operations/create-roof.d.ts.map +1 -1
  89. package/dist/agent-operations/create-roof.js +5 -7
  90. package/dist/agent-operations/create-room.d.ts +4 -1
  91. package/dist/agent-operations/create-room.d.ts.map +1 -1
  92. package/dist/agent-operations/create-room.js +7 -4
  93. package/dist/agent-operations/create-stair.js +2 -2
  94. package/dist/agent-operations/design-brief.d.ts +13 -7
  95. package/dist/agent-operations/design-brief.d.ts.map +1 -1
  96. package/dist/agent-operations/design-brief.js +172 -92
  97. package/dist/agent-operations/door-clearance.d.ts +68 -8
  98. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  99. package/dist/agent-operations/door-clearance.js +127 -20
  100. package/dist/agent-operations/dress-targets.d.ts +23 -0
  101. package/dist/agent-operations/dress-targets.d.ts.map +1 -0
  102. package/dist/agent-operations/dress-targets.js +34 -0
  103. package/dist/agent-operations/duplicate-node.d.ts +14 -0
  104. package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
  105. package/dist/agent-operations/duplicate-node.js +173 -0
  106. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  107. package/dist/agent-operations/find-by-type.js +3 -0
  108. package/dist/agent-operations/furnish-room.d.ts +2 -0
  109. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  110. package/dist/agent-operations/furnish-room.js +15 -4
  111. package/dist/agent-operations/furniture-kind.d.ts +28 -1
  112. package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
  113. package/dist/agent-operations/furniture-kind.js +105 -6
  114. package/dist/agent-operations/ground-reader.d.ts +10 -0
  115. package/dist/agent-operations/ground-reader.d.ts.map +1 -0
  116. package/dist/agent-operations/ground-reader.js +25 -0
  117. package/dist/agent-operations/index.d.ts +118 -12
  118. package/dist/agent-operations/index.d.ts.map +1 -1
  119. package/dist/agent-operations/index.js +26 -1
  120. package/dist/agent-operations/item-solids.d.ts +39 -0
  121. package/dist/agent-operations/item-solids.d.ts.map +1 -0
  122. package/dist/agent-operations/item-solids.js +128 -0
  123. package/dist/agent-operations/layout-clearance.d.ts +91 -11
  124. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/layout-clearance.js +280 -73
  126. package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
  127. package/dist/agent-operations/level-height-fill.js +7 -1
  128. package/dist/agent-operations/level-reads.d.ts +5 -0
  129. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  130. package/dist/agent-operations/level-reads.js +38 -2
  131. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  132. package/dist/agent-operations/list-levels.js +2 -4
  133. package/dist/agent-operations/move-node.d.ts +12 -0
  134. package/dist/agent-operations/move-node.d.ts.map +1 -0
  135. package/dist/agent-operations/move-node.js +28 -0
  136. package/dist/agent-operations/move-plan.d.ts +28 -0
  137. package/dist/agent-operations/move-plan.d.ts.map +1 -0
  138. package/dist/agent-operations/move-plan.js +257 -0
  139. package/dist/agent-operations/node-patch.d.ts.map +1 -1
  140. package/dist/agent-operations/node-patch.js +15 -0
  141. package/dist/agent-operations/paint.d.ts +3 -1
  142. package/dist/agent-operations/paint.d.ts.map +1 -1
  143. package/dist/agent-operations/paint.js +14 -1
  144. package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
  145. package/dist/agent-operations/photo-elevation.js +2 -1
  146. package/dist/agent-operations/place-in-room.d.ts.map +1 -1
  147. package/dist/agent-operations/place-in-room.js +1 -0
  148. package/dist/agent-operations/place-items.d.ts.map +1 -1
  149. package/dist/agent-operations/place-items.js +3 -4
  150. package/dist/agent-operations/plan-clearance.d.ts +28 -0
  151. package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
  152. package/dist/agent-operations/plan-clearance.js +47 -0
  153. package/dist/agent-operations/plan-geometry.d.ts +2 -0
  154. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  155. package/dist/agent-operations/plan-geometry.js +10 -0
  156. package/dist/agent-operations/project-files.d.ts +10 -0
  157. package/dist/agent-operations/project-files.d.ts.map +1 -1
  158. package/dist/agent-operations/reachability.d.ts +41 -0
  159. package/dist/agent-operations/reachability.d.ts.map +1 -0
  160. package/dist/agent-operations/reachability.js +199 -0
  161. package/dist/agent-operations/room-checks.d.ts +60 -0
  162. package/dist/agent-operations/room-checks.d.ts.map +1 -0
  163. package/dist/agent-operations/room-checks.js +226 -0
  164. package/dist/agent-operations/room-faces.d.ts +30 -0
  165. package/dist/agent-operations/room-faces.d.ts.map +1 -0
  166. package/dist/agent-operations/room-faces.js +31 -0
  167. package/dist/agent-operations/room-findings.d.ts +5 -2
  168. package/dist/agent-operations/room-findings.d.ts.map +1 -1
  169. package/dist/agent-operations/room-findings.js +30 -0
  170. package/dist/agent-operations/room-finishes.d.ts +87 -0
  171. package/dist/agent-operations/room-finishes.d.ts.map +1 -0
  172. package/dist/agent-operations/room-finishes.js +193 -0
  173. package/dist/agent-operations/room-floor-script.d.ts +3 -3
  174. package/dist/agent-operations/room-floor-script.js +3 -3
  175. package/dist/agent-operations/room-readings.d.ts +90 -0
  176. package/dist/agent-operations/room-readings.d.ts.map +1 -0
  177. package/dist/agent-operations/room-readings.js +369 -0
  178. package/dist/agent-operations/room-tile.d.ts +15 -0
  179. package/dist/agent-operations/room-tile.d.ts.map +1 -0
  180. package/dist/agent-operations/room-tile.js +30 -0
  181. package/dist/agent-operations/room-wet.d.ts +55 -0
  182. package/dist/agent-operations/room-wet.d.ts.map +1 -0
  183. package/dist/agent-operations/room-wet.js +203 -0
  184. package/dist/agent-operations/scene-check-policy.d.ts +5 -0
  185. package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
  186. package/dist/agent-operations/scene-check-policy.js +24 -0
  187. package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
  188. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
  189. package/dist/agent-operations/scene-checkpoint.js +31 -0
  190. package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
  191. package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
  192. package/dist/agent-operations/scene-issue-groups.js +71 -0
  193. package/dist/agent-operations/scene-materials.d.ts +23 -0
  194. package/dist/agent-operations/scene-materials.d.ts.map +1 -1
  195. package/dist/agent-operations/scene-materials.js +41 -0
  196. package/dist/agent-operations/scene-queries.d.ts +1667 -866
  197. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  198. package/dist/agent-operations/scene-queries.js +3 -3
  199. package/dist/agent-operations/scene-review.d.ts.map +1 -1
  200. package/dist/agent-operations/scene-review.js +3 -2
  201. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  202. package/dist/agent-operations/scene-view.js +91 -21
  203. package/dist/agent-operations/search-assets.d.ts +10 -6
  204. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  205. package/dist/agent-operations/search-assets.js +37 -22
  206. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
  207. package/dist/agent-operations/set-checkpoint.js +1 -0
  208. package/dist/agent-operations/set-ground-level.d.ts +1 -1
  209. package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
  210. package/dist/agent-operations/set-ground-level.js +3 -14
  211. package/dist/agent-operations/site.js +3 -2
  212. package/dist/agent-operations/slab-surface-script.d.ts +25 -0
  213. package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
  214. package/dist/agent-operations/slab-surface-script.js +60 -0
  215. package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
  216. package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
  217. package/dist/agent-operations/stair-plan-footprint.js +50 -0
  218. package/dist/agent-operations/types.d.ts +10 -5
  219. package/dist/agent-operations/types.d.ts.map +1 -1
  220. package/dist/agent-operations/units.d.ts +26 -0
  221. package/dist/agent-operations/units.d.ts.map +1 -0
  222. package/dist/agent-operations/units.js +110 -0
  223. package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
  224. package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
  225. package/dist/agent-operations/unreachable-rooms-check.js +35 -0
  226. package/dist/agent-operations/usage-checks.d.ts +2 -0
  227. package/dist/agent-operations/usage-checks.d.ts.map +1 -0
  228. package/dist/agent-operations/usage-checks.js +12 -0
  229. package/dist/agent-operations/verify-scene.d.ts +8 -11
  230. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  231. package/dist/agent-operations/verify-scene.js +55 -11
  232. package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
  233. package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
  234. package/dist/agent-operations/wall-face-defaults.js +229 -0
  235. package/dist/agent-operations/wall-joins.d.ts +119 -0
  236. package/dist/agent-operations/wall-joins.d.ts.map +1 -0
  237. package/dist/agent-operations/wall-joins.js +308 -0
  238. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
  239. package/dist/agent-operations/wall-object-observations.js +4 -6
  240. package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
  241. package/dist/agent-operations/wall-skirting.js +2 -0
  242. package/dist/agent-operations/wall-type.d.ts +49 -0
  243. package/dist/agent-operations/wall-type.d.ts.map +1 -0
  244. package/dist/agent-operations/wall-type.js +31 -0
  245. package/dist/agent-operations/zone-coverage.d.ts +85 -0
  246. package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
  247. package/dist/agent-operations/zone-coverage.js +208 -0
  248. package/dist/agent-tools/add-object.d.ts +31 -0
  249. package/dist/agent-tools/add-object.d.ts.map +1 -1
  250. package/dist/agent-tools/add-object.js +44 -7
  251. package/dist/agent-tools/assets.d.ts +4 -0
  252. package/dist/agent-tools/assets.d.ts.map +1 -1
  253. package/dist/agent-tools/assets.js +11 -1
  254. package/dist/agent-tools/author-scene.d.ts +810 -15
  255. package/dist/agent-tools/author-scene.d.ts.map +1 -1
  256. package/dist/agent-tools/author-scene.js +275 -34
  257. package/dist/agent-tools/batch.d.ts +1 -1
  258. package/dist/agent-tools/batch.d.ts.map +1 -1
  259. package/dist/agent-tools/batch.js +5 -1
  260. package/dist/agent-tools/checkpoints.js +1 -1
  261. package/dist/agent-tools/columns.d.ts +14 -0
  262. package/dist/agent-tools/columns.d.ts.map +1 -1
  263. package/dist/agent-tools/columns.js +14 -2
  264. package/dist/agent-tools/contract.d.ts +10 -0
  265. package/dist/agent-tools/contract.d.ts.map +1 -1
  266. package/dist/agent-tools/contract.js +5 -1
  267. package/dist/agent-tools/corner-window.d.ts +1 -0
  268. package/dist/agent-tools/corner-window.d.ts.map +1 -1
  269. package/dist/agent-tools/corner-window.js +1 -1
  270. package/dist/agent-tools/create-room.d.ts +85 -0
  271. package/dist/agent-tools/create-room.d.ts.map +1 -1
  272. package/dist/agent-tools/create-room.js +8 -1
  273. package/dist/agent-tools/design-brief.d.ts +513 -7
  274. package/dist/agent-tools/design-brief.d.ts.map +1 -1
  275. package/dist/agent-tools/design-brief.js +192 -14
  276. package/dist/agent-tools/designs.js +1 -1
  277. package/dist/agent-tools/find-by-type.js +1 -1
  278. package/dist/agent-tools/index.d.ts +658 -10
  279. package/dist/agent-tools/index.d.ts.map +1 -1
  280. package/dist/agent-tools/index.js +9 -1
  281. package/dist/agent-tools/levels.js +4 -4
  282. package/dist/agent-tools/move-duplicate.d.ts +65 -0
  283. package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
  284. package/dist/agent-tools/move-duplicate.js +68 -0
  285. package/dist/agent-tools/paint.d.ts +6 -0
  286. package/dist/agent-tools/paint.d.ts.map +1 -1
  287. package/dist/agent-tools/paint.js +7 -3
  288. package/dist/agent-tools/photo-elevation.js +1 -1
  289. package/dist/agent-tools/project-files.d.ts +2 -2
  290. package/dist/agent-tools/project-files.d.ts.map +1 -1
  291. package/dist/agent-tools/project-files.js +1 -1
  292. package/dist/agent-tools/refusal.d.ts +9 -1
  293. package/dist/agent-tools/refusal.d.ts.map +1 -1
  294. package/dist/agent-tools/refusal.js +5 -1
  295. package/dist/agent-tools/roofs.js +1 -1
  296. package/dist/agent-tools/room-structure.d.ts +60 -0
  297. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  298. package/dist/agent-tools/room-structure.js +20 -1
  299. package/dist/agent-tools/search-materials.d.ts +1 -0
  300. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  301. package/dist/agent-tools/site.js +1 -1
  302. package/dist/agent-tools/stairs.js +1 -1
  303. package/dist/agent-tools/units.d.ts +84 -0
  304. package/dist/agent-tools/units.d.ts.map +1 -0
  305. package/dist/agent-tools/units.js +54 -0
  306. package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
  307. package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
  308. package/dist/agent-tools/verify-scene-usage.js +146 -0
  309. package/dist/agent-tools/verify-scene.d.ts +12 -1
  310. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  311. package/dist/agent-tools/verify-scene.js +183 -3
  312. package/dist/agent-tools/view-scene.d.ts +3 -0
  313. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  314. package/dist/agent-tools/view-scene.js +4 -1
  315. package/dist/agent-tools/wall-openings.d.ts +121 -2
  316. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  317. package/dist/agent-tools/wall-openings.js +123 -18
  318. package/dist/agent-tools/walls.d.ts +30 -0
  319. package/dist/agent-tools/walls.d.ts.map +1 -1
  320. package/dist/agent-tools/walls.js +54 -2
  321. package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
  322. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  323. package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
  324. package/dist/building/code-profile.d.ts +231 -0
  325. package/dist/building/code-profile.d.ts.map +1 -0
  326. package/dist/building/code-profile.js +208 -0
  327. package/dist/building/corner-window.d.ts +2 -2
  328. package/dist/building/corner-window.d.ts.map +1 -1
  329. package/dist/building/corner-window.js +11 -2
  330. package/dist/building/door-types.d.ts +1 -0
  331. package/dist/building/door-types.d.ts.map +1 -1
  332. package/dist/building/door-types.js +2 -0
  333. package/dist/building/floor-item-fit.d.ts.map +1 -1
  334. package/dist/building/floor-item-fit.js +2 -4
  335. package/dist/building/ground-level.d.ts +1 -3
  336. package/dist/building/ground-level.d.ts.map +1 -1
  337. package/dist/building/ground-level.js +3 -5
  338. package/dist/building/index.d.ts +2 -0
  339. package/dist/building/index.d.ts.map +1 -1
  340. package/dist/building/index.js +2 -0
  341. package/dist/building/level-duplication.d.ts +5951 -4351
  342. package/dist/building/level-duplication.d.ts.map +1 -1
  343. package/dist/building/level-insertion.d.ts +1 -1
  344. package/dist/building/level-wall-copy.d.ts +24 -0
  345. package/dist/building/level-wall-copy.d.ts.map +1 -0
  346. package/dist/building/level-wall-copy.js +53 -0
  347. package/dist/building/merge-windows.d.ts.map +1 -1
  348. package/dist/building/merge-windows.js +1 -0
  349. package/dist/building/opening-style-presets.d.ts +2 -0
  350. package/dist/building/opening-style-presets.d.ts.map +1 -1
  351. package/dist/building/opening-style-presets.js +26 -5
  352. package/dist/building/room-use.d.ts +26 -0
  353. package/dist/building/room-use.d.ts.map +1 -0
  354. package/dist/building/room-use.js +102 -0
  355. package/dist/building/wall-openings.d.ts +115 -7
  356. package/dist/building/wall-openings.d.ts.map +1 -1
  357. package/dist/building/wall-openings.js +121 -29
  358. package/dist/building/window-types.d.ts +1 -0
  359. package/dist/building/window-types.d.ts.map +1 -1
  360. package/dist/building/window-types.js +3 -0
  361. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
  362. package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
  363. package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
  364. package/dist/commands/structure/attached-walls.d.ts +16 -0
  365. package/dist/commands/structure/attached-walls.d.ts.map +1 -0
  366. package/dist/commands/structure/attached-walls.js +53 -0
  367. package/dist/commands/structure/index.d.ts +3 -0
  368. package/dist/commands/structure/index.d.ts.map +1 -1
  369. package/dist/commands/structure/index.js +3 -0
  370. package/dist/commands/structure/move-separators.d.ts +62 -0
  371. package/dist/commands/structure/move-separators.d.ts.map +1 -0
  372. package/dist/commands/structure/move-separators.js +346 -0
  373. package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
  374. package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
  375. package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
  376. package/dist/commands/structure/set-wall-geometry.js +44 -11
  377. package/dist/commands/structure/set-zone-intent.d.ts +26 -0
  378. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  379. package/dist/commands/structure/set-zone-intent.js +107 -2
  380. package/dist/commands/structure/shared.d.ts +888 -88
  381. package/dist/commands/structure/shared.d.ts.map +1 -1
  382. package/dist/commands/structure/wall-overlap.d.ts +45 -0
  383. package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
  384. package/dist/commands/structure/wall-overlap.js +289 -0
  385. package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
  386. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  387. package/dist/contracts/reference-discovery.d.ts +2 -2
  388. package/dist/contracts/reference-discovery.d.ts.map +1 -1
  389. package/dist/contracts/reference-discovery.js +5 -3
  390. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  391. package/dist/contracts/reference-inventory.js +75 -24
  392. package/dist/events/bus.d.ts +15 -2
  393. package/dist/events/bus.d.ts.map +1 -1
  394. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
  395. package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
  396. package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
  397. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  398. package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
  399. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
  400. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  401. package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
  402. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
  403. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  404. package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
  405. package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
  406. package/dist/i18n/format.d.ts +41 -0
  407. package/dist/i18n/format.d.ts.map +1 -0
  408. package/dist/i18n/format.js +124 -0
  409. package/dist/i18n/index.d.ts +5 -0
  410. package/dist/i18n/index.d.ts.map +1 -0
  411. package/dist/i18n/index.js +3 -0
  412. package/dist/i18n/registry.d.ts +78 -0
  413. package/dist/i18n/registry.d.ts.map +1 -0
  414. package/dist/i18n/registry.js +252 -0
  415. package/dist/i18n/use-translate.d.ts +16 -0
  416. package/dist/i18n/use-translate.d.ts.map +1 -0
  417. package/dist/i18n/use-translate.js +23 -0
  418. package/dist/index.d.ts +32 -16
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +31 -15
  421. package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
  422. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  423. package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
  424. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  425. package/dist/lib/beam.d.ts +137 -0
  426. package/dist/lib/beam.d.ts.map +1 -0
  427. package/dist/lib/beam.js +297 -0
  428. package/dist/lib/below-grade-footprints.d.ts +13 -5
  429. package/dist/lib/below-grade-footprints.d.ts.map +1 -1
  430. package/dist/lib/below-grade-footprints.js +53 -10
  431. package/dist/lib/build-up.d.ts +89 -0
  432. package/dist/lib/build-up.d.ts.map +1 -0
  433. package/dist/lib/build-up.js +216 -0
  434. package/dist/lib/corner-pair.d.ts +205 -4
  435. package/dist/lib/corner-pair.d.ts.map +1 -1
  436. package/dist/lib/deck-boards.d.ts +80 -0
  437. package/dist/lib/deck-boards.d.ts.map +1 -0
  438. package/dist/lib/deck-boards.js +184 -0
  439. package/dist/lib/deck-framing.d.ts +150 -0
  440. package/dist/lib/deck-framing.d.ts.map +1 -0
  441. package/dist/lib/deck-framing.js +515 -0
  442. package/dist/lib/deepest-drawn.d.ts +3 -6
  443. package/dist/lib/deepest-drawn.d.ts.map +1 -1
  444. package/dist/lib/deepest-drawn.js +4 -8
  445. package/dist/lib/door-opening.d.ts +19 -0
  446. package/dist/lib/door-opening.d.ts.map +1 -0
  447. package/dist/lib/door-opening.js +27 -0
  448. package/dist/lib/door-operation.d.ts +2 -0
  449. package/dist/lib/door-operation.d.ts.map +1 -1
  450. package/dist/lib/door-operation.js +4 -0
  451. package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
  452. package/dist/lib/exterior-wall-loops.js +2 -1
  453. package/dist/lib/finish-script.d.ts +5 -5
  454. package/dist/lib/finish-script.d.ts.map +1 -1
  455. package/dist/lib/finish-script.js +12 -5
  456. package/dist/lib/floor-footprint-name.d.ts +17 -0
  457. package/dist/lib/floor-footprint-name.d.ts.map +1 -1
  458. package/dist/lib/floor-footprint-name.js +17 -4
  459. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  460. package/dist/lib/floor-intent-changes.js +60 -35
  461. package/dist/lib/floor-opening-footprints.d.ts +1 -1
  462. package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
  463. package/dist/lib/floor-opening-footprints.js +10 -4
  464. package/dist/lib/floor-plate-paint.d.ts +2 -0
  465. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  466. package/dist/lib/floor-plate-paint.js +12 -0
  467. package/dist/lib/floor-plates.d.ts +250 -0
  468. package/dist/lib/floor-plates.d.ts.map +1 -1
  469. package/dist/lib/floor-plates.js +43 -4
  470. package/dist/lib/floor-script.d.ts +35 -6
  471. package/dist/lib/floor-script.d.ts.map +1 -1
  472. package/dist/lib/floor-script.js +96 -16
  473. package/dist/lib/foundation-construction.d.ts +4 -13
  474. package/dist/lib/foundation-construction.d.ts.map +1 -1
  475. package/dist/lib/foundation-construction.js +4 -14
  476. package/dist/lib/foundation-standard.d.ts +2 -3
  477. package/dist/lib/foundation-standard.d.ts.map +1 -1
  478. package/dist/lib/foundation-standard.js +2 -3
  479. package/dist/lib/foundation-wall.d.ts +1 -2
  480. package/dist/lib/foundation-wall.d.ts.map +1 -1
  481. package/dist/lib/foundation-wall.js +1 -2
  482. package/dist/lib/framing-post.d.ts +91 -0
  483. package/dist/lib/framing-post.d.ts.map +1 -0
  484. package/dist/lib/framing-post.js +174 -0
  485. package/dist/lib/geometry-script-node.d.ts +11 -0
  486. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  487. package/dist/lib/geometry-script-node.js +35 -0
  488. package/dist/lib/grade-standing.d.ts +16 -2
  489. package/dist/lib/grade-standing.d.ts.map +1 -1
  490. package/dist/lib/grade-standing.js +129 -9
  491. package/dist/lib/ground-seat.d.ts +2 -22
  492. package/dist/lib/ground-seat.d.ts.map +1 -1
  493. package/dist/lib/ground-seat.js +2 -17
  494. package/dist/lib/ground-window.d.ts +2 -1
  495. package/dist/lib/ground-window.d.ts.map +1 -1
  496. package/dist/lib/ground-window.js +5 -2
  497. package/dist/lib/level-footprints.d.ts +2 -0
  498. package/dist/lib/level-footprints.d.ts.map +1 -1
  499. package/dist/lib/level-footprints.js +7 -0
  500. package/dist/lib/opening-casing.d.ts +67 -0
  501. package/dist/lib/opening-casing.d.ts.map +1 -0
  502. package/dist/lib/opening-casing.js +131 -0
  503. package/dist/lib/opening-exterior-face.d.ts +6 -0
  504. package/dist/lib/opening-exterior-face.d.ts.map +1 -0
  505. package/dist/lib/opening-exterior-face.js +15 -0
  506. package/dist/lib/opening-floor-datum.d.ts +11 -5
  507. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  508. package/dist/lib/opening-floor-datum.js +38 -6
  509. package/dist/lib/opening-frame-depth.d.ts +18 -0
  510. package/dist/lib/opening-frame-depth.d.ts.map +1 -0
  511. package/dist/lib/opening-frame-depth.js +22 -0
  512. package/dist/lib/outdoor-room.d.ts +32 -0
  513. package/dist/lib/outdoor-room.d.ts.map +1 -0
  514. package/dist/lib/outdoor-room.js +66 -0
  515. package/dist/lib/plate-surface.d.ts +8 -0
  516. package/dist/lib/plate-surface.d.ts.map +1 -1
  517. package/dist/lib/plate-surface.js +53 -3
  518. package/dist/lib/porch-framing-sync.d.ts +46 -0
  519. package/dist/lib/porch-framing-sync.d.ts.map +1 -0
  520. package/dist/lib/porch-framing-sync.js +206 -0
  521. package/dist/lib/porch-framing.d.ts +44 -0
  522. package/dist/lib/porch-framing.d.ts.map +1 -0
  523. package/dist/lib/porch-framing.js +159 -0
  524. package/dist/lib/railing-rooms.d.ts +13 -0
  525. package/dist/lib/railing-rooms.d.ts.map +1 -0
  526. package/dist/lib/railing-rooms.js +37 -0
  527. package/dist/lib/roof-eave.d.ts +135 -0
  528. package/dist/lib/roof-eave.d.ts.map +1 -0
  529. package/dist/lib/roof-eave.js +186 -0
  530. package/dist/lib/room-floor-plate.d.ts +3 -1
  531. package/dist/lib/room-floor-plate.d.ts.map +1 -1
  532. package/dist/lib/room-floor-plate.js +7 -0
  533. package/dist/lib/space-detection.d.ts +13 -0
  534. package/dist/lib/space-detection.d.ts.map +1 -1
  535. package/dist/lib/space-detection.js +112 -24
  536. package/dist/lib/structure-kernel.d.ts +22 -9
  537. package/dist/lib/structure-kernel.d.ts.map +1 -1
  538. package/dist/lib/structure-kernel.js +146 -28
  539. package/dist/lib/structure-reconcile.d.ts +1 -1
  540. package/dist/lib/structure-reconcile.d.ts.map +1 -1
  541. package/dist/lib/structure-reconcile.js +7 -4
  542. package/dist/lib/surface-intent.d.ts +10 -0
  543. package/dist/lib/surface-intent.d.ts.map +1 -0
  544. package/dist/lib/surface-intent.js +18 -0
  545. package/dist/lib/terrain-source.d.ts.map +1 -1
  546. package/dist/lib/terrain-source.js +2 -1
  547. package/dist/lib/wall-face-script.d.ts.map +1 -1
  548. package/dist/lib/wall-face-script.js +5 -2
  549. package/dist/material-kinds.d.ts +1 -1
  550. package/dist/material-kinds.d.ts.map +1 -1
  551. package/dist/material-kinds.js +1 -0
  552. package/dist/material-library.d.ts +15 -0
  553. package/dist/material-library.d.ts.map +1 -1
  554. package/dist/material-library.js +458 -59
  555. package/dist/node-slots/door.d.ts +3 -4
  556. package/dist/node-slots/door.d.ts.map +1 -1
  557. package/dist/node-slots/door.js +4 -3
  558. package/dist/node-slots/wall.d.ts.map +1 -1
  559. package/dist/node-slots/wall.js +21 -3
  560. package/dist/node-slots/window.d.ts +2 -2
  561. package/dist/node-slots/window.d.ts.map +1 -1
  562. package/dist/node-slots/window.js +6 -1
  563. package/dist/procedural-items/design.d.ts +8 -0
  564. package/dist/procedural-items/design.d.ts.map +1 -1
  565. package/dist/procedural-items/design.js +169 -21
  566. package/dist/procedural-items/motion-controller.d.ts +2 -0
  567. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  568. package/dist/procedural-items/motion-controller.js +2 -1
  569. package/dist/registry/index.d.ts +2 -2
  570. package/dist/registry/index.d.ts.map +1 -1
  571. package/dist/registry/index.js +1 -1
  572. package/dist/registry/mechanism.d.ts +4 -1
  573. package/dist/registry/mechanism.d.ts.map +1 -1
  574. package/dist/registry/mechanism.js +10 -0
  575. package/dist/registry/types.d.ts +65 -23
  576. package/dist/registry/types.d.ts.map +1 -1
  577. package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
  578. package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
  579. package/dist/runtime/__fixtures__/live-scene.js +64 -0
  580. package/dist/runtime/apply.d.ts +42 -0
  581. package/dist/runtime/apply.d.ts.map +1 -0
  582. package/dist/runtime/apply.js +274 -0
  583. package/dist/runtime/dependencies.d.ts +97 -0
  584. package/dist/runtime/dependencies.d.ts.map +1 -0
  585. package/dist/runtime/dependencies.js +42 -0
  586. package/dist/runtime/ids.d.ts +11 -0
  587. package/dist/runtime/ids.d.ts.map +1 -0
  588. package/dist/runtime/ids.js +80 -0
  589. package/dist/runtime/index.d.ts +14 -0
  590. package/dist/runtime/index.d.ts.map +1 -0
  591. package/dist/runtime/index.js +11 -0
  592. package/dist/runtime/node-queries.d.ts +16 -0
  593. package/dist/runtime/node-queries.d.ts.map +1 -0
  594. package/dist/runtime/node-queries.js +30 -0
  595. package/dist/runtime/patch.d.ts +26 -0
  596. package/dist/runtime/patch.d.ts.map +1 -0
  597. package/dist/runtime/patch.js +165 -0
  598. package/dist/runtime/reader.d.ts +104 -0
  599. package/dist/runtime/reader.d.ts.map +1 -0
  600. package/dist/runtime/reader.js +455 -0
  601. package/dist/runtime/scene-runtime.d.ts +112 -0
  602. package/dist/runtime/scene-runtime.d.ts.map +1 -0
  603. package/dist/runtime/scene-runtime.js +302 -0
  604. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
  605. package/dist/schema/__fixtures__/node-fixtures.js +1 -0
  606. package/dist/schema/assembly.d.ts +3 -0
  607. package/dist/schema/assembly.d.ts.map +1 -1
  608. package/dist/schema/assembly.js +13 -0
  609. package/dist/schema/asset-url.d.ts +37 -2
  610. package/dist/schema/asset-url.d.ts.map +1 -1
  611. package/dist/schema/asset-url.js +80 -11
  612. package/dist/schema/base.d.ts +8 -0
  613. package/dist/schema/base.d.ts.map +1 -1
  614. package/dist/schema/base.js +19 -1
  615. package/dist/schema/build-up.d.ts +247 -0
  616. package/dist/schema/build-up.d.ts.map +1 -0
  617. package/dist/schema/build-up.js +83 -0
  618. package/dist/schema/geometry-source.d.ts +80 -0
  619. package/dist/schema/geometry-source.d.ts.map +1 -1
  620. package/dist/schema/geometry-source.js +38 -0
  621. package/dist/schema/index.d.ts +12 -7
  622. package/dist/schema/index.d.ts.map +1 -1
  623. package/dist/schema/index.js +12 -6
  624. package/dist/schema/material.d.ts +5 -0
  625. package/dist/schema/material.d.ts.map +1 -1
  626. package/dist/schema/material.js +6 -0
  627. package/dist/schema/nodes/beam.d.ts +264 -0
  628. package/dist/schema/nodes/beam.d.ts.map +1 -0
  629. package/dist/schema/nodes/beam.js +139 -0
  630. package/dist/schema/nodes/box-vent.d.ts +5 -0
  631. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  632. package/dist/schema/nodes/cabinet.d.ts +10 -0
  633. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  634. package/dist/schema/nodes/ceiling.d.ts +48 -0
  635. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  636. package/dist/schema/nodes/ceiling.js +5 -0
  637. package/dist/schema/nodes/chimney.d.ts +10 -0
  638. package/dist/schema/nodes/chimney.d.ts.map +1 -1
  639. package/dist/schema/nodes/column.d.ts +42 -0
  640. package/dist/schema/nodes/column.d.ts.map +1 -1
  641. package/dist/schema/nodes/column.js +11 -1
  642. package/dist/schema/nodes/cupola.d.ts +5 -0
  643. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  644. package/dist/schema/nodes/door.d.ts +54 -3
  645. package/dist/schema/nodes/door.d.ts.map +1 -1
  646. package/dist/schema/nodes/door.js +41 -7
  647. package/dist/schema/nodes/dormer.d.ts +20 -0
  648. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  649. package/dist/schema/nodes/downspout.d.ts +5 -0
  650. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  651. package/dist/schema/nodes/elevator.d.ts +5 -0
  652. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  653. package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
  654. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  655. package/dist/schema/nodes/fence.d.ts +5 -0
  656. package/dist/schema/nodes/fence.d.ts.map +1 -1
  657. package/dist/schema/nodes/guide.d.ts +14 -0
  658. package/dist/schema/nodes/guide.d.ts.map +1 -1
  659. package/dist/schema/nodes/guide.js +2 -0
  660. package/dist/schema/nodes/gutter.d.ts +5 -0
  661. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  662. package/dist/schema/nodes/item.d.ts +71 -0
  663. package/dist/schema/nodes/item.d.ts.map +1 -1
  664. package/dist/schema/nodes/item.js +5 -1
  665. package/dist/schema/nodes/level.d.ts +1 -1
  666. package/dist/schema/nodes/level.d.ts.map +1 -1
  667. package/dist/schema/nodes/opening-types.d.ts +13 -0
  668. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  669. package/dist/schema/nodes/opening-types.js +8 -1
  670. package/dist/schema/nodes/railing-wall.d.ts +112 -0
  671. package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
  672. package/dist/schema/nodes/railing-wall.js +160 -0
  673. package/dist/schema/nodes/ridge-vent.d.ts +5 -0
  674. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  675. package/dist/schema/nodes/roof-segment.d.ts +224 -1
  676. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  677. package/dist/schema/nodes/roof-segment.js +57 -10
  678. package/dist/schema/nodes/roof-types.d.ts +11 -0
  679. package/dist/schema/nodes/roof-types.d.ts.map +1 -1
  680. package/dist/schema/nodes/roof-types.js +6 -0
  681. package/dist/schema/nodes/roof.d.ts +60 -0
  682. package/dist/schema/nodes/roof.d.ts.map +1 -1
  683. package/dist/schema/nodes/roof.js +4 -0
  684. package/dist/schema/nodes/shelf.d.ts +5 -0
  685. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  686. package/dist/schema/nodes/site.d.ts +80 -0
  687. package/dist/schema/nodes/site.d.ts.map +1 -1
  688. package/dist/schema/nodes/site.js +7 -0
  689. package/dist/schema/nodes/skylight.d.ts +10 -0
  690. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  691. package/dist/schema/nodes/slab.d.ts +137 -0
  692. package/dist/schema/nodes/slab.d.ts.map +1 -1
  693. package/dist/schema/nodes/slab.js +3 -0
  694. package/dist/schema/nodes/solar-panel.d.ts +10 -0
  695. package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
  696. package/dist/schema/nodes/stair-segment.d.ts +5 -0
  697. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  698. package/dist/schema/nodes/stair-structure.d.ts +69 -0
  699. package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
  700. package/dist/schema/nodes/stair-structure.js +39 -0
  701. package/dist/schema/nodes/stair.d.ts +46 -0
  702. package/dist/schema/nodes/stair.d.ts.map +1 -1
  703. package/dist/schema/nodes/stair.js +3 -0
  704. package/dist/schema/nodes/turbine-vent.d.ts +5 -0
  705. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  706. package/dist/schema/nodes/wall.d.ts +135 -2
  707. package/dist/schema/nodes/wall.d.ts.map +1 -1
  708. package/dist/schema/nodes/wall.js +42 -6
  709. package/dist/schema/nodes/window.d.ts +66 -1
  710. package/dist/schema/nodes/window.d.ts.map +1 -1
  711. package/dist/schema/nodes/window.js +50 -5
  712. package/dist/schema/nodes/zone.d.ts +68 -0
  713. package/dist/schema/nodes/zone.d.ts.map +1 -1
  714. package/dist/schema/nodes/zone.js +32 -0
  715. package/dist/schema/scene-material.d.ts +5 -0
  716. package/dist/schema/scene-material.d.ts.map +1 -1
  717. package/dist/schema/types.d.ts +1079 -4
  718. package/dist/schema/types.d.ts.map +1 -1
  719. package/dist/schema/types.js +2 -0
  720. package/dist/schema/wall-type.d.ts +95 -0
  721. package/dist/schema/wall-type.d.ts.map +1 -0
  722. package/dist/schema/wall-type.js +32 -0
  723. package/dist/services/roof-bearing.d.ts.map +1 -1
  724. package/dist/services/roof-bearing.js +6 -3
  725. package/dist/services/roof-level.d.ts.map +1 -1
  726. package/dist/services/roof-level.js +4 -3
  727. package/dist/services/roof-move.d.ts.map +1 -1
  728. package/dist/services/roof-move.js +13 -7
  729. package/dist/services/storey.d.ts.map +1 -1
  730. package/dist/services/storey.js +13 -8
  731. package/dist/spatial/usage-field/beds.d.ts +51 -0
  732. package/dist/spatial/usage-field/beds.d.ts.map +1 -0
  733. package/dist/spatial/usage-field/beds.js +346 -0
  734. package/dist/spatial/usage-field/blocked.d.ts +28 -0
  735. package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
  736. package/dist/spatial/usage-field/blocked.js +185 -0
  737. package/dist/spatial/usage-field/boxes.d.ts +17 -0
  738. package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
  739. package/dist/spatial/usage-field/boxes.js +82 -0
  740. package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
  741. package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
  742. package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
  743. package/dist/spatial/usage-field/catalogue.d.ts +6 -0
  744. package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
  745. package/dist/spatial/usage-field/catalogue.js +11 -0
  746. package/dist/spatial/usage-field/clash.d.ts +40 -0
  747. package/dist/spatial/usage-field/clash.d.ts.map +1 -0
  748. package/dist/spatial/usage-field/clash.js +187 -0
  749. package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
  750. package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
  751. package/dist/spatial/usage-field/door-stairs.js +129 -0
  752. package/dist/spatial/usage-field/entry-way.d.ts +14 -0
  753. package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
  754. package/dist/spatial/usage-field/entry-way.js +219 -0
  755. package/dist/spatial/usage-field/fences.d.ts +18 -0
  756. package/dist/spatial/usage-field/fences.d.ts.map +1 -0
  757. package/dist/spatial/usage-field/fences.js +253 -0
  758. package/dist/spatial/usage-field/field.d.ts +44 -0
  759. package/dist/spatial/usage-field/field.d.ts.map +1 -0
  760. package/dist/spatial/usage-field/field.js +145 -0
  761. package/dist/spatial/usage-field/findings.d.ts +76 -0
  762. package/dist/spatial/usage-field/findings.d.ts.map +1 -0
  763. package/dist/spatial/usage-field/findings.js +252 -0
  764. package/dist/spatial/usage-field/fixtures.d.ts +18 -0
  765. package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
  766. package/dist/spatial/usage-field/fixtures.js +160 -0
  767. package/dist/spatial/usage-field/flag.d.ts +10 -0
  768. package/dist/spatial/usage-field/flag.d.ts.map +1 -0
  769. package/dist/spatial/usage-field/flag.js +12 -0
  770. package/dist/spatial/usage-field/floors.d.ts +13 -0
  771. package/dist/spatial/usage-field/floors.d.ts.map +1 -0
  772. package/dist/spatial/usage-field/floors.js +36 -0
  773. package/dist/spatial/usage-field/index.d.ts +7 -0
  774. package/dist/spatial/usage-field/index.d.ts.map +1 -0
  775. package/dist/spatial/usage-field/index.js +5 -0
  776. package/dist/spatial/usage-field/items.d.ts +38 -0
  777. package/dist/spatial/usage-field/items.d.ts.map +1 -0
  778. package/dist/spatial/usage-field/items.js +261 -0
  779. package/dist/spatial/usage-field/labels.d.ts +8 -0
  780. package/dist/spatial/usage-field/labels.d.ts.map +1 -0
  781. package/dist/spatial/usage-field/labels.js +14 -0
  782. package/dist/spatial/usage-field/level-field.d.ts +47 -0
  783. package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
  784. package/dist/spatial/usage-field/level-field.js +96 -0
  785. package/dist/spatial/usage-field/measure.d.ts +324 -0
  786. package/dist/spatial/usage-field/measure.d.ts.map +1 -0
  787. package/dist/spatial/usage-field/measure.js +458 -0
  788. package/dist/spatial/usage-field/obstacles.d.ts +63 -0
  789. package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
  790. package/dist/spatial/usage-field/obstacles.js +215 -0
  791. package/dist/spatial/usage-field/openings.d.ts +12 -0
  792. package/dist/spatial/usage-field/openings.d.ts.map +1 -0
  793. package/dist/spatial/usage-field/openings.js +162 -0
  794. package/dist/spatial/usage-field/path.d.ts +48 -0
  795. package/dist/spatial/usage-field/path.d.ts.map +1 -0
  796. package/dist/spatial/usage-field/path.js +354 -0
  797. package/dist/spatial/usage-field/pieces.d.ts +27 -0
  798. package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
  799. package/dist/spatial/usage-field/pieces.js +89 -0
  800. package/dist/spatial/usage-field/shapes.d.ts +18 -0
  801. package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
  802. package/dist/spatial/usage-field/shapes.js +92 -0
  803. package/dist/spatial/usage-field/stairs.d.ts +23 -0
  804. package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
  805. package/dist/spatial/usage-field/stairs.js +163 -0
  806. package/dist/spatial/usage-field/support.d.ts +24 -0
  807. package/dist/spatial/usage-field/support.d.ts.map +1 -0
  808. package/dist/spatial/usage-field/support.js +46 -0
  809. package/dist/spatial/usage-field/swings.d.ts +846 -0
  810. package/dist/spatial/usage-field/swings.d.ts.map +1 -0
  811. package/dist/spatial/usage-field/swings.js +427 -0
  812. package/dist/spatial/usage-field/types.d.ts +65 -0
  813. package/dist/spatial/usage-field/types.d.ts.map +1 -0
  814. package/dist/spatial/usage-field/types.js +1 -0
  815. package/dist/spatial/usage-field/walls.d.ts +1057 -0
  816. package/dist/spatial/usage-field/walls.d.ts.map +1 -0
  817. package/dist/spatial/usage-field/walls.js +166 -0
  818. package/dist/spatial/usage-field/way-in.d.ts +26 -0
  819. package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
  820. package/dist/spatial/usage-field/way-in.js +113 -0
  821. package/dist/store/actions/node-actions.d.ts +2124 -1322
  822. package/dist/store/actions/node-actions.d.ts.map +1 -1
  823. package/dist/store/actions/node-actions.js +42 -16
  824. package/dist/store/derived-node-guard.d.ts +10 -2
  825. package/dist/store/derived-node-guard.d.ts.map +1 -1
  826. package/dist/store/derived-node-guard.js +31 -11
  827. package/dist/store/document-settling.d.ts +9 -0
  828. package/dist/store/document-settling.d.ts.map +1 -0
  829. package/dist/store/document-settling.js +22 -0
  830. package/dist/store/history-control.d.ts +19 -10
  831. package/dist/store/history-control.d.ts.map +1 -1
  832. package/dist/store/history-control.js +176 -127
  833. package/dist/store/history-drafts.d.ts.map +1 -1
  834. package/dist/store/history-drafts.js +21 -17
  835. package/dist/store/live-previews.d.ts +9 -0
  836. package/dist/store/live-previews.d.ts.map +1 -0
  837. package/dist/store/live-previews.js +19 -0
  838. package/dist/store/scene-annotations.d.ts +6751 -5151
  839. package/dist/store/scene-annotations.d.ts.map +1 -1
  840. package/dist/store/scene-environment.d.ts +33 -0
  841. package/dist/store/scene-environment.d.ts.map +1 -0
  842. package/dist/store/scene-environment.js +54 -0
  843. package/dist/store/scene-hydration.d.ts.map +1 -1
  844. package/dist/store/scene-hydration.js +41 -30
  845. package/dist/store/use-interactive.d.ts +9 -3
  846. package/dist/store/use-interactive.d.ts.map +1 -1
  847. package/dist/store/use-interactive.js +43 -11
  848. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  849. package/dist/store/use-live-node-overrides.js +3 -0
  850. package/dist/store/use-scene.d.ts +25 -0
  851. package/dist/store/use-scene.d.ts.map +1 -1
  852. package/dist/store/use-scene.js +408 -336
  853. package/dist/systems/document-reconcile.d.ts +40 -0
  854. package/dist/systems/document-reconcile.d.ts.map +1 -0
  855. package/dist/systems/document-reconcile.js +159 -0
  856. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  857. package/dist/systems/elevator/elevator-opening-system.js +9 -24
  858. package/dist/systems/fence/guard-layout.d.ts +69 -0
  859. package/dist/systems/fence/guard-layout.d.ts.map +1 -0
  860. package/dist/systems/fence/guard-layout.js +194 -0
  861. package/dist/systems/owned-floor-openings.d.ts +13 -1
  862. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  863. package/dist/systems/owned-floor-openings.js +58 -2
  864. package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
  865. package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
  866. package/dist/systems/reconcile-owned-floor-openings.js +4 -4
  867. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  868. package/dist/systems/roof/roof-elevation-system.js +8 -26
  869. package/dist/systems/roof/roof-elevation.d.ts +16 -1
  870. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  871. package/dist/systems/roof/roof-elevation.js +85 -4
  872. package/dist/systems/roof/roof-footprint.d.ts +42 -1
  873. package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
  874. package/dist/systems/roof/roof-footprint.js +160 -4
  875. package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
  876. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  877. package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
  878. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  879. package/dist/systems/stair/stair-clearance.d.ts +7 -0
  880. package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
  881. package/dist/systems/stair/stair-clearance.js +31 -11
  882. package/dist/systems/stair/stair-construction.d.ts +8 -3
  883. package/dist/systems/stair/stair-construction.d.ts.map +1 -1
  884. package/dist/systems/stair/stair-construction.js +55 -4
  885. package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
  886. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  887. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  888. package/dist/systems/stair/stair-opening-system.js +18 -34
  889. package/dist/systems/stair/stair-presets.d.ts +36 -0
  890. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  891. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  892. package/dist/systems/stair/stair-rise-query.js +3 -2
  893. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  894. package/dist/systems/stair/stair-rise.js +6 -0
  895. package/dist/systems/stair/stair-sizing.d.ts +42 -11
  896. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  897. package/dist/systems/stair/stair-sizing.js +10 -1
  898. package/dist/systems/stair/stair-structure.d.ts +277 -0
  899. package/dist/systems/stair/stair-structure.d.ts.map +1 -0
  900. package/dist/systems/stair/stair-structure.js +496 -0
  901. package/dist/systems/wall/wall-assembly.d.ts +84 -6
  902. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  903. package/dist/systems/wall/wall-assembly.js +204 -5
  904. package/dist/systems/wall/wall-finish.d.ts +38 -2
  905. package/dist/systems/wall/wall-finish.d.ts.map +1 -1
  906. package/dist/systems/wall/wall-finish.js +70 -2
  907. package/dist/systems/wall/wall-footprint.js +2 -2
  908. package/dist/systems/wall/wall-merge.d.ts.map +1 -1
  909. package/dist/systems/wall/wall-merge.js +28 -7
  910. package/dist/systems/wall/wall-mitering.d.ts +1 -0
  911. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  912. package/dist/systems/wall/wall-mitering.js +152 -52
  913. package/dist/systems/wall/wall-move.d.ts +23 -6
  914. package/dist/systems/wall/wall-move.d.ts.map +1 -1
  915. package/dist/systems/wall/wall-move.js +65 -0
  916. package/dist/systems/wall/wall-top.d.ts +2 -2
  917. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  918. package/dist/systems/wall/wall-top.js +6 -1
  919. package/dist/systems/wall/wall-topology.d.ts +32 -1
  920. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  921. package/dist/systems/wall/wall-topology.js +118 -10
  922. package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
  923. package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
  924. package/dist/systems/wall/wall-trim-profiles.js +191 -0
  925. package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
  926. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  927. package/dist/utils/floor-piece-adoption.d.ts +5 -0
  928. package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
  929. package/dist/utils/floor-plate-migration.d.ts +1930 -1130
  930. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  931. package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
  932. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  933. package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
  934. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  935. package/dist/utils/structure-id.d.ts.map +1 -1
  936. package/dist/utils/structure-id.js +4 -0
  937. package/package.json +22 -5
  938. package/dist/lib/generic-foundation.d.ts +0 -40
  939. package/dist/lib/generic-foundation.d.ts.map +0 -1
  940. package/dist/lib/generic-foundation.js +0 -200
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-tools/index.ts"],"names":[],"mappings":"AA0CA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,cAAc,SAAS,CAAA;AACvB,cAAc,sBAAsB,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1E,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAE9B;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDgB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA"}
@@ -15,6 +15,7 @@ import { findByTypeTool } from './find-by-type.js';
15
15
  import { furnishRoomTool } from './furnish-room.js';
16
16
  import { addLevelTool, duplicateLevelTool, getLevelSummaryTool, getWallsTool, getZonesTool, listLevelsTool, setGroundLevelTool, } from './levels.js';
17
17
  import { mergeWindowsTool } from './merge-windows.js';
18
+ import { duplicateNodeTool, moveNodeTool } from './move-duplicate.js';
18
19
  import { deleteNodeTool, getNodeTool } from './nodes.js';
19
20
  import { paintTool } from './paint.js';
20
21
  import { placeInRoomTool } from './place-in-room.js';
@@ -24,10 +25,11 @@ import { ROOM_TOOL_CONTRACTS } from './room-structure.js';
24
25
  import { searchMaterialsTool } from './search-materials.js';
25
26
  import { getSiteTool, placeBuildingTool } from './site.js';
26
27
  import { createStairTool, fitStairTool, measureStairTool } from './stairs.js';
28
+ import { UNIT_TOOL_CONTRACTS } from './units.js';
27
29
  import { verifySceneTool } from './verify-scene.js';
28
30
  import { viewSceneTool } from './view-scene.js';
29
31
  import { addDoorTool, addWindowTool } from './wall-openings.js';
30
- import { addWallTool } from './walls.js';
32
+ import { addWallTool, setWallTypeTool } from './walls.js';
31
33
  export * from './achieved.js';
32
34
  export * from './add-object.js';
33
35
  export * from './assets.js';
@@ -45,6 +47,7 @@ export * from './hosted-services.js';
45
47
  export * from './levels.js';
46
48
  export * from './measurement.js';
47
49
  export * from './merge-windows.js';
50
+ export * from './move-duplicate.js';
48
51
  export { NodeId } from './node-id.js';
49
52
  export * from './nodes.js';
50
53
  export * from './notation-inventory.js';
@@ -59,6 +62,7 @@ export * from './search-materials.js';
59
62
  export * from './site.js';
60
63
  export { CATALOG_SOURCE, OTHER_SOURCES, OUTSIDE_SOURCES } from './sources.js';
61
64
  export * from './stairs.js';
65
+ export * from './units.js';
62
66
  export * from './verify-scene.js';
63
67
  export * from './view-scene.js';
64
68
  export * from './wall-openings.js';
@@ -88,6 +92,7 @@ export const AGENT_TOOL_CONTRACTS = [
88
92
  placeDesignTool,
89
93
  validateDesignTool,
90
94
  addWallTool,
95
+ setWallTypeTool,
91
96
  addFenceTool,
92
97
  addCornerWindowTool,
93
98
  mergeWindowsTool,
@@ -98,6 +103,8 @@ export const AGENT_TOOL_CONTRACTS = [
98
103
  createRoofTool,
99
104
  moveRoofsToRoofLevelTool,
100
105
  deleteNodeTool,
106
+ moveNodeTool,
107
+ duplicateNodeTool,
101
108
  addObjectTool,
102
109
  authorSceneTool,
103
110
  getSourceTool,
@@ -115,6 +122,7 @@ export const AGENT_TOOL_CONTRACTS = [
115
122
  getSiteTool,
116
123
  placeBuildingTool,
117
124
  ...ROOM_TOOL_CONTRACTS,
125
+ ...UNIT_TOOL_CONTRACTS,
118
126
  runBatchTool,
119
127
  ];
120
128
  export { BATCHABLE_TOOLS, INDEPENDENT_BATCH_TOOLS, runBatchTool } from './batch.js';
@@ -22,19 +22,19 @@ export const getLevelSummaryTool = {
22
22
  export const getWallsTool = {
23
23
  name: 'get_walls',
24
24
  title: 'Get walls',
25
- description: 'Get the walls of a level: start and end in metres, length, stored and resolved height, thickness, and their doors and windows. wallFaceChains gives base-chain provenance for geometric faces a (left of start → end) and b (right): ref (authored face slot), legacy (inline spec), or default (declared fallback ref). These are not final rendered finishes: room intent, face paint regions, exterior assembly cladding and reference availability can change appearance. A chosen white or default-matching ref is legitimate; fallback alone is not a defect or a requirement to paint.',
25
+ description: 'Get the walls of a level: start and end in metres, length, stored and resolved height, thickness, wallType (standard, railing or curtain; standard when absent), type ({ id, label } for a known assembly preset or project wall type, null otherwise), and their doors and windows. wallTypes lists available assembly type ids and labels for add_wall.type and set_wall_type. wallFaceChains gives base-chain provenance for geometric faces a (left of start → end) and b (right): ref (authored face slot), legacy (inline spec), or default (declared fallback ref). These are not final rendered finishes: room intent, face paint regions, exterior assembly cladding and reference availability can change appearance. A chosen white or default-matching ref is legitimate; fallback alone is not a defect or a requirement to paint.',
26
26
  input: levelTarget,
27
27
  };
28
28
  export const getZonesTool = {
29
29
  name: 'get_zones',
30
30
  title: 'Get zones',
31
- description: 'Get the zones (rooms) of a level: name, colour, polygon and holes in metres, area in m² (holes taken out), bounding size, and floor_choices: the floor plates the room can take (key, plateId, name, current; drawn and mezzanine flags). A room shares its floor plate with the rooms next to it unless detached. Persisted authored wall intent is wallMaterial (string, or null when absent) and wallOverrides (records of wallId, geometric face a or b, and finish; [] when absent). This is not a final rendered finish or visual verification: local overrides and face paint can take precedence, and absent room intent is not a defect or a requirement to paint.',
31
+ description: 'Get the zones (rooms) of a level: name, colour, polygon and holes in metres, area in m² (holes taken out), bounding size, roomType (room when absent, porch, deck or patio), floor.drop (step-down in metres, 0 when absent; an explicit floor.elevation takes precedence), porchFraming (auto, postSize, postSpacing in metres, beamSize, postCount and beamCount of existing generated parts; null when no outdoor/framing intent), and decking (boardSize, gap in metres, direction; resolved defaults for decks or when settings exist). auto follows porchFraming.auto; absent, on for a covered porch, off for decks/patios. false leaves framing to hand edits. These names and units match set_zone_intent. Includes the unit it belongs to (unitId and unit, its name; null: common area), and floor_choices: available floor plates (key, plateId, name, current; drawn and mezzanine flags). A room shares its floor plate with adjacent rooms unless detached. Persisted wall intent is wallMaterial (string, null when absent) and wallOverrides (wallId, geometric face a or b, finish; [] when absent), not a final rendered finish: local overrides and face paint can take precedence; absent intent is not a defect or a requirement to paint.',
32
32
  input: levelTarget,
33
33
  };
34
34
  export const addLevelTool = {
35
35
  name: 'add_level',
36
36
  title: 'Add level',
37
- description: "Add an empty level to a building, as the editor does: above its top storey, under the building's roof level, which moves up one so the roof stays on top; or below its lowest level for a basement, which goes one storey under the lowest level and every existing level keeps its place, the ground floor included. On a scene with no building (a new or cleared scene), it starts the scene as the editor does: a site, a building and its ground level. A level that ends up below grade says in its result how a new wall on it is built (wallConstruction): a wall against the ground is a foundation wall, " +
37
+ description: "Add an empty level to a building as the editor does, above its top storey or below its lowest for a basement, and return its id, floor index and height. Above, it goes under the building's roof level, which moves up one so the roof stays on top; a basement goes one storey under the lowest level, every existing level keeping its place, the ground floor included. On a scene with no building (a new or cleared scene), it starts the scene as the editor does: a site, a building and its ground level. A level that ends up below grade says in its result how a new wall on it is built (wallConstruction): a wall against the ground is a foundation wall, " +
38
38
  FOUNDATION_BY_REGION_NOTE +
39
39
  ', a partition is an ordinary wall. To copy a floor with its content, use duplicate_level.',
40
40
  input: {
@@ -80,7 +80,7 @@ export const duplicateLevelTool = {
80
80
  export const setGroundLevelTool = {
81
81
  name: 'set_ground_level',
82
82
  title: 'Set ground level',
83
- description: "Make a level the building's ground floor: the one standing at grade, its floor 8 in over the ground (about 6 in on cast concrete foundations, 12 in on stone: the building's foundation construction seats it; the result names it). A building's levels stack on a ground line; the levels with a lower floor index are below grade (basements), the ones at or over it are not, and list_levels reads it as groundLevels (levelId, floorElevation, floorOverGrade, seated) and each level's gradeStanding (at-grade, partly-below-grade, below-grade) and isGroundLevel. This names the level on the building, seats the building so that level's floor datum, the top of the foundation where the wood framing starts, stands 0.203 m (8 in) over grade on a block foundation, 0.15 m on cast concrete (Europe), 0.3 m on stone (a historic style) (flat site: world Y 0.203; sculpted terrain: 0.203 m over the mean ground height under its floor), moving the building in height only — the plan stays where it is and every level keeps its place relative to the others — and renumbers the floor indices so it is 0 and the ones under it are -1, -2…. A level added below (add_level position below) stacks under the lowest level without moving the ground floor. A roof level or a support level cannot be the ground floor (not_a_storey). One undo step. Refusals: level_not_found, not_a_level, no_building, not_a_storey. Answering unchanged: true when the level is already the named ground floor, at that seat, at index 0.",
83
+ description: "Make a level the building's ground floor: the one standing at grade, its floor on the ground. A building's levels stack on a ground line; the levels with a lower floor index are below grade (basements), the ones at or over it are not, and list_levels reads it as groundLevels (levelId, floorElevation, floorOverGrade, seated) and each level's gradeStanding (at-grade, partly-below-grade, below-grade) and isGroundLevel. This names the level on the building, seats the building so that level's floor datum stands on grade (flat site: world Y 0; sculpted terrain: the mean ground height under its floor), moving the building in height only — the plan stays where it is and every level keeps its place relative to the others — and renumbers the floor indices so it is 0 and the ones under it are -1, -2…. A level added below (add_level position below) stacks under the lowest level without moving the ground floor. A roof level or a support level cannot be the ground floor (not_a_storey). One undo step. Refusals: level_not_found, not_a_level, no_building, not_a_storey. Answering unchanged: true when the level is already the named ground floor, on grade, at index 0.",
84
84
  input: {
85
85
  levelId: NodeId.describe('The level to stand at grade, by an id list_levels returned.'),
86
86
  },
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ export declare const moveNodeTool: {
3
+ name: string;
4
+ title: string;
5
+ description: string;
6
+ input: {
7
+ id: z.ZodString;
8
+ to: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
9
+ by: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
10
+ y: z.ZodOptional<z.ZodNumber>;
11
+ rotation: z.ZodOptional<z.ZodNumber>;
12
+ force: z.ZodOptional<z.ZodBoolean>;
13
+ };
14
+ };
15
+ export declare const moveNodeOutput: {
16
+ ok: z.ZodLiteral<true>;
17
+ id: z.ZodString;
18
+ type: z.ZodString;
19
+ host: z.ZodEnum<{
20
+ ceiling: "ceiling";
21
+ free: "free";
22
+ level: "level";
23
+ roof: "roof";
24
+ wall: "wall";
25
+ }>;
26
+ hostId: z.ZodNullable<z.ZodString>;
27
+ position: z.ZodArray<z.ZodNumber>;
28
+ clamped: z.ZodBoolean;
29
+ message: z.ZodString;
30
+ achieved: z.ZodObject<{
31
+ created: z.ZodRecord<z.ZodString, z.ZodNumber>;
32
+ updated: z.ZodNumber;
33
+ deleted: z.ZodRecord<z.ZodString, z.ZodNumber>;
34
+ unchanged: z.ZodOptional<z.ZodLiteral<true>>;
35
+ }, z.core.$strip>;
36
+ };
37
+ export declare const duplicateNodeTool: {
38
+ name: string;
39
+ title: string;
40
+ description: string;
41
+ input: {
42
+ ids: z.ZodArray<z.ZodString>;
43
+ offset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
44
+ targetLevelId: z.ZodOptional<z.ZodString>;
45
+ };
46
+ };
47
+ export declare const duplicateNodeOutput: {
48
+ ok: z.ZodLiteral<true>;
49
+ copies: z.ZodArray<z.ZodObject<{
50
+ sourceId: z.ZodString;
51
+ copyId: z.ZodString;
52
+ type: z.ZodString;
53
+ descendantCount: z.ZodNumber;
54
+ }, z.core.$strip>>;
55
+ totalCreated: z.ZodNumber;
56
+ skippedIds: z.ZodArray<z.ZodString>;
57
+ message: z.ZodString;
58
+ achieved: z.ZodObject<{
59
+ created: z.ZodRecord<z.ZodString, z.ZodNumber>;
60
+ updated: z.ZodNumber;
61
+ deleted: z.ZodRecord<z.ZodString, z.ZodNumber>;
62
+ unchanged: z.ZodOptional<z.ZodLiteral<true>>;
63
+ }, z.core.$strip>;
64
+ };
65
+ //# sourceMappingURL=move-duplicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-duplicate.d.ts","sourceRoot":"","sources":["../../src/agent-tools/move-duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,eAAO,MAAM,YAAY;IACvB,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,EAAE;QACF,EAAE;QAKF,EAAE;QAGF,CAAC;QAMD,QAAQ;QACR,KAAK;;CAKR,CAAA;AAED,eAAO,MAAM,cAAc;IACzB,EAAE;IACF,EAAE;IACF,IAAI;IACJ,IAAI;;;;;;;IACJ,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;;;;;;CACT,CAAA;AAED,eAAO,MAAM,iBAAiB;IAC5B,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,GAAG;QAKH,MAAM;QAGN,aAAa;;CAIhB,CAAA;AAED,eAAO,MAAM,mBAAmB;IAC9B,EAAE;IACF,MAAM;;;;;;IAQN,YAAY;IACZ,UAAU;IACV,OAAO;IACP,QAAQ;;;;;;CACT,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { z } from 'zod';
2
+ import { achievedOutput } from './achieved.js';
3
+ import { NodeId } from './node-id.js';
4
+ // Arrays avoid tuple-form JSON schemas that some MCP clients cannot call.
5
+ const planPoint = z.array(z.number()).length(2);
6
+ export const moveNodeTool = {
7
+ name: 'move_node',
8
+ title: 'Move node',
9
+ description: "Move one node as the editor's move tool does, re-seated on its wall, ceiling, roof segment or level, and return where it now sits and whether it clamped. A door, window or wall item slides along its wall (the plan point is projected onto the wall, clamped to stay on it, and refused with opening_overlap where it would hit a sibling, unless force, like holding Alt); a ceiling item moves in plan under its ceiling, keeping its drop; a floor or free node moves in plan on its level, keeping its height; a roof piece (skylight, chimney, vents, solar, dormer) moves in its segment-local plan, the frame its stored position uses, its height staying anchored to the segment surface; a wall takes by only (its ends translate, its openings ride in their wall-local seats). to and by are plan metres [x, z]: level plan for level, wall and ceiling hosts, segment-local for a roof host. Exactly one of to (absolute) or by (delta), or rotation alone. y is a window's sill height or a wall item's bottom height in metres, and nothing else takes it. rotation is yaw in degrees for free, ceiling and roof nodes. Returns the host class and id, the node's stored position after the move (a wall: its start point as [x, 0, z]), and whether the seat clamped. Refusals: node_not_found, node_not_movable (site, building, level, zone — use move_zone — roof, roof segment, stair, derived plates and other geometry-defined kinds), move_target_required, move_target_ambiguous (both to and by, or to on a wall), move_host_missing (its wall, ceiling or segment is gone), curved_wall, wall_too_short, wall_too_low, opening_overlap, rotation_not_supported (wall-hosted nodes face their wall side), height_not_applicable, move_not_supported (an item resting on another item).",
10
+ input: {
11
+ id: NodeId.describe('The node id.'),
12
+ to: planPoint
13
+ .optional()
14
+ .describe('Absolute plan target [x, z] in metres, in the frame the description names for its host.'),
15
+ by: planPoint
16
+ .optional()
17
+ .describe('Plan delta [dx, dz] in metres from where the node sits, same frame as to.'),
18
+ y: z
19
+ .number()
20
+ .optional()
21
+ .describe("A window's sill height or a wall item's bottom height above the floor, in metres."),
22
+ rotation: z.number().optional().describe('Yaw in degrees (free, ceiling and roof nodes).'),
23
+ force: z
24
+ .boolean()
25
+ .optional()
26
+ .describe('Allow a wall seat that overlaps a sibling, like holding Alt in the editor.'),
27
+ },
28
+ };
29
+ export const moveNodeOutput = {
30
+ ok: z.literal(true),
31
+ id: z.string(),
32
+ type: z.string(),
33
+ host: z.enum(['wall', 'ceiling', 'free', 'roof', 'level']),
34
+ hostId: z.string().nullable(),
35
+ position: z.array(z.number()).length(3),
36
+ clamped: z.boolean(),
37
+ message: z.string(),
38
+ achieved: achievedOutput,
39
+ };
40
+ export const duplicateNodeTool = {
41
+ name: 'duplicate_node',
42
+ title: 'Duplicate node',
43
+ description: "Duplicate nodes with everything under them, as the editor's Duplicate does, and return each copy's id beside its source's. The copies get fresh ids, hosted children are re-hosted on them (a wall brings its doors, windows and wall items, their wallId pointing at the copy), and an id inside another listed subtree is skipped rather than copied twice. A door, window, wall item, ceiling item or roof piece copied on its own stays on its same host. offset [dx, dz] in plan metres moves every copy from its source's seat (default [0, 0], an exact copy in place, as the editor's duplicate starts); a wall offset translates its ends, a hosted copy's offset slides it on its host, clamped to stay seated. targetLevelId puts level-parented copies on that level instead; a hosted copy refuses it (hosted_root_level) because its host stays behind. Returns copies (sourceId, copyId, type, descendantCount), totalCreated and skippedIds. Refusals: node_not_found, duplicate_not_supported (a site, building, level — use duplicate_level — zone — use duplicate_zone — roof or roof segment, or a derived plate), duplicate_root_invalid (a node the editor only copies as part of its parent), hosted_root_level, level_not_found.",
44
+ input: {
45
+ ids: z
46
+ .array(NodeId)
47
+ .min(1)
48
+ .max(64)
49
+ .describe('The node ids to copy, each with everything under it.'),
50
+ offset: planPoint
51
+ .optional()
52
+ .describe('Plan delta [dx, dz] in metres applied to every copy. Default [0, 0].'),
53
+ targetLevelId: NodeId.optional().describe('Copy level-parented roots onto this level instead of their own.'),
54
+ },
55
+ };
56
+ export const duplicateNodeOutput = {
57
+ ok: z.literal(true),
58
+ copies: z.array(z.object({
59
+ sourceId: z.string(),
60
+ copyId: z.string(),
61
+ type: z.string(),
62
+ descendantCount: z.number().int(),
63
+ })),
64
+ totalCreated: z.number().int(),
65
+ skippedIds: z.array(z.string()),
66
+ message: z.string(),
67
+ achieved: achievedOutput,
68
+ };
@@ -7,6 +7,7 @@ export declare const paintTool: {
7
7
  targets: z.ZodArray<z.ZodString>;
8
8
  role: z.ZodOptional<z.ZodString>;
9
9
  color: z.ZodOptional<z.ZodString>;
10
+ exact: z.ZodOptional<z.ZodBoolean>;
10
11
  material: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
11
12
  id: z.ZodOptional<z.ZodString>;
12
13
  preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
@@ -37,6 +38,11 @@ export declare const paintTool: {
37
38
  url: z.ZodString;
38
39
  repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
39
40
  scale: z.ZodOptional<z.ZodNumber>;
41
+ offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
42
+ normalMap: z.ZodOptional<z.ZodString>;
43
+ normalScale: z.ZodOptional<z.ZodNumber>;
44
+ bumpMap: z.ZodOptional<z.ZodString>;
45
+ bumpScale: z.ZodOptional<z.ZodNumber>;
40
46
  }, z.core.$strip>>;
41
47
  }, z.core.$strip>]>>;
42
48
  materialName: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/agent-tools/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,SAAS;IACpB,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,OAAO;QACP,IAAI;QACJ,KAAK;QAKL,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAMR,YAAY;QASZ,KAAK;;CAER,CAAA"}
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/agent-tools/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,SAAS;IACpB,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,OAAO;QACP,IAAI;QACJ,KAAK;QAOL,KAAK;QAML,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAMR,YAAY;QASZ,KAAK;;CAER,CAAA"}
@@ -4,7 +4,7 @@ import { NodeId } from './node-id.js';
4
4
  export const paintTool = {
5
5
  name: 'paint',
6
6
  title: 'Paint',
7
- description: "Give walls, slabs, ceilings, roofs, columns, fences, doors, windows, stairs, blocks, cabinets, shelves, items and the other built parts a finish in one call, as the editor's Paint does. Give one finish: color (#rrggbb, painted with the nearest of the library's flat colours, said with how near); material, a library:<id> (find it with search_materials) or scene:<id> ref, or a native material {properties: {color, roughness, metalness}} for an exact finish, kept as a scene material (materialName names a new one) and reused when the scene holds an equal one; or erase: true, back to the surface's default. role picks the surface: a wall's face a or b, or exterior and interior (the faces turned out of its rooms or into them, else by its stored sides; a partition is interior on both; a wall whose sides are unknown, or with rooms along only part of a face, is refused: name its face, a or b), its trims aSkirting, bSkirting, aCrown, bCrown, aChairRail, bChairRail (skirting, crown or chairRail: that trim on both faces), a curtain wall's curtain-frame, curtain-glass, curtain-solid; a slab's surface, side, edge, riser, underside or foundation; a ceiling's surface; a roof's top (the covering), edge (the gable ends and the trim band), wall (the soffit and the deck edge, and the fascia and rake boards unless they have their own) or fascia (the fascia and rake boards, a fascia band); a glazed roof's glazing-frame, glazing-glass or glazing-solid; a column's shaft, base, capital or frame; a fence's posts, infill, base or rail; a door's panel, frame, glass or hardware; a window's frame or glass; a stair's treads, body or railing; a block's body; a cabinet's front, carcass, countertop, plinth, hardware or glass; another part's own slots, which a refusal names; an item's surfaces by the names its model gives them (its painted ones are in get_node's slots), which paint cannot check. Without a role: both faces of a wall, a slab's or a ceiling's surface, a roof's top, a glazed roof's frame and solid panels, a column's shaft, a whole fence, a door's panel and frame, a window's frame, a block's body, a part's one surface. A roof shows one finish per surface: a segment's finish goes on its roof, and a roof's on all of its segments. A glazed segment holds its own glazing finishes: a roof's glazing roles go on its glazed segments, its other roles on the roof, and without a role both. A wall face is painted whole, over the wall finish of the room it faces; its painted parts keep their own, named in the note. A ceiling shows its finish's colour, not its texture. The result says the finish written, and the scene material when there is one. A target that is not in the scene, a role it lacks or an unknown material refuses the whole call: nothing is painted.",
7
+ description: "Give walls, slabs, ceilings, roofs, columns, fences, doors, windows, stairs, blocks, cabinets, shelves, items and the other built parts a finish in one call, as the editor's Paint does. Give one finish: color (#rrggbb, painted with the nearest of the library's flat colours, said with how near; with exact: true, that colour itself, a matte scene material); material, a library:<id> (find it with search_materials) or scene:<id> ref, or a native material {properties: {color, roughness, metalness}} for an exact finish, kept as a scene material (materialName names a new one) and reused when the scene holds an equal one; or erase: true, back to the surface's default. role picks the surface: a wall's face a or b, or exterior and interior (the faces turned out of its rooms or into them, else by its stored sides; a partition is interior on both; a wall whose sides are unknown, or with rooms along only part of a face, is refused: name its face, a or b), its trims aSkirting, bSkirting, aCrown, bCrown, aChairRail, bChairRail (skirting, crown or chairRail: that trim on both faces), a curtain wall's curtain-frame, curtain-glass, curtain-solid; a slab's surface, side, edge, riser, underside or foundation; a ceiling's surface; a roof's top (the covering), edge (the gable ends and the trim band), wall (the soffit and the deck edge, and the fascia and rake boards unless they have their own) or fascia (the fascia and rake boards, a fascia band); a glazed roof's glazing-frame, glazing-glass or glazing-solid; a column's shaft, base, capital or frame; a fence's posts, infill, base or rail; a door's panel, frame, glass or hardware; a window's frame, glass, hardware or shutters; a stair's treads, body or railing; a block's body; a cabinet's front, carcass, countertop, plinth, hardware or glass; another part's own slots, which a refusal names; an item's surfaces by the names its model gives them (its painted ones are in get_node's slots), which paint cannot check. Without a role: both faces of a wall, a slab's or a ceiling's surface, a roof's top, a glazed roof's frame and solid panels, a column's shaft, a whole fence, a door's panel and frame, a window's frame, a block's body, a part's one surface. A roof shows one finish per surface: a segment's finish goes on its roof, and a roof's on all of its segments. A glazed segment holds its own glazing finishes: a roof's glazing roles go on its glazed segments, its other roles on the roof, and without a role both. A wall face is painted whole, over the wall finish of the room it faces; its painted parts keep their own, named in the note. A ceiling shows its finish's colour, not its texture. The result says the finish written, and the scene material when there is one. A target that is not in the scene, a role it lacks or an unknown material refuses the whole call: nothing is painted.",
8
8
  input: {
9
9
  targets: z.array(NodeId).min(1).max(200).describe('The nodes to paint.'),
10
10
  role: z.string().min(1).optional().describe('The surface: see the description.'),
@@ -12,11 +12,15 @@ export const paintTool = {
12
12
  .string()
13
13
  .regex(/^#[0-9a-fA-F]{6}$/)
14
14
  .optional()
15
- .describe('A colour, #rrggbb: painted with the nearest library colour.'),
15
+ .describe('A colour, #rrggbb: painted with the nearest library colour, or as given with exact.'),
16
+ exact: z
17
+ .boolean()
18
+ .optional()
19
+ .describe('With color: paint that colour itself, a matte scene material, not the nearest library colour (a brand colour, a colour matched to a photo).'),
16
20
  material: z
17
21
  .union([z.string().min(1), MaterialSchema])
18
22
  .optional()
19
- .describe('A library:<id> or scene:<id> ref, or a native material (properties color, roughness, metalness, and an existing texture) kept as a scene material.'),
23
+ .describe("A library:<id> or scene:<id> ref, or a native material kept as a scene material: properties color, roughness, metalness; texture { url (https, or artifact://<sha256> of an image stored with the project), repeat [u, v] (tiles per metre), offset [u, v] (in tiles), normalMap, normalScale, bumpMap, bumpScale }, its maps sharing the image's repeat and offset. Surfaces are laid in level metres: a floor, a slab's top or a ceiling at u = plan x, v = −z; a wall face at u = x for a wall running along x (−x on its face turned to −z), z for one running along z (−z on its face turned to −x), v = 1 − the height above the level's floor. A joint at c along u or v: offset = frac(−c × repeat)."),
20
24
  materialName: z
21
25
  .string()
22
26
  .trim()
@@ -10,7 +10,7 @@ const segment = z.array(point).length(2);
10
10
  export const straightenFacadePhotoTool = {
11
11
  name: 'straighten_facade_photo',
12
12
  title: 'Straighten a facade photo',
13
- description: "Straighten faces of a building photo into elevations at a known scale, to measure the facade instead of guessing it: bay pitch, pier and window widths, pane grids, side panels, spandrels, sill and head heights. Pass every face the photo shows in one call: they share the photo's camera, found from the lines picked on them, so each elevation is metric from its walls' width and the storey height is measured from the photo rather than taken from the scene. Per face: its vertical edges (two points on each, top and bottom as seen), the same feature on at least two storeys (the window heads of a low and a high floor, say: two points far apart along each, with that storey's level), and the face's walls on one storey (their extent is the width). A face whose far edge leaves the photo gives only the corner it shares with another face. Points are fractions of the photo, [0,0] its top left and [1,1] its bottom right. Returns per face the straightened elevation with a metre grid and the scene's storeys drawn at the picked feature, a close-up of each picked corner to check (call again with corrected points if one is off), the photo pixels per metre at each side, the fit error and the photo's storey height beside the scene's; and the camera: its focal length (a phone's main camera is about 26 mm), its tilt, what it assumes, and its pose in the scene (position, target, up, vertical fov, the photo's aspect): view_scene from that pose shows the scene as the photo does. One face seen square on (a frontal photo) gives a pose too, its focal length taken from focal35mm when it cannot be read from the photo. A single face with both edges is fitted from its own picks, its heights from the storeys. Only what lies on the wall plane measures true: balconies, overhangs and anything standing proud are smeared, and a face seen at a grazing angle has too few pixels per metre for panes.",
13
+ description: "Straighten the faces of a building photo into metric elevations to measure its facade, and return each on a metre grid and a camera pose when recoverable. They measure the facade instead of guessing it: bay pitch, pier and window widths, pane grids, side panels, spandrels, sill and head heights. Pass every face the photo shows in one call: they share the photo's camera, found from the lines picked on them, so each elevation is metric from its walls' width and the storey height is measured from the photo rather than taken from the scene. Per face: its vertical edges (two points on each, top and bottom as seen), the same feature on at least two storeys (the window heads of a low and a high floor, say: two points far apart along each, with that storey's level), and the face's walls on one storey (their extent is the width). A face whose far edge leaves the photo gives only the corner it shares with another face. Points are fractions of the photo, [0,0] its top left and [1,1] its bottom right. Returns per face the straightened elevation with a metre grid and the scene's storeys drawn at the picked feature, a close-up of each picked corner to check (call again with corrected points if one is off), the photo pixels per metre at each side, the fit error and the photo's storey height beside the scene's; and the camera: its focal length (a phone's main camera is about 26 mm), its tilt, what it assumes, and its pose in the scene (position, target, up, vertical fov, the photo's aspect): view_scene from that pose shows the scene as the photo does. One face seen square on (a frontal photo) gives a pose too, its focal length taken from focal35mm when it cannot be read from the photo. A single face with both edges is fitted from its own picks, its heights from the storeys. Only what lies on the wall plane measures true: balconies, overhangs and anything standing proud are smeared, and a face seen at a grazing angle has too few pixels per metre for panes.",
14
14
  input: {
15
15
  source: z.string().describe("The photo: its attachment URL, as the user's message gives it."),
16
16
  faces: z
@@ -82,7 +82,7 @@ export declare const renameProjectFileTool: {
82
82
  export declare const deleteProjectFileTool: {
83
83
  readonly name: 'delete_project_file';
84
84
  readonly title: 'Delete project file';
85
- readonly description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. Existing scene or chat references may still retain the bytes; this is not guaranteed storage erasure.';
85
+ readonly description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. A scene or a conversation that references it may still retain the bytes; this is not guaranteed storage erasure.';
86
86
  readonly input: {
87
87
  projectId: z.ZodOptional<z.ZodString>;
88
88
  fileId: z.ZodString;
@@ -173,7 +173,7 @@ export declare const PROJECT_FILE_TOOL_CONTRACTS: readonly [{
173
173
  }, {
174
174
  readonly name: 'delete_project_file';
175
175
  readonly title: 'Delete project file';
176
- readonly description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. Existing scene or chat references may still retain the bytes; this is not guaranteed storage erasure.';
176
+ readonly description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. A scene or a conversation that references it may still retain the bytes; this is not guaranteed storage erasure.';
177
177
  readonly input: {
178
178
  projectId: z.ZodOptional<z.ZodString>;
179
179
  fileId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"project-files.d.ts","sourceRoot":"","sources":["../../src/agent-tools/project-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,eAAO,MAAM,oBAAoB;mBACzB,oBAAoB;oBACnB,oBAAoB;0BAEzB,8QAA8Q;;;;;;;;;;;;;;;;;;;;CASxQ,CAAA;AAEV,eAAO,MAAM,kBAAkB;aAC7B,IAAI,EAAE,kBAAkB;aACxB,KAAK,EAAE,mBAAmB;aAC1B,WAAW,EACT,2JAA2J;aAC7J,KAAK;;;;aACL,WAAW;;;;;;CACH,CAAA;AAEV,eAAO,MAAM,qBAAqB;mBAC1B,qBAAqB;oBACpB,qBAAqB;0BAE1B,ieAAie;;;;;;;;;;;;;;;;iBAuBje,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,qBAAqB;mBAC1B,qBAAqB;oBACpB,qBAAqB;0BAE1B,yHAAyH;;;;;;;iBAGzH,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,qBAAqB;aAChC,IAAI,EAAE,qBAAqB;aAC3B,KAAK,EAAE,qBAAqB;aAC5B,WAAW,EACT,uOAAuO;aACzO,KAAK;;;;aACL,WAAW;iBACT,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,2BAA2B;mBArFhC,oBAAoB;oBACnB,oBAAoB;0BAEzB,8QAA8Q;;;;;;;;;;;;;;;;;;;;;mBAY1Q,kBAAkB;oBACjB,mBAAmB;0BAExB,2JAA2J;;;;;;;;;;;;mBAMvJ,qBAAqB;oBACpB,qBAAqB;0BAE1B,ieAAie;;;;;;;;;;;;;;;;iBAuBje,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;;mBAKT,qBAAqB;oBACpB,qBAAqB;0BAE1B,yHAAyH;;;;;;;iBAGzH,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;;mBAKT,qBAAqB;oBACpB,qBAAqB;0BAE1B,uOAAuO;;;;;;iBAGvO,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;EAUP,CAAA;AACV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"project-files.d.ts","sourceRoot":"","sources":["../../src/agent-tools/project-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,eAAO,MAAM,oBAAoB;mBACzB,oBAAoB;oBACnB,oBAAoB;0BAEzB,8QAA8Q;;;;;;;;;;;;;;;;;;;;CASxQ,CAAA;AAEV,eAAO,MAAM,kBAAkB;aAC7B,IAAI,EAAE,kBAAkB;aACxB,KAAK,EAAE,mBAAmB;aAC1B,WAAW,EACT,2JAA2J;aAC7J,KAAK;;;;aACL,WAAW;;;;;;CACH,CAAA;AAEV,eAAO,MAAM,qBAAqB;mBAC1B,qBAAqB;oBACpB,qBAAqB;0BAE1B,ieAAie;;;;;;;;;;;;;;;;iBAuBje,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,qBAAqB;mBAC1B,qBAAqB;oBACpB,qBAAqB;0BAE1B,yHAAyH;;;;;;;iBAGzH,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,qBAAqB;aAChC,IAAI,EAAE,qBAAqB;aAC3B,KAAK,EAAE,qBAAqB;aAC5B,WAAW,EACT,kPAAkP;aACpP,KAAK;;;;aACL,WAAW;iBACT,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;CAEP,CAAA;AAEV,eAAO,MAAM,2BAA2B;mBArFhC,oBAAoB;oBACnB,oBAAoB;0BAEzB,8QAA8Q;;;;;;;;;;;;;;;;;;;;;mBAY1Q,kBAAkB;oBACjB,mBAAmB;0BAExB,2JAA2J;;;;;;;;;;;;mBAMvJ,qBAAqB;oBACpB,qBAAqB;0BAE1B,ieAAie;;;;;;;;;;;;;;;;iBAuBje,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;;mBAKT,qBAAqB;oBACpB,qBAAqB;0BAE1B,yHAAyH;;;;;;;iBAGzH,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;;mBAKT,qBAAqB;oBACpB,qBAAqB;0BAE1B,kPAAkP;;;;;;iBAGlP,YAAY;iBACZ,eAAe;iBACf,cAAc;iBACd,aAAa;;EAUP,CAAA;AACV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -81,7 +81,7 @@ export const renameProjectFileTool = {
81
81
  export const deleteProjectFileTool = {
82
82
  name: 'delete_project_file',
83
83
  title: 'Delete project file',
84
- description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. Existing scene or chat references may still retain the bytes; this is not guaranteed storage erasure.',
84
+ description: 'Remove a file from the project catalog. A Studio file is removed from Studio too. Only do this when the user requests deletion. A scene or a conversation that references it may still retain the bytes; this is not guaranteed storage erasure.',
85
85
  input: file,
86
86
  annotations: {
87
87
  readOnlyHint: false,
@@ -7,9 +7,17 @@
7
7
  export declare class AgentRefusal extends Error {
8
8
  readonly code: string;
9
9
  readonly details: Record<string, unknown>;
10
+ /** What the refusal asks its host to remember with the agent's session, as an outcome's `keep` does. */
11
+ readonly keep?: RefusalKeep | undefined;
10
12
  readonly name = "AgentRefusal";
11
- constructor(code: string, message: string, details?: Record<string, unknown>);
13
+ constructor(code: string, message: string, details?: Record<string, unknown>,
14
+ /** What the refusal asks its host to remember with the agent's session, as an outcome's `keep` does. */
15
+ keep?: RefusalKeep | undefined);
12
16
  }
17
+ /** The readings a refusal asks a host to keep (`SessionKeep.readings`): a refused call changes nothing else. */
18
+ export type RefusalKeep = {
19
+ readonly readings: Readonly<Record<string, unknown>>;
20
+ };
13
21
  export declare function isAgentRefusal(error: unknown): error is AgentRefusal;
14
22
  export declare function refuse(code: string, message: string, details?: Record<string, unknown>): never;
15
23
  /** The answer both surfaces return for a refusal. */
@@ -1 +1 @@
1
- {"version":3,"file":"refusal.d.ts","sourceRoot":"","sources":["../../src/agent-tools/refusal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAGnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAJ3C,SAAkB,IAAI,kBAAiB;IACvC,YACW,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAG/C;CACF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAOpE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAE9F;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY;;;EAEjD"}
1
+ {"version":3,"file":"refusal.d.ts","sourceRoot":"","sources":["../../src/agent-tools/refusal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAGnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzC,wGAAwG;IACxG,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW;IAN7B,SAAkB,IAAI,kBAAiB;IACvC,YACW,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAC9C,wGAAwG;IAC/F,IAAI,CAAC,EAAE,WAAW,YAAA,EAG5B;CACF;AAED,gHAAgH;AAChH,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAA;AAElF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAOpE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAE9F;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY;;;EAEjD"}
@@ -7,11 +7,15 @@
7
7
  export class AgentRefusal extends Error {
8
8
  code;
9
9
  details;
10
+ keep;
10
11
  name = 'AgentRefusal';
11
- constructor(code, message, details = {}) {
12
+ constructor(code, message, details = {},
13
+ /** What the refusal asks its host to remember with the agent's session, as an outcome's `keep` does. */
14
+ keep) {
12
15
  super(message);
13
16
  this.code = code;
14
17
  this.details = details;
18
+ this.keep = keep;
15
19
  }
16
20
  }
17
21
  export function isAgentRefusal(error) {
@@ -89,7 +89,7 @@ export const createRoofTool = {
89
89
  export const moveRoofsToRoofLevelTool = {
90
90
  name: 'move_roofs_to_roof_level',
91
91
  title: 'Move roofs to the roof level',
92
- description: "Move the roofs a storey holds on its own walls to the level the roof rule gives them, as a roof's panel does by hand (Move to the roof level): over the top storey, the building's roof level (made, named Roof, when there is none); under an upper storey, that storey. Each roof stands exactly where it stood, its segments, finishes and id kept: only the level holding it changes, so exploded and solo level views show the storey's plan with no roof over it. For a project built before roofs had their own level, when verify_scene reports roof_mixed_in_storey. Refused with a code: level_not_found, no_roof_on_walls (the storey holds no roof standing on its walls; a porch roof on its beam and a lower wing's roof on the storey above already sit where they belong). Returns the roofs moved (roofIds), the level they went to (roofLevelId) and the roof level made for them (createdRoofLevelId).",
92
+ description: "Move the roofs a storey holds on its own walls to the level the roof rule gives them, and return the roofs moved and the level they went to. It does what a roof's panel does by hand (Move to the roof level): over the top storey, the building's roof level (made, named Roof, when there is none); under an upper storey, that storey. Each roof stands exactly where it stood, its segments, finishes and id kept: only the level holding it changes, so exploded and solo level views show the storey's plan with no roof over it. For a project built before roofs had their own level, when verify_scene reports roof_mixed_in_storey. Refused with a code: level_not_found, no_roof_on_walls (the storey holds no roof standing on its walls; a porch roof on its beam and a lower wing's roof on the storey above already sit where they belong). Returns the roofs moved (roofIds), the level they went to (roofLevelId) and the roof level made for them (createdRoofLevelId).",
93
93
  input: {
94
94
  levelId: NodeId.describe('The storey whose roofs move, by an id list_levels returned.'),
95
95
  },
@@ -169,6 +169,36 @@ export declare const setZoneIntentTool: {
169
169
  polygon: z.ZodArray<z.ZodArray<z.ZodNumber>>;
170
170
  finish: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
171
171
  }, z.core.$strip>>>>;
172
+ drop: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
173
+ }, z.core.$strict>>>;
174
+ roomType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
175
+ deck: "deck";
176
+ patio: "patio";
177
+ porch: "porch";
178
+ }>>>;
179
+ porchFraming: z.ZodOptional<z.ZodNullable<z.ZodObject<{
180
+ auto: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
181
+ postSize: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
182
+ "4x4": "4x4";
183
+ "6x6": "6x6";
184
+ "8x8": "8x8";
185
+ }>>>;
186
+ postSpacing: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
187
+ beamSize: z.ZodOptional<z.ZodNullable<z.ZodString>>;
188
+ }, z.core.$strict>>>;
189
+ decking: z.ZodOptional<z.ZodNullable<z.ZodObject<{
190
+ boardSize: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
191
+ "2x4": "2x4";
192
+ "2x6": "2x6";
193
+ "5/4x6": "5/4x6";
194
+ composite: "composite";
195
+ }>>>;
196
+ gap: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
197
+ direction: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
198
+ diagonal: "diagonal";
199
+ parallel: "parallel";
200
+ perpendicular: "perpendicular";
201
+ }>>>;
172
202
  }, z.core.$strict>>>;
173
203
  ceiling: z.ZodOptional<z.ZodNullable<z.ZodObject<{
174
204
  regions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
@@ -388,6 +418,36 @@ export declare const ROOM_TOOL_CONTRACTS: readonly [{
388
418
  polygon: z.ZodArray<z.ZodArray<z.ZodNumber>>;
389
419
  finish: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
390
420
  }, z.core.$strip>>>>;
421
+ drop: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
422
+ }, z.core.$strict>>>;
423
+ roomType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
424
+ deck: "deck";
425
+ patio: "patio";
426
+ porch: "porch";
427
+ }>>>;
428
+ porchFraming: z.ZodOptional<z.ZodNullable<z.ZodObject<{
429
+ auto: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
430
+ postSize: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
431
+ "4x4": "4x4";
432
+ "6x6": "6x6";
433
+ "8x8": "8x8";
434
+ }>>>;
435
+ postSpacing: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
436
+ beamSize: z.ZodOptional<z.ZodNullable<z.ZodString>>;
437
+ }, z.core.$strict>>>;
438
+ decking: z.ZodOptional<z.ZodNullable<z.ZodObject<{
439
+ boardSize: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
440
+ "2x4": "2x4";
441
+ "2x6": "2x6";
442
+ "5/4x6": "5/4x6";
443
+ composite: "composite";
444
+ }>>>;
445
+ gap: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>>;
446
+ direction: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
447
+ diagonal: "diagonal";
448
+ parallel: "parallel";
449
+ perpendicular: "perpendicular";
450
+ }>>>;
391
451
  }, z.core.$strict>>>;
392
452
  ceiling: z.ZodOptional<z.ZodNullable<z.ZodObject<{
393
453
  regions: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"room-structure.d.ts","sourceRoot":"","sources":["../../src/agent-tools/room-structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-structure.d.ts","sourceRoot":"","sources":["../../src/agent-tools/room-structure.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,25 @@ const zoneIntentPatch = z.strictObject({
16
16
  elevation: measurement('length', 'm').nullable().optional(),
17
17
  finish: finish.nullable().optional(),
18
18
  regions: paintRegions.nullable().optional(),
19
+ drop: measurement('length', 'm', { min: 0 }).nullable().optional(),
20
+ })
21
+ .nullable()
22
+ .optional(),
23
+ roomType: z.enum(['porch', 'deck', 'patio']).nullable().optional(),
24
+ porchFraming: z
25
+ .strictObject({
26
+ auto: z.boolean().nullable().optional(),
27
+ postSize: z.enum(['4x4', '6x6', '8x8']).nullable().optional(),
28
+ postSpacing: measurement('length', 'm', { min: 0.6 }).nullable().optional(),
29
+ beamSize: z.string().nullable().optional(),
30
+ })
31
+ .nullable()
32
+ .optional(),
33
+ decking: z
34
+ .strictObject({
35
+ boardSize: z.enum(['5/4x6', '2x6', '2x4', 'composite']).nullable().optional(),
36
+ gap: measurement('length', 'm', { positive: true }).nullable().optional(),
37
+ direction: z.enum(['parallel', 'diagonal', 'perpendicular']).nullable().optional(),
19
38
  })
20
39
  .nullable()
21
40
  .optional(),
@@ -163,7 +182,7 @@ export const lockOutsideFacesTool = {
163
182
  export const setZoneIntentTool = {
164
183
  name: 'set_zone_intent',
165
184
  title: 'Set room intent',
166
- description: 'Update room name, floor finish/elevation/regions, floor.footprint ("new" mints a unique floor key tied to this creator room, an existing key joins that floor on this level, null returns to the shared floor). Touching rooms with the same key share a base plate; disconnected pieces share construction settings. Conversion preserves world geometry in one edit and refuses when infeasible. get_zones exposes floor_choices. A keyed floor uses "<creator room name> floor" while the creator remains on that key; otherwise it uses the largest named room. Existing keys such as "own" without a creator use that fallback. A user-given plate name wins; the shared floor stays "Shared floor". Keyed rooms can have raised or sunken floor.elevation, stored as a level-local walking top. Slab thickness, foundation height and edge finish use set_room_floor_construction, updating every piece of the key. Update ceiling paint regions (ceiling.regions: [x, z] polygons with a finish, later wins), step finishes (floorStepFinish for every step of the room; floorStepOverrides: [{ key, step?, finish }] per doorway, key = the door id the step sits under or the lower room id), wall material and construction opt-outs. daylight { artificialLight, mechanicalVentilation } declares a habitable room lit and aired by artificial means (the IRC R303.1 exceptions to daylight; both true), stored in the room\'s metadata; a bedroom, living room or kitchen needs a window to outside or this declaration, above and below grade alike. Absent fields are unchanged; null clears.',
185
+ description: 'Update a room\'s intent in one patch (name, floor, ceiling, steps, walls, daylight, outdoor type, porch framing, decking) and return how many changes it made. It sets the room name, floor finish/elevation/regions and floor.footprint ("new" mints a unique floor key tied to this creator room, an existing key joins that floor on this level, null returns to the shared floor). Touching rooms with the same key share a base plate; disconnected pieces share construction settings. Conversion preserves world geometry in one edit and refuses when infeasible. get_zones exposes floor_choices. A keyed floor uses "<creator room name> floor" while the creator remains on that key; otherwise it uses the largest named room. Existing keys such as "own" without a creator use that fallback. A user-given plate name wins; the shared floor stays "Shared floor". Keyed rooms can have raised or sunken floor.elevation, stored as a level-local walking top. Slab thickness, foundation height and edge finish use set_room_floor_construction, updating every piece of the key. Update ceiling paint regions (ceiling.regions: [x, z] polygons with a finish, later wins), step finishes (floorStepFinish for every step of the room; floorStepOverrides: [{ key, step?, finish }] per doorway, key = the door id the step sits under or the lower room id), wall material and construction opt-outs. daylight { artificialLight, mechanicalVentilation } declares a habitable room lit and aired by artificial means (the IRC R303.1 exceptions to daylight; both true), stored in the room\'s metadata; a bedroom, living room or kitchen needs a window to outside or this declaration, above and below grade alike. roomType ("porch" | "deck" | "patio", null for a room) makes the room outdoors: a porch is a concrete slab stepped floor.drop (1.5 in) under the house with a ceiling, a deck wood decking 1 in down and framed, a patio concrete and open. porchFraming { auto, postSize "4x4"|"6x6"|"8x8", postSpacing m, beamSize e.g. "6x8" } sets the posts of a covered porch (one at each outside corner, more at most postSpacing apart) and the beam on them under its ceiling; a deck or patio gets them only with auto true (to carry a roof over it). A size or the spacing rebuilds them, auto false leaves them as edited. decking { boardSize "5/4x6"|"2x6"|"2x4"|"composite", gap m (1/8, 3/16 or 1/4 in), direction "parallel"|"diagonal"|"perpendicular" to the house } sets a deck\'s boards (default 5/4x6, 1/4 in apart, along the house); its frame follows: joists 12 in on centre under diagonal 5/4 or composite boards (IRC R507.7), and along the house on beams square to it under boards running out from it. Absent fields are unchanged; null clears.',
167
186
  input: { zoneId: NodeId, patch: zoneIntentPatch },
168
187
  };
169
188
  export const divideZoneTool = {
@@ -19,6 +19,7 @@ export declare const searchMaterialsTool: {
19
19
  other: "other";
20
20
  plastic: "plastic";
21
21
  roofing: "roofing";
22
+ siding: "siding";
22
23
  stone: "stone";
23
24
  tile: "tile";
24
25
  wallpaper: "wallpaper";
@@ -1 +1 @@
1
- {"version":3,"file":"search-materials.d.ts","sourceRoot":"","sources":["../../src/agent-tools/search-materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,mBAAmB;IAC9B,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAA"}
1
+ {"version":3,"file":"search-materials.d.ts","sourceRoot":"","sources":["../../src/agent-tools/search-materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,mBAAmB;IAC9B,IAAI;IACJ,KAAK;IACL,WAAW;IAEX,KAAK;QACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAA"}
@@ -10,7 +10,7 @@ const site = NodeId.optional().describe("The site, by its id (get_site's siteId)
10
10
  export const getSiteTool = {
11
11
  name: 'get_site',
12
12
  title: 'Get site',
13
- description: "Read the site a building stands on, in its level coordinates: the lot and its area, with the footprint a house usually covers on it (30 to 45%); the buildable area inside the setbacks with its centre, its area, each edge's frontage and depth, and its front edge (behind the street; while no street is recorded, behind the edge facing north, which the setbacks take as the front); the street side with the lot's frontage and depth on it; north; the ground (sloped with its fall, read flat, or not read); the address, parcel and zoning when known; whether the lot is only the new-project placeholder; and where the footprint sits now with its yards.",
13
+ description: "Read the site a building stands on and return, in its level coordinates, its lot, buildable area, street side, north, ground and the footprint's yards. It gives the lot and its area, with the footprint a house usually covers on it (30 to 45%); the buildable area inside the setbacks with its centre, its area, each edge's frontage and depth, and its front edge (behind the street; while no street is recorded, behind the edge facing north, which the setbacks take as the front); the street side with the lot's frontage and depth on it; north; the ground (sloped with its fall, read flat, or not read); the address, parcel and zoning when known; whether the lot is only the new-project placeholder; and where the footprint sits now with its yards.",
14
14
  input: { building, site },
15
15
  };
16
16
  export const placeBuildingTool = {