@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.
- 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,6 +1,11 @@
|
|
|
1
1
|
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { buildLevelBelowChanges } from '../building/level-insertion.js';
|
|
3
|
+
import { foundationReadingOfLevel } from '../lib/foundation-construction.js';
|
|
4
|
+
import { foundationWallRule, levelHoldsFoundationWalls } from '../lib/foundation-wall.js';
|
|
2
5
|
import { BuildingNode, LevelNode, SiteNode } from '../schema/index.js';
|
|
3
6
|
import { DEFAULT_LEVEL_HEIGHT } from '../services/level-height.js';
|
|
7
|
+
import { storeyInsertIndex } from '../services/roof-level.js';
|
|
8
|
+
import { applySceneChanges } from './apply-changes.js';
|
|
4
9
|
import { levelsOf } from './scene-queries.js';
|
|
5
10
|
/** The building named, else the one holding the viewed floor, else the scene's only building. */
|
|
6
11
|
export function targetBuilding(nodes, buildingId, context) {
|
|
@@ -23,7 +28,7 @@ export function targetBuilding(nodes, buildingId, context) {
|
|
|
23
28
|
if (buildings.length === 1)
|
|
24
29
|
return buildings[0];
|
|
25
30
|
if (!buildings.length)
|
|
26
|
-
refuse('no_building', 'The scene has no building
|
|
31
|
+
refuse('no_building', 'The scene has no building.');
|
|
27
32
|
return refuse('building_required', `The scene has ${buildings.length} buildings; say which: ${buildings.map((building) => building.id).join(', ')}.`, { buildingIds: buildings.map((building) => building.id) });
|
|
28
33
|
}
|
|
29
34
|
/**
|
|
@@ -62,7 +67,10 @@ function freshStart(nodes, input) {
|
|
|
62
67
|
},
|
|
63
68
|
};
|
|
64
69
|
}
|
|
65
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* `add_level`: an empty level over the building's top storey, under its roof level (which moves up
|
|
72
|
+
* one), or under its lowest level — the editor's +.
|
|
73
|
+
*/
|
|
66
74
|
export const addLevel = (nodes, input, context) => {
|
|
67
75
|
if (!(input.buildingId || Object.values(nodes).some((node) => node.type === 'building')))
|
|
68
76
|
return freshStart(nodes, input);
|
|
@@ -71,14 +79,40 @@ export const addLevel = (nodes, input, context) => {
|
|
|
71
79
|
.filter((level) => level.parentId === building.id || building.children.includes(level.id))
|
|
72
80
|
.map((level) => level.level);
|
|
73
81
|
const below = input.position === 'below';
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
const above = storeyInsertIndex(nodes, building.id);
|
|
83
|
+
// A basement goes under the lowest floor and leaves every floor where
|
|
84
|
+
// it stands, as the editor's "+" below does: the ground floor keeps its grade.
|
|
85
|
+
const stacked = below && floors.length
|
|
86
|
+
? buildLevelBelowChanges({
|
|
87
|
+
nodes,
|
|
88
|
+
buildingId: building.id,
|
|
89
|
+
height: input.height ?? DEFAULT_LEVEL_HEIGHT,
|
|
90
|
+
})
|
|
91
|
+
: null;
|
|
92
|
+
const floorIndex = stacked
|
|
93
|
+
? stacked.newLevel.level
|
|
94
|
+
: below && floors.length
|
|
95
|
+
? Math.min(...floors) - 1
|
|
96
|
+
: above.floorIndex;
|
|
97
|
+
const shift = below ? [] : above.shift;
|
|
98
|
+
const level = stacked?.newLevel ??
|
|
99
|
+
LevelNode.parse({
|
|
100
|
+
parentId: building.id,
|
|
101
|
+
level: floorIndex,
|
|
102
|
+
height: input.height ?? DEFAULT_LEVEL_HEIGHT,
|
|
103
|
+
children: [],
|
|
104
|
+
...(input.name ? { name: input.name } : {}),
|
|
105
|
+
});
|
|
106
|
+
if (stacked && input.name)
|
|
107
|
+
level.name = input.name;
|
|
108
|
+
const changes = {
|
|
109
|
+
create: [{ node: level, parentId: building.id }],
|
|
110
|
+
update: stacked ? stacked.update : shift,
|
|
111
|
+
};
|
|
112
|
+
const after = applySceneChanges(nodes, changes);
|
|
113
|
+
const foundation = levelHoldsFoundationWalls(after, level.id)
|
|
114
|
+
? foundationWallRule(foundationReadingOfLevel(after, level.id))
|
|
115
|
+
: null;
|
|
82
116
|
return {
|
|
83
117
|
result: {
|
|
84
118
|
ok: true,
|
|
@@ -87,8 +121,10 @@ export const addLevel = (nodes, input, context) => {
|
|
|
87
121
|
floorIndex,
|
|
88
122
|
...(level.name ? { name: level.name } : {}),
|
|
89
123
|
height: level.height,
|
|
90
|
-
|
|
124
|
+
...(foundation ? { wallConstruction: foundation } : {}),
|
|
125
|
+
...(shift.length ? { shiftedLevelIds: shift.map(({ id }) => id) } : {}),
|
|
126
|
+
message: `Added ${level.name ?? `level ${floorIndex}`} ${below ? (stacked ? 'below the existing levels, every floor keeping its place' : 'below the existing levels') : shift.length ? 'on top of the storeys, under the roof level' : 'above the existing levels'} of ${building.name ?? building.id}.${foundation ? ` It is below grade: ${foundation}; a wall given a thickness keeps it.` : ''}`,
|
|
91
127
|
},
|
|
92
|
-
changes
|
|
128
|
+
changes,
|
|
93
129
|
};
|
|
94
130
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ScriptedNode } from '../lib/geometry-script-node.js';
|
|
2
|
-
import { type AnyNode, type CompiledGeometryScript, type GeometryScriptLanguage, type GeometryScriptParamValue } from '../schema/index.js';
|
|
3
|
-
import type { AgentOperation } from './types.js';
|
|
2
|
+
import { type AnyNode, type CompiledGeometryScript, type GeometryScriptLanguage, type GeometryScriptParamValue, type WallFace } from '../schema/index.js';
|
|
3
|
+
import type { AgentOperation, BatchedObject } from './types.js';
|
|
4
4
|
export type AddObjectInput = {
|
|
5
5
|
/** Absent for a params-only edit: the host compiled the object's stored script. */
|
|
6
6
|
code?: string;
|
|
@@ -42,6 +42,22 @@ export declare function requireAddObjectReason(input: {
|
|
|
42
42
|
reason?: string;
|
|
43
43
|
}): void;
|
|
44
44
|
export declare const addObject: AgentOperation<AddObjectInput>;
|
|
45
|
+
/**
|
|
46
|
+
* `add_object` inside run_batch: the batch's host built the module before the batch ran (a compile
|
|
47
|
+
* is async, the operations are not), and the call places what was built, with the receipt a lone
|
|
48
|
+
* add_object gives.
|
|
49
|
+
*/
|
|
50
|
+
export declare const addObjectInBatch: AgentOperation<Omit<AddObjectInput, 'compiled'>>;
|
|
51
|
+
/**
|
|
52
|
+
* Builds the module of every add_object call of a batch with the host's own compile, a few at a
|
|
53
|
+
* time, by call index. A call that fails (a reason missing, a script that does not run, a host
|
|
54
|
+
* that refuses) is kept with its own message, so the batch reports it and the others stand. A call
|
|
55
|
+
* whose input does not parse is left out: the batch refuses it with the contract's message.
|
|
56
|
+
*/
|
|
57
|
+
export declare function buildBatchObjects(calls: readonly {
|
|
58
|
+
tool?: unknown;
|
|
59
|
+
input?: unknown;
|
|
60
|
+
}[], build: (input: Omit<AddObjectInput, 'compiled'>) => Promise<CompiledGeometryScript>): Promise<Record<number, BatchedObject>>;
|
|
45
61
|
export type RescriptOpeningInput = {
|
|
46
62
|
description?: string;
|
|
47
63
|
category?: string;
|
|
@@ -91,24 +107,37 @@ export declare function refuseParamsWithoutScript(nodes: Record<string, AnyNode>
|
|
|
91
107
|
* fields would no longer match the geometry. Restating the current value passes.
|
|
92
108
|
*/
|
|
93
109
|
export declare function scriptedFieldRefusal(node: AnyNode, data: Record<string, unknown>): string | null;
|
|
110
|
+
/** What `get_source` reads: a scripted node, a room's floor script, or a wall face's script. */
|
|
111
|
+
export type ScriptReadable = Pick<ScriptedNode, 'name' | 'source'> & {
|
|
112
|
+
id: string;
|
|
113
|
+
type: ScriptedNode['type'] | 'zone' | 'wall';
|
|
114
|
+
/** The wall face whose script it is. */
|
|
115
|
+
face?: WallFace;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The script `get_source` reads at `nodeId`: an authored object's, a room's floor script by its
|
|
119
|
+
* zone id, or a wall's face script (`face`, which a wall with one scripted face may leave out).
|
|
120
|
+
*/
|
|
121
|
+
export declare function readableScript(nodes: Record<string, AnyNode>, nodeId: string, face?: WallFace): ScriptReadable;
|
|
94
122
|
/** What `get_source` answers once the host has the module's text. */
|
|
95
|
-
export declare function readSourceResult(node:
|
|
96
|
-
nodeId:
|
|
97
|
-
type: "column" | "door" | "window" | "
|
|
123
|
+
export declare function readSourceResult(node: ScriptReadable, code: string): {
|
|
124
|
+
nodeId: string;
|
|
125
|
+
type: "column" | "door" | "item" | "wall" | "window" | "zone";
|
|
126
|
+
face?: WallFace | undefined;
|
|
98
127
|
name: string | undefined;
|
|
99
|
-
language: "
|
|
128
|
+
language: "bpy" | "three";
|
|
100
129
|
code: string;
|
|
101
130
|
params: {
|
|
102
|
-
value: string | number | boolean;
|
|
103
131
|
id: string;
|
|
104
|
-
kind: "string" | "number" | "boolean";
|
|
105
|
-
default: string | number | boolean;
|
|
106
132
|
label?: string | undefined;
|
|
133
|
+
kind: "boolean" | "number" | "string";
|
|
134
|
+
default: string | number | boolean;
|
|
107
135
|
min?: number | undefined;
|
|
108
136
|
max?: number | undefined;
|
|
109
137
|
step?: number | undefined;
|
|
110
138
|
unit?: string | undefined;
|
|
111
139
|
options?: string[] | undefined;
|
|
140
|
+
value: string | number | boolean;
|
|
112
141
|
}[];
|
|
113
142
|
};
|
|
114
143
|
//# sourceMappingURL=add-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-object.d.ts","sourceRoot":"","sources":["../../src/agent-operations/add-object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add-object.d.ts","sourceRoot":"","sources":["../../src/agent-operations/add-object.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,YAAY,EAIlB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAI7B,KAAK,QAAQ,EACd,MAAM,WAAW,CAAA;AAIlB,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAc,MAAM,SAAS,CAAA;AAIxE,MAAM,MAAM,cAAc,GAAG;IAC3B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4FAA4F;IAC5F,QAAQ,EAAE,sBAAsB,CAAA;CACjC,CAAA;AA0CD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAa1C,CAAA;AA0ID;;;;;;;GAOG;AACH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,QAMjF;AAED,eAAO,MAAM,SAAS,EAAE,cAAc,CAAC,cAAc,CAgHpD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAkB7E,CAAA;AAKD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,EACrD,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,sBAAsB,CAAC,GAClF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CA2CxC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,QAAQ,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,oBAAoB,CA2DhE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,SAAS,GAC3D,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAA;CAAE,GAC1D,sBAAsB,CAGxB;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAU3F;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,IAAI,CAKN;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAUhG;AAED,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IACnE,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;IAC5C,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,QAAQ,GACd,cAAc,CAgChB;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;EAalE"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { addObjectTool } from '../agent-tools/add-object.js';
|
|
3
|
+
import { isAgentRefusal, refuse } from '../agent-tools/refusal.js';
|
|
4
|
+
import { CATALOG_SOURCE } from '../agent-tools/sources.js';
|
|
2
5
|
import { artifactUrl } from '../lib/artifact-store.js';
|
|
3
|
-
import { isScriptedNode, matchScriptSlotsToLibrary, scriptedSize, scriptInteractive, scriptSource, } from '../lib/geometry-script-node.js';
|
|
6
|
+
import { isScriptedNode, matchScriptSlotsToLibrary, requireMeasured, scriptedSize, scriptInteractive, scriptSource, } from '../lib/geometry-script-node.js';
|
|
4
7
|
import { geometryRestingHeight, resettledPosition } from '../lib/geometry-surfaces.js';
|
|
8
|
+
import { area, intersection, union } from '../lib/polygon-boolean.js';
|
|
5
9
|
import { generateId, ItemNode, } from '../schema/index.js';
|
|
10
|
+
import { achievedChanges } from './achieved.js';
|
|
6
11
|
import { targetLevel } from './level-target.js';
|
|
12
|
+
import { roofLevelRefusal } from './roof-writes.js';
|
|
7
13
|
const ATTACH = {
|
|
8
14
|
floor: undefined,
|
|
9
15
|
wall: 'wall',
|
|
@@ -83,12 +89,42 @@ function wallSized(compiled) {
|
|
|
83
89
|
}
|
|
84
90
|
/** A plain box: one cuboid, as a wall is. A bookcase or a screen has shelves or holes. */
|
|
85
91
|
const PLAIN_BOX = 12;
|
|
92
|
+
/** A plate with at least this share of its footprint over a floor lies on that floor. */
|
|
93
|
+
const FLOOR_SHARE = 0.5;
|
|
86
94
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
95
|
+
* The share of a plate's footprint that lies over a floor of its level: the slabs the level owns (a
|
|
96
|
+
* room's floor plate, a drawn slab, a deck) with their holes left out. The footprint is the bounds
|
|
97
|
+
* the compile measured, turned and placed as the object will be.
|
|
90
98
|
*/
|
|
91
|
-
function
|
|
99
|
+
function shareOverFloor(nodes, levelId, compiled, input) {
|
|
100
|
+
const slabs = Object.values(nodes).filter((node) => node.type === 'slab' && node.parentId === levelId);
|
|
101
|
+
const { min, max } = compiled.manifest.bounds;
|
|
102
|
+
const footprintArea = (max[0] - min[0]) * (max[2] - min[2]);
|
|
103
|
+
if (slabs.length === 0 || !(footprintArea > 0))
|
|
104
|
+
return 0;
|
|
105
|
+
const [px = 0, , pz = 0] = input.position ?? [];
|
|
106
|
+
const turn = ((input.rotation ?? 0) * Math.PI) / 180;
|
|
107
|
+
const [cos, sin] = [Math.cos(turn), Math.sin(turn)];
|
|
108
|
+
const corners = [
|
|
109
|
+
[min[0], min[2]],
|
|
110
|
+
[max[0], min[2]],
|
|
111
|
+
[max[0], max[2]],
|
|
112
|
+
[min[0], max[2]],
|
|
113
|
+
];
|
|
114
|
+
const footprint = corners.map(([u, v]) => [
|
|
115
|
+
px + u * cos + v * sin,
|
|
116
|
+
pz - u * sin + v * cos,
|
|
117
|
+
]);
|
|
118
|
+
const floor = union(slabs.map((slab) => ({ outer: slab.polygon, holes: slab.holes ?? [] })));
|
|
119
|
+
return area(intersection(footprint, floor)) / footprintArea;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* A floor object that is a plain box with a wall's size, or a floor plate with no floor under it, is
|
|
123
|
+
* refused: Pascal builds those, and rooms, openings and facades only work with its own. Production
|
|
124
|
+
* saw whole houses of plain custom solids, nothing editable as walls, rooms or doors. A flat object
|
|
125
|
+
* over a floor the level already has is furniture, a rug: the scene decides, not its name.
|
|
126
|
+
*/
|
|
127
|
+
function refuseWallOrSlabShape(nodes, levelId, compiled, input) {
|
|
92
128
|
const [width, height, depth] = scriptedSize(compiled.manifest);
|
|
93
129
|
const long = Math.max(width, depth);
|
|
94
130
|
const short = Math.min(width, depth);
|
|
@@ -96,7 +132,10 @@ function refuseWallOrSlabShape(compiled, input) {
|
|
|
96
132
|
if (wallSized(compiled) && compiled.manifest.triangles <= PLAIN_BOX)
|
|
97
133
|
refuse('use_walls', `"${label}" (${long.toFixed(2)} × ${short.toFixed(2)} m, ${height.toFixed(2)} m high) is a plain box with a wall's size: build it with add_wall so rooms, openings and facades work with it.`, { label });
|
|
98
134
|
const base = input.position?.[1] ?? 0;
|
|
99
|
-
if (height <= 0.35 &&
|
|
135
|
+
if (height <= 0.35 &&
|
|
136
|
+
short >= 2 &&
|
|
137
|
+
base <= 0.05 &&
|
|
138
|
+
shareOverFloor(nodes, levelId, compiled, input) < FLOOR_SHARE) {
|
|
100
139
|
// Its extent along x and z as it stands, so the numbers match the outline the agent drew.
|
|
101
140
|
const turn = ((input.rotation ?? 0) * Math.PI) / 180;
|
|
102
141
|
const [c, s] = [Math.abs(Math.cos(turn)), Math.abs(Math.sin(turn))];
|
|
@@ -142,10 +181,11 @@ function summary(node, compiled, orphanedSlots) {
|
|
|
142
181
|
*/
|
|
143
182
|
export function requireAddObjectReason(input) {
|
|
144
183
|
if (!input.nodeId && !input.reason?.trim())
|
|
145
|
-
refuse('reason_required', '
|
|
184
|
+
refuse('reason_required', 'Give its design intent (reason): why the authored shape, size or style suits the request. The scene check lists every authored object with its reason; no catalog-exhaustion proof is required.');
|
|
146
185
|
}
|
|
147
186
|
export const addObject = (nodes, input, context) => {
|
|
148
187
|
const { compiled } = input;
|
|
188
|
+
requireMeasured(compiled, { label: input.name, nodeId: input.nodeId, tool: 'add_object' });
|
|
149
189
|
const rotation = input.rotation === undefined ? undefined : [0, (input.rotation * Math.PI) / 180, 0];
|
|
150
190
|
if (input.nodeId) {
|
|
151
191
|
if (nodes[input.nodeId]?.type === 'column')
|
|
@@ -200,8 +240,17 @@ export const addObject = (nodes, input, context) => {
|
|
|
200
240
|
if (!hosts.includes(parent.type)) {
|
|
201
241
|
refuse('wrong_host', `A ${compiled.mount} object goes on a ${hosts.join(' or ')}, not on a ${parent.type}. Pass parentId of a ${hosts[0]}, or change \`mount\`.`, { mount: compiled.mount, parentType: parent.type });
|
|
202
242
|
}
|
|
203
|
-
if (compiled.mount === 'floor' && parent.type === 'level')
|
|
204
|
-
|
|
243
|
+
if (compiled.mount === 'floor' && parent.type === 'level') {
|
|
244
|
+
// Given no host while the roof level is in view (a roof just placed selects it), the object
|
|
245
|
+
// belongs on the storey it covers; one named onto the roof level goes up with the roof (a
|
|
246
|
+
// chimney cap, a gable louvre).
|
|
247
|
+
const onRoofLevel = input.parentId
|
|
248
|
+
? null
|
|
249
|
+
: roofLevelRefusal(nodes, parent.id, `"${input.name ?? 'the object'}"`);
|
|
250
|
+
if (onRoofLevel)
|
|
251
|
+
throw onRoofLevel;
|
|
252
|
+
refuseWallOrSlabShape(nodes, parent.id, compiled, input);
|
|
253
|
+
}
|
|
205
254
|
requireAddObjectReason(input);
|
|
206
255
|
const asset = scriptAsset(compiled, input, undefined);
|
|
207
256
|
const node = ItemNode.parse({
|
|
@@ -212,7 +261,11 @@ export const addObject = (nodes, input, context) => {
|
|
|
212
261
|
parentId: parent.id,
|
|
213
262
|
...(parent.type === 'wall' ? { wallId: parent.id, side: input.side ?? 'front' } : {}),
|
|
214
263
|
position: input.position ?? [0, 0, 0],
|
|
215
|
-
rotation: rotation ?? [
|
|
264
|
+
rotation: rotation ?? [
|
|
265
|
+
0,
|
|
266
|
+
compiled.mount === 'wall-side' && input.side === 'back' ? Math.PI : 0,
|
|
267
|
+
0,
|
|
268
|
+
],
|
|
216
269
|
source: scriptSource(compiled, itemSourceMeta(input)),
|
|
217
270
|
slots: matchScriptSlotsToLibrary(compiled.manifest),
|
|
218
271
|
asset,
|
|
@@ -231,6 +284,78 @@ export const addObject = (nodes, input, context) => {
|
|
|
231
284
|
changes: { create: [{ node, parentId: parent.id }] },
|
|
232
285
|
};
|
|
233
286
|
};
|
|
287
|
+
/**
|
|
288
|
+
* `add_object` inside run_batch: the batch's host built the module before the batch ran (a compile
|
|
289
|
+
* is async, the operations are not), and the call places what was built, with the receipt a lone
|
|
290
|
+
* add_object gives.
|
|
291
|
+
*/
|
|
292
|
+
export const addObjectInBatch = (nodes, input, context) => {
|
|
293
|
+
const built = context.batchCall === undefined ? undefined : context.batchObjects?.[context.batchCall];
|
|
294
|
+
if (!built)
|
|
295
|
+
refuse('object_not_built', "This host did not build the batch's add_object calls: call add_object on its own.");
|
|
296
|
+
if ('failure' in built)
|
|
297
|
+
refuse(built.failure.code, built.failure.message);
|
|
298
|
+
const outcome = addObject(nodes, { ...input, compiled: built.compiled }, context);
|
|
299
|
+
return {
|
|
300
|
+
...outcome,
|
|
301
|
+
result: { ...outcome.result, achieved: achievedChanges(nodes, outcome.changes ?? {}) },
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
/** How many modules of one batch a host compiles at once. */
|
|
305
|
+
const BATCH_COMPILES_AT_ONCE = 3;
|
|
306
|
+
/**
|
|
307
|
+
* Builds the module of every add_object call of a batch with the host's own compile, a few at a
|
|
308
|
+
* time, by call index. A call that fails (a reason missing, a script that does not run, a host
|
|
309
|
+
* that refuses) is kept with its own message, so the batch reports it and the others stand. A call
|
|
310
|
+
* whose input does not parse is left out: the batch refuses it with the contract's message.
|
|
311
|
+
*/
|
|
312
|
+
export async function buildBatchObjects(calls, build) {
|
|
313
|
+
const parse = z.object(addObjectTool.input);
|
|
314
|
+
const built = {};
|
|
315
|
+
const edited = new Set();
|
|
316
|
+
const jobs = calls.flatMap((call, index) => {
|
|
317
|
+
if (call?.tool !== addObjectTool.name)
|
|
318
|
+
return [];
|
|
319
|
+
const parsed = parse.safeParse(call.input ?? {});
|
|
320
|
+
if (!parsed.success)
|
|
321
|
+
return [];
|
|
322
|
+
const input = parsed.data;
|
|
323
|
+
if (input.nodeId) {
|
|
324
|
+
if (edited.has(input.nodeId)) {
|
|
325
|
+
built[index] = {
|
|
326
|
+
failure: {
|
|
327
|
+
code: 'object_edit_conflict',
|
|
328
|
+
message: `${input.nodeId} is edited more than once in this batch: combine its changes in one add_object call, or edit it in separate calls. Modules are compiled before the batch runs.`,
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
edited.add(input.nodeId);
|
|
334
|
+
}
|
|
335
|
+
return [{ index, input }];
|
|
336
|
+
});
|
|
337
|
+
let next = 0;
|
|
338
|
+
const worker = async () => {
|
|
339
|
+
for (let job = jobs[next++]; job; job = jobs[next++]) {
|
|
340
|
+
try {
|
|
341
|
+
requireAddObjectReason(job.input);
|
|
342
|
+
built[job.index] = { compiled: await build(job.input) };
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
built[job.index] = {
|
|
346
|
+
failure: isAgentRefusal(error)
|
|
347
|
+
? { code: error.code, message: error.message }
|
|
348
|
+
: {
|
|
349
|
+
code: 'script_failed',
|
|
350
|
+
message: `${error instanceof Error ? error.message : String(error)} ${CATALOG_SOURCE}`,
|
|
351
|
+
},
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
await Promise.all(Array.from({ length: Math.min(BATCH_COMPILES_AT_ONCE, jobs.length) }, worker));
|
|
357
|
+
return built;
|
|
358
|
+
}
|
|
234
359
|
/**
|
|
235
360
|
* `add_window` / `add_door` with a nodeId: a window or door built from (or
|
|
236
361
|
* given) a script, rebuilt from what the host compiled. Its size is what the
|
|
@@ -253,6 +378,11 @@ export const rescriptOpening = (nodes, input) => {
|
|
|
253
378
|
refuse('wrong_mount', `A ${previous.type}'s script uses mount 'wall'.`, {
|
|
254
379
|
mount: compiled.mount,
|
|
255
380
|
});
|
|
381
|
+
requireMeasured(compiled, {
|
|
382
|
+
label: input.name ?? previous.name,
|
|
383
|
+
nodeId: input.nodeId,
|
|
384
|
+
tool: `add_${previous.type}`,
|
|
385
|
+
});
|
|
256
386
|
const [width, height] = scriptedSize(compiled.manifest);
|
|
257
387
|
// Given a position, that is where it goes; otherwise its bottom edge stays put.
|
|
258
388
|
const [x, y, z] = previous.position;
|
|
@@ -345,11 +475,42 @@ export function scriptedFieldRefusal(node, data) {
|
|
|
345
475
|
const tool = node.type === 'item' ? 'add_object' : `add_${node.type}`;
|
|
346
476
|
return `${node.id} is built from a script, so ${fields.join(', ')} ${fields.length === 1 ? 'comes' : 'come'} from it: rebuild it with ${tool} with nodeId and params (get_source shows them); nothing was changed.`;
|
|
347
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* The script `get_source` reads at `nodeId`: an authored object's, a room's floor script by its
|
|
480
|
+
* zone id, or a wall's face script (`face`, which a wall with one scripted face may leave out).
|
|
481
|
+
*/
|
|
482
|
+
export function readableScript(nodes, nodeId, face) {
|
|
483
|
+
const node = nodes[nodeId];
|
|
484
|
+
if (node?.type === 'wall') {
|
|
485
|
+
const faces = ['a', 'b'].filter((side) => node.finishScripts?.[side]);
|
|
486
|
+
const read = face ?? (faces.length === 1 ? faces[0] : undefined);
|
|
487
|
+
if (!faces.length)
|
|
488
|
+
refuse('not_authored', `${node.name || nodeId} has no face script.`, { id: nodeId });
|
|
489
|
+
if (!read)
|
|
490
|
+
refuse('face_required', `Both faces of ${node.name || nodeId} have a script: name the face, a or b.`, {
|
|
491
|
+
id: nodeId,
|
|
492
|
+
faces,
|
|
493
|
+
});
|
|
494
|
+
const source = node.finishScripts?.[read];
|
|
495
|
+
if (!source)
|
|
496
|
+
refuse('not_authored', `Face ${read} of ${node.name || nodeId} has no script; face ${faces[0]} has.`, {
|
|
497
|
+
id: nodeId,
|
|
498
|
+
faces,
|
|
499
|
+
});
|
|
500
|
+
return { id: node.id, type: 'wall', name: node.name, source, face: read };
|
|
501
|
+
}
|
|
502
|
+
if (node?.type !== 'zone')
|
|
503
|
+
return authoredObject(nodes, nodeId);
|
|
504
|
+
if (!node.floor?.script)
|
|
505
|
+
refuse('not_authored', `${node.name || nodeId} has no floor script.`, { id: nodeId });
|
|
506
|
+
return { id: node.id, type: 'zone', name: node.name, source: node.floor.script };
|
|
507
|
+
}
|
|
348
508
|
/** What `get_source` answers once the host has the module's text. */
|
|
349
509
|
export function readSourceResult(node, code) {
|
|
350
510
|
return {
|
|
351
511
|
nodeId: node.id,
|
|
352
512
|
type: node.type,
|
|
513
|
+
...(node.face ? { face: node.face } : {}),
|
|
353
514
|
name: node.name,
|
|
354
515
|
language: node.source.language,
|
|
355
516
|
code,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type LevelTargetInput } from './level-target.js';
|
|
2
|
-
import type { AgentOperation
|
|
2
|
+
import type { AgentOperation } from './types.js';
|
|
3
3
|
type AddWallInput = LevelTargetInput & {
|
|
4
4
|
start: number[];
|
|
5
5
|
end: number[];
|
|
@@ -7,8 +7,6 @@ type AddWallInput = LevelTargetInput & {
|
|
|
7
7
|
height?: number;
|
|
8
8
|
curveOffset?: number;
|
|
9
9
|
};
|
|
10
|
-
/** A level declared as the roof holds the roof, not rooms: walls and stairs stay off it. */
|
|
11
|
-
export declare function refuseRoofLevel(nodes: SceneNodes, levelId: string, what: string): void;
|
|
12
10
|
/** `add_wall`: one wall between two points, named as the editor names walls. */
|
|
13
11
|
export declare const addWall: AgentOperation<AddWallInput>;
|
|
14
12
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-wall.d.ts","sourceRoot":"","sources":["../../src/agent-operations/add-wall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add-wall.d.ts","sourceRoot":"","sources":["../../src/agent-operations/add-wall.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,gBAAgB,CAAA;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,KAAK,YAAY,GAAG,gBAAgB,GAAG;IACrC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,YAAY,CAiFhD,CAAA"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { levelFootprintLoops } from '../lib/building-footprint.js';
|
|
3
|
+
import { foundationReadingOfLevel } from '../lib/foundation-construction.js';
|
|
4
|
+
import { foundationWallRule, levelHoldsFoundationWalls, withFoundationConstruction, } from '../lib/foundation-wall.js';
|
|
5
|
+
import { lotOverhang } from '../lib/site-placement.js';
|
|
2
6
|
import { WallNode } from '../schema/index.js';
|
|
3
7
|
import { normalizeWallCurveOffset } from '../systems/wall/wall-curve.js';
|
|
4
8
|
import { WALL_MIN_LENGTH } from '../systems/wall/wall-topology.js';
|
|
9
|
+
import { applySceneChanges } from './apply-changes.js';
|
|
5
10
|
import { targetLevel } from './level-target.js';
|
|
6
|
-
import {
|
|
7
|
-
/** A level declared as the roof holds the roof, not rooms: walls and stairs stay off it. */
|
|
8
|
-
export function refuseRoofLevel(nodes, levelId, what) {
|
|
9
|
-
const level = nodes[levelId];
|
|
10
|
-
if (level && levelRole(nodes, level).metadataRole === 'roof')
|
|
11
|
-
refuse('roof_level', `${levelId} is a roof level, not a storey: ${what} belongs on an occupied storey. Add one with add_level if the building needs it.`, { levelId });
|
|
12
|
-
}
|
|
11
|
+
import { refuseRoofLevel } from './roof-writes.js';
|
|
13
12
|
/** `add_wall`: one wall between two points, named as the editor names walls. */
|
|
14
13
|
export const addWall = (nodes, input, context) => {
|
|
15
14
|
const level = targetLevel(nodes, input, context);
|
|
@@ -23,7 +22,7 @@ export const addWall = (nodes, input, context) => {
|
|
|
23
22
|
? normalizeWallCurveOffset({ start, end }, input.curveOffset)
|
|
24
23
|
: 0;
|
|
25
24
|
const walls = Object.values(nodes).filter((node) => node.type === 'wall').length;
|
|
26
|
-
const
|
|
25
|
+
const drawn = WallNode.parse({
|
|
27
26
|
name: `Wall ${walls + 1}`,
|
|
28
27
|
parentId: level.id,
|
|
29
28
|
start,
|
|
@@ -32,6 +31,16 @@ export const addWall = (nodes, input, context) => {
|
|
|
32
31
|
...(input.height === undefined ? {} : { height: input.height }),
|
|
33
32
|
...(curveOffset ? { curveOffset } : {}),
|
|
34
33
|
});
|
|
34
|
+
const [wall] = withFoundationConstruction(nodes, level.id, [
|
|
35
|
+
...Object.values(nodes).filter((node) => node.type === 'wall' && node.parentId === level.id),
|
|
36
|
+
drawn,
|
|
37
|
+
], [drawn], { thickness: input.thickness });
|
|
38
|
+
const reading = foundationReadingOfLevel(nodes, level.id);
|
|
39
|
+
const foundation = wall.assembly !== undefined;
|
|
40
|
+
const partition = !foundation && input.thickness === undefined && levelHoldsFoundationWalls(nodes, level.id);
|
|
41
|
+
// the wall's mitred band, curve and all: what crosses the lot line, not only its centreline
|
|
42
|
+
const after = applySceneChanges(nodes, { create: [{ node: wall, parentId: level.id }] });
|
|
43
|
+
const site = lotOverhang(after, level.id, levelFootprintLoops(after, after[level.id], null, new Set([wall.id])));
|
|
35
44
|
return {
|
|
36
45
|
result: {
|
|
37
46
|
ok: true,
|
|
@@ -40,7 +49,24 @@ export const addWall = (nodes, input, context) => {
|
|
|
40
49
|
levelId: level.id,
|
|
41
50
|
length: Math.round(length * 1000) / 1000,
|
|
42
51
|
...(curveOffset ? { curveOffset } : {}),
|
|
43
|
-
|
|
52
|
+
...(site ? { site } : {}),
|
|
53
|
+
...(foundation
|
|
54
|
+
? {
|
|
55
|
+
construction: {
|
|
56
|
+
assembly: reading.construction.description,
|
|
57
|
+
thickness: wall.thickness,
|
|
58
|
+
region: reading.region,
|
|
59
|
+
basis: reading.basis,
|
|
60
|
+
},
|
|
61
|
+
}
|
|
62
|
+
: {}),
|
|
63
|
+
message: `Added wall "${wall.name}" on ${level.name ?? level.id}${foundation
|
|
64
|
+
? `, a foundation wall against the ground (${reading.construction.description}), ${(wall.thickness ?? 0).toFixed(3)} m thick; ${reading.basis}; a wall given a thickness keeps it`
|
|
65
|
+
: partition
|
|
66
|
+
? `, an ordinary wall: a partition inside the outline of this level's walls; ${foundationWallRule(reading)}`
|
|
67
|
+
: ''}${site
|
|
68
|
+
? `; it reaches ${site.overhangM} m past the lot line (${site.sides.join(', ')}): the house belongs inside the buildable area (get_site, place_building)`
|
|
69
|
+
: ''}`,
|
|
44
70
|
},
|
|
45
71
|
changes: { create: [{ node: wall, parentId: level.id }] },
|
|
46
72
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { AnyNode } from '../schema/index.js';
|
|
2
|
-
import type { SceneChanges, SceneNodes } from './types.js';
|
|
2
|
+
import type { NodeWrite, SceneChanges, SceneNodes } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The scene after a write's operations in their order, without a store: each create attached to its
|
|
5
|
+
* parent, each reparent moved between both parents' `children`, each delete taking everything under
|
|
6
|
+
* it. A create is written as given; parse it first for its schema's defaults.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applySceneWrites(nodes: SceneNodes, writes: readonly NodeWrite[]): Record<string, AnyNode>;
|
|
3
9
|
/**
|
|
4
10
|
* The scene after an operation's changes, without a store: for checks and previews. Same order as
|
|
5
11
|
* the store's applyNodeChanges — updates, creates, then deletes — so an opening moved off a wall
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-changes.d.ts","sourceRoot":"","sources":["../../src/agent-operations/apply-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,WAAW,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"apply-changes.d.ts","sourceRoot":"","sources":["../../src/agent-operations/apply-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,WAAW,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAelE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,SAAS,SAAS,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,YAAY,EAAE,GAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAyC7E"}
|