@pascal-app/core 1.0.6 → 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author-scene.d.ts","sourceRoot":"","sources":["../../src/agent-tools/author-scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"author-scene.d.ts","sourceRoot":"","sources":["../../src/agent-tools/author-scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA6BvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgF7B,CAAA;AAeF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoG1B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;iBA8C1B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;iBA8B1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;iBA4B5B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;iBAiC1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiD3B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAkD3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;iBAkB1B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBA8BjC,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2B3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;iBAI1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,eAAe;;;;;QAKxB,GAAG;QACH,IAAI;;;QAGJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKP,WAAW;QAQX,MAAM;QAON,OAAO;QAOP,KAAK;;;;;;;;QAeL,OAAO;QAMP,UAAU;QAMV,OAAO;;;QAEM,eAAe;;CAC/B,CAAA"}
|
|
@@ -1,40 +1,55 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { DOOR_STYLES, WINDOW_STYLES } from '../building/opening-style-presets.js';
|
|
3
|
-
import { DoorType, WindowType } from '../schema/nodes/opening-types.js';
|
|
4
|
-
import {
|
|
3
|
+
import { DoorHandleStyle, DoorType, WindowType } from '../schema/nodes/opening-types.js';
|
|
4
|
+
import { RoofType } from '../schema/nodes/roof-types.js';
|
|
5
|
+
import { StairRailingMode, StairRailingStyle } from '../schema/nodes/stair-types.js';
|
|
6
|
+
import { measurement, roofPitch } from './measurement.js';
|
|
5
7
|
import { NodeId } from './node-id.js';
|
|
6
|
-
|
|
8
|
+
import { unitKind } from './units.js';
|
|
9
|
+
import { doorDetailFields, windowDetailFields } from './wall-openings.js';
|
|
10
|
+
const DESCRIPTION = `Turn a whole design you wrote as free three.js into an editable Pascal scene: the payload holds the whole design. You read your own module however you like (its source, running it and reading the objects, both) and hand over a conversion payload: levels, walls (straight, curved or glass) with their openings, rooms (each naming its unit in a building of several dwellings or tenancies: a condo, an apartment building, a hotel; a room naming none is common area), slabs, voids, columns, railings, stairs, every piece of furniture as an authored object with its own module, and lights. Pascal does the rest server-side: compiles and stores each item, places it, derives the rooms and their floors, paints, runs its checks, saves, and answers with a gate report you iterate against. Nothing you hand over is silently dropped: what cannot be placed comes back by name with a reason, and what Pascal corrected (a wall end snapped onto the centerline it meets) is listed.
|
|
7
11
|
|
|
8
|
-
Coordinates: metres, plan x/z, Y up, each level's floor at y = 0 in its own frame. A wall is its centerline; walls meet where centerlines meet, so end a partition on the centerline of the wall it runs into. An opening's 'along' is measured from the wall's start to the opening's centre; give each opening its type (how it opens) and style (its look), or its own module for a shape they cannot express. An item's position is where its bottom centre stands
|
|
12
|
+
Coordinates: metres, plan x/z, Y up, each level's floor at y = 0 in its own frame. A wall is its centerline; walls meet where centerlines meet, so end a partition on the centerline of the wall it runs into. An opening's 'along' is measured from the wall's start to the opening's centre; give each opening its type (how it opens) and style (its look), or its own module for a shape they cannot express. An item's position is where its bottom centre stands, except a ceiling item's (mount 'ceiling': a pendant, a ceiling light): it hangs from the ceiling of the room containing its plan position, its top on that ceiling, and its y is not read. A rug, a mat or a runner is an item lying on the room's floor. What stands on a floor stands on its finish: on a room with a floorCode, on the top of its planks or tiles, so its y stays 0. Its module follows the add_object contract (metres, Y up, built in its installed orientation; at most 300k triangles and 32 materials per item; name materials slot_<finish>; drawers, doors and lids as animation clips; a THREE light named light:<id> where a bulb is: a SpotLight for a cone, castShadow for shadows, userData.glow for a halo). A hex colour is written as an exact material, one per distinct colour. Pascal builds a wall's cap, the floor plate and the ceiling itself: fold a module's caps, underlays and floor planks into the wall, the room's floor finish and the room (say so in notes), never into slabs or regions: baseboards are the wall's skirting, a plank or tile floor is the room's floorCode (a terrace's decking or paving its slab's surfaceCode), tiles, panelling or boards on a wall are its faceLeft / faceRight (or the room's wallCode), cladding, brick or battens outside its faceOutside; a slab is a terrace, a platform, a balcony; a stair is its level's stairs, which open the floor above; the roof over the top level is roof, Pascal's own segments when its shape is one of theirs, else your geometry as roof items, both on the building's roof level above the top storey. Pascal draws what bold architecture needs natively: a curved wall is one wall with the point its arc passes through, through (never a run of short straight ones), a glass front a curtain wall, a double-height room a void in the floor of the level above it (its ceiling opens with it, a railing along its edges), an archway a passage with an arch shape. Paint a wall by what its faces look onto, colorInside and colorOutside: which face is inside is Pascal's to find. Build the building as it is built: a wall at its real height, nothing lowered or removed for viewing.
|
|
9
13
|
|
|
10
|
-
|
|
14
|
+
Hand over the payload, or your module and its adapter, the program that reads the module and returns the payload: Pascal runs the adapter (one that throws comes back with its error, and nothing is written). A payload too large for one call can go by reference: payloadFile names a JSON project file that holds it. An item names its piece instead of code when add_object makes it from words; one still being made is written when it lands, with no call from you. Pieces made from words are written many at a time while you go on, so furniture made that way does not lengthen your turn the way pieces you write yourself do.
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
One answer has an output limit, and the limit counts thinking and the call's arguments together; answers that planned and wrote a whole house as one payload have stopped there before the payload was complete. The payload is the whole design: a later call with replace: true removes what its payload leaves out, and a call without replace on a scene that holds a conversion is refused (conversion_exists). A conversion stores one module and one adapter, and only when it succeeds; a later call with replace: true and edits (each find text occurring exactly once) changes parts of them, and the adapter runs on the whole edited module. create_room, add_wall, add_door, add_window and create_stair add to the scene a call at a time.
|
|
17
|
+
|
|
18
|
+
The report says what was written, what Pascal defaulted (defaults: a window with no type is fixed and cannot open), what it warns about but wrote (warnings: thin slabs, too many slabs or regions), what it refused (defects, by your ids), the items waiting for their pieces (pending), and Pascal's checks of what stands (checks, each passed or with what failed: doors and windows a person opens move, glazing is glass, every room's floor covered, every placed piece standing, nothing written as loose debris or buried, wall finishes built, stairs arriving inside a room clear of walls, every level holding rooms or walls: the ground, terraces and foundations belong to the ground level, Pascal draws the site and foundations; where units are named, every room in one or plausibly common).
|
|
19
|
+
|
|
20
|
+
Call again with replace: true to revise the previous conversion: the module and adapter you leave out are the stored ones, edits change parts of them, and with neither a payload nor a module, adapter or edits the stored conversion is written again. Stable element identities and manual changes are retained; overlapping changes are refused. An existing building without a conversion baseline is never cleared.`;
|
|
13
21
|
const plan = (what) => z.array(z.number()).length(2).describe(`[x, z] ${what} in plan metres.`);
|
|
14
22
|
const xyz = (what) => z.array(z.number()).length(3).describe(`[x, y, z] ${what} in metres, y above the level's floor.`);
|
|
15
23
|
const length = (description, opts = {}) => measurement('length', 'm', { description, ...opts });
|
|
16
24
|
export const authorSceneOpening = z.object({
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
sidelightLeft: doorDetailFields.sidelightLeft,
|
|
26
|
+
sidelightRight: doorDetailFields.sidelightRight,
|
|
27
|
+
transomHeight: doorDetailFields.transomHeight,
|
|
28
|
+
slidingStyle: doorDetailFields.slidingStyle,
|
|
29
|
+
slideDirection: doorDetailFields.slideDirection,
|
|
30
|
+
...windowDetailFields,
|
|
31
|
+
kind: z
|
|
32
|
+
.enum(['door', 'window', 'passage'])
|
|
33
|
+
.describe('door, window, or passage: a doorway with no leaf (a cased opening, an archway between rooms), which takes no type, style, leaves, hinge, swing or code.'),
|
|
34
|
+
along: length("From the wall's start to the opening's centre, along the centerline (along the arc on a curved wall)."),
|
|
19
35
|
width: length('Opening width.', { positive: true }),
|
|
20
36
|
height: length('Opening height.', { positive: true }),
|
|
21
|
-
sill: length(
|
|
37
|
+
sill: length("Bottom of the opening above the floor the wall stands on; 0 for a door or floor-to-ceiling glazing (default 0). Negative reaches below that floor, down to the wall's bottom where the wall goes down beside a sunken floor: a garage door filling its doorway to a garage floor below the level's.", { default: 0 }),
|
|
22
38
|
name: z.string().max(80).optional(),
|
|
39
|
+
shape: z
|
|
40
|
+
.enum(['rectangle', 'rounded', 'arch'])
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Its outline: rectangle (default), rounded top corners, or arch (a round top), for a door, a window or a passage.'),
|
|
43
|
+
archHeight: length("An arch's rise above its straight sides, within height (default 0.45 m for a door or passage, 0.35 m for a window).", { positive: true }).optional(),
|
|
23
44
|
type: z
|
|
24
45
|
.enum([...DoorType.options, ...WindowType.options.filter((t) => t !== 'sliding')])
|
|
25
46
|
.optional()
|
|
26
|
-
.describe('How it opens. A door: hinged (default), double (two leaves), french (two glazed leaves), folding, pocket, barn, sliding, garage-sectional, garage-rollup, garage-tiltup. A window: fixed (default; cannot open), sliding, casement, awning, hopper, single-hung, double-hung, bay, bow, louvered. Give it: a window with no type is written fixed.'),
|
|
47
|
+
.describe('How it opens. A door: hinged (default), double (two leaves), french (two glazed leaves), folding, pocket, barn, sliding, garage-sectional, garage-rollup, garage-tiltup. A window: fixed (default; cannot open), sliding, casement, awning, hopper, tilt-turn (inward tilt or turn), single-hung, double-hung, bay, bow, louvered. Give it: a window with no type is written fixed.'),
|
|
27
48
|
style: z
|
|
28
49
|
.enum([...DOOR_STYLES, ...WINDOW_STYLES])
|
|
29
50
|
.optional()
|
|
30
51
|
.describe("Its look, by name. A door's leaf: panel (default), glass, modern, paneled-glass, french, shaker, six-panel, craftsman, half-louvered, barn. A fixed window's panes: single (default), double-hung, triple-hung, casement, sliding, grid, tall-grid, wide-grid, horizontal-bands, transom, picture; an operable window draws its own sashes, so a style on one is dropped and reported."),
|
|
31
|
-
leaves:
|
|
32
|
-
.number()
|
|
33
|
-
.int()
|
|
34
|
-
.min(1)
|
|
35
|
-
.max(4)
|
|
36
|
-
.optional()
|
|
37
|
-
.describe("A door's leaves, 1 to 4 (default: what its type has; 2 for double, french and sliding)."),
|
|
52
|
+
leaves: doorDetailFields.leafCount.describe("A door's leaves: sliding 2–4; folding 2, 4, 6 or 8 (default: what its type has; 2 for double, french and sliding)."),
|
|
38
53
|
code: z
|
|
39
54
|
.string()
|
|
40
55
|
.min(1)
|
|
@@ -49,6 +64,7 @@ export const authorSceneOpening = z.object({
|
|
|
49
64
|
.string()
|
|
50
65
|
.optional()
|
|
51
66
|
.describe('Exact #rrggbb for the frame (default: color, or the opening’s own finish when color is absent).'),
|
|
67
|
+
handleStyle: DoorHandleStyle.optional().describe('Door handle: lever (default), lever-curved, knob, bar, or plate.'),
|
|
52
68
|
hinge: z
|
|
53
69
|
.enum(['start', 'end'])
|
|
54
70
|
.optional()
|
|
@@ -58,7 +74,7 @@ export const authorSceneOpening = z.object({
|
|
|
58
74
|
.optional()
|
|
59
75
|
.describe("The side the door opens towards: the wall's front or back face."),
|
|
60
76
|
});
|
|
61
|
-
const WALL_FACE_MODULE = "a three.js module that builds this face's finish (tiles with joints, panelling, boards) for exactly the face: it receives
|
|
77
|
+
const WALL_FACE_MODULE = "a three.js module that builds this face's finish (tiles with joints, panelling, boards) for exactly the face: it receives, in wall-local metres (x along the wall from its start, y up from the face's base, z out of the face), params.outline ({ x0, y0, x1, y1 }: the face), params.holes (its doors and windows, each { x0, y0, x1, y1 }), params.base (the floor along the face, [[x, y], …]) and params.thickness, and lays the finish out: Pascal cuts the build to the outline and its openings, so tiles and boards may run past the edges and over the doors and windows (the holes are there for a layout that wants them, tiles centred on a window); Pascal rebuilds it when the wall or its openings change";
|
|
62
78
|
const faceToHeight = (whose) => length(`Where ${whose} stops, metres up from the face's base (default: the full face).`, {
|
|
63
79
|
positive: true,
|
|
64
80
|
}).optional();
|
|
@@ -74,20 +90,42 @@ export const authorSceneWall = z.object({
|
|
|
74
90
|
.describe('Your own id, unique across every wall and item on all levels.'),
|
|
75
91
|
start: plan('start'),
|
|
76
92
|
end: plan('end'),
|
|
77
|
-
height: length(
|
|
93
|
+
height: length("Wall height, from its floor to its top: the room's height, as built. Under another level, the climb from the tallest wall within 0.5 m of that level's floor up to it is that floor's structure, which Pascal draws (2.7 m walls under a floor at 2.9 m: a 0.2 m floor); a wall reaching into that floor stops under it.", { positive: true }),
|
|
78
94
|
thickness: length('Wall thickness.', { positive: true }),
|
|
95
|
+
through: plan("the point the wall's arc passes through at its middle, bending it from start through it to end (a bay, an apse, a rounded corner, a drum: put it outside the building for one that bulges out): how far it stands from the straight line sets the bend, at most half the start-to-end distance (a half circle). Default: straight. Rooms derive from the arc and openings sit along it; a curved wall takes no faceLeft / faceRight or wallCode, and nothing hangs on it (host).").optional(),
|
|
96
|
+
curtain: z
|
|
97
|
+
.object({
|
|
98
|
+
spacing: length('The mullions at most this far apart (default 1.5 m).', {
|
|
99
|
+
default: 1.5,
|
|
100
|
+
positive: true,
|
|
101
|
+
}),
|
|
102
|
+
frameColor: z
|
|
103
|
+
.string()
|
|
104
|
+
.optional()
|
|
105
|
+
.describe("The mullions' and frame's colour, #rrggbb or library:<id> (default: Pascal's dark grey)."),
|
|
106
|
+
})
|
|
107
|
+
.optional()
|
|
108
|
+
.describe("A curtain wall: glass from the floor to the wall's top between mullions, straight or curved (a glass front, a winter garden). Doors may sit in it; its faces take no paint, skirting or face finish."),
|
|
79
109
|
color: z
|
|
80
110
|
.string()
|
|
81
111
|
.optional()
|
|
82
112
|
.describe('Paint for both faces: #rrggbb, written as an exact material, or a library ref (library:<id>) from search_materials.'),
|
|
113
|
+
colorInside: z
|
|
114
|
+
.string()
|
|
115
|
+
.optional()
|
|
116
|
+
.describe('Paint for the face or faces that look into a room of this level, same forms as color: both faces of a partition, the room side of an outside wall. Pascal finds them once the rooms are derived and the report says which face it was; over color.'),
|
|
117
|
+
colorOutside: z
|
|
118
|
+
.string()
|
|
119
|
+
.optional()
|
|
120
|
+
.describe("Paint for a face no room of this level looks into (an outside wall's cladding or render), same forms as color; over color. Say an outside wall's two finishes this way, not by left and right. The floor between this level and the one above wears the colour most of this level's walls give here, so the facade reads as one."),
|
|
83
121
|
colorLeft: z
|
|
84
122
|
.string()
|
|
85
123
|
.optional()
|
|
86
|
-
.describe("Paint for the face on the left when looking from start to end, same forms as color; over color. The left is the wall's front."),
|
|
124
|
+
.describe("Paint for the face on the left when looking from start to end, same forms as color; over colorInside, colorOutside and color. The left is the wall's front."),
|
|
87
125
|
colorRight: z
|
|
88
126
|
.string()
|
|
89
127
|
.optional()
|
|
90
|
-
.describe('Paint for the face on the right when looking from start to end, same forms as color; over color.'),
|
|
128
|
+
.describe('Paint for the face on the right when looking from start to end, same forms as color; over colorInside, colorOutside and color.'),
|
|
91
129
|
openings: z.array(authorSceneOpening).optional(),
|
|
92
130
|
skirting: z
|
|
93
131
|
.object({
|
|
@@ -112,6 +150,9 @@ export const authorSceneWall = z.object({
|
|
|
112
150
|
faceRight: authorSceneWallFace
|
|
113
151
|
.optional()
|
|
114
152
|
.describe(`The face on the right looking from start to end (colorRight's face), built by ${WALL_FACE_MODULE}; colorRight stays the paint under it. Over the room's wallCode. The report warns when the build leaves part of the face uncovered.`),
|
|
153
|
+
faceOutside: authorSceneWallFace
|
|
154
|
+
.optional()
|
|
155
|
+
.describe(`The finish of the face no room of this level looks into (an outside wall's cladding, brick, render with bands, battens), built by ${WALL_FACE_MODULE}; colorOutside stays the paint under it. Which face is outside is Pascal's to find, as for colorOutside: both faces of a wall no room stands on. The report warns when the build leaves part of the face uncovered.`),
|
|
115
156
|
});
|
|
116
157
|
export const authorSceneRoom = z.object({
|
|
117
158
|
name: z
|
|
@@ -133,7 +174,7 @@ export const authorSceneRoom = z.object({
|
|
|
133
174
|
.min(1)
|
|
134
175
|
.max(48_000)
|
|
135
176
|
.optional()
|
|
136
|
-
.describe("A three.js module that builds the floor finish for the room's polygon: it receives params.polygon,
|
|
177
|
+
.describe("A three.js module that builds the floor finish for the room's polygon: it receives params.polygon ([[x, z], …]) and params.holes ([[[x, z], …], …]), plan x/z in level coordinates, metres, and lays out the planks, tiles or boards. y = 0 is the floor's surface: lay the finish from there up, and Pascal stands the build on the room's floor plate and what stands on the floor (a rug, a sofa) on the build's top. Pascal cuts the build to the polygon and its holes, so a row may run past the edges (the holes are there for a layout that wants them). Pascal rebuilds it when the room changes; floor stays the fallback finish. The report warns when the build leaves part of the floor uncovered."),
|
|
137
178
|
wallCode: z
|
|
138
179
|
.string()
|
|
139
180
|
.min(1)
|
|
@@ -141,6 +182,12 @@ export const authorSceneRoom = z.object({
|
|
|
141
182
|
.optional()
|
|
142
183
|
.describe(`The finish of every wall face that looks into this room (the faces its floor meets, where the skirting runs), each built by ${WALL_FACE_MODULE}. A wall's own faceLeft / faceRight wins over it. The report warns when the build leaves part of a face uncovered.`),
|
|
143
184
|
wallToHeight: faceToHeight("the room's wallCode"),
|
|
185
|
+
unit: z
|
|
186
|
+
.string()
|
|
187
|
+
.min(1)
|
|
188
|
+
.max(120)
|
|
189
|
+
.optional()
|
|
190
|
+
.describe('The unit this room belongs to, by name (Apartment 2B, Suite 301): a dwelling, hotel room or commercial lot of a building with several; rooms with no unit are common area (corridor, lobby, stairs). Leave it out in a single-family house.'),
|
|
144
191
|
});
|
|
145
192
|
export const authorSceneSlab = z.object({
|
|
146
193
|
name: z.string().max(80).optional(),
|
|
@@ -150,22 +197,46 @@ export const authorSceneSlab = z.object({
|
|
|
150
197
|
default: 0,
|
|
151
198
|
}),
|
|
152
199
|
finish: z.string().optional().describe('library:<id> or #rrggbb (an exact colour).'),
|
|
200
|
+
surfaceCode: z
|
|
201
|
+
.string()
|
|
202
|
+
.min(1)
|
|
203
|
+
.max(48_000)
|
|
204
|
+
.optional()
|
|
205
|
+
.describe("A three.js module that builds the slab's surface finish (a terrace's decking or paving, a platform's boards): it receives params.polygon ([[x, z], …]) and params.holes ([[[x, z], …], …]), the slab's outline in level plan x/z, metres, and lays the boards or slabs out from y = 0, the slab's top. Pascal cuts the build to the polygon and its holes, so a row may run past the edges, and stands what is placed on the slab on the build's top. Pascal rebuilds it when the slab changes; finish stays the fallback and the sides keep theirs. The report warns when the build leaves part of the slab uncovered."),
|
|
153
206
|
railing: z
|
|
154
207
|
.array(z.object({
|
|
155
208
|
start: plan('start'),
|
|
156
209
|
end: plan('end'),
|
|
157
210
|
height: length('Railing height (default 1.1 m).', { default: 1.1, positive: true }),
|
|
211
|
+
color: z.string().optional().describe('#rrggbb or library:<id> (default white).'),
|
|
158
212
|
}))
|
|
159
213
|
.optional()
|
|
160
|
-
.describe('Railing runs on this slab (a balcony).'),
|
|
214
|
+
.describe('Railing runs standing on this slab (a balcony).'),
|
|
161
215
|
});
|
|
162
216
|
export const authorSceneColumn = z.object({
|
|
163
217
|
name: z.string().max(80).optional(),
|
|
164
218
|
position: plan('centre'),
|
|
219
|
+
rotation: measurement('angle', 'deg', {
|
|
220
|
+
default: 0,
|
|
221
|
+
description: 'Turn about the vertical axis (default 0): at 0 its width runs along x.',
|
|
222
|
+
}),
|
|
223
|
+
shape: z
|
|
224
|
+
.enum(['square', 'round'])
|
|
225
|
+
.default('square')
|
|
226
|
+
.describe('square (default), or round: width is its diameter and depth is not read.'),
|
|
165
227
|
width: length('Column width.', { positive: true }),
|
|
166
|
-
depth: length('Column depth.', { positive: true }),
|
|
228
|
+
depth: length('Column depth (default: its width).', { positive: true }).optional(),
|
|
167
229
|
height: length('Column height.', { positive: true }),
|
|
168
|
-
color: z
|
|
230
|
+
color: z
|
|
231
|
+
.string()
|
|
232
|
+
.optional()
|
|
233
|
+
.describe("Its finish, #rrggbb written as an exact material, or library:<id> (default: Pascal's plaster). A column built by code keeps its module's colours."),
|
|
234
|
+
code: z
|
|
235
|
+
.string()
|
|
236
|
+
.min(1)
|
|
237
|
+
.max(48_000)
|
|
238
|
+
.optional()
|
|
239
|
+
.describe("A three.js module for a column shape and width cannot express (a timber post with brackets, a fluted or tapered pier, a steel section): the add_column code contract, mount 'floor', built standing from y = 0 with its bottom centre on position; what it builds sets its width, depth and height, so shape, width, depth and height are not read. Compiled and stored as an item's module is."),
|
|
169
240
|
});
|
|
170
241
|
export const authorSceneItem = z.object({
|
|
171
242
|
id: z.string().min(1).max(64).describe('Your own id, for the report and for hosting.'),
|
|
@@ -179,8 +250,15 @@ export const authorSceneItem = z.object({
|
|
|
179
250
|
.string()
|
|
180
251
|
.min(1)
|
|
181
252
|
.max(48_000)
|
|
182
|
-
.
|
|
183
|
-
|
|
253
|
+
.optional()
|
|
254
|
+
.describe("The piece's own three.js module (see the description); or piece."),
|
|
255
|
+
piece: z
|
|
256
|
+
.string()
|
|
257
|
+
.min(1)
|
|
258
|
+
.max(64)
|
|
259
|
+
.optional()
|
|
260
|
+
.describe('Instead of code: the id of a piece add_object makes from words (its piece.id). Placed with its module once made; one still being made is placed when it lands.'),
|
|
261
|
+
position: xyz("bottom centre (a ceiling item's top centre, y not read)"),
|
|
184
262
|
rotation: measurement('angle', 'deg', {
|
|
185
263
|
default: 0,
|
|
186
264
|
description: 'Turn about the vertical axis (default 0).',
|
|
@@ -190,6 +268,44 @@ export const authorSceneItem = z.object({
|
|
|
190
268
|
.optional()
|
|
191
269
|
.describe('The id of the item this one rests on or hangs from (a lamp on a nightstand), or of the wall it is fixed to (a baseboard, a casing, a mirror, art), so moving the host moves it. On a wall, position is still the world bottom centre: the item faces the room on the nearest face, keeping its outward distance from that face; a point inside the wall moves to the face and is reported. Rotation is ignored.'),
|
|
192
270
|
});
|
|
271
|
+
export const authorSceneStair = z.object({
|
|
272
|
+
name: z.string().max(80).optional(),
|
|
273
|
+
start: plan("the middle of the bottom step's front edge, where the climb starts"),
|
|
274
|
+
rotation: measurement('angle', 'deg', {
|
|
275
|
+
default: 0,
|
|
276
|
+
description: 'Which way the first flight climbs: 0 toward +z, 90 toward +x, 180 toward −z, 270 toward −x (default 0).',
|
|
277
|
+
}),
|
|
278
|
+
width: length('Width across the climb (default 1.0 m).', { default: 1, positive: true }),
|
|
279
|
+
layout: z
|
|
280
|
+
.enum(['straight', 'l', 'u'])
|
|
281
|
+
.default('straight')
|
|
282
|
+
.describe('straight (default); l: a flight, a landing as deep as the stair is wide, a flight turned 90°; u: a flight, a landing across, a flight back beside the first.'),
|
|
283
|
+
turn: z
|
|
284
|
+
.enum(['left', 'right'])
|
|
285
|
+
.optional()
|
|
286
|
+
.describe("Which way an L or U turns, to the climber's left or right (default left)."),
|
|
287
|
+
length: length("The flights' run along the climb, landings aside (default: 0.28 m of going per riser, risers of at most 0.18 m).", { positive: true }).optional(),
|
|
288
|
+
steps: z
|
|
289
|
+
.number()
|
|
290
|
+
.int()
|
|
291
|
+
.min(2)
|
|
292
|
+
.optional()
|
|
293
|
+
.describe('Risers in all (default: from the storey, risers of at most 0.18 m).'),
|
|
294
|
+
lowerSteps: z
|
|
295
|
+
.number()
|
|
296
|
+
.int()
|
|
297
|
+
.min(1)
|
|
298
|
+
.optional()
|
|
299
|
+
.describe("An L or U's risers up to its landing; the rest climb after it (default half)."),
|
|
300
|
+
railing: StairRailingMode.optional().describe('Which sides have a railing, looking up the flight (default both): none, left, right or both.'),
|
|
301
|
+
railingStyle: StairRailingStyle.optional().describe('How the railings are built (default balusters): post-and-rail, cable, boards, glass or metal.'),
|
|
302
|
+
color: z
|
|
303
|
+
.string()
|
|
304
|
+
.optional()
|
|
305
|
+
.describe("The flight's finish, treads and body, #rrggbb written as an exact material, or library:<id> (default: wood treads on a light grey body)."),
|
|
306
|
+
treads: z.string().optional().describe("The treads' finish, over color; same forms."),
|
|
307
|
+
railingColor: z.string().optional().describe("The railings' finish; same forms."),
|
|
308
|
+
});
|
|
193
309
|
export const authorSceneLight = z.object({
|
|
194
310
|
position: xyz('the bulb'),
|
|
195
311
|
color: z.string().default('#ffffff').describe('#rrggbb (default white).'),
|
|
@@ -202,21 +318,123 @@ export const authorSceneLight = z.object({
|
|
|
202
318
|
.string()
|
|
203
319
|
.optional()
|
|
204
320
|
.describe('The id of the item holding this light (a pendant, a lamp). Default: without a fixture, a minimal ceiling point is created on the ceiling of the room containing the light’s plan position; outside any room, it attaches to the nearest item on this level and reports the fallback.'),
|
|
321
|
+
direction: z
|
|
322
|
+
.array(z.number())
|
|
323
|
+
.length(3)
|
|
324
|
+
.refine((v) => Math.hypot(...v) > 1e-6, 'A direction cannot be [0, 0, 0].')
|
|
325
|
+
.optional()
|
|
326
|
+
.describe('Makes it a spotlight pointing this way, [x, y, z] (any length): [0, -1, 0] straight down (a recessed downlight), [0, 1, 0] up a wall (a sconce washing upwards).'),
|
|
327
|
+
target: xyz('a point a spotlight aims at, instead of direction').optional(),
|
|
328
|
+
angle: measurement('angle', 'deg', {
|
|
329
|
+
min: 1,
|
|
330
|
+
max: 179,
|
|
331
|
+
description: "A spotlight's full cone (default 60): about 30 for a narrow accent, 60 for a downlight, 100 for a wide wash. Giving it makes the light a spot pointing down unless direction or target says otherwise.",
|
|
332
|
+
}).optional(),
|
|
333
|
+
softness: z
|
|
334
|
+
.number()
|
|
335
|
+
.min(0)
|
|
336
|
+
.max(1)
|
|
337
|
+
.optional()
|
|
338
|
+
.describe("How feathered a spotlight's edge is: 0 hard, 1 fully soft (default 0.4)."),
|
|
339
|
+
shadows: z
|
|
340
|
+
.boolean()
|
|
341
|
+
.optional()
|
|
342
|
+
.describe('Casts shadows (default false). Only the couple of shadow-casting lights nearest the view get shadows at once, so keep it for the lights that shape a room.'),
|
|
343
|
+
glow: z
|
|
344
|
+
.object({
|
|
345
|
+
size: length('Across, about 0.15 for a sconce to 0.4 for a lantern.', { positive: true }),
|
|
346
|
+
strength: z.number().nonnegative().max(10).default(1).describe('Brightness (default 1).'),
|
|
347
|
+
})
|
|
348
|
+
.optional()
|
|
349
|
+
.describe("A soft halo drawn around the lamp itself in the light's colour, strongest at dusk and night."),
|
|
205
350
|
});
|
|
206
|
-
export const
|
|
207
|
-
name: z.string().
|
|
208
|
-
|
|
351
|
+
export const authorSceneVoid = z.object({
|
|
352
|
+
name: z.string().max(80).optional(),
|
|
353
|
+
polygon: z
|
|
354
|
+
.array(plan('vertex'))
|
|
355
|
+
.min(3)
|
|
356
|
+
.describe("The opening in this level's floor, so the room below rises through it (a double-height living room under a gallery, a stairwell, an atrium). Pascal cuts the floor and the ceiling under it, and stops the cut at the faces of this level's walls."),
|
|
357
|
+
railing: z
|
|
358
|
+
.object({
|
|
359
|
+
height: length('Railing height (default 1.1 m).', { default: 1.1, positive: true }),
|
|
360
|
+
color: z.string().optional().describe('#rrggbb or library:<id> (default white).'),
|
|
361
|
+
})
|
|
362
|
+
.nullable()
|
|
363
|
+
.optional()
|
|
364
|
+
.describe("A railing along the void's open edges, broken where a wall of this level stands or a stair arrives (default: a 1.1 m railing; null for none, a void you cannot walk up to)."),
|
|
365
|
+
});
|
|
366
|
+
export const authorSceneRoofSegment = z.object({
|
|
367
|
+
center: plan('its centre, between the walls it covers'),
|
|
368
|
+
rotation: measurement('angle', 'deg', {
|
|
209
369
|
default: 0,
|
|
370
|
+
description: 'Turn about the vertical axis, as an item turns: at 0 its width runs along x.',
|
|
371
|
+
}),
|
|
372
|
+
width: length("Along its ridge, between the centerlines of the walls under it (a gable's rakes are its ends).", { positive: true }),
|
|
373
|
+
depth: length("Across its ridge, between the centerlines of the walls under it (its eaves' sides).", {
|
|
374
|
+
positive: true,
|
|
210
375
|
}),
|
|
376
|
+
roofType: RoofType.default('gable').describe('gable (default), hip, shed (one slope, its low eave toward its local +z), flat, or any of the roof shapes create_roof takes.'),
|
|
377
|
+
pitch: roofPitch('deg', {
|
|
378
|
+
min: 0,
|
|
379
|
+
max: 85,
|
|
380
|
+
description: 'Slope of its planes (default 40°).',
|
|
381
|
+
}).optional(),
|
|
382
|
+
overhang: length("How far its eaves reach past the walls' faces, in plan (default 0.3 m).", {
|
|
383
|
+
default: 0.3,
|
|
384
|
+
}),
|
|
385
|
+
gableOverhang: length("How far a gable's or shed's rakes reach past its end walls, in plan.").optional(),
|
|
386
|
+
});
|
|
387
|
+
export const authorSceneRoof = z.object({
|
|
388
|
+
name: z.string().max(80).optional(),
|
|
389
|
+
segments: z
|
|
390
|
+
.array(authorSceneRoofSegment)
|
|
391
|
+
.default([])
|
|
392
|
+
.describe("Pascal's own roof over the top level, one segment per rectangle: it stands on the walls' tops and draws its own gable ends, eaves and fascia (default [])."),
|
|
393
|
+
color: z.string().optional().describe("#rrggbb of the segments' covering."),
|
|
394
|
+
wallColor: z
|
|
395
|
+
.string()
|
|
396
|
+
.optional()
|
|
397
|
+
.describe('#rrggbb of the walls the segments raise: their gable ends.'),
|
|
398
|
+
items: z
|
|
399
|
+
.array(authorSceneItem)
|
|
400
|
+
.optional()
|
|
401
|
+
.describe("Roof geometry the segments cannot draw (a roof of another shape, a chimney, a dormer), as items on the roof level. position's y is measured from the top level's floor, as that level's items are."),
|
|
402
|
+
});
|
|
403
|
+
export const authorSceneLevel = z.object({
|
|
404
|
+
name: z.string().min(1).max(80),
|
|
405
|
+
elevation: length("The level's floor height above the ground floor's (default 0), its walking surface. It sets the storey below: a storey is as tall as the climb to the next level's floor (its stairs follow), the top one as its tallest wall; the walls under keep their height and this level's floor fills the climb above them.", { default: 0 }),
|
|
211
406
|
walls: z.array(authorSceneWall).optional(),
|
|
212
407
|
rooms: z.array(authorSceneRoom).default([]).describe('Room seeds and finishes (default []).'),
|
|
213
408
|
slabs: z.array(authorSceneSlab).optional(),
|
|
409
|
+
voids: z
|
|
410
|
+
.array(authorSceneVoid)
|
|
411
|
+
.optional()
|
|
412
|
+
.describe('Openings in this level’s floor onto the level below; never on the first level.'),
|
|
214
413
|
columns: z.array(authorSceneColumn).optional(),
|
|
414
|
+
stairs: z
|
|
415
|
+
.array(authorSceneStair)
|
|
416
|
+
.optional()
|
|
417
|
+
.describe("Stairs rising from this level to the next one in levels, as Pascal's stair tool builds them: the risers follow the storey height and each stair opens the floor above over its flights. Never a stair as an item."),
|
|
215
418
|
items: z.array(authorSceneItem).optional(),
|
|
216
|
-
lights: z
|
|
419
|
+
lights: z
|
|
420
|
+
.array(authorSceneLight)
|
|
421
|
+
.default([])
|
|
422
|
+
.describe("This level's lights (default []): each in its fixture, or on a ceiling point Pascal adds."),
|
|
423
|
+
});
|
|
424
|
+
export const authorSceneUnit = z.object({
|
|
425
|
+
name: z.string().min(1).max(120).describe('The name the rooms give as their unit.'),
|
|
426
|
+
kind: unitKind.default('apartment'),
|
|
427
|
+
color: z.string().optional().describe('#rrggbb tint of the unit in the plan.'),
|
|
217
428
|
});
|
|
218
429
|
export const authorScenePayload = z.object({
|
|
219
430
|
levels: z.array(authorSceneLevel).min(1),
|
|
431
|
+
units: z
|
|
432
|
+
.array(authorSceneUnit)
|
|
433
|
+
.default([])
|
|
434
|
+
.describe("The units the rooms name, to give them a kind or a colour (default []): a unit named only by rooms is an apartment. A unit's rooms may be on several levels (a duplex). Pascal makes one unit per distinct name, under the building, holding the rooms that name it."),
|
|
435
|
+
roof: authorSceneRoof
|
|
436
|
+
.optional()
|
|
437
|
+
.describe("The roof over the top level, on the building's roof level above it, so exploded and solo level views lift it off the plan."),
|
|
220
438
|
notes: z
|
|
221
439
|
.array(z.string().max(1200))
|
|
222
440
|
.default([])
|
|
@@ -226,18 +444,41 @@ export const authorSceneTool = {
|
|
|
226
444
|
name: 'author_scene',
|
|
227
445
|
title: 'Author scene',
|
|
228
446
|
description: DESCRIPTION,
|
|
447
|
+
surfaceNotes: {
|
|
448
|
+
mcp: 'A payload by reference is a project file you upload: upload_project_file with phase prepare and its size answers a signedUrl; PUT the bytes there; then phase complete with the returned fileId and storageKey; that fileId is the payloadFile. A server that keeps no project files refuses payloadFile (files_unavailable); one that cannot run an adapter refuses the module and adapter (adapter_unavailable).',
|
|
449
|
+
chat: "There is no HTTP client here: the signed upload (phase prepare, PUT, complete) is not a route of yours. A payload too large to write in one answer goes as your module and its adapter, which Pascal runs. A JSON payload that fits in one answer and in 2 MiB can be saved with upload_project_file, phase text, the JSON as its content; the saved file's id in the receipt (file.id) is the payloadFile.",
|
|
450
|
+
},
|
|
229
451
|
input: {
|
|
230
|
-
payload: authorScenePayload
|
|
452
|
+
payload: authorScenePayload
|
|
453
|
+
.optional()
|
|
454
|
+
.describe('The conversion payload. Leave it out to have Pascal run the adapter on the module, or, with neither, to write the stored conversion again.'),
|
|
455
|
+
payloadFile: z
|
|
456
|
+
.string()
|
|
457
|
+
.min(1)
|
|
458
|
+
.max(128)
|
|
459
|
+
.optional()
|
|
460
|
+
.describe('The payload by reference: the fileId of a JSON project file holding it, from upload_project_file. Instead of payload, for one too large to send in a call.'),
|
|
231
461
|
module: z
|
|
232
462
|
.string()
|
|
233
463
|
.max(400_000)
|
|
234
464
|
.optional()
|
|
235
|
-
.describe('The three.js module the payload
|
|
465
|
+
.describe('The three.js module the payload is read from. Stored with the scene as its source; left out, the stored one is used.'),
|
|
236
466
|
adapter: z
|
|
237
467
|
.string()
|
|
238
468
|
.max(400_000)
|
|
239
469
|
.optional()
|
|
240
|
-
.describe(
|
|
470
|
+
.describe("The program that turns the module into the payload: `export default async function adapt({ THREE, addons, source, run, toModule })` returning the payload. Pascal runs it where three.js modules run (no network, files or DOM); source is the module's text, run(code = source) builds a module (its default or named build({ THREE, scene, addons })) and answers { scene }, its world matrices updated; toModule(object, { origin, rotation, mount, animations }) writes an object of the built scene as an item's or an opening's module, answering { code, position, size, triangles }. Stored with the scene; left out, the stored one is used."),
|
|
471
|
+
edits: z
|
|
472
|
+
.array(z
|
|
473
|
+
.object({
|
|
474
|
+
in: z.enum(['module', 'adapter']),
|
|
475
|
+
find: z.string().min(1).describe('Text that occurs exactly once in it.'),
|
|
476
|
+
replace: z.string().describe('What replaces it.'),
|
|
477
|
+
})
|
|
478
|
+
.strict())
|
|
479
|
+
.max(200)
|
|
480
|
+
.optional()
|
|
481
|
+
.describe('Changes to the module or the adapter as given, or as stored when left out, applied in order; the changed texts are run and stored.'),
|
|
241
482
|
replace: z
|
|
242
483
|
.boolean()
|
|
243
484
|
.default(false)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/** The shared tools a batch runs; a test keeps this in step with the operations registry. */
|
|
3
|
-
export declare const BATCHABLE_TOOLS: readonly ['paint', 'search_materials', 'list_levels', 'get_node', 'get_level_summary', 'get_walls', 'get_zones', 'duplicate_level', 'verify_scene', 'delete_node', 'measure_stair', 'fit_stair', 'find_by_type', 'create_roof', 'add_wall', 'add_fence', 'add_level', 'create_stair', 'add_corner_window', 'merge_windows', 'add_column', 'add_object', 'place_design', 'place_in_room'];
|
|
3
|
+
export declare const BATCHABLE_TOOLS: readonly ['paint', 'search_materials', 'list_levels', 'get_node', 'get_level_summary', 'get_walls', 'get_zones', 'duplicate_level', 'verify_scene', 'delete_node', 'move_node', 'duplicate_node', 'measure_stair', 'fit_stair', 'find_by_type', 'create_roof', 'add_wall', 'set_wall_type', 'add_fence', 'add_level', 'create_unit', 'create_stair', 'add_corner_window', 'merge_windows', 'add_column', 'add_object', 'place_design', 'place_in_room'];
|
|
4
4
|
/**
|
|
5
5
|
* Batched tools whose calls do not depend on each other: one that fails is reported with its own
|
|
6
6
|
* error and the others are applied, whatever onRefusal says. An authored object is made whole or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/agent-tools/batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,6FAA6F;AAC7F,eAAO,MAAM,eAAe,YAC1B,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,YAAY,EAEZ,YAAY,EACZ,cAAc,EACd,eAAe,CAMP,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAmB,CAAA;AAExE,eAAO,MAAM,YAAY;IACvB,IAAI;IACJ,KAAK;IACL,WAAW;IACX,KAAK;QACH,KAAK;;;;QAYL,SAAS;;;;;CAKZ,CAAA"}
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/agent-tools/batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,6FAA6F;AAC7F,eAAO,MAAM,eAAe,YAC1B,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,YAAY,EAEZ,YAAY,EACZ,cAAc,EACd,eAAe,CAMP,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAmB,CAAA;AAExE,eAAO,MAAM,YAAY;IACvB,IAAI;IACJ,KAAK;IACL,WAAW;IACX,KAAK;QACH,KAAK;;;;QAYL,SAAS;;;;;CAKZ,CAAA"}
|
|
@@ -11,13 +11,17 @@ export const BATCHABLE_TOOLS = [
|
|
|
11
11
|
'duplicate_level',
|
|
12
12
|
'verify_scene',
|
|
13
13
|
'delete_node',
|
|
14
|
+
'move_node',
|
|
15
|
+
'duplicate_node',
|
|
14
16
|
'measure_stair',
|
|
15
17
|
'fit_stair',
|
|
16
18
|
'find_by_type',
|
|
17
19
|
'create_roof',
|
|
18
20
|
'add_wall',
|
|
21
|
+
'set_wall_type',
|
|
19
22
|
'add_fence',
|
|
20
23
|
'add_level',
|
|
24
|
+
'create_unit',
|
|
21
25
|
'create_stair',
|
|
22
26
|
'add_corner_window',
|
|
23
27
|
'merge_windows',
|
|
@@ -41,7 +45,7 @@ export const INDEPENDENT_BATCH_TOOLS = ['add_object'];
|
|
|
41
45
|
export const runBatchTool = {
|
|
42
46
|
name: 'run_batch',
|
|
43
47
|
title: 'Run a batch of scene tools',
|
|
44
|
-
description: `Optionally run several scene tools in one call: in order, each on the scene the calls before it left, applied as one undo step, with a report per call. Supports repeated or known-in-advance work; individual calls remain available. A call cannot use an id another call of the same batch creates; created ids are available in the report for subsequent calls. onRefusal stop (default): a refused call stops the batch and nothing is applied; skip: the others are applied and each refusal is reported
|
|
48
|
+
description: `Optionally run several scene tools in one call: in order, each on the scene the calls before it left, applied as one undo step, with a report per call. Supports repeated or known-in-advance work; individual calls remain available. A call cannot use an id another call of the same batch creates; created ids are available in the report for subsequent calls. onRefusal stop (default): a refused call stops the batch and nothing is applied; skip: the others are applied and each refusal is reported. This policy includes unsupported tools, invalid inputs and design-brief refusals, as well as runtime refusals. add_object calls are independent of each other under both: one that fails is reported with its own error and the others are applied, each with the receipt a single add_object gives. Tools: ${BATCHABLE_TOOLS.join(', ')}.`,
|
|
45
49
|
input: {
|
|
46
50
|
calls: z
|
|
47
51
|
.array(z.object({
|
|
@@ -5,7 +5,7 @@ import { z } from 'zod';
|
|
|
5
5
|
export const setCheckpointTool = {
|
|
6
6
|
name: 'set_checkpoint',
|
|
7
7
|
title: 'Set a checkpoint',
|
|
8
|
-
description: '
|
|
8
|
+
description: 'Name this moment of your work (a roof, a floor, a batch of walls) for verify_scene({ since: name }) to compare against, and return the checkpoints kept. verify_scene then lists what was created, changed and deleted since, grouped by level and kind with a view each, and what you made that is gone. "start", the beginning of your work, is always one; a name used again replaces the first; a session keeps at most 8. A checkpoint is kept with your session, not in the project: it changes nothing in the scene, enters no undo, and does not restore anything. Refused: too_many_checkpoints (naming them), scene_too_large, name_required.',
|
|
9
9
|
input: {
|
|
10
10
|
name: z
|
|
11
11
|
.string()
|
|
@@ -10,6 +10,20 @@ export declare const addColumnTool: {
|
|
|
10
10
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
11
|
x: z.ZodOptional<z.ZodNumber>;
|
|
12
12
|
z: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
14
|
+
ornament: "ornament";
|
|
15
|
+
post: "post";
|
|
16
|
+
}>>;
|
|
17
|
+
postSize: z.ZodOptional<z.ZodEnum<{
|
|
18
|
+
"4x4": "4x4";
|
|
19
|
+
"6x6": "6x6";
|
|
20
|
+
"8x8": "8x8";
|
|
21
|
+
}>>;
|
|
22
|
+
postBase: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
none: "none";
|
|
24
|
+
pier: "pier";
|
|
25
|
+
"post-base": "post-base";
|
|
26
|
+
}>>;
|
|
13
27
|
height: z.ZodOptional<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>;
|
|
14
28
|
radius: z.ZodOptional<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>;
|
|
15
29
|
width: z.ZodOptional<z.ZodPipe<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/agent-tools/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/agent-tools/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFzB,CAAA"}
|
|
@@ -6,13 +6,25 @@ import { NodeId } from './node-id.js';
|
|
|
6
6
|
export const addColumnTool = {
|
|
7
7
|
name: 'add_column',
|
|
8
8
|
title: 'Add column',
|
|
9
|
-
description: 'Add a structural or decorative column at (x, z), or rebuild one by nodeId. Supports native fields or optional code using the same module and conventions as add_object, with floor mount and its bottom centre at the support point. Params named height, width and depth drive the native size controls. Only add columns when requested.',
|
|
9
|
+
description: 'Add a structural or decorative column at (x, z), or rebuild one by nodeId. role post makes the Build panel framing post: plain square pressure-treated wood, default 6x6 with no base, reaching the lowest beam above its support or the ceiling plane unless height is given. postSize and postBase use the tile choices. Refused with not_a_post when post choices are given without role post (or an existing post). Supports native fields or optional code using the same module and conventions as add_object, with floor mount and its bottom centre at the support point. Params named height, width and depth drive the native size controls. Only add columns when requested.',
|
|
10
10
|
input: {
|
|
11
11
|
x: z.number().optional().describe('X position of the column center (meters)'),
|
|
12
12
|
z: z.number().optional().describe('Z position of the column center (meters)'),
|
|
13
|
+
role: z
|
|
14
|
+
.enum(['ornament', 'post'])
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('post: a framing post; ornament: a decorative column. Omitted keeps existing column behavior.'),
|
|
17
|
+
postSize: z
|
|
18
|
+
.enum(['4x4', '6x6', '8x8'])
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Nominal post size; actual square sides 0.0889, 0.1397, 0.18415 m. Default for a new post: 6x6. Overrides native width, depth and radius when supplied.'),
|
|
21
|
+
postBase: z
|
|
22
|
+
.enum(['none', 'post-base', 'pier'])
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Post base: none (default for a new post), a steel post base, or a concrete pier. Updates base geometry and finish together.'),
|
|
13
25
|
height: measurement('length', 'm', {
|
|
14
26
|
positive: true,
|
|
15
|
-
description: 'Column height (default: 2.5).',
|
|
27
|
+
description: 'Column height (default: 2.5 m; a new post reaches the beam above or ceiling plane).',
|
|
16
28
|
}).optional(),
|
|
17
29
|
radius: measurement('length', 'm', {
|
|
18
30
|
positive: true,
|