clawsql 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.
- package/.env.example +97 -0
- package/README.md +372 -0
- package/dist/__tests__/config/settings.test.d.ts +5 -0
- package/dist/__tests__/config/settings.test.d.ts.map +1 -0
- package/dist/__tests__/config/settings.test.js +154 -0
- package/dist/__tests__/config/settings.test.js.map +1 -0
- package/dist/__tests__/core/discovery/topology.test.d.ts +5 -0
- package/dist/__tests__/core/discovery/topology.test.d.ts.map +1 -0
- package/dist/__tests__/core/discovery/topology.test.js +191 -0
- package/dist/__tests__/core/discovery/topology.test.js.map +1 -0
- package/dist/__tests__/core/failover/executor.test.d.ts +5 -0
- package/dist/__tests__/core/failover/executor.test.d.ts.map +1 -0
- package/dist/__tests__/core/failover/executor.test.js +256 -0
- package/dist/__tests__/core/failover/executor.test.js.map +1 -0
- package/dist/__tests__/core/monitoring/collector.test.d.ts +5 -0
- package/dist/__tests__/core/monitoring/collector.test.d.ts.map +1 -0
- package/dist/__tests__/core/monitoring/collector.test.js +131 -0
- package/dist/__tests__/core/monitoring/collector.test.js.map +1 -0
- package/dist/__tests__/core/monitoring/exporters.test.d.ts +5 -0
- package/dist/__tests__/core/monitoring/exporters.test.d.ts.map +1 -0
- package/dist/__tests__/core/monitoring/exporters.test.js +90 -0
- package/dist/__tests__/core/monitoring/exporters.test.js.map +1 -0
- package/dist/__tests__/core/routing/proxysql-manager.test.d.ts +5 -0
- package/dist/__tests__/core/routing/proxysql-manager.test.d.ts.map +1 -0
- package/dist/__tests__/core/routing/proxysql-manager.test.js +155 -0
- package/dist/__tests__/core/routing/proxysql-manager.test.js.map +1 -0
- package/dist/__tests__/types/index.test.d.ts +5 -0
- package/dist/__tests__/types/index.test.d.ts.map +1 -0
- package/dist/__tests__/types/index.test.js +290 -0
- package/dist/__tests__/types/index.test.js.map +1 -0
- package/dist/__tests__/utils/exceptions.test.d.ts +5 -0
- package/dist/__tests__/utils/exceptions.test.d.ts.map +1 -0
- package/dist/__tests__/utils/exceptions.test.js +142 -0
- package/dist/__tests__/utils/exceptions.test.js.map +1 -0
- package/dist/api/routes/clusters.d.ts +7 -0
- package/dist/api/routes/clusters.d.ts.map +1 -0
- package/dist/api/routes/clusters.js +123 -0
- package/dist/api/routes/clusters.js.map +1 -0
- package/dist/api/routes/config.d.ts +7 -0
- package/dist/api/routes/config.d.ts.map +1 -0
- package/dist/api/routes/config.js +65 -0
- package/dist/api/routes/config.js.map +1 -0
- package/dist/api/routes/failover.d.ts +7 -0
- package/dist/api/routes/failover.d.ts.map +1 -0
- package/dist/api/routes/failover.js +100 -0
- package/dist/api/routes/failover.js.map +1 -0
- package/dist/api/routes/instances.d.ts +11 -0
- package/dist/api/routes/instances.d.ts.map +1 -0
- package/dist/api/routes/instances.js +315 -0
- package/dist/api/routes/instances.js.map +1 -0
- package/dist/api/routes/monitoring.d.ts +7 -0
- package/dist/api/routes/monitoring.d.ts.map +1 -0
- package/dist/api/routes/monitoring.js +72 -0
- package/dist/api/routes/monitoring.js.map +1 -0
- package/dist/api/routes/webhooks.d.ts +12 -0
- package/dist/api/routes/webhooks.d.ts.map +1 -0
- package/dist/api/routes/webhooks.js +232 -0
- package/dist/api/routes/webhooks.js.map +1 -0
- package/dist/api/schemas/index.d.ts +965 -0
- package/dist/api/schemas/index.d.ts.map +1 -0
- package/dist/api/schemas/index.js +171 -0
- package/dist/api/schemas/index.js.map +1 -0
- package/dist/app.d.ts +13 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +197 -0
- package/dist/app.js.map +1 -0
- package/dist/bin/clawsql.d.ts +12 -0
- package/dist/bin/clawsql.d.ts.map +1 -0
- package/dist/bin/clawsql.js +43 -0
- package/dist/bin/clawsql.js.map +1 -0
- package/dist/cli/agent/handler.d.ts +73 -0
- package/dist/cli/agent/handler.d.ts.map +1 -0
- package/dist/cli/agent/handler.js +258 -0
- package/dist/cli/agent/handler.js.map +1 -0
- package/dist/cli/agent/index.d.ts +14 -0
- package/dist/cli/agent/index.d.ts.map +1 -0
- package/dist/cli/agent/index.js +30 -0
- package/dist/cli/agent/index.js.map +1 -0
- package/dist/cli/agent/openclaw-integration.d.ts +81 -0
- package/dist/cli/agent/openclaw-integration.d.ts.map +1 -0
- package/dist/cli/agent/openclaw-integration.js +341 -0
- package/dist/cli/agent/openclaw-integration.js.map +1 -0
- package/dist/cli/agent/providers/anthropic.d.ts +27 -0
- package/dist/cli/agent/providers/anthropic.d.ts.map +1 -0
- package/dist/cli/agent/providers/anthropic.js +106 -0
- package/dist/cli/agent/providers/anthropic.js.map +1 -0
- package/dist/cli/agent/providers/base.d.ts +91 -0
- package/dist/cli/agent/providers/base.d.ts.map +1 -0
- package/dist/cli/agent/providers/base.js +24 -0
- package/dist/cli/agent/providers/base.js.map +1 -0
- package/dist/cli/agent/providers/openai.d.ts +27 -0
- package/dist/cli/agent/providers/openai.d.ts.map +1 -0
- package/dist/cli/agent/providers/openai.js +98 -0
- package/dist/cli/agent/providers/openai.js.map +1 -0
- package/dist/cli/agent/tools/index.d.ts +32 -0
- package/dist/cli/agent/tools/index.d.ts.map +1 -0
- package/dist/cli/agent/tools/index.js +263 -0
- package/dist/cli/agent/tools/index.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +12 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +205 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/clusters.d.ts +12 -0
- package/dist/cli/commands/clusters.d.ts.map +1 -0
- package/dist/cli/commands/clusters.js +468 -0
- package/dist/cli/commands/clusters.js.map +1 -0
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +406 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/cron.d.ts +12 -0
- package/dist/cli/commands/cron.d.ts.map +1 -0
- package/dist/cli/commands/cron.js +215 -0
- package/dist/cli/commands/cron.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +13 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +687 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/failover.d.ts +16 -0
- package/dist/cli/commands/failover.d.ts.map +1 -0
- package/dist/cli/commands/failover.js +333 -0
- package/dist/cli/commands/failover.js.map +1 -0
- package/dist/cli/commands/health.d.ts +12 -0
- package/dist/cli/commands/health.d.ts.map +1 -0
- package/dist/cli/commands/health.js +125 -0
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/help.d.ts +12 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +52 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/instances.d.ts +12 -0
- package/dist/cli/commands/instances.d.ts.map +1 -0
- package/dist/cli/commands/instances.js +801 -0
- package/dist/cli/commands/instances.js.map +1 -0
- package/dist/cli/commands/notify.d.ts +12 -0
- package/dist/cli/commands/notify.d.ts.map +1 -0
- package/dist/cli/commands/notify.js +43 -0
- package/dist/cli/commands/notify.js.map +1 -0
- package/dist/cli/commands/sql.d.ts +12 -0
- package/dist/cli/commands/sql.d.ts.map +1 -0
- package/dist/cli/commands/sql.js +90 -0
- package/dist/cli/commands/sql.js.map +1 -0
- package/dist/cli/commands/start.d.ts +12 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +174 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +12 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +218 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +12 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +128 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/topology.d.ts +12 -0
- package/dist/cli/commands/topology.d.ts.map +1 -0
- package/dist/cli/commands/topology.js +106 -0
- package/dist/cli/commands/topology.js.map +1 -0
- package/dist/cli/completer.d.ts +47 -0
- package/dist/cli/completer.d.ts.map +1 -0
- package/dist/cli/completer.js +332 -0
- package/dist/cli/completer.js.map +1 -0
- package/dist/cli/formatter.d.ts +165 -0
- package/dist/cli/formatter.d.ts.map +1 -0
- package/dist/cli/formatter.js +408 -0
- package/dist/cli/formatter.js.map +1 -0
- package/dist/cli/index.d.ts +21 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +79 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/raw-input.d.ts +97 -0
- package/dist/cli/raw-input.d.ts.map +1 -0
- package/dist/cli/raw-input.js +493 -0
- package/dist/cli/raw-input.js.map +1 -0
- package/dist/cli/registry.d.ts +103 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +205 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/repl.d.ts +83 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +447 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/ui/components.d.ts +144 -0
- package/dist/cli/ui/components.d.ts.map +1 -0
- package/dist/cli/ui/components.js +331 -0
- package/dist/cli/ui/components.js.map +1 -0
- package/dist/cli/ui/index.d.ts +7 -0
- package/dist/cli/ui/index.d.ts.map +1 -0
- package/dist/cli/ui/index.js +23 -0
- package/dist/cli/ui/index.js.map +1 -0
- package/dist/cli/utils/docker-files.d.ts +39 -0
- package/dist/cli/utils/docker-files.d.ts.map +1 -0
- package/dist/cli/utils/docker-files.js +223 -0
- package/dist/cli/utils/docker-files.js.map +1 -0
- package/dist/cli/utils/docker-prereq.d.ts +48 -0
- package/dist/cli/utils/docker-prereq.d.ts.map +1 -0
- package/dist/cli/utils/docker-prereq.js +203 -0
- package/dist/cli/utils/docker-prereq.js.map +1 -0
- package/dist/config/settings.d.ts +594 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +250 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/core/discovery/cluster-view.d.ts +50 -0
- package/dist/core/discovery/cluster-view.d.ts.map +1 -0
- package/dist/core/discovery/cluster-view.js +235 -0
- package/dist/core/discovery/cluster-view.js.map +1 -0
- package/dist/core/discovery/scanner.d.ts +70 -0
- package/dist/core/discovery/scanner.d.ts.map +1 -0
- package/dist/core/discovery/scanner.js +197 -0
- package/dist/core/discovery/scanner.js.map +1 -0
- package/dist/core/discovery/topology.d.ts +118 -0
- package/dist/core/discovery/topology.d.ts.map +1 -0
- package/dist/core/discovery/topology.js +550 -0
- package/dist/core/discovery/topology.js.map +1 -0
- package/dist/core/failover/candidate-selector.d.ts +46 -0
- package/dist/core/failover/candidate-selector.d.ts.map +1 -0
- package/dist/core/failover/candidate-selector.js +70 -0
- package/dist/core/failover/candidate-selector.js.map +1 -0
- package/dist/core/failover/executor.d.ts +104 -0
- package/dist/core/failover/executor.d.ts.map +1 -0
- package/dist/core/failover/executor.js +248 -0
- package/dist/core/failover/executor.js.map +1 -0
- package/dist/core/failover/operation-builder.d.ts +71 -0
- package/dist/core/failover/operation-builder.d.ts.map +1 -0
- package/dist/core/failover/operation-builder.js +157 -0
- package/dist/core/failover/operation-builder.js.map +1 -0
- package/dist/core/failover/operation-runner.d.ts +75 -0
- package/dist/core/failover/operation-runner.d.ts.map +1 -0
- package/dist/core/failover/operation-runner.js +191 -0
- package/dist/core/failover/operation-runner.js.map +1 -0
- package/dist/core/failover/promoter.d.ts +33 -0
- package/dist/core/failover/promoter.d.ts.map +1 -0
- package/dist/core/failover/promoter.js +97 -0
- package/dist/core/failover/promoter.js.map +1 -0
- package/dist/core/failover/recovery-manager.d.ts +47 -0
- package/dist/core/failover/recovery-manager.d.ts.map +1 -0
- package/dist/core/failover/recovery-manager.js +145 -0
- package/dist/core/failover/recovery-manager.js.map +1 -0
- package/dist/core/failover/types.d.ts +54 -0
- package/dist/core/failover/types.d.ts.map +1 -0
- package/dist/core/failover/types.js +8 -0
- package/dist/core/failover/types.js.map +1 -0
- package/dist/core/monitoring/collector.d.ts +25 -0
- package/dist/core/monitoring/collector.d.ts.map +1 -0
- package/dist/core/monitoring/collector.js +115 -0
- package/dist/core/monitoring/collector.js.map +1 -0
- package/dist/core/monitoring/exporters.d.ts +49 -0
- package/dist/core/monitoring/exporters.d.ts.map +1 -0
- package/dist/core/monitoring/exporters.js +126 -0
- package/dist/core/monitoring/exporters.js.map +1 -0
- package/dist/core/routing/proxysql-manager.d.ts +213 -0
- package/dist/core/routing/proxysql-manager.d.ts.map +1 -0
- package/dist/core/routing/proxysql-manager.js +632 -0
- package/dist/core/routing/proxysql-manager.js.map +1 -0
- package/dist/core/sync/replica-recovery.d.ts +40 -0
- package/dist/core/sync/replica-recovery.d.ts.map +1 -0
- package/dist/core/sync/replica-recovery.js +134 -0
- package/dist/core/sync/replica-recovery.js.map +1 -0
- package/dist/core/sync/sync-coordinator.d.ts +83 -0
- package/dist/core/sync/sync-coordinator.d.ts.map +1 -0
- package/dist/core/sync/sync-coordinator.js +254 -0
- package/dist/core/sync/sync-coordinator.js.map +1 -0
- package/dist/core/sync/topology-watcher.d.ts +76 -0
- package/dist/core/sync/topology-watcher.d.ts.map +1 -0
- package/dist/core/sync/topology-watcher.js +222 -0
- package/dist/core/sync/topology-watcher.js.map +1 -0
- package/dist/core/sync/types.d.ts +85 -0
- package/dist/core/sync/types.d.ts.map +1 -0
- package/dist/core/sync/types.js +8 -0
- package/dist/core/sync/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +212 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +153 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/database.d.ts +62 -0
- package/dist/utils/database.d.ts.map +1 -0
- package/dist/utils/database.js +257 -0
- package/dist/utils/database.js.map +1 -0
- package/dist/utils/exceptions.d.ts +69 -0
- package/dist/utils/exceptions.d.ts.map +1 -0
- package/dist/utils/exceptions.js +121 -0
- package/dist/utils/exceptions.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +90 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mysql-client.d.ts +43 -0
- package/dist/utils/mysql-client.d.ts.map +1 -0
- package/dist/utils/mysql-client.js +125 -0
- package/dist/utils/mysql-client.js.map +1 -0
- package/docker/Dockerfile +61 -0
- package/docker/Dockerfile.node +41 -0
- package/docker/grafana/dashboards/clawsql.json +212 -0
- package/docker/grafana/provisioning/dashboards/dashboards.yml +13 -0
- package/docker/grafana/provisioning/datasources/datasources.yml +12 -0
- package/docker/init/primary.sql +26 -0
- package/docker/init/replica.sql +16 -0
- package/docker/orchestrator/orchestrator.conf.json +98 -0
- package/docker/prometheus/prometheus.yml +45 -0
- package/docker/proxysql/entrypoint.sh +8 -0
- package/docker/proxysql/init.sql.demo +30 -0
- package/docker/proxysql/proxysql.cnf +38 -0
- package/docker-compose.demo.yml +115 -0
- package/docker-compose.yml +217 -0
- package/init/primary.sql +19 -0
- package/init/replica.sql +13 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAMH,eAAO,MAAM,kBAAkB,8CAA4C,CAAC;AAC5E,eAAO,MAAM,mBAAmB,yEAAuE,CAAC;AAExG,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWlC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AAMH,eAAO,MAAM,mBAAmB,8GAG9B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcpC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAMH,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;EAIxB,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ClawSQL - API Schemas
|
|
4
|
+
*
|
|
5
|
+
* Zod schemas for request/response validation.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ErrorResponse = exports.SuccessResponse = exports.MonitoringHealthResponse = exports.HealthStatusResponse = exports.FailoverListResponse = exports.FailoverOperationResponse = exports.FailoverRequest = exports.FailoverStateSchema = exports.ClusterListResponse = exports.ClusterResponse = exports.ClusterCreateRequest = exports.DiscoveryResponse = exports.InstanceHealthResponse = exports.InstanceMetricsResponse = exports.InstanceListResponse = exports.InstanceResponse = exports.MaintenanceRequest = exports.InstanceDiscoverRequest = exports.InstanceCreateRequest = exports.InstanceStateSchema = exports.InstanceRoleSchema = exports.PaginationQuery = void 0;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Common Schemas
|
|
12
|
+
// =============================================================================
|
|
13
|
+
exports.PaginationQuery = zod_1.z.object({
|
|
14
|
+
page: zod_1.z.coerce.number().int().min(1).default(1),
|
|
15
|
+
pageSize: zod_1.z.coerce.number().int().min(1).max(100).default(20),
|
|
16
|
+
});
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Instance Schemas
|
|
19
|
+
// =============================================================================
|
|
20
|
+
exports.InstanceRoleSchema = zod_1.z.enum(['primary', 'replica', 'unknown']);
|
|
21
|
+
exports.InstanceStateSchema = zod_1.z.enum(['online', 'offline', 'recovering', 'failed', 'maintenance']);
|
|
22
|
+
exports.InstanceCreateRequest = zod_1.z.object({
|
|
23
|
+
host: zod_1.z.string().min(1),
|
|
24
|
+
port: zod_1.z.coerce.number().int().min(1).max(65535).default(3306),
|
|
25
|
+
cluster_id: zod_1.z.string().optional(),
|
|
26
|
+
labels: zod_1.z.record(zod_1.z.string()).optional(),
|
|
27
|
+
});
|
|
28
|
+
exports.InstanceDiscoverRequest = zod_1.z.object({
|
|
29
|
+
network_segments: zod_1.z.array(zod_1.z.string()).min(1),
|
|
30
|
+
port_range: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(),
|
|
31
|
+
});
|
|
32
|
+
exports.MaintenanceRequest = zod_1.z.object({
|
|
33
|
+
reason: zod_1.z.string().min(1),
|
|
34
|
+
duration_minutes: zod_1.z.number().int().min(1).max(1440).default(60),
|
|
35
|
+
});
|
|
36
|
+
exports.InstanceResponse = zod_1.z.object({
|
|
37
|
+
instance_id: zod_1.z.string(),
|
|
38
|
+
host: zod_1.z.string(),
|
|
39
|
+
port: zod_1.z.number(),
|
|
40
|
+
server_id: zod_1.z.number().nullable(),
|
|
41
|
+
role: exports.InstanceRoleSchema,
|
|
42
|
+
state: exports.InstanceStateSchema,
|
|
43
|
+
version: zod_1.z.string().nullable(),
|
|
44
|
+
cluster_id: zod_1.z.string().nullable(),
|
|
45
|
+
replication_lag: zod_1.z.number().nullable(),
|
|
46
|
+
labels: zod_1.z.record(zod_1.z.string()),
|
|
47
|
+
last_seen: zod_1.z.coerce.date(),
|
|
48
|
+
created_at: zod_1.z.coerce.date(),
|
|
49
|
+
});
|
|
50
|
+
exports.InstanceListResponse = zod_1.z.object({
|
|
51
|
+
items: zod_1.z.array(exports.InstanceResponse),
|
|
52
|
+
total: zod_1.z.number(),
|
|
53
|
+
page: zod_1.z.number(),
|
|
54
|
+
page_size: zod_1.z.number(),
|
|
55
|
+
});
|
|
56
|
+
exports.InstanceMetricsResponse = zod_1.z.object({
|
|
57
|
+
instance_id: zod_1.z.string(),
|
|
58
|
+
timestamp: zod_1.z.coerce.date(),
|
|
59
|
+
replication_lag_seconds: zod_1.z.number().nullable(),
|
|
60
|
+
replication_io_running: zod_1.z.boolean(),
|
|
61
|
+
replication_sql_running: zod_1.z.boolean(),
|
|
62
|
+
connections_current: zod_1.z.number(),
|
|
63
|
+
connections_max: zod_1.z.number(),
|
|
64
|
+
queries_per_second: zod_1.z.number(),
|
|
65
|
+
innodb_buffer_pool_hit_rate: zod_1.z.number(),
|
|
66
|
+
uptime_seconds: zod_1.z.number(),
|
|
67
|
+
});
|
|
68
|
+
exports.InstanceHealthResponse = zod_1.z.object({
|
|
69
|
+
instance_id: zod_1.z.string(),
|
|
70
|
+
status: zod_1.z.enum(['healthy', 'unhealthy', 'unknown']),
|
|
71
|
+
checks: zod_1.z.array(zod_1.z.object({
|
|
72
|
+
check_name: zod_1.z.string(),
|
|
73
|
+
status: zod_1.z.enum(['healthy', 'unhealthy', 'unknown']),
|
|
74
|
+
value: zod_1.z.number(),
|
|
75
|
+
message: zod_1.z.string(),
|
|
76
|
+
})),
|
|
77
|
+
});
|
|
78
|
+
exports.DiscoveryResponse = zod_1.z.object({
|
|
79
|
+
task_id: zod_1.z.string(),
|
|
80
|
+
status: zod_1.z.enum(['pending', 'running', 'completed', 'failed']),
|
|
81
|
+
network_segments: zod_1.z.array(zod_1.z.string()),
|
|
82
|
+
instances_found: zod_1.z.number(),
|
|
83
|
+
instances: zod_1.z.array(exports.InstanceResponse).optional(),
|
|
84
|
+
error: zod_1.z.string().optional(),
|
|
85
|
+
started_at: zod_1.z.coerce.date().optional(),
|
|
86
|
+
completed_at: zod_1.z.coerce.date().optional(),
|
|
87
|
+
});
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// Cluster Schemas
|
|
90
|
+
// =============================================================================
|
|
91
|
+
exports.ClusterCreateRequest = zod_1.z.object({
|
|
92
|
+
name: zod_1.z.string().min(1),
|
|
93
|
+
description: zod_1.z.string().optional(),
|
|
94
|
+
});
|
|
95
|
+
exports.ClusterResponse = zod_1.z.object({
|
|
96
|
+
cluster_id: zod_1.z.string(),
|
|
97
|
+
name: zod_1.z.string(),
|
|
98
|
+
description: zod_1.z.string().nullable(),
|
|
99
|
+
primary: exports.InstanceResponse.nullable(),
|
|
100
|
+
replicas: zod_1.z.array(exports.InstanceResponse),
|
|
101
|
+
instance_count: zod_1.z.number(),
|
|
102
|
+
health_status: zod_1.z.enum(['healthy', 'degraded', 'unhealthy', 'unknown']),
|
|
103
|
+
created_at: zod_1.z.coerce.date(),
|
|
104
|
+
updated_at: zod_1.z.coerce.date(),
|
|
105
|
+
});
|
|
106
|
+
exports.ClusterListResponse = zod_1.z.object({
|
|
107
|
+
items: zod_1.z.array(exports.ClusterResponse),
|
|
108
|
+
total: zod_1.z.number(),
|
|
109
|
+
page: zod_1.z.number(),
|
|
110
|
+
page_size: zod_1.z.number(),
|
|
111
|
+
});
|
|
112
|
+
// =============================================================================
|
|
113
|
+
// Failover Schemas
|
|
114
|
+
// =============================================================================
|
|
115
|
+
exports.FailoverStateSchema = zod_1.z.enum([
|
|
116
|
+
'idle', 'detecting', 'candidate_selection', 'promoting',
|
|
117
|
+
'reconfiguring', 'completed', 'failed'
|
|
118
|
+
]);
|
|
119
|
+
exports.FailoverRequest = zod_1.z.object({
|
|
120
|
+
target_instance_id: zod_1.z.string().optional(),
|
|
121
|
+
reason: zod_1.z.string().optional(),
|
|
122
|
+
});
|
|
123
|
+
exports.FailoverOperationResponse = zod_1.z.object({
|
|
124
|
+
operation_id: zod_1.z.string(),
|
|
125
|
+
cluster_id: zod_1.z.string(),
|
|
126
|
+
old_primary_id: zod_1.z.string().nullable(),
|
|
127
|
+
new_primary_id: zod_1.z.string().nullable(),
|
|
128
|
+
state: exports.FailoverStateSchema,
|
|
129
|
+
started_at: zod_1.z.string().nullable(),
|
|
130
|
+
completed_at: zod_1.z.string().nullable(),
|
|
131
|
+
duration_seconds: zod_1.z.number().nullable(),
|
|
132
|
+
steps: zod_1.z.array(zod_1.z.string()),
|
|
133
|
+
error: zod_1.z.string().nullable(),
|
|
134
|
+
manual: zod_1.z.boolean(),
|
|
135
|
+
reason: zod_1.z.string().nullable(),
|
|
136
|
+
triggered_by: zod_1.z.string().nullable(),
|
|
137
|
+
});
|
|
138
|
+
exports.FailoverListResponse = zod_1.z.object({
|
|
139
|
+
items: zod_1.z.array(exports.FailoverOperationResponse),
|
|
140
|
+
total: zod_1.z.number(),
|
|
141
|
+
});
|
|
142
|
+
// =============================================================================
|
|
143
|
+
// Monitoring Schemas
|
|
144
|
+
// =============================================================================
|
|
145
|
+
exports.HealthStatusResponse = zod_1.z.object({
|
|
146
|
+
status: zod_1.z.enum(['healthy', 'unhealthy']),
|
|
147
|
+
version: zod_1.z.string(),
|
|
148
|
+
uptime_seconds: zod_1.z.number().optional(),
|
|
149
|
+
});
|
|
150
|
+
exports.MonitoringHealthResponse = zod_1.z.object({
|
|
151
|
+
status: zod_1.z.enum(['healthy', 'degraded', 'unhealthy']),
|
|
152
|
+
services: zod_1.z.object({
|
|
153
|
+
api: zod_1.z.enum(['healthy', 'unhealthy']),
|
|
154
|
+
orchestrator: zod_1.z.enum(['healthy', 'unhealthy']),
|
|
155
|
+
proxysql: zod_1.z.enum(['healthy', 'unhealthy']),
|
|
156
|
+
prometheus: zod_1.z.enum(['healthy', 'unhealthy']),
|
|
157
|
+
}),
|
|
158
|
+
timestamp: zod_1.z.coerce.date(),
|
|
159
|
+
});
|
|
160
|
+
// =============================================================================
|
|
161
|
+
// Common Response Schemas
|
|
162
|
+
// =============================================================================
|
|
163
|
+
exports.SuccessResponse = zod_1.z.object({
|
|
164
|
+
message: zod_1.z.string(),
|
|
165
|
+
});
|
|
166
|
+
exports.ErrorResponse = zod_1.z.object({
|
|
167
|
+
error: zod_1.z.string(),
|
|
168
|
+
message: zod_1.z.string(),
|
|
169
|
+
details: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/schemas/index.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawSQL - Fastify Application
|
|
3
|
+
*/
|
|
4
|
+
import { ZodTypeProvider } from 'fastify-type-provider-zod';
|
|
5
|
+
/**
|
|
6
|
+
* Create and configure the Fastify application
|
|
7
|
+
*/
|
|
8
|
+
export declare function createApp(): Promise<import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, ZodTypeProvider>>;
|
|
9
|
+
/**
|
|
10
|
+
* Start the server
|
|
11
|
+
*/
|
|
12
|
+
export declare function startServer(): Promise<import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, ZodTypeProvider>>;
|
|
13
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAGL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAiBnC;;GAEG;AACH,wBAAsB,SAAS,wSAsI9B;AAED;;GAEG;AACH,wBAAsB,WAAW,wSA6ChC"}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ClawSQL - Fastify Application
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createApp = createApp;
|
|
10
|
+
exports.startServer = startServer;
|
|
11
|
+
const fastify_1 = __importDefault(require("fastify"));
|
|
12
|
+
const cors_1 = __importDefault(require("@fastify/cors"));
|
|
13
|
+
const helmet_1 = __importDefault(require("@fastify/helmet"));
|
|
14
|
+
const swagger_1 = __importDefault(require("@fastify/swagger"));
|
|
15
|
+
const swagger_ui_1 = __importDefault(require("@fastify/swagger-ui"));
|
|
16
|
+
const fastify_type_provider_zod_1 = require("fastify-type-provider-zod");
|
|
17
|
+
const settings_js_1 = require("./config/settings.js");
|
|
18
|
+
const logger_js_1 = require("./utils/logger.js");
|
|
19
|
+
const database_js_1 = require("./utils/database.js");
|
|
20
|
+
const exceptions_js_1 = require("./utils/exceptions.js");
|
|
21
|
+
// Import routes
|
|
22
|
+
const instances_js_1 = __importDefault(require("./api/routes/instances.js"));
|
|
23
|
+
const clusters_js_1 = __importDefault(require("./api/routes/clusters.js"));
|
|
24
|
+
const failover_js_1 = __importDefault(require("./api/routes/failover.js"));
|
|
25
|
+
const monitoring_js_1 = __importDefault(require("./api/routes/monitoring.js"));
|
|
26
|
+
const config_js_1 = __importDefault(require("./api/routes/config.js"));
|
|
27
|
+
const webhooks_js_1 = __importDefault(require("./api/routes/webhooks.js"));
|
|
28
|
+
// Import sync services
|
|
29
|
+
const topology_watcher_js_1 = require("./core/sync/topology-watcher.js");
|
|
30
|
+
/**
|
|
31
|
+
* Create and configure the Fastify application
|
|
32
|
+
*/
|
|
33
|
+
async function createApp() {
|
|
34
|
+
const settings = (0, settings_js_1.getSettings)();
|
|
35
|
+
(0, logger_js_1.setupLogger)();
|
|
36
|
+
const fastify = (0, fastify_1.default)({
|
|
37
|
+
logger: {
|
|
38
|
+
level: settings.logging.level.toLowerCase(),
|
|
39
|
+
transport: settings.logging.format === 'text' || process.env.NODE_ENV !== 'production'
|
|
40
|
+
? {
|
|
41
|
+
target: 'pino-pretty',
|
|
42
|
+
options: {
|
|
43
|
+
colorize: true,
|
|
44
|
+
translateTime: 'SYS:standard',
|
|
45
|
+
ignore: 'pid,hostname',
|
|
46
|
+
},
|
|
47
|
+
}
|
|
48
|
+
: undefined,
|
|
49
|
+
},
|
|
50
|
+
}).withTypeProvider();
|
|
51
|
+
// Set up Zod validation
|
|
52
|
+
fastify.setValidatorCompiler(fastify_type_provider_zod_1.validatorCompiler);
|
|
53
|
+
fastify.setSerializerCompiler(fastify_type_provider_zod_1.serializerCompiler);
|
|
54
|
+
// Register plugins
|
|
55
|
+
await fastify.register(helmet_1.default, {
|
|
56
|
+
contentSecurityPolicy: {
|
|
57
|
+
directives: {
|
|
58
|
+
defaultSrc: ["'self'"],
|
|
59
|
+
styleSrc: ["'self'", "'unsafe-inline'"],
|
|
60
|
+
imgSrc: ["'self'", 'data:', 'validator.swagger.io'],
|
|
61
|
+
scriptSrc: ["'self'", "'unsafe-inline'"],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
await fastify.register(cors_1.default, {
|
|
66
|
+
origin: true,
|
|
67
|
+
credentials: true,
|
|
68
|
+
});
|
|
69
|
+
// Swagger documentation
|
|
70
|
+
await fastify.register(swagger_1.default, {
|
|
71
|
+
openapi: {
|
|
72
|
+
openapi: '3.0.0',
|
|
73
|
+
info: {
|
|
74
|
+
title: 'ClawSQL',
|
|
75
|
+
description: `
|
|
76
|
+
## MySQL Cluster Automation and Operations Management System
|
|
77
|
+
|
|
78
|
+
ClawSQL provides comprehensive automation for MySQL cluster management:
|
|
79
|
+
|
|
80
|
+
### Features
|
|
81
|
+
- **Instance Discovery**: Automatically discover MySQL instances in your network
|
|
82
|
+
- **Cluster Monitoring**: Real-time monitoring with health checks and alerts
|
|
83
|
+
- **Failover Management**: Automatic and manual failover with candidate selection
|
|
84
|
+
- **Load Management**: Read/write splitting via ProxySQL integration
|
|
85
|
+
- **Configuration Management**: Versioned configuration with rollback capability
|
|
86
|
+
|
|
87
|
+
### Architecture
|
|
88
|
+
- Orchestrator for topology management
|
|
89
|
+
- ProxySQL for query routing
|
|
90
|
+
- Prometheus for metrics collection
|
|
91
|
+
- Grafana for visualization
|
|
92
|
+
`,
|
|
93
|
+
version: '0.1.0',
|
|
94
|
+
},
|
|
95
|
+
servers: [
|
|
96
|
+
{ url: '/', description: 'Current server' },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
await fastify.register(swagger_ui_1.default, {
|
|
101
|
+
routePrefix: '/docs',
|
|
102
|
+
uiConfig: {
|
|
103
|
+
docExpansion: 'list',
|
|
104
|
+
deepLinking: true,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
// Health check endpoint
|
|
108
|
+
fastify.get('/health', async () => {
|
|
109
|
+
return {
|
|
110
|
+
status: 'healthy',
|
|
111
|
+
version: settings.appVersion,
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
// Root endpoint
|
|
115
|
+
fastify.get('/', async () => {
|
|
116
|
+
return {
|
|
117
|
+
name: 'ClawSQL',
|
|
118
|
+
version: '0.1.0',
|
|
119
|
+
description: 'MySQL Cluster Automation and Operations Management',
|
|
120
|
+
docs: '/docs',
|
|
121
|
+
health: '/health',
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
// Register API routes
|
|
125
|
+
await fastify.register(instances_js_1.default, { prefix: '/api/v1/instances' });
|
|
126
|
+
await fastify.register(clusters_js_1.default, { prefix: '/api/v1/clusters' });
|
|
127
|
+
await fastify.register(failover_js_1.default, { prefix: '/api/v1/failover' });
|
|
128
|
+
await fastify.register(monitoring_js_1.default, { prefix: '/api/v1/monitoring' });
|
|
129
|
+
await fastify.register(config_js_1.default, { prefix: '/api/v1/config' });
|
|
130
|
+
await fastify.register(webhooks_js_1.default, { prefix: '/api/v1/webhooks' });
|
|
131
|
+
// Error handler
|
|
132
|
+
fastify.setErrorHandler((error, request, reply) => {
|
|
133
|
+
if (error instanceof exceptions_js_1.ClawSQLError) {
|
|
134
|
+
reply.code(400).send(error.toJSON());
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// Fastify validation errors
|
|
138
|
+
if (error.validation) {
|
|
139
|
+
reply.code(400).send({
|
|
140
|
+
error: 'VALIDATION_ERROR',
|
|
141
|
+
message: error.message,
|
|
142
|
+
details: error.validation,
|
|
143
|
+
});
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// Log unexpected errors
|
|
147
|
+
request.log.error(error);
|
|
148
|
+
reply.code(500).send({
|
|
149
|
+
error: 'INTERNAL_ERROR',
|
|
150
|
+
message: 'An internal error occurred',
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
return fastify;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Start the server
|
|
157
|
+
*/
|
|
158
|
+
async function startServer() {
|
|
159
|
+
const settings = (0, settings_js_1.getSettings)();
|
|
160
|
+
const fastify = await createApp();
|
|
161
|
+
// Initialize database
|
|
162
|
+
try {
|
|
163
|
+
await (0, database_js_1.initDatabase)();
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
fastify.log.warn({ error }, 'Failed to initialize database, continuing without persistence');
|
|
167
|
+
}
|
|
168
|
+
// Start listening
|
|
169
|
+
try {
|
|
170
|
+
await fastify.listen({
|
|
171
|
+
host: settings.api.host,
|
|
172
|
+
port: settings.api.port,
|
|
173
|
+
});
|
|
174
|
+
fastify.log.info(`ClawSQL API running at http://${settings.api.host}:${settings.api.port}`);
|
|
175
|
+
fastify.log.info(`API Docs available at http://${settings.api.host}:${settings.api.port}/docs`);
|
|
176
|
+
// Start topology watcher for automatic ProxySQL sync
|
|
177
|
+
const topologyWatcher = (0, topology_watcher_js_1.getTopologyWatcher)();
|
|
178
|
+
await topologyWatcher.start();
|
|
179
|
+
fastify.log.info('Topology watcher started - ProxySQL will auto-sync on topology changes');
|
|
180
|
+
// Graceful shutdown handlers
|
|
181
|
+
const shutdown = async (signal) => {
|
|
182
|
+
fastify.log.info(`Received ${signal}, shutting down gracefully...`);
|
|
183
|
+
topologyWatcher.stop();
|
|
184
|
+
await fastify.close();
|
|
185
|
+
fastify.log.info('Shutdown complete');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
};
|
|
188
|
+
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
189
|
+
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
190
|
+
return fastify;
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
fastify.log.error(error);
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ClawSQL CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* clawsql Start interactive CLI
|
|
7
|
+
* clawsql --server Start HTTP API server
|
|
8
|
+
* clawsql -c "/topology" Execute single command
|
|
9
|
+
* clawsql --help Show help
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=clawsql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clawsql.d.ts","sourceRoot":"","sources":["../../src/bin/clawsql.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* ClawSQL CLI Entry Point
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* clawsql Start interactive CLI
|
|
8
|
+
* clawsql --server Start HTTP API server
|
|
9
|
+
* clawsql -c "/topology" Execute single command
|
|
10
|
+
* clawsql --help Show help
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
// Set CLI mode early to suppress logs
|
|
14
|
+
process.env.CLAWSQL_CLI_MODE = 'true';
|
|
15
|
+
const commander_1 = require("commander");
|
|
16
|
+
const index_js_1 = require("../cli/index.js");
|
|
17
|
+
const app_js_1 = require("../app.js");
|
|
18
|
+
const settings_js_1 = require("../config/settings.js");
|
|
19
|
+
const settings = (0, settings_js_1.getSettings)();
|
|
20
|
+
commander_1.program
|
|
21
|
+
.name('clawsql')
|
|
22
|
+
.description('MySQL Cluster Automation and Operations Management CLI')
|
|
23
|
+
.version(settings.appVersion)
|
|
24
|
+
.option('-s, --server', 'Start HTTP API server instead of CLI')
|
|
25
|
+
.option('-c, --command <cmd>', 'Execute a single command and exit')
|
|
26
|
+
.option('--json', 'Output in JSON format (with -c)')
|
|
27
|
+
.action(async (options) => {
|
|
28
|
+
if (options.server) {
|
|
29
|
+
// Start HTTP API server
|
|
30
|
+
console.log('Starting ClawSQL HTTP API server...');
|
|
31
|
+
await (0, app_js_1.startServer)();
|
|
32
|
+
}
|
|
33
|
+
else if (options.command) {
|
|
34
|
+
// Execute single command
|
|
35
|
+
await (0, index_js_1.executeSingleCommand)(options.command, { json: options.json });
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Start interactive CLI
|
|
39
|
+
(0, index_js_1.startCLI)();
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
.parse();
|
|
43
|
+
//# sourceMappingURL=clawsql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clawsql.js","sourceRoot":"","sources":["../../src/bin/clawsql.ts"],"names":[],"mappings":";;AACA;;;;;;;;GAQG;;AAEH,sCAAsC;AACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC;AAEtC,yCAAoC;AACpC,8CAAiE;AACjE,sCAAwC;AACxC,uDAAoD;AAEpD,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;AAE/B,mBAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC5B,MAAM,CAAC,cAAc,EAAE,sCAAsC,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAA+D,EAAE,EAAE;IAChF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,IAAA,oBAAW,GAAE,CAAC;IACtB,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,yBAAyB;QACzB,MAAM,IAAA,+BAAoB,EAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,IAAA,mBAAQ,GAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC;KACD,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawSQL CLI - AI Agent Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles natural language input via OpenClaw or direct LLM calls.
|
|
5
|
+
*/
|
|
6
|
+
import { CLIContext } from '../registry.js';
|
|
7
|
+
/**
|
|
8
|
+
* Agent configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface AgentConfig {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
provider: 'anthropic' | 'openai' | 'openclaw';
|
|
13
|
+
maxIterations: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Streaming callback type
|
|
17
|
+
*/
|
|
18
|
+
export type StreamCallback = (chunk: string) => void;
|
|
19
|
+
/**
|
|
20
|
+
* AI Agent for ClawSQL CLI
|
|
21
|
+
*/
|
|
22
|
+
export declare class AIAgent {
|
|
23
|
+
private provider;
|
|
24
|
+
private tools;
|
|
25
|
+
private conversationHistory;
|
|
26
|
+
private config;
|
|
27
|
+
private openclawAvailable;
|
|
28
|
+
constructor(ctx: CLIContext, config?: Partial<AgentConfig>);
|
|
29
|
+
/**
|
|
30
|
+
* Create the LLM provider based on configuration
|
|
31
|
+
*/
|
|
32
|
+
private createProvider;
|
|
33
|
+
/**
|
|
34
|
+
* Check if the agent is properly configured
|
|
35
|
+
*/
|
|
36
|
+
isConfigured(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get the provider name
|
|
39
|
+
*/
|
|
40
|
+
getProviderName(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Process a natural language input
|
|
43
|
+
* @param input The user's natural language input
|
|
44
|
+
* @param onChunk Optional callback for streaming output chunks
|
|
45
|
+
* @param signal Optional AbortSignal to cancel the operation
|
|
46
|
+
*/
|
|
47
|
+
process(input: string, onChunk?: StreamCallback, signal?: AbortSignal): Promise<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Process using direct LLM call
|
|
50
|
+
*/
|
|
51
|
+
private processWithLLM;
|
|
52
|
+
/**
|
|
53
|
+
* Build context for OpenClaw
|
|
54
|
+
*/
|
|
55
|
+
private buildOpenClawContext;
|
|
56
|
+
/**
|
|
57
|
+
* Send a chat request to the LLM
|
|
58
|
+
*/
|
|
59
|
+
private sendChat;
|
|
60
|
+
/**
|
|
61
|
+
* Execute tool calls
|
|
62
|
+
*/
|
|
63
|
+
private executeTools;
|
|
64
|
+
/**
|
|
65
|
+
* Clear conversation history
|
|
66
|
+
*/
|
|
67
|
+
reset(): void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create an AI agent instance
|
|
71
|
+
*/
|
|
72
|
+
export declare function createAIAgent(ctx: CLIContext, config?: Partial<AgentConfig>): AIAgent;
|
|
73
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/cli/agent/handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAuBrD;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,iBAAiB,CAAwB;gBAErC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAe1D;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,YAAY,IAAI,OAAO;IAOvB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;;OAKG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuC7F;;OAEG;YACW,cAAc;IA4D5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;YACW,QAAQ;IAiBtB;;OAEG;YACW,YAAY;IAmC1B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAErF"}
|