@brain-protocol/mcp 0.6.3 → 0.7.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.
- package/README.md +24 -1
- package/dist/auth/device-login.d.ts +11 -0
- package/dist/auth/device-login.d.ts.map +1 -0
- package/dist/auth/device-login.js +123 -0
- package/dist/auth/device-login.js.map +1 -0
- package/dist/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -4
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +17 -2
- package/dist/server.js.map +1 -1
- package/dist/store/adapter.d.ts +6 -0
- package/dist/store/adapter.d.ts.map +1 -1
- package/dist/store/cloud.d.ts +12 -0
- package/dist/store/cloud.d.ts.map +1 -1
- package/dist/store/cloud.js +84 -11
- package/dist/store/cloud.js.map +1 -1
- package/dist/tools/brains.d.ts +15 -0
- package/dist/tools/brains.d.ts.map +1 -0
- package/dist/tools/brains.js +23 -0
- package/dist/tools/brains.js.map +1 -0
- 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 +109 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +270 -54
- 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
package/dist/store/cloud.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { BrainClient, withRetry } from "@brain-protocol/sdk";
|
|
2
|
-
import { CircuitBreaker } from "./circuit-breaker.js";
|
|
2
|
+
import { CircuitBreaker, } from "./circuit-breaker.js";
|
|
3
3
|
export class CloudStore {
|
|
4
4
|
mode = "cloud";
|
|
5
5
|
client;
|
|
6
6
|
breaker;
|
|
7
7
|
retryConfig;
|
|
8
|
+
defaultBrainId = null;
|
|
9
|
+
apiKey;
|
|
8
10
|
constructor(baseUrl, apiKey, options) {
|
|
9
11
|
this.client = new BrainClient({
|
|
10
12
|
baseUrl,
|
|
11
13
|
apiKey,
|
|
12
14
|
});
|
|
15
|
+
this.apiKey = apiKey;
|
|
13
16
|
this.breaker = new CircuitBreaker(options?.circuitBreaker);
|
|
14
17
|
this.retryConfig = options?.retry ?? {};
|
|
15
18
|
}
|
|
19
|
+
/** The personal brain ID resolved during auto-onboarding */
|
|
20
|
+
get personalBrainId() {
|
|
21
|
+
return this.defaultBrainId;
|
|
22
|
+
}
|
|
16
23
|
/** Circuit breaker state for observability */
|
|
17
24
|
get circuitState() {
|
|
18
25
|
return this.breaker.state;
|
|
@@ -29,15 +36,29 @@ export class CloudStore {
|
|
|
29
36
|
}
|
|
30
37
|
// Reset breaker on successful init
|
|
31
38
|
this.breaker.reset();
|
|
39
|
+
// Auto-onboarding: if authenticated, ensure personal brain exists
|
|
40
|
+
if (this.apiKey) {
|
|
41
|
+
try {
|
|
42
|
+
const result = await this.client.onboarding.setup();
|
|
43
|
+
if (result.personal_brain?.id) {
|
|
44
|
+
this.defaultBrainId = result.personal_brain.id;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Non-fatal: onboarding may fail for read-only keys or older servers
|
|
49
|
+
}
|
|
50
|
+
}
|
|
32
51
|
}
|
|
33
52
|
async close() {
|
|
34
53
|
// No-op for HTTP client
|
|
35
54
|
}
|
|
36
55
|
async query(options) {
|
|
37
|
-
|
|
56
|
+
const opts = this.withDefaultBrain(options);
|
|
57
|
+
return this.resilient(() => this.client.knowledge.query(opts));
|
|
38
58
|
}
|
|
39
59
|
async create(input) {
|
|
40
|
-
|
|
60
|
+
const data = this.withDefaultBrain(input);
|
|
61
|
+
return this.resilient(() => this.client.knowledge.create(data));
|
|
41
62
|
}
|
|
42
63
|
async getById(id) {
|
|
43
64
|
return this.resilient(() => this.client.knowledge.get(id));
|
|
@@ -47,7 +68,9 @@ export class CloudStore {
|
|
|
47
68
|
return await this.resilient(() => this.client.knowledge.update(id, input));
|
|
48
69
|
}
|
|
49
70
|
catch (err) {
|
|
50
|
-
if (err instanceof Error &&
|
|
71
|
+
if (err instanceof Error &&
|
|
72
|
+
"status" in err &&
|
|
73
|
+
err.status === 404) {
|
|
51
74
|
return null;
|
|
52
75
|
}
|
|
53
76
|
throw err;
|
|
@@ -63,12 +86,41 @@ export class CloudStore {
|
|
|
63
86
|
return this.resilient(() => this.client.graph.traverse(entryId, depth));
|
|
64
87
|
}
|
|
65
88
|
async getStats() {
|
|
66
|
-
|
|
89
|
+
const raw = await this.resilient(() => this.client.stats());
|
|
90
|
+
// API returns { knowledge: { total_entries, total_edges, ... } }
|
|
91
|
+
// Map to StoreStats camelCase shape
|
|
92
|
+
const data = raw;
|
|
93
|
+
const k = (data.knowledge ?? data);
|
|
94
|
+
return {
|
|
95
|
+
totalEntries: (k.total_entries ?? k.totalEntries ?? 0),
|
|
96
|
+
totalEdges: (k.total_edges ?? k.totalEdges ?? 0),
|
|
97
|
+
categories: (k.entries_by_category ?? k.categories ?? {}),
|
|
98
|
+
avgConfidence: (k.avg_confidence ?? k.avgConfidence ?? 0),
|
|
99
|
+
oldestEntry: null,
|
|
100
|
+
newestEntry: (k.latest_entry_at ?? k.newestEntry ?? null),
|
|
101
|
+
};
|
|
67
102
|
}
|
|
68
103
|
async exportAll() {
|
|
69
|
-
|
|
104
|
+
// Brain-scoped export: fetch only entries from the user's brain (Round 13)
|
|
105
|
+
const allEntries = [];
|
|
106
|
+
let offset = 0;
|
|
107
|
+
const limit = 100;
|
|
108
|
+
while (true) {
|
|
109
|
+
const opts = this.withDefaultBrain({
|
|
110
|
+
limit,
|
|
111
|
+
offset,
|
|
112
|
+
brain_id: undefined,
|
|
113
|
+
});
|
|
114
|
+
const { entries } = await this.resilient(() => this.client.knowledge.query(opts));
|
|
115
|
+
allEntries.push(...entries);
|
|
116
|
+
if (entries.length < limit)
|
|
117
|
+
break;
|
|
118
|
+
offset += limit;
|
|
119
|
+
}
|
|
70
120
|
return {
|
|
71
|
-
|
|
121
|
+
entries: allEntries,
|
|
122
|
+
edges: [],
|
|
123
|
+
exportedAt: new Date().toISOString(),
|
|
72
124
|
mode: "cloud",
|
|
73
125
|
};
|
|
74
126
|
}
|
|
@@ -76,7 +128,7 @@ export class CloudStore {
|
|
|
76
128
|
let imported = 0;
|
|
77
129
|
for (const entry of data.entries) {
|
|
78
130
|
try {
|
|
79
|
-
|
|
131
|
+
const input = this.withDefaultBrain({
|
|
80
132
|
content: entry.content,
|
|
81
133
|
content_type: entry.content_type,
|
|
82
134
|
author: entry.author,
|
|
@@ -86,7 +138,8 @@ export class CloudStore {
|
|
|
86
138
|
metadata: entry.metadata,
|
|
87
139
|
brain_id: entry.brain_id,
|
|
88
140
|
is_public: entry.is_public,
|
|
89
|
-
})
|
|
141
|
+
});
|
|
142
|
+
await this.resilient(() => this.client.knowledge.create(input));
|
|
90
143
|
imported++;
|
|
91
144
|
}
|
|
92
145
|
catch {
|
|
@@ -167,16 +220,36 @@ export class CloudStore {
|
|
|
167
220
|
attester_signatures: input.attester_signatures,
|
|
168
221
|
},
|
|
169
222
|
description: input.description,
|
|
170
|
-
brain_id: input.brain_id,
|
|
223
|
+
brain_id: input.brain_id || this.defaultBrainId || undefined,
|
|
171
224
|
confidence: input.confidence,
|
|
172
225
|
author: input.author,
|
|
173
226
|
}));
|
|
174
227
|
}
|
|
175
228
|
async queryGizaProofs(options) {
|
|
176
|
-
|
|
229
|
+
const opts = this.withDefaultBrain(options);
|
|
230
|
+
return this.resilient(() => this.client.giza.queryProofs(opts));
|
|
177
231
|
}
|
|
178
232
|
async linkProofToEntry(proofEntryId, targetEntryId, edgeType = "validates") {
|
|
179
233
|
return this.resilient(() => this.client.giza.linkProofToEntry(proofEntryId, targetEntryId, edgeType));
|
|
180
234
|
}
|
|
235
|
+
// --- Billing ---
|
|
236
|
+
async getSubscription() {
|
|
237
|
+
return this.resilient(() => this.client.billing.subscription());
|
|
238
|
+
}
|
|
239
|
+
// --- Brain management ---
|
|
240
|
+
async listBrains() {
|
|
241
|
+
return this.resilient(() => this.client.brains.list());
|
|
242
|
+
}
|
|
243
|
+
async createBrain(input) {
|
|
244
|
+
return this.resilient(() => this.client.brains.create(input));
|
|
245
|
+
}
|
|
246
|
+
// --- Helpers ---
|
|
247
|
+
/** Inject defaultBrainId into options if no brain_id is specified */
|
|
248
|
+
withDefaultBrain(options) {
|
|
249
|
+
if (!options.brain_id && this.defaultBrainId) {
|
|
250
|
+
return { ...options, brain_id: this.defaultBrainId };
|
|
251
|
+
}
|
|
252
|
+
return options;
|
|
253
|
+
}
|
|
181
254
|
}
|
|
182
255
|
//# sourceMappingURL=cloud.js.map
|
package/dist/store/cloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,OAAO,UAAU;IACZ,IAAI,GAAG,OAAgB,CAAC;IACzB,MAAM,CAAc;IACpB,OAAO,CAAiB;IACxB,WAAW,CAAuB;IAClC,cAAc,GAAkB,IAAI,CAAC;IACrC,MAAM,CAAqB;IAEnC,YAAY,OAAe,EAAE,MAAe,EAAE,OAA2B;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;YAC5B,OAAO;YACP,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,4DAA4D;IAC5D,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,8CAA8C;IAC9C,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,8CAA8C;IACtC,SAAS,CAAI,EAAoB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,iDAAiD;QACjD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,mCAAmC;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,kEAAkE;QAClE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACpD,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;oBAC9B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,wBAAwB;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAuB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,KAAgC;QAEhC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CACxC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,KAAK;gBACpB,QAAQ,IAAI,GAAG;gBACd,GAA0B,CAAC,MAAM,KAAK,GAAG,EAC1C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAsB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,KAAa;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,iEAAiE;QACjE,oCAAoC;QACpC,MAAM,IAAI,GAAG,GAAyC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAA4B,CAAC;QAC9D,OAAO;YACL,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAW;YAChE,UAAU,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAW;YAC1D,UAAU,EAAE,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE,CAGvD;YACD,aAAa,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAW;YACnE,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAEhD;SACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,2EAA2E;QAC3E,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACjC,KAAK;gBACL,MAAM;gBACN,QAAQ,EAAE,SAAS;aACJ,CAAC,CAAC;YACnB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAClC,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK;gBAAE,MAAM;YAClC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC;QACD,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChE,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;iBACzC,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA6B;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CACxB,IAAmE,CACpE,CACF,CAAC;IACJ,CAAC;IAED,6CAA6C;IAE7C,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,QAAgB;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,IAAY,EACZ,OAAe;QAEf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,QAAQ,CAAC,IAAa;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAa;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,qBAAqB;IAErB,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,qCAAqC;IAErC,KAAK,CAAC,gBAAgB,CAAC,KAAqB;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5B,KAAK,EAAE;gBACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;aAC/C;YACD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS;YAC5D,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAA8B;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,YAAoB,EACpB,aAAqB,EACrB,QAAQ,GAAG,WAAW;QAEtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAGjB;QACC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB;IAElB,qEAAqE;IAC7D,gBAAgB,CAAkC,OAAU;QAClE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { StoreAdapter } from "../store/adapter.js";
|
|
3
|
+
export declare const createBrainSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
description: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function listBrains(store: StoreAdapter): Promise<unknown>;
|
|
14
|
+
export declare function createBrain(store: StoreAdapter, args: Record<string, unknown>): Promise<unknown>;
|
|
15
|
+
//# sourceMappingURL=brains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brains.d.ts","sourceRoot":"","sources":["../../src/tools/brains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,wBAAsB,UAAU,CAAC,KAAK,EAAE,YAAY,oBAQnD;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAU9B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const createBrainSchema = z.object({
|
|
3
|
+
name: z.string().min(1).max(100),
|
|
4
|
+
description: z.string().max(500).optional(),
|
|
5
|
+
});
|
|
6
|
+
export async function listBrains(store) {
|
|
7
|
+
if (!store.listBrains) {
|
|
8
|
+
return {
|
|
9
|
+
error: "Brain management requires cloud mode. Set BRAIN_API_URL to enable.",
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return store.listBrains();
|
|
13
|
+
}
|
|
14
|
+
export async function createBrain(store, args) {
|
|
15
|
+
if (!store.createBrain) {
|
|
16
|
+
return {
|
|
17
|
+
error: "Brain management requires cloud mode. Set BRAIN_API_URL to enable.",
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const input = createBrainSchema.parse(args);
|
|
21
|
+
return store.createBrain(input);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=brains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brains.js","sourceRoot":"","sources":["../../src/tools/brains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAmB;IAClD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EACH,oEAAoE;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAmB,EACnB,IAA6B;IAE7B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EACH,oEAAoE;SACvE,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -8,7 +8,37 @@
|
|
|
8
8
|
* - suggest_connections: Find potential graph connections for an entry
|
|
9
9
|
* - search_with_context: Graph-enriched search (search + connected entries)
|
|
10
10
|
*/
|
|
11
|
+
import { z } from "zod";
|
|
11
12
|
import type { StoreAdapter } from "../store/adapter.js";
|
|
13
|
+
export declare const suggestConnectionsSchema: z.ZodObject<{
|
|
14
|
+
entry_id: z.ZodString;
|
|
15
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
brain_id: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
entry_id: string;
|
|
19
|
+
limit?: number | undefined;
|
|
20
|
+
brain_id?: string | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
entry_id: string;
|
|
23
|
+
limit?: number | undefined;
|
|
24
|
+
brain_id?: string | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const searchWithContextSchema: z.ZodObject<{
|
|
27
|
+
q: z.ZodString;
|
|
28
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
graph_depth: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
brain_id: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
q: string;
|
|
33
|
+
limit?: number | undefined;
|
|
34
|
+
brain_id?: string | undefined;
|
|
35
|
+
graph_depth?: number | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
q: string;
|
|
38
|
+
limit?: number | undefined;
|
|
39
|
+
brain_id?: string | undefined;
|
|
40
|
+
graph_depth?: number | undefined;
|
|
41
|
+
}>;
|
|
12
42
|
/**
|
|
13
43
|
* Fetch consciousness trend from Brain API (cloud mode only).
|
|
14
44
|
* Wraps GET /health/vitals/history.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consciousness.d.ts","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"consciousness.d.ts","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAKlC,CAAC;AAQH;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CA6DlB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAwFlB"}
|
|
@@ -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 ?? 5;
|
|
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 ?? 5;
|
|
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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"}
|