agentlang 0.2.6 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +315 -39
  2. package/out/api/http.d.ts.map +1 -1
  3. package/out/api/http.js +5 -3
  4. package/out/api/http.js.map +1 -1
  5. package/out/extension/main.cjs +85 -63
  6. package/out/extension/main.cjs.map +3 -3
  7. package/out/language/agentlang-validator.d.ts.map +1 -1
  8. package/out/language/agentlang-validator.js +24 -4
  9. package/out/language/agentlang-validator.js.map +1 -1
  10. package/out/language/generated/ast.d.ts +58 -7
  11. package/out/language/generated/ast.d.ts.map +1 -1
  12. package/out/language/generated/ast.js +83 -1
  13. package/out/language/generated/ast.js.map +1 -1
  14. package/out/language/generated/grammar.d.ts.map +1 -1
  15. package/out/language/generated/grammar.js +537 -216
  16. package/out/language/generated/grammar.js.map +1 -1
  17. package/out/language/main.cjs +657 -264
  18. package/out/language/main.cjs.map +2 -2
  19. package/out/runtime/agents/common.d.ts +11 -0
  20. package/out/runtime/agents/common.d.ts.map +1 -1
  21. package/out/runtime/agents/common.js +61 -1
  22. package/out/runtime/agents/common.js.map +1 -1
  23. package/out/runtime/exec-graph.d.ts.map +1 -1
  24. package/out/runtime/exec-graph.js +1 -7
  25. package/out/runtime/exec-graph.js.map +1 -1
  26. package/out/runtime/interpreter.d.ts.map +1 -1
  27. package/out/runtime/interpreter.js +45 -17
  28. package/out/runtime/interpreter.js.map +1 -1
  29. package/out/runtime/loader.d.ts +3 -4
  30. package/out/runtime/loader.d.ts.map +1 -1
  31. package/out/runtime/loader.js +91 -12
  32. package/out/runtime/loader.js.map +1 -1
  33. package/out/runtime/module.d.ts +34 -5
  34. package/out/runtime/module.d.ts.map +1 -1
  35. package/out/runtime/module.js +190 -18
  36. package/out/runtime/module.js.map +1 -1
  37. package/out/runtime/modules/ai.d.ts.map +1 -1
  38. package/out/runtime/modules/ai.js +15 -6
  39. package/out/runtime/modules/ai.js.map +1 -1
  40. package/out/runtime/modules/auth.d.ts.map +1 -1
  41. package/out/runtime/modules/auth.js +42 -43
  42. package/out/runtime/modules/auth.js.map +1 -1
  43. package/out/runtime/modules/core.js +1 -1
  44. package/out/runtime/modules/files.d.ts +18 -0
  45. package/out/runtime/modules/files.d.ts.map +1 -0
  46. package/out/runtime/modules/files.js +116 -0
  47. package/out/runtime/modules/files.js.map +1 -0
  48. package/out/runtime/util.d.ts +3 -1
  49. package/out/runtime/util.d.ts.map +1 -1
  50. package/out/runtime/util.js +16 -0
  51. package/out/runtime/util.js.map +1 -1
  52. package/out/syntaxes/agentlang.monarch.js +1 -1
  53. package/out/syntaxes/agentlang.monarch.js.map +1 -1
  54. package/package.json +182 -201
  55. package/src/api/http.ts +5 -3
  56. package/src/language/agentlang-validator.ts +29 -4
  57. package/src/language/agentlang.langium +15 -3
  58. package/src/language/generated/ast.ts +149 -7
  59. package/src/language/generated/grammar.ts +537 -216
  60. package/src/runtime/agents/common.ts +69 -1
  61. package/src/runtime/exec-graph.ts +1 -8
  62. package/src/runtime/interpreter.ts +47 -16
  63. package/src/runtime/loader.ts +105 -9
  64. package/src/runtime/module.ts +213 -24
  65. package/src/runtime/modules/ai.ts +12 -5
  66. package/src/runtime/modules/auth.ts +42 -43
  67. package/src/runtime/modules/core.ts +1 -1
  68. package/src/runtime/util.ts +19 -0
  69. package/src/syntaxes/agentlang.monarch.ts +1 -1
  70. package/src/setupClassic.ts +0 -43
  71. package/src/setupCommon.ts +0 -33
  72. package/src/setupExtended.ts +0 -79
