@synap-core/cli 1.13.0 → 1.13.1-next.20261102.246dc73

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.
Files changed (227) hide show
  1. package/README.md +13 -3
  2. package/dist/build-info.json +2 -3
  3. package/dist/commands/agents.js +12 -2
  4. package/dist/commands/agents.js.map +1 -1
  5. package/dist/commands/capability.d.ts +86 -0
  6. package/dist/commands/capability.js +117 -30
  7. package/dist/commands/capability.js.map +1 -1
  8. package/dist/commands/context.js +2 -1
  9. package/dist/commands/context.js.map +1 -1
  10. package/dist/commands/data-extra.d.ts +13 -0
  11. package/dist/commands/data-extra.js +23 -2
  12. package/dist/commands/data-extra.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +18 -0
  14. package/dist/commands/doctor.js +28 -1
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/init.js +4 -2
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/keys-request.d.ts +48 -0
  19. package/dist/commands/keys-request.js +236 -0
  20. package/dist/commands/keys-request.js.map +1 -0
  21. package/dist/commands/keys-request.test.d.ts +1 -0
  22. package/dist/commands/keys-request.test.js +176 -0
  23. package/dist/commands/keys-request.test.js.map +1 -0
  24. package/dist/commands/knowledge.d.ts +42 -5
  25. package/dist/commands/knowledge.js +90 -27
  26. package/dist/commands/knowledge.js.map +1 -1
  27. package/dist/commands/market.d.ts +89 -31
  28. package/dist/commands/market.js +215 -222
  29. package/dist/commands/market.js.map +1 -1
  30. package/dist/commands/mcp.d.ts +1 -1
  31. package/dist/commands/mcp.js +14 -9
  32. package/dist/commands/mcp.js.map +1 -1
  33. package/dist/commands/pods.js +6 -2
  34. package/dist/commands/pods.js.map +1 -1
  35. package/dist/commands/proposals-actions.js +7 -1
  36. package/dist/commands/proposals-actions.js.map +1 -1
  37. package/dist/commands/providers.d.ts +22 -6
  38. package/dist/commands/providers.js +39 -32
  39. package/dist/commands/providers.js.map +1 -1
  40. package/dist/commands/raycast.d.ts +15 -0
  41. package/dist/commands/raycast.js +36 -10
  42. package/dist/commands/raycast.js.map +1 -1
  43. package/dist/commands/status.js +12 -6
  44. package/dist/commands/status.js.map +1 -1
  45. package/dist/commands/statusline.backoff.test.js +13 -3
  46. package/dist/commands/statusline.backoff.test.js.map +1 -1
  47. package/dist/commands/statusline.d.ts +104 -9
  48. package/dist/commands/statusline.js +392 -148
  49. package/dist/commands/statusline.js.map +1 -1
  50. package/dist/commands/statusline.line2.test.d.ts +15 -0
  51. package/dist/commands/statusline.line2.test.js +226 -0
  52. package/dist/commands/statusline.line2.test.js.map +1 -0
  53. package/dist/commands/statusline.needs-you.test.d.ts +1 -0
  54. package/dist/commands/statusline.needs-you.test.js +17 -0
  55. package/dist/commands/statusline.needs-you.test.js.map +1 -0
  56. package/dist/commands/statusline.now.test.d.ts +10 -0
  57. package/dist/commands/statusline.now.test.js +250 -0
  58. package/dist/commands/statusline.now.test.js.map +1 -0
  59. package/dist/commands/tracks.d.ts +1 -0
  60. package/dist/commands/tracks.js +4 -0
  61. package/dist/commands/tracks.js.map +1 -1
  62. package/dist/commands/upload.js +12 -0
  63. package/dist/commands/upload.js.map +1 -1
  64. package/dist/commands/wait.d.ts +124 -0
  65. package/dist/commands/wait.js +384 -0
  66. package/dist/commands/wait.js.map +1 -0
  67. package/dist/commands/wait.test.d.ts +8 -0
  68. package/dist/commands/wait.test.js +308 -0
  69. package/dist/commands/wait.test.js.map +1 -0
  70. package/dist/commands/worker-github-app.d.ts +63 -0
  71. package/dist/commands/worker-github-app.js +161 -0
  72. package/dist/commands/worker-github-app.js.map +1 -0
  73. package/dist/commands/worker-github-app.test.d.ts +1 -0
  74. package/dist/commands/worker-github-app.test.js +102 -0
  75. package/dist/commands/worker-github-app.test.js.map +1 -0
  76. package/dist/commands/worker-github-broker.d.ts +39 -0
  77. package/dist/commands/worker-github-broker.js +106 -0
  78. package/dist/commands/worker-github-broker.js.map +1 -0
  79. package/dist/commands/worker-github-broker.test.d.ts +1 -0
  80. package/dist/commands/worker-github-broker.test.js +90 -0
  81. package/dist/commands/worker-github-broker.test.js.map +1 -0
  82. package/dist/commands/worker-runs.test.d.ts +1 -0
  83. package/dist/commands/worker-runs.test.js +150 -0
  84. package/dist/commands/worker-runs.test.js.map +1 -0
  85. package/dist/commands/worker-worktrees.d.ts +34 -0
  86. package/dist/commands/worker-worktrees.js +87 -0
  87. package/dist/commands/worker-worktrees.js.map +1 -0
  88. package/dist/commands/worker.d.ts +192 -5
  89. package/dist/commands/worker.js +467 -45
  90. package/dist/commands/worker.js.map +1 -1
  91. package/dist/commands/worker.test.js +269 -3
  92. package/dist/commands/worker.test.js.map +1 -1
  93. package/dist/index.js +59 -4
  94. package/dist/index.js.map +1 -1
  95. package/dist/lib/agents-config.d.ts +9 -0
  96. package/dist/lib/agents-config.js +20 -0
  97. package/dist/lib/agents-config.js.map +1 -1
  98. package/dist/lib/atomic-file.d.ts +20 -1
  99. package/dist/lib/atomic-file.js +100 -2
  100. package/dist/lib/atomic-file.js.map +1 -1
  101. package/dist/lib/auth.d.ts +25 -0
  102. package/dist/lib/auth.js +49 -9
  103. package/dist/lib/auth.js.map +1 -1
  104. package/dist/lib/box/job-server.js +4 -0
  105. package/dist/lib/box/job-server.js.map +1 -1
  106. package/dist/lib/bridge-invocation.test.d.ts +1 -0
  107. package/dist/lib/bridge-invocation.test.js +75 -0
  108. package/dist/lib/bridge-invocation.test.js.map +1 -0
  109. package/dist/lib/bridge-status.d.ts +144 -0
  110. package/dist/lib/bridge-status.js +227 -0
  111. package/dist/lib/bridge-status.js.map +1 -0
  112. package/dist/lib/bridge-status.test.d.ts +6 -0
  113. package/dist/lib/bridge-status.test.js +197 -0
  114. package/dist/lib/bridge-status.test.js.map +1 -0
  115. package/dist/lib/client-header.test.js +19 -1
  116. package/dist/lib/client-header.test.js.map +1 -1
  117. package/dist/lib/conversation-headers.d.ts +67 -2
  118. package/dist/lib/conversation-headers.js +122 -6
  119. package/dist/lib/conversation-headers.js.map +1 -1
  120. package/dist/lib/conversation-headers.test.d.ts +1 -0
  121. package/dist/lib/conversation-headers.test.js +78 -0
  122. package/dist/lib/conversation-headers.test.js.map +1 -0
  123. package/dist/lib/credential-class.d.ts +12 -1
  124. package/dist/lib/credential-class.js +20 -0
  125. package/dist/lib/credential-class.js.map +1 -1
  126. package/dist/lib/device-connect.d.ts +45 -0
  127. package/dist/lib/device-connect.js +60 -0
  128. package/dist/lib/device-connect.js.map +1 -1
  129. package/dist/lib/goal-words.js +6 -3
  130. package/dist/lib/goal-words.js.map +1 -1
  131. package/dist/lib/hub-client.d.ts +59 -1
  132. package/dist/lib/hub-client.js +130 -36
  133. package/dist/lib/hub-client.js.map +1 -1
  134. package/dist/lib/key-locations.d.ts +3 -3
  135. package/dist/lib/key-locations.js +3 -39
  136. package/dist/lib/key-locations.js.map +1 -1
  137. package/dist/lib/machine-instance.d.ts +7 -5
  138. package/dist/lib/machine-instance.js +7 -5
  139. package/dist/lib/machine-instance.js.map +1 -1
  140. package/dist/lib/mcp-bridge.d.ts +43 -0
  141. package/dist/lib/mcp-bridge.js +199 -11
  142. package/dist/lib/mcp-bridge.js.map +1 -1
  143. package/dist/lib/mcp-bridge.test.js +194 -2
  144. package/dist/lib/mcp-bridge.test.js.map +1 -1
  145. package/dist/lib/mcp-call.d.ts +5 -1
  146. package/dist/lib/mcp-call.js +7 -6
  147. package/dist/lib/mcp-call.js.map +1 -1
  148. package/dist/lib/mcp-connector-url.test.d.ts +1 -0
  149. package/dist/lib/mcp-connector-url.test.js +13 -0
  150. package/dist/lib/mcp-connector-url.test.js.map +1 -0
  151. package/dist/lib/mcp-snippets.d.ts +16 -0
  152. package/dist/lib/mcp-snippets.js +20 -2
  153. package/dist/lib/mcp-snippets.js.map +1 -1
  154. package/dist/lib/now-line.d.ts +66 -0
  155. package/dist/lib/now-line.js +193 -0
  156. package/dist/lib/now-line.js.map +1 -0
  157. package/dist/lib/now-line.test.d.ts +5 -0
  158. package/dist/lib/now-line.test.js +177 -0
  159. package/dist/lib/now-line.test.js.map +1 -0
  160. package/dist/lib/package-updates.d.ts +66 -0
  161. package/dist/lib/package-updates.js +76 -0
  162. package/dist/lib/package-updates.js.map +1 -0
  163. package/dist/lib/pod.d.ts +0 -4
  164. package/dist/lib/pod.js +0 -7
  165. package/dist/lib/pod.js.map +1 -1
  166. package/dist/lib/register-claude-code-mcp.test.js +19 -0
  167. package/dist/lib/register-claude-code-mcp.test.js.map +1 -1
  168. package/dist/lib/safe-open.d.ts +5 -3
  169. package/dist/lib/safe-open.js +9 -8
  170. package/dist/lib/safe-open.js.map +1 -1
  171. package/dist/lib/self-host.d.ts +17 -0
  172. package/dist/lib/self-host.js +24 -0
  173. package/dist/lib/self-host.js.map +1 -0
  174. package/dist/lib/targets.d.ts +31 -0
  175. package/dist/lib/targets.js +100 -104
  176. package/dist/lib/targets.js.map +1 -1
  177. package/dist/lib/template-lifecycle.d.ts +0 -31
  178. package/dist/lib/template-lifecycle.js +0 -74
  179. package/dist/lib/template-lifecycle.js.map +1 -1
  180. package/dist/lib/term.d.ts +24 -0
  181. package/dist/lib/term.js +52 -0
  182. package/dist/lib/term.js.map +1 -0
  183. package/dist/lib/term.test.d.ts +1 -0
  184. package/dist/lib/term.test.js +29 -0
  185. package/dist/lib/term.test.js.map +1 -0
  186. package/dist/lib/transcript-index.d.ts +94 -0
  187. package/dist/lib/transcript-index.js +321 -0
  188. package/dist/lib/transcript-index.js.map +1 -0
  189. package/dist/lib/transcript-index.test.d.ts +10 -0
  190. package/dist/lib/transcript-index.test.js +200 -0
  191. package/dist/lib/transcript-index.test.js.map +1 -0
  192. package/dist/lib/wait-help.d.ts +11 -0
  193. package/dist/lib/wait-help.js +25 -0
  194. package/dist/lib/wait-help.js.map +1 -0
  195. package/dist/lib/wait-state.d.ts +57 -0
  196. package/dist/lib/wait-state.js +114 -0
  197. package/dist/lib/wait-state.js.map +1 -0
  198. package/package.json +2 -2
  199. package/skills/synap/SKILL.md +81 -44
  200. package/skills/synap/code-skills.md +15 -1
  201. package/skills/synap/concepts.md +36 -26
  202. package/skills/synap/document-embeds.md +15 -1
  203. package/skills/synap/focus-sessions.md +4 -4
  204. package/skills/synap/from-intent.md +2 -2
  205. package/skills/synap/governance-rules.md +2 -0
  206. package/skills/synap/hand-off.md +10 -6
  207. package/skills/synap/reflexes.md +4 -4
  208. package/skills/synap/work-model.md +1 -1
  209. package/skills/synap/writing-titles.md +7 -0
  210. package/skills/synap-app/SKILL.md +2 -2
  211. package/skills/synap-app/overview.md +2 -2
  212. package/skills/synap-market/SKILL.md +1 -1
  213. package/skills/synap-market/governance-and-catalog.md +1 -1
  214. package/skills/synap-schema/SKILL.md +4 -1
  215. package/skills/synap-schema/intent-vocabulary-ssot.md +4 -1
  216. package/dist/commands/template.d.ts +0 -42
  217. package/dist/commands/template.js +0 -191
  218. package/dist/commands/template.js.map +0 -1
  219. package/dist/lib/browser-auth.d.ts +0 -35
  220. package/dist/lib/browser-auth.js +0 -170
  221. package/dist/lib/browser-auth.js.map +0 -1
  222. package/dist/lib/openclaw.d.ts +0 -32
  223. package/dist/lib/openclaw.js +0 -165
  224. package/dist/lib/openclaw.js.map +0 -1
  225. package/dist/lib/seed.d.ts +0 -13
  226. package/dist/lib/seed.js +0 -135
  227. package/dist/lib/seed.js.map +0 -1
