@hasna/brains 0.0.12 → 0.0.13
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 +23 -159
- package/dist/cli/index.js +14635 -12195
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/pg-migrate.d.ts +14 -0
- package/dist/db/pg-migrate.d.ts.map +1 -0
- package/dist/db/pg-migrations.d.ts +1 -0
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3974 -3201
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4491 -3225
- package/dist/server/index.js +3797 -3161
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,190 +1,54 @@
|
|
|
1
1
|
# @hasna/brains
|
|
2
2
|
|
|
3
|
-
Fine-tuned model tracker and trainer
|
|
3
|
+
Fine-tuned model tracker and trainer — wraps OpenAI + Thinker Labs, gathers training data from todos/mementos/conversations/sessions
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
bun add @hasna/brains # as a library
|
|
9
|
-
bun add -g @hasna/brains # for CLI globally
|
|
10
|
-
```
|
|
5
|
+
[](https://www.npmjs.com/package/@hasna/brains)
|
|
6
|
+
[](LICENSE)
|
|
11
7
|
|
|
12
|
-
|
|
8
|
+
## Install
|
|
13
9
|
|
|
14
10
|
```bash
|
|
15
11
|
npm install -g @hasna/brains
|
|
16
12
|
```
|
|
17
13
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
Set your API keys via the config command (stored in `~/.brains/config.json`):
|
|
14
|
+
## CLI Usage
|
|
21
15
|
|
|
22
16
|
```bash
|
|
23
|
-
brains
|
|
24
|
-
brains config set THINKER_LABS_API_KEY tl-... # optional
|
|
25
|
-
brains config set THINKER_LABS_BASE_URL https://... # optional
|
|
26
|
-
brains config list # view all (values masked)
|
|
17
|
+
brains --help
|
|
27
18
|
```
|
|
28
19
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
## Quickstart
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# 1. Gather training data from all agent memory sources
|
|
39
|
-
brains data gather --source all --limit 500
|
|
40
|
-
|
|
41
|
-
# 2. Preview examples from the gathered file
|
|
42
|
-
brains data preview ~/.brains/datasets/todos-1234567890.jsonl -n 3
|
|
20
|
+
- `brains models list`
|
|
21
|
+
- `brains models show`
|
|
22
|
+
- `brains finetune start`
|
|
23
|
+
- `brains finetune status`
|
|
24
|
+
- `brains data`
|
|
43
25
|
|
|
44
|
-
|
|
45
|
-
brains finetune start --provider openai --base-model gpt-4o-mini-2024-07-18 --name my-model
|
|
46
|
-
|
|
47
|
-
# 4. Watch the job until it completes
|
|
48
|
-
brains finetune watch <job-id> --interval 30
|
|
49
|
-
|
|
50
|
-
# 5. List your tracked models
|
|
51
|
-
brains models list
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## CLI Reference
|
|
55
|
-
|
|
56
|
-
### `brains models`
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
brains models list # list all tracked models
|
|
60
|
-
brains models list --json # as JSON (pipe-friendly)
|
|
61
|
-
brains models show <id> # show full details
|
|
62
|
-
brains models rename <id> <displayName> # set display name
|
|
63
|
-
brains models describe <id> <description> # set description
|
|
64
|
-
brains models tag <id> <tag> # add tag
|
|
65
|
-
brains models untag <id> <tag> # remove tag
|
|
66
|
-
brains models collection <id> <name> # assign to collection
|
|
67
|
-
brains models import <job-id> # import externally created model
|
|
68
|
-
--provider openai # provider (default: openai)
|
|
69
|
-
--name "My Model" # optional display name
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### `brains finetune`
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
brains finetune start # start a fine-tuning job
|
|
76
|
-
--provider openai # required: openai | thinker-labs
|
|
77
|
-
--base-model gpt-4o-mini-2024-07-18 # required: base model
|
|
78
|
-
--name "My Model" # required: display name
|
|
79
|
-
--dataset /path/to/data.jsonl # optional: auto-detects latest if omitted
|
|
80
|
-
|
|
81
|
-
brains finetune status <job-id> # check job status
|
|
82
|
-
--provider openai
|
|
83
|
-
--json
|
|
84
|
-
|
|
85
|
-
brains finetune watch <job-id> # poll until complete
|
|
86
|
-
--provider openai
|
|
87
|
-
--interval 30 # poll interval in seconds (default: 30)
|
|
88
|
-
|
|
89
|
-
brains finetune list # list jobs from provider
|
|
90
|
-
--provider openai
|
|
91
|
-
--json
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### `brains data`
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
brains data gather # gather training data
|
|
98
|
-
--source all # todos|mementos|conversations|sessions|all
|
|
99
|
-
--output ~/.brains/datasets # output directory
|
|
100
|
-
--limit 500 # max examples per source
|
|
101
|
-
|
|
102
|
-
brains data preview <file> # preview JSONL examples
|
|
103
|
-
-n 5 # number of examples to show
|
|
104
|
-
|
|
105
|
-
brains data merge <file1> <file2> ... # merge multiple JSONL files
|
|
106
|
-
--output merged.jsonl
|
|
107
|
-
--no-dedupe # skip deduplication
|
|
108
|
-
|
|
109
|
-
brains data list # list gathered datasets
|
|
110
|
-
--json
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### `brains collections`
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
brains collections list # list collections with model counts
|
|
117
|
-
--json
|
|
118
|
-
brains collections show <name> # list models in a collection
|
|
119
|
-
brains collections rename <old> <new> # rename across all models
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### `brains config`
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
brains config list # show all config (values masked)
|
|
126
|
-
brains config get OPENAI_API_KEY # get a specific value
|
|
127
|
-
brains config set OPENAI_API_KEY sk-... # set a value
|
|
128
|
-
brains config unset OPENAI_API_KEY # remove from config file
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### `brains remove`
|
|
26
|
+
## MCP Server
|
|
132
27
|
|
|
133
28
|
```bash
|
|
134
|
-
brains
|
|
135
|
-
brains remove <id> --type model
|
|
136
|
-
brains remove <id> --type job
|
|
29
|
+
brains-mcp
|
|
137
30
|
```
|
|
138
31
|
|
|
139
|
-
##
|
|
140
|
-
|
|
141
|
-
Use `brains-mcp` as a Claude Code MCP server to manage fine-tuning directly from Claude:
|
|
32
|
+
## REST API
|
|
142
33
|
|
|
143
34
|
```bash
|
|
144
|
-
|
|
35
|
+
brains-serve
|
|
145
36
|
```
|
|
146
37
|
|
|
147
|
-
|
|
38
|
+
## Cloud Sync
|
|
148
39
|
|
|
149
|
-
|
|
40
|
+
This package supports cloud sync via `@hasna/cloud`:
|
|
150
41
|
|
|
151
42
|
```bash
|
|
152
|
-
|
|
153
|
-
|
|
43
|
+
cloud setup
|
|
44
|
+
cloud sync push --service brains
|
|
45
|
+
cloud sync pull --service brains
|
|
154
46
|
```
|
|
155
47
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
| Method | Path | Description |
|
|
159
|
-
|--------|------|-------------|
|
|
160
|
-
| GET | `/health` | Version and status |
|
|
161
|
-
| GET | `/models` | List all models |
|
|
162
|
-
| GET | `/models/:id` | Get model details |
|
|
163
|
-
| PATCH | `/models/:id` | Update name/description/tags/collection |
|
|
164
|
-
| GET | `/jobs` | List all training jobs |
|
|
165
|
-
| GET | `/jobs/:id` | Get job details |
|
|
166
|
-
| GET | `/datasets` | List all gathered datasets |
|
|
167
|
-
| POST | `/datasets/gather` | Trigger gather (`{ sources, limit, output_dir }`) |
|
|
168
|
-
|
|
169
|
-
## Data Storage
|
|
170
|
-
|
|
171
|
-
All data is stored locally:
|
|
172
|
-
|
|
173
|
-
| Path | Contents |
|
|
174
|
-
|------|----------|
|
|
175
|
-
| `~/.brains/brains.db` | SQLite — models, jobs, datasets |
|
|
176
|
-
| `~/.brains/datasets/` | JSONL training files |
|
|
177
|
-
| `~/.brains/config.json` | API keys and settings |
|
|
178
|
-
|
|
179
|
-
## Training Data Sources
|
|
48
|
+
## Data Directory
|
|
180
49
|
|
|
181
|
-
|
|
182
|
-
|--------|-----------|-------------------|
|
|
183
|
-
| `todos` | `~/.todos/todos.db` | Task creation, status update, search examples |
|
|
184
|
-
| `mementos` | `~/.mementos/mementos.db` | Memory recall, save, category search examples |
|
|
185
|
-
| `conversations` | `~/.conversations/messages.db` | Multi-agent conversation windows |
|
|
186
|
-
| `sessions` | `~/.claude/projects/` | Claude Code development session transcripts |
|
|
50
|
+
Data is stored in `~/.hasna/brains/`.
|
|
187
51
|
|
|
188
52
|
## License
|
|
189
53
|
|
|
190
|
-
Apache-2.0
|
|
54
|
+
Apache-2.0 -- see [LICENSE](LICENSE)
|