@dtoolkit/dbrain 0.3.1 → 0.4.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 +39 -7
- package/dist/cli/compact.d.ts +10 -0
- package/dist/cli/compact.d.ts.map +1 -0
- package/dist/cli/compact.js +44 -0
- package/dist/cli/compact.js.map +1 -0
- package/dist/cli/configure.d.ts +2 -0
- package/dist/cli/configure.d.ts.map +1 -0
- package/dist/cli/configure.js +126 -0
- package/dist/cli/configure.js.map +1 -0
- package/dist/cli/index.js +63 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +18 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/keys.d.ts +11 -0
- package/dist/cli/keys.d.ts.map +1 -0
- package/dist/cli/keys.js +85 -0
- package/dist/cli/keys.js.map +1 -0
- package/dist/cli/link.d.ts +12 -0
- package/dist/cli/link.d.ts.map +1 -0
- package/dist/cli/link.js +118 -0
- package/dist/cli/link.js.map +1 -0
- package/dist/cli/start.d.ts.map +1 -1
- package/dist/cli/start.js +31 -1
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +23 -1
- package/dist/cli/status.js.map +1 -1
- package/dist/core/compact.d.ts +18 -0
- package/dist/core/compact.d.ts.map +1 -0
- package/dist/core/compact.js +117 -0
- package/dist/core/compact.js.map +1 -0
- package/dist/core/config.d.ts +23 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +31 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/connections.d.ts +9 -0
- package/dist/core/connections.d.ts.map +1 -0
- package/dist/core/connections.js +25 -0
- package/dist/core/connections.js.map +1 -0
- package/dist/core/db.d.ts.map +1 -1
- package/dist/core/db.js +36 -0
- package/dist/core/db.js.map +1 -1
- package/dist/dashboard/index.html +250 -26
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +216 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +30 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/compact.d.ts +3 -0
- package/dist/server/routes/compact.d.ts.map +1 -0
- package/dist/server/routes/compact.js +29 -0
- package/dist/server/routes/compact.js.map +1 -0
- package/dist/server/routes/entities.d.ts.map +1 -1
- package/dist/server/routes/entities.js +6 -1
- package/dist/server/routes/entities.js.map +1 -1
- package/dist/server/routes/facts.d.ts.map +1 -1
- package/dist/server/routes/facts.js +55 -2
- package/dist/server/routes/facts.js.map +1 -1
- package/dist/server/routes/health.d.ts.map +1 -1
- package/dist/server/routes/health.js +46 -2
- package/dist/server/routes/health.js.map +1 -1
- package/dist/server/routes/keys.d.ts +3 -0
- package/dist/server/routes/keys.d.ts.map +1 -0
- package/dist/server/routes/keys.js +73 -0
- package/dist/server/routes/keys.js.map +1 -0
- package/dist/server/routes/permissions.d.ts +3 -0
- package/dist/server/routes/permissions.d.ts.map +1 -0
- package/dist/server/routes/permissions.js +9 -0
- package/dist/server/routes/permissions.js.map +1 -0
- package/dist/server/routes/proxy.d.ts +3 -0
- package/dist/server/routes/proxy.d.ts.map +1 -0
- package/dist/server/routes/proxy.js +37 -0
- package/dist/server/routes/proxy.js.map +1 -0
- package/dist/server/routes/search.d.ts.map +1 -1
- package/dist/server/routes/search.js +113 -41
- package/dist/server/routes/search.js.map +1 -1
- package/dist/server/routes/workspace.d.ts.map +1 -1
- package/dist/server/routes/workspace.js +5 -0
- package/dist/server/routes/workspace.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -12,12 +12,32 @@
|
|
|
12
12
|
|
|
13
13
|
Install it once, connect every AI you use — Claude Code at home, Claude Code at work, Gemini on your phone. All share the same identity, the same memories, the same knowledge.
|
|
14
14
|
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
15
|
+
```mermaid
|
|
16
|
+
graph LR
|
|
17
|
+
subgraph Clients["Your AIs"]
|
|
18
|
+
home["🏠 Claude Code<br/><small>home</small>"]
|
|
19
|
+
work["💼 Claude Code<br/><small>work</small>"]
|
|
20
|
+
mobile["📱 Gemini<br/><small>mobile</small>"]
|
|
21
|
+
server["🖥️ OpenClaw<br/><small>server</small>"]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
home -- MCP --> personal
|
|
25
|
+
work -- MCP --> personal
|
|
26
|
+
mobile -- REST --> personal
|
|
27
|
+
server -- REST --> personal
|
|
28
|
+
|
|
29
|
+
subgraph Federation["Federation"]
|
|
30
|
+
personal["dbrain<br/><strong>personal</strong><br/><small>identity + memory + knowledge</small>"]
|
|
31
|
+
shared["dbrain<br/><strong>shared / team</strong><br/><small>team knowledge + API keys</small>"]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
personal -- "federated recall" --> shared
|
|
35
|
+
personal -- "share facts" --> shared
|
|
36
|
+
|
|
37
|
+
style personal fill:#2563eb,color:#fff,stroke:#1e40af
|
|
38
|
+
style shared fill:#7c3aed,color:#fff,stroke:#5b21b6
|
|
39
|
+
style Clients fill:#f8fafc,color:#1e293b,stroke:#e2e8f0
|
|
40
|
+
style Federation fill:#f8fafc,color:#1e293b,stroke:#e2e8f0
|
|
21
41
|
```
|
|
22
42
|
|
|
23
43
|
## Install
|
|
@@ -61,6 +81,7 @@ The brain has 4 layers:
|
|
|
61
81
|
| **Conversations** | Raw chat history from every AI session | `conversations` + `messages` tables |
|
|
62
82
|
| **Knowledge** | Structured facts organized by PARA | `entities` + `facts` tables with hot/warm/cold tiers |
|
|
63
83
|
| **Recall** | Full-text search over all facts | FTS5 with OR logic for multi-language queries |
|
|
84
|
+
| **Federation** | Personal brains connect to shared team brains | Per-user API keys, federated recall, manual fact push |
|
|
64
85
|
|
|
65
86
|
### Memory tiers
|
|
66
87
|
|
|
@@ -85,6 +106,7 @@ Memories fade if you don't use them — like a real brain.
|
|
|
85
106
|
| `log` | Send conversation messages for storage |
|
|
86
107
|
| `wake_up` | Full identity load |
|
|
87
108
|
| `overview` | Brain stats |
|
|
109
|
+
| `share` | Push a fact to a connected shared brain |
|
|
88
110
|
|
|
89
111
|
## REST API
|
|
90
112
|
|
|
@@ -99,8 +121,12 @@ All endpoints require `Authorization: Bearer <token>` except `/health`.
|
|
|
99
121
|
| `POST` | `/entities/:id/facts` | Add facts to an entity |
|
|
100
122
|
| `PATCH` | `/facts/:id/access` | Bump a memory (keep it hot) |
|
|
101
123
|
| `GET/POST` | `/conversations` | Chat history |
|
|
102
|
-
| `POST` | `/search` | Full-text search
|
|
124
|
+
| `POST` | `/search` | Full-text search (supports `federated: true`) |
|
|
103
125
|
| `GET` | `/memory/summary` | Overview: entities x tiers |
|
|
126
|
+
| `GET` | `/connections` | List connected brains with health status |
|
|
127
|
+
| `POST/GET/DELETE` | `/keys` | API key management (shared brains only) |
|
|
128
|
+
| `PATCH` | `/keys/:id` | Update API key permissions |
|
|
129
|
+
| `POST` | `/facts/:id/share` | Push a fact to a connected brain |
|
|
104
130
|
|
|
105
131
|
## CLI commands
|
|
106
132
|
|
|
@@ -110,6 +136,10 @@ All endpoints require `Authorization: Bearer <token>` except `/health`.
|
|
|
110
136
|
| `dbrain start [path]` | Server | Start the API server + dashboard |
|
|
111
137
|
| `dbrain connect <client> [url]` | Client | Connect a client to a running brain |
|
|
112
138
|
| `dbrain status [path]` | Server | Check brain status |
|
|
139
|
+
| `dbrain link <url>` | Client | Connect to a shared brain |
|
|
140
|
+
| `dbrain unlink <name>` | Client | Disconnect from a shared brain |
|
|
141
|
+
| `dbrain connections` | Client | List connections with health status |
|
|
142
|
+
| `dbrain keys <action>` | Server | Manage per-user API keys (shared brains) |
|
|
113
143
|
|
|
114
144
|
## Dashboard
|
|
115
145
|
|
|
@@ -140,6 +170,8 @@ For non-interactive setup (Docker, CI):
|
|
|
140
170
|
| `DBRAIN_AGENT_NAME` | `dBrain` | AI identity name |
|
|
141
171
|
| `DBRAIN_OWNER_NAME` | `Human` | Owner name |
|
|
142
172
|
| `DBRAIN_TIMEZONE` | Auto-detected | Owner timezone |
|
|
173
|
+
| `DBRAIN_BRAIN_NAME` | from identity | Brain display name |
|
|
174
|
+
| `DBRAIN_BRAIN_TYPE` | `personal` | `personal` or `shared` |
|
|
143
175
|
|
|
144
176
|
## License
|
|
145
177
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface CompactCliOptions {
|
|
2
|
+
path?: string;
|
|
3
|
+
dedup?: boolean;
|
|
4
|
+
tiers?: boolean;
|
|
5
|
+
dryRun?: boolean;
|
|
6
|
+
threshold?: string;
|
|
7
|
+
limit?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function compactCommand(opts: CompactCliOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/cli/compact.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,iBAAiB,iBAkC3D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import pc from 'picocolors';
|
|
4
|
+
import { compact } from '../core/compact.js';
|
|
5
|
+
import { loadConfig } from '../core/config.js';
|
|
6
|
+
import { createDatabase } from '../core/db.js';
|
|
7
|
+
function resolveDataPath(pathArg) {
|
|
8
|
+
if (pathArg)
|
|
9
|
+
return resolve(pathArg.replace('~', homedir()));
|
|
10
|
+
return resolve(homedir(), '.dbrain');
|
|
11
|
+
}
|
|
12
|
+
export async function compactCommand(opts) {
|
|
13
|
+
const dataPath = resolveDataPath(opts.path);
|
|
14
|
+
const config = loadConfig(dataPath);
|
|
15
|
+
const db = createDatabase(config);
|
|
16
|
+
const steps = [];
|
|
17
|
+
if (opts.dedup)
|
|
18
|
+
steps.push('dedup');
|
|
19
|
+
if (opts.tiers)
|
|
20
|
+
steps.push('tiers');
|
|
21
|
+
if (steps.length === 0)
|
|
22
|
+
steps.push('dedup', 'tiers');
|
|
23
|
+
const threshold = opts.threshold ? parseFloat(opts.threshold) : config.compact.threshold;
|
|
24
|
+
const limit = opts.limit ? parseInt(opts.limit, 10) : config.compact.limit;
|
|
25
|
+
console.log(`\n${pc.cyan('dbrain')} compact${opts.dryRun ? pc.dim(' (dry run)') : ''}\n`);
|
|
26
|
+
console.log(` ${pc.dim('Threshold')}: ${threshold}`);
|
|
27
|
+
console.log(` ${pc.dim('Batch limit')}: ${limit}`);
|
|
28
|
+
console.log(` ${pc.dim('Steps')}: ${steps.join(', ')}\n`);
|
|
29
|
+
const result = compact({
|
|
30
|
+
db,
|
|
31
|
+
tiers: config.tiers,
|
|
32
|
+
threshold,
|
|
33
|
+
limit,
|
|
34
|
+
dryRun: opts.dryRun,
|
|
35
|
+
steps,
|
|
36
|
+
onProgress: (msg) => console.log(` ${pc.dim('>')} ${msg}`),
|
|
37
|
+
});
|
|
38
|
+
console.log(`\n${pc.green('Results')}:`);
|
|
39
|
+
console.log(` ${pc.green('Duplicates archived')}: ${result.factsDeduped}`);
|
|
40
|
+
console.log(` ${pc.green('Facts compacted')}: ${result.factsProcessed}`);
|
|
41
|
+
console.log(` ${pc.green('Tiers updated')}: ${result.tiersUpdated}\n`);
|
|
42
|
+
db.close();
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=compact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/cli/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/cli/configure.ts"],"names":[],"mappings":"AAcA,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,iBA8H/C"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { resolve, join } from 'node:path';
|
|
4
|
+
import * as p from '@clack/prompts';
|
|
5
|
+
import pc from 'picocolors';
|
|
6
|
+
import { loadConfig } from '../core/config.js';
|
|
7
|
+
function resolveDataPath(pathArg) {
|
|
8
|
+
if (pathArg)
|
|
9
|
+
return resolve(pathArg.replace('~', homedir()));
|
|
10
|
+
return resolve(homedir(), '.dbrain');
|
|
11
|
+
}
|
|
12
|
+
export async function configure(pathArg) {
|
|
13
|
+
const dataPath = resolveDataPath(pathArg);
|
|
14
|
+
let config;
|
|
15
|
+
try {
|
|
16
|
+
config = loadConfig(dataPath);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
console.log(`${pc.red('Not initialized.')} Run: ${pc.cyan('dbrain init')}`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
p.intro(pc.cyan('dbrain') + ' configure');
|
|
23
|
+
const answers = await p.group({
|
|
24
|
+
port: () => p.text({
|
|
25
|
+
message: 'API port',
|
|
26
|
+
initialValue: String(config.port),
|
|
27
|
+
validate: (v) => {
|
|
28
|
+
const n = parseInt(v ?? '', 10);
|
|
29
|
+
if (isNaN(n) || n < 1 || n > 65535)
|
|
30
|
+
return 'Invalid port';
|
|
31
|
+
},
|
|
32
|
+
}),
|
|
33
|
+
host: () => p.select({
|
|
34
|
+
message: 'Bind address',
|
|
35
|
+
options: [
|
|
36
|
+
{ value: '0.0.0.0', label: '0.0.0.0 — All interfaces (accessible from network)' },
|
|
37
|
+
{ value: '127.0.0.1', label: '127.0.0.1 — Localhost only' },
|
|
38
|
+
],
|
|
39
|
+
initialValue: config.host,
|
|
40
|
+
}),
|
|
41
|
+
brainName: () => p.text({
|
|
42
|
+
message: 'Brain name',
|
|
43
|
+
initialValue: config.brainName || 'dBrain',
|
|
44
|
+
}),
|
|
45
|
+
hotDays: () => p.text({
|
|
46
|
+
message: 'Hot tier: days threshold',
|
|
47
|
+
initialValue: String(config.tiers.hotDays),
|
|
48
|
+
validate: (v) => {
|
|
49
|
+
const n = parseInt(v ?? '', 10);
|
|
50
|
+
if (isNaN(n) || n < 1)
|
|
51
|
+
return 'Must be a positive number';
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
hotMinAccess: () => p.text({
|
|
55
|
+
message: 'Hot tier: minimum access count',
|
|
56
|
+
initialValue: String(config.tiers.hotMinAccess),
|
|
57
|
+
validate: (v) => {
|
|
58
|
+
const n = parseInt(v ?? '', 10);
|
|
59
|
+
if (isNaN(n) || n < 1)
|
|
60
|
+
return 'Must be a positive number';
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
warmDays: () => p.text({
|
|
64
|
+
message: 'Warm tier: days threshold',
|
|
65
|
+
initialValue: String(config.tiers.warmDays),
|
|
66
|
+
validate: (v) => {
|
|
67
|
+
const n = parseInt(v ?? '', 10);
|
|
68
|
+
if (isNaN(n) || n < 1)
|
|
69
|
+
return 'Must be a positive number';
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
compactThreshold: () => p.text({
|
|
73
|
+
message: 'Compact: similarity threshold (0-1)',
|
|
74
|
+
initialValue: String(config.compact.threshold),
|
|
75
|
+
validate: (v) => {
|
|
76
|
+
const n = parseFloat(v ?? '');
|
|
77
|
+
if (isNaN(n) || n < 0 || n > 1)
|
|
78
|
+
return 'Must be between 0 and 1';
|
|
79
|
+
},
|
|
80
|
+
}),
|
|
81
|
+
compactLimit: () => p.text({
|
|
82
|
+
message: 'Compact: batch limit',
|
|
83
|
+
initialValue: String(config.compact.limit),
|
|
84
|
+
validate: (v) => {
|
|
85
|
+
const n = parseInt(v ?? '', 10);
|
|
86
|
+
if (isNaN(n) || n < 1)
|
|
87
|
+
return 'Must be a positive number';
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
compactSchedule: () => p.text({
|
|
91
|
+
message: 'Compact: cron schedule (empty to disable)',
|
|
92
|
+
initialValue: config.compact.schedule || '',
|
|
93
|
+
placeholder: '0 3 * * *',
|
|
94
|
+
}),
|
|
95
|
+
}, {
|
|
96
|
+
onCancel: () => {
|
|
97
|
+
p.cancel('Configuration cancelled.');
|
|
98
|
+
process.exit(0);
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
const raw = JSON.parse(readFileSync(join(dataPath, 'config.json'), 'utf-8'));
|
|
102
|
+
const updated = {
|
|
103
|
+
...raw,
|
|
104
|
+
port: parseInt(answers.port, 10),
|
|
105
|
+
host: answers.host,
|
|
106
|
+
brainName: answers.brainName,
|
|
107
|
+
tiers: {
|
|
108
|
+
hotDays: parseInt(answers.hotDays, 10),
|
|
109
|
+
hotMinAccess: parseInt(answers.hotMinAccess, 10),
|
|
110
|
+
warmDays: parseInt(answers.warmDays, 10),
|
|
111
|
+
},
|
|
112
|
+
compact: {
|
|
113
|
+
...raw.compact,
|
|
114
|
+
threshold: parseFloat(answers.compactThreshold),
|
|
115
|
+
limit: parseInt(answers.compactLimit, 10),
|
|
116
|
+
schedule: answers.compactSchedule || undefined,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
if (JSON.stringify(updated) === JSON.stringify(raw)) {
|
|
120
|
+
p.outro(pc.dim('No changes.'));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
writeFileSync(join(dataPath, 'config.json'), JSON.stringify(updated, null, 2) + '\n', 'utf-8');
|
|
124
|
+
p.outro(pc.green('Config updated. Restart the server to apply changes.'));
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/cli/configure.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -51,5 +51,68 @@ program
|
|
|
51
51
|
const { status } = await import('./status.js');
|
|
52
52
|
await status(path);
|
|
53
53
|
});
|
|
54
|
+
program
|
|
55
|
+
.command('keys')
|
|
56
|
+
.description('Manage API keys (shared brains only)')
|
|
57
|
+
.argument('<action>', 'create | list | revoke')
|
|
58
|
+
.option('--url <url>', 'Brain URL (or DBRAIN_URL env)')
|
|
59
|
+
.option('--token <token>', 'Admin token (or DBRAIN_TOKEN env)')
|
|
60
|
+
.option('--user-id <userId>', 'User ID (create)')
|
|
61
|
+
.option('--user-name <userName>', 'User display name (create)')
|
|
62
|
+
.option('--permissions <perms>', 'read | write | read+write (create, default: read+write)')
|
|
63
|
+
.option('--key-id <keyId>', 'Key ID (revoke)')
|
|
64
|
+
.action(async (action, opts) => {
|
|
65
|
+
const { keys } = await import('./keys.js');
|
|
66
|
+
await keys(action, opts);
|
|
67
|
+
});
|
|
68
|
+
program
|
|
69
|
+
.command('compact')
|
|
70
|
+
.description('Compact the brain (deduplicate facts, recalculate tiers)')
|
|
71
|
+
.option('--path <path>', 'Data path')
|
|
72
|
+
.option('--dedup', 'Deduplicate cold facts only')
|
|
73
|
+
.option('--tiers', 'Recalculate tiers only')
|
|
74
|
+
.option('--dry-run', 'Preview without writing')
|
|
75
|
+
.option('--threshold <n>', 'Similarity threshold (0-1, default 0.85)')
|
|
76
|
+
.option('--limit <n>', 'Max facts per batch (default 1000)')
|
|
77
|
+
.action(async (opts) => {
|
|
78
|
+
const { compactCommand } = await import('./compact.js');
|
|
79
|
+
await compactCommand(opts);
|
|
80
|
+
});
|
|
81
|
+
program
|
|
82
|
+
.command('configure')
|
|
83
|
+
.description('Reconfigure the brain (interactive)')
|
|
84
|
+
.argument('[path]', 'Data path')
|
|
85
|
+
.action(async (path) => {
|
|
86
|
+
const { configure } = await import('./configure.js');
|
|
87
|
+
await configure(path);
|
|
88
|
+
});
|
|
89
|
+
program
|
|
90
|
+
.command('link')
|
|
91
|
+
.description('Link to a shared brain')
|
|
92
|
+
.argument('<url>', 'Shared brain URL')
|
|
93
|
+
.option('--token <token>', 'Access token for the shared brain')
|
|
94
|
+
.option('--name <name>', 'Connection name (defaults to remote brain name)')
|
|
95
|
+
.option('--path <path>', 'Local brain data path')
|
|
96
|
+
.action(async (url, opts) => {
|
|
97
|
+
const { link } = await import('./link.js');
|
|
98
|
+
await link(url, opts);
|
|
99
|
+
});
|
|
100
|
+
program
|
|
101
|
+
.command('unlink')
|
|
102
|
+
.description('Remove a connection to a shared brain')
|
|
103
|
+
.argument('<name>', 'Connection name')
|
|
104
|
+
.option('--path <path>', 'Local brain data path')
|
|
105
|
+
.action(async (name, opts) => {
|
|
106
|
+
const { unlink } = await import('./link.js');
|
|
107
|
+
await unlink(name, opts);
|
|
108
|
+
});
|
|
109
|
+
program
|
|
110
|
+
.command('connections')
|
|
111
|
+
.description('List connected brains with health status')
|
|
112
|
+
.option('--path <path>', 'Local brain data path')
|
|
113
|
+
.action(async (opts) => {
|
|
114
|
+
const { connections } = await import('./link.js');
|
|
115
|
+
await connections(opts);
|
|
116
|
+
});
|
|
54
117
|
program.parse();
|
|
55
118
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAElF,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,MAAM,GAAG;;;;;;kCAMmB,CAAC;AAEnC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,qDAAqD,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC;AAEzJ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAErE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC/B,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,IAAkC,EAAE,EAAE;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,SAAS,CAAC;KACtB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,UAAU,EAAE,uDAAuD,CAAC;KAC7E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;KAC9B,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,GAAuB,EAAE,IAAwB,EAAE,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oBAAoB,CAAC;KACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAmBA,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAmBA,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,iBAqMhF"}
|
package/dist/cli/init.js
CHANGED
|
@@ -51,6 +51,14 @@ export async function init(pathArg, flags) {
|
|
|
51
51
|
message: 'Access token (leave default to auto-generate)',
|
|
52
52
|
initialValue: generateToken(),
|
|
53
53
|
}),
|
|
54
|
+
brainType: () => p.select({
|
|
55
|
+
message: 'Brain type?',
|
|
56
|
+
options: [
|
|
57
|
+
{ value: 'personal', label: 'Personal — Your own brain' },
|
|
58
|
+
{ value: 'shared', label: 'Shared — Team brain (issues per-user API keys)' },
|
|
59
|
+
],
|
|
60
|
+
initialValue: 'personal',
|
|
61
|
+
}),
|
|
54
62
|
agentName: () => p.text({
|
|
55
63
|
message: "What's my name? (your AI's identity)",
|
|
56
64
|
initialValue: 'dBrain',
|
|
@@ -83,7 +91,11 @@ export async function init(pathArg, flags) {
|
|
|
83
91
|
port,
|
|
84
92
|
host: answers.host,
|
|
85
93
|
token: answers.token,
|
|
94
|
+
brainName: answers.agentName,
|
|
95
|
+
brainType: answers.brainType,
|
|
96
|
+
connections: [],
|
|
86
97
|
tiers: { hotDays: 7, hotMinAccess: 10, warmDays: 30 },
|
|
98
|
+
compact: { threshold: 0.85, limit: 1000 },
|
|
87
99
|
};
|
|
88
100
|
const s = p.spinner();
|
|
89
101
|
s.start('Creating data directory');
|
|
@@ -142,6 +154,8 @@ function initNonInteractive(pathArg) {
|
|
|
142
154
|
const host = process.env.DBRAIN_HOST || '0.0.0.0';
|
|
143
155
|
const token = process.env.DBRAIN_TOKEN || generateToken();
|
|
144
156
|
const agentName = process.env.DBRAIN_AGENT_NAME || 'dBrain';
|
|
157
|
+
const brainName = process.env.DBRAIN_BRAIN_NAME || agentName;
|
|
158
|
+
const brainType = (process.env.DBRAIN_BRAIN_TYPE || 'personal');
|
|
145
159
|
const ownerName = process.env.DBRAIN_OWNER_NAME || 'Human';
|
|
146
160
|
const ownerTimezone = process.env.DBRAIN_TIMEZONE || Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
147
161
|
if (existsSync(join(dataPath, 'config.json'))) {
|
|
@@ -153,7 +167,11 @@ function initNonInteractive(pathArg) {
|
|
|
153
167
|
port,
|
|
154
168
|
host,
|
|
155
169
|
token,
|
|
170
|
+
brainName,
|
|
171
|
+
brainType,
|
|
172
|
+
connections: [],
|
|
156
173
|
tiers: { hotDays: 7, hotMinAccess: 10, warmDays: 30 },
|
|
174
|
+
compact: { threshold: 0.85, limit: 1000 },
|
|
157
175
|
};
|
|
158
176
|
mkdirSync(dataPath, { recursive: true });
|
|
159
177
|
writeFileSync(join(dataPath, 'config.json'), JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface KeysOptions {
|
|
2
|
+
url?: string;
|
|
3
|
+
token?: string;
|
|
4
|
+
userId?: string;
|
|
5
|
+
userName?: string;
|
|
6
|
+
permissions?: string;
|
|
7
|
+
keyId?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function keys(action: string, opts: KeysOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/cli/keys.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBD,wBAAsB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,iBA2F3D"}
|
package/dist/cli/keys.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import pc from 'picocolors';
|
|
3
|
+
async function apiCall(url, token, method, path, body) {
|
|
4
|
+
const headers = { Authorization: `Bearer ${token}` };
|
|
5
|
+
if (body)
|
|
6
|
+
headers['Content-Type'] = 'application/json';
|
|
7
|
+
const res = await fetch(`${url}${path}`, {
|
|
8
|
+
method,
|
|
9
|
+
headers,
|
|
10
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
11
|
+
});
|
|
12
|
+
const data = await res.json();
|
|
13
|
+
return { ok: res.ok, status: res.status, data };
|
|
14
|
+
}
|
|
15
|
+
export async function keys(action, opts) {
|
|
16
|
+
const url = opts.url || process.env.DBRAIN_URL;
|
|
17
|
+
const token = opts.token || process.env.DBRAIN_TOKEN;
|
|
18
|
+
if (!url || !token) {
|
|
19
|
+
p.log.error(`${pc.red('Missing --url and --token (or DBRAIN_URL / DBRAIN_TOKEN env vars)')}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
if (action === 'create') {
|
|
23
|
+
const userId = opts.userId;
|
|
24
|
+
const userName = opts.userName;
|
|
25
|
+
if (!userId || !userName) {
|
|
26
|
+
p.log.error(`${pc.red('--user-id and --user-name are required for create')}`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const { ok, data } = await apiCall(url, token, 'POST', '/keys', {
|
|
30
|
+
userId,
|
|
31
|
+
userName,
|
|
32
|
+
permissions: opts.permissions || 'read+write',
|
|
33
|
+
});
|
|
34
|
+
if (!ok) {
|
|
35
|
+
p.log.error(`${pc.red('Failed to create key:')} ${JSON.stringify(data)}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
const key = data;
|
|
39
|
+
p.log.success(`${pc.green('Key created')}`);
|
|
40
|
+
p.note([
|
|
41
|
+
`ID: ${pc.dim(key.id)}`,
|
|
42
|
+
`User: ${pc.green(userName)} (${userId})`,
|
|
43
|
+
`Permissions: ${pc.green(key.permissions)}`,
|
|
44
|
+
`Token: ${pc.green(key.token)}`,
|
|
45
|
+
``,
|
|
46
|
+
`${pc.dim('Save this token — it will not be shown again.')}`,
|
|
47
|
+
].join('\n'), 'API Key');
|
|
48
|
+
}
|
|
49
|
+
else if (action === 'list') {
|
|
50
|
+
const { ok, data } = await apiCall(url, token, 'GET', '/keys');
|
|
51
|
+
if (!ok) {
|
|
52
|
+
p.log.error(`${pc.red('Failed to list keys:')} ${JSON.stringify(data)}`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const keys = data;
|
|
56
|
+
if (keys.length === 0) {
|
|
57
|
+
p.log.info('No API keys found.');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
p.log.info(`${pc.bold(`${keys.length} key(s)`)}\n`);
|
|
61
|
+
for (const k of keys) {
|
|
62
|
+
const status = k.status === 'active' ? pc.green('active') : pc.red('revoked');
|
|
63
|
+
const lastUsed = k.lastUsed ? pc.dim(k.lastUsed) : pc.dim('never');
|
|
64
|
+
console.log(` ${pc.dim(k.id)} ${k.userName} (${k.userId}) ${k.permissions} ${status} last: ${lastUsed} ${pc.dim(k.tokenPreview)}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else if (action === 'revoke') {
|
|
68
|
+
const keyId = opts.keyId;
|
|
69
|
+
if (!keyId) {
|
|
70
|
+
p.log.error(`${pc.red('--key-id is required for revoke')}`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const { ok, data } = await apiCall(url, token, 'DELETE', `/keys/${keyId}`);
|
|
74
|
+
if (!ok) {
|
|
75
|
+
p.log.error(`${pc.red('Failed to revoke key:')} ${JSON.stringify(data)}`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
p.log.success(`${pc.green('Key revoked:')} ${keyId}`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
p.log.error(`${pc.red(`Unknown action: ${action}. Use create, list, or revoke.`)}`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/cli/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function link(url: string, opts: {
|
|
2
|
+
path?: string;
|
|
3
|
+
token?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
}): Promise<void>;
|
|
6
|
+
export declare function unlink(name: string, opts: {
|
|
7
|
+
path?: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
export declare function connections(opts: {
|
|
10
|
+
path?: string;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/cli/link.ts"],"names":[],"mappings":"AAoBA,wBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBA4D7F;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBAoBjE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmCxD"}
|