@pascal-app/core 1.0.4 → 1.0.6

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 (866) hide show
  1. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +102 -90
  2. package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
  4. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
  5. package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
  6. package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
  7. package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
  8. package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
  9. package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
  10. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  11. package/dist/agent-operations/__fixtures__/cases.js +183 -4
  12. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
  13. package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
  14. package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
  15. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
  16. package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
  17. package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
  18. package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
  19. package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
  20. package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
  21. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
  22. package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
  23. package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
  24. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
  25. package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
  26. package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
  27. package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
  28. package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
  29. package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
  30. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
  31. package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
  32. package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
  33. package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
  34. package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
  35. package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
  36. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
  37. package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
  38. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
  39. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
  40. package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
  41. package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
  42. package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
  43. package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
  44. package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
  45. package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
  46. package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
  47. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
  48. package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
  49. package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
  50. package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
  51. package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
  52. package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
  53. package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
  54. package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
  55. package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
  56. package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
  57. package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
  58. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
  59. package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
  60. package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
  61. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
  62. package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
  63. package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
  64. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
  65. package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
  66. package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
  67. package/dist/agent-operations/achieved.d.ts +5 -0
  68. package/dist/agent-operations/achieved.d.ts.map +1 -1
  69. package/dist/agent-operations/achieved.js +21 -1
  70. package/dist/agent-operations/add-column.d.ts.map +1 -1
  71. package/dist/agent-operations/add-column.js +3 -1
  72. package/dist/agent-operations/add-fence.d.ts +18 -0
  73. package/dist/agent-operations/add-fence.d.ts.map +1 -0
  74. package/dist/agent-operations/add-fence.js +48 -0
  75. package/dist/agent-operations/add-level.d.ts +4 -1
  76. package/dist/agent-operations/add-level.d.ts.map +1 -1
  77. package/dist/agent-operations/add-level.js +48 -12
  78. package/dist/agent-operations/add-object.d.ts +38 -9
  79. package/dist/agent-operations/add-object.d.ts.map +1 -1
  80. package/dist/agent-operations/add-object.js +172 -11
  81. package/dist/agent-operations/add-wall.d.ts +1 -3
  82. package/dist/agent-operations/add-wall.d.ts.map +1 -1
  83. package/dist/agent-operations/add-wall.js +35 -9
  84. package/dist/agent-operations/apply-changes.d.ts +7 -1
  85. package/dist/agent-operations/apply-changes.d.ts.map +1 -1
  86. package/dist/agent-operations/apply-changes.js +54 -22
  87. package/dist/agent-operations/apply-outcome.d.ts +6 -0
  88. package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
  89. package/dist/agent-operations/apply-outcome.js +23 -8
  90. package/dist/agent-operations/asset-views.d.ts +75 -0
  91. package/dist/agent-operations/asset-views.d.ts.map +1 -0
  92. package/dist/agent-operations/asset-views.js +234 -0
  93. package/dist/agent-operations/author-scene.d.ts +157 -0
  94. package/dist/agent-operations/author-scene.d.ts.map +1 -0
  95. package/dist/agent-operations/author-scene.js +1076 -0
  96. package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
  97. package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
  98. package/dist/agent-operations/authored-scene-merge.js +96 -0
  99. package/dist/agent-operations/batch.d.ts +22 -0
  100. package/dist/agent-operations/batch.d.ts.map +1 -0
  101. package/dist/agent-operations/batch.js +104 -0
  102. package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
  103. package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
  104. package/dist/agent-operations/ceiling-object-observations.js +111 -0
  105. package/dist/agent-operations/corner-window.d.ts +19 -0
  106. package/dist/agent-operations/corner-window.d.ts.map +1 -0
  107. package/dist/agent-operations/corner-window.js +84 -0
  108. package/dist/agent-operations/create-roof.d.ts +32 -0
  109. package/dist/agent-operations/create-roof.d.ts.map +1 -0
  110. package/dist/agent-operations/create-roof.js +304 -0
  111. package/dist/agent-operations/create-room.d.ts +2 -0
  112. package/dist/agent-operations/create-room.d.ts.map +1 -1
  113. package/dist/agent-operations/create-room.js +73 -5
  114. package/dist/agent-operations/create-stair.d.ts +6 -28
  115. package/dist/agent-operations/create-stair.d.ts.map +1 -1
  116. package/dist/agent-operations/create-stair.js +187 -104
  117. package/dist/agent-operations/design-brief.d.ts +38 -0
  118. package/dist/agent-operations/design-brief.d.ts.map +1 -0
  119. package/dist/agent-operations/design-brief.js +300 -0
  120. package/dist/agent-operations/designs.d.ts +24 -0
  121. package/dist/agent-operations/designs.d.ts.map +1 -0
  122. package/dist/agent-operations/designs.js +48 -0
  123. package/dist/agent-operations/door-clearance.d.ts +16 -1
  124. package/dist/agent-operations/door-clearance.d.ts.map +1 -1
  125. package/dist/agent-operations/door-clearance.js +61 -4
  126. package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
  127. package/dist/agent-operations/duplicate-level.js +2 -1
  128. package/dist/agent-operations/find-by-type.d.ts +14 -7
  129. package/dist/agent-operations/find-by-type.d.ts.map +1 -1
  130. package/dist/agent-operations/find-by-type.js +266 -43
  131. package/dist/agent-operations/furnish-room.d.ts +22 -1
  132. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  133. package/dist/agent-operations/furnish-room.js +66 -19
  134. package/dist/agent-operations/furniture-kind.d.ts +22 -0
  135. package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
  136. package/dist/agent-operations/furniture-kind.js +69 -0
  137. package/dist/agent-operations/get-node.d.ts +5 -2
  138. package/dist/agent-operations/get-node.d.ts.map +1 -1
  139. package/dist/agent-operations/get-node.js +82 -10
  140. package/dist/agent-operations/hosted-services.d.ts +2 -1
  141. package/dist/agent-operations/hosted-services.d.ts.map +1 -1
  142. package/dist/agent-operations/index.d.ts +281 -69
  143. package/dist/agent-operations/index.d.ts.map +1 -1
  144. package/dist/agent-operations/index.js +66 -5
  145. package/dist/agent-operations/item-space.d.ts +22 -0
  146. package/dist/agent-operations/item-space.d.ts.map +1 -0
  147. package/dist/agent-operations/item-space.js +69 -0
  148. package/dist/agent-operations/layout-clearance.d.ts +52 -3
  149. package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
  150. package/dist/agent-operations/layout-clearance.js +340 -30
  151. package/dist/agent-operations/level-height-fill.d.ts +12 -0
  152. package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
  153. package/dist/agent-operations/level-height-fill.js +59 -0
  154. package/dist/agent-operations/level-reads.d.ts +5 -1
  155. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  156. package/dist/agent-operations/level-reads.js +10 -3
  157. package/dist/agent-operations/list-levels.d.ts.map +1 -1
  158. package/dist/agent-operations/list-levels.js +23 -0
  159. package/dist/agent-operations/material-preset.d.ts.map +1 -1
  160. package/dist/agent-operations/material-preset.js +3 -9
  161. package/dist/agent-operations/material-refs.d.ts +7 -1
  162. package/dist/agent-operations/material-refs.d.ts.map +1 -1
  163. package/dist/agent-operations/material-refs.js +10 -5
  164. package/dist/agent-operations/merge-windows.d.ts +6 -0
  165. package/dist/agent-operations/merge-windows.d.ts.map +1 -0
  166. package/dist/agent-operations/merge-windows.js +27 -0
  167. package/dist/agent-operations/move-roofs.d.ts +9 -0
  168. package/dist/agent-operations/move-roofs.d.ts.map +1 -0
  169. package/dist/agent-operations/move-roofs.js +29 -0
  170. package/dist/agent-operations/paint.d.ts +2 -1
  171. package/dist/agent-operations/paint.d.ts.map +1 -1
  172. package/dist/agent-operations/paint.js +163 -53
  173. package/dist/agent-operations/photo-elevation.d.ts +155 -0
  174. package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
  175. package/dist/agent-operations/photo-elevation.js +761 -0
  176. package/dist/agent-operations/place-in-room.d.ts +29 -0
  177. package/dist/agent-operations/place-in-room.d.ts.map +1 -0
  178. package/dist/agent-operations/place-in-room.js +403 -0
  179. package/dist/agent-operations/place-items.d.ts.map +1 -1
  180. package/dist/agent-operations/place-items.js +15 -2
  181. package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
  182. package/dist/agent-operations/plan-geometry.js +3 -0
  183. package/dist/agent-operations/point-context.d.ts +139 -0
  184. package/dist/agent-operations/point-context.d.ts.map +1 -0
  185. package/dist/agent-operations/point-context.js +1 -0
  186. package/dist/agent-operations/project-files.d.ts +9 -0
  187. package/dist/agent-operations/project-files.d.ts.map +1 -0
  188. package/dist/agent-operations/project-files.js +25 -0
  189. package/dist/agent-operations/record-made.d.ts +18 -0
  190. package/dist/agent-operations/record-made.d.ts.map +1 -0
  191. package/dist/agent-operations/record-made.js +28 -0
  192. package/dist/agent-operations/roof-footprint.d.ts +24 -0
  193. package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
  194. package/dist/agent-operations/roof-footprint.js +242 -0
  195. package/dist/agent-operations/roof-writes.d.ts +20 -0
  196. package/dist/agent-operations/roof-writes.d.ts.map +1 -0
  197. package/dist/agent-operations/roof-writes.js +165 -0
  198. package/dist/agent-operations/room-findings.d.ts +54 -0
  199. package/dist/agent-operations/room-findings.d.ts.map +1 -0
  200. package/dist/agent-operations/room-findings.js +143 -0
  201. package/dist/agent-operations/room-floor-script.d.ts +23 -0
  202. package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
  203. package/dist/agent-operations/room-floor-script.js +54 -0
  204. package/dist/agent-operations/room-structure.d.ts +2 -2
  205. package/dist/agent-operations/room-structure.d.ts.map +1 -1
  206. package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
  207. package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
  208. package/dist/agent-operations/scene-checkpoint.js +176 -0
  209. package/dist/agent-operations/scene-queries.d.ts +3750 -3319
  210. package/dist/agent-operations/scene-queries.d.ts.map +1 -1
  211. package/dist/agent-operations/scene-queries.js +13 -23
  212. package/dist/agent-operations/scene-review.d.ts +52 -0
  213. package/dist/agent-operations/scene-review.d.ts.map +1 -0
  214. package/dist/agent-operations/scene-review.js +106 -0
  215. package/dist/agent-operations/scene-view.d.ts +82 -15
  216. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  217. package/dist/agent-operations/scene-view.js +408 -51
  218. package/dist/agent-operations/search-assets.d.ts +2 -2
  219. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  220. package/dist/agent-operations/search-assets.js +4 -3
  221. package/dist/agent-operations/search-materials.d.ts +9 -3
  222. package/dist/agent-operations/search-materials.d.ts.map +1 -1
  223. package/dist/agent-operations/search-materials.js +83 -29
  224. package/dist/agent-operations/set-checkpoint.d.ts +9 -0
  225. package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
  226. package/dist/agent-operations/set-checkpoint.js +31 -0
  227. package/dist/agent-operations/set-ground-level.d.ts +12 -0
  228. package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
  229. package/dist/agent-operations/set-ground-level.js +61 -0
  230. package/dist/agent-operations/site.d.ts +21 -0
  231. package/dist/agent-operations/site.d.ts.map +1 -0
  232. package/dist/agent-operations/site.js +123 -0
  233. package/dist/agent-operations/types.d.ts +66 -7
  234. package/dist/agent-operations/types.d.ts.map +1 -1
  235. package/dist/agent-operations/verify-scene.d.ts +39 -5
  236. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  237. package/dist/agent-operations/verify-scene.js +223 -44
  238. package/dist/agent-operations/wall-face-script.d.ts +28 -0
  239. package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
  240. package/dist/agent-operations/wall-face-script.js +62 -0
  241. package/dist/agent-operations/wall-object-observations.d.ts +41 -0
  242. package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
  243. package/dist/agent-operations/wall-object-observations.js +249 -0
  244. package/dist/agent-operations/wall-opening.d.ts +23 -23
  245. package/dist/agent-operations/wall-opening.d.ts.map +1 -1
  246. package/dist/agent-operations/wall-skirting.d.ts +24 -0
  247. package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
  248. package/dist/agent-operations/wall-skirting.js +85 -0
  249. package/dist/agent-tools/add-object.d.ts +11 -7
  250. package/dist/agent-tools/add-object.d.ts.map +1 -1
  251. package/dist/agent-tools/add-object.js +17 -11
  252. package/dist/agent-tools/assets.d.ts +8 -0
  253. package/dist/agent-tools/assets.d.ts.map +1 -1
  254. package/dist/agent-tools/assets.js +13 -1
  255. package/dist/agent-tools/author-scene.d.ts +651 -0
  256. package/dist/agent-tools/author-scene.d.ts.map +1 -0
  257. package/dist/agent-tools/author-scene.js +252 -0
  258. package/dist/agent-tools/batch.d.ts +25 -0
  259. package/dist/agent-tools/batch.d.ts.map +1 -0
  260. package/dist/agent-tools/batch.js +61 -0
  261. package/dist/agent-tools/checkpoints.d.ts +13 -0
  262. package/dist/agent-tools/checkpoints.d.ts.map +1 -0
  263. package/dist/agent-tools/checkpoints.js +16 -0
  264. package/dist/agent-tools/clear-scene.d.ts.map +1 -1
  265. package/dist/agent-tools/collections.d.ts +6 -6
  266. package/dist/agent-tools/collections.d.ts.map +1 -1
  267. package/dist/agent-tools/columns.d.ts +18 -18
  268. package/dist/agent-tools/columns.js +2 -2
  269. package/dist/agent-tools/corner-window.d.ts +46 -0
  270. package/dist/agent-tools/corner-window.d.ts.map +1 -0
  271. package/dist/agent-tools/corner-window.js +47 -0
  272. package/dist/agent-tools/create-room.d.ts +26 -25
  273. package/dist/agent-tools/create-room.d.ts.map +1 -1
  274. package/dist/agent-tools/create-room.js +11 -4
  275. package/dist/agent-tools/design-brief.d.ts +408 -0
  276. package/dist/agent-tools/design-brief.d.ts.map +1 -0
  277. package/dist/agent-tools/design-brief.js +149 -0
  278. package/dist/agent-tools/designs.d.ts +34 -0
  279. package/dist/agent-tools/designs.d.ts.map +1 -0
  280. package/dist/agent-tools/designs.js +50 -0
  281. package/dist/agent-tools/fences.d.ts +28 -0
  282. package/dist/agent-tools/fences.d.ts.map +1 -0
  283. package/dist/agent-tools/fences.js +31 -0
  284. package/dist/agent-tools/find-by-type.d.ts +8 -1
  285. package/dist/agent-tools/find-by-type.d.ts.map +1 -1
  286. package/dist/agent-tools/find-by-type.js +23 -2
  287. package/dist/agent-tools/furnish-room.d.ts +10 -8
  288. package/dist/agent-tools/furnish-room.d.ts.map +1 -1
  289. package/dist/agent-tools/furnish-room.js +3 -1
  290. package/dist/agent-tools/hosted-services.d.ts +177 -141
  291. package/dist/agent-tools/hosted-services.d.ts.map +1 -1
  292. package/dist/agent-tools/hosted-services.js +47 -14
  293. package/dist/agent-tools/index.d.ts +894 -215
  294. package/dist/agent-tools/index.d.ts.map +1 -1
  295. package/dist/agent-tools/index.js +47 -3
  296. package/dist/agent-tools/levels.d.ts +11 -3
  297. package/dist/agent-tools/levels.d.ts.map +1 -1
  298. package/dist/agent-tools/levels.js +16 -5
  299. package/dist/agent-tools/measurement.d.ts +38 -20
  300. package/dist/agent-tools/measurement.d.ts.map +1 -1
  301. package/dist/agent-tools/measurement.js +117 -67
  302. package/dist/agent-tools/merge-windows.d.ts +10 -0
  303. package/dist/agent-tools/merge-windows.d.ts.map +1 -0
  304. package/dist/agent-tools/merge-windows.js +12 -0
  305. package/dist/agent-tools/nodes.d.ts.map +1 -1
  306. package/dist/agent-tools/nodes.js +1 -1
  307. package/dist/agent-tools/notation-inventory.d.ts +16 -0
  308. package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
  309. package/dist/agent-tools/notation-inventory.js +105 -0
  310. package/dist/agent-tools/paint.d.ts +5 -5
  311. package/dist/agent-tools/paint.d.ts.map +1 -1
  312. package/dist/agent-tools/paint.js +1 -1
  313. package/dist/agent-tools/photo-elevation.d.ts +32 -0
  314. package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
  315. package/dist/agent-tools/photo-elevation.js +73 -0
  316. package/dist/agent-tools/place-in-room.d.ts +35 -0
  317. package/dist/agent-tools/place-in-room.d.ts.map +1 -0
  318. package/dist/agent-tools/place-in-room.js +61 -0
  319. package/dist/agent-tools/place-items.d.ts +1 -1
  320. package/dist/agent-tools/place-items.js +2 -2
  321. package/dist/agent-tools/project-files.d.ts +189 -0
  322. package/dist/agent-tools/project-files.d.ts.map +1 -0
  323. package/dist/agent-tools/project-files.js +99 -0
  324. package/dist/agent-tools/refusal.d.ts.map +1 -1
  325. package/dist/agent-tools/retired.d.ts +21 -0
  326. package/dist/agent-tools/retired.d.ts.map +1 -0
  327. package/dist/agent-tools/retired.js +29 -0
  328. package/dist/agent-tools/roofs.d.ts +100 -0
  329. package/dist/agent-tools/roofs.d.ts.map +1 -0
  330. package/dist/agent-tools/roofs.js +96 -0
  331. package/dist/agent-tools/room-structure.d.ts +46 -38
  332. package/dist/agent-tools/room-structure.d.ts.map +1 -1
  333. package/dist/agent-tools/room-structure.js +30 -27
  334. package/dist/agent-tools/search-materials.d.ts +22 -3
  335. package/dist/agent-tools/search-materials.d.ts.map +1 -1
  336. package/dist/agent-tools/search-materials.js +13 -14
  337. package/dist/agent-tools/site.d.ts +27 -0
  338. package/dist/agent-tools/site.d.ts.map +1 -0
  339. package/dist/agent-tools/site.js +40 -0
  340. package/dist/agent-tools/sources.d.ts +12 -0
  341. package/dist/agent-tools/sources.d.ts.map +1 -0
  342. package/dist/agent-tools/sources.js +11 -0
  343. package/dist/agent-tools/stairs.d.ts +48 -28
  344. package/dist/agent-tools/stairs.d.ts.map +1 -1
  345. package/dist/agent-tools/stairs.js +65 -22
  346. package/dist/agent-tools/verify-scene.d.ts.map +1 -1
  347. package/dist/agent-tools/verify-scene.js +1 -1
  348. package/dist/agent-tools/view-scene.d.ts +50 -12
  349. package/dist/agent-tools/view-scene.d.ts.map +1 -1
  350. package/dist/agent-tools/view-scene.js +74 -31
  351. package/dist/agent-tools/wall-openings.d.ts +77 -73
  352. package/dist/agent-tools/wall-openings.d.ts.map +1 -1
  353. package/dist/agent-tools/wall-openings.js +9 -5
  354. package/dist/agent-tools/walls.d.ts +4 -4
  355. package/dist/agent-tools/walls.d.ts.map +1 -1
  356. package/dist/agent-tools/walls.js +7 -2
  357. package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
  358. package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
  359. package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
  360. package/dist/building/corner-window.d.ts +56 -0
  361. package/dist/building/corner-window.d.ts.map +1 -0
  362. package/dist/building/corner-window.js +179 -0
  363. package/dist/building/ground-level.d.ts +26 -0
  364. package/dist/building/ground-level.d.ts.map +1 -0
  365. package/dist/building/ground-level.js +58 -0
  366. package/dist/building/index.d.ts +5 -0
  367. package/dist/building/index.d.ts.map +1 -1
  368. package/dist/building/index.js +5 -0
  369. package/dist/building/level-duplication.d.ts +7472 -6613
  370. package/dist/building/level-duplication.d.ts.map +1 -1
  371. package/dist/building/level-duplication.js +18 -4
  372. package/dist/building/level-insertion.d.ts +55 -0
  373. package/dist/building/level-insertion.d.ts.map +1 -0
  374. package/dist/building/level-insertion.js +35 -0
  375. package/dist/building/merge-windows.d.ts +58 -0
  376. package/dist/building/merge-windows.d.ts.map +1 -0
  377. package/dist/building/merge-windows.js +189 -0
  378. package/dist/building/opening-style-presets.d.ts +2 -2
  379. package/dist/building/opening-style-presets.d.ts.map +1 -1
  380. package/dist/building/photo-elevation.d.ts +125 -0
  381. package/dist/building/photo-elevation.d.ts.map +1 -0
  382. package/dist/building/photo-elevation.js +404 -0
  383. package/dist/building/wall-gaps.d.ts +13 -0
  384. package/dist/building/wall-gaps.d.ts.map +1 -0
  385. package/dist/building/wall-gaps.js +158 -0
  386. package/dist/building/wall-openings.d.ts +154 -119
  387. package/dist/building/wall-openings.d.ts.map +1 -1
  388. package/dist/building/wall-openings.js +37 -9
  389. package/dist/capture/schema.d.ts +22 -22
  390. package/dist/capture/source.d.ts.map +1 -1
  391. package/dist/capture/source.js +1 -1
  392. package/dist/commands/structure/create-zone.d.ts +12 -1
  393. package/dist/commands/structure/create-zone.d.ts.map +1 -1
  394. package/dist/commands/structure/create-zone.js +49 -0
  395. package/dist/commands/structure/divide-zone.d.ts +3 -3
  396. package/dist/commands/structure/index.d.ts +1 -1
  397. package/dist/commands/structure/index.d.ts.map +1 -1
  398. package/dist/commands/structure/index.js +1 -1
  399. package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
  400. package/dist/commands/structure/set-zone-intent.d.ts +4 -0
  401. package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
  402. package/dist/commands/structure/set-zone-intent.js +19 -0
  403. package/dist/commands/structure/shared.d.ts +3642 -3213
  404. package/dist/commands/structure/shared.d.ts.map +1 -1
  405. package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
  406. package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
  407. package/dist/contracts/reference-inventory.d.ts.map +1 -1
  408. package/dist/contracts/reference-inventory.js +106 -26
  409. package/dist/events/bus.d.ts +22 -3
  410. package/dist/events/bus.d.ts.map +1 -1
  411. package/dist/events/capture-sessions.d.ts +5 -0
  412. package/dist/events/capture-sessions.d.ts.map +1 -0
  413. package/dist/events/capture-sessions.js +31 -0
  414. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  415. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
  416. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  417. package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
  418. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
  419. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  420. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  421. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  422. package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
  423. package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
  424. package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
  425. package/dist/index.d.ts +37 -9
  426. package/dist/index.d.ts.map +1 -1
  427. package/dist/index.js +36 -9
  428. package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
  429. package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
  430. package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
  431. package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
  432. package/dist/lib/angle-accumulator.d.ts.map +1 -1
  433. package/dist/lib/artifact-store.d.ts.map +1 -1
  434. package/dist/lib/below-grade-footprints.d.ts +65 -0
  435. package/dist/lib/below-grade-footprints.d.ts.map +1 -0
  436. package/dist/lib/below-grade-footprints.js +181 -0
  437. package/dist/lib/building-footprint.d.ts +33 -0
  438. package/dist/lib/building-footprint.d.ts.map +1 -0
  439. package/dist/lib/building-footprint.js +89 -0
  440. package/dist/lib/corner-pair.d.ts +1129 -0
  441. package/dist/lib/corner-pair.d.ts.map +1 -0
  442. package/dist/lib/corner-pair.js +130 -0
  443. package/dist/lib/corner-snap.d.ts +54 -0
  444. package/dist/lib/corner-snap.d.ts.map +1 -0
  445. package/dist/lib/corner-snap.js +125 -0
  446. package/dist/lib/critically-damped.d.ts +11 -0
  447. package/dist/lib/critically-damped.d.ts.map +1 -0
  448. package/dist/lib/critically-damped.js +14 -0
  449. package/dist/lib/deepest-drawn.d.ts +18 -0
  450. package/dist/lib/deepest-drawn.d.ts.map +1 -0
  451. package/dist/lib/deepest-drawn.js +65 -0
  452. package/dist/lib/door-operation.d.ts +1 -1
  453. package/dist/lib/exterior-wall-loops.d.ts +17 -0
  454. package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
  455. package/dist/lib/exterior-wall-loops.js +334 -0
  456. package/dist/lib/finish-script.d.ts +61 -0
  457. package/dist/lib/finish-script.d.ts.map +1 -0
  458. package/dist/lib/finish-script.js +86 -0
  459. package/dist/lib/floor-intent-changes.d.ts.map +1 -1
  460. package/dist/lib/floor-intent-changes.js +4 -4
  461. package/dist/lib/floor-plate-paint.d.ts +3 -1
  462. package/dist/lib/floor-plate-paint.d.ts.map +1 -1
  463. package/dist/lib/floor-plate-paint.js +24 -4
  464. package/dist/lib/floor-plates.d.ts +50 -50
  465. package/dist/lib/floor-script.d.ts +24 -0
  466. package/dist/lib/floor-script.d.ts.map +1 -0
  467. package/dist/lib/floor-script.js +51 -0
  468. package/dist/lib/foundation-construction.d.ts +73 -0
  469. package/dist/lib/foundation-construction.d.ts.map +1 -0
  470. package/dist/lib/foundation-construction.js +242 -0
  471. package/dist/lib/foundation-standard.d.ts +30 -0
  472. package/dist/lib/foundation-standard.d.ts.map +1 -0
  473. package/dist/lib/foundation-standard.js +30 -0
  474. package/dist/lib/foundation-wall.d.ts +36 -0
  475. package/dist/lib/foundation-wall.d.ts.map +1 -0
  476. package/dist/lib/foundation-wall.js +66 -0
  477. package/dist/lib/generic-foundation.d.ts +40 -0
  478. package/dist/lib/generic-foundation.d.ts.map +1 -0
  479. package/dist/lib/generic-foundation.js +200 -0
  480. package/dist/lib/geometry-script-node.d.ts +32 -3
  481. package/dist/lib/geometry-script-node.d.ts.map +1 -1
  482. package/dist/lib/geometry-script-node.js +26 -0
  483. package/dist/lib/grade-standing.d.ts +38 -0
  484. package/dist/lib/grade-standing.d.ts.map +1 -0
  485. package/dist/lib/grade-standing.js +137 -0
  486. package/dist/lib/ground-level.d.ts +20 -0
  487. package/dist/lib/ground-level.d.ts.map +1 -0
  488. package/dist/lib/ground-level.js +49 -0
  489. package/dist/lib/ground-over-part.d.ts +13 -0
  490. package/dist/lib/ground-over-part.d.ts.map +1 -0
  491. package/dist/lib/ground-over-part.js +94 -0
  492. package/dist/lib/ground-seat.d.ts +47 -0
  493. package/dist/lib/ground-seat.d.ts.map +1 -0
  494. package/dist/lib/ground-seat.js +61 -0
  495. package/dist/lib/ground-window.d.ts +39 -0
  496. package/dist/lib/ground-window.d.ts.map +1 -0
  497. package/dist/lib/ground-window.js +147 -0
  498. package/dist/lib/opening-floor-datum.d.ts.map +1 -1
  499. package/dist/lib/opening-floor-datum.js +2 -3
  500. package/dist/lib/own-floor-intent.d.ts.map +1 -1
  501. package/dist/lib/own-floor-intent.js +4 -4
  502. package/dist/lib/plate-surface.d.ts.map +1 -1
  503. package/dist/lib/plate-surface.js +3 -1
  504. package/dist/lib/point-ask.d.ts +9 -0
  505. package/dist/lib/point-ask.d.ts.map +1 -0
  506. package/dist/lib/point-ask.js +36 -0
  507. package/dist/lib/room-drawn-floor.d.ts +1 -1
  508. package/dist/lib/room-drawn-floor.d.ts.map +1 -1
  509. package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
  510. package/dist/lib/room-floor-feasibility.js +3 -3
  511. package/dist/lib/room-graph.d.ts.map +1 -1
  512. package/dist/lib/room-graph.js +2 -0
  513. package/dist/lib/room-name.d.ts +2 -0
  514. package/dist/lib/room-name.d.ts.map +1 -1
  515. package/dist/lib/room-name.js +2 -0
  516. package/dist/lib/room-topology-index.d.ts.map +1 -1
  517. package/dist/lib/room-topology-index.js +1 -1
  518. package/dist/lib/room-zone-adoption.d.ts.map +1 -1
  519. package/dist/lib/script-inputs-key.d.ts +3 -0
  520. package/dist/lib/script-inputs-key.d.ts.map +1 -0
  521. package/dist/lib/script-inputs-key.js +13 -0
  522. package/dist/lib/setback-envelope.d.ts +95 -5
  523. package/dist/lib/setback-envelope.d.ts.map +1 -1
  524. package/dist/lib/setback-envelope.js +351 -35
  525. package/dist/lib/site-flatwork.d.ts +11 -0
  526. package/dist/lib/site-flatwork.d.ts.map +1 -0
  527. package/dist/lib/site-flatwork.js +11 -0
  528. package/dist/lib/site-ground-height.d.ts +13 -0
  529. package/dist/lib/site-ground-height.d.ts.map +1 -0
  530. package/dist/lib/site-ground-height.js +16 -0
  531. package/dist/lib/site-placement.d.ts +362 -0
  532. package/dist/lib/site-placement.d.ts.map +1 -0
  533. package/dist/lib/site-placement.js +942 -0
  534. package/dist/lib/snap-ease.d.ts +20 -0
  535. package/dist/lib/snap-ease.d.ts.map +1 -0
  536. package/dist/lib/snap-ease.js +50 -0
  537. package/dist/lib/structure-kernel.d.ts +1 -1
  538. package/dist/lib/structure-kernel.d.ts.map +1 -1
  539. package/dist/lib/structure-kernel.js +2 -0
  540. package/dist/lib/surface-support-references.d.ts +4 -0
  541. package/dist/lib/surface-support-references.d.ts.map +1 -0
  542. package/dist/lib/surface-support-references.js +19 -0
  543. package/dist/lib/terrain-support-query.d.ts +10 -0
  544. package/dist/lib/terrain-support-query.d.ts.map +1 -1
  545. package/dist/lib/terrain-support-query.js +1 -1
  546. package/dist/lib/wall-face-script.d.ts +66 -0
  547. package/dist/lib/wall-face-script.d.ts.map +1 -0
  548. package/dist/lib/wall-face-script.js +235 -0
  549. package/dist/lib/zone-colors.d.ts +1 -1
  550. package/dist/lib/zone-colors.d.ts.map +1 -1
  551. package/dist/lib/zone-quantities.d.ts.map +1 -1
  552. package/dist/lib/zone-quantities.js +4 -5
  553. package/dist/material-kinds.d.ts +9 -0
  554. package/dist/material-kinds.d.ts.map +1 -0
  555. package/dist/material-kinds.js +30 -0
  556. package/dist/material-library.d.ts +4 -4
  557. package/dist/material-library.d.ts.map +1 -1
  558. package/dist/material-library.js +72 -26
  559. package/dist/node-slots/index.d.ts +1 -0
  560. package/dist/node-slots/index.d.ts.map +1 -1
  561. package/dist/node-slots/index.js +7 -1
  562. package/dist/node-slots/roof.d.ts +5 -0
  563. package/dist/node-slots/roof.d.ts.map +1 -0
  564. package/dist/node-slots/roof.js +12 -0
  565. package/dist/node-slots/stair.d.ts +2 -0
  566. package/dist/node-slots/stair.d.ts.map +1 -1
  567. package/dist/node-slots/stair.js +6 -2
  568. package/dist/procedural-items/design-placement.d.ts.map +1 -1
  569. package/dist/procedural-items/design.d.ts +19 -19
  570. package/dist/procedural-items/fixtures.d.ts +297 -297
  571. package/dist/procedural-items/fixtures.d.ts.map +1 -1
  572. package/dist/procedural-items/integration.d.ts +106 -106
  573. package/dist/procedural-items/joints.d.ts +4 -4
  574. package/dist/procedural-items/library-colors.d.ts +22 -22
  575. package/dist/procedural-items/library-colors.d.ts.map +1 -1
  576. package/dist/procedural-items/motion-controller.d.ts.map +1 -1
  577. package/dist/procedural-items/node.d.ts +291 -291
  578. package/dist/procedural-items/query.d.ts +1 -1
  579. package/dist/procedural-items/query.d.ts.map +1 -1
  580. package/dist/procedural-items/recipe.d.ts +11 -11
  581. package/dist/procedural-items/recipe.d.ts.map +1 -1
  582. package/dist/procedural-items/section.d.ts.map +1 -1
  583. package/dist/registry/index.d.ts +1 -1
  584. package/dist/registry/index.d.ts.map +1 -1
  585. package/dist/registry/scene-api.d.ts +1 -0
  586. package/dist/registry/scene-api.d.ts.map +1 -1
  587. package/dist/registry/scene-api.js +3 -0
  588. package/dist/registry/subtree.d.ts.map +1 -1
  589. package/dist/registry/subtree.js +2 -0
  590. package/dist/registry/types.d.ts +120 -1
  591. package/dist/registry/types.d.ts.map +1 -1
  592. package/dist/schema/assembly.d.ts +41 -41
  593. package/dist/schema/asset-url.d.ts +1 -1
  594. package/dist/schema/asset-url.d.ts.map +1 -1
  595. package/dist/schema/base.d.ts +9 -9
  596. package/dist/schema/base.d.ts.map +1 -1
  597. package/dist/schema/camera.d.ts +1 -1
  598. package/dist/schema/collection-templates.d.ts +20 -20
  599. package/dist/schema/collection-templates.d.ts.map +1 -1
  600. package/dist/schema/geometry-metadata.d.ts +7 -7
  601. package/dist/schema/geometry-metadata.d.ts.map +1 -1
  602. package/dist/schema/geometry-source.d.ts +26 -16
  603. package/dist/schema/geometry-source.d.ts.map +1 -1
  604. package/dist/schema/geometry-source.js +14 -0
  605. package/dist/schema/index.d.ts +10 -7
  606. package/dist/schema/index.d.ts.map +1 -1
  607. package/dist/schema/index.js +10 -7
  608. package/dist/schema/material.d.ts +33 -33
  609. package/dist/schema/nodes/barrel-roof.d.ts +3 -0
  610. package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
  611. package/dist/schema/nodes/barrel-roof.js +11 -0
  612. package/dist/schema/nodes/block.d.ts +8 -8
  613. package/dist/schema/nodes/box-vent.d.ts +13 -13
  614. package/dist/schema/nodes/building.d.ts +9 -8
  615. package/dist/schema/nodes/building.d.ts.map +1 -1
  616. package/dist/schema/nodes/building.js +2 -0
  617. package/dist/schema/nodes/cabinet.d.ts +130 -129
  618. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  619. package/dist/schema/nodes/cabinet.js +1 -1
  620. package/dist/schema/nodes/ceiling.d.ts +15 -15
  621. package/dist/schema/nodes/chimney.d.ts +23 -23
  622. package/dist/schema/nodes/column.d.ts +207 -199
  623. package/dist/schema/nodes/column.d.ts.map +1 -1
  624. package/dist/schema/nodes/column.js +2 -0
  625. package/dist/schema/nodes/construction-dimension.d.ts +34 -34
  626. package/dist/schema/nodes/cupola.d.ts +15 -15
  627. package/dist/schema/nodes/curtain-wall.d.ts +21 -20
  628. package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
  629. package/dist/schema/nodes/curtain-wall.js +23 -0
  630. package/dist/schema/nodes/door.d.ts +50 -43
  631. package/dist/schema/nodes/door.d.ts.map +1 -1
  632. package/dist/schema/nodes/door.js +19 -0
  633. package/dist/schema/nodes/dormer.d.ts +37 -36
  634. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  635. package/dist/schema/nodes/downspout.d.ts +17 -17
  636. package/dist/schema/nodes/duct-fitting.d.ts +24 -24
  637. package/dist/schema/nodes/duct-segment.d.ts +14 -14
  638. package/dist/schema/nodes/duct-terminal.d.ts +12 -12
  639. package/dist/schema/nodes/elevator.d.ts +15 -15
  640. package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
  641. package/dist/schema/nodes/fence-feature.d.ts +37 -37
  642. package/dist/schema/nodes/fence-types.d.ts +32 -0
  643. package/dist/schema/nodes/fence-types.d.ts.map +1 -0
  644. package/dist/schema/nodes/fence-types.js +22 -0
  645. package/dist/schema/nodes/fence.d.ts +43 -72
  646. package/dist/schema/nodes/fence.d.ts.map +1 -1
  647. package/dist/schema/nodes/fence.js +4 -20
  648. package/dist/schema/nodes/floor-opening.d.ts +8 -8
  649. package/dist/schema/nodes/guide.d.ts +8 -8
  650. package/dist/schema/nodes/gutter.d.ts +14 -14
  651. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  652. package/dist/schema/nodes/gutter.js +6 -5
  653. package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
  654. package/dist/schema/nodes/imported-mesh.d.ts +8 -8
  655. package/dist/schema/nodes/item.d.ts +30 -25
  656. package/dist/schema/nodes/item.d.ts.map +1 -1
  657. package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
  658. package/dist/schema/nodes/level.d.ts +9 -9
  659. package/dist/schema/nodes/lineset.d.ts +8 -8
  660. package/dist/schema/nodes/liquid-line.d.ts +8 -8
  661. package/dist/schema/nodes/measurement.d.ts +8 -8
  662. package/dist/schema/nodes/opening-types.d.ts +13 -13
  663. package/dist/schema/nodes/opening-types.d.ts.map +1 -1
  664. package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
  665. package/dist/schema/nodes/pipe-segment.d.ts +11 -11
  666. package/dist/schema/nodes/pipe-trap.d.ts +9 -9
  667. package/dist/schema/nodes/ridge-vent.d.ts +14 -14
  668. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  669. package/dist/schema/nodes/ridge-vent.js +3 -1
  670. package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
  671. package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
  672. package/dist/schema/nodes/roof-glazing-config.js +34 -0
  673. package/dist/schema/nodes/roof-glazing.d.ts +57 -0
  674. package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
  675. package/dist/schema/nodes/roof-glazing.js +514 -0
  676. package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
  677. package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
  678. package/dist/schema/nodes/roof-segment-resize.js +21 -0
  679. package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
  680. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  681. package/dist/schema/nodes/roof-segment-shape.js +44 -0
  682. package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
  683. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  684. package/dist/schema/nodes/roof-segment-walls.js +24 -0
  685. package/dist/schema/nodes/roof-segment.d.ts +153 -46
  686. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  687. package/dist/schema/nodes/roof-segment.js +91 -20
  688. package/dist/schema/nodes/roof-types.d.ts +14 -0
  689. package/dist/schema/nodes/roof-types.d.ts.map +1 -0
  690. package/dist/schema/nodes/roof-types.js +14 -0
  691. package/dist/schema/nodes/roof.d.ts +49 -49
  692. package/dist/schema/nodes/scan.d.ts +8 -8
  693. package/dist/schema/nodes/separator.d.ts +8 -8
  694. package/dist/schema/nodes/shelf.d.ts +16 -16
  695. package/dist/schema/nodes/site-facts.d.ts +64 -0
  696. package/dist/schema/nodes/site-facts.d.ts.map +1 -0
  697. package/dist/schema/nodes/site-facts.js +73 -0
  698. package/dist/schema/nodes/site.d.ts +105 -63
  699. package/dist/schema/nodes/site.d.ts.map +1 -1
  700. package/dist/schema/nodes/site.js +7 -70
  701. package/dist/schema/nodes/skylight.d.ts +41 -41
  702. package/dist/schema/nodes/skylight.d.ts.map +1 -1
  703. package/dist/schema/nodes/slab.d.ts +21 -21
  704. package/dist/schema/nodes/solar-panel.d.ts +21 -21
  705. package/dist/schema/nodes/spawn.d.ts +8 -8
  706. package/dist/schema/nodes/stair-construction.d.ts +3 -3
  707. package/dist/schema/nodes/stair-defaults.d.ts +16 -0
  708. package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
  709. package/dist/schema/nodes/stair-defaults.js +15 -0
  710. package/dist/schema/nodes/stair-segment.d.ts +22 -22
  711. package/dist/schema/nodes/stair-types.d.ts +29 -0
  712. package/dist/schema/nodes/stair-types.d.ts.map +1 -0
  713. package/dist/schema/nodes/stair-types.js +23 -0
  714. package/dist/schema/nodes/stair.d.ts +51 -75
  715. package/dist/schema/nodes/stair.d.ts.map +1 -1
  716. package/dist/schema/nodes/stair.js +6 -20
  717. package/dist/schema/nodes/structural-grid.d.ts +8 -8
  718. package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
  719. package/dist/schema/nodes/turbine-vent.d.ts +13 -13
  720. package/dist/schema/nodes/unit.d.ts +10 -10
  721. package/dist/schema/nodes/unit.d.ts.map +1 -1
  722. package/dist/schema/nodes/wall.d.ts +479 -146
  723. package/dist/schema/nodes/wall.d.ts.map +1 -1
  724. package/dist/schema/nodes/wall.js +19 -0
  725. package/dist/schema/nodes/window.d.ts +55 -39
  726. package/dist/schema/nodes/window.d.ts.map +1 -1
  727. package/dist/schema/nodes/window.js +10 -0
  728. package/dist/schema/nodes/zone.d.ts +231 -12
  729. package/dist/schema/nodes/zone.d.ts.map +1 -1
  730. package/dist/schema/nodes/zone.js +10 -0
  731. package/dist/schema/provenance.d.ts +21 -21
  732. package/dist/schema/scene-material.d.ts +5 -5
  733. package/dist/schema/site-presentation.d.ts +100 -0
  734. package/dist/schema/site-presentation.d.ts.map +1 -0
  735. package/dist/schema/site-presentation.js +83 -0
  736. package/dist/schema/types.d.ts +1954 -1414
  737. package/dist/schema/types.d.ts.map +1 -1
  738. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
  739. package/dist/services/index.d.ts +5 -1
  740. package/dist/services/index.d.ts.map +1 -1
  741. package/dist/services/index.js +5 -1
  742. package/dist/services/level-height.d.ts.map +1 -1
  743. package/dist/services/level-height.js +7 -3
  744. package/dist/services/port-connectivity.d.ts +4 -0
  745. package/dist/services/port-connectivity.d.ts.map +1 -1
  746. package/dist/services/port-connectivity.js +35 -0
  747. package/dist/services/project-file-sink.d.ts +9 -0
  748. package/dist/services/project-file-sink.d.ts.map +1 -0
  749. package/dist/services/project-file-sink.js +13 -0
  750. package/dist/services/roof-bearing.d.ts +62 -0
  751. package/dist/services/roof-bearing.d.ts.map +1 -0
  752. package/dist/services/roof-bearing.js +234 -0
  753. package/dist/services/roof-level.d.ts +121 -0
  754. package/dist/services/roof-level.d.ts.map +1 -0
  755. package/dist/services/roof-level.js +280 -0
  756. package/dist/services/roof-move.d.ts +83 -0
  757. package/dist/services/roof-move.d.ts.map +1 -0
  758. package/dist/services/roof-move.js +316 -0
  759. package/dist/services/stair-surface-snap.d.ts +14 -0
  760. package/dist/services/stair-surface-snap.d.ts.map +1 -0
  761. package/dist/services/stair-surface-snap.js +116 -0
  762. package/dist/services/storey-datum.d.ts +12 -0
  763. package/dist/services/storey-datum.d.ts.map +1 -0
  764. package/dist/services/storey-datum.js +18 -0
  765. package/dist/services/storey.d.ts +51 -5
  766. package/dist/services/storey.d.ts.map +1 -1
  767. package/dist/services/storey.js +125 -8
  768. package/dist/solar-panel-presets.d.ts +2 -2
  769. package/dist/store/actions/node-actions.d.ts +3613 -3182
  770. package/dist/store/actions/node-actions.d.ts.map +1 -1
  771. package/dist/store/actions/node-actions.js +46 -1
  772. package/dist/store/derived-node-guard.d.ts.map +1 -1
  773. package/dist/store/history-control.d.ts +39 -0
  774. package/dist/store/history-control.d.ts.map +1 -1
  775. package/dist/store/history-control.js +84 -4
  776. package/dist/store/scene-annotations.d.ts +7267 -6409
  777. package/dist/store/scene-annotations.d.ts.map +1 -1
  778. package/dist/store/scene-preview.d.ts +16 -0
  779. package/dist/store/scene-preview.d.ts.map +1 -0
  780. package/dist/store/scene-preview.js +144 -0
  781. package/dist/store/use-live-node-overrides.d.ts.map +1 -1
  782. package/dist/store/use-live-terrain.d.ts.map +1 -1
  783. package/dist/store/use-live-transforms.d.ts.map +1 -1
  784. package/dist/store/use-scene.d.ts.map +1 -1
  785. package/dist/store/use-scene.js +37 -4
  786. package/dist/systems/elevator/elevator-dispatch.js +1 -1
  787. package/dist/systems/fence/fence-features.d.ts.map +1 -1
  788. package/dist/systems/owned-floor-openings.d.ts.map +1 -1
  789. package/dist/systems/owned-floor-openings.js +24 -3
  790. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
  791. package/dist/systems/roof/roof-elevation-system.js +9 -3
  792. package/dist/systems/roof/roof-elevation.d.ts +5 -0
  793. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  794. package/dist/systems/roof/roof-elevation.js +91 -62
  795. package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
  796. package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
  797. package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
  798. package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
  799. package/dist/systems/slab/slab-support.d.ts +6 -3
  800. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  801. package/dist/systems/slab/slab-support.js +78 -10
  802. package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
  803. package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
  804. package/dist/systems/stair/stair-footprint.d.ts +6 -0
  805. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  806. package/dist/systems/stair/stair-footprint.js +27 -14
  807. package/dist/systems/stair/stair-layout.d.ts +2 -2
  808. package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
  809. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  810. package/dist/systems/stair/stair-presets.d.ts +73 -65
  811. package/dist/systems/stair/stair-presets.d.ts.map +1 -1
  812. package/dist/systems/stair/stair-presets.js +16 -9
  813. package/dist/systems/stair/stair-rail-path.d.ts +1 -1
  814. package/dist/systems/stair/stair-rise-query.d.ts +16 -0
  815. package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
  816. package/dist/systems/stair/stair-rise-query.js +57 -7
  817. package/dist/systems/stair/stair-sizing.d.ts +101 -99
  818. package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
  819. package/dist/systems/wall/wall-assembly.d.ts +11 -0
  820. package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
  821. package/dist/systems/wall/wall-assembly.js +21 -0
  822. package/dist/systems/wall/wall-curve.d.ts +5 -0
  823. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  824. package/dist/systems/wall/wall-curve.js +13 -0
  825. package/dist/systems/wall/wall-frame.d.ts.map +1 -1
  826. package/dist/systems/wall/wall-frame.js +8 -0
  827. package/dist/systems/wall/wall-room-sides.d.ts +8 -0
  828. package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
  829. package/dist/systems/wall/wall-room-sides.js +60 -7
  830. package/dist/systems/wall/wall-top.d.ts +7 -4
  831. package/dist/systems/wall/wall-top.d.ts.map +1 -1
  832. package/dist/systems/wall/wall-top.js +14 -6
  833. package/dist/systems/wall/wall-topology.d.ts +4 -0
  834. package/dist/systems/wall/wall-topology.d.ts.map +1 -1
  835. package/dist/systems/wall/wall-topology.js +4 -2
  836. package/dist/systems/wall/wall-trim.d.ts +7 -0
  837. package/dist/systems/wall/wall-trim.d.ts.map +1 -0
  838. package/dist/systems/wall/wall-trim.js +10 -0
  839. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  840. package/dist/utils/clone-scene-graph.js +8 -0
  841. package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
  842. package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
  843. package/dist/utils/floor-piece-adoption.d.ts +2 -2
  844. package/dist/utils/floor-plate-migration.d.ts +3746 -3317
  845. package/dist/utils/floor-plate-migration.d.ts.map +1 -1
  846. package/dist/utils/floor-plate-migration.js +2 -2
  847. package/dist/utils/heal-scene-graph.d.ts +12 -0
  848. package/dist/utils/heal-scene-graph.d.ts.map +1 -1
  849. package/dist/utils/heal-scene-graph.js +40 -23
  850. package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
  851. package/dist/utils/legacy-wall-datums.js +2 -2
  852. package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
  853. package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
  854. package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
  855. package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
  856. package/dist/utils/scene-migrations.d.ts +1 -1
  857. package/dist/utils/scene-migrations.d.ts.map +1 -1
  858. package/dist/utils/scene-migrations.js +1 -1
  859. package/dist/utils/semantic-equal.d.ts +3 -0
  860. package/dist/utils/semantic-equal.d.ts.map +1 -0
  861. package/dist/utils/semantic-equal.js +26 -0
  862. package/dist/utils/structure-id.d.ts.map +1 -1
  863. package/dist/utils/types.d.ts.map +1 -1
  864. package/dist/utils/wall-face-migration.d.ts +1 -1
  865. package/dist/utils/wall-face-migration.d.ts.map +1 -1
  866. package/package.json +36 -10
