volute 0.23.0 → 0.25.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.
Files changed (88) hide show
  1. package/README.md +5 -5
  2. package/dist/{activity-events-3WHHCOBB.js → activity-events-4O37J7PD.js} +2 -2
  3. package/dist/api.d.ts +419 -19
  4. package/dist/{channel-BOOMFULW.js → channel-HZOSHGNF.js} +1 -1
  5. package/dist/{chunk-QIXPN3OO.js → chunk-2767L2RZ.js} +5 -5
  6. package/dist/{chunk-SGPEZ32F.js → chunk-33XAVCS4.js} +16 -0
  7. package/dist/{chunk-VT5QODNE.js → chunk-3AIBT4TW.js} +4 -3
  8. package/dist/{chunk-A4S7H6G6.js → chunk-BFK6SOEJ.js} +1 -1
  9. package/dist/{chunk-RK627D57.js → chunk-BOTQ25QT.js} +3 -3
  10. package/dist/{chunk-TFS25FIM.js → chunk-DG7TO7EE.js} +31 -3
  11. package/dist/{chunk-HGCDWKSP.js → chunk-E7GOKNOT.js} +1 -1
  12. package/dist/{chunk-ISWZ6QUK.js → chunk-PMX4EIJK.js} +804 -115
  13. package/dist/{chunk-M5CNKH4J.js → chunk-SHSWYG2J.js} +7 -7
  14. package/dist/{chunk-XLC342FO.js → chunk-SIAG3QMM.js} +14 -1
  15. package/dist/{chunk-KFI7TQJ6.js → chunk-TRQEV3CD.js} +9 -5
  16. package/dist/{chunk-JG4CCJOA.js → chunk-ZSH4G2P5.js} +33 -15
  17. package/dist/cli.js +18 -18
  18. package/dist/{cloud-sync-PI47U2LT.js → cloud-sync-PPBBJDY6.js} +7 -9
  19. package/dist/{connector-PYT5UOTZ.js → connector-M6XFI6GM.js} +1 -1
  20. package/dist/{create-WIDA3M4C.js → create-VDQJER52.js} +1 -1
  21. package/dist/{daemon-client-ZHCDL4RS.js → daemon-client-JOVQZ52X.js} +1 -1
  22. package/dist/{daemon-restart-RMGOOGPE.js → daemon-restart-FDNOZEAD.js} +5 -5
  23. package/dist/daemon.js +1047 -981
  24. package/dist/{delete-LOIANQGD.js → delete-2MRR4JX5.js} +1 -1
  25. package/dist/{down-WSUASL5E.js → down-674SX2IZ.js} +2 -2
  26. package/dist/{env-4PHIHTF4.js → env-2FPOZK37.js} +1 -1
  27. package/dist/{export-XD6PJBQP.js → export-IKFAPRAO.js} +1 -1
  28. package/dist/{file-X4L5TTOL.js → file-KT3UIQM3.js} +1 -1
  29. package/dist/{history-HTEKRNID.js → history-46WZN5CN.js} +1 -1
  30. package/dist/{import-EAXTHHXL.js → import-TH26J76F.js} +2 -2
  31. package/dist/{log-SRO5Q6AD.js → log-6SGSSR3D.js} +1 -1
  32. package/dist/{logs-HNTNNBDW.js → logs-HRBONI5I.js} +1 -1
  33. package/dist/{merge-B6SYTGI7.js → merge-KSFJKX6T.js} +1 -1
  34. package/dist/{message-delivery-FHV4NO2F.js → message-delivery-XMGV3FUM.js} +6 -6
  35. package/dist/{mind-BTXR5B3C.js → mind-YVWAHL2A.js} +17 -17
  36. package/dist/{mind-activity-tracker-PGC3DBJ7.js → mind-activity-tracker-NMDDEV3K.js} +3 -3
  37. package/dist/{mind-manager-KMY4GA2J.js → mind-manager-4NDNAYAB.js} +2 -2
  38. package/dist/{mind-sleep-FWRBIFBS.js → mind-sleep-GHPTSAYN.js} +1 -1
  39. package/dist/{mind-wake-LJK2YU5X.js → mind-wake-BJDJFMDF.js} +1 -1
  40. package/dist/{package-CUBJ4PKS.js → package-3HF5MXU2.js} +2 -1
  41. package/dist/{pages-YSTRWJR4.js → pages-Y6DRWUOJ.js} +1 -1
  42. package/dist/{publish-BZNHKUUK.js → publish-EEKTZBHW.js} +1 -1
  43. package/dist/{pull-GRQAXM2E.js → pull-D32SPFVU.js} +1 -1
  44. package/dist/{restart-CIDAKGG2.js → restart-5BMNV7KU.js} +1 -1
  45. package/dist/{schedule-NLR3LZLY.js → schedule-YEFDLVMJ.js} +1 -1
  46. package/dist/{seed-3H2MRREW.js → seed-6FEKB3YC.js} +1 -1
  47. package/dist/{send-RP2TA7SG.js → send-IISDYFCL.js} +1 -1
  48. package/dist/{service-7BFXDI6J.js → service-FASYWLTC.js} +3 -3
  49. package/dist/{setup-SSIIXQMI.js → setup-BMLM2UTK.js} +1 -1
  50. package/dist/{shared-2OGT3NSL.js → shared-LWMNTTZN.js} +4 -4
  51. package/dist/{skill-Q2Y6PQ3L.js → skill-T3EMR6IR.js} +11 -3
  52. package/dist/skills/imagegen/SKILL.md +37 -0
  53. package/dist/skills/imagegen/references/INSTALL.md +13 -0
  54. package/dist/skills/imagegen/scripts/imagegen.ts +136 -0
  55. package/dist/skills/resonance/SKILL.md +73 -0
  56. package/dist/skills/resonance/assets/default-config.json +21 -0
  57. package/dist/skills/resonance/references/INSTALL.md +23 -0
  58. package/dist/skills/resonance/scripts/resonance.ts +1250 -0
  59. package/dist/skills/volute-mind/SKILL.md +94 -4
  60. package/dist/{sleep-manager-2TMQ65E4.js → sleep-manager-RKTFZPD3.js} +6 -6
  61. package/dist/{sprout-UKCYBGHK.js → sprout-QJVGJDSH.js} +3 -3
  62. package/dist/{start-JR6CUUWF.js → start-C7XITZ5O.js} +1 -1
  63. package/dist/{status-5XDGYHKP.js → status-LYS4NUOZ.js} +1 -1
  64. package/dist/{status-H2MKDN6L.js → status-SIRPLEZC.js} +4 -3
  65. package/dist/{stop-VKPGK25U.js → stop-CVKBSLXY.js} +1 -1
  66. package/dist/tailscale-AJ4VL5XK.js +49 -0
  67. package/dist/{up-Z5JRG2M2.js → up-CJ26KQLN.js} +2 -2
  68. package/dist/{update-ELC6MEUT.js → update-7XCZMYBT.js} +7 -7
  69. package/dist/{upgrade-GXW2EQY3.js → upgrade-7RUIXGOO.js} +1 -1
  70. package/dist/{variant-A4I7PHXS.js → variant-UGREB4G5.js} +4 -4
  71. package/dist/{version-notify-LKABEJSA.js → version-notify-AZQMC32A.js} +6 -6
  72. package/dist/web-assets/assets/index-CGPSVu19.js +69 -0
  73. package/dist/web-assets/assets/index-V_rNDsM8.css +1 -0
  74. package/dist/web-assets/favicon.png +0 -0
  75. package/dist/web-assets/index.html +5 -4
  76. package/dist/web-assets/logo.png +0 -0
  77. package/drizzle/0013_user_profiles.sql +3 -0
  78. package/drizzle/0014_conversation_reads.sql +7 -0
  79. package/drizzle/meta/0013_snapshot.json +7 -0
  80. package/drizzle/meta/_journal.json +14 -0
  81. package/package.json +2 -1
  82. package/templates/_base/home/public/.gitkeep +0 -0
  83. package/templates/_base/src/lib/format-prefix.ts +18 -2
  84. package/templates/_base/src/lib/routing.ts +2 -1
  85. package/templates/_base/src/lib/types.ts +8 -0
  86. package/dist/chunk-G5KRTU2F.js +0 -76
  87. package/dist/web-assets/assets/index-CZ26vsyY.js +0 -69
  88. package/dist/web-assets/assets/index-DyyAvJwW.css +0 -1
