@snaptrude/plugin-core 0.3.0 → 0.5.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 (266) hide show
  1. package/AGENTS.md +130 -48
  2. package/CHANGELOG.md +111 -0
  3. package/api-manifest.full.json +3999 -0
  4. package/api-manifest.json +3845 -0
  5. package/dist/api/core/buildings.d.ts +427 -0
  6. package/dist/api/core/buildings.d.ts.map +1 -0
  7. package/dist/api/core/comment/index.d.ts +230 -0
  8. package/dist/api/core/comment/index.d.ts.map +1 -0
  9. package/dist/api/core/geom/create/index.d.ts +247 -0
  10. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  11. package/dist/api/core/geom/delete/index.d.ts +72 -0
  12. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  13. package/dist/api/core/geom/index.d.ts +24 -23
  14. package/dist/api/core/geom/index.d.ts.map +1 -1
  15. package/dist/api/core/geom/query/arc.d.ts +169 -0
  16. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  17. package/dist/api/core/geom/query/brep.d.ts +402 -0
  18. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  19. package/dist/api/core/geom/query/circle.d.ts +378 -0
  20. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  21. package/dist/api/core/geom/query/contour.d.ts +450 -0
  22. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  23. package/dist/api/core/geom/query/curve.d.ts +918 -0
  24. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  25. package/dist/api/core/geom/query/edge.d.ts +128 -0
  26. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  27. package/dist/api/core/geom/query/face.d.ts +363 -0
  28. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  29. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  30. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  31. package/dist/api/core/geom/query/index.d.ts +61 -0
  32. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/query/profile.d.ts +410 -0
  34. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  36. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  37. package/dist/api/core/geom/update/contour.d.ts +272 -0
  38. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  39. package/dist/api/core/geom/update/curve.d.ts +180 -0
  40. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  41. package/dist/api/core/geom/update/index.d.ts +27 -0
  42. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  43. package/dist/api/core/geom/update/profile.d.ts +329 -0
  44. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  45. package/dist/api/core/groups.d.ts +485 -0
  46. package/dist/api/core/groups.d.ts.map +1 -0
  47. package/dist/api/core/history/index.d.ts +78 -0
  48. package/dist/api/core/history/index.d.ts.map +1 -0
  49. package/dist/api/core/index.d.ts +46 -1
  50. package/dist/api/core/index.d.ts.map +1 -1
  51. package/dist/api/core/layers.d.ts +402 -0
  52. package/dist/api/core/layers.d.ts.map +1 -0
  53. package/dist/api/core/math/quat.d.ts +111 -128
  54. package/dist/api/core/math/quat.d.ts.map +1 -1
  55. package/dist/api/core/math/vec3.d.ts +120 -102
  56. package/dist/api/core/math/vec3.d.ts.map +1 -1
  57. package/dist/api/core/project/index.d.ts +399 -0
  58. package/dist/api/core/project/index.d.ts.map +1 -0
  59. package/dist/api/core/tags.d.ts +755 -0
  60. package/dist/api/core/tags.d.ts.map +1 -0
  61. package/dist/api/core/units/index.d.ts +175 -0
  62. package/dist/api/core/units/index.d.ts.map +1 -0
  63. package/dist/api/core/zoom/index.d.ts +45 -0
  64. package/dist/api/core/zoom/index.d.ts.map +1 -0
  65. package/dist/api/design/boolean/index.d.ts +168 -0
  66. package/dist/api/design/boolean/index.d.ts.map +1 -0
  67. package/dist/api/design/create/index.d.ts +828 -0
  68. package/dist/api/design/create/index.d.ts.map +1 -0
  69. package/dist/api/design/delete/index.d.ts +63 -0
  70. package/dist/api/design/delete/index.d.ts.map +1 -0
  71. package/dist/api/design/doors/index.d.ts +268 -0
  72. package/dist/api/design/doors/index.d.ts.map +1 -0
  73. package/dist/api/design/edit/index.d.ts +49 -0
  74. package/dist/api/design/edit/index.d.ts.map +1 -0
  75. package/dist/api/design/erase/index.d.ts +160 -0
  76. package/dist/api/design/erase/index.d.ts.map +1 -0
  77. package/dist/api/design/furniture/index.d.ts +123 -0
  78. package/dist/api/design/furniture/index.d.ts.map +1 -0
  79. package/dist/api/design/index.d.ts +153 -0
  80. package/dist/api/design/index.d.ts.map +1 -0
  81. package/dist/api/design/lock.d.ts +41 -0
  82. package/dist/api/design/lock.d.ts.map +1 -0
  83. package/dist/api/design/materials/index.d.ts +297 -0
  84. package/dist/api/design/materials/index.d.ts.map +1 -0
  85. package/dist/api/design/query/geometry/index.d.ts +140 -0
  86. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  87. package/dist/api/design/query/index.d.ts +1011 -0
  88. package/dist/api/design/query/index.d.ts.map +1 -0
  89. package/dist/api/design/query/spaces.d.ts +221 -0
  90. package/dist/api/design/query/spaces.d.ts.map +1 -0
  91. package/dist/api/design/selection/index.d.ts +138 -0
  92. package/dist/api/design/selection/index.d.ts.map +1 -0
  93. package/dist/api/design/shared.d.ts +38 -0
  94. package/dist/api/design/shared.d.ts.map +1 -0
  95. package/dist/api/design/transform/index.d.ts +87 -0
  96. package/dist/api/design/transform/index.d.ts.map +1 -0
  97. package/dist/api/design/update/index.d.ts +178 -0
  98. package/dist/api/design/update/index.d.ts.map +1 -0
  99. package/dist/api/design/windows/index.d.ts +189 -0
  100. package/dist/api/design/windows/index.d.ts.map +1 -0
  101. package/dist/api/entity/buildableEnvelope.d.ts +261 -0
  102. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  103. package/dist/api/entity/department.d.ts +0 -98
  104. package/dist/api/entity/department.d.ts.map +1 -1
  105. package/dist/api/entity/index.d.ts +9 -9
  106. package/dist/api/entity/index.d.ts.map +1 -1
  107. package/dist/api/entity/referenceLine.d.ts +49 -106
  108. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  109. package/dist/api/entity/space.d.ts +482 -249
  110. package/dist/api/entity/space.d.ts.map +1 -1
  111. package/dist/api/entity/story.d.ts +49 -39
  112. package/dist/api/entity/story.d.ts.map +1 -1
  113. package/dist/api/index.d.ts +17 -12
  114. package/dist/api/index.d.ts.map +1 -1
  115. package/dist/api/presentation/aiInspiration.d.ts +440 -0
  116. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  117. package/dist/api/presentation/diagrams.d.ts +81 -0
  118. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  119. package/dist/api/presentation/import.d.ts +113 -0
  120. package/dist/api/presentation/import.d.ts.map +1 -0
  121. package/dist/api/presentation/index.d.ts +46 -0
  122. package/dist/api/presentation/index.d.ts.map +1 -0
  123. package/dist/api/presentation/sheets.d.ts +176 -0
  124. package/dist/api/presentation/sheets.d.ts.map +1 -0
  125. package/dist/api/presentation/views.d.ts +296 -0
  126. package/dist/api/presentation/views.d.ts.map +1 -0
  127. package/dist/api/program/adjacency.d.ts +155 -0
  128. package/dist/api/program/adjacency.d.ts.map +1 -0
  129. package/dist/api/program/areas.d.ts +360 -0
  130. package/dist/api/program/areas.d.ts.map +1 -0
  131. package/dist/api/program/classification.d.ts +135 -0
  132. package/dist/api/program/classification.d.ts.map +1 -0
  133. package/dist/api/program/cores.d.ts +174 -0
  134. package/dist/api/program/cores.d.ts.map +1 -0
  135. package/dist/api/program/departments.d.ts +431 -0
  136. package/dist/api/program/departments.d.ts.map +1 -0
  137. package/dist/api/program/index.d.ts +69 -0
  138. package/dist/api/program/index.d.ts.map +1 -0
  139. package/dist/api/program/layout.d.ts +63 -0
  140. package/dist/api/program/layout.d.ts.map +1 -0
  141. package/dist/api/program/metrics.d.ts +108 -0
  142. package/dist/api/program/metrics.d.ts.map +1 -0
  143. package/dist/api/program/site.d.ts +367 -0
  144. package/dist/api/program/site.d.ts.map +1 -0
  145. package/dist/api/program/spreadsheet.d.ts +2041 -0
  146. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  147. package/dist/handles.d.ts +138 -0
  148. package/dist/handles.d.ts.map +1 -0
  149. package/dist/host-utils.d.ts +7 -5
  150. package/dist/host-utils.d.ts.map +1 -1
  151. package/dist/index.cjs +4001 -904
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.ts +1 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +3392 -870
  156. package/dist/index.js.map +1 -1
  157. package/package.json +6 -2
  158. package/scripts/generate-manifest.mjs +193 -0
  159. package/scripts/generate-manifest.test.mjs +193 -0
  160. package/src/api/core/buildings.ts +485 -0
  161. package/src/api/core/comment/index.ts +258 -0
  162. package/src/api/core/geom/create/index.ts +293 -0
  163. package/src/api/core/geom/delete/index.ts +78 -0
  164. package/src/api/core/geom/index.ts +24 -23
  165. package/src/api/core/geom/query/arc.ts +169 -0
  166. package/src/api/core/geom/query/brep.ts +444 -0
  167. package/src/api/core/geom/query/circle.ts +404 -0
  168. package/src/api/core/geom/query/contour.ts +540 -0
  169. package/src/api/core/geom/query/curve.ts +1078 -0
  170. package/src/api/core/geom/query/edge.ts +130 -0
  171. package/src/api/core/geom/query/face.ts +403 -0
  172. package/src/api/core/geom/query/halfedge.ts +210 -0
  173. package/src/api/core/geom/query/index.ts +63 -0
  174. package/src/api/core/geom/query/profile.ts +473 -0
  175. package/src/api/core/geom/query/vertex.ts +205 -0
  176. package/src/api/core/geom/update/contour.ts +315 -0
  177. package/src/api/core/geom/update/curve.ts +209 -0
  178. package/src/api/core/geom/update/index.ts +29 -0
  179. package/src/api/core/geom/update/profile.ts +377 -0
  180. package/src/api/core/groups.ts +521 -0
  181. package/src/api/core/history/index.ts +84 -0
  182. package/src/api/core/index.ts +46 -1
  183. package/src/api/core/layers.ts +333 -0
  184. package/src/api/core/math/quat.ts +112 -235
  185. package/src/api/core/math/vec3.ts +124 -159
  186. package/src/api/core/project/index.ts +418 -0
  187. package/src/api/core/tags.ts +808 -0
  188. package/src/api/core/units/index.ts +164 -0
  189. package/src/api/core/zoom/index.ts +47 -0
  190. package/src/api/design/boolean/index.ts +179 -0
  191. package/src/api/design/create/index.ts +886 -0
  192. package/src/api/design/delete/index.ts +67 -0
  193. package/src/api/design/doors/index.ts +285 -0
  194. package/src/api/design/edit/index.ts +54 -0
  195. package/src/api/design/erase/index.ts +151 -0
  196. package/src/api/design/furniture/index.ts +130 -0
  197. package/src/api/design/index.ts +162 -0
  198. package/src/api/design/lock.ts +42 -0
  199. package/src/api/design/materials/index.ts +301 -0
  200. package/src/api/design/query/geometry/index.ts +166 -0
  201. package/src/api/design/query/index.ts +937 -0
  202. package/src/api/design/query/spaces.ts +132 -0
  203. package/src/api/design/selection/index.ts +144 -0
  204. package/src/api/design/shared.ts +40 -0
  205. package/src/api/design/transform/index.ts +93 -0
  206. package/src/api/design/update/index.ts +117 -0
  207. package/src/api/design/windows/index.ts +207 -0
  208. package/src/api/entity/buildableEnvelope.ts +318 -0
  209. package/src/api/entity/department.ts +0 -113
  210. package/src/api/entity/index.ts +9 -9
  211. package/src/api/entity/referenceLine.ts +50 -38
  212. package/src/api/entity/space.ts +285 -226
  213. package/src/api/entity/story.ts +53 -42
  214. package/src/api/index.ts +17 -12
  215. package/src/api/presentation/aiInspiration.ts +362 -0
  216. package/src/api/presentation/diagrams.ts +84 -0
  217. package/src/api/presentation/import.ts +112 -0
  218. package/src/api/presentation/index.ts +48 -0
  219. package/src/api/presentation/sheets.ts +198 -0
  220. package/src/api/presentation/views.ts +303 -0
  221. package/src/api/program/adjacency.ts +164 -0
  222. package/src/api/program/areas.ts +335 -0
  223. package/src/api/program/classification.ts +138 -0
  224. package/src/api/program/cores.ts +171 -0
  225. package/src/api/program/departments.ts +465 -0
  226. package/src/api/program/index.ts +71 -0
  227. package/src/api/program/layout.ts +68 -0
  228. package/src/api/program/metrics.ts +120 -0
  229. package/src/api/program/site.ts +326 -0
  230. package/src/api/program/spreadsheet.ts +2075 -0
  231. package/src/handles.ts +148 -0
  232. package/src/host-utils.ts +10 -6
  233. package/src/index.ts +1 -0
  234. package/dist/api/core/geom/arc.d.ts +0 -81
  235. package/dist/api/core/geom/arc.d.ts.map +0 -1
  236. package/dist/api/core/geom/curve.d.ts +0 -70
  237. package/dist/api/core/geom/curve.d.ts.map +0 -1
  238. package/dist/api/core/geom/line.d.ts +0 -56
  239. package/dist/api/core/geom/line.d.ts.map +0 -1
  240. package/dist/api/core/geom/profile.d.ts +0 -121
  241. package/dist/api/core/geom/profile.d.ts.map +0 -1
  242. package/dist/api/tools/copy.d.ts +0 -59
  243. package/dist/api/tools/copy.d.ts.map +0 -1
  244. package/dist/api/tools/index.d.ts +0 -33
  245. package/dist/api/tools/index.d.ts.map +0 -1
  246. package/dist/api/tools/material.d.ts +0 -51
  247. package/dist/api/tools/material.d.ts.map +0 -1
  248. package/dist/api/tools/offset.d.ts +0 -43
  249. package/dist/api/tools/offset.d.ts.map +0 -1
  250. package/dist/api/tools/selection.d.ts +0 -48
  251. package/dist/api/tools/selection.d.ts.map +0 -1
  252. package/dist/api/tools/transform.d.ts +0 -114
  253. package/dist/api/tools/transform.d.ts.map +0 -1
  254. package/dist/api/units/index.d.ts +0 -163
  255. package/dist/api/units/index.d.ts.map +0 -1
  256. package/src/api/core/geom/arc.ts +0 -70
  257. package/src/api/core/geom/curve.ts +0 -41
  258. package/src/api/core/geom/line.ts +0 -53
  259. package/src/api/core/geom/profile.ts +0 -94
  260. package/src/api/tools/copy.ts +0 -55
  261. package/src/api/tools/index.ts +0 -39
  262. package/src/api/tools/material.ts +0 -49
  263. package/src/api/tools/offset.ts +0 -43
  264. package/src/api/tools/selection.ts +0 -51
  265. package/src/api/tools/transform.ts +0 -117
  266. package/src/api/units/index.ts +0 -163
package/dist/index.js CHANGED
@@ -1,444 +1,14 @@
1
1
  // src/api/core/math/vec3.ts
2
- import * as z from "zod";
3
2
  var PluginVec3Api = class {
4
3
  constructor() {
5
4
  }
6
- /**
7
- * Create a new 3D vector.
8
- *
9
- * @param x - The X component
10
- * @param y - The Y component
11
- * @param z - The Z component
12
- * @returns A new {@linkcode PVec3}
13
- *
14
- * # Example
15
- * ```ts
16
- * const position = snaptrude.core.math.vec3.new(1, 2, 3)
17
- * // { x: 1, y: 2, z: 3 }
18
- * ```
19
- */
20
- new(x, y, z17) {
21
- return { x, y, z: z17 };
22
- }
23
- /**
24
- * Add two vectors component-wise.
25
- *
26
- * @param a - First vector
27
- * @param b - Second vector
28
- * @returns A new {@linkcode PVec3} where each component is `a[i] + b[i]`
29
- */
30
- add(a, b) {
31
- return { x: a.x + b.x, y: a.y + b.y, z: a.z + b.z };
32
- }
33
- /**
34
- * Subtract vector {@linkcode b} from vector {@linkcode a} component-wise.
35
- *
36
- * @param a - Vector to subtract from
37
- * @param b - Vector to subtract
38
- * @returns A new {@linkcode PVec3} where each component is `a[i] - b[i]`
39
- */
40
- subtract(a, b) {
41
- return { x: a.x - b.x, y: a.y - b.y, z: a.z - b.z };
42
- }
43
- /**
44
- * Scale a vector by a scalar value.
45
- *
46
- * @param v - The vector to scale
47
- * @param scalar - The scalar multiplier
48
- * @returns A new {@linkcode PVec3} where each component is `v[i] * scalar`
49
- */
50
- scale(v, scalar) {
51
- return { x: v.x * scalar, y: v.y * scalar, z: v.z * scalar };
52
- }
53
- /**
54
- * Compute the dot product of two vectors.
55
- *
56
- * The dot product equals `|a| * |b| * cos(θ)` where `θ` is the angle
57
- * between the vectors. Useful for checking orthogonality (result = 0)
58
- * or projection.
59
- *
60
- * @param a - First vector
61
- * @param b - Second vector
62
- * @returns The scalar dot product
63
- */
64
- dot(a, b) {
65
- return a.x * b.x + a.y * b.y + a.z * b.z;
66
- }
67
- /**
68
- * Compute the cross product of two vectors.
69
- *
70
- * The result is a vector perpendicular to both inputs, with magnitude
71
- * equal to the area of the parallelogram they span. Useful for computing
72
- * surface normals.
73
- *
74
- * @param a - First vector
75
- * @param b - Second vector
76
- * @returns A new {@linkcode PVec3} perpendicular to both {@linkcode a} and {@linkcode b}
77
- */
78
- cross(a, b) {
79
- return {
80
- x: a.y * b.z - a.z * b.y,
81
- y: a.z * b.x - a.x * b.z,
82
- z: a.x * b.y - a.y * b.x
83
- };
84
- }
85
- /**
86
- * Compute the length (magnitude) of a vector.
87
- *
88
- * @param v - The vector
89
- * @returns The Euclidean length `√(x² + y² + z²)`
90
- */
91
- length(v) {
92
- return Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
93
- }
94
- /**
95
- * Compute the squared length of a vector.
96
- *
97
- * Avoids the `sqrt` call — prefer this over {@linkcode PluginVec3Api.length}
98
- * when comparing relative magnitudes.
99
- *
100
- * @param v - The vector
101
- * @returns The squared length `x² + y² + z²`
102
- */
103
- lengthSquared(v) {
104
- return v.x * v.x + v.y * v.y + v.z * v.z;
105
- }
106
- /**
107
- * Normalize a vector to unit length.
108
- *
109
- * @param v - The vector to normalize
110
- * @returns A new unit-length {@linkcode PVec3} in the same direction,
111
- * or a zero vector `(0, 0, 0)` if the input has zero length
112
- */
113
- normalize(v) {
114
- const len = this.length(v);
115
- if (len === 0) return { x: 0, y: 0, z: 0 };
116
- return { x: v.x / len, y: v.y / len, z: v.z / len };
117
- }
118
- /**
119
- * Compute the Euclidean distance between two points.
120
- *
121
- * @param a - First point
122
- * @param b - Second point
123
- * @returns The distance `|a - b|`
124
- */
125
- distance(a, b) {
126
- return this.length(this.subtract(a, b));
127
- }
128
- /**
129
- * Linearly interpolate between two vectors.
130
- *
131
- * @param a - Start vector (returned when `t = 0`)
132
- * @param b - End vector (returned when `t = 1`)
133
- * @param t - Interpolation factor, typically in `[0, 1]`
134
- * @returns A new {@linkcode PVec3} at `a + (b - a) * t`
135
- */
136
- lerp(a, b, t) {
137
- return {
138
- x: a.x + (b.x - a.x) * t,
139
- y: a.y + (b.y - a.y) * t,
140
- z: a.z + (b.z - a.z) * t
141
- };
142
- }
143
- /**
144
- * Negate a vector (reverse its direction).
145
- *
146
- * @param v - The vector to negate
147
- * @returns A new {@linkcode PVec3} with all components negated
148
- */
149
- negate(v) {
150
- return { x: -v.x, y: -v.y, z: -v.z };
151
- }
152
- /**
153
- * Check if two vectors are exactly equal (strict equality per component).
154
- *
155
- * For floating-point comparisons, prefer {@linkcode PluginVec3Api.equalsApprox}.
156
- *
157
- * @param a - First vector
158
- * @param b - Second vector
159
- * @returns `true` if all components match exactly
160
- */
161
- equals(a, b) {
162
- return a.x === b.x && a.y === b.y && a.z === b.z;
163
- }
164
- /**
165
- * Check if two vectors are approximately equal within a tolerance.
166
- *
167
- * @param a - First vector
168
- * @param b - Second vector
169
- * @param epsilon - Maximum allowed difference per component (default `1e-6`)
170
- * @returns `true` if `|a[i] - b[i]| < epsilon` for all components
171
- */
172
- equalsApprox(a, b, epsilon = 1e-6) {
173
- return Math.abs(a.x - b.x) < epsilon && Math.abs(a.y - b.y) < epsilon && Math.abs(a.z - b.z) < epsilon;
174
- }
175
- };
176
- var PVec3 = z.object({
177
- x: z.number(),
178
- y: z.number(),
179
- z: z.number()
180
- });
5
+ };
181
6
 
182
7
  // src/api/core/math/quat.ts
