@snaptrude/plugin-core 0.5.0 → 0.7.0

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 (134) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/api-manifest.full.json +2644 -542
  3. package/api-manifest.json +2606 -424
  4. package/dist/api/analysis/heatmaps.d.ts +234 -0
  5. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  6. package/dist/api/analysis/illuminance.d.ts +145 -0
  7. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  8. package/dist/api/analysis/index.d.ts +44 -0
  9. package/dist/api/analysis/index.d.ts.map +1 -0
  10. package/dist/api/analysis/shadows.d.ts +165 -0
  11. package/dist/api/analysis/shadows.d.ts.map +1 -0
  12. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  13. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  14. package/dist/api/analysis/sunpath.d.ts +80 -0
  15. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  16. package/dist/api/core/index.d.ts +10 -0
  17. package/dist/api/core/index.d.ts.map +1 -1
  18. package/dist/api/core/io/import/index.d.ts +392 -0
  19. package/dist/api/core/io/import/index.d.ts.map +1 -0
  20. package/dist/api/core/io/index.d.ts +35 -0
  21. package/dist/api/core/io/index.d.ts.map +1 -0
  22. package/dist/api/core/io/job/index.d.ts +139 -0
  23. package/dist/api/core/io/job/index.d.ts.map +1 -0
  24. package/dist/api/core/io/query/index.d.ts +74 -0
  25. package/dist/api/core/io/query/index.d.ts.map +1 -0
  26. package/dist/api/core/io/terrain/index.d.ts +206 -0
  27. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  28. package/dist/api/core/io/underlay/index.d.ts +286 -0
  29. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  30. package/dist/api/core/layers.d.ts +7 -7
  31. package/dist/api/core/proposals/index.d.ts +475 -0
  32. package/dist/api/core/proposals/index.d.ts.map +1 -0
  33. package/dist/api/design/create/index.d.ts +218 -0
  34. package/dist/api/design/create/index.d.ts.map +1 -1
  35. package/dist/api/design/doors/index.d.ts +159 -0
  36. package/dist/api/design/doors/index.d.ts.map +1 -1
  37. package/dist/api/design/furniture/index.d.ts +34 -5
  38. package/dist/api/design/furniture/index.d.ts.map +1 -1
  39. package/dist/api/design/index.d.ts +83 -0
  40. package/dist/api/design/index.d.ts.map +1 -1
  41. package/dist/api/design/lock.d.ts +26 -0
  42. package/dist/api/design/lock.d.ts.map +1 -1
  43. package/dist/api/design/materials/index.d.ts +159 -2
  44. package/dist/api/design/materials/index.d.ts.map +1 -1
  45. package/dist/api/design/query/index.d.ts +115 -5
  46. package/dist/api/design/query/index.d.ts.map +1 -1
  47. package/dist/api/design/query/spaces.d.ts +3 -3
  48. package/dist/api/design/selection/index.d.ts +144 -0
  49. package/dist/api/design/selection/index.d.ts.map +1 -1
  50. package/dist/api/design/transform/index.d.ts +83 -2
  51. package/dist/api/design/transform/index.d.ts.map +1 -1
  52. package/dist/api/design/update/index.d.ts +168 -0
  53. package/dist/api/design/update/index.d.ts.map +1 -1
  54. package/dist/api/design/windows/index.d.ts +113 -2
  55. package/dist/api/design/windows/index.d.ts.map +1 -1
  56. package/dist/api/entity/space.d.ts +2 -2
  57. package/dist/api/entity/story.d.ts +101 -7
  58. package/dist/api/entity/story.d.ts.map +1 -1
  59. package/dist/api/index.d.ts +5 -0
  60. package/dist/api/index.d.ts.map +1 -1
  61. package/dist/api/presentation/import.d.ts +49 -4
  62. package/dist/api/presentation/import.d.ts.map +1 -1
  63. package/dist/api/presentation/views.d.ts +210 -5
  64. package/dist/api/presentation/views.d.ts.map +1 -1
  65. package/dist/api/program/areas.d.ts +42 -12
  66. package/dist/api/program/areas.d.ts.map +1 -1
  67. package/dist/api/program/index.d.ts +3 -11
  68. package/dist/api/program/index.d.ts.map +1 -1
  69. package/dist/api/program/layout.d.ts +186 -11
  70. package/dist/api/program/layout.d.ts.map +1 -1
  71. package/dist/api/program/site.d.ts +84 -0
  72. package/dist/api/program/site.d.ts.map +1 -1
  73. package/dist/errors/codes.d.ts +34 -0
  74. package/dist/errors/codes.d.ts.map +1 -0
  75. package/dist/errors/envelope.d.ts +56 -0
  76. package/dist/errors/envelope.d.ts.map +1 -0
  77. package/dist/errors/index.d.ts +6 -0
  78. package/dist/errors/index.d.ts.map +1 -0
  79. package/dist/errors/plugin-error.d.ts +69 -0
  80. package/dist/errors/plugin-error.d.ts.map +1 -0
  81. package/dist/handles.d.ts +33 -0
  82. package/dist/handles.d.ts.map +1 -1
  83. package/dist/host-utils.d.ts +4 -0
  84. package/dist/host-utils.d.ts.map +1 -1
  85. package/dist/index.cjs +1942 -998
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1810 -994
  90. package/dist/index.js.map +1 -1
  91. package/package.json +2 -1
  92. package/scripts/generate-manifest.test.mjs +103 -4
  93. package/src/api/analysis/heatmaps.ts +256 -0
  94. package/src/api/analysis/illuminance.ts +155 -0
  95. package/src/api/analysis/index.ts +46 -0
  96. package/src/api/analysis/shadows.ts +183 -0
  97. package/src/api/analysis/sunlightHours.ts +211 -0
  98. package/src/api/analysis/sunpath.ts +83 -0
  99. package/src/api/core/index.ts +10 -0
  100. package/src/api/core/io/import/index.ts +432 -0
  101. package/src/api/core/io/index.ts +37 -0
  102. package/src/api/core/io/job/index.ts +140 -0
  103. package/src/api/core/io/query/index.ts +71 -0
  104. package/src/api/core/io/terrain/index.ts +214 -0
  105. package/src/api/core/io/underlay/index.ts +295 -0
  106. package/src/api/core/proposals/index.ts +509 -0
  107. package/src/api/design/create/index.ts +258 -0
  108. package/src/api/design/doors/index.ts +168 -0
  109. package/src/api/design/erase/index.ts +1 -1
  110. package/src/api/design/furniture/index.ts +36 -5
  111. package/src/api/design/index.ts +87 -0
  112. package/src/api/design/lock.ts +27 -0
  113. package/src/api/design/materials/index.ts +182 -2
  114. package/src/api/design/query/index.ts +81 -0
  115. package/src/api/design/selection/index.ts +129 -0
  116. package/src/api/design/transform/index.ts +74 -2
  117. package/src/api/design/update/index.ts +167 -0
  118. package/src/api/design/windows/index.ts +128 -2
  119. package/src/api/entity/story.ts +105 -7
  120. package/src/api/index.ts +5 -0
  121. package/src/api/presentation/import.ts +45 -4
  122. package/src/api/presentation/views.ts +221 -5
  123. package/src/api/program/areas.ts +34 -12
  124. package/src/api/program/index.ts +3 -11
  125. package/src/api/program/layout.ts +195 -11
  126. package/src/api/program/site.ts +93 -0
  127. package/src/errors/codes.ts +136 -0
  128. package/src/errors/envelope.ts +75 -0
  129. package/src/errors/index.ts +21 -0
  130. package/src/errors/plugin-error.ts +134 -0
  131. package/src/handles.ts +46 -0
  132. package/src/host-utils.ts +4 -0
  133. package/src/index.ts +1 -0
  134. package/test/errors.test.mjs +184 -0
