backpack-ontology 0.7.13 → 0.8.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.
Files changed (128) hide show
  1. package/README.md +123 -0
  2. package/dist/bin/bp.d.ts +3 -0
  3. package/dist/bin/bp.d.ts.map +1 -0
  4. package/dist/bin/bp.js +6 -0
  5. package/dist/bin/bp.js.map +1 -0
  6. package/dist/cli/colors.d.ts +20 -0
  7. package/dist/cli/colors.d.ts.map +1 -0
  8. package/dist/cli/colors.js +34 -0
  9. package/dist/cli/colors.js.map +1 -0
  10. package/dist/cli/commands/auth.d.ts +4 -0
  11. package/dist/cli/commands/auth.d.ts.map +1 -0
  12. package/dist/cli/commands/auth.js +48 -0
  13. package/dist/cli/commands/auth.js.map +1 -0
  14. package/dist/cli/commands/cat.d.ts +3 -0
  15. package/dist/cli/commands/cat.d.ts.map +1 -0
  16. package/dist/cli/commands/cat.js +28 -0
  17. package/dist/cli/commands/cat.js.map +1 -0
  18. package/dist/cli/commands/cloud-admin.d.ts +7 -0
  19. package/dist/cli/commands/cloud-admin.d.ts.map +1 -0
  20. package/dist/cli/commands/cloud-admin.js +169 -0
  21. package/dist/cli/commands/cloud-admin.js.map +1 -0
  22. package/dist/cli/commands/completion.d.ts +3 -0
  23. package/dist/cli/commands/completion.d.ts.map +1 -0
  24. package/dist/cli/commands/completion.js +156 -0
  25. package/dist/cli/commands/completion.js.map +1 -0
  26. package/dist/cli/commands/containers.d.ts +3 -0
  27. package/dist/cli/commands/containers.d.ts.map +1 -0
  28. package/dist/cli/commands/containers.js +29 -0
  29. package/dist/cli/commands/containers.js.map +1 -0
  30. package/dist/cli/commands/context.d.ts +4 -0
  31. package/dist/cli/commands/context.d.ts.map +1 -0
  32. package/dist/cli/commands/context.js +59 -0
  33. package/dist/cli/commands/context.js.map +1 -0
  34. package/dist/cli/commands/doctor.d.ts +3 -0
  35. package/dist/cli/commands/doctor.d.ts.map +1 -0
  36. package/dist/cli/commands/doctor.js +65 -0
  37. package/dist/cli/commands/doctor.js.map +1 -0
  38. package/dist/cli/commands/graphs.d.ts +3 -0
  39. package/dist/cli/commands/graphs.d.ts.map +1 -0
  40. package/dist/cli/commands/graphs.js +57 -0
  41. package/dist/cli/commands/graphs.js.map +1 -0
  42. package/dist/cli/commands/init.d.ts +3 -0
  43. package/dist/cli/commands/init.d.ts.map +1 -0
  44. package/dist/cli/commands/init.js +46 -0
  45. package/dist/cli/commands/init.js.map +1 -0
  46. package/dist/cli/commands/kbs.d.ts +3 -0
  47. package/dist/cli/commands/kbs.d.ts.map +1 -0
  48. package/dist/cli/commands/kbs.js +247 -0
  49. package/dist/cli/commands/kbs.js.map +1 -0
  50. package/dist/cli/commands/ls.d.ts +3 -0
  51. package/dist/cli/commands/ls.d.ts.map +1 -0
  52. package/dist/cli/commands/ls.js +81 -0
  53. package/dist/cli/commands/ls.js.map +1 -0
  54. package/dist/cli/commands/mutate.d.ts +7 -0
  55. package/dist/cli/commands/mutate.d.ts.map +1 -0
  56. package/dist/cli/commands/mutate.js +241 -0
  57. package/dist/cli/commands/mutate.js.map +1 -0
  58. package/dist/cli/commands/open.d.ts +3 -0
  59. package/dist/cli/commands/open.d.ts.map +1 -0
  60. package/dist/cli/commands/open.js +88 -0
  61. package/dist/cli/commands/open.js.map +1 -0
  62. package/dist/cli/commands/search.d.ts +3 -0
  63. package/dist/cli/commands/search.d.ts.map +1 -0
  64. package/dist/cli/commands/search.js +59 -0
  65. package/dist/cli/commands/search.js.map +1 -0
  66. package/dist/cli/commands/show.d.ts +3 -0
  67. package/dist/cli/commands/show.d.ts.map +1 -0
  68. package/dist/cli/commands/show.js +74 -0
  69. package/dist/cli/commands/show.js.map +1 -0
  70. package/dist/cli/commands/version.d.ts +2 -0
  71. package/dist/cli/commands/version.d.ts.map +1 -0
  72. package/dist/cli/commands/version.js +16 -0
  73. package/dist/cli/commands/version.js.map +1 -0
  74. package/dist/cli/help.d.ts +3 -0
  75. package/dist/cli/help.d.ts.map +1 -0
  76. package/dist/cli/help.js +118 -0
  77. package/dist/cli/help.js.map +1 -0
  78. package/dist/cli/output.d.ts +23 -0
  79. package/dist/cli/output.d.ts.map +1 -0
  80. package/dist/cli/output.js +189 -0
  81. package/dist/cli/output.js.map +1 -0
  82. package/dist/cli/parser.d.ts +9 -0
  83. package/dist/cli/parser.d.ts.map +1 -0
  84. package/dist/cli/parser.js +106 -0
  85. package/dist/cli/parser.js.map +1 -0
  86. package/dist/cli/router.d.ts +2 -0
  87. package/dist/cli/router.d.ts.map +1 -0
  88. package/dist/cli/router.js +123 -0
  89. package/dist/cli/router.js.map +1 -0
  90. package/dist/cli/util/confirm.d.ts +3 -0
  91. package/dist/cli/util/confirm.d.ts.map +1 -0
  92. package/dist/cli/util/confirm.js +37 -0
  93. package/dist/cli/util/confirm.js.map +1 -0
  94. package/dist/core/backpack.d.ts +1 -92
  95. package/dist/core/backpack.d.ts.map +1 -1
  96. package/dist/core/backpack.js +23 -127
  97. package/dist/core/backpack.js.map +1 -1
  98. package/dist/core/backpacks-registry.d.ts +2 -2
  99. package/dist/core/backpacks-registry.js +2 -2
  100. package/dist/mcp/tools/cloud-tools.d.ts +2 -3
  101. package/dist/mcp/tools/cloud-tools.d.ts.map +1 -1
  102. package/dist/mcp/tools/cloud-tools.js +240 -81
  103. package/dist/mcp/tools/cloud-tools.js.map +1 -1
  104. package/dist/mcp/tools/share-tools.js +1 -1
  105. package/dist/mcp/tools/share-tools.js.map +1 -1
  106. package/dist/mcp/tools/signal-tools.js +1 -1
  107. package/dist/mcp/tools/signal-tools.js.map +1 -1
  108. package/dist/ops/auth.d.ts +25 -0
  109. package/dist/ops/auth.d.ts.map +1 -0
  110. package/dist/ops/auth.js +144 -0
  111. package/dist/ops/auth.js.map +1 -0
  112. package/dist/ops/containers.d.ts +25 -0
  113. package/dist/ops/containers.d.ts.map +1 -0
  114. package/dist/ops/containers.js +144 -0
  115. package/dist/ops/containers.js.map +1 -0
  116. package/dist/ops/context.d.ts +30 -0
  117. package/dist/ops/context.d.ts.map +1 -0
  118. package/dist/ops/context.js +133 -0
  119. package/dist/ops/context.js.map +1 -0
  120. package/dist/ops/graphs.d.ts +48 -0
  121. package/dist/ops/graphs.d.ts.map +1 -0
  122. package/dist/ops/graphs.js +249 -0
  123. package/dist/ops/graphs.js.map +1 -0
  124. package/dist/ops/kb.d.ts +28 -0
  125. package/dist/ops/kb.d.ts.map +1 -0
  126. package/dist/ops/kb.js +162 -0
  127. package/dist/ops/kb.js.map +1 -0
  128. package/package.json +3 -2
