@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.
@@ -1,23 +1,30 @@
1
1
  /**
2
2
  * synap finish
3
3
  *
4
- * Complete setup after OpenClaw has been provisioned.
5
- * Run this once OpenClaw is running (a few minutes after synap init).
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 (reads ~/.synap/pod-config.json)
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. Optionally configure IS as AI provider
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: Configure IS ──────────────────────────────────────────────────
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
- log.info(`Pod: ${podUrl}`);
87
- log.info(`Gateway: ${chalk.cyan(`localhost:${oc.gatewayPort ?? 18789}`)}`);
88
- log.blank();
89
- // AI key check — the most common blocker at this stage
90
- const gatewayPort = oc.gatewayPort ?? 18789;
91
- let hasAiKey = false;
92
- try {
93
- const { findSynapDeployDir } = await import("../lib/pod.js");
94
- const fs = await import("node:fs");
95
- const deployDir = findSynapDeployDir();
96
- if (deployDir) {
97
- const envContent = fs.existsSync(`${deployDir}/.env`)
98
- ? fs.readFileSync(`${deployDir}/.env`, "utf-8")
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
- catch {
104
- // ignore
233
+ const localConfig = getLocalPodConfig();
234
+ log.info(`Pod: ${localConfig?.podUrl ?? "unknown"}`);
235
+ if (publicUrl) {
236
+ log.info(`Dashboard: ${chalk.cyan(publicUrl)}`);
105
237
  }
106
- if (!hasAiKey) {
107
- log.warn("Missing AI API key — OpenClaw needs one to process requests:");
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.dim(" Claude Desktop, Cursor, Windsurf — all work via MCP:");
117
- log.dim(` ${chalk.cyan("synap openclaw connect")}`);
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 — once connected, ask your agent:");
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":"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"}
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 declare function openclawConfigure(): Promise<void>;
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>;