@brain-protocol/mcp 0.6.3 → 0.7.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 CHANGED
@@ -102,6 +102,29 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
102
102
  }
103
103
  ```
104
104
 
105
+ ## Authentication
106
+
107
+ Authenticate with the Brain Protocol cloud API in one command:
108
+
109
+ ```bash
110
+ npx @brain-protocol/mcp --login --cloud https://brain.api.vauban.tech
111
+ ```
112
+
113
+ This opens your browser, you sign in with GitHub or Google, and the CLI receives an API key automatically. Credentials are stored in `~/.config/brain-protocol/credentials.json`.
114
+
115
+ After login, cloud mode works without explicit `--api-key`:
116
+
117
+ ```bash
118
+ npx @brain-protocol/mcp --cloud https://brain.api.vauban.tech
119
+ npx @brain-protocol/mcp --check # uses stored credentials
120
+ ```
121
+
122
+ To clear stored credentials:
123
+
124
+ ```bash
125
+ npx @brain-protocol/mcp --logout
126
+ ```
127
+
105
128
  ### Cloud Mode Configuration
106
129
 
107
130
  For any IDE, add environment variables to connect to a Brain Protocol API server:
@@ -218,7 +241,7 @@ Verify your installation without starting the server:
218
241
 
219
242
  ```bash
220
243
  npx @brain-protocol/mcp --check
221
- # brain-protocol MCP v0.6.0
244
+ # brain-protocol MCP v0.6.3
222
245
  # Mode: local (~/.local/share/brain-protocol/brain.db)
223
246
  # Entries: 42 | Edges: 15
224
247
  # Status: ready
