@hasna/brains 0.0.6 → 0.0.8

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.
Files changed (43) hide show
  1. package/README.md +190 -0
  2. package/dist/cli/index.js +1172 -809
  3. package/dist/db/index.d.ts.map +1 -1
  4. package/dist/index.js +4294 -142
  5. package/dist/lib/config.d.ts +11 -0
  6. package/dist/lib/config.d.ts.map +1 -0
  7. package/dist/lib/gatherers/assistants.d.ts +3 -0
  8. package/dist/lib/gatherers/assistants.d.ts.map +1 -0
  9. package/dist/lib/gatherers/economy.d.ts +3 -0
  10. package/dist/lib/gatherers/economy.d.ts.map +1 -0
  11. package/dist/lib/gatherers/index.d.ts +3 -0
  12. package/dist/lib/gatherers/index.d.ts.map +1 -1
  13. package/dist/lib/gatherers/protocol.d.ts +29 -0
  14. package/dist/lib/gatherers/protocol.d.ts.map +1 -0
  15. package/dist/lib/gatherers/recordings.d.ts +3 -0
  16. package/dist/lib/gatherers/recordings.d.ts.map +1 -0
  17. package/dist/lib/gatherers/registry.d.ts +7 -0
  18. package/dist/lib/gatherers/registry.d.ts.map +1 -0
  19. package/dist/lib/gatherers/researcher.d.ts +3 -0
  20. package/dist/lib/gatherers/researcher.d.ts.map +1 -0
  21. package/dist/lib/gatherers/styles.d.ts +3 -0
  22. package/dist/lib/gatherers/styles.d.ts.map +1 -0
  23. package/dist/lib/gatherers/tickets.d.ts +3 -0
  24. package/dist/lib/gatherers/tickets.d.ts.map +1 -0
  25. package/dist/lib/index.d.ts +3 -0
  26. package/dist/lib/index.d.ts.map +1 -1
  27. package/dist/lib/providers/openai.d.ts +2 -0
  28. package/dist/lib/providers/openai.d.ts.map +1 -1
  29. package/dist/lib/providers/thinker-labs.d.ts +1 -0
  30. package/dist/lib/providers/thinker-labs.d.ts.map +1 -1
  31. package/dist/lib/retry.d.ts +7 -0
  32. package/dist/lib/retry.d.ts.map +1 -0
  33. package/dist/lib/schemas.d.ts +87 -0
  34. package/dist/lib/schemas.d.ts.map +1 -0
  35. package/dist/mcp/index.d.ts.map +1 -1
  36. package/dist/mcp/index.js +4585 -196
  37. package/dist/server/index.d.ts +1 -1
  38. package/dist/server/index.d.ts.map +1 -1
  39. package/dist/server/index.js +4638 -9
  40. package/drizzle/0000_foamy_daimon_hellstrom.sql +36 -0
  41. package/drizzle/meta/0000_snapshot.json +259 -0
  42. package/drizzle/meta/_journal.json +13 -0
  43. package/package.json +6 -2
