@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.js CHANGED
@@ -27,6 +27,9 @@ var ContourHandle = handleSchema("contour");
27
27
  var MassHandle = handleSchema("mass");
28
28
  var ComponentHandle = z.string().min(1).transform((s) => s);
29
29
  var MaterialHandle = z.string().min(1).transform((s) => s);
30
+ var UnderlayHandle = z.string().min(1).transform((s) => s);
31
+ var TerrainHandle = z.string().min(1).transform((s) => s);
32
+ var ImportJobHandle = z.string().min(1).transform((s) => s);
30
33
  var Vec3Handle = handleSchema("vec3");
31
34
  var QuatHandle = handleSchema("quat");
32
35
  var LineHandle = handleSchema("line");
@@ -1040,6 +1043,189 @@ var PluginCoreTagsUnassignArgs = z24.object({
1040
1043
  });
1041
1044
  var PluginCoreTagsUnassignResult = PluginCoreAssignOutcome;
1042
1045
 
1046
+ // src/api/core/io/import/index.ts
1047
+ import * as z25 from "zod";
1048
+ var ImportSource = z25.string().min(1).refine((s) => s.startsWith("https://") || s.startsWith("data:"), {
1049
+ message: "source must be an https:// URL or a data: URL"
1050
+ });
1051
+ var PluginCoreIoImportApi = class {
1052
+ constructor() {
1053
+ }
1054
+ };
1055
+ var ModelFormat = z25.enum(["skp", "fbx", "obj", "3ds", "zip"]);
1056
+ var CadJsonInput = z25.object({
1057
+ unit: z25.string().optional(),
1058
+ geometry: z25.array(z25.record(z25.string(), z25.unknown())).optional()
1059
+ }).passthrough();
1060
+ var PluginImportImageArgs = z25.object({
1061
+ source: ImportSource,
1062
+ storey: z25.number().int().optional(),
1063
+ scale: z25.number().positive().optional(),
1064
+ opacity: z25.number().min(0).max(1).optional(),
1065
+ label: z25.string().optional()
1066
+ });
1067
+ var PluginImportPdfArgs = z25.object({
1068
+ source: ImportSource,
1069
+ storey: z25.number().int().optional(),
1070
+ page: z25.number().int().positive().optional(),
1071
+ scale: z25.string().optional(),
1072
+ opacity: z25.number().min(0).max(1).optional()
1073
+ });
1074
+ var PluginImportDwgArgs = z25.object({
1075
+ source: ImportSource,
1076
+ storey: z25.number().int().optional()
1077
+ });
1078
+ var PluginImportCadJsonArgs = z25.object({
1079
+ cad: CadJsonInput,
1080
+ storey: z25.number().int().optional()
1081
+ });
1082
+ var PluginImportModelArgs = z25.object({
1083
+ source: ImportSource,
1084
+ storey: z25.number().int().optional(),
1085
+ format: ModelFormat.optional(),
1086
+ position: Vec3Handle.optional(),
1087
+ label: z25.string().optional()
1088
+ });
1089
+ var PluginImportTerrainArgs = z25.object({
1090
+ lat: z25.number().min(-90).max(90),
1091
+ lng: z25.number().min(-180).max(180),
1092
+ width: z25.number().positive().finite(),
1093
+ length: z25.number().positive().finite(),
1094
+ elevation: z25.boolean().optional(),
1095
+ satellite: z25.boolean().optional(),
1096
+ neighborhood: z25.boolean().optional(),
1097
+ parcels: z25.boolean().optional()
1098
+ });
1099
+
1100
+ // src/api/core/io/job/index.ts
1101
+ import * as z26 from "zod";
1102
+ var PluginCoreIoJobApi = class {
1103
+ constructor() {
1104
+ }
1105
+ };
1106
+ var ImportJobStatus = z26.enum(["pending", "processing", "complete", "failed"]);
1107
+ var PluginImportJobArgs = z26.object({
1108
+ job: ImportJobHandle
1109
+ });
1110
+
1111
+ // src/api/core/io/underlay/index.ts
1112
+ import * as z27 from "zod";
1113
+ var PluginCoreIoUnderlayApi = class {
1114
+ constructor() {
1115
+ }
1116
+ };
1117
+ var PluginUnderlayListArgs = z27.object({
1118
+ storey: z27.number().int().optional()
1119
+ });
1120
+ var PluginUnderlayPlanSize = z27.object({
1121
+ planSize: z27.number().positive()
1122
+ });
1123
+ var PluginUnderlaySetScaleValue = z27.union([
1124
+ z27.number().positive(),
1125
+ PluginUnderlayPlanSize
1126
+ ]);
1127
+ var PluginUnderlaySetScaleArgs = z27.object({
1128
+ underlay: UnderlayHandle,
1129
+ scale: PluginUnderlaySetScaleValue
1130
+ });
1131
+ var PluginUnderlaySetOpacityArgs = z27.object({
1132
+ underlay: UnderlayHandle,
1133
+ opacity: z27.number().min(0).max(1)
1134
+ });
1135
+ var PluginUnderlayRefArgs = z27.object({
1136
+ underlay: UnderlayHandle
1137
+ });
1138
+
1139
+ // src/api/core/io/terrain/index.ts
1140
+ import * as z28 from "zod";
1141
+ var PluginCoreIoTerrainApi = class {
1142
+ constructor() {
1143
+ }
1144
+ };
1145
+ var TerrainReport = z28.object({
1146
+ cutVolume: z28.number(),
1147
+ fillVolume: z28.number(),
1148
+ netVolume: z28.number()
1149
+ });
1150
+ var PluginTerrainSetDatumArgs = z28.object({ offset: z28.number().finite() });
1151
+ var PluginTerrainSetOpacityArgs = z28.object({ opacity: z28.number().min(0).max(1) });
1152
+
1153
+ // src/api/core/io/query/index.ts
1154
+ import * as z29 from "zod";
1155
+ var PluginCoreIoQueryApi = class {
1156
+ constructor() {
1157
+ }
1158
+ };
1159
+ var PluginQueryPdfPageCountArgs = z29.object({ source: z29.string().min(1) });
1160
+ var PluginQueryCadLayersArgs = z29.object({ cad: CadJsonInput });
1161
+
1162
+ // src/api/core/io/index.ts
1163
+ var PluginCoreIoApi = class {
1164
+ constructor() {
1165
+ }
1166
+ };
1167
+
1168
+ // src/api/core/proposals/index.ts
1169
+ import * as z30 from "zod";
1170
+ var PluginCoreProposalsApi = class {
1171
+ constructor() {
1172
+ }
1173
+ };
1174
+ var PluginCoreProposalRef = z30.object({
1175
+ id: z30.string(),
1176
+ name: z30.string(),
1177
+ isActive: z30.boolean(),
1178
+ defaultBucketId: z30.string(),
1179
+ bucketIds: z30.array(z30.string()),
1180
+ createdAt: z30.string(),
1181
+ createdBy: z30.string()
1182
+ });
1183
+ var PluginCoreProposalsListResult = z30.object({
1184
+ proposals: z30.array(PluginCoreProposalRef)
1185
+ });
1186
+ var PluginCoreProposalsGetArgs = z30.object({
1187
+ proposalId: z30.string()
1188
+ });
1189
+ var PluginCoreProposalsGetResult = PluginCoreProposalRef.nullable();
1190
+ var PluginCoreProposalsGetActiveResult = PluginCoreProposalRef.nullable();
1191
+ var PluginCoreProposalsListForComponentArgs = z30.object({
1192
+ component: ComponentHandle
1193
+ });
1194
+ var PluginCoreProposalsListForComponentResult = PluginCoreProposalsListResult;
1195
+ var PluginCoreProposalsIsActiveArgs = PluginCoreProposalsGetArgs;
1196
+ var PluginCoreProposalsCreateArgs = z30.object({
1197
+ name: z30.string()
1198
+ });
1199
+ var PluginCoreProposalsCreateResult = z30.object({
1200
+ id: z30.string()
1201
+ });
1202
+ var PluginCoreProposalsRenameArgs = z30.object({
1203
+ proposalId: z30.string(),
1204
+ name: z30.string()
1205
+ });
1206
+ var PluginCoreProposalsRenameResult = PluginCoreProposalRef;
1207
+ var PluginCoreProposalsSetActiveArgs = z30.object({
1208
+ proposalId: z30.string()
1209
+ });
1210
+ var PluginCoreProposalsSetActiveResult = z30.object({
1211
+ id: z30.string()
1212
+ });
1213
+ var PluginCoreProposalsDeleteArgs = z30.object({
1214
+ proposalId: z30.string(),
1215
+ deleteObjects: z30.boolean().optional(),
1216
+ targetProposalId: z30.string().optional()
1217
+ }).refine((v) => v.deleteObjects === true !== (v.targetProposalId != null), {
1218
+ message: "Provide exactly one disposition: deleteObjects: true (destroy exclusive-bucket geometry) or targetProposalId (transfer buckets, then delete)"
1219
+ }).refine(
1220
+ (v) => v.targetProposalId == null || v.targetProposalId !== v.proposalId,
1221
+ {
1222
+ message: "targetProposalId must be a different proposal than proposalId"
1223
+ }
1224
+ );
1225
+ var PluginCoreProposalsDeleteResult = z30.object({
1226
+ deleted: z30.literal(true)
1227
+ });
1228
+
1043
1229
  // src/api/core/index.ts
