@synap-core/cli 1.1.0 → 1.2.1
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 +158 -115
- package/dist/commands/finish.d.ts +15 -8
- package/dist/commands/finish.js +169 -41
- package/dist/commands/finish.js.map +1 -1
- package/dist/commands/openclaw.d.ts +15 -1
- package/dist/commands/openclaw.js +367 -176
- package/dist/commands/openclaw.js.map +1 -1
- package/dist/index.js +28 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/finish.js
CHANGED
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* synap finish
|
|
3
3
|
*
|
|
4
|
-
* Complete setup after OpenClaw has been provisioned.
|
|
5
|
-
*
|
|
4
|
+
* Complete setup after OpenClaw has been provisioned. One-shot: after this
|
|
5
|
+
* command, everything the user needs is ready — AI key, skill, IS, and public
|
|
6
|
+
* dashboard URL.
|
|
6
7
|
*
|
|
7
8
|
* Steps:
|
|
8
|
-
* 1. Verify pod connection (
|
|
9
|
+
* 1. Verify pod connection (~/.synap/pod-config.json)
|
|
9
10
|
* 2. Check pod health
|
|
10
11
|
* 3. Check OpenClaw is running
|
|
11
|
-
* 4. Security audit
|
|
12
|
-
* 5. Install synap skill
|
|
12
|
+
* 4. Security audit (local-install only)
|
|
13
|
+
* 5. Install synap skill (via openclaw skills install)
|
|
13
14
|
* 6. Seed workspace entities
|
|
14
|
-
* 7.
|
|
15
|
+
* 7. Configure AI provider — prompt if missing (via openclaw config set)
|
|
16
|
+
* 8. Expose dashboard — offer if managed pod + OPENCLAW_DOMAIN unset
|
|
17
|
+
* 9. Configure Synap IS as AI provider (optional)
|
|
15
18
|
*/
|
|
16
19
|
import chalk from "chalk";
|
|
20
|
+
import prompts from "prompts";
|
|
21
|
+
import fs from "node:fs";
|
|
22
|
+
import { execSync } from "child_process";
|
|
17
23
|
import { log, banner } from "../utils/logger.js";
|
|
18
24
|
import { detectOpenClaw } from "../lib/openclaw.js";
|
|
19
|
-
import { checkPodHealth, getLocalPodConfig } from "../lib/pod.js";
|
|
25
|
+
import { checkPodHealth, getLocalPodConfig, findSynapDeployDir } from "../lib/pod.js";
|
|
20
26
|
import { securityStep, skillStep, seedStep, isStep } from "./init.js";
|
|
27
|
+
import { openclawConfigure, openclawSetupDomain, } from "./openclaw.js";
|
|
21
28
|
export async function finish(opts = {}) {
|
|
22
29
|
banner();
|
|
23
30
|
// ── Step 1: Verify pod config ──────────────────────────────────────────────
|
|
@@ -73,57 +80,178 @@ export async function finish(opts = {}) {
|
|
|
73
80
|
await skillStep(true, oc);
|
|
74
81
|
// ── Step 6: Seed workspace ─────────────────────────────────────────────────
|
|
75
82
|
await seedStep(podUrl, hubApiKey, oc);
|
|
76
|
-
// ── Step 7:
|
|
83
|
+
// ── Step 7: AI provider key ────────────────────────────────────────────────
|
|
84
|
+
if (!opts.skipAiKey) {
|
|
85
|
+
await aiKeyStep(oc);
|
|
86
|
+
}
|
|
87
|
+
// ── Step 8: Expose dashboard (managed pods) ────────────────────────────────
|
|
88
|
+
if (!opts.skipDomain) {
|
|
89
|
+
await domainStep(oc, podUrl);
|
|
90
|
+
}
|
|
91
|
+
// ── Step 9: Configure IS ───────────────────────────────────────────────────
|
|
77
92
|
if (!opts.skipIs) {
|
|
78
93
|
await isStep(podUrl, hubApiKey, true);
|
|
79
94
|
}
|
|
80
95
|
// ── Summary ────────────────────────────────────────────────────────────────
|
|
96
|
+
printSummary(oc);
|
|
97
|
+
}
|
|
98
|
+
// ─── AI key step ─────────────────────────────────────────────────────────────
|
|
99
|
+
async function aiKeyStep(oc) {
|
|
100
|
+
log.heading("AI Provider");
|
|
101
|
+
// Make sure the openclaw CLI inside the container is actually callable.
|
|
102
|
+
// If not, skip the step entirely — the user can run `synap openclaw configure` later.
|
|
103
|
+
if (oc.runtime === "docker") {
|
|
104
|
+
const containerName = oc.containerName ?? "openclaw";
|
|
105
|
+
try {
|
|
106
|
+
execSync(`docker exec ${containerName} openclaw --version`, {
|
|
107
|
+
stdio: "pipe",
|
|
108
|
+
timeout: 8000,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
log.warn("OpenClaw CLI not responding inside the container yet.");
|
|
113
|
+
log.dim("Skipping AI key setup — run `synap openclaw configure` once it's fully up.");
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Check if an AI key is already configured via OpenClaw's config
|
|
118
|
+
const hasKey = openclawHasAiKey(oc);
|
|
119
|
+
if (hasKey) {
|
|
120
|
+
log.success("AI provider already configured");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
log.info("OpenClaw needs an AI provider to process requests.");
|
|
124
|
+
log.blank();
|
|
125
|
+
const { setup } = await prompts({
|
|
126
|
+
type: "select",
|
|
127
|
+
name: "setup",
|
|
128
|
+
message: "Set up AI provider now?",
|
|
129
|
+
choices: [
|
|
130
|
+
{ title: "Yes — scripted (pick provider + paste key)", value: "scripted" },
|
|
131
|
+
{ title: "Yes — run OpenClaw's own wizard (interactive)", value: "wizard" },
|
|
132
|
+
{ title: "Skip for now", value: "skip" },
|
|
133
|
+
],
|
|
134
|
+
});
|
|
135
|
+
if (setup === "skip" || !setup) {
|
|
136
|
+
log.dim("Set it later with: synap openclaw configure");
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (setup === "wizard") {
|
|
140
|
+
await openclawConfigure({ interactive: true });
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
await openclawConfigure({});
|
|
144
|
+
}
|
|
145
|
+
function openclawHasAiKey(oc) {
|
|
146
|
+
if (!oc.found || oc.runtime !== "docker")
|
|
147
|
+
return false;
|
|
148
|
+
const containerName = oc.containerName ?? "openclaw";
|
|
149
|
+
for (const key of ["env.ANTHROPIC_API_KEY", "env.OPENAI_API_KEY", "env.GEMINI_API_KEY"]) {
|
|
150
|
+
try {
|
|
151
|
+
const out = execSync(`docker exec ${containerName} openclaw config get ${key} 2>/dev/null`, { encoding: "utf-8", timeout: 5000 }).trim();
|
|
152
|
+
if (out && out !== "undefined" && out !== "null")
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// continue
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
// ─── Domain step ─────────────────────────────────────────────────────────────
|
|
162
|
+
async function domainStep(oc, podUrl) {
|
|
163
|
+
// Only auto-offer for Docker + managed pods + domain not already set
|
|
164
|
+
if (oc.runtime !== "docker")
|
|
165
|
+
return;
|
|
166
|
+
const deployDir = findSynapDeployDir();
|
|
167
|
+
if (!deployDir)
|
|
168
|
+
return;
|
|
169
|
+
const envPath = `${deployDir}/.env`;
|
|
170
|
+
let envContent = "";
|
|
171
|
+
try {
|
|
172
|
+
envContent = fs.existsSync(envPath) ? fs.readFileSync(envPath, "utf-8") : "";
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const alreadySet = /^OPENCLAW_DOMAIN=(?!disabled\.invalid).+/m.test(envContent);
|
|
178
|
+
if (alreadySet) {
|
|
179
|
+
const match = envContent.match(/^OPENCLAW_DOMAIN=(.+)$/m);
|
|
180
|
+
log.heading("Public Dashboard");
|
|
181
|
+
log.success(`Already exposed: ${chalk.cyan(`https://${match?.[1]?.trim()}`)}`);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
// Detect pod type from the pod URL
|
|
185
|
+
const isManaged = podUrl.includes(".synap.live");
|
|
186
|
+
if (!isManaged) {
|
|
187
|
+
// Self-hosted pods can still expose — but we don't auto-prompt because
|
|
188
|
+
// they need to set up DNS themselves. Show a hint instead.
|
|
189
|
+
log.heading("Public Dashboard");
|
|
190
|
+
log.info("Self-hosted pod — expose the dashboard manually:");
|
|
191
|
+
log.dim(" synap openclaw setup-domain");
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
log.heading("Public Dashboard");
|
|
195
|
+
log.info("Your pod is managed — we can expose the OpenClaw dashboard at a public URL.");
|
|
196
|
+
log.dim("Auth: your existing Synap session (no extra password)");
|
|
197
|
+
log.blank();
|
|
198
|
+
const { doExpose } = await prompts({
|
|
199
|
+
type: "confirm",
|
|
200
|
+
name: "doExpose",
|
|
201
|
+
message: "Expose the dashboard now?",
|
|
202
|
+
initial: true,
|
|
203
|
+
});
|
|
204
|
+
if (!doExpose) {
|
|
205
|
+
log.dim("Later: synap openclaw setup-domain");
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
await openclawSetupDomain();
|
|
209
|
+
}
|
|
210
|
+
// ─── Summary ─────────────────────────────────────────────────────────────────
|
|
211
|
+
function printSummary(oc) {
|
|
81
212
|
log.blank();
|
|
82
213
|
console.log(chalk.green("═══════════════════════════════════════════"));
|
|
83
214
|
console.log(chalk.green.bold(" Synap + OpenClaw Ready"));
|
|
84
215
|
console.log(chalk.green("═══════════════════════════════════════════"));
|
|
85
216
|
log.blank();
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
hasAiKey = /^(ANTHROPIC|OPENAI|GEMINI)_API_KEY=.+/m.test(envContent);
|
|
217
|
+
// Read the public URL if exposed
|
|
218
|
+
const deployDir = findSynapDeployDir();
|
|
219
|
+
let publicUrl = null;
|
|
220
|
+
if (deployDir) {
|
|
221
|
+
try {
|
|
222
|
+
const envContent = fs.readFileSync(`${deployDir}/.env`, "utf-8");
|
|
223
|
+
const match = envContent.match(/^OPENCLAW_DOMAIN=(.+)$/m);
|
|
224
|
+
const domain = match?.[1]?.trim();
|
|
225
|
+
if (domain && domain !== "disabled.invalid") {
|
|
226
|
+
publicUrl = `https://${domain}`;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// ignore
|
|
101
231
|
}
|
|
102
232
|
}
|
|
103
|
-
|
|
104
|
-
|
|
233
|
+
const localConfig = getLocalPodConfig();
|
|
234
|
+
log.info(`Pod: ${localConfig?.podUrl ?? "unknown"}`);
|
|
235
|
+
if (publicUrl) {
|
|
236
|
+
log.info(`Dashboard: ${chalk.cyan(publicUrl)}`);
|
|
105
237
|
}
|
|
106
|
-
|
|
107
|
-
log.
|
|
108
|
-
log.blank();
|
|
109
|
-
log.info(" synap openclaw configure");
|
|
110
|
-
log.blank();
|
|
111
|
-
log.dim("Supported: Anthropic (Claude), OpenAI, Google, or Synap IS");
|
|
112
|
-
log.blank();
|
|
238
|
+
else {
|
|
239
|
+
log.info(`Gateway: ${chalk.cyan(`localhost:${oc.gatewayPort ?? 18789}`)}`);
|
|
113
240
|
}
|
|
114
|
-
log.info("Connect an AI client to OpenClaw:");
|
|
115
241
|
log.blank();
|
|
116
|
-
log.
|
|
117
|
-
log.dim(
|
|
242
|
+
log.info("Useful commands:");
|
|
243
|
+
log.dim(" synap openclaw — status overview");
|
|
244
|
+
log.dim(" synap openclaw dashboard — open the web UI");
|
|
245
|
+
log.dim(" synap openclaw connect — MCP config for Claude Desktop / Cursor / Windsurf");
|
|
246
|
+
log.dim(" synap openclaw token — print the gateway token");
|
|
247
|
+
log.dim(" synap openclaw configure — change AI provider");
|
|
248
|
+
log.dim(" synap openclaw doctor — diagnostics");
|
|
249
|
+
log.dim(" synap openclaw logs — view container logs");
|
|
250
|
+
log.dim(" synap status — full health check");
|
|
118
251
|
log.blank();
|
|
119
|
-
log.info("Try it —
|
|
252
|
+
log.info("Try it — connect a client and ask your agent:");
|
|
120
253
|
log.dim(' "remember that Marc prefers email"');
|
|
121
254
|
log.dim(' "what do I know about Marc?"');
|
|
122
255
|
log.blank();
|
|
123
|
-
log.dim(" synap openclaw — status + next steps");
|
|
124
|
-
log.dim(" synap openclaw logs — view container logs");
|
|
125
|
-
log.dim(" synap openclaw configure — set AI provider key");
|
|
126
|
-
log.dim(" synap status — full health check");
|
|
127
|
-
log.blank();
|
|
128
256
|
}
|
|
129
257
|
//# sourceMappingURL=finish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,23 @@ export declare function openclawConnect(opts: {
|
|
|
16
16
|
}): Promise<void>;
|
|
17
17
|
export declare function openclawDashboard(): void;
|
|
18
18
|
export declare function openclawSetupDomain(): Promise<void>;
|
|
19
|
-
export
|
|
19
|
+
export interface ConfigureOpts {
|
|
20
|
+
interactive?: boolean;
|
|
21
|
+
provider?: "anthropic" | "openai" | "google";
|
|
22
|
+
key?: string;
|
|
23
|
+
model?: string;
|
|
24
|
+
show?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function openclawConfigure(opts?: ConfigureOpts): Promise<void>;
|
|
20
27
|
export declare function openclawLogs(opts: {
|
|
21
28
|
lines?: number;
|
|
22
29
|
follow?: boolean;
|
|
23
30
|
}): void;
|
|
31
|
+
export declare function openclawToken(opts: {
|
|
32
|
+
copy?: boolean;
|
|
33
|
+
for?: string;
|
|
34
|
+
}): void;
|
|
35
|
+
export declare function openclawDoctor(opts: {
|
|
36
|
+
fix?: boolean;
|
|
37
|
+
}): void;
|
|
24
38
|
export declare function openclawRestart(): Promise<void>;
|