@pascal-app/core 1.1.0 → 1.1.2

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.
Files changed (133) hide show
  1. package/dist/agent-operations/__fixtures__/cases.d.ts +3 -2
  2. package/dist/agent-operations/__fixtures__/cases.d.ts.map +1 -1
  3. package/dist/agent-operations/__fixtures__/place-items-cases.d.ts.map +1 -1
  4. package/dist/agent-operations/__fixtures__/place-items-cases.js +28 -0
  5. package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +2618 -2618
  6. package/dist/agent-operations/asset-catalog.d.ts +21 -11
  7. package/dist/agent-operations/asset-catalog.d.ts.map +1 -1
  8. package/dist/agent-operations/asset-catalog.js +28 -10
  9. package/dist/agent-operations/asset-views.d.ts +8 -3
  10. package/dist/agent-operations/asset-views.d.ts.map +1 -1
  11. package/dist/agent-operations/asset-views.js +19 -3
  12. package/dist/agent-operations/batch.d.ts +4 -2
  13. package/dist/agent-operations/batch.d.ts.map +1 -1
  14. package/dist/agent-operations/batch.js +9 -6
  15. package/dist/agent-operations/catalog-asset.d.ts +15 -0
  16. package/dist/agent-operations/catalog-asset.d.ts.map +1 -0
  17. package/dist/agent-operations/catalog-asset.js +4 -0
  18. package/dist/agent-operations/circulation-spaces.d.ts +585 -585
  19. package/dist/agent-operations/design-brief.d.ts.map +1 -1
  20. package/dist/agent-operations/design-brief.js +2 -0
  21. package/dist/agent-operations/furnish-room.d.ts.map +1 -1
  22. package/dist/agent-operations/furnish-room.js +2 -1
  23. package/dist/agent-operations/index.d.ts +5716 -7
  24. package/dist/agent-operations/index.d.ts.map +1 -1
  25. package/dist/agent-operations/index.js +17 -3
  26. package/dist/agent-operations/level-reads.d.ts.map +1 -1
  27. package/dist/agent-operations/level-reads.js +4 -1
  28. package/dist/agent-operations/place-in-room.d.ts.map +1 -1
  29. package/dist/agent-operations/place-in-room.js +2 -1
  30. package/dist/agent-operations/place-items.d.ts.map +1 -1
  31. package/dist/agent-operations/place-items.js +2 -1
  32. package/dist/agent-operations/scene-queries.d.ts +3818 -3818
  33. package/dist/agent-operations/scene-view.d.ts.map +1 -1
  34. package/dist/agent-operations/scene-view.js +38 -13
  35. package/dist/agent-operations/search-assets.d.ts.map +1 -1
  36. package/dist/agent-operations/search-assets.js +6 -0
  37. package/dist/agent-operations/types.d.ts +10 -2
  38. package/dist/agent-operations/types.d.ts.map +1 -1
  39. package/dist/agent-operations/usage-checks.js +18 -3
  40. package/dist/agent-operations/verify-scene.d.ts +7 -3
  41. package/dist/agent-operations/verify-scene.d.ts.map +1 -1
  42. package/dist/agent-operations/verify-scene.js +15 -7
  43. package/dist/agent-tools/assets.js +1 -1
  44. package/dist/building/__fixtures__/wall-opening-cases.d.ts +30 -30
  45. package/dist/building/level-duplication.d.ts +3409 -3409
  46. package/dist/building/level-duplication.d.ts.map +1 -1
  47. package/dist/building/level-duplication.js +3 -1
  48. package/dist/building/wall-openings.d.ts +75 -75
  49. package/dist/commands/structure/shared.d.ts +3407 -3407
  50. package/dist/commands/structure/zone-wall-merge.d.ts +652 -652
  51. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3818 -3818
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -0
  55. package/dist/lib/__fixtures__/mezzanine.d.ts +2003 -2003
  56. package/dist/lib/absorb-wall-separators.d.ts +1032 -1032
  57. package/dist/lib/asset-storage.d.ts.map +1 -1
  58. package/dist/lib/asset-storage.js +3 -0
  59. package/dist/lib/floor-foundation-datum.d.ts.map +1 -1
  60. package/dist/lib/floor-foundation-datum.js +5 -1
  61. package/dist/lib/floorplan/context.d.ts +95 -0
  62. package/dist/lib/floorplan/context.d.ts.map +1 -0
  63. package/dist/lib/floorplan/context.js +155 -0
  64. package/dist/lib/floorplan/index.d.ts +6 -0
  65. package/dist/lib/floorplan/index.d.ts.map +1 -0
  66. package/dist/lib/floorplan/index.js +5 -0
  67. package/dist/lib/floorplan/marks.d.ts +71 -0
  68. package/dist/lib/floorplan/marks.d.ts.map +1 -0
  69. package/dist/lib/floorplan/marks.js +157 -0
  70. package/dist/lib/floorplan/plan-math.d.ts +18 -0
  71. package/dist/lib/floorplan/plan-math.d.ts.map +1 -0
  72. package/dist/lib/floorplan/plan-math.js +82 -0
  73. package/dist/lib/floorplan/svg-paths.d.ts +17 -0
  74. package/dist/lib/floorplan/svg-paths.d.ts.map +1 -0
  75. package/dist/lib/floorplan/svg-paths.js +92 -0
  76. package/dist/lib/floorplan/wall-affordances.d.ts +31 -0
  77. package/dist/lib/floorplan/wall-affordances.d.ts.map +1 -0
  78. package/dist/lib/floorplan/wall-affordances.js +24 -0
  79. package/dist/lib/steps.d.ts +8 -0
  80. package/dist/lib/steps.d.ts.map +1 -0
  81. package/dist/lib/steps.js +7 -0
  82. package/dist/registry/__fixtures__/roof-planes.d.ts +69 -0
  83. package/dist/registry/__fixtures__/roof-planes.d.ts.map +1 -0
  84. package/dist/registry/__fixtures__/roof-planes.js +59 -0
  85. package/dist/registry/index.d.ts +2 -1
  86. package/dist/registry/index.d.ts.map +1 -1
  87. package/dist/registry/index.js +1 -0
  88. package/dist/registry/roofs.d.ts +34 -0
  89. package/dist/registry/roofs.d.ts.map +1 -0
  90. package/dist/registry/roofs.js +61 -0
  91. package/dist/registry/types.d.ts +30 -0
  92. package/dist/registry/types.d.ts.map +1 -1
  93. package/dist/registry/validate-relations.d.ts +5 -1
  94. package/dist/registry/validate-relations.d.ts.map +1 -1
  95. package/dist/registry/validate-relations.js +6 -2
  96. package/dist/schema/asset-url.d.ts +8 -0
  97. package/dist/schema/asset-url.d.ts.map +1 -1
  98. package/dist/schema/asset-url.js +17 -0
  99. package/dist/schema/nodes/roof.d.ts +1 -1
  100. package/dist/schema/nodes/roof.d.ts.map +1 -1
  101. package/dist/schema/nodes/roof.js +13 -8
  102. package/dist/schema/types.d.ts +1 -1
  103. package/dist/services/roof-level.d.ts.map +1 -1
  104. package/dist/services/roof-level.js +12 -2
  105. package/dist/services/roof-move.d.ts +4 -2
  106. package/dist/services/roof-move.d.ts.map +1 -1
  107. package/dist/services/roof-move.js +21 -9
  108. package/dist/spatial/usage-field/findings.d.ts +10 -1
  109. package/dist/spatial/usage-field/findings.d.ts.map +1 -1
  110. package/dist/spatial/usage-field/findings.js +56 -12
  111. package/dist/spatial/usage-field/measure.d.ts +3 -1
  112. package/dist/spatial/usage-field/measure.d.ts.map +1 -1
  113. package/dist/spatial/usage-field/measure.js +7 -2
  114. package/dist/spatial/usage-field/path.d.ts.map +1 -1
  115. package/dist/spatial/usage-field/path.js +28 -18
  116. package/dist/store/actions/node-actions.d.ts +2380 -2380
  117. package/dist/store/scene-annotations.d.ts +1279 -1279
  118. package/dist/systems/document-reconcile.d.ts.map +1 -1
  119. package/dist/systems/document-reconcile.js +1 -2
  120. package/dist/systems/roof/roof-elevation.d.ts +11 -6
  121. package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
  122. package/dist/systems/roof/roof-elevation.js +24 -11
  123. package/dist/systems/slab/__fixtures__/floor-step.d.ts +2381 -2381
  124. package/dist/systems/slab/__fixtures__/raised-room.d.ts +3818 -3818
  125. package/dist/systems/stair/stair-opening-preview.d.ts +900 -900
  126. package/dist/utils/ensure-scene-openings.d.ts +4815 -4815
  127. package/dist/utils/floor-plate-migration.d.ts +1032 -1032
  128. package/dist/utils/owned-floor-opening-migration.d.ts +1032 -1032
  129. package/dist/utils/reconcile-structure-on-load.d.ts +2380 -2380
  130. package/dist/utils/scene-bounds.d.ts +32 -0
  131. package/dist/utils/scene-bounds.d.ts.map +1 -0
  132. package/dist/utils/scene-bounds.js +201 -0
  133. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { type AnyNode, type AssetInput } from '../../schema/index.js';