1044
1230
  var PluginCoreApi = class {
1045
1231
  constructor() {
@@ -1047,39 +1233,39 @@ var PluginCoreApi = class {
1047
1233
  };
1048
1234
 
1049
1235
  // src/api/design/create/index.ts
1050
- import * as z26 from "zod";
1236
+ import * as z32 from "zod";
1051
1237
 
1052
1238
  // src/api/entity/space.ts
1053
- import * as z25 from "zod";
1054
- var PluginSpaceCreateRectangularArgs = z25.object({
1239
+ import * as z31 from "zod";
1240
+ var PluginSpaceCreateRectangularArgs = z31.object({
1055
1241
  position: Vec3Handle,
1056
- dimensions: z25.object({
1057
- width: z25.number(),
1058
- height: z25.number(),
1059
- depth: z25.number()
1242
+ dimensions: z31.object({
1243
+ width: z31.number(),
1244
+ height: z31.number(),
1245
+ depth: z31.number()
1060
1246
  })
1061
1247
  });
1062
- var PluginSpaceCreateRectangularResult = z25.object({
1063
- spaceId: z25.string()
1248
+ var PluginSpaceCreateRectangularResult = z31.object({
1249
+ spaceId: z31.string()
1064
1250
  });
1065
- var PluginSpaceCreateFromProfileArgs = z25.object({
1251
+ var PluginSpaceCreateFromProfileArgs = z31.object({
1066
1252
  profile: ProfileHandle,
1067
- innerProfiles: z25.array(ProfileHandle).optional(),
1068
- extrudeHeight: z25.number(),
1253
+ innerProfiles: z31.array(ProfileHandle).optional(),
1254
+ extrudeHeight: z31.number(),
1069
1255
  position: Vec3Handle
1070
1256
  });
1071
- var PluginSpaceCreateFromProfileResult = z25.object({
1072
- spaceId: z25.string()
1257
+ var PluginSpaceCreateFromProfileResult = z31.object({
1258
+ spaceId: z31.string()
1073
1259
  });
1074
- var PluginSpaceUpdateGeometryFromProfileArgs = z25.object({
1075
- spaceId: z25.string(),
1260
+ var PluginSpaceUpdateGeometryFromProfileArgs = z31.object({
1261
+ spaceId: z31.string(),
1076
1262
  profile: ProfileHandle,
1077
- extrudeHeight: z25.number()
1263
+ extrudeHeight: z31.number()
1078
1264
  });
1079
- var PluginSpaceUpdateGeometryFromProfileResult = z25.object({
1080
- spaceId: z25.string()
1265
+ var PluginSpaceUpdateGeometryFromProfileResult = z31.object({
1266
+ spaceId: z31.string()
1081
1267
  });
1082
- var PluginSpaceGetProperty = z25.enum([
1268
+ var PluginSpaceGetProperty = z31.enum([
1083
1269
  // Basic
1084
1270
  "id",
1085
1271
  "type",
@@ -1110,11 +1296,11 @@ var PluginSpaceGetProperty = z25.enum([
1110
1296
  // Derived from adjacency manager
1111
1297
  "adjacency"
1112
1298
  ]);
1113
- var PluginSpaceGetArgs = z25.object({
1114
- spaceId: z25.string(),
1115
- properties: z25.array(PluginSpaceGetProperty)
1299
+ var PluginSpaceGetArgs = z31.object({
1300
+ spaceId: z31.string(),
1301
+ properties: z31.array(PluginSpaceGetProperty)
1116
1302
  });
1117
- var PluginSpaceType = z25.enum([
1303
+ var PluginSpaceType = z31.enum([
1118
1304
  "Room",
1119
1305
  "Program Block",
1120
1306
  "Balcony",
@@ -1126,51 +1312,51 @@ var PluginSpaceType = z25.enum([
1126
1312
  "Envelope",
1127
1313
  "Parking"
1128
1314
  ]);
1129
- var PluginAreaClass = z25.enum(["NET", "GROSS", "EXCLUDED"]);
1130
- var PluginSpaceGetResult = z25.object({
1315
+ var PluginAreaClass = z31.enum(["NET", "GROSS", "EXCLUDED"]);
1316
+ var PluginSpaceGetResult = z31.object({
1131
1317
  // Basic
1132
- id: z25.string(),
1133
- type: z25.string(),
1134
- room_type: z25.string(),
1135
- name: z25.string(),
1318
+ id: z31.string(),
1319
+ type: z31.string(),
1320
+ room_type: z31.string(),
1321
+ name: z31.string(),
1136
1322
  // Derived from parametric data
1137
- area: z25.number(),
1138
- breadth: z25.number(),
1139
- depth: z25.number(),
1140
- height: z25.number(),
1141
- massType: z25.string().nullable(),
1323
+ area: z31.number(),
1324
+ breadth: z31.number(),
1325
+ depth: z31.number(),
1326
+ height: z31.number(),
1327
+ massType: z31.string().nullable(),
1142
1328
  spaceType: PluginSpaceType.nullable(),
1143
1329
  areaClass: PluginAreaClass,
1144
- storey: z25.number().nullable(),
1145
- departmentId: z25.string().nullable(),
1146
- departmentName: z25.string(),
1147
- departmentColor: z25.string(),
1330
+ storey: z31.number().nullable(),
1331
+ departmentId: z31.string().nullable(),
1332
+ departmentName: z31.string(),
1333
+ departmentColor: z31.string(),
1148
1334
  // Derived from mesh
1149
1335
  position: Vec3Components,
1150
1336
  absolutePosition: Vec3Components,
1151
1337
  rotation: Vec3Components,
1152
1338
  rotationQuaternion: QuatComponents.nullable(),
1153
1339
  // Derived from brep
1154
- planPoints: z25.array(Vec3Components),
1155
- profile: z25.array(CurveHandle),
1156
- innerProfiles: z25.array(z25.array(CurveHandle)),
1157
- innerPlanPoints: z25.array(z25.array(Vec3Components)),
1340
+ planPoints: z31.array(Vec3Components),
1341
+ profile: z31.array(CurveHandle),
1342
+ innerProfiles: z31.array(z31.array(CurveHandle)),
1343
+ innerPlanPoints: z31.array(z31.array(Vec3Components)),
1158
1344
  // Derived from adjacency manager.
1159
1345
  // value: 2 = Direct (required), 1 = Indirect or physical contact, -1 = Restricted;
1160
1346
  // 0 (no relationship) entries are filtered out. Empty array when adjacency has
1161
1347
  // never been computed — run program.adjacency.compute() first for fresh data.
1162
- adjacency: z25.array(z25.object({
1163
- spaceId: z25.string(),
1164
- value: z25.number()
1348
+ adjacency: z31.array(z31.object({
1349
+ spaceId: z31.string(),
1350
+ value: z31.number()
1165
1351
  }))
1166
1352
  }).partial();
1167
- var PluginSpaceGetAllResult = z25.object({
1168
- spacesIds: z25.array(z25.string())
1353
+ var PluginSpaceGetAllResult = z31.object({
1354
+ spacesIds: z31.array(z31.string())
1169
1355
  });
1170
- var PluginSpaceDeleteArgs = z25.object({
1171
- spaceId: z25.string()
1356
+ var PluginSpaceDeleteArgs = z31.object({
1357
+ spaceId: z31.string()
1172
1358
  });
1173
- var PluginMassType = z25.enum([
1359
+ var PluginMassType = z31.enum([
1174
1360
  "Plinth",
1175
1361
  "Void",
1176
1362
  "Pergola",
@@ -1184,89 +1370,89 @@ var PluginMassType = z25.enum([
1184
1370
  "Mass",
1185
1371
  "Site"
1186
1372
  ]);
1187
- var PluginWellKnownDepartmentId = z25.enum([
1373
+ var PluginWellKnownDepartmentId = z31.enum([
1188
1374
  "DEFAULT",
1189
1375
  "SITE",
1190
1376
  "ENVELOPE",
1191
1377
  "CORE"
1192
1378
  ]);
1193
- var PluginDepartmentId = z25.union([
1379
+ var PluginDepartmentId = z31.union([
1194
1380
  PluginWellKnownDepartmentId,
1195
- z25.uuid()
1381
+ z31.uuid()
1196
1382
  ]);
1197
- var PluginSpaceUpdateArgs = z25.object({
1198
- spaceId: z25.string(),
1199
- properties: z25.object({
1200
- room_type: z25.string().optional(),
1383
+ var PluginSpaceUpdateArgs = z31.object({
1384
+ spaceId: z31.string(),
1385
+ properties: z31.object({
1386
+ room_type: z31.string().optional(),
1201
1387
  massType: PluginMassType.optional(),
1202
1388
  spaceType: PluginSpaceType.optional(),
1203
1389
  areaClass: PluginAreaClass.optional(),
1204
1390
  departmentId: PluginDepartmentId.optional()
1205
1391
  })
1206
1392
  });
1207
- var PluginSpaceUpdateResult = z25.object({
1208
- spaceId: z25.string(),
1209
- room_type: z25.string().optional(),
1210
- massType: z25.string().optional(),
1211
- spaceType: z25.string().optional(),
1393
+ var PluginSpaceUpdateResult = z31.object({
1394
+ spaceId: z31.string(),
1395
+ room_type: z31.string().optional(),
1396
+ massType: z31.string().optional(),
1397
+ spaceType: z31.string().optional(),
1212
1398
  areaClass: PluginAreaClass.optional(),
1213
- departmentId: z25.string().nullable().optional()
1399
+ departmentId: z31.string().nullable().optional()
1214
1400
  });
1215
- var PluginSpaceBulkCreateItem = z25.discriminatedUnion("kind", [
1216
- z25.object({
1217
- kind: z25.literal("rectangular"),
1401
+ var PluginSpaceBulkCreateItem = z31.discriminatedUnion("kind", [
1402
+ z31.object({
1403
+ kind: z31.literal("rectangular"),
1218
1404
  position: Vec3Handle,
1219
- dimensions: z25.object({
1220
- width: z25.number(),
1221
- height: z25.number(),
1222
- depth: z25.number()
1405
+ dimensions: z31.object({
1406
+ width: z31.number(),
1407
+ height: z31.number(),
1408
+ depth: z31.number()
1223
1409
  }),
1224
- room_type: z25.string().optional(),
1410
+ room_type: z31.string().optional(),
1225
1411
  spaceType: PluginSpaceType.optional(),
1226
1412
  massType: PluginMassType.optional(),
1227
1413
  departmentId: PluginDepartmentId.optional()
1228
1414
  }),
1229
- z25.object({
1230
- kind: z25.literal("profile"),
1415
+ z31.object({
1416
+ kind: z31.literal("profile"),
1231
1417
  profile: ProfileHandle,
1232
- innerProfiles: z25.array(ProfileHandle).optional(),
1233
- extrudeHeight: z25.number(),
1418
+ innerProfiles: z31.array(ProfileHandle).optional(),
1419
+ extrudeHeight: z31.number(),
1234
1420
  position: Vec3Handle,
1235
- room_type: z25.string().optional(),
1421
+ room_type: z31.string().optional(),
1236
1422
  spaceType: PluginSpaceType.optional(),
1237
1423
  massType: PluginMassType.optional(),
1238
1424
  departmentId: PluginDepartmentId.optional()
1239
1425
  })
1240
1426
  ]);
1241
- var PluginSpaceBulkCreateArgs = z25.object({
1242
- items: z25.array(PluginSpaceBulkCreateItem)
1427
+ var PluginSpaceBulkCreateArgs = z31.object({
1428
+ items: z31.array(PluginSpaceBulkCreateItem)
1243
1429
  });
1244
- var PluginSpaceBulkCreateResult = z25.object({
1245
- spaceIds: z25.array(z25.string())
1430
+ var PluginSpaceBulkCreateResult = z31.object({
1431
+ spaceIds: z31.array(z31.string())
1246
1432
  });
1247
- var PluginSpaceBulkUpdateItem = z25.object({
1248
- spaceId: z25.string(),
1433
+ var PluginSpaceBulkUpdateItem = z31.object({
1434
+ spaceId: z31.string(),
1249
1435
  profile: ProfileHandle.optional(),
1250
- extrudeHeight: z25.number().optional(),
1251
- properties: z25.object({
1252
- room_type: z25.string().optional(),
1436
+ extrudeHeight: z31.number().optional(),
1437
+ properties: z31.object({
1438
+ room_type: z31.string().optional(),
1253
1439
  massType: PluginMassType.optional(),
1254
1440
  spaceType: PluginSpaceType.optional(),
1255
1441
  areaClass: PluginAreaClass.optional(),
1256
1442
  departmentId: PluginDepartmentId.optional()
1257
1443
  }).optional()
1258
1444
  });
1259
- var PluginSpaceBulkUpdateArgs = z25.object({
1260
- items: z25.array(PluginSpaceBulkUpdateItem)
1445
+ var PluginSpaceBulkUpdateArgs = z31.object({
1446
+ items: z31.array(PluginSpaceBulkUpdateItem)
1261
1447
  });
1262
- var PluginSpaceBulkUpdateResult = z25.object({
1263
- spaces: z25.array(PluginSpaceUpdateResult)
1448
+ var PluginSpaceBulkUpdateResult = z31.object({
1449
+ spaces: z31.array(PluginSpaceUpdateResult)
1264
1450
  });
1265
- var PluginSpaceBulkDeleteArgs = z25.object({
1266
- spaceIds: z25.array(z25.string())
1451
+ var PluginSpaceBulkDeleteArgs = z31.object({
1452
+ spaceIds: z31.array(z31.string())
1267
1453
  });
1268
- var PluginSpaceBulkDeleteResult = z25.object({
1269
- deletedSpaceIds: z25.array(z25.string())
1454
+ var PluginSpaceBulkDeleteResult = z31.object({
1455
+ deletedSpaceIds: z31.array(z31.string())
1270
1456
  });
1271
1457
 
1272
1458
  // src/api/design/create/index.ts
@@ -1274,14 +1460,14 @@ var PluginDesignCreateApi = class {
1274
1460
  constructor() {
1275
1461
  }
1276
1462
  };
1277
- var PluginReferenceLineStyle = z26.enum(["SOLID", "DASHED", "DOT_DASH"]);
1278
- var PluginSlabType = z26.enum([
1463
+ var PluginReferenceLineStyle = z32.enum(["SOLID", "DASHED", "DOT_DASH"]);
1464
+ var PluginSlabType = z32.enum([
1279
1465
  "Intermediate Slab",
1280
1466
  "Basement Slab",
1281
1467
  "Plinth",
1282
1468
  "Roof"
1283
1469
  ]);
1284
- var PluginStaircasePreset = z26.enum([
1470
+ var PluginStaircasePreset = z32.enum([
1285
1471
  "straight",
1286
1472
  "straightWoLanding",
1287
1473
  "straightFlightWoMidLanding",
@@ -1299,89 +1485,122 @@ var PluginStaircasePreset = z26.enum([
1299
1485
  "mezzanineFloorLShaped",
1300
1486
  "custom"
1301
1487
  ]);
1302
- var PluginDesignCreateSpaceArgs = z26.object({
1488
+ var PluginDesignCreateSpaceArgs = z32.object({
1303
1489
  contour: ContourHandle,
1304
- height: z26.number(),
1305
- label: z26.string().optional(),
1490
+ height: z32.number(),
1491
+ label: z32.string().optional(),
1306
1492
  position: Vec3Handle.optional(),
1307
1493
  spaceType: PluginSpaceType.optional(),
1308
1494
  massType: PluginMassType.optional(),
1309
1495
  departmentId: PluginDepartmentId.optional()
1310
1496
  });
1311
- var PluginDesignCreateMassArgs = z26.object({
1497
+ var PluginDesignCreateMassArgs = z32.object({
1312
1498
  contour: ContourHandle,
1313
- height: z26.number(),
1314
- label: z26.string().optional(),
1499
+ height: z32.number(),
1500
+ label: z32.string().optional(),
1315
1501
  position: Vec3Handle.optional(),
1316
1502
  massType: PluginMassType.optional()
1317
1503
  });
1318
- var PluginDesignCreateSlabArgs = z26.object({
1504
+ var PluginDesignCreateSlabArgs = z32.object({
1319
1505
  contour: ContourHandle,
1320
- thickness: z26.number(),
1321
- direction: z26.enum(["up", "down"]).optional(),
1506
+ thickness: z32.number(),
1507
+ direction: z32.enum(["up", "down"]).optional(),
1322
1508
  slabType: PluginSlabType.optional()
1323
1509
  });
1324
- var PluginDesignCreateFloorArgs = z26.object({
1510
+ var PluginDesignCreateFloorArgs = z32.object({
1325
1511
  contour: ContourHandle,
1326
- thickness: z26.number(),
1512
+ thickness: z32.number(),
1327
1513
  position: Vec3Handle.optional()
1328
1514
  });
1329
- var PluginDesignCreateRoofArgs = z26.object({
1515
+ var PluginDesignCreateRoofArgs = z32.object({
1330
1516
  contour: ContourHandle,
1331
- thickness: z26.number()
1517
+ thickness: z32.number()
1332
1518
  });
1333
- var PluginDesignCreateCeilingArgs = z26.object({
1519
+ var PluginDesignCreateCeilingArgs = z32.object({
1334
1520
  contour: ContourHandle,
1335
- thickness: z26.number(),
1336
- heightFromFloor: z26.number().optional()
1521
+ thickness: z32.number(),
1522
+ heightFromFloor: z32.number().optional()
1337
1523
  });
1338
- var PluginDesignCreateColumnArgs = z26.object({
1524
+ var PluginDesignCreateColumnArgs = z32.object({
1339
1525
  position: Vec3Handle,
1340
1526
  crossSection: ContourHandle,
1341
- height: z26.number(),
1527
+ height: z32.number(),
1342
1528
  directionUp: Vec3Handle.optional()
1343
1529
  });
1344
- var PluginDesignCreateBeamArgs = z26.object({
1530
+ var PluginDesignCreateBeamArgs = z32.object({
1345
1531
  section: ContourHandle,
1346
- length: z26.number(),
1532
+ length: z32.number(),
1347
1533
  direction: Vec3Handle.optional()
1348
1534
  });
1349
- var PluginDesignCreateWallsArgs = z26.object({
1535
+ var PluginDesignCreateWallsArgs = z32.object({
1350
1536
  profile: ProfileHandle,
1351
- height: z26.number().optional(),
1352
- thickness: z26.number().optional()
1537
+ height: z32.number().optional(),
1538
+ thickness: z32.number().optional()
1353
1539
  });
1354
- var PluginDesignCreateStaircaseArgs = z26.object({
1540
+ var PluginDesignCreateStaircaseArgs = z32.object({
1355
1541
  preset: PluginStaircasePreset,
1356
1542
  position: Vec3Handle,
1357
- label: z26.string().optional(),
1358
- structureId: z26.string().optional(),
1359
- level: z26.string().optional()
1543
+ label: z32.string().optional(),
1544
+ structureId: z32.string().optional(),
1545
+ level: z32.string().optional()
1546
+ });
1547
+ var PluginDesignCreateFurnitureArgs = z32.object({
1548
+ catalogId: z32.string().min(1),
1549
+ position: Vec3Handle,
1550
+ label: z32.string().optional(),
1551
+ createNewSourceMesh: z32.boolean().optional()
1360
1552
  });
1361
- var PluginDesignCreateFurnitureArgs = z26.object({
1362
- catalogId: z26.string().min(1),
1553
+ var PluginDesignCreateDoorArgs = z32.object({
1554
+ catalogId: z32.string().min(1),
1555
+ hostWall: ComponentHandle,
1363
1556
  position: Vec3Handle,
1364
- label: z26.string().optional(),
1365
- createNewSourceMesh: z26.boolean().optional()
1557
+ label: z32.string().optional()
1558
+ });
1559
+ var PluginDesignCreateWindowArgs = z32.object({
1560
+ catalogId: z32.string().min(1),
1561
+ hostWall: ComponentHandle,
1562
+ position: Vec3Handle,
1563
+ label: z32.string().optional()
1564
+ });
1565
+ var PluginSmartLayoutArgs = z32.object({
1566
+ templateGroup: z32.string().min(1).optional(),
1567
+ templateComponents: z32.array(ComponentHandle).optional(),
1568
+ targets: z32.array(ComponentHandle).min(1),
1569
+ hideTargets: z32.boolean().optional()
1570
+ }).refine(
1571
+ (v) => v.templateGroup != null !== (v.templateComponents?.length ?? 0) > 0,
1572
+ {
1573
+ message: "Provide exactly one template source: templateGroup or a non-empty templateComponents"
1574
+ }
1575
+ );
1576
+ var PluginSmartLayoutResult = z32.object({
1577
+ created: z32.object({
1578
+ walls: z32.array(ComponentHandle),
1579
+ furniture: z32.array(ComponentHandle),
1580
+ doors: z32.array(ComponentHandle),
1581
+ windows: z32.array(ComponentHandle),
1582
+ floors: z32.array(ComponentHandle)
1583
+ }),
1584
+ skippedWalls: z32.number()
1366
1585
  });
1367
- var PluginDesignCreateReferenceLinesArgs = z26.object({
1586
+ var PluginDesignCreateReferenceLinesArgs = z32.object({
1368
1587
  profile: ProfileHandle,
1369
- color: z26.string().optional(),
1370
- thickness: z26.number().optional(),
1588
+ color: z32.string().optional(),
1589
+ thickness: z32.number().optional(),
1371
1590
  style: PluginReferenceLineStyle.optional(),
1372
- gridTag: z26.string().optional()
1591
+ gridTag: z32.string().optional()
1373
1592
  });
1374
- var PluginCopyMode = z26.enum(["instance", "unique"]);
1375
- var PluginDesignCreateCopyArgs = z26.object({
1376
- components: z26.array(ComponentHandle).min(1),
1593
+ var PluginCopyMode = z32.enum(["instance", "unique"]);
1594
+ var PluginDesignCreateCopyArgs = z32.object({
1595
+ components: z32.array(ComponentHandle).min(1),
1377
1596
  displacement: Vec3Handle,
1378
- count: z26.number().int().positive().optional(),
1597
+ count: z32.number().int().positive().optional(),
1379
1598
  mode: PluginCopyMode.optional()
1380
1599
  });
1381
- var PluginCreateSpaceItem = z26.object({
1600
+ var PluginCreateSpaceItem = z32.object({
1382
1601
  contour: ContourHandle,
1383
- height: z26.number(),
1384
- label: z26.string().optional(),
1602
+ height: z32.number(),
1603
+ label: z32.string().optional(),
1385
1604
  position: Vec3Handle.optional(),
1386
1605
  spaceType: PluginSpaceType.optional(),
1387
1606
  massType: PluginMassType.optional(),
@@ -1389,44 +1608,44 @@ var PluginCreateSpaceItem = z26.object({
1389
1608
  });
1390
1609
 
1391
1610
  // src/api/design/query/index.ts
1392
- import * as z29 from "zod";
1611
+ import * as z35 from "zod";
1393
1612
 
1394
1613
  // src/api/design/query/geometry/index.ts
1395
- import * as z27 from "zod";
1614
+ import * as z33 from "zod";
1396
1615
  var PluginDesignQueryGeometryApi = class {
1397
1616
  constructor() {
1398
1617
  }
1399
1618
  };
1400
- var PluginDesignQueryGeometryGetBrepArgs = z27.object({
1619
+ var PluginDesignQueryGeometryGetBrepArgs = z33.object({
1401
1620
  component: ComponentHandle
1402
1621
  });
1403
- var PluginDesignQueryGeometryGetBottomContourArgs = z27.object({
1622
+ var PluginDesignQueryGeometryGetBottomContourArgs = z33.object({
1404
1623
  component: ComponentHandle
1405
1624
  });
1406
- var PluginDesignQueryGeometryGetCenterlineArgs = z27.object({
1625
+ var PluginDesignQueryGeometryGetCenterlineArgs = z33.object({
1407
1626
  component: ComponentHandle
1408
1627
  });
1409
1628
 
1410
1629
  // src/api/design/query/spaces.ts
1411
- import * as z28 from "zod";
1630
+ import * as z34 from "zod";
1412
1631
  var PluginDesignQuerySpacesApi = class {
1413
1632
  constructor() {
1414
1633
  }
1415
1634
  };
1416
- var PluginDesignQueryGetFootprintArgs = z28.object({
1635
+ var PluginDesignQueryGetFootprintArgs = z34.object({
1417
1636
  space: ComponentHandle
1418
1637
  });
1419
1638
  var PluginDesignQuerySpacesGetProperty = PluginSpaceGetProperty.exclude(["adjacency"]);
1420
- var PluginDesignQuerySpacesGetArgs = z28.object({
1639
+ var PluginDesignQuerySpacesGetArgs = z34.object({
1421
1640
  space: ComponentHandle,
1422
- properties: z28.array(PluginDesignQuerySpacesGetProperty)
1641
+ properties: z34.array(PluginDesignQuerySpacesGetProperty)
1423
1642
  });
1424
1643
  var PluginDesignQuerySpacesGetResult = PluginSpaceGetResult.omit({
1425
1644
  adjacency: true
1426
1645
  });
1427
1646
 
1428
1647
  // src/api/design/query/index.ts
1429
- var PluginEntityType = z29.enum([
1648
+ var PluginEntityType = z35.enum([
1430
1649
  "wall",
1431
1650
  "space",
1432
1651
  "mass",
@@ -1445,227 +1664,335 @@ var PluginEntityType = z29.enum([
1445
1664
  "mullion",
1446
1665
  "panel"
1447
1666
  ]);
1448
- var PluginEntityFilter = z29.object({
1449
- types: z29.array(PluginEntityType).optional(),
1450
- storeys: z29.array(z29.number()).optional(),
1451
- buildingIds: z29.array(z29.string()).optional(),
1452
- structureIds: z29.array(z29.string()).optional(),
1453
- label: z29.string().optional(),
1454
- massTypes: z29.array(PluginMassType).optional(),
1455
- spaceTypes: z29.array(PluginSpaceType).optional(),
1667
+ var PluginEntityFilter = z35.object({
1668
+ types: z35.array(PluginEntityType).optional(),
1669
+ storeys: z35.array(z35.number()).optional(),
1670
+ buildingIds: z35.array(z35.string()).optional(),
1671
+ structureIds: z35.array(z35.string()).optional(),
1672
+ label: z35.string().optional(),
1673
+ massTypes: z35.array(PluginMassType).optional(),
1674
+ spaceTypes: z35.array(PluginSpaceType).optional(),
1456
1675
  departmentId: PluginDepartmentId.optional(),
1457
- isSelected: z29.boolean().optional(),
1458
- isLocked: z29.boolean().optional(),
1459
- isHidden: z29.boolean().optional(),
1676
+ isSelected: z35.boolean().optional(),
1677
+ isLocked: z35.boolean().optional(),
1678
+ isHidden: z35.boolean().optional(),
1460
1679
  within: BBoxComponents.optional(),
1461
1680
  overlaps: ComponentHandle.optional(),
1462
- ids: z29.array(ComponentHandle).optional()
1681
+ ids: z35.array(ComponentHandle).optional()
1463
1682
  });
1464
1683
  var PluginDesignQueryListByTypeArgs = PluginEntityFilter.extend({
1465
1684
  type: PluginEntityType
1466
1685
  });
1467
- var PluginDesignQueryComponentArgs = z29.object({
1686
+ var PluginDesignQueryComponentArgs = z35.object({
1468
1687
  component: ComponentHandle
1469
1688
  });
1470
- var PluginDesignQueryIdArgs = z29.object({
1689
+ var PluginDesignQueryIdArgs = z35.object({
1471
1690
  id: ComponentHandle
1472
1691
  });
1473
- var PluginDesignQueryComponentsArgs = z29.object({
1474
- components: z29.array(ComponentHandle)
1692
+ var PluginDesignQueryComponentsArgs = z35.object({
1693
+ components: z35.array(ComponentHandle)
1475
1694
  });
1476
- var PluginEntityProperties = z29.object({
1477
- id: z29.string(),
1695
+ var PluginEntityProperties = z35.object({
1696
+ id: z35.string(),
1478
1697
  type: PluginEntityType,
1479
- label: z29.string(),
1480
- storey: z29.number(),
1481
- buildingId: z29.string(),
1482
- structureId: z29.string(),
1483
- massType: z29.string(),
1698
+ label: z35.string(),
1699
+ storey: z35.number(),
1700
+ buildingId: z35.string(),
1701
+ structureId: z35.string(),
1702
+ massType: z35.string(),
1484
1703
  spaceType: PluginSpaceType,
1485
1704
  areaClass: PluginAreaClass,
1486
- departmentId: z29.string(),
1487
- isLocked: z29.boolean(),
1488
- isHidden: z29.boolean(),
1489
- isSelected: z29.boolean(),
1705
+ departmentId: z35.string(),
1706
+ isLocked: z35.boolean(),
1707
+ isHidden: z35.boolean(),
1708
+ isSelected: z35.boolean(),
1490
1709
  boundingBox: BBoxComponents,
1491
- adjacency: z29.array(z29.object({ spaceId: z29.string(), value: z29.number() }))
1710
+ adjacency: z35.array(z35.object({ spaceId: z35.string(), value: z35.number() }))
1492
1711
  }).partial();
1493
- var PluginEntityMeasurements = z29.object({
1494
- area: z29.number().optional(),
1495
- volume: z29.number().optional(),
1496
- length: z29.number().optional(),
1712
+ var PluginEntityMeasurements = z35.object({
1713
+ area: z35.number().optional(),
1714
+ volume: z35.number().optional(),
1715
+ length: z35.number().optional(),
1497
1716
  boundingBox: BBoxComponents
1498
1717
  });
1718
+ var PluginStaircaseParams = z35.object({
1719
+ staircaseType: PluginStaircasePreset,
1720
+ staircasePreset: PluginStaircasePreset,
1721
+ staircaseHeight: z35.number(),
1722
+ steps: z35.number(),
1723
+ riser: z35.number(),
1724
+ tread: z35.number(),
1725
+ width: z35.number(),
1726
+ depth: z35.number(),
1727
+ wellSize: z35.number().optional(),
1728
+ landingWidth: z35.number().optional(),
1729
+ flightStartDistAfterTurn: z35.number().optional(),
1730
+ baseOffset: z35.number(),
1731
+ isStoreyHeightUnlocked: z35.boolean(),
1732
+ isStaircaseHeightUnlocked: z35.boolean(),
1733
+ storey: z35.number()
1734
+ });
1499
1735
  var PluginDesignQueryApi = class {
1500
1736
  constructor() {
1501
1737
  }
1502
1738
  };
1503
1739
 
1504
1740
  // src/api/design/selection/index.ts
1505
- import * as z30 from "zod";
1741
+ import * as z36 from "zod";
1742
+ var PluginSelectionEntityType = z36.enum([
1743
+ "wall",
1744
+ "slab",
1745
+ "floor",
1746
+ "door",
1747
+ "window",
1748
+ "beam",
1749
+ "column",
1750
+ "ceiling",
1751
+ "roof",
1752
+ "staircase",
1753
+ "furniture",
1754
+ "pergola",
1755
+ "sunshade",
1756
+ "referenceLine",
1757
+ "space",
1758
+ "site",
1759
+ "terrain",
1760
+ "cad",
1761
+ "pdf",
1762
+ "image",
1763
+ "dimensionLine",
1764
+ "model3d",
1765
+ "neighborhoodBuilding",
1766
+ "programBlock"
1767
+ ]);
1768
+ var PluginSelectionFilter = z36.object({
1769
+ storeys: z36.array(z36.number()).optional(),
1770
+ types: z36.array(PluginSelectionEntityType).optional()
1771
+ }).refine((f) => (f.storeys?.length ?? 0) + (f.types?.length ?? 0) > 0, {
1772
+ message: "PluginSelectionFilter requires at least one non-empty field (storeys or types); use design.selection.clear() to deselect everything"
1773
+ });
1506
1774
  var PluginDesignSelectionApi = class {
1507
1775
  constructor() {
1508
1776
  }
1509
1777
  };
1510
- var PluginDesignSelectionSetArgs = z30.object({
1511
- components: z30.array(ComponentHandle)
1778
+ var PluginDesignSelectionSetArgs = z36.object({
1779
+ components: z36.array(ComponentHandle)
1512
1780
  });
1513
1781
  var PluginDesignSelectionAddArgs = PluginDesignSelectionSetArgs;
1514
1782
  var PluginDesignSelectionRemoveArgs = PluginDesignSelectionSetArgs;
1515
1783
 
1516
1784
  // src/api/design/doors/index.ts
1517
- import * as z31 from "zod";
1785
+ import * as z37 from "zod";
1518
1786
  var PluginDesignDoorsApi = class {
1519
1787
  constructor() {
1520
1788
  }
1521
1789
  };
1522
- var PluginDesignDoorArgs = z31.object({
1790
+ var PluginDesignDoorArgs = z37.object({
1523
1791
  door: ComponentHandle
1524
1792
  });
1525
- var PluginMirrorAxis = z31.enum(["x", "y", "z"]);
1526
- var PluginDesignDoorMirrorArgs = z31.object({
1793
+ var PluginMirrorAxis = z37.enum(["x", "y", "z"]);
1794
+ var PluginDesignDoorMirrorArgs = z37.object({
1527
1795
  door: ComponentHandle,
1528
1796
  axis: PluginMirrorAxis.optional()
1529
1797
  });
1530
- var PluginDesignDoorSetWidthArgs = z31.object({
1531
- doors: z31.array(ComponentHandle),
1532
- width: z31.number()
1798
+ var PluginDesignDoorSetWidthArgs = z37.object({
1799
+ doors: z37.array(ComponentHandle),
1800
+ width: z37.number()
1533
1801
  });
1534
- var PluginDesignDoorSetHeightArgs = z31.object({
1535
- doors: z31.array(ComponentHandle),
1536
- height: z31.number()
1802
+ var PluginDesignDoorSetHeightArgs = z37.object({
1803
+ doors: z37.array(ComponentHandle),
1804
+ height: z37.number()
1537
1805
  });
1806
+ var PluginObjectCatalogGroup = z37.object({
1807
+ dbType: z37.string(),
1808
+ label: z37.string(),
1809
+ source: z37.enum(["default", "team"])
1810
+ });
1811
+ var PluginObjectCatalogItem = z37.object({
1812
+ id: z37.string(),
1813
+ name: z37.string(),
1814
+ source: z37.enum(["team", "general"]),
1815
+ dbType: z37.string(),
1816
+ subType: z37.string().optional(),
1817
+ thumbnailUrl: z37.string().optional(),
1818
+ cost: z37.number().optional(),
1819
+ familyName: z37.string().optional()
1820
+ });
1821
+ var PluginDesignDoorListCatalogArgs = z37.object({
1822
+ group: z37.string().optional()
1823
+ });
1824
+ var PluginDesignDoorGetCatalogItemArgs = z37.object({
1825
+ id: z37.string()
1826
+ });
1827
+ var PluginDesignDoorExistsArgs = PluginDesignDoorGetCatalogItemArgs;
1538
1828
 
1539
1829
  // src/api/design/windows/index.ts
1540
- import * as z32 from "zod";
1830
+ import * as z38 from "zod";
1541
1831
  var PluginDesignWindowsApi = class {
1542
1832
  constructor() {
1543
1833
  }
1544
1834
  };
1545
- var PluginDesignWindowArgs = z32.object({
1835
+ var PluginDesignWindowArgs = z38.object({
1546
1836
  window: ComponentHandle
1547
1837
  });
1548
- var PluginWindowDimensions = z32.object({
1549
- width: z32.number(),
1550
- height: z32.number(),
1551
- thickness: z32.number()
1838
+ var PluginWindowDimensions = z38.object({
1839
+ width: z38.number(),
1840
+ height: z38.number(),
1841
+ thickness: z38.number()
1552
1842
  });
1553
- var PluginDesignWindowSetWidthArgs = z32.object({
1843
+ var PluginDesignWindowSetWidthArgs = z38.object({
1554
1844
  window: ComponentHandle,
1555
- width: z32.number()
1845
+ width: z38.number()
1556
1846
  });
1557
- var PluginDesignWindowSetHeightArgs = z32.object({
1847
+ var PluginDesignWindowSetHeightArgs = z38.object({
1558
1848
  window: ComponentHandle,
1559
- height: z32.number()
1849
+ height: z38.number()
1850
+ });
1851
+ var PluginDesignWindowListCatalogArgs = z38.object({
1852
+ group: z38.string().optional()
1560
1853
  });
1854
+ var PluginDesignWindowGetCatalogItemArgs = z38.object({
1855
+ id: z38.string()
1856
+ });
1857
+ var PluginDesignWindowExistsArgs = PluginDesignWindowGetCatalogItemArgs;
1561
1858
 
1562
1859
  // src/api/design/furniture/index.ts
1563
- import * as z33 from "zod";
1860
+ import * as z39 from "zod";
1564
1861
  var PluginDesignFurnitureApi = class {
1565
1862
  constructor() {
1566
1863
  }
1567
1864
  };
1568
- var PluginFurnitureCatalogItem = z33.object({
1569
- id: z33.string(),
1570
- name: z33.string(),
1571
- source: z33.enum(["team", "general"]),
1572
- subType: z33.string().optional(),
1573
- cost: z33.number().optional(),
1574
- familyName: z33.string().optional()
1575
- });
1576
- var PluginDesignFurnitureListCatalogArgs = z33.object({
1577
- source: z33.enum(["team", "general"]).optional()
1578
- });
1579
- var PluginDesignFurnitureGetCatalogItemArgs = z33.object({
1580
- id: z33.string()
1865
+ var PluginFurnitureCatalogItem = z39.object({
1866
+ id: z39.string(),
1867
+ name: z39.string(),
1868
+ source: z39.enum(["team", "general"]),
1869
+ subType: z39.string().optional(),
1870
+ category: z39.string().optional(),
1871
+ thumbnailUrl: z39.string().optional(),
1872
+ cost: z39.number().optional(),
1873
+ familyName: z39.string().optional()
1874
+ });
1875
+ var PluginDesignFurnitureListCatalogArgs = z39.object({
1876
+ source: z39.enum(["team", "general"]).optional(),
1877
+ category: z39.string().optional()
1878
+ });
1879
+ var PluginDesignFurnitureGetCatalogItemArgs = z39.object({
1880
+ id: z39.string()
1581
1881
  });
1582
1882
  var PluginDesignFurnitureExistsArgs = PluginDesignFurnitureGetCatalogItemArgs;
1583
1883
 
1584
1884
  // src/api/design/materials/index.ts
1585
- import * as z34 from "zod";
1885
+ import * as z40 from "zod";
1586
1886
  var PluginDesignMaterialsApi = class {
1587
1887
  constructor() {
1588
1888
  }
1589
1889
  };
1590
- var PluginMaterialInfo = z34.object({
1591
- name: z34.string(),
1592
- id: z34.string(),
1593
- colorHex: z34.string(),
1594
- alpha: z34.number(),
1595
- materialType: z34.string().optional(),
1596
- textureUrl: z34.string().optional()
1597
- });
1598
- var PluginMaterialSpec = z34.object({
1599
- name: z34.string().optional(),
1600
- color: z34.string().optional(),
1601
- textureUrl: z34.string().optional(),
1602
- alpha: z34.number().optional(),
1603
- materialType: z34.string().optional()
1604
- });
1605
- var PluginMaterialResult = z34.object({ count: z34.number() });
1606
- var PluginDesignMaterialsListArgs = z34.object({
1607
- scope: z34.enum(["project", "preset"]).optional()
1890
+ var PluginMaterialInfo = z40.object({
1891
+ name: z40.string(),
1892
+ id: z40.string(),
1893
+ colorHex: z40.string(),
1894
+ alpha: z40.number(),
1895
+ materialType: z40.string().optional(),
1896
+ textureUrl: z40.string().optional()
1897
+ });
1898
+ var PluginMaterialSpec = z40.object({
1899
+ name: z40.string().optional(),
1900
+ color: z40.string().optional(),
1901
+ textureUrl: z40.string().optional(),
1902
+ alpha: z40.number().optional(),
1903
+ materialType: z40.string().optional()
1904
+ });
1905
+ var PluginMaterialResult = z40.object({ count: z40.number() });
1906
+ var PluginFaceMaterial = z40.object({
1907
+ faceIndex: z40.number().int().nonnegative(),
1908
+ material: MaterialHandle.nullable()
1909
+ });
1910
+ var PluginDesignMaterialsListArgs = z40.object({
1911
+ scope: z40.enum(["project", "preset"]).optional()
1912
+ });
1913
+ var PluginDesignMaterialsGetInfoArgs = z40.object({ material: MaterialHandle });
1914
+ var PluginDesignMaterialsComponentArgs = z40.object({ component: ComponentHandle });
1915
+ var PluginDesignMaterialsApplyArgs = z40.object({
1916
+ targets: z40.array(ComponentHandle),
1917
+ material: z40.union([MaterialHandle, PluginMaterialSpec]),
1918
+ save: z40.boolean().optional()
1919
+ });
1920
+ var PluginDesignMaterialsResetArgs = z40.object({
1921
+ components: z40.array(ComponentHandle),
1922
+ save: z40.boolean().optional()
1923
+ });
1924
+ var PluginDesignMaterialsCreateArgs = z40.object({ spec: PluginMaterialSpec });
1925
+ var PluginDesignMaterialsApplyToFacesArgs = z40.object({
1926
+ component: ComponentHandle,
1927
+ faces: z40.array(z40.number().int().nonnegative()),
1928
+ material: z40.union([MaterialHandle, PluginMaterialSpec]),
1929
+ save: z40.boolean().optional()
1608
1930
  });
1609
- var PluginDesignMaterialsGetInfoArgs = z34.object({ material: MaterialHandle });
1610
- var PluginDesignMaterialsComponentArgs = z34.object({ component: ComponentHandle });
1611
- var PluginDesignMaterialsApplyArgs = z34.object({
1612
- targets: z34.array(ComponentHandle),
1613
- material: z34.union([MaterialHandle, PluginMaterialSpec]),
1614
- save: z34.boolean().optional()
1931
+ var PluginDesignMaterialsResetFacesArgs = z40.object({
1932
+ component: ComponentHandle,
1933
+ faces: z40.array(z40.number().int().nonnegative()),
1934
+ save: z40.boolean().optional()
1615
1935
  });
1616
- var PluginDesignMaterialsResetArgs = z34.object({
1617
- components: z34.array(ComponentHandle),
1618
- save: z34.boolean().optional()
1936
+ var PluginDesignMaterialsGetByFaceArgs = z40.object({
1937
+ component: ComponentHandle,
1938
+ face: z40.number().int().nonnegative()
1619
1939
  });
1620
- var PluginDesignMaterialsCreateArgs = z34.object({ spec: PluginMaterialSpec });
1940
+ var PluginDesignMaterialsListByFaceArgs = PluginDesignMaterialsComponentArgs;
1621
1941
 
1622
1942
  // src/api/design/lock.ts
1623
- import * as z35 from "zod";
1624
- var PluginDesignChangeResult = z35.object({
1625
- affected: z35.array(ComponentHandle)
1943
+ import * as z41 from "zod";
1944
+ var PluginDesignChangeResult = z41.object({
1945
+ affected: z41.array(ComponentHandle)
1626
1946
  });
1627
- var PluginDesignLockArgs = z35.object({
1628
- components: z35.array(ComponentHandle)
1947
+ var PluginDesignLockArgs = z41.object({
1948
+ components: z41.array(ComponentHandle)
1629
1949
  });
1630
1950
  var PluginDesignUnlockArgs = PluginDesignLockArgs;
1631
- var PluginDesignIsLockedArgs = z35.object({
1951
+ var PluginDesignIsLockedArgs = z41.object({
1632
1952
  component: ComponentHandle,
1633
- includeInherited: z35.boolean().optional()
1953
+ includeInherited: z41.boolean().optional()
1954
+ });
1955
+ var PluginDesignLockAreaArgs = z41.object({
1956
+ spaces: z41.array(ComponentHandle)
1957
+ });
1958
+ var PluginDesignUnlockAreaArgs = PluginDesignLockAreaArgs;
1959
+ var PluginDesignIsAreaLockedArgs = z41.object({
1960
+ space: ComponentHandle
1634
1961
  });
1635
1962
 
1636
1963
  // src/api/design/erase/index.ts
1637
- import * as z36 from "zod";
1638
- var EraseStrategy = z36.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
1964
+ import * as z42 from "zod";
1965
+ var EraseStrategy = z42.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
1639
1966
  var DEFAULT_ERASE_STRATEGIES = ["DirectDelete", "DirectUnion"];
1640
- var ErasableEdgeRef = z36.object({
1967
+ var ErasableEdgeRef = z42.object({
1641
1968
  /** Opaque bottom-graph edge id (engine form `"e-<n>"`). Do not mutate. Pass verbatim to {@linkcode PluginDesignEraseApi.edge}. */
1642
- id: z36.string().min(1),
1969
+ id: z42.string().min(1),
1643
1970
  /** What erasing this edge would do: `DirectDelete` drops a mass; `DirectUnion` merges two adjacent masses. */
1644
1971
  strategy: EraseStrategy,
1645
1972
  /** Bottom-graph edge weight: `1` = external boundary edge, `>=2` = internal edge shared between components. */
1646
- edgeWeight: z36.number(),
1647
- /** The components this edge is incident to — one for external (DirectDelete), two for internal (DirectUnion). */
1648
- components: z36.array(ComponentHandle),
1973
+ edgeWeight: z42.number(),
1974
+ /** 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). */
1975
+ components: z42.array(ComponentHandle),
1649
1976
  /** A representative point on the edge (its head endpoint). Diagnostic only. */
1650
1977
  snapPoint: Vec3Handle
1651
1978
  });
1652
- var PluginDesignListErasableEdgesArgs = z36.object({
1653
- components: z36.array(ComponentHandle).optional(),
1654
- strategies: z36.array(EraseStrategy).optional()
1979
+ var PluginDesignListErasableEdgesArgs = z42.object({
1980
+ components: z42.array(ComponentHandle).optional(),
1981
+ strategies: z42.array(EraseStrategy).optional()
1655
1982
  });
1656
- var PluginDesignEraseEdgeArgs = z36.object({
1983
+ var PluginDesignEraseEdgeArgs = z42.object({
1657
1984
  edge: ErasableEdgeRef
1658
1985
  });
1659
- var PluginDesignEraseEdgeResult = z36.object({ ok: z36.literal(true) });
1986
+ var PluginDesignEraseEdgeResult = z42.object({ ok: z42.literal(true) });
1660
1987
  var PluginDesignEraseApi = class {
1661
1988
  constructor() {
1662
1989
  }
1663
1990
  };
1664
1991
 
1665
1992
  // src/api/design/delete/index.ts
1666
- import * as z37 from "zod";
1667
- var PluginDesignDeleteEntitiesArgs = z37.object({
1668
- components: z37.array(ComponentHandle).min(1)
1993
+ import * as z43 from "zod";
1994
+ var PluginDesignDeleteEntitiesArgs = z43.object({
1995
+ components: z43.array(ComponentHandle).min(1)
1669
1996
  });
1670
1997
  var PluginDesignDeleteApi = class {
1671
1998
  constructor() {
@@ -1673,89 +2000,120 @@ var PluginDesignDeleteApi = class {
1673
2000
  };
1674
2001
 
1675
2002
  // src/api/design/shared.ts
1676
- import * as z38 from "zod";
1677
- var BooleanOutcome = z38.object({
1678
- created: z38.array(ComponentHandle),
1679
- deleted: z38.array(ComponentHandle)
2003
+ import * as z44 from "zod";
2004
+ var BooleanOutcome = z44.object({
2005
+ created: z44.array(ComponentHandle),
2006
+ deleted: z44.array(ComponentHandle)
1680
2007
  });
1681
- var OffsetSplitOutcome = z38.object({
1682
- createdIds: z38.array(ComponentHandle),
1683
- deletedIds: z38.array(ComponentHandle),
1684
- offsetValue: z38.number()
2008
+ var OffsetSplitOutcome = z44.object({
2009
+ createdIds: z44.array(ComponentHandle),
2010
+ deletedIds: z44.array(ComponentHandle),
2011
+ offsetValue: z44.number()
1685
2012
  });
1686
2013
 
1687
2014
  // src/api/design/boolean/index.ts
1688
- import * as z39 from "zod";
2015
+ import * as z45 from "zod";
1689
2016
  var PluginDesignBooleanApi = class {
1690
2017
  constructor() {
1691
2018
  }
1692
2019
  };
1693
- var BooleanOptions = z39.object({
2020
+ var BooleanOptions = z45.object({
1694
2021
  offset: Vec3Handle.optional()
1695
2022
  });
1696
- var PluginDesignBooleanUnionArgs = z39.object({
1697
- components: z39.array(ComponentHandle).min(2),
2023
+ var PluginDesignBooleanUnionArgs = z45.object({
2024
+ components: z45.array(ComponentHandle).min(2),
1698
2025
  options: BooleanOptions.optional()
1699
2026
  });
1700
- var PluginDesignBooleanSubtractArgs = z39.object({
2027
+ var PluginDesignBooleanSubtractArgs = z45.object({
1701
2028
  target: ComponentHandle,
1702
- tools: z39.array(ComponentHandle).min(1),
2029
+ tools: z45.array(ComponentHandle).min(1),
1703
2030
  options: BooleanOptions.optional()
1704
2031
  });
1705
- var PluginDesignBooleanIntersectArgs = z39.object({
1706
- components: z39.array(ComponentHandle).length(2),
2032
+ var PluginDesignBooleanIntersectArgs = z45.object({
2033
+ components: z45.array(ComponentHandle).length(2),
1707
2034
  options: BooleanOptions.optional()
1708
2035
  });
1709
2036
 
1710
2037
  // src/api/design/transform/index.ts
1711
- import * as z40 from "zod";
2038
+ import * as z46 from "zod";
1712
2039
  var PluginDesignTransformApi = class {
1713
2040
  constructor() {
1714
2041
  }
1715
2042
  };
1716
- var PluginDesignMoveArgs = z40.object({
1717
- components: z40.array(ComponentHandle).min(1),
2043
+ var PluginAlignEdge = z46.enum(["left", "right", "center", "top", "bottom", "middle"]);
2044
+ var PluginDesignMoveArgs = z46.object({
2045
+ components: z46.array(ComponentHandle).min(1),
1718
2046
  displacement: Vec3Handle,
1719
- is2D: z40.boolean().optional(),
1720
- trackParentChange: z40.boolean().optional()
2047
+ is2D: z46.boolean().optional(),
2048
+ trackParentChange: z46.boolean().optional()
1721
2049
  });
1722
- var PluginDesignRotateArgs = z40.object({
1723
- components: z40.array(ComponentHandle).min(1),
1724
- angleInDegrees: z40.number(),
2050
+ var PluginDesignRotateArgs = z46.object({
2051
+ components: z46.array(ComponentHandle).min(1),
2052
+ angleInDegrees: z46.number(),
1725
2053
  axis: Vec3Handle.optional(),
1726
- is2D: z40.boolean().optional()
2054
+ is2D: z46.boolean().optional()
2055
+ });
2056
+ var PluginDesignAlignArgs = z46.object({
2057
+ components: z46.array(ComponentHandle).min(1),
2058
+ edge: PluginAlignEdge,
2059
+ reference: ComponentHandle.optional()
1727
2060
  });
1728
2061
 
1729
2062
  // src/api/design/edit/index.ts
1730
- import * as z41 from "zod";
2063
+ import * as z47 from "zod";
1731
2064
  var PluginDesignEditApi = class {
1732
2065
  constructor() {
1733
2066
  }
1734
2067
  };
1735
- var PluginDesignOffsetSplitArgs = z41.object({
2068
+ var PluginDesignOffsetSplitArgs = z47.object({
1736
2069
  component: ComponentHandle,
1737
- offsetDistance: z41.number(),
2070
+ offsetDistance: z47.number(),
1738
2071
  profilePickPoint: Vec3Handle.optional()
1739
2072
  });
1740
2073
 
1741
2074
  // src/api/design/update/index.ts
1742
- import * as z42 from "zod";
1743
- var PluginSpacePropertyUpdates = z42.object({
1744
- room_type: z42.string().optional(),
2075
+ import * as z48 from "zod";
2076
+ var PluginSpacePropertyUpdates = z48.object({
2077
+ room_type: z48.string().optional(),
1745
2078
  massType: PluginMassType.optional(),
1746
2079
  spaceType: PluginSpaceType.optional(),
1747
2080
  areaClass: PluginAreaClass.optional(),
1748
2081
  departmentId: PluginDepartmentId.optional()
1749
2082
  });
1750
- var PluginSpaceGeometryUpdate = z42.object({
2083
+ var PluginSpaceGeometryUpdate = z48.object({
1751
2084
  profile: ProfileHandle,
1752
- extrudeHeight: z42.number()
2085
+ extrudeHeight: z48.number()
1753
2086
  });
1754
- var PluginUpdateSpaceItem = z42.object({
2087
+ var PluginUpdateSpaceItem = z48.object({
1755
2088
  space: ComponentHandle,
1756
2089
  properties: PluginSpacePropertyUpdates.optional(),
1757
2090
  geometry: PluginSpaceGeometryUpdate.optional()
1758
2091
  });
2092
+ var PluginDesignSetLabelArgs = z48.object({
2093
+ component: ComponentHandle,
2094
+ label: z48.string().trim().min(1)
2095
+ });
2096
+ var PluginStaircaseParamUpdates = z48.object({
2097
+ isStoreyHeightUnlocked: z48.boolean().optional(),
2098
+ isStaircaseHeightUnlocked: z48.boolean().optional(),
2099
+ storeyHeight: z48.number().optional(),
2100
+ staircaseHeight: z48.number().optional(),
2101
+ steps: z48.number().int().optional(),
2102
+ riser: z48.number().optional(),
2103
+ tread: z48.number().optional(),
2104
+ width: z48.number().optional(),
2105
+ depth: z48.number().optional(),
2106
+ wellSize: z48.number().optional(),
2107
+ flightStartDistAfterTurn: z48.number().optional(),
2108
+ landingWidth: z48.number().optional(),
2109
+ baseOffset: z48.number().optional()
2110
+ }).refine((p) => Object.keys(p).length > 0, {
2111
+ message: "PluginStaircaseParamUpdates requires at least one field to change"
2112
+ });
2113
+ var PluginDesignUpdateStaircaseArgs = z48.object({
2114
+ staircases: z48.array(ComponentHandle),
2115
+ params: PluginStaircaseParamUpdates
2116
+ });
1759
2117
  var PluginDesignUpdateApi = class {
1760
2118
  constructor() {
1761
2119
  }
@@ -1768,37 +2126,37 @@ var PluginDesignApi = class {
1768
2126
  };
1769
2127
 
1770
2128
  // src/api/entity/buildableEnvelope.ts
1771
- import * as z43 from "zod";
2129
+ import * as z49 from "zod";
1772
2130
  var PluginBuildableEnvelopeApi = class {
1773
2131
  constructor() {
1774
2132
  }
1775
2133
  };
1776
- var PluginBuildableEnvelopePolygonVertex = z43.union([
1777
- z43.object({ x: z43.number().finite(), z: z43.number().finite() }).strict(),
1778
- z43.tuple([z43.number().finite(), z43.number().finite()])
2134
+ var PluginBuildableEnvelopePolygonVertex = z49.union([
2135
+ z49.object({ x: z49.number().finite(), z: z49.number().finite() }).strict(),
2136
+ z49.tuple([z49.number().finite(), z49.number().finite()])
1779
2137
  ]);
1780
- var PluginBuildableEnvelopeVerticalCap = z43.discriminatedUnion("kind", [
1781
- z43.object({
1782
- kind: z43.literal("max_height"),
1783
- maxHeight: z43.number().finite().positive()
2138
+ var PluginBuildableEnvelopeVerticalCap = z49.discriminatedUnion("kind", [
2139
+ z49.object({
2140
+ kind: z49.literal("max_height"),
2141
+ maxHeight: z49.number().finite().positive()
1784
2142
  }).strict(),
1785
- z43.object({
1786
- kind: z43.literal("max_floors"),
1787
- maxFloors: z43.number().finite().int().positive()
2143
+ z49.object({
2144
+ kind: z49.literal("max_floors"),
2145
+ maxFloors: z49.number().finite().int().positive()
1788
2146
  }).strict()
1789
2147
  ]);
1790
- var PluginBuildableEnvelopeSetbackTier = z43.object({
1791
- aboveHeight: z43.number().finite().nonnegative(),
1792
- front: z43.number().finite().nonnegative(),
1793
- side: z43.number().finite().nonnegative(),
1794
- rear: z43.number().finite().nonnegative()
2148
+ var PluginBuildableEnvelopeSetbackTier = z49.object({
2149
+ aboveHeight: z49.number().finite().nonnegative(),
2150
+ front: z49.number().finite().nonnegative(),
2151
+ side: z49.number().finite().nonnegative(),
2152
+ rear: z49.number().finite().nonnegative()
1795
2153
  }).strict();
1796
2154
  function refineSetbackTiers(args, ctx) {
1797
2155
  const tiers = args.setbacks;
1798
2156
  if (tiers.length === 0) return;
1799
2157
  if (tiers[0].aboveHeight !== 0) {
1800
2158
  ctx.addIssue({
1801
- code: z43.ZodIssueCode.custom,
2159
+ code: z49.ZodIssueCode.custom,
1802
2160
  path: ["setbacks", 0, "aboveHeight"],
1803
2161
  message: "Ground tier required: setbacks[0].aboveHeight must be 0."
1804
2162
  });
@@ -1806,75 +2164,75 @@ function refineSetbackTiers(args, ctx) {
1806
2164
  for (let i = 1; i < tiers.length; i++) {
1807
2165
  if (!(tiers[i].aboveHeight > tiers[i - 1].aboveHeight)) {
1808
2166
  ctx.addIssue({
1809
- code: z43.ZodIssueCode.custom,
2167
+ code: z49.ZodIssueCode.custom,
1810
2168
  path: ["setbacks", i, "aboveHeight"],
1811
2169
  message: "Setback tiers must be ordered by strictly increasing aboveHeight."
1812
2170
  });
1813
2171
  }
1814
2172
  }
1815
2173
  }
1816
- var PluginBuildableEnvelopeCreateArgs = z43.object({
1817
- sitePolygon: z43.array(PluginBuildableEnvelopePolygonVertex).min(3),
1818
- lengthUnit: z43.union([z43.literal("ft"), z43.literal("m")]),
1819
- setbacks: z43.array(PluginBuildableEnvelopeSetbackTier).min(1),
2174
+ var PluginBuildableEnvelopeCreateArgs = z49.object({
2175
+ sitePolygon: z49.array(PluginBuildableEnvelopePolygonVertex).min(3),
2176
+ lengthUnit: z49.union([z49.literal("ft"), z49.literal("m")]),
2177
+ setbacks: z49.array(PluginBuildableEnvelopeSetbackTier).min(1),
1820
2178
  verticalCap: PluginBuildableEnvelopeVerticalCap,
1821
- floorToFloor: z43.number().finite().positive(),
1822
- farRatio: z43.number().finite().positive().optional(),
1823
- lotCoverageMaxPct: z43.number().finite().min(0).max(100).optional()
2179
+ floorToFloor: z49.number().finite().positive(),
2180
+ farRatio: z49.number().finite().positive().optional(),
2181
+ lotCoverageMaxPct: z49.number().finite().min(0).max(100).optional()
1824
2182
  }).strict().superRefine(refineSetbackTiers);
1825
- var PluginBuildableEnvelopeCreateResult = z43.object({
1826
- buildableEnvelopeId: z43.string().min(1)
2183
+ var PluginBuildableEnvelopeCreateResult = z49.object({
2184
+ buildableEnvelopeId: z49.string().min(1)
1827
2185
  }).strict();
1828
- var PluginBuildableEnvelopeUpdateArgs = z43.object({
1829
- buildableEnvelopeId: z43.string().min(1),
1830
- sitePolygon: z43.array(PluginBuildableEnvelopePolygonVertex).min(3),
1831
- lengthUnit: z43.union([z43.literal("ft"), z43.literal("m")]),
1832
- setbacks: z43.array(PluginBuildableEnvelopeSetbackTier).min(1),
2186
+ var PluginBuildableEnvelopeUpdateArgs = z49.object({
2187
+ buildableEnvelopeId: z49.string().min(1),
2188
+ sitePolygon: z49.array(PluginBuildableEnvelopePolygonVertex).min(3),
2189
+ lengthUnit: z49.union([z49.literal("ft"), z49.literal("m")]),
2190
+ setbacks: z49.array(PluginBuildableEnvelopeSetbackTier).min(1),
1833
2191
  verticalCap: PluginBuildableEnvelopeVerticalCap,
1834
- floorToFloor: z43.number().finite().positive(),
1835
- farRatio: z43.number().finite().positive().optional(),
1836
- lotCoverageMaxPct: z43.number().finite().min(0).max(100).optional()
2192
+ floorToFloor: z49.number().finite().positive(),
2193
+ farRatio: z49.number().finite().positive().optional(),
2194
+ lotCoverageMaxPct: z49.number().finite().min(0).max(100).optional()
1837
2195
  }).strict().superRefine(refineSetbackTiers);
1838
- var PluginBuildableEnvelopeUpdateResult = z43.object({
1839
- buildableEnvelopeId: z43.string().min(1)
2196
+ var PluginBuildableEnvelopeUpdateResult = z49.object({
2197
+ buildableEnvelopeId: z49.string().min(1)
1840
2198
  }).strict();
1841
2199
 
1842
2200
  // src/api/entity/referenceLine.ts
1843
- import * as z44 from "zod";
2201
+ import * as z50 from "zod";
1844
2202
  var PluginReferenceLineApi = class {
1845
2203
  constructor() {
1846
2204
  }
1847
2205
  };
1848
- var PluginReferenceLineCreateMultiArgs = z44.object({
2206
+ var PluginReferenceLineCreateMultiArgs = z50.object({
1849
2207
  profile: ProfileHandle
1850
2208
  });
1851
- var PluginReferenceLineCreateMultiResult = z44.object({
1852
- referenceLineIds: z44.array(z44.string())
2209
+ var PluginReferenceLineCreateMultiResult = z50.object({
2210
+ referenceLineIds: z50.array(z50.string())
1853
2211
  });
1854
- var PluginReferenceLineGetProperty = z44.enum([
2212
+ var PluginReferenceLineGetProperty = z50.enum([
1855
2213
  "curve"
1856
2214
  ]);
1857
- var PluginReferenceLineGetArgs = z44.object({
1858
- referenceLineId: z44.string(),
1859
- properties: z44.array(PluginReferenceLineGetProperty)
2215
+ var PluginReferenceLineGetArgs = z50.object({
2216
+ referenceLineId: z50.string(),
2217
+ properties: z50.array(PluginReferenceLineGetProperty)
1860
2218
  });
1861
- var PluginReferenceLineGetResult = z44.object({
2219
+ var PluginReferenceLineGetResult = z50.object({
1862
2220
  curve: CurveHandle
1863
2221
  }).partial();
1864
- var PluginReferenceLineGetAllResult = z44.object({
1865
- referenceLineIds: z44.array(z44.string())
2222
+ var PluginReferenceLineGetAllResult = z50.object({
2223
+ referenceLineIds: z50.array(z50.string())
1866
2224
  });
1867
- var PluginReferenceLineDeleteArgs = z44.object({
1868
- referenceLineId: z44.string()
2225
+ var PluginReferenceLineDeleteArgs = z50.object({
2226
+ referenceLineId: z50.string()
1869
2227
  });
1870
2228
 
1871
2229
  // src/api/entity/story.ts
1872
- import * as z45 from "zod";
2230
+ import * as z51 from "zod";
1873
2231
  var PluginStoryApi = class {
1874
2232
  constructor() {
1875
2233
  }
1876
2234
  };
1877
- var PluginStoryGetProperty = z45.enum([
2235
+ var PluginStoryGetProperty = z51.enum([
1878
2236
  "value",
1879
2237
  "id",
1880
2238
  "name",
@@ -1884,44 +2242,56 @@ var PluginStoryGetProperty = z45.enum([
1884
2242
  "spacesCount",
1885
2243
  "totalArea"
1886
2244
  ]);
1887
- var PluginStoryGetArgs = z45.object({
1888
- storyValue: z45.number().int(),
1889
- properties: z45.array(PluginStoryGetProperty)
1890
- });
1891
- var PluginStoryGetResult = z45.object({
1892
- value: z45.number(),
1893
- id: z45.string(),
1894
- name: z45.string(),
1895
- height: z45.number(),
1896
- base: z45.number(),
1897
- hidden: z45.boolean(),
1898
- spacesCount: z45.number(),
1899
- totalArea: z45.number()
2245
+ var PluginStoryGetArgs = z51.object({
2246
+ storyValue: z51.number().int(),
2247
+ properties: z51.array(PluginStoryGetProperty)
2248
+ });
2249
+ var PluginStoryGetResult = z51.object({
2250
+ value: z51.number(),
2251
+ id: z51.string(),
2252
+ name: z51.string(),
2253
+ height: z51.number(),
2254
+ base: z51.number(),
2255
+ hidden: z51.boolean(),
2256
+ spacesCount: z51.number(),
2257
+ totalArea: z51.number()
1900
2258
  }).partial();
1901
- var PluginStoryGetAllResult = z45.object({
1902
- stories: z45.array(
1903
- z45.object({
1904
- value: z45.number(),
1905
- id: z45.string(),
1906
- name: z45.string()
2259
+ var PluginStoryGetAllResult = z51.object({
2260
+ stories: z51.array(
2261
+ z51.object({
2262
+ value: z51.number(),
2263
+ id: z51.string(),
2264
+ name: z51.string()
1907
2265
  })
1908
2266
  )
1909
2267
  });
1910
- var PluginStoryCreateArgs = z45.object({
1911
- storyValue: z45.number().int(),
1912
- height: z45.number().optional()
2268
+ var PluginStoryCreateArgs = z51.object({
2269
+ storyValue: z51.number().int(),
2270
+ height: z51.number().optional()
2271
+ });
2272
+ var PluginStoryCreateResult = z51.object({
2273
+ storyId: z51.string(),
2274
+ storyValue: z51.number()
1913
2275
  });
1914
- var PluginStoryCreateResult = z45.object({
1915
- storyId: z45.string(),
1916
- storyValue: z45.number()
2276
+ var PluginStoryUpdateArgs = z51.object({
2277
+ storyValue: z51.number().int(),
2278
+ height: z51.number()
1917
2279
  });
1918
- var PluginStoryUpdateArgs = z45.object({
1919
- storyValue: z45.number().int(),
1920
- height: z45.number()
2280
+ var PluginStoryUpdateResult = z51.object({
2281
+ storyValue: z51.number(),
2282
+ height: z51.number()
1921
2283
  });
1922
- var PluginStoryUpdateResult = z45.object({
1923
- storyValue: z45.number(),
1924
- height: z45.number()
2284
+ var PluginStoryDuplicateArgs = z51.object({
2285
+ direction: z51.enum(["up", "down"]),
2286
+ components: z51.array(ComponentHandle).optional(),
2287
+ unique: z51.boolean().optional()
2288
+ });
2289
+ var PluginStoryDuplicateResult = z51.object({
2290
+ sourceStory: z51.number(),
2291
+ targetStories: z51.array(z51.number()),
2292
+ created: z51.array(ComponentHandle),
2293
+ createdStoryValues: z51.array(z51.number()),
2294
+ skipped: z51.number()
1925
2295
  });
1926
2296
 
1927
2297
  // src/api/entity/index.ts
@@ -1931,27 +2301,27 @@ var PluginEntityApi = class {
1931
2301
  };
1932
2302
 
1933
2303
  // src/api/program/departments.ts
1934
- import * as z47 from "zod";
2304
+ import * as z53 from "zod";
1935
2305
 
1936
2306
  // src/api/program/metrics.ts
1937
- import * as z46 from "zod";
2307
+ import * as z52 from "zod";
1938
2308
  var PluginProgramMetricsApi = class {
1939
2309
  constructor() {
1940
2310
  }
1941
2311
  };
1942
- var PluginAreaUnit = z46.enum(["ft2", "m2"]);
1943
- var PluginProgramDepartmentMetric = z46.object({
1944
- departmentId: z46.string(),
1945
- name: z46.string(),
1946
- targetArea: z46.number().nullable(),
1947
- allocatedArea: z46.number()
1948
- });
1949
- var PluginProgramMetricsSummary = z46.object({
2312
+ var PluginAreaUnit = z52.enum(["ft2", "m2"]);
2313
+ var PluginProgramDepartmentMetric = z52.object({
2314
+ departmentId: z52.string(),
2315
+ name: z52.string(),
2316
+ targetArea: z52.number().nullable(),
2317
+ allocatedArea: z52.number()
2318
+ });
2319
+ var PluginProgramMetricsSummary = z52.object({
1950
2320
  units: PluginAreaUnit,
1951
- totalTargetArea: z46.number(),
1952
- totalAllocatedArea: z46.number(),
1953
- unassignedArea: z46.number(),
1954
- departments: z46.array(PluginProgramDepartmentMetric)
2321
+ totalTargetArea: z52.number(),
2322
+ totalAllocatedArea: z52.number(),
2323
+ unassignedArea: z52.number(),
2324
+ departments: z52.array(PluginProgramDepartmentMetric)
1955
2325
  }).refine(
1956
2326
  (s) => {
1957
2327
  const summed = s.unassignedArea + s.departments.reduce((acc, d) => acc + d.allocatedArea, 0);
@@ -1968,18 +2338,18 @@ var PluginProgramDepartmentsApi = class {
1968
2338
  constructor() {
1969
2339
  }
1970
2340
  };
1971
- var PluginProgramDepartment = z47.object({
1972
- id: z47.string(),
1973
- name: z47.string(),
1974
- color: z47.string(),
1975
- targetArea: z47.number().nullable()
2341
+ var PluginProgramDepartment = z53.object({
2342
+ id: z53.string(),
2343
+ name: z53.string(),
2344
+ color: z53.string(),
2345
+ targetArea: z53.number().nullable()
1976
2346
  });
1977
- var PluginProgramDepartmentsListResult = z47.object({
2347
+ var PluginProgramDepartmentsListResult = z53.object({
1978
2348
  units: PluginAreaUnit,
1979
- departments: z47.array(PluginProgramDepartment)
2349
+ departments: z53.array(PluginProgramDepartment)
1980
2350
  });
1981
- var PluginProgramDepartmentsGetArgs = z47.object({
1982
- departmentId: z47.string()
2351
+ var PluginProgramDepartmentsGetArgs = z53.object({
2352
+ departmentId: z53.string()
1983
2353
  });
1984
2354
  var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
1985
2355
  {
@@ -1989,81 +2359,95 @@ var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
1989
2359
  var PluginProgramDepartmentRecord = PluginProgramDepartment.extend({
1990
2360
  units: PluginAreaUnit
1991
2361
  });
1992
- var PluginProgramDepartmentsCreateArgs = z47.object({
1993
- name: z47.string(),
1994
- color: z47.string()
2362
+ var PluginProgramDepartmentsCreateArgs = z53.object({
2363
+ name: z53.string(),
2364
+ color: z53.string()
1995
2365
  });
1996
- var PluginProgramDepartmentsCreateResult = z47.object({
1997
- departmentId: z47.string()
2366
+ var PluginProgramDepartmentsCreateResult = z53.object({
2367
+ departmentId: z53.string()
1998
2368
  });
1999
- var PluginProgramDepartmentsUpdateArgs = z47.object({
2000
- departmentId: z47.string(),
2001
- name: z47.string().optional(),
2002
- color: z47.string().optional()
2369
+ var PluginProgramDepartmentsUpdateArgs = z53.object({
2370
+ departmentId: z53.string(),
2371
+ name: z53.string().optional(),
2372
+ color: z53.string().optional()
2003
2373
  });
2004
2374
  var PluginProgramDepartmentsUpdateResult = PluginProgramDepartmentRecord;
2005
- var PluginProgramDepartmentsAssignArgs = z47.object({
2006
- departmentId: z47.string(),
2007
- spaceIds: z47.array(ComponentHandle).min(1)
2375
+ var PluginProgramDepartmentsAssignArgs = z53.object({
2376
+ departmentId: z53.string(),
2377
+ spaceIds: z53.array(ComponentHandle).min(1)
2008
2378
  });
2009
- var PluginProgramDepartmentsAssignResult = z47.object({
2010
- departmentId: z47.string(),
2011
- spaceIds: z47.array(ComponentHandle)
2379
+ var PluginProgramDepartmentsAssignResult = z53.object({
2380
+ departmentId: z53.string(),
2381
+ spaceIds: z53.array(ComponentHandle)
2012
2382
  });
2013
- var PluginProgramDepartmentsUnassignArgs = z47.object({
2014
- spaceIds: z47.array(ComponentHandle).min(1)
2383
+ var PluginProgramDepartmentsUnassignArgs = z53.object({
2384
+ spaceIds: z53.array(ComponentHandle).min(1)
2015
2385
  });
2016
- var PluginProgramDepartmentsUnassignResult = z47.object({
2017
- spaceIds: z47.array(ComponentHandle)
2386
+ var PluginProgramDepartmentsUnassignResult = z53.object({
2387
+ spaceIds: z53.array(ComponentHandle)
2018
2388
  });
2019
- var PluginProgramDepartmentsSetTargetAreaArgs = z47.object({
2020
- departmentId: z47.string(),
2021
- targetArea: z47.number(),
2389
+ var PluginProgramDepartmentsSetTargetAreaArgs = z53.object({
2390
+ departmentId: z53.string(),
2391
+ targetArea: z53.number(),
2022
2392
  units: PluginAreaUnit.optional()
2023
2393
  });
2024
2394
  var PluginProgramDepartmentsSetTargetAreaResult = PluginProgramDepartmentRecord;
2025
- var PluginProgramDepartmentsDeleteArgs = z47.object({
2026
- departmentId: z47.string()
2395
+ var PluginProgramDepartmentsDeleteArgs = z53.object({
2396
+ departmentId: z53.string()
2027
2397
  });
2028
- var PluginProgramDepartmentsDeleteResult = z47.object({
2029
- departmentId: z47.string(),
2030
- reassignedSpaceIds: z47.array(ComponentHandle)
2398
+ var PluginProgramDepartmentsDeleteResult = z53.object({
2399
+ departmentId: z53.string(),
2400
+ reassignedSpaceIds: z53.array(ComponentHandle)
2031
2401
  });
2032
2402
 
2033
2403
  // src/api/program/adjacency.ts
2034
- import * as z48 from "zod";
2404
+ import * as z54 from "zod";
2035
2405
  var PluginProgramAdjacencyApi = class {
2036
2406
  constructor() {
2037
2407
  }
2038
2408
  };
2039
- var PluginAdjacencyLevel = z48.enum(["department", "space"]);
2040
- var PluginProgramAdjacencyGetMatrixArgs = z48.object({
2409
+ var PluginAdjacencyLevel = z54.enum(["department", "space"]);
2410
+ var PluginProgramAdjacencyGetMatrixArgs = z54.object({
2041
2411
  level: PluginAdjacencyLevel,
2042
- ids: z48.array(z48.string()).optional()
2412
+ ids: z54.array(z54.string()).optional()
2043
2413
  });
2044
- var PluginProgramAdjacencyGetMatrixResult = z48.object({
2045
- ids: z48.array(z48.string()),
2046
- departmentIds: z48.array(z48.string().nullable()).optional(),
2047
- matrix: z48.array(z48.array(z48.number()))
2414
+ var PluginProgramAdjacencyGetMatrixResult = z54.object({
2415
+ ids: z54.array(z54.string()),
2416
+ departmentIds: z54.array(z54.string().nullable()).optional(),
2417
+ matrix: z54.array(z54.array(z54.number()))
2048
2418
  });
2049
- var PluginProgramAdjacencyComputeResult = z48.object({
2050
- success: z48.boolean(),
2051
- error: z48.string().optional()
2419
+ var PluginProgramAdjacencyComputeResult = z54.object({
2420
+ success: z54.boolean(),
2421
+ error: z54.string().optional()
2052
2422
  });
2053
2423
 
2054
2424
  // src/api/program/layout.ts
2055
- import * as z49 from "zod";
2425
+ import * as z55 from "zod";
2056
2426
  var PluginProgramLayoutApi = class {
2057
2427
  constructor() {
2058
2428
  }
2059
2429
  };
2060
- var PluginProgramLayoutRunResult = z49.object({
2061
- success: z49.boolean(),
2062
- error: z49.string().optional()
2430
+ var PluginProgramLayoutRunArgs = z55.object({
2431
+ spaceIds: z55.array(z55.string()).optional(),
2432
+ departmentIds: z55.array(z55.string()).optional(),
2433
+ envelopeId: z55.string().optional()
2434
+ });
2435
+ var PluginProgramLayoutRunResult = z55.object({
2436
+ success: z55.boolean(),
2437
+ error: z55.string().optional()
2438
+ });
2439
+ var PluginProgramLayoutJobStatus = z55.enum([
2440
+ "running",
2441
+ "active",
2442
+ "inactive"
2443
+ ]);
2444
+ var PluginProgramLayoutJobState = z55.object({
2445
+ status: PluginProgramLayoutJobStatus
2063
2446
  });
2447
+ var PluginProgramLayoutStateResult = PluginProgramLayoutJobState.nullable();
2064
2448
 
2065
2449
  // src/api/program/spreadsheet.ts
2066
- import * as z50 from "zod";
2450
+ import * as z56 from "zod";
2067
2451
  var PluginProgramSpreadsheetApi = class {
2068
2452
  constructor() {
2069
2453
  }
@@ -2076,84 +2460,84 @@ var PluginProgramSpreadsheetBindingsApi = class {
2076
2460
  constructor() {
2077
2461
  }
2078
2462
  };
2079
- var PluginSpreadsheetCell = z50.union([
2080
- z50.string(),
2081
- z50.number(),
2082
- z50.boolean(),
2083
- z50.null()
2463
+ var PluginSpreadsheetCell = z56.union([
2464
+ z56.string(),
2465
+ z56.number(),
2466
+ z56.boolean(),
2467
+ z56.null()
2084
2468
  ]);
2085
- var PluginSpreadsheetAlign = z50.enum(["left", "center", "right"]);
2086
- var PluginSpreadsheetColumn = z50.object({
2087
- key: z50.string(),
2088
- header: z50.string(),
2089
- width: z50.number().optional(),
2090
- format: z50.string().optional(),
2469
+ var PluginSpreadsheetAlign = z56.enum(["left", "center", "right"]);
2470
+ var PluginSpreadsheetColumn = z56.object({
2471
+ key: z56.string(),
2472
+ header: z56.string(),
2473
+ width: z56.number().optional(),
2474
+ format: z56.string().optional(),
2091
2475
  align: PluginSpreadsheetAlign.optional()
2092
2476
  });
2093
- var PluginSpreadsheetTotal = z50.object({
2094
- column: z50.string(),
2095
- fn: z50.enum(["sum", "avg", "count", "min", "max"]),
2096
- label: z50.string().optional()
2097
- });
2098
- var PluginProgramSpreadsheetRenderArgs = z50.object({
2099
- sheetName: z50.string(),
2100
- columns: z50.array(PluginSpreadsheetColumn),
2101
- rows: z50.array(z50.record(z50.string(), PluginSpreadsheetCell)),
2102
- title: z50.string().optional(),
2103
- startCell: z50.string().optional(),
2104
- whenExists: z50.enum(["replace", "error"]).optional(),
2105
- asTable: z50.boolean().optional(),
2106
- freezeHeader: z50.boolean().optional(),
2107
- totals: z50.array(PluginSpreadsheetTotal).optional()
2108
- });
2109
- var PluginProgramSpreadsheetRenderResult = z50.object({
2110
- sheetName: z50.string(),
2111
- range: z50.string(),
2112
- headerRange: z50.string(),
2113
- rowCount: z50.number(),
2114
- colCount: z50.number(),
2115
- tableName: z50.string().nullable(),
2116
- replaced: z50.boolean()
2117
- });
2118
- var PluginProgramSpreadsheetRenderDatasetArgs = z50.object({
2119
- sheetName: z50.string().optional(),
2120
- title: z50.string().optional(),
2121
- filter: z50.string().optional()
2122
- });
2123
- var PluginSpreadsheetExportFormat = z50.enum(["xlsx", "pdf", "csv"]);
2124
- var PluginProgramSpreadsheetExportArgs = z50.object({
2477
+ var PluginSpreadsheetTotal = z56.object({
2478
+ column: z56.string(),
2479
+ fn: z56.enum(["sum", "avg", "count", "min", "max"]),
2480
+ label: z56.string().optional()
2481
+ });
2482
+ var PluginProgramSpreadsheetRenderArgs = z56.object({
2483
+ sheetName: z56.string(),
2484
+ columns: z56.array(PluginSpreadsheetColumn),
2485
+ rows: z56.array(z56.record(z56.string(), PluginSpreadsheetCell)),
2486
+ title: z56.string().optional(),
2487
+ startCell: z56.string().optional(),
2488
+ whenExists: z56.enum(["replace", "error"]).optional(),
2489
+ asTable: z56.boolean().optional(),
2490
+ freezeHeader: z56.boolean().optional(),
2491
+ totals: z56.array(PluginSpreadsheetTotal).optional()
2492
+ });
2493
+ var PluginProgramSpreadsheetRenderResult = z56.object({
2494
+ sheetName: z56.string(),
2495
+ range: z56.string(),
2496
+ headerRange: z56.string(),
2497
+ rowCount: z56.number(),
2498
+ colCount: z56.number(),
2499
+ tableName: z56.string().nullable(),
2500
+ replaced: z56.boolean()
2501
+ });
2502
+ var PluginProgramSpreadsheetRenderDatasetArgs = z56.object({
2503
+ sheetName: z56.string().optional(),
2504
+ title: z56.string().optional(),
2505
+ filter: z56.string().optional()
2506
+ });
2507
+ var PluginSpreadsheetExportFormat = z56.enum(["xlsx", "pdf", "csv"]);
2508
+ var PluginProgramSpreadsheetExportArgs = z56.object({
2125
2509
  format: PluginSpreadsheetExportFormat,
2126
- fileName: z50.string().optional()
2510
+ fileName: z56.string().optional()
2127
2511
  });
2128
- var PluginProgramSpreadsheetExportResult = z50.object({
2512
+ var PluginProgramSpreadsheetExportResult = z56.object({
2129
2513
  format: PluginSpreadsheetExportFormat,
2130
- fileName: z50.string(),
2131
- mimeType: z50.string(),
2132
- dataBase64: z50.string()
2133
- });
2134
- var PluginSpreadsheetSheetInfo = z50.object({
2135
- name: z50.string(),
2136
- index: z50.number(),
2137
- visible: z50.boolean(),
2138
- rowCount: z50.number(),
2139
- colCount: z50.number()
2140
- });
2141
- var PluginProgramSpreadsheetListSheetsResult = z50.object({
2142
- sheets: z50.array(PluginSpreadsheetSheetInfo),
2143
- activeSheet: z50.string().nullable()
2144
- });
2145
- var PluginProgramSpreadsheetGetSheetDataArgs = z50.object({
2146
- sheetName: z50.string(),
2147
- range: z50.string().optional(),
2148
- header: z50.boolean().optional()
2149
- });
2150
- var PluginProgramSpreadsheetGetSheetDataResult = z50.object({
2151
- sheetName: z50.string(),
2152
- range: z50.string(),
2153
- values: z50.array(z50.array(PluginSpreadsheetCell)),
2154
- records: z50.array(z50.record(z50.string(), PluginSpreadsheetCell)).optional()
2155
- });
2156
- var PluginSpreadsheetChartType = z50.enum([
2514
+ fileName: z56.string(),
2515
+ mimeType: z56.string(),
2516
+ dataBase64: z56.string()
2517
+ });
2518
+ var PluginSpreadsheetSheetInfo = z56.object({
2519
+ name: z56.string(),
2520
+ index: z56.number(),
2521
+ visible: z56.boolean(),
2522
+ rowCount: z56.number(),
2523
+ colCount: z56.number()
2524
+ });
2525
+ var PluginProgramSpreadsheetListSheetsResult = z56.object({
2526
+ sheets: z56.array(PluginSpreadsheetSheetInfo),
2527
+ activeSheet: z56.string().nullable()
2528
+ });
2529
+ var PluginProgramSpreadsheetGetSheetDataArgs = z56.object({
2530
+ sheetName: z56.string(),
2531
+ range: z56.string().optional(),
2532
+ header: z56.boolean().optional()
2533
+ });
2534
+ var PluginProgramSpreadsheetGetSheetDataResult = z56.object({
2535
+ sheetName: z56.string(),
2536
+ range: z56.string(),
2537
+ values: z56.array(z56.array(PluginSpreadsheetCell)),
2538
+ records: z56.array(z56.record(z56.string(), PluginSpreadsheetCell)).optional()
2539
+ });
2540
+ var PluginSpreadsheetChartType = z56.enum([
2157
2541
  "column",
2158
2542
  "bar",
2159
2543
  "line",
@@ -2161,249 +2545,249 @@ var PluginSpreadsheetChartType = z50.enum([
2161
2545
  "area",
2162
2546
  "scatter"
2163
2547
  ]);
2164
- var PluginProgramSpreadsheetAddChartArgs = z50.object({
2165
- sheetName: z50.string(),
2548
+ var PluginProgramSpreadsheetAddChartArgs = z56.object({
2549
+ sheetName: z56.string(),
2166
2550
  chartType: PluginSpreadsheetChartType,
2167
- dataRange: z50.string(),
2168
- title: z50.string().optional(),
2169
- position: z50.object({ x: z50.number(), y: z50.number() }).optional(),
2170
- size: z50.object({ width: z50.number(), height: z50.number() }).optional()
2171
- });
2172
- var PluginProgramSpreadsheetAddChartResult = z50.object({
2173
- chartId: z50.string()
2174
- });
2175
- var PluginProgramSpreadsheetHighlightCellsArgs = z50.object({
2176
- sheetName: z50.string(),
2177
- range: z50.string(),
2178
- color: z50.string().optional(),
2179
- bold: z50.boolean().optional()
2180
- });
2181
- var PluginProgramSpreadsheetHighlightCellsResult = z50.object({
2182
- sheetName: z50.string(),
2183
- range: z50.string()
2184
- });
2185
- var PluginSpreadsheetProgramRow = z50.object({
2186
- departmentId: z50.string(),
2187
- name: z50.string(),
2188
- targetArea: z50.number().nullable(),
2189
- allocatedArea: z50.number(),
2190
- variance: z50.number().nullable()
2191
- });
2192
- var PluginProgramSpreadsheetGetProgramResult = z50.object({
2551
+ dataRange: z56.string(),
2552
+ title: z56.string().optional(),
2553
+ position: z56.object({ x: z56.number(), y: z56.number() }).optional(),
2554
+ size: z56.object({ width: z56.number(), height: z56.number() }).optional()
2555
+ });
2556
+ var PluginProgramSpreadsheetAddChartResult = z56.object({
2557
+ chartId: z56.string()
2558
+ });
2559
+ var PluginProgramSpreadsheetHighlightCellsArgs = z56.object({
2560
+ sheetName: z56.string(),
2561
+ range: z56.string(),
2562
+ color: z56.string().optional(),
2563
+ bold: z56.boolean().optional()
2564
+ });
2565
+ var PluginProgramSpreadsheetHighlightCellsResult = z56.object({
2566
+ sheetName: z56.string(),
2567
+ range: z56.string()
2568
+ });
2569
+ var PluginSpreadsheetProgramRow = z56.object({
2570
+ departmentId: z56.string(),
2571
+ name: z56.string(),
2572
+ targetArea: z56.number().nullable(),
2573
+ allocatedArea: z56.number(),
2574
+ variance: z56.number().nullable()
2575
+ });
2576
+ var PluginProgramSpreadsheetGetProgramResult = z56.object({
2193
2577
  units: PluginAreaUnit,
2194
- rows: z50.array(PluginSpreadsheetProgramRow),
2195
- totalTargetArea: z50.number(),
2196
- totalAllocatedArea: z50.number(),
2197
- generatedAt: z50.string()
2198
- });
2199
- var PluginSpreadsheetTakeoffRow = z50.object({
2200
- objectType: z50.string(),
2201
- category: z50.string(),
2202
- family: z50.string(),
2203
- quantity: z50.number(),
2204
- unit: z50.string()
2205
- });
2206
- var PluginProgramSpreadsheetGetTakeoffResult = z50.object({
2207
- rows: z50.array(PluginSpreadsheetTakeoffRow),
2208
- rowCount: z50.number(),
2209
- generatedAt: z50.string()
2210
- });
2211
- var PluginSpreadsheetWhenExists = z50.enum(["reuse", "replace", "error"]);
2212
- var PluginProgramSpreadsheetCreateSheetArgs = z50.object({
2213
- name: z50.string(),
2578
+ rows: z56.array(PluginSpreadsheetProgramRow),
2579
+ totalTargetArea: z56.number(),
2580
+ totalAllocatedArea: z56.number(),
2581
+ generatedAt: z56.string()
2582
+ });
2583
+ var PluginSpreadsheetTakeoffRow = z56.object({
2584
+ objectType: z56.string(),
2585
+ category: z56.string(),
2586
+ family: z56.string(),
2587
+ quantity: z56.number(),
2588
+ unit: z56.string()
2589
+ });
2590
+ var PluginProgramSpreadsheetGetTakeoffResult = z56.object({
2591
+ rows: z56.array(PluginSpreadsheetTakeoffRow),
2592
+ rowCount: z56.number(),
2593
+ generatedAt: z56.string()
2594
+ });
2595
+ var PluginSpreadsheetWhenExists = z56.enum(["reuse", "replace", "error"]);
2596
+ var PluginProgramSpreadsheetCreateSheetArgs = z56.object({
2597
+ name: z56.string(),
2214
2598
  whenExists: PluginSpreadsheetWhenExists.optional()
2215
2599
  });
2216
- var PluginProgramSpreadsheetCreateSheetResult = z50.object({
2217
- sheetName: z50.string(),
2218
- replaced: z50.boolean(),
2219
- sheetIndex: z50.number().nullable()
2220
- });
2221
- var PluginProgramSpreadsheetSetValuesArgs = z50.object({
2222
- sheetName: z50.string(),
2223
- values: z50.array(z50.array(PluginSpreadsheetCell)),
2224
- startCell: z50.string().optional()
2225
- });
2226
- var PluginProgramSpreadsheetSetValuesResult = z50.object({
2227
- sheetName: z50.string(),
2228
- startCell: z50.string(),
2229
- rowCount: z50.number(),
2230
- colCount: z50.number()
2231
- });
2232
- var PluginSpreadsheetFormula = z50.object({
2233
- cell: z50.string(),
2234
- formula: z50.string()
2235
- });
2236
- var PluginProgramSpreadsheetSetFormulasArgs = z50.object({
2237
- sheetName: z50.string(),
2238
- formulas: z50.array(PluginSpreadsheetFormula)
2239
- });
2240
- var PluginProgramSpreadsheetSetFormulasResult = z50.object({
2241
- sheetName: z50.string(),
2242
- count: z50.number()
2243
- });
2244
- var PluginSpreadsheetFontWeight = z50.enum(["normal", "bold"]);
2245
- var PluginSpreadsheetFontStyle = z50.enum(["normal", "italic"]);
2246
- var PluginSpreadsheetHorizontalAlign = z50.enum([
2600
+ var PluginProgramSpreadsheetCreateSheetResult = z56.object({
2601
+ sheetName: z56.string(),
2602
+ replaced: z56.boolean(),
2603
+ sheetIndex: z56.number().nullable()
2604
+ });
2605
+ var PluginProgramSpreadsheetSetValuesArgs = z56.object({
2606
+ sheetName: z56.string(),
2607
+ values: z56.array(z56.array(PluginSpreadsheetCell)),
2608
+ startCell: z56.string().optional()
2609
+ });
2610
+ var PluginProgramSpreadsheetSetValuesResult = z56.object({
2611
+ sheetName: z56.string(),
2612
+ startCell: z56.string(),
2613
+ rowCount: z56.number(),
2614
+ colCount: z56.number()
2615
+ });
2616
+ var PluginSpreadsheetFormula = z56.object({
2617
+ cell: z56.string(),
2618
+ formula: z56.string()
2619
+ });
2620
+ var PluginProgramSpreadsheetSetFormulasArgs = z56.object({
2621
+ sheetName: z56.string(),
2622
+ formulas: z56.array(PluginSpreadsheetFormula)
2623
+ });
2624
+ var PluginProgramSpreadsheetSetFormulasResult = z56.object({
2625
+ sheetName: z56.string(),
2626
+ count: z56.number()
2627
+ });
2628
+ var PluginSpreadsheetFontWeight = z56.enum(["normal", "bold"]);
2629
+ var PluginSpreadsheetFontStyle = z56.enum(["normal", "italic"]);
2630
+ var PluginSpreadsheetHorizontalAlign = z56.enum([
2247
2631
  "left",
2248
2632
  "center",
2249
2633
  "right",
2250
2634
  "general"
2251
2635
  ]);
2252
- var PluginSpreadsheetVerticalAlign = z50.enum([
2636
+ var PluginSpreadsheetVerticalAlign = z56.enum([
2253
2637
  "top",
2254
2638
  "center",
2255
2639
  "bottom"
2256
2640
  ]);
2257
- var PluginSpreadsheetCellStyle = z50.object({
2258
- backColor: z50.string().optional(),
2259
- foreColor: z50.string().optional(),
2260
- font: z50.string().optional(),
2261
- fontFamily: z50.string().optional(),
2262
- fontSize: z50.number().optional(),
2641
+ var PluginSpreadsheetCellStyle = z56.object({
2642
+ backColor: z56.string().optional(),
2643
+ foreColor: z56.string().optional(),
2644
+ font: z56.string().optional(),
2645
+ fontFamily: z56.string().optional(),
2646
+ fontSize: z56.number().optional(),
2263
2647
  fontWeight: PluginSpreadsheetFontWeight.optional(),
2264
2648
  fontStyle: PluginSpreadsheetFontStyle.optional(),
2265
- formatter: z50.string().optional(),
2649
+ formatter: z56.string().optional(),
2266
2650
  horizontalAlign: PluginSpreadsheetHorizontalAlign.optional(),
2267
2651
  verticalAlign: PluginSpreadsheetVerticalAlign.optional()
2268
2652
  });
2269
- var PluginSpreadsheetRangeStyle = z50.object({
2270
- range: z50.string(),
2653
+ var PluginSpreadsheetRangeStyle = z56.object({
2654
+ range: z56.string(),
2271
2655
  style: PluginSpreadsheetCellStyle
2272
2656
  });
2273
- var PluginProgramSpreadsheetSetStylesArgs = z50.object({
2274
- sheetName: z50.string(),
2275
- ranges: z50.array(PluginSpreadsheetRangeStyle)
2657
+ var PluginProgramSpreadsheetSetStylesArgs = z56.object({
2658
+ sheetName: z56.string(),
2659
+ ranges: z56.array(PluginSpreadsheetRangeStyle)
2276
2660
  });
2277
- var PluginProgramSpreadsheetSetStylesResult = z50.object({
2278
- sheetName: z50.string(),
2279
- count: z50.number()
2661
+ var PluginProgramSpreadsheetSetStylesResult = z56.object({
2662
+ sheetName: z56.string(),
2663
+ count: z56.number()
2280
2664
  });
2281
- var PluginProgramSpreadsheetMergeCellsArgs = z50.object({
2282
- sheetName: z50.string(),
2283
- range: z50.string(),
2665
+ var PluginProgramSpreadsheetMergeCellsArgs = z56.object({
2666
+ sheetName: z56.string(),
2667
+ range: z56.string(),
2284
2668
  value: PluginSpreadsheetCell.optional()
2285
2669
  });
2286
- var PluginProgramSpreadsheetMergeCellsResult = z50.object({
2287
- sheetName: z50.string(),
2288
- range: z50.string()
2670
+ var PluginProgramSpreadsheetMergeCellsResult = z56.object({
2671
+ sheetName: z56.string(),
2672
+ range: z56.string()
2289
2673
  });
2290
- var PluginSpreadsheetConditionalRuleType = z50.enum(["dataBar"]);
2291
- var PluginSpreadsheetConditionalRule = z50.object({
2674
+ var PluginSpreadsheetConditionalRuleType = z56.enum(["dataBar"]);
2675
+ var PluginSpreadsheetConditionalRule = z56.object({
2292
2676
  type: PluginSpreadsheetConditionalRuleType,
2293
- color: z50.string().optional()
2677
+ color: z56.string().optional()
2294
2678
  });
2295
- var PluginProgramSpreadsheetAddConditionalFormattingArgs = z50.object({
2296
- sheetName: z50.string(),
2297
- range: z50.string(),
2679
+ var PluginProgramSpreadsheetAddConditionalFormattingArgs = z56.object({
2680
+ sheetName: z56.string(),
2681
+ range: z56.string(),
2298
2682
  rule: PluginSpreadsheetConditionalRule
2299
2683
  });
2300
- var PluginProgramSpreadsheetAddConditionalFormattingResult = z50.object({
2301
- sheetName: z50.string(),
2302
- range: z50.string(),
2303
- created: z50.boolean()
2684
+ var PluginProgramSpreadsheetAddConditionalFormattingResult = z56.object({
2685
+ sheetName: z56.string(),
2686
+ range: z56.string(),
2687
+ created: z56.boolean()
2304
2688
  });
2305
- var PluginProgramSpreadsheetRecalculateArgs = z50.object({
2306
- sheetName: z50.string().optional()
2689
+ var PluginProgramSpreadsheetRecalculateArgs = z56.object({
2690
+ sheetName: z56.string().optional()
2307
2691
  });
2308
- var PluginProgramSpreadsheetRecalculateResult = z50.object({
2309
- scope: z50.enum(["sheet", "workbook"]),
2310
- sheetName: z50.string().nullable()
2692
+ var PluginProgramSpreadsheetRecalculateResult = z56.object({
2693
+ scope: z56.enum(["sheet", "workbook"]),
2694
+ sheetName: z56.string().nullable()
2311
2695
  });
2312
- var PluginSpreadsheetTransactionMethod = z50.enum([
2696
+ var PluginSpreadsheetTransactionMethod = z56.enum([
2313
2697
  "createSheet",
2314
2698
  "setValues",
2315
2699
  "setFormulas",
2316
2700
  "setStyles",
2317
2701
  "mergeCells"
2318
2702
  ]);
2319
- var PluginSpreadsheetTransactionOp = z50.object({
2703
+ var PluginSpreadsheetTransactionOp = z56.object({
2320
2704
  method: PluginSpreadsheetTransactionMethod,
2321
- args: z50.unknown()
2322
- });
2323
- var PluginProgramSpreadsheetTransactionArgs = z50.object({
2324
- operations: z50.array(PluginSpreadsheetTransactionOp),
2325
- label: z50.string().optional()
2326
- });
2327
- var PluginProgramSpreadsheetTransactionResult = z50.object({
2328
- label: z50.string(),
2329
- operationCount: z50.number(),
2330
- results: z50.array(z50.unknown())
2331
- });
2332
- var PluginProgramSpreadsheetRunScriptArgs = z50.object({
2333
- script: z50.string()
2334
- });
2335
- var PluginProgramSpreadsheetRunScriptResult = z50.object({
2336
- result: z50.unknown()
2337
- });
2338
- var PluginSpreadsheetAuditStatus = z50.enum(["success", "error"]);
2339
- var PluginSpreadsheetAuditEntry = z50.object({
2340
- id: z50.string(),
2341
- pluginId: z50.string(),
2342
- method: z50.string(),
2343
- label: z50.string().optional(),
2344
- sheetName: z50.string().optional(),
2345
- timestamp: z50.string(),
2705
+ args: z56.unknown()
2706
+ });
2707
+ var PluginProgramSpreadsheetTransactionArgs = z56.object({
2708
+ operations: z56.array(PluginSpreadsheetTransactionOp),
2709
+ label: z56.string().optional()
2710
+ });
2711
+ var PluginProgramSpreadsheetTransactionResult = z56.object({
2712
+ label: z56.string(),
2713
+ operationCount: z56.number(),
2714
+ results: z56.array(z56.unknown())
2715
+ });
2716
+ var PluginProgramSpreadsheetRunScriptArgs = z56.object({
2717
+ script: z56.string()
2718
+ });
2719
+ var PluginProgramSpreadsheetRunScriptResult = z56.object({
2720
+ result: z56.unknown()
2721
+ });
2722
+ var PluginSpreadsheetAuditStatus = z56.enum(["success", "error"]);
2723
+ var PluginSpreadsheetAuditEntry = z56.object({
2724
+ id: z56.string(),
2725
+ pluginId: z56.string(),
2726
+ method: z56.string(),
2727
+ label: z56.string().optional(),
2728
+ sheetName: z56.string().optional(),
2729
+ timestamp: z56.string(),
2346
2730
  status: PluginSpreadsheetAuditStatus,
2347
- summary: z50.string().optional()
2731
+ summary: z56.string().optional()
2348
2732
  });
2349
- var PluginProgramSpreadsheetGetAuditLogArgs = z50.object({
2350
- limit: z50.number().optional()
2733
+ var PluginProgramSpreadsheetGetAuditLogArgs = z56.object({
2734
+ limit: z56.number().optional()
2351
2735
  });
2352
- var PluginProgramSpreadsheetGetAuditLogResult = z50.object({
2353
- entries: z50.array(PluginSpreadsheetAuditEntry)
2736
+ var PluginProgramSpreadsheetGetAuditLogResult = z56.object({
2737
+ entries: z56.array(PluginSpreadsheetAuditEntry)
2354
2738
  });
2355
- var PluginProgramSpreadsheetPingResult = z50.object({
2356
- pong: z50.boolean()
2739
+ var PluginProgramSpreadsheetPingResult = z56.object({
2740
+ pong: z56.boolean()
2357
2741
  });
2358
- var PluginSpreadsheetTemplateScope = z50.enum(["project", "global"]);
2359
- var PluginProgramSpreadsheetTemplatesCreateArgs = z50.object({
2360
- name: z50.string(),
2361
- sheetName: z50.string(),
2742
+ var PluginSpreadsheetTemplateScope = z56.enum(["project", "global"]);
2743
+ var PluginProgramSpreadsheetTemplatesCreateArgs = z56.object({
2744
+ name: z56.string(),
2745
+ sheetName: z56.string(),
2362
2746
  scope: PluginSpreadsheetTemplateScope.optional()
2363
2747
  });
2364
- var PluginProgramSpreadsheetTemplatesCreateResult = z50.object({
2365
- id: z50.string(),
2366
- name: z50.string(),
2748
+ var PluginProgramSpreadsheetTemplatesCreateResult = z56.object({
2749
+ id: z56.string(),
2750
+ name: z56.string(),
2367
2751
  scope: PluginSpreadsheetTemplateScope,
2368
- sheetName: z50.string()
2752
+ sheetName: z56.string()
2369
2753
  });
2370
- var PluginProgramSpreadsheetTemplatesApplyArgs = z50.object({
2371
- name: z50.string(),
2372
- targetSheetName: z50.string()
2754
+ var PluginProgramSpreadsheetTemplatesApplyArgs = z56.object({
2755
+ name: z56.string(),
2756
+ targetSheetName: z56.string()
2373
2757
  });
2374
- var PluginProgramSpreadsheetTemplatesApplyResult = z50.object({
2375
- name: z50.string(),
2376
- targetSheetName: z50.string()
2758
+ var PluginProgramSpreadsheetTemplatesApplyResult = z56.object({
2759
+ name: z56.string(),
2760
+ targetSheetName: z56.string()
2377
2761
  });
2378
- var PluginSpreadsheetBindingSource = z50.object({
2379
- dataset: z50.enum(["takeoff"])
2762
+ var PluginSpreadsheetBindingSource = z56.object({
2763
+ dataset: z56.enum(["takeoff"])
2380
2764
  });
2381
- var PluginSpreadsheetBindingMode = z50.enum(["replaceRange"]);
2382
- var PluginSpreadsheetBindingTarget = z50.object({
2383
- sheetName: z50.string(),
2384
- startCell: z50.string().optional()
2765
+ var PluginSpreadsheetBindingMode = z56.enum(["replaceRange"]);
2766
+ var PluginSpreadsheetBindingTarget = z56.object({
2767
+ sheetName: z56.string(),
2768
+ startCell: z56.string().optional()
2385
2769
  });
2386
- var PluginSpreadsheetBinding = z50.object({
2387
- id: z50.string(),
2388
- name: z50.string(),
2389
- pluginId: z50.string(),
2770
+ var PluginSpreadsheetBinding = z56.object({
2771
+ id: z56.string(),
2772
+ name: z56.string(),
2773
+ pluginId: z56.string(),
2390
2774
  source: PluginSpreadsheetBindingSource,
2391
- target: z50.object({
2392
- sheetName: z50.string(),
2393
- startCell: z50.string()
2775
+ target: z56.object({
2776
+ sheetName: z56.string(),
2777
+ startCell: z56.string()
2394
2778
  }),
2395
2779
  mode: PluginSpreadsheetBindingMode,
2396
- createdAt: z50.string(),
2397
- updatedAt: z50.string()
2780
+ createdAt: z56.string(),
2781
+ updatedAt: z56.string()
2398
2782
  });
2399
- var PluginSpreadsheetBindingRefresh = z50.object({
2400
- id: z50.string(),
2401
- name: z50.string(),
2402
- sheetName: z50.string(),
2403
- rowCount: z50.number()
2783
+ var PluginSpreadsheetBindingRefresh = z56.object({
2784
+ id: z56.string(),
2785
+ name: z56.string(),
2786
+ sheetName: z56.string(),
2787
+ rowCount: z56.number()
2404
2788
  });
2405
- var PluginProgramSpreadsheetBindingsCreateArgs = z50.object({
2406
- name: z50.string(),
2789
+ var PluginProgramSpreadsheetBindingsCreateArgs = z56.object({
2790
+ name: z56.string(),
2407
2791
  source: PluginSpreadsheetBindingSource,
2408
2792
  target: PluginSpreadsheetBindingTarget,
2409
2793
  mode: PluginSpreadsheetBindingMode.optional()
@@ -2411,179 +2795,186 @@ var PluginProgramSpreadsheetBindingsCreateArgs = z50.object({
2411
2795
  var PluginProgramSpreadsheetBindingsCreateResult = PluginSpreadsheetBinding.extend({
2412
2796
  refresh: PluginSpreadsheetBindingRefresh
2413
2797
  });
2414
- var PluginProgramSpreadsheetBindingsRefreshArgs = z50.object({
2415
- name: z50.string().optional()
2798
+ var PluginProgramSpreadsheetBindingsRefreshArgs = z56.object({
2799
+ name: z56.string().optional()
2416
2800
  });
2417
- var PluginProgramSpreadsheetBindingsRefreshResult = z50.object({
2418
- refreshed: z50.array(PluginSpreadsheetBindingRefresh)
2801
+ var PluginProgramSpreadsheetBindingsRefreshResult = z56.object({
2802
+ refreshed: z56.array(PluginSpreadsheetBindingRefresh)
2419
2803
  });
2420
- var PluginProgramSpreadsheetBindingsListResult = z50.object({
2421
- bindings: z50.array(PluginSpreadsheetBinding)
2804
+ var PluginProgramSpreadsheetBindingsListResult = z56.object({
2805
+ bindings: z56.array(PluginSpreadsheetBinding)
2422
2806
  });
2423
2807
 
2424
2808
  // src/api/program/site.ts
2425
- import * as z51 from "zod";
2809
+ import * as z57 from "zod";
2426
2810
  var PluginProgramSiteApi = class {
2427
2811
  constructor() {
2428
2812
  }
2429
2813
  };
2430
- var PluginSiteFootprintPoint = z51.object({
2431
- x: z51.number(),
2432
- z: z51.number()
2433
- });
2434
- var PluginSiteGeoPoint = z51.object({
2435
- lat: z51.number(),
2436
- lng: z51.number(),
2437
- alt: z51.number()
2438
- });
2439
- var PluginSitePolygon = z51.object({
2440
- id: z51.string(),
2441
- area: z51.number(),
2442
- label: z51.string(),
2443
- footprint: z51.array(PluginSiteFootprintPoint)
2444
- });
2445
- var PluginProgramSiteSnapshot = z51.object({
2814
+ var PluginSiteFootprintPoint = z57.object({
2815
+ x: z57.number(),
2816
+ z: z57.number()
2817
+ });
2818
+ var PluginSiteGeoPoint = z57.object({
2819
+ lat: z57.number(),
2820
+ lng: z57.number(),
2821
+ alt: z57.number()
2822
+ });
2823
+ var PluginSitePolygon = z57.object({
2824
+ id: z57.string(),
2825
+ area: z57.number(),
2826
+ label: z57.string(),
2827
+ footprint: z57.array(PluginSiteFootprintPoint)
2828
+ });
2829
+ var PluginProgramSiteSnapshot = z57.object({
2446
2830
  units: PluginAreaUnit,
2447
- totalArea: z51.number(),
2448
- polygonCount: z51.number(),
2449
- polygons: z51.array(PluginSitePolygon)
2831
+ totalArea: z57.number(),
2832
+ polygonCount: z57.number(),
2833
+ polygons: z57.array(PluginSitePolygon)
2450
2834
  });
2451
- var PluginProgramSiteAreaResult = z51.object({
2835
+ var PluginProgramSiteAreaResult = z57.object({
2452
2836
  units: PluginAreaUnit,
2453
- area: z51.number()
2837
+ area: z57.number()
2454
2838
  });
2455
- var PluginProgramSiteListPolygonsResult = z51.object({
2839
+ var PluginProgramSiteListPolygonsResult = z57.object({
2456
2840
  units: PluginAreaUnit,
2457
- polygons: z51.array(PluginSitePolygon)
2841
+ polygons: z57.array(PluginSitePolygon)
2458
2842
  });
2459
- var PluginProgramSiteListGeoPolygonsResult = z51.object({
2460
- polygons: z51.array(z51.array(PluginSiteGeoPoint))
2843
+ var PluginProgramSiteListGeoPolygonsResult = z57.object({
2844
+ polygons: z57.array(z57.array(PluginSiteGeoPoint))
2461
2845
  });
2462
- var PluginSiteLatLng = z51.object({
2463
- lat: z51.number(),
2464
- lng: z51.number()
2846
+ var PluginSiteLatLng = z57.object({
2847
+ lat: z57.number(),
2848
+ lng: z57.number()
2465
2849
  });
2466
- var PluginSiteBounds = z51.object({
2467
- north: z51.number(),
2468
- south: z51.number(),
2469
- east: z51.number(),
2470
- west: z51.number()
2850
+ var PluginSiteBounds = z57.object({
2851
+ north: z57.number(),
2852
+ south: z57.number(),
2853
+ east: z57.number(),
2854
+ west: z57.number()
2471
2855
  });
2472
- var PluginSiteContextParcel = z51.object({
2473
- footprint: z51.array(PluginSiteLatLng),
2474
- area: z51.number()
2856
+ var PluginSiteContextParcel = z57.object({
2857
+ footprint: z57.array(PluginSiteLatLng),
2858
+ area: z57.number()
2475
2859
  });
2476
- var PluginProgramSiteContext = z51.object({
2860
+ var PluginProgramSiteContext = z57.object({
2477
2861
  center: PluginSiteLatLng,
2478
2862
  bounds: PluginSiteBounds,
2479
- widthInM: z51.number(),
2480
- heightInM: z51.number(),
2481
- zoom: z51.number(),
2482
- parcels: z51.array(PluginSiteContextParcel)
2863
+ widthInM: z57.number(),
2864
+ heightInM: z57.number(),
2865
+ zoom: z57.number(),
2866
+ parcels: z57.array(PluginSiteContextParcel)
2483
2867
  });
2484
2868
  var PluginProgramSiteContextResult = PluginProgramSiteContext.nullable();
2869
+ var PluginProgramSiteLocation = z57.object({
2870
+ latitude: z57.number(),
2871
+ longitude: z57.number()
2872
+ });
2873
+ var PluginProgramSiteLocationResult = PluginProgramSiteLocation.nullable();
2874
+ var PluginProgramSiteNorthAngleResult = z57.number().nullable();
2485
2875
 
2486
2876
  // src/api/program/cores.ts
2487
- import * as z52 from "zod";
2877
+ import * as z58 from "zod";
2488
2878
  var PluginProgramCoresApi = class {
2489
2879
  constructor() {
2490
2880
  }
2491
2881
  };
2492
- var PluginProgramCore = z52.object({
2493
- id: z52.string(),
2494
- groupId: z52.string(),
2495
- storey: z52.number()
2882
+ var PluginProgramCore = z58.object({
2883
+ id: z58.string(),
2884
+ groupId: z58.string(),
2885
+ storey: z58.number()
2496
2886
  });
2497
- var PluginProgramCoresListResult = z52.object({
2498
- cores: z52.array(PluginProgramCore)
2887
+ var PluginProgramCoresListResult = z58.object({
2888
+ cores: z58.array(PluginProgramCore)
2499
2889
  });
2500
- var PluginProgramCoresIsCoreArgs = z52.object({
2501
- id: z52.string()
2890
+ var PluginProgramCoresIsCoreArgs = z58.object({
2891
+ id: z58.string()
2502
2892
  });
2503
- var PluginProgramCoreSpec = z52.object({
2504
- type: z52.string().optional(),
2505
- position: z52.object({ x: z52.number(), y: z52.number(), z: z52.number() }),
2506
- width: z52.number(),
2507
- depth: z52.number(),
2508
- fromStorey: z52.number().optional(),
2509
- toStorey: z52.number().optional()
2893
+ var PluginProgramCoreSpec = z58.object({
2894
+ type: z58.string().optional(),
2895
+ position: z58.object({ x: z58.number(), y: z58.number(), z: z58.number() }),
2896
+ width: z58.number(),
2897
+ depth: z58.number(),
2898
+ fromStorey: z58.number().optional(),
2899
+ toStorey: z58.number().optional()
2510
2900
  });
2511
- var PluginProgramCoresCreateArgs = z52.object({
2512
- cores: z52.array(PluginProgramCoreSpec),
2513
- lengthUnit: z52.enum(["mm", "m", "ft"]).optional()
2901
+ var PluginProgramCoresCreateArgs = z58.object({
2902
+ cores: z58.array(PluginProgramCoreSpec),
2903
+ lengthUnit: z58.enum(["mm", "m", "ft"]).optional()
2514
2904
  });
2515
- var PluginProgramCoresCreateResult = z52.object({
2516
- createdCount: z52.number()
2905
+ var PluginProgramCoresCreateResult = z58.object({
2906
+ createdCount: z58.number()
2517
2907
  });
2518
2908
 
2519
2909
  // src/api/program/classification.ts
2520
- import * as z53 from "zod";
2910
+ import * as z59 from "zod";
2521
2911
  var PluginProgramClassificationApi = class {
2522
2912
  constructor() {
2523
2913
  }
2524
2914
  };
2525
- var PluginClassificationOption = z53.object({
2526
- value: z53.string(),
2527
- label: z53.string()
2915
+ var PluginClassificationOption = z59.object({
2916
+ value: z59.string(),
2917
+ label: z59.string()
2528
2918
  });
2529
- var PluginProgramClassificationTypesResult = z53.object({
2530
- spaceTypes: z53.array(PluginClassificationOption),
2531
- areaClasses: z53.array(PluginClassificationOption),
2532
- massTypes: z53.array(PluginClassificationOption)
2919
+ var PluginProgramClassificationTypesResult = z59.object({
2920
+ spaceTypes: z59.array(PluginClassificationOption),
2921
+ areaClasses: z59.array(PluginClassificationOption),
2922
+ massTypes: z59.array(PluginClassificationOption)
2533
2923
  });
2534
- var PluginProgramClassificationListTagsArgs = z53.object({
2535
- id: z53.string()
2924
+ var PluginProgramClassificationListTagsArgs = z59.object({
2925
+ id: z59.string()
2536
2926
  });
2537
- var PluginSpaceTag = z53.object({
2538
- tagId: z53.string(),
2539
- tagName: z53.string(),
2540
- color: z53.string(),
2541
- categoryId: z53.string()
2927
+ var PluginSpaceTag = z59.object({
2928
+ tagId: z59.string(),
2929
+ tagName: z59.string(),
2930
+ color: z59.string(),
2931
+ categoryId: z59.string()
2542
2932
  });
2543
- var PluginProgramClassificationTagsResult = z53.object({
2544
- tagIds: z53.array(z53.string()),
2545
- tagsByCategory: z53.record(z53.string(), PluginSpaceTag)
2933
+ var PluginProgramClassificationTagsResult = z59.object({
2934
+ tagIds: z59.array(z59.string()),
2935
+ tagsByCategory: z59.record(z59.string(), PluginSpaceTag)
2546
2936
  });
2547
2937
 
2548
2938
  // src/api/program/areas.ts
2549
- import * as z54 from "zod";
2939
+ import * as z60 from "zod";
2550
2940
  var PluginProgramAreasApi = class {
2551
2941
  constructor() {
2552
2942
  }
2553
2943
  };
2554
- var PluginProgramAreaSummary = z54.object({
2555
- count: z54.number().int(),
2556
- hiddenCount: z54.number().int(),
2557
- carpet: z54.number(),
2558
- builtUp: z54.number(),
2559
- excluded: z54.number(),
2560
- farBuiltUp: z54.number(),
2561
- siteArea: z54.number(),
2562
- achievedFar: z54.number().nullable(),
2563
- targetFar: z54.number(),
2564
- deviation: z54.number(),
2944
+ var PluginProgramAreaSummary = z60.object({
2945
+ count: z60.number().int(),
2946
+ hiddenCount: z60.number().int(),
2947
+ carpet: z60.number(),
2948
+ builtUp: z60.number(),
2949
+ excluded: z60.number(),
2950
+ farBuiltUp: z60.number(),
2951
+ siteArea: z60.number(),
2952
+ achievedFar: z60.number().nullable(),
2953
+ targetFar: z60.number(),
2954
+ deviation: z60.number(),
2565
2955
  areaUnit: PluginAreaUnit
2566
2956
  });
2567
- var PluginProgramAreaGroup = z54.object({
2568
- groupId: z54.string(),
2569
- name: z54.string(),
2570
- color: z54.string(),
2571
- carpet: z54.number(),
2572
- builtUp: z54.number(),
2573
- excluded: z54.number(),
2574
- count: z54.number().int(),
2575
- targetArea: z54.number(),
2957
+ var PluginProgramAreaGroup = z60.object({
2958
+ groupId: z60.string(),
2959
+ name: z60.string(),
2960
+ color: z60.string(),
2961
+ carpet: z60.number(),
2962
+ builtUp: z60.number(),
2963
+ excluded: z60.number(),
2964
+ count: z60.number().int(),
2965
+ targetArea: z60.number(),
2576
2966
  targetUnit: PluginAreaUnit
2577
2967
  });
2578
- var PluginProgramAreaMember = z54.object({
2968
+ var PluginProgramAreaMember = z60.object({
2579
2969
  id: ComponentHandle,
2580
- label: z54.string(),
2581
- carpet: z54.number(),
2582
- builtUp: z54.number(),
2583
- excluded: z54.number(),
2584
- isVisible: z54.boolean()
2970
+ label: z60.string(),
2971
+ areaClass: PluginAreaClass,
2972
+ carpet: z60.number(),
2973
+ builtUp: z60.number(),
2974
+ excluded: z60.number(),
2975
+ isVisible: z60.boolean()
2585
2976
  });
2586
- var PluginProgramAreaGroupBy = z54.enum([
2977
+ var PluginProgramAreaGroupBy = z60.enum([
2587
2978
  "labels",
2588
2979
  "storeys",
2589
2980
  "buildings",
@@ -2591,29 +2982,29 @@ var PluginProgramAreaGroupBy = z54.enum([
2591
2982
  "tagCategories"
2592
2983
  ]);
2593
2984
  var PluginProgramAreasGetResult = PluginProgramAreaSummary;
2594
- var PluginProgramAreasListArgs = z54.object({
2985
+ var PluginProgramAreasListArgs = z60.object({
2595
2986
  groupBy: PluginProgramAreaGroupBy,
2596
- categoryId: z54.string().optional()
2987
+ categoryId: z60.string().optional()
2597
2988
  }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2598
2989
  message: 'categoryId is required when groupBy is "tagCategories"'
2599
2990
  });
2600
- var PluginProgramAreasListResult = z54.object({
2601
- groups: z54.array(PluginProgramAreaGroup)
2991
+ var PluginProgramAreasListResult = z60.object({
2992
+ groups: z60.array(PluginProgramAreaGroup)
2602
2993
  });
2603
- var PluginProgramAreasListMembersArgs = z54.object({
2994
+ var PluginProgramAreasListMembersArgs = z60.object({
2604
2995
  groupBy: PluginProgramAreaGroupBy,
2605
- groupId: z54.string(),
2606
- categoryId: z54.string().optional()
2996
+ groupId: z60.string(),
2997
+ categoryId: z60.string().optional()
2607
2998
  }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2608
2999
  message: 'categoryId is required when groupBy is "tagCategories"'
2609
3000
  });
2610
- var PluginProgramAreasListMembersResult = z54.object({
2611
- members: z54.array(PluginProgramAreaMember)
3001
+ var PluginProgramAreasListMembersResult = z60.object({
3002
+ members: z60.array(PluginProgramAreaMember)
2612
3003
  });
2613
- var PluginProgramAreasUpdateArgs = z54.object({
2614
- targetFar: z54.number().min(0).optional(),
2615
- siteArea: z54.number().positive().optional(),
2616
- deviation: z54.number().min(0).max(100).optional()
3004
+ var PluginProgramAreasUpdateArgs = z60.object({
3005
+ targetFar: z60.number().min(0).optional(),
3006
+ siteArea: z60.number().positive().optional(),
3007
+ deviation: z60.number().min(0).max(100).optional()
2617
3008
  });
2618
3009
  var PluginProgramAreasUpdateResult = PluginProgramAreaSummary;
2619
3010
 
@@ -2624,257 +3015,295 @@ var PluginProgramApi = class {
2624
3015
  };
2625
3016
 
2626
3017
  // src/api/presentation/views.ts
2627
- import * as z55 from "zod";
3018
+ import * as z61 from "zod";
2628
3019
  var PluginPresentationViewsApi = class {
2629
3020
  constructor() {
2630
3021
  }
2631
3022
  };
2632
- var PluginPresentationViewType = z55.enum(["2d", "3d"]);
2633
- var PluginPresentationView = z55.object({
2634
- id: z55.string(),
2635
- name: z55.string(),
3023
+ var PluginPresentationViewType = z61.enum(["2d", "3d"]);
3024
+ var PluginPresentationView = z61.object({
3025
+ id: z61.string(),
3026
+ name: z61.string(),
2636
3027
  type: PluginPresentationViewType,
2637
- isActive: z55.boolean()
3028
+ isActive: z61.boolean()
2638
3029
  });
2639
- var PluginPresentationViewsListResult = z55.object({
2640
- views: z55.array(PluginPresentationView)
3030
+ var PluginPresentationViewsListResult = z61.object({
3031
+ views: z61.array(PluginPresentationView)
2641
3032
  });
2642
- var PluginPresentationViewsGetArgs = z55.object({
2643
- id: z55.string()
3033
+ var PluginPresentationViewsGetArgs = z61.object({
3034
+ id: z61.string()
2644
3035
  });
2645
3036
  var PluginPresentationViewsGetResult = PluginPresentationView.nullable();
2646
- var PluginPresentationImageFormat = z55.enum(["png", "jpeg"]);
2647
- var PluginPresentationViewsCaptureArgs = z55.object({
2648
- viewId: z55.string().optional(),
3037
+ var PluginPresentationImageFormat = z61.enum(["png", "jpeg"]);
3038
+ var PluginPresentationViewsCaptureArgs = z61.object({
3039
+ viewId: z61.string().optional(),
2649
3040
  format: PluginPresentationImageFormat.optional(),
2650
- resolution: z55.string().optional()
3041
+ resolution: z61.string().optional()
2651
3042
  });
2652
- var PluginPresentationViewsCaptureResult = z55.object({
2653
- image: z55.string()
3043
+ var PluginPresentationViewsCaptureResult = z61.object({
3044
+ image: z61.string()
2654
3045
  });
2655
- var PluginPresentationViewsSetActiveArgs = z55.object({
2656
- id: z55.string()
3046
+ var PluginPresentationViewsSetActiveArgs = z61.object({
3047
+ id: z61.string()
2657
3048
  });
2658
- var PluginPresentationViewsSetActiveResult = z55.object({
2659
- id: z55.string()
3049
+ var PluginPresentationViewsSetActiveResult = z61.object({
3050
+ id: z61.string()
2660
3051
  });
2661
- var PluginPresentationViewsCreateArgs = z55.object({
2662
- name: z55.string().optional(),
2663
- kind: z55.enum(["view", "sitePlan"]).optional()
3052
+ var PluginPresentationViewsCreateArgs = z61.object({
3053
+ name: z61.string().optional(),
3054
+ kind: z61.enum(["view", "sitePlan"]).optional()
2664
3055
  });
2665
3056
  var PluginPresentationViewsCreateResult = PluginPresentationView;
3057
+ var PluginPresentationViewColorMode = z61.union([
3058
+ z61.enum(["monochrome", "texture", "department"]),
3059
+ z61.templateLiteral(["tag:", z61.string()])
3060
+ ]);
3061
+ var PluginPresentationViewLabel = z61.enum([
3062
+ "objectLabels",
3063
+ "areas",
3064
+ "department"
3065
+ ]);
3066
+ var PluginPresentationViewSettings = z61.object({
3067
+ backgroundColor: z61.string(),
3068
+ colorMode: PluginPresentationViewColorMode,
3069
+ showAxis: z61.boolean(),
3070
+ showEdges: z61.boolean(),
3071
+ showLabels: z61.boolean(),
3072
+ labels: z61.array(PluginPresentationViewLabel)
3073
+ });
3074
+ var PluginPresentationViewsGetSettingsArgs = z61.object({
3075
+ id: z61.string()
3076
+ });
3077
+ var PluginPresentationViewsGetSettingsResult = PluginPresentationViewSettings.nullable();
3078
+ var PluginPresentationViewsUpdateSettingsArgs = z61.object({
3079
+ id: z61.string(),
3080
+ settings: PluginPresentationViewSettings.partial()
3081
+ }).refine(
3082
+ (v) => !(v.settings.showLabels === false && (v.settings.labels?.length ?? 0) > 0),
3083
+ {
3084
+ message: "Contradictory patch: labels cannot be set while showLabels is false"
3085
+ }
3086
+ ).refine(
3087
+ (v) => !(v.settings.showLabels === true && v.settings.labels !== void 0 && v.settings.labels.length === 0),
3088
+ {
3089
+ 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"
3090
+ }
3091
+ );
3092
+ var PluginPresentationViewsUpdateSettingsResult = z61.object({
3093
+ id: z61.string()
3094
+ });
2666
3095
 
2667
3096
  // src/api/presentation/sheets.ts
2668
- import * as z56 from "zod";
3097
+ import * as z62 from "zod";
2669
3098
  var PluginPresentationSheetsApi = class {
2670
3099
  constructor() {
2671
3100
  }
2672
3101
  };
2673
- var PluginPresentationSheet = z56.object({
2674
- id: z56.string(),
2675
- name: z56.string()
3102
+ var PluginPresentationSheet = z62.object({
3103
+ id: z62.string(),
3104
+ name: z62.string()
2676
3105
  });
2677
- var PluginSheetPosition = z56.object({
2678
- x: z56.number(),
2679
- y: z56.number()
3106
+ var PluginSheetPosition = z62.object({
3107
+ x: z62.number(),
3108
+ y: z62.number()
2680
3109
  });
2681
- var PluginPresentationSheetsListResult = z56.object({
2682
- sheets: z56.array(PluginPresentationSheet)
3110
+ var PluginPresentationSheetsListResult = z62.object({
3111
+ sheets: z62.array(PluginPresentationSheet)
2683
3112
  });
2684
- var PluginPresentationSheetsGetArgs = z56.object({
2685
- id: z56.string()
3113
+ var PluginPresentationSheetsGetArgs = z62.object({
3114
+ id: z62.string()
2686
3115
  });
2687
3116
  var PluginPresentationSheetsGetResult = PluginPresentationSheet.nullable();
2688
- var PluginPresentationSheetsCreateArgs = z56.object({
2689
- name: z56.string().optional()
3117
+ var PluginPresentationSheetsCreateArgs = z62.object({
3118
+ name: z62.string().optional()
2690
3119
  });
2691
- var PluginPresentationSheetsPlaceArgs = z56.object({
2692
- sheetId: z56.string(),
2693
- viewId: z56.string(),
3120
+ var PluginPresentationSheetsPlaceArgs = z62.object({
3121
+ sheetId: z62.string(),
3122
+ viewId: z62.string(),
2694
3123
  position: PluginSheetPosition.optional()
2695
3124
  });
2696
- var PluginPresentationSheetsPlaceResult = z56.object({
2697
- shapeId: z56.string()
3125
+ var PluginPresentationSheetsPlaceResult = z62.object({
3126
+ shapeId: z62.string()
2698
3127
  });
2699
3128
 
2700
3129
  // src/api/presentation/diagrams.ts
2701
- import * as z57 from "zod";
3130
+ import * as z63 from "zod";
2702
3131
  var PluginPresentationDiagramsApi = class {
2703
3132
  constructor() {
2704
3133
  }
2705
3134
  };
2706
- var PluginPresentationDiagramsPlaceArgs = z57.object({
2707
- sheetId: z57.string(),
2708
- urls: z57.array(z57.string()),
2709
- position: z57.object({ x: z57.number(), y: z57.number() }).optional()
3135
+ var PluginPresentationDiagramsPlaceArgs = z63.object({
3136
+ sheetId: z63.string(),
3137
+ urls: z63.array(z63.string()),
3138
+ position: z63.object({ x: z63.number(), y: z63.number() }).optional()
2710
3139
  });
2711
- var PluginPresentationDiagramsPlaceResult = z57.object({
2712
- shapeIds: z57.array(z57.string())
3140
+ var PluginPresentationDiagramsPlaceResult = z63.object({
3141
+ shapeIds: z63.array(z63.string())
2713
3142
  });
2714
3143
 
2715
3144
  // src/api/presentation/import.ts
2716
- import * as z58 from "zod";
3145
+ import * as z64 from "zod";
2717
3146
  var PluginPresentationImportApi = class {
2718
3147
  constructor() {
2719
3148
  }
2720
3149
  };
2721
- var PluginPresentationImportArgs = z58.object({
2722
- url: z58.string().optional(),
2723
- dataUrl: z58.string().optional(),
2724
- position: z58.object({ x: z58.number(), y: z58.number() }).optional()
3150
+ var PluginPresentationImportArgs = z64.object({
3151
+ url: z64.string().optional(),
3152
+ dataUrl: z64.string().optional(),
3153
+ position: z64.object({ x: z64.number(), y: z64.number() }).optional()
2725
3154
  }).refine((a) => Boolean(a.url) || Boolean(a.dataUrl), {
2726
3155
  message: "Provide a url or a dataUrl"
2727
3156
  });
2728
- var PluginPresentationImportResult = z58.object({
2729
- shapeIds: z58.array(z58.string())
3157
+ var PluginPresentationImportResult = z64.object({
3158
+ shapeIds: z64.array(z64.string())
2730
3159
  });
2731
3160
 
2732
3161
  // src/api/presentation/aiInspiration.ts
2733
- import * as z59 from "zod";
2734
- var JsonPrimitive = z59.union([z59.string(), z59.number(), z59.boolean(), z59.null()]);
2735
- var JsonValue = z59.lazy(
2736
- () => z59.union([JsonPrimitive, z59.array(JsonValue), z59.record(z59.string(), JsonValue)])
3162
+ import * as z65 from "zod";
3163
+ var JsonPrimitive = z65.union([z65.string(), z65.number(), z65.boolean(), z65.null()]);
3164
+ var JsonValue = z65.lazy(
3165
+ () => z65.union([JsonPrimitive, z65.array(JsonValue), z65.record(z65.string(), JsonValue)])
2737
3166
  );
2738
- var PluginAIInspirationOutputKind = z59.enum([
3167
+ var PluginAIInspirationOutputKind = z65.enum([
2739
3168
  "source",
2740
3169
  "image",
2741
3170
  "video"
2742
3171
  ]);
2743
- var PluginAIInspirationModelOutput = z59.enum(["image", "video"]);
2744
- var PluginAIInspirationShapeKind = z59.enum(["image", "view", "video"]);
2745
- var PluginAIInspirationVideoMode = z59.enum([
3172
+ var PluginAIInspirationModelOutput = z65.enum(["image", "video"]);
3173
+ var PluginAIInspirationShapeKind = z65.enum(["image", "view", "video"]);
3174
+ var PluginAIInspirationVideoMode = z65.enum([
2746
3175
  "animate",
2747
3176
  "references",
2748
3177
  "keyframes"
2749
3178
  ]);
2750
- var PluginAIInspirationVideoMotion = z59.enum([
3179
+ var PluginAIInspirationVideoMotion = z65.enum([
2751
3180
  "auto",
2752
3181
  "slow-dolly",
2753
3182
  "subtle-orbit",
2754
3183
  "reveal"
2755
3184
  ]);
2756
- var PluginAIInspirationVideoDuration = z59.enum(["4s", "6s", "8s"]);
2757
- var PluginAIInspirationRegionHint = z59.object({
2758
- x: z59.number().finite(),
2759
- y: z59.number().finite(),
2760
- w: z59.number().finite().positive(),
2761
- h: z59.number().finite().positive()
2762
- });
2763
- var PluginAIInspirationPoint = z59.object({
2764
- x: z59.number().finite(),
2765
- y: z59.number().finite()
2766
- });
2767
- var PluginAIInspirationTextAnnotation = z59.object({
2768
- text: z59.string().min(1),
2769
- x: z59.number().finite().optional(),
2770
- y: z59.number().finite().optional()
2771
- });
2772
- var PluginAIInspirationSketchGuidance = z59.object({
2773
- visualShapeIds: z59.array(z59.string()).optional(),
2774
- textAnnotations: z59.array(PluginAIInspirationTextAnnotation).optional()
2775
- });
2776
- var PluginAIInspirationSiteOptions = z59.object({
2777
- includeSatellite: z59.boolean().optional(),
2778
- includeStreetView: z59.boolean().optional(),
2779
- includeAerial: z59.boolean().optional(),
2780
- aerialBearing: z59.number().finite().optional(),
2781
- aerialPitch: z59.number().finite().optional(),
2782
- selectedDiagramIds: z59.array(z59.string()).optional(),
2783
- location: z59.object({
2784
- lat: z59.number().finite(),
2785
- lng: z59.number().finite()
3185
+ var PluginAIInspirationVideoDuration = z65.enum(["4s", "6s", "8s"]);
3186
+ var PluginAIInspirationRegionHint = z65.object({
3187
+ x: z65.number().finite(),
3188
+ y: z65.number().finite(),
3189
+ w: z65.number().finite().positive(),
3190
+ h: z65.number().finite().positive()
3191
+ });
3192
+ var PluginAIInspirationPoint = z65.object({
3193
+ x: z65.number().finite(),
3194
+ y: z65.number().finite()
3195
+ });
3196
+ var PluginAIInspirationTextAnnotation = z65.object({
3197
+ text: z65.string().min(1),
3198
+ x: z65.number().finite().optional(),
3199
+ y: z65.number().finite().optional()
3200
+ });
3201
+ var PluginAIInspirationSketchGuidance = z65.object({
3202
+ visualShapeIds: z65.array(z65.string()).optional(),
3203
+ textAnnotations: z65.array(PluginAIInspirationTextAnnotation).optional()
3204
+ });
3205
+ var PluginAIInspirationSiteOptions = z65.object({
3206
+ includeSatellite: z65.boolean().optional(),
3207
+ includeStreetView: z65.boolean().optional(),
3208
+ includeAerial: z65.boolean().optional(),
3209
+ aerialBearing: z65.number().finite().optional(),
3210
+ aerialPitch: z65.number().finite().optional(),
3211
+ selectedDiagramIds: z65.array(z65.string()).optional(),
3212
+ location: z65.object({
3213
+ lat: z65.number().finite(),
3214
+ lng: z65.number().finite()
2786
3215
  }).optional()
2787
3216
  });
2788
- var PluginAIInspirationAppliedPreset = z59.object({
2789
- source: z59.enum(["curated", "user"]),
2790
- presetId: z59.string().min(1),
2791
- name: z59.string().min(1),
2792
- savedPresetKind: z59.enum(["prompt", "style"]).optional(),
2793
- stylePrompt: z59.string().optional(),
2794
- modelId: z59.string().optional(),
2795
- referenceImages: z59.array(
2796
- z59.object({
2797
- url: z59.string().min(1),
2798
- label: z59.string().optional(),
2799
- weight: z59.number().finite().optional()
3217
+ var PluginAIInspirationAppliedPreset = z65.object({
3218
+ source: z65.enum(["curated", "user"]),
3219
+ presetId: z65.string().min(1),
3220
+ name: z65.string().min(1),
3221
+ savedPresetKind: z65.enum(["prompt", "style"]).optional(),
3222
+ stylePrompt: z65.string().optional(),
3223
+ modelId: z65.string().optional(),
3224
+ referenceImages: z65.array(
3225
+ z65.object({
3226
+ url: z65.string().min(1),
3227
+ label: z65.string().optional(),
3228
+ weight: z65.number().finite().optional()
2800
3229
  })
2801
3230
  ).optional(),
2802
- siteDefaults: z59.object({
2803
- includeSatellite: z59.boolean().optional(),
2804
- includeStreetView: z59.boolean().optional(),
2805
- includeAerial: z59.boolean().optional()
3231
+ siteDefaults: z65.object({
3232
+ includeSatellite: z65.boolean().optional(),
3233
+ includeStreetView: z65.boolean().optional(),
3234
+ includeAerial: z65.boolean().optional()
2806
3235
  }).optional()
2807
3236
  });
2808
- var PluginAIInspirationVideoOptions = z59.object({
3237
+ var PluginAIInspirationVideoOptions = z65.object({
2809
3238
  mode: PluginAIInspirationVideoMode.optional(),
2810
- endFrameShapeId: z59.string().optional(),
3239
+ endFrameShapeId: z65.string().optional(),
2811
3240
  motion: PluginAIInspirationVideoMotion.optional(),
2812
3241
  duration: PluginAIInspirationVideoDuration.optional()
2813
3242
  });
2814
- var PluginAIInspirationModel = z59.object({
2815
- id: z59.string(),
2816
- label: z59.string(),
2817
- supportsMultiImage: z59.boolean(),
3243
+ var PluginAIInspirationModel = z65.object({
3244
+ id: z65.string(),
3245
+ label: z65.string(),
3246
+ supportsMultiImage: z65.boolean(),
2818
3247
  output: PluginAIInspirationModelOutput,
2819
- isDefault: z59.boolean().optional()
3248
+ isDefault: z65.boolean().optional()
2820
3249
  });
2821
- var PluginAIInspirationListModelsResult = z59.object({
2822
- defaultModelId: z59.string(),
2823
- models: z59.array(PluginAIInspirationModel)
3250
+ var PluginAIInspirationListModelsResult = z65.object({
3251
+ defaultModelId: z65.string(),
3252
+ models: z65.array(PluginAIInspirationModel)
2824
3253
  });
2825
- var PluginAIInspirationShapeRef = z59.object({
2826
- shapeId: z59.string(),
2827
- assetId: z59.string().optional(),
3254
+ var PluginAIInspirationShapeRef = z65.object({
3255
+ shapeId: z65.string(),
3256
+ assetId: z65.string().optional(),
2828
3257
  kind: PluginAIInspirationShapeKind,
2829
- name: z59.string().optional(),
2830
- width: z59.number().finite().optional(),
2831
- height: z59.number().finite().optional(),
3258
+ name: z65.string().optional(),
3259
+ width: z65.number().finite().optional(),
3260
+ height: z65.number().finite().optional(),
2832
3261
  outputType: PluginAIInspirationOutputKind.optional(),
2833
- sourceUrl: z59.string().optional()
3262
+ sourceUrl: z65.string().optional()
2834
3263
  });
2835
- var PluginAIInspirationListSourcesArgs = z59.object({
2836
- includeGenerated: z59.boolean().optional(),
2837
- includeSourceUrl: z59.boolean().optional()
3264
+ var PluginAIInspirationListSourcesArgs = z65.object({
3265
+ includeGenerated: z65.boolean().optional(),
3266
+ includeSourceUrl: z65.boolean().optional()
2838
3267
  });
2839
- var PluginAIInspirationListSourcesResult = z59.object({
2840
- sources: z59.array(PluginAIInspirationShapeRef)
3268
+ var PluginAIInspirationListSourcesResult = z65.object({
3269
+ sources: z65.array(PluginAIInspirationShapeRef)
2841
3270
  });
2842
- var PluginAIInspirationOutput = z59.object({
2843
- outputType: z59.enum(["image", "video"]),
2844
- shapeId: z59.string(),
2845
- assetId: z59.string(),
2846
- outputUrl: z59.string().optional(),
3271
+ var PluginAIInspirationOutput = z65.object({
3272
+ outputType: z65.enum(["image", "video"]),
3273
+ shapeId: z65.string(),
3274
+ assetId: z65.string(),
3275
+ outputUrl: z65.string().optional(),
2847
3276
  position: PluginAIInspirationPoint.optional()
2848
3277
  });
2849
- var PluginAIInspirationDebugSummary = z59.record(z59.string(), JsonValue);
2850
- var PluginAIInspirationRunMetadata = z59.object({
2851
- geometryFidelity: z59.string().optional(),
3278
+ var PluginAIInspirationDebugSummary = z65.record(z65.string(), JsonValue);
3279
+ var PluginAIInspirationRunMetadata = z65.object({
3280
+ geometryFidelity: z65.string().optional(),
2852
3281
  debugSummary: PluginAIInspirationDebugSummary.optional(),
2853
- streetViewComposite: z59.object({
2854
- used: z59.boolean(),
2855
- renderMode: z59.enum(["prompt_refs_default", "masked_composite_pilot"]),
2856
- backgroundLabel: z59.string().optional()
3282
+ streetViewComposite: z65.object({
3283
+ used: z65.boolean(),
3284
+ renderMode: z65.enum(["prompt_refs_default", "masked_composite_pilot"]),
3285
+ backgroundLabel: z65.string().optional()
2857
3286
  }).optional()
2858
3287
  });
2859
- var PluginAIInspirationGenerateArgs = z59.object({
2860
- sourceShapeId: z59.string().min(1),
2861
- prompt: z59.string().min(1).max(8e3),
2862
- modelId: z59.string().optional(),
2863
- referenceShapeIds: z59.array(z59.string()).max(12).optional(),
2864
- referenceStrength: z59.enum(["low", "medium", "high"]).optional(),
3288
+ var PluginAIInspirationGenerateArgs = z65.object({
3289
+ sourceShapeId: z65.string().min(1),
3290
+ prompt: z65.string().min(1).max(8e3),
3291
+ modelId: z65.string().optional(),
3292
+ referenceShapeIds: z65.array(z65.string()).max(12).optional(),
3293
+ referenceStrength: z65.enum(["low", "medium", "high"]).optional(),
2865
3294
  appliedPreset: PluginAIInspirationAppliedPreset.optional(),
2866
3295
  site: PluginAIInspirationSiteOptions.optional(),
2867
3296
  regionHint: PluginAIInspirationRegionHint.optional(),
2868
3297
  sketchGuidance: PluginAIInspirationSketchGuidance.optional(),
2869
3298
  video: PluginAIInspirationVideoOptions.optional()
2870
3299
  });
2871
- var PluginAIInspirationRunResult = z59.object({
2872
- outputs: z59.array(PluginAIInspirationOutput).min(1),
3300
+ var PluginAIInspirationRunResult = z65.object({
3301
+ outputs: z65.array(PluginAIInspirationOutput).min(1),
2873
3302
  metadata: PluginAIInspirationRunMetadata.optional()
2874
3303
  });
2875
- var PluginAIInspirationRefineArgs = z59.object({
2876
- sourceShapeId: z59.string().min(1),
2877
- upscaleFactor: z59.union([z59.literal(1.5), z59.literal(2), z59.literal(4)]).optional()
3304
+ var PluginAIInspirationRefineArgs = z65.object({
3305
+ sourceShapeId: z65.string().min(1),
3306
+ upscaleFactor: z65.union([z65.literal(1.5), z65.literal(2), z65.literal(4)]).optional()
2878
3307
  });
2879
3308
  var PluginPresentationAIInspirationApi = class {
2880
3309
  constructor() {
@@ -2887,32 +3316,299 @@ var PluginPresentationApi = class {
2887
3316
  }
2888
3317
  };
2889
3318
 
3319
+ // src/api/analysis/sunpath.ts
3320
+ var PluginAnalysisSunpathApi = class {
3321
+ constructor() {
3322
+ }
3323
+ };
3324
+
3325
+ // src/api/analysis/shadows.ts
3326
+ import * as z66 from "zod";
3327
+ var PluginAnalysisShadowsApi = class {
3328
+ constructor() {
3329
+ }
3330
+ };
3331
+ var PluginAnalysisShadowsEnableOptions = z66.object({
3332
+ dateTime: z66.string().optional()
3333
+ });
3334
+ var PluginAnalysisShadowsSetDateTimeArgs = z66.object({
3335
+ dateTime: z66.string()
3336
+ });
3337
+ var PluginAnalysisShadowsDateTimeResult = z66.string();
3338
+
3339
+ // src/api/analysis/sunlightHours.ts
3340
+ import * as z67 from "zod";
3341
+ var PluginAnalysisSunlightHoursApi = class {
3342
+ constructor() {
3343
+ }
3344
+ };
3345
+ var PluginAnalysisComputeResult = z67.object({
3346
+ success: z67.boolean(),
3347
+ error: z67.string().optional()
3348
+ });
3349
+ var PluginAnalysisJobStatus = z67.enum([
3350
+ "running",
3351
+ "active",
3352
+ "inactive"
3353
+ ]);
3354
+ var PluginAnalysisJobState = z67.object({
3355
+ status: PluginAnalysisJobStatus,
3356
+ startDate: z67.string(),
3357
+ endDate: z67.string()
3358
+ });
3359
+ var PluginAnalysisJobStateResult = PluginAnalysisJobState.nullable();
3360
+
3361
+ // src/api/analysis/illuminance.ts
3362
+ var PluginAnalysisIlluminanceApi = class {
3363
+ constructor() {
3364
+ }
3365
+ };
3366
+
3367
+ // src/api/analysis/heatmaps.ts
3368
+ import * as z68 from "zod";
3369
+ var PluginAnalysisHeatmapsApi = class {
3370
+ constructor() {
3371
+ }
3372
+ };
3373
+ var PluginAnalysisHeatmapSpaceEntry = z68.object({
3374
+ space: ComponentHandle,
3375
+ value: z68.number().finite()
3376
+ });
3377
+ var PluginAnalysisHeatmapGridCell = z68.object({
3378
+ position: Vec3Components,
3379
+ value: z68.number().finite()
3380
+ });
3381
+ var PluginAnalysisHeatmapOptions = z68.object({
3382
+ title: z68.string().optional(),
3383
+ unit: z68.string().optional(),
3384
+ min: z68.number().finite().optional(),
3385
+ max: z68.number().finite().optional(),
3386
+ colors: z68.array(z68.string().regex(/^#?[0-9a-fA-F]{6}$/, 'expected a 6-digit hex colour like "#0000ff"')).min(1).optional()
3387
+ });
3388
+ var PluginAnalysisHeatmapsRenderResult = z68.object({
3389
+ success: z68.literal(true)
3390
+ });
3391
+
3392
+ // src/api/analysis/index.ts
3393
+ var PluginAnalysisApi = class {
3394
+ constructor() {
3395
+ }
3396
+ };
3397
+
2890
3398
  // src/api/index.ts
2891
3399
  var PluginApi = class {
2892
3400
  constructor() {
2893
3401
  }
2894
3402
  };
3403
+
3404
+ // src/errors/codes.ts
3405
+ var PLUGIN_ERROR_CODES = [
3406
+ "VALIDATION",
3407
+ "INVALID_RPC_FORMAT",
3408
+ "METHOD_NOT_FOUND",
3409
+ "METHOD_NOT_PERMITTED",
3410
+ "HANDLE_INVALID",
3411
+ "HANDLE_KIND_MISMATCH",
3412
+ "RESOURCE_QUOTA_EXCEEDED",
3413
+ "RATE_LIMITED",
3414
+ "PRECONDITION_FAILED",
3415
+ "OPERATION_FAILED",
3416
+ "TIMEOUT",
3417
+ "CALL_TIMEOUT",
3418
+ "TRANSPORT_LOST",
3419
+ "PLUGIN_NOT_READY",
3420
+ "PLUGIN_TERMINATED",
3421
+ "RESULT_NOT_SERIALIZABLE",
3422
+ "RESULT_TOO_LARGE",
3423
+ "BATCH_PARTIAL",
3424
+ "STORY_UPDATE_FAILED",
3425
+ "STORY_HEIGHT_REJECTED",
3426
+ "NO_ACTIVE_STRUCTURE",
3427
+ "NO_ELIGIBLE_ELEMENTS",
3428
+ "PROPOSAL_SWITCH_BLOCKED",
3429
+ "INTERNAL",
3430
+ "UNKNOWN"
3431
+ ];
3432
+ var CODE_META = {
3433
+ VALIDATION: {
3434
+ category: "validation",
3435
+ hintTemplate: "Check details.issues for the failing argument."
3436
+ },
3437
+ INVALID_RPC_FORMAT: { category: "validation" },
3438
+ METHOD_NOT_FOUND: {
3439
+ category: "not_found",
3440
+ hintTemplate: "Check details.didYouMean for a close match."
3441
+ },
3442
+ METHOD_NOT_PERMITTED: { category: "permission" },
3443
+ HANDLE_INVALID: {
3444
+ category: "handle",
3445
+ hintTemplate: "Re-query the entity; do not cache handles across undo/reload."
3446
+ },
3447
+ HANDLE_KIND_MISMATCH: { category: "handle" },
3448
+ RESOURCE_QUOTA_EXCEEDED: {
3449
+ category: "quota",
3450
+ hintTemplate: "Release unused handles (core.handles.release) or use scopes."
3451
+ },
3452
+ RATE_LIMITED: {
3453
+ category: "quota",
3454
+ hintTemplate: "Wait details.retryAfterMs before retrying."
3455
+ },
3456
+ PRECONDITION_FAILED: { category: "execution" },
3457
+ OPERATION_FAILED: { category: "execution" },
3458
+ TIMEOUT: { category: "timeout" },
3459
+ CALL_TIMEOUT: { category: "timeout" },
3460
+ TRANSPORT_LOST: { category: "transport" },
3461
+ PLUGIN_NOT_READY: { category: "lifecycle" },
3462
+ PLUGIN_TERMINATED: { category: "lifecycle" },
3463
+ RESULT_NOT_SERIALIZABLE: { category: "execution" },
3464
+ RESULT_TOO_LARGE: { category: "execution" },
3465
+ BATCH_PARTIAL: { category: "execution" },
3466
+ STORY_UPDATE_FAILED: {
3467
+ category: "execution",
3468
+ hintTemplate: "The storey update could not be applied; re-read the storey and retry."
3469
+ },
3470
+ STORY_HEIGHT_REJECTED: {
3471
+ category: "execution",
3472
+ hintTemplate: "The requested height was out of range; pick a value within the storey's limits."
3473
+ },
3474
+ NO_ACTIVE_STRUCTURE: {
3475
+ category: "execution",
3476
+ hintTemplate: "Activate a structure before running this operation."
3477
+ },
3478
+ NO_ELIGIBLE_ELEMENTS: {
3479
+ category: "execution",
3480
+ hintTemplate: "The storey has no elements eligible for this operation."
3481
+ },
3482
+ PROPOSAL_SWITCH_BLOCKED: {
3483
+ category: "execution",
3484
+ hintTemplate: "Wait for the in-canvas agent run to finish, then retry."
3485
+ },
3486
+ INTERNAL: {
3487
+ category: "internal",
3488
+ hintTemplate: "Host-side fault. Report with errorId."
3489
+ },
3490
+ UNKNOWN: { category: "internal" }
3491
+ };
3492
+ function isPluginErrorCode(value) {
3493
+ return PLUGIN_ERROR_CODES.includes(value);
3494
+ }
3495
+
3496
+ // src/errors/envelope.ts
3497
+ var ERROR_ENVELOPE_VERSION = 1;
3498
+ function isErrorEnvelope(value) {
3499
+ if (typeof value !== "object" || value === null) return false;
3500
+ const record5 = value;
3501
+ return record5.envelopeVersion === ERROR_ENVELOPE_VERSION && typeof record5.code === "string" && typeof record5.message === "string" && typeof record5.errorId === "string";
3502
+ }
3503
+ var idCounter = 0;
3504
+ function newErrorId(prefix = "") {
3505
+ const cryptoApi = globalThis.crypto;
3506
+ if (cryptoApi?.randomUUID) return `${prefix}${cryptoApi.randomUUID()}`;
3507
+ idCounter += 1;
3508
+ return `${prefix}${Date.now().toString(36)}-${idCounter}-${Math.random().toString(36).slice(2, 10)}`;
3509
+ }
3510
+
3511
+ // src/errors/plugin-error.ts
3512
+ var BRAND = /* @__PURE__ */ Symbol.for("snaptrude.pluginError");
3513
+ var PluginError = class extends Error {
3514
+ constructor(envelope) {
3515
+ super(envelope.message);
3516
+ this.name = new.target.name;
3517
+ this.code = envelope.code;
3518
+ this.errorId = envelope.errorId;
3519
+ this.details = envelope.details;
3520
+ this.handle = envelope.handle;
3521
+ this.methodPath = envelope.methodPath;
3522
+ this.hint = envelope.hint ?? hintFor(envelope.code);
3523
+ this[BRAND] = true;
3524
+ }
3525
+ /** Canonical check — survives bundled duplicate SDK copies where `instanceof` fails. */
3526
+ static is(value) {
3527
+ return typeof value === "object" && value !== null && value[BRAND] === true;
3528
+ }
3529
+ /** Derived (not wire-carried) family of the code; unknown codes map to "internal". */
3530
+ get category() {
3531
+ return isPluginErrorCode(this.code) ? CODE_META[this.code].category : "internal";
3532
+ }
3533
+ };
3534
+ var PluginValidationError = class extends PluginError {
3535
+ };
3536
+ var PluginNotFoundError = class extends PluginError {
3537
+ };
3538
+ var PluginPermissionError = class extends PluginError {
3539
+ };
3540
+ var PluginHandleError = class extends PluginError {
3541
+ };
3542
+ var PluginQuotaError = class extends PluginError {
3543
+ };
3544
+ var PluginTimeoutError = class extends PluginError {
3545
+ };
3546
+ var PluginTransportError = class extends PluginError {
3547
+ };
3548
+ var PluginLifecycleError = class extends PluginError {
3549
+ };
3550
+ var PluginExecutionError = class extends PluginError {
3551
+ };
3552
+ var PluginInternalError = class extends PluginError {
3553
+ };
3554
+ var CATEGORY_CLASS = {
3555
+ validation: PluginValidationError,
3556
+ not_found: PluginNotFoundError,
3557
+ permission: PluginPermissionError,
3558
+ handle: PluginHandleError,
3559
+ quota: PluginQuotaError,
3560
+ timeout: PluginTimeoutError,
3561
+ transport: PluginTransportError,
3562
+ lifecycle: PluginLifecycleError,
3563
+ execution: PluginExecutionError,
3564
+ internal: PluginInternalError
3565
+ };
3566
+ function hintFor(code) {
3567
+ return isPluginErrorCode(code) ? CODE_META[code].hintTemplate : void 0;
3568
+ }
3569
+ function fromEnvelope(envelope) {
3570
+ if (!isPluginErrorCode(envelope.code)) return new PluginError(envelope);
3571
+ const ErrorClass = CATEGORY_CLASS[CODE_META[envelope.code].category];
3572
+ return new ErrorClass(envelope);
3573
+ }
3574
+ function makeClientEnvelope(code, message, extra) {
3575
+ return {
3576
+ envelopeVersion: ERROR_ENVELOPE_VERSION,
3577
+ code,
3578
+ message,
3579
+ errorId: newErrorId("c-"),
3580
+ ...extra
3581
+ };
3582
+ }
2895
3583
  export {
2896
3584
  ArcHandle,
2897
3585
  BBoxComponents,
2898
3586
  BooleanOptions,
2899
3587
  BooleanOutcome,
2900
3588
  BrepHandle,
3589
+ CODE_META,
3590
+ CadJsonInput,
2901
3591
  CircleHandle,
2902
3592
  CommentHandle,
2903
3593
  ComponentHandle,
2904
3594
  ContourHandle,
2905
3595
  CurveHandle,
2906
3596
  DEFAULT_ERASE_STRATEGIES,
3597
+ ERROR_ENVELOPE_VERSION,
2907
3598
  EdgeHandle,
2908
3599
  ErasableEdgeRef,
2909
3600
  EraseStrategy,
2910
3601
  FaceHandle,
2911
3602
  HalfEdgeHandle,
3603
+ ImportJobHandle,
3604
+ ImportJobStatus,
3605
+ ImportSource,
2912
3606
  LineHandle,
2913
3607
  MassHandle,
2914
3608
  MaterialHandle,
3609
+ ModelFormat,
2915
3610
  OffsetSplitOutcome,
3611
+ PLUGIN_ERROR_CODES,
2916
3612
  PUnitType,
2917
3613
  PluginAIInspirationAppliedPreset,
2918
3614
  PluginAIInspirationDebugSummary,
@@ -2939,6 +3635,24 @@ export {
2939
3635
  PluginAIInspirationVideoMotion,
2940
3636
  PluginAIInspirationVideoOptions,
2941
3637
  PluginAdjacencyLevel,
3638
+ PluginAlignEdge,
3639
+ PluginAnalysisApi,
3640
+ PluginAnalysisComputeResult,
3641
+ PluginAnalysisHeatmapGridCell,
3642
+ PluginAnalysisHeatmapOptions,
3643
+ PluginAnalysisHeatmapSpaceEntry,
3644
+ PluginAnalysisHeatmapsApi,
3645
+ PluginAnalysisHeatmapsRenderResult,
3646
+ PluginAnalysisIlluminanceApi,
3647
+ PluginAnalysisJobState,
3648
+ PluginAnalysisJobStateResult,
3649
+ PluginAnalysisJobStatus,
3650
+ PluginAnalysisShadowsApi,
3651
+ PluginAnalysisShadowsDateTimeResult,
3652
+ PluginAnalysisShadowsEnableOptions,
3653
+ PluginAnalysisShadowsSetDateTimeArgs,
3654
+ PluginAnalysisSunlightHoursApi,
3655
+ PluginAnalysisSunpathApi,
2942
3656
  PluginApi,
2943
3657
  PluginAreaClass,
2944
3658
  PluginAreaUnit,
@@ -2998,6 +3712,12 @@ export {
2998
3712
  PluginCoreGroupsListResult,
2999
3713
  PluginCoreGroupsUpdateArgs,
3000
3714
  PluginCoreGroupsUpdateResult,
3715
+ PluginCoreIoApi,
3716
+ PluginCoreIoImportApi,
3717
+ PluginCoreIoJobApi,
3718
+ PluginCoreIoQueryApi,
3719
+ PluginCoreIoTerrainApi,
3720
+ PluginCoreIoUnderlayApi,
3001
3721
  PluginCoreLayer,
3002
3722
  PluginCoreLayerType,
3003
3723
  PluginCoreLayersApi,
@@ -3011,6 +3731,23 @@ export {
3011
3731
  PluginCoreLayersSetActiveResult,
3012
3732
  PluginCoreLayersUpdateArgs,
3013
3733
  PluginCoreLayersUpdateResult,
3734
+ PluginCoreProposalRef,
3735
+ PluginCoreProposalsApi,
3736
+ PluginCoreProposalsCreateArgs,
3737
+ PluginCoreProposalsCreateResult,
3738
+ PluginCoreProposalsDeleteArgs,
3739
+ PluginCoreProposalsDeleteResult,
3740
+ PluginCoreProposalsGetActiveResult,
3741
+ PluginCoreProposalsGetArgs,
3742
+ PluginCoreProposalsGetResult,
3743
+ PluginCoreProposalsIsActiveArgs,
3744
+ PluginCoreProposalsListForComponentArgs,
3745
+ PluginCoreProposalsListForComponentResult,
3746
+ PluginCoreProposalsListResult,
3747
+ PluginCoreProposalsRenameArgs,
3748
+ PluginCoreProposalsRenameResult,
3749
+ PluginCoreProposalsSetActiveArgs,
3750
+ PluginCoreProposalsSetActiveResult,
3014
3751
  PluginCoreTag,
3015
3752
  PluginCoreTagCategory,
3016
3753
  PluginCoreTagsApi,
@@ -3043,6 +3780,7 @@ export {
3043
3780
  PluginCoreTagsUpdateResult,
3044
3781
  PluginCreateSpaceItem,
3045
3782
  PluginDepartmentId,
3783
+ PluginDesignAlignArgs,
3046
3784
  PluginDesignApi,
3047
3785
  PluginDesignBooleanApi,
3048
3786
  PluginDesignBooleanIntersectArgs,
@@ -3054,6 +3792,7 @@ export {
3054
3792
  PluginDesignCreateCeilingArgs,
3055
3793
  PluginDesignCreateColumnArgs,
3056
3794
  PluginDesignCreateCopyArgs,
3795
+ PluginDesignCreateDoorArgs,
3057
3796
  PluginDesignCreateFloorArgs,
3058
3797
  PluginDesignCreateFurnitureArgs,
3059
3798
  PluginDesignCreateMassArgs,
@@ -3063,9 +3802,13 @@ export {
3063
3802
  PluginDesignCreateSpaceArgs,
3064
3803
  PluginDesignCreateStaircaseArgs,
3065
3804
  PluginDesignCreateWallsArgs,
3805
+ PluginDesignCreateWindowArgs,
3066
3806
  PluginDesignDeleteApi,
3067
3807
  PluginDesignDeleteEntitiesArgs,
3068
3808
  PluginDesignDoorArgs,
3809
+ PluginDesignDoorExistsArgs,
3810
+ PluginDesignDoorGetCatalogItemArgs,
3811
+ PluginDesignDoorListCatalogArgs,
3069
3812
  PluginDesignDoorMirrorArgs,
3070
3813
  PluginDesignDoorSetHeightArgs,
3071
3814
  PluginDesignDoorSetWidthArgs,
@@ -3078,16 +3821,22 @@ export {
3078
3821
  PluginDesignFurnitureExistsArgs,
3079
3822
  PluginDesignFurnitureGetCatalogItemArgs,
3080
3823
  PluginDesignFurnitureListCatalogArgs,
3824
+ PluginDesignIsAreaLockedArgs,
3081
3825
  PluginDesignIsLockedArgs,
3082
3826
  PluginDesignListErasableEdgesArgs,
3827
+ PluginDesignLockAreaArgs,
3083
3828
  PluginDesignLockArgs,
3084
3829
  PluginDesignMaterialsApi,
3085
3830
  PluginDesignMaterialsApplyArgs,
3831
+ PluginDesignMaterialsApplyToFacesArgs,
3086
3832
  PluginDesignMaterialsComponentArgs,
3087
3833
  PluginDesignMaterialsCreateArgs,
3834
+ PluginDesignMaterialsGetByFaceArgs,
3088
3835
  PluginDesignMaterialsGetInfoArgs,
3089
3836
  PluginDesignMaterialsListArgs,
3837
+ PluginDesignMaterialsListByFaceArgs,
3090
3838
  PluginDesignMaterialsResetArgs,
3839
+ PluginDesignMaterialsResetFacesArgs,
3091
3840
  PluginDesignMoveArgs,
3092
3841
  PluginDesignOffsetSplitArgs,
3093
3842
  PluginDesignQueryApi,
@@ -3109,10 +3858,16 @@ export {
3109
3858
  PluginDesignSelectionApi,
3110
3859
  PluginDesignSelectionRemoveArgs,
3111
3860
  PluginDesignSelectionSetArgs,
3861
+ PluginDesignSetLabelArgs,
3112
3862
  PluginDesignTransformApi,
3863
+ PluginDesignUnlockAreaArgs,
3113
3864
  PluginDesignUnlockArgs,
3114
3865
  PluginDesignUpdateApi,
3866
+ PluginDesignUpdateStaircaseArgs,
3115
3867
  PluginDesignWindowArgs,
3868
+ PluginDesignWindowExistsArgs,
3869
+ PluginDesignWindowGetCatalogItemArgs,
3870
+ PluginDesignWindowListCatalogArgs,
3116
3871
  PluginDesignWindowSetHeightArgs,
3117
3872
  PluginDesignWindowSetWidthArgs,
3118
3873
  PluginDesignWindowsApi,
@@ -3121,6 +3876,9 @@ export {
3121
3876
  PluginEntityMeasurements,
3122
3877
  PluginEntityProperties,
3123
3878
  PluginEntityType,
3879
+ PluginError,
3880
+ PluginExecutionError,
3881
+ PluginFaceMaterial,
3124
3882
  PluginFurnitureCatalogItem,
3125
3883
  PluginGeomApi,
3126
3884
  PluginGeomCreateApi,
@@ -3298,15 +4056,29 @@ export {
3298
4056
  PluginGeomUpdateProfileSimplifyArgs,
3299
4057
  PluginGridApi,
3300
4058
  PluginGridValueArgs,
4059
+ PluginHandleError,
3301
4060
  PluginHistoryApi,
3302
4061
  PluginHistoryStepArgs,
3303
4062
  PluginHistoryStepResult,
4063
+ PluginImportCadJsonArgs,
4064
+ PluginImportDwgArgs,
4065
+ PluginImportImageArgs,
4066
+ PluginImportJobArgs,
4067
+ PluginImportModelArgs,
4068
+ PluginImportPdfArgs,
4069
+ PluginImportTerrainArgs,
4070
+ PluginInternalError,
4071
+ PluginLifecycleError,
3304
4072
  PluginMassType,
3305
4073
  PluginMaterialInfo,
3306
4074
  PluginMaterialResult,
3307
4075
  PluginMaterialSpec,
3308
4076
  PluginMathApi,
3309
4077
  PluginMirrorAxis,
4078
+ PluginNotFoundError,
4079
+ PluginObjectCatalogGroup,
4080
+ PluginObjectCatalogItem,
4081
+ PluginPermissionError,
3310
4082
  PluginPresentationAIInspirationApi,
3311
4083
  PluginPresentationApi,
3312
4084
  PluginPresentationDiagramsApi,
@@ -3325,6 +4097,9 @@ export {
3325
4097
  PluginPresentationSheetsPlaceArgs,
3326
4098
  PluginPresentationSheetsPlaceResult,
3327
4099
  PluginPresentationView,
4100
+ PluginPresentationViewColorMode,
4101
+ PluginPresentationViewLabel,
4102
+ PluginPresentationViewSettings,
3328
4103
  PluginPresentationViewType,
3329
4104
  PluginPresentationViewsApi,
3330
4105
  PluginPresentationViewsCaptureArgs,
@@ -3333,9 +4108,13 @@ export {
3333
4108
  PluginPresentationViewsCreateResult,
3334
4109
  PluginPresentationViewsGetArgs,
3335
4110
  PluginPresentationViewsGetResult,
4111
+ PluginPresentationViewsGetSettingsArgs,
4112
+ PluginPresentationViewsGetSettingsResult,
3336
4113
  PluginPresentationViewsListResult,
3337
4114
  PluginPresentationViewsSetActiveArgs,
3338
4115
  PluginPresentationViewsSetActiveResult,
4116
+ PluginPresentationViewsUpdateSettingsArgs,
4117
+ PluginPresentationViewsUpdateSettingsResult,
3339
4118
  PluginProgramAdjacencyApi,
3340
4119
  PluginProgramAdjacencyComputeResult,
3341
4120
  PluginProgramAdjacencyGetMatrixArgs,
@@ -3384,7 +4163,11 @@ export {
3384
4163
  PluginProgramDepartmentsUpdateArgs,
3385
4164
  PluginProgramDepartmentsUpdateResult,
3386
4165
  PluginProgramLayoutApi,
4166
+ PluginProgramLayoutJobState,
4167
+ PluginProgramLayoutJobStatus,
4168
+ PluginProgramLayoutRunArgs,
3387
4169
  PluginProgramLayoutRunResult,
4170
+ PluginProgramLayoutStateResult,
3388
4171
  PluginProgramMetricsApi,
3389
4172
  PluginProgramMetricsSummary,
3390
4173
  PluginProgramSiteApi,
@@ -3393,6 +4176,9 @@ export {
3393
4176
  PluginProgramSiteContextResult,
3394
4177
  PluginProgramSiteListGeoPolygonsResult,
3395
4178
  PluginProgramSiteListPolygonsResult,
4179
+ PluginProgramSiteLocation,
4180
+ PluginProgramSiteLocationResult,
4181
+ PluginProgramSiteNorthAngleResult,
3396
4182
  PluginProgramSiteSnapshot,
3397
4183
  PluginProgramSpreadsheetAddChartArgs,
3398
4184
  PluginProgramSpreadsheetAddChartResult,
@@ -3444,6 +4230,9 @@ export {
3444
4230
  PluginProjectApi,
3445
4231
  PluginProjectSettingsApi,
3446
4232
  PluginQuatApi,
4233
+ PluginQueryCadLayersArgs,
4234
+ PluginQueryPdfPageCountArgs,
4235
+ PluginQuotaError,
3447
4236
  PluginReferenceLineApi,
3448
4237
  PluginReferenceLineCreateMultiArgs,
3449
4238
  PluginReferenceLineCreateMultiResult,
@@ -3453,6 +4242,8 @@ export {
3453
4242
  PluginReferenceLineGetProperty,
3454
4243
  PluginReferenceLineGetResult,
3455
4244
  PluginReferenceLineStyle,
4245
+ PluginSelectionEntityType,
4246
+ PluginSelectionFilter,
3456
4247
  PluginSheetPosition,
3457
4248
  PluginSiteBounds,
3458
4249
  PluginSiteContextParcel,
@@ -3461,6 +4252,8 @@ export {
3461
4252
  PluginSiteLatLng,
3462
4253
  PluginSitePolygon,
3463
4254
  PluginSlabType,
4255
+ PluginSmartLayoutArgs,
4256
+ PluginSmartLayoutResult,
3464
4257
  PluginSnapValueArgs,
3465
4258
  PluginSnapsApi,
3466
4259
  PluginSpaceBulkCreateArgs,
@@ -3517,21 +4310,36 @@ export {
3517
4310
  PluginSpreadsheetTransactionOp,
3518
4311
  PluginSpreadsheetVerticalAlign,
3519
4312
  PluginSpreadsheetWhenExists,
4313
+ PluginStaircaseParamUpdates,
4314
+ PluginStaircaseParams,
3520
4315
  PluginStaircasePreset,
3521
4316
  PluginStoryApi,
3522
4317
  PluginStoryCreateArgs,
3523
4318
  PluginStoryCreateResult,
4319
+ PluginStoryDuplicateArgs,
4320
+ PluginStoryDuplicateResult,
3524
4321
  PluginStoryGetAllResult,
3525
4322
  PluginStoryGetArgs,
3526
4323
  PluginStoryGetProperty,
3527
4324
  PluginStoryGetResult,
3528
4325
  PluginStoryUpdateArgs,
3529
4326
  PluginStoryUpdateResult,
4327
+ PluginTerrainSetDatumArgs,
4328
+ PluginTerrainSetOpacityArgs,
4329
+ PluginTimeoutError,
3530
4330
  PluginToleranceArgs,
4331
+ PluginTransportError,
4332
+ PluginUnderlayListArgs,
4333
+ PluginUnderlayPlanSize,
4334
+ PluginUnderlayRefArgs,
4335
+ PluginUnderlaySetOpacityArgs,
4336
+ PluginUnderlaySetScaleArgs,
4337
+ PluginUnderlaySetScaleValue,
3531
4338
  PluginUnitsApi,
3532
4339
  PluginUnitsConvertArgs,
3533
4340
  PluginUnitsSetTypeArgs,
3534
4341
  PluginUpdateSpaceItem,
4342
+ PluginValidationError,
3535
4343
  PluginVec3Api,
3536
4344
  PluginWellKnownDepartmentId,
3537
4345
  PluginWindowDimensions,
@@ -3539,9 +4347,17 @@ export {
3539
4347
  ProfileHandle,
3540
4348
  QuatComponents,
3541
4349
  QuatHandle,
4350
+ TerrainHandle,
4351
+ TerrainReport,
4352
+ UnderlayHandle,
3542
4353
  Vec3Components,
3543
4354
  Vec3Handle,
3544
4355
  VertexHandle,
3545
- handleSchema
4356
+ fromEnvelope,
4357
+ handleSchema,
4358
+ isErrorEnvelope,
4359
+ isPluginErrorCode,
4360
+ makeClientEnvelope,
4361
+ newErrorId
3546
4362
  };
3547
4363
  //# sourceMappingURL=index.js.map