@@ -1,4 +1,4 @@
1
- import { type MaterialSurface } from '../material-library.js';
1
+ import type { MaterialSurface } from '../material-kinds.js';
2
2
  import type { SceneMaterial, SceneMaterialId } from '../schema/scene-material.js';
3
3
  /** The surface a node's finish goes on, by its kind and the role or field painted. */
4
4
  export declare function finishSurface(type: string, role?: string): MaterialSurface | undefined;
@@ -7,6 +7,12 @@ export declare function finishSurface(type: string, role?: string): MaterialSurf
7
7
  * wall's wall materials, as the library tags them), then by the words they share with it.
8
8
  */
9
9
  export declare function nearestLibraryMaterials(asked: string, surface?: MaterialSurface, count?: number): string[];
10
+ /**
11
+ * Whether a library id renders: the catalog's, or a well-formed community material's (`mtl_…`),
12
+ * which the host checks (the hosted MCP against its database, before the call). The materials a
13
+ * host registered can be a part of its library (those its scene uses), so they never refuse one.
14
+ */
15
+ export declare function isLibraryMaterialId(id: string): boolean;
10
16
  /**
11
17
  * A material ref that renders: a library id the catalog holds (`library:<id>`, or the bare id), or
12
18
  * a scene material (`scene:<id>`, checked against the scene's materials when the host lends them).
@@ -1 +1 @@
1
- {"version":3,"file":"material-refs.d.ts","sourceRoot":"","sources":["../../src/agent-operations/material-refs.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AA+B9E,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGtF;AAYD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,EACzB,KAAK,SAAI,GACR,MAAM,EAAE,CAWV;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,EACzB,EACE,KAAa,EACb,SAAS,GACV,GAAE;IACD,8FAA8F;IAC9F,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;CACxD,GACL,MAAM,CAmCR"}
1
+ {"version":3,"file":"material-refs.d.ts","sourceRoot":"","sources":["../../src/agent-operations/material-refs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAOxD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AA+B9E,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGtF;AAYD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,EACzB,KAAK,SAAI,GACR,MAAM,EAAE,CAWV;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,EACzB,EACE,KAAa,EACb,SAAS,GACV,GAAE;IACD,8FAA8F;IAC9F,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;CACxD,GACL,MAAM,CAiCR"}
@@ -1,5 +1,5 @@
1
1
  import { refuse } from '../agent-tools/refusal.js';
2
- import { getCatalogMaterialById, MATERIAL_CATALOG, parseMaterialRef, } from '../material-library.js';
2
+ import { getCatalogMaterialById, isCommunityMaterialId, MATERIAL_CATALOG, parseMaterialRef, } from '../material-library.js';
3
3
  const SURFACE_WORDS = {
4
4
  roof: 'roofing',
5
5
  wall: 'wall material',
@@ -55,6 +55,14 @@ export function nearestLibraryMaterials(asked, surface, count = 3) {
55
55
  .slice(0, count)
56
56
  .map(({ entry }) => named(entry));
57
57
  }
58
+ /**
59
+ * Whether a library id renders: the catalog's, or a well-formed community material's (`mtl_…`),
60
+ * which the host checks (the hosted MCP against its database, before the call). The materials a
61
+ * host registered can be a part of its library (those its scene uses), so they never refuse one.
62
+ */
63
+ export function isLibraryMaterialId(id) {
64
+ return !!getCatalogMaterialById(id) || isCommunityMaterialId(id);
65
+ }
58
66
  /**
59
67
  * A material ref that renders: a library id the catalog holds (`library:<id>`, or the bare id), or
60
68
  * a scene material (`scene:<id>`, checked against the scene's materials when the host lends them).
@@ -73,10 +81,7 @@ export function requireMaterialRef(asked, field, surface, { paint = false, mater
73
81
  });
74
82
  return asked;
75
83
  }
76
- // A community material (`library:mtl_…`): the host checks it against its catalog.
77
- if (parsed?.kind === 'library' && parsed.id.startsWith('mtl_'))
78
- return asked;
79
- if (parsed?.kind === 'library' && getCatalogMaterialById(parsed.id))
84
+ if (parsed?.kind === 'library' && isLibraryMaterialId(parsed.id))
80
85
  return `library:${parsed.id}`;
81
86
  const words = wordsOf(asked);
82
87
  const shares = (text) => words.some((word) => text.toLowerCase().includes(word));
@@ -0,0 +1,6 @@
1
+ import type { AgentOperation } from './types.js';
2
+ /** `merge_windows`: two windows that exist become one, a corner window or one wide window. */
3
+ export declare const mergeWindowsOperation: AgentOperation<{
4
+ windowIds: [string, string];
5
+ }>;
6
+ //# sourceMappingURL=merge-windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-windows.d.ts","sourceRoot":"","sources":["../../src/agent-operations/merge-windows.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,SAAS,CAAA;AAI3D,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC;IAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAyBjF,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { mergeWindows } from '../building/merge-windows.js';
2
+ import { achievedChanges } from './achieved.js';
3
+ const round = (value) => Math.round(value * 1000) / 1000;
4
+ /** `merge_windows`: two windows that exist become one, a corner window or one wide window. */
5
+ export const mergeWindowsOperation = (nodes, input) => {
6
+ const merge = mergeWindows(nodes, input.windowIds[0], input.windowIds[1]);
7
+ const changes = {
8
+ update: merge.changes.update.map(({ id, data }) => ({ id, data: data })),
9
+ delete: merge.changes.delete,
10
+ };
11
+ return {
12
+ changes,
13
+ result: {
14
+ ok: true,
15
+ kind: merge.kind === 'corner' ? 'corner' : 'same_wall',
16
+ windowIds: merge.windowIds,
17
+ removedIds: merge.removedIds,
18
+ wallIds: merge.wallIds,
19
+ sillHeight: round(merge.sillHeight),
20
+ height: round(merge.height),
21
+ ...(merge.width === undefined ? {} : { width: round(merge.width) }),
22
+ ...(merge.angle === undefined ? {} : { angle: merge.angle }),
23
+ message: merge.message,
24
+ achieved: achievedChanges(nodes, changes),
25
+ },
26
+ };
27
+ };
@@ -0,0 +1,9 @@
1
+ import type { AgentOperation } from './types.js';
2
+ /**
3
+ * `move_roofs_to_roof_level`: the roof panel's "Move to the roof level" for agents. The roofs a
4
+ * storey holds on its own walls go to the level the rule gives them, standing where they stood.
5
+ */
6
+ export declare const moveRoofsToRoofLevel: AgentOperation<{
7
+ levelId: string;
8
+ }>;
9
+ //# sourceMappingURL=move-roofs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-roofs.d.ts","sourceRoot":"","sources":["../../src/agent-operations/move-roofs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAwBpE,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { refuse } from '../agent-tools/refusal.js';
2
+ import { getLevelDisplayName } from '../lib/level-name.js';
3
+ import { planRoofsOffStorey } from '../services/roof-move.js';
4
+ import { requireLevel } from './level-target.js';
5
+ /**
6
+ * `move_roofs_to_roof_level`: the roof panel's "Move to the roof level" for agents. The roofs a
7
+ * storey holds on its own walls go to the level the rule gives them, standing where they stood.
8
+ */
9
+ export const moveRoofsToRoofLevel = (nodes, input) => {
10
+ const storey = requireLevel(nodes, input.levelId);
11
+ const move = planRoofsOffStorey(nodes, storey.id);
12
+ const name = `${getLevelDisplayName(storey)} (${storey.id})`;
13
+ if (!move)
14
+ refuse('no_roof_on_walls', `${name} holds no roof standing on its walls, so none hides its plan: a porch roof on its beam and a lower wing's roof on the storey above already sit where they belong.`, { levelId: storey.id });
15
+ const roofIds = move.changes.update
16
+ .filter(({ id }) => nodes[id]?.type === 'roof')
17
+ .map(({ id }) => id);
18
+ const created = move.plan.kind === 'roof' ? move.plan.create : null;
19
+ const target = (created ?? nodes[move.plan.levelId]);
20
+ return {
21
+ result: {
22
+ roofIds,
23
+ roofLevelId: move.plan.levelId,
24
+ createdRoofLevelId: created?.id ?? null,
25
+ message: `Moved ${roofIds.length} roof${roofIds.length === 1 ? '' : 's'} off ${name} onto ${getLevelDisplayName(target)} (${target.id}), standing where ${roofIds.length === 1 ? 'it' : 'they'} stood.`,
26
+ },
27
+ changes: move.changes,
28
+ };
29
+ };
@@ -6,7 +6,8 @@ import type { AgentOperation } from './types.js';
6
6
  * was refused and an unknown preset fell back to grey. A colour is the nearest of the library's
