@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,7 +1,9 @@
1
1
  import { BuildingNode, DoorNode, ItemNode, LevelNode, WallNode, WindowNode, ZoneNode, } from '../../schema/index.js';
2
2
  import { doorFacing } from '../../building/wall-openings.js';
3
- import { findBlockedDoors } from '../door-clearance.js';
4
- import { findItemItemCollisions } from '../layout-clearance.js';
3
+ import { area as clippedArea, difference } from '../../lib/polygon-boolean.js';
4
+ import { reconcileSceneStructure } from '../../lib/structure-reconcile.js';
5
+ import { findBlockedDoors, itemNodePlanCorners } from '../door-clearance.js';
6
+ import { findItemItemCollisions, findItemsMidRoom } from '../layout-clearance.js';
5
7
  const graph = (...nodes) => ({
6
8
  nodes: Object.fromEntries(nodes.map((node) => [node.id, node])),
7
9
  rootNodeIds: nodes
@@ -87,6 +89,31 @@ function roomsScene() {
87
89
  });
88
90
  return graph(building, ground, upper, roof, wallG, door, window, kitchen, wallU);
89
91
  }
92
+ /**
93
+ * Run 6's order: walls drawn first, one add_wall each, round CLEAR (and `extra` inside it), then the
94
+ * rooms the reconciler made of them, "Room 1" first; `renamed` is a name a person gave it since.
95
+ */
96
+ function walledScene({ extra = [], renamed } = {}) {
97
+ return () => {
98
+ const base = roomsScene().nodes;
99
+ const walls = [...CLEAR.map((point, i) => [point, CLEAR[(i + 1) % 4]]), ...extra].map(([start, end], i) => WallNode.parse({ id: `wall_c${i}`, parentId: 'level_g', start, end, height: 2.5 }));
100
+ const level = base.level_g;
101
+ let nodes = {
102
+ ...base,
103
+ level_g: { ...level, children: [...level.children, ...walls.map((wall) => wall.id)] },
104
+ ...Object.fromEntries(walls.map((wall) => [wall.id, wall])),
105
+ };
106
+ const names = { zone: ['zone_walled', 'zone_side'] };
107
+ let count = 0;
108
+ nodes = reconcileSceneStructure({
109
+ nodes,
110
+ mintId: (kind) => names[kind]?.shift() ?? `${kind}_walled${++count}`,
111
+ }).nodes;
112
+ if (renamed)
113
+ nodes.zone_walled = { ...nodes.zone_walled, name: renamed };
114
+ return graph(...Object.values(nodes));
115
+ };
116
+ }
90
117
  // ─── Checks the table cannot state: minted ids and derived construction ───────────────────────
91
118
  const problems = (...entries) => entries.flatMap(([ok, problem]) => (ok ? [] : [problem]));
92
119
  const wallsOn = (nodes, levelId) => Object.values(nodes).filter((node) => node.type === 'wall' && node.parentId === levelId);
@@ -141,6 +168,15 @@ function roomBuilt(levelId, name, edges) {
141
168
  ]);
142
169
  };
143
170
  }
