@geotechcli/core 0.2.0 → 0.4.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 (83) hide show
  1. package/dist/agents/brain.d.ts +1 -0
  2. package/dist/agents/brain.d.ts.map +1 -1
  3. package/dist/agents/brain.js +39 -38
  4. package/dist/agents/brain.js.map +1 -1
  5. package/dist/agents/bridge-tools.js +15 -3
  6. package/dist/agents/bridge-tools.js.map +1 -1
  7. package/dist/agents/case-file.d.ts +52 -0
  8. package/dist/agents/case-file.d.ts.map +1 -0
  9. package/dist/agents/case-file.js +657 -0
  10. package/dist/agents/case-file.js.map +1 -0
  11. package/dist/agents/contracts.d.ts +232 -0
  12. package/dist/agents/contracts.d.ts.map +1 -0
  13. package/dist/agents/contracts.js +14 -0
  14. package/dist/agents/contracts.js.map +1 -0
  15. package/dist/agents/data-tools.js +11 -3
  16. package/dist/agents/data-tools.js.map +1 -1
  17. package/dist/agents/deliverable-tools.d.ts +2 -0
  18. package/dist/agents/deliverable-tools.d.ts.map +1 -0
  19. package/dist/agents/deliverable-tools.js +497 -0
  20. package/dist/agents/deliverable-tools.js.map +1 -0
  21. package/dist/agents/evidence.d.ts +21 -0
  22. package/dist/agents/evidence.d.ts.map +1 -0
  23. package/dist/agents/evidence.js +302 -0
  24. package/dist/agents/evidence.js.map +1 -0
  25. package/dist/agents/orchestrator.js +13 -13
  26. package/dist/agents/sandbox.d.ts.map +1 -1
  27. package/dist/agents/sandbox.js +84 -31
  28. package/dist/agents/sandbox.js.map +1 -1
  29. package/dist/agents/swarm.d.ts +2 -0
  30. package/dist/agents/swarm.d.ts.map +1 -1
  31. package/dist/agents/swarm.js +170 -149
  32. package/dist/agents/swarm.js.map +1 -1
  33. package/dist/bridge/index.js +87 -87
  34. package/dist/geo/index.d.ts +2 -1
  35. package/dist/geo/index.d.ts.map +1 -1
  36. package/dist/geo/index.js +1 -0
  37. package/dist/geo/index.js.map +1 -1
  38. package/dist/geo/pile-capacity.d.ts.map +1 -1
  39. package/dist/geo/pile-capacity.js +47 -8
  40. package/dist/geo/pile-capacity.js.map +1 -1
  41. package/dist/geo/seepage.d.ts +62 -0
  42. package/dist/geo/seepage.d.ts.map +1 -0
  43. package/dist/geo/seepage.js +130 -0
  44. package/dist/geo/seepage.js.map +1 -0
  45. package/dist/geo/slope-stability.d.ts.map +1 -1
  46. package/dist/geo/slope-stability.js +9 -6
  47. package/dist/geo/slope-stability.js.map +1 -1
  48. package/dist/index.d.ts +5 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +6 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/llm/middleware/metering.js +14 -14
  53. package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
  54. package/dist/llm/providers/hosted-beta.js +5 -2
  55. package/dist/llm/providers/hosted-beta.js.map +1 -1
  56. package/dist/llm/providers/zhipu.d.ts.map +1 -1
  57. package/dist/llm/providers/zhipu.js +3 -1
  58. package/dist/llm/providers/zhipu.js.map +1 -1
  59. package/dist/llm/util.d.ts +10 -0
  60. package/dist/llm/util.d.ts.map +1 -0
  61. package/dist/llm/util.js +54 -0
  62. package/dist/llm/util.js.map +1 -0
  63. package/dist/meta/metadata.json +4 -4
  64. package/dist/report/casefile.d.ts +207 -0
  65. package/dist/report/casefile.d.ts.map +1 -0
  66. package/dist/report/casefile.js +438 -0
  67. package/dist/report/casefile.js.map +1 -0
  68. package/dist/report/docx.d.ts +3 -0
  69. package/dist/report/docx.d.ts.map +1 -0
  70. package/dist/report/docx.js +178 -0
  71. package/dist/report/docx.js.map +1 -0
  72. package/dist/report/index.d.ts +3 -0
  73. package/dist/report/index.d.ts.map +1 -1
  74. package/dist/report/index.js +23 -20
  75. package/dist/report/index.js.map +1 -1
  76. package/dist/report/pdf.d.ts +3 -0
  77. package/dist/report/pdf.d.ts.map +1 -0
  78. package/dist/report/pdf.js +195 -0
  79. package/dist/report/pdf.js.map +1 -0
  80. package/dist/vision/index.d.ts.map +1 -1
  81. package/dist/vision/index.js +163 -84
  82. package/dist/vision/index.js.map +1 -1
  83. package/package.json +58 -55
@@ -6,48 +6,54 @@ import { extractToolSafetyIssue, serializeContextForPrompt } from './safety.js';
6
6
  import './filesystem-tools.js';
