@pascal-app/core 1.0.4 → 1.0.5
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.
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +102 -90
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
- package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +183 -4
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
- package/dist/agent-operations/achieved.d.ts +5 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -1
- package/dist/agent-operations/achieved.js +21 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +3 -1
- package/dist/agent-operations/add-fence.d.ts +18 -0
- package/dist/agent-operations/add-fence.d.ts.map +1 -0
- package/dist/agent-operations/add-fence.js +48 -0
- package/dist/agent-operations/add-level.d.ts +4 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +48 -12
- package/dist/agent-operations/add-object.d.ts +38 -9
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +172 -11
- package/dist/agent-operations/add-wall.d.ts +1 -3
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +35 -9
- package/dist/agent-operations/apply-changes.d.ts +7 -1
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +54 -22
- package/dist/agent-operations/apply-outcome.d.ts +6 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
- package/dist/agent-operations/apply-outcome.js +23 -8
- package/dist/agent-operations/asset-views.d.ts +75 -0
- package/dist/agent-operations/asset-views.d.ts.map +1 -0
- package/dist/agent-operations/asset-views.js +234 -0
- package/dist/agent-operations/author-scene.d.ts +157 -0
- package/dist/agent-operations/author-scene.d.ts.map +1 -0
- package/dist/agent-operations/author-scene.js +1076 -0
- package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
- package/dist/agent-operations/authored-scene-merge.js +96 -0
- package/dist/agent-operations/batch.d.ts +22 -0
- package/dist/agent-operations/batch.d.ts.map +1 -0
- package/dist/agent-operations/batch.js +104 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/ceiling-object-observations.js +111 -0
- package/dist/agent-operations/corner-window.d.ts +19 -0
- package/dist/agent-operations/corner-window.d.ts.map +1 -0
- package/dist/agent-operations/corner-window.js +84 -0
- package/dist/agent-operations/create-roof.d.ts +32 -0
- package/dist/agent-operations/create-roof.d.ts.map +1 -0
- package/dist/agent-operations/create-roof.js +304 -0
- package/dist/agent-operations/create-room.d.ts +2 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +73 -5
- package/dist/agent-operations/create-stair.d.ts +6 -28
- package/dist/agent-operations/create-stair.d.ts.map +1 -1
- package/dist/agent-operations/create-stair.js +187 -104
- package/dist/agent-operations/design-brief.d.ts +38 -0
- package/dist/agent-operations/design-brief.d.ts.map +1 -0
- package/dist/agent-operations/design-brief.js +300 -0
- package/dist/agent-operations/designs.d.ts +24 -0
- package/dist/agent-operations/designs.d.ts.map +1 -0
- package/dist/agent-operations/designs.js +48 -0
- package/dist/agent-operations/door-clearance.d.ts +16 -1
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +61 -4
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
- package/dist/agent-operations/duplicate-level.js +2 -1
- package/dist/agent-operations/find-by-type.d.ts +14 -7
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +266 -43
- package/dist/agent-operations/furnish-room.d.ts +22 -1
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +66 -19
- package/dist/agent-operations/furniture-kind.d.ts +22 -0
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
- package/dist/agent-operations/furniture-kind.js +69 -0
- package/dist/agent-operations/get-node.d.ts +5 -2
- package/dist/agent-operations/get-node.d.ts.map +1 -1
- package/dist/agent-operations/get-node.js +82 -10
- package/dist/agent-operations/hosted-services.d.ts +2 -1
- package/dist/agent-operations/hosted-services.d.ts.map +1 -1
- package/dist/agent-operations/index.d.ts +281 -69
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +66 -5
- package/dist/agent-operations/item-space.d.ts +22 -0
- package/dist/agent-operations/item-space.d.ts.map +1 -0
- package/dist/agent-operations/item-space.js +69 -0
- package/dist/agent-operations/layout-clearance.d.ts +52 -3
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +340 -30
- package/dist/agent-operations/level-height-fill.d.ts +12 -0
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
- package/dist/agent-operations/level-height-fill.js +59 -0
- package/dist/agent-operations/level-reads.d.ts +5 -1
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +10 -3
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +23 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -1
- package/dist/agent-operations/material-preset.js +3 -9
- package/dist/agent-operations/material-refs.d.ts +7 -1
- package/dist/agent-operations/material-refs.d.ts.map +1 -1
- package/dist/agent-operations/material-refs.js +10 -5
- package/dist/agent-operations/merge-windows.d.ts +6 -0
- package/dist/agent-operations/merge-windows.d.ts.map +1 -0
- package/dist/agent-operations/merge-windows.js +27 -0
- package/dist/agent-operations/move-roofs.d.ts +9 -0
- package/dist/agent-operations/move-roofs.d.ts.map +1 -0
- package/dist/agent-operations/move-roofs.js +29 -0
- package/dist/agent-operations/paint.d.ts +2 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +163 -53
- package/dist/agent-operations/photo-elevation.d.ts +155 -0
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
- package/dist/agent-operations/photo-elevation.js +761 -0
- package/dist/agent-operations/place-in-room.d.ts +29 -0
- package/dist/agent-operations/place-in-room.d.ts.map +1 -0
- package/dist/agent-operations/place-in-room.js +403 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +15 -2
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +3 -0
- package/dist/agent-operations/point-context.d.ts +139 -0
- package/dist/agent-operations/point-context.d.ts.map +1 -0
- package/dist/agent-operations/point-context.js +1 -0
- package/dist/agent-operations/project-files.d.ts +9 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -0
- package/dist/agent-operations/project-files.js +25 -0
- package/dist/agent-operations/record-made.d.ts +18 -0
- package/dist/agent-operations/record-made.d.ts.map +1 -0
- package/dist/agent-operations/record-made.js +28 -0
- package/dist/agent-operations/roof-footprint.d.ts +24 -0
- package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
- package/dist/agent-operations/roof-footprint.js +242 -0
- package/dist/agent-operations/roof-writes.d.ts +20 -0
- package/dist/agent-operations/roof-writes.d.ts.map +1 -0
- package/dist/agent-operations/roof-writes.js +165 -0
- package/dist/agent-operations/room-findings.d.ts +54 -0
- package/dist/agent-operations/room-findings.d.ts.map +1 -0
- package/dist/agent-operations/room-findings.js +143 -0
- package/dist/agent-operations/room-floor-script.d.ts +23 -0
- package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
- package/dist/agent-operations/room-floor-script.js +54 -0
- package/dist/agent-operations/room-structure.d.ts +2 -2
- package/dist/agent-operations/room-structure.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/scene-checkpoint.js +176 -0
- package/dist/agent-operations/scene-queries.d.ts +3750 -3319
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +13 -23
- package/dist/agent-operations/scene-review.d.ts +52 -0
- package/dist/agent-operations/scene-review.d.ts.map +1 -0
- package/dist/agent-operations/scene-review.js +106 -0
- package/dist/agent-operations/scene-view.d.ts +82 -15
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +408 -51
- package/dist/agent-operations/search-assets.d.ts +2 -2
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +4 -3
- package/dist/agent-operations/search-materials.d.ts +9 -3
- package/dist/agent-operations/search-materials.d.ts.map +1 -1
- package/dist/agent-operations/search-materials.js +83 -29
- package/dist/agent-operations/set-checkpoint.d.ts +9 -0
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/set-checkpoint.js +31 -0
- package/dist/agent-operations/set-ground-level.d.ts +12 -0
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
- package/dist/agent-operations/set-ground-level.js +61 -0
- package/dist/agent-operations/site.d.ts +21 -0
- package/dist/agent-operations/site.d.ts.map +1 -0
- package/dist/agent-operations/site.js +123 -0
- package/dist/agent-operations/types.d.ts +66 -7
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.d.ts +39 -5
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +223 -44
- package/dist/agent-operations/wall-face-script.d.ts +28 -0
- package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-script.js +62 -0
- package/dist/agent-operations/wall-object-observations.d.ts +41 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/wall-object-observations.js +249 -0
- package/dist/agent-operations/wall-opening.d.ts +23 -23
- package/dist/agent-operations/wall-opening.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.d.ts +24 -0
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
- package/dist/agent-operations/wall-skirting.js +85 -0
- package/dist/agent-tools/add-object.d.ts +11 -7
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +17 -11
- package/dist/agent-tools/assets.d.ts +8 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +13 -1
- package/dist/agent-tools/author-scene.d.ts +651 -0
- package/dist/agent-tools/author-scene.d.ts.map +1 -0
- package/dist/agent-tools/author-scene.js +252 -0
- package/dist/agent-tools/batch.d.ts +25 -0
- package/dist/agent-tools/batch.d.ts.map +1 -0
- package/dist/agent-tools/batch.js +61 -0
- package/dist/agent-tools/checkpoints.d.ts +13 -0
- package/dist/agent-tools/checkpoints.d.ts.map +1 -0
- package/dist/agent-tools/checkpoints.js +16 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -1
- package/dist/agent-tools/collections.d.ts +6 -6
- package/dist/agent-tools/collections.d.ts.map +1 -1
- package/dist/agent-tools/columns.d.ts +18 -18
- package/dist/agent-tools/columns.js +2 -2
- package/dist/agent-tools/corner-window.d.ts +46 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -0
- package/dist/agent-tools/corner-window.js +47 -0
- package/dist/agent-tools/create-room.d.ts +26 -25
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +11 -4
- package/dist/agent-tools/design-brief.d.ts +408 -0
- package/dist/agent-tools/design-brief.d.ts.map +1 -0
- package/dist/agent-tools/design-brief.js +149 -0
- package/dist/agent-tools/designs.d.ts +34 -0
- package/dist/agent-tools/designs.d.ts.map +1 -0
- package/dist/agent-tools/designs.js +50 -0
- package/dist/agent-tools/fences.d.ts +28 -0
- package/dist/agent-tools/fences.d.ts.map +1 -0
- package/dist/agent-tools/fences.js +31 -0
- package/dist/agent-tools/find-by-type.d.ts +8 -1
- package/dist/agent-tools/find-by-type.d.ts.map +1 -1
- package/dist/agent-tools/find-by-type.js +23 -2
- package/dist/agent-tools/furnish-room.d.ts +10 -8
- package/dist/agent-tools/furnish-room.d.ts.map +1 -1
- package/dist/agent-tools/furnish-room.js +3 -1
- package/dist/agent-tools/hosted-services.d.ts +177 -141
- package/dist/agent-tools/hosted-services.d.ts.map +1 -1
- package/dist/agent-tools/hosted-services.js +47 -14
- package/dist/agent-tools/index.d.ts +894 -215
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +47 -3
- package/dist/agent-tools/levels.d.ts +11 -3
- package/dist/agent-tools/levels.d.ts.map +1 -1
- package/dist/agent-tools/levels.js +16 -5
- package/dist/agent-tools/measurement.d.ts +38 -20
- package/dist/agent-tools/measurement.d.ts.map +1 -1
- package/dist/agent-tools/measurement.js +117 -67
- package/dist/agent-tools/merge-windows.d.ts +10 -0
- package/dist/agent-tools/merge-windows.d.ts.map +1 -0
- package/dist/agent-tools/merge-windows.js +12 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -1
- package/dist/agent-tools/nodes.js +1 -1
- package/dist/agent-tools/notation-inventory.d.ts +16 -0
- package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
- package/dist/agent-tools/notation-inventory.js +105 -0
- package/dist/agent-tools/paint.d.ts +5 -5
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +1 -1
- package/dist/agent-tools/photo-elevation.d.ts +32 -0
- package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
- package/dist/agent-tools/photo-elevation.js +73 -0
- package/dist/agent-tools/place-in-room.d.ts +35 -0
- package/dist/agent-tools/place-in-room.d.ts.map +1 -0
- package/dist/agent-tools/place-in-room.js +61 -0
- package/dist/agent-tools/place-items.d.ts +1 -1
- package/dist/agent-tools/place-items.js +2 -2
- package/dist/agent-tools/project-files.d.ts +189 -0
- package/dist/agent-tools/project-files.d.ts.map +1 -0
- package/dist/agent-tools/project-files.js +99 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/retired.d.ts +21 -0
- package/dist/agent-tools/retired.d.ts.map +1 -0
- package/dist/agent-tools/retired.js +29 -0
- package/dist/agent-tools/roofs.d.ts +100 -0
- package/dist/agent-tools/roofs.d.ts.map +1 -0
- package/dist/agent-tools/roofs.js +96 -0
- package/dist/agent-tools/room-structure.d.ts +46 -38
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +30 -27
- package/dist/agent-tools/search-materials.d.ts +22 -3
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/search-materials.js +13 -14
- package/dist/agent-tools/site.d.ts +27 -0
- package/dist/agent-tools/site.d.ts.map +1 -0
- package/dist/agent-tools/site.js +40 -0
- package/dist/agent-tools/sources.d.ts +12 -0
- package/dist/agent-tools/sources.d.ts.map +1 -0
- package/dist/agent-tools/sources.js +11 -0
- package/dist/agent-tools/stairs.d.ts +48 -28
- package/dist/agent-tools/stairs.d.ts.map +1 -1
- package/dist/agent-tools/stairs.js +65 -22
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +1 -1
- package/dist/agent-tools/view-scene.d.ts +50 -12
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +74 -31
- package/dist/agent-tools/wall-openings.d.ts +77 -73
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +9 -5
- package/dist/agent-tools/walls.d.ts +4 -4
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +7 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
- package/dist/building/corner-window.d.ts +56 -0
- package/dist/building/corner-window.d.ts.map +1 -0
- package/dist/building/corner-window.js +179 -0
- package/dist/building/ground-level.d.ts +26 -0
- package/dist/building/ground-level.d.ts.map +1 -0
- package/dist/building/ground-level.js +58 -0
- package/dist/building/index.d.ts +5 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +5 -0
- package/dist/building/level-duplication.d.ts +7472 -6613
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-duplication.js +18 -4
- package/dist/building/level-insertion.d.ts +55 -0
- package/dist/building/level-insertion.d.ts.map +1 -0
- package/dist/building/level-insertion.js +35 -0
- package/dist/building/merge-windows.d.ts +58 -0
- package/dist/building/merge-windows.d.ts.map +1 -0
- package/dist/building/merge-windows.js +189 -0
- package/dist/building/opening-style-presets.d.ts +2 -2
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/photo-elevation.d.ts +125 -0
- package/dist/building/photo-elevation.d.ts.map +1 -0
- package/dist/building/photo-elevation.js +404 -0
- package/dist/building/wall-gaps.d.ts +13 -0
- package/dist/building/wall-gaps.d.ts.map +1 -0
- package/dist/building/wall-gaps.js +158 -0
- package/dist/building/wall-openings.d.ts +154 -119
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +37 -9
- package/dist/capture/schema.d.ts +22 -22
- package/dist/capture/source.d.ts.map +1 -1
- package/dist/capture/source.js +1 -1
- package/dist/commands/structure/create-zone.d.ts +12 -1
- package/dist/commands/structure/create-zone.d.ts.map +1 -1
- package/dist/commands/structure/create-zone.js +49 -0
- package/dist/commands/structure/divide-zone.d.ts +3 -3
- package/dist/commands/structure/index.d.ts +1 -1
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +1 -1
- package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
- package/dist/commands/structure/set-zone-intent.d.ts +4 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +19 -0
- package/dist/commands/structure/shared.d.ts +3642 -3213
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +106 -26
- package/dist/events/bus.d.ts +22 -3
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/capture-sessions.d.ts +5 -0
- package/dist/events/capture-sessions.d.ts.map +1 -0
- package/dist/events/capture-sessions.js +31 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
- package/dist/index.d.ts +37 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -9
- package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/angle-accumulator.d.ts.map +1 -1
- package/dist/lib/artifact-store.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.d.ts +65 -0
- package/dist/lib/below-grade-footprints.d.ts.map +1 -0
- package/dist/lib/below-grade-footprints.js +181 -0
- package/dist/lib/building-footprint.d.ts +33 -0
- package/dist/lib/building-footprint.d.ts.map +1 -0
- package/dist/lib/building-footprint.js +89 -0
- package/dist/lib/corner-pair.d.ts +1129 -0
- package/dist/lib/corner-pair.d.ts.map +1 -0
- package/dist/lib/corner-pair.js +130 -0
- package/dist/lib/corner-snap.d.ts +54 -0
- package/dist/lib/corner-snap.d.ts.map +1 -0
- package/dist/lib/corner-snap.js +125 -0
- package/dist/lib/critically-damped.d.ts +11 -0
- package/dist/lib/critically-damped.d.ts.map +1 -0
- package/dist/lib/critically-damped.js +14 -0
- package/dist/lib/deepest-drawn.d.ts +18 -0
- package/dist/lib/deepest-drawn.d.ts.map +1 -0
- package/dist/lib/deepest-drawn.js +65 -0
- package/dist/lib/door-operation.d.ts +1 -1
- package/dist/lib/exterior-wall-loops.d.ts +17 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
- package/dist/lib/exterior-wall-loops.js +334 -0
- package/dist/lib/finish-script.d.ts +61 -0
- package/dist/lib/finish-script.d.ts.map +1 -0
- package/dist/lib/finish-script.js +86 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +4 -4
- package/dist/lib/floor-plate-paint.d.ts +3 -1
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +24 -4
- package/dist/lib/floor-plates.d.ts +50 -50
- package/dist/lib/floor-script.d.ts +24 -0
- package/dist/lib/floor-script.d.ts.map +1 -0
- package/dist/lib/floor-script.js +51 -0
- package/dist/lib/foundation-construction.d.ts +73 -0
- package/dist/lib/foundation-construction.d.ts.map +1 -0
- package/dist/lib/foundation-construction.js +242 -0
- package/dist/lib/foundation-standard.d.ts +30 -0
- package/dist/lib/foundation-standard.d.ts.map +1 -0
- package/dist/lib/foundation-standard.js +30 -0
- package/dist/lib/foundation-wall.d.ts +36 -0
- package/dist/lib/foundation-wall.d.ts.map +1 -0
- package/dist/lib/foundation-wall.js +66 -0
- package/dist/lib/generic-foundation.d.ts +40 -0
- package/dist/lib/generic-foundation.d.ts.map +1 -0
- package/dist/lib/generic-foundation.js +200 -0
- package/dist/lib/geometry-script-node.d.ts +32 -3
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +26 -0
- package/dist/lib/grade-standing.d.ts +38 -0
- package/dist/lib/grade-standing.d.ts.map +1 -0
- package/dist/lib/grade-standing.js +137 -0
- package/dist/lib/ground-level.d.ts +20 -0
- package/dist/lib/ground-level.d.ts.map +1 -0
- package/dist/lib/ground-level.js +49 -0
- package/dist/lib/ground-over-part.d.ts +13 -0
- package/dist/lib/ground-over-part.d.ts.map +1 -0
- package/dist/lib/ground-over-part.js +94 -0
- package/dist/lib/ground-seat.d.ts +47 -0
- package/dist/lib/ground-seat.d.ts.map +1 -0
- package/dist/lib/ground-seat.js +61 -0
- package/dist/lib/ground-window.d.ts +39 -0
- package/dist/lib/ground-window.d.ts.map +1 -0
- package/dist/lib/ground-window.js +147 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +2 -3
- package/dist/lib/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +4 -4
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +3 -1
- package/dist/lib/point-ask.d.ts +9 -0
- package/dist/lib/point-ask.d.ts.map +1 -0
- package/dist/lib/point-ask.js +36 -0
- package/dist/lib/room-drawn-floor.d.ts +1 -1
- package/dist/lib/room-drawn-floor.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +3 -3
- package/dist/lib/room-graph.d.ts.map +1 -1
- package/dist/lib/room-graph.js +2 -0
- package/dist/lib/room-name.d.ts +2 -0
- package/dist/lib/room-name.d.ts.map +1 -1
- package/dist/lib/room-name.js +2 -0
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +1 -1
- package/dist/lib/room-zone-adoption.d.ts.map +1 -1
- package/dist/lib/script-inputs-key.d.ts +3 -0
- package/dist/lib/script-inputs-key.d.ts.map +1 -0
- package/dist/lib/script-inputs-key.js +13 -0
- package/dist/lib/setback-envelope.d.ts +95 -5
- package/dist/lib/setback-envelope.d.ts.map +1 -1
- package/dist/lib/setback-envelope.js +351 -35
- package/dist/lib/site-flatwork.d.ts +11 -0
- package/dist/lib/site-flatwork.d.ts.map +1 -0
- package/dist/lib/site-flatwork.js +11 -0
- package/dist/lib/site-ground-height.d.ts +13 -0
- package/dist/lib/site-ground-height.d.ts.map +1 -0
- package/dist/lib/site-ground-height.js +16 -0
- package/dist/lib/site-placement.d.ts +362 -0
- package/dist/lib/site-placement.d.ts.map +1 -0
- package/dist/lib/site-placement.js +942 -0
- package/dist/lib/snap-ease.d.ts +20 -0
- package/dist/lib/snap-ease.d.ts.map +1 -0
- package/dist/lib/snap-ease.js +50 -0
- package/dist/lib/structure-kernel.d.ts +1 -1
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +2 -0
- package/dist/lib/surface-support-references.d.ts +4 -0
- package/dist/lib/surface-support-references.d.ts.map +1 -0
- package/dist/lib/surface-support-references.js +19 -0
- package/dist/lib/terrain-support-query.d.ts +10 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -1
- package/dist/lib/terrain-support-query.js +1 -1
- package/dist/lib/wall-face-script.d.ts +66 -0
- package/dist/lib/wall-face-script.d.ts.map +1 -0
- package/dist/lib/wall-face-script.js +235 -0
- package/dist/lib/zone-colors.d.ts +1 -1
- package/dist/lib/zone-colors.d.ts.map +1 -1
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +4 -5
- package/dist/material-kinds.d.ts +9 -0
- package/dist/material-kinds.d.ts.map +1 -0
- package/dist/material-kinds.js +30 -0
- package/dist/material-library.d.ts +4 -4
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +72 -26
- package/dist/node-slots/index.d.ts +1 -0
- package/dist/node-slots/index.d.ts.map +1 -1
- package/dist/node-slots/index.js +7 -1
- package/dist/node-slots/roof.d.ts +5 -0
- package/dist/node-slots/roof.d.ts.map +1 -0
- package/dist/node-slots/roof.js +12 -0
- package/dist/node-slots/stair.d.ts +2 -0
- package/dist/node-slots/stair.d.ts.map +1 -1
- package/dist/node-slots/stair.js +6 -2
- package/dist/procedural-items/design-placement.d.ts.map +1 -1
- package/dist/procedural-items/design.d.ts +19 -19
- package/dist/procedural-items/fixtures.d.ts +297 -297
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/integration.d.ts +106 -106
- package/dist/procedural-items/joints.d.ts +4 -4
- package/dist/procedural-items/library-colors.d.ts +22 -22
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/node.d.ts +291 -291
- package/dist/procedural-items/query.d.ts +1 -1
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/recipe.d.ts +11 -11
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/section.d.ts.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/scene-api.d.ts +1 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +3 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +2 -0
- package/dist/registry/types.d.ts +120 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/assembly.d.ts +41 -41
- package/dist/schema/asset-url.d.ts +1 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/base.d.ts +9 -9
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/camera.d.ts +1 -1
- package/dist/schema/collection-templates.d.ts +20 -20
- package/dist/schema/collection-templates.d.ts.map +1 -1
- package/dist/schema/geometry-metadata.d.ts +7 -7
- package/dist/schema/geometry-metadata.d.ts.map +1 -1
- package/dist/schema/geometry-source.d.ts +26 -16
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +14 -0
- package/dist/schema/index.d.ts +10 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +10 -7
- package/dist/schema/material.d.ts +33 -33
- package/dist/schema/nodes/barrel-roof.d.ts +3 -0
- package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
- package/dist/schema/nodes/barrel-roof.js +11 -0
- package/dist/schema/nodes/block.d.ts +8 -8
- package/dist/schema/nodes/box-vent.d.ts +13 -13
- package/dist/schema/nodes/building.d.ts +9 -8
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +2 -0
- package/dist/schema/nodes/cabinet.d.ts +130 -129
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.js +1 -1
- package/dist/schema/nodes/ceiling.d.ts +15 -15
- package/dist/schema/nodes/chimney.d.ts +23 -23
- package/dist/schema/nodes/column.d.ts +207 -199
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +2 -0
- package/dist/schema/nodes/construction-dimension.d.ts +34 -34
- package/dist/schema/nodes/cupola.d.ts +15 -15
- package/dist/schema/nodes/curtain-wall.d.ts +21 -20
- package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
- package/dist/schema/nodes/curtain-wall.js +23 -0
- package/dist/schema/nodes/door.d.ts +50 -43
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +19 -0
- package/dist/schema/nodes/dormer.d.ts +37 -36
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +17 -17
- package/dist/schema/nodes/duct-fitting.d.ts +24 -24
- package/dist/schema/nodes/duct-segment.d.ts +14 -14
- package/dist/schema/nodes/duct-terminal.d.ts +12 -12
- package/dist/schema/nodes/elevator.d.ts +15 -15
- package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
- package/dist/schema/nodes/fence-feature.d.ts +37 -37
- package/dist/schema/nodes/fence-types.d.ts +32 -0
- package/dist/schema/nodes/fence-types.d.ts.map +1 -0
- package/dist/schema/nodes/fence-types.js +22 -0
- package/dist/schema/nodes/fence.d.ts +43 -72
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +4 -20
- package/dist/schema/nodes/floor-opening.d.ts +8 -8
- package/dist/schema/nodes/guide.d.ts +8 -8
- package/dist/schema/nodes/gutter.d.ts +14 -14
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.js +6 -5
- package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
- package/dist/schema/nodes/imported-mesh.d.ts +8 -8
- package/dist/schema/nodes/item.d.ts +30 -25
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
- package/dist/schema/nodes/level.d.ts +9 -9
- package/dist/schema/nodes/lineset.d.ts +8 -8
- package/dist/schema/nodes/liquid-line.d.ts +8 -8
- package/dist/schema/nodes/measurement.d.ts +8 -8
- package/dist/schema/nodes/opening-types.d.ts +13 -13
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
- package/dist/schema/nodes/pipe-segment.d.ts +11 -11
- package/dist/schema/nodes/pipe-trap.d.ts +9 -9
- package/dist/schema/nodes/ridge-vent.d.ts +14 -14
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +3 -1
- package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
- package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing-config.js +34 -0
- package/dist/schema/nodes/roof-glazing.d.ts +57 -0
- package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing.js +514 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-resize.js +21 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-shape.js +44 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +24 -0
- package/dist/schema/nodes/roof-segment.d.ts +153 -46
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +91 -20
- package/dist/schema/nodes/roof-types.d.ts +14 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -0
- package/dist/schema/nodes/roof-types.js +14 -0
- package/dist/schema/nodes/roof.d.ts +49 -49
- package/dist/schema/nodes/scan.d.ts +8 -8
- package/dist/schema/nodes/separator.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +16 -16
- package/dist/schema/nodes/site-facts.d.ts +64 -0
- package/dist/schema/nodes/site-facts.d.ts.map +1 -0
- package/dist/schema/nodes/site-facts.js +73 -0
- package/dist/schema/nodes/site.d.ts +105 -63
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -70
- package/dist/schema/nodes/skylight.d.ts +41 -41
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +21 -21
- package/dist/schema/nodes/solar-panel.d.ts +21 -21
- package/dist/schema/nodes/spawn.d.ts +8 -8
- package/dist/schema/nodes/stair-construction.d.ts +3 -3
- package/dist/schema/nodes/stair-defaults.d.ts +16 -0
- package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
- package/dist/schema/nodes/stair-defaults.js +15 -0
- package/dist/schema/nodes/stair-segment.d.ts +22 -22
- package/dist/schema/nodes/stair-types.d.ts +29 -0
- package/dist/schema/nodes/stair-types.d.ts.map +1 -0
- package/dist/schema/nodes/stair-types.js +23 -0
- package/dist/schema/nodes/stair.d.ts +51 -75
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +6 -20
- package/dist/schema/nodes/structural-grid.d.ts +8 -8
- package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
- package/dist/schema/nodes/turbine-vent.d.ts +13 -13
- package/dist/schema/nodes/unit.d.ts +10 -10
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +479 -146
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +19 -0
- package/dist/schema/nodes/window.d.ts +55 -39
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +10 -0
- package/dist/schema/nodes/zone.d.ts +231 -12
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +10 -0
- package/dist/schema/provenance.d.ts +21 -21
- package/dist/schema/scene-material.d.ts +5 -5
- package/dist/schema/site-presentation.d.ts +100 -0
- package/dist/schema/site-presentation.d.ts.map +1 -0
- package/dist/schema/site-presentation.js +83 -0
- package/dist/schema/types.d.ts +1954 -1414
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
- package/dist/services/index.d.ts +5 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +5 -1
- package/dist/services/level-height.d.ts.map +1 -1
- package/dist/services/level-height.js +7 -3
- package/dist/services/port-connectivity.d.ts +4 -0
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +35 -0
- package/dist/services/project-file-sink.d.ts +9 -0
- package/dist/services/project-file-sink.d.ts.map +1 -0
- package/dist/services/project-file-sink.js +13 -0
- package/dist/services/roof-bearing.d.ts +62 -0
- package/dist/services/roof-bearing.d.ts.map +1 -0
- package/dist/services/roof-bearing.js +234 -0
- package/dist/services/roof-level.d.ts +121 -0
- package/dist/services/roof-level.d.ts.map +1 -0
- package/dist/services/roof-level.js +280 -0
- package/dist/services/roof-move.d.ts +83 -0
- package/dist/services/roof-move.d.ts.map +1 -0
- package/dist/services/roof-move.js +316 -0
- package/dist/services/stair-surface-snap.d.ts +14 -0
- package/dist/services/stair-surface-snap.d.ts.map +1 -0
- package/dist/services/stair-surface-snap.js +116 -0
- package/dist/services/storey-datum.d.ts +12 -0
- package/dist/services/storey-datum.d.ts.map +1 -0
- package/dist/services/storey-datum.js +18 -0
- package/dist/services/storey.d.ts +51 -5
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +125 -8
- package/dist/solar-panel-presets.d.ts +2 -2
- package/dist/store/actions/node-actions.d.ts +3613 -3182
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +46 -1
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/history-control.d.ts +39 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +84 -4
- package/dist/store/scene-annotations.d.ts +7267 -6409
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-preview.d.ts +16 -0
- package/dist/store/scene-preview.d.ts.map +1 -0
- package/dist/store/scene-preview.js +144 -0
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-terrain.d.ts.map +1 -1
- package/dist/store/use-live-transforms.d.ts.map +1 -1
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +37 -4
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/fence/fence-features.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +24 -3
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +9 -3
- package/dist/systems/roof/roof-elevation.d.ts +5 -0
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +91 -62
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.d.ts +6 -3
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +78 -10
- package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.d.ts +6 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +27 -14
- package/dist/systems/stair/stair-layout.d.ts +2 -2
- package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.d.ts +73 -65
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.js +16 -9
- package/dist/systems/stair/stair-rail-path.d.ts +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts +16 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +57 -7
- package/dist/systems/stair/stair-sizing.d.ts +101 -99
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.d.ts +11 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +21 -0
- package/dist/systems/wall/wall-curve.d.ts +5 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +13 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -1
- package/dist/systems/wall/wall-frame.js +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
- package/dist/systems/wall/wall-room-sides.js +60 -7
- package/dist/systems/wall/wall-top.d.ts +7 -4
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +14 -6
- package/dist/systems/wall/wall-topology.d.ts +4 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +4 -2
- package/dist/systems/wall/wall-trim.d.ts +7 -0
- package/dist/systems/wall/wall-trim.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim.js +10 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +8 -0
- package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +2 -2
- package/dist/utils/floor-plate-migration.d.ts +3746 -3317
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.js +2 -2
- package/dist/utils/heal-scene-graph.d.ts +12 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +40 -23
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
- package/dist/utils/legacy-wall-datums.js +2 -2
- package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/scene-migrations.d.ts +1 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +1 -1
- package/dist/utils/semantic-equal.d.ts +3 -0
- package/dist/utils/semantic-equal.d.ts.map +1 -0
- package/dist/utils/semantic-equal.js +26 -0
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/wall-face-migration.d.ts +1 -1
- package/dist/utils/wall-face-migration.d.ts.map +1 -1
- package/package.json +36 -10
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { MATERIAL_CATALOG, } from '../material-library.js';
|
|
1
|
+
import { getDynamicLibraryMaterials, MATERIAL_CATALOG, } from '../material-library.js';
|
|
2
|
+
/** The most a group lists at a time: a search's best, a browse by name. */
|
|
3
|
+
const SEARCH_RESULTS = 12;
|
|
4
|
+
const BROWSE_RESULTS = 150;
|
|
2
5
|
/**
|
|
3
6
|
* Building words as the library writes them: a plan or a brief says timber, weatherboard, render
|
|
4
7
|
* where the library says wood, siding, stucco.
|
|
@@ -53,6 +56,8 @@ function shadeOf(hex) {
|
|
|
53
56
|
};
|
|
54
57
|
}
|
|
55
58
|
const stem = (word) => (word.length > 4 && word.endsWith('s') ? word.slice(0, -1) : word);
|
|
59
|
+
/** A word that searches: three letters or more, or any word with a digit ("48" of a plank). */
|
|
60
|
+
const searches = (word) => (word.length > 2 || /\d/.test(word)) && !STOP_WORDS.has(word);
|
|
56
61
|
/** Words that tell no material from another: "white render for the walls" asks for three things. */
|
|
57
62
|
const STOP_WORDS = new Set(['and', 'the', 'for', 'with', 'from', 'into', 'some', 'like', 'its']);
|
|
58
63
|
const wordsOf = (text) => text
|
|
@@ -61,6 +66,8 @@ const wordsOf = (text) => text
|
|
|
61
66
|
.filter(Boolean);
|
|
62
67
|
/** Whether a material can go on a surface: one that names no surface goes anywhere (flat colours). */
|
|
63
68
|
const suits = (material, surface) => !material.surfaces || material.surfaces.includes(surface);
|
|
69
|
+
/** A material's id with its words run together, as a piece of it is asked ("plank48"). */
|
|
70
|
+
const idRun = (material) => material.id.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
64
71
|
/**
|
|
65
72
|
* Whether a material answers a query word: by a word of its text (whole, or begun by a form of four
|
|
66
73
|
* letters or more: tile answers tiles, for never answers forest), the trade vocabulary, shade or
|
|
@@ -71,6 +78,8 @@ function answers(material, text, word) {
|
|
|
71
78
|
const said = (token, form) => token === form || stem(token) === form || (form.length >= 4 && token.startsWith(form));
|
|
72
79
|
if (forms.some((form) => text.some((token) => said(token, form))))
|
|
73
80
|
return true;
|
|
81
|
+
if ((word.length >= 4 || /\d/.test(word)) && idRun(material).includes(word))
|
|
82
|
+
return true;
|
|
74
83
|
const shade = SHADES[word];
|
|
75
84
|
const colour = shadeOf(material.previewColor);
|
|
76
85
|
if (shade && colour && shade(colour))
|
|
@@ -79,33 +88,78 @@ function answers(material, text, word) {
|
|
|
79
88
|
const surface = SURFACE_WORDS[word] ?? SURFACE_WORDS[stem(word)];
|
|
80
89
|
return !!surface && !!material.surfaces?.includes(surface);
|
|
81
90
|
}
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
/** Pascal's library, then what the host registered besides (a registration never shadows one). */
|
|
92
|
+
function libraryMaterials() {
|
|
93
|
+
const pascal = new Set(MATERIAL_CATALOG.map((material) => material.id));
|
|
94
|
+
return [
|
|
95
|
+
...MATERIAL_CATALOG,
|
|
96
|
+
...getDynamicLibraryMaterials().filter((material) => !pascal.has(material.id)),
|
|
97
|
+
];
|
|
98
|
+
}
|
|
99
|
+
const asResult = (material) => ({
|
|
100
|
+
ref: `library:${material.id}`,
|
|
101
|
+
label: material.label,
|
|
102
|
+
kind: material.category,
|
|
103
|
+
surfaces: material.surfaces ?? [],
|
|
104
|
+
...(material.previewColor ? { color: material.previewColor } : {}),
|
|
105
|
+
});
|
|
106
|
+
const byName = (a, b) => a.label.localeCompare(b.label) || a.id.localeCompare(b.id);
|
|
107
|
+
/** Colour options for a finish the library lacks: nearest library colour, or exact native. */
|
|
108
|
+
const missingMaterialFacts = `paint with color gives the nearest library colour and says how far it moved (ΔE); a native material, paint with material: { properties: { color } }, keeps the exact colour.`;
|
|
109
|
+
/**
|
|
110
|
+
* `search_materials`: the library's materials by words, best first, and the words none answers;
|
|
111
|
+
* without a query, a browse of a kind, a surface or the whole library. Either lists a page at a
|
|
112
|
+
* time, saying how many more there are and the offset that lists them.
|
|
113
|
+
*/
|
|
114
|
+
export const searchMaterials = (_nodes, { queries }) => {
|
|
115
|
+
const library = libraryMaterials();
|
|
116
|
+
const groups = queries.map(({ query = '', kind, surface, offset = 0 }) => {
|
|
117
|
+
const pool = library.filter((material) => (!kind || material.category === kind) && (!surface || suits(material, surface)));
|
|
118
|
+
const asked = {
|
|
119
|
+
...(query ? { query } : {}),
|
|
120
|
+
...(kind ? { kind } : {}),
|
|
121
|
+
...(surface ? { surface } : {}),
|
|
122
|
+
...(offset ? { offset } : {}),
|
|
123
|
+
};
|
|
124
|
+
const page = (listed, size) => {
|
|
125
|
+
const more = listed.length - offset - size;
|
|
96
126
|
return {
|
|
97
|
-
|
|
98
|
-
...(
|
|
99
|
-
results: best.map(({ material }) => ({
|
|
100
|
-
ref: `library:${material.id}`,
|
|
101
|
-
label: material.label,
|
|
102
|
-
kind: material.category,
|
|
103
|
-
surfaces: material.surfaces ?? [],
|
|
104
|
-
...(material.previewColor ? { color: material.previewColor } : {}),
|
|
105
|
-
})),
|
|
106
|
-
...(missing.length ? { missing } : {}),
|
|
127
|
+
results: listed.slice(offset, offset + size).map(asResult),
|
|
128
|
+
...(more > 0 ? { more, next: offset + size } : {}),
|
|
107
129
|
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
130
|
+
};
|
|
131
|
+
if (!query.trim())
|
|
132
|
+
return { ...asked, ...page([...pool].sort(byName), BROWSE_RESULTS) };
|
|
133
|
+
// A query of words too short or too common to tell materials apart finds nothing; it
|
|
134
|
+
// never browses the library in its place.
|
|
135
|
+
const said = wordsOf(query);
|
|
136
|
+
const words = said.filter(searches);
|
|
137
|
+
if (!words.length)
|
|
138
|
+
return { ...asked, results: [], missing: said };
|
|
139
|
+
const scored = pool.map((material) => {
|
|
140
|
+
const text = wordsOf(`${material.id} ${material.label} ${material.category} ${material.description ?? ''}`);
|
|
141
|
+
return { material, hits: words.filter((word) => answers(material, text, word)) };
|
|
142
|
+
});
|
|
143
|
+
// A three-letter piece nothing answers as a word ("cco" of stucco) is looked for in ids.
|
|
144
|
+
for (const word of words) {
|
|
145
|
+
if (word.length !== 3 || scored.some(({ hits }) => hits.includes(word)))
|
|
146
|
+
continue;
|
|
147
|
+
for (const entry of scored)
|
|
148
|
+
if (idRun(entry.material).includes(word))
|
|
149
|
+
entry.hits.push(word);
|
|
150
|
+
}
|
|
151
|
+
const missing = words.filter((word) => !scored.some(({ hits }) => hits.includes(word)));
|
|
152
|
+
const best = scored
|
|
153
|
+
.filter(({ hits }) => hits.length)
|
|
154
|
+
.sort((a, b) => b.hits.length - a.hits.length || byName(a.material, b.material))
|
|
155
|
+
.map(({ material }) => material);
|
|
156
|
+
return { ...asked, ...page(best, SEARCH_RESULTS), ...(missing.length ? { missing } : {}) };
|
|
157
|
+
});
|
|
158
|
+
const lacking = groups.some((group) => 'missing' in group);
|
|
159
|
+
return {
|
|
160
|
+
result: {
|
|
161
|
+
groups,
|
|
162
|
+
message: `Materials as library:<id> refs for paint: a search best first, a browse by name. A long list says how many more there are (more) and the offset that lists them (next). The words no material answers are under missing: the library lacks them.${lacking ? ` ${missingMaterialFacts}` : ''}`,
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AgentOperation } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* `set_checkpoint`: the scene now, remembered under a name. The operation takes the checkpoint and
|
|
4
|
+
* hands it back for the host to keep with the session; nothing in the scene changes.
|
|
5
|
+
*/
|
|
6
|
+
export declare const setCheckpoint: AgentOperation<{
|
|
7
|
+
name: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=set-checkpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-checkpoint.d.ts","sourceRoot":"","sources":["../../src/agent-operations/set-checkpoint.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CA+B1D,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { EMPTY_SESSION, MAX_CHECKPOINT_NODES, MAX_CHECKPOINTS, takeCheckpoint, } from './scene-checkpoint.js';
|
|
3
|
+
/**
|
|
4
|
+
* `set_checkpoint`: the scene now, remembered under a name. The operation takes the checkpoint and
|
|
5
|
+
* hands it back for the host to keep with the session; nothing in the scene changes.
|
|
6
|
+
*/
|
|
7
|
+
export const setCheckpoint = (nodes, input, context) => {
|
|
8
|
+
const name = input.name.trim();
|
|
9
|
+
if (!name)
|
|
10
|
+
refuse('name_required', 'Give the checkpoint a name, e.g. "walls done".');
|
|
11
|
+
const session = context.session ?? EMPTY_SESSION;
|
|
12
|
+
const names = Object.keys(session.checkpoints);
|
|
13
|
+
const replaced = names.includes(name);
|
|
14
|
+
if (!replaced && names.length >= MAX_CHECKPOINTS)
|
|
15
|
+
refuse('too_many_checkpoints', `A session keeps at most ${MAX_CHECKPOINTS} checkpoints and has ${names.join(', ')}. Use one of those names to replace it.`, { checkpoints: names });
|
|
16
|
+
const size = Object.keys(nodes).length;
|
|
17
|
+
if (size > MAX_CHECKPOINT_NODES)
|
|
18
|
+
refuse('scene_too_large', `The scene has ${size} nodes; a checkpoint is kept for at most ${MAX_CHECKPOINT_NODES}.`, { nodes: size });
|
|
19
|
+
const checkpoint = takeCheckpoint(nodes, name, session.made.length);
|
|
20
|
+
return {
|
|
21
|
+
result: {
|
|
22
|
+
ok: true,
|
|
23
|
+
name,
|
|
24
|
+
replaced,
|
|
25
|
+
nodes: size,
|
|
26
|
+
checkpoints: replaced ? names : [...names, name],
|
|
27
|
+
message: `Checkpoint "${name}" kept with this session. verify_scene({ since: "${name}" }) lists what changes after it.`,
|
|
28
|
+
},
|
|
29
|
+
keep: { checkpoint },
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgentOperation } from './types.js';
|
|
2
|
+
type SetGroundLevelInput = {
|
|
3
|
+
levelId: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* `set_ground_level`: the level asked for becomes the building's ground floor — named on the
|
|
7
|
+
* building, its floor the top of the foundation over grade (as the building's region and style seat it), index 0 — the same change the level panel's "Set as ground floor"
|
|
8
|
+
* writes (`buildGroundLevelChanges`).
|
|
9
|
+
*/
|
|
10
|
+
export declare const setGroundLevel: AgentOperation<SetGroundLevelInput>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=set-ground-level.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-ground-level.d.ts","sourceRoot":"","sources":["../../src/agent-operations/set-ground-level.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,KAAK,mBAAmB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,mBAAmB,CAuD9D,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { buildGroundLevelChanges } from '../building/ground-level.js';
|
|
3
|
+
import { requireLevel } from './level-target.js';
|
|
4
|
+
import { levelRole } from './scene-queries.js';
|
|
5
|
+
/**
|
|
6
|
+
* `set_ground_level`: the level asked for becomes the building's ground floor — named on the
|
|
7
|
+
* building, its floor the top of the foundation over grade (as the building's region and style seat it), index 0 — the same change the level panel's "Set as ground floor"
|
|
8
|
+
* writes (`buildGroundLevelChanges`).
|
|
9
|
+
*/
|
|
10
|
+
export const setGroundLevel = (nodes, input) => {
|
|
11
|
+
const level = requireLevel(nodes, input.levelId);
|
|
12
|
+
const { role } = levelRole(nodes, level);
|
|
13
|
+
if (role !== 'occupied')
|
|
14
|
+
refuse('not_a_storey', `${level.name ?? level.id} (${level.id}) is a ${role === 'roof' ? 'roof' : 'support'} level, not a storey: it cannot stand at grade as the ground floor.`, { levelId: level.id, role });
|
|
15
|
+
const built = buildGroundLevelChanges({
|
|
16
|
+
nodes: nodes,
|
|
17
|
+
levelId: level.id,
|
|
18
|
+
});
|
|
19
|
+
if (!built)
|
|
20
|
+
refuse('no_building', `Level ${level.id} is not in a building, so it has no ground line.`, {
|
|
21
|
+
levelId: level.id,
|
|
22
|
+
});
|
|
23
|
+
const { seat, moveBy } = built;
|
|
24
|
+
const floorElevation = Math.round((seat.floorElevation + moveBy) * 1e6) / 1e6;
|
|
25
|
+
const name = level.name ?? level.id;
|
|
26
|
+
const { aboveGrade, foundation } = seat;
|
|
27
|
+
const construction = {
|
|
28
|
+
region: foundation.region,
|
|
29
|
+
construction: foundation.construction.id,
|
|
30
|
+
basis: foundation.basis,
|
|
31
|
+
};
|
|
32
|
+
const inches = Math.round(aboveGrade / 0.0254);
|
|
33
|
+
if (built.unchanged)
|
|
34
|
+
return {
|
|
35
|
+
result: {
|
|
36
|
+
ok: true,
|
|
37
|
+
unchanged: true,
|
|
38
|
+
levelId: level.id,
|
|
39
|
+
buildingId: built.buildingId,
|
|
40
|
+
floorElevation: seat.floorElevation,
|
|
41
|
+
aboveGrade,
|
|
42
|
+
foundation: construction,
|
|
43
|
+
message: `${name} is already the ground floor, its floor ${aboveGrade} m (${inches} in) over grade (${foundation.construction.label} foundation; ${foundation.basis}).`,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
result: {
|
|
48
|
+
ok: true,
|
|
49
|
+
levelId: level.id,
|
|
50
|
+
buildingId: built.buildingId,
|
|
51
|
+
floorElevation,
|
|
52
|
+
gradeElevation: seat.gradeElevation,
|
|
53
|
+
aboveGrade,
|
|
54
|
+
foundation: construction,
|
|
55
|
+
movedBuildingBy: moveBy,
|
|
56
|
+
renumbered: built.renumbered,
|
|
57
|
+
message: `${name} is the ground floor: its floor, the top of the foundation where the wood framing starts, stands ${aboveGrade} m (${inches} in) over grade (${floorElevation.toFixed(2)} m over grade ${seat.gradeElevation.toFixed(2)} m), as a ${foundation.construction.label} foundation seats it: ${foundation.construction.seatBasis}; ${foundation.basis}. The levels with a lower index are below grade${moveBy === 0 ? '' : `; the building moved ${moveBy.toFixed(2)} m in height, its plan where it was`}.`,
|
|
58
|
+
},
|
|
59
|
+
changes: { update: built.update },
|
|
60
|
+
};
|
|
61
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type YardKey } from '../lib/site-placement.js';
|
|
2
|
+
import type { AgentOperation } from './types.js';
|
|
3
|
+
type SiteInput = {
|
|
4
|
+
building?: string;
|
|
5
|
+
site?: string;
|
|
6
|
+
};
|
|
7
|
+
type PlaceBuildingInput = {
|
|
8
|
+
building?: string;
|
|
9
|
+
outline?: number[][];
|
|
10
|
+
yards?: Partial<Record<YardKey, number>>;
|
|
11
|
+
rotationDeg?: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* `get_site`: the site a building stands on, in its level coordinates; a lot no building stands
|
|
15
|
+
* on yet, in site coordinates.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getSite: AgentOperation<SiteInput>;
|
|
18
|
+
/** `place_building`: stand a building on its site by its pose, its walls untouched. */
|
|
19
|
+
export declare const placeBuilding: AgentOperation<PlaceBuildingInput>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=site.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/agent-operations/site.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,uBAAuB,CAAA;AAI9B,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAEzD,KAAK,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACrD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,SAAS,CA4B7C,CAAA;AA2CD,uFAAuF;AACvF,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,kBAAkB,CAmD5D,CAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { isSiteFlatwork } from '../lib/site-flatwork.js';
|
|
3
|
+
import { describeSiteBrief, placeBuildingPose, roundedSiteBrief, siteBrief, } from '../lib/site-placement.js';
|
|
4
|
+
import { targetBuilding } from './add-level.js';
|
|
5
|
+
import { pointInPolygon } from './plan-geometry.js';
|
|
6
|
+
const r2 = (n) => Math.round(n * 100) / 100 || 0;
|
|
7
|
+
/**
|
|
8
|
+
* `get_site`: the site a building stands on, in its level coordinates; a lot no building stands
|
|
9
|
+
* on yet, in site coordinates.
|
|
10
|
+
*/
|
|
11
|
+
export const getSite = (nodes, input, context) => {
|
|
12
|
+
if (input.site) {
|
|
13
|
+
const site = nodes[input.site];
|
|
14
|
+
if (!site)
|
|
15
|
+
refuse('site_not_found', `Site not found: ${input.site}.`, { siteId: input.site });
|
|
16
|
+
if (site.type !== 'site')
|
|
17
|
+
refuse('not_a_site', `Node ${input.site} is a ${site.type}, not a site.`, {
|
|
18
|
+
siteId: input.site,
|
|
19
|
+
type: site.type,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const anyBuilding = Object.values(nodes).some((node) => node.type === 'building');
|
|
23
|
+
const building = input.building || (anyBuilding && !input.site)
|
|
24
|
+
? targetBuilding(nodes, input.building, context)
|
|
25
|
+
: null;
|
|
26
|
+
// a site named alone is read for the building viewed when it stands there
|
|
27
|
+
const brief = siteBrief(nodes, building ? { buildingId: building.id } : { siteId: input.site, levelId: context.activeLevelId });
|
|
28
|
+
if (!brief)
|
|
29
|
+
refuse('no_site', 'The scene has no site with a lot: add_level starts one.');
|
|
30
|
+
if (input.site && brief.siteId !== input.site)
|
|
31
|
+
refuse('building_not_on_site', `${building?.id} stands on ${brief.siteId}, not on ${input.site}: name one or the other.`, { buildingId: building?.id, siteId: input.site });
|
|
32
|
+
return { result: { ...roundedSiteBrief(brief), summary: describeSiteBrief(brief) } };
|
|
33
|
+
};
|
|
34
|
+
function footprintFacts(footprint) {
|
|
35
|
+
const b = footprint.bounds;
|
|
36
|
+
return {
|
|
37
|
+
footprint: {
|
|
38
|
+
size: [r2(b.maxX - b.minX), r2(b.maxZ - b.minZ)],
|
|
39
|
+
bounds: { minX: r2(b.minX), minZ: r2(b.minZ), maxX: r2(b.maxX), maxZ: r2(b.maxZ) },
|
|
40
|
+
centre: [r2(footprint.centre[0]), r2(footprint.centre[1])],
|
|
41
|
+
},
|
|
42
|
+
yards: Object.fromEntries(Object.entries(footprint.yards).map(([key, m]) => [key, m == null ? null : r2(m)])),
|
|
43
|
+
fit: footprint.fit,
|
|
44
|
+
overhang: {
|
|
45
|
+
lotM: r2(footprint.overhang.lotM),
|
|
46
|
+
setbacksM: r2(footprint.overhang.setbacksM),
|
|
47
|
+
sides: footprint.overhang.sides,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* What stands on the building's levels outside its footprint and moves with it: fences, paths and
|
|
53
|
+
* the floor items out of doors (a plant cannot be told from a patio chair, so all of them).
|
|
54
|
+
*/
|
|
55
|
+
function outdoorOnLevels(nodes, buildingId, rings) {
|
|
56
|
+
const building = nodes[buildingId];
|
|
57
|
+
const levels = new Set(building?.type === 'building' ? building.children : []);
|
|
58
|
+
const outside = (x, z) => !rings.some((ring) => pointInPolygon([x, z], ring));
|
|
59
|
+
const moved = [];
|
|
60
|
+
for (const node of Object.values(nodes)) {
|
|
61
|
+
if (!(node.parentId && levels.has(node.parentId)))
|
|
62
|
+
continue;
|
|
63
|
+
const flatwork = node.type === 'slab' && isSiteFlatwork(node);
|
|
64
|
+
const outdoorItem = node.type === 'item' && outside(node.position[0] ?? 0, node.position[2] ?? 0);
|
|
65
|
+
if (node.type === 'fence' || flatwork || outdoorItem)
|
|
66
|
+
moved.push({ id: node.id, type: node.type, ...(node.name ? { name: node.name } : {}) });
|
|
67
|
+
}
|
|
68
|
+
return moved;
|
|
69
|
+
}
|
|
70
|
+
/** `place_building`: stand a building on its site by its pose, its walls untouched. */
|
|
71
|
+
export const placeBuilding = (nodes, input, context) => {
|
|
72
|
+
const building = targetBuilding(nodes, input.building, context);
|
|
73
|
+
const placed = placeBuildingPose(nodes, {
|
|
74
|
+
buildingId: building.id,
|
|
75
|
+
...(input.outline
|
|
76
|
+
? { outline: input.outline.map((p) => [p[0] ?? 0, p[1] ?? 0]) }
|
|
77
|
+
: {}),
|
|
78
|
+
...(input.yards ? { yards: input.yards } : {}),
|
|
79
|
+
...(input.rotationDeg === undefined ? {} : { rotationDeg: input.rotationDeg }),
|
|
80
|
+
});
|
|
81
|
+
if (!placed.ok)
|
|
82
|
+
refuse(placed.code, placed.message, { buildingId: building.id });
|
|
83
|
+
const facts = footprintFacts(placed.footprint);
|
|
84
|
+
const rotationDeg = Math.round(((placed.rotation[1] * 180) / Math.PI) * 10) / 10 || 0;
|
|
85
|
+
const [x, , z] = placed.position;
|
|
86
|
+
const movedWithIt = placed.moved
|
|
87
|
+
? outdoorOnLevels(nodes, building.id, placed.footprint.rings)
|
|
88
|
+
: [];
|
|
89
|
+
const where = `${describeSiteBrief({ ...placed.brief, footprint: placed.footprint }).at(-1)}.`;
|
|
90
|
+
const message = [
|
|
91
|
+
placed.moved
|
|
92
|
+
? `${building.name ?? 'The building'} now stands at site [${r2(x)}, ${r2(z)}], ${rotationDeg}°. Its walls keep their level coordinates; draw new ones in the same frame.`
|
|
93
|
+
: `${building.name ?? 'The building'} already stands there: nothing moved.`,
|
|
94
|
+
where,
|
|
95
|
+
placed.brief.placeholder
|
|
96
|
+
? 'The lot is the new-project placeholder: say so, and ask for the address or the site plan.'
|
|
97
|
+
: '',
|
|
98
|
+
movedWithIt.length
|
|
99
|
+
? `${movedWithIt.length} outdoor node(s) on its levels moved with it (fences, paths, plants, outdoor furniture): re-trace them to the lot.`
|
|
100
|
+
: '',
|
|
101
|
+
].filter(Boolean);
|
|
102
|
+
return {
|
|
103
|
+
result: {
|
|
104
|
+
ok: true,
|
|
105
|
+
buildingId: building.id,
|
|
106
|
+
position: placed.position.map(r2),
|
|
107
|
+
rotationDeg,
|
|
108
|
+
moved: placed.moved,
|
|
109
|
+
...facts,
|
|
110
|
+
...(movedWithIt.length ? { movedWithIt: movedWithIt.slice(0, 24) } : {}),
|
|
111
|
+
message: message.join(' '),
|
|
112
|
+
},
|
|
113
|
+
...(placed.moved
|
|
114
|
+
? {
|
|
115
|
+
changes: {
|
|
116
|
+
update: [
|
|
117
|
+
{ id: building.id, data: { position: placed.position, rotation: placed.rotation } },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
: {}),
|
|
122
|
+
};
|
|
123
|
+
};
|
|
@@ -1,22 +1,79 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ZodType } from 'zod';
|
|
2
|
+
import type { DesignBrief } from '../agent-tools/design-brief.js';
|
|
3
|
+
import type { AnyNode, AssetInput, Collection, CompiledGeometryScript, SceneMaterial, SceneMaterialId } from '../schema/index.js';
|
|
4
|
+
import type { AssetViewFacts } from './asset-views.js';
|
|
5
|
+
import type { SessionKeep, SessionRecord } from './scene-checkpoint.js';
|
|
2
6
|
export type SceneNodes = Readonly<Record<string, AnyNode>>;
|
|
3
7
|
/**
|
|
4
|
-
* What a surface knows beyond the scene: the chat knows the floor a person is viewing; a host
|
|
5
|
-
*
|
|
6
|
-
* with an item library passes it as `catalog` (the chat and the
|
|
7
|
-
* the standalone MCP: its built-in list), resolved before the
|
|
8
|
-
* A host that can store scene materials with the nodes that use
|
|
9
|
-
* `materials`: paint then checks scene refs against them and keeps a native
|
|
8
|
+
* What a surface knows beyond the scene: the chat knows the floor a person is viewing; a host
|
|
9
|
+
* passes the agent's session so far (the moments it named, what it made), which verify_scene
|
|
10
|
+
* compares the scene with. A host with an item library passes it as `catalog` (the chat and the
|
|
11
|
+
* hosted MCP: the published library; the standalone MCP: its built-in list), resolved before the
|
|
12
|
+
* call, as the operations are sync. A host that can store scene materials with the nodes that use
|
|
13
|
+
* them passes the scene's `materials`: paint then checks scene refs against them and keeps a native
|
|
14
|
+
* material as one.
|
|
10
15
|
*/
|
|
11
16
|
export type AgentContext = {
|
|
12
17
|
activeLevelId: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* The schema the host checks a stored node of a kind by, for each kind it checks: a host that
|
|
20
|
+
* validates its plugins' nodes at its own write boundary lends it, so verify_scene reports what
|
|
21
|
+
* the host refuses. For a kind it does not check (undefined), the kind's registered schema, else
|
|
22
|
+
* core's, else none: a kind no schema knows.
|
|
23
|
+
*/
|
|
24
|
+
nodeSchema?: (kind: string) => ZodType | undefined;
|
|
13
25
|
/** Opaque here: its measure is the measure module's (scene-measure), which reads it. */
|
|
14
26
|
checkpoint?: {
|
|
15
27
|
name: string;
|
|
16
28
|
measure: unknown;
|
|
17
29
|
};
|
|
30
|
+
/** The agent's session so far. The host keeps it where its sessions live; it is never scene data. */
|
|
31
|
+
session?: SessionRecord;
|
|
18
32
|
catalog?: readonly AssetInput[];
|
|
33
|
+
/**
|
|
34
|
+
* What a host read about catalog items before the call, by item id (`assetViewNeeds` says
|
|
35
|
+
* which): their pictures for view_assets, the names of their paintable surfaces for it and for
|
|
36
|
+
* paint. A host that cannot read them leaves them out.
|
|
37
|
+
*/
|
|
38
|
+
assetViews?: Readonly<Record<string, AssetViewFacts>>;
|
|
19
39
|
materials?: Readonly<Record<SceneMaterialId, SceneMaterial>>;
|
|
40
|
+
/** Modules built by the host before run_batch, indexed by call position. */
|
|
41
|
+
batchObjects?: Readonly<Record<number, BatchedObject>>;
|
|
42
|
+
batchCall?: number;
|
|
43
|
+
/**
|
|
44
|
+
* The design brief in force on a host that gates furnishing on one: `null` while there is none
|
|
45
|
+
* (placing or making furnishings is refused, `furnishingRefusal`), the brief once written. A
|
|
46
|
+
* host that does not gate leaves it out.
|
|
47
|
+
*/
|
|
48
|
+
designBrief?: DesignBrief | null;
|
|
49
|
+
/**
|
|
50
|
+
* The person's words of the turn, on a host that has a person (the chat): the source quote of a
|
|
51
|
+
* design brief is checked against it. A host with no person's message (MCP) leaves it out and the
|
|
52
|
+
* quote is not checked.
|
|
53
|
+
*/
|
|
54
|
+
requestText?: string;
|
|
55
|
+
};
|
|
56
|
+
/** One add_object call of a batch, built by its host: the compiled module, or why it failed. */
|
|
57
|
+
export type BatchedObject = {
|
|
58
|
+
compiled: CompiledGeometryScript;
|
|
59
|
+
} | {
|
|
60
|
+
failure: {
|
|
61
|
+
code: string;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/** A write's operations in order, as apply_patch and update_node carry them. */
|
|
66
|
+
export type NodeWrite = {
|
|
67
|
+
op: 'create';
|
|
68
|
+
node: AnyNode;
|
|
69
|
+
parentId?: string;
|
|
70
|
+
} | {
|
|
71
|
+
op: 'update';
|
|
72
|
+
id: string;
|
|
73
|
+
data: Record<string, unknown>;
|
|
74
|
+
} | {
|
|
75
|
+
op: 'delete';
|
|
76
|
+
id: string;
|
|
20
77
|
};
|
|
21
78
|
/** Edits an operation asks for; each surface applies them its own way, in one undo step. */
|
|
22
79
|
export type SceneChanges = {
|
|
@@ -37,6 +94,8 @@ export type SceneChanges = {
|
|
|
37
94
|
};
|
|
38
95
|
export type AgentOperationOutcome = {
|
|
39
96
|
result: Record<string, unknown>;
|
|
97
|
+
/** What the operation asks the host to keep with the session: a checkpoint it took. */
|
|
98
|
+
keep?: SessionKeep;
|
|
40
99
|
changes?: SceneChanges;
|
|
41
100
|
/**
|
|
42
101
|
* For an edit that depends on construction the host derives from `changes` (rooms re-derived
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-operations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-operations/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
import { type OpenWallEnd } from '../lib/room-graph.js';
|
|
2
|
+
import { type CeilingObjectObservation } from './ceiling-object-observations.js';
|
|
3
|
+
import { type RoomFinding } from './room-findings.js';
|
|
2
4
|
import type { AgentOperation, SceneNodes } from './types.js';
|
|
5
|
+
import { type WallObjectObservation } from './wall-object-observations.js';
|
|
3
6
|
/** A problem verify_scene found, typed so it can be counted and acted on. */
|
|
4
|
-
export type SceneIssue = {
|
|
7
|
+
export type SceneIssue = CeilingObjectObservation | WallObjectObservation | RoomFinding | {
|
|
5
8
|
type: string;
|
|
6
9
|
message: string;
|
|
7
10
|
severity?: 'info';
|
|
11
|
+
} | {
|
|
12
|
+
type: 'schema_invalid';
|
|
13
|
+
message: string;
|
|
14
|
+
nodeId: string;
|
|
15
|
+
path: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'schema_unknown_kind';
|
|
18
|
+
message: string;
|
|
19
|
+
severity: 'info';
|
|
20
|
+
kind: string;
|
|
21
|
+
count: number;
|
|
22
|
+
/** The first few of them. */
|
|
23
|
+
nodeIds: string[];
|
|
24
|
+
} | {
|
|
25
|
+
type: 'site_hidden';
|
|
26
|
+
message: string;
|
|
27
|
+
severity: 'info';
|
|
28
|
+
nodeId: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: 'wall_covering_slab_contact';
|
|
31
|
+
message: string;
|
|
32
|
+
severity?: 'info';
|
|
33
|
+
wallId: string;
|
|
34
|
+
slabId: string;
|
|
35
|
+
levelId: string;
|
|
36
|
+
wallTop: number;
|
|
37
|
+
slabUnderside: number;
|
|
38
|
+
slabTop: number;
|
|
39
|
+
penetration: number;
|
|
40
|
+
coplanar: boolean;
|
|
8
41
|
} | {
|
|
9
42
|
type: 'wall_open_end';
|
|
10
43
|
message: string;
|
|
@@ -41,10 +74,11 @@ export declare function registerSceneReport(report: SceneReport): void;
|
|
|
41
74
|
/** Runs a check in every verify_scene from now on; registering a check again replaces it. */
|
|
42
75
|
export declare function registerSceneCheck(check: SceneCheck): void;
|
|
43
76
|
/**
|
|
44
|
-
* `verify_scene`: a self-check after complex edits. Per-level content and
|
|
45
|
-
* practical problem found, typed:
|
|
46
|
-
* with no
|
|
47
|
-
*
|
|
77
|
+
* `verify_scene`: a self-check after complex edits. Per-level content, roles and enclosed spaces,
|
|
78
|
+
* then every practical problem found, typed: spaces with no room, rooms the walls do not close or
|
|
79
|
+
* with no name, rooms missing floors or ceilings, roof levels misused, storeys with no stair,
|
|
80
|
+
* openings off their wall, stairs off their slab, blocked doors, overlapping furniture, and every
|
|
81
|
+
* field a node's schema rejects, by node and path; a kind no schema here knows, once per kind.
|
|
48
82
|
*/
|
|
49
83
|
export declare const verifyScene: AgentOperation<VerifySceneInput | undefined>;
|
|
50
84
|
//# sourceMappingURL=verify-scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-scene.d.ts","sourceRoot":"","sources":["../../src/agent-operations/verify-scene.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-scene.d.ts","sourceRoot":"","sources":["../../src/agent-operations/verify-scene.ts"],"names":[],"mappings":"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"}
|