package/README.md CHANGED
@@ -26,14 +26,14 @@ volute mind start atlas
26
26
  volute send @atlas "hey, what can you do?"
27
27
  ```
28
28
 
29
- You now have a running AI mind with persistent memory, auto-committing file changes, and session resume across restarts. Open `http://localhost:4200` for the web dashboard.
29
+ You now have a running AI mind with persistent memory, auto-committing file changes, and session resume across restarts. Open `http://localhost:1618` for the web dashboard.
30
30
 
31
31
  ## The daemon
32
32
 
33
33
  One background process runs everything. `volute up` starts it; `volute down` stops it.
34
34
 
35
35
  ```sh
36
- volute up # start (default port 4200)
36
+ volute up # start (default port 1618)
37
37
  volute up --port 8080 # custom port
38
38
  volute down # stop all minds and shut down
39
39
  volute status # check daemon status, version, and minds
@@ -204,7 +204,7 @@ volute env remove API_KEY
204
204
 
205
205
  ## Web dashboard
206
206
 
207
- The daemon serves a web UI at `http://localhost:4200` (or whatever port you chose).
207
+ The daemon serves a web UI at `http://localhost:1618` (or whatever port you chose).
208
208
 
209
209
  - Real-time chat with full tool call visibility
210
210
  - File browser and editor