package/dist/index.cjs CHANGED
@@ -35,21 +35,29 @@ __export(index_exports, {
35
35
  BooleanOptions: () => BooleanOptions,
36
36
  BooleanOutcome: () => BooleanOutcome,
37
37
  BrepHandle: () => BrepHandle,
38
+ CODE_META: () => CODE_META,
39
+ CadJsonInput: () => CadJsonInput,
38
40
  CircleHandle: () => CircleHandle,
39
41
  CommentHandle: () => CommentHandle,
40
42
  ComponentHandle: () => ComponentHandle,
41
43
  ContourHandle: () => ContourHandle,
42
44
  CurveHandle: () => CurveHandle,
43
45
  DEFAULT_ERASE_STRATEGIES: () => DEFAULT_ERASE_STRATEGIES,
46
+ ERROR_ENVELOPE_VERSION: () => ERROR_ENVELOPE_VERSION,
44
47
  EdgeHandle: () => EdgeHandle,
45
48
  ErasableEdgeRef: () => ErasableEdgeRef,
46
49
  EraseStrategy: () => EraseStrategy,
47
50
  FaceHandle: () => FaceHandle,
48
51
  HalfEdgeHandle: () => HalfEdgeHandle,
52
+ ImportJobHandle: () => ImportJobHandle,
53
+ ImportJobStatus: () => ImportJobStatus,
54
+ ImportSource: () => ImportSource,
49
55
  LineHandle: () => LineHandle,
50
56
  MassHandle: () => MassHandle,
51
57
  MaterialHandle: () => MaterialHandle,
58
+ ModelFormat: () => ModelFormat,
52
59
  OffsetSplitOutcome: () => OffsetSplitOutcome,
60
+ PLUGIN_ERROR_CODES: () => PLUGIN_ERROR_CODES,
53
61
  PUnitType: () => PUnitType,
54
62
  PluginAIInspirationAppliedPreset: () => PluginAIInspirationAppliedPreset,
55
63
  PluginAIInspirationDebugSummary: () => PluginAIInspirationDebugSummary,
@@ -76,6 +84,24 @@ __export(index_exports, {
76
84
  PluginAIInspirationVideoMotion: () => PluginAIInspirationVideoMotion,
77
85
  PluginAIInspirationVideoOptions: () => PluginAIInspirationVideoOptions,
78
86
  PluginAdjacencyLevel: () => PluginAdjacencyLevel,
87
+ PluginAlignEdge: () => PluginAlignEdge,
88
+ PluginAnalysisApi: () => PluginAnalysisApi,
89
+ PluginAnalysisComputeResult: () => PluginAnalysisComputeResult,
90
+ PluginAnalysisHeatmapGridCell: () => PluginAnalysisHeatmapGridCell,
91
+ PluginAnalysisHeatmapOptions: () => PluginAnalysisHeatmapOptions,
92
+ PluginAnalysisHeatmapSpaceEntry: () => PluginAnalysisHeatmapSpaceEntry,
93
+ PluginAnalysisHeatmapsApi: () => PluginAnalysisHeatmapsApi,
94
+ PluginAnalysisHeatmapsRenderResult: () => PluginAnalysisHeatmapsRenderResult,
95
+ PluginAnalysisIlluminanceApi: () => PluginAnalysisIlluminanceApi,
96
+ PluginAnalysisJobState: () => PluginAnalysisJobState,
97
+ PluginAnalysisJobStateResult: () => PluginAnalysisJobStateResult,
98
+ PluginAnalysisJobStatus: () => PluginAnalysisJobStatus,
99
+ PluginAnalysisShadowsApi: () => PluginAnalysisShadowsApi,
100
+ PluginAnalysisShadowsDateTimeResult: () => PluginAnalysisShadowsDateTimeResult,
101
+ PluginAnalysisShadowsEnableOptions: () => PluginAnalysisShadowsEnableOptions,
102
+ PluginAnalysisShadowsSetDateTimeArgs: () => PluginAnalysisShadowsSetDateTimeArgs,
103
+ PluginAnalysisSunlightHoursApi: () => PluginAnalysisSunlightHoursApi,
104
+ PluginAnalysisSunpathApi: () => PluginAnalysisSunpathApi,
79
105
  PluginApi: () => PluginApi,
80
106
  PluginAreaClass: () => PluginAreaClass,
81
107
  PluginAreaUnit: () => PluginAreaUnit,
@@ -135,6 +161,12 @@ __export(index_exports, {
135
161
  PluginCoreGroupsListResult: () => PluginCoreGroupsListResult,
136
162
  PluginCoreGroupsUpdateArgs: () => PluginCoreGroupsUpdateArgs,
137
163
  PluginCoreGroupsUpdateResult: () => PluginCoreGroupsUpdateResult,
164
+ PluginCoreIoApi: () => PluginCoreIoApi,
165
+ PluginCoreIoImportApi: () => PluginCoreIoImportApi,
166
+ PluginCoreIoJobApi: () => PluginCoreIoJobApi,
167
+ PluginCoreIoQueryApi: () => PluginCoreIoQueryApi,
168
+ PluginCoreIoTerrainApi: () => PluginCoreIoTerrainApi,
169
+ PluginCoreIoUnderlayApi: () => PluginCoreIoUnderlayApi,
138
170
  PluginCoreLayer: () => PluginCoreLayer,
139
171
  PluginCoreLayerType: () => PluginCoreLayerType,
140
172
  PluginCoreLayersApi: () => PluginCoreLayersApi,
@@ -148,6 +180,23 @@ __export(index_exports, {
148
180
  PluginCoreLayersSetActiveResult: () => PluginCoreLayersSetActiveResult,
149
181
  PluginCoreLayersUpdateArgs: () => PluginCoreLayersUpdateArgs,
150
182
  PluginCoreLayersUpdateResult: () => PluginCoreLayersUpdateResult,
183
+ PluginCoreProposalRef: () => PluginCoreProposalRef,
184
+ PluginCoreProposalsApi: () => PluginCoreProposalsApi,
185
+ PluginCoreProposalsCreateArgs: () => PluginCoreProposalsCreateArgs,
186
+ PluginCoreProposalsCreateResult: () => PluginCoreProposalsCreateResult,
187
+ PluginCoreProposalsDeleteArgs: () => PluginCoreProposalsDeleteArgs,
188
+ PluginCoreProposalsDeleteResult: () => PluginCoreProposalsDeleteResult,
189
+ PluginCoreProposalsGetActiveResult: () => PluginCoreProposalsGetActiveResult,
190
+ PluginCoreProposalsGetArgs: () => PluginCoreProposalsGetArgs,
191
+ PluginCoreProposalsGetResult: () => PluginCoreProposalsGetResult,
192
+ PluginCoreProposalsIsActiveArgs: () => PluginCoreProposalsIsActiveArgs,
193
+ PluginCoreProposalsListForComponentArgs: () => PluginCoreProposalsListForComponentArgs,
194
+ PluginCoreProposalsListForComponentResult: () => PluginCoreProposalsListForComponentResult,
195
+ PluginCoreProposalsListResult: () => PluginCoreProposalsListResult,
196
+ PluginCoreProposalsRenameArgs: () => PluginCoreProposalsRenameArgs,
197
+ PluginCoreProposalsRenameResult: () => PluginCoreProposalsRenameResult,
198
+ PluginCoreProposalsSetActiveArgs: () => PluginCoreProposalsSetActiveArgs,
199
+ PluginCoreProposalsSetActiveResult: () => PluginCoreProposalsSetActiveResult,
151
200
  PluginCoreTag: () => PluginCoreTag,
152
201
  PluginCoreTagCategory: () => PluginCoreTagCategory,
153
202
  PluginCoreTagsApi: () => PluginCoreTagsApi,
@@ -180,6 +229,7 @@ __export(index_exports, {
180
229
  PluginCoreTagsUpdateResult: () => PluginCoreTagsUpdateResult,
181
230
  PluginCreateSpaceItem: () => PluginCreateSpaceItem,
182
231
  PluginDepartmentId: () => PluginDepartmentId,
232
+ PluginDesignAlignArgs: () => PluginDesignAlignArgs,
183
233
  PluginDesignApi: () => PluginDesignApi,
184
234
  PluginDesignBooleanApi: () => PluginDesignBooleanApi,
185
235
  PluginDesignBooleanIntersectArgs: () => PluginDesignBooleanIntersectArgs,
@@ -191,6 +241,7 @@ __export(index_exports, {
191
241
  PluginDesignCreateCeilingArgs: () => PluginDesignCreateCeilingArgs,
192
242
  PluginDesignCreateColumnArgs: () => PluginDesignCreateColumnArgs,
193
243
  PluginDesignCreateCopyArgs: () => PluginDesignCreateCopyArgs,
244
+ PluginDesignCreateDoorArgs: () => PluginDesignCreateDoorArgs,
194
245
  PluginDesignCreateFloorArgs: () => PluginDesignCreateFloorArgs,
195
246
  PluginDesignCreateFurnitureArgs: () => PluginDesignCreateFurnitureArgs,
196
247
  PluginDesignCreateMassArgs: () => PluginDesignCreateMassArgs,
@@ -200,9 +251,13 @@ __export(index_exports, {
200
251
  PluginDesignCreateSpaceArgs: () => PluginDesignCreateSpaceArgs,
201
252
  PluginDesignCreateStaircaseArgs: () => PluginDesignCreateStaircaseArgs,
202
253
  PluginDesignCreateWallsArgs: () => PluginDesignCreateWallsArgs,
254
+ PluginDesignCreateWindowArgs: () => PluginDesignCreateWindowArgs,
203
255
  PluginDesignDeleteApi: () => PluginDesignDeleteApi,
204
256
  PluginDesignDeleteEntitiesArgs: () => PluginDesignDeleteEntitiesArgs,
205
257
  PluginDesignDoorArgs: () => PluginDesignDoorArgs,
258
+ PluginDesignDoorExistsArgs: () => PluginDesignDoorExistsArgs,
259
+ PluginDesignDoorGetCatalogItemArgs: () => PluginDesignDoorGetCatalogItemArgs,
260
+ PluginDesignDoorListCatalogArgs: () => PluginDesignDoorListCatalogArgs,
206
261
  PluginDesignDoorMirrorArgs: () => PluginDesignDoorMirrorArgs,
207
262
  PluginDesignDoorSetHeightArgs: () => PluginDesignDoorSetHeightArgs,
208
263
  PluginDesignDoorSetWidthArgs: () => PluginDesignDoorSetWidthArgs,
@@ -215,16 +270,22 @@ __export(index_exports, {
215
270
  PluginDesignFurnitureExistsArgs: () => PluginDesignFurnitureExistsArgs,
216
271
  PluginDesignFurnitureGetCatalogItemArgs: () => PluginDesignFurnitureGetCatalogItemArgs,
217
272
  PluginDesignFurnitureListCatalogArgs: () => PluginDesignFurnitureListCatalogArgs,
273
+ PluginDesignIsAreaLockedArgs: () => PluginDesignIsAreaLockedArgs,
218
274
  PluginDesignIsLockedArgs: () => PluginDesignIsLockedArgs,
219
275
  PluginDesignListErasableEdgesArgs: () => PluginDesignListErasableEdgesArgs,
276
+ PluginDesignLockAreaArgs: () => PluginDesignLockAreaArgs,
220
277
  PluginDesignLockArgs: () => PluginDesignLockArgs,
221
278
  PluginDesignMaterialsApi: () => PluginDesignMaterialsApi,
222
279
  PluginDesignMaterialsApplyArgs: () => PluginDesignMaterialsApplyArgs,
280
+ PluginDesignMaterialsApplyToFacesArgs: () => PluginDesignMaterialsApplyToFacesArgs,
223
281
  PluginDesignMaterialsComponentArgs: () => PluginDesignMaterialsComponentArgs,
224
282
  PluginDesignMaterialsCreateArgs: () => PluginDesignMaterialsCreateArgs,
283
+ PluginDesignMaterialsGetByFaceArgs: () => PluginDesignMaterialsGetByFaceArgs,
225
284
  PluginDesignMaterialsGetInfoArgs: () => PluginDesignMaterialsGetInfoArgs,
226
285
  PluginDesignMaterialsListArgs: () => PluginDesignMaterialsListArgs,
286
+ PluginDesignMaterialsListByFaceArgs: () => PluginDesignMaterialsListByFaceArgs,
227
287
  PluginDesignMaterialsResetArgs: () => PluginDesignMaterialsResetArgs,
288
+ PluginDesignMaterialsResetFacesArgs: () => PluginDesignMaterialsResetFacesArgs,
228
289
  PluginDesignMoveArgs: () => PluginDesignMoveArgs,
229
290
  PluginDesignOffsetSplitArgs: () => PluginDesignOffsetSplitArgs,
230
291
  PluginDesignQueryApi: () => PluginDesignQueryApi,
@@ -246,10 +307,16 @@ __export(index_exports, {
246
307
  PluginDesignSelectionApi: () => PluginDesignSelectionApi,
247
308
  PluginDesignSelectionRemoveArgs: () => PluginDesignSelectionRemoveArgs,
248
309
  PluginDesignSelectionSetArgs: () => PluginDesignSelectionSetArgs,
310
+ PluginDesignSetLabelArgs: () => PluginDesignSetLabelArgs,
249
311
  PluginDesignTransformApi: () => PluginDesignTransformApi,
312
+ PluginDesignUnlockAreaArgs: () => PluginDesignUnlockAreaArgs,
250
313
  PluginDesignUnlockArgs: () => PluginDesignUnlockArgs,
251
314
  PluginDesignUpdateApi: () => PluginDesignUpdateApi,
315
+ PluginDesignUpdateStaircaseArgs: () => PluginDesignUpdateStaircaseArgs,
252
316
  PluginDesignWindowArgs: () => PluginDesignWindowArgs,
317
+ PluginDesignWindowExistsArgs: () => PluginDesignWindowExistsArgs,
318
+ PluginDesignWindowGetCatalogItemArgs: () => PluginDesignWindowGetCatalogItemArgs,
319
+ PluginDesignWindowListCatalogArgs: () => PluginDesignWindowListCatalogArgs,
253
320
  PluginDesignWindowSetHeightArgs: () => PluginDesignWindowSetHeightArgs,
254
321
  PluginDesignWindowSetWidthArgs: () => PluginDesignWindowSetWidthArgs,
255
322
  PluginDesignWindowsApi: () => PluginDesignWindowsApi,
@@ -258,6 +325,9 @@ __export(index_exports, {
258
325
  PluginEntityMeasurements: () => PluginEntityMeasurements,
259
326
  PluginEntityProperties: () => PluginEntityProperties,
260
327
  PluginEntityType: () => PluginEntityType,
328
+ PluginError: () => PluginError,
329
+ PluginExecutionError: () => PluginExecutionError,
330
+ PluginFaceMaterial: () => PluginFaceMaterial,
261
331
  PluginFurnitureCatalogItem: () => PluginFurnitureCatalogItem,
262
332
  PluginGeomApi: () => PluginGeomApi,
263
333
  PluginGeomCreateApi: () => PluginGeomCreateApi,
@@ -435,15 +505,29 @@ __export(index_exports, {
435
505
  PluginGeomUpdateProfileSimplifyArgs: () => PluginGeomUpdateProfileSimplifyArgs,
436
506
  PluginGridApi: () => PluginGridApi,
437
507
  PluginGridValueArgs: () => PluginGridValueArgs,
508
+ PluginHandleError: () => PluginHandleError,
438
509
  PluginHistoryApi: () => PluginHistoryApi,
439
510
  PluginHistoryStepArgs: () => PluginHistoryStepArgs,
440
511
  PluginHistoryStepResult: () => PluginHistoryStepResult,
512
+ PluginImportCadJsonArgs: () => PluginImportCadJsonArgs,
513
+ PluginImportDwgArgs: () => PluginImportDwgArgs,
514
+ PluginImportImageArgs: () => PluginImportImageArgs,
515
+ PluginImportJobArgs: () => PluginImportJobArgs,
516
+ PluginImportModelArgs: () => PluginImportModelArgs,
517
+ PluginImportPdfArgs: () => PluginImportPdfArgs,
518
+ PluginImportTerrainArgs: () => PluginImportTerrainArgs,
519
+ PluginInternalError: () => PluginInternalError,
520
+ PluginLifecycleError: () => PluginLifecycleError,
441
521
  PluginMassType: () => PluginMassType,
442
522
  PluginMaterialInfo: () => PluginMaterialInfo,
443
523
  PluginMaterialResult: () => PluginMaterialResult,
444
524
  PluginMaterialSpec: () => PluginMaterialSpec,
445
525
  PluginMathApi: () => PluginMathApi,
446
526
  PluginMirrorAxis: () => PluginMirrorAxis,
527
+ PluginNotFoundError: () => PluginNotFoundError,
528
+ PluginObjectCatalogGroup: () => PluginObjectCatalogGroup,
529
+ PluginObjectCatalogItem: () => PluginObjectCatalogItem,
530
+ PluginPermissionError: () => PluginPermissionError,
447
531
  PluginPresentationAIInspirationApi: () => PluginPresentationAIInspirationApi,
448
532
  PluginPresentationApi: () => PluginPresentationApi,
449
533
  PluginPresentationDiagramsApi: () => PluginPresentationDiagramsApi,
@@ -462,6 +546,9 @@ __export(index_exports, {
462
546
  PluginPresentationSheetsPlaceArgs: () => PluginPresentationSheetsPlaceArgs,
463
547
  PluginPresentationSheetsPlaceResult: () => PluginPresentationSheetsPlaceResult,
464
548
  PluginPresentationView: () => PluginPresentationView,
549
+ PluginPresentationViewColorMode: () => PluginPresentationViewColorMode,
550
+ PluginPresentationViewLabel: () => PluginPresentationViewLabel,
551
+ PluginPresentationViewSettings: () => PluginPresentationViewSettings,
465
552
  PluginPresentationViewType: () => PluginPresentationViewType,
466
553
  PluginPresentationViewsApi: () => PluginPresentationViewsApi,
467
554
  PluginPresentationViewsCaptureArgs: () => PluginPresentationViewsCaptureArgs,
@@ -470,9 +557,13 @@ __export(index_exports, {
470
557
  PluginPresentationViewsCreateResult: () => PluginPresentationViewsCreateResult,
471
558
  PluginPresentationViewsGetArgs: () => PluginPresentationViewsGetArgs,
472
559
  PluginPresentationViewsGetResult: () => PluginPresentationViewsGetResult,
560
+ PluginPresentationViewsGetSettingsArgs: () => PluginPresentationViewsGetSettingsArgs,
561
+ PluginPresentationViewsGetSettingsResult: () => PluginPresentationViewsGetSettingsResult,
473
562
  PluginPresentationViewsListResult: () => PluginPresentationViewsListResult,
474
563
  PluginPresentationViewsSetActiveArgs: () => PluginPresentationViewsSetActiveArgs,
475
564
  PluginPresentationViewsSetActiveResult: () => PluginPresentationViewsSetActiveResult,
565
+ PluginPresentationViewsUpdateSettingsArgs: () => PluginPresentationViewsUpdateSettingsArgs,
566
+ PluginPresentationViewsUpdateSettingsResult: () => PluginPresentationViewsUpdateSettingsResult,
476
567
  PluginProgramAdjacencyApi: () => PluginProgramAdjacencyApi,
477
568
  PluginProgramAdjacencyComputeResult: () => PluginProgramAdjacencyComputeResult,
478
569
  PluginProgramAdjacencyGetMatrixArgs: () => PluginProgramAdjacencyGetMatrixArgs,
@@ -521,7 +612,11 @@ __export(index_exports, {
521
612
  PluginProgramDepartmentsUpdateArgs: () => PluginProgramDepartmentsUpdateArgs,
522
613
  PluginProgramDepartmentsUpdateResult: () => PluginProgramDepartmentsUpdateResult,
523
614
  PluginProgramLayoutApi: () => PluginProgramLayoutApi,
615
+ PluginProgramLayoutJobState: () => PluginProgramLayoutJobState,
616
+ PluginProgramLayoutJobStatus: () => PluginProgramLayoutJobStatus,
617
+ PluginProgramLayoutRunArgs: () => PluginProgramLayoutRunArgs,
524
618
  PluginProgramLayoutRunResult: () => PluginProgramLayoutRunResult,
619
+ PluginProgramLayoutStateResult: () => PluginProgramLayoutStateResult,
525
620
  PluginProgramMetricsApi: () => PluginProgramMetricsApi,
526
621
  PluginProgramMetricsSummary: () => PluginProgramMetricsSummary,
527
622
  PluginProgramSiteApi: () => PluginProgramSiteApi,
@@ -530,6 +625,9 @@ __export(index_exports, {
530
625
  PluginProgramSiteContextResult: () => PluginProgramSiteContextResult,
531
626
  PluginProgramSiteListGeoPolygonsResult: () => PluginProgramSiteListGeoPolygonsResult,
532
627
  PluginProgramSiteListPolygonsResult: () => PluginProgramSiteListPolygonsResult,
628
+ PluginProgramSiteLocation: () => PluginProgramSiteLocation,
629
+ PluginProgramSiteLocationResult: () => PluginProgramSiteLocationResult,
630
+ PluginProgramSiteNorthAngleResult: () => PluginProgramSiteNorthAngleResult,
533
631
  PluginProgramSiteSnapshot: () => PluginProgramSiteSnapshot,
534
632
  PluginProgramSpreadsheetAddChartArgs: () => PluginProgramSpreadsheetAddChartArgs,
535
633
  PluginProgramSpreadsheetAddChartResult: () => PluginProgramSpreadsheetAddChartResult,
@@ -581,6 +679,9 @@ __export(index_exports, {
581
679
  PluginProjectApi: () => PluginProjectApi,
582
680
  PluginProjectSettingsApi: () => PluginProjectSettingsApi,
583
681
  PluginQuatApi: () => PluginQuatApi,
682
+ PluginQueryCadLayersArgs: () => PluginQueryCadLayersArgs,
683
+ PluginQueryPdfPageCountArgs: () => PluginQueryPdfPageCountArgs,
684
+ PluginQuotaError: () => PluginQuotaError,
584
685
  PluginReferenceLineApi: () => PluginReferenceLineApi,
585
686
  PluginReferenceLineCreateMultiArgs: () => PluginReferenceLineCreateMultiArgs,
586
687
  PluginReferenceLineCreateMultiResult: () => PluginReferenceLineCreateMultiResult,
@@ -590,6 +691,8 @@ __export(index_exports, {
590
691
  PluginReferenceLineGetProperty: () => PluginReferenceLineGetProperty,
591
692
  PluginReferenceLineGetResult: () => PluginReferenceLineGetResult,
592
693
  PluginReferenceLineStyle: () => PluginReferenceLineStyle,
694
+ PluginSelectionEntityType: () => PluginSelectionEntityType,
695
+ PluginSelectionFilter: () => PluginSelectionFilter,
593
696
  PluginSheetPosition: () => PluginSheetPosition,
594
697
  PluginSiteBounds: () => PluginSiteBounds,
595
698
  PluginSiteContextParcel: () => PluginSiteContextParcel,
@@ -598,6 +701,8 @@ __export(index_exports, {
598
701
  PluginSiteLatLng: () => PluginSiteLatLng,
599
702
  PluginSitePolygon: () => PluginSitePolygon,
600
703
  PluginSlabType: () => PluginSlabType,
704
+ PluginSmartLayoutArgs: () => PluginSmartLayoutArgs,
705
+ PluginSmartLayoutResult: () => PluginSmartLayoutResult,
601
706
  PluginSnapValueArgs: () => PluginSnapValueArgs,
602
707
  PluginSnapsApi: () => PluginSnapsApi,
603
708
  PluginSpaceBulkCreateArgs: () => PluginSpaceBulkCreateArgs,
@@ -654,21 +759,36 @@ __export(index_exports, {
654
759
  PluginSpreadsheetTransactionOp: () => PluginSpreadsheetTransactionOp,
655
760
  PluginSpreadsheetVerticalAlign: () => PluginSpreadsheetVerticalAlign,
656
761
  PluginSpreadsheetWhenExists: () => PluginSpreadsheetWhenExists,
762
+ PluginStaircaseParamUpdates: () => PluginStaircaseParamUpdates,
763
+ PluginStaircaseParams: () => PluginStaircaseParams,
657
764
  PluginStaircasePreset: () => PluginStaircasePreset,
658
765
  PluginStoryApi: () => PluginStoryApi,
659
766
  PluginStoryCreateArgs: () => PluginStoryCreateArgs,
660
767
  PluginStoryCreateResult: () => PluginStoryCreateResult,
768
+ PluginStoryDuplicateArgs: () => PluginStoryDuplicateArgs,
769
+ PluginStoryDuplicateResult: () => PluginStoryDuplicateResult,
661
770
  PluginStoryGetAllResult: () => PluginStoryGetAllResult,
662
771
  PluginStoryGetArgs: () => PluginStoryGetArgs,
663
772
  PluginStoryGetProperty: () => PluginStoryGetProperty,
664
773
  PluginStoryGetResult: () => PluginStoryGetResult,
665
774
  PluginStoryUpdateArgs: () => PluginStoryUpdateArgs,
666
775
  PluginStoryUpdateResult: () => PluginStoryUpdateResult,
776
+ PluginTerrainSetDatumArgs: () => PluginTerrainSetDatumArgs,
777
+ PluginTerrainSetOpacityArgs: () => PluginTerrainSetOpacityArgs,
778
+ PluginTimeoutError: () => PluginTimeoutError,
667
779
  PluginToleranceArgs: () => PluginToleranceArgs,
780
+ PluginTransportError: () => PluginTransportError,
781
+ PluginUnderlayListArgs: () => PluginUnderlayListArgs,
782
+ PluginUnderlayPlanSize: () => PluginUnderlayPlanSize,
783
+ PluginUnderlayRefArgs: () => PluginUnderlayRefArgs,
784
+ PluginUnderlaySetOpacityArgs: () => PluginUnderlaySetOpacityArgs,
785
+ PluginUnderlaySetScaleArgs: () => PluginUnderlaySetScaleArgs,
786
+ PluginUnderlaySetScaleValue: () => PluginUnderlaySetScaleValue,
668
787
  PluginUnitsApi: () => PluginUnitsApi,
669
788
  PluginUnitsConvertArgs: () => PluginUnitsConvertArgs,
670
789
  PluginUnitsSetTypeArgs: () => PluginUnitsSetTypeArgs,
671
790
  PluginUpdateSpaceItem: () => PluginUpdateSpaceItem,
791
+ PluginValidationError: () => PluginValidationError,
672
792
  PluginVec3Api: () => PluginVec3Api,
673
793
  PluginWellKnownDepartmentId: () => PluginWellKnownDepartmentId,
674
794
  PluginWindowDimensions: () => PluginWindowDimensions,
@@ -676,10 +796,18 @@ __export(index_exports, {
676
796
  ProfileHandle: () => ProfileHandle,
677
797
  QuatComponents: () => QuatComponents,
678
798
  QuatHandle: () => QuatHandle,
799
+ TerrainHandle: () => TerrainHandle,
800
+ TerrainReport: () => TerrainReport,
801
+ UnderlayHandle: () => UnderlayHandle,
679
802
  Vec3Components: () => Vec3Components,
680
803
  Vec3Handle: () => Vec3Handle,
681
804
  VertexHandle: () => VertexHandle,
682
- handleSchema: () => handleSchema
805
+ fromEnvelope: () => fromEnvelope,
806
+ handleSchema: () => handleSchema,
807
+ isErrorEnvelope: () => isErrorEnvelope,
808
+ isPluginErrorCode: () => isPluginErrorCode,
809
+ makeClientEnvelope: () => makeClientEnvelope,
810
+ newErrorId: () => newErrorId
683
811
  });
684
812
  module.exports = __toCommonJS(index_exports);
685
813
 
@@ -712,6 +840,9 @@ var ContourHandle = handleSchema("contour");
712
840
  var MassHandle = handleSchema("mass");
713
841
  var ComponentHandle = z.string().min(1).transform((s) => s);
714
842
  var MaterialHandle = z.string().min(1).transform((s) => s);
843
+ var UnderlayHandle = z.string().min(1).transform((s) => s);
844
+ var TerrainHandle = z.string().min(1).transform((s) => s);
845
+ var ImportJobHandle = z.string().min(1).transform((s) => s);
715
846
  var Vec3Handle = handleSchema("vec3");
716
847
  var QuatHandle = handleSchema("quat");
717
848
  var LineHandle = handleSchema("line");
@@ -1725,6 +1856,189 @@ var PluginCoreTagsUnassignArgs = z24.object({
1725
1856
  });
1726
1857
  var PluginCoreTagsUnassignResult = PluginCoreAssignOutcome;
1727
1858
 
1859
+ // src/api/core/io/import/index.ts
1860
+ var z25 = __toESM(require("zod"), 1);
1861
+ var ImportSource = z25.string().min(1).refine((s) => s.startsWith("https://") || s.startsWith("data:"), {
1862
+ message: "source must be an https:// URL or a data: URL"
1863
+ });
1864
+ var PluginCoreIoImportApi = class {
1865
+ constructor() {
1866
+ }
1867
+ };
1868
+ var ModelFormat = z25.enum(["skp", "fbx", "obj", "3ds", "zip"]);
1869
+ var CadJsonInput = z25.object({
1870
+ unit: z25.string().optional(),
1871
+ geometry: z25.array(z25.record(z25.string(), z25.unknown())).optional()
1872
+ }).passthrough();
1873
+ var PluginImportImageArgs = z25.object({
1874
+ source: ImportSource,
1875
+ storey: z25.number().int().optional(),
1876
+ scale: z25.number().positive().optional(),
1877
+ opacity: z25.number().min(0).max(1).optional(),
1878
+ label: z25.string().optional()
1879
+ });
1880
+ var PluginImportPdfArgs = z25.object({
1881
+ source: ImportSource,
1882
+ storey: z25.number().int().optional(),
1883
+ page: z25.number().int().positive().optional(),
1884
+ scale: z25.string().optional(),
1885
+ opacity: z25.number().min(0).max(1).optional()
1886
+ });
1887
+ var PluginImportDwgArgs = z25.object({
1888
+ source: ImportSource,
1889
+ storey: z25.number().int().optional()
1890
+ });
1891
+ var PluginImportCadJsonArgs = z25.object({
1892
+ cad: CadJsonInput,
1893
+ storey: z25.number().int().optional()
1894
+ });
1895
+ var PluginImportModelArgs = z25.object({
1896
+ source: ImportSource,
1897
+ storey: z25.number().int().optional(),
1898
+ format: ModelFormat.optional(),
1899
+ position: Vec3Handle.optional(),
1900
+ label: z25.string().optional()
1901
+ });
1902
+ var PluginImportTerrainArgs = z25.object({
1903
+ lat: z25.number().min(-90).max(90),
1904
+ lng: z25.number().min(-180).max(180),
1905
+ width: z25.number().positive().finite(),
1906
+ length: z25.number().positive().finite(),
1907
+ elevation: z25.boolean().optional(),
1908
+ satellite: z25.boolean().optional(),
1909
+ neighborhood: z25.boolean().optional(),
1910
+ parcels: z25.boolean().optional()
1911
+ });
1912
+
1913
+ // src/api/core/io/job/index.ts
1914
+ var z26 = __toESM(require("zod"), 1);
1915
+ var PluginCoreIoJobApi = class {
1916
+ constructor() {
1917
+ }
1918
+ };
1919
+ var ImportJobStatus = z26.enum(["pending", "processing", "complete", "failed"]);
1920
+ var PluginImportJobArgs = z26.object({
1921
+ job: ImportJobHandle
1922
+ });
1923
+
1924
+ // src/api/core/io/underlay/index.ts
1925
+ var z27 = __toESM(require("zod"), 1);
1926
+ var PluginCoreIoUnderlayApi = class {
1927
+ constructor() {
1928
+ }
1929
+ };
1930
+ var PluginUnderlayListArgs = z27.object({
1931
+ storey: z27.number().int().optional()
1932
+ });
1933
+ var PluginUnderlayPlanSize = z27.object({
1934
+ planSize: z27.number().positive()
1935
+ });
1936
+ var PluginUnderlaySetScaleValue = z27.union([
1937
+ z27.number().positive(),
1938
+ PluginUnderlayPlanSize
1939
+ ]);
1940
+ var PluginUnderlaySetScaleArgs = z27.object({
1941
+ underlay: UnderlayHandle,
1942
+ scale: PluginUnderlaySetScaleValue
1943
+ });
1944
+ var PluginUnderlaySetOpacityArgs = z27.object({
1945
+ underlay: UnderlayHandle,
1946
+ opacity: z27.number().min(0).max(1)
1947
+ });
1948
+ var PluginUnderlayRefArgs = z27.object({
1949
+ underlay: UnderlayHandle
1950
+ });
1951
+
1952
+ // src/api/core/io/terrain/index.ts
1953
+ var z28 = __toESM(require("zod"), 1);
1954
+ var PluginCoreIoTerrainApi = class {
1955
+ constructor() {
1956
+ }
1957
+ };
1958
+ var TerrainReport = z28.object({
1959
+ cutVolume: z28.number(),
1960
+ fillVolume: z28.number(),
1961
+ netVolume: z28.number()
1962
+ });
1963
+ var PluginTerrainSetDatumArgs = z28.object({ offset: z28.number().finite() });
1964
+ var PluginTerrainSetOpacityArgs = z28.object({ opacity: z28.number().min(0).max(1) });
1965
+
1966
+ // src/api/core/io/query/index.ts
1967
+ var z29 = __toESM(require("zod"), 1);
1968
+ var PluginCoreIoQueryApi = class {
1969
+ constructor() {
1970
+ }
1971
+ };
1972
+ var PluginQueryPdfPageCountArgs = z29.object({ source: z29.string().min(1) });
1973
+ var PluginQueryCadLayersArgs = z29.object({ cad: CadJsonInput });
1974
+
1975
+ // src/api/core/io/index.ts
1976
+ var PluginCoreIoApi = class {
1977
+ constructor() {
1978
+ }
1979
+ };
1980
+
1981
+ // src/api/core/proposals/index.ts
1982
+ var z30 = __toESM(require("zod"), 1);
1983
+ var PluginCoreProposalsApi = class {
1984
+ constructor() {
1985
+ }
1986
+ };
1987
+ var PluginCoreProposalRef = z30.object({
1988
+ id: z30.string(),
1989
+ name: z30.string(),
1990
+ isActive: z30.boolean(),
1991
+ defaultBucketId: z30.string(),
1992
+ bucketIds: z30.array(z30.string()),
1993
+ createdAt: z30.string(),
1994
+ createdBy: z30.string()
1995
+ });
1996
+ var PluginCoreProposalsListResult = z30.object({
1997
+ proposals: z30.array(PluginCoreProposalRef)
1998
+ });
1999
+ var PluginCoreProposalsGetArgs = z30.object({
2000
+ proposalId: z30.string()
2001
+ });
2002
+ var PluginCoreProposalsGetResult = PluginCoreProposalRef.nullable();
2003
+ var PluginCoreProposalsGetActiveResult = PluginCoreProposalRef.nullable();
2004
+ var PluginCoreProposalsListForComponentArgs = z30.object({
2005
+ component: ComponentHandle
2006
+ });
2007
+ var PluginCoreProposalsListForComponentResult = PluginCoreProposalsListResult;
2008
+ var PluginCoreProposalsIsActiveArgs = PluginCoreProposalsGetArgs;
2009
+ var PluginCoreProposalsCreateArgs = z30.object({
2010
+ name: z30.string()
2011
+ });
2012
+ var PluginCoreProposalsCreateResult = z30.object({
2013
+ id: z30.string()
2014
+ });
2015
+ var PluginCoreProposalsRenameArgs = z30.object({
2016
+ proposalId: z30.string(),
2017
+ name: z30.string()
2018
+ });
2019
+ var PluginCoreProposalsRenameResult = PluginCoreProposalRef;
2020
+ var PluginCoreProposalsSetActiveArgs = z30.object({
2021
+ proposalId: z30.string()
2022
+ });
2023
+ var PluginCoreProposalsSetActiveResult = z30.object({
2024
+ id: z30.string()
2025
+ });
2026
+ var PluginCoreProposalsDeleteArgs = z30.object({
2027
+ proposalId: z30.string(),
2028
+ deleteObjects: z30.boolean().optional(),
2029
+ targetProposalId: z30.string().optional()
2030
+ }).refine((v) => v.deleteObjects === true !== (v.targetProposalId != null), {
2031
+ message: "Provide exactly one disposition: deleteObjects: true (destroy exclusive-bucket geometry) or targetProposalId (transfer buckets, then delete)"
2032
+ }).refine(
2033
+ (v) => v.targetProposalId == null || v.targetProposalId !== v.proposalId,
2034
+ {
2035
+ message: "targetProposalId must be a different proposal than proposalId"
2036
+ }
2037
+ );
2038
+ var PluginCoreProposalsDeleteResult = z30.object({
2039
+ deleted: z30.literal(true)
2040
+ });
2041
+
1728
2042
  // src/api/core/index.ts
1729
2043
  var PluginCoreApi = class {
1730
2044
  constructor() {
@@ -1732,39 +2046,39 @@ var PluginCoreApi = class {
1732
2046
  };
1733
2047
 
1734
2048
  // src/api/design/create/index.ts
1735
- var z26 = __toESM(require("zod"), 1);
2049
+ var z32 = __toESM(require("zod"), 1);
1736
2050
 
1737
2051
  // src/api/entity/space.ts
1738
- var z25 = __toESM(require("zod"), 1);
1739
- var PluginSpaceCreateRectangularArgs = z25.object({
2052
+ var z31 = __toESM(require("zod"), 1);
2053
+ var PluginSpaceCreateRectangularArgs = z31.object({
1740
2054
  position: Vec3Handle,
1741
- dimensions: z25.object({
1742
- width: z25.number(),
1743
- height: z25.number(),
1744
- depth: z25.number()
2055
+ dimensions: z31.object({
2056
+ width: z31.number(),
2057
+ height: z31.number(),
2058
+ depth: z31.number()
1745
2059
  })
1746
2060
  });
1747
- var PluginSpaceCreateRectangularResult = z25.object({
1748
- spaceId: z25.string()
2061
+ var PluginSpaceCreateRectangularResult = z31.object({
2062
+ spaceId: z31.string()
1749
2063
  });
1750
- var PluginSpaceCreateFromProfileArgs = z25.object({
2064
+ var PluginSpaceCreateFromProfileArgs = z31.object({
1751
2065
  profile: ProfileHandle,
1752
- innerProfiles: z25.array(ProfileHandle).optional(),
1753
- extrudeHeight: z25.number(),
2066
+ innerProfiles: z31.array(ProfileHandle).optional(),
2067
+ extrudeHeight: z31.number(),
1754
2068
  position: Vec3Handle
1755
2069
  });
1756
- var PluginSpaceCreateFromProfileResult = z25.object({
1757
- spaceId: z25.string()
2070
+ var PluginSpaceCreateFromProfileResult = z31.object({
2071
+ spaceId: z31.string()
1758
2072
  });
1759
- var PluginSpaceUpdateGeometryFromProfileArgs = z25.object({
1760
- spaceId: z25.string(),
2073
+ var PluginSpaceUpdateGeometryFromProfileArgs = z31.object({
2074
+ spaceId: z31.string(),
1761
2075
  profile: ProfileHandle,
1762
- extrudeHeight: z25.number()
2076
+ extrudeHeight: z31.number()
1763
2077
  });
1764
- var PluginSpaceUpdateGeometryFromProfileResult = z25.object({
1765
- spaceId: z25.string()
2078
+ var PluginSpaceUpdateGeometryFromProfileResult = z31.object({
2079
+ spaceId: z31.string()
1766
2080
  });
1767
- var PluginSpaceGetProperty = z25.enum([
2081
+ var PluginSpaceGetProperty = z31.enum([
1768
2082
  // Basic
1769
2083
  "id",
1770
2084
  "type",
@@ -1795,11 +2109,11 @@ var PluginSpaceGetProperty = z25.enum([
1795
2109
  // Derived from adjacency manager
1796
2110
  "adjacency"
1797
2111
  ]);
1798
- var PluginSpaceGetArgs = z25.object({
1799
- spaceId: z25.string(),
1800
- properties: z25.array(PluginSpaceGetProperty)
2112
+ var PluginSpaceGetArgs = z31.object({
2113
+ spaceId: z31.string(),
2114
+ properties: z31.array(PluginSpaceGetProperty)
1801
2115
  });
1802
- var PluginSpaceType = z25.enum([
2116
+ var PluginSpaceType = z31.enum([
1803
2117
  "Room",
1804
2118
  "Program Block",
1805
2119
  "Balcony",
@@ -1811,51 +2125,51 @@ var PluginSpaceType = z25.enum([
1811
2125
  "Envelope",
1812
2126
  "Parking"
1813
2127
  ]);
1814
- var PluginAreaClass = z25.enum(["NET", "GROSS", "EXCLUDED"]);
1815
- var PluginSpaceGetResult = z25.object({
2128
+ var PluginAreaClass = z31.enum(["NET", "GROSS", "EXCLUDED"]);
2129
+ var PluginSpaceGetResult = z31.object({
1816
2130
  // Basic
1817
- id: z25.string(),
1818
- type: z25.string(),
1819
- room_type: z25.string(),
1820
- name: z25.string(),
2131
+ id: z31.string(),
2132
+ type: z31.string(),
2133
+ room_type: z31.string(),
2134
+ name: z31.string(),
1821
2135
  // Derived from parametric data
1822
- area: z25.number(),
1823
- breadth: z25.number(),
1824
- depth: z25.number(),
1825
- height: z25.number(),
1826
- massType: z25.string().nullable(),
2136
+ area: z31.number(),
2137
+ breadth: z31.number(),
2138
+ depth: z31.number(),
2139
+ height: z31.number(),
2140
+ massType: z31.string().nullable(),
1827
2141
  spaceType: PluginSpaceType.nullable(),
1828
2142
  areaClass: PluginAreaClass,
1829
- storey: z25.number().nullable(),
1830
- departmentId: z25.string().nullable(),
1831
- departmentName: z25.string(),
1832
- departmentColor: z25.string(),
2143
+ storey: z31.number().nullable(),
2144
+ departmentId: z31.string().nullable(),
2145
+ departmentName: z31.string(),
2146
+ departmentColor: z31.string(),
1833
2147
  // Derived from mesh
1834
2148
  position: Vec3Components,
1835
2149
  absolutePosition: Vec3Components,
1836
2150
  rotation: Vec3Components,
1837
2151
  rotationQuaternion: QuatComponents.nullable(),
1838
2152
  // Derived from brep
1839
- planPoints: z25.array(Vec3Components),
1840
- profile: z25.array(CurveHandle),
1841
- innerProfiles: z25.array(z25.array(CurveHandle)),
1842
- innerPlanPoints: z25.array(z25.array(Vec3Components)),
2153
+ planPoints: z31.array(Vec3Components),
2154
+ profile: z31.array(CurveHandle),
2155
+ innerProfiles: z31.array(z31.array(CurveHandle)),
2156
+ innerPlanPoints: z31.array(z31.array(Vec3Components)),
1843
2157
  // Derived from adjacency manager.
1844
2158
  // value: 2 = Direct (required), 1 = Indirect or physical contact, -1 = Restricted;
1845
2159
  // 0 (no relationship) entries are filtered out. Empty array when adjacency has
1846
2160
  // never been computed — run program.adjacency.compute() first for fresh data.
1847
- adjacency: z25.array(z25.object({
1848
- spaceId: z25.string(),
1849
- value: z25.number()
2161
+ adjacency: z31.array(z31.object({
2162
+ spaceId: z31.string(),
2163
+ value: z31.number()
1850
2164
  }))
1851
2165
  }).partial();
1852
- var PluginSpaceGetAllResult = z25.object({
1853
- spacesIds: z25.array(z25.string())
2166
+ var PluginSpaceGetAllResult = z31.object({
2167
+ spacesIds: z31.array(z31.string())
1854
2168
  });
1855
- var PluginSpaceDeleteArgs = z25.object({
1856
- spaceId: z25.string()
2169
+ var PluginSpaceDeleteArgs = z31.object({
2170
+ spaceId: z31.string()
1857
2171
  });
1858
- var PluginMassType = z25.enum([
2172
+ var PluginMassType = z31.enum([
1859
2173
  "Plinth",
1860
2174
  "Void",
1861
2175
  "Pergola",
@@ -1869,89 +2183,89 @@ var PluginMassType = z25.enum([
1869
2183
  "Mass",
1870
2184
  "Site"
1871
2185
  ]);
1872
- var PluginWellKnownDepartmentId = z25.enum([
2186
+ var PluginWellKnownDepartmentId = z31.enum([
1873
2187
  "DEFAULT",
1874
2188
  "SITE",
1875
2189
  "ENVELOPE",
1876
2190
  "CORE"
1877
2191
  ]);
1878
- var PluginDepartmentId = z25.union([
2192
+ var PluginDepartmentId = z31.union([
1879
2193
  PluginWellKnownDepartmentId,
1880
- z25.uuid()
2194
+ z31.uuid()
1881
2195
  ]);
1882
- var PluginSpaceUpdateArgs = z25.object({
1883
- spaceId: z25.string(),
1884
- properties: z25.object({
1885
- room_type: z25.string().optional(),
2196
+ var PluginSpaceUpdateArgs = z31.object({
2197
+ spaceId: z31.string(),
2198
+ properties: z31.object({
2199
+ room_type: z31.string().optional(),
1886
2200
  massType: PluginMassType.optional(),
1887
2201
  spaceType: PluginSpaceType.optional(),
1888
2202
  areaClass: PluginAreaClass.optional(),
1889
2203
  departmentId: PluginDepartmentId.optional()
1890
2204
  })
1891
2205
  });
1892
- var PluginSpaceUpdateResult = z25.object({
1893
- spaceId: z25.string(),
1894
- room_type: z25.string().optional(),
1895
- massType: z25.string().optional(),
1896
- spaceType: z25.string().optional(),
2206
+ var PluginSpaceUpdateResult = z31.object({
2207
+ spaceId: z31.string(),
2208
+ room_type: z31.string().optional(),
2209
+ massType: z31.string().optional(),
2210
+ spaceType: z31.string().optional(),
1897
2211
  areaClass: PluginAreaClass.optional(),
1898
- departmentId: z25.string().nullable().optional()
2212
+ departmentId: z31.string().nullable().optional()
1899
2213
  });
1900
- var PluginSpaceBulkCreateItem = z25.discriminatedUnion("kind", [
1901
- z25.object({
1902
- kind: z25.literal("rectangular"),
2214
+ var PluginSpaceBulkCreateItem = z31.discriminatedUnion("kind", [
2215
+ z31.object({
2216
+ kind: z31.literal("rectangular"),
1903
2217
  position: Vec3Handle,
1904
- dimensions: z25.object({
1905
- width: z25.number(),
1906
- height: z25.number(),
1907
- depth: z25.number()
2218
+ dimensions: z31.object({
2219
+ width: z31.number(),
2220
+ height: z31.number(),
2221
+ depth: z31.number()
1908
2222
  }),
1909
- room_type: z25.string().optional(),
2223
+ room_type: z31.string().optional(),
1910
2224
  spaceType: PluginSpaceType.optional(),
1911
2225
  massType: PluginMassType.optional(),
1912
2226
  departmentId: PluginDepartmentId.optional()
1913
2227
  }),
1914
- z25.object({
1915
- kind: z25.literal("profile"),
2228
+ z31.object({
2229
+ kind: z31.literal("profile"),
1916
2230
  profile: ProfileHandle,
1917
- innerProfiles: z25.array(ProfileHandle).optional(),
1918
- extrudeHeight: z25.number(),
2231
+ innerProfiles: z31.array(ProfileHandle).optional(),
2232
+ extrudeHeight: z31.number(),
1919
2233
  position: Vec3Handle,
1920
- room_type: z25.string().optional(),
2234
+ room_type: z31.string().optional(),
1921
2235
  spaceType: PluginSpaceType.optional(),
1922
2236
  massType: PluginMassType.optional(),
1923
2237
  departmentId: PluginDepartmentId.optional()
1924
2238
  })
1925
2239
  ]);
1926
- var PluginSpaceBulkCreateArgs = z25.object({
1927
- items: z25.array(PluginSpaceBulkCreateItem)
2240
+ var PluginSpaceBulkCreateArgs = z31.object({
2241
+ items: z31.array(PluginSpaceBulkCreateItem)
1928
2242
  });
1929
- var PluginSpaceBulkCreateResult = z25.object({
1930
- spaceIds: z25.array(z25.string())
2243
+ var PluginSpaceBulkCreateResult = z31.object({
2244
+ spaceIds: z31.array(z31.string())
1931
2245
  });
1932
- var PluginSpaceBulkUpdateItem = z25.object({
1933
- spaceId: z25.string(),
2246
+ var PluginSpaceBulkUpdateItem = z31.object({
2247
+ spaceId: z31.string(),
1934
2248
  profile: ProfileHandle.optional(),
1935
- extrudeHeight: z25.number().optional(),
1936
- properties: z25.object({
1937
- room_type: z25.string().optional(),
2249
+ extrudeHeight: z31.number().optional(),
2250
+ properties: z31.object({
2251
+ room_type: z31.string().optional(),
1938
2252
  massType: PluginMassType.optional(),
1939
2253
  spaceType: PluginSpaceType.optional(),
1940
2254
  areaClass: PluginAreaClass.optional(),
1941
2255
  departmentId: PluginDepartmentId.optional()
1942
2256
  }).optional()
1943
2257
  });
1944
- var PluginSpaceBulkUpdateArgs = z25.object({
1945
- items: z25.array(PluginSpaceBulkUpdateItem)
2258
+ var PluginSpaceBulkUpdateArgs = z31.object({
2259
+ items: z31.array(PluginSpaceBulkUpdateItem)
1946
2260
  });
1947
- var PluginSpaceBulkUpdateResult = z25.object({
1948
- spaces: z25.array(PluginSpaceUpdateResult)
2261
+ var PluginSpaceBulkUpdateResult = z31.object({
2262
+ spaces: z31.array(PluginSpaceUpdateResult)
1949
2263
  });
1950
- var PluginSpaceBulkDeleteArgs = z25.object({
1951
- spaceIds: z25.array(z25.string())
2264
+ var PluginSpaceBulkDeleteArgs = z31.object({
2265
+ spaceIds: z31.array(z31.string())
1952
2266
  });
1953
- var PluginSpaceBulkDeleteResult = z25.object({
1954
- deletedSpaceIds: z25.array(z25.string())
2267
+ var PluginSpaceBulkDeleteResult = z31.object({
2268
+ deletedSpaceIds: z31.array(z31.string())
1955
2269
  });
1956
2270
 
1957
2271
  // src/api/design/create/index.ts
@@ -1959,14 +2273,14 @@ var PluginDesignCreateApi = class {
1959
2273
  constructor() {
1960
2274
  }
1961
2275
  };
1962
- var PluginReferenceLineStyle = z26.enum(["SOLID", "DASHED", "DOT_DASH"]);
1963
- var PluginSlabType = z26.enum([
2276
+ var PluginReferenceLineStyle = z32.enum(["SOLID", "DASHED", "DOT_DASH"]);
2277
+ var PluginSlabType = z32.enum([
1964
2278
  "Intermediate Slab",
1965
2279
  "Basement Slab",
1966
2280
  "Plinth",
1967
2281
  "Roof"
1968
2282
  ]);
1969
- var PluginStaircasePreset = z26.enum([
2283
+ var PluginStaircasePreset = z32.enum([
1970
2284
  "straight",
1971
2285
  "straightWoLanding",
1972
2286
  "straightFlightWoMidLanding",
@@ -1984,89 +2298,122 @@ var PluginStaircasePreset = z26.enum([
1984
2298
  "mezzanineFloorLShaped",
1985
2299
  "custom"
1986
2300
  ]);
1987
- var PluginDesignCreateSpaceArgs = z26.object({
2301
+ var PluginDesignCreateSpaceArgs = z32.object({
1988
2302
  contour: ContourHandle,
1989
- height: z26.number(),
1990
- label: z26.string().optional(),
2303
+ height: z32.number(),
2304
+ label: z32.string().optional(),
1991
2305
  position: Vec3Handle.optional(),
1992
2306
  spaceType: PluginSpaceType.optional(),
1993
2307
  massType: PluginMassType.optional(),
1994
2308
  departmentId: PluginDepartmentId.optional()
1995
2309
  });
1996
- var PluginDesignCreateMassArgs = z26.object({
2310
+ var PluginDesignCreateMassArgs = z32.object({
1997
2311
  contour: ContourHandle,
1998
- height: z26.number(),
1999
- label: z26.string().optional(),
2312
+ height: z32.number(),
2313
+ label: z32.string().optional(),
2000
2314
  position: Vec3Handle.optional(),
2001
2315
  massType: PluginMassType.optional()
2002
2316
  });
2003
- var PluginDesignCreateSlabArgs = z26.object({
2317
+ var PluginDesignCreateSlabArgs = z32.object({
2004
2318
  contour: ContourHandle,
2005
- thickness: z26.number(),
2006
- direction: z26.enum(["up", "down"]).optional(),
2319
+ thickness: z32.number(),
2320
+ direction: z32.enum(["up", "down"]).optional(),
2007
2321
  slabType: PluginSlabType.optional()
2008
2322
  });
2009
- var PluginDesignCreateFloorArgs = z26.object({
2323
+ var PluginDesignCreateFloorArgs = z32.object({
2010
2324
  contour: ContourHandle,
2011
- thickness: z26.number(),
2325
+ thickness: z32.number(),
2012
2326
  position: Vec3Handle.optional()
2013
2327
  });
2014
- var PluginDesignCreateRoofArgs = z26.object({
2328
+ var PluginDesignCreateRoofArgs = z32.object({
2015
2329
  contour: ContourHandle,
2016
- thickness: z26.number()
2330
+ thickness: z32.number()
2017
2331
  });
2018
- var PluginDesignCreateCeilingArgs = z26.object({
2332
+ var PluginDesignCreateCeilingArgs = z32.object({
2019
2333
  contour: ContourHandle,
2020
- thickness: z26.number(),
2021
- heightFromFloor: z26.number().optional()
2334
+ thickness: z32.number(),
2335
+ heightFromFloor: z32.number().optional()
2022
2336
  });
2023
- var PluginDesignCreateColumnArgs = z26.object({
2337
+ var PluginDesignCreateColumnArgs = z32.object({
2024
2338
  position: Vec3Handle,
2025
2339
  crossSection: ContourHandle,
2026
- height: z26.number(),
2340
+ height: z32.number(),
2027
2341
  directionUp: Vec3Handle.optional()
2028
2342
  });
2029
- var PluginDesignCreateBeamArgs = z26.object({
2343
+ var PluginDesignCreateBeamArgs = z32.object({
2030
2344
  section: ContourHandle,
2031
- length: z26.number(),
2345
+ length: z32.number(),
2032
2346
  direction: Vec3Handle.optional()
2033
2347
  });
2034
- var PluginDesignCreateWallsArgs = z26.object({
2348
+ var PluginDesignCreateWallsArgs = z32.object({
2035
2349
  profile: ProfileHandle,
2036
- height: z26.number().optional(),
2037
- thickness: z26.number().optional()
2350
+ height: z32.number().optional(),
2351
+ thickness: z32.number().optional()
2038
2352
  });
2039
- var PluginDesignCreateStaircaseArgs = z26.object({
2353
+ var PluginDesignCreateStaircaseArgs = z32.object({
2040
2354
  preset: PluginStaircasePreset,
2041
2355
  position: Vec3Handle,
2042
- label: z26.string().optional(),
2043
- structureId: z26.string().optional(),
2044
- level: z26.string().optional()
2356
+ label: z32.string().optional(),
2357
+ structureId: z32.string().optional(),
2358
+ level: z32.string().optional()
2359
+ });
2360
+ var PluginDesignCreateFurnitureArgs = z32.object({
2361
+ catalogId: z32.string().min(1),
2362
+ position: Vec3Handle,
2363
+ label: z32.string().optional(),
2364
+ createNewSourceMesh: z32.boolean().optional()
2045
2365
  });
2046
- var PluginDesignCreateFurnitureArgs = z26.object({
2047
- catalogId: z26.string().min(1),
2366
+ var PluginDesignCreateDoorArgs = z32.object({
2367
+ catalogId: z32.string().min(1),
2368
+ hostWall: ComponentHandle,
2048
2369
  position: Vec3Handle,
2049
- label: z26.string().optional(),
2050
- createNewSourceMesh: z26.boolean().optional()
2370
+ label: z32.string().optional()
2371
+ });
2372
+ var PluginDesignCreateWindowArgs = z32.object({
2373
+ catalogId: z32.string().min(1),
2374
+ hostWall: ComponentHandle,
2375
+ position: Vec3Handle,
2376
+ label: z32.string().optional()
2377
+ });
2378
+ var PluginSmartLayoutArgs = z32.object({
2379
+ templateGroup: z32.string().min(1).optional(),
2380
+ templateComponents: z32.array(ComponentHandle).optional(),
2381
+ targets: z32.array(ComponentHandle).min(1),
2382
+ hideTargets: z32.boolean().optional()
2383
+ }).refine(
2384
+ (v) => v.templateGroup != null !== (v.templateComponents?.length ?? 0) > 0,
2385
+ {
2386
+ message: "Provide exactly one template source: templateGroup or a non-empty templateComponents"
2387
+ }
2388
+ );
2389
+ var PluginSmartLayoutResult = z32.object({
2390
+ created: z32.object({
2391
+ walls: z32.array(ComponentHandle),
2392
+ furniture: z32.array(ComponentHandle),
2393
+ doors: z32.array(ComponentHandle),
2394
+ windows: z32.array(ComponentHandle),
2395
+ floors: z32.array(ComponentHandle)
2396
+ }),
2397
+ skippedWalls: z32.number()
2051
2398
  });
2052
- var PluginDesignCreateReferenceLinesArgs = z26.object({
2399
+ var PluginDesignCreateReferenceLinesArgs = z32.object({
2053
2400
  profile: ProfileHandle,
2054
- color: z26.string().optional(),
2055
- thickness: z26.number().optional(),
2401
+ color: z32.string().optional(),
2402
+ thickness: z32.number().optional(),
2056
2403
  style: PluginReferenceLineStyle.optional(),
2057
- gridTag: z26.string().optional()
2404
+ gridTag: z32.string().optional()
2058
2405
  });
2059
- var PluginCopyMode = z26.enum(["instance", "unique"]);
2060
- var PluginDesignCreateCopyArgs = z26.object({
2061
- components: z26.array(ComponentHandle).min(1),
2406
+ var PluginCopyMode = z32.enum(["instance", "unique"]);
2407
+ var PluginDesignCreateCopyArgs = z32.object({
2408
+ components: z32.array(ComponentHandle).min(1),
2062
2409
  displacement: Vec3Handle,
2063
- count: z26.number().int().positive().optional(),
2410
+ count: z32.number().int().positive().optional(),
2064
2411
  mode: PluginCopyMode.optional()
2065
2412
  });
2066
- var PluginCreateSpaceItem = z26.object({
2413
+ var PluginCreateSpaceItem = z32.object({
2067
2414
  contour: ContourHandle,
2068
- height: z26.number(),
2069
- label: z26.string().optional(),
2415
+ height: z32.number(),
2416
+ label: z32.string().optional(),
2070
2417
  position: Vec3Handle.optional(),
2071
2418
  spaceType: PluginSpaceType.optional(),
2072
2419
  massType: PluginMassType.optional(),
@@ -2074,44 +2421,44 @@ var PluginCreateSpaceItem = z26.object({
2074
2421
  });
2075
2422
 
2076
2423
  // src/api/design/query/index.ts
2077
- var z29 = __toESM(require("zod"), 1);
2424
+ var z35 = __toESM(require("zod"), 1);
2078
2425
 
2079
2426
  // src/api/design/query/geometry/index.ts
2080
- var z27 = __toESM(require("zod"), 1);
2427
+ var z33 = __toESM(require("zod"), 1);
2081
2428
  var PluginDesignQueryGeometryApi = class {
2082
2429
  constructor() {
2083
2430
  }
2084
2431
  };
2085
- var PluginDesignQueryGeometryGetBrepArgs = z27.object({
2432
+ var PluginDesignQueryGeometryGetBrepArgs = z33.object({
2086
2433
  component: ComponentHandle
2087
2434
  });
2088
- var PluginDesignQueryGeometryGetBottomContourArgs = z27.object({
2435
+ var PluginDesignQueryGeometryGetBottomContourArgs = z33.object({
2089
2436
  component: ComponentHandle
2090
2437
  });
2091
- var PluginDesignQueryGeometryGetCenterlineArgs = z27.object({
2438
+ var PluginDesignQueryGeometryGetCenterlineArgs = z33.object({
2092
2439
  component: ComponentHandle
2093
2440
  });
2094
2441
 
2095
2442
  // src/api/design/query/spaces.ts
2096
- var z28 = __toESM(require("zod"), 1);
2443
+ var z34 = __toESM(require("zod"), 1);
2097
2444
  var PluginDesignQuerySpacesApi = class {
2098
2445
  constructor() {
2099
2446
  }
2100
2447
  };
2101
- var PluginDesignQueryGetFootprintArgs = z28.object({
2448
+ var PluginDesignQueryGetFootprintArgs = z34.object({
2102
2449
  space: ComponentHandle
2103
2450
  });
2104
2451
  var PluginDesignQuerySpacesGetProperty = PluginSpaceGetProperty.exclude(["adjacency"]);
2105
- var PluginDesignQuerySpacesGetArgs = z28.object({
2452
+ var PluginDesignQuerySpacesGetArgs = z34.object({
2106
2453
  space: ComponentHandle,
2107
- properties: z28.array(PluginDesignQuerySpacesGetProperty)
2454
+ properties: z34.array(PluginDesignQuerySpacesGetProperty)
2108
2455
  });
2109
2456
  var PluginDesignQuerySpacesGetResult = PluginSpaceGetResult.omit({
2110
2457
  adjacency: true
2111
2458
  });
2112
2459
 
2113
2460
  // src/api/design/query/index.ts
2114
- var PluginEntityType = z29.enum([
2461
+ var PluginEntityType = z35.enum([
2115
2462
  "wall",
2116
2463
  "space",
2117
2464
  "mass",
@@ -2130,227 +2477,335 @@ var PluginEntityType = z29.enum([
2130
2477
  "mullion",
2131
2478
  "panel"
2132
2479
  ]);
2133
- var PluginEntityFilter = z29.object({
2134
- types: z29.array(PluginEntityType).optional(),
2135
- storeys: z29.array(z29.number()).optional(),
2136
- buildingIds: z29.array(z29.string()).optional(),
2137
- structureIds: z29.array(z29.string()).optional(),
2138
- label: z29.string().optional(),
2139
- massTypes: z29.array(PluginMassType).optional(),
2140
- spaceTypes: z29.array(PluginSpaceType).optional(),
2480
+ var PluginEntityFilter = z35.object({
2481
+ types: z35.array(PluginEntityType).optional(),
2482
+ storeys: z35.array(z35.number()).optional(),
2483
+ buildingIds: z35.array(z35.string()).optional(),
2484
+ structureIds: z35.array(z35.string()).optional(),
2485
+ label: z35.string().optional(),
2486
+ massTypes: z35.array(PluginMassType).optional(),
2487
+ spaceTypes: z35.array(PluginSpaceType).optional(),
2141
2488
  departmentId: PluginDepartmentId.optional(),
2142
- isSelected: z29.boolean().optional(),
2143
- isLocked: z29.boolean().optional(),
2144
- isHidden: z29.boolean().optional(),
2489
+ isSelected: z35.boolean().optional(),
2490
+ isLocked: z35.boolean().optional(),
2491
+ isHidden: z35.boolean().optional(),
2145
2492
  within: BBoxComponents.optional(),
2146
2493
  overlaps: ComponentHandle.optional(),
2147
- ids: z29.array(ComponentHandle).optional()
2494
+ ids: z35.array(ComponentHandle).optional()
2148
2495
  });
2149
2496
  var PluginDesignQueryListByTypeArgs = PluginEntityFilter.extend({
2150
2497
  type: PluginEntityType
2151
2498
  });
2152
- var PluginDesignQueryComponentArgs = z29.object({
2499
+ var PluginDesignQueryComponentArgs = z35.object({
2153
2500
  component: ComponentHandle
2154
2501
  });
2155
- var PluginDesignQueryIdArgs = z29.object({
2502
+ var PluginDesignQueryIdArgs = z35.object({
2156
2503
  id: ComponentHandle
2157
2504
  });
2158
- var PluginDesignQueryComponentsArgs = z29.object({
2159
- components: z29.array(ComponentHandle)
2505
+ var PluginDesignQueryComponentsArgs = z35.object({
2506
+ components: z35.array(ComponentHandle)
2160
2507
  });
2161
- var PluginEntityProperties = z29.object({
2162
- id: z29.string(),
2508
+ var PluginEntityProperties = z35.object({
2509
+ id: z35.string(),
2163
2510
  type: PluginEntityType,
2164
- label: z29.string(),
2165
- storey: z29.number(),
2166
- buildingId: z29.string(),
2167
- structureId: z29.string(),
2168
- massType: z29.string(),
2511
+ label: z35.string(),
2512
+ storey: z35.number(),
2513
+ buildingId: z35.string(),
2514
+ structureId: z35.string(),
2515
+ massType: z35.string(),
2169
2516
  spaceType: PluginSpaceType,
2170
2517
  areaClass: PluginAreaClass,
2171
- departmentId: z29.string(),
2172
- isLocked: z29.boolean(),
2173
- isHidden: z29.boolean(),
2174
- isSelected: z29.boolean(),
2518
+ departmentId: z35.string(),
2519
+ isLocked: z35.boolean(),
2520
+ isHidden: z35.boolean(),
2521
+ isSelected: z35.boolean(),
2175
2522
  boundingBox: BBoxComponents,
2176
- adjacency: z29.array(z29.object({ spaceId: z29.string(), value: z29.number() }))
2523
+ adjacency: z35.array(z35.object({ spaceId: z35.string(), value: z35.number() }))
2177
2524
  }).partial();
2178
- var PluginEntityMeasurements = z29.object({
2179
- area: z29.number().optional(),
2180
- volume: z29.number().optional(),
2181
- length: z29.number().optional(),
2525
+ var PluginEntityMeasurements = z35.object({
2526
+ area: z35.number().optional(),
2527
+ volume: z35.number().optional(),
2528
+ length: z35.number().optional(),
2182
2529
  boundingBox: BBoxComponents
2183
2530
  });
2531
+ var PluginStaircaseParams = z35.object({
2532
+ staircaseType: PluginStaircasePreset,
2533
+ staircasePreset: PluginStaircasePreset,
2534
+ staircaseHeight: z35.number(),
2535
+ steps: z35.number(),
2536
+ riser: z35.number(),
2537
+ tread: z35.number(),
2538
+ width: z35.number(),
2539
+ depth: z35.number(),
2540
+ wellSize: z35.number().optional(),
2541
+ landingWidth: z35.number().optional(),
2542
+ flightStartDistAfterTurn: z35.number().optional(),
2543
+ baseOffset: z35.number(),
2544
+ isStoreyHeightUnlocked: z35.boolean(),
2545
+ isStaircaseHeightUnlocked: z35.boolean(),
2546
+ storey: z35.number()
2547
+ });
2184
2548
  var PluginDesignQueryApi = class {
2185
2549
  constructor() {
2186
2550
  }
2187
2551
  };
2188
2552
 
2189
2553
  // src/api/design/selection/index.ts
2190
- var z30 = __toESM(require("zod"), 1);
2554
+ var z36 = __toESM(require("zod"), 1);
2555
+ var PluginSelectionEntityType = z36.enum([
2556
+ "wall",
2557
+ "slab",
2558
+ "floor",
2559
+ "door",
2560
+ "window",
2561
+ "beam",
2562
+ "column",
2563
+ "ceiling",
2564
+ "roof",
2565
+ "staircase",
2566
+ "furniture",
2567
+ "pergola",
2568
+ "sunshade",
2569
+ "referenceLine",
2570
+ "space",
2571
+ "site",
2572
+ "terrain",
2573
+ "cad",
2574
+ "pdf",
2575
+ "image",
2576
+ "dimensionLine",
2577
+ "model3d",
2578
+ "neighborhoodBuilding",
2579
+ "programBlock"
2580
+ ]);
2581
+ var PluginSelectionFilter = z36.object({
2582
+ storeys: z36.array(z36.number()).optional(),
2583
+ types: z36.array(PluginSelectionEntityType).optional()
2584
+ }).refine((f) => (f.storeys?.length ?? 0) + (f.types?.length ?? 0) > 0, {
2585
+ message: "PluginSelectionFilter requires at least one non-empty field (storeys or types); use design.selection.clear() to deselect everything"
2586
+ });
2191
2587
  var PluginDesignSelectionApi = class {
2192
2588
  constructor() {
2193
2589
  }
2194
2590
  };
2195
- var PluginDesignSelectionSetArgs = z30.object({
2196
- components: z30.array(ComponentHandle)
2591
+ var PluginDesignSelectionSetArgs = z36.object({
2592
+ components: z36.array(ComponentHandle)
2197
2593
  });
2198
2594
  var PluginDesignSelectionAddArgs = PluginDesignSelectionSetArgs;
2199
2595
  var PluginDesignSelectionRemoveArgs = PluginDesignSelectionSetArgs;
2200
2596
 
2201
2597
  // src/api/design/doors/index.ts
2202
- var z31 = __toESM(require("zod"), 1);
2598
+ var z37 = __toESM(require("zod"), 1);
2203
2599
  var PluginDesignDoorsApi = class {
2204
2600
  constructor() {
2205
2601
  }
2206
2602
  };
2207
- var PluginDesignDoorArgs = z31.object({
2603
+ var PluginDesignDoorArgs = z37.object({
2208
2604
  door: ComponentHandle
2209
2605
  });
2210
- var PluginMirrorAxis = z31.enum(["x", "y", "z"]);
2211
- var PluginDesignDoorMirrorArgs = z31.object({
2606
+ var PluginMirrorAxis = z37.enum(["x", "y", "z"]);
2607
+ var PluginDesignDoorMirrorArgs = z37.object({
2212
2608
  door: ComponentHandle,
2213
2609
  axis: PluginMirrorAxis.optional()
2214
2610
  });
2215
- var PluginDesignDoorSetWidthArgs = z31.object({
2216
- doors: z31.array(ComponentHandle),
2217
- width: z31.number()
2611
+ var PluginDesignDoorSetWidthArgs = z37.object({
2612
+ doors: z37.array(ComponentHandle),
2613
+ width: z37.number()
2218
2614
  });
2219
- var PluginDesignDoorSetHeightArgs = z31.object({
2220
- doors: z31.array(ComponentHandle),
2221
- height: z31.number()
2615
+ var PluginDesignDoorSetHeightArgs = z37.object({
2616
+ doors: z37.array(ComponentHandle),
2617
+ height: z37.number()
2222
2618
  });
2619
+ var PluginObjectCatalogGroup = z37.object({
2620
+ dbType: z37.string(),
2621
+ label: z37.string(),
2622
+ source: z37.enum(["default", "team"])
2623
+ });
2624
+ var PluginObjectCatalogItem = z37.object({
2625
+ id: z37.string(),
2626
+ name: z37.string(),
2627
+ source: z37.enum(["team", "general"]),
2628
+ dbType: z37.string(),
2629
+ subType: z37.string().optional(),
2630
+ thumbnailUrl: z37.string().optional(),
2631
+ cost: z37.number().optional(),
2632
+ familyName: z37.string().optional()
2633
+ });
2634
+ var PluginDesignDoorListCatalogArgs = z37.object({
2635
+ group: z37.string().optional()
2636
+ });
2637
+ var PluginDesignDoorGetCatalogItemArgs = z37.object({
2638
+ id: z37.string()
2639
+ });
2640
+ var PluginDesignDoorExistsArgs = PluginDesignDoorGetCatalogItemArgs;
2223
2641
 
2224
2642
  // src/api/design/windows/index.ts
2225
- var z32 = __toESM(require("zod"), 1);
2643
+ var z38 = __toESM(require("zod"), 1);
2226
2644
  var PluginDesignWindowsApi = class {
2227
2645
  constructor() {
2228
2646
  }
2229
2647
  };
2230
- var PluginDesignWindowArgs = z32.object({
2648
+ var PluginDesignWindowArgs = z38.object({
2231
2649
  window: ComponentHandle
2232
2650
  });
2233
- var PluginWindowDimensions = z32.object({
2234
- width: z32.number(),
2235
- height: z32.number(),
2236
- thickness: z32.number()
2651
+ var PluginWindowDimensions = z38.object({
2652
+ width: z38.number(),
2653
+ height: z38.number(),
2654
+ thickness: z38.number()
2237
2655
  });
2238
- var PluginDesignWindowSetWidthArgs = z32.object({
2656
+ var PluginDesignWindowSetWidthArgs = z38.object({
2239
2657
  window: ComponentHandle,
2240
- width: z32.number()
2658
+ width: z38.number()
2241
2659
  });
2242
- var PluginDesignWindowSetHeightArgs = z32.object({
2660
+ var PluginDesignWindowSetHeightArgs = z38.object({
2243
2661
  window: ComponentHandle,
2244
- height: z32.number()
2662
+ height: z38.number()
2663
+ });
2664
+ var PluginDesignWindowListCatalogArgs = z38.object({
2665
+ group: z38.string().optional()
2245
2666
  });
2667
+ var PluginDesignWindowGetCatalogItemArgs = z38.object({
2668
+ id: z38.string()
2669
+ });
2670
+ var PluginDesignWindowExistsArgs = PluginDesignWindowGetCatalogItemArgs;
2246
2671
 
2247
2672
  // src/api/design/furniture/index.ts
2248
- var z33 = __toESM(require("zod"), 1);
2673
+ var z39 = __toESM(require("zod"), 1);
2249
2674
  var PluginDesignFurnitureApi = class {
2250
2675
  constructor() {
2251
2676
  }
2252
2677
  };
2253
- var PluginFurnitureCatalogItem = z33.object({
2254
- id: z33.string(),
2255
- name: z33.string(),
2256
- source: z33.enum(["team", "general"]),
2257
- subType: z33.string().optional(),
2258
- cost: z33.number().optional(),
2259
- familyName: z33.string().optional()
2260
- });
2261
- var PluginDesignFurnitureListCatalogArgs = z33.object({
2262
- source: z33.enum(["team", "general"]).optional()
2263
- });
2264
- var PluginDesignFurnitureGetCatalogItemArgs = z33.object({
2265
- id: z33.string()
2678
+ var PluginFurnitureCatalogItem = z39.object({
2679
+ id: z39.string(),
2680
+ name: z39.string(),
2681
+ source: z39.enum(["team", "general"]),
2682
+ subType: z39.string().optional(),
2683
+ category: z39.string().optional(),
2684
+ thumbnailUrl: z39.string().optional(),
2685
+ cost: z39.number().optional(),
2686
+ familyName: z39.string().optional()
2687
+ });
2688
+ var PluginDesignFurnitureListCatalogArgs = z39.object({
2689
+ source: z39.enum(["team", "general"]).optional(),
2690
+ category: z39.string().optional()
2691
+ });
2692
+ var PluginDesignFurnitureGetCatalogItemArgs = z39.object({
2693
+ id: z39.string()
2266
2694
  });
2267
2695
  var PluginDesignFurnitureExistsArgs = PluginDesignFurnitureGetCatalogItemArgs;
2268
2696
 
2269
2697
  // src/api/design/materials/index.ts
2270
- var z34 = __toESM(require("zod"), 1);
2698
+ var z40 = __toESM(require("zod"), 1);
2271
2699
  var PluginDesignMaterialsApi = class {
2272
2700
  constructor() {
2273
2701
  }
2274
2702
  };
2275
- var PluginMaterialInfo = z34.object({
2276
- name: z34.string(),
2277
- id: z34.string(),
2278
- colorHex: z34.string(),
2279
- alpha: z34.number(),
2280
- materialType: z34.string().optional(),
2281
- textureUrl: z34.string().optional()
2282
- });
2283
- var PluginMaterialSpec = z34.object({
2284
- name: z34.string().optional(),
2285
- color: z34.string().optional(),
2286
- textureUrl: z34.string().optional(),
2287
- alpha: z34.number().optional(),
2288
- materialType: z34.string().optional()
2289
- });
2290
- var PluginMaterialResult = z34.object({ count: z34.number() });
2291
- var PluginDesignMaterialsListArgs = z34.object({
2292
- scope: z34.enum(["project", "preset"]).optional()
2293
- });
2294
- var PluginDesignMaterialsGetInfoArgs = z34.object({ material: MaterialHandle });
2295
- var PluginDesignMaterialsComponentArgs = z34.object({ component: ComponentHandle });
2296
- var PluginDesignMaterialsApplyArgs = z34.object({
2297
- targets: z34.array(ComponentHandle),
2298
- material: z34.union([MaterialHandle, PluginMaterialSpec]),
2299
- save: z34.boolean().optional()
2300
- });
2301
- var PluginDesignMaterialsResetArgs = z34.object({
2302
- components: z34.array(ComponentHandle),
2303
- save: z34.boolean().optional()
2304
- });
2305
- var PluginDesignMaterialsCreateArgs = z34.object({ spec: PluginMaterialSpec });
2703
+ var PluginMaterialInfo = z40.object({
2704
+ name: z40.string(),
2705
+ id: z40.string(),
2706
+ colorHex: z40.string(),
2707
+ alpha: z40.number(),
2708
+ materialType: z40.string().optional(),
2709
+ textureUrl: z40.string().optional()
2710
+ });
2711
+ var PluginMaterialSpec = z40.object({
2712
+ name: z40.string().optional(),
2713
+ color: z40.string().optional(),
2714
+ textureUrl: z40.string().optional(),
2715
+ alpha: z40.number().optional(),
2716
+ materialType: z40.string().optional()
2717
+ });
2718
+ var PluginMaterialResult = z40.object({ count: z40.number() });
2719
+ var PluginFaceMaterial = z40.object({
2720
+ faceIndex: z40.number().int().nonnegative(),
2721
+ material: MaterialHandle.nullable()
2722
+ });
2723
+ var PluginDesignMaterialsListArgs = z40.object({
2724
+ scope: z40.enum(["project", "preset"]).optional()
2725
+ });
2726
+ var PluginDesignMaterialsGetInfoArgs = z40.object({ material: MaterialHandle });
2727
+ var PluginDesignMaterialsComponentArgs = z40.object({ component: ComponentHandle });
2728
+ var PluginDesignMaterialsApplyArgs = z40.object({
2729
+ targets: z40.array(ComponentHandle),
2730
+ material: z40.union([MaterialHandle, PluginMaterialSpec]),
2731
+ save: z40.boolean().optional()
2732
+ });
2733
+ var PluginDesignMaterialsResetArgs = z40.object({
2734
+ components: z40.array(ComponentHandle),
2735
+ save: z40.boolean().optional()
2736
+ });
2737
+ var PluginDesignMaterialsCreateArgs = z40.object({ spec: PluginMaterialSpec });
2738
+ var PluginDesignMaterialsApplyToFacesArgs = z40.object({
2739
+ component: ComponentHandle,
2740
+ faces: z40.array(z40.number().int().nonnegative()),
2741
+ material: z40.union([MaterialHandle, PluginMaterialSpec]),
2742
+ save: z40.boolean().optional()
2743
+ });
2744
+ var PluginDesignMaterialsResetFacesArgs = z40.object({
2745
+ component: ComponentHandle,
2746
+ faces: z40.array(z40.number().int().nonnegative()),
2747
+ save: z40.boolean().optional()
2748
+ });
2749
+ var PluginDesignMaterialsGetByFaceArgs = z40.object({
2750
+ component: ComponentHandle,
2751
+ face: z40.number().int().nonnegative()
2752
+ });
2753
+ var PluginDesignMaterialsListByFaceArgs = PluginDesignMaterialsComponentArgs;
2306
2754
 
2307
2755
  // src/api/design/lock.ts
2308
- var z35 = __toESM(require("zod"), 1);
2309
- var PluginDesignChangeResult = z35.object({
2310
- affected: z35.array(ComponentHandle)
2756
+ var z41 = __toESM(require("zod"), 1);
2757
+ var PluginDesignChangeResult = z41.object({
2758
+ affected: z41.array(ComponentHandle)
2311
2759
  });
2312
- var PluginDesignLockArgs = z35.object({
2313
- components: z35.array(ComponentHandle)
2760
+ var PluginDesignLockArgs = z41.object({
2761
+ components: z41.array(ComponentHandle)
2314
2762
  });
2315
2763
  var PluginDesignUnlockArgs = PluginDesignLockArgs;
2316
- var PluginDesignIsLockedArgs = z35.object({
2764
+ var PluginDesignIsLockedArgs = z41.object({
2317
2765
  component: ComponentHandle,
2318
- includeInherited: z35.boolean().optional()
2766
+ includeInherited: z41.boolean().optional()
2767
+ });
2768
+ var PluginDesignLockAreaArgs = z41.object({
2769
+ spaces: z41.array(ComponentHandle)
2770
+ });
2771
+ var PluginDesignUnlockAreaArgs = PluginDesignLockAreaArgs;
2772
+ var PluginDesignIsAreaLockedArgs = z41.object({
2773
+ space: ComponentHandle
2319
2774
  });
2320
2775
 
2321
2776
  // src/api/design/erase/index.ts
2322
- var z36 = __toESM(require("zod"), 1);
2323
- var EraseStrategy = z36.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
2777
+ var z42 = __toESM(require("zod"), 1);
2778
+ var EraseStrategy = z42.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
2324
2779
  var DEFAULT_ERASE_STRATEGIES = ["DirectDelete", "DirectUnion"];
2325
- var ErasableEdgeRef = z36.object({
2780
+ var ErasableEdgeRef = z42.object({
2326
2781
  /** Opaque bottom-graph edge id (engine form `"e-<n>"`). Do not mutate. Pass verbatim to {@linkcode PluginDesignEraseApi.edge}. */
2327
- id: z36.string().min(1),
2782
+ id: z42.string().min(1),
2328
2783
  /** What erasing this edge would do: `DirectDelete` drops a mass; `DirectUnion` merges two adjacent masses. */
2329
2784
  strategy: EraseStrategy,
2330
2785
  /** Bottom-graph edge weight: `1` = external boundary edge, `>=2` = internal edge shared between components. */
2331
- edgeWeight: z36.number(),
2332
- /** The components this edge is incident to — one for external (DirectDelete), two for internal (DirectUnion). */
2333
- components: z36.array(ComponentHandle),
2786
+ edgeWeight: z42.number(),
2787
+ /** The components this edge is incident to — one for external (DirectDelete); two or more for internal (DirectUnion; 3+ at T-junctions where several masses share the edge). */
2788
+ components: z42.array(ComponentHandle),
2334
2789
  /** A representative point on the edge (its head endpoint). Diagnostic only. */
2335
2790
  snapPoint: Vec3Handle
2336
2791
  });
2337
- var PluginDesignListErasableEdgesArgs = z36.object({
2338
- components: z36.array(ComponentHandle).optional(),
2339
- strategies: z36.array(EraseStrategy).optional()
2792
+ var PluginDesignListErasableEdgesArgs = z42.object({
2793
+ components: z42.array(ComponentHandle).optional(),
2794
+ strategies: z42.array(EraseStrategy).optional()
2340
2795
  });
2341
- var PluginDesignEraseEdgeArgs = z36.object({
2796
+ var PluginDesignEraseEdgeArgs = z42.object({
2342
2797
  edge: ErasableEdgeRef
2343
2798
  });
2344
- var PluginDesignEraseEdgeResult = z36.object({ ok: z36.literal(true) });
2799
+ var PluginDesignEraseEdgeResult = z42.object({ ok: z42.literal(true) });
2345
2800
  var PluginDesignEraseApi = class {
2346
2801
  constructor() {
2347
2802
  }
2348
2803
  };
2349
2804
 
2350
2805
  // src/api/design/delete/index.ts
2351
- var z37 = __toESM(require("zod"), 1);
2352
- var PluginDesignDeleteEntitiesArgs = z37.object({
2353
- components: z37.array(ComponentHandle).min(1)
2806
+ var z43 = __toESM(require("zod"), 1);
2807
+ var PluginDesignDeleteEntitiesArgs = z43.object({
2808
+ components: z43.array(ComponentHandle).min(1)
2354
2809
  });
2355
2810
  var PluginDesignDeleteApi = class {
2356
2811
  constructor() {
@@ -2358,89 +2813,120 @@ var PluginDesignDeleteApi = class {
2358
2813
  };
2359
2814
 
2360
2815
  // src/api/design/shared.ts
2361
- var z38 = __toESM(require("zod"), 1);
2362
- var BooleanOutcome = z38.object({
2363
- created: z38.array(ComponentHandle),
2364
- deleted: z38.array(ComponentHandle)
2816
+ var z44 = __toESM(require("zod"), 1);
2817
+ var BooleanOutcome = z44.object({
2818
+ created: z44.array(ComponentHandle),
2819
+ deleted: z44.array(ComponentHandle)
2365
2820
  });
2366
- var OffsetSplitOutcome = z38.object({
2367
- createdIds: z38.array(ComponentHandle),
2368
- deletedIds: z38.array(ComponentHandle),
2369
- offsetValue: z38.number()
2821
+ var OffsetSplitOutcome = z44.object({
2822
+ createdIds: z44.array(ComponentHandle),
2823
+ deletedIds: z44.array(ComponentHandle),
2824
+ offsetValue: z44.number()
2370
2825
  });
2371
2826
 
2372
2827
  // src/api/design/boolean/index.ts
2373
- var z39 = __toESM(require("zod"), 1);
2828
+ var z45 = __toESM(require("zod"), 1);
2374
2829
  var PluginDesignBooleanApi = class {
2375
2830
  constructor() {
2376
2831
  }
2377
2832
  };
2378
- var BooleanOptions = z39.object({
2833
+ var BooleanOptions = z45.object({
2379
2834
  offset: Vec3Handle.optional()
2380
2835
  });
2381
- var PluginDesignBooleanUnionArgs = z39.object({
2382
- components: z39.array(ComponentHandle).min(2),
2836
+ var PluginDesignBooleanUnionArgs = z45.object({
2837
+ components: z45.array(ComponentHandle).min(2),
2383
2838
  options: BooleanOptions.optional()
2384
2839
  });
2385
- var PluginDesignBooleanSubtractArgs = z39.object({
2840
+ var PluginDesignBooleanSubtractArgs = z45.object({
2386
2841
  target: ComponentHandle,
2387
- tools: z39.array(ComponentHandle).min(1),
2842
+ tools: z45.array(ComponentHandle).min(1),
2388
2843
  options: BooleanOptions.optional()
2389
2844
  });
2390
- var PluginDesignBooleanIntersectArgs = z39.object({
2391
- components: z39.array(ComponentHandle).length(2),
2845
+ var PluginDesignBooleanIntersectArgs = z45.object({
2846
+ components: z45.array(ComponentHandle).length(2),
2392
2847
  options: BooleanOptions.optional()
2393
2848
  });
2394
2849
 
2395
2850
  // src/api/design/transform/index.ts
2396
- var z40 = __toESM(require("zod"), 1);
2851
+ var z46 = __toESM(require("zod"), 1);
2397
2852
  var PluginDesignTransformApi = class {
2398
2853
  constructor() {
2399
2854
  }
2400
2855
  };
2401
- var PluginDesignMoveArgs = z40.object({
2402
- components: z40.array(ComponentHandle).min(1),
2856
+ var PluginAlignEdge = z46.enum(["left", "right", "center", "top", "bottom", "middle"]);
2857
+ var PluginDesignMoveArgs = z46.object({
2858
+ components: z46.array(ComponentHandle).min(1),
2403
2859
  displacement: Vec3Handle,
2404
- is2D: z40.boolean().optional(),
2405
- trackParentChange: z40.boolean().optional()
2860
+ is2D: z46.boolean().optional(),
2861
+ trackParentChange: z46.boolean().optional()
2406
2862
  });
2407
- var PluginDesignRotateArgs = z40.object({
2408
- components: z40.array(ComponentHandle).min(1),
2409
- angleInDegrees: z40.number(),
2863
+ var PluginDesignRotateArgs = z46.object({
2864
+ components: z46.array(ComponentHandle).min(1),
2865
+ angleInDegrees: z46.number(),
2410
2866
  axis: Vec3Handle.optional(),
2411
- is2D: z40.boolean().optional()
2867
+ is2D: z46.boolean().optional()
2868
+ });
2869
+ var PluginDesignAlignArgs = z46.object({
2870
+ components: z46.array(ComponentHandle).min(1),
2871
+ edge: PluginAlignEdge,
2872
+ reference: ComponentHandle.optional()
2412
2873
  });
2413
2874
 
2414
2875
  // src/api/design/edit/index.ts
2415
- var z41 = __toESM(require("zod"), 1);
2876
+ var z47 = __toESM(require("zod"), 1);
2416
2877
  var PluginDesignEditApi = class {
2417
2878
  constructor() {
2418
2879
  }
2419
2880
  };
2420
- var PluginDesignOffsetSplitArgs = z41.object({
2881
+ var PluginDesignOffsetSplitArgs = z47.object({
2421
2882
  component: ComponentHandle,
2422
- offsetDistance: z41.number(),
2883
+ offsetDistance: z47.number(),
2423
2884
  profilePickPoint: Vec3Handle.optional()
2424
2885
  });
2425
2886
 
2426
2887
  // src/api/design/update/index.ts
2427
- var z42 = __toESM(require("zod"), 1);
2428
- var PluginSpacePropertyUpdates = z42.object({
2429
- room_type: z42.string().optional(),
2888
+ var z48 = __toESM(require("zod"), 1);
2889
+ var PluginSpacePropertyUpdates = z48.object({
2890
+ room_type: z48.string().optional(),
2430
2891
  massType: PluginMassType.optional(),
2431
2892
  spaceType: PluginSpaceType.optional(),
2432
2893
  areaClass: PluginAreaClass.optional(),
2433
2894
  departmentId: PluginDepartmentId.optional()
2434
2895
  });
2435
- var PluginSpaceGeometryUpdate = z42.object({
2896
+ var PluginSpaceGeometryUpdate = z48.object({
2436
2897
  profile: ProfileHandle,
2437
- extrudeHeight: z42.number()
2898
+ extrudeHeight: z48.number()
2438
2899
  });
2439
- var PluginUpdateSpaceItem = z42.object({
2900
+ var PluginUpdateSpaceItem = z48.object({
2440
2901
  space: ComponentHandle,
2441
2902
  properties: PluginSpacePropertyUpdates.optional(),
2442
2903
  geometry: PluginSpaceGeometryUpdate.optional()
2443
2904
  });
2905
+ var PluginDesignSetLabelArgs = z48.object({
2906
+ component: ComponentHandle,
2907
+ label: z48.string().trim().min(1)
2908
+ });
2909
+ var PluginStaircaseParamUpdates = z48.object({
2910
+ isStoreyHeightUnlocked: z48.boolean().optional(),
2911
+ isStaircaseHeightUnlocked: z48.boolean().optional(),
2912
+ storeyHeight: z48.number().optional(),
2913
+ staircaseHeight: z48.number().optional(),
2914
+ steps: z48.number().int().optional(),
2915
+ riser: z48.number().optional(),
2916
+ tread: z48.number().optional(),
2917
+ width: z48.number().optional(),
2918
+ depth: z48.number().optional(),
2919
+ wellSize: z48.number().optional(),
2920
+ flightStartDistAfterTurn: z48.number().optional(),
2921
+ landingWidth: z48.number().optional(),
2922
+ baseOffset: z48.number().optional()
2923
+ }).refine((p) => Object.keys(p).length > 0, {
2924
+ message: "PluginStaircaseParamUpdates requires at least one field to change"
2925
+ });
2926
+ var PluginDesignUpdateStaircaseArgs = z48.object({
2927
+ staircases: z48.array(ComponentHandle),
2928
+ params: PluginStaircaseParamUpdates
2929
+ });
2444
2930
  var PluginDesignUpdateApi = class {
2445
2931
  constructor() {
2446
2932
  }
@@ -2453,37 +2939,37 @@ var PluginDesignApi = class {
2453
2939
  };
2454
2940
 
2455
2941
  // src/api/entity/buildableEnvelope.ts
2456
- var z43 = __toESM(require("zod"), 1);
2942
+ var z49 = __toESM(require("zod"), 1);
2457
2943
  var PluginBuildableEnvelopeApi = class {
2458
2944
  constructor() {
2459
2945
  }
2460
2946
  };
2461
- var PluginBuildableEnvelopePolygonVertex = z43.union([
2462
- z43.object({ x: z43.number().finite(), z: z43.number().finite() }).strict(),
2463
- z43.tuple([z43.number().finite(), z43.number().finite()])
2947
+ var PluginBuildableEnvelopePolygonVertex = z49.union([
2948
+ z49.object({ x: z49.number().finite(), z: z49.number().finite() }).strict(),
2949
+ z49.tuple([z49.number().finite(), z49.number().finite()])
2464
2950
  ]);
2465
- var PluginBuildableEnvelopeVerticalCap = z43.discriminatedUnion("kind", [
2466
- z43.object({
2467
- kind: z43.literal("max_height"),
2468
- maxHeight: z43.number().finite().positive()
2951
+ var PluginBuildableEnvelopeVerticalCap = z49.discriminatedUnion("kind", [
2952
+ z49.object({
2953
+ kind: z49.literal("max_height"),
2954
+ maxHeight: z49.number().finite().positive()
2469
2955
  }).strict(),
2470
- z43.object({
2471
- kind: z43.literal("max_floors"),
2472
- maxFloors: z43.number().finite().int().positive()
2956
+ z49.object({
2957
+ kind: z49.literal("max_floors"),
2958
+ maxFloors: z49.number().finite().int().positive()
2473
2959
  }).strict()
2474
2960
  ]);
2475
- var PluginBuildableEnvelopeSetbackTier = z43.object({
2476
- aboveHeight: z43.number().finite().nonnegative(),
2477
- front: z43.number().finite().nonnegative(),
2478
- side: z43.number().finite().nonnegative(),
2479
- rear: z43.number().finite().nonnegative()
2961
+ var PluginBuildableEnvelopeSetbackTier = z49.object({
2962
+ aboveHeight: z49.number().finite().nonnegative(),
2963
+ front: z49.number().finite().nonnegative(),
2964
+ side: z49.number().finite().nonnegative(),
2965
+ rear: z49.number().finite().nonnegative()
2480
2966
  }).strict();
2481
2967
  function refineSetbackTiers(args, ctx) {
2482
2968
  const tiers = args.setbacks;
2483
2969
  if (tiers.length === 0) return;
2484
2970
  if (tiers[0].aboveHeight !== 0) {
2485
2971
  ctx.addIssue({
2486
- code: z43.ZodIssueCode.custom,
2972
+ code: z49.ZodIssueCode.custom,
2487
2973
  path: ["setbacks", 0, "aboveHeight"],
2488
2974
  message: "Ground tier required: setbacks[0].aboveHeight must be 0."
2489
2975
  });
@@ -2491,75 +2977,75 @@ function refineSetbackTiers(args, ctx) {
2491
2977
  for (let i = 1; i < tiers.length; i++) {
2492
2978
  if (!(tiers[i].aboveHeight > tiers[i - 1].aboveHeight)) {
2493
2979
  ctx.addIssue({
2494
- code: z43.ZodIssueCode.custom,
2980
+ code: z49.ZodIssueCode.custom,
2495
2981
  path: ["setbacks", i, "aboveHeight"],
2496
2982
  message: "Setback tiers must be ordered by strictly increasing aboveHeight."
2497
2983
  });
2498
2984
  }
2499
2985
  }
2500
2986
  }
2501
- var PluginBuildableEnvelopeCreateArgs = z43.object({
2502
- sitePolygon: z43.array(PluginBuildableEnvelopePolygonVertex).min(3),
2503
- lengthUnit: z43.union([z43.literal("ft"), z43.literal("m")]),
2504
- setbacks: z43.array(PluginBuildableEnvelopeSetbackTier).min(1),
2987
+ var PluginBuildableEnvelopeCreateArgs = z49.object({
2988
+ sitePolygon: z49.array(PluginBuildableEnvelopePolygonVertex).min(3),
2989
+ lengthUnit: z49.union([z49.literal("ft"), z49.literal("m")]),
2990
+ setbacks: z49.array(PluginBuildableEnvelopeSetbackTier).min(1),
2505
2991
  verticalCap: PluginBuildableEnvelopeVerticalCap,
2506
- floorToFloor: z43.number().finite().positive(),
2507
- farRatio: z43.number().finite().positive().optional(),
2508
- lotCoverageMaxPct: z43.number().finite().min(0).max(100).optional()
2992
+ floorToFloor: z49.number().finite().positive(),
2993
+ farRatio: z49.number().finite().positive().optional(),
2994
+ lotCoverageMaxPct: z49.number().finite().min(0).max(100).optional()
2509
2995
  }).strict().superRefine(refineSetbackTiers);
2510
- var PluginBuildableEnvelopeCreateResult = z43.object({
2511
- buildableEnvelopeId: z43.string().min(1)
2996
+ var PluginBuildableEnvelopeCreateResult = z49.object({
2997
+ buildableEnvelopeId: z49.string().min(1)
2512
2998
  }).strict();
2513
- var PluginBuildableEnvelopeUpdateArgs = z43.object({
2514
- buildableEnvelopeId: z43.string().min(1),
2515
- sitePolygon: z43.array(PluginBuildableEnvelopePolygonVertex).min(3),
2516
- lengthUnit: z43.union([z43.literal("ft"), z43.literal("m")]),
2517
- setbacks: z43.array(PluginBuildableEnvelopeSetbackTier).min(1),
2999
+ var PluginBuildableEnvelopeUpdateArgs = z49.object({
3000
+ buildableEnvelopeId: z49.string().min(1),
3001
+ sitePolygon: z49.array(PluginBuildableEnvelopePolygonVertex).min(3),
3002
+ lengthUnit: z49.union([z49.literal("ft"), z49.literal("m")]),
3003
+ setbacks: z49.array(PluginBuildableEnvelopeSetbackTier).min(1),
2518
3004
  verticalCap: PluginBuildableEnvelopeVerticalCap,
2519
- floorToFloor: z43.number().finite().positive(),
2520
- farRatio: z43.number().finite().positive().optional(),
2521
- lotCoverageMaxPct: z43.number().finite().min(0).max(100).optional()
3005
+ floorToFloor: z49.number().finite().positive(),
3006
+ farRatio: z49.number().finite().positive().optional(),
3007
+ lotCoverageMaxPct: z49.number().finite().min(0).max(100).optional()
2522
3008
  }).strict().superRefine(refineSetbackTiers);
2523
- var PluginBuildableEnvelopeUpdateResult = z43.object({
2524
- buildableEnvelopeId: z43.string().min(1)
3009
+ var PluginBuildableEnvelopeUpdateResult = z49.object({
3010
+ buildableEnvelopeId: z49.string().min(1)
2525
3011
  }).strict();
2526
3012
 
2527
3013
  // src/api/entity/referenceLine.ts
2528
- var z44 = __toESM(require("zod"), 1);
3014
+ var z50 = __toESM(require("zod"), 1);
2529
3015
  var PluginReferenceLineApi = class {
2530
3016
  constructor() {
2531
3017
  }
2532
3018
  };
2533
- var PluginReferenceLineCreateMultiArgs = z44.object({
3019
+ var PluginReferenceLineCreateMultiArgs = z50.object({
2534
3020
  profile: ProfileHandle
2535
3021
  });
2536
- var PluginReferenceLineCreateMultiResult = z44.object({
2537
- referenceLineIds: z44.array(z44.string())
3022
+ var PluginReferenceLineCreateMultiResult = z50.object({
3023
+ referenceLineIds: z50.array(z50.string())
2538
3024
  });
2539
- var PluginReferenceLineGetProperty = z44.enum([
3025
+ var PluginReferenceLineGetProperty = z50.enum([
2540
3026
  "curve"
2541
3027
  ]);
2542
- var PluginReferenceLineGetArgs = z44.object({
2543
- referenceLineId: z44.string(),
2544
- properties: z44.array(PluginReferenceLineGetProperty)
3028
+ var PluginReferenceLineGetArgs = z50.object({
3029
+ referenceLineId: z50.string(),
3030
+ properties: z50.array(PluginReferenceLineGetProperty)
2545
3031
  });
2546
- var PluginReferenceLineGetResult = z44.object({
3032
+ var PluginReferenceLineGetResult = z50.object({
2547
3033
  curve: CurveHandle
2548
3034
  }).partial();
2549
- var PluginReferenceLineGetAllResult = z44.object({
2550
- referenceLineIds: z44.array(z44.string())
3035
+ var PluginReferenceLineGetAllResult = z50.object({
3036
+ referenceLineIds: z50.array(z50.string())
2551
3037
  });
2552
- var PluginReferenceLineDeleteArgs = z44.object({
2553
- referenceLineId: z44.string()
3038
+ var PluginReferenceLineDeleteArgs = z50.object({
3039
+ referenceLineId: z50.string()
2554
3040
  });
2555
3041
 
2556
3042
  // src/api/entity/story.ts
2557
- var z45 = __toESM(require("zod"), 1);
3043
+ var z51 = __toESM(require("zod"), 1);
2558
3044
  var PluginStoryApi = class {
2559
3045
  constructor() {
2560
3046
  }
2561
3047
  };
2562
- var PluginStoryGetProperty = z45.enum([
3048
+ var PluginStoryGetProperty = z51.enum([
2563
3049
  "value",
2564
3050
  "id",
2565
3051
  "name",
@@ -2569,44 +3055,56 @@ var PluginStoryGetProperty = z45.enum([
2569
3055
  "spacesCount",
2570
3056
  "totalArea"
2571
3057
  ]);
2572
- var PluginStoryGetArgs = z45.object({
2573
- storyValue: z45.number().int(),
2574
- properties: z45.array(PluginStoryGetProperty)
2575
- });
2576
- var PluginStoryGetResult = z45.object({
2577
- value: z45.number(),
2578
- id: z45.string(),
2579
- name: z45.string(),
2580
- height: z45.number(),
2581
- base: z45.number(),
2582
- hidden: z45.boolean(),
2583
- spacesCount: z45.number(),
2584
- totalArea: z45.number()
3058
+ var PluginStoryGetArgs = z51.object({
3059
+ storyValue: z51.number().int(),
3060
+ properties: z51.array(PluginStoryGetProperty)
3061
+ });
3062
+ var PluginStoryGetResult = z51.object({
3063
+ value: z51.number(),
3064
+ id: z51.string(),
3065
+ name: z51.string(),
3066
+ height: z51.number(),
3067
+ base: z51.number(),
3068
+ hidden: z51.boolean(),
3069
+ spacesCount: z51.number(),
3070
+ totalArea: z51.number()
2585
3071
  }).partial();
2586
- var PluginStoryGetAllResult = z45.object({
2587
- stories: z45.array(
2588
- z45.object({
2589
- value: z45.number(),
2590
- id: z45.string(),
2591
- name: z45.string()
3072
+ var PluginStoryGetAllResult = z51.object({
3073
+ stories: z51.array(
3074
+ z51.object({
3075
+ value: z51.number(),
3076
+ id: z51.string(),
3077
+ name: z51.string()
2592
3078
  })
2593
3079
  )
2594
3080
  });
2595
- var PluginStoryCreateArgs = z45.object({
2596
- storyValue: z45.number().int(),
2597
- height: z45.number().optional()
3081
+ var PluginStoryCreateArgs = z51.object({
3082
+ storyValue: z51.number().int(),
3083
+ height: z51.number().optional()
2598
3084
  });
2599
- var PluginStoryCreateResult = z45.object({
2600
- storyId: z45.string(),
2601
- storyValue: z45.number()
3085
+ var PluginStoryCreateResult = z51.object({
3086
+ storyId: z51.string(),
3087
+ storyValue: z51.number()
2602
3088
  });
2603
- var PluginStoryUpdateArgs = z45.object({
2604
- storyValue: z45.number().int(),
2605
- height: z45.number()
3089
+ var PluginStoryUpdateArgs = z51.object({
3090
+ storyValue: z51.number().int(),
3091
+ height: z51.number()
2606
3092
  });
2607
- var PluginStoryUpdateResult = z45.object({
2608
- storyValue: z45.number(),
2609
- height: z45.number()
3093
+ var PluginStoryUpdateResult = z51.object({
3094
+ storyValue: z51.number(),
3095
+ height: z51.number()
3096
+ });
3097
+ var PluginStoryDuplicateArgs = z51.object({
3098
+ direction: z51.enum(["up", "down"]),
3099
+ components: z51.array(ComponentHandle).optional(),
3100
+ unique: z51.boolean().optional()
3101
+ });
3102
+ var PluginStoryDuplicateResult = z51.object({
3103
+ sourceStory: z51.number(),
3104
+ targetStories: z51.array(z51.number()),
3105
+ created: z51.array(ComponentHandle),
3106
+ createdStoryValues: z51.array(z51.number()),
3107
+ skipped: z51.number()
2610
3108
  });
2611
3109
 
2612
3110
  // src/api/entity/index.ts
@@ -2616,27 +3114,27 @@ var PluginEntityApi = class {
2616
3114
  };
2617
3115
 
2618
3116
  // src/api/program/departments.ts
2619
- var z47 = __toESM(require("zod"), 1);
3117
+ var z53 = __toESM(require("zod"), 1);
2620
3118
 
2621
3119
  // src/api/program/metrics.ts
2622
- var z46 = __toESM(require("zod"), 1);
3120
+ var z52 = __toESM(require("zod"), 1);
2623
3121
  var PluginProgramMetricsApi = class {
2624
3122
  constructor() {
2625
3123
  }
2626
3124
  };
2627
- var PluginAreaUnit = z46.enum(["ft2", "m2"]);
2628
- var PluginProgramDepartmentMetric = z46.object({
2629
- departmentId: z46.string(),
2630
- name: z46.string(),
2631
- targetArea: z46.number().nullable(),
2632
- allocatedArea: z46.number()
2633
- });
2634
- var PluginProgramMetricsSummary = z46.object({
3125
+ var PluginAreaUnit = z52.enum(["ft2", "m2"]);
3126
+ var PluginProgramDepartmentMetric = z52.object({
3127
+ departmentId: z52.string(),
3128
+ name: z52.string(),
3129
+ targetArea: z52.number().nullable(),
3130
+ allocatedArea: z52.number()
3131
+ });
3132
+ var PluginProgramMetricsSummary = z52.object({
2635
3133
  units: PluginAreaUnit,
2636
- totalTargetArea: z46.number(),
2637
- totalAllocatedArea: z46.number(),
2638
- unassignedArea: z46.number(),
2639
- departments: z46.array(PluginProgramDepartmentMetric)
3134
+ totalTargetArea: z52.number(),
3135
+ totalAllocatedArea: z52.number(),
3136
+ unassignedArea: z52.number(),
3137
+ departments: z52.array(PluginProgramDepartmentMetric)
2640
3138
  }).refine(
2641
3139
  (s) => {
2642
3140
  const summed = s.unassignedArea + s.departments.reduce((acc, d) => acc + d.allocatedArea, 0);
@@ -2653,18 +3151,18 @@ var PluginProgramDepartmentsApi = class {
2653
3151
  constructor() {
2654
3152
  }
2655
3153
  };
2656
- var PluginProgramDepartment = z47.object({
2657
- id: z47.string(),
2658
- name: z47.string(),
2659
- color: z47.string(),
2660
- targetArea: z47.number().nullable()
3154
+ var PluginProgramDepartment = z53.object({
3155
+ id: z53.string(),
3156
+ name: z53.string(),
3157
+ color: z53.string(),
3158
+ targetArea: z53.number().nullable()
2661
3159
  });
2662
- var PluginProgramDepartmentsListResult = z47.object({
3160
+ var PluginProgramDepartmentsListResult = z53.object({
2663
3161
  units: PluginAreaUnit,
2664
- departments: z47.array(PluginProgramDepartment)
3162
+ departments: z53.array(PluginProgramDepartment)
2665
3163
  });
2666
- var PluginProgramDepartmentsGetArgs = z47.object({
2667
- departmentId: z47.string()
3164
+ var PluginProgramDepartmentsGetArgs = z53.object({
3165
+ departmentId: z53.string()
2668
3166
  });
2669
3167
  var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
2670
3168
  {
@@ -2674,81 +3172,95 @@ var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
2674
3172
  var PluginProgramDepartmentRecord = PluginProgramDepartment.extend({
2675
3173
  units: PluginAreaUnit
2676
3174
  });
2677
- var PluginProgramDepartmentsCreateArgs = z47.object({
2678
- name: z47.string(),
2679
- color: z47.string()
3175
+ var PluginProgramDepartmentsCreateArgs = z53.object({
3176
+ name: z53.string(),
3177
+ color: z53.string()
2680
3178
  });
2681
- var PluginProgramDepartmentsCreateResult = z47.object({
2682
- departmentId: z47.string()
3179
+ var PluginProgramDepartmentsCreateResult = z53.object({
3180
+ departmentId: z53.string()
2683
3181
  });
2684
- var PluginProgramDepartmentsUpdateArgs = z47.object({
2685
- departmentId: z47.string(),
2686
- name: z47.string().optional(),
2687
- color: z47.string().optional()
3182
+ var PluginProgramDepartmentsUpdateArgs = z53.object({
3183
+ departmentId: z53.string(),
3184
+ name: z53.string().optional(),
3185
+ color: z53.string().optional()
2688
3186
  });
2689
3187
  var PluginProgramDepartmentsUpdateResult = PluginProgramDepartmentRecord;
2690
- var PluginProgramDepartmentsAssignArgs = z47.object({
2691
- departmentId: z47.string(),
2692
- spaceIds: z47.array(ComponentHandle).min(1)
3188
+ var PluginProgramDepartmentsAssignArgs = z53.object({
3189
+ departmentId: z53.string(),
3190
+ spaceIds: z53.array(ComponentHandle).min(1)
2693
3191
  });
2694
- var PluginProgramDepartmentsAssignResult = z47.object({
2695
- departmentId: z47.string(),
2696
- spaceIds: z47.array(ComponentHandle)
3192
+ var PluginProgramDepartmentsAssignResult = z53.object({
3193
+ departmentId: z53.string(),
3194
+ spaceIds: z53.array(ComponentHandle)
2697
3195
  });
2698
- var PluginProgramDepartmentsUnassignArgs = z47.object({
2699
- spaceIds: z47.array(ComponentHandle).min(1)
3196
+ var PluginProgramDepartmentsUnassignArgs = z53.object({
3197
+ spaceIds: z53.array(ComponentHandle).min(1)
2700
3198
  });
2701
- var PluginProgramDepartmentsUnassignResult = z47.object({
2702
- spaceIds: z47.array(ComponentHandle)
3199
+ var PluginProgramDepartmentsUnassignResult = z53.object({
3200
+ spaceIds: z53.array(ComponentHandle)
2703
3201
  });
2704
- var PluginProgramDepartmentsSetTargetAreaArgs = z47.object({
2705
- departmentId: z47.string(),
2706
- targetArea: z47.number(),
3202
+ var PluginProgramDepartmentsSetTargetAreaArgs = z53.object({
3203
+ departmentId: z53.string(),
3204
+ targetArea: z53.number(),
2707
3205
  units: PluginAreaUnit.optional()
2708
3206
  });
2709
3207
  var PluginProgramDepartmentsSetTargetAreaResult = PluginProgramDepartmentRecord;
2710
- var PluginProgramDepartmentsDeleteArgs = z47.object({
2711
- departmentId: z47.string()
3208
+ var PluginProgramDepartmentsDeleteArgs = z53.object({
3209
+ departmentId: z53.string()
2712
3210
  });
2713
- var PluginProgramDepartmentsDeleteResult = z47.object({
2714
- departmentId: z47.string(),
2715
- reassignedSpaceIds: z47.array(ComponentHandle)
3211
+ var PluginProgramDepartmentsDeleteResult = z53.object({
3212
+ departmentId: z53.string(),
3213
+ reassignedSpaceIds: z53.array(ComponentHandle)
2716
3214
  });
2717
3215
 
2718
3216
  // src/api/program/adjacency.ts
2719
- var z48 = __toESM(require("zod"), 1);
3217
+ var z54 = __toESM(require("zod"), 1);
2720
3218
  var PluginProgramAdjacencyApi = class {
2721
3219
  constructor() {
2722
3220
  }
2723
3221
  };
2724
- var PluginAdjacencyLevel = z48.enum(["department", "space"]);
2725
- var PluginProgramAdjacencyGetMatrixArgs = z48.object({
3222
+ var PluginAdjacencyLevel = z54.enum(["department", "space"]);
3223
+ var PluginProgramAdjacencyGetMatrixArgs = z54.object({
2726
3224
  level: PluginAdjacencyLevel,
2727
- ids: z48.array(z48.string()).optional()
3225
+ ids: z54.array(z54.string()).optional()
2728
3226
  });
2729
- var PluginProgramAdjacencyGetMatrixResult = z48.object({
2730
- ids: z48.array(z48.string()),
2731
- departmentIds: z48.array(z48.string().nullable()).optional(),
2732
- matrix: z48.array(z48.array(z48.number()))
3227
+ var PluginProgramAdjacencyGetMatrixResult = z54.object({
3228
+ ids: z54.array(z54.string()),
3229
+ departmentIds: z54.array(z54.string().nullable()).optional(),
3230
+ matrix: z54.array(z54.array(z54.number()))
2733
3231
  });
2734
- var PluginProgramAdjacencyComputeResult = z48.object({
2735
- success: z48.boolean(),
2736
- error: z48.string().optional()
3232
+ var PluginProgramAdjacencyComputeResult = z54.object({
3233
+ success: z54.boolean(),
3234
+ error: z54.string().optional()
2737
3235
  });
2738
3236
 
2739
3237
  // src/api/program/layout.ts
2740
- var z49 = __toESM(require("zod"), 1);
3238
+ var z55 = __toESM(require("zod"), 1);
2741
3239
  var PluginProgramLayoutApi = class {
2742
3240
  constructor() {
2743
3241
  }
2744
3242
  };
2745
- var PluginProgramLayoutRunResult = z49.object({
2746
- success: z49.boolean(),
2747
- error: z49.string().optional()
3243
+ var PluginProgramLayoutRunArgs = z55.object({
3244
+ spaceIds: z55.array(z55.string()).optional(),
3245
+ departmentIds: z55.array(z55.string()).optional(),
3246
+ envelopeId: z55.string().optional()
3247
+ });
3248
+ var PluginProgramLayoutRunResult = z55.object({
3249
+ success: z55.boolean(),
3250
+ error: z55.string().optional()
3251
+ });
3252
+ var PluginProgramLayoutJobStatus = z55.enum([
3253
+ "running",
3254
+ "active",
3255
+ "inactive"
3256
+ ]);
3257
+ var PluginProgramLayoutJobState = z55.object({
3258
+ status: PluginProgramLayoutJobStatus
2748
3259
  });
3260
+ var PluginProgramLayoutStateResult = PluginProgramLayoutJobState.nullable();
2749
3261
 
2750
3262
  // src/api/program/spreadsheet.ts
2751
- var z50 = __toESM(require("zod"), 1);
3263
+ var z56 = __toESM(require("zod"), 1);
2752
3264
  var PluginProgramSpreadsheetApi = class {
2753
3265
  constructor() {
2754
3266
  }
@@ -2761,84 +3273,84 @@ var PluginProgramSpreadsheetBindingsApi = class {
2761
3273
  constructor() {
2762
3274
  }
2763
3275
  };
2764
- var PluginSpreadsheetCell = z50.union([
2765
- z50.string(),
2766
- z50.number(),
2767
- z50.boolean(),
2768
- z50.null()
3276
+ var PluginSpreadsheetCell = z56.union([
3277
+ z56.string(),
3278
+ z56.number(),
3279
+ z56.boolean(),
3280
+ z56.null()
2769
3281
  ]);
2770
- var PluginSpreadsheetAlign = z50.enum(["left", "center", "right"]);
2771
- var PluginSpreadsheetColumn = z50.object({
2772
- key: z50.string(),
2773
- header: z50.string(),
2774
- width: z50.number().optional(),
2775
- format: z50.string().optional(),
3282
+ var PluginSpreadsheetAlign = z56.enum(["left", "center", "right"]);
3283
+ var PluginSpreadsheetColumn = z56.object({
3284
+ key: z56.string(),
3285
+ header: z56.string(),
3286
+ width: z56.number().optional(),
3287
+ format: z56.string().optional(),
2776
3288
  align: PluginSpreadsheetAlign.optional()
2777
3289
  });
2778
- var PluginSpreadsheetTotal = z50.object({
2779
- column: z50.string(),
2780
- fn: z50.enum(["sum", "avg", "count", "min", "max"]),
2781
- label: z50.string().optional()
2782
- });
2783
- var PluginProgramSpreadsheetRenderArgs = z50.object({
2784
- sheetName: z50.string(),
2785
- columns: z50.array(PluginSpreadsheetColumn),
2786
- rows: z50.array(z50.record(z50.string(), PluginSpreadsheetCell)),
2787
- title: z50.string().optional(),
2788
- startCell: z50.string().optional(),
2789
- whenExists: z50.enum(["replace", "error"]).optional(),
2790
- asTable: z50.boolean().optional(),
2791
- freezeHeader: z50.boolean().optional(),
2792
- totals: z50.array(PluginSpreadsheetTotal).optional()
2793
- });
2794
- var PluginProgramSpreadsheetRenderResult = z50.object({
2795
- sheetName: z50.string(),
2796
- range: z50.string(),
2797
- headerRange: z50.string(),
2798
- rowCount: z50.number(),
2799
- colCount: z50.number(),
2800
- tableName: z50.string().nullable(),
2801
- replaced: z50.boolean()
2802
- });
2803
- var PluginProgramSpreadsheetRenderDatasetArgs = z50.object({
2804
- sheetName: z50.string().optional(),
2805
- title: z50.string().optional(),
2806
- filter: z50.string().optional()
2807
- });
2808
- var PluginSpreadsheetExportFormat = z50.enum(["xlsx", "pdf", "csv"]);
2809
- var PluginProgramSpreadsheetExportArgs = z50.object({
3290
+ var PluginSpreadsheetTotal = z56.object({
3291
+ column: z56.string(),
3292
+ fn: z56.enum(["sum", "avg", "count", "min", "max"]),
3293
+ label: z56.string().optional()
3294
+ });
3295
+ var PluginProgramSpreadsheetRenderArgs = z56.object({
3296
+ sheetName: z56.string(),
3297
+ columns: z56.array(PluginSpreadsheetColumn),
3298
+ rows: z56.array(z56.record(z56.string(), PluginSpreadsheetCell)),
3299
+ title: z56.string().optional(),
3300
+ startCell: z56.string().optional(),
3301
+ whenExists: z56.enum(["replace", "error"]).optional(),
3302
+ asTable: z56.boolean().optional(),
3303
+ freezeHeader: z56.boolean().optional(),
3304
+ totals: z56.array(PluginSpreadsheetTotal).optional()
3305
+ });
3306
+ var PluginProgramSpreadsheetRenderResult = z56.object({
3307
+ sheetName: z56.string(),
3308
+ range: z56.string(),
3309
+ headerRange: z56.string(),
3310
+ rowCount: z56.number(),
3311
+ colCount: z56.number(),
3312
+ tableName: z56.string().nullable(),
3313
+ replaced: z56.boolean()
3314
+ });
3315
+ var PluginProgramSpreadsheetRenderDatasetArgs = z56.object({
3316
+ sheetName: z56.string().optional(),
3317
+ title: z56.string().optional(),
3318
+ filter: z56.string().optional()
3319
+ });
3320
+ var PluginSpreadsheetExportFormat = z56.enum(["xlsx", "pdf", "csv"]);
3321
+ var PluginProgramSpreadsheetExportArgs = z56.object({
2810
3322
  format: PluginSpreadsheetExportFormat,
2811
- fileName: z50.string().optional()
3323
+ fileName: z56.string().optional()
2812
3324
  });
2813
- var PluginProgramSpreadsheetExportResult = z50.object({
3325
+ var PluginProgramSpreadsheetExportResult = z56.object({
2814
3326
  format: PluginSpreadsheetExportFormat,
2815
- fileName: z50.string(),
2816
- mimeType: z50.string(),
2817
- dataBase64: z50.string()
2818
- });
2819
- var PluginSpreadsheetSheetInfo = z50.object({
2820
- name: z50.string(),
2821
- index: z50.number(),
2822
- visible: z50.boolean(),
2823
- rowCount: z50.number(),
2824
- colCount: z50.number()
2825
- });
2826
- var PluginProgramSpreadsheetListSheetsResult = z50.object({
2827
- sheets: z50.array(PluginSpreadsheetSheetInfo),
2828
- activeSheet: z50.string().nullable()
2829
- });
2830
- var PluginProgramSpreadsheetGetSheetDataArgs = z50.object({
2831
- sheetName: z50.string(),
2832
- range: z50.string().optional(),
2833
- header: z50.boolean().optional()
2834
- });
2835
- var PluginProgramSpreadsheetGetSheetDataResult = z50.object({
2836
- sheetName: z50.string(),
2837
- range: z50.string(),
2838
- values: z50.array(z50.array(PluginSpreadsheetCell)),
2839
- records: z50.array(z50.record(z50.string(), PluginSpreadsheetCell)).optional()
2840
- });
2841
- var PluginSpreadsheetChartType = z50.enum([
3327
+ fileName: z56.string(),
3328
+ mimeType: z56.string(),
3329
+ dataBase64: z56.string()
3330
+ });
3331
+ var PluginSpreadsheetSheetInfo = z56.object({
3332
+ name: z56.string(),
3333
+ index: z56.number(),
3334
+ visible: z56.boolean(),
3335
+ rowCount: z56.number(),
3336
+ colCount: z56.number()
3337
+ });
3338
+ var PluginProgramSpreadsheetListSheetsResult = z56.object({
3339
+ sheets: z56.array(PluginSpreadsheetSheetInfo),
3340
+ activeSheet: z56.string().nullable()
3341
+ });
3342
+ var PluginProgramSpreadsheetGetSheetDataArgs = z56.object({
3343
+ sheetName: z56.string(),
3344
+ range: z56.string().optional(),
3345
+ header: z56.boolean().optional()
3346
+ });
3347
+ var PluginProgramSpreadsheetGetSheetDataResult = z56.object({
3348
+ sheetName: z56.string(),
3349
+ range: z56.string(),
3350
+ values: z56.array(z56.array(PluginSpreadsheetCell)),
3351
+ records: z56.array(z56.record(z56.string(), PluginSpreadsheetCell)).optional()
3352
+ });
3353
+ var PluginSpreadsheetChartType = z56.enum([
2842
3354
  "column",
2843
3355
  "bar",
2844
3356
  "line",
@@ -2846,249 +3358,249 @@ var PluginSpreadsheetChartType = z50.enum([
2846
3358
  "area",
2847
3359
  "scatter"
2848
3360
  ]);
2849
- var PluginProgramSpreadsheetAddChartArgs = z50.object({
2850
- sheetName: z50.string(),
3361
+ var PluginProgramSpreadsheetAddChartArgs = z56.object({
3362
+ sheetName: z56.string(),
2851
3363
  chartType: PluginSpreadsheetChartType,
2852
- dataRange: z50.string(),
2853
- title: z50.string().optional(),
2854
- position: z50.object({ x: z50.number(), y: z50.number() }).optional(),
2855
- size: z50.object({ width: z50.number(), height: z50.number() }).optional()
2856
- });
2857
- var PluginProgramSpreadsheetAddChartResult = z50.object({
2858
- chartId: z50.string()
2859
- });
2860
- var PluginProgramSpreadsheetHighlightCellsArgs = z50.object({
2861
- sheetName: z50.string(),
2862
- range: z50.string(),
2863
- color: z50.string().optional(),
2864
- bold: z50.boolean().optional()
2865
- });
2866
- var PluginProgramSpreadsheetHighlightCellsResult = z50.object({
2867
- sheetName: z50.string(),
2868
- range: z50.string()
2869
- });
2870
- var PluginSpreadsheetProgramRow = z50.object({
2871
- departmentId: z50.string(),
2872
- name: z50.string(),
2873
- targetArea: z50.number().nullable(),
2874
- allocatedArea: z50.number(),
2875
- variance: z50.number().nullable()
2876
- });
2877
- var PluginProgramSpreadsheetGetProgramResult = z50.object({
3364
+ dataRange: z56.string(),
3365
+ title: z56.string().optional(),
3366
+ position: z56.object({ x: z56.number(), y: z56.number() }).optional(),
3367
+ size: z56.object({ width: z56.number(), height: z56.number() }).optional()
3368
+ });
3369
+ var PluginProgramSpreadsheetAddChartResult = z56.object({
3370
+ chartId: z56.string()
3371
+ });
3372
+ var PluginProgramSpreadsheetHighlightCellsArgs = z56.object({
3373
+ sheetName: z56.string(),
3374
+ range: z56.string(),
3375
+ color: z56.string().optional(),
3376
+ bold: z56.boolean().optional()
3377
+ });
3378
+ var PluginProgramSpreadsheetHighlightCellsResult = z56.object({
3379
+ sheetName: z56.string(),
3380
+ range: z56.string()
3381
+ });
3382
+ var PluginSpreadsheetProgramRow = z56.object({
3383
+ departmentId: z56.string(),
3384
+ name: z56.string(),
3385
+ targetArea: z56.number().nullable(),
3386
+ allocatedArea: z56.number(),
3387
+ variance: z56.number().nullable()
3388
+ });
3389
+ var PluginProgramSpreadsheetGetProgramResult = z56.object({
2878
3390
  units: PluginAreaUnit,
2879
- rows: z50.array(PluginSpreadsheetProgramRow),
2880
- totalTargetArea: z50.number(),
2881
- totalAllocatedArea: z50.number(),
2882
- generatedAt: z50.string()
2883
- });
2884
- var PluginSpreadsheetTakeoffRow = z50.object({
2885
- objectType: z50.string(),
2886
- category: z50.string(),
2887
- family: z50.string(),
2888
- quantity: z50.number(),
2889
- unit: z50.string()
2890
- });
2891
- var PluginProgramSpreadsheetGetTakeoffResult = z50.object({
2892
- rows: z50.array(PluginSpreadsheetTakeoffRow),
2893
- rowCount: z50.number(),
2894
- generatedAt: z50.string()
2895
- });
2896
- var PluginSpreadsheetWhenExists = z50.enum(["reuse", "replace", "error"]);
2897
- var PluginProgramSpreadsheetCreateSheetArgs = z50.object({
2898
- name: z50.string(),
3391
+ rows: z56.array(PluginSpreadsheetProgramRow),
3392
+ totalTargetArea: z56.number(),
3393
+ totalAllocatedArea: z56.number(),
3394
+ generatedAt: z56.string()
3395
+ });
3396
+ var PluginSpreadsheetTakeoffRow = z56.object({
3397
+ objectType: z56.string(),
3398
+ category: z56.string(),
3399
+ family: z56.string(),
3400
+ quantity: z56.number(),
3401
+ unit: z56.string()
3402
+ });
3403
+ var PluginProgramSpreadsheetGetTakeoffResult = z56.object({
3404
+ rows: z56.array(PluginSpreadsheetTakeoffRow),
3405
+ rowCount: z56.number(),
3406
+ generatedAt: z56.string()
3407
+ });
3408
+ var PluginSpreadsheetWhenExists = z56.enum(["reuse", "replace", "error"]);
3409
+ var PluginProgramSpreadsheetCreateSheetArgs = z56.object({
3410
+ name: z56.string(),
2899
3411
  whenExists: PluginSpreadsheetWhenExists.optional()
2900
3412
  });
2901
- var PluginProgramSpreadsheetCreateSheetResult = z50.object({
2902
- sheetName: z50.string(),
2903
- replaced: z50.boolean(),
2904
- sheetIndex: z50.number().nullable()
2905
- });
2906
- var PluginProgramSpreadsheetSetValuesArgs = z50.object({
2907
- sheetName: z50.string(),
2908
- values: z50.array(z50.array(PluginSpreadsheetCell)),
2909
- startCell: z50.string().optional()
2910
- });
2911
- var PluginProgramSpreadsheetSetValuesResult = z50.object({
2912
- sheetName: z50.string(),
2913
- startCell: z50.string(),
2914
- rowCount: z50.number(),
2915
- colCount: z50.number()
2916
- });
2917
- var PluginSpreadsheetFormula = z50.object({
2918
- cell: z50.string(),
2919
- formula: z50.string()
2920
- });
2921
- var PluginProgramSpreadsheetSetFormulasArgs = z50.object({
2922
- sheetName: z50.string(),
2923
- formulas: z50.array(PluginSpreadsheetFormula)
2924
- });
2925
- var PluginProgramSpreadsheetSetFormulasResult = z50.object({
2926
- sheetName: z50.string(),
2927
- count: z50.number()
2928
- });
2929
- var PluginSpreadsheetFontWeight = z50.enum(["normal", "bold"]);
2930
- var PluginSpreadsheetFontStyle = z50.enum(["normal", "italic"]);
2931
- var PluginSpreadsheetHorizontalAlign = z50.enum([
3413
+ var PluginProgramSpreadsheetCreateSheetResult = z56.object({
3414
+ sheetName: z56.string(),
3415
+ replaced: z56.boolean(),
3416
+ sheetIndex: z56.number().nullable()
3417
+ });
3418
+ var PluginProgramSpreadsheetSetValuesArgs = z56.object({
3419
+ sheetName: z56.string(),
3420
+ values: z56.array(z56.array(PluginSpreadsheetCell)),
3421
+ startCell: z56.string().optional()
3422
+ });
3423
+ var PluginProgramSpreadsheetSetValuesResult = z56.object({
3424
+ sheetName: z56.string(),
3425
+ startCell: z56.string(),
3426
+ rowCount: z56.number(),
3427
+ colCount: z56.number()
3428
+ });
3429
+ var PluginSpreadsheetFormula = z56.object({
3430
+ cell: z56.string(),
3431
+ formula: z56.string()
3432
+ });
3433
+ var PluginProgramSpreadsheetSetFormulasArgs = z56.object({
3434
+ sheetName: z56.string(),
3435
+ formulas: z56.array(PluginSpreadsheetFormula)
3436
+ });
3437
+ var PluginProgramSpreadsheetSetFormulasResult = z56.object({
3438
+ sheetName: z56.string(),
3439
+ count: z56.number()
3440
+ });
3441
+ var PluginSpreadsheetFontWeight = z56.enum(["normal", "bold"]);
3442
+ var PluginSpreadsheetFontStyle = z56.enum(["normal", "italic"]);
3443
+ var PluginSpreadsheetHorizontalAlign = z56.enum([
2932
3444
  "left",
2933
3445
  "center",
2934
3446
  "right",
2935
3447
  "general"
2936
3448
  ]);
2937
- var PluginSpreadsheetVerticalAlign = z50.enum([
3449
+ var PluginSpreadsheetVerticalAlign = z56.enum([
2938
3450
  "top",
2939
3451
  "center",
2940
3452
  "bottom"
2941
3453
  ]);
2942
- var PluginSpreadsheetCellStyle = z50.object({
2943
- backColor: z50.string().optional(),
2944
- foreColor: z50.string().optional(),
2945
- font: z50.string().optional(),
2946
- fontFamily: z50.string().optional(),
2947
- fontSize: z50.number().optional(),
3454
+ var PluginSpreadsheetCellStyle = z56.object({
3455
+ backColor: z56.string().optional(),
3456
+ foreColor: z56.string().optional(),
3457
+ font: z56.string().optional(),
3458
+ fontFamily: z56.string().optional(),
3459
+ fontSize: z56.number().optional(),
2948
3460
  fontWeight: PluginSpreadsheetFontWeight.optional(),
2949
3461
  fontStyle: PluginSpreadsheetFontStyle.optional(),
2950
- formatter: z50.string().optional(),
3462
+ formatter: z56.string().optional(),
2951
3463
  horizontalAlign: PluginSpreadsheetHorizontalAlign.optional(),
2952
3464
  verticalAlign: PluginSpreadsheetVerticalAlign.optional()
2953
3465
  });
2954
- var PluginSpreadsheetRangeStyle = z50.object({
2955
- range: z50.string(),
3466
+ var PluginSpreadsheetRangeStyle = z56.object({
3467
+ range: z56.string(),
2956
3468
  style: PluginSpreadsheetCellStyle
2957
3469
  });
2958
- var PluginProgramSpreadsheetSetStylesArgs = z50.object({
2959
- sheetName: z50.string(),
2960
- ranges: z50.array(PluginSpreadsheetRangeStyle)
3470
+ var PluginProgramSpreadsheetSetStylesArgs = z56.object({
3471
+ sheetName: z56.string(),
3472
+ ranges: z56.array(PluginSpreadsheetRangeStyle)
2961
3473
  });
2962
- var PluginProgramSpreadsheetSetStylesResult = z50.object({
2963
- sheetName: z50.string(),
2964
- count: z50.number()
3474
+ var PluginProgramSpreadsheetSetStylesResult = z56.object({
3475
+ sheetName: z56.string(),
3476
+ count: z56.number()
2965
3477
  });
2966
- var PluginProgramSpreadsheetMergeCellsArgs = z50.object({
2967
- sheetName: z50.string(),
2968
- range: z50.string(),
3478
+ var PluginProgramSpreadsheetMergeCellsArgs = z56.object({
3479
+ sheetName: z56.string(),
3480
+ range: z56.string(),
2969
3481
  value: PluginSpreadsheetCell.optional()
2970
3482
  });
2971
- var PluginProgramSpreadsheetMergeCellsResult = z50.object({
2972
- sheetName: z50.string(),
2973
- range: z50.string()
3483
+ var PluginProgramSpreadsheetMergeCellsResult = z56.object({
3484
+ sheetName: z56.string(),
3485
+ range: z56.string()
2974
3486
  });
2975
- var PluginSpreadsheetConditionalRuleType = z50.enum(["dataBar"]);
2976
- var PluginSpreadsheetConditionalRule = z50.object({
3487
+ var PluginSpreadsheetConditionalRuleType = z56.enum(["dataBar"]);
3488
+ var PluginSpreadsheetConditionalRule = z56.object({
2977
3489
  type: PluginSpreadsheetConditionalRuleType,
2978
- color: z50.string().optional()
3490
+ color: z56.string().optional()
2979
3491
  });
2980
- var PluginProgramSpreadsheetAddConditionalFormattingArgs = z50.object({
2981
- sheetName: z50.string(),
2982
- range: z50.string(),
3492
+ var PluginProgramSpreadsheetAddConditionalFormattingArgs = z56.object({
3493
+ sheetName: z56.string(),
3494
+ range: z56.string(),
2983
3495
  rule: PluginSpreadsheetConditionalRule
2984
3496
  });
2985
- var PluginProgramSpreadsheetAddConditionalFormattingResult = z50.object({
2986
- sheetName: z50.string(),
2987
- range: z50.string(),
2988
- created: z50.boolean()
3497
+ var PluginProgramSpreadsheetAddConditionalFormattingResult = z56.object({
3498
+ sheetName: z56.string(),
3499
+ range: z56.string(),
3500
+ created: z56.boolean()
2989
3501
  });
2990
- var PluginProgramSpreadsheetRecalculateArgs = z50.object({
2991
- sheetName: z50.string().optional()
3502
+ var PluginProgramSpreadsheetRecalculateArgs = z56.object({
3503
+ sheetName: z56.string().optional()
2992
3504
  });
2993
- var PluginProgramSpreadsheetRecalculateResult = z50.object({
2994
- scope: z50.enum(["sheet", "workbook"]),
2995
- sheetName: z50.string().nullable()
3505
+ var PluginProgramSpreadsheetRecalculateResult = z56.object({
3506
+ scope: z56.enum(["sheet", "workbook"]),
3507
+ sheetName: z56.string().nullable()
2996
3508
  });
2997
- var PluginSpreadsheetTransactionMethod = z50.enum([
3509
+ var PluginSpreadsheetTransactionMethod = z56.enum([
2998
3510
  "createSheet",
2999
3511
  "setValues",
3000
3512
  "setFormulas",
3001
3513
  "setStyles",
3002
3514
  "mergeCells"
3003
3515
  ]);
3004
- var PluginSpreadsheetTransactionOp = z50.object({
3516
+ var PluginSpreadsheetTransactionOp = z56.object({
3005
3517
  method: PluginSpreadsheetTransactionMethod,
3006
- args: z50.unknown()
3007
- });
3008
- var PluginProgramSpreadsheetTransactionArgs = z50.object({
3009
- operations: z50.array(PluginSpreadsheetTransactionOp),
3010
- label: z50.string().optional()
3011
- });
3012
- var PluginProgramSpreadsheetTransactionResult = z50.object({
3013
- label: z50.string(),
3014
- operationCount: z50.number(),
3015
- results: z50.array(z50.unknown())
3016
- });
3017
- var PluginProgramSpreadsheetRunScriptArgs = z50.object({
3018
- script: z50.string()
3019
- });
3020
- var PluginProgramSpreadsheetRunScriptResult = z50.object({
3021
- result: z50.unknown()
3022
- });
3023
- var PluginSpreadsheetAuditStatus = z50.enum(["success", "error"]);
3024
- var PluginSpreadsheetAuditEntry = z50.object({
3025
- id: z50.string(),
3026
- pluginId: z50.string(),
3027
- method: z50.string(),
3028
- label: z50.string().optional(),
3029
- sheetName: z50.string().optional(),
3030
- timestamp: z50.string(),
3518
+ args: z56.unknown()
3519
+ });
3520
+ var PluginProgramSpreadsheetTransactionArgs = z56.object({
3521
+ operations: z56.array(PluginSpreadsheetTransactionOp),
3522
+ label: z56.string().optional()
3523
+ });
3524
+ var PluginProgramSpreadsheetTransactionResult = z56.object({
3525
+ label: z56.string(),
3526
+ operationCount: z56.number(),
3527
+ results: z56.array(z56.unknown())
3528
+ });
3529
+ var PluginProgramSpreadsheetRunScriptArgs = z56.object({
3530
+ script: z56.string()
3531
+ });
3532
+ var PluginProgramSpreadsheetRunScriptResult = z56.object({
3533
+ result: z56.unknown()
3534
+ });
3535
+ var PluginSpreadsheetAuditStatus = z56.enum(["success", "error"]);
3536
+ var PluginSpreadsheetAuditEntry = z56.object({
3537
+ id: z56.string(),
3538
+ pluginId: z56.string(),
3539
+ method: z56.string(),
3540
+ label: z56.string().optional(),
3541
+ sheetName: z56.string().optional(),
3542
+ timestamp: z56.string(),
3031
3543
  status: PluginSpreadsheetAuditStatus,
3032
- summary: z50.string().optional()
3544
+ summary: z56.string().optional()
3033
3545
  });
3034
- var PluginProgramSpreadsheetGetAuditLogArgs = z50.object({
3035
- limit: z50.number().optional()
3546
+ var PluginProgramSpreadsheetGetAuditLogArgs = z56.object({
3547
+ limit: z56.number().optional()
3036
3548
  });
3037
- var PluginProgramSpreadsheetGetAuditLogResult = z50.object({
3038
- entries: z50.array(PluginSpreadsheetAuditEntry)
3549
+ var PluginProgramSpreadsheetGetAuditLogResult = z56.object({
3550
+ entries: z56.array(PluginSpreadsheetAuditEntry)
3039
3551
  });
3040
- var PluginProgramSpreadsheetPingResult = z50.object({
3041
- pong: z50.boolean()
3552
+ var PluginProgramSpreadsheetPingResult = z56.object({
3553
+ pong: z56.boolean()
3042
3554
  });
3043
- var PluginSpreadsheetTemplateScope = z50.enum(["project", "global"]);
3044
- var PluginProgramSpreadsheetTemplatesCreateArgs = z50.object({
3045
- name: z50.string(),
3046
- sheetName: z50.string(),
3555
+ var PluginSpreadsheetTemplateScope = z56.enum(["project", "global"]);
3556
+ var PluginProgramSpreadsheetTemplatesCreateArgs = z56.object({
3557
+ name: z56.string(),
3558
+ sheetName: z56.string(),
3047
3559
  scope: PluginSpreadsheetTemplateScope.optional()
3048
3560
  });
3049
- var PluginProgramSpreadsheetTemplatesCreateResult = z50.object({
3050
- id: z50.string(),
3051
- name: z50.string(),
3561
+ var PluginProgramSpreadsheetTemplatesCreateResult = z56.object({
3562
+ id: z56.string(),
3563
+ name: z56.string(),
3052
3564
  scope: PluginSpreadsheetTemplateScope,
3053
- sheetName: z50.string()
3565
+ sheetName: z56.string()
3054
3566
  });
3055
- var PluginProgramSpreadsheetTemplatesApplyArgs = z50.object({
3056
- name: z50.string(),
3057
- targetSheetName: z50.string()
3567
+ var PluginProgramSpreadsheetTemplatesApplyArgs = z56.object({
3568
+ name: z56.string(),
3569
+ targetSheetName: z56.string()
3058
3570
  });
3059
- var PluginProgramSpreadsheetTemplatesApplyResult = z50.object({
3060
- name: z50.string(),
3061
- targetSheetName: z50.string()
3571
+ var PluginProgramSpreadsheetTemplatesApplyResult = z56.object({
3572
+ name: z56.string(),
3573
+ targetSheetName: z56.string()
3062
3574
  });
3063
- var PluginSpreadsheetBindingSource = z50.object({
3064
- dataset: z50.enum(["takeoff"])
3575
+ var PluginSpreadsheetBindingSource = z56.object({
3576
+ dataset: z56.enum(["takeoff"])
3065
3577
  });
3066
- var PluginSpreadsheetBindingMode = z50.enum(["replaceRange"]);
3067
- var PluginSpreadsheetBindingTarget = z50.object({
3068
- sheetName: z50.string(),
3069
- startCell: z50.string().optional()
3578
+ var PluginSpreadsheetBindingMode = z56.enum(["replaceRange"]);
3579
+ var PluginSpreadsheetBindingTarget = z56.object({
3580
+ sheetName: z56.string(),
3581
+ startCell: z56.string().optional()
3070
3582
  });
3071
- var PluginSpreadsheetBinding = z50.object({
3072
- id: z50.string(),
3073
- name: z50.string(),
3074
- pluginId: z50.string(),
3583
+ var PluginSpreadsheetBinding = z56.object({
3584
+ id: z56.string(),
3585
+ name: z56.string(),
3586
+ pluginId: z56.string(),
3075
3587
  source: PluginSpreadsheetBindingSource,
3076
- target: z50.object({
3077
- sheetName: z50.string(),
3078
- startCell: z50.string()
3588
+ target: z56.object({
3589
+ sheetName: z56.string(),
3590
+ startCell: z56.string()
3079
3591
  }),
3080
3592
  mode: PluginSpreadsheetBindingMode,
3081
- createdAt: z50.string(),
3082
- updatedAt: z50.string()
3593
+ createdAt: z56.string(),
3594
+ updatedAt: z56.string()
3083
3595
  });
3084
- var PluginSpreadsheetBindingRefresh = z50.object({
3085
- id: z50.string(),
3086
- name: z50.string(),
3087
- sheetName: z50.string(),
3088
- rowCount: z50.number()
3596
+ var PluginSpreadsheetBindingRefresh = z56.object({
3597
+ id: z56.string(),
3598
+ name: z56.string(),
3599
+ sheetName: z56.string(),
3600
+ rowCount: z56.number()
3089
3601
  });
3090
- var PluginProgramSpreadsheetBindingsCreateArgs = z50.object({
3091
- name: z50.string(),
3602
+ var PluginProgramSpreadsheetBindingsCreateArgs = z56.object({
3603
+ name: z56.string(),
3092
3604
  source: PluginSpreadsheetBindingSource,
3093
3605
  target: PluginSpreadsheetBindingTarget,
3094
3606
  mode: PluginSpreadsheetBindingMode.optional()
@@ -3096,179 +3608,186 @@ var PluginProgramSpreadsheetBindingsCreateArgs = z50.object({
3096
3608
  var PluginProgramSpreadsheetBindingsCreateResult = PluginSpreadsheetBinding.extend({
3097
3609
  refresh: PluginSpreadsheetBindingRefresh
3098
3610
  });
3099
- var PluginProgramSpreadsheetBindingsRefreshArgs = z50.object({
3100
- name: z50.string().optional()
3611
+ var PluginProgramSpreadsheetBindingsRefreshArgs = z56.object({
3612
+ name: z56.string().optional()
3101
3613
  });
3102
- var PluginProgramSpreadsheetBindingsRefreshResult = z50.object({
3103
- refreshed: z50.array(PluginSpreadsheetBindingRefresh)
3614
+ var PluginProgramSpreadsheetBindingsRefreshResult = z56.object({
3615
+ refreshed: z56.array(PluginSpreadsheetBindingRefresh)
3104
3616
  });
3105
- var PluginProgramSpreadsheetBindingsListResult = z50.object({
3106
- bindings: z50.array(PluginSpreadsheetBinding)
3617
+ var PluginProgramSpreadsheetBindingsListResult = z56.object({
3618
+ bindings: z56.array(PluginSpreadsheetBinding)
3107
3619
  });
3108
3620
 
3109
3621
  // src/api/program/site.ts
3110
- var z51 = __toESM(require("zod"), 1);
3622
+ var z57 = __toESM(require("zod"), 1);
3111
3623
  var PluginProgramSiteApi = class {
3112
3624
  constructor() {
3113
3625
  }
3114
3626
  };
3115
- var PluginSiteFootprintPoint = z51.object({
3116
- x: z51.number(),
3117
- z: z51.number()
3118
- });
3119
- var PluginSiteGeoPoint = z51.object({
3120
- lat: z51.number(),
3121
- lng: z51.number(),
3122
- alt: z51.number()
3123
- });
3124
- var PluginSitePolygon = z51.object({
3125
- id: z51.string(),
3126
- area: z51.number(),
3127
- label: z51.string(),
3128
- footprint: z51.array(PluginSiteFootprintPoint)
3129
- });
3130
- var PluginProgramSiteSnapshot = z51.object({
3627
+ var PluginSiteFootprintPoint = z57.object({
3628
+ x: z57.number(),
3629
+ z: z57.number()
3630
+ });
3631
+ var PluginSiteGeoPoint = z57.object({
3632
+ lat: z57.number(),
3633
+ lng: z57.number(),
3634
+ alt: z57.number()
3635
+ });
3636
+ var PluginSitePolygon = z57.object({
3637
+ id: z57.string(),
3638
+ area: z57.number(),
3639
+ label: z57.string(),
3640
+ footprint: z57.array(PluginSiteFootprintPoint)
3641
+ });
3642
+ var PluginProgramSiteSnapshot = z57.object({
3131
3643
  units: PluginAreaUnit,
3132
- totalArea: z51.number(),
3133
- polygonCount: z51.number(),
3134
- polygons: z51.array(PluginSitePolygon)
3644
+ totalArea: z57.number(),
3645
+ polygonCount: z57.number(),
3646
+ polygons: z57.array(PluginSitePolygon)
3135
3647
  });
3136
- var PluginProgramSiteAreaResult = z51.object({
3648
+ var PluginProgramSiteAreaResult = z57.object({
3137
3649
  units: PluginAreaUnit,
3138
- area: z51.number()
3650
+ area: z57.number()
3139
3651
  });
3140
- var PluginProgramSiteListPolygonsResult = z51.object({
3652
+ var PluginProgramSiteListPolygonsResult = z57.object({
3141
3653
  units: PluginAreaUnit,
3142
- polygons: z51.array(PluginSitePolygon)
3654
+ polygons: z57.array(PluginSitePolygon)
3143
3655
  });
3144
- var PluginProgramSiteListGeoPolygonsResult = z51.object({
3145
- polygons: z51.array(z51.array(PluginSiteGeoPoint))
3656
+ var PluginProgramSiteListGeoPolygonsResult = z57.object({
3657
+ polygons: z57.array(z57.array(PluginSiteGeoPoint))
3146
3658
  });
3147
- var PluginSiteLatLng = z51.object({
3148
- lat: z51.number(),
3149
- lng: z51.number()
3659
+ var PluginSiteLatLng = z57.object({
3660
+ lat: z57.number(),
3661
+ lng: z57.number()
3150
3662
  });
3151
- var PluginSiteBounds = z51.object({
3152
- north: z51.number(),
3153
- south: z51.number(),
3154
- east: z51.number(),
3155
- west: z51.number()
3663
+ var PluginSiteBounds = z57.object({
3664
+ north: z57.number(),
3665
+ south: z57.number(),
3666
+ east: z57.number(),
3667
+ west: z57.number()
3156
3668
  });
3157
- var PluginSiteContextParcel = z51.object({
3158
- footprint: z51.array(PluginSiteLatLng),
3159
- area: z51.number()
3669
+ var PluginSiteContextParcel = z57.object({
3670
+ footprint: z57.array(PluginSiteLatLng),
3671
+ area: z57.number()
3160
3672
  });
3161
- var PluginProgramSiteContext = z51.object({
3673
+ var PluginProgramSiteContext = z57.object({
3162
3674
  center: PluginSiteLatLng,
3163
3675
  bounds: PluginSiteBounds,
3164
- widthInM: z51.number(),
3165
- heightInM: z51.number(),
3166
- zoom: z51.number(),
3167
- parcels: z51.array(PluginSiteContextParcel)
3676
+ widthInM: z57.number(),
3677
+ heightInM: z57.number(),
3678
+ zoom: z57.number(),
3679
+ parcels: z57.array(PluginSiteContextParcel)
3168
3680
  });
3169
3681
  var PluginProgramSiteContextResult = PluginProgramSiteContext.nullable();
3682
+ var PluginProgramSiteLocation = z57.object({
3683
+ latitude: z57.number(),
3684
+ longitude: z57.number()
3685
+ });
3686
+ var PluginProgramSiteLocationResult = PluginProgramSiteLocation.nullable();
3687
+ var PluginProgramSiteNorthAngleResult = z57.number().nullable();
3170
3688
 
3171
3689
  // src/api/program/cores.ts
3172
- var z52 = __toESM(require("zod"), 1);
3690
+ var z58 = __toESM(require("zod"), 1);
3173
3691
  var PluginProgramCoresApi = class {
3174
3692
  constructor() {
3175
3693
  }
3176
3694
  };
3177
- var PluginProgramCore = z52.object({
3178
- id: z52.string(),
3179
- groupId: z52.string(),
3180
- storey: z52.number()
3695
+ var PluginProgramCore = z58.object({
3696
+ id: z58.string(),
3697
+ groupId: z58.string(),
3698
+ storey: z58.number()
3181
3699
  });
3182
- var PluginProgramCoresListResult = z52.object({
3183
- cores: z52.array(PluginProgramCore)
3700
+ var PluginProgramCoresListResult = z58.object({
3701
+ cores: z58.array(PluginProgramCore)
3184
3702
  });
3185
- var PluginProgramCoresIsCoreArgs = z52.object({
3186
- id: z52.string()
3703
+ var PluginProgramCoresIsCoreArgs = z58.object({
3704
+ id: z58.string()
3187
3705
  });
3188
- var PluginProgramCoreSpec = z52.object({
3189
- type: z52.string().optional(),
3190
- position: z52.object({ x: z52.number(), y: z52.number(), z: z52.number() }),
3191
- width: z52.number(),
3192
- depth: z52.number(),
3193
- fromStorey: z52.number().optional(),
3194
- toStorey: z52.number().optional()
3706
+ var PluginProgramCoreSpec = z58.object({
3707
+ type: z58.string().optional(),
3708
+ position: z58.object({ x: z58.number(), y: z58.number(), z: z58.number() }),
3709
+ width: z58.number(),
3710
+ depth: z58.number(),
3711
+ fromStorey: z58.number().optional(),
3712
+ toStorey: z58.number().optional()
3195
3713
  });
3196
- var PluginProgramCoresCreateArgs = z52.object({
3197
- cores: z52.array(PluginProgramCoreSpec),
3198
- lengthUnit: z52.enum(["mm", "m", "ft"]).optional()
3714
+ var PluginProgramCoresCreateArgs = z58.object({
3715
+ cores: z58.array(PluginProgramCoreSpec),
3716
+ lengthUnit: z58.enum(["mm", "m", "ft"]).optional()
3199
3717
  });
3200
- var PluginProgramCoresCreateResult = z52.object({
3201
- createdCount: z52.number()
3718
+ var PluginProgramCoresCreateResult = z58.object({
3719
+ createdCount: z58.number()
3202
3720
  });
3203
3721
 
3204
3722
  // src/api/program/classification.ts
3205
- var z53 = __toESM(require("zod"), 1);
3723
+ var z59 = __toESM(require("zod"), 1);
3206
3724
  var PluginProgramClassificationApi = class {
3207
3725
  constructor() {
3208
3726
  }
3209
3727
  };
3210
- var PluginClassificationOption = z53.object({
3211
- value: z53.string(),
3212
- label: z53.string()
3728
+ var PluginClassificationOption = z59.object({
3729
+ value: z59.string(),
3730
+ label: z59.string()
3213
3731
  });
3214
- var PluginProgramClassificationTypesResult = z53.object({
3215
- spaceTypes: z53.array(PluginClassificationOption),
3216
- areaClasses: z53.array(PluginClassificationOption),
3217
- massTypes: z53.array(PluginClassificationOption)
3732
+ var PluginProgramClassificationTypesResult = z59.object({
3733
+ spaceTypes: z59.array(PluginClassificationOption),
3734
+ areaClasses: z59.array(PluginClassificationOption),
3735
+ massTypes: z59.array(PluginClassificationOption)
3218
3736
  });
3219
- var PluginProgramClassificationListTagsArgs = z53.object({
3220
- id: z53.string()
3737
+ var PluginProgramClassificationListTagsArgs = z59.object({
3738
+ id: z59.string()
3221
3739
  });
3222
- var PluginSpaceTag = z53.object({
3223
- tagId: z53.string(),
3224
- tagName: z53.string(),
3225
- color: z53.string(),
3226
- categoryId: z53.string()
3740
+ var PluginSpaceTag = z59.object({
3741
+ tagId: z59.string(),
3742
+ tagName: z59.string(),
3743
+ color: z59.string(),
3744
+ categoryId: z59.string()
3227
3745
  });
3228
- var PluginProgramClassificationTagsResult = z53.object({
3229
- tagIds: z53.array(z53.string()),
3230
- tagsByCategory: z53.record(z53.string(), PluginSpaceTag)
3746
+ var PluginProgramClassificationTagsResult = z59.object({
3747
+ tagIds: z59.array(z59.string()),
3748
+ tagsByCategory: z59.record(z59.string(), PluginSpaceTag)
3231
3749
  });
3232
3750
 
3233
3751
  // src/api/program/areas.ts
3234
- var z54 = __toESM(require("zod"), 1);
3752
+ var z60 = __toESM(require("zod"), 1);
3235
3753
  var PluginProgramAreasApi = class {
3236
3754
  constructor() {
3237
3755
  }
3238
3756
  };
3239
- var PluginProgramAreaSummary = z54.object({
3240
- count: z54.number().int(),
3241
- hiddenCount: z54.number().int(),
3242
- carpet: z54.number(),
3243
- builtUp: z54.number(),
3244
- excluded: z54.number(),
3245
- farBuiltUp: z54.number(),
3246
- siteArea: z54.number(),
3247
- achievedFar: z54.number().nullable(),
3248
- targetFar: z54.number(),
3249
- deviation: z54.number(),
3757
+ var PluginProgramAreaSummary = z60.object({
3758
+ count: z60.number().int(),
3759
+ hiddenCount: z60.number().int(),
3760
+ carpet: z60.number(),
3761
+ builtUp: z60.number(),
3762
+ excluded: z60.number(),
3763
+ farBuiltUp: z60.number(),
3764
+ siteArea: z60.number(),
3765
+ achievedFar: z60.number().nullable(),
3766
+ targetFar: z60.number(),
3767
+ deviation: z60.number(),
3250
3768
  areaUnit: PluginAreaUnit
3251
3769
  });
3252
- var PluginProgramAreaGroup = z54.object({
3253
- groupId: z54.string(),
3254
- name: z54.string(),
3255
- color: z54.string(),
3256
- carpet: z54.number(),
3257
- builtUp: z54.number(),
3258
- excluded: z54.number(),
3259
- count: z54.number().int(),
3260
- targetArea: z54.number(),
3770
+ var PluginProgramAreaGroup = z60.object({
3771
+ groupId: z60.string(),
3772
+ name: z60.string(),
3773
+ color: z60.string(),
3774
+ carpet: z60.number(),
3775
+ builtUp: z60.number(),
3776
+ excluded: z60.number(),
3777
+ count: z60.number().int(),
3778
+ targetArea: z60.number(),
3261
3779
  targetUnit: PluginAreaUnit
3262
3780
  });
3263
- var PluginProgramAreaMember = z54.object({
3781
+ var PluginProgramAreaMember = z60.object({
3264
3782
  id: ComponentHandle,
3265
- label: z54.string(),
3266
- carpet: z54.number(),
3267
- builtUp: z54.number(),
3268
- excluded: z54.number(),
3269
- isVisible: z54.boolean()
3783
+ label: z60.string(),
3784
+ areaClass: PluginAreaClass,
3785
+ carpet: z60.number(),
3786
+ builtUp: z60.number(),
3787
+ excluded: z60.number(),
3788
+ isVisible: z60.boolean()
3270
3789
  });
3271
- var PluginProgramAreaGroupBy = z54.enum([
3790
+ var PluginProgramAreaGroupBy = z60.enum([
3272
3791
  "labels",
3273
3792
  "storeys",
3274
3793
  "buildings",
@@ -3276,29 +3795,29 @@ var PluginProgramAreaGroupBy = z54.enum([
3276
3795
  "tagCategories"
3277
3796
  ]);
3278
3797
  var PluginProgramAreasGetResult = PluginProgramAreaSummary;
3279
- var PluginProgramAreasListArgs = z54.object({
3798
+ var PluginProgramAreasListArgs = z60.object({
3280
3799
  groupBy: PluginProgramAreaGroupBy,
3281
- categoryId: z54.string().optional()
3800
+ categoryId: z60.string().optional()
3282
3801
  }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
3283
3802
  message: 'categoryId is required when groupBy is "tagCategories"'
3284
3803
  });
3285
- var PluginProgramAreasListResult = z54.object({
3286
- groups: z54.array(PluginProgramAreaGroup)
3804
+ var PluginProgramAreasListResult = z60.object({
3805
+ groups: z60.array(PluginProgramAreaGroup)
3287
3806
  });
3288
- var PluginProgramAreasListMembersArgs = z54.object({
3807
+ var PluginProgramAreasListMembersArgs = z60.object({
3289
3808
  groupBy: PluginProgramAreaGroupBy,
3290
- groupId: z54.string(),
3291
- categoryId: z54.string().optional()
3809
+ groupId: z60.string(),
3810
+ categoryId: z60.string().optional()
3292
3811
  }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
3293
3812
  message: 'categoryId is required when groupBy is "tagCategories"'
3294
3813
  });
3295
- var PluginProgramAreasListMembersResult = z54.object({
3296
- members: z54.array(PluginProgramAreaMember)
3814
+ var PluginProgramAreasListMembersResult = z60.object({
3815
+ members: z60.array(PluginProgramAreaMember)
3297
3816
  });
3298
- var PluginProgramAreasUpdateArgs = z54.object({
3299
- targetFar: z54.number().min(0).optional(),
3300
- siteArea: z54.number().positive().optional(),
3301
- deviation: z54.number().min(0).max(100).optional()
3817
+ var PluginProgramAreasUpdateArgs = z60.object({
3818
+ targetFar: z60.number().min(0).optional(),
3819
+ siteArea: z60.number().positive().optional(),
3820
+ deviation: z60.number().min(0).max(100).optional()
3302
3821
  });
3303
3822
  var PluginProgramAreasUpdateResult = PluginProgramAreaSummary;
3304
3823
 
@@ -3309,257 +3828,295 @@ var PluginProgramApi = class {
3309
3828
  };
3310
3829
 
3311
3830
  // src/api/presentation/views.ts
3312
- var z55 = __toESM(require("zod"), 1);
3831
+ var z61 = __toESM(require("zod"), 1);
3313
3832
  var PluginPresentationViewsApi = class {
3314
3833
  constructor() {
3315
3834
  }
3316
3835
  };
3317
- var PluginPresentationViewType = z55.enum(["2d", "3d"]);
3318
- var PluginPresentationView = z55.object({
3319
- id: z55.string(),
3320
- name: z55.string(),
3836
+ var PluginPresentationViewType = z61.enum(["2d", "3d"]);
3837
+ var PluginPresentationView = z61.object({
3838
+ id: z61.string(),
3839
+ name: z61.string(),
3321
3840
  type: PluginPresentationViewType,
3322
- isActive: z55.boolean()
3841
+ isActive: z61.boolean()
3323
3842
  });
3324
- var PluginPresentationViewsListResult = z55.object({
3325
- views: z55.array(PluginPresentationView)
3843
+ var PluginPresentationViewsListResult = z61.object({
3844
+ views: z61.array(PluginPresentationView)
3326
3845
  });
3327
- var PluginPresentationViewsGetArgs = z55.object({
3328
- id: z55.string()
3846
+ var PluginPresentationViewsGetArgs = z61.object({
3847
+ id: z61.string()
3329
3848
  });
3330
3849
  var PluginPresentationViewsGetResult = PluginPresentationView.nullable();
3331
- var PluginPresentationImageFormat = z55.enum(["png", "jpeg"]);
3332
- var PluginPresentationViewsCaptureArgs = z55.object({
3333
- viewId: z55.string().optional(),
3850
+ var PluginPresentationImageFormat = z61.enum(["png", "jpeg"]);
3851
+ var PluginPresentationViewsCaptureArgs = z61.object({
3852
+ viewId: z61.string().optional(),
3334
3853
  format: PluginPresentationImageFormat.optional(),
3335
- resolution: z55.string().optional()
3854
+ resolution: z61.string().optional()
3336
3855
  });
3337
- var PluginPresentationViewsCaptureResult = z55.object({
3338
- image: z55.string()
3856
+ var PluginPresentationViewsCaptureResult = z61.object({
3857
+ image: z61.string()
3339
3858
  });
3340
- var PluginPresentationViewsSetActiveArgs = z55.object({
3341
- id: z55.string()
3859
+ var PluginPresentationViewsSetActiveArgs = z61.object({
3860
+ id: z61.string()
3342
3861
  });
3343
- var PluginPresentationViewsSetActiveResult = z55.object({
3344
- id: z55.string()
3862
+ var PluginPresentationViewsSetActiveResult = z61.object({
3863
+ id: z61.string()
3345
3864
  });
3346
- var PluginPresentationViewsCreateArgs = z55.object({
3347
- name: z55.string().optional(),
3348
- kind: z55.enum(["view", "sitePlan"]).optional()
3865
+ var PluginPresentationViewsCreateArgs = z61.object({
3866
+ name: z61.string().optional(),
3867
+ kind: z61.enum(["view", "sitePlan"]).optional()
3349
3868
  });
3350
3869
  var PluginPresentationViewsCreateResult = PluginPresentationView;
3870
+ var PluginPresentationViewColorMode = z61.union([
3871
+ z61.enum(["monochrome", "texture", "department"]),
3872
+ z61.templateLiteral(["tag:", z61.string()])
3873
+ ]);
3874
+ var PluginPresentationViewLabel = z61.enum([
3875
+ "objectLabels",
3876
+ "areas",
3877
+ "department"
3878
+ ]);
3879
+ var PluginPresentationViewSettings = z61.object({
3880
+ backgroundColor: z61.string(),
3881
+ colorMode: PluginPresentationViewColorMode,
3882
+ showAxis: z61.boolean(),
3883
+ showEdges: z61.boolean(),
3884
+ showLabels: z61.boolean(),
3885
+ labels: z61.array(PluginPresentationViewLabel)
3886
+ });
3887
+ var PluginPresentationViewsGetSettingsArgs = z61.object({
3888
+ id: z61.string()
3889
+ });
3890
+ var PluginPresentationViewsGetSettingsResult = PluginPresentationViewSettings.nullable();
3891
+ var PluginPresentationViewsUpdateSettingsArgs = z61.object({
3892
+ id: z61.string(),
3893
+ settings: PluginPresentationViewSettings.partial()
3894
+ }).refine(
3895
+ (v) => !(v.settings.showLabels === false && (v.settings.labels?.length ?? 0) > 0),
3896
+ {
3897
+ message: "Contradictory patch: labels cannot be set while showLabels is false"
3898
+ }
3899
+ ).refine(
3900
+ (v) => !(v.settings.showLabels === true && v.settings.labels !== void 0 && v.settings.labels.length === 0),
3901
+ {
3902
+ message: "Contradictory patch: showLabels cannot be true with an explicitly empty labels list \u2014 pass a non-empty list, or omit labels to apply the defaults"
3903
+ }
3904
+ );
3905
+ var PluginPresentationViewsUpdateSettingsResult = z61.object({
3906
+ id: z61.string()
3907
+ });
3351
3908
 
3352
3909
  // src/api/presentation/sheets.ts
3353
- var z56 = __toESM(require("zod"), 1);
3910
+ var z62 = __toESM(require("zod"), 1);
3354
3911
  var PluginPresentationSheetsApi = class {
3355
3912
  constructor() {
3356
3913
  }
3357
3914
  };
3358
- var PluginPresentationSheet = z56.object({
3359
- id: z56.string(),
3360
- name: z56.string()
3915
+ var PluginPresentationSheet = z62.object({
3916
+ id: z62.string(),
3917
+ name: z62.string()
3361
3918
  });
3362
- var PluginSheetPosition = z56.object({
3363
- x: z56.number(),
3364
- y: z56.number()
3919
+ var PluginSheetPosition = z62.object({
3920
+ x: z62.number(),
3921
+ y: z62.number()
3365
3922
  });
3366
- var PluginPresentationSheetsListResult = z56.object({
3367
- sheets: z56.array(PluginPresentationSheet)
3923
+ var PluginPresentationSheetsListResult = z62.object({
3924
+ sheets: z62.array(PluginPresentationSheet)
3368
3925
  });
3369
- var PluginPresentationSheetsGetArgs = z56.object({
3370
- id: z56.string()
3926
+ var PluginPresentationSheetsGetArgs = z62.object({
3927
+ id: z62.string()
3371
3928
  });
3372
3929
  var PluginPresentationSheetsGetResult = PluginPresentationSheet.nullable();
3373
- var PluginPresentationSheetsCreateArgs = z56.object({
3374
- name: z56.string().optional()
3930
+ var PluginPresentationSheetsCreateArgs = z62.object({
3931
+ name: z62.string().optional()
3375
3932
  });
3376
- var PluginPresentationSheetsPlaceArgs = z56.object({
3377
- sheetId: z56.string(),
3378
- viewId: z56.string(),
3933
+ var PluginPresentationSheetsPlaceArgs = z62.object({
3934
+ sheetId: z62.string(),
3935
+ viewId: z62.string(),
3379
3936
  position: PluginSheetPosition.optional()
3380
3937
  });
3381
- var PluginPresentationSheetsPlaceResult = z56.object({
3382
- shapeId: z56.string()
3938
+ var PluginPresentationSheetsPlaceResult = z62.object({
3939
+ shapeId: z62.string()
3383
3940
  });
3384
3941
 
3385
3942
  // src/api/presentation/diagrams.ts
3386
- var z57 = __toESM(require("zod"), 1);
3943
+ var z63 = __toESM(require("zod"), 1);
3387
3944
  var PluginPresentationDiagramsApi = class {
3388
3945
  constructor() {
3389
3946
  }
3390
3947
  };
3391
- var PluginPresentationDiagramsPlaceArgs = z57.object({
3392
- sheetId: z57.string(),
3393
- urls: z57.array(z57.string()),
3394
- position: z57.object({ x: z57.number(), y: z57.number() }).optional()
3948
+ var PluginPresentationDiagramsPlaceArgs = z63.object({
3949
+ sheetId: z63.string(),
3950
+ urls: z63.array(z63.string()),
3951
+ position: z63.object({ x: z63.number(), y: z63.number() }).optional()
3395
3952
  });
3396
- var PluginPresentationDiagramsPlaceResult = z57.object({
3397
- shapeIds: z57.array(z57.string())
3953
+ var PluginPresentationDiagramsPlaceResult = z63.object({
3954
+ shapeIds: z63.array(z63.string())
3398
3955
  });
3399
3956
 
3400
3957
  // src/api/presentation/import.ts
3401
- var z58 = __toESM(require("zod"), 1);
3958
+ var z64 = __toESM(require("zod"), 1);
3402
3959
  var PluginPresentationImportApi = class {
3403
3960
  constructor() {
3404
3961
  }
3405
3962
  };
3406
- var PluginPresentationImportArgs = z58.object({
3407
- url: z58.string().optional(),
3408
- dataUrl: z58.string().optional(),
3409
- position: z58.object({ x: z58.number(), y: z58.number() }).optional()
3963
+ var PluginPresentationImportArgs = z64.object({
3964
+ url: z64.string().optional(),
3965
+ dataUrl: z64.string().optional(),
3966
+ position: z64.object({ x: z64.number(), y: z64.number() }).optional()
3410
3967
  }).refine((a) => Boolean(a.url) || Boolean(a.dataUrl), {
3411
3968
  message: "Provide a url or a dataUrl"
3412
3969
  });
3413
- var PluginPresentationImportResult = z58.object({
3414
- shapeIds: z58.array(z58.string())
3970
+ var PluginPresentationImportResult = z64.object({
3971
+ shapeIds: z64.array(z64.string())
3415
3972
  });
3416
3973
 
3417
3974
  // src/api/presentation/aiInspiration.ts
3418
- var z59 = __toESM(require("zod"), 1);
3419
- var JsonPrimitive = z59.union([z59.string(), z59.number(), z59.boolean(), z59.null()]);
3420
- var JsonValue = z59.lazy(
3421
- () => z59.union([JsonPrimitive, z59.array(JsonValue), z59.record(z59.string(), JsonValue)])
3975
+ var z65 = __toESM(require("zod"), 1);
3976
+ var JsonPrimitive = z65.union([z65.string(), z65.number(), z65.boolean(), z65.null()]);
3977
+ var JsonValue = z65.lazy(
3978
+ () => z65.union([JsonPrimitive, z65.array(JsonValue), z65.record(z65.string(), JsonValue)])
3422
3979
  );
3423
- var PluginAIInspirationOutputKind = z59.enum([
3980
+ var PluginAIInspirationOutputKind = z65.enum([
3424
3981
  "source",
3425
3982
  "image",
3426
3983
  "video"
3427
3984
  ]);
3428
- var PluginAIInspirationModelOutput = z59.enum(["image", "video"]);
3429
- var PluginAIInspirationShapeKind = z59.enum(["image", "view", "video"]);
3430
- var PluginAIInspirationVideoMode = z59.enum([
3985
+ var PluginAIInspirationModelOutput = z65.enum(["image", "video"]);
3986
+ var PluginAIInspirationShapeKind = z65.enum(["image", "view", "video"]);
3987
+ var PluginAIInspirationVideoMode = z65.enum([
3431
3988
  "animate",
3432
3989
  "references",
3433
3990
  "keyframes"
3434
3991
  ]);
3435
- var PluginAIInspirationVideoMotion = z59.enum([
3992
+ var PluginAIInspirationVideoMotion = z65.enum([
3436
3993
  "auto",
3437
3994
  "slow-dolly",
3438
3995
  "subtle-orbit",
3439
3996
  "reveal"
3440
3997
  ]);
3441
- var PluginAIInspirationVideoDuration = z59.enum(["4s", "6s", "8s"]);
3442
- var PluginAIInspirationRegionHint = z59.object({
3443
- x: z59.number().finite(),
3444
- y: z59.number().finite(),
3445
- w: z59.number().finite().positive(),
3446
- h: z59.number().finite().positive()
3447
- });
3448
- var PluginAIInspirationPoint = z59.object({
3449
- x: z59.number().finite(),
3450
- y: z59.number().finite()
3451
- });
3452
- var PluginAIInspirationTextAnnotation = z59.object({
3453
- text: z59.string().min(1),
3454
- x: z59.number().finite().optional(),
3455
- y: z59.number().finite().optional()
3456
- });
3457
- var PluginAIInspirationSketchGuidance = z59.object({
3458
- visualShapeIds: z59.array(z59.string()).optional(),
3459
- textAnnotations: z59.array(PluginAIInspirationTextAnnotation).optional()
3460
- });
3461
- var PluginAIInspirationSiteOptions = z59.object({
3462
- includeSatellite: z59.boolean().optional(),
3463
- includeStreetView: z59.boolean().optional(),
3464
- includeAerial: z59.boolean().optional(),
3465
- aerialBearing: z59.number().finite().optional(),
3466
- aerialPitch: z59.number().finite().optional(),
3467
- selectedDiagramIds: z59.array(z59.string()).optional(),
3468
- location: z59.object({
3469
- lat: z59.number().finite(),
3470
- lng: z59.number().finite()
3998
+ var PluginAIInspirationVideoDuration = z65.enum(["4s", "6s", "8s"]);
3999
+ var PluginAIInspirationRegionHint = z65.object({
4000
+ x: z65.number().finite(),
4001
+ y: z65.number().finite(),
4002
+ w: z65.number().finite().positive(),
4003
+ h: z65.number().finite().positive()
4004
+ });
4005
+ var PluginAIInspirationPoint = z65.object({
4006
+ x: z65.number().finite(),
4007
+ y: z65.number().finite()
4008
+ });
4009
+ var PluginAIInspirationTextAnnotation = z65.object({
4010
+ text: z65.string().min(1),
4011
+ x: z65.number().finite().optional(),
4012
+ y: z65.number().finite().optional()
4013
+ });
4014
+ var PluginAIInspirationSketchGuidance = z65.object({
4015
+ visualShapeIds: z65.array(z65.string()).optional(),
4016
+ textAnnotations: z65.array(PluginAIInspirationTextAnnotation).optional()
4017
+ });
4018
+ var PluginAIInspirationSiteOptions = z65.object({
4019
+ includeSatellite: z65.boolean().optional(),
4020
+ includeStreetView: z65.boolean().optional(),
4021
+ includeAerial: z65.boolean().optional(),
4022
+ aerialBearing: z65.number().finite().optional(),
4023
+ aerialPitch: z65.number().finite().optional(),
4024
+ selectedDiagramIds: z65.array(z65.string()).optional(),
4025
+ location: z65.object({
4026
+ lat: z65.number().finite(),
4027
+ lng: z65.number().finite()
3471
4028
  }).optional()
3472
4029
  });
3473
- var PluginAIInspirationAppliedPreset = z59.object({
3474
- source: z59.enum(["curated", "user"]),
3475
- presetId: z59.string().min(1),
3476
- name: z59.string().min(1),
3477
- savedPresetKind: z59.enum(["prompt", "style"]).optional(),
3478
- stylePrompt: z59.string().optional(),
3479
- modelId: z59.string().optional(),
3480
- referenceImages: z59.array(
3481
- z59.object({
3482
- url: z59.string().min(1),
3483
- label: z59.string().optional(),
3484
- weight: z59.number().finite().optional()
4030
+ var PluginAIInspirationAppliedPreset = z65.object({
4031
+ source: z65.enum(["curated", "user"]),
4032
+ presetId: z65.string().min(1),
4033
+ name: z65.string().min(1),
4034
+ savedPresetKind: z65.enum(["prompt", "style"]).optional(),
4035
+ stylePrompt: z65.string().optional(),
4036
+ modelId: z65.string().optional(),
4037
+ referenceImages: z65.array(
4038
+ z65.object({
4039
+ url: z65.string().min(1),
4040
+ label: z65.string().optional(),
4041
+ weight: z65.number().finite().optional()
3485
4042
  })
3486
4043
  ).optional(),
3487
- siteDefaults: z59.object({
3488
- includeSatellite: z59.boolean().optional(),
3489
- includeStreetView: z59.boolean().optional(),
3490
- includeAerial: z59.boolean().optional()
4044
+ siteDefaults: z65.object({
4045
+ includeSatellite: z65.boolean().optional(),
4046
+ includeStreetView: z65.boolean().optional(),
4047
+ includeAerial: z65.boolean().optional()
3491
4048
  }).optional()
3492
4049
  });
3493
- var PluginAIInspirationVideoOptions = z59.object({
4050
+ var PluginAIInspirationVideoOptions = z65.object({
3494
4051
  mode: PluginAIInspirationVideoMode.optional(),
3495
- endFrameShapeId: z59.string().optional(),
4052
+ endFrameShapeId: z65.string().optional(),
3496
4053
  motion: PluginAIInspirationVideoMotion.optional(),
3497
4054
  duration: PluginAIInspirationVideoDuration.optional()
3498
4055
  });
3499
- var PluginAIInspirationModel = z59.object({
3500
- id: z59.string(),
3501
- label: z59.string(),
3502
- supportsMultiImage: z59.boolean(),
4056
+ var PluginAIInspirationModel = z65.object({
4057
+ id: z65.string(),
4058
+ label: z65.string(),
4059
+ supportsMultiImage: z65.boolean(),
3503
4060
  output: PluginAIInspirationModelOutput,
3504
- isDefault: z59.boolean().optional()
4061
+ isDefault: z65.boolean().optional()
3505
4062
  });
3506
- var PluginAIInspirationListModelsResult = z59.object({
3507
- defaultModelId: z59.string(),
3508
- models: z59.array(PluginAIInspirationModel)
4063
+ var PluginAIInspirationListModelsResult = z65.object({
4064
+ defaultModelId: z65.string(),
4065
+ models: z65.array(PluginAIInspirationModel)
3509
4066
  });
3510
- var PluginAIInspirationShapeRef = z59.object({
3511
- shapeId: z59.string(),
3512
- assetId: z59.string().optional(),
4067
+ var PluginAIInspirationShapeRef = z65.object({
4068
+ shapeId: z65.string(),
4069
+ assetId: z65.string().optional(),
3513
4070
  kind: PluginAIInspirationShapeKind,
3514
- name: z59.string().optional(),
3515
- width: z59.number().finite().optional(),
3516
- height: z59.number().finite().optional(),
4071
+ name: z65.string().optional(),
4072
+ width: z65.number().finite().optional(),
4073
+ height: z65.number().finite().optional(),
3517
4074
  outputType: PluginAIInspirationOutputKind.optional(),
3518
- sourceUrl: z59.string().optional()
4075
+ sourceUrl: z65.string().optional()
3519
4076
  });
3520
- var PluginAIInspirationListSourcesArgs = z59.object({
3521
- includeGenerated: z59.boolean().optional(),
3522
- includeSourceUrl: z59.boolean().optional()
4077
+ var PluginAIInspirationListSourcesArgs = z65.object({
4078
+ includeGenerated: z65.boolean().optional(),
4079
+ includeSourceUrl: z65.boolean().optional()
3523
4080
  });
3524
- var PluginAIInspirationListSourcesResult = z59.object({
3525
- sources: z59.array(PluginAIInspirationShapeRef)
4081
+ var PluginAIInspirationListSourcesResult = z65.object({
4082
+ sources: z65.array(PluginAIInspirationShapeRef)
3526
4083
  });
3527
- var PluginAIInspirationOutput = z59.object({
3528
- outputType: z59.enum(["image", "video"]),
3529
- shapeId: z59.string(),
3530
- assetId: z59.string(),
3531
- outputUrl: z59.string().optional(),
4084
+ var PluginAIInspirationOutput = z65.object({
4085
+ outputType: z65.enum(["image", "video"]),
4086
+ shapeId: z65.string(),
4087
+ assetId: z65.string(),
4088
+ outputUrl: z65.string().optional(),
3532
4089
  position: PluginAIInspirationPoint.optional()
3533
4090
  });
3534
- var PluginAIInspirationDebugSummary = z59.record(z59.string(), JsonValue);
3535
- var PluginAIInspirationRunMetadata = z59.object({
3536
- geometryFidelity: z59.string().optional(),
4091
+ var PluginAIInspirationDebugSummary = z65.record(z65.string(), JsonValue);
4092
+ var PluginAIInspirationRunMetadata = z65.object({
4093
+ geometryFidelity: z65.string().optional(),
3537
4094
  debugSummary: PluginAIInspirationDebugSummary.optional(),
3538
- streetViewComposite: z59.object({
3539
- used: z59.boolean(),
3540
- renderMode: z59.enum(["prompt_refs_default", "masked_composite_pilot"]),
3541
- backgroundLabel: z59.string().optional()
4095
+ streetViewComposite: z65.object({
4096
+ used: z65.boolean(),
4097
+ renderMode: z65.enum(["prompt_refs_default", "masked_composite_pilot"]),
4098
+ backgroundLabel: z65.string().optional()
3542
4099
  }).optional()
3543
4100
  });
3544
- var PluginAIInspirationGenerateArgs = z59.object({
3545
- sourceShapeId: z59.string().min(1),
3546
- prompt: z59.string().min(1).max(8e3),
3547
- modelId: z59.string().optional(),
3548
- referenceShapeIds: z59.array(z59.string()).max(12).optional(),
3549
- referenceStrength: z59.enum(["low", "medium", "high"]).optional(),
4101
+ var PluginAIInspirationGenerateArgs = z65.object({
4102
+ sourceShapeId: z65.string().min(1),
4103
+ prompt: z65.string().min(1).max(8e3),
4104
+ modelId: z65.string().optional(),
4105
+ referenceShapeIds: z65.array(z65.string()).max(12).optional(),
4106
+ referenceStrength: z65.enum(["low", "medium", "high"]).optional(),
3550
4107
  appliedPreset: PluginAIInspirationAppliedPreset.optional(),
3551
4108
  site: PluginAIInspirationSiteOptions.optional(),
3552
4109
  regionHint: PluginAIInspirationRegionHint.optional(),
3553
4110
  sketchGuidance: PluginAIInspirationSketchGuidance.optional(),
3554
4111
  video: PluginAIInspirationVideoOptions.optional()
3555
4112
  });
3556
- var PluginAIInspirationRunResult = z59.object({
3557
- outputs: z59.array(PluginAIInspirationOutput).min(1),
4113
+ var PluginAIInspirationRunResult = z65.object({
4114
+ outputs: z65.array(PluginAIInspirationOutput).min(1),
3558
4115
  metadata: PluginAIInspirationRunMetadata.optional()
3559
4116
  });
3560
- var PluginAIInspirationRefineArgs = z59.object({
3561
- sourceShapeId: z59.string().min(1),
3562
- upscaleFactor: z59.union([z59.literal(1.5), z59.literal(2), z59.literal(4)]).optional()
4117
+ var PluginAIInspirationRefineArgs = z65.object({
4118
+ sourceShapeId: z65.string().min(1),
4119
+ upscaleFactor: z65.union([z65.literal(1.5), z65.literal(2), z65.literal(4)]).optional()
3563
4120
  });
3564
4121
  var PluginPresentationAIInspirationApi = class {
3565
4122
  constructor() {
@@ -3572,11 +4129,270 @@ var PluginPresentationApi = class {
3572
4129
  }
3573
4130
  };
3574
4131
 
4132
+ // src/api/analysis/sunpath.ts
4133
+ var PluginAnalysisSunpathApi = class {
4134
+ constructor() {
4135
+ }
4136
+ };
4137
+
4138
+ // src/api/analysis/shadows.ts
4139
+ var z66 = __toESM(require("zod"), 1);
4140
+ var PluginAnalysisShadowsApi = class {
4141
+ constructor() {
4142
+ }
4143
+ };
4144
+ var PluginAnalysisShadowsEnableOptions = z66.object({
4145
+ dateTime: z66.string().optional()
4146
+ });
4147
+ var PluginAnalysisShadowsSetDateTimeArgs = z66.object({
4148
+ dateTime: z66.string()
4149
+ });
4150
+ var PluginAnalysisShadowsDateTimeResult = z66.string();
4151
+
4152
+ // src/api/analysis/sunlightHours.ts
4153
+ var z67 = __toESM(require("zod"), 1);
4154
+ var PluginAnalysisSunlightHoursApi = class {
4155
+ constructor() {
4156
+ }
4157
+ };
4158
+ var PluginAnalysisComputeResult = z67.object({
4159
+ success: z67.boolean(),
4160
+ error: z67.string().optional()
4161
+ });
4162
+ var PluginAnalysisJobStatus = z67.enum([
4163
+ "running",
4164
+ "active",
4165
+ "inactive"
4166
+ ]);
4167
+ var PluginAnalysisJobState = z67.object({
4168
+ status: PluginAnalysisJobStatus,
4169
+ startDate: z67.string(),
4170
+ endDate: z67.string()
4171
+ });
4172
+ var PluginAnalysisJobStateResult = PluginAnalysisJobState.nullable();
4173
+
4174
+ // src/api/analysis/illuminance.ts
4175
+ var PluginAnalysisIlluminanceApi = class {
4176
+ constructor() {
4177
+ }
4178
+ };
4179
+
4180
+ // src/api/analysis/heatmaps.ts
4181
+ var z68 = __toESM(require("zod"), 1);
4182
+ var PluginAnalysisHeatmapsApi = class {
4183
+ constructor() {
4184
+ }
4185
+ };
4186
+ var PluginAnalysisHeatmapSpaceEntry = z68.object({
4187
+ space: ComponentHandle,
4188
+ value: z68.number().finite()
4189
+ });
4190
+ var PluginAnalysisHeatmapGridCell = z68.object({
4191
+ position: Vec3Components,
4192
+ value: z68.number().finite()
4193
+ });
4194
+ var PluginAnalysisHeatmapOptions = z68.object({
4195
+ title: z68.string().optional(),
4196
+ unit: z68.string().optional(),
4197
+ min: z68.number().finite().optional(),
4198
+ max: z68.number().finite().optional(),
4199
+ colors: z68.array(z68.string().regex(/^#?[0-9a-fA-F]{6}$/, 'expected a 6-digit hex colour like "#0000ff"')).min(1).optional()
4200
+ });
4201
+ var PluginAnalysisHeatmapsRenderResult = z68.object({
4202
+ success: z68.literal(true)
4203
+ });
4204
+
4205
+ // src/api/analysis/index.ts
4206
+ var PluginAnalysisApi = class {
4207
+ constructor() {
4208
+ }
4209
+ };
4210
+
3575
4211
  // src/api/index.ts
3576
4212
  var PluginApi = class {
3577
4213
  constructor() {
3578
4214
  }
3579
4215
  };
4216
+
4217
+ // src/errors/codes.ts
4218
+ var PLUGIN_ERROR_CODES = [
4219
+ "VALIDATION",
4220
+ "INVALID_RPC_FORMAT",
4221
+ "METHOD_NOT_FOUND",
4222
+ "METHOD_NOT_PERMITTED",
4223
+ "HANDLE_INVALID",
4224
+ "HANDLE_KIND_MISMATCH",
4225
+ "RESOURCE_QUOTA_EXCEEDED",
4226
+ "RATE_LIMITED",
4227
+ "PRECONDITION_FAILED",
4228
+ "OPERATION_FAILED",
4229
+ "TIMEOUT",
4230
+ "CALL_TIMEOUT",
4231
+ "TRANSPORT_LOST",
4232
+ "PLUGIN_NOT_READY",
4233
+ "PLUGIN_TERMINATED",
4234
+ "RESULT_NOT_SERIALIZABLE",
4235
+ "RESULT_TOO_LARGE",
4236
+ "BATCH_PARTIAL",
4237
+ "STORY_UPDATE_FAILED",
4238
+ "STORY_HEIGHT_REJECTED",
4239
+ "NO_ACTIVE_STRUCTURE",
4240
+ "NO_ELIGIBLE_ELEMENTS",
4241
+ "PROPOSAL_SWITCH_BLOCKED",
4242
+ "INTERNAL",
4243
+ "UNKNOWN"
4244
+ ];
4245
+ var CODE_META = {
4246
+ VALIDATION: {
4247
+ category: "validation",
4248
+ hintTemplate: "Check details.issues for the failing argument."
4249
+ },
4250
+ INVALID_RPC_FORMAT: { category: "validation" },
4251
+ METHOD_NOT_FOUND: {
4252
+ category: "not_found",
4253
+ hintTemplate: "Check details.didYouMean for a close match."
4254
+ },
4255
+ METHOD_NOT_PERMITTED: { category: "permission" },
4256
+ HANDLE_INVALID: {
4257
+ category: "handle",
4258
+ hintTemplate: "Re-query the entity; do not cache handles across undo/reload."
4259
+ },
4260
+ HANDLE_KIND_MISMATCH: { category: "handle" },
4261
+ RESOURCE_QUOTA_EXCEEDED: {
4262
+ category: "quota",
4263
+ hintTemplate: "Release unused handles (core.handles.release) or use scopes."
4264
+ },
4265
+ RATE_LIMITED: {
4266
+ category: "quota",
4267
+ hintTemplate: "Wait details.retryAfterMs before retrying."
4268
+ },
4269
+ PRECONDITION_FAILED: { category: "execution" },
4270
+ OPERATION_FAILED: { category: "execution" },
4271
+ TIMEOUT: { category: "timeout" },
4272
+ CALL_TIMEOUT: { category: "timeout" },
4273
+ TRANSPORT_LOST: { category: "transport" },
4274
+ PLUGIN_NOT_READY: { category: "lifecycle" },
4275
+ PLUGIN_TERMINATED: { category: "lifecycle" },
4276
+ RESULT_NOT_SERIALIZABLE: { category: "execution" },
4277
+ RESULT_TOO_LARGE: { category: "execution" },
4278
+ BATCH_PARTIAL: { category: "execution" },
4279
+ STORY_UPDATE_FAILED: {
4280
+ category: "execution",
4281
+ hintTemplate: "The storey update could not be applied; re-read the storey and retry."
4282
+ },
4283
+ STORY_HEIGHT_REJECTED: {
4284
+ category: "execution",
4285
+ hintTemplate: "The requested height was out of range; pick a value within the storey's limits."
4286
+ },
4287
+ NO_ACTIVE_STRUCTURE: {
4288
+ category: "execution",
4289
+ hintTemplate: "Activate a structure before running this operation."
4290
+ },
4291
+ NO_ELIGIBLE_ELEMENTS: {
4292
+ category: "execution",
4293
+ hintTemplate: "The storey has no elements eligible for this operation."
4294
+ },
4295
+ PROPOSAL_SWITCH_BLOCKED: {
4296
+ category: "execution",
4297
+ hintTemplate: "Wait for the in-canvas agent run to finish, then retry."
4298
+ },
4299
+ INTERNAL: {
4300
+ category: "internal",
4301
+ hintTemplate: "Host-side fault. Report with errorId."
4302
+ },
4303
+ UNKNOWN: { category: "internal" }
4304
+ };
4305
+ function isPluginErrorCode(value) {
4306
+ return PLUGIN_ERROR_CODES.includes(value);
4307
+ }
4308
+
4309
+ // src/errors/envelope.ts
4310
+ var ERROR_ENVELOPE_VERSION = 1;
4311
+ function isErrorEnvelope(value) {
4312
+ if (typeof value !== "object" || value === null) return false;
4313
+ const record5 = value;
4314
+ return record5.envelopeVersion === ERROR_ENVELOPE_VERSION && typeof record5.code === "string" && typeof record5.message === "string" && typeof record5.errorId === "string";
4315
+ }
4316
+ var idCounter = 0;
4317
+ function newErrorId(prefix = "") {
4318
+ const cryptoApi = globalThis.crypto;
4319
+ if (cryptoApi?.randomUUID) return `${prefix}${cryptoApi.randomUUID()}`;
4320
+ idCounter += 1;
4321
+ return `${prefix}${Date.now().toString(36)}-${idCounter}-${Math.random().toString(36).slice(2, 10)}`;
4322
+ }
4323
+
4324
+ // src/errors/plugin-error.ts
4325
+ var BRAND = /* @__PURE__ */ Symbol.for("snaptrude.pluginError");
4326
+ var PluginError = class extends Error {
4327
+ constructor(envelope) {
4328
+ super(envelope.message);
4329
+ this.name = new.target.name;
4330
+ this.code = envelope.code;
4331
+ this.errorId = envelope.errorId;
4332
+ this.details = envelope.details;
4333
+ this.handle = envelope.handle;
4334
+ this.methodPath = envelope.methodPath;
4335
+ this.hint = envelope.hint ?? hintFor(envelope.code);
4336
+ this[BRAND] = true;
4337
+ }
4338
+ /** Canonical check — survives bundled duplicate SDK copies where `instanceof` fails. */
4339
+ static is(value) {
4340
+ return typeof value === "object" && value !== null && value[BRAND] === true;
4341
+ }
4342
+ /** Derived (not wire-carried) family of the code; unknown codes map to "internal". */
4343
+ get category() {
4344
+ return isPluginErrorCode(this.code) ? CODE_META[this.code].category : "internal";
4345
+ }
4346
+ };
4347
+ var PluginValidationError = class extends PluginError {
4348
+ };
4349
+ var PluginNotFoundError = class extends PluginError {
4350
+ };
4351
+ var PluginPermissionError = class extends PluginError {
4352
+ };
4353
+ var PluginHandleError = class extends PluginError {
4354
+ };
4355
+ var PluginQuotaError = class extends PluginError {
4356
+ };
4357
+ var PluginTimeoutError = class extends PluginError {
4358
+ };
4359
+ var PluginTransportError = class extends PluginError {
4360
+ };
4361
+ var PluginLifecycleError = class extends PluginError {
4362
+ };
4363
+ var PluginExecutionError = class extends PluginError {
4364
+ };
4365
+ var PluginInternalError = class extends PluginError {
4366
+ };
4367
+ var CATEGORY_CLASS = {
4368
+ validation: PluginValidationError,
4369
+ not_found: PluginNotFoundError,
4370
+ permission: PluginPermissionError,
4371
+ handle: PluginHandleError,
4372
+ quota: PluginQuotaError,
4373
+ timeout: PluginTimeoutError,
4374
+ transport: PluginTransportError,
4375
+ lifecycle: PluginLifecycleError,
4376
+ execution: PluginExecutionError,
4377
+ internal: PluginInternalError
4378
+ };
4379
+ function hintFor(code) {
4380
+ return isPluginErrorCode(code) ? CODE_META[code].hintTemplate : void 0;
4381
+ }
4382
+ function fromEnvelope(envelope) {
4383
+ if (!isPluginErrorCode(envelope.code)) return new PluginError(envelope);
4384
+ const ErrorClass = CATEGORY_CLASS[CODE_META[envelope.code].category];
4385
+ return new ErrorClass(envelope);
4386
+ }
4387
+ function makeClientEnvelope(code, message, extra) {
4388
+ return {
4389
+ envelopeVersion: ERROR_ENVELOPE_VERSION,
4390
+ code,
4391
+ message,
4392
+ errorId: newErrorId("c-"),
4393
+ ...extra
4394
+ };
4395
+ }
3580
4396
  // Annotate the CommonJS export names for ESM import in node:
3581
4397
  0 && (module.exports = {
3582
4398
  ArcHandle,
@@ -3584,21 +4400,29 @@ var PluginApi = class {
3584
4400
  BooleanOptions,
3585
4401
  BooleanOutcome,
3586
4402
  BrepHandle,
4403
+ CODE_META,
4404
+ CadJsonInput,
3587
4405
  CircleHandle,
3588
4406
  CommentHandle,
3589
4407
  ComponentHandle,
3590
4408
  ContourHandle,
3591
4409
  CurveHandle,
3592
4410
  DEFAULT_ERASE_STRATEGIES,
4411
+ ERROR_ENVELOPE_VERSION,
3593
4412
  EdgeHandle,
3594
4413
  ErasableEdgeRef,
3595
4414
  EraseStrategy,
3596
4415
  FaceHandle,
3597
4416
  HalfEdgeHandle,
4417
+ ImportJobHandle,
4418
+ ImportJobStatus,
4419
+ ImportSource,
3598
4420
  LineHandle,
3599
4421
  MassHandle,
3600
4422
  MaterialHandle,
4423
+ ModelFormat,
3601
4424
  OffsetSplitOutcome,
4425
+ PLUGIN_ERROR_CODES,
3602
4426
  PUnitType,
3603
4427
  PluginAIInspirationAppliedPreset,
3604
4428
  PluginAIInspirationDebugSummary,
@@ -3625,6 +4449,24 @@ var PluginApi = class {
3625
4449
  PluginAIInspirationVideoMotion,
3626
4450
  PluginAIInspirationVideoOptions,
3627
4451
  PluginAdjacencyLevel,
4452
+ PluginAlignEdge,
4453
+ PluginAnalysisApi,
4454
+ PluginAnalysisComputeResult,
4455
+ PluginAnalysisHeatmapGridCell,
4456
+ PluginAnalysisHeatmapOptions,
4457
+ PluginAnalysisHeatmapSpaceEntry,
4458
+ PluginAnalysisHeatmapsApi,
4459
+ PluginAnalysisHeatmapsRenderResult,
4460
+ PluginAnalysisIlluminanceApi,
4461
+ PluginAnalysisJobState,
4462
+ PluginAnalysisJobStateResult,
4463
+ PluginAnalysisJobStatus,
4464
+ PluginAnalysisShadowsApi,
4465
+ PluginAnalysisShadowsDateTimeResult,
4466
+ PluginAnalysisShadowsEnableOptions,
4467
+ PluginAnalysisShadowsSetDateTimeArgs,
4468
+ PluginAnalysisSunlightHoursApi,
4469
+ PluginAnalysisSunpathApi,
3628
4470
  PluginApi,
3629
4471
  PluginAreaClass,
3630
4472
  PluginAreaUnit,
@@ -3684,6 +4526,12 @@ var PluginApi = class {
3684
4526
  PluginCoreGroupsListResult,
3685
4527
  PluginCoreGroupsUpdateArgs,
3686
4528
  PluginCoreGroupsUpdateResult,
4529
+ PluginCoreIoApi,
4530
+ PluginCoreIoImportApi,
4531
+ PluginCoreIoJobApi,
4532
+ PluginCoreIoQueryApi,
4533
+ PluginCoreIoTerrainApi,
4534
+ PluginCoreIoUnderlayApi,
3687
4535
  PluginCoreLayer,
3688
4536
  PluginCoreLayerType,
3689
4537
  PluginCoreLayersApi,
@@ -3697,6 +4545,23 @@ var PluginApi = class {
3697
4545
  PluginCoreLayersSetActiveResult,
3698
4546
  PluginCoreLayersUpdateArgs,
3699
4547
  PluginCoreLayersUpdateResult,
4548
+ PluginCoreProposalRef,
4549
+ PluginCoreProposalsApi,
4550
+ PluginCoreProposalsCreateArgs,
4551
+ PluginCoreProposalsCreateResult,
4552
+ PluginCoreProposalsDeleteArgs,
4553
+ PluginCoreProposalsDeleteResult,
4554
+ PluginCoreProposalsGetActiveResult,
4555
+ PluginCoreProposalsGetArgs,
4556
+ PluginCoreProposalsGetResult,
4557
+ PluginCoreProposalsIsActiveArgs,
4558
+ PluginCoreProposalsListForComponentArgs,
4559
+ PluginCoreProposalsListForComponentResult,
4560
+ PluginCoreProposalsListResult,
4561
+ PluginCoreProposalsRenameArgs,
4562
+ PluginCoreProposalsRenameResult,
4563
+ PluginCoreProposalsSetActiveArgs,
4564
+ PluginCoreProposalsSetActiveResult,
3700
4565
  PluginCoreTag,
3701
4566
  PluginCoreTagCategory,
3702
4567
  PluginCoreTagsApi,
@@ -3729,6 +4594,7 @@ var PluginApi = class {
3729
4594
  PluginCoreTagsUpdateResult,
3730
4595
  PluginCreateSpaceItem,
3731
4596
  PluginDepartmentId,
4597
+ PluginDesignAlignArgs,
3732
4598
  PluginDesignApi,
3733
4599
  PluginDesignBooleanApi,
3734
4600
  PluginDesignBooleanIntersectArgs,
@@ -3740,6 +4606,7 @@ var PluginApi = class {
3740
4606
  PluginDesignCreateCeilingArgs,
3741
4607
  PluginDesignCreateColumnArgs,
3742
4608
  PluginDesignCreateCopyArgs,
4609
+ PluginDesignCreateDoorArgs,
3743
4610
  PluginDesignCreateFloorArgs,
3744
4611
  PluginDesignCreateFurnitureArgs,
3745
4612
  PluginDesignCreateMassArgs,
@@ -3749,9 +4616,13 @@ var PluginApi = class {
3749
4616
  PluginDesignCreateSpaceArgs,
3750
4617
  PluginDesignCreateStaircaseArgs,
3751
4618
  PluginDesignCreateWallsArgs,
4619
+ PluginDesignCreateWindowArgs,
3752
4620
  PluginDesignDeleteApi,
3753
4621
  PluginDesignDeleteEntitiesArgs,
3754
4622
  PluginDesignDoorArgs,
4623
+ PluginDesignDoorExistsArgs,
4624
+ PluginDesignDoorGetCatalogItemArgs,
4625
+ PluginDesignDoorListCatalogArgs,
3755
4626
  PluginDesignDoorMirrorArgs,
3756
4627
  PluginDesignDoorSetHeightArgs,
3757
4628
  PluginDesignDoorSetWidthArgs,
@@ -3764,16 +4635,22 @@ var PluginApi = class {
3764
4635
  PluginDesignFurnitureExistsArgs,
3765
4636
  PluginDesignFurnitureGetCatalogItemArgs,
3766
4637
  PluginDesignFurnitureListCatalogArgs,
4638
+ PluginDesignIsAreaLockedArgs,
3767
4639
  PluginDesignIsLockedArgs,
3768
4640
  PluginDesignListErasableEdgesArgs,
4641
+ PluginDesignLockAreaArgs,
3769
4642
  PluginDesignLockArgs,
3770
4643
  PluginDesignMaterialsApi,
3771
4644
  PluginDesignMaterialsApplyArgs,
4645
+ PluginDesignMaterialsApplyToFacesArgs,
3772
4646
  PluginDesignMaterialsComponentArgs,
3773
4647
  PluginDesignMaterialsCreateArgs,
4648
+ PluginDesignMaterialsGetByFaceArgs,
3774
4649
  PluginDesignMaterialsGetInfoArgs,
3775
4650
  PluginDesignMaterialsListArgs,
4651
+ PluginDesignMaterialsListByFaceArgs,
3776
4652
  PluginDesignMaterialsResetArgs,
4653
+ PluginDesignMaterialsResetFacesArgs,
3777
4654
  PluginDesignMoveArgs,
3778
4655
  PluginDesignOffsetSplitArgs,
3779
4656
  PluginDesignQueryApi,
@@ -3795,10 +4672,16 @@ var PluginApi = class {
3795
4672
  PluginDesignSelectionApi,
3796
4673
  PluginDesignSelectionRemoveArgs,
3797
4674
  PluginDesignSelectionSetArgs,
4675
+ PluginDesignSetLabelArgs,
3798
4676
  PluginDesignTransformApi,
4677
+ PluginDesignUnlockAreaArgs,
3799
4678
  PluginDesignUnlockArgs,
3800
4679
  PluginDesignUpdateApi,
4680
+ PluginDesignUpdateStaircaseArgs,
3801
4681
  PluginDesignWindowArgs,
4682
+ PluginDesignWindowExistsArgs,
4683
+ PluginDesignWindowGetCatalogItemArgs,
4684
+ PluginDesignWindowListCatalogArgs,
3802
4685
  PluginDesignWindowSetHeightArgs,
3803
4686
  PluginDesignWindowSetWidthArgs,
3804
4687
  PluginDesignWindowsApi,
@@ -3807,6 +4690,9 @@ var PluginApi = class {
3807
4690
  PluginEntityMeasurements,
3808
4691
  PluginEntityProperties,
3809
4692
  PluginEntityType,
4693
+ PluginError,
4694
+ PluginExecutionError,
4695
+ PluginFaceMaterial,
3810
4696
  PluginFurnitureCatalogItem,
3811
4697
  PluginGeomApi,
3812
4698
  PluginGeomCreateApi,
@@ -3984,15 +4870,29 @@ var PluginApi = class {
3984
4870
  PluginGeomUpdateProfileSimplifyArgs,
3985
4871
  PluginGridApi,
3986
4872
  PluginGridValueArgs,
4873
+ PluginHandleError,
3987
4874
  PluginHistoryApi,
3988
4875
  PluginHistoryStepArgs,
3989
4876
  PluginHistoryStepResult,
4877
+ PluginImportCadJsonArgs,
4878
+ PluginImportDwgArgs,
4879
+ PluginImportImageArgs,
4880
+ PluginImportJobArgs,
4881
+ PluginImportModelArgs,
4882
+ PluginImportPdfArgs,
4883
+ PluginImportTerrainArgs,
4884
+ PluginInternalError,
4885
+ PluginLifecycleError,
3990
4886
  PluginMassType,
3991
4887
  PluginMaterialInfo,
3992
4888
  PluginMaterialResult,
3993
4889
  PluginMaterialSpec,
3994
4890
  PluginMathApi,
3995
4891
  PluginMirrorAxis,
4892
+ PluginNotFoundError,
4893
+ PluginObjectCatalogGroup,
4894
+ PluginObjectCatalogItem,
4895
+ PluginPermissionError,
3996
4896
  PluginPresentationAIInspirationApi,
3997
4897
  PluginPresentationApi,
3998
4898
  PluginPresentationDiagramsApi,
@@ -4011,6 +4911,9 @@ var PluginApi = class {
4011
4911
  PluginPresentationSheetsPlaceArgs,
4012
4912
  PluginPresentationSheetsPlaceResult,
4013
4913
  PluginPresentationView,
4914
+ PluginPresentationViewColorMode,
4915
+ PluginPresentationViewLabel,
4916
+ PluginPresentationViewSettings,
4014
4917
  PluginPresentationViewType,
4015
4918
  PluginPresentationViewsApi,
4016
4919
  PluginPresentationViewsCaptureArgs,
@@ -4019,9 +4922,13 @@ var PluginApi = class {
4019
4922
  PluginPresentationViewsCreateResult,
4020
4923
  PluginPresentationViewsGetArgs,
4021
4924
  PluginPresentationViewsGetResult,
4925
+ PluginPresentationViewsGetSettingsArgs,
4926
+ PluginPresentationViewsGetSettingsResult,
4022
4927
  PluginPresentationViewsListResult,
4023
4928
  PluginPresentationViewsSetActiveArgs,
4024
4929
  PluginPresentationViewsSetActiveResult,
4930
+ PluginPresentationViewsUpdateSettingsArgs,
4931
+ PluginPresentationViewsUpdateSettingsResult,
4025
4932
  PluginProgramAdjacencyApi,
4026
4933
  PluginProgramAdjacencyComputeResult,
4027
4934
  PluginProgramAdjacencyGetMatrixArgs,
@@ -4070,7 +4977,11 @@ var PluginApi = class {
4070
4977
  PluginProgramDepartmentsUpdateArgs,
4071
4978
  PluginProgramDepartmentsUpdateResult,
4072
4979
  PluginProgramLayoutApi,
4980
+ PluginProgramLayoutJobState,
4981
+ PluginProgramLayoutJobStatus,
4982
+ PluginProgramLayoutRunArgs,
4073
4983
  PluginProgramLayoutRunResult,
4984
+ PluginProgramLayoutStateResult,
4074
4985
  PluginProgramMetricsApi,
4075
4986
  PluginProgramMetricsSummary,
4076
4987
  PluginProgramSiteApi,
@@ -4079,6 +4990,9 @@ var PluginApi = class {
4079
4990
  PluginProgramSiteContextResult,
4080
4991
  PluginProgramSiteListGeoPolygonsResult,
4081
4992
  PluginProgramSiteListPolygonsResult,
4993
+ PluginProgramSiteLocation,
4994
+ PluginProgramSiteLocationResult,
4995
+ PluginProgramSiteNorthAngleResult,
4082
4996
  PluginProgramSiteSnapshot,
4083
4997
  PluginProgramSpreadsheetAddChartArgs,
4084
4998
  PluginProgramSpreadsheetAddChartResult,
@@ -4130,6 +5044,9 @@ var PluginApi = class {
4130
5044
  PluginProjectApi,
4131
5045
  PluginProjectSettingsApi,
4132
5046
  PluginQuatApi,
5047
+ PluginQueryCadLayersArgs,
5048
+ PluginQueryPdfPageCountArgs,
5049
+ PluginQuotaError,
4133
5050
  PluginReferenceLineApi,
4134
5051
  PluginReferenceLineCreateMultiArgs,
4135
5052
  PluginReferenceLineCreateMultiResult,
@@ -4139,6 +5056,8 @@ var PluginApi = class {
4139
5056
  PluginReferenceLineGetProperty,
4140
5057
  PluginReferenceLineGetResult,
4141
5058
  PluginReferenceLineStyle,
5059
+ PluginSelectionEntityType,
5060
+ PluginSelectionFilter,
4142
5061
  PluginSheetPosition,
4143
5062
  PluginSiteBounds,
4144
5063
  PluginSiteContextParcel,
@@ -4147,6 +5066,8 @@ var PluginApi = class {
4147
5066
  PluginSiteLatLng,
4148
5067
  PluginSitePolygon,
4149
5068
  PluginSlabType,
5069
+ PluginSmartLayoutArgs,
5070
+ PluginSmartLayoutResult,
4150
5071
  PluginSnapValueArgs,
4151
5072
  PluginSnapsApi,
4152
5073
  PluginSpaceBulkCreateArgs,
@@ -4203,21 +5124,36 @@ var PluginApi = class {
4203
5124
  PluginSpreadsheetTransactionOp,
4204
5125
  PluginSpreadsheetVerticalAlign,
4205
5126
  PluginSpreadsheetWhenExists,
5127
+ PluginStaircaseParamUpdates,
5128
+ PluginStaircaseParams,
4206
5129
  PluginStaircasePreset,
4207
5130
  PluginStoryApi,
4208
5131
  PluginStoryCreateArgs,
4209
5132
  PluginStoryCreateResult,
5133
+ PluginStoryDuplicateArgs,
5134
+ PluginStoryDuplicateResult,
4210
5135
  PluginStoryGetAllResult,
4211
5136
  PluginStoryGetArgs,
4212
5137
  PluginStoryGetProperty,
4213
5138
  PluginStoryGetResult,
4214
5139
  PluginStoryUpdateArgs,
4215
5140
  PluginStoryUpdateResult,
5141
+ PluginTerrainSetDatumArgs,
5142
+ PluginTerrainSetOpacityArgs,
5143
+ PluginTimeoutError,
4216
5144
  PluginToleranceArgs,
5145
+ PluginTransportError,
5146
+ PluginUnderlayListArgs,
5147
+ PluginUnderlayPlanSize,
5148
+ PluginUnderlayRefArgs,
5149
+ PluginUnderlaySetOpacityArgs,
5150
+ PluginUnderlaySetScaleArgs,
5151
+ PluginUnderlaySetScaleValue,
4217
5152
  PluginUnitsApi,
4218
5153
  PluginUnitsConvertArgs,
4219
5154
  PluginUnitsSetTypeArgs,
4220
5155
  PluginUpdateSpaceItem,
5156
+ PluginValidationError,
4221
5157
  PluginVec3Api,
4222
5158
  PluginWellKnownDepartmentId,
4223
5159
  PluginWindowDimensions,
@@ -4225,9 +5161,17 @@ var PluginApi = class {
4225
5161
  ProfileHandle,
4226
5162
  QuatComponents,
4227
5163
  QuatHandle,
5164
+ TerrainHandle,
5165
+ TerrainReport,
5166
+ UnderlayHandle,
4228
5167
  Vec3Components,
4229
5168
  Vec3Handle,
4230
5169
  VertexHandle,
4231
- handleSchema
5170
+ fromEnvelope,
5171
+ handleSchema,
5172
+ isErrorEnvelope,
5173
+ isPluginErrorCode,
5174
+ makeClientEnvelope,
5175
+ newErrorId
4232
5176
  });
4233
5177
  //# sourceMappingURL=index.cjs.map