@@ -1,32 +0,0 @@
1
- /**
2
- * OpenClaw detection and configuration utilities.
3
- * Reads/writes OpenClaw config without modifying unrelated settings.
4
- */
5
- export interface OpenClawInfo {
6
- found: boolean;
7
- /** How OpenClaw was detected — affects which commands can be used */
8
- runtime?: "local" | "docker";
9
- /** Docker container name, set when runtime === "docker" */
10
- containerName?: string;
11
- version?: string;
12
- configPath?: string;
13
- config?: Record<string, unknown>;
14
- gatewayRunning?: boolean;
15
- gatewayPort?: number;
16
- skillsDir?: string;
17
- }
18
- export declare function detectOpenClaw(): OpenClawInfo;
19
- export declare function readOpenClawConfig(): Record<string, unknown> | null;
20
- export declare function writeOpenClawConfig(config: Record<string, unknown>): void;
21
- export declare function getConfigPermissions(): {
22
- mode: string;
23
- safe: boolean;
24
- };
25
- /**
26
- * Get a nested config value safely.
27
- */
28
- export declare function getConfigValue(config: Record<string, unknown>, path: string): unknown;
29
- /**
30
- * Set a nested config value.
31
- */
32
- export declare function setConfigValue(config: Record<string, unknown>, path: string, value: unknown): void;
@@ -1,165 +0,0 @@
1
- /**
2
- * OpenClaw detection and configuration utilities.
3
- * Reads/writes OpenClaw config without modifying unrelated settings.
4
- */
5
- import { existsSync, readFileSync, statSync } from "fs";
6
- import { writeSecretFile } from "./atomic-file.js";
7
- import { homedir } from "os";
8
- import { join } from "path";
9
- import { execSync } from "child_process";
10
- const OPENCLAW_DIR = join(homedir(), ".openclaw");
11
- const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
12
- const OPENCLAW_SKILLS = join(OPENCLAW_DIR, "skills");
13
- export function detectOpenClaw() {
14
- // Detection priority:
15
- // 1. Docker container (most reliable — actively running state)
16
- // 2. Local install (openclaw binary in PATH + ~/.openclaw dir)
17
- //
18
- // Why Docker first: the presence of ~/.openclaw on the host doesn't prove
19
- // OpenClaw is installed locally — it may be a stray directory, or the
20
- // Synap deploy dir may live in the same home. A running Docker container
21
- // is a much stronger signal.
22
- // ── Path 1: Docker container ───────────────────────────────────────────
23
- const dockerInfo = detectOpenClawDocker();
24
- if (dockerInfo)
25
- return dockerInfo;
26
- // ── Path 2: Local install (npm -g or npx) ─────────────────────────────
27
- // Require BOTH ~/.openclaw AND an `openclaw` binary in PATH.
28
- // ~/.openclaw alone is not enough (could be a leftover dir).
29
- let localBinaryVersion;
30
- try {
31
- const out = execSync("openclaw --version 2>/dev/null", {
32
- encoding: "utf-8",
33
- timeout: 5000,
34
- }).trim();
35
- const match = out.match(/\d+\.\d+\.\d+/);
36
- if (match)
37
- localBinaryVersion = match[0];
38
- }
39
- catch {
40
- // binary not in PATH — not a local install
41
- }
42
- if (existsSync(OPENCLAW_DIR) && localBinaryVersion) {
43
- const info = {
44
- found: true,
45
- runtime: "local",
46
- configPath: OPENCLAW_CONFIG,
47
- skillsDir: OPENCLAW_SKILLS,
48
- version: localBinaryVersion,
49
- };
50
- // Config
51
- if (existsSync(OPENCLAW_CONFIG)) {
52
- try {
53
- info.config = JSON.parse(readFileSync(OPENCLAW_CONFIG, "utf-8"));
54
- }
55
- catch { /* corrupted */ }
56
- }
57
- // Gateway
58
- const port = info.config?.gateway?.port ?? 18789;
59
- info.gatewayPort = port;
60
- try {
61
- execSync(`curl -sf http://127.0.0.1:${port}/health >/dev/null 2>&1`, { timeout: 3000 });
62
- info.gatewayRunning = true;
63
- }
64
- catch {
65
- info.gatewayRunning = false;
66
- }
67
- return info;
68
- }
69
- return { found: false };
70
- }
71
- function detectOpenClawDocker() {
72
- // (a) Check for a running container with "openclaw" in the name/image
73
- let containerName = null;
74
- let version;
75
- try {
76
- const psOut = execSync("docker ps --format '{{.Names}}\\t{{.Image}}' 2>/dev/null", { encoding: "utf-8", timeout: 4000 });
77
- for (const line of psOut.split("\n")) {
78
- if (/openclaw/i.test(line)) {
79
- containerName = line.split("\t")[0]?.trim() ?? null;
80
- // Extract version from image tag e.g. openclaw:2026.3.31
81
- const verMatch = line.match(/:(\d{4}\.\d+\.\d+)/);
82
- if (verMatch)
83
- version = verMatch[1];
84
- break;
85
- }
86
- }
87
- }
88
- catch { /* docker not available */ }
89
- // (b) Gateway probe — works even if container name doesn't match pattern
90
- let gatewayRunning = false;
91
- try {
92
- execSync("curl -sf http://127.0.0.1:18789/health >/dev/null 2>&1", { timeout: 3000 });
93
- gatewayRunning = true;
94
- }
95
- catch { /* not responding */ }
96
- // Need at least one signal to claim found
97
- if (!containerName && !gatewayRunning)
98
- return null;
99
- return {
100
- found: true,
101
- runtime: "docker",
102
- containerName: containerName ?? "openclaw",
103
- version,
104
- gatewayRunning,
105
- gatewayPort: 18789,
106
- // No local config/skillsDir — they live inside the container volume
107
- configPath: undefined,
108
- skillsDir: undefined,
109
- };
110
- }
111
- export function readOpenClawConfig() {
112
- if (!existsSync(OPENCLAW_CONFIG))
113
- return null;
114
- try {
115
- return JSON.parse(readFileSync(OPENCLAW_CONFIG, "utf-8"));
116
- }
117
- catch {
118
- return null;
119
- }
120
- }
121
- export function writeOpenClawConfig(config) {
122
- writeSecretFile(OPENCLAW_CONFIG, JSON.stringify(config, null, 2) + "\n");
123
- }
124
- export function getConfigPermissions() {
125
- try {
126
- const stat = statSync(OPENCLAW_DIR);
127
- const mode = (stat.mode & 0o777).toString(8);
128
- return { mode, safe: (stat.mode & 0o077) === 0 }; // safe = no group/world perms
129
- }
130
- catch (err) {
131
- // ENOENT = dir doesn't exist (Docker runtime — config lives in container volume)
132
- const code = err?.code;
133
- if (code === "ENOENT")
134
- return { mode: "N/A", safe: true };
135
- return { mode: "???", safe: false };
136
- }
137
- }
138
- /**
139
- * Get a nested config value safely.
140
- */
141
- export function getConfigValue(config, path) {
142
- const parts = path.split(".");
143
- let current = config;
144
- for (const part of parts) {
145
- if (current == null || typeof current !== "object")
146
- return undefined;
147
- current = current[part];
148
- }
149
- return current;
150
- }
151
- /**
152
- * Set a nested config value.
153
- */
154
- export function setConfigValue(config, path, value) {
155
- const parts = path.split(".");
156
- let current = config;
157
- for (let i = 0; i < parts.length - 1; i++) {
158
- if (!(parts[i] in current) || typeof current[parts[i]] !== "object") {
159
- current[parts[i]] = {};
160
- }
161
- current = current[parts[i]];
162
- }
163
- current[parts[parts.length - 1]] = value;
164
- }
165
- //# sourceMappingURL=openclaw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/lib/openclaw.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Seed Agent OS entities from OpenClaw config.
3
- *
4
- * Auto-detects the OpenClaw agent, installed skills, and model provider,
5
- * then creates corresponding entities in the Synap pod so the dashboard
6
- * is pre-populated on first open.
7
- */
8
- import type { OpenClawInfo } from "./openclaw.js";
9
- /**
10
- * Detect OpenClaw config and create Agent, Skill, Provider entities.
11
- * Returns the number of entities created.
12
- */
13
- export declare function seedAgentEntities(podUrl: string, apiKey: string, oc: OpenClawInfo): Promise<number>;
package/dist/lib/seed.js DELETED
@@ -1,135 +0,0 @@
1
- /**
2
- * Seed Agent OS entities from OpenClaw config.
3
- *
4
- * Auto-detects the OpenClaw agent, installed skills, and model provider,
5
- * then creates corresponding entities in the Synap pod so the dashboard
6
- * is pre-populated on first open.
7
- */
8
- import { getConfigValue } from "./openclaw.js";
9
- /**
10
- * Detect OpenClaw config and create Agent, Skill, Provider entities.
11
- * Returns the number of entities created.
12
- */
13
- export async function seedAgentEntities(podUrl, apiKey, oc) {
14
- const entities = [];
15
- // 1. Agent entity — the OpenClaw instance itself
16
- const agentProps = {
17
- "agent-status": oc.gatewayRunning ? "Active" : "Idle",
18
- "agent-runtime": "OpenClaw",
19
- "agent-deployment": "Local Machine",
20
- };
21
- if (oc.version)
22
- agentProps["agent-version"] = oc.version;
23
- // Detect channels from config
24
- if (oc.config) {
25
- const channels = [];
26
- const channelConfig = getConfigValue(oc.config, "channels");
27
- if (channelConfig) {
28
- if (channelConfig.telegram)
29
- channels.push("Telegram");
30
- if (channelConfig.discord)
31
- channels.push("Discord");
32
- if (channelConfig.slack)
33
- channels.push("Slack");
34
- if (channelConfig.whatsapp)
35
- channels.push("WhatsApp");
36
- if (channelConfig.email)
37
- channels.push("Email");
38
- }
39
- // Always has CLI/TUI
40
- channels.push("CLI");
41
- agentProps["agent-channels"] = channels;
42
- if (channels.length > 0)
43
- agentProps["agent-channel"] = channels[0];
44
- }
45
- // Detect model
46
- const model = oc.config
47
- ? getConfigValue(oc.config, "models.default") ??
48
- getConfigValue(oc.config, "models.primary")
49
- : undefined;
50
- if (model)
51
- agentProps["agent-model"] = model;
52
- entities.push({
53
- profileSlug: "agent",
54
- title: `OpenClaw Agent${oc.version ? ` v${oc.version}` : ""}`,
55
- properties: agentProps,
56
- });
57
- // 2. Skill entities — from installed skills
58
- if (oc.config) {
59
- const skills = getConfigValue(oc.config, "skills.installed");
60
- if (Array.isArray(skills)) {
61
- for (const skill of skills.slice(0, 10)) {
62
- // cap at 10
63
- const name = skill.name ?? skill.id ?? "Unknown Skill";
64
- entities.push({
65
- profileSlug: "skill",
66
- title: name,
67
- properties: {
68
- "skill-category": "community",
69
- "skill-source-url": skill.id
70
- ? `https://clawhub.io/skills/${skill.id}`
71
- : undefined,
72
- },
73
- });
74
- }
75
- }
76
- }
77
- // Always add synap skill
78
- entities.push({
79
- profileSlug: "skill",
80
- title: "synap",
81
- properties: {
82
- "skill-category": "infrastructure",
83
- "skill-source-url": "https://github.com/synap-core/backend/tree/main/skills/synap",
84
- "skill-trust": "Verified",
85
- },
86
- });
87
- // 3. Provider entity — model provider
88
- if (oc.config) {
89
- const providers = getConfigValue(oc.config, "models.providers");
90
- if (providers) {
91
- for (const [name, config] of Object.entries(providers).slice(0, 5)) {
92
- const providerConfig = config;
93
- entities.push({
94
- profileSlug: "provider",
95
- title: name.charAt(0).toUpperCase() + name.slice(1),
96
- properties: {
97
- "provider-type": name,
98
- "provider-base-url": providerConfig.baseUrl,
99
- "provider-key-health": providerConfig.apiKey
100
- ? "Healthy"
101
- : "Missing",
102
- },
103
- });
104
- }
105
- }
106
- }
107
- // Create entities via Hub Protocol
108
- let created = 0;
109
- for (const entity of entities) {
110
- try {
111
- const res = await fetch(`${podUrl}/api/hub/entities`, {
112
- method: "POST",
113
- headers: {
114
- "Content-Type": "application/json",
115
- Authorization: `Bearer ${apiKey}`,
116
- },
117
- body: JSON.stringify({
118
- userId: "system",
119
- agentUserId: "system",
120
- profileSlug: entity.profileSlug,
121
- title: entity.title,
122
- properties: entity.properties,
123
- reasoning: "Auto-seeded by synap init",
124
- }),
125
- });
126
- if (res.ok)
127
- created++;
128
- }
129
- catch {
130
- // skip failed entities silently
131
- }
132
- }
133
- return created;
134
- }
135
- //# sourceMappingURL=seed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/lib/seed.ts"],"names":[],"mappings":"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"}