183
- import * as z2 from "zod";
184
8
  var PluginQuatApi = class {
185
9
  constructor() {
186
10
  }
187
- /**
188
- * Create a new quaternion from raw components.
189
- *
190
- * For most use cases prefer {@linkcode PluginQuatApi.fromAxisAngle}
191
- * or {@linkcode PluginQuatApi.fromEuler} instead.
192
- *
193
- * @param x - The X component
194
- * @param y - The Y component
195
- * @param z - The Z component
196
- * @param w - The W (scalar) component
197
- * @returns A new {@linkcode PQuat}
198
- */
199
- new(x, y, z17, w) {
200
- return { x, y, z: z17, w };
201
- }
202
- /**
203
- * Create an identity quaternion representing no rotation.
204
- *
205
- * @returns `{ x: 0, y: 0, z: 0, w: 1 }`
206
- */
207
- identity() {
208
- return { x: 0, y: 0, z: 0, w: 1 };
209
- }
210
- /**
211
- * Create a quaternion from an axis and an angle.
212
- *
213
- * @param axis - The rotation axis as a {@linkcode PVec3} (will be normalized internally)
214
- * @param angle - The rotation angle in **radians**
215
- * @returns A new unit {@linkcode PQuat}, or identity if {@linkcode axis} has zero length
216
- *
217
- * # Example
218
- * ```ts
219
- * const { vec3, quat } = snaptrude.core.math
220
- * // 90° rotation around the Y axis
221
- * const rot = quat.fromAxisAngle(vec3.new(0, 1, 0), Math.PI / 2)
222
- * ```
223
- */
224
- fromAxisAngle(axis, angle) {
225
- const halfAngle = angle / 2;
226
- const s = Math.sin(halfAngle);
227
- const len = Math.sqrt(axis.x * axis.x + axis.y * axis.y + axis.z * axis.z);
228
- if (len === 0) return { x: 0, y: 0, z: 0, w: 1 };
229
- return {
230
- x: axis.x / len * s,
231
- y: axis.y / len * s,
232
- z: axis.z / len * s,
233
- w: Math.cos(halfAngle)
234
- };
235
- }
236
- /**
237
- * Create a quaternion from Euler angles in **XYZ** rotation order.
238
- *
239
- * @param x - Rotation around X axis in **radians**
240
- * @param y - Rotation around Y axis in **radians**
241
- * @param z - Rotation around Z axis in **radians**
242
- * @returns A new {@linkcode PQuat}
243
- */
244
- fromEuler(x, y, z17) {
245
- const cx = Math.cos(x / 2);
246
- const sx = Math.sin(x / 2);
247
- const cy = Math.cos(y / 2);
248
- const sy = Math.sin(y / 2);
249
- const cz = Math.cos(z17 / 2);
250
- const sz = Math.sin(z17 / 2);
251
- return {
252
- x: sx * cy * cz + cx * sy * sz,
253
- y: cx * sy * cz - sx * cy * sz,
254
- z: cx * cy * sz + sx * sy * cz,
255
- w: cx * cy * cz - sx * sy * sz
256
- };
257
- }
258
- /**
259
- * Multiply two quaternions, combining their rotations.
260
- *
261
- * Quaternion multiplication is **not commutative**: `a * b ≠ b * a`.
262
- * The result applies rotation {@linkcode b} first, then {@linkcode a}.
263
- *
264
- * @param a - First quaternion (applied second)
265
- * @param b - Second quaternion (applied first)
266
- * @returns A new {@linkcode PQuat} representing the combined rotation
267
- */
268
- multiply(a, b) {
269
- return {
270
- x: a.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y,
271
- y: a.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x,
272
- z: a.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w,
273
- w: a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z
274
- };
275
- }
276
- /**
277
- * Compute the conjugate of a quaternion.
278
- *
279
- * For unit quaternions the conjugate equals the inverse.
280
- *
281
- * @param q - The quaternion
282
- * @returns A new {@linkcode PQuat} with negated vector part `(-x, -y, -z, w)`
283
- */
284
- conjugate(q) {
285
- return { x: -q.x, y: -q.y, z: -q.z, w: q.w };
286
- }
287
- /**
288
- * Compute the length (magnitude) of a quaternion.
289
- *
290
- * @param q - The quaternion
291
- * @returns The magnitude `√(x² + y² + z² + w²)`
292
- */
293
- length(q) {
294
- return Math.sqrt(q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w);
295
- }
296
- /**
297
- * Normalize a quaternion to unit length.
298
- *
299
- * @param q - The quaternion to normalize
300
- * @returns A new unit-length {@linkcode PQuat}, or identity if the input has zero length
301
- */
302
- normalize(q) {
303
- const len = this.length(q);
304
- if (len === 0) return { x: 0, y: 0, z: 0, w: 1 };
305
- return { x: q.x / len, y: q.y / len, z: q.z / len, w: q.w / len };
306
- }
307
- /**
308
- * Compute the inverse of a quaternion.
309
- *
310
- * The inverse satisfies `q * inverse(q) = identity`.
311
- *
312
- * @param q - The quaternion to invert
313
- * @returns A new {@linkcode PQuat} that is the multiplicative inverse,
314
- * or identity if the input has zero length
315
- */
316
- inverse(q) {
317
- const lenSq = q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w;
318
- if (lenSq === 0) return { x: 0, y: 0, z: 0, w: 1 };
319
- return { x: -q.x / lenSq, y: -q.y / lenSq, z: -q.z / lenSq, w: q.w / lenSq };
320
- }
321
- /**
322
- * Rotate a 3D vector by a quaternion.
323
- *
324
- * Computes `q * v * conjugate(q)` using the Hamilton product.
325
- *
326
- * @param q - The rotation quaternion (should be unit-length)
327
- * @param v - The vector to rotate as a {@linkcode PVec3}
328
- * @returns A new rotated {@linkcode PVec3}
329
- *
330
- * # Example
331
- * ```ts
332
- * const { vec3, quat } = snaptrude.core.math
333
- * const rot = quat.fromAxisAngle(vec3.new(0, 1, 0), Math.PI / 2)
334
- * const rotated = quat.rotateVec3(rot, vec3.new(1, 0, 0))
335
- * // ≈ { x: 0, y: 0, z: -1 }
336
- * ```
337
- */
338
- rotateVec3(q, v) {
339
- const vq = { x: v.x, y: v.y, z: v.z, w: 0 };
340
- const conj = this.conjugate(q);
341
- const result = this.multiply(this.multiply(q, vq), conj);
342
- return { x: result.x, y: result.y, z: result.z };
343
- }
344
- /**
345
- * Convert a quaternion to axis-angle representation.
346
- *
347
- * @param q - The quaternion to convert
348
- * @returns An object with:
349
- * - `axis` — The rotation axis as a unit {@linkcode PVec3}
350
- * (defaults to `(1, 0, 0)` when angle is zero)
351
- * - `angle` — The rotation angle in **radians**
352
- */
353
- toAxisAngle(q) {
354
- const nq = this.normalize(q);
355
- const angle = 2 * Math.acos(Math.min(1, Math.max(-1, nq.w)));
356
- const s = Math.sin(angle / 2);
357
- if (s < 1e-6) {
358
- return { axis: { x: 1, y: 0, z: 0 }, angle: 0 };
359
- }
360
- return {
361
- axis: { x: nq.x / s, y: nq.y / s, z: nq.z / s },
362
- angle
363
- };
364
- }
365
- /**
366
- * Spherical linear interpolation between two quaternions.
367
- *
368
- * Produces smooth constant-speed rotation between {@linkcode a} and {@linkcode b}.
369
- *
370
- * @param a - Start quaternion (returned when `t = 0`)
371
- * @param b - End quaternion (returned when `t = 1`)
372
- * @param t - Interpolation factor, typically in `[0, 1]`
373
- * @returns A new interpolated {@linkcode PQuat}
374
- */
375
- slerp(a, b, t) {
376
- let cosHalf = a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
377
- let bx = b.x, by = b.y, bz = b.z, bw = b.w;
378
- if (cosHalf < 0) {
379
- cosHalf = -cosHalf;
380
- bx = -bx;
381
- by = -by;
382
- bz = -bz;
383
- bw = -bw;
384
- }
385
- if (cosHalf >= 1) {
386
- return { x: a.x, y: a.y, z: a.z, w: a.w };
387
- }
388
- const halfAngle = Math.acos(cosHalf);
389
- const sinHalf = Math.sin(halfAngle);
390
- const ratioA = Math.sin((1 - t) * halfAngle) / sinHalf;
391
- const ratioB = Math.sin(t * halfAngle) / sinHalf;
392
- return {
393
- x: a.x * ratioA + bx * ratioB,
394
- y: a.y * ratioA + by * ratioB,
395
- z: a.z * ratioA + bz * ratioB,
396
- w: a.w * ratioA + bw * ratioB
397
- };
398
- }
399
- /**
400
- * Compute the dot product of two quaternions.
401
- *
402
- * A value close to `1` or `-1` indicates similar orientations;
403
- * a value close to `0` indicates maximally different orientations.
404
- *
405
- * @param a - First quaternion
406
- * @param b - Second quaternion
407
- * @returns The scalar dot product
408
- */
409
- dot(a, b) {
410
- return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
411
- }
412
- /**
413
- * Check if two quaternions are exactly equal (strict equality per component).
414
- *
415
- * For floating-point comparisons, prefer {@linkcode PluginQuatApi.equalsApprox}.
416
- *
417
- * @param a - First quaternion
418
- * @param b - Second quaternion
419
- * @returns `true` if all components match exactly
420
- */
421
- equals(a, b) {
422
- return a.x === b.x && a.y === b.y && a.z === b.z && a.w === b.w;
423
- }
424
- /**
425
- * Check if two quaternions are approximately equal within a tolerance.
426
- *
427
- * @param a - First quaternion
428
- * @param b - Second quaternion
429
- * @param epsilon - Maximum allowed difference per component (default `1e-6`)
430
- * @returns `true` if `|a[i] - b[i]| < epsilon` for all components
431
- */
432
- equalsApprox(a, b, epsilon = 1e-6) {
433
- return Math.abs(a.x - b.x) < epsilon && Math.abs(a.y - b.y) < epsilon && Math.abs(a.z - b.z) < epsilon && Math.abs(a.w - b.w) < epsilon;
434
- }
435
- };
436
- var PQuat = z2.object({
437
- x: z2.number(),
438
- y: z2.number(),
439
- z: z2.number(),
440
- w: z2.number()
441
- });
11
+ };
442
12
 
443
13
  // src/api/core/math/index.ts
444
14
  var PluginMathApi = class {
@@ -446,499 +16,2876 @@ var PluginMathApi = class {
446
16
  }
447
17
  };
448
18
 