@@ -5,63 +5,35 @@ import { z } from "zod";
5
5
  import { OAuthClient } from "../../auth/oauth.js";
6
6
  import { configDir } from "../../core/paths.js";
7
7
  import { trackEvent } from "../../core/telemetry.js";
8
- const RELAY_URL = process.env.BACKPACK_APP_URL || "https://app.backpackontology.com";
9
- const CLIENT_ID = process.env.BACKPACK_APP_CLIENT_ID || "2d84f4b4-0c8c-4eb5-8f26-4dabc7f07551";
10
- const ISSUER_URL = process.env.BACKPACK_APP_ISSUER_URL || "https://8522cad6-89da-465d-ad30-7c1ac03c52c7.ciamlogin.com/8522cad6-89da-465d-ad30-7c1ac03c52c7/v2.0";
11
- /** Try to find a valid cloud token from viewer settings or OAuth cache. */
12
- export async function resolveCloudToken() {
13
- // 1. Check viewer extension settings (from Sign In in the viewer)
14
- try {
15
- const settingsPath = path.join(configDir(), "extensions", "share", "settings.json");
16
- const raw = await fs.readFile(settingsPath, "utf8");
17
- const settings = JSON.parse(raw);
18
- if (settings.relay_token && typeof settings.relay_token === "string") {
19
- // Check JWT expiry
20
- const parts = settings.relay_token.split(".");
21
- if (parts.length === 3) {
22
- const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
23
- if (!payload.exp || payload.exp * 1000 > Date.now()) {
24
- return settings.relay_token;
25
- }
26
- }
27
- }
28
- }
29
- catch { /* no viewer settings */ }
30
- // 2. Check OAuth token cache (from backpack_cloud_login or backpack-sync)
31
- try {
32
- const cacheKey = crypto.createHash("sha256").update(RELAY_URL).digest("hex").slice(0, 12);
33
- const cachePath = path.join(configDir(), "app-tokens", `${cacheKey}.json`);
34
- const raw = await fs.readFile(cachePath, "utf8");
35
- const cached = JSON.parse(raw);
36
- const token = cached.id_token || cached.access_token;
37
- if (token && (!cached.expires_at || cached.expires_at * 1000 > Date.now())) {
38
- return token;
39
- }
40
- }
41
- catch { /* no cached token */ }
42
- return null;
8
+ import { resolveCloudToken, emailFromToken, getRelayUrl, getClientId, getIssuerUrl } from "../../ops/auth.js";
9
+ export { resolveCloudToken };
10
+ async function fetchContainers(token) {
11
+ const res = await fetch(`${getRelayUrl()}/api/sync/backpacks`, {
12
+ headers: { Authorization: `Bearer ${token}` },
13
+ });
14
+ if (!res.ok)
15
+ throw new Error(`list containers: ${res.status}`);
16
+ const data = await res.json();
17
+ return data.backpacks ?? [];
43
18
  }
44
- /** Decode email from a JWT token. */
45
- function emailFromToken(token) {
19
+ async function resolveContainerByName(token, name) {
20
+ let all;
46
21
  try {
47
- const parts = token.split(".");
48
- if (parts.length === 3) {
49
- const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
50
- return payload.email || payload.preferred_username;
51
- }
22
+ all = await fetchContainers(token);
52
23
  }
53
- catch { }
54
- return undefined;
24
+ catch (err) {
25
+ return { ok: false, reason: "fetch_failed", error: err.message };
26
+ }
27
+ const found = all.find((c) => c.name === name);
28
+ return found ? { ok: true, container: found } : { ok: false, reason: "not_found" };
55
29
  }
56
30
  export function registerCloudTools(server, backpack) {
57
- // --- backpack_cloud_login ---
58
31
  server.registerTool("backpack_cloud_login", {
59
32
  title: "Sign In to Cloud",
60
33
  description: "Authenticate with Backpack App to access cloud-synced graphs. " +
61
34
  "Opens the system browser for sign-in. If already signed in, returns the current account.",
62
35
  }, async () => {
63
36
  trackEvent("tool_call", { tool: "backpack_cloud_login" });
64
- // Check if already authenticated
65
37
  const existing = await resolveCloudToken();
66
38
  if (existing) {
67
39
  const email = emailFromToken(existing);
@@ -69,16 +41,14 @@ export function registerCloudTools(server, backpack) {
69
41
  content: [{ type: "text", text: `Already signed in${email ? ` as ${email}` : ""}. Use backpack_cloud_list to see cloud graphs.` }],
70
42
  };
71
43
  }
72
- // Start OAuth flow
73
- const cacheKey = crypto.createHash("sha256").update(RELAY_URL).digest("hex").slice(0, 12);
74
- const oauth = new OAuthClient(CLIENT_ID, ISSUER_URL, cacheKey);
44
+ const cacheKey = crypto.createHash("sha256").update(getRelayUrl()).digest("hex").slice(0, 12);
45
+ const oauth = new OAuthClient(getClientId(), getIssuerUrl(), cacheKey);
75
46
  const token = await oauth.getAccessToken();
76
47
  const email = emailFromToken(token);
77
48
  return {
78
49
  content: [{ type: "text", text: `Signed in${email ? ` as ${email}` : ""}. Use backpack_cloud_list to see your cloud graphs.` }],
79
50
  };
80
51
  });
81
- // --- backpack_cloud_list ---
82
52
  server.registerTool("backpack_cloud_list", {
83
53
  title: "List Cloud Graphs",
84
54
  description: "List all learning graphs in the user's cloud backpack (Backpack App). " +
@@ -93,7 +63,7 @@ export function registerCloudTools(server, backpack) {
93
63
  content: [{ type: "text", text: "Not signed in to Backpack App. Use backpack_cloud_login to authenticate, then try again." }],
94
64
  };
95
65
  }
96
- const res = await fetch(`${RELAY_URL}/api/graphs`, {
66
+ const res = await fetch(`${getRelayUrl()}/api/graphs`, {
97
67
  headers: { "Authorization": `Bearer ${token}` },
98
68
  });
99
69
  if (!res.ok) {
@@ -129,7 +99,6 @@ export function registerCloudTools(server, backpack) {
129
99
  content: [{ type: "text", text: lines.join("\n") }],
130
100
  };
131
101
  });
132
- // --- backpack_cloud_import ---
133
102
  server.registerTool("backpack_cloud_import", {
134
103
  title: "Import Cloud Graph",
135
104
  description: "Import a cloud graph as a local copy. This creates a fork — edits to the local copy " +
@@ -148,8 +117,7 @@ export function registerCloudTools(server, backpack) {
148
117
  content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }],
149
118
  };
150
119
  }
151
- // Check if it's encrypted
152
- const listRes = await fetch(`${RELAY_URL}/api/graphs`, {
120
+ const listRes = await fetch(`${getRelayUrl()}/api/graphs`, {
153
121
  headers: { "Authorization": `Bearer ${token}` },
154
122
  });
155
123
  if (!listRes.ok) {
@@ -163,15 +131,13 @@ export function registerCloudTools(server, backpack) {
163
131
  if (target.encrypted) {
164
132
  return { content: [{ type: "text", text: `Graph "${name}" is encrypted. Encrypted graphs cannot be imported via MCP — open the graph in the viewer to decrypt it, or re-sync it as plaintext from the viewer's Share panel.` }] };
165
133
  }
166
- // Download the graph
167
- const dataRes = await fetch(`${RELAY_URL}/api/graphs/${encodeURIComponent(name)}`, {
134
+ const dataRes = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}`, {
168
135
  headers: { "Authorization": `Bearer ${token}` },
169
136
  });
170
137
  if (!dataRes.ok) {
171
138
  return { content: [{ type: "text", text: `Failed to download graph "${name}": ${dataRes.status}` }] };
172
139
  }
173
140
  const data = await dataRes.json();
174
- // Save locally
175
141
  const localName = asLocalName || name;
176
142
  const exists = await backpack.ontologyExists(localName);
177
143
  if (exists) {
@@ -182,7 +148,6 @@ export function registerCloudTools(server, backpack) {
182
148
  content: [{ type: "text", text: `Imported "${name}" from cloud as "${localName}". ${data.nodes?.length ?? 0} nodes, ${data.edges?.length ?? 0} edges. You can now use backpack_search, backpack_describe, etc.` }],
183
149
  };
184
150
  });
185
- // --- backpack_cloud_search ---
186
151
  server.registerTool("backpack_cloud_search", {
187
152
  title: "Search Cloud Graphs",
188
153
  description: "Search across graphs in the user's cloud backpack. Searches node types and property values. " +
@@ -200,13 +165,12 @@ export function registerCloudTools(server, backpack) {
200
165
  return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
201
166
  }
202
167
  const lowerQuery = query.toLowerCase();
203
- // Determine which graphs to search
204
168
  let graphNames;
205
169
  if (ontology) {
206
170
  graphNames = [ontology];
207
171
  }
208
172
  else {
209
- const listRes = await fetch(`${RELAY_URL}/api/graphs`, {
173
+ const listRes = await fetch(`${getRelayUrl()}/api/graphs`, {
210
174
  headers: { "Authorization": `Bearer ${token}` },
211
175
  });
212
176
  if (!listRes.ok) {
@@ -218,11 +182,10 @@ export function registerCloudTools(server, backpack) {
218
182
  if (graphNames.length === 0) {
219
183
  return { content: [{ type: "text", text: "No searchable cloud graphs found (encrypted graphs cannot be searched)." }] };
220
184
  }
221
- // Search each graph
222
185
  const results = [];
223
186
  for (const name of graphNames) {
224
187
  try {
225
- const res = await fetch(`${RELAY_URL}/api/graphs/${encodeURIComponent(name)}`, {
188
+ const res = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}`, {
226
189
  headers: { "Authorization": `Bearer ${token}` },
227
190
  });
228
191
  if (!res.ok)
@@ -249,7 +212,7 @@ export function registerCloudTools(server, backpack) {
249
212
  results.push({ graph: name, matches });
250
213
  }
251
214
  }
252
- catch { /* skip failed graphs */ }
215
+ catch { }
253
216
  }
254
217
  if (results.length === 0) {
255
218
  return { content: [{ type: "text", text: `No matches for "${query}" across ${graphNames.length} cloud graph(s). Try backpack_cloud_list to see available graphs.` }] };
@@ -264,7 +227,6 @@ export function registerCloudTools(server, backpack) {
264
227
  }
265
228
  return { content: [{ type: "text", text: lines.join("\n") }] };
266
229
  });
267
- // --- backpack_cloud_sync ---
268
230
  server.registerTool("backpack_cloud_sync", {
269
231
  title: "Sync to Cloud",
270
232
  description: "Push local graphs to the cloud backpack as plaintext JSON. " +
@@ -280,7 +242,6 @@ export function registerCloudTools(server, backpack) {
280
242
  if (!token) {
281
243
  return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
282
244
  }
283
- // Determine which graphs to sync
284
245
  let names;
285
246
  if (graphName) {
286
247
  const exists = await backpack.ontologyExists(graphName);
@@ -303,7 +264,6 @@ export function registerCloudTools(server, backpack) {
303
264
  try {
304
265
  const data = await backpack.loadOntology(name);
305
266
  const graphJSON = new TextEncoder().encode(JSON.stringify(data));
306
- // Build plaintext BPAK envelope
307
267
  const typeSet = new Set();
308
268
  for (const n of data.nodes ?? [])
309
269
  typeSet.add(n.type);
@@ -326,9 +286,9 @@ export function registerCloudTools(server, backpack) {
326
286
  const envelope = new Uint8Array(4 + 1 + 4 + headerBytes.length + graphJSON.length);
327
287
  let off = 0;
328
288
  envelope.set(new Uint8Array([0x42, 0x50, 0x41, 0x4b]), off);
329
- off += 4; // magic
289
+ off += 4;
330
290
  envelope[off] = 0x01;
331
- off += 1; // version
291
+ off += 1;
332
292
  envelope.set(new Uint8Array(headerLenBuf), off);
333
293
  off += 4;
334
294
  envelope.set(headerBytes, off);
@@ -343,7 +303,6 @@ export function registerCloudTools(server, backpack) {
343
303
  syncHeaders["X-Backpack-Device-Name"] = osModule.hostname();
344
304
  syncHeaders["X-Backpack-Device-Hostname"] = osModule.hostname();
345
305
  syncHeaders["X-Backpack-Device-Platform"] = osModule.platform();
346
- // Machine ID
347
306
  const idPath = path.join(configDir(), "machine-id");
348
307
  let mid;
349
308
  try {
@@ -358,13 +317,12 @@ export function registerCloudTools(server, backpack) {
358
317
  await fs.writeFile(idPath, mid, "utf-8");
359
318
  }
360
319
  syncHeaders["X-Backpack-Device-Id"] = mid;
361
- // Source backpack name
362
320
  const entry = backpack.getActiveBackpackEntry();
363
321
  if (entry)
364
322
  syncHeaders["X-Backpack-Source-Name"] = entry.name;
365
323
  }
366
324
  catch { }
367
- const res = await fetch(`${RELAY_URL}/api/graphs/${encodeURIComponent(name)}/sync`, {
325
+ const res = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}/sync`, {
368
326
  method: "PUT",
369
327
  headers: syncHeaders,
370
328
  body: envelope,
@@ -394,7 +352,6 @@ export function registerCloudTools(server, backpack) {
394
352
  }
395
353
  return { content: [{ type: "text", text: lines.join("\n") }] };
396
354
  });
397
- // --- backpack_cloud_refresh ---
398
355
  server.registerTool("backpack_cloud_refresh", {
399
356
  title: "Refresh Cloud Status",
400
357
  description: "Fetch the current state of the cloud backpack — lists all cloud graphs and KB documents. " +
@@ -409,10 +366,9 @@ export function registerCloudTools(server, backpack) {
409
366
  }
410
367
  const email = emailFromToken(token);
411
368
  const lines = [`Cloud backpack${email ? ` (${email})` : ""}:\n`];
412
- // Fetch graphs
413
369
  let graphCount = 0;
414
370
  try {
415
- const res = await fetch(`${RELAY_URL}/api/graphs`, {
371
+ const res = await fetch(`${getRelayUrl()}/api/graphs`, {
416
372
  headers: { "Authorization": `Bearer ${token}` },
417
373
  });
418
374
  if (res.ok) {
@@ -441,9 +397,8 @@ export function registerCloudTools(server, backpack) {
441
397
  catch (err) {
442
398
  lines.push(`Graphs: error (${err.message})`);
443
399
  }
444
- // Fetch KB documents
445
400
  try {
446
- const res = await fetch(`${RELAY_URL}/api/kb/documents`, {
401
+ const res = await fetch(`${getRelayUrl()}/api/kb/documents`, {
447
402
  headers: { "Authorization": `Bearer ${token}` },
448
403
  });
449
404
  if (res.ok) {
@@ -465,26 +420,230 @@ export function registerCloudTools(server, backpack) {
465
420
  }
466
421
  }
467
422
  catch {
468
- // KB endpoint may not exist — skip silently
469
423
  }
470
- // Compare with local
471
424
  try {
472
425
  const local = await backpack.listOntologies();
473
426
  if (local.length > 0) {
474
427
  lines.push(`\nLocal graphs (${local.length}): ${local.map(o => o.name).join(", ")}`);
475
428
  }
476
429
  }
477
- catch { /* ignore */ }
430
+ catch { }
431
+ return { content: [{ type: "text", text: lines.join("\n") }] };
432
+ });
433
+ server.registerTool("backpack_cloud_containers", {
434
+ title: "List Cloud Containers",
435
+ description: "List the user's cloud sync_backpack containers (groupings of graphs). Each container has an origin (cloud-native or device-synced) and holds related graphs and KB docs. Use this to plan moves or before creating a new container.",
436
+ annotations: { readOnlyHint: true },
437
+ }, async () => {
438
+ trackEvent("tool_call", { tool: "backpack_cloud_containers" });
439
+ const token = await resolveCloudToken();
440
+ if (!token) {
441
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
442
+ }
443
+ let containers;
444
+ try {
445
+ containers = await fetchContainers(token);
446
+ }
447
+ catch (err) {
448
+ return { content: [{ type: "text", text: `Failed to list containers: ${err.message}` }] };
449
+ }
450
+ if (containers.length === 0) {
451
+ return { content: [{ type: "text", text: "No cloud containers yet. Use backpack_cloud_container_create to make one." }] };
452
+ }
453
+ const email = emailFromToken(token);
454
+ const lines = [`Cloud containers${email ? ` (${email})` : ""}: ${containers.length}\n`];
455
+ for (const c of containers) {
456
+ const origin = c.origin_kind === "local"
457
+ ? `device-synced${c.origin_device_name ? ` from ${c.origin_device_name}` : ""}`
458
+ : "cloud-native";
459
+ const tagStr = c.tags && c.tags.length > 0 ? ` tags=[${c.tags.join(", ")}]` : "";
460
+ lines.push(`- ${c.name} (${origin})${tagStr}`);
461
+ lines.push(` id=${c.id}`);
462
+ }
478
463
  return { content: [{ type: "text", text: lines.join("\n") }] };
479
464
  });
465
+ server.registerTool("backpack_cloud_container_create", {
466
+ title: "Create Cloud Container",
467
+ description: "Create a new cloud-native sync_backpack container to group graphs. Use this when you want a logical grouping (e.g. 'projects', 'client-acme') that doesn't yet exist. Idempotent: if a container with the same name already exists for this user, the existing one is returned.",
468
+ inputSchema: {
469
+ name: z.string().describe("Display name for the new container (e.g. 'projects', 'client-acme')"),
470
+ color: z.string().optional().describe("Hex color for the container's UI dot (defaults to a standard purple)"),
471
+ tags: z.array(z.string()).optional().describe("Optional tags for filtering"),
472
+ },
473
+ }, async ({ name, color, tags }) => {
474
+ trackEvent("tool_call", { tool: "backpack_cloud_container_create" });
475
+ const token = await resolveCloudToken();
476
+ if (!token) {
477
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
478
+ }
479
+ const res = await fetch(`${getRelayUrl()}/api/sync/register`, {
480
+ method: "POST",
481
+ headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
482
+ body: JSON.stringify({ name, color, tags: tags ?? [] }),
483
+ });
484
+ if (!res.ok) {
485
+ const body = await res.text().catch(() => "");
486
+ return { content: [{ type: "text", text: `Failed to create container: ${res.status} ${body}` }] };
487
+ }
488
+ const created = await res.json();
489
+ const verb = res.status === 201 ? "Created" : "Container already existed";
490
+ return { content: [{ type: "text", text: `${verb}: ${created.name} (id=${created.id}, origin=${created.origin_kind})` }] };
491
+ });
492
+ server.registerTool("backpack_cloud_container_rename", {
493
+ title: "Rename Cloud Container",
494
+ description: "Rename a cloud sync_backpack container. Looks up the container by its current name. Color and tags can also be updated; omitted fields are preserved.",
495
+ inputSchema: {
496
+ name: z.string().describe("Current container name"),
497
+ newName: z.string().optional().describe("New container name"),
498
+ color: z.string().optional().describe("New color (hex)"),
499
+ tags: z.array(z.string()).optional().describe("New tags (replaces existing)"),
500
+ },
501
+ }, async ({ name, newName, color, tags }) => {
502
+ trackEvent("tool_call", { tool: "backpack_cloud_container_rename" });
503
+ const token = await resolveCloudToken();
504
+ if (!token) {
505
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
506
+ }
507
+ if (!newName && !color && !tags) {
508
+ return { content: [{ type: "text", text: "Nothing to update — provide newName, color, or tags." }] };
509
+ }
510
+ const lookup = await resolveContainerByName(token, name);
511
+ if (!lookup.ok) {
512
+ const msg = lookup.reason === "fetch_failed"
513
+ ? `Failed to look up container "${name}": ${lookup.error ?? "fetch failed"}`
514
+ : `Container "${name}" not found.`;
515
+ return { content: [{ type: "text", text: msg }] };
516
+ }
517
+ const target = lookup.container;
518
+ const body = {};
519
+ if (newName)
520
+ body.name = newName;
521
+ if (color)
522
+ body.color = color;
523
+ if (tags)
524
+ body.tags = tags;
525
+ const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${target.id}`, {
526
+ method: "PATCH",
527
+ headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
528
+ body: JSON.stringify(body),
529
+ });
530
+ if (!res.ok) {
531
+ const errBody = await res.text().catch(() => "");
532
+ return { content: [{ type: "text", text: `Rename failed: ${res.status} ${errBody}` }] };
533
+ }
534
+ const updated = await res.json();
535
+ return { content: [{ type: "text", text: `Renamed "${name}" → "${updated.name}" (id=${updated.id}).` }] };
536
+ });
537
+ server.registerTool("backpack_cloud_container_delete", {
538
+ title: "Delete Cloud Container",
539
+ description: "Delete an empty cloud sync_backpack container. The server refuses to delete a container that still has graphs or KB docs — move them out first with backpack_cloud_move_graph / backpack_cloud_move_kb.",
540
+ inputSchema: {
541
+ name: z.string().describe("Name of the container to delete"),
542
+ },
543
+ }, async ({ name }) => {
544
+ trackEvent("tool_call", { tool: "backpack_cloud_container_delete" });
545
+ const token = await resolveCloudToken();
546
+ if (!token) {
547
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
548
+ }
549
+ const lookup = await resolveContainerByName(token, name);
550
+ if (!lookup.ok) {
551
+ const msg = lookup.reason === "fetch_failed"
552
+ ? `Failed to look up container "${name}": ${lookup.error ?? "fetch failed"}`
553
+ : `Container "${name}" not found.`;
554
+ return { content: [{ type: "text", text: msg }] };
555
+ }
556
+ const target = lookup.container;
557
+ const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${target.id}`, {
558
+ method: "DELETE",
559
+ headers: { Authorization: `Bearer ${token}` },
560
+ });
561
+ if (res.status === 204) {
562
+ return { content: [{ type: "text", text: `Deleted container "${name}".` }] };
563
+ }
564
+ const errBody = await res.text().catch(() => "");
565
+ if (res.status === 422) {
566
+ return { content: [{ type: "text", text: `Cannot delete "${name}": still has graphs or KB docs. Move them out first, then retry.` }] };
567
+ }
568
+ return { content: [{ type: "text", text: `Delete failed: ${res.status} ${errBody}` }] };
569
+ });
570
+ server.registerTool("backpack_cloud_move_graph", {
571
+ title: "Move Cloud Graph Between Containers",
572
+ description: "Move a graph (by name) into a different sync_backpack container. The graph data is unchanged — only its container assignment is updated. Useful for reorganizing graphs into client-, project-, or topic-based containers.",
573
+ inputSchema: {
574
+ graphName: z.string().describe("Name of the graph to move"),
575
+ toContainer: z.string().describe("Name of the destination container"),
576
+ },
577
+ }, async ({ graphName, toContainer }) => {
578
+ trackEvent("tool_call", { tool: "backpack_cloud_move_graph" });
579
+ const token = await resolveCloudToken();
580
+ if (!token) {
581
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
582
+ }
583
+ const lookup = await resolveContainerByName(token, toContainer);
584
+ if (!lookup.ok) {
585
+ const msg = lookup.reason === "fetch_failed"
586
+ ? `Failed to look up destination container "${toContainer}": ${lookup.error ?? "fetch failed"}`
587
+ : `Destination container "${toContainer}" not found. Create it first with backpack_cloud_container_create.`;
588
+ return { content: [{ type: "text", text: msg }] };
589
+ }
590
+ const dest = lookup.container;
591
+ const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${dest.id}/move-graph`, {
592
+ method: "POST",
593
+ headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
594
+ body: JSON.stringify({ name: graphName }),
595
+ });
596
+ if (res.status === 404) {
597
+ return { content: [{ type: "text", text: `Graph "${graphName}" not found in your cloud account.` }] };
598
+ }
599
+ if (!res.ok) {
600
+ const errBody = await res.text().catch(() => "");
601
+ return { content: [{ type: "text", text: `Move failed: ${res.status} ${errBody}` }] };
602
+ }
603
+ return { content: [{ type: "text", text: `Moved graph "${graphName}" into container "${toContainer}".` }] };
604
+ });
605
+ server.registerTool("backpack_cloud_move_kb", {
606
+ title: "Move Cloud KB Doc Between Containers",
607
+ description: "Move a KB document (by id) into a different sync_backpack container.",
608
+ inputSchema: {
609
+ docId: z.string().describe("KB document id"),
610
+ toContainer: z.string().describe("Name of the destination container"),
611
+ },
612
+ }, async ({ docId, toContainer }) => {
613
+ trackEvent("tool_call", { tool: "backpack_cloud_move_kb" });
614
+ const token = await resolveCloudToken();
615
+ if (!token) {
616
+ return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
617
+ }
618
+ const lookup = await resolveContainerByName(token, toContainer);
619
+ if (!lookup.ok) {
620
+ const msg = lookup.reason === "fetch_failed"
621
+ ? `Failed to look up destination container "${toContainer}": ${lookup.error ?? "fetch failed"}`
622
+ : `Destination container "${toContainer}" not found.`;
623
+ return { content: [{ type: "text", text: msg }] };
624
+ }
625
+ const dest = lookup.container;
626
+ const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${dest.id}/move-kb`, {
627
+ method: "POST",
628
+ headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
629
+ body: JSON.stringify({ id: docId }),
630
+ });
631
+ if (res.status === 404) {
632
+ return { content: [{ type: "text", text: `KB doc "${docId}" not found.` }] };
633
+ }
634
+ if (!res.ok) {
635
+ const errBody = await res.text().catch(() => "");
636
+ return { content: [{ type: "text", text: `Move failed: ${res.status} ${errBody}` }] };
637
+ }
638
+ return { content: [{ type: "text", text: `Moved KB doc "${docId}" into container "${toContainer}".` }] };
639
+ });
480
640
  }
481
- /** Count cloud graphs (for the hint in backpack_list). Returns 0 on any error. */
482
641
  export async function countCloudGraphs() {
483
642
  try {
484
643
  const token = await resolveCloudToken();
485
644
  if (!token)
486
645
  return 0;
487
- const res = await fetch(`${RELAY_URL}/api/graphs`, {
646
+ const res = await fetch(`${getRelayUrl()}/api/graphs`, {
488
647
  headers: { "Authorization": `Bearer ${token}` },
489
648
  });
490
649
  if (!res.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/cloud-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/cloud-tools.ts"],"names":[],"mappings":"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"}
@@ -165,7 +165,7 @@ export function registerShareTools(server, backpack) {
165
165
  "(email, USB, Signal). Recipient decrypts with the secret key.",
166
166
  inputSchema: {
167
167
  name: z.string().describe("Name of the backpack to export"),
168
- output: z.string().describe("Output file path (e.g., ./chester.bpak)"),
168
+ output: z.string().describe("Output file path (e.g., ./my-graph.bpak)"),
169
169
  encrypted: z
170
170
  .boolean()
171
171
  .default(true)