volute 0.33.0 → 0.34.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 (182) hide show
  1. package/dist/{accept-D5VBM7JW.js → accept-TW6V4WI4.js} +6 -6
  2. package/dist/{activity-events-XJO3P4RR.js → activity-events-BN7V6KCC.js} +4 -4
  3. package/dist/{ai-service-SBY2WG7O.js → ai-service-PSILB5WD.js} +5 -5
  4. package/dist/{api-client-YPKOZP2O.js → api-client-XUXOB7LI.js} +1 -1
  5. package/dist/api.d.ts +426 -3
  6. package/dist/{archive-INXYFVCW.js → archive-C2VEMQOR.js} +4 -4
  7. package/dist/{auth-GKCDSO4T.js → auth-ZFZXJZDQ.js} +5 -5
  8. package/dist/{bridge-TXWWPPOJ.js → bridge-O753D5F4.js} +6 -6
  9. package/dist/{chat-U5ZOME3O.js → chat-BHYX7DJ4.js} +9 -9
  10. package/dist/{chunk-M7UL5S3Q.js → chunk-2IOP6PHB.js} +1 -1
  11. package/dist/{chunk-NPKSDYA2.js → chunk-47XDEWWV.js} +5 -5
  12. package/dist/{chunk-RSX4OPZY.js → chunk-47ZPNLF4.js} +7 -7
  13. package/dist/{chunk-RPZZSXV3.js → chunk-4JSR7YO7.js} +20 -1
  14. package/dist/{chunk-N432I7QH.js → chunk-6OWJXUAR.js} +1 -1
  15. package/dist/{chunk-I5KY25PQ.js → chunk-6WAWMWR5.js} +1 -1
  16. package/dist/{chunk-NNB4WIG7.js → chunk-7F2SW2KD.js} +2 -2
  17. package/dist/chunk-7KJOFUNN.js +22 -0
  18. package/dist/{chunk-7J3HEVR7.js → chunk-B2BVAIZ4.js} +15 -9
  19. package/dist/{chunk-VH33ZWMW.js → chunk-BDK73LK6.js} +1 -1
  20. package/dist/{chunk-QTUVYI7W.js → chunk-BFWHBQK4.js} +1 -1
  21. package/dist/{chunk-JYVGHWEJ.js → chunk-BM474GX6.js} +3 -3
  22. package/dist/{chunk-LOEJ4HPQ.js → chunk-BTWAGDV5.js} +1 -1
  23. package/dist/{chunk-A2A4KLFE.js → chunk-CVL5IGIR.js} +596 -40
  24. package/dist/{chunk-RVGLDGMI.js → chunk-E5C7OWZ2.js} +20 -22
  25. package/dist/chunk-FYCALD4Q.js +23 -0
  26. package/dist/{chunk-SKLSMHXO.js → chunk-IS7WJ56Q.js} +1 -1
  27. package/dist/{chunk-2NGTS5UU.js → chunk-M3K5AARV.js} +1 -1
  28. package/dist/{chunk-ALEF47VT.js → chunk-MLOQKQNB.js} +1 -1
  29. package/dist/{chunk-C7I35G4R.js → chunk-N3DNFPVA.js} +41 -5
  30. package/dist/{chunk-LRCG2JLP.js → chunk-N7BLAHNE.js} +5 -1
  31. package/dist/{chunk-UKVWJRKN.js → chunk-PLDWHR4D.js} +1 -1
  32. package/dist/{chunk-3Z2DPESO.js → chunk-TAHX36HZ.js} +126 -81
  33. package/dist/{chunk-KIEPMIM5.js → chunk-U5BTYSAL.js} +1 -1
  34. package/dist/{chunk-GY5HBI7A.js → chunk-V45JXOWY.js} +2 -2
  35. package/dist/{chunk-JUKK7FPS.js → chunk-V6ZCNULL.js} +2 -2
  36. package/dist/{chunk-KVK2DLWI.js → chunk-XWXBJQBE.js} +2 -2
  37. package/dist/cli.js +23 -23
  38. package/dist/{clock-BVH3V6E3.js → clock-3X4DSC2N.js} +40 -25
  39. package/dist/{cloud-sync-4NWLMFVH.js → cloud-sync-TG3TIX5H.js} +21 -21
  40. package/dist/{config-H2H4UIF7.js → config-OROA5DUA.js} +4 -4
  41. package/dist/connectors/discord-bridge.js +1 -1
  42. package/dist/connectors/slack-bridge.js +1 -1
  43. package/dist/connectors/telegram-bridge.js +1 -1
  44. package/dist/{conversations-AWI5SZW2.js → conversations-HL2JP5GI.js} +5 -5
  45. package/dist/{create-YWD2TIP4.js → create-3SEKKI6P.js} +6 -6
  46. package/dist/{create-2FK7Z46Y.js → create-UOSOQ2HN.js} +4 -4
  47. package/dist/daemon-client-WOAQXXBM.js +12 -0
  48. package/dist/{daemon-restart-GOBUKLX7.js → daemon-restart-5ABHNXJZ.js} +9 -9
  49. package/dist/daemon.js +1747 -688
  50. package/dist/{db-RA45JBFG.js → db-PLEDCBHZ.js} +1 -1
  51. package/dist/db-RYX3SS2W.js +9 -0
  52. package/dist/{delete-QTGWEDBI.js → delete-KYOVWR23.js} +3 -3
  53. package/dist/delivery-manager-2BR5NZKF.js +32 -0
  54. package/dist/{delivery-router-FL45JL7N.js → delivery-router-D5ELDMS2.js} +4 -4
  55. package/dist/down-QVFN4UPK.js +15 -0
  56. package/dist/{env-JCOF2222.js → env-R34DT7XL.js} +12 -8
  57. package/dist/exec-DVLXKRIO.js +17 -0
  58. package/dist/{export-SUYRLI5Q.js → export-6ZXAXATG.js} +6 -6
  59. package/dist/extension-PM42QCID.js +97 -0
  60. package/dist/extensions-BBGVL5JC.js +38 -0
  61. package/dist/{files-65PMW5IK.js → files-VQV2VZQO.js} +7 -7
  62. package/dist/{import-DDUFE7AY.js → import-MK2I2T6F.js} +5 -5
  63. package/dist/{isolation-LLAYQYDY.js → isolation-62MKDZN3.js} +4 -4
  64. package/dist/{join-I5QEE3LG.js → join-DGYHTJUH.js} +3 -3
  65. package/dist/lib-DYEZMGW7.js +6588 -0
  66. package/dist/{list-JQ463EDA.js → list-C644WTHV.js} +18 -10
  67. package/dist/{login-D7ETSU4R.js → login-IIGEQPHL.js} +6 -6
  68. package/dist/{login-RIJF2F4G.js → login-KZQLMAWE.js} +4 -4
  69. package/dist/{logout-5MLHZALK.js → logout-AGTZVRGP.js} +4 -4
  70. package/dist/{logout-UZJRGY4Z.js → logout-KD6GXIJJ.js} +4 -4
  71. package/dist/message-delivery-V3R6NXJP.js +42 -0
  72. package/dist/{mind-IOJFLEM5.js → mind-BI4EPBVZ.js} +19 -19
  73. package/dist/{mind-activity-tracker-F6O4Q2SL.js → mind-activity-tracker-2ACNHA7B.js} +5 -5
  74. package/dist/mind-history-WOYFLQAI.js +264 -0
  75. package/dist/{mind-list-WUPMQDYQ.js → mind-list-6VPM7GUQ.js} +4 -4
  76. package/dist/mind-manager-MWW3BTS4.js +32 -0
  77. package/dist/{mind-profile-P67FEHOY.js → mind-profile-WPG42U5Y.js} +2 -2
  78. package/dist/mind-service-VIKZJK2M.js +38 -0
  79. package/dist/{mind-sleep-WW2IX7JT.js → mind-sleep-XDISJY74.js} +6 -6
  80. package/dist/{mind-status-L3EFFRPR.js → mind-status-7FTZWPZF.js} +4 -4
  81. package/dist/{mind-wake-VSSGW465.js → mind-wake-KIIKEI3A.js} +6 -6
  82. package/dist/{package-U3VFO273.js → package-V2WHWVG6.js} +8 -5
  83. package/dist/{read-EBY56C33.js → read-H5C26YO7.js} +20 -10
  84. package/dist/{read-stdin-HQJ7774D.js → read-stdin-PIRM6A2Y.js} +1 -1
  85. package/dist/{register-HD74C4TT.js → register-J27WP33N.js} +6 -6
  86. package/dist/{registry-PJ4S5PHQ.js → registry-UYV5S6QT.js} +3 -3
  87. package/dist/{reject-UJKFBHRO.js → reject-OEANJYIA.js} +6 -6
  88. package/dist/{restart-3UCMRUVC.js → restart-V5EGYBJG.js} +4 -4
  89. package/dist/{sandbox-GJOK4QLQ.js → sandbox-SI5HMBP3.js} +5 -5
  90. package/dist/scheduler-AGG3L2FO.js +32 -0
  91. package/dist/{schema-PA3M5ZKH.js → schema-ETMABTW4.js} +4 -2
  92. package/dist/{seed-QDYVLG74.js → seed-WNGI6PNW.js} +2 -2
  93. package/dist/{seed-check-S2IX25RL.js → seed-check-PXTH7YXS.js} +2 -2
  94. package/dist/{seed-cmd-DKOUFEAU.js → seed-cmd-VENFTGS3.js} +4 -4
  95. package/dist/{seed-create-4XBBOLRH.js → seed-create-663ALOKH.js} +6 -6
  96. package/dist/{seed-sprout-GQEIIQRT.js → seed-sprout-EH3AGKAI.js} +12 -12
  97. package/dist/{send-QIV2INHB.js → send-7FUUUZZH.js} +23 -10
  98. package/dist/{setup-TISPCO22.js → setup-GGMKENLN.js} +4 -4
  99. package/dist/{setup-XMCBE3LF.js → setup-Z3DEVWV7.js} +11 -11
  100. package/dist/{skill-PSQGRRJX.js → skill-DKNYJS4P.js} +14 -10
  101. package/dist/skills/plan-coordinator/SKILL.md +60 -0
  102. package/dist/skills/volute-mind/SKILL.md +7 -221
  103. package/dist/skills/volute-mind/references/extensions.md +37 -0
  104. package/dist/skills/volute-mind/references/integrations.md +48 -0
  105. package/dist/skills/volute-mind/references/routing.md +86 -0
  106. package/dist/skills/volute-mind/references/sleep.md +33 -0
  107. package/dist/skills/volute-mind/references/variants.md +31 -0
  108. package/dist/{skills-7FV7EJTE.js → skills-Q6VZ2UGD.js} +11 -7
  109. package/dist/sleep-manager-BJK2ROPX.js +36 -0
  110. package/dist/spirit-4JP4TY4C.js +23 -0
  111. package/dist/{split-STOROBYJ.js → split-3YPMS2CL.js} +3 -3
  112. package/dist/{sprout-WKLZXUIQ.js → sprout-E3HJIV2Z.js} +2 -2
  113. package/dist/{start-K2NCUUCG.js → start-W3TPKX4D.js} +4 -4
  114. package/dist/{status-3JBTFSMI.js → status-4OVFXFEJ.js} +7 -7
  115. package/dist/{stop-H26JZDXF.js → stop-GTT6YWYO.js} +4 -4
  116. package/dist/system-channel-DXD2JBOU.js +36 -0
  117. package/dist/system-chat-TYLOL7SX.js +36 -0
  118. package/dist/{systems-XRI52VCH.js → systems-AYLO727G.js} +7 -7
  119. package/dist/{tailscale-XHQBZROW.js → tailscale-ZEUK7GKZ.js} +3 -3
  120. package/dist/{template-hash-A6VVKOXJ.js → template-hash-EJRTKE36.js} +1 -1
  121. package/dist/up-PA7F2CXE.js +18 -0
  122. package/dist/{update-UD543CXX.js → update-HG4LCUSG.js} +7 -7
  123. package/dist/{update-check-ZD6OOIYQ.js → update-check-X3YG4WVP.js} +4 -4
  124. package/dist/{upgrade-O4Q7WJM3.js → upgrade-YGNIDICG.js} +3 -3
  125. package/dist/{variant-7TGZHOU3.js → variant-MZUMRTQO.js} +1 -1
  126. package/dist/{version-notify-NBI2MTJO.js → version-notify-YCH4UVQ2.js} +19 -19
  127. package/dist/{volute-config-HD7WWUQC.js → volute-config-WBKYJGYQ.js} +1 -1
  128. package/dist/web-assets/assets/index-DiiwC-CZ.css +1 -0
  129. package/dist/web-assets/assets/index-d6y5b9Ij.js +75 -0
  130. package/dist/web-assets/ext-theme.css +48 -9
  131. package/dist/web-assets/index.html +2 -2
  132. package/drizzle/0005_meta_summaries.sql +15 -0
  133. package/drizzle/meta/0005_snapshot.json +7 -0
  134. package/drizzle/meta/_journal.json +7 -0
  135. package/package.json +7 -4
  136. package/packages/extensions/plan/dist/ui/assets/index-CJj2gZnZ.css +1 -0
  137. package/packages/extensions/plan/dist/ui/assets/index-FMEJmvQz.js +61 -0
  138. package/packages/extensions/plan/dist/ui/index.html +14 -0
  139. package/packages/extensions/plan/skills/plan/SKILL.md +43 -0
  140. package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +37 -0
  141. package/templates/_base/home/VOLUTE.md +12 -19
  142. package/templates/_base/src/lib/context-breakdown.ts +450 -0
  143. package/templates/_base/src/lib/format-prefix.ts +17 -0
  144. package/templates/_base/src/lib/hook-loader.ts +8 -2
  145. package/templates/_base/src/lib/router.ts +75 -33
  146. package/templates/_base/src/lib/routing.ts +4 -1
  147. package/templates/_base/src/lib/startup.ts +16 -8
  148. package/templates/_base/src/lib/types.ts +2 -1
  149. package/templates/_base/src/lib/volute-server.ts +69 -8
  150. package/templates/claude/.init/CLAUDE.md +4 -10
  151. package/templates/claude/package.json.tmpl +1 -0
  152. package/templates/claude/src/agent.ts +100 -32
  153. package/templates/claude/src/lib/hooks/reply-instructions.ts +27 -7
  154. package/templates/claude/src/lib/stream-consumer.ts +2 -2
  155. package/templates/claude/src/server.ts +1 -0
  156. package/templates/codex/package.json.tmpl +1 -0
  157. package/templates/codex/src/agent.ts +80 -8
  158. package/templates/codex/src/server.ts +1 -4
  159. package/templates/pi/package.json.tmpl +1 -0
  160. package/templates/pi/src/agent.ts +115 -36
  161. package/templates/pi/src/lib/event-handler.ts +22 -7
  162. package/templates/pi/src/lib/reply-instructions-extension.ts +23 -4
  163. package/templates/pi/src/lib/subagents.ts +20 -17
  164. package/templates/pi/src/server.ts +2 -5
  165. package/dist/chunk-K3NQKI34.js +0 -10
  166. package/dist/daemon-client-6QXHZ7US.js +0 -12
  167. package/dist/db-F34YLV7D.js +0 -9
  168. package/dist/delivery-manager-PFAKEJTC.js +0 -32
  169. package/dist/down-FWWTEKXM.js +0 -15
  170. package/dist/extension-OBTGKQQD.js +0 -175
  171. package/dist/extensions-KYNTVTMO.js +0 -30
  172. package/dist/history-DKCDI3JO.js +0 -128
  173. package/dist/message-delivery-DFF5SJRM.js +0 -42
  174. package/dist/mind-manager-NBJF5D26.js +0 -32
  175. package/dist/mind-service-2MQ6UK5N.js +0 -38
  176. package/dist/scheduler-ZZ7XGQG6.js +0 -32
  177. package/dist/sleep-manager-JTXSN7NV.js +0 -36
  178. package/dist/spirit-VRONKFMF.js +0 -23
  179. package/dist/system-chat-JAPOJ3KE.js +0 -36
  180. package/dist/up-M5AS6SBV.js +0 -18
  181. package/dist/web-assets/assets/index-CWJrVveV.css +0 -1
  182. package/dist/web-assets/assets/index-DJt14FRI.js +0 -75
