volute 0.25.0 → 0.26.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 (102) hide show
  1. package/README.md +15 -20
  2. package/dist/{activity-events-4O37J7PD.js → activity-events-ZMBAKLUF.js} +2 -2
  3. package/dist/api.d.ts +477 -6
  4. package/dist/{auth-HM2RSPY7.js → auth-4TV573WE.js} +2 -2
  5. package/dist/{channel-HZOSHGNF.js → channel-ZVZV42UD.js} +3 -3
  6. package/dist/{chunk-SHSWYG2J.js → chunk-2VO7453N.js} +56 -19
  7. package/dist/{chunk-PMX4EIJK.js → chunk-3CFRE2VC.js} +878 -741
  8. package/dist/{chunk-PHHKNGA3.js → chunk-3TV4GLFO.js} +2 -2
  9. package/dist/{chunk-BOTQ25QT.js → chunk-5Y3PBKW6.js} +2 -2
  10. package/dist/{chunk-BFK6SOEJ.js → chunk-J2CO4WEV.js} +1 -1
  11. package/dist/{chunk-ZSH4G2P5.js → chunk-LX22GRG7.js} +10 -13
  12. package/dist/{chunk-E7GOKNOT.js → chunk-NWI2425I.js} +1 -1
  13. package/dist/{chunk-2767L2RZ.js → chunk-OZFKBXD6.js} +1 -1
  14. package/dist/{chunk-RVKR2R7F.js → chunk-SSI47XP2.js} +10 -2
  15. package/dist/chunk-TZKJLDQN.js +78 -0
  16. package/dist/{chunk-DG7TO7EE.js → chunk-USNBKHYG.js} +3 -3
  17. package/dist/chunk-UTL75LP6.js +113 -0
  18. package/dist/{chunk-3AIBT4TW.js → chunk-V63B7DX3.js} +24 -1
  19. package/dist/{chunk-33XAVCS4.js → chunk-WBHMQ5OZ.js} +49 -0
  20. package/dist/{chunk-TRQEV3CD.js → chunk-WGOGUMPO.js} +22 -3
  21. package/dist/chunk-XOXLRRR2.js +176 -0
  22. package/dist/{chunk-JTDFJWI2.js → chunk-YJA7P64S.js} +1 -1
  23. package/dist/chunk-ZYGKG6VC.js +22 -0
  24. package/dist/cli.js +44 -20
  25. package/dist/{cloud-sync-PPBBJDY6.js → cloud-sync-NI2K3C7G.js} +11 -9
  26. package/dist/{connector-M6XFI6GM.js → connector-G722WXAU.js} +4 -4
  27. package/dist/{create-VDQJER52.js → create-4YBRTTJS.js} +1 -1
  28. package/dist/{daemon-client-JOVQZ52X.js → daemon-client-Z7FAJ6JW.js} +1 -1
  29. package/dist/{daemon-restart-FDNOZEAD.js → daemon-restart-BJZ3O4U4.js} +6 -5
  30. package/dist/daemon.js +693 -265
  31. package/dist/{delete-2MRR4JX5.js → delete-27OYNK25.js} +1 -1
  32. package/dist/{down-674SX2IZ.js → down-7UKFMJJZ.js} +4 -4
  33. package/dist/{env-2FPOZK37.js → env-M336ONDP.js} +4 -4
  34. package/dist/{export-IKFAPRAO.js → export-HP4G5DQC.js} +1 -1
  35. package/dist/{file-KT3UIQM3.js → file-HUDKTRAS.js} +3 -3
  36. package/dist/{history-46WZN5CN.js → history-B64GTFTD.js} +3 -3
  37. package/dist/{import-TH26J76F.js → import-XIB7UV4S.js} +1 -1
  38. package/dist/{log-6SGSSR3D.js → log-PBFNILJ4.js} +3 -3
  39. package/dist/{login-UO6AOVEA.js → login-6U7U6BNG.js} +1 -1
  40. package/dist/login-B5E7N7MY.js +46 -0
  41. package/dist/logout-XSJRYS3U.js +39 -0
  42. package/dist/{logs-HRBONI5I.js → logs-3CART7O7.js} +3 -3
  43. package/dist/{merge-KSFJKX6T.js → merge-VK2HSKMA.js} +3 -3
  44. package/dist/{message-delivery-XMGV3FUM.js → message-delivery-MS5JYPZX.js} +10 -8
  45. package/dist/{mind-YVWAHL2A.js → mind-HZ3QSDDJ.js} +17 -17
  46. package/dist/{mind-activity-tracker-NMDDEV3K.js → mind-activity-tracker-4G6FURY2.js} +3 -3
  47. package/dist/{mind-manager-4NDNAYAB.js → mind-manager-VVK67AY3.js} +6 -4
  48. package/dist/{mind-sleep-GHPTSAYN.js → mind-sleep-DTV7L44D.js} +3 -3
  49. package/dist/{mind-wake-BJDJFMDF.js → mind-wake-PFN4FN3T.js} +3 -3
  50. package/dist/notes-37FW2UR2.js +230 -0
  51. package/dist/{package-3HF5MXU2.js → package-VZWLXPHV.js} +2 -1
  52. package/dist/{pages-Y6DRWUOJ.js → pages-DIIT5HMQ.js} +1 -1
  53. package/dist/{publish-EEKTZBHW.js → publish-HQV7YREB.js} +3 -3
  54. package/dist/{pull-D32SPFVU.js → pull-2MB4SK3C.js} +3 -3
  55. package/dist/{register-U2UO6TC4.js → register-EFND67FQ.js} +1 -1
  56. package/dist/{restart-5BMNV7KU.js → restart-CCK7D6TV.js} +3 -3
  57. package/dist/sandbox-EHGFF52K.js +19 -0
  58. package/dist/{schedule-YEFDLVMJ.js → schedule-6F7ELB2M.js} +3 -3
  59. package/dist/{seed-6FEKB3YC.js → seed-E5OQGWX3.js} +1 -1
  60. package/dist/{send-IISDYFCL.js → send-IH6XZKPC.js} +6 -20
  61. package/dist/service-LLBV3R7M.js +122 -0
  62. package/dist/setup-F6TWFYGQ.js +371 -0
  63. package/dist/setup-YGAAIKKZ.js +17 -0
  64. package/dist/{shared-LWMNTTZN.js → shared-UMO4S7CC.js} +4 -4
  65. package/dist/{skill-T3EMR6IR.js → skill-42LGFBQC.js} +3 -3
  66. package/dist/skills/dreaming/SKILL.md +68 -0
  67. package/dist/skills/dreaming/references/INSTALL.md +56 -0
  68. package/dist/skills/dreaming/scripts/dream.ts +289 -0
  69. package/dist/skills/dreaming/scripts/wake-context-dreams.sh +30 -0
  70. package/dist/skills/notes/SKILL.md +34 -0
  71. package/dist/{sleep-manager-RKTFZPD3.js → sleep-manager-EE4NRN2Q.js} +10 -8
  72. package/dist/{sprout-QJVGJDSH.js → sprout-QL74KR2X.js} +5 -5
  73. package/dist/{start-C7XITZ5O.js → start-O5JQASRC.js} +3 -3
  74. package/dist/{status-SIRPLEZC.js → status-FZBEBM7Q.js} +3 -3
  75. package/dist/{status-LYS4NUOZ.js → status-WXD4HXRL.js} +3 -3
  76. package/dist/{stop-CVKBSLXY.js → stop-2SOG5NYF.js} +3 -3
  77. package/dist/up-SDMCSVI3.js +17 -0
  78. package/dist/{update-7XCZMYBT.js → update-5VUDAI3D.js} +6 -6
  79. package/dist/{upgrade-7RUIXGOO.js → upgrade-QCCO33BK.js} +1 -1
  80. package/dist/{variant-UGREB4G5.js → variant-WWLDY6D5.js} +4 -4
  81. package/dist/{version-notify-AZQMC32A.js → version-notify-USFZBWMG.js} +11 -9
  82. package/dist/web-assets/assets/index-CUQ31ieL.js +69 -0
  83. package/dist/web-assets/assets/index-CW8NSl1o.css +1 -0
  84. package/dist/web-assets/index.html +2 -2
  85. package/drizzle/0015_notes.sql +23 -0
  86. package/drizzle/0016_note_reactions_and_replies.sql +15 -0
  87. package/drizzle/meta/_journal.json +14 -0
  88. package/package.json +2 -1
  89. package/templates/_base/.init/.config/hooks/wake-context.sh +7 -0
  90. package/templates/_base/src/lib/startup.ts +8 -0
  91. package/templates/claude/src/agent.ts +51 -1
  92. package/templates/claude/src/server.ts +1 -0
  93. package/templates/pi/package.json.tmpl +1 -0
  94. package/templates/pi/src/agent.ts +48 -1
  95. package/templates/pi/src/lib/subagents.ts +150 -0
  96. package/templates/pi/src/server.ts +1 -0
  97. package/dist/chunk-NWPT4ASZ.js +0 -89
  98. package/dist/service-FASYWLTC.js +0 -247
  99. package/dist/setup-BMLM2UTK.js +0 -230
  100. package/dist/up-CJ26KQLN.js +0 -15
  101. package/dist/web-assets/assets/index-CGPSVu19.js +0 -69
  102. package/dist/web-assets/assets/index-V_rNDsM8.css +0 -1