package/README.md CHANGED
@@ -1,74 +1,334 @@
1
- <div align="center">
1
+ <div>
2
+ <p>
3
+ <a href="https://zdoc.app/ja/agentlang-ai/agentlang">日本語</a> |
4
+ <a href="https://zdoc.app/es/agentlang-ai/agentlang">Español</a> |
5
+ <a href="https://zdoc.app/fr/agentlang-ai/agentlang">français</a> |
6
+ <a href="https://zdoc.app/de/agentlang-ai/agentlang">Deutsch</a> |
7
+ <a href="https://zdoc.app/pt/agentlang-ai/agentlang">Português</a> |
8
+ <a href="https://zdoc.app/ru/agentlang-ai/agentlang">Русский</a> |
9
+ <a href="https://zdoc.app/ko/agentlang-ai/agentlang">한국어</a> |
10
+ <a href="https://zdoc.app/zh/agentlang-ai/agentlang">中文</a>
11
+ </p>
2
12
 
3
- # AgentLang - Reliable Enterprise AI Agents
13
+ # Agentlang - Reliable Enterprise AI Agents
14
+ Agentic Reliability Modeling - Build AI Agents that actually work!
4
15
 
5
- ## Build AI Agents that actually work!
6
-
7
- | | |
8
- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9
- | CI/CD | [![AgentLang CI](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml/badge.svg)](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml) [![Integration Tests](https://github.com/agentlang-ai/agentlang/actions/workflows/integration.yml/badge.svg)](https://github.com/agentlang-ai/agentlang/actions/workflows/integration.yml) [![Tests](https://img.shields.io/badge/tests-vitest-green)](https://vitest.dev/) [![Linting](https://img.shields.io/badge/linting-ESLint-4B32C3)](https://eslint.org/) [![Code Style](https://img.shields.io/badge/code%20style-prettier-ff69b4)](https://prettier.io/) |
10
- | Docs | [![Documentation](https://img.shields.io/badge/docs-available-brightgreen)](https://github.com/agentlang-ai/agentlang#readme) [![Language Spec](https://img.shields.io/badge/language-spec-blue)](https://github.com/agentlang-ai/agentlang/blob/main/langium-quickstart.md) [![Examples](https://img.shields.io/badge/examples-available-yellow)](https://github.com/agentlang-ai/agentlang/tree/main/example) |
11
- | Package | [![Node Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen?logo=node.js)](https://nodejs.org) [![pnpm](https://img.shields.io/badge/pnpm-10.13.1-blue?logo=pnpm)](https://pnpm.io) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue?logo=typescript)](https://www.typescriptlang.org/) [![Langium](https://img.shields.io/badge/Langium-DSL-orange)](https://langium.org/) [![License](https://img.shields.io/badge/License-Sustainable%20Use%20v1.0-blue.svg)](LICENSE) [![npm version](https://badge.fury.io/js/agentlang.svg)](https://www.npmjs.com/package/agentlang) [![npm downloads](https://img.shields.io/npm/dm/agentlang.svg)](https://www.npmjs.com/package/agentlang) |
12
- | Runtime | [![Runtime](https://img.shields.io/badge/runtime-Node.js-green?logo=node.js)](https://nodejs.org) [![Database Support](https://img.shields.io/badge/database-multiple-blueviolet)](https://github.com/agentlang-ai/agentlang#runtime-support) [![Vector DB](https://img.shields.io/badge/vector%20db-supported-purple)](https://github.com/agentlang-ai/agentlang#runtime-support) [![Auth](https://img.shields.io/badge/auth-Cognito-orange?logo=amazon-aws)](https://aws.amazon.com/cognito/) |
13
- | Meta | [![GitHub Stars](https://img.shields.io/github/stars/agentlang-ai/agentlang?style=social)](https://github.com/agentlang-ai/agentlang) [![GitHub Issues](https://img.shields.io/github/issues/agentlang-ai/agentlang)](https://github.com/agentlang-ai/agentlang/issues) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/agentlang-ai/agentlang/pulls) [![Contributors](https://img.shields.io/github/contributors/agentlang-ai/agentlang)](https://github.com/agentlang-ai/agentlang/graphs/contributors) |
16
+ | | |
17
+ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
18
+ | Quick Start | [![Documentation](https://img.shields.io/badge/docs-available-brightgreen)](https://github.com/agentlang-ai/agentlang#readme) [![Examples](https://img.shields.io/badge/examples-available-yellow)](https://github.com/agentlang-ai/agentlang/tree/main/example) [![npm version](https://img.shields.io/npm/v/agentlang.svg)](https://www.npmjs.com/package/agentlang) |
19
+ | Environment | [![Node Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen?logo=node.js)](https://nodejs.org) [![Agentlang CI](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml/badge.svg)](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml) |
20
+ | Meta | [![GitHub Stars](https://img.shields.io/github/stars/agentlang-ai/agentlang?style=social)](https://github.com/agentlang-ai/agentlang) ![License](https://img.shields.io/badge/License-Sustainable%20Use%20v1.0-blue.svg) [![npm downloads](https://img.shields.io/npm/dm/agentlang.svg)](https://www.npmjs.com/package/agentlang) |
14
21
 
15
22
  </div>
16
23
 
17
- AgentLang is the **easiest way** to build the **most reliable** AI agents. Build **teams of AI Agents** that really grok your requirements and follow your organization's processes closely, while adapting to new scenarios. Agents collaborate with each other and humans to handle complex, time-consuming, monotonous tasks and get work done!
24
+ Build **teams of reliable AI Agents** that follow your organization's processes closely, while adapting to new scenarios. Agents collaborate with each other and humans to handle complex, time-consuming, monotonous tasks and get work done!
18
25
 
19
- <div align="center">
26
+ * **Agentic:** Agentlang is a programming abstraction specifically designed for building anything involving agents. Agentlang is highly declarative - enabling you to focus on the business logic without getting bogged down in implementation details.
20
27
 
21
- ### **Open | Enterprise-grade | Production-ready**
28
+ * **Robust Integrations:** The Agentlang runtime integrates natively with a wide range of LLMs, databases, vector databases, and auth providers. Agentlang has a novel connector architecture, with a rapidly growing collection of prebuilt connectors for Enterprise tools. Plus, Agentlang programs run on NodeJS (and in the browser) and can leverage any existing JavaScript library.
22
29
 
23
- </div>
30
+ * **Production-grade**: Agentlang is built on top of TypeScript and uses all the modern JS/TS tooling needed to build enterprise-class agents and apps.
24
31
 
25
- AgentLang is also the industry's first "no-code programming language" for building anything involving agents - Fractl Studio (coming soon!) allows your to build and manage agents visually with no code, while the language enables the developer in you to build the same in your favorite IDE.
32
+ > Coming soon! Fractl Studio is a no-code environment for building and operating AI Agents.
26
33
 
27
- The AgentLang language specification, its compiler and runtime are open source. AgentLang programs can run anywhere - **avoiding the vendor lock-in** of other AI agent/programming platforms.
34
+ ## Agentic Reliability Modeling
28
35
 
29
- AgentLang runtime has native integration with multitude of databases, vector databases, auth stores, etc. AgentLang programs run on nodeJS and can make use of any of the thousands of existing Node and other JavaScript libraries out there.
36
+ Depending solely only on instructions for agents is a recipe for failure. Natural language is beautiful, but ambiguous - forcing us to be stuck in an endless cycle of prompt-tweaking to achieve our goal. Agentlang offers just enough structure, to augment natural language instructions, to model various aspects of your agents - unambiguously, but still effortlessly - to make them reliable.
30
37
 
31
- AgentLang comes with all the modern tooling and dependency management needed to build production-grade agents and apps.
38
+ ```typescript
39
+ decision ticketTriager {
40
+ case ("Ticket is related to DNS provisioning. If the request is to point one host/DNS name to an IP address") {
41
+ DNS
42
+ }
43
+ case ("Ticket is related to WLAN provisioning. If the request is to add/whitelist a MAC address on the wireless network") {
44
+ WLAN
45
+ }
46
+ case ("There is not enough information in the ticket about what the category is") {
47
+ NotEnoughInfo
48
+ }
49
+ default {
50
+ Other
51
+ }
52
+ }
32
53
 
33
- </div>
54
+ flow triageFlow {
55
+ ticketTriager --> "DNS" ticketInProgress
56
+ ticketTriager --> "WLAN" ticketInProgress
57
+ ticketTriager --> "NotEnoughInfo" ticketPending
58
+ }
59
+
60
+ glossary TicketFlow [
61
+ {"name": "incident", "meaning": "a problem report", "synonyms": "ticket"},
62
+ {"name": "task", "meaning": "a record that captures some work that needs to be done", "synonyms": "ticket"},
63
+ {"name": "DNS", "meaning": "Domain Name Service - is used to translate human-readable domain names to IP addresses", "synonyms": "DNS name, CNAME, DNS HOST record"}
64
+ {"name": "WLAN", "meaning": "Wireless LAN - wireless network to connect devices to each other and the internet", "synonyms": "Office network"}
65
+ ]
66
+
67
+ agent TicketFlow {
68
+ llm "gpt4o",
69
+ role "You are a network ticket management application. Your job is to triage any ticket passed to you
70
+ and update the ticket with appropriate assigned_to, status and triaging comments.",
71
+ flows [triageFlow]
72
+ }
73
+
74
+ workflow ticketInProgress {
75
+ // workflow body is developer-written declarative code (not handled by LLM)
76
+ ...
77
+ }
78
+ ```
79
+
80
+ ### Reliability Modeling Features
81
+
82
+ <table>
83
+ <tr>
84
+ <td valign="top">
85
+ <div>
86
+ <b>Key concepts:</b>
87
+ <ul>
88
+ <li> <b>First-class AI Agents</b> </li>
89
+ <li> <b>Flows</b> </li>
90
+ <li> <b>Decisions</b> </li>
91
+ <li> <b>Directives</b> </li>
92
+ <li> <b>Scenarios</b> </li>
93
+ <li> <b>Glossary</b> </li>
94
+ <li> <b>Structured output and scratchpad</b> </li>
95
+ <li> <b>Input Template</b> </li>
96
+ </ul>
97
+ </div>
98
+ </td>
99
+ <td>
100
+ <div align="center">
101
+ <img width="350" height="420" alt="image" src="https://github.com/user-attachments/assets/b240a235-3804-4423-a639-cdfb90f07282" />
102
+ </div>
103
+ </td>
104
+ </tr>
105
+ </table>
106
+
107
+ ### First-class AI Agents
108
+
109
+ Agents and many concepts agents use are built-in language constructs.
110
+
111
+ ```typescript
112
+ flow triageFlow {
113
+ ticketTriager --> "DNS" ticketInProgress
114
+ ticketTriager --> "WLAN" ticketInProgress
115
+ ticketTriager --> "NotEnoughInfo" ticketPending
116
+ }
117
+
118
+ agent TicketFlow {
119
+ llm "gpt4o",
120
+ role "You are a network ticket management agent. Your job is to triage any ticket passed to you and
121
+ update the ticket with appropriate assigned_to, status and triaging comments.",
122
+ flows [triageFlow]
123
+ }
124
+
125
+ ```
126
+
127
+ ### Flows
128
+
129
+ Flows are central to Agentlang's reliability modeling. Define your business processes using an intuitive flow syntax - flows guide (not enforce) an agent's behavior closely. Agentlang's adaptive runtime will execute them, dynamically adapting the execution flow as needed.
130
+
131
+ Each step in the flow can be an agent or a tool (workflow).
132
+
133
+ ```typescript
134
+ flow networkProvisioningRequestManager {
135
+ classifyProvisioningRequest --> "DNS" provisionDNS
136
+ classifyProvisioningRequest --> "WLAN" provisionWLAN
137
+ classifyProvisioningRequest --> "Other" reportFailure
138
+ provisionDNS --> ticketUpdater
139
+ provisionWLAN --> ticketUpdater
140
+ }
141
+ ```
142
+
143
+ ### Decisions
144
+
145
+ An agent that takes a decision for branching in a flow can be expressed as a **decision table** of `case` expressions. Each `case` specifies a condition as pure text or a logical expression. The consequence of a `case` will be a tag that tells the flow-evaluator which node to branch to.
146
+
147
+ ```typescript
148
+ decision classifyOrder {
149
+ case ("if requested car type is SUV and customer tier is premier") {
150
+ LuxurySUV
151
+ }
152
+
153
+ case ("if the requested car type is SUV and segment is economy") {
154
+ EconomySUV
155
+ }
156
+ }
157
+
158
+ flow carOrderRequestManager {
159
+ analyseCarOrderRequest --> classifyOrder
160
+ classifyOrder --> "EconomySUV" orderEconomySUV
161
+ classifyOrder --> "LuxurySUV" orderLuxurySUV
162
+ }
163
+ ```
164
+
165
+ The `case` conditions may also be written as logical expressions:
166
+
167
+ ```typescript
168
+ case (carType == "SUV" and segment == "luxury") {
169
+ LuxurySUV
170
+ }
171
+
172
+ case (carType == "SUV") {
173
+ EconomySUV
174
+ }
175
+
176
+ ```
177
+
178
+ As the flow executes an agent that specializes in evaluating decision tables will be invoked for the node `classifyOrder`. The tag returned by this agent will be used to select either the `orderEconomySUV` or `orderLuxurySUV` node of the flow.
179
+
180
+ ### Directives
181
+
182
+ **Directives** enhance the decision making capability of agents by providing precise actions to be taken under specific conditions.
183
+
184
+ ```typescript
185
+ agent salaryHikeAgent {
186
+ instruction "Give an employee a salary-hike based on his/her sales performance",
187
+ tools acme/employee,
188
+ directives [{"if": "employee sales exceeded 5000", "then": "Give a salary hike of 5 percent"},
189
+ {"if": "sales is more than 2000 but less than 5000", "then": "hike salary by 2 percent"}]
190
+ }
191
+ ```
192
+
193
+ As the `salaryHikeAgent` tries to compute the salary-increment for a particular employee, the directives will guide it to take a more accurate decision based on specific conditions.
194
+
195
+ ### Scenarios
196
+
197
+ **Scenarios** provide agents with concrete examples of user-requests and their corresponding LLM-responses.
198
+
199
+ ```typescript
200
+ agent salaryHikeAgent {
201
+ instruction "Give an employee a salary-hike based on his/her sales performance",
202
+ tools acme/employee,
203
+ directives [{"if": "employee sales exceeded 5000", "then": "Give a salary hike of 5 percent"},
204
+ {"if": "sales is more than 2000 but less than 5000", "then": "hike salary by 2 percent"}],
205
+ }
206
+
207
+ scenario salaryHikeAgent.outperform {
208
+ user "Jake's sale exceeded 5000"
209
+ }
34
210
 
35
- ## First-class AI Agents
211
+ workflow salaryHikeAgent.outperform {
212
+ {acme/employee {email? "jake@acme.com"}} @as [employee];
213
+ {acme/employee {id? employee.id,
214
+ salary employee.salary + employee.salary * 0.5}}
215
+ }
216
+ ```
217
+
218
+ Here, the provided scenario helps the agent to take a well-specified action in the case an employee is said to have "outperformed".
219
+
220
+ ### Glossary
221
+
222
+ **Glossaries** help the agent understand the meaning of domain-specific vocabulary that the user may use while interacting with the agent.
223
+
224
+ ```typescript
225
+ agent campaignAnalyzer {
226
+ instruction "Evaluate and optimize marketing campaign performance based on key performance indicators (KPIs) and assign a performance rating",
227
+ tools acme/campaign_eval,
228
+ // ...
229
+ glossary [
230
+ {"name": "outstanding", "meaning": "CTR ≥ 5%, Conversion Rate ≥ 10%, ROI ≥ 50%", "synonyms": "exceptional, high-impact"},
231
+ {"name": "satisfactory", "meaning": "CTR 2-4.9%, Conversion Rate 5-9.9%, ROI 20-49%", "synonyms": "solid, effective"},
232
+ {"name": "underperforming", "meaning": "CTR < 2%, Conversion Rate < 5%, ROI < 20%", "synonyms": "needs improvement, low-impact"}
233
+ ]
234
+ }
235
+ ```
236
+
237
+ ### Response Schema and Scratchpad
238
+
239
+ In certain scenarios, agents perform better with structured data than plain text. You can configure an agent to output responses in a specific format, enabling another agent to efficiently parse and utilize the relevant information as input.
240
+
241
+ ```typescript
242
+ module NetOps
243
+
244
+ record NetworkProvisioningRequest {
245
+ type @enum("DNS", "WLAN"),
246
+ requestedBy String,
247
+ CNAME String,
248
+ IPAddress String
249
+ }
250
+
251
+ agent classifyProvisioningRequest {
252
+ instruction "Analyse the network provisioning request and return its type and other relevant information.",
253
+ responseSchema NetworkProvisioningRequest
254
+ }
255
+ ```
256
+ This kind of structured data (as entity or record instances) returned by an agent is added to an internal-cache used by the flow. This cache is known as *scratchpad*.
257
+
258
+ ### Templatized Instructions
259
+
260
+ An agent further down the flow can access the scratchpad using template parameters (denoted by `{{}}`) embedded in its instructions/directives. For instance, the `ticketUpdater` agent makes reference to the scratchpad via the parameters `{{classifyProvisioningRequest.type}}` and `{{classifyProvisioningRequest.requestedBy}}`. (The references need not include the agent name and simply be `{{type}}` and `{{requestedBy}}`). The actual instruction the `ticketUpdater` agent will see in this context will be `""Use type=DNS, requestedBy=joe@acme.com and provisioningId={{provisioningId}} to mark the request as completed"` - obviously enhancing its focus on the current context for more deterministic actions.
261
+
262
+ ```typescript
263
+ agent ticketUpdater {
264
+ instruction "Use type={{classifyProvisioningRequest.type}}, requestedBy={{classifyProvisioningRequest.requestedBy}} and provisioningId={{provisioningId}} to mark the request as completed",
265
+ tools [Networking/markRequestCompleted]
266
+ }
267
+
268
+ // insert agent/workflow definitions for provisionDNS, reportFailure etc
269
+
270
+ flow networkProvisioningRequestManager {
271
+ classifyProvisioningRequest --> "DNS" provisionDNS
272
+ classifyProvisioningRequest --> "WLAN" provisionWLAN
273
+ classifyProvisioningRequest --> "Other" reportFailure
274
+ provisionDNS --> ticketUpdater
275
+ provisionWLAN --> ticketUpdater
276
+ }
277
+ ```
278
+
279
+ The agent `classifyProvisioningRequest` has its `responseSchema` attribute set to the record `NetworkProvisioningRequest`. This means for a request like `"Provision DNS joe.acme.com for 192.3.4.1 as requested by joe@acme.com"` this agent will return:
280
+
281
+ ```typescript
282
+ {type "DNS", requestedBy "joe@acme.com", CNAME "joe.acme.com", IPAddress "192.3.4.1"}
283
+ ```
36
284
 
37
- Agents are a built-in language construct - developers can choose from one of the built-in agent-types, or easily add their own agent-types.
285
+ ## Agentlang Ontology
38
286
 
39
- ## Runtime Support
287
+ Agentlang's sophisticated modeling capabilities allow you to design the data-schema, workflows and access control constructs of your application in a declarative way. Agents can work directly with this ontology and dynamically generate business workflows, making your application into a living system that constantly adapts to new requirements and demands.
40
288
 
41
- AgentLang runs on Node.js for development and execution.
289
+ To get started with Agentlang Ontology, please see the [quick start](link-to-doc) guide or explore the following example applications:
42
290
 
43
- ### Prerequisites
291
+ // TODO: links to example apps
44
292
 
45
- - Node.js 20+ (CI runs on 20.x, local development often uses 24.x)
46
- - Note: Some functions may behave differently between versions (e.g., array methods on iterators)
293
+ ## Build Agentlang from Source
47
294
 
48
- ## Quick Start
295
+ ### Installation
296
+
297
+ #### ⚡ Use npm or pnpm
49
298
 
50
299
  ```shell
51
- # Install dependencies (recommended - 90% faster)
52
- # Get pnpm: https://pnpm.io/installation
300
+ npm install
301
+
302
+ OR
303
+
304
+ # Install pnpm: https://pnpm.io/installation
305
+ # Use pnpm
53
306
  pnpm install
307
+ ```
308
+ **Note**: If pnpm shows build script warnings, run `pnpm approve-builds` and approve esbuild and sqlite3.
54
309
 
55
- # Or use npm
56
- npm install
310
+ ### Build
57
311
 
312
+ ```shell
58
313
  # Generate parser and build
59
314
  npm run langium:generate
60
315
  npm run build
316
+ ```
61
317
 
62
- # Run test
318
+ ### Test
319
+
320
+ ```shell
321
+ # Run all tests
63
322
  npm test
64
- ```
65
323
 
66
- > **Note**: If pnpm shows build script warnings, run `pnpm approve-builds` and approve esbuild and sqlite3.
324
+ # Run tests with verbose output
325
+ npm run test:verbose
326
+ ```
67
327
 
68
- ## CLI Usage
328
+ ## Run an Agentlang Script or Application
69
329
 
70
330
  ```shell
71
- # Parse and validate an AgentLang file
331
+ # Parse and validate an Agentlang file
72
332
  node ./bin/cli.js parseAndValidate example/blog/blog.al
73
333
 
74
334
  # Run a specific app
@@ -77,9 +337,25 @@ node ./bin/cli.js run example/blog
77
337
 
78
338
  ## Development
79
339
 
340
+ ### Code Quality
341
+
80
342
  ```shell
81
- # Linting and formatting
343
+ # Lint code
82
344
  npm run lint
83
- npm run lint -- --fix
345
+
346
+ # Lint and auto-fix issues
347
+ npm run lint:fix
348
+
349
+ # Format code
84
350
  npm run format
351
+
352
+ # Check formatting without changes
353
+ npm run format:check
354
+ ```
355
+
356
+ ### Watch Mode
357
+
358
+ ```shell
359
+ # Watch for changes and rebuild
360
+ npm run watch
85
361
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkBvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QAyEhF"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkBvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QA2EhF"}
package/out/api/http.js CHANGED
@@ -32,10 +32,12 @@ export function startServer(appSpec, port, host) {
32
32
  handleMetaGet(req, res);
33
33
  });
34
34
  getAllEventNames().forEach((eventNames, moduleName) => {
35
+ const m = fetchModule(moduleName);
35
36
  eventNames.forEach((n) => {
36
- app.post(`/${moduleName}/${n}`, (req, res) => {
37
- handleEventPost(moduleName, n, req, res);
38
- });
37
+ if (m.eventIsPublic(n))
38
+ app.post(`/${moduleName}/${n}`, (req, res) => {
39
+ handleEventPost(moduleName, n, req, res);
40
+ });
39
41
  });
40
42
  });
41
43
  getAllEntityNames().forEach((entityNames, moduleName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAA8B,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EAER,qBAAqB,EACrB,YAAY,EACZ,0BAA0B,EAE1B,WAAW,EACX,cAAc,EACd,MAAM,GACP,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAU,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAqB,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,eAAe,EACf,UAAU,EACV,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE,IAAY,EAAE,IAAa;IAC/E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,sBAAsB;IACtB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAC;QAC9E,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAC;QAE1E,4BAA4B;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAW,OAAO,CAAC,IAAI,CAAC;IACrC,MAAM,UAAU,GAAW,OAAO,CAAC,OAAO,CAAC;IAE3C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC3C,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC/C,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,UAAoB,EAAE,UAAkB,EAAE,EAAE;QACtE,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAClC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAC/B,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;oBAC9D,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,WAAqB,EAAE,UAAkB,EAAE,EAAE;QACxE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAChC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC7D,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACnE,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC9D,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACpE,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACnE,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACtE,kBAAkB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CACF,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,EAAE,CAAC,GAAa;IACvB,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,MAAM,MAAM,GAAW,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ;IACnC,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAa;IAClC,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,OAAe,EACf,KAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;IACtC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;QAClC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,YAAY,MAAM,EAAE,CAAC;YACzB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,UAAU,IAAI,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc,EAAE,UAAkB;IAC9D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,EAAU,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,SAAiB,EAAE,GAAY;IAC1E,MAAM,IAAI,GAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;QAC1B,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;IACD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,SAAiB,EACjB,GAAY,EACZ,GAAa;IAEb,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvF,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAa,YAAY,CACjC,UAAU,EACV,SAAS,EACT,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CACrC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,UAAkB,EAClB,UAAkB,EAClB,GAAY,EACZ,GAAa;IAEb,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI;YAC7B,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC;YACjD,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,UAAkB,EAClB,GAAY,EACZ,GAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAW;IAC5C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC7B,MAAM,CAAC,GAAW,GAAG,CAAC,GAAmB,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;gBACvD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO;MACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,GAAY;IACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,IAAI,UAAU,IAAI,UAAU,IAAI,GAAG,GAAG,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,UAAU,IAAI,UAAU,OAAO,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,OAAO,GAAuB,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,sBAAsB,KAAK,CAAC,OAAO,OAAO,KAAK,UAAU,IAAI,UAAU,QAAQ,CAAC;QAC1G,CAAC;QACD,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,UAAU,IAAI,UAAU,KAAK,sBAAsB,SAAS,IAAI,MAAM,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,UAAU,IAAI,UAAU,KAAK,sBAAsB,KAAK,IAAI,KAAK,CAAC;QAC/E,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,UAAkB,EAClB,GAAY,EACZ,GAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACrC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACrE,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,GAAY,EACZ,GAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5D,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,IAAa;IACrD,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,sBAAsB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,MAAM,CAAC;IAC3F,MAAM,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,UAAkB,EAAE,GAAY;IAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,qBAAqB,CAC9B,eAAe,EACf,SAAS,EACT,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CACrC,CAAC;QACF,OAAO,IAAI,YAAY,KAAK,sBAAsB,KAAK,UAAU,OAAO,OAAO,IAAI,EAAE,GAAG,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,UAAkB,EAClB,SAAiB,EACjB,SAA6B;IAE7B,IAAI,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,OAAO,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;YACzB,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QACjC,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1C,MAAM,CAAC,GAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;gBAChD,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,GAAa;IACtD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAgB,CAAC;QAChD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAgB,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC;QAE9C,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,WAAW;QACX,2CAA2C;QAC3C,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;YACvC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAqB,EAAE,UAAkB,EAAE,EAAE;gBAChE,IAAI,YAAY,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;oBAChD,OAAO;gBACT,CAAC;gBAED,WAAW,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;oBACzC,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBACnF,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;wBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAE3C,MAAM,UAAU,GAAU,EAAE,CAAC;wBAC7B,IAAI,MAAM,YAAY,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;4BAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,QAAgB,EAAE,EAAE;gCACxD,IAAI,UAAU,GAAG,EAAE,CAAC;gCACpB,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oCACxB,MAAM,QAAQ,GAAQ,EAAE,CAAC;oCACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,GAAW,EAAE,EAAE;wCACtD,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;4CACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCACpC,CAAC;6CAAM,CAAC;4CACN,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wCACxB,CAAC;oCACH,CAAC,CAAC,CAAC;oCACH,UAAU,GAAG,QAAQ,CAAC;gCACxB,CAAC;gCAED,MAAM,QAAQ,GAAQ;oCACpB,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iCACvC,CAAC;gCACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC5B,CAAC,CAAC,CAAC;wBACL,CAAC;wBAED,MAAM,aAAa,GAAU,EAAE,CAAC;wBAChC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;wBACpC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;4BACrC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;4BACjC,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;4BAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,EAAE;gCACjC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;gCACpC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gCAElC,IACE,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU;oCAC9C,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,EAC7C,CAAC;oCACD,aAAa,CAAC,IAAI,CAAC;wCACjB,IAAI,EAAE,GAAG,CAAC,IAAI;wCACd,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;wCAC/C,SAAS,EAAE,QAAQ;wCACnB,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;wCACjC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE;4CAC3B,CAAC,CAAC,YAAY;4CACd,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;gDACjB,CAAC,CAAC,aAAa;gDACf,CAAC,CAAC,cAAc;qCACrB,CAAC,CAAC;gCACL,CAAC;qCAAM,IACL,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU;oCAC7C,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,EAC5C,CAAC;oCACD,aAAa,CAAC,IAAI,CAAC;wCACjB,IAAI,EAAE,GAAG,CAAC,IAAI;wCACd,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;wCAC/C,SAAS,EAAE,OAAO;wCAClB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;wCAClC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE;4CAC3B,CAAC,CAAC,YAAY;4CACd,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;gDACjB,CAAC,CAAC,aAAa;gDACf,CAAC,CAAC,cAAc;qCACrB,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,MAAM,UAAU,GAAG;4BACjB,IAAI,EAAE,UAAU;4BAChB,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC;4BAC1C,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,UAAU;4BACtB,aAAa,EAAE,aAAa;4BAC5B,IAAI,EAAE,MAAM,YAAY,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;yBACrF,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5B,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CACT,0CAA0C,UAAU,IAAI,UAAU,KAAK,GAAG,CAAC,OAAO,EAAE,CACrF,CAAC;wBACF,MAAM,UAAU,GAAG;4BACjB,IAAI,EAAE,UAAU;4BAChB,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC;4BAC1C,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,qCAAqC;yBAC7C,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS;QACT,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACzC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAoB,EAAE,UAAkB,EAAE,EAAE;gBAC9D,IAAI,YAAY,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;oBAChD,OAAO;gBACT,CAAC;gBAED,UAAU,CAAC,OAAO,CAAC,CAAC,SAAiB,EAAE,EAAE;oBACvC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAChF,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;wBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAEzC,MAAM,UAAU,GAAU,EAAE,CAAC;wBAC7B,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;4BAC5C,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,QAAgB,EAAE,EAAE;gCACvD,IAAI,UAAU,GAAG,EAAE,CAAC;gCACpB,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oCACxB,MAAM,QAAQ,GAAQ,EAAE,CAAC;oCACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,GAAW,EAAE,EAAE;wCACtD,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;4CACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCACpC,CAAC;6CAAM,CAAC;4CACN,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wCACxB,CAAC;oCACH,CAAC,CAAC,CAAC;oCACH,UAAU,GAAG,QAAQ,CAAC;gCACxB,CAAC;gCAED,MAAM,QAAQ,GAAQ;oCACpB,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iCACvC,CAAC;gCACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC5B,CAAC,CAAC,CAAC;wBACL,CAAC;wBAED,MAAM,SAAS,GAAG;4BAChB,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC;4BACzC,IAAI,EAAE,OAAO;4BACb,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,KAAK,YAAY,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;yBAClF,CAAC;wBACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzB,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CACT,yCAAyC,UAAU,IAAI,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CACnF,CAAC;wBACF,MAAM,SAAS,GAAG;4BAChB,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC;4BACzC,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,qCAAqC;yBAC7C,CAAC;wBACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,gBAAgB,GAA6B,EAAE,CAAC;QACtD,MAAM,cAAc,GAA6B,EAAE,CAAC;QAEpD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACvC,CAAC;YACD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACpC,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC7F,CAAC;QAEF,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}