@@ -1,16 +1,19 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ isCompact
4
+ } from "./chunk-FYCALD4Q.js";
2
5
  import {
3
6
  resolveMindName
4
7
  } from "./chunk-NAOW2CLO.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-UKVWJRKN.js";
8
8
  import {
9
9
  parseArgs
10
10
  } from "./chunk-D424ZQGI.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
11
+ import {
12
+ daemonFetch
13
+ } from "./chunk-PLDWHR4D.js";
14
+ import "./chunk-N7BLAHNE.js";
15
+ import "./chunk-4JSR7YO7.js";
16
+ import "./chunk-7KJOFUNN.js";
14
17
 
15
18
  // src/commands/chat/list.ts
16
19
  async function run(args) {
@@ -28,12 +31,17 @@ async function run(args) {
28
31
  console.log("No conversations.");
29
32
  return;
30
33
  }
34
+ const compact = isCompact();
31
35
  for (const conv of convs) {
32
36
  const label = conv.type === "channel" ? `#${conv.name}` : conv.title ?? conv.id.slice(0, 8);
33
- const time = new Date(
34
- conv.updated_at.endsWith("Z") ? conv.updated_at : `${conv.updated_at}Z`
35
- ).toLocaleString();
36
- console.log(` ${label} (${conv.type}) ${time}`);
37
+ if (compact) {
38
+ console.log(`${label} (${conv.type})`);
39
+ } else {
40
+ const time = new Date(
41
+ conv.updated_at.endsWith("Z") ? conv.updated_at : `${conv.updated_at}Z`
42
+ ).toLocaleString();
43
+ console.log(` ${label} (${conv.type}) ${time}`);
44
+ }
37
45
  }
38
46
  }