@@ -250,7 +250,7 @@ Set the model via `home/.config/volute.json` in the mind directory, or the `VOLU
250
250
 
251
251
  ```sh
252
252
  docker build -t volute .
253
- docker run -d -p 4200:4200 -v volute-data:/data -v volute-minds:/minds volute
253
+ docker run -d -p 1618:1618 -v volute-data:/data -v volute-minds:/minds volute
254
254
  ```
255
255
 
256
256
  Or with docker-compose:
@@ -259,7 +259,7 @@ Or with docker-compose:
259
259
  docker compose up -d
260
260
  ```
261
261
 
262
- The container runs with per-mind user isolation enabled — each mind gets its own Linux user, so minds can't see each other's files. Open `http://localhost:4200` for the web dashboard.
262
+ The container runs with per-mind user isolation enabled — each mind gets its own Linux user, so minds can't see each other's files. Open `http://localhost:1618` for the web dashboard.
263
263
 
264
264
  ### Bare metal (Linux / Raspberry Pi)
265
265
 
@@ -3,8 +3,8 @@ import {
3
3
  broadcast,
4
4
  publish,
5
5
  subscribe
6
- } from "./chunk-A4S7H6G6.js";
7
- import "./chunk-SGPEZ32F.js";
6
+ } from "./chunk-BFK6SOEJ.js";
7
+ import "./chunk-33XAVCS4.js";
8
8
  import "./chunk-YUIHSKR6.js";
9
9
  import "./chunk-B2CPS4QU.js";
10
10
  import "./chunk-K3NQKI34.js";
package/dist/api.d.ts CHANGED
@@ -127,11 +127,49 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
127
127
  id: number;
128
128
  username: string;
129
129
  role: "pending" | "mind" | "user" | "admin";
130
+ display_name: string | null;
131
+ description: string | null;
132
+ avatar: string | null;
130
133
  };
131
134
  outputFormat: "json";
132
135
  status: hono_utils_http_status.ContentfulStatusCode;
133
136
  };
134
137
  };
