clawsql 0.2.1 → 0.2.3
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/README.md +25 -5
- package/dist/bin/clawsql.js +0 -0
- package/dist/cli/agent/handler.d.ts +13 -31
- package/dist/cli/agent/handler.d.ts.map +1 -1
- package/dist/cli/agent/handler.js +111 -149
- package/dist/cli/agent/handler.js.map +1 -1
- package/dist/cli/agent/index.d.ts +2 -1
- package/dist/cli/agent/index.d.ts.map +1 -1
- package/dist/cli/agent/index.js +7 -1
- package/dist/cli/agent/index.js.map +1 -1
- package/dist/cli/agent/openclaw-integration.d.ts +92 -25
- package/dist/cli/agent/openclaw-integration.d.ts.map +1 -1
- package/dist/cli/agent/openclaw-integration.js +312 -195
- package/dist/cli/agent/openclaw-integration.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +26 -15
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +0 -4
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +232 -581
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/openclaw.d.ts +9 -0
- package/dist/cli/commands/openclaw.d.ts.map +1 -0
- package/dist/cli/commands/openclaw.js +236 -0
- package/dist/cli/commands/openclaw.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +264 -8
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +7 -34
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl.js +1 -1
- package/dist/cli/repl.js.map +1 -1
- package/dist/cli/utils/ai-config.d.ts +32 -0
- package/dist/cli/utils/ai-config.d.ts.map +1 -0
- package/dist/cli/utils/ai-config.js +78 -0
- package/dist/cli/utils/ai-config.js.map +1 -0
- package/dist/cli/utils/docker-files.d.ts.map +1 -1
- package/dist/cli/utils/docker-files.js +2 -0
- package/dist/cli/utils/docker-files.js.map +1 -1
- package/docker/openclaw/entrypoint.sh +102 -0
- package/docker/openclaw/openclaw.json +4 -1
- package/docker/orchestrator/orchestrator-schema.sql +837 -0
- package/docker-compose.yml +22 -14
- package/init/metadata.sql +14 -2
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawSQL CLI - AI Config Detection
|
|
3
|
+
*
|
|
4
|
+
* Detects AI configuration from environment variables.
|
|
5
|
+
* Enables seamless integration with existing AI tool setups (Claude Code, etc.)
|
|
6
|
+
*/
|
|
7
|
+
export interface AIDetectedConfig {
|
|
8
|
+
provider: 'anthropic' | 'openai' | 'none';
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
model?: string;
|
|
12
|
+
source: 'environment' | 'none';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Detect AI configuration from environment variables
|
|
16
|
+
*
|
|
17
|
+
* Priority: Anthropic > OpenAI (Anthropic is most common for Claude Code users)
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectAIConfigFromEnv(): AIDetectedConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Check if any AI configuration is detected
|
|
22
|
+
*/
|
|
23
|
+
export declare function hasAIConfigInEnv(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get display string for detected config
|
|
26
|
+
*/
|
|
27
|
+
export declare function getAIConfigDisplay(config: AIDetectedConfig): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get environment variables to pass to OpenClaw container
|
|
30
|
+
*/
|
|
31
|
+
export declare function getAIEnvVars(): Record<string, string>;
|
|
32
|
+
//# sourceMappingURL=ai-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC;CAChC;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CA0BxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAUnE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ClawSQL CLI - AI Config Detection
|
|
4
|
+
*
|
|
5
|
+
* Detects AI configuration from environment variables.
|
|
6
|
+
* Enables seamless integration with existing AI tool setups (Claude Code, etc.)
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.detectAIConfigFromEnv = detectAIConfigFromEnv;
|
|
10
|
+
exports.hasAIConfigInEnv = hasAIConfigInEnv;
|
|
11
|
+
exports.getAIConfigDisplay = getAIConfigDisplay;
|
|
12
|
+
exports.getAIEnvVars = getAIEnvVars;
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Detection Functions
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Detect AI configuration from environment variables
|
|
18
|
+
*
|
|
19
|
+
* Priority: Anthropic > OpenAI (Anthropic is most common for Claude Code users)
|
|
20
|
+
*/
|
|
21
|
+
function detectAIConfigFromEnv() {
|
|
22
|
+
// Check Anthropic first (most common for Claude Code users)
|
|
23
|
+
const anthropicKey = process.env.ANTHROPIC_API_KEY;
|
|
24
|
+
if (anthropicKey) {
|
|
25
|
+
return {
|
|
26
|
+
provider: 'anthropic',
|
|
27
|
+
apiKey: anthropicKey,
|
|
28
|
+
baseUrl: process.env.ANTHROPIC_BASE_URL,
|
|
29
|
+
model: process.env.ANTHROPIC_MODEL,
|
|
30
|
+
source: 'environment',
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// Check OpenAI
|
|
34
|
+
const openaiKey = process.env.OPENAI_API_KEY;
|
|
35
|
+
if (openaiKey) {
|
|
36
|
+
return {
|
|
37
|
+
provider: 'openai',
|
|
38
|
+
apiKey: openaiKey,
|
|
39
|
+
baseUrl: process.env.OPENAI_BASE_URL,
|
|
40
|
+
model: process.env.OPENAI_MODEL,
|
|
41
|
+
source: 'environment',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return { provider: 'none', source: 'none' };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if any AI configuration is detected
|
|
48
|
+
*/
|
|
49
|
+
function hasAIConfigInEnv() {
|
|
50
|
+
return !!(process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get display string for detected config
|
|
54
|
+
*/
|
|
55
|
+
function getAIConfigDisplay(config) {
|
|
56
|
+
if (config.provider === 'none') {
|
|
57
|
+
return 'bundled qwen (default)';
|
|
58
|
+
}
|
|
59
|
+
const parts = [config.provider];
|
|
60
|
+
if (config.model) {
|
|
61
|
+
parts.push(config.model);
|
|
62
|
+
}
|
|
63
|
+
return parts.join('/');
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get environment variables to pass to OpenClaw container
|
|
67
|
+
*/
|
|
68
|
+
function getAIEnvVars() {
|
|
69
|
+
return {
|
|
70
|
+
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY ?? '',
|
|
71
|
+
ANTHROPIC_BASE_URL: process.env.ANTHROPIC_BASE_URL ?? '',
|
|
72
|
+
ANTHROPIC_MODEL: process.env.ANTHROPIC_MODEL ?? '',
|
|
73
|
+
OPENAI_API_KEY: process.env.OPENAI_API_KEY ?? '',
|
|
74
|
+
OPENAI_BASE_URL: process.env.OPENAI_BASE_URL ?? '',
|
|
75
|
+
OPENAI_MODEL: process.env.OPENAI_MODEL ?? '',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ai-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../../src/cli/utils/ai-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,sDA0BC;AAKD,4CAEC;AAKD,gDAUC;AAKD,oCASC;AAvED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACvC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YAClC,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAED,eAAe;IACf,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;YAC/B,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAwB;IACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO;QACL,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACtD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QACxD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAClD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;QAChD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAClD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AASD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAsBzC;
|
|
1
|
+
{"version":3,"file":"docker-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AASD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAsBzC;AAoED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2EzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAyBrD"}
|
|
@@ -146,6 +146,8 @@ function fixDockerComposePaths(filePath) {
|
|
|
146
146
|
content = content.replace(/dockerfile: docker\//g, 'dockerfile: ');
|
|
147
147
|
// Fix volume paths: "./docker/orchestrator/..." -> "./orchestrator/..."
|
|
148
148
|
content = content.replace(/\.\/docker\//g, './');
|
|
149
|
+
// Fix entrypoint path for openclaw: "./docker/openclaw/entrypoint.sh" -> "./openclaw/entrypoint.sh"
|
|
150
|
+
content = content.replace(/\.\/docker\/openclaw\/entrypoint\.sh/g, './openclaw/entrypoint.sh');
|
|
149
151
|
fs.writeFileSync(filePath, content);
|
|
150
152
|
}
|
|
151
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-files.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,wCAGC;AAKD,8CAEC;AAYD,0CAsBC;
|
|
1
|
+
{"version":3,"file":"docker-files.js","sourceRoot":"","sources":["../../../src/cli/utils/docker-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# OpenClaw entrypoint for ClawSQL
|
|
3
|
+
# Auto-configures the gateway on first run using environment variables
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
CONFIG_FILE="/data/state/openclaw.json"
|
|
8
|
+
STATE_DIR="/data/state"
|
|
9
|
+
|
|
10
|
+
# Ensure state directory exists
|
|
11
|
+
mkdir -p "$STATE_DIR"
|
|
12
|
+
|
|
13
|
+
# Check if we need to run initial configuration
|
|
14
|
+
if [ ! -f "$CONFIG_FILE" ]; then
|
|
15
|
+
echo "[openclaw-entrypoint] First run - configuring gateway..."
|
|
16
|
+
|
|
17
|
+
# Determine provider configuration from environment
|
|
18
|
+
if [ -n "$ANTHROPIC_API_KEY" ] && [ -n "$ANTHROPIC_BASE_URL" ]; then
|
|
19
|
+
echo "[openclaw-entrypoint] Configuring custom Anthropic-compatible provider..."
|
|
20
|
+
|
|
21
|
+
# Use onboard to configure custom provider
|
|
22
|
+
node openclaw.mjs onboard \
|
|
23
|
+
--non-interactive \
|
|
24
|
+
--accept-risk \
|
|
25
|
+
--auth-choice custom-api-key \
|
|
26
|
+
--custom-api-key "$ANTHROPIC_API_KEY" \
|
|
27
|
+
--custom-base-url "$ANTHROPIC_BASE_URL" \
|
|
28
|
+
--custom-model-id "${ANTHROPIC_MODEL:-claude-3-5-sonnet-20241022}" \
|
|
29
|
+
--custom-compatibility anthropic \
|
|
30
|
+
--gateway-port "${OPENCLAW_GATEWAY_PORT:-18789}" \
|
|
31
|
+
--gateway-token "${OPENCLAW_GATEWAY_TOKEN:-clawsql-openclaw-token}" \
|
|
32
|
+
--gateway-bind lan \
|
|
33
|
+
2>&1 || echo "[openclaw-entrypoint] Warning: onboard returned non-zero"
|
|
34
|
+
|
|
35
|
+
# Ensure LAN binding and control UI settings
|
|
36
|
+
node openclaw.mjs config set gateway.bind lan 2>&1 || true
|
|
37
|
+
node openclaw.mjs config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true 2>&1 || true
|
|
38
|
+
|
|
39
|
+
elif [ -n "$ANTHROPIC_API_KEY" ]; then
|
|
40
|
+
echo "[openclaw-entrypoint] Configuring Anthropic provider..."
|
|
41
|
+
|
|
42
|
+
node openclaw.mjs onboard \
|
|
43
|
+
--non-interactive \
|
|
44
|
+
--accept-risk \
|
|
45
|
+
--auth-choice anthropic-api-key \
|
|
46
|
+
--anthropic-api-key "$ANTHROPIC_API_KEY" \
|
|
47
|
+
--gateway-port "${OPENCLAW_GATEWAY_PORT:-18789}" \
|
|
48
|
+
--gateway-token "${OPENCLAW_GATEWAY_TOKEN:-clawsql-openclaw-token}" \
|
|
49
|
+
--gateway-bind lan \
|
|
50
|
+
2>&1 || true
|
|
51
|
+
|
|
52
|
+
node openclaw.mjs config set gateway.bind lan 2>&1 || true
|
|
53
|
+
node openclaw.mjs config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true 2>&1 || true
|
|
54
|
+
|
|
55
|
+
elif [ -n "$OPENAI_API_KEY" ]; then
|
|
56
|
+
echo "[openclaw-entrypoint] Configuring OpenAI provider..."
|
|
57
|
+
|
|
58
|
+
node openclaw.mjs onboard \
|
|
59
|
+
--non-interactive \
|
|
60
|
+
--accept-risk \
|
|
61
|
+
--auth-choice openai-api-key \
|
|
62
|
+
--openai-api-key "$OPENAI_API_KEY" \
|
|
63
|
+
--gateway-port "${OPENCLAW_GATEWAY_PORT:-18789}" \
|
|
64
|
+
--gateway-token "${OPENCLAW_GATEWAY_TOKEN:-clawsql-openclaw-token}" \
|
|
65
|
+
--gateway-bind lan \
|
|
66
|
+
2>&1 || true
|
|
67
|
+
|
|
68
|
+
node openclaw.mjs config set gateway.bind lan 2>&1 || true
|
|
69
|
+
node openclaw.mjs config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true 2>&1 || true
|
|
70
|
+
|
|
71
|
+
else
|
|
72
|
+
echo "[openclaw-entrypoint] No AI provider configured - using bundled model (limited)"
|
|
73
|
+
|
|
74
|
+
# Create minimal config
|
|
75
|
+
cat > "$CONFIG_FILE" << EOF
|
|
76
|
+
{
|
|
77
|
+
"gateway": {
|
|
78
|
+
"bind": "lan",
|
|
79
|
+
"port": ${OPENCLAW_GATEWAY_PORT:-18789},
|
|
80
|
+
"auth": {
|
|
81
|
+
"mode": "token",
|
|
82
|
+
"token": "${OPENCLAW_GATEWAY_TOKEN:-clawsql-openclaw-token}"
|
|
83
|
+
},
|
|
84
|
+
"controlUi": {
|
|
85
|
+
"dangerouslyAllowHostHeaderOriginFallback": true
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"agents": {
|
|
89
|
+
"defaults": {
|
|
90
|
+
"model": "anthropic/claude-opus-4-6"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
EOF
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
echo "[openclaw-entrypoint] Configuration complete"
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
# Start the gateway
|
|
101
|
+
echo "[openclaw-entrypoint] Starting gateway..."
|
|
102
|
+
exec node openclaw.mjs gateway --allow-unconfigured
|