39
47
  export {
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  promptLine
4
4
  } from "./chunk-SSI47XP2.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-UKVWJRKN.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-PLDWHR4D.js";
11
+ import "./chunk-N7BLAHNE.js";
12
+ import "./chunk-4JSR7YO7.js";
13
+ import "./chunk-7KJOFUNN.js";
14
14
 
15
15
  // src/commands/systems/login.ts
16
16
  async function run(args) {
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-SSI47XP2.js";
6
6
  import {
7
7
  daemonFetch
8
- } from "./chunk-UKVWJRKN.js";
8
+ } from "./chunk-PLDWHR4D.js";
9
9
  import {
10
10
  voluteUserHome
11
- } from "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
11
+ } from "./chunk-N7BLAHNE.js";
12
+ import "./chunk-4JSR7YO7.js";
13
+ import "./chunk-7KJOFUNN.js";
14
14
 
15
15
  // src/commands/login.ts
16
16
  import { writeFileSync } from "fs";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-UKVWJRKN.js";
4
+ } from "./chunk-PLDWHR4D.js";
5
5
  import {
6
6
  voluteUserHome
7
- } from "./chunk-LRCG2JLP.js";
8
- import "./chunk-RPZZSXV3.js";
9
- import "./chunk-K3NQKI34.js";
7
+ } from "./chunk-N7BLAHNE.js";
8
+ import "./chunk-4JSR7YO7.js";
9
+ import "./chunk-7KJOFUNN.js";
10
10
 