1
+ import { type AnyNode } from '../../schema/index.js';
2
+ import type { CatalogAsset } from '../catalog-asset.js';
2
3
  import type { AgentContext } from '../types.js';
3
4
  import type { SessionRecord } from '../scene-checkpoint.js';
4
5
  import type { AssetViewFacts } from '../asset-views.js';
@@ -22,7 +23,7 @@ export type AgentToolCase = {
22
23
  input: Record<string, unknown>;
23
24
  context?: {
24
25
  activeLevelId?: string | null;
25
- catalog?: AssetInput[];
26
+ catalog?: CatalogAsset[];
26
27
  assetViews?: Record<string, AssetViewFacts>;
27
28
  session?: () => SessionRecord;
28
29
  designBrief?: AgentContext['designBrief'];
@@ -1 +1 @@
1
- {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/cases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/cases.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"place-items-cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/place-items-cases.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,EAShB,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAgDxD;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,UAAU,CAiFtC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,CAAc,GAAG,UAAU,CAgCnF;AACD,eAAO,MAAM,YAAY,EAIpB,UAAU,EAAE,CAAA;AAsBjB,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAwZ5C,CAAA"}
1
+ {"version":3,"file":"place-items-cases.d.ts","sourceRoot":"","sources":["../../../src/agent-operations/__fixtures__/place-items-cases.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,EAShB,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAiDxD;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,UAAU,CAiFtC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,CAAc,GAAG,UAAU,CAgCnF;AACD,eAAO,MAAM,YAAY,EAIpB,UAAU,EAAE,CAAA;AAsBjB,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAmb5C,CAAA"}
@@ -30,6 +30,7 @@ const CATALOG = [
30
30
  item('palm', 'Palm', 'outdoor', ['tree', 'garden']),
31
31
  ];
32
32
  const library = { activeLevelId: null, catalog: CATALOG };
33
+ const SCRIPTED_SOFA = compiledSolid([2, 0.8, 0.9]);
33
34
  const hosted = (id, dimensions, attachTo) => ({ ...item(id, id, 'decor'), dimensions, ...(attachTo ? { attachTo } : {}) });
34
35
  const HOSTED_CATALOG = [
35
36
  hosted('art', [0.8, 0.6, 0.04], 'wall'),
@@ -295,6 +296,33 @@ export const PLACE_ITEMS_CASES = [
295
296
  mentions: ['search_assets', '1 of 2'],
296
297
  },
297
298
  },
299
+ {
300
+ name: 'a library item built from a script is placed with it, so its params stay editable',
301
+ tool: 'place_items',
302
+ scene: storeysScene,
303
+ input: { levelId: 'level_ground', items: [{ assetId: 'scripted-sofa', x: 2, z: 2 }] },
304
+ context: {
305
+ activeLevelId: null,
306
+ catalog: [
307
+ {
308
+ ...item('scripted-sofa', 'Scripted Sofa', 'furniture'),
309
+ src: artifactUrl(SCRIPTED_SOFA.sha256),
310
+ script: scriptSource(SCRIPTED_SOFA),
311
+ },
312
+ ],
313
+ },
314
+ expect: {
315
+ result: { ok: true },
316
+ check: (_result, nodes) => {
317
+ const sofa = placed(nodes, 'scripted-sofa');
318
+ return sofa?.source?.script === SCRIPTED_SOFA.script &&
319
+ sofa.asset.src === artifactUrl(SCRIPTED_SOFA.sha256) &&
320
+ !('script' in sofa.asset)
321
+ ? []
322
+ : [`placed without its script: ${JSON.stringify(sofa?.source)}`];
323
+ },
324
+ },
325
+ },
298
326
  {
299
327
  name: 'an indoor item outside every room of a level with rooms is refused',
300
328
  tool: 'place_items',