@synap-core/cli 1.2.0 → 1.5.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/README.md +26 -0
- package/dist/commands/agents.d.ts +31 -0
- package/dist/commands/agents.js +478 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/connect.d.ts +18 -1
- package/dist/commands/connect.js +154 -74
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connections.d.ts +9 -0
- package/dist/commands/connections.js +161 -0
- package/dist/commands/connections.js.map +1 -0
- package/dist/commands/data.d.ts +43 -0
- package/dist/commands/data.js +387 -0
- package/dist/commands/data.js.map +1 -0
- package/dist/commands/finish.js +41 -8
- package/dist/commands/finish.js.map +1 -1
- package/dist/commands/infra.d.ts +21 -0
- package/dist/commands/infra.js +262 -0
- package/dist/commands/infra.js.map +1 -0
- package/dist/commands/init.js +188 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts +36 -0
- package/dist/commands/knowledge.js +123 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/openclaw.d.ts +2 -0
- package/dist/commands/openclaw.js +300 -23
- package/dist/commands/openclaw.js.map +1 -1
- package/dist/commands/pods.d.ts +17 -0
- package/dist/commands/pods.js +371 -0
- package/dist/commands/pods.js.map +1 -0
- package/dist/commands/status.d.ts +14 -1
- package/dist/commands/status.js +78 -220
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts +11 -2
- package/dist/commands/update.js +116 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +370 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/agents-config.d.ts +20 -0
- package/dist/lib/agents-config.js +45 -0
- package/dist/lib/agents-config.js.map +1 -0
- package/dist/lib/auth.d.ts +4 -0
- package/dist/lib/auth.js +4 -0
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/browser-auth.d.ts +35 -0
- package/dist/lib/browser-auth.js +170 -0
- package/dist/lib/browser-auth.js.map +1 -0
- package/dist/lib/hub-client.d.ts +17 -0
- package/dist/lib/hub-client.js +115 -0
- package/dist/lib/hub-client.js.map +1 -0
- package/dist/lib/openclaw.js +30 -19
- package/dist/lib/openclaw.js.map +1 -1
- package/dist/lib/pod.d.ts +32 -1
- package/dist/lib/pod.js +121 -9
- package/dist/lib/pod.js.map +1 -1
- package/dist/lib/skills-installer.d.ts +18 -0
- package/dist/lib/skills-installer.js +97 -0
- package/dist/lib/skills-installer.js.map +1 -0
- package/dist/lib/targets.d.ts +65 -0
- package/dist/lib/targets.js +673 -0
- package/dist/lib/targets.js.map +1 -0
- package/package.json +5 -3
- package/skills/README.md +91 -0
- package/skills/synap/README.md +76 -0
- package/skills/synap/SKILL.md +882 -0
- package/skills/synap/capture.md +170 -0
- package/skills/synap/governance.md +206 -0
- package/skills/synap/linking.md +128 -0
- package/skills/synap/scripts/orient.sh +28 -0
- package/skills/synap-schema/SKILL.md +231 -0
- package/skills/synap-schema/property-types.md +228 -0
- package/skills/synap-ui/SKILL.md +295 -0
- package/skills/synap-ui/bento-recipes.md +608 -0
- package/skills/synap-ui/view-types.md +259 -0
- package/skills/synap-ui/widget-catalog.md +305 -0
package/dist/commands/status.js
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* synap status
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* API-only status: hits the pod's `/health` endpoint and related remote
|
|
5
|
+
* status endpoints. Never shells out to Docker; never SSHes. The bash
|
|
6
|
+
* `./synap health` on the pod host is the canonical local health check —
|
|
7
|
+
* this npm CLI is the remote / laptop-side view.
|
|
8
|
+
*
|
|
9
|
+
* Sources (all HTTP):
|
|
10
|
+
* - Pod `/health` (basic reachability + version)
|
|
11
|
+
* - Pod `/api/provision/status` (Intelligence Service state)
|
|
12
|
+
* - CP `/openclaw/status/:podId` for managed pods (via stored creds)
|
|
13
|
+
*
|
|
14
|
+
* Explicitly NOT sources anymore:
|
|
15
|
+
* - `docker ps` / `docker inspect` / `docker logs` (was getOpenClawDockerStatus)
|
|
16
|
+
* - `docker exec openclaw openclaw skills list` (was isSynapSkillInstalledInDocker)
|
|
17
|
+
* For those, the user runs `./synap health` on the pod host.
|
|
5
18
|
*/
|
|
6
19
|
import chalk from "chalk";
|
|
7
20
|
import { readFileSync } from "fs";
|
|
8
21
|
import { fileURLToPath } from "url";
|
|
9
22
|
import { dirname, join } from "path";
|
|
10
23
|
import { log, banner } from "../utils/logger.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { runSecurityChecks, computeScore } from "../lib/hardening.js";
|
|
14
|
-
import { execSync } from "child_process";
|
|
15
|
-
import { isLoggedIn, getStoredToken, isTokenLocallyExpired, getOpenClawRemoteStatus } from "../lib/auth.js";
|
|
24
|
+
import { checkPodHealth, getActivePodConfig, listPodProfiles } from "../lib/pod.js";
|
|
25
|
+
import { isLoggedIn, getStoredToken, isTokenLocallyExpired, getOpenClawRemoteStatus, } from "../lib/auth.js";
|
|
16
26
|
const __filename = fileURLToPath(import.meta.url);
|
|
17
27
|
const __dirname = dirname(__filename);
|
|
18
28
|
function getCliVersion() {
|
|
@@ -37,84 +47,21 @@ function timeAgo(isoDate) {
|
|
|
37
47
|
const days = Math.floor(hours / 24);
|
|
38
48
|
return `${days} day${days === 1 ? "" : "s"} ago`;
|
|
39
49
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Inspect the OpenClaw Docker container without needing CP auth.
|
|
42
|
-
* Works even when `openclaw` binary isn't installed (server Docker path).
|
|
43
|
-
*/
|
|
44
|
-
function getOpenClawDockerStatus() {
|
|
45
|
-
try {
|
|
46
|
-
// Find the container — try common name patterns
|
|
47
|
-
const psOut = execSync("docker ps -a --format '{{.Names}}\\t{{.Image}}\\t{{.Status}}' 2>/dev/null", { encoding: "utf-8", timeout: 4000 });
|
|
48
|
-
let containerName = null;
|
|
49
|
-
let image = "unknown";
|
|
50
|
-
for (const line of psOut.split("\n")) {
|
|
51
|
-
if (/openclaw/i.test(line)) {
|
|
52
|
-
const parts = line.split("\t");
|
|
53
|
-
containerName = parts[0]?.trim() ?? null;
|
|
54
|
-
image = parts[1]?.trim() ?? "unknown";
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (!containerName)
|
|
59
|
-
return null;
|
|
60
|
-
// Get structured state + health
|
|
61
|
-
const inspectRaw = execSync(`docker inspect --format '{{.State.Status}}\\t{{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}}' ${containerName} 2>/dev/null`, { encoding: "utf-8", timeout: 4000 }).trim();
|
|
62
|
-
const [state, healthRaw] = inspectRaw.split("\t");
|
|
63
|
-
const health = healthRaw === "none" || !healthRaw ? null : healthRaw;
|
|
64
|
-
// Grab last 15 log lines, strip ANSI codes and docker timestamps
|
|
65
|
-
let logs = [];
|
|
66
|
-
try {
|
|
67
|
-
const rawLogs = execSync(`docker logs ${containerName} --tail 15 2>&1`, { encoding: "utf-8", timeout: 5000 });
|
|
68
|
-
logs = rawLogs
|
|
69
|
-
.split("\n")
|
|
70
|
-
// Strip ANSI escape codes
|
|
71
|
-
.map((l) => l.replace(/\x1b\[[0-9;]*m/g, "").trim())
|
|
72
|
-
// Strip docker log timestamps (2026-04-10T12:34:56.789Z )
|
|
73
|
-
.map((l) => l.replace(/^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s+/, ""))
|
|
74
|
-
.filter((l) => l.length > 0)
|
|
75
|
-
// Only show warnings, errors, or startup messages — skip noisy health pings
|
|
76
|
-
.filter((l) => {
|
|
77
|
-
const lower = l.toLowerCase();
|
|
78
|
-
return (lower.includes("error") ||
|
|
79
|
-
lower.includes("warn") ||
|
|
80
|
-
lower.includes("fatal") ||
|
|
81
|
-
lower.includes("start") ||
|
|
82
|
-
lower.includes("listen") ||
|
|
83
|
-
lower.includes("ready") ||
|
|
84
|
-
lower.includes("connect") ||
|
|
85
|
-
lower.includes("fail"));
|
|
86
|
-
})
|
|
87
|
-
.slice(-8); // cap at 8 meaningful lines
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// logs unavailable — not critical
|
|
91
|
-
}
|
|
92
|
-
return { state: state?.trim() ?? "unknown", health, image, logs };
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
50
|
export async function status() {
|
|
99
51
|
banner();
|
|
100
52
|
// CLI version + update hint
|
|
101
53
|
const cliVersion = getCliVersion();
|
|
102
|
-
log.info(`CLI v${cliVersion} ${chalk.dim("Update: npm update -g @synap/cli")}`);
|
|
103
|
-
|
|
54
|
+
log.info(`CLI v${cliVersion} ${chalk.dim("Update: npm update -g @synap-core/cli")}`);
|
|
55
|
+
log.dim("Remote / API-only view. For local docker health, run ./synap health on the pod host.");
|
|
104
56
|
const creds = getStoredToken();
|
|
105
|
-
//
|
|
106
|
-
// Strategy: show what we know locally first (email from stored creds),
|
|
107
|
-
// then validate with the server. If the server is unreachable, trust the
|
|
108
|
-
// local token as long as it hasn't locally expired. Only prompt to re-login
|
|
109
|
-
// when the server explicitly rejects it (401) or the local expiry has passed.
|
|
57
|
+
// ── Account ────────────────────────────────────────────────────────────
|
|
110
58
|
log.heading("Account");
|
|
111
59
|
let loggedIn = false;
|
|
112
60
|
if (creds) {
|
|
113
|
-
// Always show local identity immediately — don't wait for server
|
|
114
61
|
log.success(`Logged in as ${chalk.bold(creds.email)}`);
|
|
115
62
|
log.dim(`User ID: ${creds.userId}`);
|
|
116
63
|
if (isTokenLocallyExpired(creds)) {
|
|
117
|
-
// Local expiry passed —
|
|
64
|
+
// Local expiry passed — confirm with CP before declaring dead.
|
|
118
65
|
const authStatus = await isLoggedIn();
|
|
119
66
|
if (authStatus.valid) {
|
|
120
67
|
loggedIn = true;
|
|
@@ -126,121 +73,36 @@ export async function status() {
|
|
|
126
73
|
}
|
|
127
74
|
}
|
|
128
75
|
else {
|
|
129
|
-
// Token is locally fresh — validate in background but don't block on failure
|
|
76
|
+
// Token is locally fresh — validate in background but don't block on failure.
|
|
130
77
|
loggedIn = true;
|
|
131
78
|
const authStatus = await isLoggedIn().catch(() => ({ valid: false }));
|
|
132
79
|
if (authStatus.valid) {
|
|
133
80
|
log.dim(`Token valid until ${new Date(creds.expiresAt).toLocaleDateString()}`);
|
|
134
81
|
}
|
|
135
82
|
else {
|
|
136
|
-
|
|
137
|
-
log.dim(`Token fresh (CP unreachable — cached credentials in use)`);
|
|
83
|
+
log.dim("Token fresh (CP unreachable — cached credentials in use)");
|
|
138
84
|
}
|
|
139
85
|
}
|
|
140
86
|
}
|
|
141
87
|
else {
|
|
142
88
|
log.dim("Not logged in. Run: synap login");
|
|
143
89
|
}
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
const localConfig = getLocalPodConfig();
|
|
149
|
-
if (oc.found) {
|
|
150
|
-
const runtimeLabel = oc.runtime === "docker"
|
|
151
|
-
? chalk.cyan(`Docker (${oc.containerName ?? "openclaw"})`)
|
|
152
|
-
: chalk.dim("local install");
|
|
153
|
-
log.success(`Gateway: ${oc.gatewayRunning ? chalk.green("running") : chalk.yellow("stopped")} (port ${oc.gatewayPort ?? 18789}) [${runtimeLabel}]`);
|
|
154
|
-
if (oc.version)
|
|
155
|
-
log.info(`Version: ${oc.version}`);
|
|
156
|
-
const checks = runSecurityChecks(oc.version);
|
|
157
|
-
const score = computeScore(checks);
|
|
158
|
-
const passed = checks.filter((c) => c.passed).length;
|
|
159
|
-
log.info(`Security: ${score === "A" ? chalk.green(score) : score === "B" ? chalk.yellow(score) : chalk.red(score)} (${passed}/${checks.length})`);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
// Check Docker container (works even without CP login)
|
|
163
|
-
const dockerInfo = getOpenClawDockerStatus();
|
|
164
|
-
if (dockerInfo) {
|
|
165
|
-
const { state, health, image, logs } = dockerInfo;
|
|
166
|
-
const stateLabel = state === "running"
|
|
167
|
-
? chalk.green("running")
|
|
168
|
-
: state === "restarting"
|
|
169
|
-
? chalk.yellow("restarting")
|
|
170
|
-
: state === "exited"
|
|
171
|
-
? chalk.red("exited")
|
|
172
|
-
: chalk.dim(state);
|
|
173
|
-
log.info(`Container: ${stateLabel}${health ? ` (${health})` : ""} [${image}]`);
|
|
174
|
-
if (state === "running" && health !== "healthy") {
|
|
175
|
-
log.warn("Container is up but gateway health check hasn't passed yet");
|
|
176
|
-
log.dim("Give it another minute, then: synap status");
|
|
177
|
-
}
|
|
178
|
-
else if (state === "restarting") {
|
|
179
|
-
log.warn("Container is crash-looping — check logs below");
|
|
180
|
-
}
|
|
181
|
-
else if (state === "exited") {
|
|
182
|
-
log.warn("Container has stopped — check logs below");
|
|
183
|
-
log.dim("Restart: docker compose --profile openclaw up -d openclaw");
|
|
184
|
-
}
|
|
185
|
-
if (logs.length > 0) {
|
|
186
|
-
log.blank();
|
|
187
|
-
log.info("Recent container logs:");
|
|
188
|
-
for (const line of logs) {
|
|
189
|
-
console.log(chalk.dim(` ${line}`));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else if (localConfig?.podId && creds) {
|
|
194
|
-
// No Docker container visible here — check CP for remote provisioning state
|
|
195
|
-
const remoteStatus = await getOpenClawRemoteStatus(creds.token, localConfig.podId).catch(() => null);
|
|
196
|
-
if (remoteStatus === null) {
|
|
197
|
-
// CP unreachable — show what we know locally
|
|
198
|
-
log.dim(`Pod ID: ${localConfig.podId}`);
|
|
199
|
-
log.dim("CP unreachable — cannot check remote OpenClaw state");
|
|
200
|
-
log.dim("If on the pod server, run: docker ps | grep openclaw");
|
|
201
|
-
}
|
|
202
|
-
else if (remoteStatus.status === "not_provisioned") {
|
|
203
|
-
log.dim("Not provisioned on pod server. Run: synap init");
|
|
204
|
-
}
|
|
205
|
-
else if (remoteStatus.status === "provisioning") {
|
|
206
|
-
log.info(`Pod server: ${chalk.yellow("provisioning")} — still starting up`);
|
|
207
|
-
log.dim("Check: docker logs openclaw --tail 30");
|
|
208
|
-
log.dim("Once ready: synap finish");
|
|
209
|
-
}
|
|
210
|
-
else if (remoteStatus.status === "running") {
|
|
211
|
-
log.success(`Pod server: ${chalk.green("running")}`);
|
|
212
|
-
if (remoteStatus.url)
|
|
213
|
-
log.dim(`URL: ${remoteStatus.url}`);
|
|
214
|
-
log.dim("Run synap finish to install the skill");
|
|
215
|
-
}
|
|
216
|
-
else if (remoteStatus.status === "error") {
|
|
217
|
-
log.warn(`Pod server: ${chalk.red("error")} — provisioning failed`);
|
|
218
|
-
log.dim("Re-run: synap init");
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
log.dim("Not detected locally");
|
|
223
|
-
if (!localConfig) {
|
|
224
|
-
log.dim("Run synap init to connect to a pod");
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
log.dim("Run synap init to set up OpenClaw");
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
// Pod status
|
|
90
|
+
// ── Pod ────────────────────────────────────────────────────────────────
|
|
91
|
+
const localConfig = getActivePodConfig();
|
|
92
|
+
const podUrl = localConfig?.podUrl ?? process.env.SYNAP_POD_URL;
|
|
93
|
+
const allProfiles = listPodProfiles();
|
|
232
94
|
log.heading("Synap Pod");
|
|
233
|
-
|
|
234
|
-
? oc.config?.synap
|
|
235
|
-
: null;
|
|
236
|
-
const podUrl = ocConfig?.podUrl ??
|
|
237
|
-
localConfig?.podUrl ??
|
|
238
|
-
process.env.SYNAP_POD_URL;
|
|
95
|
+
let podHealthy = false;
|
|
239
96
|
if (!podUrl) {
|
|
240
97
|
log.dim("Not connected. Run: synap init");
|
|
241
98
|
}
|
|
242
99
|
else {
|
|
243
100
|
const pod = await checkPodHealth(podUrl);
|
|
101
|
+
podHealthy = pod.healthy;
|
|
102
|
+
if (allProfiles.length > 1) {
|
|
103
|
+
const active = allProfiles.find((p) => p.active);
|
|
104
|
+
log.info(`Active profile: ${chalk.bold(active?.name ?? "default")} ${chalk.dim("(synap pods list to see all)")}`);
|
|
105
|
+
}
|
|
244
106
|
log.info(`URL: ${podUrl}`);
|
|
245
107
|
log.info(`Health: ${pod.healthy ? chalk.green("healthy") : chalk.red("unreachable")}`);
|
|
246
108
|
if (pod.version)
|
|
@@ -248,7 +110,7 @@ export async function status() {
|
|
|
248
110
|
if (localConfig?.workspaceId)
|
|
249
111
|
log.dim(`Workspace: ${localConfig.workspaceId}`);
|
|
250
112
|
}
|
|
251
|
-
// Workspace Config
|
|
113
|
+
// ── Workspace Config ───────────────────────────────────────────────────
|
|
252
114
|
log.heading("Workspace Config");
|
|
253
115
|
if (localConfig) {
|
|
254
116
|
log.info(`Workspace ID: ${localConfig.workspaceId}`);
|
|
@@ -258,9 +120,48 @@ export async function status() {
|
|
|
258
120
|
else {
|
|
259
121
|
log.dim("No local config — run: synap init");
|
|
260
122
|
}
|
|
261
|
-
//
|
|
123
|
+
// ── OpenClaw (remote state via CP, not local Docker) ───────────────────
|
|
124
|
+
log.heading("OpenClaw (remote)");
|
|
125
|
+
if (!localConfig?.podId) { // localConfig is the active pod config
|
|
126
|
+
log.dim("No pod ID on file — cannot query managed-pod OpenClaw state.");
|
|
127
|
+
log.dim("If self-hosted: run `./synap services status openclaw` on the pod host.");
|
|
128
|
+
}
|
|
129
|
+
else if (!creds) {
|
|
130
|
+
log.dim("Not logged in — cannot query CP for OpenClaw state.");
|
|
131
|
+
log.dim("Run: synap login");
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const remote = await getOpenClawRemoteStatus(creds.token, localConfig.podId).catch(() => null);
|
|
135
|
+
if (remote === null) {
|
|
136
|
+
log.dim("CP unreachable — cannot check remote OpenClaw state");
|
|
137
|
+
log.dim("If self-hosted: run `./synap services status openclaw` on the pod host.");
|
|
138
|
+
}
|
|
139
|
+
else if (remote.status === "not_provisioned") {
|
|
140
|
+
log.dim("Not provisioned on pod server. Run: synap init");
|
|
141
|
+
}
|
|
142
|
+
else if (remote.status === "provisioning") {
|
|
143
|
+
log.info(`Pod server: ${chalk.yellow("provisioning")} — still starting up`);
|
|
144
|
+
log.dim("Check progress again in a minute.");
|
|
145
|
+
}
|
|
146
|
+
else if (remote.status === "running") {
|
|
147
|
+
log.success(`Pod server: ${chalk.green("running")}`);
|
|
148
|
+
if (remote.url)
|
|
149
|
+
log.dim(`URL: ${remote.url}`);
|
|
150
|
+
}
|
|
151
|
+
else if (remote.status === "error") {
|
|
152
|
+
log.warn(`Pod server: ${chalk.red("error")} — provisioning failed`);
|
|
153
|
+
log.dim("Re-run: synap init");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// ── Intelligence Service (via pod's own endpoint) ──────────────────────
|
|
262
157
|
log.heading("Intelligence Service");
|
|
263
|
-
if (podUrl) {
|
|
158
|
+
if (!podUrl) {
|
|
159
|
+
log.dim("No pod connected");
|
|
160
|
+
}
|
|
161
|
+
else if (!podHealthy) {
|
|
162
|
+
log.dim("Pod unreachable — cannot check IS status");
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
264
165
|
try {
|
|
265
166
|
const isRes = await fetch(`${podUrl}/api/provision/status`, {
|
|
266
167
|
signal: AbortSignal.timeout(5000),
|
|
@@ -295,47 +196,7 @@ export async function status() {
|
|
|
295
196
|
log.dim("Could not check IS status");
|
|
296
197
|
}
|
|
297
198
|
}
|
|
298
|
-
|
|
299
|
-
log.dim("No pod connected");
|
|
300
|
-
}
|
|
301
|
-
// Synap skill
|
|
302
|
-
log.heading("Synap Skill");
|
|
303
|
-
if (oc.found) {
|
|
304
|
-
if (oc.runtime === "docker") {
|
|
305
|
-
// Check inside the container
|
|
306
|
-
const { isSynapSkillInstalledInDocker } = await import("../lib/pod.js");
|
|
307
|
-
const container = oc.containerName ?? "openclaw";
|
|
308
|
-
try {
|
|
309
|
-
const installed = isSynapSkillInstalledInDocker(container);
|
|
310
|
-
if (installed) {
|
|
311
|
-
skillInstalled = true;
|
|
312
|
-
log.success(`Installed (inside ${container})`);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
log.dim(`Not installed. Run: docker exec ${container} openclaw skills install synap`);
|
|
316
|
-
log.dim("Or: synap finish");
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
catch {
|
|
320
|
-
log.dim(`Could not check — try: docker exec ${container} openclaw skills list`);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
else if (oc.skillsDir) {
|
|
324
|
-
const { existsSync } = await import("fs");
|
|
325
|
-
const skillPath = join(oc.skillsDir, "synap");
|
|
326
|
-
if (existsSync(skillPath)) {
|
|
327
|
-
skillInstalled = true;
|
|
328
|
-
log.success("Installed");
|
|
329
|
-
}
|
|
330
|
-
else {
|
|
331
|
-
log.dim("Not installed. Run: openclaw skills install synap");
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
else {
|
|
336
|
-
log.dim("Cannot check — OpenClaw not detected");
|
|
337
|
-
}
|
|
338
|
-
// Next Steps section
|
|
199
|
+
// ── Next Steps ─────────────────────────────────────────────────────────
|
|
339
200
|
log.heading("Next Steps");
|
|
340
201
|
if (!loggedIn) {
|
|
341
202
|
log.info("Login: synap login");
|
|
@@ -343,14 +204,11 @@ export async function status() {
|
|
|
343
204
|
else if (!localConfig) {
|
|
344
205
|
log.info("Connect to a pod: synap init");
|
|
345
206
|
}
|
|
346
|
-
else if (!
|
|
347
|
-
log.info("
|
|
348
|
-
}
|
|
349
|
-
else if (!skillInstalled) {
|
|
350
|
-
log.info("Install skill: synap finish");
|
|
207
|
+
else if (!podHealthy) {
|
|
208
|
+
log.info("Pod unreachable — check it with: ./synap health on the pod host");
|
|
351
209
|
}
|
|
352
210
|
else {
|
|
353
|
-
log.dim("All set.
|
|
211
|
+
log.dim("All set. To install/update the OpenClaw skill on your laptop: synap update");
|
|
354
212
|
}
|
|
355
213
|
log.blank();
|
|
356
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* synap update
|
|
3
3
|
*
|
|
4
|
-
* Update the synap skill and
|
|
4
|
+
* Update the synap skill and optionally trigger a server-side redeploy
|
|
5
|
+
* via Dokploy when DOKPLOY_API_KEY is configured.
|
|
6
|
+
*
|
|
7
|
+
* synap update — update skill + show service status
|
|
8
|
+
* synap update --server — also trigger Dokploy redeploy of control-plane
|
|
9
|
+
* synap update --all — trigger redeploy of all registered Dokploy services
|
|
5
10
|
*/
|
|
6
|
-
export
|
|
11
|
+
export interface UpdateOptions {
|
|
12
|
+
server?: boolean;
|
|
13
|
+
all?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function update(opts?: UpdateOptions): Promise<void>;
|
package/dist/commands/update.js
CHANGED
|
@@ -1,16 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* synap update
|
|
3
3
|
*
|
|
4
|
-
* Update the synap skill and
|
|
4
|
+
* Update the synap skill and optionally trigger a server-side redeploy
|
|
5
|
+
* via Dokploy when DOKPLOY_API_KEY is configured.
|
|
6
|
+
*
|
|
7
|
+
* synap update — update skill + show service status
|
|
8
|
+
* synap update --server — also trigger Dokploy redeploy of control-plane
|
|
9
|
+
* synap update --all — trigger redeploy of all registered Dokploy services
|
|
5
10
|
*/
|
|
11
|
+
import chalk from "chalk";
|
|
6
12
|
import ora from "ora";
|
|
7
13
|
import { log, banner } from "../utils/logger.js";
|
|
8
14
|
import { detectOpenClaw } from "../lib/openclaw.js";
|
|
9
15
|
import { installSynapSkill } from "../lib/pod.js";
|
|
10
|
-
|
|
16
|
+
function getDokployBase() {
|
|
17
|
+
const key = process.env.DOKPLOY_API_KEY ?? "";
|
|
18
|
+
if (!key)
|
|
19
|
+
return null;
|
|
20
|
+
const domain = process.env.DEPLOY_DOMAIN ?? "deploy.synap.live";
|
|
21
|
+
const url = process.env.DOKPLOY_URL ?? `https://${domain}`;
|
|
22
|
+
return { url, key };
|
|
23
|
+
}
|
|
24
|
+
async function fetchApps() {
|
|
25
|
+
const dok = getDokployBase();
|
|
26
|
+
if (!dok)
|
|
27
|
+
return [];
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(`${dok.url}/api/application.all`, {
|
|
30
|
+
headers: { "x-api-key": dok.key },
|
|
31
|
+
signal: AbortSignal.timeout(8000),
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok)
|
|
34
|
+
return [];
|
|
35
|
+
return (await res.json());
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function triggerDeploy(appId) {
|
|
42
|
+
const dok = getDokployBase();
|
|
43
|
+
if (!dok)
|
|
44
|
+
return false;
|
|
45
|
+
try {
|
|
46
|
+
const res = await fetch(`${dok.url}/api/application.deploy`, {
|
|
47
|
+
method: "POST",
|
|
48
|
+
headers: { "Content-Type": "application/json", "x-api-key": dok.key },
|
|
49
|
+
body: JSON.stringify({ applicationId: appId }),
|
|
50
|
+
signal: AbortSignal.timeout(10000),
|
|
51
|
+
});
|
|
52
|
+
return res.ok;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// ─── Main ────────────────────────────────────────────────────────────────────
|
|
59
|
+
export async function update(opts = {}) {
|
|
11
60
|
banner();
|
|
12
61
|
log.heading("Update");
|
|
13
|
-
//
|
|
62
|
+
// ── 1. Skill update (OpenClaw) ────────────────────────────────────────────
|
|
14
63
|
const oc = detectOpenClaw();
|
|
15
64
|
if (oc.found) {
|
|
16
65
|
const spinner = ora("Updating synap skill...").start();
|
|
@@ -19,13 +68,75 @@ export async function update() {
|
|
|
19
68
|
spinner.succeed("Synap skill updated");
|
|
20
69
|
}
|
|
21
70
|
catch (err) {
|
|
22
|
-
spinner.fail(err instanceof Error ? err.message : "
|
|
71
|
+
spinner.fail(err instanceof Error ? err.message : "Skill update failed");
|
|
23
72
|
}
|
|
24
73
|
}
|
|
25
74
|
else {
|
|
26
75
|
log.dim("OpenClaw not detected — skipping skill update");
|
|
27
76
|
}
|
|
28
|
-
//
|
|
77
|
+
// ── 2. Dokploy service status ─────────────────────────────────────────────
|
|
78
|
+
log.blank();
|
|
79
|
+
const dok = getDokployBase();
|
|
80
|
+
if (!dok) {
|
|
81
|
+
log.dim("Dokploy not configured (DOKPLOY_API_KEY not set)");
|
|
82
|
+
log.dim("To enable server management: set DOKPLOY_API_KEY + DEPLOY_DOMAIN in your env");
|
|
83
|
+
log.blank();
|
|
84
|
+
log.info("To update the CLI itself:");
|
|
85
|
+
log.dim(" npm update -g @synap/cli");
|
|
86
|
+
log.blank();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const appsSpinner = ora("Fetching service status from Dokploy...").start();
|
|
90
|
+
const apps = await fetchApps();
|
|
91
|
+
appsSpinner.stop();
|
|
92
|
+
if (apps.length === 0) {
|
|
93
|
+
log.dim("No services found in Dokploy (or API unreachable)");
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
log.heading("Services");
|
|
97
|
+
for (const app of apps) {
|
|
98
|
+
const status = app.status === "running"
|
|
99
|
+
? chalk.green(app.status)
|
|
100
|
+
: app.status === "error"
|
|
101
|
+
? chalk.red(app.status)
|
|
102
|
+
: chalk.yellow(app.status);
|
|
103
|
+
console.log(` ${chalk.bold(app.name.padEnd(24))} ${status} ${chalk.dim(app.env ?? "")}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// ── 3. Trigger redeploys if requested ─────────────────────────────────────
|
|
107
|
+
if (opts.server || opts.all) {
|
|
108
|
+
log.blank();
|
|
109
|
+
log.heading(opts.all ? "Redeploying all services" : "Redeploying control-plane");
|
|
110
|
+
const targets = opts.all
|
|
111
|
+
? apps
|
|
112
|
+
: apps.filter((a) => a.name.toLowerCase().includes("control-plane") ||
|
|
113
|
+
a.appName?.toLowerCase().includes("control-plane"));
|
|
114
|
+
if (targets.length === 0) {
|
|
115
|
+
log.dim("No matching services found in Dokploy");
|
|
116
|
+
log.dim("Register services first: synap infra status");
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
for (const app of targets) {
|
|
120
|
+
const spinner = ora(`Deploying ${app.name}...`).start();
|
|
121
|
+
const ok = await triggerDeploy(app.id);
|
|
122
|
+
if (ok) {
|
|
123
|
+
spinner.succeed(`${app.name}: deploy triggered`);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
spinner.fail(`${app.name}: deploy failed`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
log.blank();
|
|
131
|
+
log.dim(`Watch progress: ${chalk.cyan(`${dok.url}`)}`);
|
|
132
|
+
log.dim("Or tail logs: synap infra logs <service-name>");
|
|
133
|
+
}
|
|
134
|
+
else if (apps.length > 0) {
|
|
135
|
+
log.blank();
|
|
136
|
+
log.dim(`To redeploy: ${chalk.cyan("synap update --server")} (control-plane only)`);
|
|
137
|
+
log.dim(` ${chalk.cyan("synap update --all")} (all services)`);
|
|
138
|
+
}
|
|
139
|
+
// ── 4. CLI update reminder ────────────────────────────────────────────────
|
|
29
140
|
log.blank();
|
|
30
141
|
log.info("To update the CLI itself:");
|
|
31
142
|
log.dim(" npm update -g @synap/cli");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAiBlD,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,mBAAmB,CAAC;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,MAAM,EAAE,CAAC;IAC3D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,sBAAsB,EAAE;YACxD,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE;YACjC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAa;IACxC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,yBAAyB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE;YACrE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YAC9C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB,EAAE;IACnD,MAAM,EAAE,CAAC;IACT,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtB,6EAA6E;IAC7E,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,iBAAiB,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC3D,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAE7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAC5D,GAAG,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QACxF,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,yCAAyC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAC/B,WAAW,CAAC,IAAI,EAAE,CAAC;IAEnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,KAAK,SAAS;gBACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO;oBACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACvB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC9C,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CACnD,CAAC;QAEN,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACjD,GAAG,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxD,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,GAAG,CACL,iBAAiB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAC7E,CAAC;QACF,GAAG,CAAC,GAAG,CACL,iBAAiB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CACvE,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACtC,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IACtC,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,CAAC"}
|