11
11
  // src/commands/logout.ts
12
12
  import { existsSync, readFileSync, unlinkSync } from "fs";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-UKVWJRKN.js";
5
- import "./chunk-LRCG2JLP.js";
6
- import "./chunk-RPZZSXV3.js";
7
- import "./chunk-K3NQKI34.js";
4
+ } from "./chunk-PLDWHR4D.js";
5
+ import "./chunk-N7BLAHNE.js";
6
+ import "./chunk-4JSR7YO7.js";
7
+ import "./chunk-7KJOFUNN.js";
8
8
 
9
9
  // src/commands/systems/logout.ts
10
10
  async function run() {
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ deliverMessage,
4
+ linkToolResultToTurn,
5
+ recordInbound,
6
+ recordOutbound,
7
+ resolveSleepAction,
8
+ tagRecentInbound,
9
+ tagUntaggedInbound,
10
+ tagUntaggedOutbound
11
+ } from "./chunk-TAHX36HZ.js";
12
+ import "./chunk-CVL5IGIR.js";
13
+ import "./chunk-B2BVAIZ4.js";
14
+ import "./chunk-G53F3JA4.js";
15
+ import "./chunk-N3DNFPVA.js";
16
+ import "./chunk-OYAKCAVY.js";
17
+ import "./chunk-V45JXOWY.js";
18
+ import "./chunk-IS7WJ56Q.js";
19
+ import "./chunk-BTWAGDV5.js";
20
+ import "./chunk-M3K5AARV.js";
21
+ import "./chunk-PB65JZK2.js";
22
+ import "./chunk-BM474GX6.js";
23
+ import "./chunk-E5C7OWZ2.js";
24
+ import "./chunk-XWXBJQBE.js";
25
+ import "./chunk-BFWHBQK4.js";
26
+ import "./chunk-YUIHSKR6.js";
27
+ import "./chunk-U5BTYSAL.js";
28
+ import "./chunk-BDK73LK6.js";
29
+ import "./chunk-6OWJXUAR.js";
30
+ import "./chunk-N7BLAHNE.js";
31
+ import "./chunk-4JSR7YO7.js";
32
+ import "./chunk-7KJOFUNN.js";
33
+ export {
34
+ deliverMessage,
35
+ linkToolResultToTurn,
36
+ recordInbound,
37
+ recordOutbound,
38
+ resolveSleepAction,
39
+ tagRecentInbound,
40
+ tagUntaggedInbound,
41
+ tagUntaggedOutbound
42
+ };
@@ -1,66 +1,66 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-K3NQKI34.js";
2
+ import "./chunk-7KJOFUNN.js";
3
3
 
