@snaptrude/plugin-core 0.9.16 → 0.9.18-edgesetbacks-20261021.1

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 (221) hide show
  1. package/AGENTS.md +231 -231
  2. package/CHANGELOG.md +408 -402
  3. package/CLAUDE.md +11 -11
  4. package/api-manifest.json +1510 -701
  5. package/dist/api/analysis/daylight.d.ts +5 -5
  6. package/dist/api/analysis/solar.d.ts +2 -2
  7. package/dist/api/core/camera/index.d.ts +29 -0
  8. package/dist/api/core/camera/index.d.ts.map +1 -1
  9. package/dist/api/core/geom/create/index.d.ts +7 -1
  10. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  11. package/dist/api/core/geom/update/contour.d.ts +8 -2
  12. package/dist/api/core/geom/update/contour.d.ts.map +1 -1
  13. package/dist/api/core/storeys/index.d.ts +5 -2
  14. package/dist/api/core/storeys/index.d.ts.map +1 -1
  15. package/dist/api/core/zoom/index.d.ts +13 -0
  16. package/dist/api/core/zoom/index.d.ts.map +1 -1
  17. package/dist/api/design/bim.d.ts +299 -0
  18. package/dist/api/design/bim.d.ts.map +1 -0
  19. package/dist/api/design/boolean/index.d.ts +2 -0
  20. package/dist/api/design/boolean/index.d.ts.map +1 -1
  21. package/dist/api/design/catalog.d.ts +320 -0
  22. package/dist/api/design/catalog.d.ts.map +1 -0
  23. package/dist/api/design/create/bulk-items.d.ts +65 -25
  24. package/dist/api/design/create/bulk-items.d.ts.map +1 -1
  25. package/dist/api/design/create/index.d.ts +299 -100
  26. package/dist/api/design/create/index.d.ts.map +1 -1
  27. package/dist/api/design/create/opening-fields.d.ts +13 -12
  28. package/dist/api/design/create/opening-fields.d.ts.map +1 -1
  29. package/dist/api/design/delete/index.d.ts +1 -0
  30. package/dist/api/design/delete/index.d.ts.map +1 -1
  31. package/dist/api/design/doors/index.d.ts +18 -24
  32. package/dist/api/design/doors/index.d.ts.map +1 -1
  33. package/dist/api/design/family.d.ts +813 -35
  34. package/dist/api/design/family.d.ts.map +1 -1
  35. package/dist/api/design/index.d.ts +16 -0
  36. package/dist/api/design/index.d.ts.map +1 -1
  37. package/dist/api/design/networks.d.ts +1703 -0
  38. package/dist/api/design/networks.d.ts.map +1 -0
  39. package/dist/api/design/query/grids.d.ts +2 -2
  40. package/dist/api/design/query/index.d.ts +42 -32
  41. package/dist/api/design/query/index.d.ts.map +1 -1
  42. package/dist/api/design/selection/index.d.ts +10 -10
  43. package/dist/api/design/types/index.d.ts +40 -24
  44. package/dist/api/design/types/index.d.ts.map +1 -1
  45. package/dist/api/design/update/index.d.ts +111 -6
  46. package/dist/api/design/update/index.d.ts.map +1 -1
  47. package/dist/api/design/windows/index.d.ts +8 -8
  48. package/dist/api/design/windows/index.d.ts.map +1 -1
  49. package/dist/api/entity/buildableEnvelope.d.ts +84 -2
  50. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
  51. package/dist/api/presentation/aiInspiration.d.ts +10 -10
  52. package/dist/api/presentation/annotate.d.ts +38 -22
  53. package/dist/api/presentation/annotate.d.ts.map +1 -1
  54. package/dist/api/presentation/drawingContract.d.ts +32 -0
  55. package/dist/api/presentation/drawingContract.d.ts.map +1 -0
  56. package/dist/api/presentation/drawings.d.ts +3523 -0
  57. package/dist/api/presentation/drawings.d.ts.map +1 -0
  58. package/dist/api/presentation/export.d.ts +23 -5
  59. package/dist/api/presentation/export.d.ts.map +1 -1
  60. package/dist/api/presentation/index.d.ts +41 -12
  61. package/dist/api/presentation/index.d.ts.map +1 -1
  62. package/dist/api/presentation/placedViews.d.ts +106 -6
  63. package/dist/api/presentation/placedViews.d.ts.map +1 -1
  64. package/dist/api/presentation/sections.d.ts +461 -0
  65. package/dist/api/presentation/sections.d.ts.map +1 -0
  66. package/dist/api/presentation/shapes.d.ts +2 -2
  67. package/dist/api/presentation/sheets.d.ts +175 -19
  68. package/dist/api/presentation/sheets.d.ts.map +1 -1
  69. package/dist/api/presentation/viewPresets.d.ts +222 -0
  70. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  71. package/dist/api/presentation/views.d.ts +141 -8
  72. package/dist/api/presentation/views.d.ts.map +1 -1
  73. package/dist/api/presentation/walkthroughs.d.ts +6 -6
  74. package/dist/errors/codes.d.ts +3 -1
  75. package/dist/errors/codes.d.ts.map +1 -1
  76. package/dist/index.cjs +3883 -2385
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.js +3744 -2385
  79. package/dist/index.js.map +1 -1
  80. package/package.json +1 -1
  81. package/scripts/check-dist-fresh.mjs +22 -22
  82. package/scripts/generate-manifest.mjs +243 -238
  83. package/scripts/generate-manifest.test.mjs +303 -303
  84. package/src/api/analysis/daylight.ts +470 -470
  85. package/src/api/analysis/heatmaps.ts +683 -683
  86. package/src/api/analysis/illuminance.ts +155 -155
  87. package/src/api/analysis/index.ts +61 -61
  88. package/src/api/analysis/shadows.ts +183 -183
  89. package/src/api/analysis/solar.ts +237 -237
  90. package/src/api/analysis/sunlightHours.ts +211 -211
  91. package/src/api/analysis/sunpath.ts +83 -83
  92. package/src/api/analysis/weather.ts +179 -179
  93. package/src/api/core/buildings.ts +485 -485
  94. package/src/api/core/camera/index.ts +696 -667
  95. package/src/api/core/comment/index.ts +376 -376
  96. package/src/api/core/geom/create/index.ts +2139 -2133
  97. package/src/api/core/geom/delete/index.ts +84 -84
  98. package/src/api/core/geom/index.ts +35 -35
  99. package/src/api/core/geom/query/arc.ts +169 -169
  100. package/src/api/core/geom/query/brep.ts +621 -621
  101. package/src/api/core/geom/query/circle.ts +404 -404
  102. package/src/api/core/geom/query/contour.ts +540 -540
  103. package/src/api/core/geom/query/curve.ts +1102 -1102
  104. package/src/api/core/geom/query/edge.ts +130 -130
  105. package/src/api/core/geom/query/face.ts +508 -508
  106. package/src/api/core/geom/query/halfedge.ts +210 -210
  107. package/src/api/core/geom/query/index.ts +63 -63
  108. package/src/api/core/geom/query/profile.ts +473 -473
  109. package/src/api/core/geom/query/vertex.ts +205 -205
  110. package/src/api/core/geom/update/contour.ts +323 -317
  111. package/src/api/core/geom/update/curve.ts +209 -209
  112. package/src/api/core/geom/update/index.ts +29 -29
  113. package/src/api/core/geom/update/profile.ts +379 -379
  114. package/src/api/core/groups.ts +521 -521
  115. package/src/api/core/handles/index.ts +234 -234
  116. package/src/api/core/history/index.ts +84 -84
  117. package/src/api/core/index.ts +99 -99
  118. package/src/api/core/io/export/index.ts +126 -126
  119. package/src/api/core/io/import/index.ts +504 -504
  120. package/src/api/core/io/index.ts +42 -42
  121. package/src/api/core/io/job/index.ts +140 -140
  122. package/src/api/core/io/query/index.ts +71 -71
  123. package/src/api/core/io/terrain/index.ts +360 -360
  124. package/src/api/core/io/underlay/index.ts +705 -705
  125. package/src/api/core/layers.ts +540 -540
  126. package/src/api/core/math/index.ts +20 -20
  127. package/src/api/core/math/quat.ts +172 -172
  128. package/src/api/core/math/vec3.ts +179 -179
  129. package/src/api/core/mode/index.ts +108 -108
  130. package/src/api/core/project/index.ts +479 -479
  131. package/src/api/core/proposals/index.ts +570 -570
  132. package/src/api/core/storeys/index.ts +311 -308
  133. package/src/api/core/storeys/layers.ts +339 -339
  134. package/src/api/core/tags.ts +911 -911
  135. package/src/api/core/units/index.ts +164 -164
  136. package/src/api/core/user.ts +46 -46
  137. package/src/api/core/zoom/index.ts +64 -51
  138. package/src/api/design/bim.ts +210 -0
  139. package/src/api/design/boolean/index.ts +181 -179
  140. package/src/api/design/catalog.ts +203 -0
  141. package/src/api/design/create/bulk-items.ts +294 -254
  142. package/src/api/design/create/grids.ts +137 -137
  143. package/src/api/design/create/index.ts +2178 -1980
  144. package/src/api/design/create/opening-fields.ts +40 -37
  145. package/src/api/design/delete/index.ts +75 -74
  146. package/src/api/design/dimensions.ts +453 -453
  147. package/src/api/design/doors/index.ts +516 -500
  148. package/src/api/design/edit/index.ts +54 -54
  149. package/src/api/design/erase/index.ts +151 -151
  150. package/src/api/design/family.ts +1342 -704
  151. package/src/api/design/furniture/index.ts +319 -319
  152. package/src/api/design/grids.ts +237 -237
  153. package/src/api/design/index.ts +304 -274
  154. package/src/api/design/lock.ts +69 -69
  155. package/src/api/design/materials/index.ts +608 -608
  156. package/src/api/design/networks.ts +607 -0
  157. package/src/api/design/query/geometry/index.ts +319 -319
  158. package/src/api/design/query/grids.ts +197 -197
  159. package/src/api/design/query/index.ts +1236 -1226
  160. package/src/api/design/query/referenceLines.ts +52 -52
  161. package/src/api/design/query/spaces.ts +275 -275
  162. package/src/api/design/selection/index.ts +273 -273
  163. package/src/api/design/shared.ts +40 -40
  164. package/src/api/design/transform/index.ts +254 -254
  165. package/src/api/design/types/index.ts +163 -156
  166. package/src/api/design/update/index.ts +1096 -983
  167. package/src/api/design/visibility.ts +143 -143
  168. package/src/api/design/windows/index.ts +351 -333
  169. package/src/api/entity/buildableEnvelope.ts +397 -322
  170. package/src/api/entity/index.ts +30 -30
  171. package/src/api/entity/referenceLine.ts +235 -235
  172. package/src/api/entity/space.ts +612 -612
  173. package/src/api/entity/story.ts +517 -517
  174. package/src/api/index.ts +47 -47
  175. package/src/api/presentation/aiInspiration.ts +1116 -1116
  176. package/src/api/presentation/annotate.ts +417 -385
  177. package/src/api/presentation/camera.ts +289 -289
  178. package/src/api/presentation/diagrams.ts +194 -194
  179. package/src/api/presentation/drawingContract.ts +70 -0
  180. package/src/api/presentation/drawings.ts +1179 -0
  181. package/src/api/presentation/export.ts +134 -108
  182. package/src/api/presentation/import.ts +159 -159
  183. package/src/api/presentation/index.ts +160 -126
  184. package/src/api/presentation/placedViews.ts +1211 -1120
  185. package/src/api/presentation/sections.ts +420 -0
  186. package/src/api/presentation/shapes.ts +274 -274
  187. package/src/api/presentation/sheets.ts +746 -585
  188. package/src/api/presentation/slideshow.ts +134 -134
  189. package/src/api/presentation/tables.ts +84 -84
  190. package/src/api/presentation/viewPresets.ts +241 -0
  191. package/src/api/presentation/views.ts +742 -673
  192. package/src/api/presentation/walkthroughs.ts +1201 -1201
  193. package/src/api/program/adjacency.ts +164 -164
  194. package/src/api/program/areas.ts +408 -408
  195. package/src/api/program/classification.ts +138 -138
  196. package/src/api/program/cores.ts +83 -83
  197. package/src/api/program/departments.ts +517 -517
  198. package/src/api/program/index.ts +73 -73
  199. package/src/api/program/labels.ts +332 -332
  200. package/src/api/program/layout.ts +422 -422
  201. package/src/api/program/metadata.ts +364 -364
  202. package/src/api/program/metrics.ts +120 -120
  203. package/src/api/program/site.ts +748 -748
  204. package/src/api/program/spreadsheet.ts +2698 -2698
  205. package/src/api/workspace/index.ts +612 -612
  206. package/src/errors/codes.ts +143 -136
  207. package/src/errors/envelope.ts +75 -75
  208. package/src/errors/index.ts +21 -21
  209. package/src/errors/plugin-error.ts +134 -134
  210. package/src/handles.ts +297 -297
  211. package/src/host-utils.ts +67 -67
  212. package/src/index.ts +7 -7
  213. package/src/massParameters.ops.ts +246 -246
  214. package/src/massParameters.ts +427 -427
  215. package/src/types.ts +16 -16
  216. package/test/drawingContract.test.mjs +288 -0
  217. package/test/errors.test.mjs +185 -184
  218. package/test/massParameters.test.mjs +952 -952
  219. package/test/presentationViewSettings.test.mjs +85 -0
  220. package/tsconfig.json +22 -22
  221. package/tsup.config.ts +12 -12
