aui-agent-builder 0.1.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 (130) hide show
  1. package/README.md +311 -0
  2. package/bin/aui.js +2 -0
  3. package/dist/api-client/index.d.ts +208 -0
  4. package/dist/api-client/index.d.ts.map +1 -0
  5. package/dist/api-client/index.js +219 -0
  6. package/dist/api-client/index.js.map +1 -0
  7. package/dist/commands/add-integration.d.ts +26 -0
  8. package/dist/commands/add-integration.d.ts.map +1 -0
  9. package/dist/commands/add-integration.js +484 -0
  10. package/dist/commands/add-integration.js.map +1 -0
  11. package/dist/commands/add-param.d.ts +13 -0
  12. package/dist/commands/add-param.d.ts.map +1 -0
  13. package/dist/commands/add-param.js +140 -0
  14. package/dist/commands/add-param.js.map +1 -0
  15. package/dist/commands/add-tool.d.ts +17 -0
  16. package/dist/commands/add-tool.d.ts.map +1 -0
  17. package/dist/commands/add-tool.js +239 -0
  18. package/dist/commands/add-tool.js.map +1 -0
  19. package/dist/commands/connect.d.ts +20 -0
  20. package/dist/commands/connect.d.ts.map +1 -0
  21. package/dist/commands/connect.js +203 -0
  22. package/dist/commands/connect.js.map +1 -0
  23. package/dist/commands/create-agent.d.ts +25 -0
  24. package/dist/commands/create-agent.d.ts.map +1 -0
  25. package/dist/commands/create-agent.js +199 -0
  26. package/dist/commands/create-agent.js.map +1 -0
  27. package/dist/commands/diff.d.ts +17 -0
  28. package/dist/commands/diff.d.ts.map +1 -0
  29. package/dist/commands/diff.js +261 -0
  30. package/dist/commands/diff.js.map +1 -0
  31. package/dist/commands/import-agent.d.ts +21 -0
  32. package/dist/commands/import-agent.d.ts.map +1 -0
  33. package/dist/commands/import-agent.js +274 -0
  34. package/dist/commands/import-agent.js.map +1 -0
  35. package/dist/commands/index.d.ts +15 -0
  36. package/dist/commands/index.d.ts.map +1 -0
  37. package/dist/commands/index.js +27 -0
  38. package/dist/commands/index.js.map +1 -0
  39. package/dist/commands/init.d.ts +18 -0
  40. package/dist/commands/init.d.ts.map +1 -0
  41. package/dist/commands/init.js +173 -0
  42. package/dist/commands/init.js.map +1 -0
  43. package/dist/commands/list-agents.d.ts +12 -0
  44. package/dist/commands/list-agents.d.ts.map +1 -0
  45. package/dist/commands/list-agents.js +68 -0
  46. package/dist/commands/list-agents.js.map +1 -0
  47. package/dist/commands/login.d.ts +26 -0
  48. package/dist/commands/login.d.ts.map +1 -0
  49. package/dist/commands/login.js +200 -0
  50. package/dist/commands/login.js.map +1 -0
  51. package/dist/commands/pull.d.ts +17 -0
  52. package/dist/commands/pull.d.ts.map +1 -0
  53. package/dist/commands/pull.js +65 -0
  54. package/dist/commands/pull.js.map +1 -0
  55. package/dist/commands/push.d.ts +24 -0
  56. package/dist/commands/push.d.ts.map +1 -0
  57. package/dist/commands/push.js +160 -0
  58. package/dist/commands/push.js.map +1 -0
  59. package/dist/commands/status.d.ts +10 -0
  60. package/dist/commands/status.d.ts.map +1 -0
  61. package/dist/commands/status.js +155 -0
  62. package/dist/commands/status.js.map +1 -0
  63. package/dist/commands/sync.d.ts +19 -0
  64. package/dist/commands/sync.d.ts.map +1 -0
  65. package/dist/commands/sync.js +114 -0
  66. package/dist/commands/sync.js.map +1 -0
  67. package/dist/commands/validate.d.ts +20 -0
  68. package/dist/commands/validate.d.ts.map +1 -0
  69. package/dist/commands/validate.js +199 -0
  70. package/dist/commands/validate.js.map +1 -0
  71. package/dist/config/index.d.ts +102 -0
  72. package/dist/config/index.d.ts.map +1 -0
  73. package/dist/config/index.js +205 -0
  74. package/dist/config/index.js.map +1 -0
  75. package/dist/index.d.ts +18 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +163 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/mock-data/entities.aui.json +38 -0
  80. package/dist/mock-data/general_settings.aui.json +11 -0
  81. package/dist/mock-data/integrations.aui.json +806 -0
  82. package/dist/mock-data/parameters.aui.json +586 -0
  83. package/dist/mock-data/rules.aui.json +506 -0
  84. package/dist/mock-data/tools/conversation_forwarding.aui.json +32 -0
  85. package/dist/mock-data/tools/create_fraud_dispute.aui.json +112 -0
  86. package/dist/mock-data/tools/generative_ai.aui.json +29 -0
  87. package/dist/mock-data/tools/policies.aui.json +45 -0
  88. package/dist/mock-data/tools/transaction_and_card_details.aui.json +87 -0
  89. package/dist/mock-data/tools/transaction_search.aui.json +76 -0
  90. package/dist/mock-data/tools/update_credit_card_status.aui.json +45 -0
  91. package/dist/mock-data/tools/user_details.aui.json +57 -0
  92. package/dist/mock-data/tools/web_search.aui.json +54 -0
  93. package/dist/schema/aui.schema.json +418 -0
  94. package/dist/types/agent.d.ts +91 -0
  95. package/dist/types/agent.d.ts.map +1 -0
  96. package/dist/types/agent.js +9 -0
  97. package/dist/types/agent.js.map +1 -0
  98. package/dist/types/base.d.ts +15 -0
  99. package/dist/types/base.d.ts.map +1 -0
  100. package/dist/types/base.js +7 -0
  101. package/dist/types/base.js.map +1 -0
  102. package/dist/types/entity.d.ts +25 -0
  103. package/dist/types/entity.d.ts.map +1 -0
  104. package/dist/types/entity.js +9 -0
  105. package/dist/types/entity.js.map +1 -0
  106. package/dist/types/index.d.ts +11 -0
  107. package/dist/types/index.d.ts.map +1 -0
  108. package/dist/types/index.js +27 -0
  109. package/dist/types/index.js.map +1 -0
  110. package/dist/types/integration.d.ts +151 -0
  111. package/dist/types/integration.d.ts.map +1 -0
  112. package/dist/types/integration.js +9 -0
  113. package/dist/types/integration.js.map +1 -0
  114. package/dist/types/parameter.d.ts +38 -0
  115. package/dist/types/parameter.d.ts.map +1 -0
  116. package/dist/types/parameter.js +10 -0
  117. package/dist/types/parameter.js.map +1 -0
  118. package/dist/types/rule.d.ts +125 -0
  119. package/dist/types/rule.d.ts.map +1 -0
  120. package/dist/types/rule.js +10 -0
  121. package/dist/types/rule.js.map +1 -0
  122. package/dist/types/tool.d.ts +95 -0
  123. package/dist/types/tool.d.ts.map +1 -0
  124. package/dist/types/tool.js +12 -0
  125. package/dist/types/tool.js.map +1 -0
  126. package/dist/utils/index.d.ts +47 -0
  127. package/dist/utils/index.d.ts.map +1 -0
  128. package/dist/utils/index.js +267 -0
  129. package/dist/utils/index.js.map +1 -0
  130. package/package.json +56 -0