171
+ /** The room zones of the ground floor inside CLEAR's box: the one per walled space there. */
172
+ const roomsInClear = (nodes) => Object.values(nodes).filter((node) => node.type === 'zone' &&
173
+ node.parentId === 'level_g' &&
174
+ node.spaceRole === 'room' &&
175
+ node.polygon.every(([x, z]) => x >= -0.01 && x <= 4.01 && z >= 4.99 && z <= 8.01));
176
+ const area = (polygon) => Math.abs(polygon.reduce((sum, [x, z], i) => {
177
+ const [nx, nz] = polygon[(i + 1) % polygon.length];
178
+ return sum + x * nz - nx * z;
179
+ }, 0) / 2);
144
180
  const roomOn = (levelId) => (result, nodes) => problems([
145
181
  nodes[result.zoneId]?.parentId === levelId,
146
182
  `the room is on ${String(nodes[result.zoneId]?.parentId)}, not ${levelId}`,
@@ -315,7 +351,7 @@ export const CREATE_ROOM_CASES = [
315
351
  },
316
352
  },
317
353
  {
318
- name: "a window sits at add_window's sill height; a door takes its size, hinge, swing and style",
354
+ name: 'a window is centred on its wall, as add_window places it; a door takes its size, hinge, swing and style',
319
355
  tool: 'create_room',
320
356
  scene: roomsScene,
321
357
  input: room({
@@ -336,11 +372,16 @@ export const CREATE_ROOM_CASES = [
336
372
  check: (result, nodes) => {
337
373
  const window = nodes[result.windowIds[0]];
338
374
  const door = nodes[result.doorIds[0]];
375
+ // Centred on the wall as it stands when the room is made, the storey's 2.8 m: the floor plate
376
+ // is derived afterwards, and a later add_window sees the slab (a window 2.5 cm lower).
377
+ const wall = window?.type === 'window' && window.wallId ? nodes[window.wallId] : undefined;
378
+ const level = wall?.parentId ? nodes[wall.parentId] : undefined;
379
+ const ceiling = level?.type === 'level' ? (level.height ?? Number.NaN) : Number.NaN;
339
380
  return problems([
340
381
  window?.type === 'window' &&
341
- near(window.position[1] - window.height / 2, 0.9) &&
382
+ near(window.position[1], ceiling / 2) &&
342
383
  window.width === 1.5,
343
- `window ${JSON.stringify(window)} is not 1.5 m wide on a 0.9 m sill`,
384
+ `window ${JSON.stringify(window)} is not 1.5 m wide and centred on its ${ceiling} m wall`,
344
385
  ], [
345
386
  door?.type === 'door' &&
346
387
  Math.abs(door.width - 0.9144) < 1e-4 &&
@@ -364,7 +405,6 @@ export const CREATE_ROOM_CASES = [
364
405
  scene: roomsScene,
365
406
  input: room({}),
366
407
  context: { activeLevelId: 'level_u' },
367
- surfaces: ['core', 'chat'],
368
408
  expect: { result: { ok: true }, check: roomOn('level_u') },
369
409
  },
370
410
  {
@@ -418,6 +458,112 @@ export const CREATE_ROOM_CASES = [
418
458
  },
419
459
  expect: { refusal: 'outdoor_room_overlap', mentions: ['Kitchen'] },
420
460
  },
461
+ // Run 6: 54 walls drawn first, then 14 create_room calls, each stacking its named zone on the
462
+ // "Room N" the walls had made: 16 twins.
463
+ {
464
+ name: 'a room over walls that already enclose it names the room they made, never a second zone',
465
+ tool: 'create_room',
466
+ scene: walledScene(),
467
+ input: room({ levelId: 'level_g' }),
468
+ expect: {
469
+ result: { ok: true, reusedWalls: 4, zoneId: 'zone_walled' },
470
+ after: { zone_walled: { name: 'Bedroom' } },
471
+ check: (result, nodes) => [
472
+ ...roomBuilt('level_g', 'Bedroom', 4)(result, nodes),
473
+ ...problems([
474
+ roomsInClear(nodes).length === 1,
475
+ `${roomsInClear(nodes).map((zone) => zone.name).join(', ')} stand over one walled room`,
476
+ ]),
477
+ ],
478
+ },
479
+ },
480
+ {
481
+ name: 'the walled room is named whichever way round and from whichever corner the polygon runs',
482
+ tool: 'create_room',
483
+ scene: walledScene(),
484
+ input: {
485
+ levelId: 'level_g',
486
+ name: 'Study',
487
+ polygon: [
488
+ [4, 8],
489
+ [4, 5],
490
+ [0, 5],
491
+ [0, 8],
492
+ ],
493
+ },
494
+ expect: {
495
+ result: { ok: true, zoneId: 'zone_walled' },
496
+ check: (_, nodes) => problems([
497
+ roomsInClear(nodes).map((zone) => zone.name).join() === 'Study',
498
+ `${roomsInClear(nodes).map((zone) => zone.name).join(', ')} stand there, not Study alone`,
499
+ ]),
500
+ },
501
+ },
502
+ {
503
+ name: 'a polygon over two walled spaces names the one holding most of it; the other keeps its name',
504
+ tool: 'create_room',
505
+ scene: walledScene({
506
+ extra: [
507
+ [
508
+ [3, 5],
509
+ [3, 8],
510
+ ],
511
+ ],
512
+ }),
513
+ input: room({ levelId: 'level_g', name: 'Master Bedroom' }),
514
+ expect: {
515
+ result: { ok: true },
516
+ check: (result, nodes) => {
517
+ const rooms = roomsInClear(nodes);
518
+ const master = nodes[result.zoneId];
519
+ return problems([rooms.length === 2, `${rooms.length} rooms over two walled spaces`], [
520
+ master?.name === 'Master Bedroom' && Math.abs(area(master.polygon) - 9) < 0.05,
521
+ `the named room is ${master?.name} over ${master && area(master.polygon)} m², not the 9 m² space`,
522
+ ], [
523
+ rooms.some((zone) => /^Room \d+$/.test(zone.name ?? '')),
524
+ 'the smaller space lost its own name',
525
+ ]);
526
+ },
527
+ },
528
+ },
529
+ // A room a person named is never renamed silently, and never twinned: the refusal names it, and
530
+ // the agent either passes rename: true or asks the person.
531
+ {
532
+ name: 'a room a person named is refused with a choice, never twinned or renamed silently',
533
+ tool: 'create_room',
534
+ scene: walledScene({ renamed: 'Library' }),
535
+ input: room({ levelId: 'level_g' }),
536
+ expect: { refusal: 'room_named_by_person', mentions: ['Library', 'rename: true only if the person asked', 'ask them'] },
537
+ },
538
+ {
539
+ name: 'rename: true names the room a person named, in place, with no second zone',
540
+ tool: 'create_room',
541
+ scene: walledScene({ renamed: 'Library' }),
542
+ input: room({ levelId: 'level_g', rename: true }),
543
+ expect: {
544
+ result: { ok: true, zoneId: 'zone_walled' },
545
+ after: { zone_walled: { name: 'Bedroom' } },
546
+ check: (_, nodes) => problems([roomsInClear(nodes).length === 1, 'a second zone stands beside the renamed room']),
547
+ },
548
+ },
549
+ {
550
+ name: 'the same name over a room a person named has nothing to create',
551
+ tool: 'create_room',
552
+ scene: walledScene({ renamed: 'Bedroom' }),
553
+ input: room({ levelId: 'level_g' }),
554
+ expect: { refusal: 'room_named_by_person', mentions: ['already', 'Bedroom'] },
555
+ },
556
+ {
557
+ name: 'outdoor over a space walls already enclose names that room and drops its ceiling',
558
+ tool: 'create_room',
559
+ scene: walledScene(),
560
+ input: room({ levelId: 'level_g', name: 'Courtyard', outdoor: true }),
561
+ expect: {
562
+ result: { ok: true, zoneId: 'zone_walled', ceilingId: null },
563
+ after: { zone_walled: { name: 'Courtyard', hasCeiling: false } },
564
+ check: (_, nodes) => problems([roomsInClear(nodes).length === 1, 'the courtyard stands beside its room']),
565
+ },
566
+ },
421
567
  {
422
568
  name: 'a roof level takes no room',
423
569
  tool: 'create_room',
@@ -463,32 +609,86 @@ const CATALOG = [
463
609
  item('bedside-table', [0.5, 0.5, 0.4]),
464
610
  item('dresser', [1.2, 0.8, 0.5]),
465
611
  item('closet', [1.5, 2, 0.6]),
612
+ // The MCP's built-in sizes (asset-catalog.ts).
613
+ item('sofa', [2.5, 0.8, 1.5]),
614
+ item('coffee-table', [2, 0.4, 1.5]),
615
+ item('livingroom-chair', [1.5, 0.8, 1.5]),
616
+ item('tv-stand', [2, 0.4, 0.5]),
617
+ item('toilet', [1, 0.9, 1]),
618
+ item('bathroom-sink', [2, 1, 1.5]),
619
+ item('shower-square', [1, 2, 1]),
620
+ item('bathtub', [1.7, 0.6, 0.8]),
621
+ ];
622
+ const ROOM_WALLS = ['wall_s', 'wall_e', 'wall_n', 'wall_w'];
623
+ /** A `width` × `depth` m room: walls south (edge 0), east, north (edge 2), west. */
624
+ const roomOutline = (width, depth) => [
625
+ [0, 0],
626
+ [width, 0],
627
+ [width, depth],
628
+ [0, depth],
629
+ ];
630
+ /** A 5 × 4 m bedroom. */
631
+ const BEDROOM = roomOutline(5, 4);
632
+ /** An L: 10 m along the south, 5 m deep, and a 4 × 5 m wing to the north-west. */
633
+ const L_ROOM = [
634
+ [0, 0],
635
+ [10, 0],
636
+ [10, 5],
637
+ [4, 5],
638
+ [4, 10],
639
+ [0, 10],
466
640
  ];
467
- /** A 5 × 4 m bedroom: walls south (edge 0), east, north (edge 2), west; a door where asked. */
468
- const BEDROOM = [
641
+ /** A U: two 4 m arms, 6 m deep, round a 2 × 4 m notch to the north. */
642
+ const U_ROOM = [
469
643
  [0, 0],
470
- [5, 0],
471
- [5, 4],
472
- [0, 4],
644
+ [10, 0],
645
+ [10, 10],
646
+ [6, 10],
647
+ [6, 6],
648
+ [4, 6],
649
+ [4, 10],
650
+ [0, 10],
473
651
  ];
474
- const BEDROOM_WALLS = ['wall_s', 'wall_e', 'wall_n', 'wall_w'];
475
- function bedroomScene({ doorOn, desk } = {}) {
652
+ /** A 6√2 × 4√2 m room turned 45°. */
653
+ const DIAMOND_ROOM = [
654
+ [0, 0],
655
+ [6, 6],
656
+ [2, 10],
657
+ [-4, 4],
658
+ ];
659
+ /**
660
+ * A room of `outline`, a wall on each edge (`wall_s`, `wall_e`, `wall_n`, `wall_w` round a
661
+ * rectangle, `wall_<edge>` round any other outline) but the `open` ones and a repeated corner's,
662
+ * a door in the middle of each wall in `doorsOn`, and a desk if asked.
663
+ */
664
+ function roomScene({ outline = BEDROOM, name = 'Bedroom', doorsOn = [], open = [], desk, } = {}) {
665
+ const wallIds = outline.map((_, i) => (outline.length === 4 ? ROOM_WALLS[i] : `wall_${i}`));
476
666
  return () => {
477
- const door = doorOn
478
- ? DoorNode.parse({ id: 'door_bed', parentId: doorOn, wallId: doorOn, position: [2.5, 1.05, 0] })
479
- : null;
480
- const walls = BEDROOM.map((start, i) => WallNode.parse({
481
- id: BEDROOM_WALLS[i],
482
- parentId: 'level_f',
483
- start,
484
- end: BEDROOM[(i + 1) % BEDROOM.length],
485
- children: door && door.parentId === BEDROOM_WALLS[i] ? [door.id] : [],
486
- }));
667
+ const doors = doorsOn.map((wallId) => {
668
+ const i = wallIds.indexOf(wallId);
669
+ const [a, b] = [outline[i], outline[(i + 1) % outline.length]];
670
+ const middle = Math.hypot(b[0] - a[0], b[1] - a[1]) / 2;
671
+ return DoorNode.parse({
672
+ id: `door_${wallId.slice(5)}`,
673
+ parentId: wallId,
674
+ wallId,
675
+ position: [middle, 1.05, 0],
676
+ });
677
+ });
678
+ const walls = outline.flatMap((start, i) => open.includes(wallIds[i]) || `${start}` === `${outline[(i + 1) % outline.length]}`
679
+ ? []
680
+ : WallNode.parse({
681
+ id: wallIds[i],
682
+ parentId: 'level_f',
683
+ start,
684
+ end: outline[(i + 1) % outline.length],
685
+ children: doors.filter((door) => door.parentId === wallIds[i]).map((door) => door.id),
686
+ }));
487
687
  const zone = ZoneNode.parse({
488
688
  id: 'zone_bed',
489
689
  parentId: 'level_f',
490
- name: 'Bedroom',
491
- polygon: BEDROOM,
690
+ name,
691
+ polygon: outline,
492
692
  spaceRole: 'room',
493
693
  });
494
694
  // Where the bed would stand against the north wall.
@@ -508,26 +708,54 @@ function bedroomScene({ doorOn, desk } = {}) {
508
708
  children: [...walls.map((wall) => wall.id), zone.id, ...(deskItem ? [deskItem.id] : [])],
509
709
  });
510
710
  const building = BuildingNode.parse({ id: 'building_f', children: [level.id] });
511
- return graph(building, level, ...walls, zone, ...(door ? [door] : []), ...(deskItem ? [deskItem] : []));
711
+ return graph(building, level, ...walls, zone, ...doors, ...(deskItem ? [deskItem] : []));
512
712
  };
513
713
  }
714
+ /**
715
+ * The piece's turned footprint inside the room, read by clipping it against the outline (not the
716
+ * operation's own test): what stands outside, under a square centimetre of rounding.
717
+ */
718
+ const standsIn = (item, outline) => {
719
+ const corners = itemNodePlanCorners(item);
720
+ const [cx, cz] = [0, 1].map((axis) => corners.reduce((sum, c) => sum + c[axis], 0) / 4);
721
+ // Round the footprint, not across it: itemNodePlanCorners lists its corners by side.
722
+ const ring = corners.sort((a, b) => Math.atan2(a[1] - cz, a[0] - cx) - Math.atan2(b[1] - cz, b[0] - cx));
723
+ return clippedArea(difference(ring, outline)) < 1e-4;
724
+ };
514
725
  const furnished = (result, nodes) => {
515
726
  const items = Object.values(nodes);
516
727
  const itemIds = result.itemIds;
517
728
  return problems([itemIds.length > 0, 'nothing placed'], [
518
729
  itemIds.every((id) => nodes[id]?.type === 'item' && nodes[id]?.parentId === 'level_f'),
519
730
  'an item is not on the room level',
520
- ], [findBlockedDoors({ nodes: items }).length === 0, 'an item blocks a door'], [findItemItemCollisions({ nodes: items }).length === 0, 'two items overlap']);
731
+ ], [findBlockedDoors({ nodes: items }).length === 0, 'an item blocks a door'], [findItemItemCollisions({ nodes: items }).length === 0, 'two items overlap'], [
732
+ findItemsMidRoom({ nodes: items, levelId: 'level_f' }).length === 0,
733
+ 'a wall-bound piece stands in the middle of the room',
734
+ ], [
735
+ itemIds.every((id) => {
736
+ const [item, zone] = [nodes[id], nodes.zone_bed];
737
+ return (item?.type === 'item' && zone?.type === 'zone' && standsIn(item, zone.polygon));
738
+ }),
739
+ 'an item stands outside the room',
740
+ ]);
521
741
  };
522
- const bedPosition = (nodes) => {
523
- const bed = Object.values(nodes).find((node) => node.type === 'item' && node.asset.id === 'double-bed');
524
- return bed?.type === 'item' ? bed.position : null;
742
+ /** Where the piece of `assetId` stands, null when it was not placed. */
743
+ const positionOf = (nodes, assetId) => {
744
+ const piece = Object.values(nodes).find((node) => node.type === 'item' && node.asset.id === assetId);
745
+ return piece?.type === 'item' ? piece.position : null;
746
+ };
747
+ const bedPosition = (nodes) => positionOf(nodes, 'double-bed');
748
+ /** The sofa and the TV placed, the coffee table and the TV straight across from the sofa. */
749
+ const livingGroupKept = (nodes) => {
750
+ const [sofa, table, tv] = ['sofa', 'coffee-table', 'tv-stand'].map((id) => positionOf(nodes, id));
751
+ const across = (piece) => !!sofa && !!piece && Math.abs(piece[0] - sofa[0]) < 0.01;
752
+ return problems([sofa !== null, 'the sofa was skipped'], [tv !== null, 'the TV stand was skipped'], [across(table) && across(tv), 'the coffee table and the TV are not across from the sofa']);
525
753
  };
526
754
  export const FURNISH_ROOM_CASES = [
527
755
  {
528
756
  name: 'a room named by its zone: its level and outline; the bed faces the door from the far wall',
529
757
  tool: 'furnish_room',
530
- scene: bedroomScene({ doorOn: 'wall_s' }),
758
+ scene: roomScene({ doorsOn: ['wall_s'] }),
531
759
  input: { zoneId: 'zone_bed', roomType: 'bedroom' },
532
760
  context: { catalog: CATALOG },
533
761
  expect: {
@@ -541,7 +769,7 @@ export const FURNISH_ROOM_CASES = [
541
769
  {
542
770
  name: 'the door it finds sets the furniture wall, whichever edge it is on',
543
771
  tool: 'furnish_room',
544
- scene: bedroomScene({ doorOn: 'wall_n' }),
772
+ scene: roomScene({ doorsOn: ['wall_n'] }),
545
773
  input: { zoneId: 'zone_bed', roomType: 'bedroom' },
546
774
  context: { catalog: CATALOG },
547
775
  expect: {
@@ -555,7 +783,7 @@ export const FURNISH_ROOM_CASES = [
555
783
  {
556
784
  name: 'doorWallIndex names the door wall of a room with no door yet, and keeps it clear',
557
785
  tool: 'furnish_room',
558
- scene: bedroomScene(),
786
+ scene: roomScene(),
559
787
  input: { zoneId: 'zone_bed', roomType: 'bedroom', doorWallIndex: 1 },
560
788
  context: { catalog: CATALOG },
561
789
  expect: {
@@ -569,7 +797,7 @@ export const FURNISH_ROOM_CASES = [
569
797
  {
570
798
  name: 'a polygon instead of a zone, on the lowest storey when no level is named',
571
799
  tool: 'furnish_room',
572
- scene: bedroomScene({ doorOn: 'wall_s' }),
800
+ scene: roomScene({ doorsOn: ['wall_s'] }),
573
801
  input: { polygon: BEDROOM, roomType: 'bedroom' },
574
802
  context: { catalog: CATALOG },
575
803
  expect: { result: { ok: true, doorWallIndex: 0 }, check: furnished },
@@ -577,15 +805,157 @@ export const FURNISH_ROOM_CASES = [
577
805
  {
578
806
  name: 'an item already in the room is never overlapped',
579
807
  tool: 'furnish_room',
580
- scene: bedroomScene({ doorOn: 'wall_s', desk: true }),
808
+ scene: roomScene({ doorsOn: ['wall_s'], desk: true }),
581
809
  input: { zoneId: 'zone_bed', roomType: 'bedroom' },
582
810
  context: { catalog: CATALOG },
583
811
  expect: { result: { ok: true }, check: furnished },
584
812
  },
813
+ {
814
+ name: 'a door in the sofa wall and in the TV wall: the sofa slides along its wall, the table and the TV with it, nothing into the room',
815
+ tool: 'furnish_room',
816
+ scene: roomScene({
817
+ outline: roomOutline(7, 4.5),
818
+ name: 'Living room',
819
+ doorsOn: ['wall_s', 'wall_n'],
820
+ }),
821
+ input: { zoneId: 'zone_bed', roomType: 'living' },
822
+ context: { catalog: CATALOG },
823
+ expect: {
824
+ result: { ok: true, doorWallIndex: 0, doorsDetected: 2 },
825
+ check: (result, nodes) => [...furnished(result, nodes), ...livingGroupKept(nodes)],
826
+ },
827
+ },
828
+ {
829
+ name: 'a skip names the other sources, and a set with no skip does not',
830
+ tool: 'furnish_room',
831
+ scene: roomScene({
832
+ outline: roomOutline(7, 4.5),
833
+ name: 'Living room',
834
+ open: ['wall_s', 'wall_e', 'wall_w'],
835
+ }),
836
+ input: { zoneId: 'zone_bed', roomType: 'living', doorWallIndex: 0 },
837
+ context: { catalog: CATALOG },
838
+ expect: {
839
+ result: { ok: true },
840
+ check: (result) => problems([result.skipped.length > 0, 'nothing was skipped: no case here'], [
841
+ String(result.message).includes('For what was skipped: add_object builds an object of any shape and size'),
842
+ 'a skip does not name the sources',
843
+ ]),
844
+ },
845
+ },
846
+ {
847
+ name: 'every piece placed comes with its name, size and id',
848
+ tool: 'furnish_room',
849
+ scene: roomScene({ outline: roomOutline(7, 4.5), name: 'Living room', doorsOn: ['wall_s'] }),
850
+ input: { zoneId: 'zone_bed', roomType: 'living' },
851
+ context: { catalog: CATALOG },
852
+ expect: {
853
+ result: { ok: true, skipped: [] },
854
+ mentions: ['sofa (2.5 × 1.5 m): item_'],
855
+ check: (result) => {
856
+ const pieces = result.pieces;
857
+ const ids = result.itemIds;
858
+ return problems([pieces.length === ids.length && ids.length > 0, 'pieces and ids differ'], [
859
+ pieces.every((piece, i) => piece.endsWith(`: ${ids[i]}`) && / \(\d[\d.]* × \d[\d.]* m\): /.test(piece)),
860
+ `a piece lacks its size or its id: ${pieces}`,
861
+ ], [!String(result.message).includes('add_object'), 'a set with no skip names the sources']);
862
+ },
863
+ },
864
+ },
865
+ {
866
+ name: 'a wall-bound piece where no wall stands is skipped, and says so: the TV of a living room open to the south',
867
+ tool: 'furnish_room',
868
+ scene: roomScene({
869
+ outline: roomOutline(7, 4.5),
870
+ name: 'Living room',
871
+ open: ['wall_s', 'wall_e', 'wall_w'],
872
+ }),
873
+ input: { zoneId: 'zone_bed', roomType: 'living', doorWallIndex: 0 },
874
+ context: { catalog: CATALOG },
875
+ expect: {
876
+ result: { ok: true },
877
+ mentions: ['tv-stand (2 × 0.5 m): no wall to stand against there'],
878
+ check: (result, nodes) => [
879
+ ...furnished(result, nodes),
880
+ ...problems([positionOf(nodes, 'sofa') !== null, 'the sofa was skipped']),
881
+ ],
882
+ },
883
+ },
884
+ {
885
+ name: 'an L-shaped bedroom: nothing lands in the corner the L leaves out',
886
+ tool: 'furnish_room',
887
+ scene: roomScene({ outline: L_ROOM, doorsOn: ['wall_0'] }),
888
+ input: { zoneId: 'zone_bed', roomType: 'bedroom' },
889
+ context: { catalog: CATALOG },
890
+ expect: { result: { ok: true, doorWallIndex: 0 }, check: furnished },
891
+ },
892
+ {
893
+ name: 'an outline drawn closed (its first corner repeated) is the same room: the closet stands against its far wall',
894
+ tool: 'furnish_room',
895
+ scene: roomScene({ outline: [...roomOutline(6, 4), [0, 0]], name: 'Storage' }),
896
+ input: { zoneId: 'zone_bed', roomType: 'storage', doorWallIndex: 0 },
897
+ context: { catalog: CATALOG },
898
+ expect: {
899
+ result: { ok: true, placed: 1 },
900
+ check: (result, nodes) => [
901
+ ...furnished(result, nodes),
902
+ ...problems([
903
+ (positionOf(nodes, 'closet')?.[2] ?? 0) > 3,
904
+ 'the closet is not against the far wall',
905
+ ]),
906
+ ],
907
+ },
908
+ },
909
+ {
910
+ name: 'a U-shaped room: nothing stands in the notch between its arms, though its corners touch the outline',
911
+ tool: 'furnish_room',
912
+ scene: roomScene({ outline: U_ROOM, name: 'Dining room' }),
913
+ input: { zoneId: 'zone_bed', roomType: 'dining', doorWallIndex: 0 },
914
+ context: {
915
+ catalog: [
916
+ ...CATALOG,
917
+ item('dining-table', [2, 0.75, 4]),
918
+ item('dining-chair', [0.5, 0.9, 0.5]),
919
+ ],
920
+ },
921
+ expect: {
922
+ result: { ok: true },
923
+ mentions: ['dining-table (2 × 4 m): outside the room'],
924
+ check: furnished,
925
+ },
926
+ },
927
+ {
928
+ name: 'a room turned 45°: the closet stands inside it, against a wall',
929
+ tool: 'furnish_room',
930
+ scene: roomScene({ outline: DIAMOND_ROOM, name: 'Storage', doorsOn: [] }),
931
+ input: { zoneId: 'zone_bed', roomType: 'storage', doorWallIndex: 0 },
932
+ context: { catalog: CATALOG },
933
+ expect: {
934
+ result: { ok: true, placed: 1 },
935
+ check: (result, nodes) => [
936
+ ...furnished(result, nodes),
937
+ ...problems([positionOf(nodes, 'closet') !== null, 'the closet was skipped']),
938
+ ],
939
+ },
940
+ },
941
+ {
942
+ name: 'a bathroom under 6.5 m², which takes a shower and no tub: the shower stands against a wall, not in the middle',
943
+ tool: 'furnish_room',
944
+ scene: roomScene({ outline: roomOutline(2.4, 2.6), name: 'Bathroom', doorsOn: ['wall_s'] }),
945
+ input: { zoneId: 'zone_bed', roomType: 'bathroom' },
946
+ context: { catalog: CATALOG },
947
+ expect: {
948
+ result: { ok: true },
949
+ check: (result, nodes) => [
950
+ ...furnished(result, nodes),
951
+ ...problems([positionOf(nodes, 'shower-square') !== null, 'the shower was skipped'], [positionOf(nodes, 'bathtub') === null, 'a tub was placed']),
952
+ ],
953
+ },
954
+ },
585
955
  {
586
956
  name: 'a piece the catalog lacks is skipped and named',
587
957
  tool: 'furnish_room',
588
- scene: bedroomScene({ doorOn: 'wall_s' }),
958
+ scene: roomScene({ doorsOn: ['wall_s'] }),
589
959
  input: { zoneId: 'zone_bed', roomType: 'bedroom' },
590
960
  context: { catalog: CATALOG.filter((entry) => entry.id !== 'bedside-table') },
591
961
  expect: { result: { ok: true }, mentions: ['bedside-table: not in the catalog'] },
@@ -593,7 +963,7 @@ export const FURNISH_ROOM_CASES = [
593
963
  {
594
964
  name: 'no room named: room_required',
595
965
  tool: 'furnish_room',
596
- scene: bedroomScene(),
966
+ scene: roomScene(),
597
967
  input: { roomType: 'bedroom' },
598
968
  context: { catalog: CATALOG },
599
969
  expect: { refusal: 'room_required' },
@@ -601,7 +971,7 @@ export const FURNISH_ROOM_CASES = [
601
971
  {
602
972
  name: 'a wall id for the room: not_a_zone',
603
973
  tool: 'furnish_room',
604
- scene: bedroomScene(),
974
+ scene: roomScene(),
605
975
  input: { zoneId: 'wall_s', roomType: 'bedroom' },
606
976
  context: { catalog: CATALOG },
607
977
  expect: { refusal: 'not_a_zone', mentions: ['wall_s'] },
@@ -609,7 +979,7 @@ export const FURNISH_ROOM_CASES = [
609
979
  {
610
980
  name: 'a zone id that does not exist: zone_not_found',
611
981
  tool: 'furnish_room',
612
- scene: bedroomScene(),
982
+ scene: roomScene(),
613
983
  input: { zoneId: 'zone_nope', roomType: 'bedroom' },
614
984
  context: { catalog: CATALOG },
615
985
  expect: { refusal: 'zone_not_found' },
@@ -627,7 +997,7 @@ export const FURNISH_ROOM_CASES = [
627
997
  {
628
998
  name: 'a host without a catalog: no_catalog',
629
999
  tool: 'furnish_room',
630
- scene: bedroomScene(),
1000
+ scene: roomScene(),
631
1001
  input: { zoneId: 'zone_bed', roomType: 'bedroom' },
632
1002
  surfaces: ['core', 'chat'],
633
1003
  expect: { refusal: 'no_catalog' },
@@ -1,9 +1,13 @@
1
1
  import { type AnyNode, type AssetInput } from '../../schema/index.js';
2
+ import type { AgentContext } from '../types.js';
3
+ import type { SessionRecord } from '../scene-checkpoint.js';
4
+ import type { AssetViewFacts } from '../asset-views.js';
2
5
  /**
3
6
  * Edge cases of the agent tools that run as core operations, written before the operations. One
4
7
  * declarative table per tool; the core, MCP and chat runners each run every table, so the three
5
- * layers cannot disagree. `surfaces` narrows a case whose setup only one surface has (the chat
6
- * knows the floor a person is viewing; the MCP has no such thing and falls back to the lowest).
8
+ * layers cannot disagree. `surfaces` narrows a case whose setup only one surface has (the live
9
+ * stores close level gaps when a scene loads). `context.activeLevelId` is the floor the host's
10
+ * person views: the chat's, or an in-page MCP host's; a remote MCP has none, so the lowest storey.
7
11
  * `after` lists fields some nodes must have once the operation's changes are applied.
8
12
  */
9
13
  export type AgentSurface = 'core' | 'mcp' | 'chat';
@@ -16,12 +20,17 @@ export type AgentToolCase = {
16
20
  tool: string;
17
21
  scene: () => SceneGraph;
18
22
  input: Record<string, unknown>;
19
- /** `catalog`: the item library the host hands search_assets. */
20
23
  context?: {
21
24
  activeLevelId?: string | null;
22
25
  catalog?: AssetInput[];
26
+ assetViews?: Record<string, AssetViewFacts>;
27
+ session?: () => SessionRecord;
28
+ designBrief?: AgentContext['designBrief'];
29
+ /** The person's words of the turn, where the host has a person (core and chat; not MCP). */
30
+ requestText?: string;
23
31
  };
24
32
  surfaces?: AgentSurface[];
33
+ readOnly?: boolean;
25
34
  expect: {
26
35
  refusal: string;
27
36
  mentions?: string[];
@@ -36,14 +45,20 @@ export type AgentToolCase = {
36
45
  /** Text the result must include. */
37
46
  mentions?: string[];
38
47
  /** What the table cannot state (minted ids, derived construction): the problems, if any. */
48
+ session?: (session: SessionRecord) => string[];
39
49
  check?: (result: Record<string, unknown>, nodes: Readonly<Record<string, AnyNode>>) => string[];
40
50
  };
41
51
  };
52
+ /** Base chains are not the room/region finish, nor a promise that a ref renders. */
53
+ export declare function finishReadbackScene(): SceneGraph;
54
+ /** Reject non-finite layout endpoints before JSON can silently turn them into null. */
55
+ export declare function finiteReadbackProblems(value: unknown, path?: string): string[];
42
56
  export declare const LIST_LEVELS_CASES: AgentToolCase[];
43
57
  export declare const GET_NODE_CASES: AgentToolCase[];
44
58
  export declare const LEVEL_TARGET_CASES: AgentToolCase[];
45
59
  export declare const GET_WALLS_CASES: AgentToolCase[];
46
60
  export declare const GET_ZONES_CASES: AgentToolCase[];
61
+ export declare const FINISH_READBACK_CASES: AgentToolCase[];
47
62
  export declare const GET_LEVEL_SUMMARY_CASES: AgentToolCase[];
48
63
  export declare const DUPLICATE_LEVEL_CASES: AgentToolCase[];
49
64
  export declare const DELETE_NODE_CASES: AgentToolCase[];
@@ -1 +1 @@
1
- {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/cases.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EAgBhB,MAAM,cAAc,CAAA;AASrB;;;;;;GAMG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,UAAU,CAAA;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,gEAAgE;IAChE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,CAAA;IACnE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,MAAM,EACF;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACxC;QACE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/C,sFAAsF;QACtF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACjD,oCAAoC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,4FAA4F;QAC5F,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,EAAE,CAAA;KAChG,CAAA;CACN,CAAA;AAyLD,eAAO,MAAM,iBAAiB,EAAE,aAAa,EA0E5C,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,EAgCzC,CAAA;AAID,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAkE7C,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,EAkC1C,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,EA0B1C,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,aAAa,EA8ElD,CAAA;AAiBD,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAyGhD,CAAA;AAID,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAiE5C,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAmBpD,CAAA"}
1
+ {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/cases.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EAgBhB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AA8BpD;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,UAAU,CAAA;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC7B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC3C,OAAO,CAAC,EAAE,MAAM,aAAa,CAAA;QAC7B,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QACzC,4FAA4F;QAC5F,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,EACF;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACxC;QACE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/C,sFAAsF;QACtF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACjD,oCAAoC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,4FAA4F;QAC5F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,EAAE,CAAA;QAC9C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,EAAE,CAAA;KAChG,CAAA;CACN,CAAA;AAmLD,oFAAoF;AACpF,wBAAgB,mBAAmB,IAAI,UAAU,CAsBhD;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAW,GAAG,MAAM,EAAE,CAMhF;AAQD,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAyE5C,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,EAgCzC,CAAA;AAID,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAiE7C,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,EA0C1C,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,EA4B1C,CAAA;AAID,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAoEhD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,aAAa,EA8ElD,CAAA;AAiBD,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAwGhD,CAAA;AAID,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAiE5C,CAAA;AA0CD,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAuCpD,CAAA"}