@@ -0,0 +1,11 @@
1
+ interface StoredCredentials {
2
+ api_key: string;
3
+ api_url: string;
4
+ created_at: string;
5
+ }
6
+ export declare function getStoredCredentials(): StoredCredentials | null;
7
+ export declare function storeCredentials(creds: StoredCredentials): void;
8
+ export declare function clearCredentials(): boolean;
9
+ export declare function deviceLogin(apiUrl: string): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=device-login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-login.d.ts","sourceRoot":"","sources":["../../src/auth/device-login.ts"],"names":[],"mappings":"AAQA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAU/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAS/D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAQ1C;AAiCD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF/D"}
@@ -0,0 +1,123 @@
1
+ import { chmodSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { execFile } from "node:child_process";
5
+ const CONFIG_DIR = join(homedir(), ".config", "brain-protocol");
6
+ const CREDENTIALS_FILE = join(CONFIG_DIR, "credentials.json");
7
+ export function getStoredCredentials() {
8
+ try {
9
+ if (!existsSync(CREDENTIALS_FILE))
10
+ return null;
11
+ const raw = readFileSync(CREDENTIALS_FILE, "utf-8");
12
+ const parsed = JSON.parse(raw);
13
+ if (!parsed.api_key || !parsed.api_url)
14
+ return null;
15
+ return parsed;
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ export function storeCredentials(creds) {
22
+ const dir = dirname(CREDENTIALS_FILE);
23
+ if (!existsSync(dir)) {
24
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
25
+ }
26
+ writeFileSync(CREDENTIALS_FILE, JSON.stringify(creds, null, 2), {
27
+ mode: 0o600,
28
+ });
29
+ chmodSync(CREDENTIALS_FILE, 0o600); // Enforce even if file pre-existed
30
+ }
31
+ export function clearCredentials() {
32
+ try {
33
+ if (!existsSync(CREDENTIALS_FILE))
34
+ return false;
35
+ unlinkSync(CREDENTIALS_FILE);
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ function openBrowser(url) {
43
+ // Use execFile (not exec) to avoid shell interpretation of URL
44
+ if (process.platform === "darwin") {
45
+ execFile("open", [url], () => { });
46
+ }
47
+ else if (process.platform === "win32") {
48
+ execFile("cmd", ["/c", "start", "", url], () => { });
49
+ }
50
+ else {
51
+ execFile("xdg-open", [url], () => { });
52
+ }
53
+ }
54
+ export async function deviceLogin(apiUrl) {
55
+ process.stderr.write("\nBrain Protocol — Device Login\n\n");
56
+ // Step 1: Request device code
57
+ const res = await fetch(`${apiUrl}/auth/device`, {
58
+ method: "POST",
59
+ headers: { "Content-Type": "application/json" },
60
+ body: JSON.stringify({}),
61
+ });
62
+ if (!res.ok) {
63
+ const text = await res.text();
64
+ throw new Error(`Failed to initiate device login: ${res.status} ${text}`);
65
+ }
66
+ const body = (await res.json());
67
+ if (!body.success || !body.data) {
68
+ throw new Error("Unexpected response from device auth endpoint");
69
+ }
70
+ const { device_code, user_code, verification_url, expires_in, interval } = body.data;
71
+ // Step 2: Display code and open browser
72
+ process.stderr.write(` Open this URL in your browser:\n`);
73
+ process.stderr.write(` \x1b[1;36m${verification_url}\x1b[0m\n\n`);
74
+ process.stderr.write(` And verify the code:\n`);
75
+ process.stderr.write(` \x1b[1;33m${user_code}\x1b[0m\n\n`);
76
+ openBrowser(verification_url);
77
+ process.stderr.write(" Waiting for authorization...\n");
78
+ // Step 3: Poll for authorization
79
+ const deadline = Date.now() + expires_in * 1000;
80
+ let pollInterval = interval * 1000;
81
+ while (Date.now() < deadline) {
82
+ await sleep(pollInterval);
83
+ try {
84
+ const pollRes = await fetch(`${apiUrl}/auth/device/token`, {
85
+ method: "POST",
86
+ headers: { "Content-Type": "application/json" },
87
+ body: JSON.stringify({ device_code }),
88
+ });
89
+ if (pollRes.status === 429) {
90
+ // slow_down — increase interval
91
+ pollInterval = Math.min(pollInterval + 5000, 30000);
92
+ continue;
93
+ }
94
+ if (pollRes.status === 410) {
95
+ throw new Error("Device code expired. Please try again.");
96
+ }
97
+ const pollBody = (await pollRes.json());
98
+ if (pollBody.success && pollBody.data?.status === "approved" && pollBody.data.api_key) {
99
+ // Store credentials
100
+ storeCredentials({
101
+ api_key: pollBody.data.api_key,
102
+ api_url: apiUrl,
103
+ created_at: new Date().toISOString(),
104
+ });
105
+ process.stderr.write("\n \x1b[1;32mAuthenticated!\x1b[0m\n");
106
+ process.stderr.write(` API key stored in ${CREDENTIALS_FILE}\n`);
107
+ process.stderr.write(` You can now use: npx @brain-protocol/mcp --cloud ${apiUrl}\n\n`);
108
+ return;
109
+ }
110
+ // Still pending, continue polling
111
+ }
112
+ catch (err) {
113
+ if (err instanceof Error && err.message.includes("expired"))
114
+ throw err;
115
+ // Network error — retry
116
+ }
117
+ }
118
+ throw new Error("Device authorization timed out. Please try again.");
119
+ }
120
+ function sleep(ms) {
121
+ return new Promise((resolve) => setTimeout(resolve, ms));
122
+ }
123
+ //# sourceMappingURL=device-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-login.js","sourceRoot":"","sources":["../../src/auth/device-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAQ9D,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC9D,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,mCAAmC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAsBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE5D,8BAA8B;IAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;QAC/C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAErF,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,gBAAgB,aAAa,CAAC,CAAC;IACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,SAAS,aAAa,CAAC,CAAC;IAE5D,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEzD,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;IAChD,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEnC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,oBAAoB,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;aACtC,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3B,gCAAgC;gBAChC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAiB,CAAC;YAExD,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtF,oBAAoB;gBACpB,gBAAgB,CAAC;oBACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;oBAC9B,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACrC,CAAC,CAAC;gBAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,gBAAgB,IAAI,CAAC,CAAC;gBAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,MAAM,MAAM,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,kCAAkC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,MAAM,GAAG,CAAC;YACvE,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare const VERSION = "0.6.3";
2
- export declare const HELP_TEXT = "brain-protocol MCP server v0.6.3\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 --sync Hybrid mode: local SQLite + cloud sync\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 BRAIN_SYNC Enable hybrid sync mode (true/false)\n BRAIN_SYNC_INTERVAL Sync interval in seconds (default 60)\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 # Hybrid mode (local + cloud sync)\n npx @brain-protocol/mcp --sync --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";
1
+ export declare const VERSION = "0.7.0";
2
+ export declare const HELP_TEXT = "brain-protocol MCP server v0.7.0\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 --sync Hybrid mode: local SQLite + cloud sync\n --login Authenticate via browser (device authorization flow)\n --logout Clear stored credentials\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 BRAIN_SYNC Enable hybrid sync mode (true/false)\n BRAIN_SYNC_INTERVAL Sync interval in seconds (default 60)\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 # Hybrid mode (local + cloud sync)\n npx @brain-protocol/mcp --sync --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 # Authenticate (opens browser)\n npx @brain-protocol/mcp --login --cloud https://brain.api.vauban.tech\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;
@@ -9,6 +9,8 @@ export interface CliArgs {
9
9
  setup?: string;
10
10
  check: boolean;
11
11
  sync: boolean;
12
+ login: boolean;
13
+ logout: boolean;
12
14
  }
13
15
  export declare function parseArgs(argv: string[]): CliArgs;
14
16
  export declare const VALID_SETUP_TARGETS: string[];
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,SAAS,s7CAyCrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAoCjD;AA6DD,eAAO,MAAM,mBAAmB,UAA6B,CAAC;AAE9D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAajD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,SAAS,ipDA8CrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CA0CjD;AA6DD,eAAO,MAAM,mBAAmB,UAA6B,CAAC;AAE9D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAajD"}
package/dist/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- export const VERSION = "0.6.3";
1
+ export const VERSION = "0.7.0";
2
2
  export const HELP_TEXT = `brain-protocol MCP server v${VERSION}
3
3
  Verifiable Memory for AI Agents
4
4
 
@@ -13,6 +13,8 @@ Options:
13
13
  --api-key API key for cloud mode (alternative to BRAIN_API_KEY env)
14
14
  --setup Print IDE config (claude-desktop, cursor, claude-code, snak, windsurf)
15
15
  --sync Hybrid mode: local SQLite + cloud sync
16
+ --login Authenticate via browser (device authorization flow)
17
+ --logout Clear stored credentials
16
18
  --check Health check: show mode, entry count, and exit
17
19
 
18
20
  Environment variables:
@@ -38,11 +40,14 @@ Examples:
38
40
  # Print config for your IDE
39
41
  npx @brain-protocol/mcp --setup claude-desktop
40
42
 
43
+ # Authenticate (opens browser)
44
+ npx @brain-protocol/mcp --login --cloud https://brain.api.vauban.tech
45
+
41
46
  # Quick health check
42
47
  npx @brain-protocol/mcp --check
43
48
  `;
44
49
  export function parseArgs(argv) {
45
- const args = { help: false, version: false, check: false, sync: false };
50
+ const args = { help: false, version: false, check: false, sync: false, login: false, logout: false };
46
51
  for (let i = 0; i < argv.length; i++) {
47
52
  const arg = argv[i];
48
53
  switch (arg) {
@@ -72,6 +77,12 @@ export function parseArgs(argv) {
72
77
  case "--check":
73
78
  args.check = true;
74
79
  break;
80
+ case "--login":
81
+ args.login = true;
82
+ break;
83
+ case "--logout":
84
+ args.logout = true;
85
+ break;
75
86
  }
76
87
  }
77
88
  return args;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,9 +5,9 @@ export { CloudStore } from "./store/cloud.js";
5
5
  export { HybridStore } from "./store/hybrid.js";
6
6
  export type { CloudStoreOptions } from "./store/cloud.js";
7
7
  export { CircuitBreaker, CircuitOpenError } from "./store/circuit-breaker.js";
8
- export type { CircuitBreakerConfig, CircuitState } from "./store/circuit-breaker.js";
8
+ export type { CircuitBreakerConfig, CircuitState, } from "./store/circuit-breaker.js";
9
9
  export { SyncEngine } from "./store/sync.js";
10
- export type { SyncState, SyncResult, SyncConflict, ConflictResolution } from "./store/sync.js";
10
+ export type { SyncState, SyncResult, SyncConflict, ConflictResolution, } from "./store/sync.js";
11
11
  export { parseArgs, VERSION, printSetup } from "./cli.js";
12
12
  export type { CliArgs } from "./cli.js";
13
13
  export type { StoreAdapter } from "./store/adapter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA2GA,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,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,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,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,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":";AAsLA,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,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,YAAY,EACV,oBAAoB,EACpB,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,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
@@ -7,6 +7,7 @@ import { CloudStore } from "./store/cloud.js";
7
7
  import { HybridStore } from "./store/hybrid.js";
8
8
  import { SQLiteStore } from "./store/sqlite.js";
9
9
  import { getDbPath } from "./store/paths.js";
10
+ import { clearCredentials, deviceLogin, getStoredCredentials, } from "./auth/device-login.js";
10
11
  function createStore(args) {
11
12
  const apiUrl = args.cloud || process.env.BRAIN_API_URL;
12
13
  const syncEnabled = args.sync || process.env.BRAIN_SYNC === "true";
@@ -43,19 +44,66 @@ async function main() {
43
44
  process.stdout.write(printSetup(args.setup));
44
45
  process.exit(0);
45
46
  }
47
+ if (args.login) {
48
+ const apiUrl = args.cloud || process.env.BRAIN_API_URL;
49
+ if (!apiUrl) {
50
+ process.stderr.write("Error: --cloud <url> or BRAIN_API_URL is required for login.\n");
51
+ process.stderr.write("Usage: npx @brain-protocol/mcp --login --cloud https://brain.api.vauban.tech\n");
52
+ process.exit(1);
53
+ }
54
+ if (!apiUrl.startsWith("https://") && !apiUrl.includes("localhost")) {
55
+ process.stderr.write("Warning: --cloud URL is not HTTPS. Credentials may be transmitted insecurely.\n");
56
+ }
57
+ await deviceLogin(apiUrl);
58
+ process.exit(0);
59
+ }
60
+ if (args.logout) {
61
+ const removed = clearCredentials();
62
+ process.stdout.write(removed ? "Credentials removed.\n" : "No stored credentials found.\n");
63
+ process.exit(0);
64
+ }
65
+ // Auto-load stored credentials if no explicit API key provided
66
+ if (!args.apiKey && !process.env.BRAIN_API_KEY) {
67
+ const stored = getStoredCredentials();
68
+ if (stored) {
69
+ args.apiKey = stored.api_key;
70
+ if (!args.cloud && !process.env.BRAIN_API_URL) {
71
+ args.cloud = stored.api_url;
72
+ }
73
+ }
74
+ }
46
75
  if (args.check) {
47
76
  const store = createStore(args);
48
77
  await store.initialize();
49
78
  const stats = await store.getStats();
50
79
  const mode = store.mode;
51
80
  const location = mode === "local"
52
- ? (args.dbPath || getDbPath())
53
- : (args.cloud || process.env.BRAIN_API_URL);
81
+ ? args.dbPath || getDbPath()
82
+ : args.cloud || process.env.BRAIN_API_URL;
54
83
  process.stdout.write(`brain-protocol MCP v${VERSION}\n`);
55
84
  process.stdout.write(`Mode: ${mode} (${location})\n`);
56
85
  process.stdout.write(`Tools: ${toolDefinitions.length}\n`);
57
86
  process.stdout.write(`Entries: ${stats.totalEntries} | Edges: ${stats.totalEdges}\n`);
58
87
  process.stdout.write(`Status: ready\n`);
88
+ // Cloud mode: show tier + quota if available
89
+ if (store.getUsageDashboard) {
90
+ try {
91
+ const dashboard = (await store.getUsageDashboard());
92
+ if (dashboard?.quota) {
93
+ const { tier, today_used, daily_limit } = dashboard.quota;
94
+ const remaining = daily_limit != null && today_used != null
95
+ ? daily_limit - today_used
96
+ : null;
97
+ const usagePart = today_used != null && daily_limit != null
98
+ ? ` | Today: ${today_used}/${daily_limit} (${remaining} remaining)`
99
+ : "";
100
+ process.stdout.write(`Tier: ${tier ?? "unknown"}${usagePart}\n`);
101
+ }
102
+ }
103
+ catch {
104
+ // Non-fatal: billing info may be unavailable
105
+ }
106
+ }
59
107
  await store.close();
60
108
  process.exit(0);
61
109
  }
@@ -63,8 +111,8 @@ async function main() {
63
111
  await store.initialize();
64
112
  const mode = store.mode;
65
113
  const location = mode === "local"
66
- ? (args.dbPath || getDbPath())
67
- : (args.cloud || process.env.BRAIN_API_URL);
114
+ ? args.dbPath || getDbPath()
115
+ : args.cloud || process.env.BRAIN_API_URL;
68
116
  process.stderr.write(`brain-protocol MCP server v${VERSION} (${mode} mode: ${location})\n`);
69
117
  const server = createMCPServer(store, VERSION);
70
118
  const transport = new StdioServerTransport();
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,SAAU,GAAG,MAAM,CA4B9E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,OAAO,SAAU,GAChB,MAAM,CA+CR"}
package/dist/server.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
2
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
3
+ import { BrainAPIError } from "@brain-protocol/sdk";
3
4
  import { handleTool, toolDefinitions } from "./tools/index.js";
4
- export function createMCPServer(store, version = "0.6.3") {
5
+ export function createMCPServer(store, version = "0.7.0") {
5
6
  const server = new Server({ name: "brain-protocol", version }, { capabilities: { tools: {} } });
6
7
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
7
8
  tools: toolDefinitions,
@@ -15,6 +16,20 @@ export function createMCPServer(store, version = "0.6.3") {
15
16
  };
16
17
  }
17
18
  catch (error) {
19
+ // Surface structured quota/rate-limit responses from the API
20
+ if (error instanceof BrainAPIError &&
21
+ (error.status === 402 || error.status === 429)) {
22
+ try {
23
+ const body = JSON.parse(error.body);
24
+ return {
25
+ content: [{ type: "text", text: JSON.stringify(body, null, 2) }],
26
+ isError: true,
27
+ };
28
+ }
29
+ catch {
30
+ /* body not JSON — fall through to generic handler */
31
+ }
32
+ }
18
33
  const message = error instanceof Error ? error.message : "Unknown error";
19
34
  return {
20
35
  content: [{ type: "text", text: JSON.stringify({ error: message }) }],
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEnG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,OAAO,GAAG,OAAO;IACpE,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EACnC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC,CAAC;YACtF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,OAAO,GAAG,OAAO;IAEjB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EACnC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,KAAK,EACL,IAAI,EACJ,CAAC,IAAI,IAAI,EAAE,CAA4B,CACxC,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,IACE,KAAK,YAAY,aAAa;gBAC9B,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,EAC9C,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;wBAChE,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -29,6 +29,12 @@ export interface StoreAdapter {
29
29
  getUsageDashboard?(days?: number): Promise<unknown>;
30
30
  getOnboardingStatus?(): Promise<unknown>;
31
31
  runOnboardingSetup?(): Promise<unknown>;
32
+ getSubscription?(): Promise<unknown>;
33
+ listBrains?(): Promise<unknown>;
34
+ createBrain?(input: {
35
+ name: string;
36
+ description?: string;
37
+ }): Promise<unknown>;
32
38
  bulkArchive?(input: BulkArchiveInput): Promise<BulkArchiveResult>;
33
39
  getArchiveStats?(): Promise<ArchiveStats>;
34
40
  archiveGizaProof(input: GizaProofInput): Promise<KnowledgeEntry>;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/store/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/store/adapter.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,11 @@ export declare class CloudStore implements StoreAdapter {
11
11
  private client;
12
12
  private breaker;
13
13
  private retryConfig;
14
+ private defaultBrainId;
15
+ private apiKey;
14
16
  constructor(baseUrl: string, apiKey?: string, options?: CloudStoreOptions);
17
+ /** The personal brain ID resolved during auto-onboarding */
18
+ get personalBrainId(): string | null;
15
19
  /** Circuit breaker state for observability */
16
20
  get circuitState(): import("./circuit-breaker.js").CircuitState;
17
21
  /** Execute fn with retry + circuit breaker */
@@ -52,5 +56,13 @@ export declare class CloudStore implements StoreAdapter {
52
56
  total: number;
53
57
  }>;
54
58
  linkProofToEntry(proofEntryId: string, targetEntryId: string, edgeType?: string): Promise<KnowledgeEdge>;
59
+ getSubscription(): Promise<unknown>;
60
+ listBrains(): Promise<unknown>;
61
+ createBrain(input: {
62
+ name: string;
63
+ description?: string;
64
+ }): Promise<unknown>;
65
+ /** Inject defaultBrainId into options if no brain_id is specified */
66
+ private withDefaultBrain;
55
67
  }
56
68
  //# sourceMappingURL=cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/store/cloud.ts"],"names":[],"mappings":"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"}