package/README.md ADDED
@@ -0,0 +1,311 @@
1
+ # aui-agent-builder
2
+
3
+ CLI tool for building and managing AUI conversational AI agents.
4
+
5
+ ## Overview
6
+
7
+ `aui-agent-builder` provides a command-line interface to create, configure, validate, and deploy AUI agents. Agents are defined using `.aui.json` configuration files that specify parameters, entities, integrations, tools, and rules.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install -g aui-agent-builder
13
+ ```
14
+
15
+ Or use directly with npx:
16
+
17
+ ```bash
18
+ npx aui-agent-builder init my-agent
19
+ ```
20
+
21
+ ## Quick Start
22
+
23
+ ```bash
24
+ # 1. Create a new agent project
25
+ aui init my-agent
26
+ cd my-agent
27
+
28
+ # 2. Edit configuration files
29
+ # - agent.aui.json → Agent identity and settings
30
+ # - parameters.aui.json → Data parameters
31
+ # - entities.aui.json → Parameter groups
32
+ # - integrations.aui.json → API connections
33
+ # - rules.aui.json → Global rules
34
+ # - tools/*.aui.json → Tool definitions
35
+
36
+ # 3. Add integrations
37
+ aui add-integration
38
+
39
+ # 4. Add tools
40
+ aui add-tool
41
+
42
+ # 5. Add parameters
43
+ aui add-param
44
+
45
+ # 6. Validate your configuration
46
+ aui validate
47
+
48
+ # 7. Connect to AUI backend and push
49
+ aui connect
50
+ aui push
51
+ ```
52
+
53
+ ## Commands
54
+
55
+ ### `aui init [directory]`
56
+
57
+ Initialize a new AUI agent project with clean template files.
58
+
59
+ ```bash
60
+ aui init my-agent
61
+ aui init my-agent --template banking
62
+ aui init . --force # Reinitialize in current directory
63
+ ```
64
+
65
+ ### `aui connect`
66
+
67
+ Interactive setup to connect to the AUI backend. Validates API key, lets you select or create an agent, and downloads existing configuration.
68
+
69
+ ```bash
70
+ aui connect
71
+ aui connect --api-key <key> --org <id> --agent <code>
72
+ ```
73
+
74
+ ### `aui login`
75
+
76
+ Configure API credentials (saved to `~/.aui/credentials.json`).
77
+
78
+ ```bash
79
+ aui login
80
+ aui login --api-key <key> --org <id> --profile production
81
+ ```
82
+
83
+ ### `aui validate [path]`
84
+
85
+ Validate all `.aui.json` files in the project. Checks JSON syntax, schema compliance, and cross-file reference integrity.
86
+
87
+ ```bash
88
+ aui validate
89
+ aui validate ./path/to/agent --verbose
90
+ ```
91
+
92
+ ### `aui pull [agent-code]`
93
+
94
+ Download agent configuration from the backend.
95
+
96
+ ```bash
97
+ aui pull
98
+ aui pull my-agent --force
99
+ ```
100
+
101
+ ### `aui push [agent-code]`
102
+
103
+ Upload agent configuration to the backend. Validates before pushing.
104
+
105
+ ```bash
106
+ aui push
107
+ aui push my-agent --force --skip-validation
108
+ ```
109
+
110
+ ### `aui sync`
111
+
112
+ Two-way sync with conflict resolution.
113
+
114
+ ```bash
115
+ aui sync
116
+ aui sync --dry-run # Preview changes
117
+ aui sync --force # Force local → remote
118
+ ```
119
+
120
+ ### `aui add-integration`
121
+
122
+ Add an integration (API, RAG, MCP) to the project interactively or from an OpenAPI spec.
123
+
124
+ ```bash
125
+ aui add-integration
126
+ aui add-integration --url https://api.example.com/openapi.json
127
+ aui add-integration --file ./openapi.json
128
+ ```
129
+
130
+ ### `aui add-tool`
131
+
132
+ Create a new tool definition interactively.
133
+
134
+ ```bash
135
+ aui add-tool
136
+ aui add-tool --code MY_CUSTOM_TOOL
137
+ ```
138
+
139
+ ### `aui add-param`
140
+
141
+ Add a new parameter definition interactively.
142
+
143
+ ```bash
144
+ aui add-param
145
+ ```
146
+
147
+ ## Project Structure
148
+
149
+ ```
150
+ my-agent/
151
+ ├── agent.aui.json # Agent metadata (code, version, objective, guardrails)
152
+ ├── parameters.aui.json # Parameter definitions (data the agent works with)
153
+ ├── entities.aui.json # Entity groups (related parameter collections)
154
+ ├── integrations.aui.json # API integrations (endpoints, auth, request/response mapping)
155
+ ├── rules.aui.json # Global constraint rules
156
+ ├── tools/ # Tool definitions (one file per tool)
157
+ │ ├── generative-ai.aui.json
158
+ │ ├── transaction-search.aui.json
159
+ │ └── create-dispute.aui.json
160
+ ├── .auirc # Project configuration
161
+ └── .gitignore
162
+ ```
163
+
164
+ ## Configuration Files
165
+
166
+ ### agent.aui.json
167
+
168
+ Defines the agent's identity:
169
+
170
+ ```json
171
+ {
172
+ "agent": {
173
+ "code": "my-agent",
174
+ "version": "1.0.0",
175
+ "description": "Customer support agent",
176
+ "language": "en",
177
+ "objective": "Help users with account inquiries",
178
+ "guardrails": ["Be helpful and respectful"],
179
+ "tone_of_voice": "Professional and friendly"
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### parameters.aui.json
185
+
186
+ Defines data parameters the agent works with:
187
+
188
+ ```json
189
+ {
190
+ "parameters": [
191
+ {
192
+ "code": "transaction-id",
193
+ "description": "Unique transaction identifier",
194
+ "type": "string",
195
+ "usage": "all"
196
+ },
197
+ {
198
+ "code": "dispute-reason",
199
+ "description": "Reason for disputing a transaction",
200
+ "type": "string",
201
+ "usage": "input",
202
+ "values": ["not recognized", "unauthorized charge", "duplicate charge"]
203
+ }
204
+ ]
205
+ }
206
+ ```
207
+
208
+ ### entities.aui.json
209
+
210
+ Groups related parameters:
211
+
212
+ ```json
213
+ {
214
+ "entities": [
215
+ {
216
+ "name": "Transactions",
217
+ "parameters": ["transaction-id", "transaction-amount", "transaction-status"]
218
+ }
219
+ ]
220
+ }
221
+ ```
222
+
223
+ ### integrations.aui.json
224
+
225
+ Defines API connections:
226
+
227
+ ```json
228
+ {
229
+ "integrations": [
230
+ {
231
+ "type": "API",
232
+ "code": "transaction-search",
233
+ "settings": {
234
+ "endpoint": {
235
+ "url": "https://api.example.com/transactions",
236
+ "method": "GET",
237
+ "authentication": { "type": "API_KEY", "apiKey": "$API_KEY" }
238
+ },
239
+ "request_schema": [...],
240
+ "response_mapping": {...},
241
+ "test_curl": "curl ..."
242
+ }
243
+ }
244
+ ]
245
+ }
246
+ ```
247
+
248
+ ### tools/*.aui.json
249
+
250
+ Each tool defines a capability:
251
+
252
+ ```json
253
+ {
254
+ "tool": {
255
+ "code": "TRANSACTION_SEARCH",
256
+ "objective": "When the user wants to look up transactions",
257
+ "status": true,
258
+ "main_tool": true,
259
+ "requires_confirmation": false,
260
+ "response_type": "text",
261
+ "config": {
262
+ "triggers": { "when": { "any": [] } },
263
+ "params": {
264
+ "required": ["user-id"],
265
+ "optional": ["card-number-suffix"]
266
+ }
267
+ },
268
+ "integrations": [{ "code": "transaction-search" }],
269
+ "rules": {
270
+ "pre": {},
271
+ "summary": {
272
+ "success": [{ "when": { "all": [] }, "then": { "action": "TEXT", "message": "..." } }]
273
+ }
274
+ }
275
+ }
276
+ }
277
+ ```
278
+
279
+ ## Configuration
280
+
281
+ ### Environment Variables
282
+
283
+ | Variable | Description |
284
+ |---|---|
285
+ | `AUI_API_KEY` | API key (highest priority) |
286
+ | `AUI_API_URL` | Backend API URL |
287
+ | `AUI_ORG_ID` | Organization ID |
288
+ | `AUI_ACCOUNT_ID` | Account ID |
289
+ | `AUI_NETWORK_ID` | Network ID |
290
+ | `AUI_AGENT_CODE` | Agent code |
291
+
292
+ ### Configuration Priority
293
+
294
+ 1. Environment variables (highest)
295
+ 2. Project config (`.auirc`)
296
+ 3. User credentials (`~/.aui/credentials.json`)
297
+ 4. Defaults
298
+
299
+ ## Development
300
+
301
+ ```bash
302
+ git clone <repo>
303
+ cd aui-agent-builder
304
+ npm install
305
+ npm run build
306
+ npm run dev -- init test-agent # Run in development
307
+ ```
308
+
309
+ ## License
310
+
311
+ MIT
package/bin/aui.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ require('../dist/index.js');
@@ -0,0 +1,208 @@
1
+ /**
2
+ * API Client for AUI Backend
3
+ *
4
+ * Handles all communication with the real AUI backend API.
5
+ *
6
+ * Base URL: https://api-staging.internal-aui.io/api/outer-bridge/
7
+ *
8
+ * Required headers on every request:
9
+ * - auth-token: JWT from login
10
+ * - account-id: Account identifier
11
+ * - organization-id: Organization identifier
12
+ * - x-aui-client: "AUI"
13
+ * - x-aui-environment: "staging" | "production"
14
+ * - x-aui-origin: "stores"
15
+ */
16
+ import { AUIEnvironment } from '../config';
17
+ export interface Account {
18
+ _id: string;
19
+ id: string;
20
+ name: string;
21
+ niceName: string;
22
+ status: 'ACTIVE' | 'INACTIVE';
23
+ organization: string;
24
+ createdBy: string;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ }
28
+ export interface PaginatedResponse<T> {
29
+ docs: T[];
30
+ totalDocs: number;
31
+ limit: number;
32
+ totalPages: number;
33
+ page: number;
34
+ pagingCounter: number;
35
+ hasPrevPage: boolean;
36
+ hasNextPage: boolean;
37
+ prevPage: number | null;
38
+ nextPage: number | null;
39
+ }
40
+ export interface AccountsListResponse {
41
+ status: boolean;
42
+ data: PaginatedResponse<Account>;
43
+ message: string;
44
+ statusCode: number;
45
+ }
46
+ export interface Network {
47
+ _id: string;
48
+ id: string;
49
+ name: string;
50
+ niceName: string;
51
+ status: 'ACTIVE' | 'INACTIVE';
52
+ category?: {
53
+ _id: string;
54
+ name: string;
55
+ } | string;
56
+ account: string;
57
+ organization: string;
58
+ objective?: string;
59
+ createdBy: string;
60
+ createdAt: string;
61
+ updatedAt: string;
62
+ }
63
+ export interface NetworksListResponse {
64
+ status: boolean;
65
+ data: Network[];
66
+ message: string;
67
+ statusCode: number;
68
+ }
69
+ export interface CreateNetworkResponse {
70
+ status: boolean;
71
+ data: Network;
72
+ message: string;
73
+ statusCode: number;
74
+ }
75
+ export interface AUIClientOptions {
76
+ /** API base URL (e.g. https://api-staging.internal-aui.io/api/outer-bridge) */
77
+ baseUrl: string;
78
+ /** JWT auth token from login */
79
+ authToken: string;
80
+ /** Account ID */
81
+ accountId?: string;
82
+ /** Organization ID */
83
+ organizationId?: string;
84
+ /** Environment */
85
+ environment?: AUIEnvironment;
86
+ }
87
+ export declare class AUIAPIError extends Error {
88
+ status: number;
89
+ statusText: string;
90
+ body?: unknown;
91
+ constructor(status: number, statusText: string, body?: unknown);
92
+ }
93
+ /**
94
+ * AUI Backend API Client
95
+ */
96
+ export declare class AUIClient {
97
+ private baseUrl;
98
+ private authToken;
99
+ private accountId;
100
+ private organizationId;
101
+ private environment;
102
+ constructor(options: AUIClientOptions);
103
+ /**
104
+ * Update account/org IDs after initial connection
105
+ */
106
+ setScope(scope: {
107
+ accountId?: string;
108
+ organizationId?: string;
109
+ }): void;
110
+ /**
111
+ * Build request headers matching the real AUI API expectations
112
+ */
113
+ private getHeaders;
114
+ /**
115
+ * Make an HTTP request to the AUI backend
116
+ */
117
+ private request;
118
+ get<T>(endpoint: string): Promise<T>;
119
+ post<T>(endpoint: string, body?: unknown): Promise<T>;
120
+ put<T>(endpoint: string, body: unknown): Promise<T>;
121
+ patch<T>(endpoint: string, body: unknown): Promise<T>;
122
+ del<T>(endpoint: string): Promise<T>;
123
+ /** GET /network/v1/account - List accounts (projects) in the organization */
124
+ accounts: {
125
+ list: (page?: number, limit?: number) => Promise<AccountsListResponse>;
126
+ };
127
+ /**
128
+ * GET /network/v1/network - List agents in the organization/account
129
+ * POST /network/v1/network - Create a new agent
130
+ */
131
+ networks: {
132
+ /** List all agents (networks) for the current org + account */
133
+ list: () => Promise<NetworksListResponse>;
134
+ /** Create a new agent */
135
+ create: (data: {
136
+ name: string;
137
+ category: string;
138
+ objective?: string;
139
+ }) => Promise<CreateNetworkResponse>;
140
+ /** Get a single agent by ID */
141
+ get: (networkId: string) => Promise<{
142
+ status: boolean;
143
+ data: Network;
144
+ }>;
145
+ };
146
+ /** GET/POST /params */
147
+ params: {
148
+ list: () => Promise<unknown>;
149
+ create: (data: unknown) => Promise<unknown>;
150
+ update: (code: string, data: unknown) => Promise<unknown>;
151
+ };
152
+ /** GET/POST /tools */
153
+ tools: {
154
+ list: () => Promise<unknown>;
155
+ create: (data: unknown) => Promise<unknown>;
156
+ update: (code: string, data: unknown) => Promise<unknown>;
157
+ };
158
+ /** GET/POST /rules */
159
+ rules: {
160
+ list: () => Promise<unknown>;
161
+ update: (data: unknown) => Promise<unknown>;
162
+ };
163
+ /** GET/POST /general_settings */
164
+ generalSettings: {
165
+ get: () => Promise<unknown>;
166
+ update: (data: unknown) => Promise<unknown>;
167
+ };
168
+ /** GET/POST /entities */
169
+ entities: {
170
+ list: () => Promise<unknown>;
171
+ create: (data: unknown) => Promise<unknown>;
172
+ update: (code: string, data: unknown) => Promise<unknown>;
173
+ };
174
+ /** GET/POST /integrations */
175
+ integrations: {
176
+ list: () => Promise<unknown>;
177
+ create: (data: unknown) => Promise<unknown>;
178
+ update: (code: string, data: unknown) => Promise<unknown>;
179
+ };
180
+ /** GET/POST /files */
181
+ files: {
182
+ list: () => Promise<unknown>;
183
+ upload: (data: unknown) => Promise<unknown>;
184
+ };
185
+ /** GET /scrape */
186
+ scrape: {
187
+ get: (url: string) => Promise<unknown>;
188
+ };
189
+ /** GET /integration_mapping */
190
+ integrationMapping: {
191
+ get: (code: string) => Promise<unknown>;
192
+ };
193
+ conversations: {
194
+ newTask: (data: unknown) => Promise<unknown>;
195
+ newMessage: (data: {
196
+ task_id: string;
197
+ message: string;
198
+ }) => Promise<unknown>;
199
+ getInteraction: (id: string) => Promise<unknown>;
200
+ getTask: (id: string) => Promise<unknown>;
201
+ };
202
+ agents: {
203
+ list: () => Promise<unknown>;
204
+ create: (data: unknown) => Promise<unknown>;
205
+ get: (code: string) => Promise<unknown>;
206
+ };
207
+ }
208
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api-client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAI3C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAO/D;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAiB;gBAExB,OAAO,EAAE,gBAAgB;IAQrC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKtE;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;YACW,OAAO;IA4Cf,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAInD,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAO1C,6EAA6E;IAC7E,QAAQ;sBACO,MAAM,UAAa,MAAM;MAEtC;IAIF;;;OAGG;IACH,QAAQ;QACN,+DAA+D;;QAM/D,yBAAyB;uBACV;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;QAUrE,+BAA+B;yBACd,MAAM;oBACF,OAAO;kBAAQ,OAAO;;MAC3C;IAKF,uBAAuB;IACvB,MAAM;;uBAEW,OAAO;uBACP,MAAM,QAAQ,OAAO;MACpC;IAEF,sBAAsB;IACtB,KAAK;;uBAEY,OAAO;uBACP,MAAM,QAAQ,OAAO;MACpC;IAEF,sBAAsB;IACtB,KAAK;;uBAEY,OAAO;MACtB;IAEF,iCAAiC;IACjC,eAAe;;uBAEE,OAAO;MACtB;IAEF,yBAAyB;IACzB,QAAQ;;uBAES,OAAO;uBACP,MAAM,QAAQ,OAAO;MACpC;IAEF,6BAA6B;IAC7B,YAAY;;uBAEK,OAAO;uBACP,MAAM,QAAQ,OAAO;MACpC;IAEF,sBAAsB;IACtB,KAAK;;uBAEY,OAAO;MACtB;IAEF,kBAAkB;IAClB,MAAM;mBACO,MAAM;MACjB;IAEF,+BAA+B;IAC/B,kBAAkB;oBACJ,MAAM;MAClB;IAIF,aAAa;wBACK,OAAO;2BACJ;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;6BAClC,MAAM;sBACb,MAAM;MACpB;IAIF,MAAM;;uBAEW,OAAO;oBACV,MAAM;MAClB;CACH"}