4
4
  // src/commands/mind.ts
5
5
  async function run(args) {
6
6
  const subcommand = args[0];
7
7
  switch (subcommand) {
8
8
  case "create":
9
- await import("./create-2FK7Z46Y.js").then((m) => m.run(args.slice(1)));
9
+ await import("./create-UOSOQ2HN.js").then((m) => m.run(args.slice(1)));
10
10
  break;
11
11
  case "start":
12
- await import("./start-K2NCUUCG.js").then((m) => m.run(args.slice(1)));
12
+ await import("./start-W3TPKX4D.js").then((m) => m.run(args.slice(1)));
13
13
  break;
14
14
  case "stop":
15
- await import("./stop-H26JZDXF.js").then((m) => m.run(args.slice(1)));
15
+ await import("./stop-GTT6YWYO.js").then((m) => m.run(args.slice(1)));
16
16
  break;
17
17
  case "restart":
18
- await import("./restart-3UCMRUVC.js").then((m) => m.run(args.slice(1)));
18
+ await import("./restart-V5EGYBJG.js").then((m) => m.run(args.slice(1)));
19
19
  break;
20
20
  case "delete":
21
- await import("./delete-QTGWEDBI.js").then((m) => m.run(args.slice(1)));
21
+ await import("./delete-KYOVWR23.js").then((m) => m.run(args.slice(1)));
22
22
  break;
23
23
  case "list":
24
- await import("./mind-list-WUPMQDYQ.js").then((m) => m.run(args.slice(1)));
24
+ await import("./mind-list-6VPM7GUQ.js").then((m) => m.run(args.slice(1)));
25
25
  break;
26
26
  case "status":
27
- await import("./mind-status-L3EFFRPR.js").then((m) => m.run(args.slice(1)));
27
+ await import("./mind-status-7FTZWPZF.js").then((m) => m.run(args.slice(1)));
28
28
  break;
29
29
  case "history": {
30
30
  const rest = args.slice(1);
31
31
  const historyArgs = transformMindFlag(rest);
32
- await import("./history-DKCDI3JO.js").then((m) => m.run(historyArgs));
32
+ await import("./mind-history-WOYFLQAI.js").then((m) => m.run(historyArgs));
33
33
  break;
34
34
  }
35
35
  case "upgrade":
36
- await import("./upgrade-O4Q7WJM3.js").then((m) => m.run(args.slice(1)));
36
+ await import("./upgrade-YGNIDICG.js").then((m) => m.run(args.slice(1)));
37
37
  break;
38
38
  case "import":
39
- await import("./import-DDUFE7AY.js").then((m) => m.run(args.slice(1)));
39
+ await import("./import-MK2I2T6F.js").then((m) => m.run(args.slice(1)));
40
40
  break;
41
41
  case "export":
42
- await import("./export-SUYRLI5Q.js").then((m) => m.run(args.slice(1)));
42
+ await import("./export-6ZXAXATG.js").then((m) => m.run(args.slice(1)));
43
43
  break;
44
44
  case "seed":
45
- await import("./seed-QDYVLG74.js").then((m) => m.run(args.slice(1)));
45
+ await import("./seed-WNGI6PNW.js").then((m) => m.run(args.slice(1)));
46
46
  break;
47
47
  case "sprout":
48
- await import("./sprout-WKLZXUIQ.js").then((m) => m.run(args.slice(1)));
48
+ await import("./sprout-E3HJIV2Z.js").then((m) => m.run(args.slice(1)));
49
49
  break;
50
50
  case "profile":
51
- await import("./mind-profile-P67FEHOY.js").then((m) => m.run(args.slice(1)));
51
+ await import("./mind-profile-WPG42U5Y.js").then((m) => m.run(args.slice(1)));
52
52
  break;
53
53
  case "sleep":
54
- await import("./mind-sleep-WW2IX7JT.js").then((m) => m.run(args.slice(1)));
54
+ await import("./mind-sleep-XDISJY74.js").then((m) => m.run(args.slice(1)));
55
55
  break;
56
56
  case "wake":
57
- await import("./mind-wake-VSSGW465.js").then((m) => m.run(args.slice(1)));
57
+ await import("./mind-wake-KIIKEI3A.js").then((m) => m.run(args.slice(1)));
58
58
  break;
59
59
  case "split":
60
- await import("./split-STOROBYJ.js").then((m) => m.run(args.slice(1)));
60
+ await import("./split-3YPMS2CL.js").then((m) => m.run(args.slice(1)));
61
61
  break;
62
62
  case "join":
63
- await import("./join-I5QEE3LG.js").then((m) => m.run(args.slice(1)));
63
+ await import("./join-DGYHTJUH.js").then((m) => m.run(args.slice(1)));
64
64
  break;
65
65
  case "--help":
66
66
  case "-h":
@@ -4,12 +4,12 @@ import {
4
4
  markIdle,
5
5
  onMindEvent,
6
6
  stopAll
7
- } from "./chunk-LOEJ4HPQ.js";
8
- import "./chunk-KVK2DLWI.js";
7
+ } from "./chunk-BTWAGDV5.js";
8
+ import "./chunk-XWXBJQBE.js";
9
9
  import "./chunk-YUIHSKR6.js";
10
- import "./chunk-LRCG2JLP.js";
11
- import "./chunk-RPZZSXV3.js";
12
- import "./chunk-K3NQKI34.js";
10
+ import "./chunk-N7BLAHNE.js";
11
+ import "./chunk-4JSR7YO7.js";
12
+ import "./chunk-7KJOFUNN.js";
13
13
  export {
14
14
  getActiveMinds,
15
15
  markIdle,
@@ -0,0 +1,264 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ compactTime,
4
+ isCompact
5
+ } from "./chunk-FYCALD4Q.js";
6
+ import {
7
+ resolveMindName
8
+ } from "./chunk-NAOW2CLO.js";
9
+ import {
10
+ getClient,
11
+ urlOf
12
+ } from "./chunk-4RQBJWQX.js";
13
+ import {
14
+ parseArgs
15
+ } from "./chunk-D424ZQGI.js";
16
+ import {
17
+ daemonFetch
18
+ } from "./chunk-PLDWHR4D.js";
19
+ import "./chunk-N7BLAHNE.js";
20
+ import "./chunk-4JSR7YO7.js";
21
+ import "./chunk-7KJOFUNN.js";
22
+
23
+ // src/commands/mind-history.ts
24
+ function normalizeTimestamp(dateStr) {
25
+ return dateStr.endsWith("Z") ? dateStr : `${dateStr}Z`;
26
+ }
27
+ function formatRow(row) {
28
+ const time = new Date(normalizeTimestamp(row.created_at)).toLocaleString();
29
+ const channel = row.channel ?? "";
30
+ switch (row.type) {
31
+ case "inbound":
32
+ case "outbound": {
33
+ const sender = row.sender ?? (row.type === "outbound" ? "mind" : "unknown");
34
+ return `[${time}] [${channel}] ${sender}: ${row.content ?? ""}`;
35
+ }
36
+ case "text":
37
+ return `[${time}] [text] ${row.content ?? ""}`;
38
+ case "thinking":
39
+ return `[${time}] [thinking] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
40
+ case "tool_use": {
41
+ let toolName = "unknown";
42
+ if (row.metadata) {
43
+ try {
44
+ const meta = JSON.parse(row.metadata);
45
+ toolName = meta.name ?? toolName;
46
+ } catch {
47
+ }
48
+ }
49
+ return `[${time}] [tool] ${toolName}${row.content ? `: ${row.content.slice(0, 100)}` : ""}`;
50
+ }
51
+ case "tool_result":
52
+ return `[${time}] [result] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
53
+ case "usage": {
54
+ if (row.metadata) {
55
+ try {
56
+ const meta = JSON.parse(row.metadata);
57
+ return `[${time}] [usage] in=${meta.input_tokens ?? 0} out=${meta.output_tokens ?? 0}`;
58
+ } catch {
59
+ }
60
+ }
61
+ return `[${time}] [usage]`;
62
+ }
63
+ case "done":
64
+ return `[${time}] [done]`;
65
+ case "log": {
66
+ let category = "";
67
+ if (row.metadata) {
68
+ try {
69
+ const meta = JSON.parse(row.metadata);
70
+ category = meta.category ? `${meta.category}: ` : "";
71
+ } catch {
72
+ }
73
+ }
74
+ return `[${time}] [log] ${category}${row.content ?? ""}`;
75
+ }
76
+ case "summary": {
77
+ let range = "";
78
+ if (row.metadata) {
79
+ try {
80
+ const meta = JSON.parse(row.metadata);
81
+ if (meta.from_time && meta.to_time) {
82
+ const from = new Date(normalizeTimestamp(meta.from_time)).toLocaleTimeString();
83
+ const to = new Date(normalizeTimestamp(meta.to_time)).toLocaleTimeString();
84
+ range = ` (${from}\u2013${to})`;
85
+ }
86
+ } catch {
87
+ }
88
+ }
89
+ return `[${time}] [summary${range}] ${row.content ?? ""}`;
90
+ }
91
+ case "session_start":
92
+ return `[${time}] [session_start] ${row.session ?? ""}`;
93
+ default:
94
+ return `[${time}] [${row.type}] ${row.content ?? ""}`;
95
+ }
96
+ }
97
+ function formatRowCompact(row) {
98
+ const time = compactTime(row.created_at);
99
+ const channel = row.channel ?? "";
100
+ switch (row.type) {
101
+ case "inbound":
102
+ case "outbound": {
103
+ const sender = row.sender ?? (row.type === "outbound" ? "mind" : "unknown");
104
+ return `[${time}] [${channel}] ${sender}: ${row.content ?? ""}`;
105
+ }
106
+ case "text":
107
+ return `[${time}] [text] ${row.content ?? ""}`;
108
+ case "thinking":
109
+ return `[${time}] [thinking] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
110
+ case "tool_use": {
111
+ let toolName = "unknown";
112
+ if (row.metadata) {
113
+ try {
114
+ const meta = JSON.parse(row.metadata);
115
+ toolName = meta.name ?? toolName;
116
+ } catch {
117
+ }
118
+ }
119
+ return `[${time}] [tool] ${toolName}${row.content ? `: ${row.content.slice(0, 100)}` : ""}`;
120
+ }
121
+ case "tool_result":
122
+ return `[${time}] [result] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
123
+ case "log": {
124
+ let category = "";
125
+ if (row.metadata) {
126
+ try {
127
+ const meta = JSON.parse(row.metadata);
128
+ category = meta.category ? `${meta.category}: ` : "";
129
+ } catch {
130
+ }
131
+ }
132
+ return `[${time}] [log] ${category}${row.content ?? ""}`;
133
+ }
134
+ case "summary": {
135
+ let range = "";
136
+ if (row.metadata) {
137
+ try {
138
+ const meta = JSON.parse(row.metadata);
139
+ if (meta.from_time && meta.to_time) {
140
+ range = ` (${compactTime(meta.from_time)}\u2013${compactTime(meta.to_time)})`;
141
+ }
142
+ } catch {
143
+ }
144
+ }
145
+ return `[${time}] [summary${range}] ${row.content ?? ""}`;
146
+ }
147
+ case "session_start":
148
+ return `[${time}] [session_start] ${row.session ?? ""}`;
149
+ default:
150
+ return `[${time}] [${row.type}] ${row.content ?? ""}`;
151
+ }
152
+ }
153
+ var PERIOD_LABELS = {
154
+ hour: "Hourly",
155
+ day: "Daily",
156
+ week: "Weekly",
157
+ month: "Monthly"
158
+ };
159
+ function formatMetaSummary(row) {
160
+ const label = PERIOD_LABELS[row.period] ?? row.period;
161
+ return `
162
+ === ${row.period_key} (${label}) ===
163
+ ${row.content ?? ""}
164
+ `;
165
+ }
166
+ function getDefaultRange(period) {
167
+ const now = /* @__PURE__ */ new Date();
168
+ switch (period) {
169
+ case "hour": {
170
+ const d = new Date(now);
171
+ d.setUTCDate(d.getUTCDate() - 1);
172
+ return d.toISOString().slice(0, 10);
173
+ }
174
+ case "day": {
175
+ const d = new Date(now);
176
+ d.setUTCDate(d.getUTCDate() - 7);
177
+ return d.toISOString().slice(0, 10);
178
+ }
179
+ case "week": {
180
+ const d = new Date(now);
181
+ d.setUTCDate(d.getUTCDate() - 28);
182
+ return d.toISOString().slice(0, 10);
183
+ }
184
+ case "month": {
185
+ const d = new Date(now);
186
+ d.setUTCMonth(d.getUTCMonth() - 6);
187
+ return d.toISOString().slice(0, 7);
188
+ }
189
+ default:
190
+ return "";
191
+ }
192
+ }
193
+ async function run(args) {
194
+ const { flags } = parseArgs(args, {
195
+ mind: { type: "string" },
196
+ channel: { type: "string" },
197
+ session: { type: "string" },
198
+ preset: { type: "string" },
199
+ limit: { type: "string" },
200
+ full: { type: "boolean" },
201
+ period: { type: "string" },
202
+ from: { type: "string" },
203
+ to: { type: "string" }
204
+ });
205
+ if (flags.period) {
206
+ const validPeriods = ["hour", "day", "week", "month"];
207
+ if (!validPeriods.includes(flags.period)) {
208
+ console.error(`Invalid period: ${flags.period}. Must be one of: ${validPeriods.join(", ")}`);
209
+ process.exit(1);
210
+ }
211
+ const name2 = resolveMindName(flags);
212
+ const params = new URLSearchParams();
213
+ params.set("mind", name2);
214
+ params.set("period", flags.period);
215
+ if (flags.from) params.set("from", flags.from);
216
+ else params.set("from", getDefaultRange(flags.period));
217
+ if (flags.to) params.set("to", flags.to);
218
+ if (flags.limit) params.set("limit", flags.limit);
219
+ const res2 = await daemonFetch(`/api/v1/history/summaries?${params}`);
220
+ if (!res2.ok) {
221
+ let errorMsg = `Failed to get summaries: ${res2.status}`;
222
+ try {
223
+ const data = await res2.json();
224
+ if (data.error) errorMsg = data.error;
225
+ } catch {
226
+ }
227
+ console.error(errorMsg);
228
+ process.exit(1);
229
+ }
230
+ const rows2 = await res2.json();
231
+ for (const row of rows2.reverse()) {
232
+ console.log(formatMetaSummary(row));
233
+ }
234
+ return;
235
+ }
236
+ const name = resolveMindName(flags);
237
+ const client = getClient();
238
+ const url = client.api.minds[":name"].history.$url({ param: { name } });
239
+ if (flags.channel) url.searchParams.set("channel", flags.channel);
240
+ if (flags.session) url.searchParams.set("session", flags.session);
241
+ if (flags.preset) url.searchParams.set("preset", flags.preset);
242
+ if (flags.limit) url.searchParams.set("limit", flags.limit);
243
+ if (flags.full) url.searchParams.set("full", "true");
244
+ const res = await daemonFetch(urlOf(url));
245
+ if (!res.ok) {
246
+ let errorMsg = `Failed to get history: ${res.status}`;
247
+ try {
248
+ const data = await res.json();
249
+ if (data.error) errorMsg = data.error;
250
+ } catch {
251
+ }
252
+ console.error(errorMsg);
253
+ process.exit(1);
254
+ }
255
+ const rows = await res.json();
256
+ const compact = isCompact();
257
+ for (const row of rows.reverse()) {
258
+ if (compact && (row.type === "done" || row.type === "usage")) continue;
259
+ console.log(compact ? formatRowCompact(row) : formatRow(row));
260
+ }
261
+ }
262
+ export {
263
+ run
264
+ };
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-UKVWJRKN.js";
5
- import "./chunk-LRCG2JLP.js";
6
- import "./chunk-RPZZSXV3.js";
7
- import "./chunk-K3NQKI34.js";
4
+ } from "./chunk-PLDWHR4D.js";
5
+ import "./chunk-N7BLAHNE.js";
6
+ import "./chunk-4JSR7YO7.js";
7
+ import "./chunk-7KJOFUNN.js";
8
8
 