@@ -0,0 +1,36 @@
1
+ CREATE TABLE `fine_tuned_models` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `base_model` text NOT NULL,
4
+ `name` text NOT NULL,
5
+ `provider` text NOT NULL,
6
+ `status` text DEFAULT 'pending' NOT NULL,
7
+ `fine_tune_job_id` text,
8
+ `display_name` text,
9
+ `description` text,
10
+ `collection` text,
11
+ `tags` text,
12
+ `created_at` integer NOT NULL,
13
+ `updated_at` integer NOT NULL
14
+ );
15
+ --> statement-breakpoint
16
+ CREATE TABLE `training_datasets` (
17
+ `id` text PRIMARY KEY NOT NULL,
18
+ `source` text NOT NULL,
19
+ `file_path` text NOT NULL,
20
+ `example_count` integer NOT NULL,
21
+ `created_at` integer NOT NULL,
22
+ `used_in_job_id` text,
23
+ FOREIGN KEY (`used_in_job_id`) REFERENCES `training_jobs`(`id`) ON UPDATE no action ON DELETE no action
24
+ );
25
+ --> statement-breakpoint
26
+ CREATE TABLE `training_jobs` (
27
+ `id` text PRIMARY KEY NOT NULL,
28
+ `model_id` text NOT NULL,
29
+ `provider` text NOT NULL,
30
+ `status` text NOT NULL,
31
+ `started_at` integer NOT NULL,
32
+ `finished_at` integer,
33
+ `metrics` text,
34
+ `error` text,
35
+ FOREIGN KEY (`model_id`) REFERENCES `fine_tuned_models`(`id`) ON UPDATE no action ON DELETE no action
36
+ );
@@ -0,0 +1,259 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "b5bbf49c-3045-41cf-8fd1-d7d898147767",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "fine_tuned_models": {
8
+ "name": "fine_tuned_models",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "base_model": {
18
+ "name": "base_model",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "name": {
25
+ "name": "name",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "provider": {
32
+ "name": "provider",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "status": {
39
+ "name": "status",
40
+ "type": "text",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "autoincrement": false,
44
+ "default": "'pending'"
45
+ },
46
+ "fine_tune_job_id": {
47
+ "name": "fine_tune_job_id",
48
+ "type": "text",
49
+ "primaryKey": false,
50
+ "notNull": false,
51
+ "autoincrement": false
52
+ },
53
+ "display_name": {
54
+ "name": "display_name",
55
+ "type": "text",
56
+ "primaryKey": false,
57
+ "notNull": false,
58
+ "autoincrement": false
59
+ },
60
+ "description": {
61
+ "name": "description",
62
+ "type": "text",
63
+ "primaryKey": false,
64
+ "notNull": false,
65
+ "autoincrement": false
66
+ },
67
+ "collection": {
68
+ "name": "collection",
69
+ "type": "text",
70
+ "primaryKey": false,
71
+ "notNull": false,
72
+ "autoincrement": false
73
+ },
74
+ "tags": {
75
+ "name": "tags",
76
+ "type": "text",
77
+ "primaryKey": false,
78
+ "notNull": false,
79
+ "autoincrement": false
80
+ },
81
+ "created_at": {
82
+ "name": "created_at",
83
+ "type": "integer",
84
+ "primaryKey": false,
85
+ "notNull": true,
86
+ "autoincrement": false
87
+ },
88
+ "updated_at": {
89
+ "name": "updated_at",
90
+ "type": "integer",
91
+ "primaryKey": false,
92
+ "notNull": true,
93
+ "autoincrement": false
94
+ }
95
+ },
96
+ "indexes": {},
97
+ "foreignKeys": {},
98
+ "compositePrimaryKeys": {},
99
+ "uniqueConstraints": {},
100
+ "checkConstraints": {}
101
+ },
102
+ "training_datasets": {
103
+ "name": "training_datasets",
104
+ "columns": {
105
+ "id": {
106
+ "name": "id",
107
+ "type": "text",
108
+ "primaryKey": true,
109
+ "notNull": true,
110
+ "autoincrement": false
111
+ },
112
+ "source": {
113
+ "name": "source",
114
+ "type": "text",
115
+ "primaryKey": false,
116
+ "notNull": true,
117
+ "autoincrement": false
118
+ },
119
+ "file_path": {
120
+ "name": "file_path",
121
+ "type": "text",
122
+ "primaryKey": false,
123
+ "notNull": true,
124
+ "autoincrement": false
125
+ },
126
+ "example_count": {
127
+ "name": "example_count",
128
+ "type": "integer",
129
+ "primaryKey": false,
130
+ "notNull": true,
131
+ "autoincrement": false
132
+ },
133
+ "created_at": {
134
+ "name": "created_at",
135
+ "type": "integer",
136
+ "primaryKey": false,
137
+ "notNull": true,
138
+ "autoincrement": false
139
+ },
140
+ "used_in_job_id": {
141
+ "name": "used_in_job_id",
142
+ "type": "text",
143
+ "primaryKey": false,
144
+ "notNull": false,
145
+ "autoincrement": false
146
+ }
147
+ },
148
+ "indexes": {},
149
+ "foreignKeys": {
150
+ "training_datasets_used_in_job_id_training_jobs_id_fk": {
151
+ "name": "training_datasets_used_in_job_id_training_jobs_id_fk",
152
+ "tableFrom": "training_datasets",
153
+ "tableTo": "training_jobs",
154
+ "columnsFrom": [
155
+ "used_in_job_id"
156
+ ],
157
+ "columnsTo": [
158
+ "id"
159
+ ],
160
+ "onDelete": "no action",
161
+ "onUpdate": "no action"
162
+ }
163
+ },
164
+ "compositePrimaryKeys": {},
165
+ "uniqueConstraints": {},
166
+ "checkConstraints": {}
167
+ },
168
+ "training_jobs": {
169
+ "name": "training_jobs",
170
+ "columns": {
171
+ "id": {
172
+ "name": "id",
173
+ "type": "text",
174
+ "primaryKey": true,
175
+ "notNull": true,
176
+ "autoincrement": false
177
+ },
178
+ "model_id": {
179
+ "name": "model_id",
180
+ "type": "text",
181
+ "primaryKey": false,
182
+ "notNull": true,
183
+ "autoincrement": false
184
+ },
185
+ "provider": {
186
+ "name": "provider",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": true,
190
+ "autoincrement": false
191
+ },
192
+ "status": {
193
+ "name": "status",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": true,
197
+ "autoincrement": false
198
+ },
199
+ "started_at": {
200
+ "name": "started_at",
201
+ "type": "integer",
202
+ "primaryKey": false,
203
+ "notNull": true,
204
+ "autoincrement": false
205
+ },
206
+ "finished_at": {
207
+ "name": "finished_at",
208
+ "type": "integer",
209
+ "primaryKey": false,
210
+ "notNull": false,
211
+ "autoincrement": false
212
+ },
213
+ "metrics": {
214
+ "name": "metrics",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": false,
218
+ "autoincrement": false
219
+ },
220
+ "error": {
221
+ "name": "error",
222
+ "type": "text",
223
+ "primaryKey": false,
224
+ "notNull": false,
225
+ "autoincrement": false
226
+ }
227
+ },
228
+ "indexes": {},
229
+ "foreignKeys": {
230
+ "training_jobs_model_id_fine_tuned_models_id_fk": {
231
+ "name": "training_jobs_model_id_fine_tuned_models_id_fk",
232
+ "tableFrom": "training_jobs",
233
+ "tableTo": "fine_tuned_models",
234
+ "columnsFrom": [
235
+ "model_id"
236
+ ],
237
+ "columnsTo": [
238
+ "id"
239
+ ],
240
+ "onDelete": "no action",
241
+ "onUpdate": "no action"
242
+ }
243
+ },
244
+ "compositePrimaryKeys": {},
245
+ "uniqueConstraints": {},
246
+ "checkConstraints": {}
247
+ }
248
+ },
249
+ "views": {},
250
+ "enums": {},
251
+ "_meta": {
252
+ "schemas": {},
253
+ "tables": {},
254
+ "columns": {}
255
+ },
256
+ "internal": {
257
+ "indexes": {}
258
+ }
259
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "sqlite",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "6",
8
+ "when": 1774095566671,
9
+ "tag": "0000_foamy_daimon_hellstrom",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/brains",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Fine-tuned model tracker and trainer — wraps OpenAI + Thinker Labs, gathers training data from todos/mementos/conversations/sessions",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,6 +18,7 @@
18
18
  },
19
19
  "files": [
20
20
  "dist",
21
+ "drizzle",
21
22
  "LICENSE",
22
23
  "README.md"
23
24
  ],
@@ -30,7 +31,10 @@
30
31
  "start": "bun run dist/cli/index.js",
31
32
  "clean": "rm -rf dist",
32
33
  "typecheck": "tsc --noEmit",
33
- "test": "bun test"
34
+ "test": "bun test",
35
+ "db:generate": "bunx drizzle-kit generate",
36
+ "db:migrate": "bunx drizzle-kit migrate",
37
+ "db:studio": "bunx drizzle-kit studio"
34
38
  },
35
39
  "keywords": [
36
40
  "brains",