@pascal-app/core 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +31 -0
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +27 -0
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +19 -11
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +25 -2
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +509 -66
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts +30 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/dressing-scenes.js +82 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +407 -9
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/notation-cases.js +14 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +7253 -4053
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +57 -1
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts +51 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/room-check-scenes.js +121 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +152 -18
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +91 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +40 -1
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +199 -18
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts +6 -0
- package/dist/agent-operations/__fixtures__/unit-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/unit-cases.js +266 -0
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +109 -73
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +32 -3
- package/dist/agent-operations/add-fence.d.ts.map +1 -1
- package/dist/agent-operations/add-fence.js +2 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +4 -4
- package/dist/agent-operations/add-object.d.ts +32 -6
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +59 -12
- package/dist/agent-operations/add-wall.d.ts +3 -8
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +31 -8
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +2 -1
- package/dist/agent-operations/asset-catalog.d.ts +63 -0
- package/dist/agent-operations/asset-catalog.d.ts.map +1 -0
- package/dist/agent-operations/asset-catalog.js +182 -0
- package/dist/agent-operations/asset-views.d.ts +4 -2
- package/dist/agent-operations/asset-views.d.ts.map +1 -1
- package/dist/agent-operations/asset-views.js +1 -3
- package/dist/agent-operations/author-scene-checks.d.ts +38 -0
- package/dist/agent-operations/author-scene-checks.d.ts.map +1 -0
- package/dist/agent-operations/author-scene-checks.js +266 -0
- package/dist/agent-operations/author-scene.d.ts +54 -20
- package/dist/agent-operations/author-scene.d.ts.map +1 -1
- package/dist/agent-operations/author-scene.js +1164 -196
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -1
- package/dist/agent-operations/authored-scene-merge.js +61 -3
- package/dist/agent-operations/batch.d.ts +1 -1
- package/dist/agent-operations/batch.d.ts.map +1 -1
- package/dist/agent-operations/batch.js +38 -39
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/ceiling-object-observations.js +5 -4
- package/dist/agent-operations/circulation-geometry.d.ts +14 -0
- package/dist/agent-operations/circulation-geometry.d.ts.map +1 -0
- package/dist/agent-operations/circulation-geometry.js +151 -0
- package/dist/agent-operations/circulation-graph.d.ts +72 -0
- package/dist/agent-operations/circulation-graph.d.ts.map +1 -0
- package/dist/agent-operations/circulation-graph.js +713 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts +10 -0
- package/dist/agent-operations/circulation-non-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-non-spaces.js +88 -0
- package/dist/agent-operations/circulation-spaces.d.ts +5880 -0
- package/dist/agent-operations/circulation-spaces.d.ts.map +1 -0
- package/dist/agent-operations/circulation-spaces.js +368 -0
- package/dist/agent-operations/collections.d.ts.map +1 -1
- package/dist/agent-operations/collections.js +9 -7
- package/dist/agent-operations/corner-window.d.ts.map +1 -1
- package/dist/agent-operations/corner-window.js +2 -4
- package/dist/agent-operations/create-roof.d.ts.map +1 -1
- package/dist/agent-operations/create-roof.js +5 -7
- package/dist/agent-operations/create-room.d.ts +4 -1
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +7 -4
- package/dist/agent-operations/create-stair.js +2 -2
- package/dist/agent-operations/design-brief.d.ts +13 -7
- package/dist/agent-operations/design-brief.d.ts.map +1 -1
- package/dist/agent-operations/design-brief.js +172 -92
- package/dist/agent-operations/door-clearance.d.ts +68 -8
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +127 -20
- package/dist/agent-operations/dress-targets.d.ts +23 -0
- package/dist/agent-operations/dress-targets.d.ts.map +1 -0
- package/dist/agent-operations/dress-targets.js +34 -0
- package/dist/agent-operations/duplicate-node.d.ts +14 -0
- package/dist/agent-operations/duplicate-node.d.ts.map +1 -0
- package/dist/agent-operations/duplicate-node.js +173 -0
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +3 -0
- package/dist/agent-operations/furnish-room.d.ts +2 -0
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +15 -4
- package/dist/agent-operations/furniture-kind.d.ts +28 -1
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -1
- package/dist/agent-operations/furniture-kind.js +105 -6
- package/dist/agent-operations/ground-reader.d.ts +10 -0
- package/dist/agent-operations/ground-reader.d.ts.map +1 -0
- package/dist/agent-operations/ground-reader.js +25 -0
- package/dist/agent-operations/index.d.ts +118 -12
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +26 -1
- package/dist/agent-operations/item-solids.d.ts +39 -0
- package/dist/agent-operations/item-solids.d.ts.map +1 -0
- package/dist/agent-operations/item-solids.js +128 -0
- package/dist/agent-operations/layout-clearance.d.ts +91 -11
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +280 -73
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -1
- package/dist/agent-operations/level-height-fill.js +7 -1
- package/dist/agent-operations/level-reads.d.ts +5 -0
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +38 -2
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +2 -4
- package/dist/agent-operations/move-node.d.ts +12 -0
- package/dist/agent-operations/move-node.d.ts.map +1 -0
- package/dist/agent-operations/move-node.js +28 -0
- package/dist/agent-operations/move-plan.d.ts +28 -0
- package/dist/agent-operations/move-plan.d.ts.map +1 -0
- package/dist/agent-operations/move-plan.js +257 -0
- package/dist/agent-operations/node-patch.d.ts.map +1 -1
- package/dist/agent-operations/node-patch.js +15 -0
- package/dist/agent-operations/paint.d.ts +3 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +14 -1
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -1
- package/dist/agent-operations/photo-elevation.js +2 -1
- package/dist/agent-operations/place-in-room.d.ts.map +1 -1
- package/dist/agent-operations/place-in-room.js +1 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +3 -4
- package/dist/agent-operations/plan-clearance.d.ts +28 -0
- package/dist/agent-operations/plan-clearance.d.ts.map +1 -0
- package/dist/agent-operations/plan-clearance.js +47 -0
- package/dist/agent-operations/plan-geometry.d.ts +2 -0
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +10 -0
- package/dist/agent-operations/project-files.d.ts +10 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -1
- package/dist/agent-operations/reachability.d.ts +41 -0
- package/dist/agent-operations/reachability.d.ts.map +1 -0
- package/dist/agent-operations/reachability.js +199 -0
- package/dist/agent-operations/room-checks.d.ts +60 -0
- package/dist/agent-operations/room-checks.d.ts.map +1 -0
- package/dist/agent-operations/room-checks.js +226 -0
- package/dist/agent-operations/room-faces.d.ts +30 -0
- package/dist/agent-operations/room-faces.d.ts.map +1 -0
- package/dist/agent-operations/room-faces.js +31 -0
- package/dist/agent-operations/room-findings.d.ts +5 -2
- package/dist/agent-operations/room-findings.d.ts.map +1 -1
- package/dist/agent-operations/room-findings.js +30 -0
- package/dist/agent-operations/room-finishes.d.ts +87 -0
- package/dist/agent-operations/room-finishes.d.ts.map +1 -0
- package/dist/agent-operations/room-finishes.js +193 -0
- package/dist/agent-operations/room-floor-script.d.ts +3 -3
- package/dist/agent-operations/room-floor-script.js +3 -3
- package/dist/agent-operations/room-readings.d.ts +90 -0
- package/dist/agent-operations/room-readings.d.ts.map +1 -0
- package/dist/agent-operations/room-readings.js +369 -0
- package/dist/agent-operations/room-tile.d.ts +15 -0
- package/dist/agent-operations/room-tile.d.ts.map +1 -0
- package/dist/agent-operations/room-tile.js +30 -0
- package/dist/agent-operations/room-wet.d.ts +55 -0
- package/dist/agent-operations/room-wet.d.ts.map +1 -0
- package/dist/agent-operations/room-wet.js +203 -0
- package/dist/agent-operations/scene-check-policy.d.ts +5 -0
- package/dist/agent-operations/scene-check-policy.d.ts.map +1 -0
- package/dist/agent-operations/scene-check-policy.js +24 -0
- package/dist/agent-operations/scene-checkpoint.d.ts +10 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.js +31 -0
- package/dist/agent-operations/scene-issue-groups.d.ts +17 -0
- package/dist/agent-operations/scene-issue-groups.d.ts.map +1 -0
- package/dist/agent-operations/scene-issue-groups.js +71 -0
- package/dist/agent-operations/scene-materials.d.ts +23 -0
- package/dist/agent-operations/scene-materials.d.ts.map +1 -1
- package/dist/agent-operations/scene-materials.js +41 -0
- package/dist/agent-operations/scene-queries.d.ts +1667 -866
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +3 -3
- package/dist/agent-operations/scene-review.d.ts.map +1 -1
- package/dist/agent-operations/scene-review.js +3 -2
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +91 -21
- package/dist/agent-operations/search-assets.d.ts +10 -6
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +37 -22
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -1
- package/dist/agent-operations/set-checkpoint.js +1 -0
- package/dist/agent-operations/set-ground-level.d.ts +1 -1
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -1
- package/dist/agent-operations/set-ground-level.js +3 -14
- package/dist/agent-operations/site.js +3 -2
- package/dist/agent-operations/slab-surface-script.d.ts +25 -0
- package/dist/agent-operations/slab-surface-script.d.ts.map +1 -0
- package/dist/agent-operations/slab-surface-script.js +60 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts +9 -0
- package/dist/agent-operations/stair-plan-footprint.d.ts.map +1 -0
- package/dist/agent-operations/stair-plan-footprint.js +50 -0
- package/dist/agent-operations/types.d.ts +10 -5
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/units.d.ts +26 -0
- package/dist/agent-operations/units.d.ts.map +1 -0
- package/dist/agent-operations/units.js +110 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts +17 -0
- package/dist/agent-operations/unreachable-rooms-check.d.ts.map +1 -0
- package/dist/agent-operations/unreachable-rooms-check.js +35 -0
- package/dist/agent-operations/usage-checks.d.ts +2 -0
- package/dist/agent-operations/usage-checks.d.ts.map +1 -0
- package/dist/agent-operations/usage-checks.js +12 -0
- package/dist/agent-operations/verify-scene.d.ts +8 -11
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +55 -11
- package/dist/agent-operations/wall-face-defaults.d.ts +44 -0
- package/dist/agent-operations/wall-face-defaults.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-defaults.js +229 -0
- package/dist/agent-operations/wall-joins.d.ts +119 -0
- package/dist/agent-operations/wall-joins.d.ts.map +1 -0
- package/dist/agent-operations/wall-joins.js +308 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/wall-object-observations.js +4 -6
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.js +2 -0
- package/dist/agent-operations/wall-type.d.ts +49 -0
- package/dist/agent-operations/wall-type.d.ts.map +1 -0
- package/dist/agent-operations/wall-type.js +31 -0
- package/dist/agent-operations/zone-coverage.d.ts +85 -0
- package/dist/agent-operations/zone-coverage.d.ts.map +1 -0
- package/dist/agent-operations/zone-coverage.js +208 -0
- package/dist/agent-tools/add-object.d.ts +31 -0
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +44 -7
- package/dist/agent-tools/assets.d.ts +4 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +11 -1
- package/dist/agent-tools/author-scene.d.ts +810 -15
- package/dist/agent-tools/author-scene.d.ts.map +1 -1
- package/dist/agent-tools/author-scene.js +275 -34
- package/dist/agent-tools/batch.d.ts +1 -1
- package/dist/agent-tools/batch.d.ts.map +1 -1
- package/dist/agent-tools/batch.js +5 -1
- package/dist/agent-tools/checkpoints.js +1 -1
- package/dist/agent-tools/columns.d.ts +14 -0
- package/dist/agent-tools/columns.d.ts.map +1 -1
- package/dist/agent-tools/columns.js +14 -2
- package/dist/agent-tools/contract.d.ts +10 -0
- package/dist/agent-tools/contract.d.ts.map +1 -1
- package/dist/agent-tools/contract.js +5 -1
- package/dist/agent-tools/corner-window.d.ts +1 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -1
- package/dist/agent-tools/corner-window.js +1 -1
- package/dist/agent-tools/create-room.d.ts +85 -0
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +8 -1
- package/dist/agent-tools/design-brief.d.ts +513 -7
- package/dist/agent-tools/design-brief.d.ts.map +1 -1
- package/dist/agent-tools/design-brief.js +192 -14
- package/dist/agent-tools/designs.js +1 -1
- package/dist/agent-tools/find-by-type.js +1 -1
- package/dist/agent-tools/index.d.ts +658 -10
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +9 -1
- package/dist/agent-tools/levels.js +4 -4
- package/dist/agent-tools/move-duplicate.d.ts +65 -0
- package/dist/agent-tools/move-duplicate.d.ts.map +1 -0
- package/dist/agent-tools/move-duplicate.js +68 -0
- package/dist/agent-tools/paint.d.ts +6 -0
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +7 -3
- package/dist/agent-tools/photo-elevation.js +1 -1
- package/dist/agent-tools/project-files.d.ts +2 -2
- package/dist/agent-tools/project-files.d.ts.map +1 -1
- package/dist/agent-tools/project-files.js +1 -1
- package/dist/agent-tools/refusal.d.ts +9 -1
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/refusal.js +5 -1
- package/dist/agent-tools/roofs.js +1 -1
- package/dist/agent-tools/room-structure.d.ts +60 -0
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +20 -1
- package/dist/agent-tools/search-materials.d.ts +1 -0
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/site.js +1 -1
- package/dist/agent-tools/stairs.js +1 -1
- package/dist/agent-tools/units.d.ts +84 -0
- package/dist/agent-tools/units.d.ts.map +1 -0
- package/dist/agent-tools/units.js +54 -0
- package/dist/agent-tools/verify-scene-usage.d.ts +44 -0
- package/dist/agent-tools/verify-scene-usage.d.ts.map +1 -0
- package/dist/agent-tools/verify-scene-usage.js +146 -0
- package/dist/agent-tools/verify-scene.d.ts +12 -1
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +183 -3
- package/dist/agent-tools/view-scene.d.ts +3 -0
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +4 -1
- package/dist/agent-tools/wall-openings.d.ts +121 -2
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +123 -18
- package/dist/agent-tools/walls.d.ts +30 -0
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +54 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +340 -195
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +13 -0
- package/dist/building/code-profile.d.ts +231 -0
- package/dist/building/code-profile.d.ts.map +1 -0
- package/dist/building/code-profile.js +208 -0
- package/dist/building/corner-window.d.ts +2 -2
- package/dist/building/corner-window.d.ts.map +1 -1
- package/dist/building/corner-window.js +11 -2
- package/dist/building/door-types.d.ts +1 -0
- package/dist/building/door-types.d.ts.map +1 -1
- package/dist/building/door-types.js +2 -0
- package/dist/building/floor-item-fit.d.ts.map +1 -1
- package/dist/building/floor-item-fit.js +2 -4
- package/dist/building/ground-level.d.ts +1 -3
- package/dist/building/ground-level.d.ts.map +1 -1
- package/dist/building/ground-level.js +3 -5
- package/dist/building/index.d.ts +2 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +2 -0
- package/dist/building/level-duplication.d.ts +5951 -4351
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-insertion.d.ts +1 -1
- package/dist/building/level-wall-copy.d.ts +24 -0
- package/dist/building/level-wall-copy.d.ts.map +1 -0
- package/dist/building/level-wall-copy.js +53 -0
- package/dist/building/merge-windows.d.ts.map +1 -1
- package/dist/building/merge-windows.js +1 -0
- package/dist/building/opening-style-presets.d.ts +2 -0
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/opening-style-presets.js +26 -5
- package/dist/building/room-use.d.ts +26 -0
- package/dist/building/room-use.d.ts.map +1 -0
- package/dist/building/room-use.js +102 -0
- package/dist/building/wall-openings.d.ts +115 -7
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +121 -29
- package/dist/building/window-types.d.ts +1 -0
- package/dist/building/window-types.d.ts.map +1 -1
- package/dist/building/window-types.js +3 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts +84 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.d.ts.map +1 -0
- package/dist/coherence/__fixtures__/enclosure-scenes.js +44 -0
- package/dist/commands/structure/attached-walls.d.ts +16 -0
- package/dist/commands/structure/attached-walls.d.ts.map +1 -0
- package/dist/commands/structure/attached-walls.js +53 -0
- package/dist/commands/structure/index.d.ts +3 -0
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +3 -0
- package/dist/commands/structure/move-separators.d.ts +62 -0
- package/dist/commands/structure/move-separators.d.ts.map +1 -0
- package/dist/commands/structure/move-separators.js +346 -0
- package/dist/commands/structure/set-floor-foundation.d.ts +5 -0
- package/dist/commands/structure/set-floor-foundation.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.d.ts.map +1 -1
- package/dist/commands/structure/set-wall-geometry.js +44 -11
- package/dist/commands/structure/set-zone-intent.d.ts +26 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +107 -2
- package/dist/commands/structure/shared.d.ts +888 -88
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/wall-overlap.d.ts +45 -0
- package/dist/commands/structure/wall-overlap.d.ts.map +1 -0
- package/dist/commands/structure/wall-overlap.js +289 -0
- package/dist/commands/structure/zone-wall-merge.d.ts +3326 -2370
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.d.ts +2 -2
- package/dist/contracts/reference-discovery.d.ts.map +1 -1
- package/dist/contracts/reference-discovery.js +5 -3
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +75 -24
- package/dist/events/bus.d.ts +15 -2
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts +40 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/built-in-floor-placed.js +220 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/floor-placed-elevation.js +13 -7
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +56 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +177 -27
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +1631 -831
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +24 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +10 -10
- package/dist/i18n/format.d.ts +41 -0
- package/dist/i18n/format.d.ts.map +1 -0
- package/dist/i18n/format.js +124 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/registry.d.ts +78 -0
- package/dist/i18n/registry.d.ts.map +1 -0
- package/dist/i18n/registry.js +252 -0
- package/dist/i18n/use-translate.d.ts +16 -0
- package/dist/i18n/use-translate.d.ts.map +1 -0
- package/dist/i18n/use-translate.js +23 -0
- package/dist/index.d.ts +32 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -15
- package/dist/lib/__fixtures__/mezzanine.d.ts +6840 -4169
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +2128 -1328
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/beam.d.ts +137 -0
- package/dist/lib/beam.d.ts.map +1 -0
- package/dist/lib/beam.js +297 -0
- package/dist/lib/below-grade-footprints.d.ts +13 -5
- package/dist/lib/below-grade-footprints.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.js +53 -10
- package/dist/lib/build-up.d.ts +89 -0
- package/dist/lib/build-up.d.ts.map +1 -0
- package/dist/lib/build-up.js +216 -0
- package/dist/lib/corner-pair.d.ts +205 -4
- package/dist/lib/corner-pair.d.ts.map +1 -1
- package/dist/lib/deck-boards.d.ts +80 -0
- package/dist/lib/deck-boards.d.ts.map +1 -0
- package/dist/lib/deck-boards.js +184 -0
- package/dist/lib/deck-framing.d.ts +150 -0
- package/dist/lib/deck-framing.d.ts.map +1 -0
- package/dist/lib/deck-framing.js +515 -0
- package/dist/lib/deepest-drawn.d.ts +3 -6
- package/dist/lib/deepest-drawn.d.ts.map +1 -1
- package/dist/lib/deepest-drawn.js +4 -8
- package/dist/lib/door-opening.d.ts +19 -0
- package/dist/lib/door-opening.d.ts.map +1 -0
- package/dist/lib/door-opening.js +27 -0
- package/dist/lib/door-operation.d.ts +2 -0
- package/dist/lib/door-operation.d.ts.map +1 -1
- package/dist/lib/door-operation.js +4 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -1
- package/dist/lib/exterior-wall-loops.js +2 -1
- package/dist/lib/finish-script.d.ts +5 -5
- package/dist/lib/finish-script.d.ts.map +1 -1
- package/dist/lib/finish-script.js +12 -5
- package/dist/lib/floor-footprint-name.d.ts +17 -0
- package/dist/lib/floor-footprint-name.d.ts.map +1 -1
- package/dist/lib/floor-footprint-name.js +17 -4
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +60 -35
- package/dist/lib/floor-opening-footprints.d.ts +1 -1
- package/dist/lib/floor-opening-footprints.d.ts.map +1 -1
- package/dist/lib/floor-opening-footprints.js +10 -4
- package/dist/lib/floor-plate-paint.d.ts +2 -0
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +12 -0
- package/dist/lib/floor-plates.d.ts +250 -0
- package/dist/lib/floor-plates.d.ts.map +1 -1
- package/dist/lib/floor-plates.js +43 -4
- package/dist/lib/floor-script.d.ts +35 -6
- package/dist/lib/floor-script.d.ts.map +1 -1
- package/dist/lib/floor-script.js +96 -16
- package/dist/lib/foundation-construction.d.ts +4 -13
- package/dist/lib/foundation-construction.d.ts.map +1 -1
- package/dist/lib/foundation-construction.js +4 -14
- package/dist/lib/foundation-standard.d.ts +2 -3
- package/dist/lib/foundation-standard.d.ts.map +1 -1
- package/dist/lib/foundation-standard.js +2 -3
- package/dist/lib/foundation-wall.d.ts +1 -2
- package/dist/lib/foundation-wall.d.ts.map +1 -1
- package/dist/lib/foundation-wall.js +1 -2
- package/dist/lib/framing-post.d.ts +91 -0
- package/dist/lib/framing-post.d.ts.map +1 -0
- package/dist/lib/framing-post.js +174 -0
- package/dist/lib/geometry-script-node.d.ts +11 -0
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +35 -0
- package/dist/lib/grade-standing.d.ts +16 -2
- package/dist/lib/grade-standing.d.ts.map +1 -1
- package/dist/lib/grade-standing.js +129 -9
- package/dist/lib/ground-seat.d.ts +2 -22
- package/dist/lib/ground-seat.d.ts.map +1 -1
- package/dist/lib/ground-seat.js +2 -17
- package/dist/lib/ground-window.d.ts +2 -1
- package/dist/lib/ground-window.d.ts.map +1 -1
- package/dist/lib/ground-window.js +5 -2
- package/dist/lib/level-footprints.d.ts +2 -0
- package/dist/lib/level-footprints.d.ts.map +1 -1
- package/dist/lib/level-footprints.js +7 -0
- package/dist/lib/opening-casing.d.ts +67 -0
- package/dist/lib/opening-casing.d.ts.map +1 -0
- package/dist/lib/opening-casing.js +131 -0
- package/dist/lib/opening-exterior-face.d.ts +6 -0
- package/dist/lib/opening-exterior-face.d.ts.map +1 -0
- package/dist/lib/opening-exterior-face.js +15 -0
- package/dist/lib/opening-floor-datum.d.ts +11 -5
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +38 -6
- package/dist/lib/opening-frame-depth.d.ts +18 -0
- package/dist/lib/opening-frame-depth.d.ts.map +1 -0
- package/dist/lib/opening-frame-depth.js +22 -0
- package/dist/lib/outdoor-room.d.ts +32 -0
- package/dist/lib/outdoor-room.d.ts.map +1 -0
- package/dist/lib/outdoor-room.js +66 -0
- package/dist/lib/plate-surface.d.ts +8 -0
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +53 -3
- package/dist/lib/porch-framing-sync.d.ts +46 -0
- package/dist/lib/porch-framing-sync.d.ts.map +1 -0
- package/dist/lib/porch-framing-sync.js +206 -0
- package/dist/lib/porch-framing.d.ts +44 -0
- package/dist/lib/porch-framing.d.ts.map +1 -0
- package/dist/lib/porch-framing.js +159 -0
- package/dist/lib/railing-rooms.d.ts +13 -0
- package/dist/lib/railing-rooms.d.ts.map +1 -0
- package/dist/lib/railing-rooms.js +37 -0
- package/dist/lib/roof-eave.d.ts +135 -0
- package/dist/lib/roof-eave.d.ts.map +1 -0
- package/dist/lib/roof-eave.js +186 -0
- package/dist/lib/room-floor-plate.d.ts +3 -1
- package/dist/lib/room-floor-plate.d.ts.map +1 -1
- package/dist/lib/room-floor-plate.js +7 -0
- package/dist/lib/space-detection.d.ts +13 -0
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +112 -24
- package/dist/lib/structure-kernel.d.ts +22 -9
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +146 -28
- package/dist/lib/structure-reconcile.d.ts +1 -1
- package/dist/lib/structure-reconcile.d.ts.map +1 -1
- package/dist/lib/structure-reconcile.js +7 -4
- package/dist/lib/surface-intent.d.ts +10 -0
- package/dist/lib/surface-intent.d.ts.map +1 -0
- package/dist/lib/surface-intent.js +18 -0
- package/dist/lib/terrain-source.d.ts.map +1 -1
- package/dist/lib/terrain-source.js +2 -1
- package/dist/lib/wall-face-script.d.ts.map +1 -1
- package/dist/lib/wall-face-script.js +5 -2
- package/dist/material-kinds.d.ts +1 -1
- package/dist/material-kinds.d.ts.map +1 -1
- package/dist/material-kinds.js +1 -0
- package/dist/material-library.d.ts +15 -0
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +458 -59
- package/dist/node-slots/door.d.ts +3 -4
- package/dist/node-slots/door.d.ts.map +1 -1
- package/dist/node-slots/door.js +4 -3
- package/dist/node-slots/wall.d.ts.map +1 -1
- package/dist/node-slots/wall.js +21 -3
- package/dist/node-slots/window.d.ts +2 -2
- package/dist/node-slots/window.d.ts.map +1 -1
- package/dist/node-slots/window.js +6 -1
- package/dist/procedural-items/design.d.ts +8 -0
- package/dist/procedural-items/design.d.ts.map +1 -1
- package/dist/procedural-items/design.js +169 -21
- package/dist/procedural-items/motion-controller.d.ts +2 -0
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.js +2 -1
- package/dist/registry/index.d.ts +2 -2
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/mechanism.d.ts +4 -1
- package/dist/registry/mechanism.d.ts.map +1 -1
- package/dist/registry/mechanism.js +10 -0
- package/dist/registry/types.d.ts +65 -23
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/runtime/__fixtures__/live-scene.d.ts +14 -0
- package/dist/runtime/__fixtures__/live-scene.d.ts.map +1 -0
- package/dist/runtime/__fixtures__/live-scene.js +64 -0
- package/dist/runtime/apply.d.ts +42 -0
- package/dist/runtime/apply.d.ts.map +1 -0
- package/dist/runtime/apply.js +274 -0
- package/dist/runtime/dependencies.d.ts +97 -0
- package/dist/runtime/dependencies.d.ts.map +1 -0
- package/dist/runtime/dependencies.js +42 -0
- package/dist/runtime/ids.d.ts +11 -0
- package/dist/runtime/ids.d.ts.map +1 -0
- package/dist/runtime/ids.js +80 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +11 -0
- package/dist/runtime/node-queries.d.ts +16 -0
- package/dist/runtime/node-queries.d.ts.map +1 -0
- package/dist/runtime/node-queries.js +30 -0
- package/dist/runtime/patch.d.ts +26 -0
- package/dist/runtime/patch.d.ts.map +1 -0
- package/dist/runtime/patch.js +165 -0
- package/dist/runtime/reader.d.ts +104 -0
- package/dist/runtime/reader.d.ts.map +1 -0
- package/dist/runtime/reader.js +455 -0
- package/dist/runtime/scene-runtime.d.ts +112 -0
- package/dist/runtime/scene-runtime.d.ts.map +1 -0
- package/dist/runtime/scene-runtime.js +302 -0
- package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -1
- package/dist/schema/__fixtures__/node-fixtures.js +1 -0
- package/dist/schema/assembly.d.ts +3 -0
- package/dist/schema/assembly.d.ts.map +1 -1
- package/dist/schema/assembly.js +13 -0
- package/dist/schema/asset-url.d.ts +37 -2
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/asset-url.js +80 -11
- package/dist/schema/base.d.ts +8 -0
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +19 -1
- package/dist/schema/build-up.d.ts +247 -0
- package/dist/schema/build-up.d.ts.map +1 -0
- package/dist/schema/build-up.js +83 -0
- package/dist/schema/geometry-source.d.ts +80 -0
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +38 -0
- package/dist/schema/index.d.ts +12 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +12 -6
- package/dist/schema/material.d.ts +5 -0
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +6 -0
- package/dist/schema/nodes/beam.d.ts +264 -0
- package/dist/schema/nodes/beam.d.ts.map +1 -0
- package/dist/schema/nodes/beam.js +139 -0
- package/dist/schema/nodes/box-vent.d.ts +5 -0
- package/dist/schema/nodes/box-vent.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.d.ts +10 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.d.ts +48 -0
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +5 -0
- package/dist/schema/nodes/chimney.d.ts +10 -0
- package/dist/schema/nodes/chimney.d.ts.map +1 -1
- package/dist/schema/nodes/column.d.ts +42 -0
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +11 -1
- package/dist/schema/nodes/cupola.d.ts +5 -0
- package/dist/schema/nodes/cupola.d.ts.map +1 -1
- package/dist/schema/nodes/door.d.ts +54 -3
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +41 -7
- package/dist/schema/nodes/dormer.d.ts +20 -0
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +5 -0
- package/dist/schema/nodes/downspout.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.d.ts +5 -0
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/eyebrow-vent.d.ts +5 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
- package/dist/schema/nodes/fence.d.ts +5 -0
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/guide.d.ts +14 -0
- package/dist/schema/nodes/guide.d.ts.map +1 -1
- package/dist/schema/nodes/guide.js +2 -0
- package/dist/schema/nodes/gutter.d.ts +5 -0
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/item.d.ts +71 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +5 -1
- package/dist/schema/nodes/level.d.ts +1 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.d.ts +13 -0
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/opening-types.js +8 -1
- package/dist/schema/nodes/railing-wall.d.ts +112 -0
- package/dist/schema/nodes/railing-wall.d.ts.map +1 -0
- package/dist/schema/nodes/railing-wall.js +160 -0
- package/dist/schema/nodes/ridge-vent.d.ts +5 -0
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.d.ts +224 -1
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +57 -10
- package/dist/schema/nodes/roof-types.d.ts +11 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -1
- package/dist/schema/nodes/roof-types.js +6 -0
- package/dist/schema/nodes/roof.d.ts +60 -0
- package/dist/schema/nodes/roof.d.ts.map +1 -1
- package/dist/schema/nodes/roof.js +4 -0
- package/dist/schema/nodes/shelf.d.ts +5 -0
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/site.d.ts +80 -0
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -0
- package/dist/schema/nodes/skylight.d.ts +10 -0
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +137 -0
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +3 -0
- package/dist/schema/nodes/solar-panel.d.ts +10 -0
- package/dist/schema/nodes/solar-panel.d.ts.map +1 -1
- package/dist/schema/nodes/stair-segment.d.ts +5 -0
- package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
- package/dist/schema/nodes/stair-structure.d.ts +69 -0
- package/dist/schema/nodes/stair-structure.d.ts.map +1 -0
- package/dist/schema/nodes/stair-structure.js +39 -0
- package/dist/schema/nodes/stair.d.ts +46 -0
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +3 -0
- package/dist/schema/nodes/turbine-vent.d.ts +5 -0
- package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +135 -2
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +42 -6
- package/dist/schema/nodes/window.d.ts +66 -1
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +50 -5
- package/dist/schema/nodes/zone.d.ts +68 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +32 -0
- package/dist/schema/scene-material.d.ts +5 -0
- package/dist/schema/scene-material.d.ts.map +1 -1
- package/dist/schema/types.d.ts +1079 -4
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +2 -0
- package/dist/schema/wall-type.d.ts +95 -0
- package/dist/schema/wall-type.d.ts.map +1 -0
- package/dist/schema/wall-type.js +32 -0
- package/dist/services/roof-bearing.d.ts.map +1 -1
- package/dist/services/roof-bearing.js +6 -3
- package/dist/services/roof-level.d.ts.map +1 -1
- package/dist/services/roof-level.js +4 -3
- package/dist/services/roof-move.d.ts.map +1 -1
- package/dist/services/roof-move.js +13 -7
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +13 -8
- package/dist/spatial/usage-field/beds.d.ts +51 -0
- package/dist/spatial/usage-field/beds.d.ts.map +1 -0
- package/dist/spatial/usage-field/beds.js +346 -0
- package/dist/spatial/usage-field/blocked.d.ts +28 -0
- package/dist/spatial/usage-field/blocked.d.ts.map +1 -0
- package/dist/spatial/usage-field/blocked.js +185 -0
- package/dist/spatial/usage-field/boxes.d.ts +17 -0
- package/dist/spatial/usage-field/boxes.d.ts.map +1 -0
- package/dist/spatial/usage-field/boxes.js +82 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts +3 -0
- package/dist/spatial/usage-field/catalogue-shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue-shapes.js +257 -0
- package/dist/spatial/usage-field/catalogue.d.ts +6 -0
- package/dist/spatial/usage-field/catalogue.d.ts.map +1 -0
- package/dist/spatial/usage-field/catalogue.js +11 -0
- package/dist/spatial/usage-field/clash.d.ts +40 -0
- package/dist/spatial/usage-field/clash.d.ts.map +1 -0
- package/dist/spatial/usage-field/clash.js +187 -0
- package/dist/spatial/usage-field/door-stairs.d.ts +18 -0
- package/dist/spatial/usage-field/door-stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/door-stairs.js +129 -0
- package/dist/spatial/usage-field/entry-way.d.ts +14 -0
- package/dist/spatial/usage-field/entry-way.d.ts.map +1 -0
- package/dist/spatial/usage-field/entry-way.js +219 -0
- package/dist/spatial/usage-field/fences.d.ts +18 -0
- package/dist/spatial/usage-field/fences.d.ts.map +1 -0
- package/dist/spatial/usage-field/fences.js +253 -0
- package/dist/spatial/usage-field/field.d.ts +44 -0
- package/dist/spatial/usage-field/field.d.ts.map +1 -0
- package/dist/spatial/usage-field/field.js +145 -0
- package/dist/spatial/usage-field/findings.d.ts +76 -0
- package/dist/spatial/usage-field/findings.d.ts.map +1 -0
- package/dist/spatial/usage-field/findings.js +252 -0
- package/dist/spatial/usage-field/fixtures.d.ts +18 -0
- package/dist/spatial/usage-field/fixtures.d.ts.map +1 -0
- package/dist/spatial/usage-field/fixtures.js +160 -0
- package/dist/spatial/usage-field/flag.d.ts +10 -0
- package/dist/spatial/usage-field/flag.d.ts.map +1 -0
- package/dist/spatial/usage-field/flag.js +12 -0
- package/dist/spatial/usage-field/floors.d.ts +13 -0
- package/dist/spatial/usage-field/floors.d.ts.map +1 -0
- package/dist/spatial/usage-field/floors.js +36 -0
- package/dist/spatial/usage-field/index.d.ts +7 -0
- package/dist/spatial/usage-field/index.d.ts.map +1 -0
- package/dist/spatial/usage-field/index.js +5 -0
- package/dist/spatial/usage-field/items.d.ts +38 -0
- package/dist/spatial/usage-field/items.d.ts.map +1 -0
- package/dist/spatial/usage-field/items.js +261 -0
- package/dist/spatial/usage-field/labels.d.ts +8 -0
- package/dist/spatial/usage-field/labels.d.ts.map +1 -0
- package/dist/spatial/usage-field/labels.js +14 -0
- package/dist/spatial/usage-field/level-field.d.ts +47 -0
- package/dist/spatial/usage-field/level-field.d.ts.map +1 -0
- package/dist/spatial/usage-field/level-field.js +96 -0
- package/dist/spatial/usage-field/measure.d.ts +324 -0
- package/dist/spatial/usage-field/measure.d.ts.map +1 -0
- package/dist/spatial/usage-field/measure.js +458 -0
- package/dist/spatial/usage-field/obstacles.d.ts +63 -0
- package/dist/spatial/usage-field/obstacles.d.ts.map +1 -0
- package/dist/spatial/usage-field/obstacles.js +215 -0
- package/dist/spatial/usage-field/openings.d.ts +12 -0
- package/dist/spatial/usage-field/openings.d.ts.map +1 -0
- package/dist/spatial/usage-field/openings.js +162 -0
- package/dist/spatial/usage-field/path.d.ts +48 -0
- package/dist/spatial/usage-field/path.d.ts.map +1 -0
- package/dist/spatial/usage-field/path.js +354 -0
- package/dist/spatial/usage-field/pieces.d.ts +27 -0
- package/dist/spatial/usage-field/pieces.d.ts.map +1 -0
- package/dist/spatial/usage-field/pieces.js +89 -0
- package/dist/spatial/usage-field/shapes.d.ts +18 -0
- package/dist/spatial/usage-field/shapes.d.ts.map +1 -0
- package/dist/spatial/usage-field/shapes.js +92 -0
- package/dist/spatial/usage-field/stairs.d.ts +23 -0
- package/dist/spatial/usage-field/stairs.d.ts.map +1 -0
- package/dist/spatial/usage-field/stairs.js +163 -0
- package/dist/spatial/usage-field/support.d.ts +24 -0
- package/dist/spatial/usage-field/support.d.ts.map +1 -0
- package/dist/spatial/usage-field/support.js +46 -0
- package/dist/spatial/usage-field/swings.d.ts +846 -0
- package/dist/spatial/usage-field/swings.d.ts.map +1 -0
- package/dist/spatial/usage-field/swings.js +427 -0
- package/dist/spatial/usage-field/types.d.ts +65 -0
- package/dist/spatial/usage-field/types.d.ts.map +1 -0
- package/dist/spatial/usage-field/types.js +1 -0
- package/dist/spatial/usage-field/walls.d.ts +1057 -0
- package/dist/spatial/usage-field/walls.d.ts.map +1 -0
- package/dist/spatial/usage-field/walls.js +166 -0
- package/dist/spatial/usage-field/way-in.d.ts +26 -0
- package/dist/spatial/usage-field/way-in.d.ts.map +1 -0
- package/dist/spatial/usage-field/way-in.js +113 -0
- package/dist/store/actions/node-actions.d.ts +2124 -1322
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +42 -16
- package/dist/store/derived-node-guard.d.ts +10 -2
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/derived-node-guard.js +31 -11
- package/dist/store/document-settling.d.ts +9 -0
- package/dist/store/document-settling.d.ts.map +1 -0
- package/dist/store/document-settling.js +22 -0
- package/dist/store/history-control.d.ts +19 -10
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +176 -127
- package/dist/store/history-drafts.d.ts.map +1 -1
- package/dist/store/history-drafts.js +21 -17
- package/dist/store/live-previews.d.ts +9 -0
- package/dist/store/live-previews.d.ts.map +1 -0
- package/dist/store/live-previews.js +19 -0
- package/dist/store/scene-annotations.d.ts +6751 -5151
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-environment.d.ts +33 -0
- package/dist/store/scene-environment.d.ts.map +1 -0
- package/dist/store/scene-environment.js +54 -0
- package/dist/store/scene-hydration.d.ts.map +1 -1
- package/dist/store/scene-hydration.js +41 -30
- package/dist/store/use-interactive.d.ts +9 -3
- package/dist/store/use-interactive.d.ts.map +1 -1
- package/dist/store/use-interactive.js +43 -11
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-node-overrides.js +3 -0
- package/dist/store/use-scene.d.ts +25 -0
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +408 -336
- package/dist/systems/document-reconcile.d.ts +40 -0
- package/dist/systems/document-reconcile.d.ts.map +1 -0
- package/dist/systems/document-reconcile.js +159 -0
- package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-system.js +9 -24
- package/dist/systems/fence/guard-layout.d.ts +69 -0
- package/dist/systems/fence/guard-layout.d.ts.map +1 -0
- package/dist/systems/fence/guard-layout.js +194 -0
- package/dist/systems/owned-floor-openings.d.ts +13 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +58 -2
- package/dist/systems/reconcile-owned-floor-openings.d.ts +3 -1
- package/dist/systems/reconcile-owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/reconcile-owned-floor-openings.js +4 -4
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +8 -26
- package/dist/systems/roof/roof-elevation.d.ts +16 -1
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +85 -4
- package/dist/systems/roof/roof-footprint.d.ts +42 -1
- package/dist/systems/roof/roof-footprint.d.ts.map +1 -1
- package/dist/systems/roof/roof-footprint.js +160 -4
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +3163 -1934
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +2495 -1249
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.d.ts +7 -0
- package/dist/systems/stair/stair-clearance.d.ts.map +1 -1
- package/dist/systems/stair/stair-clearance.js +31 -11
- package/dist/systems/stair/stair-construction.d.ts +8 -3
- package/dist/systems/stair/stair-construction.d.ts.map +1 -1
- package/dist/systems/stair/stair-construction.js +55 -4
- package/dist/systems/stair/stair-opening-preview.d.ts +889 -89
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-system.js +18 -34
- package/dist/systems/stair/stair-presets.d.ts +36 -0
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +3 -2
- package/dist/systems/stair/stair-rise.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise.js +6 -0
- package/dist/systems/stair/stair-sizing.d.ts +42 -11
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/stair/stair-sizing.js +10 -1
- package/dist/systems/stair/stair-structure.d.ts +277 -0
- package/dist/systems/stair/stair-structure.d.ts.map +1 -0
- package/dist/systems/stair/stair-structure.js +496 -0
- package/dist/systems/wall/wall-assembly.d.ts +84 -6
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +204 -5
- package/dist/systems/wall/wall-finish.d.ts +38 -2
- package/dist/systems/wall/wall-finish.d.ts.map +1 -1
- package/dist/systems/wall/wall-finish.js +70 -2
- package/dist/systems/wall/wall-footprint.js +2 -2
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +28 -7
- package/dist/systems/wall/wall-mitering.d.ts +1 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +152 -52
- package/dist/systems/wall/wall-move.d.ts +23 -6
- package/dist/systems/wall/wall-move.d.ts.map +1 -1
- package/dist/systems/wall/wall-move.js +65 -0
- package/dist/systems/wall/wall-top.d.ts +2 -2
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +6 -1
- package/dist/systems/wall/wall-topology.d.ts +32 -1
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +118 -10
- package/dist/systems/wall/wall-trim-profiles.d.ts +12 -0
- package/dist/systems/wall/wall-trim-profiles.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim-profiles.js +191 -0
- package/dist/utils/ensure-scene-openings.d.ts +6523 -4923
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +5 -0
- package/dist/utils/floor-piece-adoption.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.d.ts +1930 -1130
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/owned-floor-opening-migration.d.ts +888 -88
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +1930 -1130
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/structure-id.js +4 -0
- package/package.json +22 -5
- package/dist/lib/generic-foundation.d.ts +0 -40
- package/dist/lib/generic-foundation.d.ts.map +0 -1
- package/dist/lib/generic-foundation.js +0 -200
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type DesignBrief, type DesignBriefInput } from '../agent-tools/design-brief.js';
|
|
2
2
|
import { AgentRefusal } from '../agent-tools/refusal.js';
|
|
3
3
|
import type { AssetInput } from '../schema/index.js';
|
|
4
|
-
import type { AgentOperation } from './types.js';
|
|
4
|
+
import type { AgentContext, AgentOperation } from './types.js';
|
|
5
5
|
/**
|
|
6
6
|
* Furnishing follows the turn's design brief. A host that gates keeps the brief in force
|
|
7
7
|
* (`AgentContext.designBrief`, null while there is none) and each furnishing tool asks
|
|
@@ -9,19 +9,24 @@ import type { AgentOperation } from './types.js';
|
|
|
9
9
|
* context's brief out and nothing is refused (Pro, a person's own tools).
|
|
10
10
|
*/
|
|
11
11
|
export declare const NO_BRIEF = "Furnishing follows the turn's design brief: design_brief records what the request fixes, what it leaves open and where objects come from; until then the catalog can be searched and viewed, not placed, and no furnishing is made.";
|
|
12
|
-
|
|
12
|
+
/** The session reading that holds the pieces refused under an open source (`SessionKeep.readings`). */
|
|
13
|
+
export declare const REFUSED_PIECES_KEY = "brief.refusedPieces";
|
|
13
14
|
/** The pieces `beyond` names, flattened: the brief's own list of the dressing. */
|
|
14
15
|
export declare function dressingOf(beyond: DesignBriefInput['beyond']): string[];
|
|
15
|
-
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function isTechnicalEquipment(item: Pick<AssetInput, 'category' | 'functionTags'>): boolean;
|
|
17
|
+
export declare function isVegetation(item: Pick<AssetInput, 'category' | 'functionTags' | 'tags'>): boolean;
|
|
18
|
+
/** The catalog ids a placement call names. */
|
|
19
|
+
export declare function placedAssets(tool: string, input: unknown): string[];
|
|
20
|
+
/** What the gate reads beyond the brief: the session's refusals, and the catalog's tags. */
|
|
21
|
+
type BriefGateContext = Pick<AgentContext, 'session' | 'catalog'>;
|
|
17
22
|
/**
|
|
18
23
|
* Why a furnishing call may not run under this brief, or null. `brief` null is no brief yet. An
|
|
19
24
|
* `add_object` that names a `nodeId` edits an object that stands: it places and makes nothing.
|
|
20
|
-
* A batch
|
|
25
|
+
* A batch checks each call in its operation, under the same policy as runtime refusals.
|
|
21
26
|
*/
|
|
22
|
-
export declare function furnishingRefusal(tool: string, input: unknown, brief: DesignBrief | null): AgentRefusal | null;
|
|
27
|
+
export declare function furnishingRefusal(tool: string, input: unknown, brief: DesignBrief | null, context?: BriefGateContext): AgentRefusal | null;
|
|
23
28
|
/** Throws the refusal when the host gates and the call may not run; a host with no brief to keep passes. */
|
|
24
|
-
export declare function requireFurnishing(tool: string, input: unknown, brief: DesignBrief | null | undefined): void;
|
|
29
|
+
export declare function requireFurnishing(tool: string, input: unknown, brief: DesignBrief | null | undefined, context?: BriefGateContext): void;
|
|
25
30
|
/** The operation of a furnishing tool, refusing as `requireFurnishing` says before it runs. */
|
|
26
31
|
export declare function gatedByBrief<Input>(tool: string, operation: AgentOperation<Input>): AgentOperation<Input>;
|
|
27
32
|
/** What a brief opens and leaves closed, as facts. */
|
|
@@ -35,4 +40,5 @@ export declare function briefUnlocks(brief: DesignBrief): {
|
|
|
35
40
|
* the scene changes.
|
|
36
41
|
*/
|
|
37
42
|
export declare const designBrief: AgentOperation<DesignBriefInput>;
|
|
43
|
+
export {};
|
|
38
44
|
//# sourceMappingURL=design-brief.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-brief.d.ts","sourceRoot":"","sources":["../../src/agent-operations/design-brief.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"design-brief.d.ts","sourceRoot":"","sources":["../../src/agent-operations/design-brief.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAItB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAU,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3D;;;;;GAKG;AAEH,eAAO,MAAM,QAAQ,wOACkN,CAAA;AAmBvO,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,wBAAwB,CAAA;AA0JvD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAEvE;AA+FD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG,OAAO,CAGjG;AA+BD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC,GAC3D,OAAO,CAGT;AAQD,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAOnE;AAED,4FAA4F;AAC5F,KAAK,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC,CAAA;AAEjE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,OAAO,GAAE,gBAAqB,GAC7B,YAAY,GAAG,IAAI,CAmBrB;AAyBD,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACrC,OAAO,GAAE,gBAAqB,GAC7B,IAAI,CAIN;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,KAAK,EAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,GAC/B,cAAc,CAAC,KAAK,CAAC,CAKvB;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBxF;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,gBAAgB,CAqCxD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AXIS_DESIGN_MIN_WORDS, BEYOND_LAYERS, BEYOND_MIN_LAYERS, BRIEF_AXES, CATALOG_PLACEMENT_TOOLS, FURNISHING_CREATION_TOOLS, layerPieces, } from '../agent-tools/design-brief.js';
|
|
1
|
+
import { AXIS_DESIGN_MIN_WORDS, BEYOND_LAYERS, BEYOND_MIN_LAYERS, BRIEF_AXES, CATALOG_PLACEMENT_TOOLS, FURNISHING_CREATION_TOOLS, layerPieces, MASSING_FIELDS, } from '../agent-tools/design-brief.js';
|
|
2
2
|
import { AgentRefusal, refuse } from '../agent-tools/refusal.js';
|
|
3
3
|
/**
|
|
4
4
|
* Furnishing follows the turn's design brief. A host that gates keeps the brief in force
|
|
@@ -7,31 +7,27 @@ import { AgentRefusal, refuse } from '../agent-tools/refusal.js';
|
|
|
7
7
|
* context's brief out and nothing is refused (Pro, a person's own tools).
|
|
8
8
|
*/
|
|
9
9
|
export const NO_BRIEF = "Furnishing follows the turn's design brief: design_brief records what the request fixes, what it leaves open and where objects come from; until then the catalog can be searched and viewed, not placed, and no furnishing is made.";
|
|
10
|
-
const openSource = (piece) => `The brief left the source open: ${piece} can be made with add_object or place_design (view_assets shows the catalog's for reference), or, for technical equipment, named in the brief's asIs after view_assets, with a reason.`;
|
|
11
10
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* list carries function tags too. An item whose tags are not all technical is furniture here.
|
|
11
|
+
* Which tools make a piece and with what, as facts a refusal states: the field names are the
|
|
12
|
+
* contracts' (a test reads them back). Kitchen cabinets are a run of modules, not one object.
|
|
15
13
|
*/
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
]
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
14
|
+
const MAKING_TOOLS = 'add_object makes a piece (code, or piece for the object in words; parentId and position say where it goes); place_design places a designed piece (design, hostId, position).';
|
|
15
|
+
const openSource = (pieces) => `The brief left the source open: ${pieces} cannot be placed from the catalog, pieces are made. Technical equipment (sanitaryware, appliances) and plants are placed from the catalog under an open source; every other catalog piece is made. ${MAKING_TOOLS} view_assets shows the catalog's pieces for reference.`;
|
|
16
|
+
/** What a call answers when every piece it names was refused already: short, the same each time. */
|
|
17
|
+
const alreadyRefused = (pieces) => `Already refused, the brief's source is open: ${pieces}. Technical equipment and plants are placed from the catalog; add_object and place_design make the other pieces.`;
|
|
18
|
+
/** What `furnish_room` places: no piece is named, a stock set is. */
|
|
19
|
+
const FURNISH_ROOM_PIECES = "the pieces of furnish_room's stock set";
|
|
20
|
+
/** The session reading that holds the pieces refused under an open source (`SessionKeep.readings`). */
|
|
21
|
+
export const REFUSED_PIECES_KEY = 'brief.refusedPieces';
|
|
22
|
+
/** The reading keeps the most recent pieces up to here. */
|
|
23
|
+
const MAX_REFUSED_PIECES = 100;
|
|
24
|
+
/** The pieces the session's catalog placements were refused for under an open source. */
|
|
25
|
+
function refusedPieces(session) {
|
|
26
|
+
const held = session?.readings?.[REFUSED_PIECES_KEY];
|
|
27
|
+
return Array.isArray(held)
|
|
28
|
+
? held.filter((piece) => typeof piece === 'string')
|
|
29
|
+
: [];
|
|
32
30
|
}
|
|
33
|
-
const furnitureFact = (name) => `${name} is furniture: in an open brief furniture is made (add_object, place_design) or the request names a catalog source; asIs keeps technical equipment (sanitaryware, appliances).`;
|
|
34
|
-
const notViewed = (ids) => `${ids.join(', ')} ${ids.length === 1 ? 'was' : 'were'} not viewed: asIs keeps a catalog piece only after view_assets showed it earlier in the same turn (chat) or session (MCP).`;
|
|
35
31
|
const SOURCE_NOT_IN_REQUEST = "A source is set by the request: the brief's sourceQuote must be the person's own words naming it, a brand, the catalog or what is already there; this request names none, so its source is open.";
|
|
36
32
|
/** Case, accents and spaces folded away: how a quote is compared with the request and the lists. */
|
|
37
33
|
const fold = (text) => text
|
|
@@ -87,8 +83,10 @@ function quoteNamesSource(source, brand, quote) {
|
|
|
87
83
|
return Boolean(brand) && folded.includes(fold(brand));
|
|
88
84
|
return (source === 'catalog' ? CATALOG_WORD : EXISTING_WORD).test(folded);
|
|
89
85
|
}
|
|
86
|
+
/** The building's form and facade are the brief's own record: nothing reads them back yet, so a brief may leave them out. */
|
|
87
|
+
const OPTIONAL_AXES = ['form', 'facade'];
|
|
90
88
|
/**
|
|
91
|
-
* Every axis is stated, bounded or open. A bounded axis quotes the person's own words: where
|
|
89
|
+
* Every axis but form and facade is stated, bounded or open. A bounded axis quotes the person's own words: where
|
|
92
90
|
* the host lends the message (the chat, `requestText`) the quote is in it, folded as the
|
|
93
91
|
* source quote is; over MCP there is no message, so the quote is required by the contract and
|
|
94
92
|
* not compared with anything. An open axis carries a design statement of at least
|
|
@@ -96,11 +94,13 @@ function quoteNamesSource(source, brand, quote) {
|
|
|
96
94
|
*/
|
|
97
95
|
function requireAxes(input, context) {
|
|
98
96
|
const axes = input.axes ?? {};
|
|
99
|
-
const missing = BRIEF_AXES.filter((axis) => !axes[axis]);
|
|
97
|
+
const missing = BRIEF_AXES.filter((axis) => !(axes[axis] || OPTIONAL_AXES.includes(axis)));
|
|
100
98
|
if (missing.length)
|
|
101
99
|
refuse('axis_missing', `The brief reads the request axis by axis: ${missing.join(', ')} ${missing.length === 1 ? 'is' : 'are'} absent. Each axis is bounded by the person's words or open with a design statement; an axis the request does not touch is open.`, { axes: missing });
|
|
102
100
|
for (const axis of BRIEF_AXES) {
|
|
103
101
|
const reading = axes[axis];
|
|
102
|
+
if (!reading)
|
|
103
|
+
continue;
|
|
104
104
|
if (reading.kind === 'bounded') {
|
|
105
105
|
const quote = fold(reading.quote);
|
|
106
106
|
if (!quote ||
|
|
@@ -110,8 +110,38 @@ function requireAxes(input, context) {
|
|
|
110
110
|
else if (fold(reading.design).split(' ').filter(Boolean).length < AXIS_DESIGN_MIN_WORDS)
|
|
111
111
|
refuse('axis_open_without_design', `The ${axis} is open: say how it is designed.`, { axis });
|
|
112
112
|
}
|
|
113
|
+
if (axes.form)
|
|
114
|
+
requireMassing(axes.form);
|
|
115
|
+
if (axes.facade)
|
|
116
|
+
requireTreatment(axes.facade);
|
|
113
117
|
return axes;
|
|
114
118
|
}
|
|
119
|
+
/** An open facade states what it is clad in or carries, and the rhythm of its openings. */
|
|
120
|
+
function requireTreatment(facade) {
|
|
121
|
+
if (facade.kind !== 'open')
|
|
122
|
+
return;
|
|
123
|
+
const treatment = facade.treatment ?? {};
|
|
124
|
+
const absent = [
|
|
125
|
+
...(treatment.cladding?.length || treatment.elements?.length ? [] : ['cladding or elements']),
|
|
126
|
+
...(treatment.rhythm ? [] : ['rhythm']),
|
|
127
|
+
];
|
|
128
|
+
if (absent.length)
|
|
129
|
+
refuse('facade_treatment_missing', `The facade is open: its treatment states what it is clad in or carries (cladding, bands, elements) and whether its openings follow a regular rhythm or a free one. Absent: ${absent.join(', ')}.`, { fields: absent });
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* An open form states its massing in full, and a form of one volume is neither detached nor at
|
|
133
|
+
* several heights.
|
|
134
|
+
*/
|
|
135
|
+
function requireMassing(form) {
|
|
136
|
+
const massing = form.massing ?? {};
|
|
137
|
+
if (form.kind === 'open') {
|
|
138
|
+
const absent = MASSING_FIELDS.filter((field) => massing[field] === undefined);
|
|
139
|
+
if (absent.length)
|
|
140
|
+
refuse('form_massing_missing', `The form is open: its massing states the plan, the number of volumes and whether they stand at one height or several; ${absent.join(', ')} ${absent.length === 1 ? 'is' : 'are'} absent.`, { fields: absent });
|
|
141
|
+
}
|
|
142
|
+
if (massing.volumes === 1 && (massing.plan === 'detached' || massing.heights === 'several'))
|
|
143
|
+
refuse('form_massing_inconsistent', `A form of one volume cannot be ${massing.plan === 'detached' ? 'detached' : 'at several heights'}: state the number of volumes that stand apart or at different heights.`, { volumes: 1 });
|
|
144
|
+
}
|
|
115
145
|
/** The pieces `beyond` names, flattened: the brief's own list of the dressing. */
|
|
116
146
|
export function dressingOf(beyond) {
|
|
117
147
|
return BEYOND_LAYERS.flatMap(([key]) => layerPieces(beyond[key]));
|
|
@@ -138,96 +168,152 @@ function requireDressing(input, axes) {
|
|
|
138
168
|
return;
|
|
139
169
|
refuse('beyond_too_thin', `The request leaves the dressing open: beyond names pieces for at least ${BEYOND_MIN_LAYERS} of its ${BEYOND_LAYERS.length} layers (${BEYOND_LAYERS.map(([, label]) => label).join(', ')}); ${empty.map(([, label]) => label).join(', ')} say none.`, { layers: empty.map(([key]) => key) });
|
|
140
170
|
}
|
|
141
|
-
/** Whether `design_brief` reads the item library: an open brief naming pieces as they are. */
|
|
142
|
-
export function briefReadsCatalog(tool, input) {
|
|
143
|
-
const { source, asIs } = asRecord(input);
|
|
144
|
-
return tool === 'design_brief' && source === 'open' && Array.isArray(asIs) && asIs.length > 0;
|
|
145
|
-
}
|
|
146
171
|
/**
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
* change nothing.
|
|
172
|
+
* The rooms of a building the brief designs: an open form owes one entry per room, each with its
|
|
173
|
+
* own distinct line, and rooms of one use are not copies of one another.
|
|
150
174
|
*/
|
|
151
|
-
function
|
|
152
|
-
const
|
|
153
|
-
if (
|
|
154
|
-
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
function requireRooms(input, axes) {
|
|
176
|
+
const rooms = input.rooms ?? [];
|
|
177
|
+
if (!rooms.length && axes.form?.kind === 'open')
|
|
178
|
+
refuse('rooms_missing', 'The form is open, so the request builds a building: rooms lists each room it builds, with its use, what sets it apart, its finishes and its main pieces.');
|
|
179
|
+
for (const room of rooms)
|
|
180
|
+
if (!fold(room.distinct ?? ''))
|
|
181
|
+
refuse('room_distinct_missing', `The room "${room.name}" says nothing of what sets it apart: distinct is one line on who it is for and its character, against the other rooms of its use.`, { room: room.name });
|
|
182
|
+
rooms.forEach((room, index) => {
|
|
183
|
+
for (const other of rooms.slice(index + 1))
|
|
184
|
+
if (room.use === other.use &&
|
|
185
|
+
fold(room.distinct ?? '') === fold(other.distinct ?? '') &&
|
|
186
|
+
pieceKey(room.pieces) === pieceKey(other.pieces))
|
|
187
|
+
refuse('rooms_identical', `The rooms "${room.name}" and "${other.name}" are of one use and state the same distinct line and the same pieces: rooms of one use are distinct rooms, each with its own.`, { rooms: [room.name, other.name], use: room.use });
|
|
158
188
|
});
|
|
159
|
-
if (furniture.length)
|
|
160
|
-
refuse('brief_as_is_furniture', furniture.map(({ name }) => furnitureFact(name)).join(' '), {
|
|
161
|
-
pieces: furniture.map(({ id }) => id),
|
|
162
|
-
});
|
|
163
|
-
const viewed = new Set(context.session?.viewed ?? []);
|
|
164
|
-
const unseen = named.filter((id) => !viewed.has(id));
|
|
165
|
-
if (unseen.length)
|
|
166
|
-
refuse('brief_as_is_not_viewed', notViewed(unseen), { pieces: unseen });
|
|
167
189
|
}
|
|
190
|
+
/** A room's pieces as a comparison reads them: folded, in no order. */
|
|
191
|
+
const pieceKey = (pieces) => pieces.map(fold).sort().join('|');
|
|
168
192
|
const isCatalogPlacement = (tool) => CATALOG_PLACEMENT_TOOLS.includes(tool);
|
|
169
193
|
const isCreation = (tool) => FURNISHING_CREATION_TOOLS.includes(tool);
|
|
170
194
|
const asRecord = (value) => typeof value === 'object' && value !== null ? value : {};
|
|
195
|
+
/**
|
|
196
|
+
* The function tags of the catalog's technical equipment: sanitaryware, kitchen, laundry and climate
|
|
197
|
+
* appliances, fixed services. A hosted item's `category` is its primary function tag; the built-in
|
|
198
|
+
* list carries function tags too. An item whose tags are not all technical is furniture here.
|
|
199
|
+
*/
|
|
200
|
+
const TECHNICAL_FUNCTIONS = new Set([
|
|
201
|
+
'plumbing',
|
|
202
|
+
'sinks',
|
|
203
|
+
'toilets',
|
|
204
|
+
'showers',
|
|
205
|
+
'bathtubs',
|
|
206
|
+
'appliances',
|
|
207
|
+
'appliance',
|
|
208
|
+
'kitchen-appliances',
|
|
209
|
+
'laundry-appliances',
|
|
210
|
+
'climate-appliances',
|
|
211
|
+
'utilities',
|
|
212
|
+
]);
|
|
213
|
+
export function isTechnicalEquipment(item) {
|
|
214
|
+
const tags = item.functionTags?.length ? item.functionTags : [item.category];
|
|
215
|
+
return tags.every((tag) => TECHNICAL_FUNCTIONS.has(tag));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The catalog's vegetation, as its function leaves (`plants`, `indoor-plants`, `trees`) and item
|
|
219
|
+
* tags (`tree`, `plant`, `garden`) write it. A tag counts by its hyphen-separated words, so
|
|
220
|
+
* `indoor-plants` is plants and `planter` is not.
|
|
221
|
+
*/
|
|
222
|
+
const VEGETATION_WORDS = new Set([
|
|
223
|
+
'plant',
|
|
224
|
+
'plants',
|
|
225
|
+
'tree',
|
|
226
|
+
'trees',
|
|
227
|
+
'palm',
|
|
228
|
+
'palms',
|
|
229
|
+
'bush',
|
|
230
|
+
'bushes',
|
|
231
|
+
'shrub',
|
|
232
|
+
'shrubs',
|
|
233
|
+
'hedge',
|
|
234
|
+
'hedges',
|
|
235
|
+
'grass',
|
|
236
|
+
'flower',
|
|
237
|
+
'flowers',
|
|
238
|
+
'fern',
|
|
239
|
+
'ferns',
|
|
240
|
+
'cactus',
|
|
241
|
+
'cacti',
|
|
242
|
+
'vegetation',
|
|
243
|
+
'foliage',
|
|
244
|
+
]);
|
|
245
|
+
export function isVegetation(item) {
|
|
246
|
+
const tags = [item.category, ...(item.functionTags ?? []), ...(item.tags ?? [])];
|
|
247
|
+
return tags.some((tag) => tag.split('-').some((word) => VEGETATION_WORDS.has(word)));
|
|
248
|
+
}
|
|
249
|
+
/** Whether the catalog files a piece as one an open source places: technical equipment or a plant. */
|
|
250
|
+
function placeableFromCatalog(id, catalog) {
|
|
251
|
+
const item = catalog?.find((candidate) => candidate.id === id);
|
|
252
|
+
return item ? isTechnicalEquipment(item) || isVegetation(item) : false;
|
|
253
|
+
}
|
|
171
254
|
/** The catalog ids a placement call names. */
|
|
172
|
-
function placedAssets(tool, input) {
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
: [
|
|
255
|
+
export function placedAssets(tool, input) {
|
|
256
|
+
const args = asRecord(input);
|
|
257
|
+
const named = tool === 'place_items' || tool === 'place_by_relation'
|
|
258
|
+
? (Array.isArray(args.items) ? args.items : []).map((item) => asRecord(item).assetId)
|
|
259
|
+
: [args.assetId];
|
|
176
260
|
return [...new Set(named.filter((id) => typeof id === 'string'))];
|
|
177
261
|
}
|
|
178
262
|
/**
|
|
179
263
|
* Why a furnishing call may not run under this brief, or null. `brief` null is no brief yet. An
|
|
180
264
|
* `add_object` that names a `nodeId` edits an object that stands: it places and makes nothing.
|
|
181
|
-
* A batch
|
|
265
|
+
* A batch checks each call in its operation, under the same policy as runtime refusals.
|
|
182
266
|
*/
|
|
183
|
-
export function furnishingRefusal(tool, input, brief) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const refusal = furnishingRefusal(name, callInput, brief);
|
|
191
|
-
if (refusal)
|
|
192
|
-
return new AgentRefusal(refusal.code, `The batch's call ${index + 1} (${name}) is refused: ${refusal.message} Nothing in the batch was applied.`, { ...refusal.details, index, tool: name });
|
|
193
|
-
}
|
|
194
|
-
return null;
|
|
267
|
+
export function furnishingRefusal(tool, input, brief, context = {}) {
|
|
268
|
+
const args = asRecord(input);
|
|
269
|
+
if (tool === 'place_by_relation') {
|
|
270
|
+
const pieces = placedAssets(tool, args);
|
|
271
|
+
if (!pieces.length)
|
|
272
|
+
return null;
|
|
273
|
+
return furnishingRefusal('place_items', { items: pieces.map((assetId) => ({ assetId })) }, brief, context);
|
|
195
274
|
}
|
|
196
275
|
if (!(isCatalogPlacement(tool) || isCreation(tool)))
|
|
197
276
|
return null;
|
|
198
|
-
const args = asRecord(input);
|
|
199
277
|
if (tool === 'add_object' && typeof args.nodeId === 'string')
|
|
200
278
|
return null;
|
|
201
279
|
if (!brief)
|
|
202
280
|
return new AgentRefusal('design_brief_required', NO_BRIEF, { tool });
|
|
203
281
|
if (brief.source !== 'open' || isCreation(tool))
|
|
204
282
|
return null;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
283
|
+
const pieces = tool === 'furnish_room' ? [FURNISH_ROOM_PIECES] : placedAssets(tool, args);
|
|
284
|
+
const refused = pieces.filter((piece) => !placeableFromCatalog(piece, context.catalog));
|
|
285
|
+
return refused.length ? openSourceRefusal(tool, refused, context.session) : null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* The refusal of a catalog placement under an open source. A piece refused before in the session
|
|
289
|
+
* is named briefly; the pieces not refused yet get the facts, and the refusal asks the host to
|
|
290
|
+
* remember them (`REFUSED_PIECES_KEY`), so a retry, by any placing tool, is short.
|
|
291
|
+
*/
|
|
292
|
+
function openSourceRefusal(tool, pieces, session) {
|
|
293
|
+
const held = refusedPieces(session);
|
|
294
|
+
const fresh = pieces.filter((piece) => !held.includes(piece));
|
|
295
|
+
const repeated = pieces.filter((piece) => held.includes(piece));
|
|
296
|
+
const message = fresh.length
|
|
297
|
+
? openSource(fresh.join(', ')) +
|
|
298
|
+
(repeated.length ? ` Already refused: ${repeated.join(', ')}.` : '')
|
|
299
|
+
: alreadyRefused(repeated.join(', '));
|
|
300
|
+
const keep = fresh.length
|
|
301
|
+
? { readings: { [REFUSED_PIECES_KEY]: [...held, ...fresh].slice(-MAX_REFUSED_PIECES) } }
|
|
302
|
+
: undefined;
|
|
303
|
+
return new AgentRefusal('brief_source_open', message, { tool, source: 'open', pieces }, keep);
|
|
218
304
|
}
|
|
219
305
|
/** Throws the refusal when the host gates and the call may not run; a host with no brief to keep passes. */
|
|
220
|
-
export function requireFurnishing(tool, input, brief) {
|
|
306
|
+
export function requireFurnishing(tool, input, brief, context = {}) {
|
|
221
307
|
if (brief === undefined)
|
|
222
308
|
return;
|
|
223
|
-
const refusal = furnishingRefusal(tool, input, brief);
|
|
309
|
+
const refusal = furnishingRefusal(tool, input, brief, context);
|
|
224
310
|
if (refusal)
|
|
225
311
|
throw refusal;
|
|
226
312
|
}
|
|
227
313
|
/** The operation of a furnishing tool, refusing as `requireFurnishing` says before it runs. */
|
|
228
314
|
export function gatedByBrief(tool, operation) {
|
|
229
315
|
return (nodes, input, context) => {
|
|
230
|
-
requireFurnishing(tool, input, context.designBrief);
|
|
316
|
+
requireFurnishing(tool, input, context.designBrief, context);
|
|
231
317
|
return operation(nodes, input, context);
|
|
232
318
|
};
|
|
233
319
|
}
|
|
@@ -241,20 +327,14 @@ export function briefUnlocks(brief) {
|
|
|
241
327
|
],
|
|
242
328
|
closed: [],
|
|
243
329
|
};
|
|
244
|
-
const asIs = brief.asIs ?? [];
|
|
245
330
|
return {
|
|
246
331
|
unlocks: [
|
|
247
332
|
`${FURNISHING_CREATION_TOOLS.join(', ')} make the pieces.`,
|
|
248
|
-
|
|
249
|
-
? [
|
|
250
|
-
`place_items and place_in_room place the technical equipment named in asIs: ${asIs.map((piece) => piece.assetId).join(', ')}.`,
|
|
251
|
-
]
|
|
252
|
-
: []),
|
|
333
|
+
'place_items and place_in_room place technical equipment and plants from the catalog.',
|
|
253
334
|
],
|
|
254
335
|
closed: [
|
|
255
336
|
'furnish_room places a whole stock set.',
|
|
256
|
-
'
|
|
257
|
-
'asIs keeps technical equipment (sanitaryware, appliances); furniture is made.',
|
|
337
|
+
'Every other catalog piece is made; view_assets shows the catalog for reference.',
|
|
258
338
|
],
|
|
259
339
|
};
|
|
260
340
|
}
|
|
@@ -278,6 +358,7 @@ export const designBrief = (_nodes, input, context) => {
|
|
|
278
358
|
refuse('source_not_in_request', SOURCE_NOT_IN_REQUEST);
|
|
279
359
|
}
|
|
280
360
|
requireDressing(input, axes);
|
|
361
|
+
requireRooms(input, axes);
|
|
281
362
|
const brief = {
|
|
282
363
|
axes,
|
|
283
364
|
source: input.source,
|
|
@@ -285,9 +366,8 @@ export const designBrief = (_nodes, input, context) => {
|
|
|
285
366
|
...(input.source === 'brand' && brand ? { brand } : {}),
|
|
286
367
|
vision: input.vision,
|
|
287
368
|
beyond: input.beyond,
|
|
288
|
-
...(input.
|
|
369
|
+
...(input.rooms?.length ? { rooms: input.rooms } : {}),
|
|
289
370
|
};
|
|
290
|
-
requireAsIs(brief, context);
|
|
291
371
|
return {
|
|
292
372
|
result: {
|
|
293
373
|
status: 'recorded',
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Door access keep-outs for MCP layout tools.
|
|
3
|
-
*
|
|
4
|
-
* Furniture that overlaps a door clear zone is reported as blocking the door.
|
|
5
|
-
* Used by furnish_room (skip placements) and verify_scene (layout issues).
|
|
6
|
-
*
|
|
7
|
-
* See docs/layout-clearance-error-log.md for pitfalls (levels, gap sign, scale).
|
|
8
|
-
*/
|
|
9
1
|
import { type AnyNode } from '../schema/index.js';
|
|
2
|
+
import type { ItemSolid } from './item-solids.js';
|
|
3
|
+
import { type ClearMove } from './plan-clearance.js';
|
|
10
4
|
import { type Vec2 } from './plan-geometry.js';
|
|
11
5
|
export type PlanAabb = {
|
|
12
6
|
minX: number;
|
|
@@ -35,6 +29,23 @@ export type DoorKeepout = {
|
|
|
35
29
|
localX: number;
|
|
36
30
|
/** The door's height: an item whose bottom is above it does not block the door. */
|
|
37
31
|
height: number;
|
|
32
|
+
doorType?: string;
|
|
33
|
+
/** Where the door stands on its wall's centre line, and the wall's normal there: 'inward' is the +normal side. */
|
|
34
|
+
centre: Vec2;
|
|
35
|
+
normal: Vec2;
|
|
36
|
+
/** The zone along the wall: the door's width and a pad either side. */
|
|
37
|
+
alongM: number;
|
|
38
|
+
/** The zone's depth from the wall's centre line, on each side. */
|
|
39
|
+
depthM: {
|
|
40
|
+
inward: number;
|
|
41
|
+
outward: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* A vehicle door only: the opening itself, the thickness of its wall. A garage door rolls up and
|
|
45
|
+
* leaves no leaf on the floor, and a car parked inside is meant to drive out through it, so a car
|
|
46
|
+
* blocks it only by standing in the opening.
|
|
47
|
+
*/
|
|
48
|
+
vehicleAperture?: DoorKeepout;
|
|
38
49
|
};
|
|
39
50
|
/**
|
|
40
51
|
* Wall shape these helpers accept. Deliberately structural rather than
|
|
@@ -46,6 +57,7 @@ export type WallSegmentLike = {
|
|
|
46
57
|
id: string;
|
|
47
58
|
start: Vec2;
|
|
48
59
|
end: Vec2;
|
|
60
|
+
thickness?: number;
|
|
49
61
|
};
|
|
50
62
|
/**
|
|
51
63
|
* Door shape these helpers accept — a real `DoorNode` or a planned opening.
|
|
@@ -59,6 +71,11 @@ export type DoorOpeningLike = {
|
|
|
59
71
|
height?: number;
|
|
60
72
|
/** Which face the leaf swings towards: 'inward' is the wall's +normal side, as the door plan draws it. */
|
|
61
73
|
swingDirection?: 'inward' | 'outward';
|
|
74
|
+
doorType?: string;
|
|
75
|
+
sidelightLeft?: number;
|
|
76
|
+
sidelightRight?: number;
|
|
77
|
+
transomHeight?: number;
|
|
78
|
+
rotation?: readonly number[];
|
|
62
79
|
};
|
|
63
80
|
/** Plan depth (m) cleared on each side of the wall face through the opening. */
|
|
64
81
|
export declare const DEFAULT_DOOR_CLEAR_DEPTH = 0.65;
|
|
@@ -110,7 +127,30 @@ export declare function collectDoorKeepouts(nodes: Iterable<AnyNode>, options?:
|
|
|
110
127
|
sidePad?: number;
|
|
111
128
|
levelId?: string;
|
|
112
129
|
}): DoorKeepout[];
|
|
130
|
+
/** How near a door's keep-out an item may stand before it is read as in it (m): a leaf's play, not a measure of the house. */
|
|
131
|
+
export declare const DOOR_KEEPOUT_MARGIN = 0.02;
|
|
113
132
|
export declare function itemBlocksDoorKeepout(itemAabb: PlanAabb, keepout: DoorKeepout): boolean;
|
|
133
|
+
/** The side of its wall an item stands on: 'inward' is the wall's +normal side, as the door plan draws it. */
|
|
134
|
+
export type DoorSide = 'inward' | 'outward';
|
|
135
|
+
export type DoorClearZone = {
|
|
136
|
+
/** The box the check reads: the zone's bounding box in plan. */
|
|
137
|
+
box: PlanAabb;
|
|
138
|
+
alongWallM: number;
|
|
139
|
+
/** Depth from the wall's centre line, on each side. */
|
|
140
|
+
depthM: {
|
|
141
|
+
inward: number;
|
|
142
|
+
outward: number;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
/** How far an item stands in a door's zone: a box by its depth and the ways out of it, a real shape by its area. */
|
|
146
|
+
export type DoorBlockReading = {
|
|
147
|
+
/** Along the shallower axis; 0 where the box is only within the margin of the zone. */
|
|
148
|
+
overlapM: number;
|
|
149
|
+
/** The moves of the item that leave it clear of the zone, nearest first. */
|
|
150
|
+
clearBy: ClearMove[];
|
|
151
|
+
} | {
|
|
152
|
+
overlapAreaM2: number;
|
|
153
|
+
};
|
|
114
154
|
export type BlockedDoorIssue = {
|
|
115
155
|
doorId: string;
|
|
116
156
|
wallId: string;
|
|
@@ -118,13 +158,33 @@ export type BlockedDoorIssue = {
|
|
|
118
158
|
levelId?: string | null;
|
|
119
159
|
itemName?: string;
|
|
120
160
|
message: string;
|
|
161
|
+
footprint: PlanAabb;
|
|
162
|
+
side: DoorSide;
|
|
163
|
+
clearZone: DoorClearZone;
|
|
164
|
+
reading: DoorBlockReading;
|
|
121
165
|
};
|
|
166
|
+
/** How much of a keep-out an item's real shape must stand in to block it (m²): a touching edge is not. */
|
|
167
|
+
export declare const DOOR_KEEPOUT_MIN_AREA = 0.0001;
|
|
122
168
|
export declare function findBlockedDoors(args: {
|
|
123
169
|
nodes: Iterable<AnyNode>;
|
|
124
170
|
clearDepth?: number;
|
|
125
171
|
sidePad?: number;
|
|
126
172
|
/** When set, only doors and items on this level are considered. */
|
|
127
173
|
levelId?: string;
|
|
174
|
+
/**
|
|
175
|
+
* An item's real shape, where the host chooses to read it (wall panelling): an item that has one
|
|
176
|
+
* blocks a door by what it is made of, not by the box round it. Items without it are read by their box.
|
|
177
|
+
*/
|
|
178
|
+
solidsOf?: (node: Extract<AnyNode, {
|
|
179
|
+
type: 'item';
|
|
180
|
+
}>) => readonly ItemSolid[] | null;
|
|
181
|
+
/** An item's bottom and top in its level, where the host can read them better than the pose alone does. */
|
|
182
|
+
heightsOf?: (node: Extract<AnyNode, {
|
|
183
|
+
type: 'item';
|
|
184
|
+
}>) => {
|
|
185
|
+
min: number;
|
|
186
|
+
max: number;
|
|
187
|
+
} | null;
|
|
128
188
|
}): BlockedDoorIssue[];
|
|
129
189
|
/**
|
|
130
190
|
* Synthetic keep-outs for a room polygon edge that will host a door (before doors exist).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"door-clearance.d.ts","sourceRoot":"","sources":["../../src/agent-operations/door-clearance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"door-clearance.d.ts","sourceRoot":"","sources":["../../src/agent-operations/door-clearance.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,WAAW,CAAA;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,iBAAiB,CAAA;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,0BAA0B,GAClC,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,GACvB,8BAA8B,GAC9B,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,wBAAwB,CAAA;AAE5B,MAAM,MAAM,uBAAuB,GAC/B;IACE,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,QAAQ,CAAA;IACd,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE,CAAA;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,wFAAwF;IACxF,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kHAAkH;IAClH,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,IAAI,CAAA;IACZ,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAExF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0GAA0G;IAC1G,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAC5C,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAGtC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAI,GAAG,OAAO,CAGvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAe5F;AAmBD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAC7C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,EAC3D,YAAY,SAAI,GACf,QAAQ,CAcV;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAkB/D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,EAAE,CAwBpF;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACxC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,uBAAuB,CA+EzB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3E,WAAW,GAAG,IAAI,CA6EpB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,WAAW,EAAE,CAqBf;AAED,8HAA8H;AAC9H,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvF;AAED,8GAA8G;AAC9G,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE3C,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,GAAG,EAAE,QAAQ,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C,CAAA;AAED,oHAAoH;AACpH,MAAM,MAAM,gBAAgB,GACxB;IACE,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,EAAE,SAAS,EAAE,CAAA;CACrB,GACD;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,QAAQ,CAAA;IACnB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,qBAAqB,SAAO,CAAA;AAiGzC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,SAAS,SAAS,EAAE,GAAG,IAAI,CAAA;IACpF,2GAA2G;IAC3G,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9F,GAAG,gBAAgB,EAAE,CA2CrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,QAAQ,GAAG,IAAI,CAyBjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAgBnF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAElD"}
|