@geotechcli/core 0.2.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 (194) hide show
  1. package/dist/agents/brain.d.ts +39 -0
  2. package/dist/agents/brain.d.ts.map +1 -0
  3. package/dist/agents/brain.js +339 -0
  4. package/dist/agents/brain.js.map +1 -0
  5. package/dist/agents/bridge-tools.d.ts +2 -0
  6. package/dist/agents/bridge-tools.d.ts.map +1 -0
  7. package/dist/agents/bridge-tools.js +170 -0
  8. package/dist/agents/bridge-tools.js.map +1 -0
  9. package/dist/agents/data-tools.d.ts +2 -0
  10. package/dist/agents/data-tools.d.ts.map +1 -0
  11. package/dist/agents/data-tools.js +309 -0
  12. package/dist/agents/data-tools.js.map +1 -0
  13. package/dist/agents/filesystem-tools.d.ts +2 -0
  14. package/dist/agents/filesystem-tools.d.ts.map +1 -0
  15. package/dist/agents/filesystem-tools.js +267 -0
  16. package/dist/agents/filesystem-tools.js.map +1 -0
  17. package/dist/agents/guardrails.d.ts +17 -0
  18. package/dist/agents/guardrails.d.ts.map +1 -0
  19. package/dist/agents/guardrails.js +260 -0
  20. package/dist/agents/guardrails.js.map +1 -0
  21. package/dist/agents/orchestrator.d.ts +9 -0
  22. package/dist/agents/orchestrator.d.ts.map +1 -0
  23. package/dist/agents/orchestrator.js +136 -0
  24. package/dist/agents/orchestrator.js.map +1 -0
  25. package/dist/agents/safety.d.ts +9 -0
  26. package/dist/agents/safety.d.ts.map +1 -0
  27. package/dist/agents/safety.js +40 -0
  28. package/dist/agents/safety.js.map +1 -0
  29. package/dist/agents/sandbox.d.ts +34 -0
  30. package/dist/agents/sandbox.d.ts.map +1 -0
  31. package/dist/agents/sandbox.js +235 -0
  32. package/dist/agents/sandbox.js.map +1 -0
  33. package/dist/agents/swarm.d.ts +25 -0
  34. package/dist/agents/swarm.d.ts.map +1 -0
  35. package/dist/agents/swarm.js +434 -0
  36. package/dist/agents/swarm.js.map +1 -0
  37. package/dist/agents/tools.d.ts +37 -0
  38. package/dist/agents/tools.d.ts.map +1 -0
  39. package/dist/agents/tools.js +451 -0
  40. package/dist/agents/tools.js.map +1 -0
  41. package/dist/bridge/index.d.ts +52 -0
  42. package/dist/bridge/index.d.ts.map +1 -0
  43. package/dist/bridge/index.js +195 -0
  44. package/dist/bridge/index.js.map +1 -0
  45. package/dist/config/index.d.ts +106 -0
  46. package/dist/config/index.d.ts.map +1 -0
  47. package/dist/config/index.js +217 -0
  48. package/dist/config/index.js.map +1 -0
  49. package/dist/db/index.d.ts +4 -0
  50. package/dist/db/index.d.ts.map +1 -0
  51. package/dist/db/index.js +4 -0
  52. package/dist/db/index.js.map +1 -0
  53. package/dist/db/redis.d.ts +14 -0
  54. package/dist/db/redis.d.ts.map +1 -0
  55. package/dist/db/redis.js +204 -0
  56. package/dist/db/redis.js.map +1 -0
  57. package/dist/db/supabase.d.ts +57 -0
  58. package/dist/db/supabase.d.ts.map +1 -0
  59. package/dist/db/supabase.js +156 -0
  60. package/dist/db/supabase.js.map +1 -0
  61. package/dist/db/users.d.ts +50 -0
  62. package/dist/db/users.d.ts.map +1 -0
  63. package/dist/db/users.js +132 -0
  64. package/dist/db/users.js.map +1 -0
  65. package/dist/export/index.d.ts +51 -0
  66. package/dist/export/index.d.ts.map +1 -0
  67. package/dist/export/index.js +126 -0
  68. package/dist/export/index.js.map +1 -0
  69. package/dist/geo/bearing-capacity.d.ts +60 -0
  70. package/dist/geo/bearing-capacity.d.ts.map +1 -0
  71. package/dist/geo/bearing-capacity.js +195 -0
  72. package/dist/geo/bearing-capacity.js.map +1 -0
  73. package/dist/geo/classification.d.ts +107 -0
  74. package/dist/geo/classification.d.ts.map +1 -0
  75. package/dist/geo/classification.js +261 -0
  76. package/dist/geo/classification.js.map +1 -0
  77. package/dist/geo/index.d.ts +9 -0
  78. package/dist/geo/index.d.ts.map +1 -0
  79. package/dist/geo/index.js +9 -0
  80. package/dist/geo/index.js.map +1 -0
  81. package/dist/geo/lateral-earth-pressure.d.ts +75 -0
  82. package/dist/geo/lateral-earth-pressure.d.ts.map +1 -0
  83. package/dist/geo/lateral-earth-pressure.js +219 -0
  84. package/dist/geo/lateral-earth-pressure.js.map +1 -0
  85. package/dist/geo/liquefaction.d.ts +65 -0
  86. package/dist/geo/liquefaction.d.ts.map +1 -0
  87. package/dist/geo/liquefaction.js +163 -0
  88. package/dist/geo/liquefaction.js.map +1 -0
  89. package/dist/geo/pile-capacity.d.ts +91 -0
  90. package/dist/geo/pile-capacity.d.ts.map +1 -0
  91. package/dist/geo/pile-capacity.js +233 -0
  92. package/dist/geo/pile-capacity.js.map +1 -0
  93. package/dist/geo/settlement.d.ts +119 -0
  94. package/dist/geo/settlement.d.ts.map +1 -0
  95. package/dist/geo/settlement.js +184 -0
  96. package/dist/geo/settlement.js.map +1 -0
  97. package/dist/geo/slope-stability.d.ts +82 -0
  98. package/dist/geo/slope-stability.d.ts.map +1 -0
  99. package/dist/geo/slope-stability.js +214 -0
  100. package/dist/geo/slope-stability.js.map +1 -0
  101. package/dist/geo/tunnel/index.d.ts +2 -0
  102. package/dist/geo/tunnel/index.d.ts.map +1 -0
  103. package/dist/geo/tunnel/index.js +2 -0
  104. package/dist/geo/tunnel/index.js.map +1 -0
  105. package/dist/geo/tunnel/tbm.d.ts +135 -0
  106. package/dist/geo/tunnel/tbm.d.ts.map +1 -0
  107. package/dist/geo/tunnel/tbm.js +268 -0
  108. package/dist/geo/tunnel/tbm.js.map +1 -0
  109. package/dist/index.d.ts +20 -0
  110. package/dist/index.d.ts.map +1 -0
  111. package/dist/index.js +33 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/ingest/ags.d.ts +42 -0
  114. package/dist/ingest/ags.d.ts.map +1 -0
  115. package/dist/ingest/ags.js +133 -0
  116. package/dist/ingest/ags.js.map +1 -0
  117. package/dist/ingest/cpt.d.ts +47 -0
  118. package/dist/ingest/cpt.d.ts.map +1 -0
  119. package/dist/ingest/cpt.js +112 -0
  120. package/dist/ingest/cpt.js.map +1 -0
  121. package/dist/ingest/index.d.ts +3 -0
  122. package/dist/ingest/index.d.ts.map +1 -0
  123. package/dist/ingest/index.js +3 -0
  124. package/dist/ingest/index.js.map +1 -0
  125. package/dist/llm/index.d.ts +5 -0
  126. package/dist/llm/index.d.ts.map +1 -0
  127. package/dist/llm/index.js +4 -0
  128. package/dist/llm/index.js.map +1 -0
  129. package/dist/llm/middleware/metering.d.ts +55 -0
  130. package/dist/llm/middleware/metering.d.ts.map +1 -0
  131. package/dist/llm/middleware/metering.js +191 -0
  132. package/dist/llm/middleware/metering.js.map +1 -0
  133. package/dist/llm/middleware/persistent-usage.d.ts +7 -0
  134. package/dist/llm/middleware/persistent-usage.d.ts.map +1 -0
  135. package/dist/llm/middleware/persistent-usage.js +108 -0
  136. package/dist/llm/middleware/persistent-usage.js.map +1 -0
  137. package/dist/llm/middleware/retry.d.ts +7 -0
  138. package/dist/llm/middleware/retry.d.ts.map +1 -0
  139. package/dist/llm/middleware/retry.js +29 -0
  140. package/dist/llm/middleware/retry.js.map +1 -0
  141. package/dist/llm/providers/anthropic.d.ts +10 -0
  142. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  143. package/dist/llm/providers/anthropic.js +107 -0
  144. package/dist/llm/providers/anthropic.js.map +1 -0
  145. package/dist/llm/providers/hosted-beta.d.ts +10 -0
  146. package/dist/llm/providers/hosted-beta.d.ts.map +1 -0
  147. package/dist/llm/providers/hosted-beta.js +106 -0
  148. package/dist/llm/providers/hosted-beta.js.map +1 -0
  149. package/dist/llm/providers/huggingface.d.ts +37 -0
  150. package/dist/llm/providers/huggingface.d.ts.map +1 -0
  151. package/dist/llm/providers/huggingface.js +133 -0
  152. package/dist/llm/providers/huggingface.js.map +1 -0
  153. package/dist/llm/providers/openai-compatible.d.ts +27 -0
  154. package/dist/llm/providers/openai-compatible.d.ts.map +1 -0
  155. package/dist/llm/providers/openai-compatible.js +99 -0
  156. package/dist/llm/providers/openai-compatible.js.map +1 -0
  157. package/dist/llm/providers/zhipu.d.ts +10 -0
  158. package/dist/llm/providers/zhipu.d.ts.map +1 -0
  159. package/dist/llm/providers/zhipu.js +81 -0
  160. package/dist/llm/providers/zhipu.js.map +1 -0
  161. package/dist/llm/router.d.ts +35 -0
  162. package/dist/llm/router.d.ts.map +1 -0
  163. package/dist/llm/router.js +109 -0
  164. package/dist/llm/router.js.map +1 -0
  165. package/dist/llm/types.d.ts +63 -0
  166. package/dist/llm/types.d.ts.map +1 -0
  167. package/dist/llm/types.js +38 -0
  168. package/dist/llm/types.js.map +1 -0
  169. package/dist/meta/index.d.ts +12 -0
  170. package/dist/meta/index.d.ts.map +1 -0
  171. package/dist/meta/index.js +8 -0
  172. package/dist/meta/index.js.map +1 -0
  173. package/dist/meta/metadata.json +46 -0
  174. package/dist/report/index.d.ts +20 -0
  175. package/dist/report/index.d.ts.map +1 -0
  176. package/dist/report/index.js +58 -0
  177. package/dist/report/index.js.map +1 -0
  178. package/dist/standards/index.d.ts +23 -0
  179. package/dist/standards/index.d.ts.map +1 -0
  180. package/dist/standards/index.js +89 -0
  181. package/dist/standards/index.js.map +1 -0
  182. package/dist/storage/index.d.ts +114 -0
  183. package/dist/storage/index.d.ts.map +1 -0
  184. package/dist/storage/index.js +465 -0
  185. package/dist/storage/index.js.map +1 -0
  186. package/dist/vision/index.d.ts +80 -0
  187. package/dist/vision/index.d.ts.map +1 -0
  188. package/dist/vision/index.js +298 -0
  189. package/dist/vision/index.js.map +1 -0
  190. package/dist/vision/parse.d.ts +20 -0
  191. package/dist/vision/parse.d.ts.map +1 -0
  192. package/dist/vision/parse.js +75 -0
  193. package/dist/vision/parse.js.map +1 -0
  194. package/package.json +55 -0