7
7
  * flat colours, said with how near; a native material is kept as a scene material. Slots are
8
8
  * written as the editor's slot paint writes them, a wall's faces through its paint plan, a roof's
9
- * role through its role field.
9
+ * role through its role field, on the roof: a roof shows one finish per surface, so a segment's
10
+ * finish goes on its roof.
10
11
  */
11
12
  type PaintInput = {
12
13
  targets: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/agent-operations/paint.ts"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,cAAc,EAKpB,MAAM,WAAW,CAAA;AAMlB,OAAO,KAAK,EAAgB,cAAc,EAAc,MAAM,SAAS,CAAA;AAEvE;;;;;;;GAOG;AAEH,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,IAAI,CAAA;CACb,CAAA;AA6HD,eAAO,MAAM,KAAK,EAAE,cAAc,CAAC,UAAU,CAuI5C,CAAA"}
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/agent-operations/paint.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,cAAc,EAOpB,MAAM,WAAW,CAAA;AAMlB,OAAO,KAAK,EAAgB,cAAc,EAAc,MAAM,SAAS,CAAA;AAEvE;;;;;;;;GAQG;AAEH,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,IAAI,CAAA;CACb,CAAA;AAsKD,eAAO,MAAM,KAAK,EAAE,cAAc,CAAC,UAAU,CA8M5C,CAAA"}
@@ -1,13 +1,17 @@
1
1
  import { refuse } from '../agent-tools/refusal.js';