449
- // src/api/core/geom/line.ts
450
- import * as z3 from "zod";
451
- var PluginLineApi = class {
452
- constructor() {
453
- }
454
- /**
455
- * Create a new line segment between two points.
456
- *
457
- * @param startPoint - The start point as a {@linkcode PVec3}
458
- * @param endPoint - The end point as a {@linkcode PVec3}
459
- * @returns A new {@linkcode PLine}
460
- *
461
- * # Example
462
- * ```ts
463
- * const { vec3 } = snaptrude.core.math
464
- * const { line } = snaptrude.core.geom
465
- *
466
- * const edge = line.new(vec3.new(0, 0, 0), vec3.new(5, 0, 0))
467
- * ```
468
- */
469
- new(startPoint, endPoint) {
470
- return { curveType: "Line", startPoint, endPoint };
471
- }
472
- };
473
- var PLine = z3.object({
474
- curveType: z3.literal("Line"),
475
- startPoint: PVec3,
476
- endPoint: PVec3
477
- });
478
-
479
- // src/api/core/geom/arc.ts
480
- import * as z4 from "zod";
481
- var PluginArcApi = class {
482
- constructor() {
483
- }
484
- /**
485
- * Create a new arc from start, end, centre, and axis.
486
- *
487
- * The arc sweeps from {@linkcode startPoint} to {@linkcode endPoint}
488
- * along the circle centred at {@linkcode centrePoint}, in the
489
- * direction determined by the right-hand rule around {@linkcode axis}.
490
- *
491
- * @param startPoint - The start point as a {@linkcode PVec3}
492
- * @param endPoint - The end point as a {@linkcode PVec3}
493
- * @param centrePoint - The centre of the arc's circle as a {@linkcode PVec3}
494
- * @param axis - The arc's rotation axis as a {@linkcode PVec3}
495
- * (perpendicular to the arc's plane)
496
- * @returns A new {@linkcode PArc}
497
- *
498
- * # Example
499
- * ```ts
500
- * const { vec3 } = snaptrude.core.math
501
- * const { arc } = snaptrude.core.geom
502
- *
503
- * // Quarter-circle arc on the XZ plane
504
- * const a = arc.new(
505
- * vec3.new(1, 0, 0), // start
506
- * vec3.new(0, 0, 1), // end
507
- * vec3.new(0, 0, 0), // centre
508
- * vec3.new(0, 1, 0), // Y-up axis
509
- * )
510
- * ```
511
- */
512
- new(startPoint, endPoint, centrePoint, axis) {
513
- return { curveType: "Arc", startPoint, endPoint, centrePoint, axis };
514
- }
515
- };
516
- var PArc = z4.object({
517
- curveType: z4.literal("Arc"),
518
- startPoint: PVec3,
519
- endPoint: PVec3,
520
- centrePoint: PVec3,
521
- axis: PVec3
522
- });
523
-
524
- // src/api/core/geom/curve.ts
525
- import * as z5 from "zod";
526
- var PluginCurveApi = class {
19
+ // src/api/core/geom/create/index.ts
20
+ import * as z2 from "zod";
21
+
22
+ // src/handles.ts
23
+ import * as z from "zod";
24
+ var handleSchema = (kind) => z.string().regex(new RegExp(`^${kind}_[A-Za-z0-9_-]+$`), `expected a "${kind}" handle`).transform((s) => s);
25
+ var ProfileHandle = handleSchema("profile");
26
+ var ContourHandle = handleSchema("contour");
27
+ var MassHandle = handleSchema("mass");
28
+ var ComponentHandle = z.string().min(1).transform((s) => s);
29
+ var MaterialHandle = z.string().min(1).transform((s) => s);
30
+ var Vec3Handle = handleSchema("vec3");
31
+ var QuatHandle = handleSchema("quat");
32
+ var LineHandle = handleSchema("line");
33
+ var ArcHandle = handleSchema("arc");
34
+ var CurveHandle = z.union([LineHandle, ArcHandle]);
35
+ var CircleHandle = handleSchema("circle");
36
+ var BrepHandle = handleSchema("brep");
37
+ var FaceHandle = handleSchema("face");
38
+ var EdgeHandle = handleSchema("edge");
39
+ var HalfEdgeHandle = handleSchema("halfedge");
40
+ var VertexHandle = handleSchema("vertex");
41
+ var Vec3Components = z.object({ x: z.number(), y: z.number(), z: z.number() });
42
+ var QuatComponents = z.object({
43
+ x: z.number(),
44
+ y: z.number(),
45
+ z: z.number(),
46
+ w: z.number()
47
+ });
48
+ var BBoxComponents = z.object({ min: Vec3Components, max: Vec3Components });
49
+
50
+ // src/api/core/geom/create/index.ts
51
+ var PluginGeomCreateApi = class {
52
+ constructor() {
53
+ }
54
+ };
55
+ var PluginGeomCreateLineArgs = z2.object({
56
+ startPoint: Vec3Handle,
57
+ endPoint: Vec3Handle
58
+ });
59
+ var PluginGeomCreateArcArgs = z2.object({
60
+ startPoint: Vec3Handle,
61
+ endPoint: Vec3Handle,
62
+ centrePoint: Vec3Handle,
63
+ axis: Vec3Handle
64
+ });
65
+ var PluginGeomCreateCircleArgs = z2.object({
66
+ centrePoint: Vec3Handle,
67
+ axis: Vec3Handle,
68
+ radius: z2.number()
69
+ });
70
+ var PluginGeomCreateProfileFromLinePointsArgs = z2.object({
71
+ points: z2.array(Vec3Handle)
72
+ });
73
+ var PluginGeomCreateProfileFromCurvesArgs = z2.object({
74
+ curves: z2.array(CurveHandle)
75
+ });
76
+ var PluginGeomCreateContourFromProfileArgs = z2.object({
77
+ outer: ProfileHandle
78
+ });
79
+ var PluginGeomCreateContourFromProfilesArgs = z2.object({
80
+ outer: ProfileHandle,
81
+ holes: z2.array(ProfileHandle).optional()
82
+ });
83
+
84
+ // src/api/core/geom/query/curve.ts
85
+ import * as z3 from "zod";
86
+ var PluginGeomQueryCurveApi = class {
87
+ constructor() {
88
+ }
89
+ };
90
+ var PluginGeomQueryCurveGetStartPointArgs = z3.object({
91
+ curve: CurveHandle
92
+ });
93
+ var PluginGeomQueryCurveGetEndPointArgs = z3.object({
94
+ curve: CurveHandle
95
+ });
96
+ var PluginGeomQueryCurveGetMidPointArgs = z3.object({
97
+ curve: CurveHandle
98
+ });
99
+ var PluginGeomQueryCurveGetLengthArgs = z3.object({
100
+ curve: CurveHandle
101
+ });
102
+ var PluginGeomQueryCurveGetChordLengthArgs = z3.object({
103
+ curve: CurveHandle
104
+ });
105
+ var PluginGeomQueryCurveGetTangentArgs = z3.object({
106
+ curve: CurveHandle,
107
+ point: Vec3Handle
108
+ });
109
+ var PluginGeomQueryCurveGetNormalArgs = z3.object({
110
+ curve: CurveHandle,
111
+ point: Vec3Handle
112
+ });
113
+ var PluginGeomQueryCurveGetNearestPointArgs = z3.object({
114
+ curve: CurveHandle,
115
+ point: Vec3Handle
116
+ });
117
+ var PluginGeomQueryCurveGetProjectionArgs = z3.object({
118
+ curve: CurveHandle,
119
+ point: Vec3Handle
120
+ });
121
+ var PluginGeomQueryCurveGetPointAtDistanceArgs = z3.object({
122
+ curve: CurveHandle,
123
+ referencePoint: Vec3Handle,
124
+ distance: z3.number(),
125
+ forward: z3.boolean().optional()
126
+ });
127
+ var PluginGeomQueryCurveGetParameterAtPointArgs = z3.object({
128
+ curve: CurveHandle,
129
+ point: Vec3Handle
130
+ });
131
+ var PluginGeomQueryCurveGetCurvatureArgs = z3.object({
132
+ curve: CurveHandle,
133
+ point: Vec3Handle
134
+ });
135
+ var PluginGeomQueryCurveGetDistanceToPointArgs = z3.object({
136
+ curve: CurveHandle,
137
+ point: Vec3Handle
138
+ });
139
+ var PluginGeomQueryCurveGetDistanceAlongArgs = z3.object({
140
+ curve: CurveHandle,
141
+ pointA: Vec3Handle,
142
+ pointB: Vec3Handle
143
+ });
144
+ var PluginGeomQueryCurveListPointsArgs = z3.object({
145
+ curve: CurveHandle,
146
+ resolution: z3.number().optional()
147
+ });
148
+ var PluginGeomQueryCurveListSubdivisionsArgs = z3.object({
149
+ curve: CurveHandle,
150
+ segments: z3.number()
151
+ });
152
+ var PluginGeomQueryCurveIsLinearArgs = z3.object({
153
+ curve: CurveHandle
154
+ });
155
+ var PluginGeomQueryCurveIsOnCurveArgs = z3.object({
156
+ curve: CurveHandle,
157
+ point: Vec3Handle,
158
+ threshold: z3.number().optional()
159
+ });
160
+ var PluginGeomQueryCurveHasPointArgs = z3.object({
161
+ curve: CurveHandle,
162
+ point: Vec3Handle,
163
+ includeEndPoints: z3.boolean().optional()
164
+ });
165
+ var PluginGeomQueryCurveIsEqualArgs = z3.object({
166
+ curveA: CurveHandle,
167
+ curveB: CurveHandle
168
+ });
169
+ var PluginGeomQueryCurveIsOverlappingArgs = z3.object({
170
+ curveA: CurveHandle,
171
+ curveB: CurveHandle,
172
+ includeEndPoints: z3.boolean().optional()
173
+ });
174
+ var PluginGeomQueryCurveGetCommonPartArgs = z3.object({
175
+ curveA: CurveHandle,
176
+ curveB: CurveHandle
177
+ });
178
+ var PluginGeomQueryCurveListIntersectionsArgs = z3.object({
179
+ curveA: CurveHandle,
180
+ curveB: CurveHandle,
181
+ boundedA: z3.boolean().optional(),
182
+ boundedB: z3.boolean().optional()
183
+ });
184
+ var PluginGeomQueryCurveGetMergedCurveArgs = z3.object({
185
+ curveA: CurveHandle,
186
+ curveB: CurveHandle
187
+ });
188
+ var PluginGeomQueryCurveIsContinuousArgs = z3.object({
189
+ curveA: CurveHandle,
190
+ curveB: CurveHandle
191
+ });
192
+ var PluginGeomQueryCurveIsParallelArgs = z3.object({
193
+ lineA: LineHandle,
194
+ lineB: LineHandle,
195
+ tolerance: z3.number().optional()
196
+ });
197
+ var PluginGeomQueryCurveGetShortestGapArgs = z3.object({
198
+ curveA: CurveHandle,
199
+ curveB: CurveHandle,
200
+ includeEndPoints: z3.boolean().optional()
201
+ });
202
+ var PluginGeomQueryCurveGetDistanceBetweenArgs = z3.object({
203
+ lineA: LineHandle,
204
+ lineB: LineHandle
205
+ });
206
+
207
+ // src/api/core/geom/query/arc.ts
208
+ import * as z4 from "zod";
209
+ var PluginGeomQueryArcApi = class {
210
+ constructor() {
211
+ }
212
+ };
213
+ var PluginGeomQueryArcGetRadiusArgs = z4.object({ arc: ArcHandle });
214
+ var PluginGeomQueryArcGetCentreArgs = z4.object({ arc: ArcHandle });
215
+ var PluginGeomQueryArcGetAxisArgs = z4.object({ arc: ArcHandle });
216
+ var PluginGeomQueryArcGetSweepAngleArgs = z4.object({ arc: ArcHandle });
217
+ var PluginGeomQueryArcIsValidArgs = z4.object({ arc: ArcHandle });
218
+
219
+ // src/api/core/geom/query/circle.ts
220
+ import * as z5 from "zod";
221
+ var PluginGeomQueryCircleApi = class {
222
+ constructor() {
223
+ }
224
+ };
225
+ var PluginGeomQueryCircleGetRadiusArgs = z5.object({ circle: CircleHandle });
226
+ var PluginGeomQueryCircleGetCentreArgs = z5.object({ circle: CircleHandle });
227
+ var PluginGeomQueryCircleGetAxisArgs = z5.object({ circle: CircleHandle });
228
+ var PluginGeomQueryCircleGetLengthArgs = z5.object({ circle: CircleHandle });
229
+ var PluginGeomQueryCircleIsValidArgs = z5.object({ circle: CircleHandle });
230
+ var PluginGeomQueryCircleGetNearestPointArgs = z5.object({
231
+ circle: CircleHandle,
232
+ point: Vec3Handle
233
+ });
234
+ var PluginGeomQueryCircleHasPointArgs = z5.object({
235
+ circle: CircleHandle,
236
+ point: Vec3Handle
237
+ });
238
+ var PluginGeomQueryCircleGetTangentArgs = z5.object({
239
+ circle: CircleHandle,
240
+ point: Vec3Handle
241
+ });
242
+ var PluginGeomQueryCircleGetNormalArgs = z5.object({
243
+ circle: CircleHandle,
244
+ point: Vec3Handle
245
+ });
246
+ var PluginGeomQueryCircleGetPointAtDistanceArgs = z5.object({
247
+ circle: CircleHandle,
248
+ referencePoint: Vec3Handle,
249
+ distance: z5.number(),
250
+ forward: z5.boolean().optional()
251
+ });
252
+ var PluginGeomQueryCircleIsEqualArgs = z5.object({
253
+ circleA: CircleHandle,
254
+ circleB: CircleHandle
255
+ });
256
+ var PluginGeomQueryCircleListPointsArgs = z5.object({
257
+ circle: CircleHandle,
258
+ resolution: z5.number().optional()
259
+ });
260
+
261
+ // src/api/core/geom/query/profile.ts
262
+ import * as z6 from "zod";
263
+ var PluginGeomQueryProfileApi = class {
264
+ constructor() {
265
+ }
266
+ };
267
+ var PluginGeomQueryProfileListPointsArgs = z6.object({
268
+ profile: ProfileHandle
269
+ });
270
+ var PluginGeomQueryProfileListCurvesArgs = z6.object({
271
+ profile: ProfileHandle
272
+ });
273
+ var PluginGeomQueryProfileGetAreaArgs = z6.object({
274
+ profile: ProfileHandle
275
+ });
276
+ var PluginGeomQueryProfileGetPerimeterArgs = z6.object({
277
+ profile: ProfileHandle
278
+ });
279
+ var PluginGeomQueryProfileGetBoundingBoxArgs = z6.object({
280
+ profile: ProfileHandle
281
+ });
282
+ var PluginGeomQueryProfileGetNormalArgs = z6.object({
283
+ profile: ProfileHandle
284
+ });
285
+ var PluginGeomQueryProfileGetNearestPointArgs = z6.object({
286
+ profile: ProfileHandle,
287
+ point: Vec3Handle
288
+ });
289
+ var PluginGeomQueryProfileHasPointArgs = z6.object({
290
+ profile: ProfileHandle,
291
+ point: Vec3Handle
292
+ });
293
+ var PluginGeomQueryProfileIsOnBoundaryArgs = z6.object({
294
+ profile: ProfileHandle,
295
+ point: Vec3Handle
296
+ });
297
+ var PluginGeomQueryProfileIsClosedArgs = z6.object({
298
+ profile: ProfileHandle
299
+ });
300
+ var PluginGeomQueryProfileIsPlanarArgs = z6.object({
301
+ profile: ProfileHandle
302
+ });
303
+ var PluginGeomQueryProfileIsClockwiseArgs = z6.object({
304
+ profile: ProfileHandle
305
+ });
306
+ var PluginGeomQueryProfileIsSelfIntersectingArgs = z6.object({
307
+ profile: ProfileHandle
308
+ });
309
+ var PluginGeomQueryProfileIsEmptyArgs = z6.object({
310
+ profile: ProfileHandle
311
+ });
312
+ var PluginGeomQueryProfileIsEqualArgs = z6.object({
313
+ profileA: ProfileHandle,
314
+ profileB: ProfileHandle
315
+ });
316
+
317
+ // src/api/core/geom/query/contour.ts
318
+ import * as z7 from "zod";
319
+ var PluginGeomQueryContourApi = class {
320
+ constructor() {
321
+ }
322
+ };
323
+ var PluginGeomQueryContourGetOuterProfileArgs = z7.object({
324
+ contour: ContourHandle
325
+ });
326
+ var PluginGeomQueryContourListHolesArgs = z7.object({
327
+ contour: ContourHandle
328
+ });
329
+ var PluginGeomQueryContourGetHoleCountArgs = z7.object({
330
+ contour: ContourHandle
331
+ });
332
+ var PluginGeomQueryContourGetAreaArgs = z7.object({
333
+ contour: ContourHandle
334
+ });
335
+ var PluginGeomQueryContourGetPerimeterArgs = z7.object({
336
+ contour: ContourHandle
337
+ });
338
+ var PluginGeomQueryContourGetBoundingBoxArgs = z7.object({
339
+ contour: ContourHandle
340
+ });
341
+ var PluginGeomQueryContourGetNormalArgs = z7.object({
342
+ contour: ContourHandle
343
+ });
344
+ var PluginGeomQueryContourGetNearestPointArgs = z7.object({
345
+ contour: ContourHandle,
346
+ point: Vec3Handle
347
+ });
348
+ var PluginGeomQueryContourHasPointArgs = z7.object({
349
+ contour: ContourHandle,
350
+ point: Vec3Handle
351
+ });
352
+ var PluginGeomQueryContourIsOnBoundaryArgs = z7.object({
353
+ contour: ContourHandle,
354
+ point: Vec3Handle
355
+ });
356
+ var PluginGeomQueryContourIsClockwiseArgs = z7.object({
357
+ contour: ContourHandle
358
+ });
359
+ var PluginGeomQueryContourIsPlanarArgs = z7.object({
360
+ contour: ContourHandle
361
+ });
362
+ var PluginGeomQueryContourIsEmptyArgs = z7.object({
363
+ contour: ContourHandle
364
+ });
365
+ var PluginGeomQueryContourIsSelfIntersectingArgs = z7.object({
366
+ contour: ContourHandle
367
+ });
368
+ var PluginGeomQueryContourIsOrientationValidArgs = z7.object({
369
+ contour: ContourHandle
370
+ });
371
+ var PluginGeomQueryContourIsEqualArgs = z7.object({
372
+ contourA: ContourHandle,
373
+ contourB: ContourHandle
374
+ });
375
+
376
+ // src/api/core/geom/query/brep.ts
377
+ import * as z8 from "zod";
378
+ var PluginGeomQueryBrepApi = class {
379
+ constructor() {
380
+ }
381
+ };
382
+ var brepArg = z8.object({ brep: BrepHandle });
383
+ var brepEdgeArg = z8.object({
384
+ brep: BrepHandle,
385
+ vertexIndexA: z8.number(),
386
+ vertexIndexB: z8.number()
387
+ });
388
+ var PluginGeomQueryBrepListFacesArgs = brepArg;
389
+ var PluginGeomQueryBrepListEdgesArgs = brepArg;
390
+ var PluginGeomQueryBrepListVerticesArgs = brepArg;
391
+ var PluginGeomQueryBrepListHalfEdgesArgs = brepArg;
392
+ var PluginGeomQueryBrepGetEdgeArgs = brepEdgeArg;
393
+ var PluginGeomQueryBrepHasEdgeArgs = brepEdgeArg;
394
+ var PluginGeomQueryBrepListEdgesBetweenArgs = brepEdgeArg;
395
+ var PluginGeomQueryBrepGetVertexPositionArgs = z8.object({
396
+ brep: BrepHandle,
397
+ vertex: VertexHandle
398
+ });
399
+ var PluginGeomQueryBrepListVertexPositionsArgs = brepArg;
400
+ var PluginGeomQueryBrepGetCentroidArgs = brepArg;
401
+ var PluginGeomQueryBrepGetFaceCountArgs = brepArg;
402
+ var PluginGeomQueryBrepGetEdgeCountArgs = brepArg;
403
+ var PluginGeomQueryBrepGetVertexCountArgs = brepArg;
404
+ var PluginGeomQueryBrepGetHalfEdgeCountArgs = brepArg;
405
+ var PluginGeomQueryBrepGetBoundingBoxArgs = brepArg;
406
+ var PluginGeomQueryBrepIsEqualArgs = z8.object({
407
+ brepA: BrepHandle,
408
+ brepB: BrepHandle
409
+ });
410
+
411
+ // src/api/core/geom/query/face.ts
412
+ import * as z9 from "zod";
413
+ var PluginGeomQueryFaceApi = class {
414
+ constructor() {
415
+ }
416
+ };
417
+ var faceArg = z9.object({ face: FaceHandle });
418
+ var PluginGeomQueryFaceGetIndexArgs = faceArg;
419
+ var PluginGeomQueryFaceGetMaterialIndexArgs = faceArg;
420
+ var PluginGeomQueryFaceGetHalfEdgeArgs = faceArg;
421
+ var PluginGeomQueryFaceListEdgesArgs = faceArg;
422
+ var PluginGeomQueryFaceListHalfEdgesArgs = faceArg;
423
+ var PluginGeomQueryFaceListVerticesArgs = faceArg;
424
+ var PluginGeomQueryFaceListHolesArgs = faceArg;
425
+ var PluginGeomQueryFaceGetHoleCountArgs = faceArg;
426
+ var PluginGeomQueryFaceListHoleHalfEdgesArgs = z9.object({
427
+ face: FaceHandle,
428
+ holeIndex: z9.number()
429
+ });
430
+ var PluginGeomQueryFaceHasHolesArgs = faceArg;
431
+ var PluginGeomQueryFaceGetHoleContainingHalfEdgeArgs = z9.object({
432
+ face: FaceHandle,
433
+ halfEdge: HalfEdgeHandle
434
+ });
435
+ var PluginGeomQueryFaceListVertexPositionsArgs = z9.object({
436
+ face: FaceHandle,
437
+ brep: BrepHandle
438
+ });
439
+ var PluginGeomQueryFaceListVertexPositionsWithCurvesArgs = faceArg;
440
+ var PluginGeomQueryFaceListAdjacentFacesArgs = faceArg;
441
+
442
+ // src/api/core/geom/query/edge.ts
443
+ import * as z10 from "zod";
444
+ var PluginGeomQueryEdgeApi = class {
445
+ constructor() {
446
+ }
447
+ };
448
+ var edgeArg = z10.object({ edge: EdgeHandle });
449
+ var PluginGeomQueryEdgeGetIndexArgs = edgeArg;
450
+ var PluginGeomQueryEdgeGetHalfEdgeArgs = edgeArg;
451
+ var PluginGeomQueryEdgeListVerticesArgs = edgeArg;
452
+ var PluginGeomQueryEdgeGetCurveArgs = edgeArg;
453
+ var PluginGeomQueryEdgeListFacesArgs = edgeArg;
454
+
455
+ // src/api/core/geom/query/halfedge.ts
456
+ import * as z11 from "zod";
457
+ var PluginGeomQueryHalfEdgeApi = class {
458
+ constructor() {
459
+ }
460
+ };
461
+ var heArg = z11.object({ halfEdge: HalfEdgeHandle });
462
+ var PluginGeomQueryHalfEdgeGetNextArgs = heArg;
463
+ var PluginGeomQueryHalfEdgeGetPrevArgs = heArg;
464
+ var PluginGeomQueryHalfEdgeGetFlipArgs = heArg;
465
+ var PluginGeomQueryHalfEdgeGetVertexArgs = heArg;
466
+ var PluginGeomQueryHalfEdgeGetEdgeArgs = heArg;
467
+ var PluginGeomQueryHalfEdgeGetFaceArgs = heArg;
468
+ var PluginGeomQueryHalfEdgeIsOnBoundaryArgs = heArg;
469
+ var PluginGeomQueryHalfEdgeIsForwardArgs = heArg;
470
+
471
+ // src/api/core/geom/query/vertex.ts
472
+ import * as z12 from "zod";
473
+ var PluginGeomQueryVertexApi = class {
474
+ constructor() {
475
+ }
476
+ };
477
+ var vertexArg = z12.object({ vertex: VertexHandle });
478
+ var PluginGeomQueryVertexGetIndexArgs = vertexArg;
479
+ var PluginGeomQueryVertexGetHalfEdgeArgs = vertexArg;
480
+ var PluginGeomQueryVertexGetPositionArgs = z12.object({
481
+ brep: BrepHandle,
482
+ vertex: VertexHandle
483
+ });
484
+ var PluginGeomQueryVertexListHalfEdgesArgs = vertexArg;
485
+ var PluginGeomQueryVertexListEdgesArgs = vertexArg;
486
+ var PluginGeomQueryVertexListFacesArgs = vertexArg;
487
+ var PluginGeomQueryVertexListNeighborsArgs = vertexArg;
488
+
489
+ // src/api/core/geom/query/index.ts
490
+ var PluginGeomQueryApi = class {
491
+ constructor() {
492
+ }
493
+ };
494
+
495
+ // src/api/core/geom/update/curve.ts
496
+ import * as z13 from "zod";
497
+ var PluginGeomUpdateCurveApi = class {
498
+ constructor() {
499
+ }
500
+ };
501
+ var PluginGeomUpdateCurveExtendArgs = z13.object({
502
+ curve: CurveHandle,
503
+ distance: z13.number(),
504
+ fromStart: z13.boolean()
505
+ });
506
+ var PluginGeomUpdateCurveSplitArgs = z13.object({
507
+ curve: CurveHandle,
508
+ point: Vec3Handle
509
+ });
510
+ var PluginGeomUpdateCurveTrimArgs = z13.object({
511
+ curve: CurveHandle,
512
+ startParam: z13.number(),
513
+ endParam: z13.number()
514
+ });
515
+ var PluginGeomUpdateCurveOffsetArgs = z13.object({
516
+ curve: CurveHandle,
517
+ vector: Vec3Handle
518
+ });
519
+ var PluginGeomUpdateCurveReverseArgs = z13.object({
520
+ curve: CurveHandle
521
+ });
522
+
523
+ // src/api/core/geom/update/profile.ts
524
+ import * as z14 from "zod";
525
+ var PluginGeomUpdateProfileApi = class {
526
+ constructor() {
527
+ }
528
+ };
529
+ var PluginGeomUpdateProfileOffsetArgs = z14.object({
530
+ profile: ProfileHandle,
531
+ distance: z14.number()
532
+ });
533
+ var PluginGeomUpdateProfileMoveArgs = z14.object({
534
+ profile: ProfileHandle,
535
+ translation: Vec3Handle
536
+ });
537
+ var PluginGeomUpdateProfileRotateArgs = z14.object({
538
+ profile: ProfileHandle,
539
+ axis: Vec3Handle,
540
+ angle: z14.number(),
541
+ pivot: Vec3Handle.optional()
542
+ });
543
+ var PluginGeomUpdateProfileScaleArgs = z14.object({
544
+ profile: ProfileHandle,
545
+ factor: z14.union([z14.number(), Vec3Components]),
546
+ pivot: Vec3Handle.optional()
547
+ });
548
+ var PluginGeomUpdateProfileMirrorArgs = z14.object({
549
+ profile: ProfileHandle,
550
+ plane: z14.object({
551
+ point: Vec3Handle,
552
+ normal: Vec3Handle
553
+ })
554
+ });
555
+ var PluginGeomUpdateProfileAddArgs = z14.object({
556
+ profile: ProfileHandle,
557
+ curve: CurveHandle,
558
+ position: z14.enum(["start", "end"]).optional()
559
+ });
560
+ var PluginGeomUpdateProfileRemoveArgs = z14.object({
561
+ profile: ProfileHandle,
562
+ position: z14.enum(["start", "end"]).optional()
563
+ });
564
+ var PluginGeomUpdateProfileReverseArgs = z14.object({
565
+ profile: ProfileHandle
566
+ });
567
+ var PluginGeomUpdateProfileSimplifyArgs = z14.object({
568
+ profile: ProfileHandle
569
+ });
570
+
571
+ // src/api/core/geom/update/contour.ts
572
+ import * as z15 from "zod";
573
+ var PluginGeomUpdateContourApi = class {
574
+ constructor() {
575
+ }
576
+ };
577
+ var PluginGeomUpdateContourOffsetArgs = z15.object({
578
+ contour: ContourHandle,
579
+ distance: z15.number()
580
+ });
581
+ var PluginGeomUpdateContourMoveArgs = z15.object({
582
+ contour: ContourHandle,
583
+ translation: Vec3Handle
584
+ });
585
+ var PluginGeomUpdateContourRotateArgs = z15.object({
586
+ contour: ContourHandle,
587
+ axis: Vec3Handle,
588
+ angle: z15.number(),
589
+ pivot: Vec3Handle.optional()
590
+ });
591
+ var PluginGeomUpdateContourScaleArgs = z15.object({
592
+ contour: ContourHandle,
593
+ factor: z15.union([z15.number(), Vec3Components]),
594
+ pivot: Vec3Handle.optional()
595
+ });
596
+ var PluginGeomUpdateContourMirrorArgs = z15.object({
597
+ contour: ContourHandle,
598
+ plane: z15.object({
599
+ point: Vec3Handle,
600
+ normal: Vec3Handle
601
+ })
602
+ });
603
+ var PluginGeomUpdateContourAddHoleArgs = z15.object({
604
+ contour: ContourHandle,
605
+ hole: ProfileHandle
606
+ });
607
+ var PluginGeomUpdateContourRemoveHoleArgs = z15.object({
608
+ contour: ContourHandle,
609
+ index: z15.number()
610
+ });
611
+
612
+ // src/api/core/geom/update/index.ts
613
+ var PluginGeomUpdateApi = class {
614
+ constructor() {
615
+ }
616
+ };
617
+
618
+ // src/api/core/geom/delete/index.ts
619
+ import * as z16 from "zod";
620
+ var PluginGeomDeleteApi = class {
621
+ constructor() {
622
+ }
623
+ };
624
+ var PluginGeomDeleteProfileArgs = z16.object({
625
+ profile: ProfileHandle
626
+ });
627
+ var PluginGeomDeleteContourArgs = z16.object({
628
+ contour: ContourHandle
629
+ });
630
+
631
+ // src/api/core/geom/index.ts
632
+ var PluginGeomApi = class {
633
+ constructor() {
634
+ }
635
+ };
636
+
637
+ // src/api/core/history/index.ts
638
+ import * as z17 from "zod";
639
+ var PluginHistoryApi = class {
640
+ constructor() {
641
+ }
642
+ };
643
+ var PluginHistoryStepArgs = z17.object({
644
+ steps: z17.number().int().positive().optional()
645
+ });
646
+ var PluginHistoryStepResult = z17.object({
647
+ stepsApplied: z17.number().int().nonnegative()
648
+ });
649
+
650
+ // src/api/core/units/index.ts
651
+ import * as z18 from "zod";
652
+ var PluginUnitsApi = class {
653
+ constructor() {
654
+ }
655
+ };
656
+ var PUnitType = z18.enum([
657
+ "meters",
658
+ "feet-inches",
659
+ "inches",
660
+ "centimeters",
661
+ "millimeters",
662
+ "kilometers",
663
+ "miles",
664
+ "babylon"
665
+ ]);
666
+ var PluginUnitsSetTypeArgs = z18.object({
667
+ type: PUnitType
668
+ });
669
+ var PluginUnitsConvertArgs = z18.object({
670
+ value: z18.number(),
671
+ from: PUnitType,
672
+ to: PUnitType,
673
+ degree: z18.number().int().min(1).max(3).optional()
674
+ });
675
+
676
+ // src/api/core/zoom/index.ts
677
+ var PluginZoomApi = class {
678
+ constructor() {
679
+ }
680
+ };
681
+
682
+ // src/api/core/project/index.ts
683
+ import * as z19 from "zod";
684
+ var PluginProjectApi = class {
685
+ constructor() {
686
+ }
687
+ };
688
+ var PluginProjectSettingsApi = class {
689
+ constructor() {
690
+ }
691
+ };
692
+ var PluginSnapsApi = class {
693
+ constructor() {
694
+ }
695
+ };
696
+ var PluginGridApi = class {
697
+ constructor() {
698
+ }
699
+ };
700
+ var PluginSnapValueArgs = z19.object({
701
+ value: z19.number()
702
+ });
703
+ var PluginGridValueArgs = z19.object({
704
+ value: z19.number()
705
+ });
706
+ var PluginToleranceArgs = z19.object({
707
+ value: z19.number()
708
+ });
709
+
710
+ // src/api/core/comment/index.ts
711
+ import * as z20 from "zod";
712
+ var PluginCommentApi = class {
713
+ constructor() {
714
+ }
715
+ };
716
+ var CommentHandle = z20.string().min(1).transform((s) => s);
717
+ var PluginCommentCreateArgs = z20.object({
718
+ component: ComponentHandle.optional(),
719
+ position: Vec3Handle.optional(),
720
+ message: z20.string(),
721
+ mentions: z20.array(z20.string()).optional()
722
+ });
723
+ var PluginCommentUpdateArgs = z20.object({
724
+ comment: CommentHandle,
725
+ message: z20.string(),
726
+ mentions: z20.array(z20.string()).optional()
727
+ });
728
+ var PluginCommentRefArgs = z20.object({
729
+ comment: CommentHandle
730
+ });
731
+ var PluginCommentTagArgs = z20.object({
732
+ comment: CommentHandle,
733
+ email: z20.string()
734
+ });
735
+
736
+ // src/api/core/groups.ts
737
+ import * as z21 from "zod";
738
+ var PluginCoreGroupsApi = class {
739
+ constructor() {
740
+ }
741
+ };
742
+ var PluginCoreGroupRef = z21.object({
743
+ id: z21.string(),
744
+ name: z21.string(),
745
+ memberCount: z21.number().int(),
746
+ isLocked: z21.boolean(),
747
+ parentId: z21.string().optional()
748
+ });
749
+ var PluginCoreGroupMember = z21.object({
750
+ id: z21.string(),
751
+ type: z21.enum(["component", "group"])
752
+ });
753
+ var PluginCoreGroupsListResult = z21.object({
754
+ groups: z21.array(PluginCoreGroupRef)
755
+ });
756
+ var PluginCoreGroupsGetArgs = z21.object({
757
+ groupId: z21.string()
758
+ });
759
+ var PluginCoreGroupsGetResult = PluginCoreGroupRef.nullable();
760
+ var PluginCoreGroupsGetForComponentArgs = z21.object({
761
+ componentId: ComponentHandle
762
+ });
763
+ var PluginCoreGroupsGetForComponentResult = PluginCoreGroupRef.nullable();
764
+ var PluginCoreGroupsListMembersArgs = z21.object({
765
+ groupId: z21.string()
766
+ });
767
+ var PluginCoreGroupsListMembersResult = z21.object({
768
+ members: z21.array(PluginCoreGroupMember)
769
+ });
770
+ var PluginCoreGroupsIsLockedArgs = z21.object({
771
+ groupId: z21.string()
772
+ });
773
+ var PluginCoreGroupsIsLockedResult = z21.boolean();
774
+ var PluginCoreGroupsGetBoundsArgs = z21.object({
775
+ groupId: z21.string()
776
+ });
777
+ var PluginCoreGroupsGetBoundsResult = z21.object({
778
+ min: Vec3Components,
779
+ max: Vec3Components,
780
+ center: Vec3Components
781
+ }).nullable();
782
+ var PluginCoreGroupsCreateArgs = z21.object({
783
+ componentIds: z21.array(ComponentHandle).min(1),
784
+ name: z21.string().optional()
785
+ });
786
+ var PluginCoreGroupsCreateResult = z21.object({
787
+ groupId: z21.string()
788
+ });
789
+ var PluginCoreGroupsUpdateArgs = z21.object({
790
+ groupId: z21.string(),
791
+ name: z21.string().optional(),
792
+ addComponentIds: z21.array(ComponentHandle).optional(),
793
+ removeComponentIds: z21.array(ComponentHandle).optional()
794
+ });
795
+ var PluginCoreGroupsUpdateResult = PluginCoreGroupRef;
796
+ var PluginCoreGroupsDeleteArgs = z21.object({
797
+ groupId: z21.string()
798
+ });
799
+ var PluginCoreGroupsDeleteResult = z21.object({
800
+ deleted: z21.literal(true)
801
+ });
802
+
803
+ // src/api/core/buildings.ts
804
+ import * as z22 from "zod";
805
+ var PluginCoreBuildingsApi = class {
806
+ constructor() {
807
+ }
808
+ };
809
+ var PluginCoreBuildingRef = z22.object({
810
+ id: z22.string(),
811
+ name: z22.string(),
812
+ baseElevation: z22.number()
813
+ });
814
+ var PluginCoreBuildingsListResult = z22.object({
815
+ buildings: z22.array(PluginCoreBuildingRef)
816
+ });
817
+ var PluginCoreBuildingsGetArgs = z22.object({
818
+ buildingId: z22.string()
819
+ });
820
+ var PluginCoreBuildingsGetResult = PluginCoreBuildingRef.nullable();
821
+ var PluginCoreBuildingsListStoreysArgs = z22.object({
822
+ buildingId: z22.string()
823
+ });
824
+ var PluginCoreBuildingsListStoreysResult = z22.object({
825
+ storeyIds: z22.array(z22.string())
826
+ });
827
+ var PluginCoreBuildingsGetActiveResult = z22.object({
828
+ buildingId: z22.string()
829
+ }).nullable();
830
+ var PluginCoreBuildingsSetActiveArgs = z22.object({
831
+ buildingId: z22.string()
832
+ });
833
+ var PluginCoreBuildingsSetActiveResult = z22.object({
834
+ buildingId: z22.string()
835
+ });
836
+ var PluginCoreBuildingsCreateArgs = z22.object({
837
+ name: z22.string(),
838
+ baseElevation: z22.number().optional()
839
+ });
840
+ var PluginCoreBuildingsCreateResult = z22.object({
841
+ buildingId: z22.string()
842
+ });
843
+ var PluginCoreBuildingsUpdateArgs = z22.object({
844
+ buildingId: z22.string(),
845
+ name: z22.string().optional(),
846
+ baseElevation: z22.number().optional()
847
+ });
848
+ var PluginCoreBuildingsUpdateResult = PluginCoreBuildingRef;
849
+ var PluginCoreBuildingsCopyArgs = z22.object({
850
+ buildingId: z22.string(),
851
+ name: z22.string().optional(),
852
+ baseElevation: z22.number().optional(),
853
+ asInstances: z22.boolean().optional()
854
+ });
855
+ var PluginCoreBuildingsCopyResult = z22.object({
856
+ buildingId: z22.string()
857
+ });
858
+ var PluginCoreBuildingsDeleteArgs = z22.object({
859
+ buildingId: z22.string()
860
+ });
861
+ var PluginCoreBuildingsDeleteResult = z22.object({
862
+ deleted: z22.literal(true)
863
+ });
864
+
865
+ // src/api/core/layers.ts
866
+ import * as z23 from "zod";
867
+ var PluginCoreLayersApi = class {
868
+ constructor() {
869
+ }
870
+ };
871
+ var PluginCoreLayerType = z23.enum([
872
+ "floor",
873
+ "wall",
874
+ "ceiling",
875
+ "rough",
876
+ "default",
877
+ "image",
878
+ "cad",
879
+ "pdf",
880
+ "terrain",
881
+ "buildings"
882
+ ]);
883
+ var PluginCoreLayer = z23.object({
884
+ id: z23.string(),
885
+ name: z23.string(),
886
+ layerType: PluginCoreLayerType,
887
+ storeyId: z23.string(),
888
+ buildingId: z23.string(),
889
+ hidden: z23.boolean(),
890
+ locked: z23.boolean(),
891
+ contentSummary: z23.object({
892
+ hasFloorplan: z23.boolean(),
893
+ pdfCount: z23.number().int(),
894
+ hasTerrain: z23.boolean()
895
+ })
896
+ });
897
+ var PluginCoreLayersListArgs = z23.object({
898
+ storeyId: z23.string(),
899
+ layerType: PluginCoreLayerType.optional()
900
+ });
901
+ var PluginCoreLayersListResult = z23.object({
902
+ layers: z23.array(PluginCoreLayer)
903
+ });
904
+ var PluginCoreLayersGetArgs = z23.object({
905
+ layerId: z23.string()
906
+ });
907
+ var PluginCoreLayersGetResult = PluginCoreLayer.nullable();
908
+ var PluginCoreLayersGetActiveArgs = z23.object({
909
+ storeyId: z23.string()
910
+ });
911
+ var PluginCoreLayersGetActiveResult = PluginCoreLayer.nullable();
912
+ var PluginCoreLayersSetActiveArgs = z23.object({
913
+ layerId: z23.string()
914
+ });
915
+ var PluginCoreLayersSetActiveResult = z23.object({
916
+ layerId: z23.string()
917
+ });
918
+ var PluginCoreLayersUpdateArgs = z23.object({
919
+ layerId: z23.string(),
920
+ hidden: z23.boolean().optional()
921
+ });
922
+ var PluginCoreLayersUpdateResult = PluginCoreLayer;
923
+
924
+ // src/api/core/tags.ts
925
+ import * as z24 from "zod";
926
+ var PluginCoreTagsApi = class {
927
+ constructor() {
928
+ }
929
+ };
930
+ var PluginCoreTagCategory = z24.object({
931
+ id: z24.string(),
932
+ name: z24.string(),
933
+ tagIds: z24.array(z24.string())
934
+ });
935
+ var PluginCoreTag = z24.object({
936
+ id: z24.string(),
937
+ categoryId: z24.string(),
938
+ name: z24.string(),
939
+ color: z24.string()
940
+ });
941
+ var PluginCoreComponentTag = z24.object({
942
+ categoryId: z24.string(),
943
+ categoryName: z24.string(),
944
+ tagId: z24.string(),
945
+ tagName: z24.string(),
946
+ color: z24.string()
947
+ });
948
+ var PluginCoreAssignOutcome = z24.object({
949
+ assigned: z24.array(z24.string()),
950
+ skipped: z24.array(
951
+ z24.object({
952
+ id: z24.string(),
953
+ reason: z24.enum(["locked", "not-taggable", "not-found"])
954
+ })
955
+ )
956
+ });
957
+ var PluginCoreTagsListCategoriesResult = z24.object({
958
+ categories: z24.array(PluginCoreTagCategory)
959
+ });
960
+ var PluginCoreTagsGetCategoryArgs = z24.object({
961
+ categoryId: z24.string()
962
+ });
963
+ var PluginCoreTagsGetCategoryResult = PluginCoreTagCategory.nullable();
964
+ var PluginCoreTagsListArgs = z24.object({
965
+ categoryId: z24.string().optional()
966
+ });
967
+ var PluginCoreTagsListResult = z24.object({
968
+ tags: z24.array(PluginCoreTag)
969
+ });
970
+ var PluginCoreTagsGetArgs = z24.object({
971
+ tagId: z24.string()
972
+ });
973
+ var PluginCoreTagsGetResult = PluginCoreTag.nullable();
974
+ var PluginCoreTagsGetTagsForComponentArgs = z24.object({
975
+ componentId: ComponentHandle
976
+ });
977
+ var PluginCoreTagsGetTagsForComponentResult = z24.object({
978
+ tags: z24.array(PluginCoreComponentTag)
979
+ });
980
+ var PluginCoreTagsListComponentsArgs = z24.object({
981
+ tagId: z24.string().optional(),
982
+ categoryId: z24.string().optional(),
983
+ untagged: z24.boolean().optional()
984
+ }).refine((v) => v.tagId == null !== (v.categoryId == null), {
985
+ message: "Provide exactly one of tagId or categoryId"
986
+ }).refine((v) => v.untagged == null || v.categoryId != null, {
987
+ message: "untagged is valid only together with categoryId"
988
+ });
989
+ var PluginCoreTagsListComponentsResult = z24.object({
990
+ componentIds: z24.array(ComponentHandle)
991
+ });
992
+ var PluginCoreTagsCreateCategoryArgs = z24.object({
993
+ name: z24.string()
994
+ });
995
+ var PluginCoreTagsCreateCategoryResult = PluginCoreTagCategory;
996
+ var PluginCoreTagsUpdateCategoryArgs = z24.object({
997
+ categoryId: z24.string(),
998
+ name: z24.string()
999
+ });
1000
+ var PluginCoreTagsUpdateCategoryResult = PluginCoreTagCategory;
1001
+ var PluginCoreTagsDeleteCategoryArgs = z24.object({
1002
+ categoryId: z24.string()
1003
+ });
1004
+ var PluginCoreTagsDeleteCategoryResult = z24.object({
1005
+ deletedTagCount: z24.number().int(),
1006
+ resetComponentCount: z24.number().int()
1007
+ });
1008
+ var PluginCoreTagsCreateArgs = z24.object({
1009
+ categoryId: z24.string(),
1010
+ name: z24.string(),
1011
+ color: z24.string().optional()
1012
+ });
1013
+ var PluginCoreTagsCreateResult = PluginCoreTag;
1014
+ var PluginCoreTagsUpdateArgs = z24.object({
1015
+ tagId: z24.string(),
1016
+ name: z24.string().optional(),
1017
+ color: z24.string().optional()
1018
+ });
1019
+ var PluginCoreTagsUpdateResult = PluginCoreTag;
1020
+ var PluginCoreTagsDeleteArgs = z24.object({
1021
+ tagId: z24.string()
1022
+ });
1023
+ var PluginCoreTagsDeleteResult = z24.object({
1024
+ resetComponentCount: z24.number().int()
1025
+ });
1026
+ var PluginCoreTagsAssignArgs = z24.object({
1027
+ componentIds: z24.array(ComponentHandle).min(1),
1028
+ categoryName: z24.string(),
1029
+ tagName: z24.string()
1030
+ });
1031
+ var PluginCoreTagsAssignResult = PluginCoreAssignOutcome.extend({
1032
+ categoryId: z24.string(),
1033
+ tagId: z24.string(),
1034
+ categoryCreated: z24.boolean(),
1035
+ tagCreated: z24.boolean()
1036
+ });
1037
+ var PluginCoreTagsUnassignArgs = z24.object({
1038
+ categoryId: z24.string(),
1039
+ componentIds: z24.array(ComponentHandle).min(1)
1040
+ });
1041
+ var PluginCoreTagsUnassignResult = PluginCoreAssignOutcome;
1042
+
1043
+ // src/api/core/index.ts
1044
+ var PluginCoreApi = class {
1045
+ constructor() {
1046
+ }
1047
+ };
1048
+
1049
+ // src/api/design/create/index.ts
1050
+ import * as z26 from "zod";
1051
+
1052
+ // src/api/entity/space.ts
1053
+ import * as z25 from "zod";
1054
+ var PluginSpaceCreateRectangularArgs = z25.object({
1055
+ position: Vec3Handle,
1056
+ dimensions: z25.object({
1057
+ width: z25.number(),
1058
+ height: z25.number(),
1059
+ depth: z25.number()
1060
+ })
1061
+ });
1062
+ var PluginSpaceCreateRectangularResult = z25.object({
1063
+ spaceId: z25.string()
1064
+ });
1065
+ var PluginSpaceCreateFromProfileArgs = z25.object({
1066
+ profile: ProfileHandle,
1067
+ innerProfiles: z25.array(ProfileHandle).optional(),
1068
+ extrudeHeight: z25.number(),
1069
+ position: Vec3Handle
1070
+ });
1071
+ var PluginSpaceCreateFromProfileResult = z25.object({
1072
+ spaceId: z25.string()
1073
+ });
1074
+ var PluginSpaceUpdateGeometryFromProfileArgs = z25.object({
1075
+ spaceId: z25.string(),
1076
+ profile: ProfileHandle,
1077
+ extrudeHeight: z25.number()
1078
+ });
1079
+ var PluginSpaceUpdateGeometryFromProfileResult = z25.object({
1080
+ spaceId: z25.string()
1081
+ });
1082
+ var PluginSpaceGetProperty = z25.enum([
1083
+ // Basic
1084
+ "id",
1085
+ "type",
1086
+ "room_type",
1087
+ "name",
1088
+ // Derived from parametric data
1089
+ "area",
1090
+ "breadth",
1091
+ "depth",
1092
+ "height",
1093
+ "massType",
1094
+ "spaceType",
1095
+ "areaClass",
1096
+ "storey",
1097
+ "departmentId",
1098
+ "departmentName",
1099
+ "departmentColor",
1100
+ // Derived from mesh
1101
+ "position",
1102
+ "absolutePosition",
1103
+ "rotation",
1104
+ "rotationQuaternion",
1105
+ // Derived from brep
1106
+ "planPoints",
1107
+ "profile",
1108
+ "innerProfiles",
1109
+ "innerPlanPoints",
1110
+ // Derived from adjacency manager
1111
+ "adjacency"
1112
+ ]);
1113
+ var PluginSpaceGetArgs = z25.object({
1114
+ spaceId: z25.string(),
1115
+ properties: z25.array(PluginSpaceGetProperty)
1116
+ });
1117
+ var PluginSpaceType = z25.enum([
1118
+ "Room",
1119
+ "Program Block",
1120
+ "Balcony",
1121
+ "Road",
1122
+ "Garden",
1123
+ "Deck",
1124
+ "Pool",
1125
+ "Walkway",
1126
+ "Envelope",
1127
+ "Parking"
1128
+ ]);
1129
+ var PluginAreaClass = z25.enum(["NET", "GROSS", "EXCLUDED"]);
1130
+ var PluginSpaceGetResult = z25.object({
1131
+ // Basic
1132
+ id: z25.string(),
1133
+ type: z25.string(),
1134
+ room_type: z25.string(),
1135
+ name: z25.string(),
1136
+ // 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(),
1142
+ spaceType: PluginSpaceType.nullable(),
1143
+ areaClass: PluginAreaClass,
1144
+ storey: z25.number().nullable(),
1145
+ departmentId: z25.string().nullable(),
1146
+ departmentName: z25.string(),
1147
+ departmentColor: z25.string(),
1148
+ // Derived from mesh
1149
+ position: Vec3Components,
1150
+ absolutePosition: Vec3Components,
1151
+ rotation: Vec3Components,
1152
+ rotationQuaternion: QuatComponents.nullable(),
1153
+ // 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)),
1158
+ // Derived from adjacency manager.
1159
+ // value: 2 = Direct (required), 1 = Indirect or physical contact, -1 = Restricted;
1160
+ // 0 (no relationship) entries are filtered out. Empty array when adjacency has
1161
+ // 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()
1165
+ }))
1166
+ }).partial();
1167
+ var PluginSpaceGetAllResult = z25.object({
1168
+ spacesIds: z25.array(z25.string())
1169
+ });
1170
+ var PluginSpaceDeleteArgs = z25.object({
1171
+ spaceId: z25.string()
1172
+ });
1173
+ var PluginMassType = z25.enum([
1174
+ "Plinth",
1175
+ "Void",
1176
+ "Pergola",
1177
+ "Furniture",
1178
+ "Facade element",
1179
+ "Generic mass",
1180
+ "Room",
1181
+ "Department",
1182
+ "Building",
1183
+ "Revit Import",
1184
+ "Mass",
1185
+ "Site"
1186
+ ]);
1187
+ var PluginWellKnownDepartmentId = z25.enum([
1188
+ "DEFAULT",
1189
+ "SITE",
1190
+ "ENVELOPE",
1191
+ "CORE"
1192
+ ]);
1193
+ var PluginDepartmentId = z25.union([
1194
+ PluginWellKnownDepartmentId,
1195
+ z25.uuid()
1196
+ ]);
1197
+ var PluginSpaceUpdateArgs = z25.object({
1198
+ spaceId: z25.string(),
1199
+ properties: z25.object({
1200
+ room_type: z25.string().optional(),
1201
+ massType: PluginMassType.optional(),
1202
+ spaceType: PluginSpaceType.optional(),
1203
+ areaClass: PluginAreaClass.optional(),
1204
+ departmentId: PluginDepartmentId.optional()
1205
+ })
1206
+ });
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(),
1212
+ areaClass: PluginAreaClass.optional(),
1213
+ departmentId: z25.string().nullable().optional()
1214
+ });
1215
+ var PluginSpaceBulkCreateItem = z25.discriminatedUnion("kind", [
1216
+ z25.object({
1217
+ kind: z25.literal("rectangular"),
1218
+ position: Vec3Handle,
1219
+ dimensions: z25.object({
1220
+ width: z25.number(),
1221
+ height: z25.number(),
1222
+ depth: z25.number()
1223
+ }),
1224
+ room_type: z25.string().optional(),
1225
+ spaceType: PluginSpaceType.optional(),
1226
+ massType: PluginMassType.optional(),
1227
+ departmentId: PluginDepartmentId.optional()
1228
+ }),
1229
+ z25.object({
1230
+ kind: z25.literal("profile"),
1231
+ profile: ProfileHandle,
1232
+ innerProfiles: z25.array(ProfileHandle).optional(),
1233
+ extrudeHeight: z25.number(),
1234
+ position: Vec3Handle,
1235
+ room_type: z25.string().optional(),
1236
+ spaceType: PluginSpaceType.optional(),
1237
+ massType: PluginMassType.optional(),
1238
+ departmentId: PluginDepartmentId.optional()
1239
+ })
1240
+ ]);
1241
+ var PluginSpaceBulkCreateArgs = z25.object({
1242
+ items: z25.array(PluginSpaceBulkCreateItem)
1243
+ });
1244
+ var PluginSpaceBulkCreateResult = z25.object({
1245
+ spaceIds: z25.array(z25.string())
1246
+ });
1247
+ var PluginSpaceBulkUpdateItem = z25.object({
1248
+ spaceId: z25.string(),
1249
+ profile: ProfileHandle.optional(),
1250
+ extrudeHeight: z25.number().optional(),
1251
+ properties: z25.object({
1252
+ room_type: z25.string().optional(),
1253
+ massType: PluginMassType.optional(),
1254
+ spaceType: PluginSpaceType.optional(),
1255
+ areaClass: PluginAreaClass.optional(),
1256
+ departmentId: PluginDepartmentId.optional()
1257
+ }).optional()
1258
+ });
1259
+ var PluginSpaceBulkUpdateArgs = z25.object({
1260
+ items: z25.array(PluginSpaceBulkUpdateItem)
1261
+ });
1262
+ var PluginSpaceBulkUpdateResult = z25.object({
1263
+ spaces: z25.array(PluginSpaceUpdateResult)
1264
+ });
1265
+ var PluginSpaceBulkDeleteArgs = z25.object({
1266
+ spaceIds: z25.array(z25.string())
1267
+ });
1268
+ var PluginSpaceBulkDeleteResult = z25.object({
1269
+ deletedSpaceIds: z25.array(z25.string())
1270
+ });
1271
+
1272
+ // src/api/design/create/index.ts
1273
+ var PluginDesignCreateApi = class {
1274
+ constructor() {
1275
+ }
1276
+ };
1277
+ var PluginReferenceLineStyle = z26.enum(["SOLID", "DASHED", "DOT_DASH"]);
1278
+ var PluginSlabType = z26.enum([
1279
+ "Intermediate Slab",
1280
+ "Basement Slab",
1281
+ "Plinth",
1282
+ "Roof"
1283
+ ]);
1284
+ var PluginStaircasePreset = z26.enum([
1285
+ "straight",
1286
+ "straightWoLanding",
1287
+ "straightFlightWoMidLanding",
1288
+ "dogLegged",
1289
+ "openWell",
1290
+ "lShaped",
1291
+ "3StepLShaped",
1292
+ "square",
1293
+ "singleStep",
1294
+ "plinthLevel",
1295
+ "amphitheatre",
1296
+ "connectingStepsToAmphitheatre",
1297
+ "mezzanineFloorStraight",
1298
+ "mezzanineFloorDogLegged",
1299
+ "mezzanineFloorLShaped",
1300
+ "custom"
1301
+ ]);
1302
+ var PluginDesignCreateSpaceArgs = z26.object({
1303
+ contour: ContourHandle,
1304
+ height: z26.number(),
1305
+ label: z26.string().optional(),
1306
+ position: Vec3Handle.optional(),
1307
+ spaceType: PluginSpaceType.optional(),
1308
+ massType: PluginMassType.optional(),
1309
+ departmentId: PluginDepartmentId.optional()
1310
+ });
1311
+ var PluginDesignCreateMassArgs = z26.object({
1312
+ contour: ContourHandle,
1313
+ height: z26.number(),
1314
+ label: z26.string().optional(),
1315
+ position: Vec3Handle.optional(),
1316
+ massType: PluginMassType.optional()
1317
+ });
1318
+ var PluginDesignCreateSlabArgs = z26.object({
1319
+ contour: ContourHandle,
1320
+ thickness: z26.number(),
1321
+ direction: z26.enum(["up", "down"]).optional(),
1322
+ slabType: PluginSlabType.optional()
1323
+ });
1324
+ var PluginDesignCreateFloorArgs = z26.object({
1325
+ contour: ContourHandle,
1326
+ thickness: z26.number(),
1327
+ position: Vec3Handle.optional()
1328
+ });
1329
+ var PluginDesignCreateRoofArgs = z26.object({
1330
+ contour: ContourHandle,
1331
+ thickness: z26.number()
1332
+ });
1333
+ var PluginDesignCreateCeilingArgs = z26.object({
1334
+ contour: ContourHandle,
1335
+ thickness: z26.number(),
1336
+ heightFromFloor: z26.number().optional()
1337
+ });
1338
+ var PluginDesignCreateColumnArgs = z26.object({
1339
+ position: Vec3Handle,
1340
+ crossSection: ContourHandle,
1341
+ height: z26.number(),
1342
+ directionUp: Vec3Handle.optional()
1343
+ });
1344
+ var PluginDesignCreateBeamArgs = z26.object({
1345
+ section: ContourHandle,
1346
+ length: z26.number(),
1347
+ direction: Vec3Handle.optional()
1348
+ });
1349
+ var PluginDesignCreateWallsArgs = z26.object({
1350
+ profile: ProfileHandle,
1351
+ height: z26.number().optional(),
1352
+ thickness: z26.number().optional()
1353
+ });
1354
+ var PluginDesignCreateStaircaseArgs = z26.object({
1355
+ preset: PluginStaircasePreset,
1356
+ position: Vec3Handle,
1357
+ label: z26.string().optional(),
1358
+ structureId: z26.string().optional(),
1359
+ level: z26.string().optional()
1360
+ });
1361
+ var PluginDesignCreateFurnitureArgs = z26.object({
1362
+ catalogId: z26.string().min(1),
1363
+ position: Vec3Handle,
1364
+ label: z26.string().optional(),
1365
+ createNewSourceMesh: z26.boolean().optional()
1366
+ });
1367
+ var PluginDesignCreateReferenceLinesArgs = z26.object({
1368
+ profile: ProfileHandle,
1369
+ color: z26.string().optional(),
1370
+ thickness: z26.number().optional(),
1371
+ style: PluginReferenceLineStyle.optional(),
1372
+ gridTag: z26.string().optional()
1373
+ });
1374
+ var PluginCopyMode = z26.enum(["instance", "unique"]);
1375
+ var PluginDesignCreateCopyArgs = z26.object({
1376
+ components: z26.array(ComponentHandle).min(1),
1377
+ displacement: Vec3Handle,
1378
+ count: z26.number().int().positive().optional(),
1379
+ mode: PluginCopyMode.optional()
1380
+ });
1381
+ var PluginCreateSpaceItem = z26.object({
1382
+ contour: ContourHandle,
1383
+ height: z26.number(),
1384
+ label: z26.string().optional(),
1385
+ position: Vec3Handle.optional(),
1386
+ spaceType: PluginSpaceType.optional(),
1387
+ massType: PluginMassType.optional(),
1388
+ departmentId: PluginDepartmentId.optional()
1389
+ });
1390
+
1391
+ // src/api/design/query/index.ts
1392
+ import * as z29 from "zod";
1393
+
1394
+ // src/api/design/query/geometry/index.ts
1395
+ import * as z27 from "zod";
1396
+ var PluginDesignQueryGeometryApi = class {
1397
+ constructor() {
1398
+ }
1399
+ };
1400
+ var PluginDesignQueryGeometryGetBrepArgs = z27.object({
1401
+ component: ComponentHandle
1402
+ });
1403
+ var PluginDesignQueryGeometryGetBottomContourArgs = z27.object({
1404
+ component: ComponentHandle
1405
+ });
1406
+ var PluginDesignQueryGeometryGetCenterlineArgs = z27.object({
1407
+ component: ComponentHandle
1408
+ });
1409
+
1410
+ // src/api/design/query/spaces.ts
1411
+ import * as z28 from "zod";
1412
+ var PluginDesignQuerySpacesApi = class {
1413
+ constructor() {
1414
+ }
1415
+ };
1416
+ var PluginDesignQueryGetFootprintArgs = z28.object({
1417
+ space: ComponentHandle
1418
+ });
1419
+ var PluginDesignQuerySpacesGetProperty = PluginSpaceGetProperty.exclude(["adjacency"]);
1420
+ var PluginDesignQuerySpacesGetArgs = z28.object({
1421
+ space: ComponentHandle,
1422
+ properties: z28.array(PluginDesignQuerySpacesGetProperty)
1423
+ });
1424
+ var PluginDesignQuerySpacesGetResult = PluginSpaceGetResult.omit({
1425
+ adjacency: true
1426
+ });
1427
+
1428
+ // src/api/design/query/index.ts
1429
+ var PluginEntityType = z29.enum([
1430
+ "wall",
1431
+ "space",
1432
+ "mass",
1433
+ "door",
1434
+ "window",
1435
+ "floor",
1436
+ "slab",
1437
+ "roof",
1438
+ "column",
1439
+ "beam",
1440
+ "ceiling",
1441
+ "staircase",
1442
+ "furniture",
1443
+ "referenceLine",
1444
+ "curtainWall",
1445
+ "mullion",
1446
+ "panel"
1447
+ ]);
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(),
1456
+ departmentId: PluginDepartmentId.optional(),
1457
+ isSelected: z29.boolean().optional(),
1458
+ isLocked: z29.boolean().optional(),
1459
+ isHidden: z29.boolean().optional(),
1460
+ within: BBoxComponents.optional(),
1461
+ overlaps: ComponentHandle.optional(),
1462
+ ids: z29.array(ComponentHandle).optional()
1463
+ });
1464
+ var PluginDesignQueryListByTypeArgs = PluginEntityFilter.extend({
1465
+ type: PluginEntityType
1466
+ });
1467
+ var PluginDesignQueryComponentArgs = z29.object({
1468
+ component: ComponentHandle
1469
+ });
1470
+ var PluginDesignQueryIdArgs = z29.object({
1471
+ id: ComponentHandle
1472
+ });
1473
+ var PluginDesignQueryComponentsArgs = z29.object({
1474
+ components: z29.array(ComponentHandle)
1475
+ });
1476
+ var PluginEntityProperties = z29.object({
1477
+ id: z29.string(),
1478
+ type: PluginEntityType,
1479
+ label: z29.string(),
1480
+ storey: z29.number(),
1481
+ buildingId: z29.string(),
1482
+ structureId: z29.string(),
1483
+ massType: z29.string(),
1484
+ spaceType: PluginSpaceType,
1485
+ areaClass: PluginAreaClass,
1486
+ departmentId: z29.string(),
1487
+ isLocked: z29.boolean(),
1488
+ isHidden: z29.boolean(),
1489
+ isSelected: z29.boolean(),
1490
+ boundingBox: BBoxComponents,
1491
+ adjacency: z29.array(z29.object({ spaceId: z29.string(), value: z29.number() }))
1492
+ }).partial();
1493
+ var PluginEntityMeasurements = z29.object({
1494
+ area: z29.number().optional(),
1495
+ volume: z29.number().optional(),
1496
+ length: z29.number().optional(),
1497
+ boundingBox: BBoxComponents
1498
+ });
1499
+ var PluginDesignQueryApi = class {
1500
+ constructor() {
1501
+ }
1502
+ };
1503
+
1504
+ // src/api/design/selection/index.ts
1505
+ import * as z30 from "zod";
1506
+ var PluginDesignSelectionApi = class {
1507
+ constructor() {
1508
+ }
1509
+ };
1510
+ var PluginDesignSelectionSetArgs = z30.object({
1511
+ components: z30.array(ComponentHandle)
1512
+ });
1513
+ var PluginDesignSelectionAddArgs = PluginDesignSelectionSetArgs;
1514
+ var PluginDesignSelectionRemoveArgs = PluginDesignSelectionSetArgs;
1515
+
1516
+ // src/api/design/doors/index.ts
1517
+ import * as z31 from "zod";
1518
+ var PluginDesignDoorsApi = class {
1519
+ constructor() {
1520
+ }
1521
+ };
1522
+ var PluginDesignDoorArgs = z31.object({
1523
+ door: ComponentHandle
1524
+ });
1525
+ var PluginMirrorAxis = z31.enum(["x", "y", "z"]);
1526
+ var PluginDesignDoorMirrorArgs = z31.object({
1527
+ door: ComponentHandle,
1528
+ axis: PluginMirrorAxis.optional()
1529
+ });
1530
+ var PluginDesignDoorSetWidthArgs = z31.object({
1531
+ doors: z31.array(ComponentHandle),
1532
+ width: z31.number()
1533
+ });
1534
+ var PluginDesignDoorSetHeightArgs = z31.object({
1535
+ doors: z31.array(ComponentHandle),
1536
+ height: z31.number()
1537
+ });
1538
+
1539
+ // src/api/design/windows/index.ts
1540
+ import * as z32 from "zod";
1541
+ var PluginDesignWindowsApi = class {
1542
+ constructor() {
1543
+ }
1544
+ };
1545
+ var PluginDesignWindowArgs = z32.object({
1546
+ window: ComponentHandle
1547
+ });
1548
+ var PluginWindowDimensions = z32.object({
1549
+ width: z32.number(),
1550
+ height: z32.number(),
1551
+ thickness: z32.number()
1552
+ });
1553
+ var PluginDesignWindowSetWidthArgs = z32.object({
1554
+ window: ComponentHandle,
1555
+ width: z32.number()
1556
+ });
1557
+ var PluginDesignWindowSetHeightArgs = z32.object({
1558
+ window: ComponentHandle,
1559
+ height: z32.number()
1560
+ });
1561
+
1562
+ // src/api/design/furniture/index.ts
1563
+ import * as z33 from "zod";
1564
+ var PluginDesignFurnitureApi = class {
1565
+ constructor() {
1566
+ }
1567
+ };
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()
1581
+ });
1582
+ var PluginDesignFurnitureExistsArgs = PluginDesignFurnitureGetCatalogItemArgs;
1583
+
1584
+ // src/api/design/materials/index.ts
1585
+ import * as z34 from "zod";
1586
+ var PluginDesignMaterialsApi = class {
1587
+ constructor() {
1588
+ }
1589
+ };
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()
1608
+ });
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()
1615
+ });
1616
+ var PluginDesignMaterialsResetArgs = z34.object({
1617
+ components: z34.array(ComponentHandle),
1618
+ save: z34.boolean().optional()
1619
+ });
1620
+ var PluginDesignMaterialsCreateArgs = z34.object({ spec: PluginMaterialSpec });
1621
+
1622
+ // src/api/design/lock.ts
1623
+ import * as z35 from "zod";
1624
+ var PluginDesignChangeResult = z35.object({
1625
+ affected: z35.array(ComponentHandle)
1626
+ });
1627
+ var PluginDesignLockArgs = z35.object({
1628
+ components: z35.array(ComponentHandle)
1629
+ });
1630
+ var PluginDesignUnlockArgs = PluginDesignLockArgs;
1631
+ var PluginDesignIsLockedArgs = z35.object({
1632
+ component: ComponentHandle,
1633
+ includeInherited: z35.boolean().optional()
1634
+ });
1635
+
1636
+ // src/api/design/erase/index.ts
1637
+ import * as z36 from "zod";
1638
+ var EraseStrategy = z36.enum(["DirectDelete", "DirectUnion", "SplitAndUnion"]);
1639
+ var DEFAULT_ERASE_STRATEGIES = ["DirectDelete", "DirectUnion"];
1640
+ var ErasableEdgeRef = z36.object({
1641
+ /** Opaque bottom-graph edge id (engine form `"e-<n>"`). Do not mutate. Pass verbatim to {@linkcode PluginDesignEraseApi.edge}. */
1642
+ id: z36.string().min(1),
1643
+ /** What erasing this edge would do: `DirectDelete` drops a mass; `DirectUnion` merges two adjacent masses. */
1644
+ strategy: EraseStrategy,
1645
+ /** 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),
1649
+ /** A representative point on the edge (its head endpoint). Diagnostic only. */
1650
+ snapPoint: Vec3Handle
1651
+ });
1652
+ var PluginDesignListErasableEdgesArgs = z36.object({
1653
+ components: z36.array(ComponentHandle).optional(),
1654
+ strategies: z36.array(EraseStrategy).optional()
1655
+ });
1656
+ var PluginDesignEraseEdgeArgs = z36.object({
1657
+ edge: ErasableEdgeRef
1658
+ });
1659
+ var PluginDesignEraseEdgeResult = z36.object({ ok: z36.literal(true) });
1660
+ var PluginDesignEraseApi = class {
1661
+ constructor() {
1662
+ }
1663
+ };
1664
+
1665
+ // src/api/design/delete/index.ts
1666
+ import * as z37 from "zod";
1667
+ var PluginDesignDeleteEntitiesArgs = z37.object({
1668
+ components: z37.array(ComponentHandle).min(1)
1669
+ });
1670
+ var PluginDesignDeleteApi = class {
1671
+ constructor() {
1672
+ }
1673
+ };
1674
+
1675
+ // 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)
1680
+ });
1681
+ var OffsetSplitOutcome = z38.object({
1682
+ createdIds: z38.array(ComponentHandle),
1683
+ deletedIds: z38.array(ComponentHandle),
1684
+ offsetValue: z38.number()
1685
+ });
1686
+
1687
+ // src/api/design/boolean/index.ts
1688
+ import * as z39 from "zod";
1689
+ var PluginDesignBooleanApi = class {
1690
+ constructor() {
1691
+ }
1692
+ };
1693
+ var BooleanOptions = z39.object({
1694
+ offset: Vec3Handle.optional()
1695
+ });
1696
+ var PluginDesignBooleanUnionArgs = z39.object({
1697
+ components: z39.array(ComponentHandle).min(2),
1698
+ options: BooleanOptions.optional()
1699
+ });
1700
+ var PluginDesignBooleanSubtractArgs = z39.object({
1701
+ target: ComponentHandle,
1702
+ tools: z39.array(ComponentHandle).min(1),
1703
+ options: BooleanOptions.optional()
1704
+ });
1705
+ var PluginDesignBooleanIntersectArgs = z39.object({
1706
+ components: z39.array(ComponentHandle).length(2),
1707
+ options: BooleanOptions.optional()
1708
+ });
1709
+
1710
+ // src/api/design/transform/index.ts
1711
+ import * as z40 from "zod";
1712
+ var PluginDesignTransformApi = class {
1713
+ constructor() {
1714
+ }
1715
+ };
1716
+ var PluginDesignMoveArgs = z40.object({
1717
+ components: z40.array(ComponentHandle).min(1),
1718
+ displacement: Vec3Handle,
1719
+ is2D: z40.boolean().optional(),
1720
+ trackParentChange: z40.boolean().optional()
1721
+ });
1722
+ var PluginDesignRotateArgs = z40.object({
1723
+ components: z40.array(ComponentHandle).min(1),
1724
+ angleInDegrees: z40.number(),
1725
+ axis: Vec3Handle.optional(),
1726
+ is2D: z40.boolean().optional()
1727
+ });
1728
+
1729
+ // src/api/design/edit/index.ts
1730
+ import * as z41 from "zod";
1731
+ var PluginDesignEditApi = class {
1732
+ constructor() {
1733
+ }
1734
+ };
1735
+ var PluginDesignOffsetSplitArgs = z41.object({
1736
+ component: ComponentHandle,
1737
+ offsetDistance: z41.number(),
1738
+ profilePickPoint: Vec3Handle.optional()
1739
+ });
1740
+
1741
+ // src/api/design/update/index.ts
1742
+ import * as z42 from "zod";
1743
+ var PluginSpacePropertyUpdates = z42.object({
1744
+ room_type: z42.string().optional(),
1745
+ massType: PluginMassType.optional(),
1746
+ spaceType: PluginSpaceType.optional(),
1747
+ areaClass: PluginAreaClass.optional(),
1748
+ departmentId: PluginDepartmentId.optional()
1749
+ });
1750
+ var PluginSpaceGeometryUpdate = z42.object({
1751
+ profile: ProfileHandle,
1752
+ extrudeHeight: z42.number()
1753
+ });
1754
+ var PluginUpdateSpaceItem = z42.object({
1755
+ space: ComponentHandle,
1756
+ properties: PluginSpacePropertyUpdates.optional(),
1757
+ geometry: PluginSpaceGeometryUpdate.optional()
1758
+ });
1759
+ var PluginDesignUpdateApi = class {
1760
+ constructor() {
1761
+ }
1762
+ };
1763
+
1764
+ // src/api/design/index.ts
1765
+ var PluginDesignApi = class {
1766
+ constructor() {
1767
+ }
1768
+ };
1769
+
1770
+ // src/api/entity/buildableEnvelope.ts
1771
+ import * as z43 from "zod";
1772
+ var PluginBuildableEnvelopeApi = class {
1773
+ constructor() {
1774
+ }
1775
+ };
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()])
1779
+ ]);
1780
+ var PluginBuildableEnvelopeVerticalCap = z43.discriminatedUnion("kind", [
1781
+ z43.object({
1782
+ kind: z43.literal("max_height"),
1783
+ maxHeight: z43.number().finite().positive()
1784
+ }).strict(),
1785
+ z43.object({
1786
+ kind: z43.literal("max_floors"),
1787
+ maxFloors: z43.number().finite().int().positive()
1788
+ }).strict()
1789
+ ]);
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()
1795
+ }).strict();
1796
+ function refineSetbackTiers(args, ctx) {
1797
+ const tiers = args.setbacks;
1798
+ if (tiers.length === 0) return;
1799
+ if (tiers[0].aboveHeight !== 0) {
1800
+ ctx.addIssue({
1801
+ code: z43.ZodIssueCode.custom,
1802
+ path: ["setbacks", 0, "aboveHeight"],
1803
+ message: "Ground tier required: setbacks[0].aboveHeight must be 0."
1804
+ });
1805
+ }
1806
+ for (let i = 1; i < tiers.length; i++) {
1807
+ if (!(tiers[i].aboveHeight > tiers[i - 1].aboveHeight)) {
1808
+ ctx.addIssue({
1809
+ code: z43.ZodIssueCode.custom,
1810
+ path: ["setbacks", i, "aboveHeight"],
1811
+ message: "Setback tiers must be ordered by strictly increasing aboveHeight."
1812
+ });
1813
+ }
1814
+ }
1815
+ }
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),
1820
+ 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()
1824
+ }).strict().superRefine(refineSetbackTiers);
1825
+ var PluginBuildableEnvelopeCreateResult = z43.object({
1826
+ buildableEnvelopeId: z43.string().min(1)
1827
+ }).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),
1833
+ 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()
1837
+ }).strict().superRefine(refineSetbackTiers);
1838
+ var PluginBuildableEnvelopeUpdateResult = z43.object({
1839
+ buildableEnvelopeId: z43.string().min(1)
1840
+ }).strict();
1841
+
1842
+ // src/api/entity/referenceLine.ts
1843
+ import * as z44 from "zod";
1844
+ var PluginReferenceLineApi = class {
1845
+ constructor() {
1846
+ }
1847
+ };
1848
+ var PluginReferenceLineCreateMultiArgs = z44.object({
1849
+ profile: ProfileHandle
1850
+ });
1851
+ var PluginReferenceLineCreateMultiResult = z44.object({
1852
+ referenceLineIds: z44.array(z44.string())
1853
+ });
1854
+ var PluginReferenceLineGetProperty = z44.enum([
1855
+ "curve"
1856
+ ]);
1857
+ var PluginReferenceLineGetArgs = z44.object({
1858
+ referenceLineId: z44.string(),
1859
+ properties: z44.array(PluginReferenceLineGetProperty)
1860
+ });
1861
+ var PluginReferenceLineGetResult = z44.object({
1862
+ curve: CurveHandle
1863
+ }).partial();
1864
+ var PluginReferenceLineGetAllResult = z44.object({
1865
+ referenceLineIds: z44.array(z44.string())
1866
+ });
1867
+ var PluginReferenceLineDeleteArgs = z44.object({
1868
+ referenceLineId: z44.string()
1869
+ });
1870
+
1871
+ // src/api/entity/story.ts
1872
+ import * as z45 from "zod";
1873
+ var PluginStoryApi = class {
1874
+ constructor() {
1875
+ }
1876
+ };
1877
+ var PluginStoryGetProperty = z45.enum([
1878
+ "value",
1879
+ "id",
1880
+ "name",
1881
+ "height",
1882
+ "base",
1883
+ "hidden",
1884
+ "spacesCount",
1885
+ "totalArea"
1886
+ ]);
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()
1900
+ }).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()
1907
+ })
1908
+ )
1909
+ });
1910
+ var PluginStoryCreateArgs = z45.object({
1911
+ storyValue: z45.number().int(),
1912
+ height: z45.number().optional()
1913
+ });
1914
+ var PluginStoryCreateResult = z45.object({
1915
+ storyId: z45.string(),
1916
+ storyValue: z45.number()
1917
+ });
1918
+ var PluginStoryUpdateArgs = z45.object({
1919
+ storyValue: z45.number().int(),
1920
+ height: z45.number()
1921
+ });
1922
+ var PluginStoryUpdateResult = z45.object({
1923
+ storyValue: z45.number(),
1924
+ height: z45.number()
1925
+ });
1926
+
1927
+ // src/api/entity/index.ts
1928
+ var PluginEntityApi = class {
1929
+ constructor() {
1930
+ }
1931
+ };
1932
+
1933
+ // src/api/program/departments.ts
1934
+ import * as z47 from "zod";
1935
+
1936
+ // src/api/program/metrics.ts
1937
+ import * as z46 from "zod";
1938
+ var PluginProgramMetricsApi = class {
1939
+ constructor() {
1940
+ }
1941
+ };
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({
1950
+ units: PluginAreaUnit,
1951
+ totalTargetArea: z46.number(),
1952
+ totalAllocatedArea: z46.number(),
1953
+ unassignedArea: z46.number(),
1954
+ departments: z46.array(PluginProgramDepartmentMetric)
1955
+ }).refine(
1956
+ (s) => {
1957
+ const summed = s.unassignedArea + s.departments.reduce((acc, d) => acc + d.allocatedArea, 0);
1958
+ const tolerance = Math.max(0.01, Math.abs(s.totalAllocatedArea) * 1e-4);
1959
+ return Math.abs(s.totalAllocatedArea - summed) <= tolerance;
1960
+ },
1961
+ {
1962
+ message: "totalAllocatedArea must equal unassignedArea + the sum of departments[].allocatedArea"
1963
+ }
1964
+ );
1965
+
1966
+ // src/api/program/departments.ts
1967
+ var PluginProgramDepartmentsApi = class {
527
1968
  constructor() {
528
1969
  }
529
- /**
530
- * Wrap a {@linkcode PLine} or {@linkcode PArc} as a {@linkcode PCurve}.
531
- *
532
- * This is an identity operation — it simply returns the input unchanged.
533
- * It exists for type-level clarity when building mixed curve lists.
534
- *
535
- * @param curve - A {@linkcode PLine} or {@linkcode PArc} to wrap
536
- * @returns The same value typed as {@linkcode PCurve}
537
- */
538
- new(curve) {
539
- return curve;
540
- }
541
1970
  };