9
9
  // src/commands/mind-list.ts
10
10
  async function run(_args) {
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ MindManager,
4
+ getMindManager,
5
+ initMindManager
6
+ } from "./chunk-TAHX36HZ.js";
7
+ import "./chunk-CVL5IGIR.js";
8
+ import "./chunk-B2BVAIZ4.js";
9
+ import "./chunk-G53F3JA4.js";
10
+ import "./chunk-N3DNFPVA.js";
11
+ import "./chunk-OYAKCAVY.js";
12
+ import "./chunk-V45JXOWY.js";
13
+ import "./chunk-IS7WJ56Q.js";
14
+ import "./chunk-BTWAGDV5.js";
15
+ import "./chunk-M3K5AARV.js";
16
+ import "./chunk-PB65JZK2.js";
17
+ import "./chunk-BM474GX6.js";
18
+ import "./chunk-E5C7OWZ2.js";
19
+ import "./chunk-XWXBJQBE.js";
20
+ import "./chunk-BFWHBQK4.js";
21
+ import "./chunk-YUIHSKR6.js";
22
+ import "./chunk-U5BTYSAL.js";
23
+ import "./chunk-BDK73LK6.js";
24
+ import "./chunk-6OWJXUAR.js";
25
+ import "./chunk-N7BLAHNE.js";
26
+ import "./chunk-4JSR7YO7.js";
27
+ import "./chunk-7KJOFUNN.js";
28
+ export {
29
+ MindManager,
30
+ getMindManager,
31
+ initMindManager
32
+ };
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  parseArgs
7
7
  } from "./chunk-D424ZQGI.js";