@@ -0,0 +1,451 @@
1
+ import { calculateBearingCapacity, calculateConsolidation, calculateSchmertmann, calculatePeckSettlement, calculateLiquefaction, classifyUSCS, classifyRMR89, classifyQSystem, predictTBMPerformance, selectTBMType, predictCutterWear, } from '../geo/index.js';
2
+ // ---------------------------------------------------------------------------
3
+ // The Registry
4
+ // ---------------------------------------------------------------------------
5
+ class ToolRegistry {
6
+ tools = new Map();
7
+ register(def, execute) {
8
+ this.tools.set(def.name, { definition: def, execute });
9
+ }
10
+ get(name) {
11
+ return this.tools.get(name);
12
+ }
13
+ list() {
14
+ return [...this.tools.values()].map((t) => t.definition);
15
+ }
16
+ async execute(name, args) {
17
+ const tool = this.tools.get(name);
18
+ if (!tool) {
19
+ return { success: false, data: null, summary: '', error: `Unknown tool: ${name}` };
20
+ }
21
+ try {
22
+ return await tool.execute(args);
23
+ }
24
+ catch (err) {
25
+ const msg = err instanceof Error ? err.message : String(err);
26
+ return { success: false, data: null, summary: '', error: `Tool "${name}" failed: ${msg}` };
27
+ }
28
+ }
29
+ /** Format all tool definitions for LLM system prompt injection */
30
+ toToolDescriptions() {
31
+ return this.list()
32
+ .map((t) => {
33
+ const params = Object.entries(t.parameters.properties ?? {})
34
+ .map(([k, v]) => {
35
+ const req = (t.parameters.required ?? []).includes(k) ? ' (required)' : ' (optional)';
36
+ return ` - ${k}: ${v.description ?? v.type}${req}`;
37
+ })
38
+ .join('\n');
39
+ return ` ${t.name}: ${t.description}\n${params}`;
40
+ })
41
+ .join('\n\n');
42
+ }
43
+ /** Format as function-calling tool array for providers that support it */
44
+ toFunctionCallingFormat() {
45
+ return this.list().map((t) => ({
46
+ type: 'function',
47
+ function: {
48
+ name: t.name,
49
+ description: t.description,
50
+ parameters: t.parameters,
51
+ },
52
+ }));
53
+ }
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // Singleton registry with all tools registered
57
+ // ---------------------------------------------------------------------------
58
+ export const toolRegistry = new ToolRegistry();
59
+ // --- Bearing Capacity ---
60
+ toolRegistry.register({
61
+ name: 'calculate_bearing_capacity',
62
+ description: 'Calculate ultimate and allowable bearing capacity for shallow foundations using Terzaghi, Meyerhof, Hansen, or Vesic methods. Returns qUltimate (kPa), qAllowable (kPa), bearing capacity factors, and calculation steps.',
63
+ parameters: {
64
+ type: 'object',
65
+ required: ['depth', 'frictionAngle'],
66
+ properties: {
67
+ width: { type: 'number', description: 'Foundation width B in meters', default: 2 },
68
+ length: { type: 'number', description: 'Foundation length L in meters (omit for strip footing)' },
69
+ depth: { type: 'number', description: 'Embedment depth Df in meters' },
70
+ unitWeight: { type: 'number', description: 'Soil unit weight γ in kN/m³', default: 18 },
71
+ cohesion: { type: 'number', description: 'Cohesion c in kPa', default: 0 },
72
+ frictionAngle: { type: 'number', description: 'Friction angle φ in degrees' },
73
+ method: { type: 'string', enum: ['terzaghi', 'meyerhof', 'hansen', 'vesic'], description: 'Calculation method', default: 'meyerhof' },
74
+ factorOfSafety: { type: 'number', description: 'Factor of safety', default: 3.0 },
75
+ shape: { type: 'string', enum: ['strip', 'square', 'circular', 'rectangular'], default: 'strip' },
76
+ },
77
+ },
78
+ }, (args) => {
79
+ const result = calculateBearingCapacity({
80
+ width: args.width ?? 2,
81
+ depth: args.depth,
82
+ unitWeight: args.unitWeight ?? 18,
83
+ cohesion: args.cohesion ?? 0,
84
+ frictionAngle: args.frictionAngle,
85
+ method: args.method ?? 'meyerhof',
86
+ factorOfSafety: args.factorOfSafety ?? 3.0,
87
+ shape: args.shape ?? 'strip',
88
+ length: args.length,
89
+ });
90
+ return {
91
+ success: true,
92
+ data: result,
93
+ summary: `Bearing capacity (${result.method}): q_ult = ${result.qUltimate} kPa, q_allow = ${result.qAllowable} kPa (FS=${result.factorOfSafety})`,
94
+ };
95
+ });
96
+ // --- Liquefaction ---
97
+ toolRegistry.register({
98
+ name: 'calculate_liquefaction',
99
+ description: 'Assess seismic liquefaction triggering potential using Boulanger & Idriss (2014) or NCEER simplified procedure. Requires SPT data, earthquake magnitude, and PGA. Returns CSR, CRR, factor of safety, and liquefaction potential per layer.',
100
+ parameters: {
101
+ type: 'object',
102
+ required: ['earthquakeMagnitude', 'pga', 'layers'],
103
+ properties: {
104
+ earthquakeMagnitude: { type: 'number', description: 'Moment magnitude Mw (4-9.5)' },
105
+ pga: { type: 'number', description: 'Peak ground acceleration in g' },
106
+ method: { type: 'string', enum: ['boulanger-idriss-2014', 'nceer'], default: 'boulanger-idriss-2014' },
107
+ layers: {
108
+ type: 'array',
109
+ description: 'Array of soil layers with depth, sptN, finesContent, unitWeight, waterTableDepth',
110
+ items: {
111
+ type: 'object',
112
+ properties: {
113
+ depth: { type: 'number', description: 'Mid-depth of layer in meters' },
114
+ sptN: { type: 'number', description: 'Measured SPT N-value' },
115
+ finesContent: { type: 'number', description: 'Fines content in percent', default: 5 },
116
+ unitWeight: { type: 'number', description: 'Total unit weight kN/m³', default: 18 },
117
+ waterTableDepth: { type: 'number', description: 'Water table depth in meters', default: 1 },
118
+ },
119
+ },
120
+ },
121
+ },
122
+ },
123
+ }, (args) => {
124
+ const result = calculateLiquefaction(args);
125
+ const severe = result.layers.filter((l) => l.potential === 'SEVERE' || l.potential === 'HIGH').length;
126
+ return {
127
+ success: true,
128
+ data: result,
129
+ summary: `Liquefaction analysis: ${result.layers.length} layers evaluated, ${severe} with HIGH/SEVERE risk. Estimated settlement: ${result.estimatedSettlement} mm`,
130
+ };
131
+ });
132
+ // --- RMR89 ---
133
+ toolRegistry.register({
134
+ name: 'classify_rmr89',
135
+ description: 'Classify rock mass using Rock Mass Rating system (Bieniawski 1989). Returns RMR score (0-100), rock class (I-V), and support recommendations for tunnels.',
136
+ parameters: {
137
+ type: 'object',
138
+ required: ['ucs', 'rqd'],
139
+ properties: {
140
+ ucs: { type: 'number', description: 'Uniaxial compressive strength in MPa' },
141
+ rqd: { type: 'number', description: 'Rock Quality Designation in percent (0-100)' },
142
+ spacing: { type: 'number', description: 'Discontinuity spacing in meters', default: 0.3 },
143
+ condition: { type: 'string', enum: ['very_good', 'good', 'fair', 'poor', 'very_poor'], default: 'fair' },
144
+ groundwater: { type: 'string', enum: ['dry', 'damp', 'wet', 'dripping', 'flowing'], default: 'dry' },
145
+ orientationAdjustment: { type: 'number', description: 'Orientation adjustment (-60 to 0)', default: 0 },
146
+ },
147
+ },
148
+ }, (args) => {
149
+ const result = classifyRMR89(args);
150
+ return {
151
+ success: true,
152
+ data: result,
153
+ summary: `RMR89 = ${result.totalRating} → Class ${result.classNumber}: ${result.rockClass}. Support: ${result.supportRecommendation}`,
154
+ };
155
+ });
156
+ // --- USCS ---
157
+ toolRegistry.register({
158
+ name: 'classify_uscs',
159
+ description: 'Classify soil using the Unified Soil Classification System (ASTM D2487). Requires grain size distribution and optionally Atterberg limits.',
160
+ parameters: {
161
+ type: 'object',
162
+ required: ['gravelPercent', 'sandPercent', 'finesPercent'],
163
+ properties: {
164
+ gravelPercent: { type: 'number', description: 'Gravel fraction percent (retained on #4)' },
165
+ sandPercent: { type: 'number', description: 'Sand fraction percent (passing #4, retained #200)' },
166
+ finesPercent: { type: 'number', description: 'Fines fraction percent (passing #200)' },
167
+ liquidLimit: { type: 'number', description: 'Liquid Limit in percent' },
168
+ plasticityIndex: { type: 'number', description: 'Plasticity Index in percent' },
169
+ },
170
+ },
171
+ }, (args) => {
172
+ const result = classifyUSCS(args);
173
+ return {
174
+ success: true,
175
+ data: result,
176
+ summary: `USCS: ${result.symbol} — ${result.name} (${result.group})`,
177
+ };
178
+ });
179
+ // --- Q-system ---
180
+ toolRegistry.register({
181
+ name: 'classify_q_system',
182
+ description: 'Classify rock mass using the Q-system (Barton et al. 1974). Returns Q-value and tunnel support recommendations.',
183
+ parameters: {
184
+ type: 'object',
185
+ required: ['rqd', 'jn', 'jr', 'ja'],
186
+ properties: {
187
+ rqd: { type: 'number', description: 'RQD percent' },
188
+ jn: { type: 'number', description: 'Joint set number' },
189
+ jr: { type: 'number', description: 'Joint roughness number' },
190
+ ja: { type: 'number', description: 'Joint alteration number' },
191
+ jw: { type: 'number', description: 'Joint water reduction factor', default: 1.0 },
192
+ srf: { type: 'number', description: 'Stress reduction factor', default: 1.0 },
193
+ },
194
+ },
195
+ }, (args) => {
196
+ const result = classifyQSystem(args);
197
+ return {
198
+ success: true,
199
+ data: result,
200
+ summary: `Q = ${result.qValue} — ${result.category}. Support: ${result.supportRecommendation}`,
201
+ };
202
+ });
203
+ // --- TBM Predict ---
204
+ toolRegistry.register({
205
+ name: 'predict_tbm_performance',
206
+ description: 'Predict TBM performance: penetration rate, advance rate, cutter wear, thrust, torque, and cutterhead power. Based on NTNU/CSM model.',
207
+ parameters: {
208
+ type: 'object',
209
+ required: ['diameter', 'ucs', 'rqd'],
210
+ properties: {
211
+ diameter: { type: 'number', description: 'TBM diameter in meters' },
212
+ ucs: { type: 'number', description: 'Rock UCS in MPa' },
213
+ rqd: { type: 'number', description: 'RQD percent' },
214
+ cai: { type: 'number', description: 'Cerchar Abrasivity Index (0-7)' },
215
+ bts: { type: 'number', description: 'Brazilian Tensile Strength in MPa' },
216
+ jointSpacing: { type: 'number', description: 'Mean joint spacing in meters' },
217
+ alpha: { type: 'number', description: 'Angle between tunnel axis and joints in degrees' },
218
+ },
219
+ },
220
+ }, (args) => {
221
+ const result = predictTBMPerformance(args);
222
+ return {
223
+ success: true,
224
+ data: result,
225
+ summary: `TBM prediction: PR=${result.penetrationRate} mm/rev, advance=${result.advanceRate} m/day, thrust=${(result.requiredThrust / 1000).toFixed(0)} MN, cutter life=${result.cutterLife} m`,
226
+ };
227
+ });
228
+ // --- TBM Select ---
229
+ toolRegistry.register({
230
+ name: 'select_tbm_type',
231
+ description: 'Recommend optimal TBM type (Open, Shield, EPB, Slurry, Convertible) based on ground conditions, water pressure, and project specifics.',
232
+ parameters: {
233
+ type: 'object',
234
+ required: ['diameter', 'groundType'],
235
+ properties: {
236
+ diameter: { type: 'number', description: 'Tunnel diameter in meters' },
237
+ groundType: { type: 'string', enum: ['rock', 'soft_ground', 'mixed', 'squeezing', 'karst'] },
238
+ ucs: { type: 'number', description: 'Average UCS in MPa' },
239
+ waterPressure: { type: 'number', description: 'Max groundwater pressure in bar', default: 0 },
240
+ overburden: { type: 'number', description: 'Max overburden depth in meters' },
241
+ finesContent: { type: 'number', description: 'Fines content percent in soft ground' },
242
+ stickyClayRisk: { type: 'boolean', description: 'Risk of clogging', default: false },
243
+ boulderRisk: { type: 'boolean', description: 'Risk of boulders', default: false },
244
+ gasRisk: { type: 'boolean', description: 'Risk of methane/H2S', default: false },
245
+ },
246
+ },
247
+ }, (args) => {
248
+ const result = selectTBMType(args);
249
+ return {
250
+ success: true,
251
+ data: result,
252
+ summary: `TBM selection: ${result.recommendation} (${result.confidence}% confidence). Key: ${result.keyFactors[0] ?? 'N/A'}`,
253
+ };
254
+ });
255
+ // --- Cutter Wear ---
256
+ toolRegistry.register({
257
+ name: 'predict_cutter_wear',
258
+ description: 'Predict TBM disc cutter wear rate, total replacements, and cost estimate based on Cerchar Abrasivity Index and rock properties.',
259
+ parameters: {
260
+ type: 'object',
261
+ required: ['cai', 'ucs', 'totalDistance', 'numberOfCutters'],
262
+ properties: {
263
+ cai: { type: 'number', description: 'Cerchar Abrasivity Index (0-7)' },
264
+ ucs: { type: 'number', description: 'UCS in MPa' },
265
+ quartz: { type: 'number', description: 'Quartz content percent', default: 30 },
266
+ totalDistance: { type: 'number', description: 'Total tunnel length in meters' },
267
+ numberOfCutters: { type: 'number', description: 'Number of disc cutters' },
268
+ },
269
+ },
270
+ }, (args) => {
271
+ const result = predictCutterWear(args);
272
+ return {
273
+ success: true,
274
+ data: result,
275
+ summary: `Cutter wear: ${result.abrasivityClass}, life=${result.wearRatePerCutter} m/cutter, total changes=${result.totalCutterChanges}, cost=€${result.costEstimate.toLocaleString()}`,
276
+ };
277
+ });
278
+ // --- Settlement (Peck) ---
279
+ toolRegistry.register({
280
+ name: 'calculate_tunnel_settlement',
281
+ description: 'Calculate surface settlement trough above a tunnel using Peck\'s Gaussian formula. Returns max settlement, inflection point, and full settlement profile.',
282
+ parameters: {
283
+ type: 'object',
284
+ required: ['tunnelDiameter', 'tunnelDepth'],
285
+ properties: {
286
+ tunnelDiameter: { type: 'number', description: 'Tunnel diameter D in meters' },
287
+ tunnelDepth: { type: 'number', description: 'Depth to tunnel axis Z₀ in meters' },
288
+ volumeLoss: { type: 'number', description: 'Volume loss Vl in percent', default: 1.0 },
289
+ troughWidthParam: { type: 'number', description: 'Trough width parameter K', default: 0.5 },
290
+ },
291
+ },
292
+ }, (args) => {
293
+ const result = calculatePeckSettlement(args);
294
+ return {
295
+ success: true,
296
+ data: result,
297
+ summary: `Tunnel settlement: Smax=${result.maxSettlement} mm, inflection point i=${result.inflectionPoint} m, trough width=${result.troughWidth} m`,
298
+ };
299
+ });
300
+ // --- Consolidation Settlement (Terzaghi 1D) ---
301
+ toolRegistry.register({
302
+ name: 'calculate_consolidation',
303
+ description: 'Calculate 1D consolidation settlement for clay layers using Terzaghi theory. Handles NC and OC soils. Returns primary settlement, time-settlement curve if Cv provided.',
304
+ parameters: {
305
+ type: 'object',
306
+ required: ['compressionIndex', 'voidRatio', 'layerThickness', 'stressIncrease', 'initialEffectiveStress'],
307
+ properties: {
308
+ compressionIndex: { type: 'number', description: 'Compression index Cc' },
309
+ recompressionIndex: { type: 'number', description: 'Recompression index Cr (default Cc/5)' },
310
+ voidRatio: { type: 'number', description: 'Initial void ratio e\u2080' },
311
+ layerThickness: { type: 'number', description: 'Clay layer thickness H (m)' },
312
+ stressIncrease: { type: 'number', description: 'Stress increase (kPa)' },
313
+ initialEffectiveStress: { type: 'number', description: 'Initial effective stress (kPa)' },
314
+ preconsolidationPressure: { type: 'number', description: 'Preconsolidation pressure (kPa)' },
315
+ drainagePath: { type: 'string', enum: ['single', 'double'], default: 'double' },
316
+ coefficientOfConsolidation: { type: 'number', description: 'Cv (m^2/year)' },
317
+ },
318
+ },
319
+ }, (args) => {
320
+ const result = calculateConsolidation(args);
321
+ return {
322
+ success: true,
323
+ data: result,
324
+ summary: `Consolidation: ${result.primarySettlement} mm (${result.isOverconsolidated ? 'OC' : 'NC'})`,
325
+ };
326
+ });
327
+ // --- Schmertmann Settlement ---
328
+ toolRegistry.register({
329
+ name: 'calculate_schmertmann_settlement',
330
+ description: 'Calculate immediate settlement using Schmertmann (1970/1978). Uses strain influence diagram with embedment and creep corrections for granular soils.',
331
+ parameters: {
332
+ type: 'object',
333
+ required: ['appliedStress', 'foundationWidth', 'layers'],
334
+ properties: {
335
+ appliedStress: { type: 'number', description: 'Net applied stress q (kPa)' },
336
+ foundationWidth: { type: 'number', description: 'Foundation width B (m)' },
337
+ layers: { type: 'array', description: 'Sublayers: [{thickness, elasticModulus}]', items: { type: 'object', properties: { thickness: { type: 'number' }, elasticModulus: { type: 'number' } } } },
338
+ embedmentDepth: { type: 'number', default: 0 },
339
+ unitWeight: { type: 'number', default: 18 },
340
+ timeFactor: { type: 'number', default: 1 },
341
+ },
342
+ },
343
+ }, (args) => {
344
+ const result = calculateSchmertmann(args);
345
+ return {
346
+ success: true,
347
+ data: result,
348
+ summary: `Schmertmann: immediate=${result.immediateSettlement} mm, total=${result.totalSettlement} mm`,
349
+ };
350
+ });
351
+ // ---------------------------------------------------------------------------
352
+ // NEW: Pile Capacity
353
+ // ---------------------------------------------------------------------------
354
+ import { calculatePileCapacity } from '../geo/pile-capacity.js';
355
+ toolRegistry.register({
356
+ name: 'calculate_pile_capacity',
357
+ description: 'Calculate axial pile capacity using α-method (clay), β-method (sand), or SPT-based (Meyerhof 1976). Returns shaft resistance, base resistance, ultimate and allowable capacity per layer. Supports driven, bored, and CFA piles.',
358
+ parameters: {
359
+ type: 'object',
360
+ required: ['pileDiameter', 'pileLength', 'layers'],
361
+ properties: {
362
+ pileDiameter: { type: 'number', description: 'Pile diameter (m)' },
363
+ pileLength: { type: 'number', description: 'Embedded pile length (m)' },
364
+ pileType: { type: 'string', enum: ['driven', 'bored', 'cfa'], default: 'driven' },
365
+ pileShape: { type: 'string', enum: ['circular', 'square', 'h-section'], default: 'circular' },
366
+ layers: {
367
+ type: 'array',
368
+ description: 'Soil layers: [{thickness, soilType, undrained_shear_strength?, friction_angle?, unit_weight, spt_n?}]',
369
+ items: { type: 'object' },
370
+ },
371
+ waterTableDepth: { type: 'number', default: 999 },
372
+ factorOfSafety: { type: 'number', default: 2.5 },
373
+ method: { type: 'string', enum: ['alpha', 'beta', 'spt-meyerhof', 'auto'], default: 'auto' },
374
+ },
375
+ },
376
+ }, (args) => {
377
+ const result = calculatePileCapacity(args);
378
+ return {
379
+ success: true,
380
+ data: result,
381
+ summary: `Pile capacity (${result.method}): Qu=${result.ultimateCapacity} kN (Qs=${result.shaftResistance}+Qb=${result.baseResistance}), Qa=${result.allowableCapacity} kN (FS=${result.factorOfSafety})`,
382
+ };
383
+ });
384
+ // ---------------------------------------------------------------------------
385
+ // NEW: Slope Stability
386
+ // ---------------------------------------------------------------------------
387
+ import { calculateSlopeStability } from '../geo/slope-stability.js';
388
+ toolRegistry.register({
389
+ name: 'calculate_slope_stability',
390
+ description: 'Analyze slope stability using Bishop Simplified method. Searches for the critical slip circle and returns factor of safety, stability class, and slice-by-slice results. Supports multi-layer soils, water table, seismic loading, and surcharge.',
391
+ parameters: {
392
+ type: 'object',
393
+ required: ['slopeHeight', 'slopeAngle', 'soilLayers'],
394
+ properties: {
395
+ slopeHeight: { type: 'number', description: 'Slope height H (m)' },
396
+ slopeAngle: { type: 'number', description: 'Slope angle from horizontal (degrees)' },
397
+ soilLayers: {
398
+ type: 'array',
399
+ description: 'Layers: [{thickness, unitWeight, cohesion, frictionAngle}]',
400
+ items: { type: 'object' },
401
+ },
402
+ waterTableDepth: { type: 'number', default: 999 },
403
+ surcharge: { type: 'number', default: 0 },
404
+ seismicCoefficient: { type: 'number', default: 0, description: 'Horizontal seismic coefficient kh' },
405
+ numberOfSlices: { type: 'number', default: 10 },
406
+ method: { type: 'string', enum: ['bishop', 'ordinary'], default: 'bishop' },
407
+ },
408
+ },
409
+ }, (args) => {
410
+ const result = calculateSlopeStability(args);
411
+ return {
412
+ success: true,
413
+ data: result,
414
+ summary: `Slope stability (${result.method}): FOS=${result.factorOfSafety} → ${result.stabilityClass}. Critical circle: R=${result.criticalCircle.radius}m`,
415
+ };
416
+ });
417
+ // ---------------------------------------------------------------------------
418
+ // NEW: Lateral Earth Pressure
419
+ // ---------------------------------------------------------------------------
420
+ import { calculateLateralEarthPressure } from '../geo/lateral-earth-pressure.js';
421
+ toolRegistry.register({
422
+ name: 'calculate_lateral_earth_pressure',
423
+ description: 'Calculate lateral earth pressure using Rankine or Coulomb method. Returns Ka/Kp/K0 coefficient, resultant force, point of application, and pressure distribution. For retaining wall design.',
424
+ parameters: {
425
+ type: 'object',
426
+ required: ['wallHeight', 'soilLayers'],
427
+ properties: {
428
+ wallHeight: { type: 'number', description: 'Retaining wall height H (m)' },
429
+ soilLayers: {
430
+ type: 'array',
431
+ description: 'Layers: [{thickness, unitWeight, cohesion, frictionAngle}]',
432
+ items: { type: 'object' },
433
+ },
434
+ method: { type: 'string', enum: ['rankine', 'coulomb'], default: 'rankine' },
435
+ pressureState: { type: 'string', enum: ['active', 'passive', 'at_rest'], default: 'active' },
436
+ wallFrictionAngle: { type: 'number', default: 0, description: 'δ (degrees) — Coulomb' },
437
+ backfillAngle: { type: 'number', default: 0, description: 'β (degrees)' },
438
+ wallInclination: { type: 'number', default: 0, description: 'α (degrees) from vertical' },
439
+ waterTableDepth: { type: 'number', default: 999 },
440
+ surcharge: { type: 'number', default: 0 },
441
+ },
442
+ },
443
+ }, (args) => {
444
+ const result = calculateLateralEarthPressure(args);
445
+ return {
446
+ success: true,
447
+ data: result,
448
+ summary: `Lateral earth pressure (${result.method} ${result.pressureState}): K=${result.coefficient}, F=${result.totalForce} kN/m, M=${result.overturningMoment} kN·m/m`,
449
+ };
450
+ });
451
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/agents/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAoCzB,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,YAAY;IACR,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAElD,QAAQ,CAAC,GAAmB,EAAE,OAAqB;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAA6B;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAC1B,CAAC,CAAC,UAAkB,CAAC,UAAU,IAAI,EAAE,CACvC;iBACE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,CAAE,CAAC,CAAC,UAAkB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC/F,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YACxD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACpD,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,0EAA0E;IAC1E,uBAAuB;QAIrB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB;SACF,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/C,2BAA2B;AAC3B,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,4BAA4B;IAClC,WAAW,EACT,2NAA2N;IAC7N,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;QACpC,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,EAAE;YAClF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;YACjG,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACtE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,EAAE,EAAE,EAAE;YACvF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE;YAC1E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE;YACrI,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE;YACjF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;SAClG;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACtC,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,CAAC;QAClC,KAAK,EAAE,IAAI,CAAC,KAAe;QAC3B,UAAU,EAAG,IAAI,CAAC,UAAqB,IAAI,EAAE;QAC7C,QAAQ,EAAG,IAAI,CAAC,QAAmB,IAAI,CAAC;QACxC,aAAa,EAAE,IAAI,CAAC,aAAuB;QAC3C,MAAM,EAAG,IAAI,CAAC,MAAwB,IAAI,UAAU;QACpD,cAAc,EAAG,IAAI,CAAC,cAAyB,IAAI,GAAG;QACtD,KAAK,EAAG,IAAI,CAAC,KAAuB,IAAI,OAAO;QAC/C,MAAM,EAAE,IAAI,CAAC,MAA4B;KAC1C,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,qBAAqB,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,SAAS,mBAAmB,MAAM,CAAC,UAAU,YAAY,MAAM,CAAC,cAAc,GAAG;KAClJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB;AACvB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,6OAA6O;IAC/O,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC;QAClD,UAAU,EAAE;YACV,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACnF,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YACrE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE;YACtG,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,kFAAkF;gBAC/F,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;wBACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;wBAC7D,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,EAAE;wBACrF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,OAAO,EAAE,EAAE,EAAE;wBACnF,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC,EAAE;qBAC5F;iBACF;aACF;SACF;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAW,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACtG,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,0BAA0B,MAAM,CAAC,MAAM,CAAC,MAAM,sBAAsB,MAAM,iDAAiD,MAAM,CAAC,mBAAmB,KAAK;KACpK,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB;AAChB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,2JAA2J;IAC7J,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;YAC5E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACnF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,GAAG,EAAE;YACzF,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;YACxG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;YACpG,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,EAAE;SACxG;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,aAAa,CAAC,IAAW,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,WAAW,MAAM,CAAC,WAAW,YAAY,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,SAAS,cAAc,MAAM,CAAC,qBAAqB,EAAE;KACtI,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe;AACf,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,4IAA4I;IAC9I,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,CAAC;QAC1D,UAAU,EAAE;YACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;YAC1F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;YACjG,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;YACtF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACvE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;SAChF;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,YAAY,CAAC,IAAW,CAAC,CAAC;IACzC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,GAAG;KACrE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,mBAAmB;AACnB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,iHAAiH;IACnH,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACnC,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;YACnD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACvD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAC9D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,EAAE;YACjF,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,OAAO,EAAE,GAAG,EAAE;SAC9E;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,eAAe,CAAC,IAAW,CAAC,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,qBAAqB,EAAE;KAC/F,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,sBAAsB;AACtB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,sIAAsI;IACxI,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;QACpC,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACnE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACvD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;YACnD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACtE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;YACzE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAC7E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;SAC1F;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAW,CAAC,CAAC;IAClD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,sBAAsB,MAAM,CAAC,eAAe,oBAAoB,MAAM,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,UAAU,IAAI;KAChM,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,qBAAqB;AACrB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,wIAAwI;IAC1I,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;QACpC,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;YACtE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;YAC5F,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC1D,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,EAAE;YAC7F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YAC7E,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;YACrF,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE;YACpF,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE;YACjF,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,KAAK,EAAE;SACjF;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,aAAa,CAAC,IAAW,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,kBAAkB,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,UAAU,uBAAuB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE;KAC7H,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,sBAAsB;AACtB,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,iIAAiI;IACnI,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC;QAC5D,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACtE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;YAClD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,EAAE;YAC9E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YAC/E,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;SAC3E;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAW,CAAC,CAAC;IAC9C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,gBAAgB,MAAM,CAAC,eAAe,UAAU,MAAM,CAAC,iBAAiB,4BAA4B,MAAM,CAAC,kBAAkB,WAAW,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE;KACxL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,4BAA4B;AAC5B,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,2JAA2J;IAC7J,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;QAC3C,UAAU,EAAE;YACV,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YAC9E,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;YACjF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,OAAO,EAAE,GAAG,EAAE;YACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,OAAO,EAAE,GAAG,EAAE;SAC5F;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAW,CAAC,CAAC;IACpD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,2BAA2B,MAAM,CAAC,aAAa,2BAA2B,MAAM,CAAC,eAAe,oBAAoB,MAAM,CAAC,WAAW,IAAI;KACpJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iDAAiD;AACjD,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,yKAAyK;IAC3K,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,CAAC;QACzG,UAAU,EAAE;YACV,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACzE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;YAC5F,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACxE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC7E,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACxE,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACzF,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YAC5F,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC/E,0BAA0B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;SAC7E;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAW,CAAC,CAAC;IACnD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,kBAAkB,MAAM,CAAC,iBAAiB,QAAQ,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;KACtG,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iCAAiC;AACjC,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,kCAAkC;IACxC,WAAW,EACT,sJAAsJ;IACxJ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAC;QACxD,UAAU,EAAE;YACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC5E,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YAC1E,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,0CAA0C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;YAChM,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SAC3C;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAW,CAAC,CAAC;IACjD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,0BAA0B,MAAM,CAAC,mBAAmB,cAAc,MAAM,CAAC,eAAe,KAAK;KACvG,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,kOAAkO;IACpO,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC;QAClD,UAAU,EAAE;YACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAClE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YACjF,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;YAC7F,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,uGAAuG;gBACpH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YACjD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YAChD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;SAC7F;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAW,CAAC,CAAC;IAClD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,kBAAkB,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,gBAAgB,WAAW,MAAM,CAAC,eAAe,OAAO,MAAM,CAAC,cAAc,SAAS,MAAM,CAAC,iBAAiB,WAAW,MAAM,CAAC,cAAc,GAAG;KAC1M,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,mPAAmP;IACrP,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC;QACrD,UAAU,EAAE;YACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAClE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;YACpF,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,4DAA4D;gBACzE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACzC,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE;YACpG,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;SAC5E;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAW,CAAC,CAAC;IACpD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,oBAAoB,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,cAAc,MAAM,MAAM,CAAC,cAAc,wBAAwB,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG;KAC5J,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,YAAY,CAAC,QAAQ,CACnB;IACE,IAAI,EAAE,kCAAkC;IACxC,WAAW,EACT,8LAA8L;IAChM,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACtC,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YAC1E,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,4DAA4D;gBACzE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;YAC5E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC5F,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACvF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE;YACzE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE;YACzF,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;SAC1C;KACF;CACF,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,MAAM,GAAG,6BAA6B,CAAC,IAAW,CAAC,CAAC;IAC1D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,2BAA2B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,QAAQ,MAAM,CAAC,WAAW,OAAO,MAAM,CAAC,UAAU,YAAY,MAAM,CAAC,iBAAiB,SAAS;KACzK,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,52 @@
1
+ export type SoftwareType = 'plaxis' | 'flac' | 'rocscience';
2
+ export interface BridgeStatus {
3
+ software: SoftwareType;
4
+ detected: boolean;
5
+ version?: string;
6
+ host: string;
7
+ port: number;
8
+ error?: string;
9
+ }
10
+ export interface ScriptTemplate {
11
+ software: SoftwareType;
12
+ language: string;
13
+ description: string;
14
+ script: string;
15
+ }
16
+ export declare function detectSoftware(software: SoftwareType, host?: string, port?: number): Promise<BridgeStatus>;
17
+ export declare function generatePLAXISScript(params: {
18
+ modelType: '2d' | '3d';
19
+ soilLayers?: Array<{
20
+ name: string;
21
+ depth: number;
22
+ gamma: number;
23
+ phi: number;
24
+ cohesion: number;
25
+ }>;
26
+ tunnelDepth?: number;
27
+ tunnelRadius?: number;
28
+ }): ScriptTemplate;
29
+ export declare function generateFLACScript(params: {
30
+ gridSize?: {
31
+ x: number;
32
+ y: number;
33
+ };
34
+ soilProperties?: {
35
+ name: string;
36
+ density: number;
37
+ bulk: number;
38
+ shear: number;
39
+ cohesion: number;
40
+ friction: number;
41
+ };
42
+ }): ScriptTemplate;
43
+ export declare function generateRocscienceScript(params: {
44
+ analysisType: 'slope' | 'tunnel' | 'foundation';
45
+ soilLayers?: Array<{
46
+ name: string;
47
+ gamma: number;
48
+ phi: number;
49
+ cohesion: number;
50
+ }>;
51
+ }): ScriptTemplate;
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,YAAY,EACtB,IAAI,SAAc,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAiDvB;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,cAAc,CAuDjB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACrH,GAAG,cAAc,CA4CjB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAChD,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF,GAAG,cAAc,CAsCjB"}