542
- var PCurve = z5.discriminatedUnion("curveType", [PLine, PArc]);
1971
+ var PluginProgramDepartment = z47.object({
1972
+ id: z47.string(),
1973
+ name: z47.string(),
1974
+ color: z47.string(),
1975
+ targetArea: z47.number().nullable()
1976
+ });
1977
+ var PluginProgramDepartmentsListResult = z47.object({
1978
+ units: PluginAreaUnit,
1979
+ departments: z47.array(PluginProgramDepartment)
1980
+ });
1981
+ var PluginProgramDepartmentsGetArgs = z47.object({
1982
+ departmentId: z47.string()
1983
+ });
1984
+ var PluginProgramDepartmentsGetResult = PluginProgramDepartment.extend(
1985
+ {
1986
+ units: PluginAreaUnit
1987
+ }
1988
+ ).nullable();
1989
+ var PluginProgramDepartmentRecord = PluginProgramDepartment.extend({
1990
+ units: PluginAreaUnit
1991
+ });
1992
+ var PluginProgramDepartmentsCreateArgs = z47.object({
1993
+ name: z47.string(),
1994
+ color: z47.string()
1995
+ });
1996
+ var PluginProgramDepartmentsCreateResult = z47.object({
1997
+ departmentId: z47.string()
1998
+ });
1999
+ var PluginProgramDepartmentsUpdateArgs = z47.object({
2000
+ departmentId: z47.string(),
2001
+ name: z47.string().optional(),
2002
+ color: z47.string().optional()
2003
+ });
2004
+ var PluginProgramDepartmentsUpdateResult = PluginProgramDepartmentRecord;
2005
+ var PluginProgramDepartmentsAssignArgs = z47.object({
2006
+ departmentId: z47.string(),
2007
+ spaceIds: z47.array(ComponentHandle).min(1)
2008
+ });
2009
+ var PluginProgramDepartmentsAssignResult = z47.object({
2010
+ departmentId: z47.string(),
2011
+ spaceIds: z47.array(ComponentHandle)
2012
+ });
2013
+ var PluginProgramDepartmentsUnassignArgs = z47.object({
2014
+ spaceIds: z47.array(ComponentHandle).min(1)
2015
+ });
2016
+ var PluginProgramDepartmentsUnassignResult = z47.object({
2017
+ spaceIds: z47.array(ComponentHandle)
2018
+ });
2019
+ var PluginProgramDepartmentsSetTargetAreaArgs = z47.object({
2020
+ departmentId: z47.string(),
2021
+ targetArea: z47.number(),
2022
+ units: PluginAreaUnit.optional()
2023
+ });
2024
+ var PluginProgramDepartmentsSetTargetAreaResult = PluginProgramDepartmentRecord;
2025
+ var PluginProgramDepartmentsDeleteArgs = z47.object({
2026
+ departmentId: z47.string()
2027
+ });
2028
+ var PluginProgramDepartmentsDeleteResult = z47.object({
2029
+ departmentId: z47.string(),
2030
+ reassignedSpaceIds: z47.array(ComponentHandle)
2031
+ });
543
2032
 
