@pascal-app/core 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts +102 -90
- package/dist/agent-operations/__fixtures__/add-object-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/add-object-cases.js +301 -1
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/add-stair-cases.js +176 -0
- package/dist/agent-operations/__fixtures__/build-room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/build-room-cases.js +410 -40
- package/dist/agent-operations/__fixtures__/cases.d.ts +18 -3
- package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/cases.js +183 -4
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/corner-window-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts +14 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/design-brief-cases.js +709 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts +7 -0
- package/dist/agent-operations/__fixtures__/finish-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/finish-cases.js +758 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/lot-info-cases.js +370 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/merge-windows-cases.js +321 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +2237 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/native-materials.js +82 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/node-read-cases.js +639 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts +24 -0
- package/dist/agent-operations/__fixtures__/notation-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/notation-cases.js +356 -0
- package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/place-items-cases.js +80 -2
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +19726 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.js +106 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts +9 -0
- package/dist/agent-operations/__fixtures__/roof-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/roof-cases.js +382 -0
- package/dist/agent-operations/__fixtures__/room-cases.d.ts +2 -1
- package/dist/agent-operations/__fixtures__/room-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/room-cases.js +136 -1
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/scene-check-cases.js +417 -0
- package/dist/agent-operations/__fixtures__/search-assets-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/search-assets-cases.js +15 -3
- package/dist/agent-operations/__fixtures__/site-cases.d.ts +290 -0
- package/dist/agent-operations/__fixtures__/site-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/site-cases.js +780 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts +1 -0
- package/dist/agent-operations/__fixtures__/structure-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/structure-cases.js +630 -3
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +311 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.js +59 -11
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts +3 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-assets-cases.js +155 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts +50 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.d.ts.map +1 -0
- package/dist/agent-operations/__fixtures__/view-scene-cases.js +425 -0
- package/dist/agent-operations/achieved.d.ts +5 -0
- package/dist/agent-operations/achieved.d.ts.map +1 -1
- package/dist/agent-operations/achieved.js +21 -1
- package/dist/agent-operations/add-column.d.ts.map +1 -1
- package/dist/agent-operations/add-column.js +3 -1
- package/dist/agent-operations/add-fence.d.ts +18 -0
- package/dist/agent-operations/add-fence.d.ts.map +1 -0
- package/dist/agent-operations/add-fence.js +48 -0
- package/dist/agent-operations/add-level.d.ts +4 -1
- package/dist/agent-operations/add-level.d.ts.map +1 -1
- package/dist/agent-operations/add-level.js +48 -12
- package/dist/agent-operations/add-object.d.ts +38 -9
- package/dist/agent-operations/add-object.d.ts.map +1 -1
- package/dist/agent-operations/add-object.js +172 -11
- package/dist/agent-operations/add-wall.d.ts +1 -3
- package/dist/agent-operations/add-wall.d.ts.map +1 -1
- package/dist/agent-operations/add-wall.js +35 -9
- package/dist/agent-operations/apply-changes.d.ts +7 -1
- package/dist/agent-operations/apply-changes.d.ts.map +1 -1
- package/dist/agent-operations/apply-changes.js +54 -22
- package/dist/agent-operations/apply-outcome.d.ts +6 -0
- package/dist/agent-operations/apply-outcome.d.ts.map +1 -1
- package/dist/agent-operations/apply-outcome.js +23 -8
- package/dist/agent-operations/asset-views.d.ts +75 -0
- package/dist/agent-operations/asset-views.d.ts.map +1 -0
- package/dist/agent-operations/asset-views.js +234 -0
- package/dist/agent-operations/author-scene.d.ts +157 -0
- package/dist/agent-operations/author-scene.d.ts.map +1 -0
- package/dist/agent-operations/author-scene.js +1076 -0
- package/dist/agent-operations/authored-scene-merge.d.ts +4 -0
- package/dist/agent-operations/authored-scene-merge.d.ts.map +1 -0
- package/dist/agent-operations/authored-scene-merge.js +96 -0
- package/dist/agent-operations/batch.d.ts +22 -0
- package/dist/agent-operations/batch.d.ts.map +1 -0
- package/dist/agent-operations/batch.js +104 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts +31 -0
- package/dist/agent-operations/ceiling-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/ceiling-object-observations.js +111 -0
- package/dist/agent-operations/corner-window.d.ts +19 -0
- package/dist/agent-operations/corner-window.d.ts.map +1 -0
- package/dist/agent-operations/corner-window.js +84 -0
- package/dist/agent-operations/create-roof.d.ts +32 -0
- package/dist/agent-operations/create-roof.d.ts.map +1 -0
- package/dist/agent-operations/create-roof.js +304 -0
- package/dist/agent-operations/create-room.d.ts +2 -0
- package/dist/agent-operations/create-room.d.ts.map +1 -1
- package/dist/agent-operations/create-room.js +73 -5
- package/dist/agent-operations/create-stair.d.ts +6 -28
- package/dist/agent-operations/create-stair.d.ts.map +1 -1
- package/dist/agent-operations/create-stair.js +187 -104
- package/dist/agent-operations/design-brief.d.ts +38 -0
- package/dist/agent-operations/design-brief.d.ts.map +1 -0
- package/dist/agent-operations/design-brief.js +300 -0
- package/dist/agent-operations/designs.d.ts +24 -0
- package/dist/agent-operations/designs.d.ts.map +1 -0
- package/dist/agent-operations/designs.js +48 -0
- package/dist/agent-operations/door-clearance.d.ts +16 -1
- package/dist/agent-operations/door-clearance.d.ts.map +1 -1
- package/dist/agent-operations/door-clearance.js +61 -4
- package/dist/agent-operations/duplicate-level.d.ts.map +1 -1
- package/dist/agent-operations/duplicate-level.js +2 -1
- package/dist/agent-operations/find-by-type.d.ts +14 -7
- package/dist/agent-operations/find-by-type.d.ts.map +1 -1
- package/dist/agent-operations/find-by-type.js +266 -43
- package/dist/agent-operations/furnish-room.d.ts +22 -1
- package/dist/agent-operations/furnish-room.d.ts.map +1 -1
- package/dist/agent-operations/furnish-room.js +66 -19
- package/dist/agent-operations/furniture-kind.d.ts +22 -0
- package/dist/agent-operations/furniture-kind.d.ts.map +1 -0
- package/dist/agent-operations/furniture-kind.js +69 -0
- package/dist/agent-operations/get-node.d.ts +5 -2
- package/dist/agent-operations/get-node.d.ts.map +1 -1
- package/dist/agent-operations/get-node.js +82 -10
- package/dist/agent-operations/hosted-services.d.ts +2 -1
- package/dist/agent-operations/hosted-services.d.ts.map +1 -1
- package/dist/agent-operations/index.d.ts +281 -69
- package/dist/agent-operations/index.d.ts.map +1 -1
- package/dist/agent-operations/index.js +66 -5
- package/dist/agent-operations/item-space.d.ts +22 -0
- package/dist/agent-operations/item-space.d.ts.map +1 -0
- package/dist/agent-operations/item-space.js +69 -0
- package/dist/agent-operations/layout-clearance.d.ts +52 -3
- package/dist/agent-operations/layout-clearance.d.ts.map +1 -1
- package/dist/agent-operations/layout-clearance.js +340 -30
- package/dist/agent-operations/level-height-fill.d.ts +12 -0
- package/dist/agent-operations/level-height-fill.d.ts.map +1 -0
- package/dist/agent-operations/level-height-fill.js +59 -0
- package/dist/agent-operations/level-reads.d.ts +5 -1
- package/dist/agent-operations/level-reads.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +10 -3
- package/dist/agent-operations/list-levels.d.ts.map +1 -1
- package/dist/agent-operations/list-levels.js +23 -0
- package/dist/agent-operations/material-preset.d.ts.map +1 -1
- package/dist/agent-operations/material-preset.js +3 -9
- package/dist/agent-operations/material-refs.d.ts +7 -1
- package/dist/agent-operations/material-refs.d.ts.map +1 -1
- package/dist/agent-operations/material-refs.js +10 -5
- package/dist/agent-operations/merge-windows.d.ts +6 -0
- package/dist/agent-operations/merge-windows.d.ts.map +1 -0
- package/dist/agent-operations/merge-windows.js +27 -0
- package/dist/agent-operations/move-roofs.d.ts +9 -0
- package/dist/agent-operations/move-roofs.d.ts.map +1 -0
- package/dist/agent-operations/move-roofs.js +29 -0
- package/dist/agent-operations/paint.d.ts +2 -1
- package/dist/agent-operations/paint.d.ts.map +1 -1
- package/dist/agent-operations/paint.js +163 -53
- package/dist/agent-operations/photo-elevation.d.ts +155 -0
- package/dist/agent-operations/photo-elevation.d.ts.map +1 -0
- package/dist/agent-operations/photo-elevation.js +761 -0
- package/dist/agent-operations/place-in-room.d.ts +29 -0
- package/dist/agent-operations/place-in-room.d.ts.map +1 -0
- package/dist/agent-operations/place-in-room.js +403 -0
- package/dist/agent-operations/place-items.d.ts.map +1 -1
- package/dist/agent-operations/place-items.js +15 -2
- package/dist/agent-operations/plan-geometry.d.ts.map +1 -1
- package/dist/agent-operations/plan-geometry.js +3 -0
- package/dist/agent-operations/point-context.d.ts +139 -0
- package/dist/agent-operations/point-context.d.ts.map +1 -0
- package/dist/agent-operations/point-context.js +1 -0
- package/dist/agent-operations/project-files.d.ts +9 -0
- package/dist/agent-operations/project-files.d.ts.map +1 -0
- package/dist/agent-operations/project-files.js +25 -0
- package/dist/agent-operations/record-made.d.ts +18 -0
- package/dist/agent-operations/record-made.d.ts.map +1 -0
- package/dist/agent-operations/record-made.js +28 -0
- package/dist/agent-operations/roof-footprint.d.ts +24 -0
- package/dist/agent-operations/roof-footprint.d.ts.map +1 -0
- package/dist/agent-operations/roof-footprint.js +242 -0
- package/dist/agent-operations/roof-writes.d.ts +20 -0
- package/dist/agent-operations/roof-writes.d.ts.map +1 -0
- package/dist/agent-operations/roof-writes.js +165 -0
- package/dist/agent-operations/room-findings.d.ts +54 -0
- package/dist/agent-operations/room-findings.d.ts.map +1 -0
- package/dist/agent-operations/room-findings.js +143 -0
- package/dist/agent-operations/room-floor-script.d.ts +23 -0
- package/dist/agent-operations/room-floor-script.d.ts.map +1 -0
- package/dist/agent-operations/room-floor-script.js +54 -0
- package/dist/agent-operations/room-structure.d.ts +2 -2
- package/dist/agent-operations/room-structure.d.ts.map +1 -1
- package/dist/agent-operations/scene-checkpoint.d.ts +94 -0
- package/dist/agent-operations/scene-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/scene-checkpoint.js +176 -0
- package/dist/agent-operations/scene-queries.d.ts +3750 -3319
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/scene-queries.js +13 -23
- package/dist/agent-operations/scene-review.d.ts +52 -0
- package/dist/agent-operations/scene-review.d.ts.map +1 -0
- package/dist/agent-operations/scene-review.js +106 -0
- package/dist/agent-operations/scene-view.d.ts +82 -15
- package/dist/agent-operations/scene-view.d.ts.map +1 -1
- package/dist/agent-operations/scene-view.js +408 -51
- package/dist/agent-operations/search-assets.d.ts +2 -2
- package/dist/agent-operations/search-assets.d.ts.map +1 -1
- package/dist/agent-operations/search-assets.js +4 -3
- package/dist/agent-operations/search-materials.d.ts +9 -3
- package/dist/agent-operations/search-materials.d.ts.map +1 -1
- package/dist/agent-operations/search-materials.js +83 -29
- package/dist/agent-operations/set-checkpoint.d.ts +9 -0
- package/dist/agent-operations/set-checkpoint.d.ts.map +1 -0
- package/dist/agent-operations/set-checkpoint.js +31 -0
- package/dist/agent-operations/set-ground-level.d.ts +12 -0
- package/dist/agent-operations/set-ground-level.d.ts.map +1 -0
- package/dist/agent-operations/set-ground-level.js +61 -0
- package/dist/agent-operations/site.d.ts +21 -0
- package/dist/agent-operations/site.d.ts.map +1 -0
- package/dist/agent-operations/site.js +123 -0
- package/dist/agent-operations/types.d.ts +66 -7
- package/dist/agent-operations/types.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.d.ts +39 -5
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +223 -44
- package/dist/agent-operations/wall-face-script.d.ts +28 -0
- package/dist/agent-operations/wall-face-script.d.ts.map +1 -0
- package/dist/agent-operations/wall-face-script.js +62 -0
- package/dist/agent-operations/wall-object-observations.d.ts +41 -0
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -0
- package/dist/agent-operations/wall-object-observations.js +249 -0
- package/dist/agent-operations/wall-opening.d.ts +23 -23
- package/dist/agent-operations/wall-opening.d.ts.map +1 -1
- package/dist/agent-operations/wall-skirting.d.ts +24 -0
- package/dist/agent-operations/wall-skirting.d.ts.map +1 -0
- package/dist/agent-operations/wall-skirting.js +85 -0
- package/dist/agent-tools/add-object.d.ts +11 -7
- package/dist/agent-tools/add-object.d.ts.map +1 -1
- package/dist/agent-tools/add-object.js +17 -11
- package/dist/agent-tools/assets.d.ts +8 -0
- package/dist/agent-tools/assets.d.ts.map +1 -1
- package/dist/agent-tools/assets.js +13 -1
- package/dist/agent-tools/author-scene.d.ts +651 -0
- package/dist/agent-tools/author-scene.d.ts.map +1 -0
- package/dist/agent-tools/author-scene.js +252 -0
- package/dist/agent-tools/batch.d.ts +25 -0
- package/dist/agent-tools/batch.d.ts.map +1 -0
- package/dist/agent-tools/batch.js +61 -0
- package/dist/agent-tools/checkpoints.d.ts +13 -0
- package/dist/agent-tools/checkpoints.d.ts.map +1 -0
- package/dist/agent-tools/checkpoints.js +16 -0
- package/dist/agent-tools/clear-scene.d.ts.map +1 -1
- package/dist/agent-tools/collections.d.ts +6 -6
- package/dist/agent-tools/collections.d.ts.map +1 -1
- package/dist/agent-tools/columns.d.ts +18 -18
- package/dist/agent-tools/columns.js +2 -2
- package/dist/agent-tools/corner-window.d.ts +46 -0
- package/dist/agent-tools/corner-window.d.ts.map +1 -0
- package/dist/agent-tools/corner-window.js +47 -0
- package/dist/agent-tools/create-room.d.ts +26 -25
- package/dist/agent-tools/create-room.d.ts.map +1 -1
- package/dist/agent-tools/create-room.js +11 -4
- package/dist/agent-tools/design-brief.d.ts +408 -0
- package/dist/agent-tools/design-brief.d.ts.map +1 -0
- package/dist/agent-tools/design-brief.js +149 -0
- package/dist/agent-tools/designs.d.ts +34 -0
- package/dist/agent-tools/designs.d.ts.map +1 -0
- package/dist/agent-tools/designs.js +50 -0
- package/dist/agent-tools/fences.d.ts +28 -0
- package/dist/agent-tools/fences.d.ts.map +1 -0
- package/dist/agent-tools/fences.js +31 -0
- package/dist/agent-tools/find-by-type.d.ts +8 -1
- package/dist/agent-tools/find-by-type.d.ts.map +1 -1
- package/dist/agent-tools/find-by-type.js +23 -2
- package/dist/agent-tools/furnish-room.d.ts +10 -8
- package/dist/agent-tools/furnish-room.d.ts.map +1 -1
- package/dist/agent-tools/furnish-room.js +3 -1
- package/dist/agent-tools/hosted-services.d.ts +177 -141
- package/dist/agent-tools/hosted-services.d.ts.map +1 -1
- package/dist/agent-tools/hosted-services.js +47 -14
- package/dist/agent-tools/index.d.ts +894 -215
- package/dist/agent-tools/index.d.ts.map +1 -1
- package/dist/agent-tools/index.js +47 -3
- package/dist/agent-tools/levels.d.ts +11 -3
- package/dist/agent-tools/levels.d.ts.map +1 -1
- package/dist/agent-tools/levels.js +16 -5
- package/dist/agent-tools/measurement.d.ts +38 -20
- package/dist/agent-tools/measurement.d.ts.map +1 -1
- package/dist/agent-tools/measurement.js +117 -67
- package/dist/agent-tools/merge-windows.d.ts +10 -0
- package/dist/agent-tools/merge-windows.d.ts.map +1 -0
- package/dist/agent-tools/merge-windows.js +12 -0
- package/dist/agent-tools/nodes.d.ts.map +1 -1
- package/dist/agent-tools/nodes.js +1 -1
- package/dist/agent-tools/notation-inventory.d.ts +16 -0
- package/dist/agent-tools/notation-inventory.d.ts.map +1 -0
- package/dist/agent-tools/notation-inventory.js +105 -0
- package/dist/agent-tools/paint.d.ts +5 -5
- package/dist/agent-tools/paint.d.ts.map +1 -1
- package/dist/agent-tools/paint.js +1 -1
- package/dist/agent-tools/photo-elevation.d.ts +32 -0
- package/dist/agent-tools/photo-elevation.d.ts.map +1 -0
- package/dist/agent-tools/photo-elevation.js +73 -0
- package/dist/agent-tools/place-in-room.d.ts +35 -0
- package/dist/agent-tools/place-in-room.d.ts.map +1 -0
- package/dist/agent-tools/place-in-room.js +61 -0
- package/dist/agent-tools/place-items.d.ts +1 -1
- package/dist/agent-tools/place-items.js +2 -2
- package/dist/agent-tools/project-files.d.ts +189 -0
- package/dist/agent-tools/project-files.d.ts.map +1 -0
- package/dist/agent-tools/project-files.js +99 -0
- package/dist/agent-tools/refusal.d.ts.map +1 -1
- package/dist/agent-tools/retired.d.ts +21 -0
- package/dist/agent-tools/retired.d.ts.map +1 -0
- package/dist/agent-tools/retired.js +29 -0
- package/dist/agent-tools/roofs.d.ts +100 -0
- package/dist/agent-tools/roofs.d.ts.map +1 -0
- package/dist/agent-tools/roofs.js +96 -0
- package/dist/agent-tools/room-structure.d.ts +46 -38
- package/dist/agent-tools/room-structure.d.ts.map +1 -1
- package/dist/agent-tools/room-structure.js +30 -27
- package/dist/agent-tools/search-materials.d.ts +22 -3
- package/dist/agent-tools/search-materials.d.ts.map +1 -1
- package/dist/agent-tools/search-materials.js +13 -14
- package/dist/agent-tools/site.d.ts +27 -0
- package/dist/agent-tools/site.d.ts.map +1 -0
- package/dist/agent-tools/site.js +40 -0
- package/dist/agent-tools/sources.d.ts +12 -0
- package/dist/agent-tools/sources.d.ts.map +1 -0
- package/dist/agent-tools/sources.js +11 -0
- package/dist/agent-tools/stairs.d.ts +48 -28
- package/dist/agent-tools/stairs.d.ts.map +1 -1
- package/dist/agent-tools/stairs.js +65 -22
- package/dist/agent-tools/verify-scene.d.ts.map +1 -1
- package/dist/agent-tools/verify-scene.js +1 -1
- package/dist/agent-tools/view-scene.d.ts +50 -12
- package/dist/agent-tools/view-scene.d.ts.map +1 -1
- package/dist/agent-tools/view-scene.js +74 -31
- package/dist/agent-tools/wall-openings.d.ts +77 -73
- package/dist/agent-tools/wall-openings.d.ts.map +1 -1
- package/dist/agent-tools/wall-openings.js +9 -5
- package/dist/agent-tools/walls.d.ts +4 -4
- package/dist/agent-tools/walls.d.ts.map +1 -1
- package/dist/agent-tools/walls.js +7 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +454 -250
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/__fixtures__/wall-opening-cases.js +62 -2
- package/dist/building/corner-window.d.ts +56 -0
- package/dist/building/corner-window.d.ts.map +1 -0
- package/dist/building/corner-window.js +179 -0
- package/dist/building/ground-level.d.ts +26 -0
- package/dist/building/ground-level.d.ts.map +1 -0
- package/dist/building/ground-level.js +58 -0
- package/dist/building/index.d.ts +5 -0
- package/dist/building/index.d.ts.map +1 -1
- package/dist/building/index.js +5 -0
- package/dist/building/level-duplication.d.ts +7472 -6613
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/level-duplication.js +18 -4
- package/dist/building/level-insertion.d.ts +55 -0
- package/dist/building/level-insertion.d.ts.map +1 -0
- package/dist/building/level-insertion.js +35 -0
- package/dist/building/merge-windows.d.ts +58 -0
- package/dist/building/merge-windows.d.ts.map +1 -0
- package/dist/building/merge-windows.js +189 -0
- package/dist/building/opening-style-presets.d.ts +2 -2
- package/dist/building/opening-style-presets.d.ts.map +1 -1
- package/dist/building/photo-elevation.d.ts +125 -0
- package/dist/building/photo-elevation.d.ts.map +1 -0
- package/dist/building/photo-elevation.js +404 -0
- package/dist/building/wall-gaps.d.ts +13 -0
- package/dist/building/wall-gaps.d.ts.map +1 -0
- package/dist/building/wall-gaps.js +158 -0
- package/dist/building/wall-openings.d.ts +154 -119
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +37 -9
- package/dist/capture/schema.d.ts +22 -22
- package/dist/capture/source.d.ts.map +1 -1
- package/dist/capture/source.js +1 -1
- package/dist/commands/structure/create-zone.d.ts +12 -1
- package/dist/commands/structure/create-zone.d.ts.map +1 -1
- package/dist/commands/structure/create-zone.js +49 -0
- package/dist/commands/structure/divide-zone.d.ts +3 -3
- package/dist/commands/structure/index.d.ts +1 -1
- package/dist/commands/structure/index.d.ts.map +1 -1
- package/dist/commands/structure/index.js +1 -1
- package/dist/commands/structure/set-floor-foundation.d.ts +6 -6
- package/dist/commands/structure/set-zone-intent.d.ts +4 -0
- package/dist/commands/structure/set-zone-intent.d.ts.map +1 -1
- package/dist/commands/structure/set-zone-intent.js +19 -0
- package/dist/commands/structure/shared.d.ts +3642 -3213
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/zone-wall-merge.d.ts +4149 -3334
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +106 -26
- package/dist/events/bus.d.ts +22 -3
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/capture-sessions.d.ts +5 -0
- package/dist/events/capture-sessions.d.ts.map +1 -0
- package/dist/events/capture-sessions.js +31 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +1 -2
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +4 -6
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3608 -3179
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/support-host-patch.js +11 -2
- package/dist/hooks/spatial-grid/use-spatial-query.d.ts +3 -3
- package/dist/hooks/spatial-grid/wall-spatial-grid.d.ts.map +1 -1
- package/dist/index.d.ts +37 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -9
- package/dist/lib/__fixtures__/mezzanine.d.ts +11800 -10132
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +3642 -3213
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/angle-accumulator.d.ts.map +1 -1
- package/dist/lib/artifact-store.d.ts.map +1 -1
- package/dist/lib/below-grade-footprints.d.ts +65 -0
- package/dist/lib/below-grade-footprints.d.ts.map +1 -0
- package/dist/lib/below-grade-footprints.js +181 -0
- package/dist/lib/building-footprint.d.ts +33 -0
- package/dist/lib/building-footprint.d.ts.map +1 -0
- package/dist/lib/building-footprint.js +89 -0
- package/dist/lib/corner-pair.d.ts +1129 -0
- package/dist/lib/corner-pair.d.ts.map +1 -0
- package/dist/lib/corner-pair.js +130 -0
- package/dist/lib/corner-snap.d.ts +54 -0
- package/dist/lib/corner-snap.d.ts.map +1 -0
- package/dist/lib/corner-snap.js +125 -0
- package/dist/lib/critically-damped.d.ts +11 -0
- package/dist/lib/critically-damped.d.ts.map +1 -0
- package/dist/lib/critically-damped.js +14 -0
- package/dist/lib/deepest-drawn.d.ts +18 -0
- package/dist/lib/deepest-drawn.d.ts.map +1 -0
- package/dist/lib/deepest-drawn.js +65 -0
- package/dist/lib/door-operation.d.ts +1 -1
- package/dist/lib/exterior-wall-loops.d.ts +17 -0
- package/dist/lib/exterior-wall-loops.d.ts.map +1 -0
- package/dist/lib/exterior-wall-loops.js +334 -0
- package/dist/lib/finish-script.d.ts +61 -0
- package/dist/lib/finish-script.d.ts.map +1 -0
- package/dist/lib/finish-script.js +86 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +4 -4
- package/dist/lib/floor-plate-paint.d.ts +3 -1
- package/dist/lib/floor-plate-paint.d.ts.map +1 -1
- package/dist/lib/floor-plate-paint.js +24 -4
- package/dist/lib/floor-plates.d.ts +50 -50
- package/dist/lib/floor-script.d.ts +24 -0
- package/dist/lib/floor-script.d.ts.map +1 -0
- package/dist/lib/floor-script.js +51 -0
- package/dist/lib/foundation-construction.d.ts +73 -0
- package/dist/lib/foundation-construction.d.ts.map +1 -0
- package/dist/lib/foundation-construction.js +242 -0
- package/dist/lib/foundation-standard.d.ts +30 -0
- package/dist/lib/foundation-standard.d.ts.map +1 -0
- package/dist/lib/foundation-standard.js +30 -0
- package/dist/lib/foundation-wall.d.ts +36 -0
- package/dist/lib/foundation-wall.d.ts.map +1 -0
- package/dist/lib/foundation-wall.js +66 -0
- package/dist/lib/generic-foundation.d.ts +40 -0
- package/dist/lib/generic-foundation.d.ts.map +1 -0
- package/dist/lib/generic-foundation.js +200 -0
- package/dist/lib/geometry-script-node.d.ts +32 -3
- package/dist/lib/geometry-script-node.d.ts.map +1 -1
- package/dist/lib/geometry-script-node.js +26 -0
- package/dist/lib/grade-standing.d.ts +38 -0
- package/dist/lib/grade-standing.d.ts.map +1 -0
- package/dist/lib/grade-standing.js +137 -0
- package/dist/lib/ground-level.d.ts +20 -0
- package/dist/lib/ground-level.d.ts.map +1 -0
- package/dist/lib/ground-level.js +49 -0
- package/dist/lib/ground-over-part.d.ts +13 -0
- package/dist/lib/ground-over-part.d.ts.map +1 -0
- package/dist/lib/ground-over-part.js +94 -0
- package/dist/lib/ground-seat.d.ts +47 -0
- package/dist/lib/ground-seat.d.ts.map +1 -0
- package/dist/lib/ground-seat.js +61 -0
- package/dist/lib/ground-window.d.ts +39 -0
- package/dist/lib/ground-window.d.ts.map +1 -0
- package/dist/lib/ground-window.js +147 -0
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +2 -3
- package/dist/lib/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +4 -4
- package/dist/lib/plate-surface.d.ts.map +1 -1
- package/dist/lib/plate-surface.js +3 -1
- package/dist/lib/point-ask.d.ts +9 -0
- package/dist/lib/point-ask.d.ts.map +1 -0
- package/dist/lib/point-ask.js +36 -0
- package/dist/lib/room-drawn-floor.d.ts +1 -1
- package/dist/lib/room-drawn-floor.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +3 -3
- package/dist/lib/room-graph.d.ts.map +1 -1
- package/dist/lib/room-graph.js +2 -0
- package/dist/lib/room-name.d.ts +2 -0
- package/dist/lib/room-name.d.ts.map +1 -1
- package/dist/lib/room-name.js +2 -0
- package/dist/lib/room-topology-index.d.ts.map +1 -1
- package/dist/lib/room-topology-index.js +1 -1
- package/dist/lib/room-zone-adoption.d.ts.map +1 -1
- package/dist/lib/script-inputs-key.d.ts +3 -0
- package/dist/lib/script-inputs-key.d.ts.map +1 -0
- package/dist/lib/script-inputs-key.js +13 -0
- package/dist/lib/setback-envelope.d.ts +95 -5
- package/dist/lib/setback-envelope.d.ts.map +1 -1
- package/dist/lib/setback-envelope.js +351 -35
- package/dist/lib/site-flatwork.d.ts +11 -0
- package/dist/lib/site-flatwork.d.ts.map +1 -0
- package/dist/lib/site-flatwork.js +11 -0
- package/dist/lib/site-ground-height.d.ts +13 -0
- package/dist/lib/site-ground-height.d.ts.map +1 -0
- package/dist/lib/site-ground-height.js +16 -0
- package/dist/lib/site-placement.d.ts +362 -0
- package/dist/lib/site-placement.d.ts.map +1 -0
- package/dist/lib/site-placement.js +942 -0
- package/dist/lib/snap-ease.d.ts +20 -0
- package/dist/lib/snap-ease.d.ts.map +1 -0
- package/dist/lib/snap-ease.js +50 -0
- package/dist/lib/structure-kernel.d.ts +1 -1
- package/dist/lib/structure-kernel.d.ts.map +1 -1
- package/dist/lib/structure-kernel.js +2 -0
- package/dist/lib/surface-support-references.d.ts +4 -0
- package/dist/lib/surface-support-references.d.ts.map +1 -0
- package/dist/lib/surface-support-references.js +19 -0
- package/dist/lib/terrain-support-query.d.ts +10 -0
- package/dist/lib/terrain-support-query.d.ts.map +1 -1
- package/dist/lib/terrain-support-query.js +1 -1
- package/dist/lib/wall-face-script.d.ts +66 -0
- package/dist/lib/wall-face-script.d.ts.map +1 -0
- package/dist/lib/wall-face-script.js +235 -0
- package/dist/lib/zone-colors.d.ts +1 -1
- package/dist/lib/zone-colors.d.ts.map +1 -1
- package/dist/lib/zone-quantities.d.ts.map +1 -1
- package/dist/lib/zone-quantities.js +4 -5
- package/dist/material-kinds.d.ts +9 -0
- package/dist/material-kinds.d.ts.map +1 -0
- package/dist/material-kinds.js +30 -0
- package/dist/material-library.d.ts +4 -4
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +72 -26
- package/dist/node-slots/index.d.ts +1 -0
- package/dist/node-slots/index.d.ts.map +1 -1
- package/dist/node-slots/index.js +7 -1
- package/dist/node-slots/roof.d.ts +5 -0
- package/dist/node-slots/roof.d.ts.map +1 -0
- package/dist/node-slots/roof.js +12 -0
- package/dist/node-slots/stair.d.ts +2 -0
- package/dist/node-slots/stair.d.ts.map +1 -1
- package/dist/node-slots/stair.js +6 -2
- package/dist/procedural-items/design-placement.d.ts.map +1 -1
- package/dist/procedural-items/design.d.ts +19 -19
- package/dist/procedural-items/fixtures.d.ts +297 -297
- package/dist/procedural-items/fixtures.d.ts.map +1 -1
- package/dist/procedural-items/integration.d.ts +106 -106
- package/dist/procedural-items/joints.d.ts +4 -4
- package/dist/procedural-items/library-colors.d.ts +22 -22
- package/dist/procedural-items/library-colors.d.ts.map +1 -1
- package/dist/procedural-items/motion-controller.d.ts.map +1 -1
- package/dist/procedural-items/node.d.ts +291 -291
- package/dist/procedural-items/query.d.ts +1 -1
- package/dist/procedural-items/query.d.ts.map +1 -1
- package/dist/procedural-items/recipe.d.ts +11 -11
- package/dist/procedural-items/recipe.d.ts.map +1 -1
- package/dist/procedural-items/section.d.ts.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/scene-api.d.ts +1 -0
- package/dist/registry/scene-api.d.ts.map +1 -1
- package/dist/registry/scene-api.js +3 -0
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +2 -0
- package/dist/registry/types.d.ts +120 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/assembly.d.ts +41 -41
- package/dist/schema/asset-url.d.ts +1 -1
- package/dist/schema/asset-url.d.ts.map +1 -1
- package/dist/schema/base.d.ts +9 -9
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/camera.d.ts +1 -1
- package/dist/schema/collection-templates.d.ts +20 -20
- package/dist/schema/collection-templates.d.ts.map +1 -1
- package/dist/schema/geometry-metadata.d.ts +7 -7
- package/dist/schema/geometry-metadata.d.ts.map +1 -1
- package/dist/schema/geometry-source.d.ts +26 -16
- package/dist/schema/geometry-source.d.ts.map +1 -1
- package/dist/schema/geometry-source.js +14 -0
- package/dist/schema/index.d.ts +10 -7
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +10 -7
- package/dist/schema/material.d.ts +33 -33
- package/dist/schema/nodes/barrel-roof.d.ts +3 -0
- package/dist/schema/nodes/barrel-roof.d.ts.map +1 -0
- package/dist/schema/nodes/barrel-roof.js +11 -0
- package/dist/schema/nodes/block.d.ts +8 -8
- package/dist/schema/nodes/box-vent.d.ts +13 -13
- package/dist/schema/nodes/building.d.ts +9 -8
- package/dist/schema/nodes/building.d.ts.map +1 -1
- package/dist/schema/nodes/building.js +2 -0
- package/dist/schema/nodes/cabinet.d.ts +130 -129
- package/dist/schema/nodes/cabinet.d.ts.map +1 -1
- package/dist/schema/nodes/cabinet.js +1 -1
- package/dist/schema/nodes/ceiling.d.ts +15 -15
- package/dist/schema/nodes/chimney.d.ts +23 -23
- package/dist/schema/nodes/column.d.ts +207 -199
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +2 -0
- package/dist/schema/nodes/construction-dimension.d.ts +34 -34
- package/dist/schema/nodes/cupola.d.ts +15 -15
- package/dist/schema/nodes/curtain-wall.d.ts +21 -20
- package/dist/schema/nodes/curtain-wall.d.ts.map +1 -1
- package/dist/schema/nodes/curtain-wall.js +23 -0
- package/dist/schema/nodes/door.d.ts +50 -43
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +19 -0
- package/dist/schema/nodes/dormer.d.ts +37 -36
- package/dist/schema/nodes/dormer.d.ts.map +1 -1
- package/dist/schema/nodes/downspout.d.ts +17 -17
- package/dist/schema/nodes/duct-fitting.d.ts +24 -24
- package/dist/schema/nodes/duct-segment.d.ts +14 -14
- package/dist/schema/nodes/duct-terminal.d.ts +12 -12
- package/dist/schema/nodes/elevator.d.ts +15 -15
- package/dist/schema/nodes/eyebrow-vent.d.ts +13 -13
- package/dist/schema/nodes/fence-feature.d.ts +37 -37
- package/dist/schema/nodes/fence-types.d.ts +32 -0
- package/dist/schema/nodes/fence-types.d.ts.map +1 -0
- package/dist/schema/nodes/fence-types.js +22 -0
- package/dist/schema/nodes/fence.d.ts +43 -72
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +4 -20
- package/dist/schema/nodes/floor-opening.d.ts +8 -8
- package/dist/schema/nodes/guide.d.ts +8 -8
- package/dist/schema/nodes/gutter.d.ts +14 -14
- package/dist/schema/nodes/gutter.d.ts.map +1 -1
- package/dist/schema/nodes/gutter.js +6 -5
- package/dist/schema/nodes/hvac-equipment.d.ts +13 -13
- package/dist/schema/nodes/imported-mesh.d.ts +8 -8
- package/dist/schema/nodes/item.d.ts +30 -25
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/lean-to-extension.d.ts +36 -36
- package/dist/schema/nodes/level.d.ts +9 -9
- package/dist/schema/nodes/lineset.d.ts +8 -8
- package/dist/schema/nodes/liquid-line.d.ts +8 -8
- package/dist/schema/nodes/measurement.d.ts +8 -8
- package/dist/schema/nodes/opening-types.d.ts +13 -13
- package/dist/schema/nodes/opening-types.d.ts.map +1 -1
- package/dist/schema/nodes/pipe-fitting.d.ts +15 -15
- package/dist/schema/nodes/pipe-segment.d.ts +11 -11
- package/dist/schema/nodes/pipe-trap.d.ts +9 -9
- package/dist/schema/nodes/ridge-vent.d.ts +14 -14
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +3 -1
- package/dist/schema/nodes/roof-glazing-config.d.ts +90 -0
- package/dist/schema/nodes/roof-glazing-config.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing-config.js +34 -0
- package/dist/schema/nodes/roof-glazing.d.ts +57 -0
- package/dist/schema/nodes/roof-glazing.d.ts.map +1 -0
- package/dist/schema/nodes/roof-glazing.js +514 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts +4 -0
- package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-resize.js +21 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts +5 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-shape.js +44 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +1 -1
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-walls.js +24 -0
- package/dist/schema/nodes/roof-segment.d.ts +153 -46
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +91 -20
- package/dist/schema/nodes/roof-types.d.ts +14 -0
- package/dist/schema/nodes/roof-types.d.ts.map +1 -0
- package/dist/schema/nodes/roof-types.js +14 -0
- package/dist/schema/nodes/roof.d.ts +49 -49
- package/dist/schema/nodes/scan.d.ts +8 -8
- package/dist/schema/nodes/separator.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +16 -16
- package/dist/schema/nodes/site-facts.d.ts +64 -0
- package/dist/schema/nodes/site-facts.d.ts.map +1 -0
- package/dist/schema/nodes/site-facts.js +73 -0
- package/dist/schema/nodes/site.d.ts +105 -63
- package/dist/schema/nodes/site.d.ts.map +1 -1
- package/dist/schema/nodes/site.js +7 -70
- package/dist/schema/nodes/skylight.d.ts +41 -41
- package/dist/schema/nodes/skylight.d.ts.map +1 -1
- package/dist/schema/nodes/slab.d.ts +21 -21
- package/dist/schema/nodes/solar-panel.d.ts +21 -21
- package/dist/schema/nodes/spawn.d.ts +8 -8
- package/dist/schema/nodes/stair-construction.d.ts +3 -3
- package/dist/schema/nodes/stair-defaults.d.ts +16 -0
- package/dist/schema/nodes/stair-defaults.d.ts.map +1 -0
- package/dist/schema/nodes/stair-defaults.js +15 -0
- package/dist/schema/nodes/stair-segment.d.ts +22 -22
- package/dist/schema/nodes/stair-types.d.ts +29 -0
- package/dist/schema/nodes/stair-types.d.ts.map +1 -0
- package/dist/schema/nodes/stair-types.js +23 -0
- package/dist/schema/nodes/stair.d.ts +51 -75
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +6 -20
- package/dist/schema/nodes/structural-grid.d.ts +8 -8
- package/dist/schema/nodes/surface-hole-metadata.d.ts +2 -2
- package/dist/schema/nodes/turbine-vent.d.ts +13 -13
- package/dist/schema/nodes/unit.d.ts +10 -10
- package/dist/schema/nodes/unit.d.ts.map +1 -1
- package/dist/schema/nodes/wall.d.ts +479 -146
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +19 -0
- package/dist/schema/nodes/window.d.ts +55 -39
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +10 -0
- package/dist/schema/nodes/zone.d.ts +231 -12
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +10 -0
- package/dist/schema/provenance.d.ts +21 -21
- package/dist/schema/scene-material.d.ts +5 -5
- package/dist/schema/site-presentation.d.ts +100 -0
- package/dist/schema/site-presentation.d.ts.map +1 -0
- package/dist/schema/site-presentation.js +83 -0
- package/dist/schema/types.d.ts +1954 -1414
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -1
- package/dist/services/index.d.ts +5 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +5 -1
- package/dist/services/level-height.d.ts.map +1 -1
- package/dist/services/level-height.js +7 -3
- package/dist/services/port-connectivity.d.ts +4 -0
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +35 -0
- package/dist/services/project-file-sink.d.ts +9 -0
- package/dist/services/project-file-sink.d.ts.map +1 -0
- package/dist/services/project-file-sink.js +13 -0
- package/dist/services/roof-bearing.d.ts +62 -0
- package/dist/services/roof-bearing.d.ts.map +1 -0
- package/dist/services/roof-bearing.js +234 -0
- package/dist/services/roof-level.d.ts +121 -0
- package/dist/services/roof-level.d.ts.map +1 -0
- package/dist/services/roof-level.js +280 -0
- package/dist/services/roof-move.d.ts +83 -0
- package/dist/services/roof-move.d.ts.map +1 -0
- package/dist/services/roof-move.js +316 -0
- package/dist/services/stair-surface-snap.d.ts +14 -0
- package/dist/services/stair-surface-snap.d.ts.map +1 -0
- package/dist/services/stair-surface-snap.js +116 -0
- package/dist/services/storey-datum.d.ts +12 -0
- package/dist/services/storey-datum.d.ts.map +1 -0
- package/dist/services/storey-datum.js +18 -0
- package/dist/services/storey.d.ts +51 -5
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +125 -8
- package/dist/solar-panel-presets.d.ts +2 -2
- package/dist/store/actions/node-actions.d.ts +3613 -3182
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +46 -1
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/history-control.d.ts +39 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +84 -4
- package/dist/store/scene-annotations.d.ts +7267 -6409
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/store/scene-preview.d.ts +16 -0
- package/dist/store/scene-preview.d.ts.map +1 -0
- package/dist/store/scene-preview.js +144 -0
- package/dist/store/use-live-node-overrides.d.ts.map +1 -1
- package/dist/store/use-live-terrain.d.ts.map +1 -1
- package/dist/store/use-live-transforms.d.ts.map +1 -1
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +37 -4
- package/dist/systems/elevator/elevator-dispatch.js +1 -1
- package/dist/systems/fence/fence-features.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.d.ts.map +1 -1
- package/dist/systems/owned-floor-openings.js +24 -3
- package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation-system.js +9 -3
- package/dist/systems/roof/roof-elevation.d.ts +5 -0
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +91 -62
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +4623 -3516
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +5149 -4076
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.d.ts +6 -3
- package/dist/systems/slab/slab-support.d.ts.map +1 -1
- package/dist/systems/slab/slab-support.js +78 -10
- package/dist/systems/stair/stair-detail-budget.d.ts +2 -2
- package/dist/systems/stair/stair-detail-budget.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.d.ts +6 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +27 -14
- package/dist/systems/stair/stair-layout.d.ts +2 -2
- package/dist/systems/stair/stair-opening-preview.d.ts +3643 -3214
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.d.ts +73 -65
- package/dist/systems/stair/stair-presets.d.ts.map +1 -1
- package/dist/systems/stair/stair-presets.js +16 -9
- package/dist/systems/stair/stair-rail-path.d.ts +1 -1
- package/dist/systems/stair/stair-rise-query.d.ts +16 -0
- package/dist/systems/stair/stair-rise-query.d.ts.map +1 -1
- package/dist/systems/stair/stair-rise-query.js +57 -7
- package/dist/systems/stair/stair-sizing.d.ts +101 -99
- package/dist/systems/stair/stair-sizing.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.d.ts +11 -0
- package/dist/systems/wall/wall-assembly.d.ts.map +1 -1
- package/dist/systems/wall/wall-assembly.js +21 -0
- package/dist/systems/wall/wall-curve.d.ts +5 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +13 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -1
- package/dist/systems/wall/wall-frame.js +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts +8 -0
- package/dist/systems/wall/wall-room-sides.d.ts.map +1 -1
- package/dist/systems/wall/wall-room-sides.js +60 -7
- package/dist/systems/wall/wall-top.d.ts +7 -4
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +14 -6
- package/dist/systems/wall/wall-topology.d.ts +4 -0
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +4 -2
- package/dist/systems/wall/wall-trim.d.ts +7 -0
- package/dist/systems/wall/wall-trim.d.ts.map +1 -0
- package/dist/systems/wall/wall-trim.js +10 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +8 -0
- package/dist/utils/ensure-scene-openings.d.ts +7420 -6562
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-piece-adoption.d.ts +2 -2
- package/dist/utils/floor-plate-migration.d.ts +3746 -3317
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.js +2 -2
- package/dist/utils/heal-scene-graph.d.ts +12 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -1
- package/dist/utils/heal-scene-graph.js +40 -23
- package/dist/utils/legacy-wall-datums.d.ts.map +1 -1
- package/dist/utils/legacy-wall-datums.js +2 -2
- package/dist/utils/owned-floor-opening-migration.d.ts +3642 -3213
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +3730 -7777
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/utils/scene-migrations.d.ts +1 -1
- package/dist/utils/scene-migrations.d.ts.map +1 -1
- package/dist/utils/scene-migrations.js +1 -1
- package/dist/utils/semantic-equal.d.ts +3 -0
- package/dist/utils/semantic-equal.d.ts.map +1 -0
- package/dist/utils/semantic-equal.js +26 -0
- package/dist/utils/structure-id.d.ts.map +1 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/wall-face-migration.d.ts +1 -1
- package/dist/utils/wall-face-migration.d.ts.map +1 -1
- package/package.json +36 -10
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
const childrenOf = (node) => node && 'children' in node && Array.isArray(node.children) ? node.children : null;
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* being replaced is no longer among that wall's children when it goes.
|
|
3
|
+
* A node with a patch applied. A field the patch sets to `undefined` is removed, as the store's
|
|
4
|
+
* updateNode removes it: optional fields encode a mode by their absence.
|
|
6
5
|
*/
|
|
7
|
-
|
|
6
|
+
function patched(node, data) {
|
|
7
|
+
const merged = { ...node, ...data };
|
|
8
|
+
for (const [key, value] of Object.entries(data))
|
|
9
|
+
if (value === undefined)
|
|
10
|
+
delete merged[key];
|
|
11
|
+
return merged;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The scene after a write's operations in their order, without a store: each create attached to its
|
|
15
|
+
* parent, each reparent moved between both parents' `children`, each delete taking everything under
|
|
16
|
+
* it. A create is written as given; parse it first for its schema's defaults.
|
|
17
|
+
*/
|
|
18
|
+
export function applySceneWrites(nodes, writes) {
|
|
8
19
|
const next = { ...nodes };
|
|
9
20
|
const setChildren = (parentId, edit) => {
|
|
10
21
|
const parent = parentId ? next[parentId] : undefined;
|
|
@@ -14,32 +25,52 @@ export function applySceneChanges(nodes, changes) {
|
|
|
14
25
|
};
|
|
15
26
|
const detach = (parentId, id) => setChildren(parentId, (ids) => ids.filter((child) => child !== id));
|
|
16
27
|
const attach = (parentId, id) => setChildren(parentId, (ids) => (ids.includes(id) ? ids : [...ids, id]));
|
|
17
|
-
for (const { id, data } of changes?.update ?? []) {
|
|
18
|
-
const current = next[id];
|
|
19
|
-
if (!current)
|
|
20
|
-
continue;
|
|
21
|
-
if (data.parentId !== undefined && data.parentId !== current.parentId) {
|
|
22
|
-
detach(current.parentId, id);
|
|
23
|
-
attach(data.parentId, id);
|
|
24
|
-
}
|
|
25
|
-
next[id] = { ...current, ...data };
|
|
26
|
-
}
|
|
27
|
-
for (const { node, parentId } of changes?.create ?? []) {
|
|
28
|
-
next[node.id] = parentId ? { ...node, parentId } : node;
|
|
29
|
-
attach(parentId ?? node.parentId, node.id);
|
|
30
|
-
}
|
|
31
28
|
const remove = (id) => {
|
|
32
29
|
const node = next[id];
|
|
33
30
|
delete next[id];
|
|
34
31
|
for (const child of childrenOf(node) ?? [])
|
|
35
32
|
remove(child);
|
|
36
33
|
};
|
|
37
|
-
for (const
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
for (const write of writes) {
|
|
35
|
+
if (write.op === 'create') {
|
|
36
|
+
const { node, parentId } = write;
|
|
37
|
+
next[node.id] = parentId ? { ...node, parentId } : node;
|
|
38
|
+
attach(parentId ?? node.parentId, node.id);
|
|
39
|
+
}
|
|
40
|
+
else if (write.op === 'update') {
|
|
41
|
+
const current = next[write.id];
|
|
42
|
+
if (!current)
|
|
43
|
+
continue;
|
|
44
|
+
const data = write.data;
|
|
45
|
+
if (data.parentId !== undefined && data.parentId !== current.parentId) {
|
|
46
|
+
detach(current.parentId, write.id);
|
|
47
|
+
attach(data.parentId, write.id);
|
|
48
|
+
}
|
|
49
|
+
next[write.id] = patched(current, data);
|
|
50
|
+
}
|
|
51
|
+
else if (write.op === 'delete') {
|
|
52
|
+
detach(next[write.id]?.parentId, write.id);
|
|
53
|
+
remove(write.id);
|
|
54
|
+
}
|
|
40
55
|
}
|
|
41
56
|
return next;
|
|
42
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* The scene after an operation's changes, without a store: for checks and previews. Same order as
|
|
60
|
+
* the store's applyNodeChanges — updates, creates, then deletes — so an opening moved off a wall
|
|
61
|
+
* being replaced is no longer among that wall's children when it goes.
|
|
62
|
+
*/
|
|
63
|
+
export function applySceneChanges(nodes, changes) {
|
|
64
|
+
return applySceneWrites(nodes, [
|
|
65
|
+
...(changes?.update ?? []).map(({ id, data }) => ({ op: 'update', id, data })),
|
|
66
|
+
...(changes?.create ?? []).map(({ node, parentId }) => ({
|
|
67
|
+
op: 'create',
|
|
68
|
+
node,
|
|
69
|
+
parentId,
|
|
70
|
+
})),
|
|
71
|
+
...(changes?.delete ?? []).map((id) => ({ op: 'delete', id })),
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
43
74
|
/**
|
|
44
75
|
* Several operations' changes, in order, as one set that lands the scene where applying them one
|
|
45
76
|
* by one does — whether a surface applies creates, updates or deletes first: a batch is one undo
|
|
@@ -66,7 +97,7 @@ export function mergeSceneChanges(sets) {
|
|
|
66
97
|
const entry = created.get(id);
|
|
67
98
|
if (entry)
|
|
68
99
|
created.set(id, {
|
|
69
|
-
node:
|
|
100
|
+
node: patched(entry.node, data),
|
|
70
101
|
parentId: data.parentId ?? entry.parentId,
|
|
71
102
|
});
|
|
72
103
|
else
|
|
@@ -89,5 +120,6 @@ export function mergeSceneChanges(sets) {
|
|
|
89
120
|
update: [...updated].map(([id, data]) => ({ id, data })),
|
|
90
121
|
delete: [...deleted],
|
|
91
122
|
collections,
|
|
123
|
+
...(materials.size ? { materials: [...materials.values()] } : {}),
|
|
92
124
|
};
|
|
93
125
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SessionKeep } from './scene-checkpoint.js';
|
|
1
2
|
import type { AgentOperationOutcome, SceneChanges, SceneNodes } from './types.js';
|
|
2
3
|
/** What a surface lends an operation's outcome: its scene, its writes and its reconciler. */
|
|
3
4
|
export type AgentHostRuntime = {
|
|
@@ -5,6 +6,11 @@ export type AgentHostRuntime = {
|
|
|
5
6
|
applyChanges: (changes: SceneChanges) => void;
|
|
6
7
|
/** Derive construction from the scene as it now is: rooms, auto ceilings, floor plates. */
|
|
7
8
|
reconcile: () => void;
|
|
9
|
+
/**
|
|
10
|
+
* Keeps what the agent's session should remember: the checkpoint an operation took and the nodes
|
|
11
|
+
* a write created. The host stores it where its sessions live, never in the scene.
|
|
12
|
+
*/
|
|
13
|
+
keep?: (keep: SessionKeep) => void;
|
|
8
14
|
};
|
|
9
15
|
/**
|
|
10
16
|
* Applies an operation's outcome through a host and returns the answer: its changes, then for an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-outcome.d.ts","sourceRoot":"","sources":["../../src/agent-operations/apply-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE9E,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,UAAU,CAAA;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAC7C,2FAA2F;IAC3F,SAAS,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"apply-outcome.d.ts","sourceRoot":"","sources":["../../src/agent-operations/apply-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE9E,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,UAAU,CAAA;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAC7C,2FAA2F;IAC3F,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACnC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzB"}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
|
+
import { madeEntries } from './scene-checkpoint.js';
|
|
1
2
|
/**
|
|
2
3
|
* Applies an operation's outcome through a host and returns the answer: its changes, then for an
|
|
3
4
|
* outcome that reads derived construction, the reconcile, its follow-up changes and a second
|
|
4
5
|
* reconcile. The host frames the call as one undo step.
|
|
5
6
|
*/
|
|
6
7
|
export function applyAgentOutcome(outcome, runtime) {
|
|
7
|
-
|
|
8
|
+
const written = [];
|
|
9
|
+
if (outcome.changes) {
|
|
8
10
|
runtime.applyChanges(outcome.changes);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (settled.changes) {
|
|
14
|
-
runtime.applyChanges(settled.changes);
|
|
11
|
+
written.push(outcome.changes);
|
|
12
|
+
}
|
|
13
|
+
let result = outcome.result;
|
|
14
|
+
if (outcome.afterReconcile) {
|
|
15
15
|
runtime.reconcile();
|
|
16
|
+
const settled = outcome.afterReconcile(runtime.getNodes());
|
|
17
|
+
if (settled.changes) {
|
|
18
|
+
runtime.applyChanges(settled.changes);
|
|
19
|
+
written.push(settled.changes);
|
|
20
|
+
runtime.reconcile();
|
|
21
|
+
}
|
|
22
|
+
result = settled.result;
|
|
23
|
+
}
|
|
24
|
+
if (runtime.keep) {
|
|
25
|
+
const made = madeEntries(runtime.getNodes(), written);
|
|
26
|
+
if (outcome.keep?.checkpoint ||
|
|
27
|
+
outcome.keep?.designBrief !== undefined ||
|
|
28
|
+
outcome.keep?.viewed !== undefined ||
|
|
29
|
+
made.length)
|
|
30
|
+
runtime.keep({ ...outcome.keep, ...(made.length ? { made } : {}) });
|
|
16
31
|
}
|
|
17
|
-
return
|
|
32
|
+
return result;
|
|
18
33
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { AssetInput } from '../schema/index.js';
|
|
2
|
+
import type { AgentContext, AgentOperation, SceneNodes } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* What a host read about one catalog item before the call, as the operations are sync: its
|
|
5
|
+
* picture (a data URL, at most 512 px), and the names of its paintable surfaces, the `slot_<id>`
|
|
6
|
+
* materials in its model. A fact the host could not read is left out, never guessed.
|
|
7
|
+
*/
|
|
8
|
+
export type AssetViewFacts = {
|
|
9
|
+
picture?: string;
|
|
10
|
+
surfaces?: readonly string[];
|
|
11
|
+
/** Why a picture or the surfaces are missing, in the host's words. */
|
|
12
|
+
unavailable?: string;
|
|
13
|
+
};
|
|
14
|
+
type ViewAssetsInput = {
|
|
15
|
+
ids: string[];
|
|
16
|
+
};
|
|
17
|
+
/** The item a host reads: `id` keys its facts, `src` is its model, `thumbnail` its picture. */
|
|
18
|
+
export type AssetViewSubject = Pick<AssetInput, 'id' | 'src'> & {
|
|
19
|
+
thumbnail?: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The names of a GLB's paintable surfaces (its `slot_<id>` materials, as the renderer and the
|
|
23
|
+
* editor's Paint read them), from the container's JSON chunk alone: `read` is asked for the
|
|
24
|
+
* 20-byte header, then for the JSON chunk. A file with no slot materials gives `[]`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readGlbSurfaces(read: (start: number, end: number) => Promise<Uint8Array>): Promise<string[]>;
|
|
27
|
+
/** How a host reaches a library's files: a byte range of a model, a thumbnail as a data URL. */
|
|
28
|
+
export type AssetViewIO = {
|
|
29
|
+
range: (url: string, start: number, end: number) => Promise<Uint8Array>;
|
|
30
|
+
picture: (url: string) => Promise<string>;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The library's files over `fetch`: a model by two small `Range` requests, a thumbnail whole, then
|
|
34
|
+
* `resizePicture` (the host's own: a canvas in the browser, sharp on a server) to at most 512 px.
|
|
35
|
+
* Without one the thumbnail goes as it is. A path with no host (a standalone server's built-in
|
|
36
|
+
* list) is refused by `fetch`, which the loader reports as the picture's absence.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createFetchAssetViewIO({ fetchImpl, resolveUrl, resizePicture, }?: {
|
|
39
|
+
fetchImpl?: typeof fetch;
|
|
40
|
+
resolveUrl?: (url: string) => Promise<string | null>;
|
|
41
|
+
resizePicture?: (bytes: Uint8Array, mediaType: string) => Promise<{
|
|
42
|
+
bytes: Uint8Array;
|
|
43
|
+
mediaType: string;
|
|
44
|
+
}>;
|
|
45
|
+
}): AssetViewIO;
|
|
46
|
+
/** Reads the facts of catalog items; `pictures: false` reads the surfaces only. */
|
|
47
|
+
export type AssetViewLoader = (subjects: readonly AssetViewSubject[], options?: {
|
|
48
|
+
pictures?: boolean;
|
|
49
|
+
}) => Promise<Record<string, AssetViewFacts>>;
|
|
50
|
+
/**
|
|
51
|
+
* The loader a host builds once: its surface names are cached per model for the session (a model
|
|
52
|
+
* is read by two small range requests, never twice), its pictures are fetched when asked for.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createAssetViewLoader(io: AssetViewIO): AssetViewLoader;
|
|
55
|
+
/** Whether `assetViewNeeds` looks items up in the catalog for this call, so the host must hand it over. */
|
|
56
|
+
export declare const assetViewsReadCatalog: (tool: string, input: unknown) => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* What a host reads before a call, as the catalog is fetched: the items `view_assets` names (with
|
|
59
|
+
* their pictures), and the catalog items `paint` is asked to finish without a role, alone or in a
|
|
60
|
+
* batch (only their surfaces: paint then lists them). Every subject is the catalog's entry, never
|
|
61
|
+
* the scene's: a node's `asset.src` is data a person or a script writes, so it is not a place the
|
|
62
|
+
* host may fetch from. An item whose id the catalog does not hold is not read.
|
|
63
|
+
*/
|
|
64
|
+
export declare function assetViewNeeds(nodes: SceneNodes, tool: string, input: unknown, context: Pick<AgentContext, 'catalog'>): {
|
|
65
|
+
subjects: AssetViewSubject[];
|
|
66
|
+
pictures: boolean;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* `view_assets`: a picture of each catalog item, with its size, category and the names of its
|
|
70
|
+
* paintable surfaces. The pictures and surfaces are the host's, read before the call; a host that
|
|
71
|
+
* cannot fetch them answers the facts it has, and says so.
|
|
72
|
+
*/
|
|
73
|
+
export declare const viewAssets: AgentOperation<ViewAssetsInput>;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=asset-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-views.d.ts","sourceRoot":"","sources":["../../src/agent-operations/asset-views.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEvE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAExC,+FAA+F;AAC/F,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAStF;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,GACxD,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBnB;AAED,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC1C,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,SAAiB,EACjB,UAAuC,EACvC,aAAa,GACd,GAAE;IACD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACpD,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClD,GAAG,WAAW,CAyBnB;AAED,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;AAI5C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,eAAe,CAyCtE;AAkBD,2GAA2G;AAC3G,eAAO,MAAM,qBAAqB,SAAU,MAAM,SAAS,OAAO,KAAG,OACH,CAAA;AAElE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GACrC;IAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAgBrD;AAWD;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,cAAc,CAAC,eAAe,CAyCtD,CAAA"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { refuse } from '../agent-tools/refusal.js';
|
|
2
|
+
import { deriveSlotId } from '../lib/slots.js';
|
|
3
|
+
const round = (value) => Math.round(value * 100) / 100;
|
|
4
|
+
/** A GLB's JSON chunk is read whole; one past this is not a model's description. */
|
|
5
|
+
const MAX_JSON_CHUNK = 8 * 1024 * 1024;
|
|
6
|
+
const GLB_MAGIC = 0x46_54_6c_67;
|
|
7
|
+
const GLB_JSON_CHUNK = 0x4e_4f_53_4a;
|
|
8
|
+
/**
|
|
9
|
+
* The names of a GLB's paintable surfaces (its `slot_<id>` materials, as the renderer and the
|
|
10
|
+
* editor's Paint read them), from the container's JSON chunk alone: `read` is asked for the
|
|
11
|
+
* 20-byte header, then for the JSON chunk. A file with no slot materials gives `[]`.
|
|
12
|
+
*/
|
|
13
|
+
export async function readGlbSurfaces(read) {
|
|
14
|
+
const head = await read(0, 20);
|
|
15
|
+
if (head.byteLength < 20)
|
|
16
|
+
throw new Error('Not a GLB: the file is shorter than its header.');
|
|
17
|
+
const view = new DataView(head.buffer, head.byteOffset, head.byteLength);
|
|
18
|
+
if (view.getUint32(0, true) !== GLB_MAGIC)
|
|
19
|
+
throw new Error('Not a GLB: bad magic.');
|
|
20
|
+
if (view.getUint32(16, true) !== GLB_JSON_CHUNK)
|
|
21
|
+
throw new Error('Not a GLB: no JSON chunk first.');
|
|
22
|
+
const length = view.getUint32(12, true);
|
|
23
|
+
if (length > MAX_JSON_CHUNK)
|
|
24
|
+
throw new Error('The GLB description is too large to read.');
|
|
25
|
+
const json = await read(20, 20 + length);
|
|
26
|
+
if (json.byteLength < length)
|
|
27
|
+
throw new Error('The GLB description is truncated.');
|
|
28
|
+
const parsed = JSON.parse(new TextDecoder().decode(json).trim());
|
|
29
|
+
const ids = (parsed.materials ?? []).flatMap((material) => typeof material?.name === 'string' ? [deriveSlotId(material.name)] : []);
|
|
30
|
+
return [...new Set(ids.filter((id) => id !== null))];
|
|
31
|
+
}
|
|
32
|
+
/** A thumbnail is fetched whole; one past this is not a thumbnail. */
|
|
33
|
+
const MAX_PICTURE_BYTES = 4 * 1024 * 1024;
|
|
34
|
+
/** The first `end` bytes of a body, then the rest is dropped: a server that ignores `Range`. */
|
|
35
|
+
async function readPrefix(response, end) {
|
|
36
|
+
const reader = response.body?.getReader();
|
|
37
|
+
if (!reader)
|
|
38
|
+
return new Uint8Array(await response.arrayBuffer()).subarray(0, end);
|
|
39
|
+
const chunks = [];
|
|
40
|
+
let length = 0;
|
|
41
|
+
while (length < end) {
|
|
42
|
+
const { done, value } = await reader.read();
|
|
43
|
+
if (done)
|
|
44
|
+
break;
|
|
45
|
+
chunks.push(value);
|
|
46
|
+
length += value.byteLength;
|
|
47
|
+
}
|
|
48
|
+
await reader.cancel().catch(() => undefined);
|
|
49
|
+
const bytes = new Uint8Array(length);
|
|
50
|
+
let at = 0;
|
|
51
|
+
for (const chunk of chunks) {
|
|
52
|
+
bytes.set(chunk, at);
|
|
53
|
+
at += chunk.byteLength;
|
|
54
|
+
}
|
|
55
|
+
return bytes.subarray(0, end);
|
|
56
|
+
}
|
|
57
|
+
function base64(bytes) {
|
|
58
|
+
let binary = '';
|
|
59
|
+
for (let i = 0; i < bytes.length; i += 0x80_00)
|
|
60
|
+
binary += String.fromCharCode(...bytes.subarray(i, i + 0x80_00));
|
|
61
|
+
return btoa(binary);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The library's files over `fetch`: a model by two small `Range` requests, a thumbnail whole, then
|
|
65
|
+
* `resizePicture` (the host's own: a canvas in the browser, sharp on a server) to at most 512 px.
|
|
66
|
+
* Without one the thumbnail goes as it is. A path with no host (a standalone server's built-in
|
|
67
|
+
* list) is refused by `fetch`, which the loader reports as the picture's absence.
|
|
68
|
+
*/
|
|
69
|
+
export function createFetchAssetViewIO({ fetchImpl = fetch, resolveUrl = async (url) => url, resizePicture, } = {}) {
|
|
70
|
+
const open = async (url, init) => {
|
|
71
|
+
const resolved = await resolveUrl(url);
|
|
72
|
+
if (!resolved)
|
|
73
|
+
throw new Error('the file is not available');
|
|
74
|
+
const response = await fetchImpl(resolved, init);
|
|
75
|
+
if (!response.ok)
|
|
76
|
+
throw new Error(`the file answered ${response.status}`);
|
|
77
|
+
return response;
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
range: async (url, start, end) => {
|
|
81
|
+
const response = await open(url, { headers: { Range: `bytes=${start}-${end - 1}` } });
|
|
82
|
+
return response.status === 206
|
|
83
|
+
? new Uint8Array(await response.arrayBuffer())
|
|
84
|
+
: (await readPrefix(response, end)).subarray(start);
|
|
85
|
+
},
|
|
86
|
+
picture: async (url) => {
|
|
87
|
+
const response = await open(url);
|
|
88
|
+
const mediaType = response.headers.get('content-type')?.split(';')[0]?.trim() ?? '';
|
|
89
|
+
if (!mediaType.startsWith('image/'))
|
|
90
|
+
throw new Error('the file is not an image');
|
|
91
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
92
|
+
if (bytes.byteLength > MAX_PICTURE_BYTES)
|
|
93
|
+
throw new Error('the picture is too large');
|
|
94
|
+
const shown = resizePicture ? await resizePicture(bytes, mediaType) : { bytes, mediaType };
|
|
95
|
+
return `data:${shown.mediaType};base64,${base64(shown.bytes)}`;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const failure = (error) => (error instanceof Error ? error.message : String(error));
|
|
100
|
+
/**
|
|
101
|
+
* The loader a host builds once: its surface names are cached per model for the session (a model
|
|
102
|
+
* is read by two small range requests, never twice), its pictures are fetched when asked for.
|
|
103
|
+
*/
|
|
104
|
+
export function createAssetViewLoader(io) {
|
|
105
|
+
const surfaces = new Map();
|
|
106
|
+
const surfacesOf = (src) => {
|
|
107
|
+
let known = surfaces.get(src);
|
|
108
|
+
if (!known) {
|
|
109
|
+
known = readGlbSurfaces((start, end) => io.range(src, start, end));
|
|
110
|
+
surfaces.set(src, known);
|
|
111
|
+
// A model that could not be read is read again next time.
|
|
112
|
+
known.catch(() => surfaces.delete(src));
|
|
113
|
+
}
|
|
114
|
+
return known;
|
|
115
|
+
};
|
|
116
|
+
return async (subjects, { pictures = true } = {}) => {
|
|
117
|
+
const entries = await Promise.all(subjects.map(async (subject) => {
|
|
118
|
+
const [surface, picture] = await Promise.allSettled([
|
|
119
|
+
subject.src ? surfacesOf(subject.src) : Promise.reject(new Error('it has no model')),
|
|
120
|
+
pictures && subject.thumbnail
|
|
121
|
+
? io.picture(subject.thumbnail)
|
|
122
|
+
: Promise.reject(new Error(pictures ? 'it has no picture' : 'not asked')),
|
|
123
|
+
]);
|
|
124
|
+
const missing = [
|
|
125
|
+
...(surface.status === 'rejected'
|
|
126
|
+
? [`its surfaces could not be read (${failure(surface.reason)})`]
|
|
127
|
+
: []),
|
|
128
|
+
...(pictures && picture.status === 'rejected'
|
|
129
|
+
? [`its picture could not be fetched (${failure(picture.reason)})`]
|
|
130
|
+
: []),
|
|
131
|
+
];
|
|
132
|
+
return [
|
|
133
|
+
subject.id,
|
|
134
|
+
{
|
|
135
|
+
...(surface.status === 'fulfilled' ? { surfaces: surface.value } : {}),
|
|
136
|
+
...(picture.status === 'fulfilled' ? { picture: picture.value } : {}),
|
|
137
|
+
...(missing.length ? { unavailable: missing.join('; ') } : {}),
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
}));
|
|
141
|
+
return Object.fromEntries(entries);
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/** The `paint` inputs of a call, alone or in a batch, that name no role: they list the surfaces. */
|
|
145
|
+
function roleLessPaints(tool, input) {
|
|
146
|
+
const calls = tool === 'run_batch'
|
|
147
|
+
? (input?.calls ?? []).flatMap((call) => (call?.tool === 'paint' ? [call.input] : []))
|
|
148
|
+
: tool === 'paint'
|
|
149
|
+
? [input]
|
|
150
|
+
: [];
|
|
151
|
+
return calls.flatMap((call) => {
|
|
152
|
+
const { targets, role } = (call ?? {});
|
|
153
|
+
return !role && Array.isArray(targets) ? [{ targets }] : [];
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/** Whether `assetViewNeeds` looks items up in the catalog for this call, so the host must hand it over. */
|
|
157
|
+
export const assetViewsReadCatalog = (tool, input) => tool === 'view_assets' || roleLessPaints(tool, input).length > 0;
|
|
158
|
+
/**
|
|
159
|
+
* What a host reads before a call, as the catalog is fetched: the items `view_assets` names (with
|
|
160
|
+
* their pictures), and the catalog items `paint` is asked to finish without a role, alone or in a
|
|
161
|
+
* batch (only their surfaces: paint then lists them). Every subject is the catalog's entry, never
|
|
162
|
+
* the scene's: a node's `asset.src` is data a person or a script writes, so it is not a place the
|
|
163
|
+
* host may fetch from. An item whose id the catalog does not hold is not read.
|
|
164
|
+
*/
|
|
165
|
+
export function assetViewNeeds(nodes, tool, input, context) {
|
|
166
|
+
const catalog = context.catalog ?? [];
|
|
167
|
+
if (tool === 'view_assets') {
|
|
168
|
+
const ids = input?.ids;
|
|
169
|
+
const wanted = new Set(Array.isArray(ids) ? ids : []);
|
|
170
|
+
return { subjects: catalog.filter((item) => wanted.has(item.id)), pictures: true };
|
|
171
|
+
}
|
|
172
|
+
const subjects = new Map();
|
|
173
|
+
for (const { targets } of roleLessPaints(tool, input))
|
|
174
|
+
for (const id of targets) {
|
|
175
|
+
const node = typeof id === 'string' ? nodes[id] : undefined;
|
|
176
|
+
if (node?.type !== 'item' || !node.asset?.id)
|
|
177
|
+
continue;
|
|
178
|
+
const entry = catalog.find((item) => item.id === node.asset.id);
|
|
179
|
+
if (entry?.src)
|
|
180
|
+
subjects.set(entry.id, { id: entry.id, src: entry.src });
|
|
181
|
+
}
|
|
182
|
+
return { subjects: [...subjects.values()], pictures: false };
|
|
183
|
+
}
|
|
184
|
+
const dimensionsOf = (item) => (item.dimensions ?? [1, 1, 1]).map(round).join(' × ');
|
|
185
|
+
function surfacesText(facts) {
|
|
186
|
+
if (!facts?.surfaces)
|
|
187
|
+
return 'surfaces unknown here (its model could not be read)';
|
|
188
|
+
return facts.surfaces.length
|
|
189
|
+
? `surfaces: ${facts.surfaces.join(', ')}`
|
|
190
|
+
: 'no named surfaces: paint has no part of it to finish';
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* `view_assets`: a picture of each catalog item, with its size, category and the names of its
|
|
194
|
+
* paintable surfaces. The pictures and surfaces are the host's, read before the call; a host that
|
|
195
|
+
* cannot fetch them answers the facts it has, and says so.
|
|
196
|
+
*/
|
|
197
|
+
export const viewAssets = (_nodes, { ids }, context) => {
|
|
198
|
+
const catalog = context.catalog;
|
|
199
|
+
if (!catalog)
|
|
200
|
+
refuse('no_catalog', 'This host has no item library to look in; no item has a picture here.');
|
|
201
|
+
const wanted = [...new Set(ids)];
|
|
202
|
+
const found = wanted.map((id) => catalog.find((item) => item.id === id));
|
|
203
|
+
const unknown = wanted.filter((_, i) => !found[i]);
|
|
204
|
+
if (unknown.length)
|
|
205
|
+
refuse('unknown_asset', `${unknown.map((id) => `"${id}"`).join(', ')} ${unknown.length === 1 ? 'is' : 'are'} not in the item library, so no picture exists. Use ids search_assets returned. Nothing was shown.`, { ids: unknown });
|
|
206
|
+
const items = found.map((item) => {
|
|
207
|
+
const facts = context.assetViews?.[item.id];
|
|
208
|
+
return {
|
|
209
|
+
id: item.id,
|
|
210
|
+
name: item.name,
|
|
211
|
+
category: item.category,
|
|
212
|
+
dimensions: item.dimensions ?? [1, 1, 1],
|
|
213
|
+
surfaces: facts?.surfaces ?? null,
|
|
214
|
+
picture: Boolean(facts?.picture),
|
|
215
|
+
label: `${item.name} (${item.id}): ${item.category}, ${dimensionsOf(item)} m; ${surfacesText(facts)}.`,
|
|
216
|
+
...(facts?.unavailable ? { unavailable: facts.unavailable } : {}),
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
const previews = items.flatMap(({ id, label }) => {
|
|
220
|
+
const image = context.assetViews?.[id]?.picture;
|
|
221
|
+
return image ? [{ label, image }] : [];
|
|
222
|
+
});
|
|
223
|
+
return {
|
|
224
|
+
result: {
|
|
225
|
+
items: items.map(({ label: _label, ...item }) => item),
|
|
226
|
+
shown: previews.length,
|
|
227
|
+
...(previews.length < items.length && {
|
|
228
|
+
note: `${items.length - previews.length} of ${items.length} items show no picture here: this host could not fetch ${items.length - previews.length === 1 ? 'it' : 'them'} (each item's unavailable says why). Sizes and surfaces are as read.`,
|
|
229
|
+
}),
|
|
230
|
+
previews,
|
|
231
|
+
},
|
|
232
|
+
keep: { viewed: items.map((item) => item.id) },
|
|
233
|
+
};
|
|
234
|
+
};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { AuthorScenePayload } from '../agent-tools/author-scene.js';
|
|
2
|
+
import { type AnyNode, type CompiledGeometryScript, type GeometryArtifactManifest, type SceneMaterial, type WallFace } from '../schema/index.js';
|
|
3
|
+
import type { AgentContext, AgentOperationOutcome, SceneNodes } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* `author_scene`: a whole design, read by its author from the three.js module it wrote, handed
|
|
6
|
+
* over as a payload and written as native Pascal nodes in one step. Not in AGENT_OPERATIONS: the
|
|
7
|
+
* host compiles every module first (the MCP on its server, the chat in its worker) and passes the
|
|
8
|
+
* results as `compiled`, keyed by the payload's item ids and, for an opening with code, by
|
|
9
|
+
* `<wallId>/<index>`. Candidate ceiling points use `light/<level>/<index>` from
|
|
10
|
+
* `authorSceneCeilingPoints`; a module whose compile failed is absent and comes back in the report
|
|
11
|
+
* with the host's reason.
|
|
12
|
+
*
|
|
13
|
+
* The policy, decided with the owner: accept and report. Everything valid is written; every
|
|
14
|
+
* defect comes back by the payload's own id with a reason; what Pascal fills in or drops is a
|
|
15
|
+
* sentence in `defaults`; what it writes but doubts is a `warning`. Its join rule snaps a wall
|
|
16
|
+
* end within reach of another wall's centerline onto it, reported per wall. Ids are derived from the payload, so the same payload writes the same
|
|
17
|
+
* scene.
|
|
18
|
+
*/
|
|
19
|
+
export type AuthorSceneInput = {
|
|
20
|
+
payload: AuthorScenePayload;
|
|
21
|
+
compiled: Record<string, CompiledGeometryScript>;
|
|
22
|
+
/** Why a module did not compile, keyed like `compiled`, for the report. */
|
|
23
|
+
compileErrors?: Record<string, string>;
|
|
24
|
+
replace?: boolean;
|
|
25
|
+
buildingId?: string;
|
|
26
|
+
/** Hosts compile finishes against the candidate before making one scene commit. */
|
|
27
|
+
prepareOnly?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type AuthorSceneState = {
|
|
30
|
+
version: 1;
|
|
31
|
+
buildingId: string;
|
|
32
|
+
seed: string;
|
|
33
|
+
ids: Record<string, string>;
|
|
34
|
+
nodes: Record<string, AnyNode>;
|
|
35
|
+
};
|
|
36
|
+
export type AuthorSceneDefect = {
|
|
37
|
+
id: string;
|
|
38
|
+
code: string;
|
|
39
|
+
message: string;
|
|
40
|
+
};
|
|
41
|
+
export type AuthorSceneReport = {
|
|
42
|
+
levels: number;
|
|
43
|
+
walls: number;
|
|
44
|
+
doors: number;
|
|
45
|
+
windows: number;
|
|
46
|
+
rooms: number;
|
|
47
|
+
roomsNamed: number;
|
|
48
|
+
slabs: number;
|
|
49
|
+
columns: number;
|
|
50
|
+
items: number;
|
|
51
|
+
lights: number;
|
|
52
|
+
/** Rooms whose floor finish is their module, counted by the host that compiles them after the write. */
|
|
53
|
+
floorScripts: number;
|
|
54
|
+
/** Wall faces whose finish is a module, counted by the host that compiles them after the write. */
|
|
55
|
+
faceScripts: number;
|
|
56
|
+
/** The join rule applied: wall ends moved onto a centerline, with how far. */
|
|
57
|
+
snapped: {
|
|
58
|
+
id: string;
|
|
59
|
+
end: 'start' | 'end';
|
|
60
|
+
movedM: number;
|
|
61
|
+
}[];
|
|
62
|
+
/** What Pascal filled in or dropped, one sentence per fact. */
|
|
63
|
+
defaults: string[];
|
|
64
|
+
/** Written, but doubtful: by the payload's id, with a code. */
|
|
65
|
+
warnings: AuthorSceneDefect[];
|
|
66
|
+
defects: AuthorSceneDefect[];
|
|
67
|
+
notes: string[];
|
|
68
|
+
/** Payload ids, `wall/i` openings, `room/level/i`, and `light/level/i` ceiling points to nodes. */
|
|
69
|
+
ids: Record<string, string>;
|
|
70
|
+
};
|
|
71
|
+
/** Candidate modules, compiled by the host before room derivation decides which points are used. */
|
|
72
|
+
export declare function authorSceneCeilingPoints(payload: AuthorScenePayload): {
|
|
73
|
+
id: string;
|
|
74
|
+
code: string;
|
|
75
|
+
}[];
|
|
76
|
+
/**
|
|
77
|
+
* The rooms whose floor finish is a module, by their zone once the write made it: the host reads
|
|
78
|
+
* each room's floor (`floorScriptInputs`), compiles the module for it and writes it with
|
|
79
|
+
* `setRoomFloorScript`, which core cannot do without a three.js runtime. A room whose seed found
|
|
80
|
+
* no enclosure has no zone and is already a defect.
|
|
81
|
+
*/
|
|
82
|
+
export declare function authorSceneFloorScripts(payload: AuthorScenePayload, report: Pick<AuthorSceneReport, 'ids'>): {
|
|
83
|
+
roomId: string;
|
|
84
|
+
zoneId: string;
|
|
85
|
+
code: string;
|
|
86
|
+
}[];
|
|
87
|
+
/** A wall face whose finish is a module, for the host to compile once the write is applied. */
|
|
88
|
+
export type AuthorSceneFaceScript = {
|
|
89
|
+
/** The payload's wall id. */
|
|
90
|
+
wallId: string;
|
|
91
|
+
face: WallFace;
|
|
92
|
+
nodeId: string;
|
|
93
|
+
code: string;
|
|
94
|
+
toHeight?: number;
|
|
95
|
+
};
|
|
96
|
+
/** Where a floor or face script's build was compiled: the room's floor outline, or the wall's face. */
|
|
97
|
+
export type AuthorSceneFinishHost = {
|
|
98
|
+
room: string;
|
|
99
|
+
polygon: [number, number][];
|
|
100
|
+
} | {
|
|
101
|
+
wall: string;
|
|
102
|
+
face: WallFace;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* The `finish_gaps` warning for a floor or face script whose build leaves part of its host bare:
|
|
106
|
+
* its `coverage` under FINISH_COVERED with at least one bare patch, each named by where it lies.
|
|
107
|
+
* Joints make no patch, so a tiled finish is never warned for its joints alone. Null otherwise.
|
|
108
|
+
*/
|
|
109
|
+
export declare function authorSceneFinishGaps(id: string, manifest: GeometryArtifactManifest, host: AuthorSceneFinishHost): AuthorSceneDefect | null;
|
|
110
|
+
/**
|
|
111
|
+
* The wall faces whose finish is a module, once the write made the walls and the rooms: the host
|
|
112
|
+
* reads each face (`wallFaceScriptInputs`), compiles the module for it and writes it with
|
|
113
|
+
* `setWallFaceScript`, which core cannot do without a three.js runtime. The faces that cannot take
|
|
114
|
+
* one are already `no_face` defects in the operation's report.
|
|
115
|
+
*/
|
|
116
|
+
export declare function authorSceneFaceScripts(payload: AuthorScenePayload, report: Pick<AuthorSceneReport, 'ids'>, nodes: SceneNodes): AuthorSceneFaceScript[];
|
|
117
|
+
export declare function authorScene(scene: SceneNodes, input: AuthorSceneInput, context: AgentContext): AgentOperationOutcome & {
|
|
118
|
+
result: AuthorSceneReport;
|
|
119
|
+
candidate: AuthorSceneState;
|
|
120
|
+
buildingId: string;
|
|
121
|
+
};
|
|
122
|
+
/** Commit the complete candidate after the host has compiled all of its finishes. */
|
|
123
|
+
export declare function finalizeAuthorScene(scene: SceneNodes, outcome: AgentOperationOutcome & {
|
|
124
|
+
result: AuthorSceneReport;
|
|
125
|
+
candidate: AuthorSceneState;
|
|
126
|
+
buildingId: string;
|
|
127
|
+
}): {
|
|
128
|
+
result: Record<string, unknown> & AuthorSceneReport;
|
|
129
|
+
keep?: import("./scene-checkpoint.js").SessionKeep;
|
|
130
|
+
afterReconcile?: (nodes: SceneNodes) => {
|
|
131
|
+
result: Record<string, unknown>;
|
|
132
|
+
changes?: import("./types.js").SceneChanges;
|
|
133
|
+
};
|
|
134
|
+
candidate: AuthorSceneState;
|
|
135
|
+
buildingId: string;
|
|
136
|
+
changes: {
|
|
137
|
+
materials?: readonly SceneMaterial[];
|
|
138
|
+
create?: {
|
|
139
|
+
node: AnyNode;
|
|
140
|
+
parentId?: string;
|
|
141
|
+
}[];
|
|
142
|
+
delete?: string[];
|
|
143
|
+
collections?: Record<string, import("../index.js").Collection | null>;
|
|
144
|
+
update: ({
|
|
145
|
+
id: string;
|
|
146
|
+
data: Partial<AnyNode>;
|
|
147
|
+
} | {
|
|
148
|
+
id: `building_${string}`;
|
|
149
|
+
data: {
|
|
150
|
+
metadata: {
|
|
151
|
+
authorSceneState: AuthorSceneState;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
})[];
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=author-scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"author-scene.d.ts","sourceRoot":"","sources":["../../src/agent-operations/author-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAwBrE,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAE7B,KAAK,aAAa,EAGlB,KAAK,QAAQ,EAId,MAAM,WAAW,CAAA;AAYlB,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IAChD,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,wGAAwG;IACxG,YAAY,EAAE,MAAM,CAAA;IACpB,mGAAmG;IACnG,WAAW,EAAE,MAAM,CAAA;IACnB,8EAA8E;IAC9E,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/D,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,+DAA+D;IAC/D,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,mGAAmG;IACnG,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B,CAAA;AAgLD,oGAAoG;AACpG,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,GAC1B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAMhC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAQpD;AAED,+FAA+F;AAC/F,MAAM,MAAM,qBAAqB,GAAG;IAClC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAmHD,uGAAuG;AACvG,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAkCpC;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,wBAAwB,EAClC,IAAI,EAAE,qBAAqB,GAC1B,iBAAiB,GAAG,IAAI,CAc1B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EACtC,KAAK,EAAE,UAAU,GAChB,qBAAqB,EAAE,CAEzB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,GACpB,qBAAqB,GAAG;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB,CA40BA;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,qBAAqB,GAAG;IAC/B,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;;;;;;;eAFY,gBAAgB;gBACf,MAAM;;;;;;;;;;;;;;;;;;;;;EA4BrB"}
|