clawsql 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -83,6 +83,26 @@ MYSQL_ADMIN_PASSWORD=clawsql_password
83
83
  MYSQL_REPLICATION_USER=repl
84
84
  MYSQL_REPLICATION_PASSWORD=repl_password
85
85
 
86
+ # =============================================================================
87
+ # OpenClaw AI Gateway Configuration
88
+ # =============================================================================
89
+ # OpenClaw provides AI-powered operations for intelligent cluster management
90
+ # The OpenClaw container starts automatically with the platform
91
+ # If a local OpenClaw gateway is already running, Docker OpenClaw is skipped
92
+
93
+ # Gateway WebSocket URL
94
+ # - Default: ws://localhost:18789 (from host)
95
+ # - Docker internal: ws://openclaw:18789 (container-to-container)
96
+ OPENCLAW_GATEWAY_URL=ws://localhost:18789
97
+
98
+ # Gateway authentication token
99
+ OPENCLAW_GATEWAY_TOKEN=clawsql-openclaw-token
100
+
101
+ # Optional: configure AI model provider (defaults to bundled qwen model)
102
+ # Supported: anthropic, openai, azure, ollama, etc.
103
+ OPENCLAW_MODEL_PROVIDER=
104
+ OPENCLAW_MODEL_API_KEY=
105
+
86
106
  # =============================================================================
87
107
  # Logging Configuration
88
108
  # =============================================================================
package/README.md CHANGED
@@ -108,6 +108,8 @@ After starting, access these services:
108
108
  | Prometheus | http://localhost:9090 | Metrics collection |
109
109
  | Grafana | http://localhost:3001 | Dashboards (admin/admin) |
110
110
  | ProxySQL | localhost:6033 | MySQL traffic (read/write split) |
111
+ | OpenClaw Gateway | ws://localhost:18789 | AI agent gateway |
112
+ | OpenClaw UI | http://localhost:18790 | AI control panel |
111
113
 
112
114
  ### Demo MySQL Cluster
113
115
 
@@ -302,39 +304,24 @@ Key settings:
302
304
  │ │ Orchestrator│ │ Failover │ │ Monitoring │ │
303
305
  │ │ Client │ │ Engine │ │ Service │ │
304
306
  │ └─────────────┘ └─────────────┘ └─────────────┘ │
307
+ │ ┌─────────────────────────────────────────────────┐ │
308
+ │ │ OpenClaw AI Gateway │ │
309
+ │ │ Port 18789 - Gateway | Port 18790 - UI │ │
310
+ │ └─────────────────────────────────────────────────┘ │
305
311
  └─────────────────────────────────────────────────────────────────┘
306
312
  ```
307
313
 
308
314
  ## AI Agent Integration
309
315
 
310
- ClawSQL includes an AI-powered assistant for database operations using [OpenClaw](https://github.com/anthropics/openclaw).
311
-
312
- ### Prerequisites
313
-
314
- Install and configure the OpenClaw CLI following the [OpenClaw documentation](https://github.com/anthropics/openclaw#installation).
315
-
316
- ### Using the AI Agent
317
-
318
- Start the CLI and interact naturally:
316
+ ClawSQL integrates with [OpenClaw](https://github.com/openclaw/openclaw) for AI-powered database operations. OpenClaw starts automatically with the platform.
319
317
 
320
318
  ```
321
319
  clawsql> show me the cluster topology
322
- clawsql> what's the replication lag on replica-1?
323
- clawsql> help me set up a new replica
324
- clawsql> explain the failover process
320
+ clawsql> what's the replication lag?
321
+ clawsql> help me troubleshoot replication issues
325
322
  ```
326
323
 
327
- ### Supported Operations
328
-
329
- - **Topology queries**: "show me the cluster", "what's the primary?"
330
- - **Status checks**: "check replication status", "is the cluster healthy?"
331
- - **Guided operations**: "how do I add a replica?", "help me set up failover"
332
- - **Troubleshooting**: "why is replication lag high?", "diagnose connection issues"
333
- - **Explanations**: "explain read/write splitting", "how does failover work?"
334
-
335
- ### Stopping AI Operations
336
-
337
- During AI processing, press **ESC twice** (within 500ms) to stop the current operation.
324
+ See **[AI Integration Documentation](docs/AI.md)** for details on setup, configuration, and usage.
338
325
 
339
326
  ## Development
340
327
 
@@ -410,6 +397,7 @@ docker exec proxysql mysql -h127.0.0.1 -P6032 -uadmin -padmin -e "DELETE FROM my
410
397
  ## Documentation
411
398
 
412
399
  - [Getting Started](docs/GET_STARTED.md) - Step-by-step tutorial
400
+ - [AI Integration](docs/AI.md) - OpenClaw AI agent setup and usage
413
401
  - [API Documentation](docs/API.md) - REST API reference
414
402
  - [Demo Guide](docs/DEMO.md) - Testing with demo cluster
415
403
  - [Failover Documentation](docs/failover.md) - Failover architecture and operations
package/dist/app.js CHANGED
@@ -90,7 +90,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
90
90
  - Prometheus for metrics collection
91
91
  - Grafana for visualization
92
92
  `,
