@brain-protocol/mcp 0.3.4 → 0.3.5
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 +2 -2
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/store/circuit-breaker.d.ts +29 -0
- package/dist/store/circuit-breaker.d.ts.map +1 -0
- package/dist/store/circuit-breaker.js +63 -0
- package/dist/store/circuit-breaker.js.map +1 -0
- package/dist/store/cloud.d.ts +13 -1
- package/dist/store/cloud.d.ts.map +1 -1
- package/dist/store/cloud.js +42 -26
- package/dist/store/cloud.js.map +1 -1
- package/package.json +13 -12
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const VERSION = "0.3.
|
|
2
|
-
export declare const HELP_TEXT = "brain-protocol MCP server v0.3.
|
|
1
|
+
export declare const VERSION = "0.3.5";
|
|
2
|
+
export declare const HELP_TEXT = "brain-protocol MCP server v0.3.5\nVerifiable Memory for AI Agents\n\nUsage:\n npx @brain-protocol/mcp [options]\n\nOptions:\n --help Show this help message\n --version Show version number\n --db-path Override SQLite database path (default: XDG data dir)\n --cloud Cloud API URL (alternative to BRAIN_API_URL env)\n --api-key API key for cloud mode (alternative to BRAIN_API_KEY env)\n --setup Print IDE config (claude-desktop, cursor, claude-code, snak, windsurf)\n --check Health check: show mode, entry count, and exit\n\nEnvironment variables:\n BRAIN_API_URL Cloud mode API URL (e.g., https://brain.api.vauban.tech)\n BRAIN_API_KEY API key for cloud mode authentication\n BRAIN_DB_PATH Override SQLite database path\n\nExamples:\n # Local mode (default)\n npx @brain-protocol/mcp\n\n # Cloud mode\n npx @brain-protocol/mcp --cloud https://brain.api.vauban.tech --api-key xxx\n\n # Custom database path\n npx @brain-protocol/mcp --db-path ./my-brain.db\n\n # Print config for your IDE\n npx @brain-protocol/mcp --setup claude-desktop\n\n # Quick health check\n npx @brain-protocol/mcp --check\n";
|
|
3
3
|
export interface CliArgs {
|
|
4
4
|
help: boolean;
|
|
5
5
|
version: boolean;
|
package/dist/cli.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
export { createMCPServer } from "./server.js";
|
|
3
3
|
export { SQLiteStore } from "./store/sqlite.js";
|
|
4
4
|
export { CloudStore } from "./store/cloud.js";
|
|
5
|
+
export type { CloudStoreOptions } from "./store/cloud.js";
|
|
6
|
+
export { CircuitBreaker, CircuitOpenError } from "./store/circuit-breaker.js";
|
|
7
|
+
export type { CircuitBreakerConfig, CircuitState } from "./store/circuit-breaker.js";
|
|
5
8
|
export { parseArgs, VERSION, printSetup } from "./cli.js";
|
|
6
9
|
export type { CliArgs } from "./cli.js";
|
|
7
10
|
export type { StoreAdapter } from "./store/adapter.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4FA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,mBAAmB,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4FA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -72,5 +72,6 @@ main().catch((err) => {
|
|
|
72
72
|
export { createMCPServer } from "./server.js";
|
|
73
73
|
export { SQLiteStore } from "./store/sqlite.js";
|
|
74
74
|
export { CloudStore } from "./store/cloud.js";
|
|
75
|
+
export { CircuitBreaker, CircuitOpenError } from "./store/circuit-breaker.js";
|
|
75
76
|
export { parseArgs, VERSION, printSetup } from "./cli.js";
|
|
76
77
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface CircuitBreakerConfig {
|
|
2
|
+
/** Number of consecutive failures before opening. Default: 5 */
|
|
3
|
+
failureThreshold: number;
|
|
4
|
+
/** Cooldown in ms before attempting recovery. Default: 30_000 */
|
|
5
|
+
cooldownMs: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const DEFAULT_CIRCUIT_CONFIG: CircuitBreakerConfig;
|
|
8
|
+
export type CircuitState = "closed" | "open" | "half-open";
|
|
9
|
+
export declare class CircuitBreaker {
|
|
10
|
+
private consecutiveFailures;
|
|
11
|
+
private lastFailureTime;
|
|
12
|
+
private readonly config;
|
|
13
|
+
constructor(config?: Partial<CircuitBreakerConfig>);
|
|
14
|
+
get state(): CircuitState;
|
|
15
|
+
get failures(): number;
|
|
16
|
+
/**
|
|
17
|
+
* Execute a function through the circuit breaker.
|
|
18
|
+
* Throws immediately if circuit is open.
|
|
19
|
+
* Resets on success, increments failure count on error.
|
|
20
|
+
*/
|
|
21
|
+
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
22
|
+
reset(): void;
|
|
23
|
+
private recordFailure;
|
|
24
|
+
}
|
|
25
|
+
export declare class CircuitOpenError extends Error {
|
|
26
|
+
readonly retryAfterMs: number;
|
|
27
|
+
constructor(message: string, retryAfterMs: number);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/store/circuit-breaker.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAGpC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,qBAAa,cAAc;IACzB,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIlD,IAAI,KAAK,IAAI,YAAY,CASxB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBlD,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,aAAa;CAItB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,YAAY,EAAE,MAAM;gBADpC,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,MAAM;CAKvC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const DEFAULT_CIRCUIT_CONFIG = {
|
|
2
|
+
failureThreshold: 5,
|
|
3
|
+
cooldownMs: 30_000,
|
|
4
|
+
};
|
|
5
|
+
export class CircuitBreaker {
|
|
6
|
+
consecutiveFailures = 0;
|
|
7
|
+
lastFailureTime = 0;
|
|
8
|
+
config;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = { ...DEFAULT_CIRCUIT_CONFIG, ...config };
|
|
11
|
+
}
|
|
12
|
+
get state() {
|
|
13
|
+
if (this.consecutiveFailures < this.config.failureThreshold) {
|
|
14
|
+
return "closed";
|
|
15
|
+
}
|
|
16
|
+
const elapsed = Date.now() - this.lastFailureTime;
|
|
17
|
+
if (elapsed >= this.config.cooldownMs) {
|
|
18
|
+
return "half-open";
|
|
19
|
+
}
|
|
20
|
+
return "open";
|
|
21
|
+
}
|
|
22
|
+
get failures() {
|
|
23
|
+
return this.consecutiveFailures;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Execute a function through the circuit breaker.
|
|
27
|
+
* Throws immediately if circuit is open.
|
|
28
|
+
* Resets on success, increments failure count on error.
|
|
29
|
+
*/
|
|
30
|
+
async execute(fn) {
|
|
31
|
+
const currentState = this.state;
|
|
32
|
+
if (currentState === "open") {
|
|
33
|
+
const remainingMs = this.config.cooldownMs - (Date.now() - this.lastFailureTime);
|
|
34
|
+
throw new CircuitOpenError(`Circuit breaker open — ${this.consecutiveFailures} consecutive failures. Retry in ${Math.ceil(remainingMs / 1000)}s`, remainingMs);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const result = await fn();
|
|
38
|
+
this.reset();
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.recordFailure();
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
reset() {
|
|
47
|
+
this.consecutiveFailures = 0;
|
|
48
|
+
this.lastFailureTime = 0;
|
|
49
|
+
}
|
|
50
|
+
recordFailure() {
|
|
51
|
+
this.consecutiveFailures++;
|
|
52
|
+
this.lastFailureTime = Date.now();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export class CircuitOpenError extends Error {
|
|
56
|
+
retryAfterMs;
|
|
57
|
+
constructor(message, retryAfterMs) {
|
|
58
|
+
super(message);
|
|
59
|
+
this.retryAfterMs = retryAfterMs;
|
|
60
|
+
this.name = "CircuitOpenError";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/store/circuit-breaker.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM;CACnB,CAAC;AAIF,MAAM,OAAO,cAAc;IACjB,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACX,MAAM,CAAuB;IAE9C,YAAY,MAAsC;QAChD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAClD,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhC,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YACjF,MAAM,IAAI,gBAAgB,CACxB,0BAA0B,IAAI,CAAC,mBAAmB,mCAAmC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EACrH,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGvB;IAFlB,YACE,OAAe,EACC,YAAoB;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,iBAAY,GAAZ,YAAY,CAAQ;QAGpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
package/dist/store/cloud.d.ts
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
import type { RetryConfig } from "@brain-protocol/sdk";
|
|
2
|
+
import { type CircuitBreakerConfig } from "./circuit-breaker.js";
|
|
1
3
|
import type { StoreAdapter } from "./adapter.js";
|
|
2
4
|
import type { CreateEdgeInput, CreateEntryInput, ExportData, GizaProofInput, GizaProofQueryOptions, GraphResult, KnowledgeEdge, KnowledgeEntry, ProveResult, QueryOptions, StoreStats, VerifyResult } from "../types.js";
|
|
5
|
+
export interface CloudStoreOptions {
|
|
6
|
+
retry?: Partial<RetryConfig>;
|
|
7
|
+
circuitBreaker?: Partial<CircuitBreakerConfig>;
|
|
8
|
+
}
|
|
3
9
|
export declare class CloudStore implements StoreAdapter {
|
|
4
10
|
readonly mode: "cloud";
|
|
5
11
|
private client;
|
|
6
|
-
|
|
12
|
+
private breaker;
|
|
13
|
+
private retryConfig;
|
|
14
|
+
constructor(baseUrl: string, apiKey?: string, options?: CloudStoreOptions);
|
|
15
|
+
/** Circuit breaker state for observability */
|
|
16
|
+
get circuitState(): import("./circuit-breaker.js").CircuitState;
|
|
17
|
+
/** Execute fn with retry + circuit breaker */
|
|
18
|
+
private resilient;
|
|
7
19
|
initialize(): Promise<void>;
|
|
8
20
|
close(): Promise<void>;
|
|
9
21
|
query(options: QueryOptions): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,YAAW,YAAY;IAC7C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,MAAM,CAAc;
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"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"}
|
package/dist/store/cloud.js
CHANGED
|
@@ -1,34 +1,50 @@
|
|
|
1
|
-
import { BrainClient } from "@brain-protocol/sdk";
|
|
1
|
+
import { BrainClient, withRetry } from "@brain-protocol/sdk";
|
|
2
|
+
import { CircuitBreaker } from "./circuit-breaker.js";
|
|
2
3
|
export class CloudStore {
|
|
3
4
|
mode = "cloud";
|
|
4
5
|
client;
|
|
5
|
-
|
|
6
|
+
breaker;
|
|
7
|
+
retryConfig;
|
|
8
|
+
constructor(baseUrl, apiKey, options) {
|
|
6
9
|
this.client = new BrainClient({
|
|
7
10
|
baseUrl,
|
|
8
11
|
apiKey,
|
|
9
12
|
});
|
|
13
|
+
this.breaker = new CircuitBreaker(options?.circuitBreaker);
|
|
14
|
+
this.retryConfig = options?.retry ?? {};
|
|
15
|
+
}
|
|
16
|
+
/** Circuit breaker state for observability */
|
|
17
|
+
get circuitState() {
|
|
18
|
+
return this.breaker.state;
|
|
19
|
+
}
|
|
20
|
+
/** Execute fn with retry + circuit breaker */
|
|
21
|
+
resilient(fn) {
|
|
22
|
+
return this.breaker.execute(() => withRetry(fn, this.retryConfig));
|
|
10
23
|
}
|
|
11
24
|
async initialize() {
|
|
25
|
+
// No retry on init — fail fast if server is down
|
|
12
26
|
const ok = await this.client.ping();
|
|
13
27
|
if (!ok) {
|
|
14
28
|
throw new Error("Cloud store initialization failed: health check returned non-200");
|
|
15
29
|
}
|
|
30
|
+
// Reset breaker on successful init
|
|
31
|
+
this.breaker.reset();
|
|
16
32
|
}
|
|
17
33
|
async close() {
|
|
18
34
|
// No-op for HTTP client
|
|
19
35
|
}
|
|
20
36
|
async query(options) {
|
|
21
|
-
return this.client.knowledge.query(options);
|
|
37
|
+
return this.resilient(() => this.client.knowledge.query(options));
|
|
22
38
|
}
|
|
23
39
|
async create(input) {
|
|
24
|
-
return this.client.knowledge.create(input);
|
|
40
|
+
return this.resilient(() => this.client.knowledge.create(input));
|
|
25
41
|
}
|
|
26
42
|
async getById(id) {
|
|
27
|
-
return this.client.knowledge.get(id);
|
|
43
|
+
return this.resilient(() => this.client.knowledge.get(id));
|
|
28
44
|
}
|
|
29
45
|
async update(id, input) {
|
|
30
46
|
try {
|
|
31
|
-
return await this.client.knowledge.update(id, input);
|
|
47
|
+
return await this.resilient(() => this.client.knowledge.update(id, input));
|
|
32
48
|
}
|
|
33
49
|
catch (err) {
|
|
34
50
|
if (err instanceof Error && "status" in err && err.status === 404) {
|
|
@@ -38,19 +54,19 @@ export class CloudStore {
|
|
|
38
54
|
}
|
|
39
55
|
}
|
|
40
56
|
async delete(id) {
|
|
41
|
-
return this.client.knowledge.delete(id);
|
|
57
|
+
return this.resilient(() => this.client.knowledge.delete(id));
|
|
42
58
|
}
|
|
43
59
|
async createEdge(input) {
|
|
44
|
-
return this.client.edges.create(input);
|
|
60
|
+
return this.resilient(() => this.client.edges.create(input));
|
|
45
61
|
}
|
|
46
62
|
async traverseGraph(entryId, depth) {
|
|
47
|
-
return this.client.graph.traverse(entryId, depth);
|
|
63
|
+
return this.resilient(() => this.client.graph.traverse(entryId, depth));
|
|
48
64
|
}
|
|
49
65
|
async getStats() {
|
|
50
|
-
return this.client.stats();
|
|
66
|
+
return this.resilient(() => this.client.stats());
|
|
51
67
|
}
|
|
52
68
|
async exportAll() {
|
|
53
|
-
const result = await this.client.export();
|
|
69
|
+
const result = await this.resilient(() => this.client.export());
|
|
54
70
|
return {
|
|
55
71
|
...result,
|
|
56
72
|
mode: "cloud",
|
|
@@ -60,7 +76,7 @@ export class CloudStore {
|
|
|
60
76
|
let imported = 0;
|
|
61
77
|
for (const entry of data.entries) {
|
|
62
78
|
try {
|
|
63
|
-
await this.client.knowledge.create({
|
|
79
|
+
await this.resilient(() => this.client.knowledge.create({
|
|
64
80
|
content: entry.content,
|
|
65
81
|
content_type: entry.content_type,
|
|
66
82
|
author: entry.author,
|
|
@@ -70,7 +86,7 @@ export class CloudStore {
|
|
|
70
86
|
metadata: entry.metadata,
|
|
71
87
|
brain_id: entry.brain_id,
|
|
72
88
|
is_public: entry.is_public,
|
|
73
|
-
});
|
|
89
|
+
}));
|
|
74
90
|
imported++;
|
|
75
91
|
}
|
|
76
92
|
catch {
|
|
@@ -79,12 +95,12 @@ export class CloudStore {
|
|
|
79
95
|
}
|
|
80
96
|
for (const edge of data.edges) {
|
|
81
97
|
try {
|
|
82
|
-
await this.client.edges.create({
|
|
98
|
+
await this.resilient(() => this.client.edges.create({
|
|
83
99
|
source_id: edge.source_id,
|
|
84
100
|
target_id: edge.target_id,
|
|
85
101
|
edge_type: edge.edge_type,
|
|
86
102
|
confidence: edge.confidence ?? undefined,
|
|
87
|
-
});
|
|
103
|
+
}));
|
|
88
104
|
}
|
|
89
105
|
catch {
|
|
90
106
|
// Skip edges that fail
|
|
@@ -93,31 +109,31 @@ export class CloudStore {
|
|
|
93
109
|
return { imported };
|
|
94
110
|
}
|
|
95
111
|
async prove(entryId) {
|
|
96
|
-
return this.client.knowledge.prove(entryId);
|
|
112
|
+
return this.resilient(() => this.client.knowledge.prove(entryId));
|
|
97
113
|
}
|
|
98
114
|
async verify(entryId) {
|
|
99
|
-
return this.client.knowledge.verify(entryId);
|
|
115
|
+
return this.resilient(() => this.client.knowledge.verify(entryId));
|
|
100
116
|
}
|
|
101
117
|
// --- Agent operations ---
|
|
102
118
|
async getAgentStats() {
|
|
103
|
-
return this.client.agents.stats();
|
|
119
|
+
return this.resilient(() => this.client.agents.stats());
|
|
104
120
|
}
|
|
105
121
|
async logAgentTask(task) {
|
|
106
|
-
return this.client.agents.logTask(task);
|
|
122
|
+
return this.resilient(() => this.client.agents.logTask(task));
|
|
107
123
|
}
|
|
108
124
|
// --- Development / Pattern Intelligence ---
|
|
109
125
|
async suggestPatterns(code, fileType) {
|
|
110
|
-
return this.client.development.suggestPatterns(code, fileType);
|
|
126
|
+
return this.resilient(() => this.client.development.suggestPatterns(code, fileType));
|
|
111
127
|
}
|
|
112
128
|
async detectAntiPatterns(code, fileType) {
|
|
113
|
-
return this.client.development.detectAntiPatterns(code, fileType);
|
|
129
|
+
return this.resilient(() => this.client.development.detectAntiPatterns(code, fileType));
|
|
114
130
|
}
|
|
115
131
|
async getArchitecturalAdvice(code, context) {
|
|
116
|
-
return this.client.development.architecturalAdvice(code, context);
|
|
132
|
+
return this.resilient(() => this.client.development.architecturalAdvice(code, context));
|
|
117
133
|
}
|
|
118
134
|
// --- Giza zkML proof operations ---
|
|
119
135
|
async archiveGizaProof(input) {
|
|
120
|
-
return this.client.giza.archiveProof({
|
|
136
|
+
return this.resilient(() => this.client.giza.archiveProof({
|
|
121
137
|
proof: {
|
|
122
138
|
proof_id: input.proof_id,
|
|
123
139
|
model_id: input.model_id,
|
|
@@ -133,13 +149,13 @@ export class CloudStore {
|
|
|
133
149
|
brain_id: input.brain_id,
|
|
134
150
|
confidence: input.confidence,
|
|
135
151
|
author: input.author,
|
|
136
|
-
});
|
|
152
|
+
}));
|
|
137
153
|
}
|
|
138
154
|
async queryGizaProofs(options) {
|
|
139
|
-
return this.client.giza.queryProofs(options);
|
|
155
|
+
return this.resilient(() => this.client.giza.queryProofs(options));
|
|
140
156
|
}
|
|
141
157
|
async linkProofToEntry(proofEntryId, targetEntryId, edgeType = "validates") {
|
|
142
|
-
return this.client.giza.linkProofToEntry(proofEntryId, targetEntryId, edgeType);
|
|
158
|
+
return this.resilient(() => this.client.giza.linkProofToEntry(proofEntryId, targetEntryId, edgeType));
|
|
143
159
|
}
|
|
144
160
|
}
|
|
145
161
|
//# 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,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brain-protocol/mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"mcpName": "io.github.seritalien/brain-protocol",
|
|
5
5
|
"description": "Verifiable Memory-as-a-Service for AI Agents — MCP server with local SQLite or cloud mode",
|
|
6
6
|
"type": "module",
|
|
@@ -15,11 +15,19 @@
|
|
|
15
15
|
"README.md",
|
|
16
16
|
"LICENSE"
|
|
17
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc && chmod +x dist/index.js",
|
|
20
|
+
"prepublishOnly": "pnpm build",
|
|
21
|
+
"dev": "tsx src/index.ts",
|
|
22
|
+
"test": "vitest run",
|
|
23
|
+
"test:watch": "vitest",
|
|
24
|
+
"lint": "tsc --noEmit"
|
|
25
|
+
},
|
|
18
26
|
"dependencies": {
|
|
27
|
+
"@brain-protocol/sdk": "workspace:^",
|
|
19
28
|
"@modelcontextprotocol/sdk": "^1.25.0",
|
|
20
29
|
"better-sqlite3": "^11.0.0",
|
|
21
|
-
"zod": "^3.23.0"
|
|
22
|
-
"@brain-protocol/sdk": "^0.3.1"
|
|
30
|
+
"zod": "^3.23.0"
|
|
23
31
|
},
|
|
24
32
|
"devDependencies": {
|
|
25
33
|
"@types/better-sqlite3": "^7.6.0",
|
|
@@ -38,12 +46,5 @@
|
|
|
38
46
|
"ai-agents",
|
|
39
47
|
"sqlite",
|
|
40
48
|
"verifiable-memory"
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
"build": "tsc && chmod +x dist/index.js",
|
|
44
|
-
"dev": "tsx src/index.ts",
|
|
45
|
-
"test": "vitest run",
|
|
46
|
-
"test:watch": "vitest",
|
|
47
|
-
"lint": "tsc --noEmit"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
49
|
+
]
|
|
50
|
+
}
|