138
+ } & {
139
+ "/avatars/:filename": {
140
+ $get: {
141
+ input: {
142
+ param: {
143
+ filename: string;
144
+ };
145
+ };
146
+ output: {
147
+ error: string;
148
+ };
149
+ outputFormat: "json";
150
+ status: 400;
151
+ } | {
152
+ input: {
153
+ param: {
154
+ filename: string;
155
+ };
156
+ };
157
+ output: {
158
+ error: string;
159
+ };
160
+ outputFormat: "json";
161
+ status: 404;
162
+ } | {
163
+ input: {
164
+ param: {
165
+ filename: string;
166
+ };
167
+ };
168
+ output: NonSharedBuffer;
169
+ outputFormat: "body";
170
+ status: 200;
171
+ };
172
+ };
135
173
  }) | hono_types.MergeSchemaPath<{
136
174
  "/users": {
137
175
  $get: {
@@ -148,6 +186,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
148
186
  username: string;
149
187
  role: "admin" | "user" | "pending" | "mind";
150
188
  user_type: "brain" | "mind";
189
+ display_name: string | null;
190
+ description: string | null;
191
+ avatar: string | null;
151
192
  created_at: string;
152
193
  }[];
153
194
  outputFormat: "json";
@@ -163,6 +204,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
163
204
  username: string;
164
205
  role: "admin" | "user" | "pending" | "mind";
165
206
  user_type: "brain" | "mind";
207
+ display_name: string | null;
208
+ description: string | null;
209
+ avatar: string | null;
166
210
  created_at: string;
167
211
  }[];
168
212
  outputFormat: "json";
@@ -189,6 +233,166 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
189
233
  };
190
234
  outputFormat: "json";
191
235
  status: 403;