93
- version: '0.1.8',
93
+ version: settings.appVersion,
94
94
  },
95
95
  servers: [
96
96
  { url: '/', description: 'Current server' },
@@ -115,7 +115,7 @@ ClawSQL provides comprehensive automation for MySQL cluster management:
115
115
  fastify.get('/', async () => {
116
116
  return {
117
117
  name: 'ClawSQL',
118
- version: '0.1.8',
118
+ version: settings.appVersion,
119
119
  description: 'MySQL Cluster Automation and Operations Management',
120
120
  docs: '/docs',
121
121
  health: '/health',
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
File without changes
@@ -10,5 +10,5 @@ export { loadAIConfig } from './providers/base.js';
10
10
  export { AnthropicProvider, getAnthropicProvider } from './providers/anthropic.js';
11
11
  export { OpenAIProvider, getOpenAIProvider } from './providers/openai.js';
12
12
  export { createAgentTools } from './tools/index.js';
13
- export { OpenClawAgent, createOpenClawAgent, isOpenClawAvailable, sendToOpenClaw, scheduleCron, sendNotification, writeToMemory, } from './openclaw-integration.js';
13
+ export { OpenClawAgent, createOpenClawAgent, isOpenClawAvailable, isDockerOpenClawAvailable, isLocalOpenClawAvailable, isGatewayHealthy, getOpenClawStatus, ensureOpenClawRunning, sendToOpenClaw, scheduleCron, sendNotification, writeToMemory, } from './openclaw-integration.js';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,2BAA2B,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Exports for the AI agent system.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.writeToMemory = exports.sendNotification = exports.scheduleCron = exports.sendToOpenClaw = exports.isOpenClawAvailable = exports.createOpenClawAgent = exports.OpenClawAgent = exports.createAgentTools = exports.getOpenAIProvider = exports.OpenAIProvider = exports.getAnthropicProvider = exports.AnthropicProvider = exports.loadAIConfig = exports.createAIAgent = exports.AIAgent = void 0;
8
+ exports.writeToMemory = exports.sendNotification = exports.scheduleCron = exports.sendToOpenClaw = exports.ensureOpenClawRunning = exports.getOpenClawStatus = exports.isGatewayHealthy = exports.isLocalOpenClawAvailable = exports.isDockerOpenClawAvailable = exports.isOpenClawAvailable = exports.createOpenClawAgent = exports.OpenClawAgent = exports.createAgentTools = exports.getOpenAIProvider = exports.OpenAIProvider = exports.getAnthropicProvider = exports.AnthropicProvider = exports.loadAIConfig = exports.createAIAgent = exports.AIAgent = void 0;
9
9
  var handler_js_1 = require("./handler.js");
10
10
  Object.defineProperty(exports, "AIAgent", { enumerable: true, get: function () { return handler_js_1.AIAgent; } });
11
11
  Object.defineProperty(exports, "createAIAgent", { enumerable: true, get: function () { return handler_js_1.createAIAgent; } });
@@ -23,6 +23,11 @@ var openclaw_integration_js_1 = require("./openclaw-integration.js");
23
23
  Object.defineProperty(exports, "OpenClawAgent", { enumerable: true, get: function () { return openclaw_integration_js_1.OpenClawAgent; } });
24
24
  Object.defineProperty(exports, "createOpenClawAgent", { enumerable: true, get: function () { return openclaw_integration_js_1.createOpenClawAgent; } });
25
25
  Object.defineProperty(exports, "isOpenClawAvailable", { enumerable: true, get: function () { return openclaw_integration_js_1.isOpenClawAvailable; } });
26
+ Object.defineProperty(exports, "isDockerOpenClawAvailable", { enumerable: true, get: function () { return openclaw_integration_js_1.isDockerOpenClawAvailable; } });
27
+ Object.defineProperty(exports, "isLocalOpenClawAvailable", { enumerable: true, get: function () { return openclaw_integration_js_1.isLocalOpenClawAvailable; } });
28
+ Object.defineProperty(exports, "isGatewayHealthy", { enumerable: true, get: function () { return openclaw_integration_js_1.isGatewayHealthy; } });
29
+ Object.defineProperty(exports, "getOpenClawStatus", { enumerable: true, get: function () { return openclaw_integration_js_1.getOpenClawStatus; } });
30
+ Object.defineProperty(exports, "ensureOpenClawRunning", { enumerable: true, get: function () { return openclaw_integration_js_1.ensureOpenClawRunning; } });
26
31
  Object.defineProperty(exports, "sendToOpenClaw", { enumerable: true, get: function () { return openclaw_integration_js_1.sendToOpenClaw; } });
27
32
  Object.defineProperty(exports, "scheduleCron", { enumerable: true, get: function () { return openclaw_integration_js_1.scheduleCron; } });
28
33
  Object.defineProperty(exports, "sendNotification", { enumerable: true, get: function () { return openclaw_integration_js_1.sendNotification; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/agent/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAAsD;AAA7C,qGAAA,OAAO,OAAA;AAAE,2GAAA,aAAa,OAAA;AAG/B,+CAAmD;AAA1C,uGAAA,YAAY,OAAA;AACrB,yDAAmF;AAA1E,iHAAA,iBAAiB,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAChD,mDAA0E;AAAjE,2GAAA,cAAc,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAC1C,6CAAoD;AAA3C,4GAAA,gBAAgB,OAAA;AACzB,qEAQmC;AAPjC,wHAAA,aAAa,OAAA;AACb,8HAAA,mBAAmB,OAAA;AACnB,8HAAA,mBAAmB,OAAA;AACnB,yHAAA,cAAc,OAAA;AACd,uHAAA,YAAY,OAAA;AACZ,2HAAA,gBAAgB,OAAA;AAChB,wHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/agent/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAAsD;AAA7C,qGAAA,OAAO,OAAA;AAAE,2GAAA,aAAa,OAAA;AAG/B,+CAAmD;AAA1C,uGAAA,YAAY,OAAA;AACrB,yDAAmF;AAA1E,iHAAA,iBAAiB,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAChD,mDAA0E;AAAjE,2GAAA,cAAc,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAC1C,6CAAoD;AAA3C,4GAAA,gBAAgB,OAAA;AACzB,qEAamC;AAZjC,wHAAA,aAAa,OAAA;AACb,8HAAA,mBAAmB,OAAA;AACnB,8HAAA,mBAAmB,OAAA;AACnB,oIAAA,yBAAyB,OAAA;AACzB,mIAAA,wBAAwB,OAAA;AACxB,2HAAA,gBAAgB,OAAA;AAChB,4HAAA,iBAAiB,OAAA;AACjB,gIAAA,qBAAqB,OAAA;AACrB,yHAAA,cAAc,OAAA;AACd,uHAAA,YAAY,OAAA;AACZ,2HAAA,gBAAgB,OAAA;AAChB,wHAAA,aAAa,OAAA"}
@@ -2,21 +2,39 @@
2
2
  * ClawSQL CLI - OpenClaw Integration
3
3
  *
4
4
  * Integrates with OpenClaw gateway for AI-powered operations.
5
+ * Supports both Docker-based gateway and local CLI installation.
5
6
  */
6
7
  import { CLIContext } from '../registry.js';
7
- /**
8
- * OpenClaw integration options
9
- */
10
8
  export interface OpenClawOptions {
11
9
  gatewayUrl?: string;
10
+ gatewayToken?: string;
12
11
  timeout?: number;
13
12
  }
13
+ export interface OpenClawStatus {
14
+ available: boolean;
15
+ isLocal: boolean;
16
+ isDocker: boolean;
17
+ }
18
+ /**
19
+ * Check if OpenClaw Docker container is running
20
+ */
21
+ export declare function isDockerOpenClawAvailable(): Promise<boolean>;
22
+ /**
23
+ * Check if OpenClaw gateway health endpoint responds
24
+ */
25
+ export declare function isGatewayHealthy(): Promise<boolean>;
14
26
  /**
15
- * Check if OpenClaw gateway is running
16
- * Note: The status command may show "unreachable" due to internal scope issues,
17
- * but the agent can still work. We check if OpenClaw is installed and try to use it.
27
+ * Check if local OpenClaw CLI gateway is running (not Docker)
28
+ */
29
+ export declare function isLocalOpenClawAvailable(): Promise<boolean>;
30
+ /**
31
+ * Check if any OpenClaw gateway is available (Docker or local)
18
32
  */
19
33
  export declare function isOpenClawAvailable(): Promise<boolean>;
34
+ /**
35
+ * Get detailed OpenClaw status
36
+ */
37
+ export declare function getOpenClawStatus(): Promise<OpenClawStatus>;
20
38
  /**
21
39
  * Send a message to OpenClaw agent
22
40
  */
@@ -24,12 +42,7 @@ export declare function sendToOpenClaw(message: string, options?: OpenClawOption
24
42
  signal?: AbortSignal;
25
43
  }): Promise<string>;
26
44
  /**
27
- * Send a message to OpenClaw agent with streaming output
28
- * Calls onChunk callback for each chunk of output as it arrives
29
- *
30
- * NOTE: OpenClaw's agent command outputs all at once after processing completes,
31
- * not incrementally. The streaming callback will typically receive one large chunk.
32
- * This is a limitation of OpenClaw's internal output handling, not Node.js buffering.
45
+ * Send a message to OpenClaw with streaming output
33
46
  */
34
47
  export declare function sendToOpenClawStream(message: string, onChunk: (chunk: string) => void, options?: OpenClawOptions & {
35
48
  signal?: AbortSignal;
@@ -51,31 +64,22 @@ export declare function writeToMemory(content: string, filename?: string): Promi
51
64
  */
52
65
  export declare class OpenClawAgent {
53
66
  private context;
54
- private available;
67
+ private _available;
55
68
  constructor(ctx: CLIContext);
56
- /**
57
- * Check if OpenClaw is available
58
- */
59
69
  isAvailable(): Promise<boolean>;
60
- /**
61
- * Process a natural language query
62
- */
63
70
  process(input: string): Promise<string>;
64
- /**
65
- * Build context prompt with current cluster state
66
- */
67
- private buildContextPrompt;
68
- /**
69
- * Schedule periodic health checks
70
- */
71
71
  scheduleHealthCheck(schedule?: string): Promise<string>;
72
- /**
73
- * Send an alert through configured channels
74
- */
75
72
  alert(channel: string, message: string): Promise<string>;
73
+ private buildContextPrompt;
76
74
  }
77
75
  /**
78
76
  * Create an OpenClaw agent instance
79
77
  */
80
78
  export declare function createOpenClawAgent(ctx: CLIContext): OpenClawAgent;
79
+ /** @deprecated Use isDockerOpenClawAvailable instead */
80
+ export declare const isDockerOpenClawContainerRunning: typeof isDockerOpenClawAvailable;
81
+ /** @deprecated Use isGatewayHealthy instead */
82
+ export declare const isOpenClawGatewayReachable: typeof isGatewayHealthy;
83
+ /** @deprecated Use getOpenClawStatus() or individual detection functions */
84
+ export declare function ensureOpenClawRunning(timeoutSeconds?: number): Promise<boolean>;
81
85
  //# sourceMappingURL=openclaw-integration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-integration.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/openclaw-integration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgC5D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CAgEjB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CA0EjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAmC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,SAAS,CAAwB;gBAE7B,GAAG,EAAE,UAAU;IAI3B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAOrC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACG,mBAAmB,CAAC,QAAQ,GAAE,MAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1E;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAElE"}
1
+ {"version":3,"file":"openclaw-integration.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/openclaw-integration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqB5C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkED;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAMlE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUzD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBjE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAWjE;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CA6DjB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAmC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAUf;AAMD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,UAAU,CAAwB;gBAE9B,GAAG,EAAE,UAAU;IAIrB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvC,mBAAmB,CAAC,QAAQ,GAAE,MAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D,OAAO,CAAC,kBAAkB;CAW3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAElE;AAMD,wDAAwD;AACxD,eAAO,MAAM,gCAAgC,kCAA4B,CAAC;AAE1E,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B,yBAAmB,CAAC;AAE3D,4EAA4E;AAC5E,wBAAsB,qBAAqB,CAAC,cAAc,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF"}