@synap-core/cli 1.6.1 → 1.8.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/dist/commands/agent-run.d.ts +47 -0
- package/dist/commands/agent-run.js +302 -0
- package/dist/commands/agent-run.js.map +1 -0
- package/dist/commands/artifact.d.ts +26 -0
- package/dist/commands/artifact.js +76 -0
- package/dist/commands/artifact.js.map +1 -0
- package/dist/commands/automation.d.ts +47 -0
- package/dist/commands/automation.js +600 -0
- package/dist/commands/automation.js.map +1 -0
- package/dist/commands/cell.d.ts +55 -0
- package/dist/commands/cell.js +277 -0
- package/dist/commands/cell.js.map +1 -0
- package/dist/commands/connect.js +41 -7
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connections.js +0 -16
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/connectors.d.ts +31 -0
- package/dist/commands/connectors.js +276 -0
- package/dist/commands/connectors.js.map +1 -0
- package/dist/commands/context.d.ts +22 -0
- package/dist/commands/context.js +151 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/data-extra.d.ts +13 -0
- package/dist/commands/data-extra.js +161 -0
- package/dist/commands/data-extra.js.map +1 -0
- package/dist/commands/data.d.ts +13 -9
- package/dist/commands/data.js +220 -109
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/discover.d.ts +18 -0
- package/dist/commands/discover.js +71 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/doc.d.ts +39 -0
- package/dist/commands/doc.js +130 -0
- package/dist/commands/doc.js.map +1 -0
- package/dist/commands/events.d.ts +26 -0
- package/dist/commands/events.js +68 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/explain.d.ts +21 -0
- package/dist/commands/explain.js +248 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/graph.d.ts +18 -0
- package/dist/commands/graph.js +73 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/home.d.ts +12 -0
- package/dist/commands/home.js +54 -0
- package/dist/commands/home.js.map +1 -0
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.js +62 -102
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +9 -0
- package/dist/commands/keys.js +79 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/knowledge.d.ts +32 -18
- package/dist/commands/knowledge.js +303 -53
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/observe.d.ts +9 -0
- package/dist/commands/observe.js +90 -0
- package/dist/commands/observe.js.map +1 -0
- package/dist/commands/open.d.ts +15 -0
- package/dist/commands/open.js +44 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/pods.d.ts +5 -0
- package/dist/commands/pods.js +85 -37
- package/dist/commands/pods.js.map +1 -1
- package/dist/commands/proposals-actions.d.ts +7 -0
- package/dist/commands/proposals-actions.js +40 -0
- package/dist/commands/proposals-actions.js.map +1 -0
- package/dist/commands/providers.d.ts +38 -0
- package/dist/commands/providers.js +170 -0
- package/dist/commands/providers.js.map +1 -0
- package/dist/commands/sessions.d.ts +31 -0
- package/dist/commands/sessions.js +224 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/skills-commands.d.ts +26 -0
- package/dist/commands/skills-commands.js +186 -0
- package/dist/commands/skills-commands.js.map +1 -0
- package/dist/commands/skills.d.ts +26 -0
- package/dist/commands/skills.js +195 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.js +68 -30
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/subscribe.d.ts +19 -0
- package/dist/commands/subscribe.js +91 -0
- package/dist/commands/subscribe.js.map +1 -0
- package/dist/commands/view.d.ts +57 -0
- package/dist/commands/view.js +194 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +823 -206
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-templates.d.ts +25 -0
- package/dist/lib/agent-templates.js +148 -0
- package/dist/lib/agent-templates.js.map +1 -0
- package/dist/lib/agents-config.d.ts +4 -1
- package/dist/lib/agents-config.js +19 -2
- package/dist/lib/agents-config.js.map +1 -1
- package/dist/lib/capture-lane.d.ts +49 -0
- package/dist/lib/capture-lane.js +79 -0
- package/dist/lib/capture-lane.js.map +1 -0
- package/dist/lib/hub-client.d.ts +14 -0
- package/dist/lib/hub-client.js +45 -3
- package/dist/lib/hub-client.js.map +1 -1
- package/dist/lib/pod.d.ts +22 -1
- package/dist/lib/pod.js +32 -2
- package/dist/lib/pod.js.map +1 -1
- package/dist/lib/skills-installer.d.ts +1 -1
- package/dist/lib/skills-installer.js +1 -1
- package/dist/lib/skills-installer.js.map +1 -1
- package/dist/lib/targets.d.ts +17 -1
- package/dist/lib/targets.js +744 -70
- package/dist/lib/targets.js.map +1 -1
- package/node_modules/@synap/hub-rest-client/dist/index.cjs +881 -0
- package/node_modules/@synap/hub-rest-client/dist/index.d.cts +907 -0
- package/node_modules/@synap/hub-rest-client/dist/index.d.ts +907 -0
- package/node_modules/@synap/hub-rest-client/dist/index.js +851 -0
- package/node_modules/@synap/hub-rest-client/package.json +45 -0
- package/node_modules/@synap/hub-rest-client/src/client.ts +1143 -0
- package/node_modules/@synap/hub-rest-client/src/errors.ts +30 -0
- package/node_modules/@synap/hub-rest-client/src/index.ts +111 -0
- package/node_modules/@synap/hub-rest-client/src/setup.ts +77 -0
- package/node_modules/@synap/hub-rest-client/src/types.ts +639 -0
- package/package.json +9 -2
- package/skills/synap/SKILL.md +374 -100
- package/skills/synap-ui/SKILL.md +12 -9
- package/dist/lib/templates.d.ts +0 -11
- package/dist/lib/templates.js +0 -13
- package/dist/lib/templates.js.map +0 -1
- package/dist/templates/agent-os.json +0 -3090
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/commands/explain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap graph
|
|
3
|
+
*
|
|
4
|
+
* BFS graph traversal from a starting entity via the Hub Protocol.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* synap graph --entity <id> # traversal depth 2
|
|
8
|
+
* synap graph --entity <id> --depth 3
|
|
9
|
+
* synap graph --entity <id> --json
|
|
10
|
+
*/
|
|
11
|
+
export interface GraphTraverseOpts {
|
|
12
|
+
entity: string;
|
|
13
|
+
depth?: string;
|
|
14
|
+
json?: boolean;
|
|
15
|
+
podUrl?: string;
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function graphTraverse(opts: GraphTraverseOpts): Promise<void>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap graph
|
|
3
|
+
*
|
|
4
|
+
* BFS graph traversal from a starting entity via the Hub Protocol.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* synap graph --entity <id> # traversal depth 2
|
|
8
|
+
* synap graph --entity <id> --depth 3
|
|
9
|
+
* synap graph --entity <id> --json
|
|
10
|
+
*/
|
|
11
|
+
import chalk from "chalk";
|
|
12
|
+
import { log } from "../utils/logger.js";
|
|
13
|
+
import { resolveHubConfig, resolveUserId, hubGet } from "../lib/hub-client.js";
|
|
14
|
+
export async function graphTraverse(opts) {
|
|
15
|
+
try {
|
|
16
|
+
const cfg = await resolveHubConfig(opts);
|
|
17
|
+
const userId = await resolveUserId(cfg);
|
|
18
|
+
const maxDepth = parseInt(opts.depth ?? "2", 10);
|
|
19
|
+
const results = await hubGet("/graph/traverse", {
|
|
20
|
+
startEntityId: opts.entity,
|
|
21
|
+
maxDepth,
|
|
22
|
+
userId,
|
|
23
|
+
}, cfg);
|
|
24
|
+
if (opts.json) {
|
|
25
|
+
console.log(JSON.stringify(results, null, 2));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// The API returns a flat array of records — each record is an entity or
|
|
29
|
+
// relation row from the traversal. Split by whether it has a `sourceEntityId`
|
|
30
|
+
// (relation) or not (node).
|
|
31
|
+
const nodes = [];
|
|
32
|
+
const edges = [];
|
|
33
|
+
for (const row of (Array.isArray(results) ? results : [])) {
|
|
34
|
+
if (row.sourceEntityId || row.targetEntityId) {
|
|
35
|
+
edges.push(row);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
nodes.push(row);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
console.log(chalk.bold(`\nGraph from ${opts.entity} (depth ${maxDepth})`));
|
|
42
|
+
console.log(chalk.bold(`\nNodes (${nodes.length}):`));
|
|
43
|
+
if (nodes.length === 0) {
|
|
44
|
+
log.dim("(none)");
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
for (const n of nodes) {
|
|
48
|
+
const profile = String(n.profileSlug ?? n.entityType ?? n.type ?? "entity").padEnd(14);
|
|
49
|
+
const title = String(n.title ?? n.name ?? "–").slice(0, 40).padEnd(42);
|
|
50
|
+
const id = chalk.dim(String(n.id ?? "").slice(0, 8));
|
|
51
|
+
console.log(` ${chalk.cyan("•")} ${profile} ${title} ${id}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
console.log(chalk.bold(`\nEdges (${edges.length}):`));
|
|
55
|
+
if (edges.length === 0) {
|
|
56
|
+
log.dim("(none)");
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
for (const e of edges) {
|
|
60
|
+
const relType = String(e.type ?? e.relationType ?? e.relationshipType ?? "–").padEnd(22);
|
|
61
|
+
const src = String(e.sourceEntityId ?? "?").slice(0, 8);
|
|
62
|
+
const tgt = String(e.targetEntityId ?? "?").slice(0, 8);
|
|
63
|
+
console.log(` ${chalk.dim(relType)} ${chalk.dim(src)} → ${chalk.dim(tgt)}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
console.log("");
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
log.error("Error: " + e.message);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap home
|
|
3
|
+
*
|
|
4
|
+
* Show the current bento layout of the active workspace's home screen.
|
|
5
|
+
* Useful at the start of an agent session to understand what's already
|
|
6
|
+
* present before proposing UI changes.
|
|
7
|
+
*/
|
|
8
|
+
import type { BaseOpts } from "./data.js";
|
|
9
|
+
export interface HomeOpts extends BaseOpts {
|
|
10
|
+
workspace?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function showHome(opts: HomeOpts): Promise<void>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* synap home
|
|
3
|
+
*
|
|
4
|
+
* Show the current bento layout of the active workspace's home screen.
|
|
5
|
+
* Useful at the start of an agent session to understand what's already
|
|
6
|
+
* present before proposing UI changes.
|
|
7
|
+
*/
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
import { log } from "../utils/logger.js";
|
|
10
|
+
import { resolveHubConfig, hubGet } from "../lib/hub-client.js";
|
|
11
|
+
import { getAgentWorkspaceRouting } from "../lib/pod.js";
|
|
12
|
+
export async function showHome(opts) {
|
|
13
|
+
try {
|
|
14
|
+
const cfg = await resolveHubConfig(opts);
|
|
15
|
+
const routing = getAgentWorkspaceRouting();
|
|
16
|
+
const workspaceId = opts.workspace ??
|
|
17
|
+
routing?.memoryWorkspaceId ??
|
|
18
|
+
cfg.workspaceId;
|
|
19
|
+
if (!workspaceId) {
|
|
20
|
+
console.error(chalk.red("Error: no workspace resolved. Pass --workspace <id> or run `synap context` to set active workspace."));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const res = (await hubGet(`/workspaces/${workspaceId}/home`, {}, cfg));
|
|
24
|
+
if (opts.json) {
|
|
25
|
+
console.log(JSON.stringify(res, null, 2));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const viewLabel = res.homeViewName
|
|
29
|
+
? `${res.homeViewName} (${res.homeViewId ?? "no view"})`
|
|
30
|
+
: res.homeViewId ?? chalk.dim("none");
|
|
31
|
+
log.info(`Home layout — workspace ${chalk.bold(workspaceId.slice(0, 8))}`);
|
|
32
|
+
console.log(` View: ${chalk.cyan(viewLabel)}`);
|
|
33
|
+
console.log(` Blocks: ${res.blocks.length}`);
|
|
34
|
+
if (res.blockSummary.length === 0) {
|
|
35
|
+
console.log(chalk.dim(" (empty — no bento blocks on home yet)"));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log("");
|
|
39
|
+
for (const b of res.blockSummary) {
|
|
40
|
+
const kindLabel = chalk.dim(`[${b.kind}]`);
|
|
41
|
+
const typeLabel = b.typeKey ? chalk.cyan(b.typeKey) : "";
|
|
42
|
+
const nameLabel = b.label ? chalk.white(b.label) : chalk.dim("unlabelled");
|
|
43
|
+
const idLabel = b.id ? chalk.dim(` ${b.id.slice(0, 8)}`) : "";
|
|
44
|
+
console.log(` ${kindLabel} ${typeLabel} ${nameLabel}${idLabel}`);
|
|
45
|
+
}
|
|
46
|
+
console.log("");
|
|
47
|
+
console.log(chalk.dim("Tip: use `create_proposal` with targetType:\"workspace_home\" to propose adding or removing blocks."));
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
log.error("Error: " + e.message);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=home.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/commands/home.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -10,11 +10,9 @@ import { detectOpenClaw } from "../lib/openclaw.js";
|
|
|
10
10
|
interface InitOptions {
|
|
11
11
|
podUrl?: string;
|
|
12
12
|
apiKey?: string;
|
|
13
|
-
skipSecurity?: boolean;
|
|
14
13
|
skipIs?: boolean;
|
|
15
14
|
}
|
|
16
15
|
export declare function init(opts: InitOptions): Promise<void>;
|
|
17
|
-
export declare function securityStep(version?: string): Promise<void>;
|
|
18
16
|
export declare function skillStep(openclawFound: boolean, oc?: ReturnType<typeof detectOpenClaw>): Promise<void>;
|
|
19
17
|
export declare function seedStep(podUrl: string, apiKey: string, oc: ReturnType<typeof detectOpenClaw>): Promise<void>;
|
|
20
18
|
export declare function isStep(podUrl: string, apiKey: string, openclawFound: boolean): Promise<void>;
|
package/dist/commands/init.js
CHANGED
|
@@ -13,7 +13,6 @@ import { execSync } from "child_process";
|
|
|
13
13
|
import fs from "fs";
|
|
14
14
|
import { log, banner } from "../utils/logger.js";
|
|
15
15
|
import { detectOpenClaw, readOpenClawConfig, writeOpenClawConfig, setConfigValue, } from "../lib/openclaw.js";
|
|
16
|
-
import { runSecurityChecks, computeScore } from "../lib/hardening.js";
|
|
17
16
|
import { checkPodHealth, setupAgent, setupAgentViaCp, provisionUserOnPod, installSynapSkill, enableOpenClawAddonManaged, saveLocalPodConfig, checkServerResources, startOpenClawOnServer, findSynapDeployDir, getLocalPodConfig, } from "../lib/pod.js";
|
|
18
17
|
import { seedAgentEntities } from "../lib/seed.js";
|
|
19
18
|
import { login, isLoggedIn, listPods, getStoredToken, waitForPodCallback } from "../lib/auth.js";
|
|
@@ -47,12 +46,13 @@ export async function init(opts) {
|
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
// ── Auto-detect environment ─────────────────────────────────────────────
|
|
49
|
+
// Pod URL is always the primary decision axis. OpenClaw, if present, is an
|
|
50
|
+
// optional enhancement that gets wired after the pod connection is set up —
|
|
51
|
+
// it is no longer the gating condition for which path runs.
|
|
50
52
|
const oc = detectOpenClaw();
|
|
51
53
|
const isServer = detectServer();
|
|
52
54
|
if (oc.found) {
|
|
53
|
-
log.info(`OpenClaw detected${oc.version ? ` v${oc.version}` : ""} —
|
|
54
|
-
await pathA(opts, oc);
|
|
55
|
-
return;
|
|
55
|
+
log.info(`OpenClaw detected${oc.version ? ` v${oc.version}` : ""} — will wire it after pod setup`);
|
|
56
56
|
}
|
|
57
57
|
if (isServer) {
|
|
58
58
|
// Before assuming fresh install, check if a pod is already running
|
|
@@ -61,15 +61,26 @@ export async function init(opts) {
|
|
|
61
61
|
spinner.stop();
|
|
62
62
|
if (existingPodUrl) {
|
|
63
63
|
log.success(`Found existing pod at ${existingPodUrl}`);
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
if (oc.found) {
|
|
65
|
+
log.info("Server + OpenClaw — connecting pod then wiring OpenClaw");
|
|
66
|
+
await pathA(opts, oc);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
log.info("Server detected — connecting to existing pod");
|
|
70
|
+
await pathBExisting(opts, existingPodUrl);
|
|
71
|
+
}
|
|
66
72
|
}
|
|
67
73
|
else {
|
|
68
|
-
log.info("Server detected
|
|
74
|
+
log.info("Server detected — fresh setup mode");
|
|
69
75
|
await pathB(opts);
|
|
70
76
|
}
|
|
71
77
|
return;
|
|
72
78
|
}
|
|
79
|
+
if (oc.found) {
|
|
80
|
+
// Desktop with OpenClaw — use pathA (OpenClaw connect mode)
|
|
81
|
+
await pathA(opts, oc);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
73
84
|
log.info("Running on desktop — hosting mode");
|
|
74
85
|
await pathC(opts);
|
|
75
86
|
}
|
|
@@ -81,10 +92,6 @@ async function pathA(opts, oc) {
|
|
|
81
92
|
log.heading("Step 1: OpenClaw Detected");
|
|
82
93
|
log.success(`Version: ${oc.version ?? "unknown"}`);
|
|
83
94
|
log.success(`Gateway: ${oc.gatewayRunning ? "running" : "stopped"} (port ${oc.gatewayPort ?? 18789})`);
|
|
84
|
-
// ── Security ────────────────────────────────────────────────────────────
|
|
85
|
-
if (!opts.skipSecurity) {
|
|
86
|
-
await securityStep(oc.version);
|
|
87
|
-
}
|
|
88
95
|
// ── Pod ─────────────────────────────────────────────────────────────────
|
|
89
96
|
const podUrl = await podChoiceStep(opts);
|
|
90
97
|
if (!podUrl)
|
|
@@ -136,7 +143,7 @@ async function pathBExisting(opts, detectedUrl) {
|
|
|
136
143
|
log.warn("Could not find your Synap deploy directory automatically.");
|
|
137
144
|
log.dim("Start OpenClaw manually from your synap-backend dir:");
|
|
138
145
|
log.dim(" docker compose --profile openclaw up -d openclaw");
|
|
139
|
-
log.dim("Then run: synap
|
|
146
|
+
log.dim("Then run: synap update");
|
|
140
147
|
return;
|
|
141
148
|
}
|
|
142
149
|
log.info(`Deploy dir: ${deployDir}`);
|
|
@@ -160,14 +167,14 @@ async function pathBExisting(opts, detectedUrl) {
|
|
|
160
167
|
if (ocStarted) {
|
|
161
168
|
log.info("OpenClaw is initializing (first boot takes 1-2 min).");
|
|
162
169
|
log.info("Once it's ready, run:");
|
|
163
|
-
console.log(chalk.cyan("\n synap
|
|
170
|
+
console.log(chalk.cyan("\n synap update\n"));
|
|
164
171
|
log.dim("This will install the skill, seed your workspace, and configure AI routing.");
|
|
165
172
|
log.dim("Check progress at any time: synap status");
|
|
166
173
|
}
|
|
167
174
|
else {
|
|
168
175
|
log.info("Start OpenClaw manually:");
|
|
169
176
|
console.log(chalk.cyan(`\n cd ${deployDir} && docker compose --profile openclaw up -d openclaw\n`));
|
|
170
|
-
log.dim("Then run: synap
|
|
177
|
+
log.dim("Then run: synap update");
|
|
171
178
|
}
|
|
172
179
|
}
|
|
173
180
|
// =============================================================================
|
|
@@ -233,7 +240,7 @@ async function pathB(opts) {
|
|
|
233
240
|
}
|
|
234
241
|
log.blank();
|
|
235
242
|
log.info("OpenClaw is initializing. Once it's ready, run:");
|
|
236
|
-
console.log(chalk.cyan("\n synap
|
|
243
|
+
console.log(chalk.cyan("\n synap update\n"));
|
|
237
244
|
log.dim("Check progress: synap status");
|
|
238
245
|
return;
|
|
239
246
|
}
|
|
@@ -344,8 +351,7 @@ async function connectExistingPod(podUrl, opts, podType, podId) {
|
|
|
344
351
|
const oc = detectOpenClaw();
|
|
345
352
|
if (oc.found) {
|
|
346
353
|
log.success(`OpenClaw detected${oc.version ? ` v${oc.version}` : ""}`);
|
|
347
|
-
|
|
348
|
-
await securityStep(oc.version);
|
|
354
|
+
// Security audit removed — no longer OpenClaw-specific
|
|
349
355
|
}
|
|
350
356
|
// Get API key
|
|
351
357
|
const apiKey = await connectStep(podUrl, opts, oc.found, podId);
|
|
@@ -431,44 +437,10 @@ async function connectExistingPod(podUrl, opts, podType, podId) {
|
|
|
431
437
|
log.info("Pod connected. Once OpenClaw is running:");
|
|
432
438
|
log.dim(" Local: openclaw skills install synap");
|
|
433
439
|
log.dim(" Docker: docker exec openclaw openclaw skills install synap");
|
|
434
|
-
log.dim(" Or run: synap
|
|
440
|
+
log.dim(" Or run: synap update");
|
|
435
441
|
}
|
|
436
442
|
printSummary(podUrl, ocAfter.found);
|
|
437
443
|
}
|
|
438
|
-
// =============================================================================
|
|
439
|
-
// SHARED STEPS
|
|
440
|
-
// =============================================================================
|
|
441
|
-
export async function securityStep(version) {
|
|
442
|
-
log.heading("Security Audit");
|
|
443
|
-
const checks = runSecurityChecks(version);
|
|
444
|
-
const failed = checks.filter((c) => !c.passed);
|
|
445
|
-
const score = computeScore(checks);
|
|
446
|
-
const passed = checks.filter((c) => c.passed).length;
|
|
447
|
-
console.log(` ${passed}/${checks.length} passed — Score: ${score === "A" ? chalk.green.bold("A") : score === "B" ? chalk.yellow.bold("B") : chalk.red.bold(score)}`);
|
|
448
|
-
if (failed.length > 0) {
|
|
449
|
-
const fixable = failed.filter((c) => c.fixable && c.fix);
|
|
450
|
-
if (fixable.length > 0) {
|
|
451
|
-
const { doFix } = await prompts({
|
|
452
|
-
type: "confirm",
|
|
453
|
-
name: "doFix",
|
|
454
|
-
message: `Auto-fix ${fixable.length} issue(s)?`,
|
|
455
|
-
initial: true,
|
|
456
|
-
});
|
|
457
|
-
if (doFix) {
|
|
458
|
-
for (const check of fixable) {
|
|
459
|
-
check.fix();
|
|
460
|
-
log.success(`Fixed: ${check.name}`);
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
for (const check of failed.filter((c) => !c.fixable)) {
|
|
465
|
-
log.warn(`${check.name} — ${check.message}`);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
log.success("All checks passed");
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
444
|
async function podChoiceStep(opts) {
|
|
473
445
|
log.heading("Synap Pod");
|
|
474
446
|
if (opts.podUrl) {
|
|
@@ -837,11 +809,11 @@ export async function isStep(podUrl, apiKey, openclawFound) {
|
|
|
837
809
|
}
|
|
838
810
|
else if (!provData?.subscribed) {
|
|
839
811
|
log.dim("No AI subscription — subscribe at https://synap.live/pricing");
|
|
840
|
-
log.dim("Skip this step with: synap
|
|
812
|
+
log.dim("Skip this step with: synap update --skip-is");
|
|
841
813
|
}
|
|
842
814
|
else if (provData?.cpProvisioned) {
|
|
843
815
|
log.dim("IS provisioned on CP but not yet confirmed on pod.");
|
|
844
|
-
log.dim("Re-run 'synap
|
|
816
|
+
log.dim("Re-run 'synap update' in a minute, or reprovision from Browser Settings.");
|
|
845
817
|
}
|
|
846
818
|
}
|
|
847
819
|
else {
|
|
@@ -861,40 +833,47 @@ export async function isStep(podUrl, apiKey, openclawFound) {
|
|
|
861
833
|
log.blank();
|
|
862
834
|
log.dim("To enable AI routing via Synap:");
|
|
863
835
|
log.dim(" 1. Log in: synap login --token <token> (get token at synap.live/account/tokens)");
|
|
864
|
-
log.dim(" 2. Re-run: synap
|
|
836
|
+
log.dim(" 2. Re-run: synap update");
|
|
865
837
|
log.blank();
|
|
866
|
-
log.dim("Or skip AI for now: synap
|
|
838
|
+
log.dim("Or skip AI for now: synap update --skip-is");
|
|
867
839
|
}
|
|
868
840
|
}
|
|
869
841
|
// 3. Configure OpenClaw provider (if found and IS is active)
|
|
870
842
|
if (openclawFound && isActive) {
|
|
871
843
|
const ocRuntime = detectOpenClaw();
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
});
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
844
|
+
const { configureOc } = await prompts({
|
|
845
|
+
type: "confirm",
|
|
846
|
+
name: "configureOc",
|
|
847
|
+
message: "Configure Synap IS as OpenClaw AI provider?",
|
|
848
|
+
initial: true,
|
|
849
|
+
});
|
|
850
|
+
if (configureOc) {
|
|
851
|
+
// Fetch real model IDs from the pod so OpenClaw shows actual provider names
|
|
852
|
+
const { fetchPodProviders } = await import("./providers.js");
|
|
853
|
+
const podProviders = await fetchPodProviders(podUrl, apiKey);
|
|
854
|
+
const models = podProviders.flatMap((p) => p.models.map((m) => ({
|
|
855
|
+
id: `${p.providerId}/${m.id}`,
|
|
856
|
+
name: `${p.name} — ${m.id}`,
|
|
857
|
+
...(m.contextWindow ? { contextWindow: m.contextWindow } : {}),
|
|
858
|
+
})));
|
|
859
|
+
if (models.length === 0) {
|
|
860
|
+
log.warn("No model IDs found — configure models in pod admin → Intelligence → Providers.");
|
|
861
|
+
log.dim("Skipping OpenClaw AI provider setup. Re-run: synap update");
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
864
|
+
const synapProvider = {
|
|
865
|
+
baseUrl: `${podUrl}/v1`,
|
|
866
|
+
api: "openai-completions",
|
|
867
|
+
apiKey,
|
|
868
|
+
models,
|
|
869
|
+
};
|
|
870
|
+
if (ocRuntime.runtime === "docker") {
|
|
871
|
+
const containerName = ocRuntime.containerName ?? "openclaw";
|
|
892
872
|
const spinner = ora("Writing Synap IS provider to OpenClaw config...").start();
|
|
893
873
|
try {
|
|
894
874
|
execSync(`docker exec ${containerName} openclaw config set models.providers.synap ${JSON.stringify(JSON.stringify(synapProvider))}`, { stdio: "pipe", timeout: 15000 });
|
|
895
875
|
spinner.succeed("Synap IS registered as OpenClaw provider");
|
|
896
|
-
log.dim(
|
|
897
|
-
// Restart to apply (Docker has no hot reload)
|
|
876
|
+
log.dim(`Models: ${models.slice(0, 3).map((m) => m.id).join(", ")}${models.length > 3 ? ` +${models.length - 3} more` : ""}`);
|
|
898
877
|
try {
|
|
899
878
|
execSync(`docker restart ${containerName}`, { stdio: "pipe", timeout: 30000 });
|
|
900
879
|
log.dim("Container restarted to pick up new config");
|
|
@@ -908,34 +887,15 @@ export async function isStep(podUrl, apiKey, openclawFound) {
|
|
|
908
887
|
spinner.fail("Failed to set Synap IS provider");
|
|
909
888
|
if (stderr)
|
|
910
889
|
log.dim(stderr);
|
|
911
|
-
log.dim("Run manually:");
|
|
912
890
|
log.dim(` docker exec ${containerName} openclaw config set models.providers.synap.baseUrl ${podUrl}/v1`);
|
|
913
|
-
log.dim(` docker exec ${containerName} openclaw config set models.providers.synap.api openai-completions`);
|
|
914
891
|
}
|
|
915
892
|
}
|
|
916
|
-
|
|
917
|
-
else {
|
|
918
|
-
// Local install path: write to config file directly
|
|
919
|
-
const { configureOc } = await prompts({
|
|
920
|
-
type: "confirm",
|
|
921
|
-
name: "configureOc",
|
|
922
|
-
message: "Configure Synap IS as OpenClaw AI provider?",
|
|
923
|
-
initial: true,
|
|
924
|
-
});
|
|
925
|
-
if (configureOc) {
|
|
893
|
+
else {
|
|
926
894
|
const config = readOpenClawConfig() ?? {};
|
|
927
|
-
setConfigValue(config, "models.providers.synap",
|
|
928
|
-
baseUrl: `${podUrl}/v1`,
|
|
929
|
-
api: "openai-completions",
|
|
930
|
-
apiKey,
|
|
931
|
-
models: [
|
|
932
|
-
{ id: "synap/auto", name: "Synap Auto", contextWindow: 200000, maxTokens: 8192 },
|
|
933
|
-
{ id: "synap/balanced", name: "Synap Balanced", contextWindow: 131072, maxTokens: 8192 },
|
|
934
|
-
{ id: "synap/advanced", name: "Synap Advanced", contextWindow: 200000, maxTokens: 8192 },
|
|
935
|
-
],
|
|
936
|
-
});
|
|
895
|
+
setConfigValue(config, "models.providers.synap", synapProvider);
|
|
937
896
|
writeOpenClawConfig(config);
|
|
938
897
|
log.success("Synap IS configured as OpenClaw provider — restart OpenClaw to apply");
|
|
898
|
+
log.dim(`Models: ${models.slice(0, 3).map((m) => m.id).join(", ")}${models.length > 3 ? ` +${models.length - 3} more` : ""}`);
|
|
939
899
|
}
|
|
940
900
|
}
|
|
941
901
|
}
|
|
@@ -957,13 +917,13 @@ function printSummary(podUrl, openclawConnected) {
|
|
|
957
917
|
}
|
|
958
918
|
log.blank();
|
|
959
919
|
log.dim(" synap status — health check");
|
|
960
|
-
log.dim(" synap
|
|
920
|
+
log.dim(" synap status — verify security");
|
|
961
921
|
log.blank();
|
|
962
922
|
if (!openclawConnected) {
|
|
963
923
|
log.info("OpenClaw is provisioning on your pod server (2-5 min).");
|
|
964
924
|
log.info("Once it's ready, run:");
|
|
965
925
|
log.blank();
|
|
966
|
-
console.log(chalk.cyan(" synap
|
|
926
|
+
console.log(chalk.cyan(" synap update"));
|
|
967
927
|
log.blank();
|
|
968
928
|
log.dim("This will install the skill, seed your workspace, and configure AI routing.");
|
|
969
929
|
log.dim("Check progress: synap status");
|