@brain-protocol/mcp 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/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/middleware/tool-logger.d.ts +12 -0
- package/dist/middleware/tool-logger.d.ts.map +1 -0
- package/dist/middleware/tool-logger.js +57 -0
- package/dist/middleware/tool-logger.js.map +1 -0
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +40 -4
- package/dist/server.js.map +1 -1
- package/dist/store/cloud.d.ts +3 -1
- package/dist/store/cloud.d.ts.map +1 -1
- package/dist/store/cloud.js +30 -8
- package/dist/store/cloud.js.map +1 -1
- package/dist/tools/consciousness.d.ts +30 -0
- package/dist/tools/consciousness.d.ts.map +1 -1
- package/dist/tools/consciousness.js +57 -16
- package/dist/tools/consciousness.js.map +1 -1
- package/dist/tools/index.d.ts +21 -2117
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +298 -276
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/sync.d.ts +11 -0
- package/dist/tools/sync.d.ts.map +1 -1
- package/dist/tools/sync.js +17 -10
- package/dist/tools/sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consciousness & Self-Healing MCP Tools — Epoch 25
|
|
3
|
+
*
|
|
4
|
+
* Academic ref: "Tool Use in Large Language Models: A Survey" (Qin et al., 2024).
|
|
5
|
+
*
|
|
6
|
+
* Provides MCP tools for:
|
|
7
|
+
* - get_consciousness_trend: Historical consciousness score analysis
|
|
8
|
+
* - suggest_connections: Find potential graph connections for an entry
|
|
9
|
+
* - search_with_context: Graph-enriched search (search + connected entries)
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
export const suggestConnectionsSchema = z.object({
|
|
13
|
+
entry_id: z.string().uuid(),
|
|
14
|
+
limit: z.number().min(1).max(20).optional(),
|
|
15
|
+
brain_id: z.string().uuid().optional(),
|
|
16
|
+
});
|
|
17
|
+
export const searchWithContextSchema = z.object({
|
|
18
|
+
q: z.string().min(1),
|
|
19
|
+
limit: z.number().min(1).max(20).optional(),
|
|
20
|
+
graph_depth: z.number().min(0).max(2).optional(),
|
|
21
|
+
brain_id: z.string().uuid().optional(),
|
|
22
|
+
});
|
|
1
23
|
/**
|
|
2
24
|
* Fetch consciousness trend from Brain API (cloud mode only).
|
|
3
25
|
* Wraps GET /health/vitals/history.
|
|
@@ -37,11 +59,15 @@ export async function getConsciousnessTrend(store, args) {
|
|
|
37
59
|
* Wraps the graph enrichment discovery logic.
|
|
38
60
|
*/
|
|
39
61
|
export async function suggestConnections(store, args) {
|
|
40
|
-
const
|
|
41
|
-
if (!
|
|
42
|
-
return {
|
|
62
|
+
const parsed = suggestConnectionsSchema.safeParse(args);
|
|
63
|
+
if (!parsed.success) {
|
|
64
|
+
return {
|
|
65
|
+
error: `Invalid input: ${parsed.error.issues.map((i) => i.message).join(", ")}`,
|
|
66
|
+
};
|
|
43
67
|
}
|
|
44
|
-
const
|
|
68
|
+
const entryId = parsed.data.entry_id;
|
|
69
|
+
const limit = parsed.data.limit ?? 10;
|
|
70
|
+
const brainId = parsed.data.brain_id;
|
|
45
71
|
try {
|
|
46
72
|
// Get the entry's graph to see existing connections
|
|
47
73
|
const graph = await store.traverseGraph(entryId, 1);
|
|
@@ -53,16 +79,18 @@ export async function suggestConnections(store, args) {
|
|
|
53
79
|
// Find entries in the same category that aren't already connected
|
|
54
80
|
const connectedIds = new Set();
|
|
55
81
|
if (graph && typeof graph === "object" && "nodes" in graph) {
|
|
56
|
-
const nodes = graph
|
|
82
|
+
const nodes = graph
|
|
83
|
+
.nodes;
|
|
57
84
|
for (const node of nodes) {
|
|
58
85
|
connectedIds.add(node.entry.id);
|
|
59
86
|
}
|
|
60
87
|
}
|
|
61
|
-
// Search for similar content
|
|
88
|
+
// Search for similar content (scoped to brain_id if provided)
|
|
62
89
|
const similar = await store.query({
|
|
63
90
|
q: entry.content.slice(0, 200),
|
|
64
91
|
category: entry.category,
|
|
65
92
|
limit: limit + connectedIds.size,
|
|
93
|
+
...(brainId ? { brain_id: brainId } : {}),
|
|
66
94
|
});
|
|
67
95
|
const suggestions = similar.entries
|
|
68
96
|
.filter((e) => !connectedIds.has(e.id) && e.id !== entryId)
|
|
@@ -81,7 +109,9 @@ export async function suggestConnections(store, args) {
|
|
|
81
109
|
};
|
|
82
110
|
}
|
|
83
111
|
catch (error) {
|
|
84
|
-
return {
|
|
112
|
+
return {
|
|
113
|
+
error: `Failed to suggest connections: ${error instanceof Error ? error.message : String(error)}`,
|
|
114
|
+
};
|
|
85
115
|
}
|
|
86
116
|
}
|
|
87
117
|
/**
|
|
@@ -89,15 +119,23 @@ export async function suggestConnections(store, args) {
|
|
|
89
119
|
* Returns search results enriched with their graph neighbors.
|
|
90
120
|
*/
|
|
91
121
|
export async function searchWithContext(store, args) {
|
|
92
|
-
const
|
|
93
|
-
if (!
|
|
94
|
-
return {
|
|
122
|
+
const parsed = searchWithContextSchema.safeParse(args);
|
|
123
|
+
if (!parsed.success) {
|
|
124
|
+
return {
|
|
125
|
+
error: `Invalid input: ${parsed.error.issues.map((i) => i.message).join(", ")}`,
|
|
126
|
+
};
|
|
95
127
|
}
|
|
96
|
-
const
|
|
97
|
-
const
|
|
128
|
+
const q = parsed.data.q;
|
|
129
|
+
const limit = parsed.data.limit ?? 10;
|
|
130
|
+
const graphDepth = parsed.data.graph_depth ?? 1;
|
|
131
|
+
const brainId = parsed.data.brain_id;
|
|
98
132
|
try {
|
|
99
|
-
// Step 1: Search
|
|
100
|
-
const searchResults = await store.query({
|
|
133
|
+
// Step 1: Search (scoped to brain_id if provided)
|
|
134
|
+
const searchResults = await store.query({
|
|
135
|
+
q,
|
|
136
|
+
limit,
|
|
137
|
+
...(brainId ? { brain_id: brainId } : {}),
|
|
138
|
+
});
|
|
101
139
|
if (searchResults.entries.length === 0) {
|
|
102
140
|
return { results: [], total: 0, context_entries: 0 };
|
|
103
141
|
}
|
|
@@ -111,7 +149,8 @@ export async function searchWithContext(store, args) {
|
|
|
111
149
|
if (graph && typeof graph === "object" && "nodes" in graph) {
|
|
112
150
|
const nodes = graph.nodes;
|
|
113
151
|
for (const node of nodes) {
|
|
114
|
-
if (node.depth > 0 &&
|
|
152
|
+
if (node.depth > 0 &&
|
|
153
|
+
!searchResults.entries.some((e) => e.id === node.entry.id)) {
|
|
115
154
|
contextEntries.set(node.entry.id, {
|
|
116
155
|
content_preview: node.entry.content.slice(0, 150),
|
|
117
156
|
category: node.entry.category,
|
|
@@ -144,7 +183,9 @@ export async function searchWithContext(store, args) {
|
|
|
144
183
|
};
|
|
145
184
|
}
|
|
146
185
|
catch (error) {
|
|
147
|
-
return {
|
|
186
|
+
return {
|
|
187
|
+
error: `Search failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
188
|
+
};
|
|
148
189
|
}
|
|
149
190
|
}
|
|
150
191
|
/** Simple edge type inference for suggestions. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consciousness.js","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consciousness.js","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"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"}
|