backpack-ontology 0.7.0 → 0.7.2
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/bin/backpack-sync.js +49 -3
- package/dist/bin/backpack-sync.js.map +1 -1
- package/dist/core/backpack.d.ts +7 -0
- package/dist/core/backpack.d.ts.map +1 -1
- package/dist/core/backpack.js +24 -1
- package/dist/core/backpack.js.map +1 -1
- package/dist/core/backpacks-registry.d.ts +22 -0
- package/dist/core/backpacks-registry.d.ts.map +1 -1
- package/dist/core/backpacks-registry.js +67 -0
- package/dist/core/backpacks-registry.js.map +1 -1
- package/dist/core/document-store.d.ts +94 -0
- package/dist/core/document-store.d.ts.map +1 -0
- package/dist/core/document-store.js +430 -0
- package/dist/core/document-store.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/kb-tools.d.ts +4 -0
- package/dist/mcp/tools/kb-tools.d.ts.map +1 -0
- package/dist/mcp/tools/kb-tools.js +229 -0
- package/dist/mcp/tools/kb-tools.js.map +1 -0
- package/dist/mcp/tools/share-tools.d.ts.map +1 -1
- package/dist/mcp/tools/share-tools.js +130 -11
- package/dist/mcp/tools/share-tools.js.map +1 -1
- package/dist/sharing/envelope.d.ts +10 -1
- package/dist/sharing/envelope.d.ts.map +1 -1
- package/dist/sharing/envelope.js +5 -1
- package/dist/sharing/envelope.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/relay.d.ts +6 -3
- package/dist/sharing/relay.d.ts.map +1 -1
- package/dist/sharing/relay.js +26 -14
- package/dist/sharing/relay.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { trackEvent } from "../../core/telemetry.js";
|
|
3
|
+
import { addKBMount, removeKBMount } from "../../core/backpacks-registry.js";
|
|
4
|
+
export function registerKBTools(server, backpack) {
|
|
5
|
+
server.registerTool("backpack_kb_save", {
|
|
6
|
+
title: "Save KB Document",
|
|
7
|
+
description: "Save a document to the knowledge base. Documents are markdown with metadata (tags, source graphs, source nodes). Use this to persist synthesis outputs, reports, analyses, or any derived artifact. Provide an id to update an existing document.",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
title: z.string().describe("Document title"),
|
|
10
|
+
content: z.string().describe("Markdown content (body only, no frontmatter)"),
|
|
11
|
+
tags: z.array(z.string()).optional().describe("Tags for organizing and searching"),
|
|
12
|
+
sourceGraphs: z.array(z.string()).optional().describe("Learning graphs that informed this document"),
|
|
13
|
+
sourceNodeIds: z.array(z.string()).optional().describe("Specific node IDs that informed this document"),
|
|
14
|
+
id: z.string().optional().describe("Document ID (omit for new, provide to update existing)"),
|
|
15
|
+
collection: z.string().optional().describe("Which KB mount to save to (defaults to primary writable mount)"),
|
|
16
|
+
},
|
|
17
|
+
}, async ({ title, content, tags, sourceGraphs, sourceNodeIds, id, collection }) => {
|
|
18
|
+
try {
|
|
19
|
+
const docs = await backpack.documents();
|
|
20
|
+
const doc = await docs.save({
|
|
21
|
+
title,
|
|
22
|
+
content,
|
|
23
|
+
tags: tags,
|
|
24
|
+
sourceGraphs: sourceGraphs,
|
|
25
|
+
sourceNodeIds: sourceNodeIds,
|
|
26
|
+
id: id,
|
|
27
|
+
collection: collection,
|
|
28
|
+
});
|
|
29
|
+
trackEvent("tool_call", { tool: "backpack_kb_save" });
|
|
30
|
+
return {
|
|
31
|
+
content: [{
|
|
32
|
+
type: "text",
|
|
33
|
+
text: JSON.stringify({
|
|
34
|
+
id: doc.id,
|
|
35
|
+
title: doc.title,
|
|
36
|
+
collection: doc.collection,
|
|
37
|
+
tags: doc.tags,
|
|
38
|
+
sourceGraphs: doc.sourceGraphs,
|
|
39
|
+
createdAt: doc.createdAt,
|
|
40
|
+
updatedAt: doc.updatedAt,
|
|
41
|
+
}, null, 2),
|
|
42
|
+
}],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
server.registerTool("backpack_kb_list", {
|
|
50
|
+
title: "List KB Documents",
|
|
51
|
+
description: "List documents in the knowledge base. Aggregates across all KB mounts, or filter by collection.",
|
|
52
|
+
annotations: { readOnlyHint: true },
|
|
53
|
+
inputSchema: {
|
|
54
|
+
collection: z.string().optional().describe("Filter to a specific KB mount (omit for all)"),
|
|
55
|
+
limit: z.number().int().optional().describe("Maximum documents to return (pagination)"),
|
|
56
|
+
offset: z.number().int().optional().describe("Number of documents to skip (pagination)"),
|
|
57
|
+
},
|
|
58
|
+
}, async ({ collection, limit, offset }) => {
|
|
59
|
+
try {
|
|
60
|
+
const docs = await backpack.documents();
|
|
61
|
+
const list = await docs.list({
|
|
62
|
+
collection: collection,
|
|
63
|
+
limit: limit,
|
|
64
|
+
offset: offset,
|
|
65
|
+
});
|
|
66
|
+
trackEvent("tool_call", { tool: "backpack_kb_list" });
|
|
67
|
+
return {
|
|
68
|
+
content: [{ type: "text", text: JSON.stringify(list, null, 2) }],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
server.registerTool("backpack_kb_read", {
|
|
76
|
+
title: "Read KB Document",
|
|
77
|
+
description: "Read the full content of a knowledge base document by ID.",
|
|
78
|
+
annotations: { readOnlyHint: true },
|
|
79
|
+
inputSchema: {
|
|
80
|
+
id: z.string().describe("Document ID"),
|
|
81
|
+
},
|
|
82
|
+
}, async ({ id }) => {
|
|
83
|
+
try {
|
|
84
|
+
const docs = await backpack.documents();
|
|
85
|
+
const doc = await docs.read(id);
|
|
86
|
+
trackEvent("tool_call", { tool: "backpack_kb_read" });
|
|
87
|
+
return {
|
|
88
|
+
content: [{ type: "text", text: JSON.stringify(doc, null, 2) }],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
server.registerTool("backpack_kb_delete", {
|
|
96
|
+
title: "Delete KB Document",
|
|
97
|
+
description: "Delete a document from the knowledge base. Cannot delete from read-only mounts.",
|
|
98
|
+
inputSchema: {
|
|
99
|
+
id: z.string().describe("Document ID to delete"),
|
|
100
|
+
},
|
|
101
|
+
}, async ({ id }) => {
|
|
102
|
+
try {
|
|
103
|
+
const docs = await backpack.documents();
|
|
104
|
+
await docs.delete(id);
|
|
105
|
+
trackEvent("tool_call", { tool: "backpack_kb_delete" });
|
|
106
|
+
return {
|
|
107
|
+
content: [{ type: "text", text: `Document "${id}" deleted.` }],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
server.registerTool("backpack_kb_search", {
|
|
115
|
+
title: "Search KB Documents",
|
|
116
|
+
description: "Search documents by text query across title, tags, and content. Optionally filter by collection.",
|
|
117
|
+
annotations: { readOnlyHint: true },
|
|
118
|
+
inputSchema: {
|
|
119
|
+
query: z.string().describe("Search query (case-insensitive substring match)"),
|
|
120
|
+
collection: z.string().optional().describe("Filter to a specific KB mount"),
|
|
121
|
+
limit: z.number().int().optional().describe("Maximum results to return (pagination)"),
|
|
122
|
+
offset: z.number().int().optional().describe("Number of results to skip (pagination)"),
|
|
123
|
+
},
|
|
124
|
+
}, async ({ query, collection, limit, offset }) => {
|
|
125
|
+
try {
|
|
126
|
+
const docs = await backpack.documents();
|
|
127
|
+
const results = await docs.search(query, {
|
|
128
|
+
collection: collection,
|
|
129
|
+
limit: limit,
|
|
130
|
+
offset: offset,
|
|
131
|
+
});
|
|
132
|
+
trackEvent("tool_call", { tool: "backpack_kb_search" });
|
|
133
|
+
return {
|
|
134
|
+
content: [{ type: "text", text: JSON.stringify(results, null, 2) }],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
server.registerTool("backpack_kb_ingest", {
|
|
142
|
+
title: "Ingest KB Document",
|
|
143
|
+
description: "Read a document from the KB (by ID) or from an arbitrary file path, and return its content formatted for mining into a learning graph. Use this to feed existing documents back into the mine → graph → synthesize cycle.",
|
|
144
|
+
annotations: { readOnlyHint: true },
|
|
145
|
+
inputSchema: {
|
|
146
|
+
id: z.string().optional().describe("Document ID to ingest from the KB"),
|
|
147
|
+
path: z.string().optional().describe("Arbitrary file path to ingest (e.g., a colleague's shared file)"),
|
|
148
|
+
},
|
|
149
|
+
}, async ({ id, path: filePath }) => {
|
|
150
|
+
try {
|
|
151
|
+
const docs = await backpack.documents();
|
|
152
|
+
const result = await docs.ingest({
|
|
153
|
+
id: id,
|
|
154
|
+
path: filePath,
|
|
155
|
+
});
|
|
156
|
+
trackEvent("tool_call", { tool: "backpack_kb_ingest" });
|
|
157
|
+
const wikilinkSection = result.wikilinks.length > 0
|
|
158
|
+
? `\nReferenced documents (via [[wikilinks]]): ${result.wikilinks.map((w) => w.target).join(", ")}\n`
|
|
159
|
+
: "";
|
|
160
|
+
return {
|
|
161
|
+
content: [{
|
|
162
|
+
type: "text",
|
|
163
|
+
text: `Source document: "${result.title}"\n${result.sourceGraphs.length > 0 ? `Derived from graphs: ${result.sourceGraphs.join(", ")}\n` : ""}${wikilinkSection}\n---\n\n${result.content}`,
|
|
164
|
+
}],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
server.registerTool("backpack_kb_mounts", {
|
|
172
|
+
title: "List KB Mounts",
|
|
173
|
+
description: "List all configured KB mounts for the active backpack, with document counts.",
|
|
174
|
+
annotations: { readOnlyHint: true },
|
|
175
|
+
inputSchema: {},
|
|
176
|
+
}, async () => {
|
|
177
|
+
try {
|
|
178
|
+
const docs = await backpack.documents();
|
|
179
|
+
const mounts = await docs.listMounts();
|
|
180
|
+
trackEvent("tool_call", { tool: "backpack_kb_mounts" });
|
|
181
|
+
return {
|
|
182
|
+
content: [{ type: "text", text: JSON.stringify(mounts, null, 2) }],
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
server.registerTool("backpack_kb_mount", {
|
|
190
|
+
title: "Add/Remove KB Mount",
|
|
191
|
+
description: "Add or remove a KB mount for the active backpack. Mounts are named filesystem paths. Use this to connect an Obsidian vault, shared drive, or any folder as a KB source.",
|
|
192
|
+
inputSchema: {
|
|
193
|
+
action: z.enum(["add", "remove"]).describe("Whether to add or remove a mount"),
|
|
194
|
+
name: z.string().describe("Mount name (e.g., 'team', 'obsidian', 'client-x')"),
|
|
195
|
+
path: z.string().optional().describe("Filesystem path (required for add)"),
|
|
196
|
+
writable: z.boolean().optional().describe("Whether this mount is writable (default true). Set false for read-only access to others' shared folders."),
|
|
197
|
+
},
|
|
198
|
+
}, async ({ action, name, path: mountPath, writable }) => {
|
|
199
|
+
try {
|
|
200
|
+
const entry = backpack.getActiveBackpackEntry();
|
|
201
|
+
if (!entry)
|
|
202
|
+
throw new Error("No active backpack");
|
|
203
|
+
if (action === "add") {
|
|
204
|
+
if (!mountPath)
|
|
205
|
+
throw new Error("path is required for add");
|
|
206
|
+
await addKBMount(entry.path, {
|
|
207
|
+
name,
|
|
208
|
+
path: mountPath,
|
|
209
|
+
...(writable === false ? { writable: false } : {}),
|
|
210
|
+
});
|
|
211
|
+
trackEvent("tool_call", { tool: "backpack_kb_mount", action: "add" });
|
|
212
|
+
return {
|
|
213
|
+
content: [{ type: "text", text: `KB mount "${name}" added at ${mountPath}.` }],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
await removeKBMount(entry.path, name);
|
|
218
|
+
trackEvent("tool_call", { tool: "backpack_kb_mount", action: "remove" });
|
|
219
|
+
return {
|
|
220
|
+
content: [{ type: "text", text: `KB mount "${name}" removed.` }],
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
return { content: [{ type: "text", text: `Error: ${err.message}` }], isError: true };
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=kb-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/kb-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/share-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"share-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/share-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAsBvD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAoQN"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { writeFile } from "node:fs/promises";
|
|
3
|
-
import { createEnvelope, generateKeyPair, encrypt, encodeKeyForFragment,
|
|
3
|
+
import { createEnvelope, generateKeyPair, encrypt, encodeKeyForFragment, syncToRelay, createShareLink, } from "../../sharing/index.js";
|
|
4
4
|
export function registerShareTools(server, backpack) {
|
|
5
5
|
// backpack_share — encrypt and upload to a relay
|
|
6
6
|
server.registerTool("backpack_share", {
|
|
@@ -21,14 +21,33 @@ export function registerShareTools(server, backpack) {
|
|
|
21
21
|
.boolean()
|
|
22
22
|
.default(true)
|
|
23
23
|
.describe("Encrypt the backpack before sharing (default: true)"),
|
|
24
|
-
passphrase: z
|
|
25
|
-
.string()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe("Optional passphrase for additional protection"),
|
|
28
24
|
},
|
|
29
|
-
}, async ({ name, relayUrl, relayToken, encrypted
|
|
25
|
+
}, async ({ name, relayUrl, relayToken, encrypted }) => {
|
|
30
26
|
const data = await backpack.loadOntology(name);
|
|
31
|
-
|
|
27
|
+
// Load KB documents associated with this graph
|
|
28
|
+
let kbDocs = [];
|
|
29
|
+
try {
|
|
30
|
+
const docs = await backpack.documents();
|
|
31
|
+
const result = await docs.list();
|
|
32
|
+
kbDocs = await Promise.all(result.documents
|
|
33
|
+
.filter((d) => d.sourceGraphs.includes(name))
|
|
34
|
+
.map(async (d) => {
|
|
35
|
+
const full = await docs.read(d.id);
|
|
36
|
+
const { collection: _, ...rest } = full;
|
|
37
|
+
return rest;
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// No KB configured or inaccessible — share graph only
|
|
42
|
+
}
|
|
43
|
+
const shareData = { version: 2, graph: data, documents: kbDocs };
|
|
44
|
+
const plaintext = new TextEncoder().encode(JSON.stringify(shareData));
|
|
45
|
+
const stats = {
|
|
46
|
+
node_count: data.nodes.length,
|
|
47
|
+
edge_count: data.edges.length,
|
|
48
|
+
node_types: [...new Set(data.nodes.map((n) => n.type))],
|
|
49
|
+
document_count: kbDocs.length,
|
|
50
|
+
};
|
|
32
51
|
let payload;
|
|
33
52
|
let format;
|
|
34
53
|
let fragmentKey = "";
|
|
@@ -43,12 +62,18 @@ export function registerShareTools(server, backpack) {
|
|
|
43
62
|
format = "plaintext";
|
|
44
63
|
}
|
|
45
64
|
const graphCount = 1;
|
|
46
|
-
const envelope = await createEnvelope(name, payload, format, graphCount);
|
|
47
|
-
const
|
|
65
|
+
const envelope = await createEnvelope(name, payload, format, graphCount, stats);
|
|
66
|
+
const relayConfig = { url: relayUrl, token: relayToken };
|
|
67
|
+
await syncToRelay(relayConfig, name, envelope);
|
|
68
|
+
const result = await createShareLink(relayConfig, name);
|
|
48
69
|
const shareLink = fragmentKey
|
|
49
70
|
? `${result.url}#k=${fragmentKey}`
|
|
50
71
|
: result.url;
|
|
51
72
|
let text = `Shared "${name}" successfully.\n\nShare link: ${shareLink}`;
|
|
73
|
+
text += `\nGraph stats: ${stats.node_count} nodes, ${stats.edge_count} edges, ${stats.node_types.length} types`;
|
|
74
|
+
if (stats.document_count > 0) {
|
|
75
|
+
text += `\nKB documents: ${stats.document_count} included`;
|
|
76
|
+
}
|
|
52
77
|
if (result.expiresAt) {
|
|
53
78
|
text += `\nExpires: ${result.expiresAt}`;
|
|
54
79
|
}
|
|
@@ -60,6 +85,78 @@ export function registerShareTools(server, backpack) {
|
|
|
60
85
|
}
|
|
61
86
|
return { content: [{ type: "text", text }] };
|
|
62
87
|
});
|
|
88
|
+
// backpack_import_remote — download a cloud graph to local backpack
|
|
89
|
+
server.registerTool("backpack_import_remote", {
|
|
90
|
+
title: "Import Cloud Graph to Local",
|
|
91
|
+
description: "Download a graph from a Backpack cloud relay and save it locally. " +
|
|
92
|
+
"The graph must be plaintext (not encrypted). Requires a Bearer token " +
|
|
93
|
+
"for authentication with the relay. If a local graph with the same " +
|
|
94
|
+
"name exists, it will be overwritten.",
|
|
95
|
+
inputSchema: {
|
|
96
|
+
name: z.string().describe("Name of the cloud graph to download"),
|
|
97
|
+
relayUrl: z
|
|
98
|
+
.string()
|
|
99
|
+
.default("https://app.backpackontology.com")
|
|
100
|
+
.describe("Cloud relay URL"),
|
|
101
|
+
relayToken: z
|
|
102
|
+
.string()
|
|
103
|
+
.describe("Bearer token for the relay (requires a backpack-app account)"),
|
|
104
|
+
},
|
|
105
|
+
}, async ({ name, relayUrl, relayToken }) => {
|
|
106
|
+
try {
|
|
107
|
+
const resp = await fetch(`${relayUrl}/api/graphs/${encodeURIComponent(name)}`, {
|
|
108
|
+
headers: { Authorization: `Bearer ${relayToken}` },
|
|
109
|
+
});
|
|
110
|
+
if (!resp.ok) {
|
|
111
|
+
const body = await resp.text();
|
|
112
|
+
return {
|
|
113
|
+
content: [
|
|
114
|
+
{
|
|
115
|
+
type: "text",
|
|
116
|
+
text: `Error fetching cloud graph "${name}": ${resp.status} ${resp.statusText}\n${body}`,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
isError: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const data = await resp.json();
|
|
123
|
+
if (!data.nodes || !data.edges) {
|
|
124
|
+
return {
|
|
125
|
+
content: [
|
|
126
|
+
{
|
|
127
|
+
type: "text",
|
|
128
|
+
text: `Error: the cloud graph "${name}" does not contain plaintext graph data (it may be encrypted).`,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
isError: true,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
const exists = await backpack.ontologyExists(name);
|
|
135
|
+
if (exists) {
|
|
136
|
+
await backpack.deleteOntology(name);
|
|
137
|
+
}
|
|
138
|
+
await backpack.createOntologyFromData(name, data);
|
|
139
|
+
return {
|
|
140
|
+
content: [
|
|
141
|
+
{
|
|
142
|
+
type: "text",
|
|
143
|
+
text: `Imported cloud graph "${name}" to local backpack (${data.nodes.length} nodes, ${data.edges.length} edges).`,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
return {
|
|
150
|
+
content: [
|
|
151
|
+
{
|
|
152
|
+
type: "text",
|
|
153
|
+
text: `Error: ${err.message}`,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
isError: true,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
});
|
|
63
160
|
// backpack_share_local — export as a .bpak file
|
|
64
161
|
server.registerTool("backpack_share_local", {
|
|
65
162
|
title: "Export Backpack",
|
|
@@ -76,7 +173,25 @@ export function registerShareTools(server, backpack) {
|
|
|
76
173
|
},
|
|
77
174
|
}, async ({ name, output, encrypted }) => {
|
|
78
175
|
const data = await backpack.loadOntology(name);
|
|
79
|
-
|
|
176
|
+
// Load KB documents associated with this graph
|
|
177
|
+
let kbDocs = [];
|
|
178
|
+
try {
|
|
179
|
+
const docs = await backpack.documents();
|
|
180
|
+
const result = await docs.list();
|
|
181
|
+
const fullDocs = await Promise.all(result.documents
|
|
182
|
+
.filter((d) => d.sourceGraphs.includes(name))
|
|
183
|
+
.map(async (d) => {
|
|
184
|
+
const full = await docs.read(d.id);
|
|
185
|
+
const { collection: _, ...rest } = full;
|
|
186
|
+
return rest;
|
|
187
|
+
}));
|
|
188
|
+
kbDocs = fullDocs;
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// No KB configured
|
|
192
|
+
}
|
|
193
|
+
const shareData = { version: 2, graph: data, documents: kbDocs };
|
|
194
|
+
const plaintext = new TextEncoder().encode(JSON.stringify(shareData));
|
|
80
195
|
let payload;
|
|
81
196
|
let format;
|
|
82
197
|
let secretKey = "";
|
|
@@ -90,9 +205,13 @@ export function registerShareTools(server, backpack) {
|
|
|
90
205
|
payload = plaintext;
|
|
91
206
|
format = "plaintext";
|
|
92
207
|
}
|
|
93
|
-
const
|
|
208
|
+
const stats = { document_count: kbDocs.length };
|
|
209
|
+
const envelope = await createEnvelope(name, payload, format, 1, stats);
|
|
94
210
|
await writeFile(output, envelope);
|
|
95
211
|
let text = `Exported "${name}" to ${output}`;
|
|
212
|
+
if (kbDocs.length > 0) {
|
|
213
|
+
text += ` (includes ${kbDocs.length} KB document${kbDocs.length > 1 ? "s" : ""})`;
|
|
214
|
+
}
|
|
96
215
|
if (encrypted) {
|
|
97
216
|
text += `\n\nSecret key (needed to decrypt):\n${secretKey}`;
|
|
98
217
|
text +=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/share-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"share-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/share-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ export interface EnvelopeHeader {
|
|
|
11
11
|
created_at: string;
|
|
12
12
|
backpack_name: string;
|
|
13
13
|
graph_count?: number;
|
|
14
|
+
document_count?: number;
|
|
15
|
+
node_count?: number;
|
|
16
|
+
edge_count?: number;
|
|
17
|
+
node_types?: string[];
|
|
14
18
|
checksum: string;
|
|
15
19
|
}
|
|
16
20
|
export interface Envelope {
|
|
@@ -18,7 +22,12 @@ export interface Envelope {
|
|
|
18
22
|
payload: Uint8Array;
|
|
19
23
|
}
|
|
20
24
|
/** Create a BPAK envelope from a header and payload. */
|
|
21
|
-
export declare function createEnvelope(backpackName: string, payload: Uint8Array, format: "plaintext" | "age-v1", graphCount?: number
|
|
25
|
+
export declare function createEnvelope(backpackName: string, payload: Uint8Array, format: "plaintext" | "age-v1", graphCount?: number, stats?: {
|
|
26
|
+
node_count?: number;
|
|
27
|
+
edge_count?: number;
|
|
28
|
+
node_types?: string[];
|
|
29
|
+
document_count?: number;
|
|
30
|
+
}): Promise<Uint8Array>;
|
|
22
31
|
/** Parse and verify a BPAK envelope. Throws on invalid format or checksum mismatch. */
|
|
23
32
|
export declare function parseEnvelope(data: Uint8Array): Promise<Envelope>;
|
|
24
33
|
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/sharing/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;CACrB;AAYD,wDAAwD;AACxD,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,EAC9B,UAAU,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/sharing/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;CACrB;AAYD,wDAAwD;AACxD,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACnG,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAED,uFAAuF;AACvF,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiDvE"}
|
package/dist/sharing/envelope.js
CHANGED
|
@@ -18,13 +18,17 @@ async function sha256hex(data) {
|
|
|
18
18
|
.join("");
|
|
19
19
|
}
|
|
20
20
|
/** Create a BPAK envelope from a header and payload. */
|
|
21
|
-
export async function createEnvelope(backpackName, payload, format, graphCount) {
|
|
21
|
+
export async function createEnvelope(backpackName, payload, format, graphCount, stats) {
|
|
22
22
|
const checksum = await sha256hex(payload);
|
|
23
23
|
const header = {
|
|
24
24
|
format,
|
|
25
25
|
created_at: new Date().toISOString(),
|
|
26
26
|
backpack_name: backpackName,
|
|
27
27
|
graph_count: graphCount,
|
|
28
|
+
document_count: stats?.document_count,
|
|
29
|
+
node_count: stats?.node_count,
|
|
30
|
+
edge_count: stats?.edge_count,
|
|
31
|
+
node_types: stats?.node_types,
|
|
28
32
|
checksum: `sha256:${checksum}`,
|
|
29
33
|
};
|
|
30
34
|
const headerBytes = new TextEncoder().encode(JSON.stringify(header));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/sharing/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;AACjE,MAAM,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/sharing/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/sharing/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export { createEnvelope, parseEnvelope } from "./envelope.js";
|
|
|
2
2
|
export type { EnvelopeHeader, Envelope } from "./envelope.js";
|
|
3
3
|
export { generateKeyPair, encrypt, decrypt, encodeKeyForFragment, decodeKeyFromFragment, } from "./crypto.js";
|
|
4
4
|
export type { KeyPair } from "./crypto.js";
|
|
5
|
-
export {
|
|
5
|
+
export { syncToRelay, createShareLink, downloadFromRelay, getShareMeta } from "./relay.js";
|
|
6
6
|
export type { ShareResult, RelayConfig } from "./relay.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/sharing/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { createEnvelope, parseEnvelope } from "./envelope.js";
|
|
2
2
|
export { generateKeyPair, encrypt, decrypt, encodeKeyForFragment, decodeKeyFromFragment, } from "./crypto.js";
|
|
3
|
-
export {
|
|
3
|
+
export { syncToRelay, createShareLink, downloadFromRelay, getShareMeta } from "./relay.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/sharing/relay.d.ts
CHANGED
|
@@ -18,10 +18,13 @@ export interface RelayConfig {
|
|
|
18
18
|
token: string | (() => Promise<string>);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* For encrypted envelopes, the caller appends #k={key} to the URL.
|
|
21
|
+
* Sync a BPAK envelope to the relay. The relay stores the latest version.
|
|
23
22
|
*/
|
|
24
|
-
export declare function
|
|
23
|
+
export declare function syncToRelay(config: RelayConfig, name: string, envelope: Uint8Array): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Create a share link for a synced graph. Returns the share URL and token.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createShareLink(config: RelayConfig, name: string): Promise<{
|
|
25
28
|
token: string;
|
|
26
29
|
url: string;
|
|
27
30
|
expiresAt?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/sharing/relay.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACzC;AAED
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/sharing/relay.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB7D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAsBrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC"}
|