8
- import "./chunk-K3NQKI34.js";
8
+ import "./chunk-7KJOFUNN.js";
9
9
 
10
10
  // src/commands/mind-profile.ts
11
11
  async function run(args) {
@@ -25,7 +25,7 @@ async function run(args) {
25
25
  );
26
26
  process.exit(1);
27
27
  }
28
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
28
+ const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
29
29
  const body = {};
30
30
  if (displayName) body.displayName = displayName;
31
31
  if (description) body.description = description;
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ sleepMind,
4
+ startMindFull,
5
+ startSpiritFull,
6
+ stopMindFull,
7
+ stopSpiritFull,
8
+ wakeMind
9
+ } from "./chunk-TAHX36HZ.js";
10
+ import "./chunk-CVL5IGIR.js";
11
+ import "./chunk-B2BVAIZ4.js";
12
+ import "./chunk-G53F3JA4.js";
13
+ import "./chunk-N3DNFPVA.js";
14
+ import "./chunk-OYAKCAVY.js";
15
+ import "./chunk-V45JXOWY.js";
16
+ import "./chunk-IS7WJ56Q.js";
17
+ import "./chunk-BTWAGDV5.js";
18
+ import "./chunk-M3K5AARV.js";
19
+ import "./chunk-PB65JZK2.js";
20
+ import "./chunk-BM474GX6.js";
21
+ import "./chunk-E5C7OWZ2.js";
22
+ import "./chunk-XWXBJQBE.js";
23
+ import "./chunk-BFWHBQK4.js";
24
+ import "./chunk-YUIHSKR6.js";
25
+ import "./chunk-U5BTYSAL.js";
26
+ import "./chunk-BDK73LK6.js";
27
+ import "./chunk-6OWJXUAR.js";
28
+ import "./chunk-N7BLAHNE.js";
29
+ import "./chunk-4JSR7YO7.js";
30
+ import "./chunk-7KJOFUNN.js";
31
+ export {
32
+ sleepMind,
33
+ startMindFull,
34
+ startSpiritFull,
35
+ stopMindFull,
36
+ stopSpiritFull,
37
+ wakeMind
38
+ };
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  resolveMindName
4
4
  } from "./chunk-NAOW2CLO.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-UKVWJRKN.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-PLDWHR4D.js";
11
+ import "./chunk-N7BLAHNE.js";
12
+ import "./chunk-4JSR7YO7.js";
13
+ import "./chunk-7KJOFUNN.js";
14
14
 
15
15
  // src/commands/mind-sleep.ts
16
16
  async function run(args) {
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-NAOW2CLO.js";
5
5
  import {
6
6
  daemonFetch
7
- } from "./chunk-UKVWJRKN.js";
8
- import "./chunk-LRCG2JLP.js";
9
- import "./chunk-RPZZSXV3.js";
10
- import "./chunk-K3NQKI34.js";
7
+ } from "./chunk-PLDWHR4D.js";
8
+ import "./chunk-N7BLAHNE.js";
9
+ import "./chunk-4JSR7YO7.js";
10
+ import "./chunk-7KJOFUNN.js";
11
11
 
12
12
  // src/commands/mind-status.ts
13
13
  async function run(args) {