2
- import { ceilingSlots, columnSlots, doorSlots, fenceSlots, slabSlots, wallSlots, windowSlots, } from '../node-slots/index.js';
2
+ import { wallFaceScriptPaintRefusal } from '../lib/wall-face-script.js';
3
+ import { GLAZED_ROOF_SLOTS, nodeSlotDeclarations } from '../node-slots/index.js';
3
4
  import { nearestLibraryColorRef } from '../procedural-items/library-colors.js';
4
- import { getEffectiveSegmentSurfaceMaterial, } from '../schema/index.js';
5
+ import { getEffectiveSegmentSurfaceMaterial, getWallTrimSlotId, isGlazedRoofSegment, } from '../schema/index.js';
5
6
  import { buildWallFinishLayout, getWallLevelZones } from '../systems/wall/wall-finish.js';
6
7
  import { planWallPaint } from '../systems/wall/wall-paint-plan.js';
7
- import { roomSideFaces } from '../systems/wall/wall-room-sides.js';
8
+ import { roomFaceCover } from '../systems/wall/wall-room-sides.js';
8
9
  import { finishSurface, requireMaterialRef } from './material-refs.js';
9
10
  import { resolveInlinePaintMaterial } from './scene-materials.js';
10
- const ROOF_ROLES = ['top', 'edge', 'wall'];
11
+ const WALL_TRIMS = ['skirting', 'crown', 'chairRail'];
12
+ const ROOF_ROLES = ['top', 'edge', 'wall', 'fascia'];
13
+ /** The surfaces the roof itself holds; its fascia is held by each of its segments. */
14
+ const SHELL_ROLES = ['top', 'edge', 'wall'];
11
15
  /** The surfaces painted when no role is named: what "paint the column" means. */
