siclaw 0.1.0 → 0.1.2
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 +75 -114
- package/dist/agentbox/gateway-client.d.ts +2 -1
- package/dist/agentbox/gateway-client.js +6 -2
- package/dist/agentbox/gateway-client.js.map +1 -1
- package/dist/agentbox/http-server.js +184 -19
- package/dist/agentbox/http-server.js.map +1 -1
- package/dist/agentbox/resource-handlers.d.ts +1 -0
- package/dist/agentbox/resource-handlers.js +23 -23
- package/dist/agentbox/resource-handlers.js.map +1 -1
- package/dist/agentbox/session.js +85 -5
- package/dist/agentbox/session.js.map +1 -1
- package/dist/agentbox-main.d.ts +2 -1
- package/dist/agentbox-main.js +65 -18
- package/dist/agentbox-main.js.map +1 -1
- package/dist/cli-credentials.d.ts +1 -0
- package/dist/cli-credentials.js +109 -0
- package/dist/cli-credentials.js.map +1 -0
- package/dist/cli-first-run.d.ts +11 -0
- package/dist/cli-first-run.js +99 -0
- package/dist/cli-first-run.js.map +1 -0
- package/dist/cli-main.js +33 -11
- package/dist/cli-main.js.map +1 -1
- package/dist/cli-setup.d.ts +5 -11
- package/dist/cli-setup.js +12 -225
- package/dist/cli-setup.js.map +1 -1
- package/dist/core/agent-factory.d.ts +4 -0
- package/dist/core/agent-factory.js +102 -151
- package/dist/core/agent-factory.js.map +1 -1
- package/dist/core/config.d.ts +10 -3
- package/dist/core/config.js +11 -95
- package/dist/core/config.js.map +1 -1
- package/dist/core/extensions/deep-investigation.d.ts +2 -1
- package/dist/core/extensions/deep-investigation.js +144 -24
- package/dist/core/extensions/deep-investigation.js.map +1 -1
- package/dist/core/extensions/setup.d.ts +8 -0
- package/dist/core/extensions/setup.js +669 -0
- package/dist/core/extensions/setup.js.map +1 -0
- package/dist/core/llm-proxy.js +7 -3
- package/dist/core/llm-proxy.js.map +1 -1
- package/dist/core/mcp-client.d.ts +0 -10
- package/dist/core/mcp-client.js +0 -65
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/prompt.d.ts +1 -1
- package/dist/core/prompt.js +42 -5
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/provider-presets.d.ts +14 -0
- package/dist/core/provider-presets.js +81 -0
- package/dist/core/provider-presets.js.map +1 -0
- package/dist/cron/cron-coordinator.d.ts +2 -0
- package/dist/cron/cron-coordinator.js +46 -14
- package/dist/cron/cron-coordinator.js.map +1 -1
- package/dist/cron/cron-executor.js +33 -8
- package/dist/cron/cron-executor.js.map +1 -1
- package/dist/cron/cron-scheduler.d.ts +1 -1
- package/dist/cron/gateway-client.d.ts +5 -0
- package/dist/cron/gateway-client.js +43 -8
- package/dist/cron/gateway-client.js.map +1 -1
- package/dist/cron-main.js +39 -9
- package/dist/cron-main.js.map +1 -1
- package/dist/gateway/agentbox/client.d.ts +11 -0
- package/dist/gateway/agentbox/client.js +18 -0
- package/dist/gateway/agentbox/client.js.map +1 -1
- package/dist/gateway/agentbox/k8s-spawner.d.ts +11 -2
- package/dist/gateway/agentbox/k8s-spawner.js +95 -52
- package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
- package/dist/gateway/agentbox/local-spawner.d.ts +1 -1
- package/dist/gateway/agentbox/local-spawner.js +4 -2
- package/dist/gateway/agentbox/local-spawner.js.map +1 -1
- package/dist/gateway/agentbox/manager.d.ts +0 -10
- package/dist/gateway/agentbox/manager.js +11 -30
- package/dist/gateway/agentbox/manager.js.map +1 -1
- package/dist/gateway/agentbox/types.d.ts +6 -4
- package/dist/gateway/cron/cron-service.d.ts +49 -0
- package/dist/gateway/cron/cron-service.js +259 -0
- package/dist/gateway/cron/cron-service.js.map +1 -0
- package/dist/gateway/db/init-schema.js +44 -0
- package/dist/gateway/db/init-schema.js.map +1 -1
- package/dist/gateway/db/migrate-sqlite.js +73 -4
- package/dist/gateway/db/migrate-sqlite.js.map +1 -1
- package/dist/gateway/db/repositories/chat-repo.d.ts +56 -2
- package/dist/gateway/db/repositories/chat-repo.js +132 -2
- package/dist/gateway/db/repositories/chat-repo.js.map +1 -1
- package/dist/gateway/db/repositories/config-repo.d.ts +31 -2
- package/dist/gateway/db/repositories/config-repo.js +57 -7
- package/dist/gateway/db/repositories/config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/env-repo.d.ts +14 -0
- package/dist/gateway/db/repositories/env-repo.js +15 -2
- package/dist/gateway/db/repositories/env-repo.js.map +1 -1
- package/dist/gateway/db/repositories/model-config-repo.d.ts +1 -1
- package/dist/gateway/db/repositories/model-config-repo.js +26 -12
- package/dist/gateway/db/repositories/model-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/skill-repo.d.ts +0 -5
- package/dist/gateway/db/repositories/skill-review-repo.d.ts +1 -0
- package/dist/gateway/db/repositories/skill-review-repo.js +4 -1
- package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -1
- package/dist/gateway/db/repositories/skill-version-repo.js +0 -1
- package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -1
- package/dist/gateway/db/repositories/system-config-repo.d.ts +1 -1
- package/dist/gateway/db/repositories/system-config-repo.js +2 -1
- package/dist/gateway/db/repositories/system-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/user-env-config-repo.d.ts +13 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js +11 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/workspace-repo.d.ts +3 -2
- package/dist/gateway/db/repositories/workspace-repo.js +6 -2
- package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
- package/dist/gateway/db/schema-mysql.d.ts +473 -51
- package/dist/gateway/db/schema-mysql.js +35 -4
- package/dist/gateway/db/schema-mysql.js.map +1 -1
- package/dist/gateway/db/schema-sqlite.d.ts +522 -57
- package/dist/gateway/db/schema-sqlite.js +38 -6
- package/dist/gateway/db/schema-sqlite.js.map +1 -1
- package/dist/gateway/db/schema.d.ts +471 -51
- package/dist/gateway/db/schema.js +1 -1
- package/dist/gateway/db/schema.js.map +1 -1
- package/dist/gateway/metrics-aggregator.d.ts +65 -0
- package/dist/gateway/metrics-aggregator.js +244 -0
- package/dist/gateway/metrics-aggregator.js.map +1 -0
- package/dist/gateway/plugins/channel-bridge.d.ts +4 -1
- package/dist/gateway/plugins/channel-bridge.js +78 -86
- package/dist/gateway/plugins/channel-bridge.js.map +1 -1
- package/dist/gateway/rpc-methods.d.ts +4 -2
- package/dist/gateway/rpc-methods.js +962 -163
- package/dist/gateway/rpc-methods.js.map +1 -1
- package/dist/gateway/security/cert-manager.d.ts +2 -2
- package/dist/gateway/security/cert-manager.js +4 -2
- package/dist/gateway/security/cert-manager.js.map +1 -1
- package/dist/gateway/server.d.ts +4 -8
- package/dist/gateway/server.js +297 -261
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/skills/file-writer.js +17 -11
- package/dist/gateway/skills/file-writer.js.map +1 -1
- package/dist/gateway/skills/script-evaluator.js +12 -9
- package/dist/gateway/skills/script-evaluator.js.map +1 -1
- package/dist/gateway/web/dist/assets/index-0p17ZeTP.js +740 -0
- package/dist/gateway/web/dist/assets/index-9eP6nPUq.js +741 -0
- package/dist/gateway/web/dist/assets/index-9eP6nPUq.js.map +1 -0
- package/dist/gateway/web/dist/assets/index-CAmSY91d.js +675 -0
- package/dist/gateway/web/dist/assets/index-DMFEh8Pp.css +1 -0
- package/dist/gateway/web/dist/assets/index-DyowBCEj.css +1 -0
- package/dist/gateway/web/dist/assets/index-PDK5JJDO.css +1 -0
- package/dist/gateway/web/dist/index.html +2 -2
- package/dist/gateway-main.js +27 -10
- package/dist/gateway-main.js.map +1 -1
- package/dist/memory/embeddings.js +5 -4
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/indexer.d.ts +23 -3
- package/dist/memory/indexer.js +235 -23
- package/dist/memory/indexer.js.map +1 -1
- package/dist/memory/schema.js +15 -1
- package/dist/memory/schema.js.map +1 -1
- package/dist/memory/types.d.ts +18 -0
- package/dist/memory/types.js +6 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/shared/detect-language.d.ts +12 -0
- package/dist/shared/detect-language.js +78 -0
- package/dist/shared/detect-language.js.map +1 -0
- package/dist/shared/diagnostic-events.d.ts +70 -0
- package/dist/shared/diagnostic-events.js +38 -0
- package/dist/shared/diagnostic-events.js.map +1 -0
- package/dist/shared/local-collector.d.ts +56 -0
- package/dist/shared/local-collector.js +284 -0
- package/dist/shared/local-collector.js.map +1 -0
- package/dist/shared/metrics-types.d.ts +64 -0
- package/dist/shared/metrics-types.js +25 -0
- package/dist/shared/metrics-types.js.map +1 -0
- package/dist/shared/metrics.d.ts +19 -0
- package/dist/shared/metrics.js +185 -0
- package/dist/shared/metrics.js.map +1 -0
- package/dist/shared/path-utils.d.ts +15 -0
- package/dist/shared/path-utils.js +23 -0
- package/dist/shared/path-utils.js.map +1 -0
- package/dist/shared/retry.d.ts +35 -0
- package/dist/shared/retry.js +61 -0
- package/dist/shared/retry.js.map +1 -0
- package/dist/tools/command-sets.d.ts +18 -2
- package/dist/tools/command-sets.js +207 -32
- package/dist/tools/command-sets.js.map +1 -1
- package/dist/tools/command-validator.d.ts +56 -0
- package/dist/tools/command-validator.js +357 -0
- package/dist/tools/command-validator.js.map +1 -0
- package/dist/tools/create-skill.js +26 -1
- package/dist/tools/create-skill.js.map +1 -1
- package/dist/tools/credential-list.js +1 -23
- package/dist/tools/credential-list.js.map +1 -1
- package/dist/tools/credential-manager.d.ts +98 -0
- package/dist/tools/credential-manager.js +313 -0
- package/dist/tools/credential-manager.js.map +1 -0
- package/dist/tools/deep-search/engine.js +184 -127
- package/dist/tools/deep-search/engine.js.map +1 -1
- package/dist/tools/deep-search/prompts.d.ts +10 -2
- package/dist/tools/deep-search/prompts.js +37 -36
- package/dist/tools/deep-search/prompts.js.map +1 -1
- package/dist/tools/deep-search/schemas.d.ts +87 -0
- package/dist/tools/deep-search/schemas.js +85 -0
- package/dist/tools/deep-search/schemas.js.map +1 -0
- package/dist/tools/deep-search/sub-agent.d.ts +21 -0
- package/dist/tools/deep-search/sub-agent.js +153 -4
- package/dist/tools/deep-search/sub-agent.js.map +1 -1
- package/dist/tools/deep-search/tool.js +1 -0
- package/dist/tools/deep-search/tool.js.map +1 -1
- package/dist/tools/deep-search/types.d.ts +2 -0
- package/dist/tools/deep-search/types.js.map +1 -1
- package/dist/tools/dp-tools.js +29 -5
- package/dist/tools/dp-tools.js.map +1 -1
- package/dist/tools/exec-utils.d.ts +85 -0
- package/dist/tools/exec-utils.js +294 -0
- package/dist/tools/exec-utils.js.map +1 -0
- package/dist/tools/fork-skill.js +14 -2
- package/dist/tools/fork-skill.js.map +1 -1
- package/dist/tools/investigation-feedback.d.ts +3 -0
- package/dist/tools/investigation-feedback.js +71 -0
- package/dist/tools/investigation-feedback.js.map +1 -0
- package/dist/tools/manage-schedule.js +16 -6
- package/dist/tools/manage-schedule.js.map +1 -1
- package/dist/tools/netns-script.js +27 -281
- package/dist/tools/netns-script.js.map +1 -1
- package/dist/tools/node-exec.d.ts +2 -14
- package/dist/tools/node-exec.js +18 -225
- package/dist/tools/node-exec.js.map +1 -1
- package/dist/tools/node-script.js +14 -168
- package/dist/tools/node-script.js.map +1 -1
- package/dist/tools/pod-exec.d.ts +1 -1
- package/dist/tools/pod-exec.js +10 -26
- package/dist/tools/pod-exec.js.map +1 -1
- package/dist/tools/pod-nsenter-exec.js +21 -225
- package/dist/tools/pod-nsenter-exec.js.map +1 -1
- package/dist/tools/pod-script.js +10 -19
- package/dist/tools/pod-script.js.map +1 -1
- package/dist/tools/restricted-bash.d.ts +1 -17
- package/dist/tools/restricted-bash.js +38 -252
- package/dist/tools/restricted-bash.js.map +1 -1
- package/dist/tools/run-skill.d.ts +3 -1
- package/dist/tools/run-skill.js +21 -1
- package/dist/tools/run-skill.js.map +1 -1
- package/dist/tools/script-resolver.d.ts +3 -1
- package/dist/tools/script-resolver.js +74 -30
- package/dist/tools/script-resolver.js.map +1 -1
- package/dist/tools/update-skill.js +17 -6
- package/dist/tools/update-skill.js.map +1 -1
- package/package.json +8 -6
- package/siclaw.mjs +10 -1
- package/skills/core/cluster-events/SKILL.md +1 -1
- package/skills/core/deep-investigation/SKILL.md +11 -0
- package/skills/core/deployment-rollout-debug/SKILL.md +1 -1
- package/skills/core/dns-debug/SKILL.md +1 -0
- package/skills/core/meta.json +12 -1
- package/skills/core/networkpolicy-debug/SKILL.md +332 -0
- package/skills/core/node-logs/scripts/get-node-logs.sh +19 -9
- package/skills/core/pod-pending-debug/SKILL.md +1 -0
- package/skills/core/quota-debug/SKILL.md +203 -0
- package/skills/core/service-debug/SKILL.md +1 -0
- package/skills/core/statefulset-debug/SKILL.md +280 -0
- package/skills/core/volcano-diagnose-pod/SKILL.md +196 -0
- package/skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh +175 -0
- package/skills/core/volcano-gang-scheduling/SKILL.md +299 -0
- package/skills/core/volcano-job-diagnose/SKILL.md +319 -0
- package/skills/core/volcano-job-diagnose/scripts/diagnose-job.sh +253 -0
- package/skills/core/volcano-node-resources/SKILL.md +334 -0
- package/skills/core/volcano-node-resources/scripts/get-node-resources.sh +281 -0
- package/skills/core/volcano-queue-diagnose/SKILL.md +294 -0
- package/skills/core/volcano-queue-diagnose/scripts/diagnose-queue.sh +283 -0
- package/skills/core/volcano-resource-insufficient/SKILL.md +315 -0
- package/skills/core/volcano-scheduler-config/SKILL.md +371 -0
- package/skills/core/volcano-scheduler-config/scripts/get-scheduler-config.sh +297 -0
- package/skills/core/volcano-scheduler-logs/SKILL.md +241 -0
- package/skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh +159 -0
- package/skills/platform/create-skill/SKILL.md +35 -3
- package/skills/platform/manage-skill/SKILL.md +9 -2
- package/skills/platform/update-skill/SKILL.md +17 -6
package/dist/cli-setup.js
CHANGED
|
@@ -1,125 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Setup helpers for TUI mode.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The interactive setup wizard has moved to `cli-first-run.ts` (pre-session,
|
|
5
|
+
* @clack/prompts) and `core/extensions/setup.ts` (in-session /setup command).
|
|
6
|
+
* This file only exports `needsSetup()` for the startup check.
|
|
6
7
|
*/
|
|
7
8
|
import fs from "node:fs";
|
|
8
|
-
import
|
|
9
|
-
import { getConfigPath, reloadConfig } from "./core/config.js";
|
|
10
|
-
const PRESETS = [
|
|
11
|
-
{
|
|
12
|
-
label: "OpenAI (GPT-4o, GPT-4o-mini)",
|
|
13
|
-
key: "openai",
|
|
14
|
-
baseUrl: "https://api.openai.com/v1",
|
|
15
|
-
api: "openai-completions",
|
|
16
|
-
models: [
|
|
17
|
-
{
|
|
18
|
-
id: "gpt-4o",
|
|
19
|
-
name: "GPT-4o",
|
|
20
|
-
reasoning: false,
|
|
21
|
-
input: ["text"],
|
|
22
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
23
|
-
contextWindow: 128000,
|
|
24
|
-
maxTokens: 16384,
|
|
25
|
-
compat: { supportsDeveloperRole: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
id: "gpt-4o-mini",
|
|
29
|
-
name: "GPT-4o-mini",
|
|
30
|
-
reasoning: false,
|
|
31
|
-
input: ["text"],
|
|
32
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
33
|
-
contextWindow: 128000,
|
|
34
|
-
maxTokens: 16384,
|
|
35
|
-
compat: { supportsDeveloperRole: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
label: "Anthropic (Claude Sonnet 4, Claude Opus 4)",
|
|
41
|
-
key: "anthropic",
|
|
42
|
-
baseUrl: "https://api.anthropic.com/v1",
|
|
43
|
-
api: "anthropic",
|
|
44
|
-
models: [
|
|
45
|
-
{
|
|
46
|
-
id: "claude-sonnet-4-20250514",
|
|
47
|
-
name: "Claude Sonnet 4",
|
|
48
|
-
reasoning: true,
|
|
49
|
-
input: ["text"],
|
|
50
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
51
|
-
contextWindow: 200000,
|
|
52
|
-
maxTokens: 16000,
|
|
53
|
-
compat: { supportsDeveloperRole: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
id: "claude-opus-4-20250514",
|
|
57
|
-
name: "Claude Opus 4",
|
|
58
|
-
reasoning: true,
|
|
59
|
-
input: ["text"],
|
|
60
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
61
|
-
contextWindow: 200000,
|
|
62
|
-
maxTokens: 16000,
|
|
63
|
-
compat: { supportsDeveloperRole: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
label: "Compatible API (Qwen, DeepSeek, Ollama, etc.)",
|
|
69
|
-
key: "compatible",
|
|
70
|
-
baseUrl: "",
|
|
71
|
-
api: "openai-completions",
|
|
72
|
-
needsBaseUrl: true,
|
|
73
|
-
models: [
|
|
74
|
-
{
|
|
75
|
-
id: "default",
|
|
76
|
-
name: "Default Model",
|
|
77
|
-
reasoning: false,
|
|
78
|
-
input: ["text"],
|
|
79
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
80
|
-
contextWindow: 128000,
|
|
81
|
-
maxTokens: 8192,
|
|
82
|
-
compat: { supportsDeveloperRole: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens" },
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
];
|
|
87
|
-
// ---------------------------------------------------------------------------
|
|
88
|
-
// Readline helpers
|
|
89
|
-
// ---------------------------------------------------------------------------
|
|
90
|
-
function createRl() {
|
|
91
|
-
return readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
92
|
-
}
|
|
93
|
-
function ask(rl, question) {
|
|
94
|
-
return new Promise((resolve) => rl.question(question, (answer) => resolve(answer.trim())));
|
|
95
|
-
}
|
|
96
|
-
function askSelect(rl, prompt, options) {
|
|
97
|
-
return new Promise((resolve) => {
|
|
98
|
-
console.log(prompt);
|
|
99
|
-
for (let i = 0; i < options.length; i++) {
|
|
100
|
-
console.log(` ${i + 1}) ${options[i]}`);
|
|
101
|
-
}
|
|
102
|
-
const doAsk = () => {
|
|
103
|
-
rl.question(`Choose [1-${options.length}]: `, (answer) => {
|
|
104
|
-
const num = parseInt(answer.trim(), 10);
|
|
105
|
-
if (num >= 1 && num <= options.length) {
|
|
106
|
-
resolve(num - 1);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
doAsk();
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
doAsk();
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
// ---------------------------------------------------------------------------
|
|
117
|
-
// Public API
|
|
118
|
-
// ---------------------------------------------------------------------------
|
|
9
|
+
import { getConfigPath } from "./core/config.js";
|
|
119
10
|
/**
|
|
120
|
-
* Returns true if
|
|
121
|
-
* - settings.json does not exist, OR
|
|
122
|
-
* - providers object is empty
|
|
11
|
+
* Returns true if the user has no usable LLM configuration in settings.json.
|
|
123
12
|
*/
|
|
124
13
|
export function needsSetup() {
|
|
125
14
|
const configPath = getConfigPath();
|
|
@@ -131,117 +20,15 @@ export function needsSetup() {
|
|
|
131
20
|
if (!providers || typeof providers !== "object" || Object.keys(providers).length === 0) {
|
|
132
21
|
return true;
|
|
133
22
|
}
|
|
23
|
+
// Check that at least one provider has an apiKey
|
|
24
|
+
for (const p of Object.values(providers)) {
|
|
25
|
+
if (p.apiKey)
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
134
29
|
}
|
|
135
30
|
catch {
|
|
136
31
|
return true;
|
|
137
32
|
}
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Interactive provider configuration wizard.
|
|
142
|
-
* Writes result to `.siclaw/config/settings.json`.
|
|
143
|
-
*/
|
|
144
|
-
export async function runInteractiveSetup() {
|
|
145
|
-
const rl = createRl();
|
|
146
|
-
try {
|
|
147
|
-
console.log("");
|
|
148
|
-
console.log(" Welcome to Siclaw! Let's configure your AI provider.");
|
|
149
|
-
console.log("");
|
|
150
|
-
// 1. Select provider type
|
|
151
|
-
const presetIdx = await askSelect(rl, " Select provider type:", PRESETS.map((p) => p.label));
|
|
152
|
-
const preset = PRESETS[presetIdx];
|
|
153
|
-
// 2. API Key
|
|
154
|
-
const apiKeyInput = await ask(rl, ` API Key: `);
|
|
155
|
-
if (!apiKeyInput) {
|
|
156
|
-
console.log(" API key is required. Setup aborted.");
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
// Offer env-var reference storage (recommended for security)
|
|
160
|
-
let apiKey;
|
|
161
|
-
if (!apiKeyInput.startsWith("$")) {
|
|
162
|
-
const storageChoice = await askSelect(rl, " How to store the API key?", [
|
|
163
|
-
"As environment variable reference (recommended — key stays out of config files)",
|
|
164
|
-
"Store directly in settings.json (simple but less secure)",
|
|
165
|
-
]);
|
|
166
|
-
if (storageChoice === 0) {
|
|
167
|
-
const envVarName = preset.key === "compatible"
|
|
168
|
-
? "SICLAW_PROVIDER_API_KEY"
|
|
169
|
-
: `${preset.key.toUpperCase()}_API_KEY`;
|
|
170
|
-
const suggestedName = await ask(rl, ` Env var name [${envVarName}]: `);
|
|
171
|
-
const finalName = suggestedName || envVarName;
|
|
172
|
-
apiKey = `$${finalName}`;
|
|
173
|
-
console.log("");
|
|
174
|
-
console.log(` Will store "$${finalName}" in config.`);
|
|
175
|
-
console.log(` Make sure to set the env var before running siclaw:`);
|
|
176
|
-
console.log(` export ${finalName}=${apiKeyInput}`);
|
|
177
|
-
console.log("");
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
apiKey = apiKeyInput;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
// User already provided a $VAR reference
|
|
185
|
-
apiKey = apiKeyInput;
|
|
186
|
-
}
|
|
187
|
-
// 3. Base URL (only if needed or custom)
|
|
188
|
-
let baseUrl = preset.baseUrl;
|
|
189
|
-
if (preset.needsBaseUrl) {
|
|
190
|
-
const entered = await ask(rl, ` Base URL: `);
|
|
191
|
-
if (entered)
|
|
192
|
-
baseUrl = entered;
|
|
193
|
-
if (!baseUrl) {
|
|
194
|
-
console.log(" Base URL is required for compatible providers. Setup aborted.");
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
const entered = await ask(rl, ` Base URL [${preset.baseUrl}]: `);
|
|
200
|
-
if (entered)
|
|
201
|
-
baseUrl = entered;
|
|
202
|
-
}
|
|
203
|
-
// 4. Model ID for compatible provider
|
|
204
|
-
let models = preset.models;
|
|
205
|
-
if (preset.key === "compatible") {
|
|
206
|
-
const modelId = await ask(rl, ` Model ID [default]: `);
|
|
207
|
-
if (modelId) {
|
|
208
|
-
models = [{ ...models[0], id: modelId, name: modelId }];
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
// 5. Build and write config
|
|
212
|
-
const provider = {
|
|
213
|
-
baseUrl,
|
|
214
|
-
apiKey,
|
|
215
|
-
api: preset.api,
|
|
216
|
-
authHeader: true,
|
|
217
|
-
models,
|
|
218
|
-
};
|
|
219
|
-
// Load existing config or start from defaults
|
|
220
|
-
const configPath = getConfigPath();
|
|
221
|
-
let existing = {};
|
|
222
|
-
if (fs.existsSync(configPath)) {
|
|
223
|
-
try {
|
|
224
|
-
existing = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
225
|
-
}
|
|
226
|
-
catch { /* start fresh */ }
|
|
227
|
-
}
|
|
228
|
-
const providers = existing.providers ?? {};
|
|
229
|
-
providers["default"] = provider;
|
|
230
|
-
const configDir = configPath.replace(/[/\\][^/\\]+$/, "");
|
|
231
|
-
if (!fs.existsSync(configDir)) {
|
|
232
|
-
fs.mkdirSync(configDir, { recursive: true });
|
|
233
|
-
}
|
|
234
|
-
fs.writeFileSync(configPath, JSON.stringify({ ...existing, providers }, null, 2) + "\n");
|
|
235
|
-
// Reload config cache so loadConfig() picks up the new settings
|
|
236
|
-
reloadConfig();
|
|
237
|
-
const modelName = models[0].name || models[0].id;
|
|
238
|
-
console.log("");
|
|
239
|
-
console.log(` Saved to ${configPath}`);
|
|
240
|
-
console.log(` Model: ${modelName} | Provider: ${preset.label.split(" (")[0]}`);
|
|
241
|
-
console.log("");
|
|
242
|
-
}
|
|
243
|
-
finally {
|
|
244
|
-
rl.close();
|
|
245
|
-
}
|
|
246
33
|
}
|
|
247
34
|
//# sourceMappingURL=cli-setup.js.map
|
package/dist/cli-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-setup.js","sourceRoot":"","sources":["../src/cli-setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli-setup.js","sourceRoot":"","sources":["../src/cli-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iDAAiD;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAU,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -48,5 +48,9 @@ export interface SiclawSessionResult {
|
|
|
48
48
|
memoryIndexer?: MemoryIndexer;
|
|
49
49
|
/** Mutable DP state — only set for SDK brain (pi-agent uses extension state) */
|
|
50
50
|
dpState?: DpState;
|
|
51
|
+
/** Mutable ref — populated when session ID is assigned (for skill_call events) */
|
|
52
|
+
sessionIdRef: {
|
|
53
|
+
current: string;
|
|
54
|
+
};
|
|
51
55
|
}
|
|
52
56
|
export declare function createSiclawSession(opts?: CreateSiclawSessionOpts): Promise<SiclawSessionResult>;
|