package/README.md CHANGED
@@ -13,6 +13,9 @@ Built on the [Anthropic Claude Agent SDK](https://github.com/anthropics/claude-a
13
13
  ```sh
14
14
  npm install -g volute
15
15
 
16
+ # First-time setup (required)
17
+ volute setup --name my-system
18
+
16
19
  # Start the daemon (manages all your minds)
17
20
  volute up
18
21
 
@@ -33,10 +36,11 @@ You now have a running AI mind with persistent memory, auto-committing file chan
33
36
  One background process runs everything. `volute up` starts it; `volute down` stops it.
34
37
 
35
38
  ```sh
36
- volute up # start (default port 1618)
37
- volute up --port 8080 # custom port
38
- volute down # stop all minds and shut down
39
- volute status # check daemon status, version, and minds
39
+ volute up # start (default port 1618)
40
+ volute up --port 8080 # custom port
41
+ volute up --no-sandbox # disable sandbox isolation
42
+ volute down # stop all minds and shut down
43
+ volute status # check daemon status, version, and minds
40
44
  ```
41
45
 
42
46
  The daemon handles mind lifecycle, crash recovery (auto-restarts after 3 seconds), connector processes, scheduled messages, and the web dashboard.
@@ -261,33 +265,24 @@ docker compose up -d
261
265
 
262
266
  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
267
 
264
- ### Bare metal (Linux / Raspberry Pi)
265
-
266
- One-liner install on a fresh Linux system (Debian/Ubuntu, RHEL/Fedora, Arch, Alpine, SUSE):
267
-
268
- ```sh
269
- curl -fsSL <install-url> | sudo bash
270
- ```
271
-
272
- Or manually:
268
+ ### Bare metal (Linux / macOS)
273
269
 
274
270
  ```sh
275
271
  npm install -g volute
276
- sudo $(which volute) service install --system --host 0.0.0.0
272
+ sudo volute setup --name my-server --system --host 0.0.0.0
277
273
  ```
278
274
 
279
- > **Note:** The initial `sudo $(which volute)` is needed because `sudo` resets PATH. After setup completes, a wrapper at `/usr/local/bin/volute` is created so `sudo volute` works normally going forward.
275
+ This creates a system-level service with data at `/var/lib/volute`, minds at `/minds`, and per-user isolation (each mind gets its own system user). On Linux, uses systemd; on macOS, uses a LaunchDaemon. Requires root.
280
276
 
281
- This installs a system-level systemd service with data at `/var/lib/volute` and user isolation enabled. Check status with `systemctl status volute`. Uninstall with `sudo volute service uninstall --system --force`.
277
+ > **Note:** After setup, a wrapper at `/usr/local/bin/volute` is created so `sudo volute` works without PATH issues.
282
278
 
283
279
  ### Auto-start (user-level)
284
280
 
285
- On macOS or Linux (without root), use the user-level service installer:
281
+ On macOS or Linux (without root), include `--service` during setup:
286
282
 
287
283
  ```sh
288
- volute service install [--port N] [--host H] # auto-start on login
289
- volute service status # check status
290
- volute service uninstall # remove
284
+ volute setup --name my-system --service # local install + auto-start on login
285
+ volute service status # check status
291
286
  ```
292
287
 
293
288
  ## Development
@@ -3,8 +3,8 @@ import {
3
3
  broadcast,
4
4
  publish,
5
5
  subscribe
6
- } from "./chunk-BFK6SOEJ.js";
7
- import "./chunk-33XAVCS4.js";
6
+ } from "./chunk-J2CO4WEV.js";
7
+ import "./chunk-WBHMQ5OZ.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
@@ -65,7 +65,7 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
65
65
  output: {
66
66
  id: number;
67
67
  username: string;
68
- role: "pending" | "mind" | "user" | "admin";
68
+ role: "pending" | "user" | "admin";
69
69
  };
70
70
  outputFormat: "json";
71
71
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -95,7 +95,8 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
95
95
  output: {
96
96
  id: number;
97
97
  username: string;
98
- role: "pending" | "mind" | "user" | "admin";
98
+ role: "pending" | "user" | "admin";
99
+ sessionId: string;
99
100
  };
100
101
  outputFormat: "json";
101
102
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -126,7 +127,7 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
126
127
  output: {
127
128
  id: number;
128
129
  username: string;
129
- role: "pending" | "mind" | "user" | "admin";
130
+ role: "pending" | "user" | "admin";
130
131
  display_name: string | null;
131
132
  description: string | null;
132
133
  avatar: string | null;
@@ -184,7 +185,7 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
184
185
  output: {
185
186
  id: number;
186
187
  username: string;
187
- role: "admin" | "user" | "pending" | "mind";
188
+ role: "admin" | "user" | "pending";
188
189
  user_type: "brain" | "mind";
189
190
  display_name: string | null;
190
191
  description: string | null;
@@ -202,7 +203,7 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
202
203
  output: {
203
204
  id: number;
204
205
  username: string;
205
- role: "admin" | "user" | "pending" | "mind";
206
+ role: "admin" | "user" | "pending";
206
207
  user_type: "brain" | "mind";
207
208
  display_name: string | null;
208
209
  description: string | null;
@@ -1024,6 +1025,10 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
1024
1025
  wokenByTrigger: boolean;
1025
1026
  voluntaryWakeAt: string | null;
1026
1027
  queuedMessageCount: number;
1028
+ triggerWakeHistory: {
1029
+ channel: string;
1030
+ at: string;
1031
+ }[];
1027
1032
  };
1028
1033
  outputFormat: "json";
1029
1034
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -1923,6 +1928,8 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
1923
1928
  message?: string | undefined;
1924
1929
  script?: string | undefined;
1925
1930
  enabled: boolean;
1931
+ skipWhenSleeping?: boolean | undefined;
1932
+ channel?: string | undefined;
1926
1933
  }[];
1927
1934
  outputFormat: "json";
1928
1935
  status: hono_utils_http_status.ContentfulStatusCode;
@@ -3749,6 +3756,470 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3749
3756
  };
3750
3757
  };
3751
3758
  }, "/api/env"> | hono_types.MergeSchemaPath<{
3759
+ "/": {
3760
+ $get: {
3761
+ input: {};
3762
+ output: {
3763
+ id: number;
3764
+ author_id: number;
3765
+ title: string;
3766
+ slug: string;
3767
+ content: string;
3768
+ created_at: string;
3769
+ updated_at: string;
3770
+ author_username: string;
3771
+ author_display_name: string | null;
3772
+ comment_count: number;
3773
+ reply_to?: {
3774
+ author_username: string;
3775
+ slug: string;
3776
+ title: string;
3777
+ } | null | undefined;
3778
+ reactions?: {
3779
+ emoji: string;
3780
+ count: number;
3781
+ usernames: string[];
3782
+ }[] | undefined;
3783
+ }[];
3784
+ outputFormat: "json";
3785
+ status: hono_utils_http_status.ContentfulStatusCode;
3786
+ };
3787
+ };
3788
+ } & {
3789
+ "/": {
3790
+ $post: {
3791
+ input: {
3792
+ json: {
3793
+ title: string;
3794
+ content: string;
3795
+ reply_to?: string | undefined;
3796
+ };
3797
+ };
3798
+ output: {
3799
+ error: string;
3800
+ };
3801
+ outputFormat: "json";
3802
+ status: 400;
3803
+ } | {
3804
+ input: {
3805
+ json: {
3806
+ title: string;
3807
+ content: string;
3808
+ reply_to?: string | undefined;
3809
+ };
3810
+ };
3811
+ output: {
3812
+ error: string;
3813
+ };
3814
+ outputFormat: "json";
3815
+ status: 404;
3816
+ } | {
3817
+ input: {
3818
+ json: {
3819
+ title: string;
3820
+ content: string;
3821
+ reply_to?: string | undefined;
3822
+ };
3823
+ };
3824
+ output: {
3825
+ id: number;
3826
+ author_id: number;
3827
+ title: string;
3828
+ slug: string;
3829
+ content: string;
3830
+ created_at: string;
3831
+ updated_at: string;
3832
+ author_username: string;
3833
+ author_display_name: string | null;
3834
+ comment_count: number;
3835
+ reply_to?: {
3836
+ author_username: string;
3837
+ slug: string;
3838
+ title: string;
3839
+ } | null | undefined;
3840
+ reactions?: {
3841
+ emoji: string;
3842
+ count: number;
3843
+ usernames: string[];
3844
+ }[] | undefined;
3845
+ };
3846
+ outputFormat: "json";
3847
+ status: 201;
3848
+ };
3849
+ };
3850
+ } & {
3851
+ "/:author/:slug": {
3852
+ $get: {
3853
+ input: {
3854
+ param: {
3855
+ author: string;
3856
+ } & {
3857
+ slug: string;
3858
+ };
3859
+ };
3860
+ output: {
3861
+ error: string;
3862
+ };
3863
+ outputFormat: "json";
3864
+ status: 404;
3865
+ } | {
3866
+ input: {
3867
+ param: {
3868
+ author: string;
3869
+ } & {
3870
+ slug: string;
3871
+ };
3872
+ };
3873
+ output: {
3874
+ id: number;
3875
+ author_id: number;
3876
+ title: string;
3877
+ slug: string;
3878
+ content: string;
3879
+ created_at: string;
3880
+ updated_at: string;
3881
+ author_username: string;
3882
+ author_display_name: string | null;
3883
+ comment_count: number;
3884
+ reply_to?: {
3885
+ author_username: string;
3886
+ slug: string;
3887
+ title: string;
3888
+ } | null | undefined;
3889
+ reactions?: {
3890
+ emoji: string;
3891
+ count: number;
3892
+ usernames: string[];
3893
+ }[] | undefined;
3894
+ comments: {
3895
+ id: number;
3896
+ note_id: number;
3897
+ author_id: number;
3898
+ content: string;
3899
+ created_at: string;
3900
+ author_username: string;
3901
+ author_display_name: string | null;
3902
+ }[];
3903
+ replies: {
3904
+ author_username: string;
3905
+ slug: string;
3906
+ title: string;
3907
+ created_at: string;
3908
+ }[];
3909
+ };
3910
+ outputFormat: "json";
3911
+ status: hono_utils_http_status.ContentfulStatusCode;
3912
+ };
3913
+ };
3914
+ } & {
3915
+ "/:author/:slug": {
3916
+ $put: {
3917
+ input: {
3918
+ json: {
3919
+ title?: string | undefined;
3920
+ content?: string | undefined;
3921
+ };
3922
+ } & {
3923
+ param: {
3924
+ author: string;
3925
+ } & {
3926
+ slug: string;
3927
+ };
3928
+ };
3929
+ output: {
3930
+ error: string;
3931
+ };
3932
+ outputFormat: "json";
3933
+ status: 400;
3934
+ } | {
3935
+ input: {
3936
+ json: {
3937
+ title?: string | undefined;
3938
+ content?: string | undefined;
3939
+ };
3940
+ } & {
3941
+ param: {
3942
+ author: string;
3943
+ } & {
3944
+ slug: string;
3945
+ };
3946
+ };
3947
+ output: {
3948
+ error: string;
3949
+ };
3950
+ outputFormat: "json";
3951
+ status: 403;
3952
+ } | {
3953
+ input: {
3954
+ json: {
3955
+ title?: string | undefined;
3956
+ content?: string | undefined;
3957
+ };
3958
+ } & {
3959
+ param: {
3960
+ author: string;
3961
+ } & {
3962
+ slug: string;
3963
+ };
3964
+ };
3965
+ output: {
3966
+ error: string;
3967
+ };
3968
+ outputFormat: "json";
3969
+ status: 404;
3970
+ } | {
3971
+ input: {
3972
+ json: {
3973
+ title?: string | undefined;
3974
+ content?: string | undefined;
3975
+ };
3976
+ } & {
3977
+ param: {
3978
+ author: string;
3979
+ } & {
3980
+ slug: string;
3981
+ };
3982
+ };
3983
+ output: {
3984
+ id: number;
3985
+ author_id: number;
3986
+ title: string;
3987
+ slug: string;
3988
+ content: string;
3989
+ created_at: string;
3990
+ updated_at: string;
3991
+ author_username: string;
3992
+ author_display_name: string | null;
3993
+ comment_count: number;
3994
+ reply_to?: {
3995
+ author_username: string;
3996
+ slug: string;
3997
+ title: string;
3998
+ } | null | undefined;
3999
+ reactions?: {
4000
+ emoji: string;
4001
+ count: number;
4002
+ usernames: string[];
4003
+ }[] | undefined;
4004
+ };
4005
+ outputFormat: "json";
4006
+ status: hono_utils_http_status.ContentfulStatusCode;
4007
+ };
4008
+ };
4009
+ } & {
4010
+ "/:author/:slug": {
4011
+ $delete: {
4012
+ input: {
4013
+ param: {
4014
+ author: string;
4015
+ } & {
4016
+ slug: string;
4017
+ };
4018
+ };
4019
+ output: {
4020
+ error: string;
4021
+ };
4022
+ outputFormat: "json";
4023
+ status: 400;
4024
+ } | {
4025
+ input: {
4026
+ param: {
4027
+ author: string;
4028
+ } & {
4029
+ slug: string;
4030
+ };
4031
+ };
4032
+ output: {
4033
+ error: string;
4034
+ };
4035
+ outputFormat: "json";
4036
+ status: 404;
4037
+ } | {
4038
+ input: {
4039
+ param: {
4040
+ author: string;
4041
+ } & {
4042
+ slug: string;
4043
+ };
4044
+ };
4045
+ output: {
4046
+ ok: true;
4047
+ };
4048
+ outputFormat: "json";
4049
+ status: hono_utils_http_status.ContentfulStatusCode;
4050
+ };
4051
+ };
4052
+ } & {
4053
+ "/:author/:slug/reactions": {
4054
+ $post: {
4055
+ input: {
4056
+ json: {
4057
+ emoji: string;
4058
+ };
4059
+ } & {
4060
+ param: {
4061
+ author: string;
4062
+ } & {
4063
+ slug: string;
4064
+ };
4065
+ };
4066
+ output: {
4067
+ error: string;
4068
+ };
4069
+ outputFormat: "json";
4070
+ status: 400;
4071
+ } | {
4072
+ input: {
4073
+ json: {
4074
+ emoji: string;
4075
+ };
4076
+ } & {
4077
+ param: {
4078
+ author: string;
4079
+ } & {
4080
+ slug: string;
4081
+ };
4082
+ };
4083
+ output: {
4084
+ error: string;
4085
+ };
4086
+ outputFormat: "json";
4087
+ status: 404;
4088
+ } | {
4089
+ input: {
4090
+ json: {
4091
+ emoji: string;
4092
+ };
4093
+ } & {
4094
+ param: {
4095
+ author: string;
4096
+ } & {
4097
+ slug: string;
4098
+ };
4099
+ };
4100
+ output: {
4101
+ reactions: {
4102
+ emoji: string;
4103
+ count: number;
4104
+ usernames: string[];
4105
+ }[];
4106
+ added: boolean;
4107
+ };
4108
+ outputFormat: "json";
4109
+ status: hono_utils_http_status.ContentfulStatusCode;
4110
+ };
4111
+ };
4112
+ } & {
4113
+ "/:author/:slug/comments": {
4114
+ $post: {
4115
+ input: {
4116
+ json: {
4117
+ content: string;
4118
+ };
4119
+ } & {
4120
+ param: {
4121
+ author: string;
4122
+ } & {
4123
+ slug: string;
4124
+ };
4125
+ };
4126
+ output: {
4127
+ error: string;
4128
+ };
4129
+ outputFormat: "json";
4130
+ status: 400;
4131
+ } | {
4132
+ input: {
4133
+ json: {
4134
+ content: string;
4135
+ };
4136
+ } & {
4137
+ param: {
4138
+ author: string;
4139
+ } & {
4140
+ slug: string;
4141
+ };
4142
+ };
4143
+ output: {
4144
+ error: string;
4145
+ };
4146
+ outputFormat: "json";
4147
+ status: 404;
4148
+ } | {
4149
+ input: {
4150
+ json: {
4151
+ content: string;
4152
+ };
4153
+ } & {
4154
+ param: {
4155
+ author: string;
4156
+ } & {
4157
+ slug: string;
4158
+ };
4159
+ };
4160
+ output: {
4161
+ id: number;
4162
+ note_id: number;
4163
+ author_id: number;
4164
+ content: string;
4165
+ created_at: string;
4166
+ author_username: string;
4167
+ author_display_name: string | null;
4168
+ };
4169
+ outputFormat: "json";
4170
+ status: 201;
4171
+ };
4172
+ };
4173
+ } & {
4174
+ "/:author/:slug/comments/:id": {
4175
+ $delete: {
4176
+ input: {
4177
+ param: {
4178
+ id: string;
4179
+ } & {
4180
+ author: string;
4181
+ } & {
4182
+ slug: string;
4183
+ };
4184
+ };
4185
+ output: {
4186
+ error: string;
4187
+ };
4188
+ outputFormat: "json";
4189
+ status: 400;
4190
+ } | {
4191
+ input: {
4192
+ param: {
4193
+ id: string;
4194
+ } & {
4195
+ author: string;
4196
+ } & {
4197
+ slug: string;
4198
+ };
4199
+ };
4200
+ output: {
4201
+ error: string;
4202
+ };
4203
+ outputFormat: "json";
4204
+ status: 404;
4205
+ } | {
4206
+ input: {
4207
+ param: {
4208
+ id: string;
4209
+ } & {
4210
+ author: string;
4211
+ } & {
4212
+ slug: string;
4213
+ };
4214
+ };
4215
+ output: {
4216
+ ok: true;
4217
+ };
4218
+ outputFormat: "json";
4219
+ status: hono_utils_http_status.ContentfulStatusCode;
4220
+ };
4221
+ };
4222
+ }, "/api/notes"> | hono_types.MergeSchemaPath<{
3752
4223
  "/": {
3753
4224
  $get: {
3754
4225
  input: {};
@@ -3760,7 +4231,7 @@ declare const routes: hono_hono_base.HonoBase<hono_types.BlankEnv, hono_types.Bl
3760
4231
  } | {
3761
4232
  input: {};
3762
4233
  output: {
3763
- key: "seed_soul" | "default_soul" | "default_memory" | "sprout_message" | "restart_message" | "merge_message" | "compaction_warning" | "compaction_instructions" | "reply_instructions" | "channel_invite" | "pre_sleep" | "wake_summary" | "wake_trigger_summary";
4234
+ key: "seed_soul" | "default_soul" | "default_memory" | "sprout_message" | "restart_message" | "merge_message" | "compaction_warning" | "compaction_instructions" | "reply_instructions" | "channel_invite" | "pre_sleep" | "wake_summary";
3764
4235
  content: string;
3765
4236
  description: string;
3766
4237
  variables: string[];
@@ -6,10 +6,10 @@ async function run(args) {
6
6
  const subcommand = args[0];
7
7
  switch (subcommand) {
8
8
  case "register":
9
- await import("./register-U2UO6TC4.js").then((m) => m.run(args.slice(1)));
9
+ await import("./register-EFND67FQ.js").then((m) => m.run(args.slice(1)));
10
10
  break;
11
11
  case "login":
12
- await import("./login-UO6AOVEA.js").then((m) => m.run(args.slice(1)));
12
+ await import("./login-6U7U6BNG.js").then((m) => m.run(args.slice(1)));
13
13
  break;
14
14
  case "logout":
15
15
  await import("./logout-UKD5LA37.js").then((m) => m.run());
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ daemonFetch
4
+ } from "./chunk-WGOGUMPO.js";
2
5
  import {
3
6
  getClient,
4
7
  urlOf
@@ -9,9 +12,6 @@ import {
9
12
  import {
10
13
  parseArgs
11
14
  } from "./chunk-D424ZQGI.js";
12
- import {
13
- daemonFetch
14
- } from "./chunk-TRQEV3CD.js";
15
15
  import "./chunk-B2CPS4QU.js";
16
16
  import "./chunk-K3NQKI34.js";
17
17