@@ -0,0 +1,1703 @@
1
+ import * as z from "zod";
2
+ import type { PluginApiReturn } from "../../types";
3
+ /** Versioned metadata stored in a pinned FamilySpecBundle.network. Expressions use the
4
+ * family's parameter scope and SU, just like its geometry. No world-space port overrides.
5
+ * Pipe recipes run from local [0,0,0] to [length,0,0] along +X.
6
+ */
7
+ export declare const NetworkFamilyContract: z.ZodObject<{
8
+ schemaVersion: z.ZodLiteral<1>;
9
+ role: z.ZodEnum<{
10
+ pipe: "pipe";
11
+ duct: "duct";
12
+ wire: "wire";
13
+ cable: "cable";
14
+ conduit: "conduit";
15
+ cableDuct: "cableDuct";
16
+ cableTray: "cableTray";
17
+ connector: "connector";
18
+ equipment: "equipment";
19
+ }>;
20
+ lengthParameter: z.ZodOptional<z.ZodString>;
21
+ ports: z.ZodArray<z.ZodObject<{
22
+ id: z.ZodString;
23
+ position: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
24
+ direction: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
25
+ size: z.ZodString;
26
+ height: z.ZodOptional<z.ZodString>;
27
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>>;
28
+ systems: z.ZodArray<z.ZodString>;
29
+ }, z.core.$strict>>;
30
+ }, z.core.$strict>;
31
+ export type NetworkFamilyContract = z.infer<typeof NetworkFamilyContract>;
32
+ /** Authored topology: vertices are pinned connector/equipment families; each edge is one
33
+ * line and one pinned straight-pipe family. Curved runs are not yet supported by this
34
+ * contract; bends require explicit connector vertices. World mm, Y up, rotations in degrees.
35
+ * Plumbing v2 accepts round ports only. Rectangular ports need a section-roll contract.
36
+ * The resolved component graph is retained for existing persistence, replay and queries.
37
+ */
38
+ export declare const NetworkTopologyDocument: z.ZodObject<{
39
+ schemaVersion: z.ZodLiteral<2>;
40
+ domain: z.ZodLiteral<"plumbing">;
41
+ label: z.ZodString;
42
+ architectureRevision: z.ZodString;
43
+ relationships: z.ZodArray<z.ZodObject<{
44
+ node: z.ZodString;
45
+ relation: z.ZodEnum<{
46
+ mountedOn: "mountedOn";
47
+ within: "within";
48
+ serves: "serves";
49
+ penetrates: "penetrates";
50
+ }>;
51
+ target: z.ZodObject<{
52
+ kind: z.ZodEnum<{
53
+ topology: "topology";
54
+ component: "component";
55
+ }>;
56
+ id: z.ZodString;
57
+ }, z.core.$strict>;
58
+ }, z.core.$strict>>;
59
+ vertices: z.ZodArray<z.ZodObject<{
60
+ id: z.ZodString;
61
+ kind: z.ZodEnum<{
62
+ equipment: "equipment";
63
+ fixture: "fixture";
64
+ tank: "tank";
65
+ pump: "pump";
66
+ valve: "valve";
67
+ manifold: "manifold";
68
+ fitting: "fitting";
69
+ }>;
70
+ storey: z.ZodNumber;
71
+ family: z.ZodObject<{
72
+ definitionId: z.ZodString;
73
+ version: z.ZodNumber;
74
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
75
+ }, z.core.$strict>;
76
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
77
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
78
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
79
+ }, z.core.$strict>>;
80
+ edges: z.ZodArray<z.ZodObject<{
81
+ id: z.ZodString;
82
+ kind: z.ZodEnum<{
83
+ pipe: "pipe";
84
+ riser: "riser";
85
+ }>;
86
+ storey: z.ZodNumber;
87
+ family: z.ZodObject<{
88
+ definitionId: z.ZodString;
89
+ version: z.ZodNumber;
90
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
91
+ }, z.core.$strict>;
92
+ from: z.ZodObject<{
93
+ node: z.ZodString;
94
+ port: z.ZodString;
95
+ }, z.core.$strict>;
96
+ to: z.ZodObject<{
97
+ node: z.ZodString;
98
+ port: z.ZodString;
99
+ }, z.core.$strict>;
100
+ system: z.ZodString;
101
+ curve: z.ZodObject<{
102
+ kind: z.ZodLiteral<"line">;
103
+ }, z.core.$strict>;
104
+ }, z.core.$strict>>;
105
+ }, z.core.$strict>;
106
+ export type NetworkTopologyDocument = z.infer<typeof NetworkTopologyDocument>;
107
+ export declare const MechanicalAirSystem: z.ZodEnum<{
108
+ supplyAir: "supplyAir";
109
+ returnAir: "returnAir";
110
+ exhaustAir: "exhaustAir";
111
+ outsideAir: "outsideAir";
112
+ reliefAir: "reliefAir";
113
+ }>;
114
+ /** Air-side HVAC intent. Reuses the graph transport, not plumbing domain semantics.
115
+ * Every vertex and edge pins an existing family. Edges run from upstream to downstream.
116
+ * Rectangular duct ports use local +Y as their width axis. The host aligns this axis to
117
+ * the upstream connector's widthDirection and rejects incompatible downstream roll.
118
+ * Bends, branches and transitions are explicit fitting vertices. No flexible curves,
119
+ * hydronic/refrigerant design, airflow sizing or code-compliance inference is provided.
120
+ */
121
+ export declare const MechanicalTopologyDocument: z.ZodObject<{
122
+ schemaVersion: z.ZodLiteral<2>;
123
+ label: z.ZodString;
124
+ architectureRevision: z.ZodString;
125
+ relationships: z.ZodArray<z.ZodObject<{
126
+ node: z.ZodString;
127
+ relation: z.ZodEnum<{
128
+ mountedOn: "mountedOn";
129
+ within: "within";
130
+ serves: "serves";
131
+ penetrates: "penetrates";
132
+ }>;
133
+ target: z.ZodObject<{
134
+ kind: z.ZodEnum<{
135
+ topology: "topology";
136
+ component: "component";
137
+ }>;
138
+ id: z.ZodString;
139
+ }, z.core.$strict>;
140
+ }, z.core.$strict>>;
141
+ domain: z.ZodLiteral<"mechanical">;
142
+ vertices: z.ZodArray<z.ZodObject<{
143
+ id: z.ZodString;
144
+ storey: z.ZodNumber;
145
+ family: z.ZodObject<{
146
+ definitionId: z.ZodString;
147
+ version: z.ZodNumber;
148
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
149
+ }, z.core.$strict>;
150
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
151
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
152
+ kind: z.ZodEnum<{
153
+ equipment: "equipment";
154
+ fitting: "fitting";
155
+ terminal: "terminal";
156
+ damper: "damper";
157
+ }>;
158
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
159
+ supplyAir: "supplyAir";
160
+ returnAir: "returnAir";
161
+ exhaustAir: "exhaustAir";
162
+ outsideAir: "outsideAir";
163
+ reliefAir: "reliefAir";
164
+ }>>;
165
+ }, z.core.$strict>>;
166
+ edges: z.ZodArray<z.ZodObject<{
167
+ id: z.ZodString;
168
+ storey: z.ZodNumber;
169
+ family: z.ZodObject<{
170
+ definitionId: z.ZodString;
171
+ version: z.ZodNumber;
172
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
173
+ }, z.core.$strict>;
174
+ from: z.ZodObject<{
175
+ node: z.ZodString;
176
+ port: z.ZodString;
177
+ }, z.core.$strict>;
178
+ to: z.ZodObject<{
179
+ node: z.ZodString;
180
+ port: z.ZodString;
181
+ }, z.core.$strict>;
182
+ curve: z.ZodObject<{
183
+ kind: z.ZodLiteral<"line">;
184
+ }, z.core.$strict>;
185
+ kind: z.ZodEnum<{
186
+ duct: "duct";
187
+ riser: "riser";
188
+ }>;
189
+ system: z.ZodEnum<{
190
+ supplyAir: "supplyAir";
191
+ returnAir: "returnAir";
192
+ exhaustAir: "exhaustAir";
193
+ outsideAir: "outsideAir";
194
+ reliefAir: "reliefAir";
195
+ }>;
196
+ }, z.core.$strict>>;
197
+ }, z.core.$strict>;
198
+ export type MechanicalTopologyDocument = z.infer<typeof MechanicalTopologyDocument>;
199
+ /** Physical electrical topology, independent of logical circuit membership.
200
+ * Each straight edge pins a family whose role matches its kind. Bends and branches
201
+ * require connector vertices. Junction boxes are equipment with explicit named ports.
202
+ * Rectangular containment uses the same section frame as mechanical ducts.
203
+ * Systems are authored labels which must be supported by the pinned ports.
204
+ * Direction is explicit, never inferred from circuits or spatial contact.
205
+ */
206
+ export declare const ElectricalTopologyDocument: z.ZodObject<{
207
+ schemaVersion: z.ZodLiteral<2>;
208
+ label: z.ZodString;
209
+ architectureRevision: z.ZodString;
210
+ relationships: z.ZodArray<z.ZodObject<{
211
+ node: z.ZodString;
212
+ relation: z.ZodEnum<{
213
+ mountedOn: "mountedOn";
214
+ within: "within";
215
+ serves: "serves";
216
+ penetrates: "penetrates";
217
+ }>;
218
+ target: z.ZodObject<{
219
+ kind: z.ZodEnum<{
220
+ topology: "topology";
221
+ component: "component";
222
+ }>;
223
+ id: z.ZodString;
224
+ }, z.core.$strict>;
225
+ }, z.core.$strict>>;
226
+ domain: z.ZodLiteral<"electrical">;
227
+ vertices: z.ZodArray<z.ZodObject<{
228
+ id: z.ZodString;
229
+ storey: z.ZodNumber;
230
+ family: z.ZodObject<{
231
+ definitionId: z.ZodString;
232
+ version: z.ZodNumber;
233
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
234
+ }, z.core.$strict>;
235
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
236
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
237
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
238
+ kind: z.ZodEnum<{
239
+ equipment: "equipment";
240
+ fitting: "fitting";
241
+ transformer: "transformer";
242
+ mainBoard: "mainBoard";
243
+ distributionBoard: "distributionBoard";
244
+ mcbBox: "mcbBox";
245
+ junctionBox: "junctionBox";
246
+ switch: "switch";
247
+ outlet: "outlet";
248
+ light: "light";
249
+ load: "load";
250
+ }>;
251
+ }, z.core.$strict>>;
252
+ edges: z.ZodArray<z.ZodObject<{
253
+ id: z.ZodString;
254
+ storey: z.ZodNumber;
255
+ family: z.ZodObject<{
256
+ definitionId: z.ZodString;
257
+ version: z.ZodNumber;
258
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
259
+ }, z.core.$strict>;
260
+ from: z.ZodObject<{
261
+ node: z.ZodString;
262
+ port: z.ZodString;
263
+ }, z.core.$strict>;
264
+ to: z.ZodObject<{
265
+ node: z.ZodString;
266
+ port: z.ZodString;
267
+ }, z.core.$strict>;
268
+ system: z.ZodString;
269
+ curve: z.ZodObject<{
270
+ kind: z.ZodLiteral<"line">;
271
+ }, z.core.$strict>;
272
+ kind: z.ZodEnum<{
273
+ wire: "wire";
274
+ cable: "cable";
275
+ conduit: "conduit";
276
+ cableDuct: "cableDuct";
277
+ cableTray: "cableTray";
278
+ }>;
279
+ directed: z.ZodBoolean;
280
+ }, z.core.$strict>>;
281
+ circuits: z.ZodArray<z.ZodObject<{
282
+ id: z.ZodString;
283
+ source: z.ZodString;
284
+ loads: z.ZodArray<z.ZodString>;
285
+ routes: z.ZodArray<z.ZodString>;
286
+ voltage: z.ZodNumber;
287
+ phases: z.ZodNumber;
288
+ ratedAmps: z.ZodNumber;
289
+ }, z.core.$strict>>;
290
+ }, z.core.$strict>;
291
+ export type ElectricalTopologyDocument = z.infer<typeof ElectricalTopologyDocument>;
292
+ export declare const AuthoredNetworkTopologyDocument: z.ZodDiscriminatedUnion<[z.ZodObject<{
293
+ schemaVersion: z.ZodLiteral<2>;
294
+ domain: z.ZodLiteral<"plumbing">;
295
+ label: z.ZodString;
296
+ architectureRevision: z.ZodString;
297
+ relationships: z.ZodArray<z.ZodObject<{
298
+ node: z.ZodString;
299
+ relation: z.ZodEnum<{
300
+ mountedOn: "mountedOn";
301
+ within: "within";
302
+ serves: "serves";
303
+ penetrates: "penetrates";
304
+ }>;
305
+ target: z.ZodObject<{
306
+ kind: z.ZodEnum<{
307
+ topology: "topology";
308
+ component: "component";
309
+ }>;
310
+ id: z.ZodString;
311
+ }, z.core.$strict>;
312
+ }, z.core.$strict>>;
313
+ vertices: z.ZodArray<z.ZodObject<{
314
+ id: z.ZodString;
315
+ kind: z.ZodEnum<{
316
+ equipment: "equipment";
317
+ fixture: "fixture";
318
+ tank: "tank";
319
+ pump: "pump";
320
+ valve: "valve";
321
+ manifold: "manifold";
322
+ fitting: "fitting";
323
+ }>;
324
+ storey: z.ZodNumber;
325
+ family: z.ZodObject<{
326
+ definitionId: z.ZodString;
327
+ version: z.ZodNumber;
328
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
329
+ }, z.core.$strict>;
330
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
331
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
332
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
333
+ }, z.core.$strict>>;
334
+ edges: z.ZodArray<z.ZodObject<{
335
+ id: z.ZodString;
336
+ kind: z.ZodEnum<{
337
+ pipe: "pipe";
338
+ riser: "riser";
339
+ }>;
340
+ storey: z.ZodNumber;
341
+ family: z.ZodObject<{
342
+ definitionId: z.ZodString;
343
+ version: z.ZodNumber;
344
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
345
+ }, z.core.$strict>;
346
+ from: z.ZodObject<{
347
+ node: z.ZodString;
348
+ port: z.ZodString;
349
+ }, z.core.$strict>;
350
+ to: z.ZodObject<{
351
+ node: z.ZodString;
352
+ port: z.ZodString;
353
+ }, z.core.$strict>;
354
+ system: z.ZodString;
355
+ curve: z.ZodObject<{
356
+ kind: z.ZodLiteral<"line">;
357
+ }, z.core.$strict>;
358
+ }, z.core.$strict>>;
359
+ }, z.core.$strict>, z.ZodObject<{
360
+ schemaVersion: z.ZodLiteral<2>;
361
+ label: z.ZodString;
362
+ architectureRevision: z.ZodString;
363
+ relationships: z.ZodArray<z.ZodObject<{
364
+ node: z.ZodString;
365
+ relation: z.ZodEnum<{
366
+ mountedOn: "mountedOn";
367
+ within: "within";
368
+ serves: "serves";
369
+ penetrates: "penetrates";
370
+ }>;
371
+ target: z.ZodObject<{
372
+ kind: z.ZodEnum<{
373
+ topology: "topology";
374
+ component: "component";
375
+ }>;
376
+ id: z.ZodString;
377
+ }, z.core.$strict>;
378
+ }, z.core.$strict>>;
379
+ domain: z.ZodLiteral<"mechanical">;
380
+ vertices: z.ZodArray<z.ZodObject<{
381
+ id: z.ZodString;
382
+ storey: z.ZodNumber;
383
+ family: z.ZodObject<{
384
+ definitionId: z.ZodString;
385
+ version: z.ZodNumber;
386
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
387
+ }, z.core.$strict>;
388
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
389
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
390
+ kind: z.ZodEnum<{
391
+ equipment: "equipment";
392
+ fitting: "fitting";
393
+ terminal: "terminal";
394
+ damper: "damper";
395
+ }>;
396
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
397
+ supplyAir: "supplyAir";
398
+ returnAir: "returnAir";
399
+ exhaustAir: "exhaustAir";
400
+ outsideAir: "outsideAir";
401
+ reliefAir: "reliefAir";
402
+ }>>;
403
+ }, z.core.$strict>>;
404
+ edges: z.ZodArray<z.ZodObject<{
405
+ id: z.ZodString;
406
+ storey: z.ZodNumber;
407
+ family: z.ZodObject<{
408
+ definitionId: z.ZodString;
409
+ version: z.ZodNumber;
410
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
411
+ }, z.core.$strict>;
412
+ from: z.ZodObject<{
413
+ node: z.ZodString;
414
+ port: z.ZodString;
415
+ }, z.core.$strict>;
416
+ to: z.ZodObject<{
417
+ node: z.ZodString;
418
+ port: z.ZodString;
419
+ }, z.core.$strict>;
420
+ curve: z.ZodObject<{
421
+ kind: z.ZodLiteral<"line">;
422
+ }, z.core.$strict>;
423
+ kind: z.ZodEnum<{
424
+ duct: "duct";
425
+ riser: "riser";
426
+ }>;
427
+ system: z.ZodEnum<{
428
+ supplyAir: "supplyAir";
429
+ returnAir: "returnAir";
430
+ exhaustAir: "exhaustAir";
431
+ outsideAir: "outsideAir";
432
+ reliefAir: "reliefAir";
433
+ }>;
434
+ }, z.core.$strict>>;
435
+ }, z.core.$strict>, z.ZodObject<{
436
+ schemaVersion: z.ZodLiteral<2>;
437
+ label: z.ZodString;
438
+ architectureRevision: z.ZodString;
439
+ relationships: z.ZodArray<z.ZodObject<{
440
+ node: z.ZodString;
441
+ relation: z.ZodEnum<{
442
+ mountedOn: "mountedOn";
443
+ within: "within";
444
+ serves: "serves";
445
+ penetrates: "penetrates";
446
+ }>;
447
+ target: z.ZodObject<{
448
+ kind: z.ZodEnum<{
449
+ topology: "topology";
450
+ component: "component";
451
+ }>;
452
+ id: z.ZodString;
453
+ }, z.core.$strict>;
454
+ }, z.core.$strict>>;
455
+ domain: z.ZodLiteral<"electrical">;
456
+ vertices: z.ZodArray<z.ZodObject<{
457
+ id: z.ZodString;
458
+ storey: z.ZodNumber;
459
+ family: z.ZodObject<{
460
+ definitionId: z.ZodString;
461
+ version: z.ZodNumber;
462
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
463
+ }, z.core.$strict>;
464
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
465
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
466
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
467
+ kind: z.ZodEnum<{
468
+ equipment: "equipment";
469
+ fitting: "fitting";
470
+ transformer: "transformer";
471
+ mainBoard: "mainBoard";
472
+ distributionBoard: "distributionBoard";
473
+ mcbBox: "mcbBox";
474
+ junctionBox: "junctionBox";
475
+ switch: "switch";
476
+ outlet: "outlet";
477
+ light: "light";
478
+ load: "load";
479
+ }>;
480
+ }, z.core.$strict>>;
481
+ edges: z.ZodArray<z.ZodObject<{
482
+ id: z.ZodString;
483
+ storey: z.ZodNumber;
484
+ family: z.ZodObject<{
485
+ definitionId: z.ZodString;
486
+ version: z.ZodNumber;
487
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
488
+ }, z.core.$strict>;
489
+ from: z.ZodObject<{
490
+ node: z.ZodString;
491
+ port: z.ZodString;
492
+ }, z.core.$strict>;
493
+ to: z.ZodObject<{
494
+ node: z.ZodString;
495
+ port: z.ZodString;
496
+ }, z.core.$strict>;
497
+ system: z.ZodString;
498
+ curve: z.ZodObject<{
499
+ kind: z.ZodLiteral<"line">;
500
+ }, z.core.$strict>;
501
+ kind: z.ZodEnum<{
502
+ wire: "wire";
503
+ cable: "cable";
504
+ conduit: "conduit";
505
+ cableDuct: "cableDuct";
506
+ cableTray: "cableTray";
507
+ }>;
508
+ directed: z.ZodBoolean;
509
+ }, z.core.$strict>>;
510
+ circuits: z.ZodArray<z.ZodObject<{
511
+ id: z.ZodString;
512
+ source: z.ZodString;
513
+ loads: z.ZodArray<z.ZodString>;
514
+ routes: z.ZodArray<z.ZodString>;
515
+ voltage: z.ZodNumber;
516
+ phases: z.ZodNumber;
517
+ ratedAmps: z.ZodNumber;
518
+ }, z.core.$strict>>;
519
+ }, z.core.$strict>], "domain">;
520
+ export type AuthoredNetworkTopologyDocument = z.infer<typeof AuthoredNetworkTopologyDocument>;
521
+ /** Authored world-space connector. This is not a claim of certified family connector metadata. */
522
+ export declare const NetworkPort: z.ZodObject<{
523
+ id: z.ZodString;
524
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
525
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
526
+ system: z.ZodString;
527
+ sizeMm: z.ZodNumber;
528
+ heightMm: z.ZodOptional<z.ZodNumber>;
529
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
530
+ }, z.core.$strict>;
531
+ /** The agent supplies every route and section. The host does not size or route a network. */
532
+ export declare const NetworkGeometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
533
+ kind: z.ZodLiteral<"family">;
534
+ definitionId: z.ZodString;
535
+ version: z.ZodNumber;
536
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
537
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
538
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
539
+ ports: z.ZodArray<z.ZodObject<{
540
+ id: z.ZodString;
541
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
542
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
543
+ system: z.ZodString;
544
+ sizeMm: z.ZodNumber;
545
+ heightMm: z.ZodOptional<z.ZodNumber>;
546
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
547
+ }, z.core.$strict>>;
548
+ }, z.core.$strict>, z.ZodObject<{
549
+ kind: z.ZodLiteral<"route">;
550
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
551
+ system: z.ZodString;
552
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
553
+ kind: z.ZodLiteral<"round">;
554
+ diameterMm: z.ZodNumber;
555
+ wallMm: z.ZodNumber;
556
+ }, z.core.$strict>, z.ZodObject<{
557
+ kind: z.ZodLiteral<"rectangular">;
558
+ widthMm: z.ZodNumber;
559
+ heightMm: z.ZodNumber;
560
+ wallMm: z.ZodNumber;
561
+ }, z.core.$strict>], "kind">;
562
+ }, z.core.$strict>], "kind">;
563
+ /** Electrical connectivity and circuit membership are distinct from physical route occupancy. */
564
+ export declare const ElectricalGraphDocument: z.ZodObject<{
565
+ schemaVersion: z.ZodLiteral<1>;
566
+ label: z.ZodString;
567
+ architectureRevision: z.ZodString;
568
+ connections: z.ZodArray<z.ZodObject<{
569
+ id: z.ZodString;
570
+ from: z.ZodObject<{
571
+ node: z.ZodString;
572
+ port: z.ZodString;
573
+ }, z.core.$strict>;
574
+ to: z.ZodObject<{
575
+ node: z.ZodString;
576
+ port: z.ZodString;
577
+ }, z.core.$strict>;
578
+ directed: z.ZodBoolean;
579
+ }, z.core.$strict>>;
580
+ relationships: z.ZodArray<z.ZodObject<{
581
+ node: z.ZodString;
582
+ relation: z.ZodEnum<{
583
+ mountedOn: "mountedOn";
584
+ within: "within";
585
+ serves: "serves";
586
+ penetrates: "penetrates";
587
+ }>;
588
+ target: z.ZodObject<{
589
+ kind: z.ZodEnum<{
590
+ topology: "topology";
591
+ component: "component";
592
+ }>;
593
+ id: z.ZodString;
594
+ }, z.core.$strict>;
595
+ }, z.core.$strict>>;
596
+ domain: z.ZodLiteral<"electrical">;
597
+ nodes: z.ZodArray<z.ZodObject<{
598
+ id: z.ZodString;
599
+ storey: z.ZodNumber;
600
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
601
+ kind: z.ZodLiteral<"family">;
602
+ definitionId: z.ZodString;
603
+ version: z.ZodNumber;
604
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
605
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
606
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
607
+ ports: z.ZodArray<z.ZodObject<{
608
+ id: z.ZodString;
609
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
610
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
611
+ system: z.ZodString;
612
+ sizeMm: z.ZodNumber;
613
+ heightMm: z.ZodOptional<z.ZodNumber>;
614
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
615
+ }, z.core.$strict>>;
616
+ }, z.core.$strict>, z.ZodObject<{
617
+ kind: z.ZodLiteral<"route">;
618
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
619
+ system: z.ZodString;
620
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
621
+ kind: z.ZodLiteral<"round">;
622
+ diameterMm: z.ZodNumber;
623
+ wallMm: z.ZodNumber;
624
+ }, z.core.$strict>, z.ZodObject<{
625
+ kind: z.ZodLiteral<"rectangular">;
626
+ widthMm: z.ZodNumber;
627
+ heightMm: z.ZodNumber;
628
+ wallMm: z.ZodNumber;
629
+ }, z.core.$strict>], "kind">;
630
+ }, z.core.$strict>], "kind">;
631
+ kind: z.ZodEnum<{
632
+ wire: "wire";
633
+ cable: "cable";
634
+ conduit: "conduit";
635
+ cableDuct: "cableDuct";
636
+ cableTray: "cableTray";
637
+ equipment: "equipment";
638
+ fitting: "fitting";
639
+ transformer: "transformer";
640
+ mainBoard: "mainBoard";
641
+ distributionBoard: "distributionBoard";
642
+ mcbBox: "mcbBox";
643
+ junctionBox: "junctionBox";
644
+ switch: "switch";
645
+ outlet: "outlet";
646
+ light: "light";
647
+ load: "load";
648
+ }>;
649
+ }, z.core.$strict>>;
650
+ circuits: z.ZodArray<z.ZodObject<{
651
+ id: z.ZodString;
652
+ source: z.ZodString;
653
+ loads: z.ZodArray<z.ZodString>;
654
+ routes: z.ZodArray<z.ZodString>;
655
+ voltage: z.ZodNumber;
656
+ phases: z.ZodNumber;
657
+ ratedAmps: z.ZodNumber;
658
+ }, z.core.$strict>>;
659
+ authored: z.ZodOptional<z.ZodObject<{
660
+ schemaVersion: z.ZodLiteral<2>;
661
+ label: z.ZodString;
662
+ architectureRevision: z.ZodString;
663
+ relationships: z.ZodArray<z.ZodObject<{
664
+ node: z.ZodString;
665
+ relation: z.ZodEnum<{
666
+ mountedOn: "mountedOn";
667
+ within: "within";
668
+ serves: "serves";
669
+ penetrates: "penetrates";
670
+ }>;
671
+ target: z.ZodObject<{
672
+ kind: z.ZodEnum<{
673
+ topology: "topology";
674
+ component: "component";
675
+ }>;
676
+ id: z.ZodString;
677
+ }, z.core.$strict>;
678
+ }, z.core.$strict>>;
679
+ domain: z.ZodLiteral<"electrical">;
680
+ vertices: z.ZodArray<z.ZodObject<{
681
+ id: z.ZodString;
682
+ storey: z.ZodNumber;
683
+ family: z.ZodObject<{
684
+ definitionId: z.ZodString;
685
+ version: z.ZodNumber;
686
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
687
+ }, z.core.$strict>;
688
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
689
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
690
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
691
+ kind: z.ZodEnum<{
692
+ equipment: "equipment";
693
+ fitting: "fitting";
694
+ transformer: "transformer";
695
+ mainBoard: "mainBoard";
696
+ distributionBoard: "distributionBoard";
697
+ mcbBox: "mcbBox";
698
+ junctionBox: "junctionBox";
699
+ switch: "switch";
700
+ outlet: "outlet";
701
+ light: "light";
702
+ load: "load";
703
+ }>;
704
+ }, z.core.$strict>>;
705
+ edges: z.ZodArray<z.ZodObject<{
706
+ id: z.ZodString;
707
+ storey: z.ZodNumber;
708
+ family: z.ZodObject<{
709
+ definitionId: z.ZodString;
710
+ version: z.ZodNumber;
711
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
712
+ }, z.core.$strict>;
713
+ from: z.ZodObject<{
714
+ node: z.ZodString;
715
+ port: z.ZodString;
716
+ }, z.core.$strict>;
717
+ to: z.ZodObject<{
718
+ node: z.ZodString;
719
+ port: z.ZodString;
720
+ }, z.core.$strict>;
721
+ system: z.ZodString;
722
+ curve: z.ZodObject<{
723
+ kind: z.ZodLiteral<"line">;
724
+ }, z.core.$strict>;
725
+ kind: z.ZodEnum<{
726
+ wire: "wire";
727
+ cable: "cable";
728
+ conduit: "conduit";
729
+ cableDuct: "cableDuct";
730
+ cableTray: "cableTray";
731
+ }>;
732
+ directed: z.ZodBoolean;
733
+ }, z.core.$strict>>;
734
+ circuits: z.ZodArray<z.ZodObject<{
735
+ id: z.ZodString;
736
+ source: z.ZodString;
737
+ loads: z.ZodArray<z.ZodString>;
738
+ routes: z.ZodArray<z.ZodString>;
739
+ voltage: z.ZodNumber;
740
+ phases: z.ZodNumber;
741
+ ratedAmps: z.ZodNumber;
742
+ }, z.core.$strict>>;
743
+ }, z.core.$strict>>;
744
+ }, z.core.$strict>;
745
+ /** Plumbing uses explicit directed port connections; touching geometry never creates a connection. */
746
+ export declare const PlumbingGraphDocument: z.ZodObject<{
747
+ schemaVersion: z.ZodLiteral<1>;
748
+ label: z.ZodString;
749
+ architectureRevision: z.ZodString;
750
+ connections: z.ZodArray<z.ZodObject<{
751
+ id: z.ZodString;
752
+ from: z.ZodObject<{
753
+ node: z.ZodString;
754
+ port: z.ZodString;
755
+ }, z.core.$strict>;
756
+ to: z.ZodObject<{
757
+ node: z.ZodString;
758
+ port: z.ZodString;
759
+ }, z.core.$strict>;
760
+ directed: z.ZodBoolean;
761
+ }, z.core.$strict>>;
762
+ relationships: z.ZodArray<z.ZodObject<{
763
+ node: z.ZodString;
764
+ relation: z.ZodEnum<{
765
+ mountedOn: "mountedOn";
766
+ within: "within";
767
+ serves: "serves";
768
+ penetrates: "penetrates";
769
+ }>;
770
+ target: z.ZodObject<{
771
+ kind: z.ZodEnum<{
772
+ topology: "topology";
773
+ component: "component";
774
+ }>;
775
+ id: z.ZodString;
776
+ }, z.core.$strict>;
777
+ }, z.core.$strict>>;
778
+ domain: z.ZodLiteral<"plumbing">;
779
+ nodes: z.ZodArray<z.ZodObject<{
780
+ id: z.ZodString;
781
+ storey: z.ZodNumber;
782
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
783
+ kind: z.ZodLiteral<"family">;
784
+ definitionId: z.ZodString;
785
+ version: z.ZodNumber;
786
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
787
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
788
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
789
+ ports: z.ZodArray<z.ZodObject<{
790
+ id: z.ZodString;
791
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
792
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
793
+ system: z.ZodString;
794
+ sizeMm: z.ZodNumber;
795
+ heightMm: z.ZodOptional<z.ZodNumber>;
796
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
797
+ }, z.core.$strict>>;
798
+ }, z.core.$strict>, z.ZodObject<{
799
+ kind: z.ZodLiteral<"route">;
800
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
801
+ system: z.ZodString;
802
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
803
+ kind: z.ZodLiteral<"round">;
804
+ diameterMm: z.ZodNumber;
805
+ wallMm: z.ZodNumber;
806
+ }, z.core.$strict>, z.ZodObject<{
807
+ kind: z.ZodLiteral<"rectangular">;
808
+ widthMm: z.ZodNumber;
809
+ heightMm: z.ZodNumber;
810
+ wallMm: z.ZodNumber;
811
+ }, z.core.$strict>], "kind">;
812
+ }, z.core.$strict>], "kind">;
813
+ kind: z.ZodEnum<{
814
+ pipe: "pipe";
815
+ equipment: "equipment";
816
+ fixture: "fixture";
817
+ tank: "tank";
818
+ pump: "pump";
819
+ valve: "valve";
820
+ manifold: "manifold";
821
+ fitting: "fitting";
822
+ riser: "riser";
823
+ }>;
824
+ }, z.core.$strict>>;
825
+ authored: z.ZodOptional<z.ZodObject<{
826
+ schemaVersion: z.ZodLiteral<2>;
827
+ domain: z.ZodLiteral<"plumbing">;
828
+ label: z.ZodString;
829
+ architectureRevision: z.ZodString;
830
+ relationships: z.ZodArray<z.ZodObject<{
831
+ node: z.ZodString;
832
+ relation: z.ZodEnum<{
833
+ mountedOn: "mountedOn";
834
+ within: "within";
835
+ serves: "serves";
836
+ penetrates: "penetrates";
837
+ }>;
838
+ target: z.ZodObject<{
839
+ kind: z.ZodEnum<{
840
+ topology: "topology";
841
+ component: "component";
842
+ }>;
843
+ id: z.ZodString;
844
+ }, z.core.$strict>;
845
+ }, z.core.$strict>>;
846
+ vertices: z.ZodArray<z.ZodObject<{
847
+ id: z.ZodString;
848
+ kind: z.ZodEnum<{
849
+ equipment: "equipment";
850
+ fixture: "fixture";
851
+ tank: "tank";
852
+ pump: "pump";
853
+ valve: "valve";
854
+ manifold: "manifold";
855
+ fitting: "fitting";
856
+ }>;
857
+ storey: z.ZodNumber;
858
+ family: z.ZodObject<{
859
+ definitionId: z.ZodString;
860
+ version: z.ZodNumber;
861
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
862
+ }, z.core.$strict>;
863
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
864
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
865
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
866
+ }, z.core.$strict>>;
867
+ edges: z.ZodArray<z.ZodObject<{
868
+ id: z.ZodString;
869
+ kind: z.ZodEnum<{
870
+ pipe: "pipe";
871
+ riser: "riser";
872
+ }>;
873
+ storey: z.ZodNumber;
874
+ family: z.ZodObject<{
875
+ definitionId: z.ZodString;
876
+ version: z.ZodNumber;
877
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
878
+ }, z.core.$strict>;
879
+ from: z.ZodObject<{
880
+ node: z.ZodString;
881
+ port: z.ZodString;
882
+ }, z.core.$strict>;
883
+ to: z.ZodObject<{
884
+ node: z.ZodString;
885
+ port: z.ZodString;
886
+ }, z.core.$strict>;
887
+ system: z.ZodString;
888
+ curve: z.ZodObject<{
889
+ kind: z.ZodLiteral<"line">;
890
+ }, z.core.$strict>;
891
+ }, z.core.$strict>>;
892
+ }, z.core.$strict>>;
893
+ }, z.core.$strict>;
894
+ /** Resolved HVAC snapshot for queries, commands and load. New submissions require v2 intent. */
895
+ export declare const MechanicalGraphDocument: z.ZodObject<{
896
+ schemaVersion: z.ZodLiteral<1>;
897
+ label: z.ZodString;
898
+ architectureRevision: z.ZodString;
899
+ connections: z.ZodArray<z.ZodObject<{
900
+ id: z.ZodString;
901
+ from: z.ZodObject<{
902
+ node: z.ZodString;
903
+ port: z.ZodString;
904
+ }, z.core.$strict>;
905
+ to: z.ZodObject<{
906
+ node: z.ZodString;
907
+ port: z.ZodString;
908
+ }, z.core.$strict>;
909
+ directed: z.ZodBoolean;
910
+ }, z.core.$strict>>;
911
+ relationships: z.ZodArray<z.ZodObject<{
912
+ node: z.ZodString;
913
+ relation: z.ZodEnum<{
914
+ mountedOn: "mountedOn";
915
+ within: "within";
916
+ serves: "serves";
917
+ penetrates: "penetrates";
918
+ }>;
919
+ target: z.ZodObject<{
920
+ kind: z.ZodEnum<{
921
+ topology: "topology";
922
+ component: "component";
923
+ }>;
924
+ id: z.ZodString;
925
+ }, z.core.$strict>;
926
+ }, z.core.$strict>>;
927
+ domain: z.ZodLiteral<"mechanical">;
928
+ nodes: z.ZodArray<z.ZodObject<{
929
+ id: z.ZodString;
930
+ storey: z.ZodNumber;
931
+ kind: z.ZodEnum<{
932
+ duct: "duct";
933
+ equipment: "equipment";
934
+ fitting: "fitting";
935
+ riser: "riser";
936
+ terminal: "terminal";
937
+ damper: "damper";
938
+ }>;
939
+ geometry: z.ZodObject<{
940
+ kind: z.ZodLiteral<"family">;
941
+ definitionId: z.ZodString;
942
+ version: z.ZodNumber;
943
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
944
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
945
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
946
+ ports: z.ZodArray<z.ZodObject<{
947
+ id: z.ZodString;
948
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
949
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
950
+ system: z.ZodString;
951
+ sizeMm: z.ZodNumber;
952
+ heightMm: z.ZodOptional<z.ZodNumber>;
953
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
954
+ }, z.core.$strict>>;
955
+ }, z.core.$strict>;
956
+ }, z.core.$strict>>;
957
+ authored: z.ZodObject<{
958
+ schemaVersion: z.ZodLiteral<2>;
959
+ label: z.ZodString;
960
+ architectureRevision: z.ZodString;
961
+ relationships: z.ZodArray<z.ZodObject<{
962
+ node: z.ZodString;
963
+ relation: z.ZodEnum<{
964
+ mountedOn: "mountedOn";
965
+ within: "within";
966
+ serves: "serves";
967
+ penetrates: "penetrates";
968
+ }>;
969
+ target: z.ZodObject<{
970
+ kind: z.ZodEnum<{
971
+ topology: "topology";
972
+ component: "component";
973
+ }>;
974
+ id: z.ZodString;
975
+ }, z.core.$strict>;
976
+ }, z.core.$strict>>;
977
+ domain: z.ZodLiteral<"mechanical">;
978
+ vertices: z.ZodArray<z.ZodObject<{
979
+ id: z.ZodString;
980
+ storey: z.ZodNumber;
981
+ family: z.ZodObject<{
982
+ definitionId: z.ZodString;
983
+ version: z.ZodNumber;
984
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
985
+ }, z.core.$strict>;
986
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
987
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
988
+ kind: z.ZodEnum<{
989
+ equipment: "equipment";
990
+ fitting: "fitting";
991
+ terminal: "terminal";
992
+ damper: "damper";
993
+ }>;
994
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
995
+ supplyAir: "supplyAir";
996
+ returnAir: "returnAir";
997
+ exhaustAir: "exhaustAir";
998
+ outsideAir: "outsideAir";
999
+ reliefAir: "reliefAir";
1000
+ }>>;
1001
+ }, z.core.$strict>>;
1002
+ edges: z.ZodArray<z.ZodObject<{
1003
+ id: z.ZodString;
1004
+ storey: z.ZodNumber;
1005
+ family: z.ZodObject<{
1006
+ definitionId: z.ZodString;
1007
+ version: z.ZodNumber;
1008
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1009
+ }, z.core.$strict>;
1010
+ from: z.ZodObject<{
1011
+ node: z.ZodString;
1012
+ port: z.ZodString;
1013
+ }, z.core.$strict>;
1014
+ to: z.ZodObject<{
1015
+ node: z.ZodString;
1016
+ port: z.ZodString;
1017
+ }, z.core.$strict>;
1018
+ curve: z.ZodObject<{
1019
+ kind: z.ZodLiteral<"line">;
1020
+ }, z.core.$strict>;
1021
+ kind: z.ZodEnum<{
1022
+ duct: "duct";
1023
+ riser: "riser";
1024
+ }>;
1025
+ system: z.ZodEnum<{
1026
+ supplyAir: "supplyAir";
1027
+ returnAir: "returnAir";
1028
+ exhaustAir: "exhaustAir";
1029
+ outsideAir: "outsideAir";
1030
+ reliefAir: "reliefAir";
1031
+ }>;
1032
+ }, z.core.$strict>>;
1033
+ }, z.core.$strict>;
1034
+ }, z.core.$strict>;
1035
+ export declare const NetworkGraphDocument: z.ZodDiscriminatedUnion<[z.ZodObject<{
1036
+ schemaVersion: z.ZodLiteral<1>;
1037
+ label: z.ZodString;
1038
+ architectureRevision: z.ZodString;
1039
+ connections: z.ZodArray<z.ZodObject<{
1040
+ id: z.ZodString;
1041
+ from: z.ZodObject<{
1042
+ node: z.ZodString;
1043
+ port: z.ZodString;
1044
+ }, z.core.$strict>;
1045
+ to: z.ZodObject<{
1046
+ node: z.ZodString;
1047
+ port: z.ZodString;
1048
+ }, z.core.$strict>;
1049
+ directed: z.ZodBoolean;
1050
+ }, z.core.$strict>>;
1051
+ relationships: z.ZodArray<z.ZodObject<{
1052
+ node: z.ZodString;
1053
+ relation: z.ZodEnum<{
1054
+ mountedOn: "mountedOn";
1055
+ within: "within";
1056
+ serves: "serves";
1057
+ penetrates: "penetrates";
1058
+ }>;
1059
+ target: z.ZodObject<{
1060
+ kind: z.ZodEnum<{
1061
+ topology: "topology";
1062
+ component: "component";
1063
+ }>;
1064
+ id: z.ZodString;
1065
+ }, z.core.$strict>;
1066
+ }, z.core.$strict>>;
1067
+ domain: z.ZodLiteral<"electrical">;
1068
+ nodes: z.ZodArray<z.ZodObject<{
1069
+ id: z.ZodString;
1070
+ storey: z.ZodNumber;
1071
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
1072
+ kind: z.ZodLiteral<"family">;
1073
+ definitionId: z.ZodString;
1074
+ version: z.ZodNumber;
1075
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1076
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1077
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1078
+ ports: z.ZodArray<z.ZodObject<{
1079
+ id: z.ZodString;
1080
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1081
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1082
+ system: z.ZodString;
1083
+ sizeMm: z.ZodNumber;
1084
+ heightMm: z.ZodOptional<z.ZodNumber>;
1085
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1086
+ }, z.core.$strict>>;
1087
+ }, z.core.$strict>, z.ZodObject<{
1088
+ kind: z.ZodLiteral<"route">;
1089
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1090
+ system: z.ZodString;
1091
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
1092
+ kind: z.ZodLiteral<"round">;
1093
+ diameterMm: z.ZodNumber;
1094
+ wallMm: z.ZodNumber;
1095
+ }, z.core.$strict>, z.ZodObject<{
1096
+ kind: z.ZodLiteral<"rectangular">;
1097
+ widthMm: z.ZodNumber;
1098
+ heightMm: z.ZodNumber;
1099
+ wallMm: z.ZodNumber;
1100
+ }, z.core.$strict>], "kind">;
1101
+ }, z.core.$strict>], "kind">;
1102
+ kind: z.ZodEnum<{
1103
+ wire: "wire";
1104
+ cable: "cable";
1105
+ conduit: "conduit";
1106
+ cableDuct: "cableDuct";
1107
+ cableTray: "cableTray";
1108
+ equipment: "equipment";
1109
+ fitting: "fitting";
1110
+ transformer: "transformer";
1111
+ mainBoard: "mainBoard";
1112
+ distributionBoard: "distributionBoard";
1113
+ mcbBox: "mcbBox";
1114
+ junctionBox: "junctionBox";
1115
+ switch: "switch";
1116
+ outlet: "outlet";
1117
+ light: "light";
1118
+ load: "load";
1119
+ }>;
1120
+ }, z.core.$strict>>;
1121
+ circuits: z.ZodArray<z.ZodObject<{
1122
+ id: z.ZodString;
1123
+ source: z.ZodString;
1124
+ loads: z.ZodArray<z.ZodString>;
1125
+ routes: z.ZodArray<z.ZodString>;
1126
+ voltage: z.ZodNumber;
1127
+ phases: z.ZodNumber;
1128
+ ratedAmps: z.ZodNumber;
1129
+ }, z.core.$strict>>;
1130
+ authored: z.ZodOptional<z.ZodObject<{
1131
+ schemaVersion: z.ZodLiteral<2>;
1132
+ label: z.ZodString;
1133
+ architectureRevision: z.ZodString;
1134
+ relationships: z.ZodArray<z.ZodObject<{
1135
+ node: z.ZodString;
1136
+ relation: z.ZodEnum<{
1137
+ mountedOn: "mountedOn";
1138
+ within: "within";
1139
+ serves: "serves";
1140
+ penetrates: "penetrates";
1141
+ }>;
1142
+ target: z.ZodObject<{
1143
+ kind: z.ZodEnum<{
1144
+ topology: "topology";
1145
+ component: "component";
1146
+ }>;
1147
+ id: z.ZodString;
1148
+ }, z.core.$strict>;
1149
+ }, z.core.$strict>>;
1150
+ domain: z.ZodLiteral<"electrical">;
1151
+ vertices: z.ZodArray<z.ZodObject<{
1152
+ id: z.ZodString;
1153
+ storey: z.ZodNumber;
1154
+ family: z.ZodObject<{
1155
+ definitionId: z.ZodString;
1156
+ version: z.ZodNumber;
1157
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1158
+ }, z.core.$strict>;
1159
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1160
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1161
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
1162
+ kind: z.ZodEnum<{
1163
+ equipment: "equipment";
1164
+ fitting: "fitting";
1165
+ transformer: "transformer";
1166
+ mainBoard: "mainBoard";
1167
+ distributionBoard: "distributionBoard";
1168
+ mcbBox: "mcbBox";
1169
+ junctionBox: "junctionBox";
1170
+ switch: "switch";
1171
+ outlet: "outlet";
1172
+ light: "light";
1173
+ load: "load";
1174
+ }>;
1175
+ }, z.core.$strict>>;
1176
+ edges: z.ZodArray<z.ZodObject<{
1177
+ id: z.ZodString;
1178
+ storey: z.ZodNumber;
1179
+ family: z.ZodObject<{
1180
+ definitionId: z.ZodString;
1181
+ version: z.ZodNumber;
1182
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1183
+ }, z.core.$strict>;
1184
+ from: z.ZodObject<{
1185
+ node: z.ZodString;
1186
+ port: z.ZodString;
1187
+ }, z.core.$strict>;
1188
+ to: z.ZodObject<{
1189
+ node: z.ZodString;
1190
+ port: z.ZodString;
1191
+ }, z.core.$strict>;
1192
+ system: z.ZodString;
1193
+ curve: z.ZodObject<{
1194
+ kind: z.ZodLiteral<"line">;
1195
+ }, z.core.$strict>;
1196
+ kind: z.ZodEnum<{
1197
+ wire: "wire";
1198
+ cable: "cable";
1199
+ conduit: "conduit";
1200
+ cableDuct: "cableDuct";
1201
+ cableTray: "cableTray";
1202
+ }>;
1203
+ directed: z.ZodBoolean;
1204
+ }, z.core.$strict>>;
1205
+ circuits: z.ZodArray<z.ZodObject<{
1206
+ id: z.ZodString;
1207
+ source: z.ZodString;
1208
+ loads: z.ZodArray<z.ZodString>;
1209
+ routes: z.ZodArray<z.ZodString>;
1210
+ voltage: z.ZodNumber;
1211
+ phases: z.ZodNumber;
1212
+ ratedAmps: z.ZodNumber;
1213
+ }, z.core.$strict>>;
1214
+ }, z.core.$strict>>;
1215
+ }, z.core.$strict>, z.ZodObject<{
1216
+ schemaVersion: z.ZodLiteral<1>;
1217
+ label: z.ZodString;
1218
+ architectureRevision: z.ZodString;
1219
+ connections: z.ZodArray<z.ZodObject<{
1220
+ id: z.ZodString;
1221
+ from: z.ZodObject<{
1222
+ node: z.ZodString;
1223
+ port: z.ZodString;
1224
+ }, z.core.$strict>;
1225
+ to: z.ZodObject<{
1226
+ node: z.ZodString;
1227
+ port: z.ZodString;
1228
+ }, z.core.$strict>;
1229
+ directed: z.ZodBoolean;
1230
+ }, z.core.$strict>>;
1231
+ relationships: z.ZodArray<z.ZodObject<{
1232
+ node: z.ZodString;
1233
+ relation: z.ZodEnum<{
1234
+ mountedOn: "mountedOn";
1235
+ within: "within";
1236
+ serves: "serves";
1237
+ penetrates: "penetrates";
1238
+ }>;
1239
+ target: z.ZodObject<{
1240
+ kind: z.ZodEnum<{
1241
+ topology: "topology";
1242
+ component: "component";
1243
+ }>;
1244
+ id: z.ZodString;
1245
+ }, z.core.$strict>;
1246
+ }, z.core.$strict>>;
1247
+ domain: z.ZodLiteral<"plumbing">;
1248
+ nodes: z.ZodArray<z.ZodObject<{
1249
+ id: z.ZodString;
1250
+ storey: z.ZodNumber;
1251
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
1252
+ kind: z.ZodLiteral<"family">;
1253
+ definitionId: z.ZodString;
1254
+ version: z.ZodNumber;
1255
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1256
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1257
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1258
+ ports: z.ZodArray<z.ZodObject<{
1259
+ id: z.ZodString;
1260
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1261
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1262
+ system: z.ZodString;
1263
+ sizeMm: z.ZodNumber;
1264
+ heightMm: z.ZodOptional<z.ZodNumber>;
1265
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1266
+ }, z.core.$strict>>;
1267
+ }, z.core.$strict>, z.ZodObject<{
1268
+ kind: z.ZodLiteral<"route">;
1269
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1270
+ system: z.ZodString;
1271
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
1272
+ kind: z.ZodLiteral<"round">;
1273
+ diameterMm: z.ZodNumber;
1274
+ wallMm: z.ZodNumber;
1275
+ }, z.core.$strict>, z.ZodObject<{
1276
+ kind: z.ZodLiteral<"rectangular">;
1277
+ widthMm: z.ZodNumber;
1278
+ heightMm: z.ZodNumber;
1279
+ wallMm: z.ZodNumber;
1280
+ }, z.core.$strict>], "kind">;
1281
+ }, z.core.$strict>], "kind">;
1282
+ kind: z.ZodEnum<{
1283
+ pipe: "pipe";
1284
+ equipment: "equipment";
1285
+ fixture: "fixture";
1286
+ tank: "tank";
1287
+ pump: "pump";
1288
+ valve: "valve";
1289
+ manifold: "manifold";
1290
+ fitting: "fitting";
1291
+ riser: "riser";
1292
+ }>;
1293
+ }, z.core.$strict>>;
1294
+ authored: z.ZodOptional<z.ZodObject<{
1295
+ schemaVersion: z.ZodLiteral<2>;
1296
+ domain: z.ZodLiteral<"plumbing">;
1297
+ label: z.ZodString;
1298
+ architectureRevision: z.ZodString;
1299
+ relationships: z.ZodArray<z.ZodObject<{
1300
+ node: z.ZodString;
1301
+ relation: z.ZodEnum<{
1302
+ mountedOn: "mountedOn";
1303
+ within: "within";
1304
+ serves: "serves";
1305
+ penetrates: "penetrates";
1306
+ }>;
1307
+ target: z.ZodObject<{
1308
+ kind: z.ZodEnum<{
1309
+ topology: "topology";
1310
+ component: "component";
1311
+ }>;
1312
+ id: z.ZodString;
1313
+ }, z.core.$strict>;
1314
+ }, z.core.$strict>>;
1315
+ vertices: z.ZodArray<z.ZodObject<{
1316
+ id: z.ZodString;
1317
+ kind: z.ZodEnum<{
1318
+ equipment: "equipment";
1319
+ fixture: "fixture";
1320
+ tank: "tank";
1321
+ pump: "pump";
1322
+ valve: "valve";
1323
+ manifold: "manifold";
1324
+ fitting: "fitting";
1325
+ }>;
1326
+ storey: z.ZodNumber;
1327
+ family: z.ZodObject<{
1328
+ definitionId: z.ZodString;
1329
+ version: z.ZodNumber;
1330
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1331
+ }, z.core.$strict>;
1332
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1333
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1334
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
1335
+ }, z.core.$strict>>;
1336
+ edges: z.ZodArray<z.ZodObject<{
1337
+ id: z.ZodString;
1338
+ kind: z.ZodEnum<{
1339
+ pipe: "pipe";
1340
+ riser: "riser";
1341
+ }>;
1342
+ storey: z.ZodNumber;
1343
+ family: z.ZodObject<{
1344
+ definitionId: z.ZodString;
1345
+ version: z.ZodNumber;
1346
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1347
+ }, z.core.$strict>;
1348
+ from: z.ZodObject<{
1349
+ node: z.ZodString;
1350
+ port: z.ZodString;
1351
+ }, z.core.$strict>;
1352
+ to: z.ZodObject<{
1353
+ node: z.ZodString;
1354
+ port: z.ZodString;
1355
+ }, z.core.$strict>;
1356
+ system: z.ZodString;
1357
+ curve: z.ZodObject<{
1358
+ kind: z.ZodLiteral<"line">;
1359
+ }, z.core.$strict>;
1360
+ }, z.core.$strict>>;
1361
+ }, z.core.$strict>>;
1362
+ }, z.core.$strict>, z.ZodObject<{
1363
+ schemaVersion: z.ZodLiteral<1>;
1364
+ label: z.ZodString;
1365
+ architectureRevision: z.ZodString;
1366
+ connections: z.ZodArray<z.ZodObject<{
1367
+ id: z.ZodString;
1368
+ from: z.ZodObject<{
1369
+ node: z.ZodString;
1370
+ port: z.ZodString;
1371
+ }, z.core.$strict>;
1372
+ to: z.ZodObject<{
1373
+ node: z.ZodString;
1374
+ port: z.ZodString;
1375
+ }, z.core.$strict>;
1376
+ directed: z.ZodBoolean;
1377
+ }, z.core.$strict>>;
1378
+ relationships: z.ZodArray<z.ZodObject<{
1379
+ node: z.ZodString;
1380
+ relation: z.ZodEnum<{
1381
+ mountedOn: "mountedOn";
1382
+ within: "within";
1383
+ serves: "serves";
1384
+ penetrates: "penetrates";
1385
+ }>;
1386
+ target: z.ZodObject<{
1387
+ kind: z.ZodEnum<{
1388
+ topology: "topology";
1389
+ component: "component";
1390
+ }>;
1391
+ id: z.ZodString;
1392
+ }, z.core.$strict>;
1393
+ }, z.core.$strict>>;
1394
+ domain: z.ZodLiteral<"mechanical">;
1395
+ nodes: z.ZodArray<z.ZodObject<{
1396
+ id: z.ZodString;
1397
+ storey: z.ZodNumber;
1398
+ kind: z.ZodEnum<{
1399
+ duct: "duct";
1400
+ equipment: "equipment";
1401
+ fitting: "fitting";
1402
+ riser: "riser";
1403
+ terminal: "terminal";
1404
+ damper: "damper";
1405
+ }>;
1406
+ geometry: z.ZodObject<{
1407
+ kind: z.ZodLiteral<"family">;
1408
+ definitionId: z.ZodString;
1409
+ version: z.ZodNumber;
1410
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1411
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1412
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1413
+ ports: z.ZodArray<z.ZodObject<{
1414
+ id: z.ZodString;
1415
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1416
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1417
+ system: z.ZodString;
1418
+ sizeMm: z.ZodNumber;
1419
+ heightMm: z.ZodOptional<z.ZodNumber>;
1420
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1421
+ }, z.core.$strict>>;
1422
+ }, z.core.$strict>;
1423
+ }, z.core.$strict>>;
1424
+ authored: z.ZodObject<{
1425
+ schemaVersion: z.ZodLiteral<2>;
1426
+ label: z.ZodString;
1427
+ architectureRevision: z.ZodString;
1428
+ relationships: z.ZodArray<z.ZodObject<{
1429
+ node: z.ZodString;
1430
+ relation: z.ZodEnum<{
1431
+ mountedOn: "mountedOn";
1432
+ within: "within";
1433
+ serves: "serves";
1434
+ penetrates: "penetrates";
1435
+ }>;
1436
+ target: z.ZodObject<{
1437
+ kind: z.ZodEnum<{
1438
+ topology: "topology";
1439
+ component: "component";
1440
+ }>;
1441
+ id: z.ZodString;
1442
+ }, z.core.$strict>;
1443
+ }, z.core.$strict>>;
1444
+ domain: z.ZodLiteral<"mechanical">;
1445
+ vertices: z.ZodArray<z.ZodObject<{
1446
+ id: z.ZodString;
1447
+ storey: z.ZodNumber;
1448
+ family: z.ZodObject<{
1449
+ definitionId: z.ZodString;
1450
+ version: z.ZodNumber;
1451
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1452
+ }, z.core.$strict>;
1453
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1454
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1455
+ kind: z.ZodEnum<{
1456
+ equipment: "equipment";
1457
+ fitting: "fitting";
1458
+ terminal: "terminal";
1459
+ damper: "damper";
1460
+ }>;
1461
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
1462
+ supplyAir: "supplyAir";
1463
+ returnAir: "returnAir";
1464
+ exhaustAir: "exhaustAir";
1465
+ outsideAir: "outsideAir";
1466
+ reliefAir: "reliefAir";
1467
+ }>>;
1468
+ }, z.core.$strict>>;
1469
+ edges: z.ZodArray<z.ZodObject<{
1470
+ id: z.ZodString;
1471
+ storey: z.ZodNumber;
1472
+ family: z.ZodObject<{
1473
+ definitionId: z.ZodString;
1474
+ version: z.ZodNumber;
1475
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1476
+ }, z.core.$strict>;
1477
+ from: z.ZodObject<{
1478
+ node: z.ZodString;
1479
+ port: z.ZodString;
1480
+ }, z.core.$strict>;
1481
+ to: z.ZodObject<{
1482
+ node: z.ZodString;
1483
+ port: z.ZodString;
1484
+ }, z.core.$strict>;
1485
+ curve: z.ZodObject<{
1486
+ kind: z.ZodLiteral<"line">;
1487
+ }, z.core.$strict>;
1488
+ kind: z.ZodEnum<{
1489
+ duct: "duct";
1490
+ riser: "riser";
1491
+ }>;
1492
+ system: z.ZodEnum<{
1493
+ supplyAir: "supplyAir";
1494
+ returnAir: "returnAir";
1495
+ exhaustAir: "exhaustAir";
1496
+ outsideAir: "outsideAir";
1497
+ reliefAir: "reliefAir";
1498
+ }>;
1499
+ }, z.core.$strict>>;
1500
+ }, z.core.$strict>;
1501
+ }, z.core.$strict>], "domain">;
1502
+ export type NetworkGraphDocument = z.infer<typeof NetworkGraphDocument>;
1503
+ export type NetworkNode = NetworkGraphDocument["nodes"][number];
1504
+ export type NetworkPort = z.infer<typeof NetworkPort>;
1505
+ export type NetworkDomain = NetworkGraphDocument["domain"];
1506
+ /** JSON is an authored document, not a transport for live geometry handles. Maximum 2 MB characters. */
1507
+ export declare const NetworkValidateArgs: z.ZodObject<{
1508
+ graphJson: z.ZodString;
1509
+ }, z.core.$strict>;
1510
+ export declare const NetworkCreateArgs: z.ZodObject<{
1511
+ graphJson: z.ZodString;
1512
+ requestId: z.ZodString;
1513
+ }, z.core.$strict>;
1514
+ export declare const NetworkGetArgs: z.ZodObject<{
1515
+ graphId: z.ZodString;
1516
+ }, z.core.$strict>;
1517
+ export declare const NetworkContextArgs: z.ZodObject<{
1518
+ offset: z.ZodDefault<z.ZodNumber>;
1519
+ limit: z.ZodDefault<z.ZodNumber>;
1520
+ includeTopology: z.ZodDefault<z.ZodBoolean>;
1521
+ }, z.core.$strict>;
1522
+ export declare const NetworkQueryArgs: z.ZodObject<{
1523
+ graphId: z.ZodString;
1524
+ revision: z.ZodNumber;
1525
+ queryJson: z.ZodString;
1526
+ }, z.core.$strict>;
1527
+ export declare const NetworkQuery: z.ZodObject<{
1528
+ kind: z.ZodEnum<{
1529
+ ports: "ports";
1530
+ relationships: "relationships";
1531
+ circuits: "circuits";
1532
+ nodes: "nodes";
1533
+ connected: "connected";
1534
+ upstream: "upstream";
1535
+ downstream: "downstream";
1536
+ nearestPort: "nearestPort";
1537
+ }>;
1538
+ node: z.ZodOptional<z.ZodString>;
1539
+ pointMm: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1540
+ radiusMm: z.ZodOptional<z.ZodNumber>;
1541
+ system: z.ZodOptional<z.ZodString>;
1542
+ sizeMm: z.ZodOptional<z.ZodNumber>;
1543
+ heightMm: z.ZodOptional<z.ZodNumber>;
1544
+ offset: z.ZodDefault<z.ZodNumber>;
1545
+ limit: z.ZodDefault<z.ZodNumber>;
1546
+ }, z.core.$strict>;
1547
+ export type NetworkQuery = z.infer<typeof NetworkQuery>;
1548
+ export interface NetworkDiagnostic {
1549
+ path: string;
1550
+ message: string;
1551
+ }
1552
+ export interface NetworkValidation {
1553
+ ok: boolean;
1554
+ diagnostics: NetworkDiagnostic[];
1555
+ nodeCount: number;
1556
+ }
1557
+ /** Durable node-to-scene mapping. New family-backed nodes retain the original authorized pin;
1558
+ * parameters and placement belong to the component, not a generated library family.
1559
+ * Existing wrapper pins and v1 raw-route recipe pins remain readable, not newly authored.
1560
+ */
1561
+ export declare const NetworkComponentBinding: z.ZodObject<{
1562
+ nodeId: z.ZodString;
1563
+ componentId: z.ZodString;
1564
+ definitionId: z.ZodString;
1565
+ definitionVersion: z.ZodNumber;
1566
+ }, z.core.$strict>;
1567
+ export type NetworkComponentBinding = z.infer<typeof NetworkComponentBinding>;
1568
+ export interface SavedNetworkGraph {
1569
+ id: string;
1570
+ domain: NetworkDomain;
1571
+ revision: 1;
1572
+ requestId: string;
1573
+ document: NetworkGraphDocument;
1574
+ components: NetworkComponentBinding[];
1575
+ }
1576
+ export interface NetworkCreateResult {
1577
+ graphId: string;
1578
+ revision: number;
1579
+ components: NetworkComponentBinding[];
1580
+ alreadyCreated: boolean;
1581
+ /** Queue acceptance is not a durable database acknowledgement. */
1582
+ saveStatus: "queued" | "existing";
1583
+ }
1584
+ /** Exact TopoGraph routing evidence, not a route planner or inferred enclosure.
1585
+ * World mm, Y-up. A curve's axis is a unit direction, not a length.
1586
+ * Shared region IDs mean a shared boundary, not permission to penetrate a wall.
1587
+ * Regions preserve directed outer/hole loops. No vertical connectivity is inferred;
1588
+ * use their curves and storey elevations to plan risers and explicit penetrations.
1589
+ */
1590
+ export interface NetworkRoutingContext {
1591
+ units: "mm";
1592
+ edges: {
1593
+ id: string;
1594
+ curve: {
1595
+ type: "line";
1596
+ start: number[];
1597
+ end: number[];
1598
+ } | {
1599
+ type: "arc";
1600
+ start: number[];
1601
+ end: number[];
1602
+ centre: number[];
1603
+ axis: number[];
1604
+ };
1605
+ wallId: string | null;
1606
+ regionIds: string[];
1607
+ }[];
1608
+ regions: {
1609
+ id: string;
1610
+ /** Stable source component IDs; read label/storey from context.components. */
1611
+ ownerIds: string[];
1612
+ boundary: {
1613
+ outer: {
1614
+ edgeId: string;
1615
+ direction: "forward" | "reverse";
1616
+ }[];
1617
+ holes: {
1618
+ edgeId: string;
1619
+ direction: "forward" | "reverse";
1620
+ }[][];
1621
+ };
1622
+ floorId: string | null;
1623
+ slabId: string | null;
1624
+ }[];
1625
+ /** Hosting is exact; bounds are only coarse avoidance data, not a penetration clearance check. */
1626
+ openings: {
1627
+ id: string;
1628
+ wallId: string;
1629
+ type: string;
1630
+ minMm: number[];
1631
+ maxMm: number[];
1632
+ }[];
1633
+ }
1634
+ export interface NetworkContextResult {
1635
+ proposalId: string;
1636
+ buildingId: string | null;
1637
+ revision: string;
1638
+ /** PG2's native serialization uses Snaptrude units (1 SU = 254 mm). */
1639
+ topologyUnits: "SU";
1640
+ /** JSON array; empty when includeTopology is false. Prefer routing for network planning. */
1641
+ topologyJson: string;
1642
+ /** Each collection uses offset/limit independently. Follow nextOffset before resolving references.
1643
+ * Empty regions mean topology is unavailable, not that bounds can substitute for room boundaries.
1644
+ */
1645
+ routing: NetworkRoutingContext;
1646
+ nextOffset: number | null;
1647
+ total: number;
1648
+ storeys: {
1649
+ number: number;
1650
+ elevationMm: number;
1651
+ }[];
1652
+ components: {
1653
+ id: string;
1654
+ type: string;
1655
+ label: string;
1656
+ storey: number;
1657
+ minMm: number[];
1658
+ maxMm: number[];
1659
+ }[];
1660
+ /** Saved graph inventory, paged with topology/components. Use these IDs after reopening a project. */
1661
+ networks: {
1662
+ graphId: string;
1663
+ domain: NetworkDomain;
1664
+ revision: number;
1665
+ label: string;
1666
+ componentCount: number;
1667
+ }[];
1668
+ }
1669
+ export interface NetworkQueryResult {
1670
+ revision: number;
1671
+ resultJson: string;
1672
+ nextOffset: number | null;
1673
+ total: number;
1674
+ }
1675
+ /** Shared transport only. Each domain retains a separate schema and semantics. */
1676
+ export declare abstract class PluginDomainNetworkApi {
1677
+ /** Read the active proposal's architectural context before authoring. Keep one revision across pages. */
1678
+ abstract context(args?: z.input<typeof NetworkContextArgs>): PluginApiReturn<NetworkContextResult>;
1679
+ /** Validate authored JSON, pinned families and recipe evaluation without placing or saving anything.
1680
+ * This does not build kernel meshes or certify engineering/code compliance.
1681
+ */
1682
+ abstract validate(args: z.input<typeof NetworkValidateArgs>): PluginApiReturn<NetworkValidation>;
1683
+ /** Construct each node on its authored storey, with one undo command and queued project persistence.
1684
+ * Networks can span storeys. Reuse requestId on retry; components returns the durable node mapping.
1685
+ * Coordinates are world millimetres, Y-up; rotations are degrees. No engineering rules are inferred.
1686
+ * Throws for stale architecture, invalid references/geometry or conflicting retries.
1687
+ */
1688
+ abstract create(args: z.input<typeof NetworkCreateArgs>): PluginApiReturn<NetworkCreateResult>;
1689
+ /** Read one saved graph in the active proposal; null on miss. IDs are durable, not worker handles. */
1690
+ abstract get(args: z.input<typeof NetworkGetArgs>): PluginApiReturn<SavedNetworkGraph | null>;
1691
+ /** Read bounded authored topology in graph revision. Crossings do not connect. No clash/compliance claims. */
1692
+ abstract query(args: z.input<typeof NetworkQueryArgs>): PluginApiReturn<NetworkQueryResult>;
1693
+ }
1694
+ /** Electrical equipment, physical routes and logical circuits, constructed from agent-authored intent. */
1695
+ export declare abstract class PluginElectricalApi extends PluginDomainNetworkApi {
1696
+ }
1697
+ /** Plumbing equipment and routed pipe networks, constructed from agent-authored intent. */
1698
+ export declare abstract class PluginPlumbingApi extends PluginDomainNetworkApi {
1699
+ }
1700
+ /** Family-backed air-side HVAC networks. The agent authors engineering intent; the host constructs it. */
1701
+ export declare abstract class PluginMechanicalApi extends PluginDomainNetworkApi {
1702
+ }
1703
+ //# sourceMappingURL=networks.d.ts.map