544
- // src/api/core/geom/profile.ts
545
- import * as z6 from "zod";
546
- var PluginProfileApi = class {
2033
+ // src/api/program/adjacency.ts
2034
+ import * as z48 from "zod";
2035
+ var PluginProgramAdjacencyApi = class {
547
2036
  constructor() {
548
2037
  }
549
- /**
550
- * Create a profile from an ordered list of curves.
551
- *
552
- * The curves should form a closed loop — the end point of each curve
553
- * should coincide with the start point of the next.
554
- *
555
- * @param curves - An ordered array of {@linkcode PCurve}s forming a closed loop
556
- * @returns A new {@linkcode PProfile}
557
- */
558
- new(curves) {
559
- return { curves };
560
- }
561
2038
  };
562
- var PluginProfileFromLinePointsArgs = z6.object({
563
- points: z6.array(PVec3)
2039
+ var PluginAdjacencyLevel = z48.enum(["department", "space"]);
2040
+ var PluginProgramAdjacencyGetMatrixArgs = z48.object({
2041
+ level: PluginAdjacencyLevel,
2042
+ ids: z48.array(z48.string()).optional()
564
2043
  });
565
- var PProfile = z6.object({
566
- curves: z6.array(PCurve)
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()))
2048
+ });
2049
+ var PluginProgramAdjacencyComputeResult = z48.object({
2050
+ success: z48.boolean(),
2051
+ error: z48.string().optional()
567
2052
  });
568
2053
 
569
- // src/api/core/geom/index.ts
570
- var PluginGeomApi = class {
2054
+ // src/api/program/layout.ts
2055
+ import * as z49 from "zod";
2056
+ var PluginProgramLayoutApi = class {
571
2057
  constructor() {
572
2058
  }
573
2059
  };
2060
+ var PluginProgramLayoutRunResult = z49.object({
2061
+ success: z49.boolean(),
2062
+ error: z49.string().optional()
2063
+ });
574
2064
 
575
- // src/api/core/index.ts
576
- var PluginCoreApi = class {
2065
+ // src/api/program/spreadsheet.ts
2066
+ import * as z50 from "zod";
2067
+ var PluginProgramSpreadsheetApi = class {
577
2068
  constructor() {
578
2069
  }
579
2070
  };
580
-
581
- // src/api/entity/department.ts
582
- import * as z7 from "zod";
583
- var PluginDepartmentApi = class {
2071
+ var PluginProgramSpreadsheetTemplatesApi = class {
584
2072
  constructor() {
585
2073
  }
586
2074
  };
587
- var PluginDepartmentCreateArgs = z7.object({
588
- name: z7.string(),
589
- color: z7.string()
590
- });
591
- var PluginDepartmentCreateResult = z7.object({
592
- departmentId: z7.string()
593
- });
594
- var PluginDepartmentEntry = z7.object({
595
- id: z7.string(),
596
- name: z7.string(),
597
- color: z7.string()
598
- });
599
- var PluginDepartmentGetAllResult = z7.object({
600
- departments: z7.array(PluginDepartmentEntry)
601
- });
602
-
603
- // src/api/entity/referenceLine.ts
604
- import * as z8 from "zod";
605
- var PluginReferenceLineApi = class {
2075
+ var PluginProgramSpreadsheetBindingsApi = class {
606
2076
  constructor() {
607
2077
  }
608
2078
  };
609
- var PluginReferenceLineCreateMultiArgs = z8.object({
610
- profile: PProfile
2079
+ var PluginSpreadsheetCell = z50.union([
2080
+ z50.string(),
2081
+ z50.number(),
2082
+ z50.boolean(),
2083
+ z50.null()
2084
+ ]);
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(),
2091
+ align: PluginSpreadsheetAlign.optional()
611
2092
  });
612
- var PluginReferenceLineCreateMultiResult = z8.object({
613
- referenceLineIds: z8.array(z8.string())
2093
+ var PluginSpreadsheetTotal = z50.object({
2094
+ column: z50.string(),
2095
+ fn: z50.enum(["sum", "avg", "count", "min", "max"]),
2096
+ label: z50.string().optional()
614
2097
  });
615
- var PluginReferenceLineGetProperty = z8.enum([
616
- "curve"
617
- ]);
618
- var PluginReferenceLineGetArgs = z8.object({
619
- referenceLineId: z8.string(),
620
- properties: z8.array(PluginReferenceLineGetProperty)
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()
621
2108
  });
622
- var PluginReferenceLineGetResult = z8.object({
623
- curve: PCurve
624
- }).partial();
625
- var PluginReferenceLineGetAllResult = z8.object({
626
- referenceLineIds: z8.array(z8.string())
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()
627
2117
  });
628
- var PluginReferenceLineDeleteArgs = z8.object({
629
- referenceLineId: z8.string()
2118
+ var PluginProgramSpreadsheetRenderDatasetArgs = z50.object({
2119
+ sheetName: z50.string().optional(),
2120
+ title: z50.string().optional(),
2121
+ filter: z50.string().optional()
630
2122
  });
631
-
632
- // src/api/entity/space.ts
633
- import * as z9 from "zod";
634
- var PluginSpaceApi = class {
635
- constructor() {
636
- }
637
- };
638
- var PluginSpaceCreateRectangularArgs = z9.object({
639
- position: PVec3,
640
- dimensions: z9.object({
641
- width: z9.number(),
642
- height: z9.number(),
643
- depth: z9.number()
644
- })
2123
+ var PluginSpreadsheetExportFormat = z50.enum(["xlsx", "pdf", "csv"]);
2124
+ var PluginProgramSpreadsheetExportArgs = z50.object({
2125
+ format: PluginSpreadsheetExportFormat,
2126
+ fileName: z50.string().optional()
645
2127
  });
646
- var PluginSpaceCreateRectangularResult = z9.object({
647
- spaceId: z9.string()
2128
+ var PluginProgramSpreadsheetExportResult = z50.object({
2129
+ format: PluginSpreadsheetExportFormat,
2130
+ fileName: z50.string(),
2131
+ mimeType: z50.string(),
2132
+ dataBase64: z50.string()
648
2133
  });
649
- var PluginSpaceCreateFromProfileArgs = z9.object({
650
- profile: PProfile,
651
- extrudeHeight: z9.number(),
652
- position: PVec3
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()
653
2140
  });
654
- var PluginSpaceCreateFromProfileResult = z9.object({
655
- spaceId: z9.string()
2141
+ var PluginProgramSpreadsheetListSheetsResult = z50.object({
2142
+ sheets: z50.array(PluginSpreadsheetSheetInfo),
2143
+ activeSheet: z50.string().nullable()
656
2144
  });
657
- var PluginSpaceGetProperty = z9.enum([
658
- // Basic
659
- "id",
660
- "type",
661
- "room_type",
662
- "name",
663
- // Derived from parametric data
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([
2157
+ "column",
2158
+ "bar",
2159
+ "line",
2160
+ "pie",
664
2161
  "area",
665
- "breadth",
666
- "depth",
667
- "height",
668
- "massType",
669
- "spaceType",
670
- "storey",
671
- "departmentId",
672
- "departmentName",
673
- "departmentColor",
674
- // Derived from mesh
675
- "position",
676
- "absolutePosition",
677
- "rotation",
678
- "rotationQuaternion",
679
- // Derived from brep
680
- "planPoints"
2162
+ "scatter"
681
2163
  ]);
682
- var PluginSpaceGetArgs = z9.object({
683
- spaceId: z9.string(),
684
- properties: z9.array(PluginSpaceGetProperty)
2164
+ var PluginProgramSpreadsheetAddChartArgs = z50.object({
2165
+ sheetName: z50.string(),
2166
+ 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()
685
2171
  });
686
- var PluginSpaceType = z9.enum([
687
- "Room",
688
- "Program Block",
689
- "Balcony",
690
- "Road",
691
- "Garden",
692
- "Deck",
693
- "Pool",
694
- "Walkway",
695
- "Envelope",
696
- "Parking"
697
- ]);
698
- var PluginSpaceGetResult = z9.object({
699
- // Basic
700
- id: z9.string(),
701
- type: z9.string(),
702
- room_type: z9.string(),
703
- name: z9.string(),
704
- // Derived from parametric data
705
- area: z9.number(),
706
- breadth: z9.number(),
707
- depth: z9.number(),
708
- height: z9.number(),
709
- massType: z9.string().nullable(),
710
- spaceType: PluginSpaceType.nullable(),
711
- storey: z9.number().nullable(),
712
- departmentId: z9.string().nullable(),
713
- departmentName: z9.string(),
714
- departmentColor: z9.string(),
715
- // Derived from mesh
716
- position: PVec3,
717
- absolutePosition: PVec3,
718
- rotation: PVec3,
719
- rotationQuaternion: PQuat.nullable(),
720
- // Derived from brep
721
- planPoints: z9.array(PVec3)
722
- }).partial();
723
- var PluginSpaceGetAllResult = z9.object({
724
- spacesIds: z9.array(z9.string())
2172
+ var PluginProgramSpreadsheetAddChartResult = z50.object({
2173
+ chartId: z50.string()
725
2174
  });
726
- var PluginSpaceDeleteArgs = z9.object({
727
- spaceId: z9.string()
2175
+ var PluginProgramSpreadsheetHighlightCellsArgs = z50.object({
2176
+ sheetName: z50.string(),
2177
+ range: z50.string(),
2178
+ color: z50.string().optional(),
2179
+ bold: z50.boolean().optional()
728
2180
  });
729
- var PluginMassType = z9.enum([
730
- "Plinth",
731
- "Void",
732
- "Pergola",
733
- "Furniture",
734
- "Facade element",
735
- "Generic mass",
736
- "Room",
737
- "Department",
738
- "Building",
739
- "Revit Import",
740
- "Mass",
741
- "Site"
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({
2193
+ 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(),
2214
+ whenExists: PluginSpreadsheetWhenExists.optional()
2215
+ });
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([
2247
+ "left",
2248
+ "center",
2249
+ "right",
2250
+ "general"
742
2251
  ]);
743
- var PluginWellKnownDepartmentId = z9.enum([
744
- "DEFAULT",
745
- "SITE",
746
- "ENVELOPE",
747
- "CORE"
2252
+ var PluginSpreadsheetVerticalAlign = z50.enum([
2253
+ "top",
2254
+ "center",
2255
+ "bottom"
748
2256
  ]);
749
- var PluginDepartmentId = z9.union([
750
- PluginWellKnownDepartmentId,
751
- z9.uuid()
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(),
2263
+ fontWeight: PluginSpreadsheetFontWeight.optional(),
2264
+ fontStyle: PluginSpreadsheetFontStyle.optional(),
2265
+ formatter: z50.string().optional(),
2266
+ horizontalAlign: PluginSpreadsheetHorizontalAlign.optional(),
2267
+ verticalAlign: PluginSpreadsheetVerticalAlign.optional()
2268
+ });
2269
+ var PluginSpreadsheetRangeStyle = z50.object({
2270
+ range: z50.string(),
2271
+ style: PluginSpreadsheetCellStyle
2272
+ });
2273
+ var PluginProgramSpreadsheetSetStylesArgs = z50.object({
2274
+ sheetName: z50.string(),
2275
+ ranges: z50.array(PluginSpreadsheetRangeStyle)
2276
+ });
2277
+ var PluginProgramSpreadsheetSetStylesResult = z50.object({
2278
+ sheetName: z50.string(),
2279
+ count: z50.number()
2280
+ });
2281
+ var PluginProgramSpreadsheetMergeCellsArgs = z50.object({
2282
+ sheetName: z50.string(),
2283
+ range: z50.string(),
2284
+ value: PluginSpreadsheetCell.optional()
2285
+ });
2286
+ var PluginProgramSpreadsheetMergeCellsResult = z50.object({
2287
+ sheetName: z50.string(),
2288
+ range: z50.string()
2289
+ });
2290
+ var PluginSpreadsheetConditionalRuleType = z50.enum(["dataBar"]);
2291
+ var PluginSpreadsheetConditionalRule = z50.object({
2292
+ type: PluginSpreadsheetConditionalRuleType,
2293
+ color: z50.string().optional()
2294
+ });
2295
+ var PluginProgramSpreadsheetAddConditionalFormattingArgs = z50.object({
2296
+ sheetName: z50.string(),
2297
+ range: z50.string(),
2298
+ rule: PluginSpreadsheetConditionalRule
2299
+ });
2300
+ var PluginProgramSpreadsheetAddConditionalFormattingResult = z50.object({
2301
+ sheetName: z50.string(),
2302
+ range: z50.string(),
2303
+ created: z50.boolean()
2304
+ });
2305
+ var PluginProgramSpreadsheetRecalculateArgs = z50.object({
2306
+ sheetName: z50.string().optional()
2307
+ });
2308
+ var PluginProgramSpreadsheetRecalculateResult = z50.object({
2309
+ scope: z50.enum(["sheet", "workbook"]),
2310
+ sheetName: z50.string().nullable()
2311
+ });
2312
+ var PluginSpreadsheetTransactionMethod = z50.enum([
2313
+ "createSheet",
2314
+ "setValues",
2315
+ "setFormulas",
2316
+ "setStyles",
2317
+ "mergeCells"
752
2318
  ]);
753
- var PluginSpaceUpdateArgs = z9.object({
754
- spaceId: z9.string(),
755
- properties: z9.object({
756
- room_type: z9.string().optional(),
757
- massType: PluginMassType.optional(),
758
- spaceType: PluginSpaceType.optional(),
759
- departmentId: PluginDepartmentId.optional()
760
- })
2319
+ var PluginSpreadsheetTransactionOp = z50.object({
2320
+ 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(),
2346
+ status: PluginSpreadsheetAuditStatus,
2347
+ summary: z50.string().optional()
2348
+ });
2349
+ var PluginProgramSpreadsheetGetAuditLogArgs = z50.object({
2350
+ limit: z50.number().optional()
2351
+ });
2352
+ var PluginProgramSpreadsheetGetAuditLogResult = z50.object({
2353
+ entries: z50.array(PluginSpreadsheetAuditEntry)
2354
+ });
2355
+ var PluginProgramSpreadsheetPingResult = z50.object({
2356
+ pong: z50.boolean()
2357
+ });
2358
+ var PluginSpreadsheetTemplateScope = z50.enum(["project", "global"]);
2359
+ var PluginProgramSpreadsheetTemplatesCreateArgs = z50.object({
2360
+ name: z50.string(),
2361
+ sheetName: z50.string(),
2362
+ scope: PluginSpreadsheetTemplateScope.optional()
761
2363
  });
762
- var PluginSpaceUpdateResult = z9.object({
763
- spaceId: z9.string(),
764
- room_type: z9.string().optional(),
765
- massType: z9.string().optional(),
766
- spaceType: z9.string().optional(),
767
- departmentId: z9.string().nullable().optional()
2364
+ var PluginProgramSpreadsheetTemplatesCreateResult = z50.object({
2365
+ id: z50.string(),
2366
+ name: z50.string(),
2367
+ scope: PluginSpreadsheetTemplateScope,
2368
+ sheetName: z50.string()
2369
+ });
2370
+ var PluginProgramSpreadsheetTemplatesApplyArgs = z50.object({
2371
+ name: z50.string(),
2372
+ targetSheetName: z50.string()
2373
+ });
2374
+ var PluginProgramSpreadsheetTemplatesApplyResult = z50.object({
2375
+ name: z50.string(),
2376
+ targetSheetName: z50.string()
2377
+ });
2378
+ var PluginSpreadsheetBindingSource = z50.object({
2379
+ dataset: z50.enum(["takeoff"])
2380
+ });
2381
+ var PluginSpreadsheetBindingMode = z50.enum(["replaceRange"]);
2382
+ var PluginSpreadsheetBindingTarget = z50.object({
2383
+ sheetName: z50.string(),
2384
+ startCell: z50.string().optional()
2385
+ });
2386
+ var PluginSpreadsheetBinding = z50.object({
2387
+ id: z50.string(),
2388
+ name: z50.string(),
2389
+ pluginId: z50.string(),
2390
+ source: PluginSpreadsheetBindingSource,
2391
+ target: z50.object({
2392
+ sheetName: z50.string(),
2393
+ startCell: z50.string()
2394
+ }),
2395
+ mode: PluginSpreadsheetBindingMode,
2396
+ createdAt: z50.string(),
2397
+ updatedAt: z50.string()
2398
+ });
2399
+ var PluginSpreadsheetBindingRefresh = z50.object({
2400
+ id: z50.string(),
2401
+ name: z50.string(),
2402
+ sheetName: z50.string(),
2403
+ rowCount: z50.number()
2404
+ });
2405
+ var PluginProgramSpreadsheetBindingsCreateArgs = z50.object({
2406
+ name: z50.string(),
2407
+ source: PluginSpreadsheetBindingSource,
2408
+ target: PluginSpreadsheetBindingTarget,
2409
+ mode: PluginSpreadsheetBindingMode.optional()
2410
+ });
2411
+ var PluginProgramSpreadsheetBindingsCreateResult = PluginSpreadsheetBinding.extend({
2412
+ refresh: PluginSpreadsheetBindingRefresh
2413
+ });
2414
+ var PluginProgramSpreadsheetBindingsRefreshArgs = z50.object({
2415
+ name: z50.string().optional()
2416
+ });
2417
+ var PluginProgramSpreadsheetBindingsRefreshResult = z50.object({
2418
+ refreshed: z50.array(PluginSpreadsheetBindingRefresh)
2419
+ });
2420
+ var PluginProgramSpreadsheetBindingsListResult = z50.object({
2421
+ bindings: z50.array(PluginSpreadsheetBinding)
768
2422
  });
769
2423
 
770
- // src/api/entity/story.ts
771
- import * as z10 from "zod";
772
- var PluginStoryApi = class {
2424
+ // src/api/program/site.ts
2425
+ import * as z51 from "zod";
2426
+ var PluginProgramSiteApi = class {
773
2427
  constructor() {
774
2428
  }
775
2429
  };
776
- var PluginStoryGetProperty = z10.enum([
777
- "value",
778
- "id",
779
- "name",
780
- "height",
781
- "base",
782
- "hidden",
783
- "spacesCount",
784
- "totalArea"
785
- ]);
786
- var PluginStoryGetArgs = z10.object({
787
- storyValue: z10.number().int(),
788
- properties: z10.array(PluginStoryGetProperty)
789
- });
790
- var PluginStoryGetResult = z10.object({
791
- value: z10.number(),
792
- id: z10.string(),
793
- name: z10.string(),
794
- height: z10.number(),
795
- base: z10.number(),
796
- hidden: z10.boolean(),
797
- spacesCount: z10.number(),
798
- totalArea: z10.number()
799
- }).partial();
800
- var PluginStoryGetAllResult = z10.object({
801
- stories: z10.array(
802
- z10.object({
803
- value: z10.number(),
804
- id: z10.string(),
805
- name: z10.string()
806
- })
807
- )
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({
2446
+ units: PluginAreaUnit,
2447
+ totalArea: z51.number(),
2448
+ polygonCount: z51.number(),
2449
+ polygons: z51.array(PluginSitePolygon)
2450
+ });
2451
+ var PluginProgramSiteAreaResult = z51.object({
2452
+ units: PluginAreaUnit,
2453
+ area: z51.number()
2454
+ });
2455
+ var PluginProgramSiteListPolygonsResult = z51.object({
2456
+ units: PluginAreaUnit,
2457
+ polygons: z51.array(PluginSitePolygon)
2458
+ });
2459
+ var PluginProgramSiteListGeoPolygonsResult = z51.object({
2460
+ polygons: z51.array(z51.array(PluginSiteGeoPoint))
808
2461
  });
809
- var PluginStoryCreateArgs = z10.object({
810
- storyValue: z10.number().int(),
811
- height: z10.number().optional()
2462
+ var PluginSiteLatLng = z51.object({
2463
+ lat: z51.number(),
2464
+ lng: z51.number()
812
2465
  });
813
- var PluginStoryCreateResult = z10.object({
814
- storyId: z10.string(),
815
- storyValue: z10.number()
2466
+ var PluginSiteBounds = z51.object({
2467
+ north: z51.number(),
2468
+ south: z51.number(),
2469
+ east: z51.number(),
2470
+ west: z51.number()
816
2471
  });
817
- var PluginStoryUpdateArgs = z10.object({
818
- storyValue: z10.number().int(),
819
- height: z10.number()
2472
+ var PluginSiteContextParcel = z51.object({
2473
+ footprint: z51.array(PluginSiteLatLng),
2474
+ area: z51.number()
820
2475
  });
821
- var PluginStoryUpdateResult = z10.object({
822
- storyValue: z10.number(),
823
- height: z10.number()
2476
+ var PluginProgramSiteContext = z51.object({
2477
+ center: PluginSiteLatLng,
2478
+ bounds: PluginSiteBounds,
2479
+ widthInM: z51.number(),
2480
+ heightInM: z51.number(),
2481
+ zoom: z51.number(),
2482
+ parcels: z51.array(PluginSiteContextParcel)
824
2483
  });
2484
+ var PluginProgramSiteContextResult = PluginProgramSiteContext.nullable();
825
2485
 
826
- // src/api/entity/index.ts
827
- var PluginEntityApi = class {
2486
+ // src/api/program/cores.ts
2487
+ import * as z52 from "zod";
2488
+ var PluginProgramCoresApi = class {
828
2489
  constructor() {
829
2490
  }
830
2491
  };
831
-
832
- // src/api/tools/copy.ts
833
- import * as z11 from "zod";
834
- var PluginCopyMode = z11.enum(["instance", "unique"]);
835
- var PluginCopyArgs = z11.object({
836
- componentIds: z11.array(z11.string()).min(1),
837
- displacement: PVec3,
838
- count: z11.number().int().positive().optional(),
839
- copyMode: PluginCopyMode.optional()
2492
+ var PluginProgramCore = z52.object({
2493
+ id: z52.string(),
2494
+ groupId: z52.string(),
2495
+ storey: z52.number()
2496
+ });
2497
+ var PluginProgramCoresListResult = z52.object({
2498
+ cores: z52.array(PluginProgramCore)
2499
+ });
2500
+ var PluginProgramCoresIsCoreArgs = z52.object({
2501
+ id: z52.string()
2502
+ });
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()
2510
+ });
2511
+ var PluginProgramCoresCreateArgs = z52.object({
2512
+ cores: z52.array(PluginProgramCoreSpec),
2513
+ lengthUnit: z52.enum(["mm", "m", "ft"]).optional()
840
2514
  });
841
- var PluginCopyResult = z11.object({
842
- copiedIds: z11.array(z11.string())
2515
+ var PluginProgramCoresCreateResult = z52.object({
2516
+ createdCount: z52.number()
843
2517
  });
844
2518
 
845
- // src/api/tools/offset.ts
846
- import * as z12 from "zod";
847
- var PluginOffsetArgs = z12.object({
848
- componentId: z12.string().min(1),
849
- distance: z12.number(),
850
- profilePickPoint: PVec3.optional()
2519
+ // src/api/program/classification.ts
2520
+ import * as z53 from "zod";
2521
+ var PluginProgramClassificationApi = class {
2522
+ constructor() {
2523
+ }
2524
+ };
2525
+ var PluginClassificationOption = z53.object({
2526
+ value: z53.string(),
2527
+ label: z53.string()
851
2528
  });
852
- var PluginOffsetResult = z12.object({
853
- createdIds: z12.array(z12.string()),
854
- deletedIds: z12.array(z12.string())
2529
+ var PluginProgramClassificationTypesResult = z53.object({
2530
+ spaceTypes: z53.array(PluginClassificationOption),
2531
+ areaClasses: z53.array(PluginClassificationOption),
2532
+ massTypes: z53.array(PluginClassificationOption)
2533
+ });
2534
+ var PluginProgramClassificationListTagsArgs = z53.object({
2535
+ id: z53.string()
2536
+ });
2537
+ var PluginSpaceTag = z53.object({
2538
+ tagId: z53.string(),
2539
+ tagName: z53.string(),
2540
+ color: z53.string(),
2541
+ categoryId: z53.string()
2542
+ });
2543
+ var PluginProgramClassificationTagsResult = z53.object({
2544
+ tagIds: z53.array(z53.string()),
2545
+ tagsByCategory: z53.record(z53.string(), PluginSpaceTag)
855
2546
  });
856
2547
 
857
- // src/api/tools/selection.ts
858
- import * as z13 from "zod";
859
- var PluginSelectionApi = class {
2548
+ // src/api/program/areas.ts
2549
+ import * as z54 from "zod";
2550
+ var PluginProgramAreasApi = class {
860
2551
  constructor() {
861
2552
  }
862
2553
  };
863
- var PluginSelectionGetResult = z13.object({
864
- selected: z13.array(z13.string())
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(),
2565
+ areaUnit: PluginAreaUnit
865
2566
  });
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(),
2576
+ targetUnit: PluginAreaUnit
2577
+ });
2578
+ var PluginProgramAreaMember = z54.object({
2579
+ id: ComponentHandle,
2580
+ label: z54.string(),
2581
+ carpet: z54.number(),
2582
+ builtUp: z54.number(),
2583
+ excluded: z54.number(),
2584
+ isVisible: z54.boolean()
2585
+ });
2586
+ var PluginProgramAreaGroupBy = z54.enum([
2587
+ "labels",
2588
+ "storeys",
2589
+ "buildings",
2590
+ "departments",
2591
+ "tagCategories"
2592
+ ]);
2593
+ var PluginProgramAreasGetResult = PluginProgramAreaSummary;
2594
+ var PluginProgramAreasListArgs = z54.object({
2595
+ groupBy: PluginProgramAreaGroupBy,
2596
+ categoryId: z54.string().optional()
2597
+ }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2598
+ message: 'categoryId is required when groupBy is "tagCategories"'
2599
+ });
2600
+ var PluginProgramAreasListResult = z54.object({
2601
+ groups: z54.array(PluginProgramAreaGroup)
2602
+ });
2603
+ var PluginProgramAreasListMembersArgs = z54.object({
2604
+ groupBy: PluginProgramAreaGroupBy,
2605
+ groupId: z54.string(),
2606
+ categoryId: z54.string().optional()
2607
+ }).refine((v) => v.groupBy !== "tagCategories" || v.categoryId != null, {
2608
+ message: 'categoryId is required when groupBy is "tagCategories"'
2609
+ });
2610
+ var PluginProgramAreasListMembersResult = z54.object({
2611
+ members: z54.array(PluginProgramAreaMember)
2612
+ });
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()
2617
+ });
2618
+ var PluginProgramAreasUpdateResult = PluginProgramAreaSummary;
866
2619
 
867
- // src/api/tools/transform.ts
868
- import * as z14 from "zod";
869
- var PluginTransformApi = class {
2620
+ // src/api/program/index.ts
2621
+ var PluginProgramApi = class {
2622
+ constructor() {
2623
+ }
2624
+ };
2625
+
2626
+ // src/api/presentation/views.ts
2627
+ import * as z55 from "zod";
2628
+ var PluginPresentationViewsApi = class {
870
2629
  constructor() {
871
2630
  }
872
2631
  };
873
- var PluginMoveArgs = z14.object({
874
- componentIds: z14.array(z14.string()),
875
- displacement: PVec3
2632
+ var PluginPresentationViewType = z55.enum(["2d", "3d"]);
2633
+ var PluginPresentationView = z55.object({
2634
+ id: z55.string(),
2635
+ name: z55.string(),
2636
+ type: PluginPresentationViewType,
2637
+ isActive: z55.boolean()
876
2638
  });
877
- var PluginRotateArgs = z14.object({
878
- componentIds: z14.array(z14.string()),
879
- angle: z14.number(),
880
- axis: PVec3,
881
- pivot: PVec3
2639
+ var PluginPresentationViewsListResult = z55.object({
2640
+ views: z55.array(PluginPresentationView)
2641
+ });
2642
+ var PluginPresentationViewsGetArgs = z55.object({
2643
+ id: z55.string()
2644
+ });
2645
+ var PluginPresentationViewsGetResult = PluginPresentationView.nullable();
2646
+ var PluginPresentationImageFormat = z55.enum(["png", "jpeg"]);
2647
+ var PluginPresentationViewsCaptureArgs = z55.object({
2648
+ viewId: z55.string().optional(),
2649
+ format: PluginPresentationImageFormat.optional(),
2650
+ resolution: z55.string().optional()
882
2651
  });
2652
+ var PluginPresentationViewsCaptureResult = z55.object({
2653
+ image: z55.string()
2654
+ });
2655
+ var PluginPresentationViewsSetActiveArgs = z55.object({
2656
+ id: z55.string()
2657
+ });
2658
+ var PluginPresentationViewsSetActiveResult = z55.object({
2659
+ id: z55.string()
2660
+ });
2661
+ var PluginPresentationViewsCreateArgs = z55.object({
2662
+ name: z55.string().optional(),
2663
+ kind: z55.enum(["view", "sitePlan"]).optional()
2664
+ });
2665
+ var PluginPresentationViewsCreateResult = PluginPresentationView;
883
2666
 
884
- // src/api/tools/material.ts
885
- import * as z15 from "zod";
886
- var PluginMaterialApi = class {
2667
+ // src/api/presentation/sheets.ts
2668
+ import * as z56 from "zod";
2669
+ var PluginPresentationSheetsApi = class {
887
2670
  constructor() {
888
2671
  }
889
2672
  };
890
- var DEFAULT_MATERIALS = /* @__PURE__ */ ((DEFAULT_MATERIALS2) => {
891
- DEFAULT_MATERIALS2["GLASS"] = "glass";
892
- DEFAULT_MATERIALS2["WOOD"] = "wood";
893
- DEFAULT_MATERIALS2["METAL"] = "metal";
894
- DEFAULT_MATERIALS2["STONE"] = "stone";
895
- DEFAULT_MATERIALS2["TILES"] = "tiles";
896
- DEFAULT_MATERIALS2["CONCRETE"] = "concrete";
897
- DEFAULT_MATERIALS2["BRICK"] = "brick";
898
- return DEFAULT_MATERIALS2;
899
- })(DEFAULT_MATERIALS || {});
900
- var PluginMaterialArgs = z15.object({
901
- materialName: z15.enum(Object.values(DEFAULT_MATERIALS)),
902
- componentIds: z15.array(z15.string())
2673
+ var PluginPresentationSheet = z56.object({
2674
+ id: z56.string(),
2675
+ name: z56.string()
2676
+ });
2677
+ var PluginSheetPosition = z56.object({
2678
+ x: z56.number(),
2679
+ y: z56.number()
2680
+ });
2681
+ var PluginPresentationSheetsListResult = z56.object({
2682
+ sheets: z56.array(PluginPresentationSheet)
2683
+ });
2684
+ var PluginPresentationSheetsGetArgs = z56.object({
2685
+ id: z56.string()
2686
+ });
2687
+ var PluginPresentationSheetsGetResult = PluginPresentationSheet.nullable();
2688
+ var PluginPresentationSheetsCreateArgs = z56.object({
2689
+ name: z56.string().optional()
2690
+ });
2691
+ var PluginPresentationSheetsPlaceArgs = z56.object({
2692
+ sheetId: z56.string(),
2693
+ viewId: z56.string(),
2694
+ position: PluginSheetPosition.optional()
2695
+ });
2696
+ var PluginPresentationSheetsPlaceResult = z56.object({
2697
+ shapeId: z56.string()
903
2698
  });
904
2699
 
905
- // src/api/tools/index.ts
906
- var PluginToolsApi = class {
2700
+ // src/api/presentation/diagrams.ts
2701
+ import * as z57 from "zod";
2702
+ var PluginPresentationDiagramsApi = class {
907
2703
  constructor() {
908
2704
  }
909
2705
  };
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()
2710
+ });
2711
+ var PluginPresentationDiagramsPlaceResult = z57.object({
2712
+ shapeIds: z57.array(z57.string())
2713
+ });
910
2714
 
911
- // src/api/units/index.ts
912
- import * as z16 from "zod";
913
- var PluginUnitsApi = class {
2715
+ // src/api/presentation/import.ts
2716
+ import * as z58 from "zod";
2717
+ var PluginPresentationImportApi = class {
914
2718
  constructor() {
915
2719
  }
916
2720
  };
917
- var PUnitType = z16.enum([
918
- "meters",
919
- "feet-inches",
920
- "inches",
921
- "centimeters",
922
- "millimeters",
923
- "kilometers",
924
- "miles"
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()
2725
+ }).refine((a) => Boolean(a.url) || Boolean(a.dataUrl), {
2726
+ message: "Provide a url or a dataUrl"
2727
+ });
2728
+ var PluginPresentationImportResult = z58.object({
2729
+ shapeIds: z58.array(z58.string())
2730
+ });
2731
+
2732
+ // 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)])
2737
+ );
2738
+ var PluginAIInspirationOutputKind = z59.enum([
2739
+ "source",
2740
+ "image",
2741
+ "video"
925
2742
  ]);
926
- var PluginUnitsConvertFromArgs = z16.object({
927
- unit: PUnitType,
928
- value: z16.number(),
929
- degree: z16.number().int().min(1).max(3).optional()
2743
+ var PluginAIInspirationModelOutput = z59.enum(["image", "video"]);
2744
+ var PluginAIInspirationShapeKind = z59.enum(["image", "view", "video"]);
2745
+ var PluginAIInspirationVideoMode = z59.enum([
2746
+ "animate",
2747
+ "references",
2748
+ "keyframes"
2749
+ ]);
2750
+ var PluginAIInspirationVideoMotion = z59.enum([
2751
+ "auto",
2752
+ "slow-dolly",
2753
+ "subtle-orbit",
2754
+ "reveal"
2755
+ ]);
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()
2786
+ }).optional()
2787
+ });
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()
2800
+ })
2801
+ ).optional(),
2802
+ siteDefaults: z59.object({
2803
+ includeSatellite: z59.boolean().optional(),
2804
+ includeStreetView: z59.boolean().optional(),
2805
+ includeAerial: z59.boolean().optional()
2806
+ }).optional()
930
2807
  });
931
- var PluginUnitsConvertFromResult = z16.object({
932
- value: z16.number()
2808
+ var PluginAIInspirationVideoOptions = z59.object({
2809
+ mode: PluginAIInspirationVideoMode.optional(),
2810
+ endFrameShapeId: z59.string().optional(),
2811
+ motion: PluginAIInspirationVideoMotion.optional(),
2812
+ duration: PluginAIInspirationVideoDuration.optional()
933
2813
  });
934
- var PluginUnitsConvertToArgs = z16.object({
935
- unit: PUnitType,
936
- value: z16.number(),
937
- degree: z16.number().int().min(1).max(3).optional()
2814
+ var PluginAIInspirationModel = z59.object({
2815
+ id: z59.string(),
2816
+ label: z59.string(),
2817
+ supportsMultiImage: z59.boolean(),
2818
+ output: PluginAIInspirationModelOutput,
2819
+ isDefault: z59.boolean().optional()
938
2820
  });
939
- var PluginUnitsConvertToResult = z16.object({
940
- value: z16.number()
2821
+ var PluginAIInspirationListModelsResult = z59.object({
2822
+ defaultModelId: z59.string(),
2823
+ models: z59.array(PluginAIInspirationModel)
941
2824
  });
2825
+ var PluginAIInspirationShapeRef = z59.object({
2826
+ shapeId: z59.string(),
2827
+ assetId: z59.string().optional(),
2828
+ kind: PluginAIInspirationShapeKind,
2829
+ name: z59.string().optional(),
2830
+ width: z59.number().finite().optional(),
2831
+ height: z59.number().finite().optional(),
2832
+ outputType: PluginAIInspirationOutputKind.optional(),
2833
+ sourceUrl: z59.string().optional()
2834
+ });
2835
+ var PluginAIInspirationListSourcesArgs = z59.object({
2836
+ includeGenerated: z59.boolean().optional(),
2837
+ includeSourceUrl: z59.boolean().optional()
2838
+ });
2839
+ var PluginAIInspirationListSourcesResult = z59.object({
2840
+ sources: z59.array(PluginAIInspirationShapeRef)
2841
+ });
2842
+ var PluginAIInspirationOutput = z59.object({
2843
+ outputType: z59.enum(["image", "video"]),
2844
+ shapeId: z59.string(),
2845
+ assetId: z59.string(),
2846
+ outputUrl: z59.string().optional(),
2847
+ position: PluginAIInspirationPoint.optional()
2848
+ });
2849
+ var PluginAIInspirationDebugSummary = z59.record(z59.string(), JsonValue);
2850
+ var PluginAIInspirationRunMetadata = z59.object({
2851
+ geometryFidelity: z59.string().optional(),
2852
+ 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()
2857
+ }).optional()
2858
+ });
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(),
2865
+ appliedPreset: PluginAIInspirationAppliedPreset.optional(),
2866
+ site: PluginAIInspirationSiteOptions.optional(),
2867
+ regionHint: PluginAIInspirationRegionHint.optional(),
2868
+ sketchGuidance: PluginAIInspirationSketchGuidance.optional(),
2869
+ video: PluginAIInspirationVideoOptions.optional()
2870
+ });
2871
+ var PluginAIInspirationRunResult = z59.object({
2872
+ outputs: z59.array(PluginAIInspirationOutput).min(1),
2873
+ metadata: PluginAIInspirationRunMetadata.optional()
2874
+ });
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()
2878
+ });
2879
+ var PluginPresentationAIInspirationApi = class {
2880
+ constructor() {
2881
+ }
2882
+ };
2883
+
2884
+ // src/api/presentation/index.ts
2885
+ var PluginPresentationApi = class {
2886
+ constructor() {
2887
+ }
2888
+ };
942
2889
 
943
2890
  // src/api/index.ts
944
2891
  var PluginApi = class {
@@ -946,38 +2893,556 @@ var PluginApi = class {
946
2893
  }
947
2894
  };
948
2895
  export {
949
- PArc,
950
- PCurve,
951
- PLine,
952
- PProfile,
953
- PQuat,
2896
+ ArcHandle,
2897
+ BBoxComponents,
2898
+ BooleanOptions,
2899
+ BooleanOutcome,
2900
+ BrepHandle,
2901
+ CircleHandle,
2902
+ CommentHandle,
2903
+ ComponentHandle,
2904
+ ContourHandle,
2905
+ CurveHandle,
2906
+ DEFAULT_ERASE_STRATEGIES,
2907
+ EdgeHandle,
2908
+ ErasableEdgeRef,
2909
+ EraseStrategy,
2910
+ FaceHandle,
2911
+ HalfEdgeHandle,
2912
+ LineHandle,
2913
+ MassHandle,
2914
+ MaterialHandle,
2915
+ OffsetSplitOutcome,
954
2916
  PUnitType,
955
- PVec3,
2917
+ PluginAIInspirationAppliedPreset,
2918
+ PluginAIInspirationDebugSummary,
2919
+ PluginAIInspirationGenerateArgs,
2920
+ PluginAIInspirationListModelsResult,
2921
+ PluginAIInspirationListSourcesArgs,
2922
+ PluginAIInspirationListSourcesResult,
2923
+ PluginAIInspirationModel,
2924
+ PluginAIInspirationModelOutput,
2925
+ PluginAIInspirationOutput,
2926
+ PluginAIInspirationOutputKind,
2927
+ PluginAIInspirationPoint,
2928
+ PluginAIInspirationRefineArgs,
2929
+ PluginAIInspirationRegionHint,
2930
+ PluginAIInspirationRunMetadata,
2931
+ PluginAIInspirationRunResult,
2932
+ PluginAIInspirationShapeKind,
2933
+ PluginAIInspirationShapeRef,
2934
+ PluginAIInspirationSiteOptions,
2935
+ PluginAIInspirationSketchGuidance,
2936
+ PluginAIInspirationTextAnnotation,
2937
+ PluginAIInspirationVideoDuration,
2938
+ PluginAIInspirationVideoMode,
2939
+ PluginAIInspirationVideoMotion,
2940
+ PluginAIInspirationVideoOptions,
2941
+ PluginAdjacencyLevel,
956
2942
  PluginApi,
957
- PluginArcApi,
958
- PluginCopyArgs,
2943
+ PluginAreaClass,
2944
+ PluginAreaUnit,
2945
+ PluginBuildableEnvelopeApi,
2946
+ PluginBuildableEnvelopeCreateArgs,
2947
+ PluginBuildableEnvelopeCreateResult,
2948
+ PluginBuildableEnvelopePolygonVertex,
2949
+ PluginBuildableEnvelopeSetbackTier,
2950
+ PluginBuildableEnvelopeUpdateArgs,
2951
+ PluginBuildableEnvelopeUpdateResult,
2952
+ PluginBuildableEnvelopeVerticalCap,
2953
+ PluginClassificationOption,
2954
+ PluginCommentApi,
2955
+ PluginCommentCreateArgs,
2956
+ PluginCommentRefArgs,
2957
+ PluginCommentTagArgs,
2958
+ PluginCommentUpdateArgs,
959
2959
  PluginCopyMode,
960
- PluginCopyResult,
961
2960
  PluginCoreApi,
962
- PluginCurveApi,
963
- PluginDepartmentApi,
964
- PluginDepartmentCreateArgs,
965
- PluginDepartmentCreateResult,
966
- PluginDepartmentEntry,
967
- PluginDepartmentGetAllResult,
2961
+ PluginCoreAssignOutcome,
2962
+ PluginCoreBuildingRef,
2963
+ PluginCoreBuildingsApi,
2964
+ PluginCoreBuildingsCopyArgs,
2965
+ PluginCoreBuildingsCopyResult,
2966
+ PluginCoreBuildingsCreateArgs,
2967
+ PluginCoreBuildingsCreateResult,
2968
+ PluginCoreBuildingsDeleteArgs,
2969
+ PluginCoreBuildingsDeleteResult,
2970
+ PluginCoreBuildingsGetActiveResult,
2971
+ PluginCoreBuildingsGetArgs,
2972
+ PluginCoreBuildingsGetResult,
2973
+ PluginCoreBuildingsListResult,
2974
+ PluginCoreBuildingsListStoreysArgs,
2975
+ PluginCoreBuildingsListStoreysResult,
2976
+ PluginCoreBuildingsSetActiveArgs,
2977
+ PluginCoreBuildingsSetActiveResult,
2978
+ PluginCoreBuildingsUpdateArgs,
2979
+ PluginCoreBuildingsUpdateResult,
2980
+ PluginCoreComponentTag,
2981
+ PluginCoreGroupMember,
2982
+ PluginCoreGroupRef,
2983
+ PluginCoreGroupsApi,
2984
+ PluginCoreGroupsCreateArgs,
2985
+ PluginCoreGroupsCreateResult,
2986
+ PluginCoreGroupsDeleteArgs,
2987
+ PluginCoreGroupsDeleteResult,
2988
+ PluginCoreGroupsGetArgs,
2989
+ PluginCoreGroupsGetBoundsArgs,
2990
+ PluginCoreGroupsGetBoundsResult,
2991
+ PluginCoreGroupsGetForComponentArgs,
2992
+ PluginCoreGroupsGetForComponentResult,
2993
+ PluginCoreGroupsGetResult,
2994
+ PluginCoreGroupsIsLockedArgs,
2995
+ PluginCoreGroupsIsLockedResult,
2996
+ PluginCoreGroupsListMembersArgs,
2997
+ PluginCoreGroupsListMembersResult,
2998
+ PluginCoreGroupsListResult,
2999
+ PluginCoreGroupsUpdateArgs,
3000
+ PluginCoreGroupsUpdateResult,
3001
+ PluginCoreLayer,
3002
+ PluginCoreLayerType,
3003
+ PluginCoreLayersApi,
3004
+ PluginCoreLayersGetActiveArgs,
3005
+ PluginCoreLayersGetActiveResult,
3006
+ PluginCoreLayersGetArgs,
3007
+ PluginCoreLayersGetResult,
3008
+ PluginCoreLayersListArgs,
3009
+ PluginCoreLayersListResult,
3010
+ PluginCoreLayersSetActiveArgs,
3011
+ PluginCoreLayersSetActiveResult,
3012
+ PluginCoreLayersUpdateArgs,
3013
+ PluginCoreLayersUpdateResult,
3014
+ PluginCoreTag,
3015
+ PluginCoreTagCategory,
3016
+ PluginCoreTagsApi,
3017
+ PluginCoreTagsAssignArgs,
3018
+ PluginCoreTagsAssignResult,
3019
+ PluginCoreTagsCreateArgs,
3020
+ PluginCoreTagsCreateCategoryArgs,
3021
+ PluginCoreTagsCreateCategoryResult,
3022
+ PluginCoreTagsCreateResult,
3023
+ PluginCoreTagsDeleteArgs,
3024
+ PluginCoreTagsDeleteCategoryArgs,
3025
+ PluginCoreTagsDeleteCategoryResult,
3026
+ PluginCoreTagsDeleteResult,
3027
+ PluginCoreTagsGetArgs,
3028
+ PluginCoreTagsGetCategoryArgs,
3029
+ PluginCoreTagsGetCategoryResult,
3030
+ PluginCoreTagsGetResult,
3031
+ PluginCoreTagsGetTagsForComponentArgs,
3032
+ PluginCoreTagsGetTagsForComponentResult,
3033
+ PluginCoreTagsListArgs,
3034
+ PluginCoreTagsListCategoriesResult,
3035
+ PluginCoreTagsListComponentsArgs,
3036
+ PluginCoreTagsListComponentsResult,
3037
+ PluginCoreTagsListResult,
3038
+ PluginCoreTagsUnassignArgs,
3039
+ PluginCoreTagsUnassignResult,
3040
+ PluginCoreTagsUpdateArgs,
3041
+ PluginCoreTagsUpdateCategoryArgs,
3042
+ PluginCoreTagsUpdateCategoryResult,
3043
+ PluginCoreTagsUpdateResult,
3044
+ PluginCreateSpaceItem,
968
3045
  PluginDepartmentId,
3046
+ PluginDesignApi,
3047
+ PluginDesignBooleanApi,
3048
+ PluginDesignBooleanIntersectArgs,
3049
+ PluginDesignBooleanSubtractArgs,
3050
+ PluginDesignBooleanUnionArgs,
3051
+ PluginDesignChangeResult,
3052
+ PluginDesignCreateApi,
3053
+ PluginDesignCreateBeamArgs,
3054
+ PluginDesignCreateCeilingArgs,
3055
+ PluginDesignCreateColumnArgs,
3056
+ PluginDesignCreateCopyArgs,
3057
+ PluginDesignCreateFloorArgs,
3058
+ PluginDesignCreateFurnitureArgs,
3059
+ PluginDesignCreateMassArgs,
3060
+ PluginDesignCreateReferenceLinesArgs,
3061
+ PluginDesignCreateRoofArgs,
3062
+ PluginDesignCreateSlabArgs,
3063
+ PluginDesignCreateSpaceArgs,
3064
+ PluginDesignCreateStaircaseArgs,
3065
+ PluginDesignCreateWallsArgs,
3066
+ PluginDesignDeleteApi,
3067
+ PluginDesignDeleteEntitiesArgs,
3068
+ PluginDesignDoorArgs,
3069
+ PluginDesignDoorMirrorArgs,
3070
+ PluginDesignDoorSetHeightArgs,
3071
+ PluginDesignDoorSetWidthArgs,
3072
+ PluginDesignDoorsApi,
3073
+ PluginDesignEditApi,
3074
+ PluginDesignEraseApi,
3075
+ PluginDesignEraseEdgeArgs,
3076
+ PluginDesignEraseEdgeResult,
3077
+ PluginDesignFurnitureApi,
3078
+ PluginDesignFurnitureExistsArgs,
3079
+ PluginDesignFurnitureGetCatalogItemArgs,
3080
+ PluginDesignFurnitureListCatalogArgs,
3081
+ PluginDesignIsLockedArgs,
3082
+ PluginDesignListErasableEdgesArgs,
3083
+ PluginDesignLockArgs,
3084
+ PluginDesignMaterialsApi,
3085
+ PluginDesignMaterialsApplyArgs,
3086
+ PluginDesignMaterialsComponentArgs,
3087
+ PluginDesignMaterialsCreateArgs,
3088
+ PluginDesignMaterialsGetInfoArgs,
3089
+ PluginDesignMaterialsListArgs,
3090
+ PluginDesignMaterialsResetArgs,
3091
+ PluginDesignMoveArgs,
3092
+ PluginDesignOffsetSplitArgs,
3093
+ PluginDesignQueryApi,
3094
+ PluginDesignQueryComponentArgs,
3095
+ PluginDesignQueryComponentsArgs,
3096
+ PluginDesignQueryGeometryApi,
3097
+ PluginDesignQueryGeometryGetBottomContourArgs,
3098
+ PluginDesignQueryGeometryGetBrepArgs,
3099
+ PluginDesignQueryGeometryGetCenterlineArgs,
3100
+ PluginDesignQueryGetFootprintArgs,
3101
+ PluginDesignQueryIdArgs,
3102
+ PluginDesignQueryListByTypeArgs,
3103
+ PluginDesignQuerySpacesApi,
3104
+ PluginDesignQuerySpacesGetArgs,
3105
+ PluginDesignQuerySpacesGetProperty,
3106
+ PluginDesignQuerySpacesGetResult,
3107
+ PluginDesignRotateArgs,
3108
+ PluginDesignSelectionAddArgs,
3109
+ PluginDesignSelectionApi,
3110
+ PluginDesignSelectionRemoveArgs,
3111
+ PluginDesignSelectionSetArgs,
3112
+ PluginDesignTransformApi,
3113
+ PluginDesignUnlockArgs,
3114
+ PluginDesignUpdateApi,
3115
+ PluginDesignWindowArgs,
3116
+ PluginDesignWindowSetHeightArgs,
3117
+ PluginDesignWindowSetWidthArgs,
3118
+ PluginDesignWindowsApi,
969
3119
  PluginEntityApi,
3120
+ PluginEntityFilter,
3121
+ PluginEntityMeasurements,
3122
+ PluginEntityProperties,
3123
+ PluginEntityType,
3124
+ PluginFurnitureCatalogItem,
970
3125
  PluginGeomApi,
971
- PluginLineApi,
3126
+ PluginGeomCreateApi,
3127
+ PluginGeomCreateArcArgs,
3128
+ PluginGeomCreateCircleArgs,
3129
+ PluginGeomCreateContourFromProfileArgs,
3130
+ PluginGeomCreateContourFromProfilesArgs,
3131
+ PluginGeomCreateLineArgs,
3132
+ PluginGeomCreateProfileFromCurvesArgs,
3133
+ PluginGeomCreateProfileFromLinePointsArgs,
3134
+ PluginGeomDeleteApi,
3135
+ PluginGeomDeleteContourArgs,
3136
+ PluginGeomDeleteProfileArgs,
3137
+ PluginGeomQueryApi,
3138
+ PluginGeomQueryArcApi,
3139
+ PluginGeomQueryArcGetAxisArgs,
3140
+ PluginGeomQueryArcGetCentreArgs,
3141
+ PluginGeomQueryArcGetRadiusArgs,
3142
+ PluginGeomQueryArcGetSweepAngleArgs,
3143
+ PluginGeomQueryArcIsValidArgs,
3144
+ PluginGeomQueryBrepApi,
3145
+ PluginGeomQueryBrepGetBoundingBoxArgs,
3146
+ PluginGeomQueryBrepGetCentroidArgs,
3147
+ PluginGeomQueryBrepGetEdgeArgs,
3148
+ PluginGeomQueryBrepGetEdgeCountArgs,
3149
+ PluginGeomQueryBrepGetFaceCountArgs,
3150
+ PluginGeomQueryBrepGetHalfEdgeCountArgs,
3151
+ PluginGeomQueryBrepGetVertexCountArgs,
3152
+ PluginGeomQueryBrepGetVertexPositionArgs,
3153
+ PluginGeomQueryBrepHasEdgeArgs,
3154
+ PluginGeomQueryBrepIsEqualArgs,
3155
+ PluginGeomQueryBrepListEdgesArgs,
3156
+ PluginGeomQueryBrepListEdgesBetweenArgs,
3157
+ PluginGeomQueryBrepListFacesArgs,
3158
+ PluginGeomQueryBrepListHalfEdgesArgs,
3159
+ PluginGeomQueryBrepListVertexPositionsArgs,
3160
+ PluginGeomQueryBrepListVerticesArgs,
3161
+ PluginGeomQueryCircleApi,
3162
+ PluginGeomQueryCircleGetAxisArgs,
3163
+ PluginGeomQueryCircleGetCentreArgs,
3164
+ PluginGeomQueryCircleGetLengthArgs,
3165
+ PluginGeomQueryCircleGetNearestPointArgs,
3166
+ PluginGeomQueryCircleGetNormalArgs,
3167
+ PluginGeomQueryCircleGetPointAtDistanceArgs,
3168
+ PluginGeomQueryCircleGetRadiusArgs,
3169
+ PluginGeomQueryCircleGetTangentArgs,
3170
+ PluginGeomQueryCircleHasPointArgs,
3171
+ PluginGeomQueryCircleIsEqualArgs,
3172
+ PluginGeomQueryCircleIsValidArgs,
3173
+ PluginGeomQueryCircleListPointsArgs,
3174
+ PluginGeomQueryContourApi,
3175
+ PluginGeomQueryContourGetAreaArgs,
3176
+ PluginGeomQueryContourGetBoundingBoxArgs,
3177
+ PluginGeomQueryContourGetHoleCountArgs,
3178
+ PluginGeomQueryContourGetNearestPointArgs,
3179
+ PluginGeomQueryContourGetNormalArgs,
3180
+ PluginGeomQueryContourGetOuterProfileArgs,
3181
+ PluginGeomQueryContourGetPerimeterArgs,
3182
+ PluginGeomQueryContourHasPointArgs,
3183
+ PluginGeomQueryContourIsClockwiseArgs,
3184
+ PluginGeomQueryContourIsEmptyArgs,
3185
+ PluginGeomQueryContourIsEqualArgs,
3186
+ PluginGeomQueryContourIsOnBoundaryArgs,
3187
+ PluginGeomQueryContourIsOrientationValidArgs,
3188
+ PluginGeomQueryContourIsPlanarArgs,
3189
+ PluginGeomQueryContourIsSelfIntersectingArgs,
3190
+ PluginGeomQueryContourListHolesArgs,
3191
+ PluginGeomQueryCurveApi,
3192
+ PluginGeomQueryCurveGetChordLengthArgs,
3193
+ PluginGeomQueryCurveGetCommonPartArgs,
3194
+ PluginGeomQueryCurveGetCurvatureArgs,
3195
+ PluginGeomQueryCurveGetDistanceAlongArgs,
3196
+ PluginGeomQueryCurveGetDistanceBetweenArgs,
3197
+ PluginGeomQueryCurveGetDistanceToPointArgs,
3198
+ PluginGeomQueryCurveGetEndPointArgs,
3199
+ PluginGeomQueryCurveGetLengthArgs,
3200
+ PluginGeomQueryCurveGetMergedCurveArgs,
3201
+ PluginGeomQueryCurveGetMidPointArgs,
3202
+ PluginGeomQueryCurveGetNearestPointArgs,
3203
+ PluginGeomQueryCurveGetNormalArgs,
3204
+ PluginGeomQueryCurveGetParameterAtPointArgs,
3205
+ PluginGeomQueryCurveGetPointAtDistanceArgs,
3206
+ PluginGeomQueryCurveGetProjectionArgs,
3207
+ PluginGeomQueryCurveGetShortestGapArgs,
3208
+ PluginGeomQueryCurveGetStartPointArgs,
3209
+ PluginGeomQueryCurveGetTangentArgs,
3210
+ PluginGeomQueryCurveHasPointArgs,
3211
+ PluginGeomQueryCurveIsContinuousArgs,
3212
+ PluginGeomQueryCurveIsEqualArgs,
3213
+ PluginGeomQueryCurveIsLinearArgs,
3214
+ PluginGeomQueryCurveIsOnCurveArgs,
3215
+ PluginGeomQueryCurveIsOverlappingArgs,
3216
+ PluginGeomQueryCurveIsParallelArgs,
3217
+ PluginGeomQueryCurveListIntersectionsArgs,
3218
+ PluginGeomQueryCurveListPointsArgs,
3219
+ PluginGeomQueryCurveListSubdivisionsArgs,
3220
+ PluginGeomQueryEdgeApi,
3221
+ PluginGeomQueryEdgeGetCurveArgs,
3222
+ PluginGeomQueryEdgeGetHalfEdgeArgs,
3223
+ PluginGeomQueryEdgeGetIndexArgs,
3224
+ PluginGeomQueryEdgeListFacesArgs,
3225
+ PluginGeomQueryEdgeListVerticesArgs,
3226
+ PluginGeomQueryFaceApi,
3227
+ PluginGeomQueryFaceGetHalfEdgeArgs,
3228
+ PluginGeomQueryFaceGetHoleContainingHalfEdgeArgs,
3229
+ PluginGeomQueryFaceGetHoleCountArgs,
3230
+ PluginGeomQueryFaceGetIndexArgs,
3231
+ PluginGeomQueryFaceGetMaterialIndexArgs,
3232
+ PluginGeomQueryFaceHasHolesArgs,
3233
+ PluginGeomQueryFaceListAdjacentFacesArgs,
3234
+ PluginGeomQueryFaceListEdgesArgs,
3235
+ PluginGeomQueryFaceListHalfEdgesArgs,
3236
+ PluginGeomQueryFaceListHoleHalfEdgesArgs,
3237
+ PluginGeomQueryFaceListHolesArgs,
3238
+ PluginGeomQueryFaceListVertexPositionsArgs,
3239
+ PluginGeomQueryFaceListVertexPositionsWithCurvesArgs,
3240
+ PluginGeomQueryFaceListVerticesArgs,
3241
+ PluginGeomQueryHalfEdgeApi,
3242
+ PluginGeomQueryHalfEdgeGetEdgeArgs,
3243
+ PluginGeomQueryHalfEdgeGetFaceArgs,
3244
+ PluginGeomQueryHalfEdgeGetFlipArgs,
3245
+ PluginGeomQueryHalfEdgeGetNextArgs,
3246
+ PluginGeomQueryHalfEdgeGetPrevArgs,
3247
+ PluginGeomQueryHalfEdgeGetVertexArgs,
3248
+ PluginGeomQueryHalfEdgeIsForwardArgs,
3249
+ PluginGeomQueryHalfEdgeIsOnBoundaryArgs,
3250
+ PluginGeomQueryProfileApi,
3251
+ PluginGeomQueryProfileGetAreaArgs,
3252
+ PluginGeomQueryProfileGetBoundingBoxArgs,
3253
+ PluginGeomQueryProfileGetNearestPointArgs,
3254
+ PluginGeomQueryProfileGetNormalArgs,
3255
+ PluginGeomQueryProfileGetPerimeterArgs,
3256
+ PluginGeomQueryProfileHasPointArgs,
3257
+ PluginGeomQueryProfileIsClockwiseArgs,
3258
+ PluginGeomQueryProfileIsClosedArgs,
3259
+ PluginGeomQueryProfileIsEmptyArgs,
3260
+ PluginGeomQueryProfileIsEqualArgs,
3261
+ PluginGeomQueryProfileIsOnBoundaryArgs,
3262
+ PluginGeomQueryProfileIsPlanarArgs,
3263
+ PluginGeomQueryProfileIsSelfIntersectingArgs,
3264
+ PluginGeomQueryProfileListCurvesArgs,
3265
+ PluginGeomQueryProfileListPointsArgs,
3266
+ PluginGeomQueryVertexApi,
3267
+ PluginGeomQueryVertexGetHalfEdgeArgs,
3268
+ PluginGeomQueryVertexGetIndexArgs,
3269
+ PluginGeomQueryVertexGetPositionArgs,
3270
+ PluginGeomQueryVertexListEdgesArgs,
3271
+ PluginGeomQueryVertexListFacesArgs,
3272
+ PluginGeomQueryVertexListHalfEdgesArgs,
3273
+ PluginGeomQueryVertexListNeighborsArgs,
3274
+ PluginGeomUpdateApi,
3275
+ PluginGeomUpdateContourAddHoleArgs,
3276
+ PluginGeomUpdateContourApi,
3277
+ PluginGeomUpdateContourMirrorArgs,
3278
+ PluginGeomUpdateContourMoveArgs,
3279
+ PluginGeomUpdateContourOffsetArgs,
3280
+ PluginGeomUpdateContourRemoveHoleArgs,
3281
+ PluginGeomUpdateContourRotateArgs,
3282
+ PluginGeomUpdateContourScaleArgs,
3283
+ PluginGeomUpdateCurveApi,
3284
+ PluginGeomUpdateCurveExtendArgs,
3285
+ PluginGeomUpdateCurveOffsetArgs,
3286
+ PluginGeomUpdateCurveReverseArgs,
3287
+ PluginGeomUpdateCurveSplitArgs,
3288
+ PluginGeomUpdateCurveTrimArgs,
3289
+ PluginGeomUpdateProfileAddArgs,
3290
+ PluginGeomUpdateProfileApi,
3291
+ PluginGeomUpdateProfileMirrorArgs,
3292
+ PluginGeomUpdateProfileMoveArgs,
3293
+ PluginGeomUpdateProfileOffsetArgs,
3294
+ PluginGeomUpdateProfileRemoveArgs,
3295
+ PluginGeomUpdateProfileReverseArgs,
3296
+ PluginGeomUpdateProfileRotateArgs,
3297
+ PluginGeomUpdateProfileScaleArgs,
3298
+ PluginGeomUpdateProfileSimplifyArgs,
3299
+ PluginGridApi,
3300
+ PluginGridValueArgs,
3301
+ PluginHistoryApi,
3302
+ PluginHistoryStepArgs,
3303
+ PluginHistoryStepResult,
972
3304
  PluginMassType,
973
- PluginMaterialApi,
974
- PluginMaterialArgs,
3305
+ PluginMaterialInfo,
3306
+ PluginMaterialResult,
3307
+ PluginMaterialSpec,
975
3308
  PluginMathApi,
976
- PluginMoveArgs,
977
- PluginOffsetArgs,
978
- PluginOffsetResult,
979
- PluginProfileApi,
980
- PluginProfileFromLinePointsArgs,
3309
+ PluginMirrorAxis,
3310
+ PluginPresentationAIInspirationApi,
3311
+ PluginPresentationApi,
3312
+ PluginPresentationDiagramsApi,
3313
+ PluginPresentationDiagramsPlaceArgs,
3314
+ PluginPresentationDiagramsPlaceResult,
3315
+ PluginPresentationImageFormat,
3316
+ PluginPresentationImportApi,
3317
+ PluginPresentationImportArgs,
3318
+ PluginPresentationImportResult,
3319
+ PluginPresentationSheet,
3320
+ PluginPresentationSheetsApi,
3321
+ PluginPresentationSheetsCreateArgs,
3322
+ PluginPresentationSheetsGetArgs,
3323
+ PluginPresentationSheetsGetResult,
3324
+ PluginPresentationSheetsListResult,
3325
+ PluginPresentationSheetsPlaceArgs,
3326
+ PluginPresentationSheetsPlaceResult,
3327
+ PluginPresentationView,
3328
+ PluginPresentationViewType,
3329
+ PluginPresentationViewsApi,
3330
+ PluginPresentationViewsCaptureArgs,
3331
+ PluginPresentationViewsCaptureResult,
3332
+ PluginPresentationViewsCreateArgs,
3333
+ PluginPresentationViewsCreateResult,
3334
+ PluginPresentationViewsGetArgs,
3335
+ PluginPresentationViewsGetResult,
3336
+ PluginPresentationViewsListResult,
3337
+ PluginPresentationViewsSetActiveArgs,
3338
+ PluginPresentationViewsSetActiveResult,
3339
+ PluginProgramAdjacencyApi,
3340
+ PluginProgramAdjacencyComputeResult,
3341
+ PluginProgramAdjacencyGetMatrixArgs,
3342
+ PluginProgramAdjacencyGetMatrixResult,
3343
+ PluginProgramApi,
3344
+ PluginProgramAreaGroup,
3345
+ PluginProgramAreaGroupBy,
3346
+ PluginProgramAreaMember,
3347
+ PluginProgramAreaSummary,
3348
+ PluginProgramAreasApi,
3349
+ PluginProgramAreasGetResult,
3350
+ PluginProgramAreasListArgs,
3351
+ PluginProgramAreasListMembersArgs,
3352
+ PluginProgramAreasListMembersResult,
3353
+ PluginProgramAreasListResult,
3354
+ PluginProgramAreasUpdateArgs,
3355
+ PluginProgramAreasUpdateResult,
3356
+ PluginProgramClassificationApi,
3357
+ PluginProgramClassificationListTagsArgs,
3358
+ PluginProgramClassificationTagsResult,
3359
+ PluginProgramClassificationTypesResult,
3360
+ PluginProgramCore,
3361
+ PluginProgramCoreSpec,
3362
+ PluginProgramCoresApi,
3363
+ PluginProgramCoresCreateArgs,
3364
+ PluginProgramCoresCreateResult,
3365
+ PluginProgramCoresIsCoreArgs,
3366
+ PluginProgramCoresListResult,
3367
+ PluginProgramDepartment,
3368
+ PluginProgramDepartmentMetric,
3369
+ PluginProgramDepartmentRecord,
3370
+ PluginProgramDepartmentsApi,
3371
+ PluginProgramDepartmentsAssignArgs,
3372
+ PluginProgramDepartmentsAssignResult,
3373
+ PluginProgramDepartmentsCreateArgs,
3374
+ PluginProgramDepartmentsCreateResult,
3375
+ PluginProgramDepartmentsDeleteArgs,
3376
+ PluginProgramDepartmentsDeleteResult,
3377
+ PluginProgramDepartmentsGetArgs,
3378
+ PluginProgramDepartmentsGetResult,
3379
+ PluginProgramDepartmentsListResult,
3380
+ PluginProgramDepartmentsSetTargetAreaArgs,
3381
+ PluginProgramDepartmentsSetTargetAreaResult,
3382
+ PluginProgramDepartmentsUnassignArgs,
3383
+ PluginProgramDepartmentsUnassignResult,
3384
+ PluginProgramDepartmentsUpdateArgs,
3385
+ PluginProgramDepartmentsUpdateResult,
3386
+ PluginProgramLayoutApi,
3387
+ PluginProgramLayoutRunResult,
3388
+ PluginProgramMetricsApi,
3389
+ PluginProgramMetricsSummary,
3390
+ PluginProgramSiteApi,
3391
+ PluginProgramSiteAreaResult,
3392
+ PluginProgramSiteContext,
3393
+ PluginProgramSiteContextResult,
3394
+ PluginProgramSiteListGeoPolygonsResult,
3395
+ PluginProgramSiteListPolygonsResult,
3396
+ PluginProgramSiteSnapshot,
3397
+ PluginProgramSpreadsheetAddChartArgs,
3398
+ PluginProgramSpreadsheetAddChartResult,
3399
+ PluginProgramSpreadsheetAddConditionalFormattingArgs,
3400
+ PluginProgramSpreadsheetAddConditionalFormattingResult,
3401
+ PluginProgramSpreadsheetApi,
3402
+ PluginProgramSpreadsheetBindingsApi,
3403
+ PluginProgramSpreadsheetBindingsCreateArgs,
3404
+ PluginProgramSpreadsheetBindingsCreateResult,
3405
+ PluginProgramSpreadsheetBindingsListResult,
3406
+ PluginProgramSpreadsheetBindingsRefreshArgs,
3407
+ PluginProgramSpreadsheetBindingsRefreshResult,
3408
+ PluginProgramSpreadsheetCreateSheetArgs,
3409
+ PluginProgramSpreadsheetCreateSheetResult,
3410
+ PluginProgramSpreadsheetExportArgs,
3411
+ PluginProgramSpreadsheetExportResult,
3412
+ PluginProgramSpreadsheetGetAuditLogArgs,
3413
+ PluginProgramSpreadsheetGetAuditLogResult,
3414
+ PluginProgramSpreadsheetGetProgramResult,
3415
+ PluginProgramSpreadsheetGetSheetDataArgs,
3416
+ PluginProgramSpreadsheetGetSheetDataResult,
3417
+ PluginProgramSpreadsheetGetTakeoffResult,
3418
+ PluginProgramSpreadsheetHighlightCellsArgs,
3419
+ PluginProgramSpreadsheetHighlightCellsResult,
3420
+ PluginProgramSpreadsheetListSheetsResult,
3421
+ PluginProgramSpreadsheetMergeCellsArgs,
3422
+ PluginProgramSpreadsheetMergeCellsResult,
3423
+ PluginProgramSpreadsheetPingResult,
3424
+ PluginProgramSpreadsheetRecalculateArgs,
3425
+ PluginProgramSpreadsheetRecalculateResult,
3426
+ PluginProgramSpreadsheetRenderArgs,
3427
+ PluginProgramSpreadsheetRenderDatasetArgs,
3428
+ PluginProgramSpreadsheetRenderResult,
3429
+ PluginProgramSpreadsheetRunScriptArgs,
3430
+ PluginProgramSpreadsheetRunScriptResult,
3431
+ PluginProgramSpreadsheetSetFormulasArgs,
3432
+ PluginProgramSpreadsheetSetFormulasResult,
3433
+ PluginProgramSpreadsheetSetStylesArgs,
3434
+ PluginProgramSpreadsheetSetStylesResult,
3435
+ PluginProgramSpreadsheetSetValuesArgs,
3436
+ PluginProgramSpreadsheetSetValuesResult,
3437
+ PluginProgramSpreadsheetTemplatesApi,
3438
+ PluginProgramSpreadsheetTemplatesApplyArgs,
3439
+ PluginProgramSpreadsheetTemplatesApplyResult,
3440
+ PluginProgramSpreadsheetTemplatesCreateArgs,
3441
+ PluginProgramSpreadsheetTemplatesCreateResult,
3442
+ PluginProgramSpreadsheetTransactionArgs,
3443
+ PluginProgramSpreadsheetTransactionResult,
3444
+ PluginProjectApi,
3445
+ PluginProjectSettingsApi,
981
3446
  PluginQuatApi,
982
3447
  PluginReferenceLineApi,
983
3448
  PluginReferenceLineCreateMultiArgs,
@@ -987,22 +3452,72 @@ export {
987
3452
  PluginReferenceLineGetArgs,
988
3453
  PluginReferenceLineGetProperty,
989
3454
  PluginReferenceLineGetResult,
990
- PluginRotateArgs,
991
- PluginSelectionApi,
992
- PluginSelectionGetResult,
993
- PluginSpaceApi,
3455
+ PluginReferenceLineStyle,
3456
+ PluginSheetPosition,
3457
+ PluginSiteBounds,
3458
+ PluginSiteContextParcel,
3459
+ PluginSiteFootprintPoint,
3460
+ PluginSiteGeoPoint,
3461
+ PluginSiteLatLng,
3462
+ PluginSitePolygon,
3463
+ PluginSlabType,
3464
+ PluginSnapValueArgs,
3465
+ PluginSnapsApi,
3466
+ PluginSpaceBulkCreateArgs,
3467
+ PluginSpaceBulkCreateItem,
3468
+ PluginSpaceBulkCreateResult,
3469
+ PluginSpaceBulkDeleteArgs,
3470
+ PluginSpaceBulkDeleteResult,
3471
+ PluginSpaceBulkUpdateArgs,
3472
+ PluginSpaceBulkUpdateItem,
3473
+ PluginSpaceBulkUpdateResult,
994
3474
  PluginSpaceCreateFromProfileArgs,
995
3475
  PluginSpaceCreateFromProfileResult,
996
3476
  PluginSpaceCreateRectangularArgs,
997
3477
  PluginSpaceCreateRectangularResult,
998
3478
  PluginSpaceDeleteArgs,
3479
+ PluginSpaceGeometryUpdate,
999
3480
  PluginSpaceGetAllResult,
1000
3481
  PluginSpaceGetArgs,
1001
3482
  PluginSpaceGetProperty,
1002
3483
  PluginSpaceGetResult,
3484
+ PluginSpacePropertyUpdates,
3485
+ PluginSpaceTag,
1003
3486
  PluginSpaceType,
1004
3487
  PluginSpaceUpdateArgs,
3488
+ PluginSpaceUpdateGeometryFromProfileArgs,
3489
+ PluginSpaceUpdateGeometryFromProfileResult,
1005
3490
  PluginSpaceUpdateResult,
3491
+ PluginSpreadsheetAlign,
3492
+ PluginSpreadsheetAuditEntry,
3493
+ PluginSpreadsheetAuditStatus,
3494
+ PluginSpreadsheetBinding,
3495
+ PluginSpreadsheetBindingMode,
3496
+ PluginSpreadsheetBindingRefresh,
3497
+ PluginSpreadsheetBindingSource,
3498
+ PluginSpreadsheetBindingTarget,
3499
+ PluginSpreadsheetCell,
3500
+ PluginSpreadsheetCellStyle,
3501
+ PluginSpreadsheetChartType,
3502
+ PluginSpreadsheetColumn,
3503
+ PluginSpreadsheetConditionalRule,
3504
+ PluginSpreadsheetConditionalRuleType,
3505
+ PluginSpreadsheetExportFormat,
3506
+ PluginSpreadsheetFontStyle,
3507
+ PluginSpreadsheetFontWeight,
3508
+ PluginSpreadsheetFormula,
3509
+ PluginSpreadsheetHorizontalAlign,
3510
+ PluginSpreadsheetProgramRow,
3511
+ PluginSpreadsheetRangeStyle,
3512
+ PluginSpreadsheetSheetInfo,
3513
+ PluginSpreadsheetTakeoffRow,
3514
+ PluginSpreadsheetTemplateScope,
3515
+ PluginSpreadsheetTotal,
3516
+ PluginSpreadsheetTransactionMethod,
3517
+ PluginSpreadsheetTransactionOp,
3518
+ PluginSpreadsheetVerticalAlign,
3519
+ PluginSpreadsheetWhenExists,
3520
+ PluginStaircasePreset,
1006
3521
  PluginStoryApi,
1007
3522
  PluginStoryCreateArgs,
1008
3523
  PluginStoryCreateResult,
@@ -1012,14 +3527,21 @@ export {
1012
3527
  PluginStoryGetResult,
1013
3528
  PluginStoryUpdateArgs,
1014
3529
  PluginStoryUpdateResult,
1015
- PluginToolsApi,
1016
- PluginTransformApi,
3530
+ PluginToleranceArgs,
1017
3531
  PluginUnitsApi,
1018
- PluginUnitsConvertFromArgs,
1019
- PluginUnitsConvertFromResult,
1020
- PluginUnitsConvertToArgs,
1021
- PluginUnitsConvertToResult,
3532
+ PluginUnitsConvertArgs,
3533
+ PluginUnitsSetTypeArgs,
3534
+ PluginUpdateSpaceItem,
1022
3535
  PluginVec3Api,
1023
- PluginWellKnownDepartmentId
3536
+ PluginWellKnownDepartmentId,
3537
+ PluginWindowDimensions,
3538
+ PluginZoomApi,
3539
+ ProfileHandle,
3540
+ QuatComponents,
3541
+ QuatHandle,
3542
+ Vec3Components,
3543
+ Vec3Handle,
3544
+ VertexHandle,
3545
+ handleSchema
1024
3546
  };
1025
3547
  //# sourceMappingURL=index.js.map