backpack-ontology 0.2.25 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -3
- package/dist/bin/backpack-benchmark.d.ts +3 -0
- package/dist/bin/backpack-benchmark.d.ts.map +1 -0
- package/dist/bin/backpack-benchmark.js +213 -0
- package/dist/bin/backpack-benchmark.js.map +1 -0
- package/dist/bin/backpack.js +3 -3
- package/dist/bin/backpack.js.map +1 -1
- package/dist/bin/init.js +8 -11
- package/dist/bin/init.js.map +1 -1
- package/dist/core/backpack.d.ts +69 -2
- package/dist/core/backpack.d.ts.map +1 -1
- package/dist/core/backpack.js +205 -3
- package/dist/core/backpack.js.map +1 -1
- package/dist/core/draft.d.ts +42 -0
- package/dist/core/draft.d.ts.map +1 -0
- package/dist/core/draft.js +232 -0
- package/dist/core/draft.js.map +1 -0
- package/dist/core/events.d.ts +114 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +375 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/graph.d.ts +3 -1
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +50 -0
- package/dist/core/graph.js.map +1 -1
- package/dist/core/hooks.d.ts +11 -3
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/hooks.js +53 -47
- package/dist/core/hooks.js.map +1 -1
- package/dist/core/normalize.d.ts +28 -0
- package/dist/core/normalize.d.ts.map +1 -0
- package/dist/core/normalize.js +133 -0
- package/dist/core/normalize.js.map +1 -0
- package/dist/core/remote-fetch.d.ts +50 -0
- package/dist/core/remote-fetch.d.ts.map +1 -0
- package/dist/core/remote-fetch.js +338 -0
- package/dist/core/remote-fetch.js.map +1 -0
- package/dist/core/remote-registry.d.ts +95 -0
- package/dist/core/remote-registry.d.ts.map +1 -0
- package/dist/core/remote-registry.js +296 -0
- package/dist/core/remote-registry.js.map +1 -0
- package/dist/core/remote-schema.d.ts +31 -0
- package/dist/core/remote-schema.d.ts.map +1 -0
- package/dist/core/remote-schema.js +252 -0
- package/dist/core/remote-schema.js.map +1 -0
- package/dist/core/role-audit.d.ts +20 -0
- package/dist/core/role-audit.d.ts.map +1 -0
- package/dist/core/role-audit.js +197 -0
- package/dist/core/role-audit.js.map +1 -0
- package/dist/core/telemetry.d.ts +2 -0
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js +16 -0
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/token-estimate.d.ts +16 -0
- package/dist/core/token-estimate.d.ts.map +1 -0
- package/dist/core/token-estimate.js +29 -0
- package/dist/core/token-estimate.js.map +1 -0
- package/dist/core/types.d.ts +30 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/bulk-tools.d.ts.map +1 -1
- package/dist/mcp/tools/bulk-tools.js +80 -12
- package/dist/mcp/tools/bulk-tools.js.map +1 -1
- package/dist/mcp/tools/edge-tools.d.ts.map +1 -1
- package/dist/mcp/tools/edge-tools.js +14 -18
- package/dist/mcp/tools/edge-tools.js.map +1 -1
- package/dist/mcp/tools/error-helpers.d.ts +16 -0
- package/dist/mcp/tools/error-helpers.d.ts.map +1 -0
- package/dist/mcp/tools/error-helpers.js +34 -0
- package/dist/mcp/tools/error-helpers.js.map +1 -0
- package/dist/mcp/tools/intelligence-tools.d.ts.map +1 -1
- package/dist/mcp/tools/intelligence-tools.js +28 -18
- package/dist/mcp/tools/intelligence-tools.js.map +1 -1
- package/dist/mcp/tools/node-tools.d.ts.map +1 -1
- package/dist/mcp/tools/node-tools.js +43 -40
- package/dist/mcp/tools/node-tools.js.map +1 -1
- package/dist/mcp/tools/ontology-tools.d.ts.map +1 -1
- package/dist/mcp/tools/ontology-tools.js +237 -12
- package/dist/mcp/tools/ontology-tools.js.map +1 -1
- package/dist/mcp/tools/remote-tools.d.ts +5 -0
- package/dist/mcp/tools/remote-tools.d.ts.map +1 -0
- package/dist/mcp/tools/remote-tools.js +295 -0
- package/dist/mcp/tools/remote-tools.js.map +1 -0
- package/dist/storage/backpack-app-backend.d.ts +1 -1
- package/dist/storage/backpack-app-backend.d.ts.map +1 -1
- package/dist/storage/backpack-app-backend.js +3 -1
- package/dist/storage/backpack-app-backend.js.map +1 -1
- package/dist/storage/event-sourced-backend.d.ts +174 -0
- package/dist/storage/event-sourced-backend.d.ts.map +1 -0
- package/dist/storage/event-sourced-backend.js +840 -0
- package/dist/storage/event-sourced-backend.js.map +1 -0
- package/dist/storage/json-file-backend.d.ts +1 -72
- package/dist/storage/json-file-backend.d.ts.map +1 -1
- package/dist/storage/json-file-backend.js +11 -549
- package/dist/storage/json-file-backend.js.map +1 -1
- package/package.json +3 -3
- package/hooks/auto-capture-prompt.md +0 -40
- package/hooks/hooks.json +0 -16
- package/hooks/suggest-viewer.sh +0 -4
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { trackEvent } from "../../core/telemetry.js";
|
|
3
3
|
import { formatTermsHint } from "./terms-hint.js";
|
|
4
|
+
import { formatWriteError } from "./error-helpers.js";
|
|
4
5
|
export function registerBulkTools(server, backpack) {
|
|
5
6
|
server.registerTool("backpack_import_nodes", {
|
|
6
7
|
title: "Import Nodes",
|
|
7
|
-
description: "Add multiple items and their relationships to a learning graph in one call.
|
|
8
|
+
description: "Add multiple items and their relationships to a learning graph in one call. The batch is validated first: errors block the commit, warnings (type drift, duplicates, three-role rule violations) are surfaced in the response. Pass dryRun=true to get the validation result without committing. Edges reference new nodes by array index (0-based) or existing nodes by ID string.",
|
|
8
9
|
inputSchema: {
|
|
9
10
|
ontology: z.string().describe("Name of the learning graph"),
|
|
10
11
|
nodes: z
|
|
@@ -33,16 +34,62 @@ export function registerBulkTools(server, backpack) {
|
|
|
33
34
|
}))
|
|
34
35
|
.optional()
|
|
35
36
|
.describe("Optional array of edges to create between imported and/or existing nodes"),
|
|
37
|
+
dryRun: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("If true, validate and return warnings/errors without committing. Use this to review a batch before writing."),
|
|
36
41
|
},
|
|
37
|
-
}, async ({ ontology, nodes, edges }) => {
|
|
42
|
+
}, async ({ ontology, nodes, edges, dryRun }) => {
|
|
38
43
|
try {
|
|
39
|
-
const
|
|
44
|
+
const proposedNodes = nodes;
|
|
45
|
+
const proposedEdges = edges;
|
|
46
|
+
// Always validate the batch before any write
|
|
47
|
+
const validation = await backpack.validateImport(ontology, proposedNodes, proposedEdges ?? []);
|
|
48
|
+
// Errors block the commit regardless of dryRun
|
|
49
|
+
if (!validation.ok) {
|
|
50
|
+
trackEvent("tool_call", {
|
|
51
|
+
tool: "backpack_import_nodes",
|
|
52
|
+
outcome: "validation_error",
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: "text",
|
|
58
|
+
text: `Import refused: ${validation.errors.length} error(s).\n${JSON.stringify({ errors: validation.errors, warnings: validation.warnings }, null, 2)}\n\nFix the errors and retry.`,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
isError: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Dry run — return validation result without writing
|
|
65
|
+
if (dryRun) {
|
|
66
|
+
trackEvent("tool_call", {
|
|
67
|
+
tool: "backpack_import_nodes",
|
|
68
|
+
outcome: "dry_run",
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
content: [
|
|
72
|
+
{
|
|
73
|
+
type: "text",
|
|
74
|
+
text: `Dry run OK. Would import ${validation.newNodeCount} node(s) and ${validation.newEdgeCount} edge(s).${validation.warnings.length > 0
|
|
75
|
+
? `\n\n${validation.warnings.length} warning(s):\n${JSON.stringify(validation.warnings, null, 2)}\n\nReview the warnings, then call again with dryRun=false (or omit) to commit.`
|
|
76
|
+
: "\n\nNo warnings — safe to commit."}`,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// Commit
|
|
82
|
+
const result = await backpack.importNodes(ontology, proposedNodes, proposedEdges);
|
|
40
83
|
trackEvent("tool_call", { tool: "backpack_import_nodes" });
|
|
41
84
|
const terms = await backpack.getTermsContext(ontology);
|
|
85
|
+
const summary = `Imported ${result.count} node(s) and ${result.edgeCount} edge(s).\nNode IDs: ${JSON.stringify(result.ids)}\nEdge IDs: ${JSON.stringify(result.edgeIds)}`;
|
|
86
|
+
const warningsSection = validation.warnings.length > 0
|
|
87
|
+
? `\n\n${validation.warnings.length} warning(s) to review (committed anyway):\n${JSON.stringify(validation.warnings, null, 2)}`
|
|
88
|
+
: "";
|
|
42
89
|
const content = [
|
|
43
90
|
{
|
|
44
91
|
type: "text",
|
|
45
|
-
text:
|
|
92
|
+
text: summary + warningsSection,
|
|
46
93
|
},
|
|
47
94
|
];
|
|
48
95
|
if (terms) {
|
|
@@ -51,12 +98,7 @@ export function registerBulkTools(server, backpack) {
|
|
|
51
98
|
return { content };
|
|
52
99
|
}
|
|
53
100
|
catch (err) {
|
|
54
|
-
return
|
|
55
|
-
content: [
|
|
56
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
57
|
-
],
|
|
58
|
-
isError: true,
|
|
59
|
-
};
|
|
101
|
+
return formatWriteError(backpack, ontology, err);
|
|
60
102
|
}
|
|
61
103
|
});
|
|
62
104
|
server.registerTool("backpack_connect", {
|
|
@@ -90,13 +132,39 @@ export function registerBulkTools(server, backpack) {
|
|
|
90
132
|
};
|
|
91
133
|
}
|
|
92
134
|
catch (err) {
|
|
135
|
+
return formatWriteError(backpack, ontology, err);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
server.registerTool("backpack_extract", {
|
|
139
|
+
title: "Extract Subgraph",
|
|
140
|
+
description: "Extract a subgraph (selected nodes + auto-detected edges) into a new learning graph. Node IDs are preserved.",
|
|
141
|
+
inputSchema: {
|
|
142
|
+
ontology: z.string().describe("Source learning graph"),
|
|
143
|
+
nodeIds: z
|
|
144
|
+
.array(z.string())
|
|
145
|
+
.describe("Node IDs to extract"),
|
|
146
|
+
newName: z.string().describe("Name for the new learning graph"),
|
|
147
|
+
description: z
|
|
148
|
+
.string()
|
|
149
|
+
.optional()
|
|
150
|
+
.describe("Description for the new graph"),
|
|
151
|
+
},
|
|
152
|
+
}, async ({ ontology, nodeIds, newName, description }) => {
|
|
153
|
+
try {
|
|
154
|
+
const result = await backpack.extractSubgraph(ontology, nodeIds, newName, description);
|
|
155
|
+
trackEvent("tool_call", { tool: "backpack_extract" });
|
|
93
156
|
return {
|
|
94
157
|
content: [
|
|
95
|
-
{
|
|
158
|
+
{
|
|
159
|
+
type: "text",
|
|
160
|
+
text: `Created learning graph "${newName}" with ${result.nodeCount} node(s) and ${result.edgeCount} edge(s).`,
|
|
161
|
+
},
|
|
96
162
|
],
|
|
97
|
-
isError: true,
|
|
98
163
|
};
|
|
99
164
|
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
return formatWriteError(backpack, ontology, err);
|
|
167
|
+
}
|
|
100
168
|
});
|
|
101
169
|
}
|
|
102
170
|
//# sourceMappingURL=bulk-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/bulk-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bulk-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/bulk-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/edge-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"edge-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/edge-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAgIN"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { trackEvent } from "../../core/telemetry.js";
|
|
3
|
+
import { estimateTokens, formatSavingsFooter } from "../../core/token-estimate.js";
|
|
3
4
|
import { viewerUrl } from "./viewer-url.js";
|
|
5
|
+
import { formatWriteError } from "./error-helpers.js";
|
|
4
6
|
export function registerEdgeTools(server, backpack) {
|
|
5
7
|
server.registerTool("backpack_add_edge", {
|
|
6
8
|
title: "Add Edge",
|
|
@@ -28,12 +30,7 @@ export function registerEdgeTools(server, backpack) {
|
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
32
|
catch (err) {
|
|
31
|
-
return
|
|
32
|
-
content: [
|
|
33
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
34
|
-
],
|
|
35
|
-
isError: true,
|
|
36
|
-
};
|
|
33
|
+
return formatWriteError(backpack, ontology, err);
|
|
37
34
|
}
|
|
38
35
|
});
|
|
39
36
|
server.registerTool("backpack_remove_edge", {
|
|
@@ -55,12 +52,7 @@ export function registerEdgeTools(server, backpack) {
|
|
|
55
52
|
};
|
|
56
53
|
}
|
|
57
54
|
catch (err) {
|
|
58
|
-
return
|
|
59
|
-
content: [
|
|
60
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
61
|
-
],
|
|
62
|
-
isError: true,
|
|
63
|
-
};
|
|
55
|
+
return formatWriteError(backpack, ontology, err);
|
|
64
56
|
}
|
|
65
57
|
});
|
|
66
58
|
server.registerTool("backpack_get_neighbors", {
|
|
@@ -91,12 +83,16 @@ export function registerEdgeTools(server, backpack) {
|
|
|
91
83
|
const result = await backpack.getNeighbors(ontology, nodeId, edgeType, direction, depth);
|
|
92
84
|
trackEvent("tool_call", { tool: "backpack_get_neighbors" });
|
|
93
85
|
const allIds = [nodeId, ...result.neighbors.map((n) => n.node.id)];
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
86
|
+
const responseText = JSON.stringify(result, null, 2);
|
|
87
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
88
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
89
|
+
const content = [
|
|
90
|
+
{ type: "text", text: responseText },
|
|
91
|
+
{ type: "text", text: `View in graph: ${viewerUrl(ontology, allIds)}` },
|
|
92
|
+
];
|
|
93
|
+
if (footer)
|
|
94
|
+
content.push({ type: "text", text: footer });
|
|
95
|
+
return { content };
|
|
100
96
|
}
|
|
101
97
|
catch (err) {
|
|
102
98
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/edge-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"edge-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/edge-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Backpack } from "../../core/backpack.js";
|
|
2
|
+
/**
|
|
3
|
+
* Format an error from a write tool into an MCP tool response.
|
|
4
|
+
*
|
|
5
|
+
* Special-cases ConcurrencyError by looking up the current lock holder
|
|
6
|
+
* and surfacing it in the response — so the agent knows who they
|
|
7
|
+
* collided with and what to do next.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatWriteError(backpack: Backpack, ontology: string, err: unknown): Promise<{
|
|
10
|
+
content: {
|
|
11
|
+
type: "text";
|
|
12
|
+
text: string;
|
|
13
|
+
}[];
|
|
14
|
+
isError: true;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=error-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-helpers.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/error-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAwBvE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format an error from a write tool into an MCP tool response.
|
|
3
|
+
*
|
|
4
|
+
* Special-cases ConcurrencyError by looking up the current lock holder
|
|
5
|
+
* and surfacing it in the response — so the agent knows who they
|
|
6
|
+
* collided with and what to do next.
|
|
7
|
+
*/
|
|
8
|
+
export async function formatWriteError(backpack, ontology, err) {
|
|
9
|
+
const e = err;
|
|
10
|
+
if (e.name === "ConcurrencyError") {
|
|
11
|
+
let lockNote = "";
|
|
12
|
+
try {
|
|
13
|
+
const lock = await backpack.getLockInfo(ontology);
|
|
14
|
+
if (lock) {
|
|
15
|
+
lockNote = `\n\nMost recent editor: ${JSON.stringify(lock, null, 2)}`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch { }
|
|
19
|
+
return {
|
|
20
|
+
content: [
|
|
21
|
+
{
|
|
22
|
+
type: "text",
|
|
23
|
+
text: `Conflict: another writer modified "${ontology}" since you last read it. Your change was rejected and nothing was committed.${lockNote}\n\nFix: re-read the graph (e.g. backpack_describe), re-apply your change against the fresh state, and retry.`,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
isError: true,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: "text", text: `Error: ${e.message}` }],
|
|
31
|
+
isError: true,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=error-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-helpers.js","sourceRoot":"","sources":["../../../src/mcp/tools/error-helpers.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,QAAgB,EAChB,GAAY;IAEZ,MAAM,CAAC,GAAG,GAAY,CAAC;IACvB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,GAAG,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,sCAAsC,QAAQ,gFAAgF,QAAQ,+GAA+G;iBAC5P;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intelligence-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/intelligence-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"intelligence-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/intelligence-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CA2MN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { trackEvent } from "../../core/telemetry.js";
|
|
3
|
+
import { estimateTokens, formatSavingsFooter } from "../../core/token-estimate.js";
|
|
3
4
|
export function registerIntelligenceTools(server, backpack) {
|
|
4
5
|
// backpack_expand: Claude expands a node with related entities
|
|
5
6
|
server.registerTool("backpack_expand", {
|
|
@@ -16,12 +17,15 @@ export function registerIntelligenceTools(server, backpack) {
|
|
|
16
17
|
const neighbors = await backpack.getNeighbors(ontology, nodeId, undefined, "both", 1);
|
|
17
18
|
trackEvent("tool_call", { tool: "backpack_expand" });
|
|
18
19
|
const directionHint = direction ? `\nExpansion direction: ${direction}` : "";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const responseText = `Node to expand:\n${JSON.stringify(nodeResult, null, 2)}\n\nNeighbors:\n${JSON.stringify(neighbors, null, 2)}${directionHint}\n\nNow use backpack_import_nodes to add related entities with edges connecting them to node ${nodeId}. Add 5-15 new nodes that deepen understanding in the requested direction. Always include edges.`;
|
|
21
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
22
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
23
|
+
const content = [
|
|
24
|
+
{ type: "text", text: responseText },
|
|
25
|
+
];
|
|
26
|
+
if (footer)
|
|
27
|
+
content.push({ type: "text", text: footer });
|
|
28
|
+
return { content };
|
|
25
29
|
}
|
|
26
30
|
catch (err) {
|
|
27
31
|
return {
|
|
@@ -89,12 +93,15 @@ export function registerIntelligenceTools(server, backpack) {
|
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
trackEvent("tool_call", { tool: "backpack_explain_path" });
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
const responseText = `Path found (${foundPath.length} nodes, ${foundPath.length - 1} hops):\n\n${JSON.stringify(pathDetails, null, 2)}\n\nExplain the semantic meaning of this path — why are these nodes connected through these relationships? What does the chain of connections reveal?`;
|
|
97
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
98
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
99
|
+
const content = [
|
|
100
|
+
{ type: "text", text: responseText },
|
|
101
|
+
];
|
|
102
|
+
if (footer)
|
|
103
|
+
content.push({ type: "text", text: footer });
|
|
104
|
+
return { content };
|
|
98
105
|
}
|
|
99
106
|
catch (err) {
|
|
100
107
|
return {
|
|
@@ -117,12 +124,15 @@ export function registerIntelligenceTools(server, backpack) {
|
|
|
117
124
|
const neighbors = await backpack.getNeighbors(ontology, nodeId, undefined, "both", 1);
|
|
118
125
|
const describe = await backpack.describeOntology(ontology);
|
|
119
126
|
trackEvent("tool_call", { tool: "backpack_enrich" });
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
127
|
+
const responseText = `Node to enrich:\n${JSON.stringify(nodeResult, null, 2)}\n\nNeighbors:\n${JSON.stringify(neighbors, null, 2)}\n\nGraph context:\n${JSON.stringify({ nodeTypes: describe.nodeTypes, edgeTypes: describe.edgeTypes }, null, 2)}\n\nEnrich this node: add missing properties (use backpack_update_node), add related entities (use backpack_import_nodes with edges to ${nodeId}), and add missing connections to existing nodes (use backpack_connect).`;
|
|
128
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
129
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
130
|
+
const content = [
|
|
131
|
+
{ type: "text", text: responseText },
|
|
132
|
+
];
|
|
133
|
+
if (footer)
|
|
134
|
+
content.push({ type: "text", text: footer });
|
|
135
|
+
return { content };
|
|
126
136
|
}
|
|
127
137
|
catch (err) {
|
|
128
138
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intelligence-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/intelligence-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"intelligence-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/intelligence-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/node-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/node-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOvD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CA6QN"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { trackEvent } from "../../core/telemetry.js";
|
|
3
|
+
import { estimateTokens, formatSavingsFooter } from "../../core/token-estimate.js";
|
|
3
4
|
import { formatTermsHint } from "./terms-hint.js";
|
|
4
5
|
import { viewerUrl } from "./viewer-url.js";
|
|
6
|
+
import { formatWriteError } from "./error-helpers.js";
|
|
5
7
|
export function registerNodeTools(server, backpack) {
|
|
6
8
|
server.registerTool("backpack_node_types", {
|
|
7
9
|
title: "List Node Types",
|
|
@@ -14,11 +16,15 @@ export function registerNodeTools(server, backpack) {
|
|
|
14
16
|
try {
|
|
15
17
|
const types = await backpack.getNodeTypes(ontology);
|
|
16
18
|
trackEvent("tool_call", { tool: "backpack_node_types" });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const responseText = JSON.stringify(types, null, 2);
|
|
20
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
21
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
22
|
+
const content = [
|
|
23
|
+
{ type: "text", text: responseText },
|
|
24
|
+
];
|
|
25
|
+
if (footer)
|
|
26
|
+
content.push({ type: "text", text: footer });
|
|
27
|
+
return { content };
|
|
22
28
|
}
|
|
23
29
|
catch (err) {
|
|
24
30
|
return {
|
|
@@ -56,11 +62,15 @@ export function registerNodeTools(server, backpack) {
|
|
|
56
62
|
try {
|
|
57
63
|
const result = await backpack.listNodes(ontology, type, limit, offset);
|
|
58
64
|
trackEvent("tool_call", { tool: "backpack_list_nodes" });
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
const responseText = JSON.stringify(result, null, 2);
|
|
66
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
67
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
68
|
+
const content = [
|
|
69
|
+
{ type: "text", text: responseText },
|
|
70
|
+
];
|
|
71
|
+
if (footer)
|
|
72
|
+
content.push({ type: "text", text: footer });
|
|
73
|
+
return { content };
|
|
64
74
|
}
|
|
65
75
|
catch (err) {
|
|
66
76
|
return {
|
|
@@ -91,12 +101,16 @@ export function registerNodeTools(server, backpack) {
|
|
|
91
101
|
return { content: [{ type: "text", text: `No nodes matching "${query}" found.` }] };
|
|
92
102
|
}
|
|
93
103
|
const ids = results.map((r) => r.id);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
104
|
+
const responseText = JSON.stringify(results, null, 2);
|
|
105
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
106
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
107
|
+
const content = [
|
|
108
|
+
{ type: "text", text: responseText },
|
|
109
|
+
{ type: "text", text: `View in graph: ${viewerUrl(ontology, ids)}` },
|
|
110
|
+
];
|
|
111
|
+
if (footer)
|
|
112
|
+
content.push({ type: "text", text: footer });
|
|
113
|
+
return { content };
|
|
100
114
|
}
|
|
101
115
|
catch (err) {
|
|
102
116
|
return {
|
|
@@ -119,12 +133,16 @@ export function registerNodeTools(server, backpack) {
|
|
|
119
133
|
try {
|
|
120
134
|
const result = await backpack.getNode(ontology, nodeId);
|
|
121
135
|
trackEvent("tool_call", { tool: "backpack_get_node" });
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
136
|
+
const responseText = JSON.stringify(result, null, 2);
|
|
137
|
+
const graphTokens = await backpack.getGraphTokens(ontology);
|
|
138
|
+
const footer = formatSavingsFooter(graphTokens, estimateTokens(responseText));
|
|
139
|
+
const content = [
|
|
140
|
+
{ type: "text", text: responseText },
|
|
141
|
+
{ type: "text", text: `View in graph: ${viewerUrl(ontology, [nodeId])}` },
|
|
142
|
+
];
|
|
143
|
+
if (footer)
|
|
144
|
+
content.push({ type: "text", text: footer });
|
|
145
|
+
return { content };
|
|
128
146
|
}
|
|
129
147
|
catch (err) {
|
|
130
148
|
return {
|
|
@@ -161,12 +179,7 @@ export function registerNodeTools(server, backpack) {
|
|
|
161
179
|
return { content };
|
|
162
180
|
}
|
|
163
181
|
catch (err) {
|
|
164
|
-
return
|
|
165
|
-
content: [
|
|
166
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
167
|
-
],
|
|
168
|
-
isError: true,
|
|
169
|
-
};
|
|
182
|
+
return formatWriteError(backpack, ontology, err);
|
|
170
183
|
}
|
|
171
184
|
});
|
|
172
185
|
server.registerTool("backpack_update_node", {
|
|
@@ -190,12 +203,7 @@ export function registerNodeTools(server, backpack) {
|
|
|
190
203
|
};
|
|
191
204
|
}
|
|
192
205
|
catch (err) {
|
|
193
|
-
return
|
|
194
|
-
content: [
|
|
195
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
196
|
-
],
|
|
197
|
-
isError: true,
|
|
198
|
-
};
|
|
206
|
+
return formatWriteError(backpack, ontology, err);
|
|
199
207
|
}
|
|
200
208
|
});
|
|
201
209
|
server.registerTool("backpack_remove_node", {
|
|
@@ -220,12 +228,7 @@ export function registerNodeTools(server, backpack) {
|
|
|
220
228
|
};
|
|
221
229
|
}
|
|
222
230
|
catch (err) {
|
|
223
|
-
return
|
|
224
|
-
content: [
|
|
225
|
-
{ type: "text", text: `Error: ${err.message}` },
|
|
226
|
-
],
|
|
227
|
-
isError: true,
|
|
228
|
-
};
|
|
231
|
+
return formatWriteError(backpack, ontology, err);
|
|
229
232
|
}
|
|
230
233
|
});
|
|
231
234
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/node-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/node-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ontology-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/ontology-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ontology-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/ontology-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAiaN"}
|