236
+ } | {
237
+ input: {
238
+ param: {
239
+ id: string;
240
+ };
241
+ };
242
+ output: {
243
+ error: string;
244
+ };
245
+ outputFormat: "json";
246
+ status: 400;
247
+ } | {
248
+ input: {
249
+ param: {
250
+ id: string;
251
+ };
252
+ };
253
+ output: {
254
+ ok: true;
255
+ };
256
+ outputFormat: "json";
257
+ status: hono_utils_http_status.ContentfulStatusCode;
258
+ };
259
+ };
260
+ } & {
261
+ "/users/:id/role": {
262
+ $post: {
263
+ input: {
264
+ json: {
265
+ role: "user" | "admin";
266
+ };
267
+ } & {
268
+ param: {
269
+ id: string;
270
+ };
271
+ };
272
+ output: {
273
+ error: string;
274
+ };
275
+ outputFormat: "json";
276
+ status: 403;
277
+ } | {
278
+ input: {
279
+ json: {
280
+ role: "user" | "admin";
281
+ };
282
+ } & {
283
+ param: {
284
+ id: string;
285
+ };
286
+ };
287
+ output: {
288
+ error: string;
289
+ };
290
+ outputFormat: "json";
291
+ status: 400;
292
+ } | {
293
+ input: {
294
+ json: {
295
+ role: "user" | "admin";
296
+ };
297
+ } & {
298
+ param: {
299
+ id: string;
300
+ };
301
+ };
302
+ output: {
303
+ ok: true;
304
+ };
305
+ outputFormat: "json";
306
+ status: hono_utils_http_status.ContentfulStatusCode;
307
+ };
308
+ };
309
+ } & {
310
+ "/users/:id/profile": {
311
+ $put: {
312
+ input: {
313
+ json: {
314
+ display_name?: string | null | undefined;
315
+ description?: string | null | undefined;
316
+ };
317
+ } & {
318
+ param: {
319
+ id: string;
320
+ };
321
+ };
322
+ output: {
323
+ error: string;
324
+ };
325
+ outputFormat: "json";
326
+ status: 403;
327
+ } | {
328
+ input: {
329
+ json: {
330
+ display_name?: string | null | undefined;
331
+ description?: string | null | undefined;
332
+ };
333
+ } & {
334
+ param: {
335
+ id: string;
336
+ };
337
+ };
338
+ output: {
339
+ error: string;
340
+ };
341
+ outputFormat: "json";
342
+ status: 400;
343
+ } | {
344
+ input: {
345
+ json: {
346
+ display_name?: string | null | undefined;
347
+ description?: string | null | undefined;
348
+ };
349
+ } & {
350
+ param: {
351
+ id: string;
352
+ };
353
+ };
354
+ output: {
355
+ ok: true;
356
+ };
357
+ outputFormat: "json";
358
+ status: hono_utils_http_status.ContentfulStatusCode;
359
+ };
360
+ };
361
+ } & {
362
+ "/users/:id": {
363
+ $delete: {
364
+ input: {
365
+ param: {
366
+ id: string;
367
+ };
368
+ };
369
+ output: {
370
+ error: string;
371
+ };
372
+ outputFormat: "json";
373
+ status: 403;
374
+ } | {
375
+ input: {
376
+ param: {
377
+ id: string;
378
+ };
379
+ };
380
+ output: {
381
+ error: string;
382
+ };
383
+ outputFormat: "json";
384
+ status: 400;
385
+ } | {
386
+ input: {
387
+ param: {
388
+ id: string;
389
+ };
390
+ };
391
+ output: {
392
+ error: string;
393
+ };
394
+ outputFormat: "json";
395
+ status: 404;
192
396
  } | {
193
397
  input: {
194
398
  param: {
@@ -230,6 +434,52 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
230
434
  status: hono_utils_http_status.ContentfulStatusCode;
231
435
  };
232
436
  };
437
+ } & {
438
+ "/profile": {
439
+ $put: {
440
+ input: {
441
+ json: {
442
+ display_name?: string | null | undefined;
443
+ description?: string | null | undefined;
444
+ };
445
+ };
446
+ output: {
447
+ ok: true;
448
+ };
449
+ outputFormat: "json";
450
+ status: hono_utils_http_status.ContentfulStatusCode;
451
+ };
452
+ };
453
+ } & {
454
+ "/avatar": {
455
+ $post: {
456
+ input: {};
457
+ output: {
458
+ error: string;
459
+ };
460
+ outputFormat: "json";
461
+ status: 400;
462
+ } | {
463
+ input: {};
464
+ output: {
465
+ ok: true;
466
+ avatar: string;
467
+ };
468
+ outputFormat: "json";
469
+ status: hono_utils_http_status.ContentfulStatusCode;
470
+ };
471
+ };
472
+ } & {
473
+ "/avatar": {
474
+ $delete: {
475
+ input: {};
476
+ output: {
477
+ ok: true;
478
+ };
479
+ outputFormat: "json";
480
+ status: hono_utils_http_status.ContentfulStatusCode;
481
+ };
482
+ };
233
483
  }, "/">, "/api/auth"> | hono_types.MergeSchemaPath<{
234
484
  "/restart": {
235
485
  $post: {
@@ -272,6 +522,113 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
272
522
  status: hono_utils_http_status.ContentfulStatusCode;
273
523
  };
274
524
  };
525
+ } & {
526
+ "/register": {
527
+ $post: {
528
+ input: {
529
+ json: {
530
+ name: string;
531
+ };
532
+ };
533
+ output: {
534
+ error: string;
535
+ };
536
+ outputFormat: "json";
537
+ status: 400;
538
+ } | {
539
+ input: {
540
+ json: {
541
+ name: string;
542
+ };
543
+ };
544
+ output: {
545
+ error: string;
546
+ };
547
+ outputFormat: "json";
548
+ status: 502;
549
+ } | {
550
+ input: {
551
+ json: {
552
+ name: string;
553
+ };
554
+ };
555
+ output: {
556
+ error: string;
557
+ };
558
+ outputFormat: "json";
559
+ status: 500;
560
+ } | {
561
+ input: {
562
+ json: {
563
+ name: string;
564
+ };
565
+ };
566
+ output: {
567
+ system: string;
568
+ };
569
+ outputFormat: "json";
570
+ status: hono_utils_http_status.ContentfulStatusCode;
571
+ };
572
+ };
573
+ } & {
574
+ "/login": {
575
+ $post: {
576
+ input: {
577
+ json: {
578
+ key: string;
579
+ };
580
+ };
581
+ output: {
582
+ error: string;
583
+ };
584
+ outputFormat: "json";
585
+ status: 400;
586
+ } | {
587
+ input: {
588
+ json: {
589
+ key: string;
590
+ };
591
+ };
592
+ output: {
593
+ error: string;
594
+ };
595
+ outputFormat: "json";
596
+ status: 502;
597
+ } | {
598
+ input: {
599
+ json: {
600
+ key: string;
601
+ };
602
+ };
603
+ output: {
604
+ error: string;
605
+ };
606
+ outputFormat: "json";
607
+ status: 500;
608
+ } | {
609
+ input: {
610
+ json: {
611
+ key: string;
612
+ };
613
+ };
614
+ output: {
615
+ system: string;
616
+ };
617
+ outputFormat: "json";
618
+ status: hono_utils_http_status.ContentfulStatusCode;
619
+ };
620
+ };
621
+ } & {
622
+ "/logout": {
623
+ $post: {
624
+ input: {};
625
+ output: {
626
+ ok: true;
627
+ };
628
+ outputFormat: "json";
629
+ status: hono_utils_http_status.ContentfulStatusCode;
630
+ };
631
+ };
275
632
  }, "/api/system"> | hono_types.MergeSchemaPath<{
276
633
  "/update": {
277
634
  $get: {
@@ -2285,6 +2642,15 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2285
2642
  }, "/api/minds"> | hono_types.MergeSchemaPath<{
2286
2643
  "/:name/avatar": {
2287
2644
  $get: {
2645
+ input: {
2646
+ param: {
2647
+ name: string;
2648
+ };
2649
+ };
2650
+ output: NonSharedBuffer;
2651
+ outputFormat: "body";
2652
+ status: 200;
2653
+ } | {
2288
2654
  input: {
2289
2655
  param: {
2290
2656
  name: string;
@@ -2317,15 +2683,6 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2317
2683
  };
2318
2684
  outputFormat: "json";
2319
2685
  status: 500;
2320
- } | {
2321
- input: {
2322
- param: {
2323
- name: string;
2324
- };
2325
- };
2326
- output: NonSharedBuffer;
2327
- outputFormat: "body";
2328
- status: 200;
2329
2686
  };
2330
2687
  };
2331
2688
  } & {
@@ -2357,9 +2714,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2357
2714
  $get: {
2358
2715
  input: {
2359
2716
  param: {
2360
- name: string;
2361
- } & {
2362
2717
  filename: string;
2718
+ } & {
2719
+ name: string;
2363
2720
  };
2364
2721
  };
2365
2722
  output: {
@@ -2370,9 +2727,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2370
2727
  } | {
2371
2728
  input: {
2372
2729
  param: {
2373
- name: string;
2374
- } & {
2375
2730
  filename: string;
2731
+ } & {
2732
+ name: string;
2376
2733
  };
2377
2734
  };
2378
2735
  output: {
@@ -2383,9 +2740,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2383
2740
  } | {
2384
2741
  input: {
2385
2742
  param: {
2386
- name: string;
2387
- } & {
2388
2743
  filename: string;
2744
+ } & {
2745
+ name: string;
2389
2746
  };
2390
2747
  };
2391
2748
  output: {
@@ -2968,10 +3325,12 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2968
3325
  };
2969
3326
  };
2970
3327
  output: {
2971
- error: string;
3328
+ installNotes: string | null;
3329
+ npmInstalled: string[];
3330
+ ok: true;
2972
3331
  };
2973
3332
  outputFormat: "json";
2974
- status: 400;
3333
+ status: hono_utils_http_status.ContentfulStatusCode;
2975
3334
  } | {
2976
3335
  input: {
2977
3336
  json: {
@@ -2983,10 +3342,10 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
2983
3342
  };
2984
3343
  };
2985
3344
  output: {
2986
- ok: true;
3345
+ error: string;
2987
3346
  };
2988
3347
  outputFormat: "json";
2989
- status: hono_utils_http_status.ContentfulStatusCode;
3348
+ status: 400;
2990
3349
  };
2991
3350
  };
2992
3351
  } & {
@@ -3288,6 +3647,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3288
3647
  username: string;
3289
3648
  userType: "brain" | "mind";
3290
3649
  role: "owner" | "member";
3650
+ displayName?: string | null | undefined;
3651
+ description?: string | null | undefined;
3652
+ avatar?: string | null | undefined;
3291
3653
  }[];
3292
3654
  outputFormat: "json";
3293
3655
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -3588,6 +3950,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3588
3950
  username: string;
3589
3951
  userType: "brain" | "mind";
3590
3952
  role: "owner" | "member";
3953
+ displayName?: string | null | undefined;
3954
+ description?: string | null | undefined;
3955
+ avatar?: string | null | undefined;
3591
3956
  }[];
3592
3957
  lastMessage?: {
3593
3958
  role: "user" | "assistant";
@@ -3842,6 +4207,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3842
4207
  username: string;
3843
4208
  userType: "brain" | "mind";
3844
4209
  role: "owner" | "member";
4210
+ displayName?: string | null | undefined;
4211
+ description?: string | null | undefined;
4212
+ avatar?: string | null | undefined;
3845
4213
  }[];
3846
4214
  outputFormat: "json";
3847
4215
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -3979,6 +4347,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3979
4347
  username: string;
3980
4348
  userType: "brain" | "mind";
3981
4349
  role: "owner" | "member";
4350
+ displayName?: string | null | undefined;
4351
+ description?: string | null | undefined;
4352
+ avatar?: string | null | undefined;
3982
4353
  }[];
3983
4354
  lastMessage?: {
3984
4355
  role: "user" | "assistant";
@@ -4064,6 +4435,9 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
4064
4435
  username: string;
4065
4436
  userType: "brain" | "mind";
4066
4437
  role: "owner" | "member";
4438
+ displayName?: string | null | undefined;
4439
+ description?: string | null | undefined;
4440
+ avatar?: string | null | undefined;
4067
4441
  }[];
4068
4442
  outputFormat: "json";
4069
4443
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -4116,6 +4490,32 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
4116
4490
  status: 400;
4117
4491
  };
4118
4492
  };
4493
+ } & {
4494
+ "/:id/read": {
4495
+ $post: {
4496
+ input: {
4497
+ param: {
4498
+ id: string;
4499
+ };
4500
+ };
4501
+ output: {
4502
+ ok: true;
4503
+ };
4504
+ outputFormat: "json";
4505
+ status: hono_utils_http_status.ContentfulStatusCode;
4506
+ } | {
4507
+ input: {
4508
+ param: {
4509
+ id: string;
4510
+ };
4511
+ };
4512
+ output: {
4513
+ error: string;
4514
+ };
4515
+ outputFormat: "json";
4516
+ status: 404;
4517
+ };
4518
+ };
4119
4519
  } & {
4120
4520
  "/:id": {
4121
4521
  $delete: {
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-D424ZQGI.js";
12
12
  import {
13
13
  daemonFetch
14
- } from "./chunk-KFI7TQJ6.js";
14
+ } from "./chunk-TRQEV3CD.js";
15
15
  import "./chunk-B2CPS4QU.js";
16
16
  import "./chunk-K3NQKI34.js";
17
17
 
@@ -5,7 +5,7 @@ import {
5
5
  pollHealthDown,
6
6
  readDaemonConfig,
7
7
  stopService
8
- } from "./chunk-VT5QODNE.js";
8
+ } from "./chunk-3AIBT4TW.js";
9
9
  import {
10
10
  voluteHome
11
11
  } from "./chunk-B2CPS4QU.js";
@@ -18,12 +18,12 @@ async function stopDaemon() {
18
18
  const pidPath = resolve(home, "daemon.pid");
19
19
  if (!existsSync(pidPath)) {
20
20
  const configPath = resolve(home, "daemon.json");
21
- let port = 4200;
21
+ let port = 1618;
22
22
  let hostname = "localhost";
23
23
  if (existsSync(configPath)) {
24
24
  try {
25
25
  const config = JSON.parse(readFileSync(configPath, "utf-8"));
26
- port = config.port ?? 4200;
26
+ port = config.port ?? 1618;
27
27
  hostname = config.hostname || "localhost";
28
28
  } catch {
29
29
  }
@@ -113,8 +113,8 @@ async function run(_args) {
113
113
  console.error(`Failed to stop service: ${err instanceof Error ? err.message : err}`);
114
114
  process.exit(1);
115
115
  }
116
- const { hostname, port } = readDaemonConfig();
117
- if (await pollHealthDown(hostname, port)) {
116
+ const config = readDaemonConfig();
117
+ if (await pollHealthDown("127.0.0.1", config.internalPort ?? config.port)) {
118
118
  console.log("Daemon stopped.");
119
119
  } else {
120
120
  console.error("Service stopped but daemon may still be responding.");