7
7
  import './bridge-tools.js';
8
8
  import './data-tools.js';
9
- const INTERPRETATION_TOOLS = [
10
- 'read_file',
11
- 'list_directory',
12
- 'parse_csv',
13
- 'scan_project',
14
- 'parse_ags',
15
- 'parse_cpt',
16
- 'classify_uscs',
17
- 'classify_rmr89',
18
- 'classify_q_system',
19
- 'query_standards',
20
- 'project_save_dataset',
21
- 'project_save_parameter',
22
- 'project_add_assumption',
23
- ];
24
- const SIMULATION_TOOLS = [
25
- 'calculate_bearing_capacity',
26
- 'calculate_liquefaction',
27
- 'predict_tbm_performance',
28
- 'select_tbm_type',
29
- 'predict_cutter_wear',
30
- 'calculate_tunnel_settlement',
31
- 'calculate_consolidation',
32
- 'calculate_schmertmann_settlement',
33
- 'calculate_pile_capacity',
34
- 'calculate_slope_stability',
35
- 'calculate_lateral_earth_pressure',
36
- 'plaxis_execute',
37
- 'plaxis_get_results',
38
- 'flac3d_execute',
39
- 'rocscience_execute',
40
- 'write_file',
41
- 'project_save_result',
42
- 'project_save_parameter',
43
- 'project_add_artifact',
44
- ];
45
- const REVIEWER_TOOLS = [
46
- 'query_standards',
47
- 'project_load',
48
- 'project_add_assumption',
49
- 'project_add_artifact',
50
- ];
9
+ const ROLE_TOOL_ALLOWLIST = {
10
+ interpretation: [
11
+ 'read_file',
12
+ 'list_directory',
13
+ 'parse_csv',
14
+ 'scan_project',
15
+ 'parse_ags',
16
+ 'parse_cpt',
17
+ 'classify_uscs',
18
+ 'classify_rmr89',
19
+ 'classify_q_system',
20
+ 'query_standards',
21
+ 'project_save_dataset',
22
+ 'project_save_parameter',
23
+ 'project_add_assumption',
24
+ ],
25
+ simulation: [
26
+ 'calculate_bearing_capacity',
27
+ 'calculate_liquefaction',
28
+ 'predict_tbm_performance',
29
+ 'select_tbm_type',
30
+ 'predict_cutter_wear',
31
+ 'calculate_tunnel_settlement',
32
+ 'calculate_consolidation',
33
+ 'calculate_schmertmann_settlement',
34
+ 'calculate_pile_capacity',
35
+ 'calculate_slope_stability',
36
+ 'calculate_lateral_earth_pressure',
37
+ 'plaxis_execute',
38
+ 'plaxis_get_results',
39
+ 'flac3d_execute',
40
+ 'rocscience_execute',
41
+ 'write_file',
42
+ 'project_save_result',
43
+ 'project_save_parameter',
44
+ 'project_add_artifact',
45
+ ],
46
+ reviewer: [
47
+ 'query_standards',
48
+ 'project_load',
49
+ ],
50
+ };
51
+ export function getAllowedToolsForAgent(agent) {
52
+ return agent === 'orchestrator' ? [] : ROLE_TOOL_ALLOWLIST[agent];
53
+ }
54
+ export function isToolAllowedForAgent(agent, toolName) {
55
+ return getAllowedToolsForAgent(agent).includes(toolName);
56
+ }
51
57
  function getToolDescriptionsFor(toolNames) {
52
58
  return toolRegistry
53
59
  .list()
@@ -61,122 +67,122 @@ function getToolDescriptionsFor(toolNames) {
61
67
  .join('\n\n');
62
68
  }
63
69
  function interpretationPrompt() {
64
- return `You are the INTERPRETATION AGENT in geotechCLI's multi-agent system.
65
-
66
- YOUR ROLE: Clean, parse, classify, and structure raw geotechnical data.
67
-
68
- YOU HANDLE:
69
- - Reading borehole logs, AGS files, CPT data from disk
70
- - Classifying soils (USCS, AASHTO) and rocks (RMR, Q-system)
71
- - Parsing CSV sensor data and site investigation reports
72
- - Scanning project directories to inventory available data
73
- - Looking up relevant standards for classification methods
74
- - Saving structured datasets, derived parameters, and assumptions into project memory when a project context is available
75
-
76
- YOUR TOOLS:
77
- ${getToolDescriptionsFor(INTERPRETATION_TOOLS)}
78
-
79
- RULES:
80
- - Call tools to do real work; never estimate or guess data values.
81
- - If a tool result indicates canAutoProceed=false or low-confidence parsing, stop automatic handoff from that output until you retry or clearly mark the limitation.
82
- - When you derive reusable structured data or assumptions for a project, persist them with project memory tools.
83
- - After processing all data, output a structured summary in this format:
84
-
85
- \`\`\`handoff
86
- {"to": "simulation", "data": {<structured data for the simulation agent>}, "summary": "<what you found>"}
87
- \`\`\`
88
-
89
- To call a tool:
90
- \`\`\`tool
91
- {"tool": "<name>", "args": {<params>}}
70
+ return `You are the INTERPRETATION AGENT in geotechCLI's multi-agent system.
71
+
72
+ YOUR ROLE: Clean, parse, classify, and structure raw geotechnical data.
73
+
74
+ YOU HANDLE:
75
+ - Reading borehole logs, AGS files, CPT data from disk
76
+ - Classifying soils (USCS, AASHTO) and rocks (RMR, Q-system)
77
+ - Parsing CSV sensor data and site investigation reports
78
+ - Scanning project directories to inventory available data
79
+ - Looking up relevant standards for classification methods
80
+ - Saving structured datasets, derived parameters, and assumptions into project memory when a project context is available
81
+
82
+ YOUR TOOLS:
83
+ ${getToolDescriptionsFor(ROLE_TOOL_ALLOWLIST.interpretation)}
84
+
85
+ RULES:
86
+ - Call tools to do real work; never estimate or guess data values.
87
+ - If a tool result indicates canAutoProceed=false or low-confidence parsing, stop automatic handoff from that output until you retry or clearly mark the limitation.
88
+ - When you derive reusable structured data or assumptions for a project, persist them with project memory tools.
89
+ - After processing all data, output a structured summary in this format:
90
+
91
+ \`\`\`handoff
92
+ {"to": "simulation", "data": {<structured data for the simulation agent>}, "summary": "<what you found>"}
93
+ \`\`\`
94
+
95
+ To call a tool:
96
+ \`\`\`tool
97
+ {"tool": "<name>", "args": {<params>}}
92
98
  \`\`\``;
93
99
  }
94
100
  function simulationPrompt() {
95
- return `You are the SIMULATION AGENT in geotechCLI's multi-agent system.
96
-
97
- YOUR ROLE: Execute engineering calculations and numerical simulations.
98
-
99
- YOU RECEIVE: Structured data from the Interpretation Agent (soil profiles, classification results, parameters).
100
-
101
- YOU HANDLE:
102
- - Bearing capacity calculations (Terzaghi, Meyerhof, Hansen, Vesic)
103
- - Liquefaction triggering analysis (Boulanger & Idriss 2014)
104
- - TBM performance prediction, type selection, cutter wear
105
- - Tunnel settlement calculation (Peck)
106
- - Sending commands to PLAXIS/FLAC/Rocscience
107
- - Saving results, derived parameters, and output artifacts to persistent project storage
108
-
109
- YOUR TOOLS:
110
- ${getToolDescriptionsFor(SIMULATION_TOOLS)}
111
-
112
- RULES:
113
- - Use the data provided by the Interpretation Agent; do not re-read files.
114
- - Run ALL relevant calculations for the task.
115
- - If an upstream or tool result is blocked, incomplete, or low confidence, do not continue blindly. Retry, use a safer alternative, or pass the limitation to the reviewer.
116
- - Save significant reusable outputs back into project memory when a project context is available.
117
- - After completing calculations, output a handoff to the Reviewer:
118
-
119
- \`\`\`handoff
120
- {"to": "reviewer", "results": {<all calculation results>}, "summary": "<what was calculated>"}
121
- \`\`\`
122
-
123
- To call a tool:
124
- \`\`\`tool
125
- {"tool": "<name>", "args": {<params>}}
101
+ return `You are the SIMULATION AGENT in geotechCLI's multi-agent system.
102
+
103
+ YOUR ROLE: Execute engineering calculations and numerical simulations.
104
+
105
+ YOU RECEIVE: Structured data from the Interpretation Agent (soil profiles, classification results, parameters).
106
+
107
+ YOU HANDLE:
108
+ - Bearing capacity calculations (Terzaghi, Meyerhof, Hansen, Vesic)
109
+ - Liquefaction triggering analysis (Boulanger & Idriss 2014)
110
+ - TBM performance prediction, type selection, cutter wear
111
+ - Tunnel settlement calculation (Peck)
112
+ - Sending commands to PLAXIS/FLAC/Rocscience
113
+ - Saving results, derived parameters, and output artifacts to persistent project storage
114
+
115
+ YOUR TOOLS:
116
+ ${getToolDescriptionsFor(ROLE_TOOL_ALLOWLIST.simulation)}
117
+
118
+ RULES:
119
+ - Use the data provided by the Interpretation Agent; do not re-read files.
120
+ - Run ALL relevant calculations for the task.
121
+ - If an upstream or tool result is blocked, incomplete, or low confidence, do not continue blindly. Retry, use a safer alternative, or pass the limitation to the reviewer.
122
+ - Save significant reusable outputs back into project memory when a project context is available.
123
+ - After completing calculations, output a handoff to the Reviewer:
124
+
125
+ \`\`\`handoff
126
+ {"to": "reviewer", "results": {<all calculation results>}, "summary": "<what was calculated>"}
127
+ \`\`\`
128
+
129
+ To call a tool:
130
+ \`\`\`tool
131
+ {"tool": "<name>", "args": {<params>}}
126
132
  \`\`\``;
127
133
  }
128
134
  function reviewerPrompt() {
129
- return `You are the REVIEWER AGENT in geotechCLI's multi-agent system.
130
-
131
- YOUR ROLE: Safety check, sanity check, and standards compliance review.
132
-
133
- YOU RECEIVE: Calculation results from the Simulation Agent.
134
-
135
- YOU CHECK:
136
- 1. SAFETY FACTORS: Are FOS values above code minimums?
137
- 2. PHYSICAL SANITY: Are values within physically reasonable ranges?
138
- 3. STANDARDS COMPLIANCE: Do methods used match the applicable standard?
139
- 4. PARAMETER CONSISTENCY: Are input parameters consistent with each other?
140
- 5. COMPLETENESS: Were all necessary checks performed?
141
- 6. PARSE SAFETY: If any upstream result includes parseStatus/confidence/warnings or canAutoProceed=false, flag it explicitly and reject automatic conclusions that depend on that output.
142
-
143
- YOUR TOOLS:
144
- ${getToolDescriptionsFor(REVIEWER_TOOLS)}
145
-
146
- OUTPUT FORMAT - you MUST output exactly one of:
147
-
148
- If everything passes:
149
- \`\`\`review
150
- {"verdict": "APPROVED", "notes": ["<any advisory notes>"], "confidence": <0-100>}
151
- \`\`\`
152
-
153
- If issues found:
154
- \`\`\`review
155
- {"verdict": "REJECTED", "issues": ["<specific issue 1>", "<issue 2>"], "corrections": ["<what simulation agent should fix>"], "confidence": <0-100>}
156
- \`\`\`
157
-
158
- To call a tool:
159
- \`\`\`tool
160
- {"tool": "<name>", "args": {<params>}}
135
+ return `You are the REVIEWER AGENT in geotechCLI's multi-agent system.
136
+
137
+ YOUR ROLE: Safety check, sanity check, and standards compliance review.
138
+
139
+ YOU RECEIVE: Calculation results from the Simulation Agent.
140
+
141
+ YOU CHECK:
142
+ 1. SAFETY FACTORS: Are FOS values above code minimums?
143
+ 2. PHYSICAL SANITY: Are values within physically reasonable ranges?
144
+ 3. STANDARDS COMPLIANCE: Do methods used match the applicable standard?
145
+ 4. PARAMETER CONSISTENCY: Are input parameters consistent with each other?
146
+ 5. COMPLETENESS: Were all necessary checks performed?
147
+ 6. PARSE SAFETY: If any upstream result includes parseStatus/confidence/warnings or canAutoProceed=false, flag it explicitly and reject automatic conclusions that depend on that output.
148
+
149
+ YOUR TOOLS:
150
+ ${getToolDescriptionsFor(ROLE_TOOL_ALLOWLIST.reviewer)}
151
+
152
+ OUTPUT FORMAT - you MUST output exactly one of:
153
+
154
+ If everything passes:
155
+ \`\`\`review
156
+ {"verdict": "APPROVED", "notes": ["<any advisory notes>"], "confidence": <0-100>}
157
+ \`\`\`
158
+
159
+ If issues found:
160
+ \`\`\`review
161
+ {"verdict": "REJECTED", "issues": ["<specific issue 1>", "<issue 2>"], "corrections": ["<what simulation agent should fix>"], "confidence": <0-100>}
162
+ \`\`\`
163
+
164
+ To call a tool:
165
+ \`\`\`tool
166
+ {"tool": "<name>", "args": {<params>}}
161
167
  \`\`\``;
162
168
  }
163
169
  function orchestratorPrompt() {
164
- return `You are the SWARM ORCHESTRATOR for geotechCLI.
165
-
166
- You coordinate three specialist agents:
167
- 1. INTERPRETATION AGENT - reads data, classifies soils/rocks, structures input
168
- 2. SIMULATION AGENT - runs calculations, executes numerical models
169
- 3. REVIEWER AGENT - safety checks, standards compliance, sanity validation
170
-
171
- For the given task, produce the FINAL engineering report by synthesizing all agent outputs.
172
-
173
- If the Reviewer rejected results, incorporate the corrections and note the issues that were found and resolved.
174
-
175
- Produce a comprehensive, professional engineering report with:
176
- - Data summary
177
- - Calculation results with key numbers
178
- - Review status, confidence, and any advisory notes
179
- - Explicit limitations where blocked low-confidence outputs prevented automatic conclusions
170
+ return `You are the SWARM ORCHESTRATOR for geotechCLI.
171
+
172
+ You coordinate three specialist agents:
173
+ 1. INTERPRETATION AGENT - reads data, classifies soils/rocks, structures input
174
+ 2. SIMULATION AGENT - runs calculations, executes numerical models
175
+ 3. REVIEWER AGENT - safety checks, standards compliance, sanity validation
176
+
177
+ For the given task, produce the FINAL engineering report by synthesizing all agent outputs.
178
+
179
+ If the Reviewer rejected results, incorporate the corrections and note the issues that were found and resolved.
180
+
181
+ Produce a comprehensive, professional engineering report with:
182
+ - Data summary
183
+ - Calculation results with key numbers
184
+ - Review status, confidence, and any advisory notes
185
+ - Explicit limitations where blocked low-confidence outputs prevented automatic conclusions
180
186
  - Final recommendations`;
181
187
  }
182
188
  async function runAgentLoop(input, config, systemPrompt, agentName, onStep, maxIter = 8) {
@@ -235,6 +241,21 @@ async function runAgentLoop(input, config, systemPrompt, agentName, onStep, maxI
235
241
  });
236
242
  continue;
237
243
  }
244
+ if (!isToolAllowedForAgent(agentName, call.tool)) {
245
+ const allowedTools = getAllowedToolsForAgent(agentName);
246
+ onStep({
247
+ agent: agentName,
248
+ type: 'error',
249
+ content: `Blocked by role allowlist: ${call.tool}`,
250
+ toolName: call.tool,
251
+ timestamp: Date.now(),
252
+ });
253
+ messages.push({
254
+ role: 'user',
255
+ content: `[Role Allowlist Blocked: ${call.tool}]\nThe ${agentName} agent is not allowed to execute this tool.\nAllowed tools: ${allowedTools.length > 0 ? allowedTools.join(', ') : 'none'}.\nChoose an allowed tool or continue without tool use.`,
256
+ });
257
+ continue;
258
+ }
238
259
  const result = await toolRegistry.execute(call.tool, call.args);
239
260
  onStep({
240
261
  agent: agentName,
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/agents/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../src/agents/swarm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAEhF,kCAAkC;AAClC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,iBAAiB,CAAC;AAuBzB,MAAM,mBAAmB,GAAG;IAC1B,cAAc,EAAE;QACd,WAAW;QACX,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,WAAW;QACX,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,iBAAiB;QACjB,sBAAsB;QACtB,wBAAwB;QACxB,wBAAwB;KACzB;IACD,UAAU,EAAE;QACV,4BAA4B;QAC5B,wBAAwB;QACxB,yBAAyB;QACzB,iBAAiB;QACjB,qBAAqB;QACrB,6BAA6B;QAC7B,yBAAyB;QACzB,kCAAkC;QAClC,yBAAyB;QACzB,2BAA2B;QAC3B,kCAAkC;QAClC,gBAAgB;QAChB,oBAAoB;QACpB,gBAAgB;QAChB,oBAAoB;QACpB,YAAY;QACZ,qBAAqB;QACrB,wBAAwB;QACxB,sBAAsB;KACvB;IACD,QAAQ,EAAE;QACR,iBAAiB;QACjB,cAAc;KACf;CACO,CAAC;AAIX,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAsB,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAyB,EAAE,QAAgB;IAC/E,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,sBAAsB,CAAC,SAA4B;IAC1D,OAAO,YAAY;SAChB,IAAI,EAAE;SACN,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAE,IAAI,CAAC,UAAkB,CAAC,UAAU,IAAI,EAAE,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE,CAAC,SAAS,GAAG,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;aACxF,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;IAC1D,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;;;;;;;;;;;EAaP,sBAAsB,CAAC,mBAAmB,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;OAerD,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;;;;;;;;;;;;;;;EAeP,sBAAsB,CAAC,mBAAmB,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;OAgBjD,CAAC;AACR,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;;;;;;;;;;;;;;;EAeP,sBAAsB,CAAC,mBAAmB,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;OAiB/C,CAAC;AACR,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;;;;;;;;;;;;;wBAgBe,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,MAAiB,EACjB,YAAoB,EACpB,SAA6B,EAC7B,MAAqB,EACrB,OAAO,GAAG,CAAC;IAEX,MAAM,QAAQ,GAAsE;QAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KACjC,CAAC;IAEF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE;gBAC9C,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAC9F,CAAC;QAED,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1C,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzF,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAoD,CAAC;gBACzF,MAAM,CAAC;oBACL,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;oBACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM,CAAC;wBACL,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,sBAAsB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACrJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,uBAAuB,IAAI,CAAC,IAAI,MAAM,OAAO,iCAAiC;qBACxF,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBACxD,MAAM,CAAC;wBACL,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,8BAA8B,IAAI,CAAC,IAAI,EAAE;wBAClD,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,4BAA4B,IAAI,CAAC,IAAI,UAAU,SAAS,+DAA+D,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,yDAAyD;qBACpP,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM,CAAC;oBACL,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE;oBACnE,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,UAAU,EAAE,MAAM;oBAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,iBAAiB,IAAI,CAAC,IAAI,aAAa,MAAM,CAAC,KAAK,6BAA6B;qBAC1F,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEjC,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,CAAC;wBACL,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,6BAA6B,WAAW,CAAC,OAAO,EAAE;wBACvE,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,UAAU,EAAE,MAAM;wBAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,kBAAkB,IAAI,CAAC,IAAI,MAAM,WAAW,CAAC,OAAO,eAAe,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,oJAAoJ;qBAC1Q,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,OAAO,GACX,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC1F,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,iBAAiB,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,WAAW,OAAO,yBAAyB;iBACnG,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;YACvF,CAAC;YAED,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAClE,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,WAAW,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAC/E,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,+BAA+B,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1G,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,MAAiB,EACjB,MAAqB,EACrB,cAAwC;IAExC,MAAM,OAAO,GAAiB;QAC5B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE;QACtC,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,6BAA6B,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnG,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEzH,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,GAAG,YAAY,SAAS,IAAI,oEAAoE,EAChG,MAAM,EACN,oBAAoB,EAAE,EACtB,gBAAgB,EAChB,SAAS,CACV,CAAC;IAEF,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC,OAAO,CAAC;IAC/C,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;IAE/E,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/C,SAAS,CAAC;gBACR,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,0BAA0B,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE;gBACzD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,SAAS,CAAC;YACR,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,8BAA8B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE;YACnG,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,kDAAkD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD;YACnI,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,GAAG,YAAY,oCAAoC,UAAU,sBAAsB,IAAI,GAAG,cAAc,qCAAqC,EAC7I,MAAM,EACN,gBAAgB,EAAE,EAClB,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QACxC,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC,OAAO,CAAC;QAC5C,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QACxE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QAE7B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC9E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC/C,SAAS,CAAC;oBACR,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,wBAAwB,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE;oBACvD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnH,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,GAAG,YAAY,kBAAkB,IAAI,gCAAgC,UAAU,4BAA4B,OAAO,sFAAsF,EACxM,MAAM,EACN,cAAc,EAAE,EAChB,UAAU,EACV,SAAS,CACV,CAAC;QAEF,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC;QAC3C,OAAO,CAAC,cAAc,IAAI,YAAY,CAAC,OAAO,CAAC;QAE/C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,SAAS,CAAC;gBACR,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC1C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5B,SAAS,CAAC;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,yBAAyB,OAAO,CAAC,UAAU,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;oBACrH,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAChD,SAAS,CAAC;gBACR,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjH,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YAEH,IAAI,KAAK,KAAK,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBACpC,SAAS,CAAC;oBACR,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,0DAA0D;oBACnE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,SAAS,CAAC;gBACR,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC1C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YACH,MAAM;QACR,CAAC;IACH,CAAC;IAED,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,4CAA4C,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEpI,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,GAAG,YAAY,SAAS,IAAI,+BAA+B,UAAU,2BAA2B,SAAS,sBAAsB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,0BAA0B,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,8CAA8C,EACxU,MAAM,EACN,EAAE,YAAY,EAAE,kBAAkB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAC1E,CAAC;IAEF,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;IACrD,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC,SAAS,CAAC;IAChD,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEvG,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -69,44 +69,44 @@ export function generatePLAXISScript(params) {
69
69
  { name: 'Clay', depth: 8, gamma: 18, phi: 28, cohesion: 20 },
70
70
  { name: 'Sand', depth: 15, gamma: 19, phi: 33, cohesion: 0 },
71
71
  ];
72
- const layerCode = layers.map((l, i) => `
73
- # Layer ${i + 1}: ${l.name}
74
- mat_${i + 1} = g_i.soilmat()
75
- mat_${i + 1}.Identification = "${l.name}"
76
- mat_${i + 1}.SoilModel = "Mohr-Coulomb"
77
- mat_${i + 1}.gammaUnsat = ${l.gamma}
78
- mat_${i + 1}.gammaSat = ${l.gamma + 2}
79
- mat_${i + 1}.cref = ${l.cohesion}
80
- mat_${i + 1}.phi = ${l.phi}
72
+ const layerCode = layers.map((l, i) => `
73
+ # Layer ${i + 1}: ${l.name}
74
+ mat_${i + 1} = g_i.soilmat()
75
+ mat_${i + 1}.Identification = "${l.name}"
76
+ mat_${i + 1}.SoilModel = "Mohr-Coulomb"
77
+ mat_${i + 1}.gammaUnsat = ${l.gamma}
78
+ mat_${i + 1}.gammaSat = ${l.gamma + 2}
79
+ mat_${i + 1}.cref = ${l.cohesion}
80
+ mat_${i + 1}.phi = ${l.phi}
81
81
  g_i.Soils[${i}].Material = mat_${i + 1}`).join('\n');
82
- const tunnelCode = params.tunnelDepth ? `
83
- # Tunnel
84
- g_i.tunnel(${params.tunnelDepth}, ${params.tunnelRadius ?? 5})
82
+ const tunnelCode = params.tunnelDepth ? `
83
+ # Tunnel
84
+ g_i.tunnel(${params.tunnelDepth}, ${params.tunnelRadius ?? 5})
85
85
  ` : '';
86
- const script = `# Auto-generated by geotechCLI for PLAXIS ${params.modelType.toUpperCase()}
87
- # Execute in PLAXIS Python scripting console
88
- from plxscripting.easy import new_server
89
-
90
- s_i, g_i = new_server('localhost', ${DEFAULT_PORTS.plaxis}, timeout=30)
91
- s_i.new()
92
-
93
- # Model geometry
94
- g_i.SoilContour.initializerectangular(-50, 0, 50, -30)
95
- ${layerCode}
96
- ${tunnelCode}
97
- # Mesh generation
98
- g_i.gotomesh()
99
- g_i.mesh(0.06) # Fine mesh
100
-
101
- # Calculation phases
102
- g_i.gotostages()
103
- g_i.phase(g_i.InitialPhase)
104
- g_i.set(g_i.Phase_1.DeformCalcType, "LoadAdvanced")
105
- g_i.calculate()
106
-
107
- # Extract results
108
- print(f"Max displacement: {g_i.getresults(g_i.Phase_1, g_i.ResultTypes.Soil.Utot, 'max'):.4f} m")
109
- print(f"Max stress: {g_i.getresults(g_i.Phase_1, g_i.ResultTypes.Soil.SigmaXXeff, 'min'):.2f} kPa")
86
+ const script = `# Auto-generated by geotechCLI for PLAXIS ${params.modelType.toUpperCase()}
87
+ # Execute in PLAXIS Python scripting console
88
+ from plxscripting.easy import new_server
89
+
90
+ s_i, g_i = new_server('localhost', ${DEFAULT_PORTS.plaxis}, timeout=30)
91
+ s_i.new()
92
+
93
+ # Model geometry
94
+ g_i.SoilContour.initializerectangular(-50, 0, 50, -30)
95
+ ${layerCode}
96
+ ${tunnelCode}
97
+ # Mesh generation
98
+ g_i.gotomesh()
99
+ g_i.mesh(0.06) # Fine mesh
100
+
101
+ # Calculation phases
102
+ g_i.gotostages()
103
+ g_i.phase(g_i.InitialPhase)
104
+ g_i.set(g_i.Phase_1.DeformCalcType, "LoadAdvanced")
105
+ g_i.calculate()
106
+
107
+ # Extract results
108
+ print(f"Max displacement: {g_i.getresults(g_i.Phase_1, g_i.ResultTypes.Soil.Utot, 'max'):.4f} m")
109
+ print(f"Max stress: {g_i.getresults(g_i.Phase_1, g_i.ResultTypes.Soil.SigmaXXeff, 'min'):.2f} kPa")
110
110
  `;
111
111
  return {
112
112
  software: 'plaxis',
@@ -120,36 +120,36 @@ export function generateFLACScript(params) {
120
120
  const soil = params.soilProperties ?? {
121
121
  name: 'Clay', density: 1800, bulk: 2e8, shear: 1e8, cohesion: 20e3, friction: 28,
122
122
  };
123
- const script = `; Auto-generated by geotechCLI for FLAC
124
- ; Execute in FLAC command window
125
-
126
- model new
127
- model title 'geotechCLI Generated Model'
128
-
129
- ; Grid
130
- zone create brick size ${grid.x} ${grid.y} 1
131
-
132
- ; Material: ${soil.name}
133
- zone cmodel assign mohr-coulomb
134
- zone property density ${soil.density} bulk ${soil.bulk} shear ${soil.shear}
135
- zone property cohesion ${soil.cohesion} friction ${soil.friction}
136
-
137
- ; Boundary conditions
138
- zone face apply velocity-normal 0 range position-x 0
139
- zone face apply velocity-normal 0 range position-x ${grid.x}
140
- zone face apply velocity (0,0,0) range position-z 0
141
-
142
- ; Gravity
143
- model gravity 0 0 -9.81
144
-
145
- ; Initial stresses (K0 = 0.5)
146
- zone initialize-stresses ratio 0.5
147
-
148
- ; Solve
149
- model solve ratio-local 1e-4
150
-
151
- ; Output
152
- model save 'geotechcli_output.sav'
123
+ const script = `; Auto-generated by geotechCLI for FLAC
124
+ ; Execute in FLAC command window
125
+
126
+ model new
127
+ model title 'geotechCLI Generated Model'
128
+
129
+ ; Grid
130
+ zone create brick size ${grid.x} ${grid.y} 1
131
+
132
+ ; Material: ${soil.name}
133
+ zone cmodel assign mohr-coulomb
134
+ zone property density ${soil.density} bulk ${soil.bulk} shear ${soil.shear}
135
+ zone property cohesion ${soil.cohesion} friction ${soil.friction}
136
+
137
+ ; Boundary conditions
138
+ zone face apply velocity-normal 0 range position-x 0
139
+ zone face apply velocity-normal 0 range position-x ${grid.x}
140
+ zone face apply velocity (0,0,0) range position-z 0
141
+
142
+ ; Gravity
143
+ model gravity 0 0 -9.81
144
+
145
+ ; Initial stresses (K0 = 0.5)
146
+ zone initialize-stresses ratio 0.5
147
+
148
+ ; Solve
149
+ model solve ratio-local 1e-4
150
+
151
+ ; Output
152
+ model save 'geotechcli_output.sav'
153
153
  `;
154
154
  return {
155
155
  software: 'flac',
@@ -162,28 +162,28 @@ export function generateRocscienceScript(params) {
162
162
  const layers = params.soilLayers ?? [
163
163
  { name: 'Soil', gamma: 18, phi: 30, cohesion: 10 },
164
164
  ];
165
- const materialDefs = layers.map((l, i) => `mat${i} = model.AddMaterial("${l.name}")
166
- mat${i}.UnitWeight = ${l.gamma}
167
- mat${i}.FrictionAngle = ${l.phi}
165
+ const materialDefs = layers.map((l, i) => `mat${i} = model.AddMaterial("${l.name}")
166
+ mat${i}.UnitWeight = ${l.gamma}
167
+ mat${i}.FrictionAngle = ${l.phi}
168
168
  mat${i}.Cohesion = ${l.cohesion}`).join('\n');
169
- const script = `# Auto-generated by geotechCLI for Rocscience RS2/Slide
170
- # Execute in Rocscience scripting console
171
- import rs2
172
-
173
- model = rs2.RS2Model()
174
- model.SetTitle("geotechCLI Generated Model")
175
-
176
- # Materials
177
- ${materialDefs}
178
-
179
- # Analysis
180
- model.SetAnalysisType("${params.analysisType}")
181
- model.Compute()
182
-
183
- # Results
184
- results = model.GetResults()
185
- print(f"Factor of Safety: {results.GetMinFOS():.3f}")
186
- print(f"Critical surface: {results.GetCriticalSurface()}")
169
+ const script = `# Auto-generated by geotechCLI for Rocscience RS2/Slide
170
+ # Execute in Rocscience scripting console
171
+ import rs2
172
+
173
+ model = rs2.RS2Model()
174
+ model.SetTitle("geotechCLI Generated Model")
175
+
176
+ # Materials
177
+ ${materialDefs}
178
+
179
+ # Analysis
180
+ model.SetAnalysisType("${params.analysisType}")
181
+ model.Compute()
182
+
183
+ # Results
184
+ results = model.GetResults()
185
+ print(f"Factor of Safety: {results.GetMinFOS():.3f}")
186
+ print(f"Critical surface: {results.GetCriticalSurface()}")
187
187
  `;
188
188
  return {
189
189
  software: 'rocscience',
@@ -1,9 +1,10 @@
1
1
  export { calculateBearingCapacity, type BearingCapacityResult, type BearingCapacityInput } from './bearing-capacity.js';
2
2
  export { classifyUSCS, classifyRMR89, classifyQSystem, type USCSResult, type RMR89Result, type QSystemResult } from './classification.js';
3
3
  export { calculateLiquefaction, type LiquefactionResult } from './liquefaction.js';
4
- export { calculateConsolidation, calculateSchmertmann, calculatePeckSettlement, type ConsolidationResult, type SchmertmannResult, type PeckSettlementResult, } from './settlement.js';
4
+ export { calculateConsolidation, calculateSchmertmann, calculatePeckSettlement, type ConsolidationInput, type ConsolidationResult, type SchmertmannInput, type SchmertmannResult, type PeckSettlementInput, type PeckSettlementResult, } from './settlement.js';
5
5
  export { predictTBMPerformance, selectTBMType, predictCutterWear } from './tunnel/index.js';
6
6
  export { calculatePileCapacity, type PileCapacityResult, type PileCapacityInput } from './pile-capacity.js';
7
7
  export { calculateSlopeStability, type SlopeStabilityResult, type SlopeStabilityInput } from './slope-stability.js';
8
8
  export { calculateLateralEarthPressure, type LateralEarthPressureResult, type LateralEarthPressureInput } from './lateral-earth-pressure.js';
9
+ export { calculateDupuitSeepage, calculateFlowNetSeepage, type DupuitSeepageInput, type FlowNetSeepageInput, type SeepageResult, } from './seepage.js';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7I,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
package/dist/geo/index.js CHANGED
@@ -6,4 +6,5 @@ export { predictTBMPerformance, selectTBMType, predictCutterWear } from './tunne
6
6
  export { calculatePileCapacity } from './pile-capacity.js';
7
7
  export { calculateSlopeStability } from './slope-stability.js';
8
8
  export { calculateLateralEarthPressure } from './lateral-earth-pressure.js';
9
+ export { calculateDupuitSeepage, calculateFlowNetSeepage, } from './seepage.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyD,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAyD,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GAIxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAmD,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAuD,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAmE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyD,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAyD,MAAM,qBAAqB,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAA2B,MAAM,mBAAmB,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GAOxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAmD,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAuD,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAmE,MAAM,6BAA6B,CAAC;AAC7I,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAIxB,MAAM,cAAc,CAAC"}