12
16
  const DEFAULT_ROLES = {
13
17
  wall: ['a', 'b', 'curtain-frame', 'curtain-solid'],
@@ -17,26 +21,15 @@ const DEFAULT_ROLES = {
17
21
  fence: ['posts', 'infill', 'base', 'rail'],
18
22
  door: ['panel', 'frame'],
19
23
  window: ['frame'],
24
+ 'roof-segment': ['glazing-frame', 'glazing-solid'],
25
+ block: ['body'],
20
26
  };
21
- function slotsOf(node) {
22
- switch (node.type) {
23
- case 'wall':
24
- return wallSlots(node);
25
- case 'column':
26
- return columnSlots(node);
27
- case 'slab':
28
- return slabSlots();
29
- case 'ceiling':
30
- return ceilingSlots();
31
- case 'fence':
32
- return fenceSlots(node);
33
- case 'door':
34
- return doorSlots();
35
- case 'window':
36
- return windowSlots();
37
- default:
38
- return null;
39
- }
27
+ /** The roles painted without one named: the kind's defaults, or the one surface it has. */
28
+ function defaultRoles(type, ids) {
29
+ const defaults = DEFAULT_ROLES[type];
30
+ if (defaults)
31
+ return defaults.filter((role) => ids.includes(role));
32
+ return ids.length === 1 ? [...ids] : [];
40
33
  }
41
34
  /** The finish asked for, as the ref it writes; refused when it is unknown. */
42
35
  function finishOf(input, surface, context) {
@@ -80,8 +73,8 @@ function changedData(before, after) {
80
73
  }
81
74
  return data;
82
75
  }
83
- /** A roof's or a segment's role written, its inline material for that role gone with it. */
84
- function paintRoofRole(node, role, ref) {
76
+ /** A node's role written as `<role>MaterialPreset`, its inline material for that role gone with it. */
77
+ function paintRoleField(node, role, ref) {
85
78
  const next = { ...node };
86
79
  delete next[`${role}Material`];
87
80
  if (ref)
@@ -90,6 +83,30 @@ function paintRoofRole(node, role, ref) {
90
83
  delete next[`${role}MaterialPreset`];
91
84
  return next;
92
85
  }
86
+ /**
87
+ * A segment without a finish of its own for a role, so its roof's shows there. A catch-all finish
88
+ * (`material`, `materialPreset`) goes too, written on the segment's other roles, which keep it.
89
+ */
90
+ function withoutOwnRole(segment, role) {
91
+ const next = { ...segment };
92
+ if (segment.material !== undefined || segment.materialPreset !== undefined) {
93
+ for (const other of SHELL_ROLES) {
94
+ if (other === role)
95
+ continue;
96
+ const shown = getEffectiveSegmentSurfaceMaterial(segment, other);
97
+ next[`${other}Material`] = shown.material;
98
+ next[`${other}MaterialPreset`] = shown.materialPreset;
99
+ }
100
+ delete next.material;
101
+ delete next.materialPreset;
102
+ }
103
+ delete next[`${role}Material`];
104
+ delete next[`${role}MaterialPreset`];
105
+ for (const key of Object.keys(next))
106
+ if (next[key] === undefined)
107
+ delete next[key];
108
+ return next;
109
+ }
93
110
  /**
94
111
  * A wall face painted whole, as the editor's Paint paints each part of it: the face's own finish,
95
112
  * and the finish of each room it is turned to, which shows over the face's own. Painted parts
@@ -104,6 +121,23 @@ function paintWallFace(nodes, wall, face, ref) {
104
121
  }
105
122
  return plan;
106
123
  }
124
+ /**
125
+ * The faces of a wall turned out of its rooms, or into them: by the rooms on its sides, else by
126
+ * the sides it keeps (`frontSide` and `backSide`, as a generator or the room structure wrote
127
+ * them). A partition, with a room on each face, is interior on both. A face rooms stand on only in
128
+ * part (a wall running on past its rooms, into a garden) is both: it is refused, so the caller
129
+ * names the face to paint whole.
130
+ */
131
+ function wallFacesTurned(scene, wall, side) {
132
+ const cover = roomFaceCover(scene, wall.id);
133
+ const faces = ['a', 'b'];
134
+ const part = faces.find((face) => cover[face] === 'part');
135
+ if (part)
136
+ refuse('side_unknown', `Wall ${wall.id}'s face ${part} is in a room for part of its length and outside for the rest: name the face to paint whole, a or b.`, { target: wall.id });
137
+ if (cover.a === 'none' && cover.b === 'none')
138
+ return faces.filter((face) => (face === 'a' ? wall.frontSide : wall.backSide) === side);
139
+ return faces.filter((face) => (cover[face] === 'whole') === (side === 'interior'));
140
+ }
107
141
  export const paint = (nodes, input, context) => {
108
142
  // A refused material's nearest are the first target's kind: a roof is offered roofing.
109
143
  const first = input.targets[0] ? nodes[input.targets[0]] : undefined;
@@ -114,47 +148,113 @@ export const paint = (nodes, input, context) => {
114
148
  const scene = () => ({ ...nodes, ...written });
115
149
  const painted = [];
116
150
  const keptParts = [];
117
- for (const id of input.targets) {
151
+ const throughRoof = [];
152
+ const modelRoles = [];
153
+ // A roof with glazed segments: its roles go on the roof for its standard segments, its glazing's
154
+ // on each glazed segment; a role only one kind has paints that kind.
155
+ const targets = [
156
+ ...new Set(input.targets.flatMap((id) => {
157
+ const node = nodes[id];
158
+ if (node?.type !== 'roof')
159
+ return [id];
160
+ const segments = node.children
161
+ .map((childId) => nodes[childId])
162
+ .filter((child) => child?.type === 'roof-segment');
163
+ const glazed = segments.filter(isGlazedRoofSegment).map((segment) => segment.id);
164
+ if (!glazed.length)
165
+ return [id];
166
+ const standard = glazed.length < segments.length;
167
+ const roles = [...(standard ? ROOF_ROLES : []), ...GLAZED_ROOF_SLOTS];
168
+ if (input.role !== undefined && !roles.includes(input.role))
169
+ refuse('unknown_role', `Roof ${id}'s roles are ${roles.join(', ')}.`, {
170
+ target: id,
171
+ roles,
172
+ });
173
+ const roofRole = input.role === undefined || ROOF_ROLES.includes(input.role);
174
+ return [...(standard && roofRole ? [id] : []), ...(roofRole && input.role ? [] : glazed)];
175
+ })),
176
+ ];
177
+ for (const id of targets) {
118
178
  const node = current(id);
119
179
  if (!node)
120
180
  refuse('target_not_found', `Nothing to paint: ${id} is not in the scene (a room edit may have replaced its walls: read the scene again). Nothing was painted.`, { target: id });
121
- if (node.type === 'roof' || node.type === 'roof-segment') {
181
+ if (node.type === 'roof' || (node.type === 'roof-segment' && !isGlazedRoofSegment(node))) {
122
182
  const role = (input.role ?? 'top');
123
183
  if (!ROOF_ROLES.includes(role))
124
184
  refuse('unknown_role', `A roof's roles are ${ROOF_ROLES.join(', ')}.`, {
125
185
  target: id,
126
186
  roles: [...ROOF_ROLES],
127
187
  });
128
- if (node.type === 'roof') {
129
- // A segment's own finish for the role, or its catch-all, shows over its roof's.
130
- const shadowing = node.children.filter((childId) => {
131
- const segment = current(childId);
132
- if (segment?.type !== 'roof-segment')
133
- return false;
134
- const own = getEffectiveSegmentSurfaceMaterial(segment, role);
135
- return own.material !== undefined || own.materialPreset !== undefined;
136
- });
137
- if (shadowing.length)
138
- refuse('shadowed_field', `The roof's ${role} would not show: segments ${shadowing.join(', ')} have their own. Paint the segments instead.`, { target: id, segments: shadowing });
188
+ const roof = node.type === 'roof' ? node : current(node.parentId ?? '');
189
+ if (roof?.type !== 'roof')
190
+ refuse('not_paintable', `Roof segment ${id} has no roof to paint.`, { target: id });
191
+ if (node.type === 'roof-segment')
192
+ throughRoof.push(id);
193
+ if (painted.some((entry) => entry.id === roof.id && entry.roles.includes(role)))
194
+ continue;
195
+ const segments = roof.children.flatMap((childId) => {
196
+ const segment = current(childId);
197
+ return segment?.type === 'roof-segment' ? [segment] : [];
198
+ });
199
+ if (role === 'fascia') {
200
+ // Each segment holds its fascia: the boards take it on every segment of the roof.
201
+ for (const segment of segments)
202
+ written[segment.id] = paintRoleField(segment, role, ref);
203
+ }
204
+ else {
205
+ written[roof.id] = paintRoleField(roof, role, ref);
206
+ // The roof's finish shows on every segment: none keeps one of its own for the role.
207
+ for (const segment of segments)
208
+ written[segment.id] = withoutOwnRole(segment, role);
209
+ }
210
+ painted.push({ id: roof.id, roles: [role] });
211
+ continue;
212
+ }
213
+ // A catalog item's surfaces are its model's (slot_<id> materials), which an operation cannot
214
+ // read: a host that has (assetViews) lets this name them; its role is written by name, as the
215
+ // editor's Paint writes the one clicked.
216
+ const declared = nodeSlotDeclarations(node);
217
+ if (!declared && node.type === 'item') {
218
+ const own = Object.keys(node.slots ?? {});
219
+ if (!input.role) {
220
+ const surfaces = context.assetViews?.[node.asset.id]?.surfaces ?? [];
221
+ const facts = [
222
+ ...(surfaces.length ? [`its surfaces: ${surfaces.join(', ')}`] : []),
223
+ ...(own.length ? [`painted so far: ${own.join(', ')}`] : []),
224
+ ];
225
+ refuse('unknown_role', `Item ${id}'s surfaces are its model's: name one as role${facts.length ? ` (${facts.join('; ')})` : ''}.`, { target: id, roles: surfaces.length ? [...surfaces] : own });
139
226
  }
140
- written[id] = paintRoofRole(node, role, ref);
141
- painted.push({ id, roles: [role] });
227
+ const slots = { ...(node.slots ?? {}) };
228
+ if (ref)
229
+ slots[input.role] = ref;
230
+ else
231
+ delete slots[input.role];
232
+ written[id] = { ...node, slots };
233
+ modelRoles.push(`${id} ${input.role}`);
234
+ painted.push({ id, roles: [input.role] });
142
235
  continue;
143
236
  }
144
- const slots = slotsOf(node);
145
- if (!slots)
146
- refuse('not_paintable', `A ${node.type} has no finish paint gives: paint walls, columns, slabs, ceilings, fences, doors, windows or roofs.`, { target: id, type: node.type });
147
- const ids = slots.map((slot) => slot.slotId);
237
+ if (!declared?.length)
238
+ refuse('not_paintable', `A ${node.type} has no surface paint gives: paint walls, slabs, ceilings, roofs, columns, fences, doors, windows, stairs, blocks, cabinets, shelves, items and the other built parts.`, { target: id, type: node.type });
239
+ const ids = declared.map((slot) => slot.slotId);
148
240
  let roles;
149
- if (input.role === 'exterior' || input.role === 'interior') {
241
+ // On a wall, exterior and interior are its faces' sides; elsewhere they are slots by name.
242
+ if (node.type === 'wall' && (input.role === 'exterior' || input.role === 'interior')) {
150
243
  // A curtain wall has frame, glass and panels where a wall has faces.
151
- if (node.type !== 'wall' || !ids.includes('a'))
152
- refuse('unknown_role', `A ${node.type === 'wall' ? 'curtain wall' : node.type} has no ${input.role} face: its roles are ${ids.join(', ')}.`, { target: id, roles: ids });
153
- const sides = roomSideFaces(scene(), id);
154
- const face = input.role === 'interior' ? sides.inside : sides.outside;
155
- if (!face)
156
- refuse('side_unknown', `Wall ${id} has rooms on both sides or none: name its face, a or b.`, { target: id });
157
- roles = [face];
244
+ if (!ids.includes('a'))
245
+ refuse('unknown_role', `A curtain wall has no ${input.role} face: its roles are ${ids.join(', ')}.`, { target: id, roles: ids });
246
+ roles = wallFacesTurned(scene(), node, input.role);
247
+ if (!roles.length)
248
+ refuse('side_unknown', `Wall ${id} has no ${input.role} face by its rooms or its stored sides: name its face, a or b.`, { target: id });
249
+ }
250
+ else if (node.type === 'wall' && WALL_TRIMS.includes(input.role)) {
251
+ // A trim named without a face is the trim on both faces, as a wall without a role is.
252
+ roles = ['a', 'b'].map((face) => getWallTrimSlotId(face, input.role));
253
+ if (!roles.every((role) => ids.includes(role)))
254
+ refuse('unknown_role', `A ${node.type}'s roles are ${ids.join(', ')}.`, {
255
+ target: id,
256
+ roles: ids,
257
+ });
158
258
  }
159
259
  else if (input.role) {
160
260
  if (!ids.includes(input.role))
@@ -165,7 +265,7 @@ export const paint = (nodes, input, context) => {
165
265
  roles = [input.role];
166
266
  }
167
267
  else
168
- roles = (DEFAULT_ROLES[node.type] ?? []).filter((role) => ids.includes(role));
268
+ roles = defaultRoles(node.type, ids);
169
269
  if (!roles.length)
170
270
  refuse('unknown_role', `Name the ${node.type}'s surface: its roles are ${ids.join(', ')}.`, {
171
271
  target: id,
@@ -175,6 +275,12 @@ export const paint = (nodes, input, context) => {
175
275
  const target = current(id);
176
276
  if (target.type === 'wall') {
177
277
  const face = role === 'a' || role === 'b' ? role : null;
278
+ const scripted = face ? wallFaceScriptPaintRefusal(target, face) : undefined;
279
+ if (scripted)
280
+ refuse('face_built_by_script', `${scripted.message} Nothing was painted.`, {
281
+ target: id,
282
+ face,
283
+ });
178
284
  Object.assign(written, face
179
285
  ? paintWallFace(scene(), target, face, ref)
180
286
  : planWallPaint(scene(), target, { kind: 'slot', slotId: role }, ref));
@@ -199,7 +305,11 @@ export const paint = (nodes, input, context) => {
199
305
  const createdMaterial = finish.created ? finish.sceneMaterial : undefined;
200
306
  const note = [
201
307
  finish.note,
308
+ throughRoof.length &&
309
+ `${throughRoof.join(', ')} ${throughRoof.length === 1 ? 'is a roof segment' : 'are roof segments'}: the finish went on the roof, which shows one finish per surface.`,
202
310
  keptParts.length && `Painted parts keep their own finish (${keptParts.join('; ')}).`,
311
+ modelRoles.length &&
312
+ `${modelRoles.join(', ')}: an item's surfaces are its model's, so a role its model lacks does not show.`,
203
313
  ]
204
314
  .filter(Boolean)
205
315
  .join(' ');
@@ -0,0 +1,155 @@
1
+ import { type Homography, type Vec3 } from '../building/photo-elevation.js';
2
+ import type { SceneNodes } from './types.js';
3
+ type Pt = [number, number];
4
+ export type PhotoFaceInput = {
5
+ name?: string;
6
+ /** The walls of the face on one storey, end to end: their extent is the width. */
7
+ wallIds: string[];
8
+ /**
9
+ * Two points on each vertical edge of the face as seen, as fractions of the image. A face whose
10
+ * far edge leaves the photo gives only the corner it shares with another face of the call.
11
+ */
12
+ edges: {
13
+ left?: Pt[];
14
+ right?: Pt[];
15
+ };
16
+ /**
17
+ * The same feature on at least two storeys, two points along each, with its storey, and the
18
+ * feature's height above that floor when known (window heads 2.1 m): it sets the camera's height.
19
+ */
20
+ rows: {
21
+ levelId: string;
22
+ points: Pt[];
23
+ height?: number;
24
+ }[];
25
+ /** More horizontal lines on the face, two points each: they steady its vanishing point. */
26
+ lines?: Pt[][];
27
+ /**
28
+ * Points at known places on the face (window and door corners, eave ends): metres along it from
29
+ * its left end as seen, metres up from a floor (the face's, by default), and where the photo
30
+ * shows them. Each one steadies the pose.
31
+ */
32
+ points?: {
33
+ along: number;
34
+ height: number;
35
+ levelId?: string;
36
+ point: Pt;
37
+ }[];
38
+ };
39
+ export type PhotoElevationInput = {
40
+ faces: PhotoFaceInput[];
41
+ /**
42
+ * The camera's focal length on a 36 × 24 mm frame, when known: a frontal photo does not show
43
+ * it. A phone's main camera is about 26 mm.
44
+ */
45
+ focal35mm?: number;
46
+ /** More vertical lines anywhere on the building, two points each: they steady the camera's tilt. */
47
+ verticals?: Pt[][];
48
+ };
49
+ export type PhotoFacePlan = {
50
+ name: string;
51
+ widthMeters: number;
52
+ /**
53
+ * Metres along the face from its left end at the drawing's left and right sides: 0 and the
54
+ * width, unless the face runs out of the photo.
55
+ */
56
+ leftMeters: number;
57
+ rightMeters: number;
58
+ /** Metres above the lowest row's feature at the top and bottom of the drawing. */
59
+ topMeters: number;
60
+ bottomMeters: number;
61
+ pxPerMetre: number;
62
+ outWidth: number;
63
+ outHeight: number;
64
+ /** Drawing pixel to photo pixel. */
65
+ toSource: Homography;
66
+ /** Photo pixels per metre up each side of the drawing: few, and panes blur. */
67
+ sourcePxPerMetre: {
68
+ left: number;
69
+ right: number;
70
+ };
71
+ /** Root mean square of the picked points against the fit, in photo pixels. */
72
+ residualPx: number;
73
+ /** The picked feature on every storey the drawing shows, in drawing pixels. */
74
+ featureLines: {
75
+ levelId: string;
76
+ name: string;
77
+ y: number;
78
+ }[];
79
+ /** Where each row meets each edge in the photo, for a close-up to check. */
80
+ corners: {
81
+ edge: 'left' | 'right';
82
+ levelId: string;
83
+ point: Pt;
84
+ rowLine: [Pt, Pt];
85
+ edgeLine: [Pt, Pt];
86
+ }[];
87
+ /**
88
+ * Floor to floor between the rows' storeys, as the photo measures it and as the scene has it.
89
+ * Only with the camera: without it, the storeys are the drawing's vertical scale.
90
+ */
91
+ storeyHeight?: {
92
+ photo: number;
93
+ scene: number;
94
+ };
95
+ warnings: string[];
96
+ };
97
+ /** The camera several faces of the photo share. */
98
+ export type PhotoCameraSummary = {
99
+ focalPx: number;
100
+ /** The focal length on a 36 × 24 mm frame: a phone's main camera is about 24–28 mm. */
101
+ focal35mm: number;
102
+ horizontalFovDeg: number;
103
+ /**
104
+ * Where the optical axis meets the photo, down from its top, in photo pixels: about half the
105
+ * photo's height for a phone photo as taken, near the horizon for a perspective-corrected one.
106
+ */
107
+ principalPointY: number;
108
+ /** The optical axis above the horizon (up is positive), and how far the photo is turned. */
109
+ pitchDeg: number;
110
+ rollDeg: number;
111
+ /** Camera from world, row-major: world x along the first face, y up, z out of it. */
112
+ rotation: number[];
113
+ /** The camera in the scene, for view_scene; null when the faces leave its side unknown. */
114
+ pose: PhotoPose | null;
115
+ assumptions: string;
116
+ warnings: string[];
117
+ };
118
+ /** Where the photo was taken from, in the scene's coordinates (y up), as view_scene takes it. */
119
+ export type PhotoPose = {
120
+ projection: 'perspective';
121
+ position: Vec3;
122
+ target: Vec3;
123
+ /** The camera's up, which carries the photo's roll. */
124
+ up: Vec3;
125
+ /** Vertical field of view, degrees. */
126
+ fov: number;
127
+ /** The photo's width over its height. */
128
+ aspect: number;
129
+ /** How far below the photo's middle its optical axis meets it, as a share of its height. */
130
+ shift: number;
131
+ /** What set the camera's height: the rows' feature height, or the edges' foot taken for the ground. */
132
+ anchoredBy: 'row height' | 'edge base';
133
+ /** The focal length was taken (focal35mm, else a phone's), not read from the photo. */
134
+ focalAssumed: boolean;
135
+ /** The picked edges against the walls' ends projected through the pose, in photo pixels. */
136
+ edgeResidualPx: number;
137
+ /** How far the eye moves, in metres, when the picks move by their own error. */
138
+ spread?: number;
139
+ };
140
+ /**
141
+ * Plans the straightening of each face of a photo, pixels being the host's. Several faces, or one
142
+ * whose far edge leaves the photo, share the photo's one camera, found from the vanishing points
143
+ * of the picked lines: each face is then K·[along up origin], metric from its walls' width, and
144
+ * the storeys are measured. One face with both edges, or faces no camera fits, are each fitted
145
+ * from their own rows × edges, their heights from the storeys.
146
+ */
147
+ export declare function planPhotoElevation(nodes: SceneNodes, input: PhotoElevationInput, image: {
148
+ width: number;
149
+ height: number;
150
+ }): {
151
+ faces: PhotoFacePlan[];
152
+ camera: PhotoCameraSummary | null;
153
+ };
154
+ export {};
155
+ //# sourceMappingURL=photo-elevation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo-elevation.d.ts","sourceRoot":"","sources":["../../src/agent-operations/photo-elevation.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,UAAU,EAQf,KAAK,IAAI,EAGV,MAAM,6BAA6B,CAAA;AAGpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAG1B,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAA;KAAE,CAAA;IACpC;;;OAGG;IACH,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,EAAE,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1D,2FAA2F;IAC3F,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,EAAE,CAAA;KAAE,EAAE,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oGAAoG;IACpG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,QAAQ,EAAE,UAAU,CAAA;IACpB,+EAA+E;IAC/E,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5D,4EAA4E;IAC5E,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,EAAE,CAAA;QACT,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACjB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;KACnB,EAAE,CAAA;IACH;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,2FAA2F;IAC3F,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,iGAAiG;AACjG,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,aAAa,CAAA;IACzB,QAAQ,EAAE,IAAI,CAAA;IACd,MAAM,EAAE,IAAI,CAAA;IACZ,uDAAuD;IACvD,EAAE,EAAE,IAAI,CAAA;IACR,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAA;IACb,uGAAuG;IACvG,UAAU,EAAE,YAAY,GAAG,WAAW,CAAA;IACtC,uFAAuF;IACvF,YAAY,EAAE,OAAO,CAAA;IACrB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,CAAA;IACtB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AA8kBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAAE,CAsE/D"}