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,175 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- exec
4
- } from "./chunk-KIEPMIM5.js";
5
- import "./chunk-VH33ZWMW.js";
6
- import {
7
- daemonFetch
8
- } from "./chunk-UKVWJRKN.js";
9
- import "./chunk-LRCG2JLP.js";
10
- import "./chunk-RPZZSXV3.js";
11
- import "./chunk-K3NQKI34.js";
12
-
13
- // src/commands/extension.ts
14
- import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "fs";
15
- import { resolve } from "path";
16
- function extensionsNpmDir() {
17
- const home = process.env.VOLUTE_HOME ?? resolve(process.env.HOME ?? "", ".volute");
18
- return resolve(home, "extensions", "_npm");
19
- }
20
- function ensureExtensionsNpmDir() {
21
- const dir = extensionsNpmDir();
22
- mkdirSync(dir, { recursive: true });
23
- const pkgPath = resolve(dir, "package.json");
24
- if (!existsSync(pkgPath)) {
25
- writeFileSync(pkgPath, '{"private":true,"dependencies":{}}\n');
26
- }
27
- return dir;
28
- }
29
- async function run(args) {
30
- const subcommand = args[0];
31
- switch (subcommand) {
32
- case "list":
33
- await listExtensions();
34
- break;
35
- case "install":
36
- await installExtension(args.slice(1));
37
- break;
38
- case "uninstall":
39
- await uninstallExtension(args.slice(1));
40
- break;
41
- case "--help":
42
- case "-h":
43
- case void 0:
44
- printUsage();
45
- break;
46
- default:
47
- console.error(`Unknown subcommand: ${subcommand}`);
48
- printUsage();
49
- process.exit(1);
50
- }
51
- }
52
- function printUsage() {
53
- console.log(`Usage:
54
- volute extension list List installed extensions
55
- volute extension install <package> Install a third-party extension
56
- volute extension uninstall <package> Uninstall a third-party extension`);
57
- }
58
- async function listExtensions() {
59
- const res = await daemonFetch("/api/extensions");
60
- if (!res.ok) {
61
- const body = await res.json().catch(() => ({ error: "Unknown error" }));
62
- console.error(`Error: ${body.error}`);
63
- process.exit(1);
64
- }
65
- const extensions = await res.json();
66
- if (extensions.length === 0) {
67
- console.log("No extensions installed.");
68
- return;
69
- }
70
- console.log("Extensions:\n");
71
- for (const ext of extensions) {
72
- console.log(` ${ext.id} \u2014 ${ext.name} v${ext.version}`);
73
- if (ext.description) console.log(` ${ext.description}`);
74
- }
75
- }
76
- function extensionsConfigPath() {
77
- const home = process.env.VOLUTE_HOME ?? resolve(process.env.HOME ?? "", ".volute");
78
- return resolve(home, "system", "extensions.json");
79
- }
80
- function readConfig() {
81
- const configPath = extensionsConfigPath();
82
- if (!existsSync(configPath)) return [];
83
- try {
84
- const data = JSON.parse(readFileSync(configPath, "utf-8"));
85
- return Array.isArray(data) ? data : [];
86
- } catch (err) {
87
- console.error(
88
- `Warning: failed to read extensions config at ${configPath}: ${err.message}`
89
- );
90
- return [];
91
- }
92
- }
93
- function writeConfig(packages) {
94
- const configPath = extensionsConfigPath();
95
- mkdirSync(resolve(configPath, ".."), { recursive: true });
96
- writeFileSync(configPath, `${JSON.stringify(packages, null, 2)}
97
- `);
98
- }
99
- async function installExtension(args) {
100
- const pkg = args[0];
101
- if (!pkg) {
102
- console.error("Usage: volute extension install <package>");
103
- process.exit(1);
104
- }
105
- const packages = readConfig();
106
- if (packages.includes(pkg)) {
107
- console.log(`Extension "${pkg}" is already installed.`);
108
- return;
109
- }
110
- const dir = ensureExtensionsNpmDir();
111
- console.log(`Installing "${pkg}"...`);
112
- try {
113
- await exec("npm", ["install", pkg], { cwd: dir });
114
- } catch (err) {
115
- console.error(`Failed to install "${pkg}": ${err.message}`);
116
- process.exit(1);
117
- }
118
- packages.push(pkg);
119
- writeConfig(packages);
120
- console.log(`Installed "${pkg}".`);
121
- console.log("Restart the daemon (`volute restart`) to load the extension.");
122
- }
123
- async function uninstallExtension(args) {
124
- const pkg = args[0];
125
- if (!pkg) {
126
- console.error("Usage: volute extension uninstall <package>");
127
- process.exit(1);
128
- }
129
- const packages = readConfig();
130
- const idx = packages.indexOf(pkg);
131
- if (idx === -1) {
132
- console.error(`Extension "${pkg}" is not installed.`);
133
- process.exit(1);
134
- }
135
- await cleanupExtensionSkills(pkg);
136
- packages.splice(idx, 1);
137
- writeConfig(packages);
138
- try {
139
- await exec("npm", ["uninstall", pkg], { cwd: extensionsNpmDir() });
140
- } catch (err) {
141
- console.warn(
142
- ` Warning: npm uninstall failed (package may have been manually removed): ${err.message}`
143
- );
144
- }
145
- console.log(`Removed "${pkg}".`);
146
- console.log("Restart the daemon (`volute restart`) to unload the extension.");
147
- }
148
- async function cleanupExtensionSkills(pkg) {
149
- try {
150
- const pkgDir = resolve(extensionsNpmDir(), "node_modules", pkg);
151
- if (!existsSync(pkgDir)) return;
152
- const { createRequire } = await import("module");
153
- const require2 = createRequire(resolve(extensionsNpmDir(), "noop.js"));
154
- const mod = require2(pkg);
155
- const manifest = mod.default ?? mod.extension ?? mod;
156
- if (!manifest?.skillsDir || !existsSync(manifest.skillsDir)) return;
157
- const skillDirs = readdirSync(manifest.skillsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
158
- for (const skillId of skillDirs) {
159
- await daemonFetch(`/api/skills/defaults/list/${encodeURIComponent(skillId)}`, {
160
- method: "DELETE"
161
- }).catch(() => {
162
- });
163
- await daemonFetch(`/api/skills/${encodeURIComponent(skillId)}`, {
164
- method: "DELETE"
165
- }).catch(() => {
166
- });
167
- console.log(` Removed skill: ${skillId}`);
168
- }
169
- } catch (err) {
170
- console.warn(` Warning: could not clean up skills for "${pkg}": ${err.message}`);
171
- }
172
- }
173
- export {
174
- run
175
- };
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- getExtensionStandardSkills,
4
- getLoadedExtensions,
5
- loadAllExtensions,
6
- notifyExtensionsDaemonStart,
7
- notifyExtensionsDaemonStop,
8
- notifyExtensionsMindStart,
9
- notifyExtensionsMindStop
10
- } from "./chunk-A2A4KLFE.js";
11
- import "./chunk-PB65JZK2.js";
12
- import "./chunk-JYVGHWEJ.js";
13
- import "./chunk-KVK2DLWI.js";
14
- import "./chunk-C7I35G4R.js";
15
- import "./chunk-YUIHSKR6.js";
16
- import "./chunk-KIEPMIM5.js";
17
- import "./chunk-VH33ZWMW.js";
18
- import "./chunk-N432I7QH.js";
19
- import "./chunk-LRCG2JLP.js";
20
- import "./chunk-RPZZSXV3.js";
21
- import "./chunk-K3NQKI34.js";
22
- export {
23
- getExtensionStandardSkills,
24
- getLoadedExtensions,
25
- loadAllExtensions,
26
- notifyExtensionsDaemonStart,
27
- notifyExtensionsDaemonStop,
28
- notifyExtensionsMindStart,
29
- notifyExtensionsMindStop
30
- };
@@ -1,128 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- resolveMindName
4
- } from "./chunk-NAOW2CLO.js";
5
- import {
6
- getClient,
7
- urlOf
8
- } from "./chunk-4RQBJWQX.js";
9
- import {
10
- daemonFetch
11
- } from "./chunk-UKVWJRKN.js";
12
- import {
13
- parseArgs
14
- } from "./chunk-D424ZQGI.js";
15
- import "./chunk-LRCG2JLP.js";
16
- import "./chunk-RPZZSXV3.js";
17
- import "./chunk-K3NQKI34.js";
18
-
19
- // src/commands/history.ts
20
- function normalizeTimestamp(dateStr) {
21
- return dateStr.endsWith("Z") ? dateStr : `${dateStr}Z`;
22
- }
23
- function formatRow(row) {
24
- const time = new Date(normalizeTimestamp(row.created_at)).toLocaleString();
25
- const channel = row.channel ?? "";
26
- switch (row.type) {
27
- case "inbound":
28
- case "outbound": {
29
- const sender = row.sender ?? (row.type === "outbound" ? "mind" : "unknown");
30
- return `[${time}] [${channel}] ${sender}: ${row.content ?? ""}`;
31
- }
32
- case "text":
33
- return `[${time}] [text] ${row.content ?? ""}`;
34
- case "thinking":
35
- return `[${time}] [thinking] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
36
- case "tool_use": {
37
- let toolName = "unknown";
38
- if (row.metadata) {
39
- try {
40
- const meta = JSON.parse(row.metadata);
41
- toolName = meta.name ?? toolName;
42
- } catch {
43
- }
44
- }
45
- return `[${time}] [tool] ${toolName}${row.content ? `: ${row.content.slice(0, 100)}` : ""}`;
46
- }
47
- case "tool_result":
48
- return `[${time}] [result] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
49
- case "usage": {
50
- if (row.metadata) {
51
- try {
52
- const meta = JSON.parse(row.metadata);
53
- return `[${time}] [usage] in=${meta.input_tokens ?? 0} out=${meta.output_tokens ?? 0}`;
54
- } catch {
55
- }
56
- }
57
- return `[${time}] [usage]`;
58
- }
59
- case "done":
60
- return `[${time}] [done]`;
61
- case "log": {
62
- let category = "";
63
- if (row.metadata) {
64
- try {
65
- const meta = JSON.parse(row.metadata);
66
- category = meta.category ? `${meta.category}: ` : "";
67
- } catch {
68
- }
69
- }
70
- return `[${time}] [log] ${category}${row.content ?? ""}`;
71
- }
72
- case "summary": {
73
- let range = "";
74
- if (row.metadata) {
75
- try {
76
- const meta = JSON.parse(row.metadata);
77
- if (meta.from_time && meta.to_time) {
78
- const from = new Date(normalizeTimestamp(meta.from_time)).toLocaleTimeString();
79
- const to = new Date(normalizeTimestamp(meta.to_time)).toLocaleTimeString();
80
- range = ` (${from}\u2013${to})`;
81
- }
82
- } catch {
83
- }
84
- }
85
- return `[${time}] [summary${range}] ${row.content ?? ""}`;
86
- }
87
- case "session_start":
88
- return `[${time}] [session_start] ${row.session ?? ""}`;
89
- default:
90
- return `[${time}] [${row.type}] ${row.content ?? ""}`;
91
- }
92
- }
93
- async function run(args) {
94
- const { flags } = parseArgs(args, {
95
- mind: { type: "string" },
96
- channel: { type: "string" },
97
- session: { type: "string" },
98
- preset: { type: "string" },
99
- limit: { type: "string" },
100
- full: { type: "boolean" }
101
- });
102
- const name = resolveMindName(flags);
103
- const client = getClient();
104
- const url = client.api.minds[":name"].history.$url({ param: { name } });
105
- if (flags.channel) url.searchParams.set("channel", flags.channel);
106
- if (flags.session) url.searchParams.set("session", flags.session);
107
- if (flags.preset) url.searchParams.set("preset", flags.preset);
108
- if (flags.limit) url.searchParams.set("limit", flags.limit);
109
- if (flags.full) url.searchParams.set("full", "true");
110
- const res = await daemonFetch(urlOf(url));
111
- if (!res.ok) {
112
- let errorMsg = `Failed to get history: ${res.status}`;
113
- try {
114
- const data = await res.json();
115
- if (data.error) errorMsg = data.error;
116
- } catch {
117
- }
118
- console.error(errorMsg);
119
- process.exit(1);
120
- }
121
- const rows = await res.json();
122
- for (const row of rows.reverse()) {
123
- console.log(formatRow(row));
124
- }
125
- }
126
- export {
127
- run
128
- };
@@ -1,42 +0,0 @@
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-3Z2DPESO.js";
12
- import "./chunk-SKLSMHXO.js";
13
- import "./chunk-LOEJ4HPQ.js";
14
- import "./chunk-RVGLDGMI.js";
15
- import "./chunk-GY5HBI7A.js";
16
- import "./chunk-7J3HEVR7.js";
17
- import "./chunk-G53F3JA4.js";
18
- import "./chunk-OYAKCAVY.js";
19
- import "./chunk-2NGTS5UU.js";
20
- import "./chunk-A2A4KLFE.js";
21
- import "./chunk-PB65JZK2.js";
22
- import "./chunk-JYVGHWEJ.js";
23
- import "./chunk-KVK2DLWI.js";
24
- import "./chunk-C7I35G4R.js";
25
- import "./chunk-QTUVYI7W.js";
26
- import "./chunk-YUIHSKR6.js";
27
- import "./chunk-KIEPMIM5.js";
28
- import "./chunk-VH33ZWMW.js";
29
- import "./chunk-N432I7QH.js";
30
- import "./chunk-LRCG2JLP.js";
31
- import "./chunk-RPZZSXV3.js";
32
- import "./chunk-K3NQKI34.js";
33
- export {
34
- deliverMessage,
35
- linkToolResultToTurn,
36
- recordInbound,
37
- recordOutbound,
38
- resolveSleepAction,
39
- tagRecentInbound,
40
- tagUntaggedInbound,
41
- tagUntaggedOutbound
42
- };
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- MindManager,
4
- getMindManager,
5
- initMindManager
6
- } from "./chunk-3Z2DPESO.js";
7
- import "./chunk-SKLSMHXO.js";
8
- import "./chunk-LOEJ4HPQ.js";
9
- import "./chunk-RVGLDGMI.js";
10
- import "./chunk-GY5HBI7A.js";
11
- import "./chunk-7J3HEVR7.js";
12
- import "./chunk-G53F3JA4.js";
13
- import "./chunk-OYAKCAVY.js";
14
- import "./chunk-2NGTS5UU.js";
15
- import "./chunk-A2A4KLFE.js";
16
- import "./chunk-PB65JZK2.js";
17
- import "./chunk-JYVGHWEJ.js";
18
- import "./chunk-KVK2DLWI.js";
19
- import "./chunk-C7I35G4R.js";
20
- import "./chunk-QTUVYI7W.js";
21
- import "./chunk-YUIHSKR6.js";
22
- import "./chunk-KIEPMIM5.js";
23
- import "./chunk-VH33ZWMW.js";
24
- import "./chunk-N432I7QH.js";
25
- import "./chunk-LRCG2JLP.js";
26
- import "./chunk-RPZZSXV3.js";
27
- import "./chunk-K3NQKI34.js";
28
- export {
29
- MindManager,
30
- getMindManager,
31
- initMindManager
32
- };
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- sleepMind,
4
- startMindFull,
5
- startSpiritFull,
6
- stopMindFull,
7
- stopSpiritFull,
8
- wakeMind
9
- } from "./chunk-3Z2DPESO.js";
10
- import "./chunk-SKLSMHXO.js";
11
- import "./chunk-LOEJ4HPQ.js";
12
- import "./chunk-RVGLDGMI.js";
13
- import "./chunk-GY5HBI7A.js";
14
- import "./chunk-7J3HEVR7.js";
15
- import "./chunk-G53F3JA4.js";
16
- import "./chunk-OYAKCAVY.js";
17
- import "./chunk-2NGTS5UU.js";
18
- import "./chunk-A2A4KLFE.js";
19
- import "./chunk-PB65JZK2.js";
20
- import "./chunk-JYVGHWEJ.js";
21
- import "./chunk-KVK2DLWI.js";
22
- import "./chunk-C7I35G4R.js";
23
- import "./chunk-QTUVYI7W.js";
24
- import "./chunk-YUIHSKR6.js";
25
- import "./chunk-KIEPMIM5.js";
26
- import "./chunk-VH33ZWMW.js";
27
- import "./chunk-N432I7QH.js";
28
- import "./chunk-LRCG2JLP.js";
29
- import "./chunk-RPZZSXV3.js";
30
- import "./chunk-K3NQKI34.js";
31
- export {
32
- sleepMind,
33
- startMindFull,
34
- startSpiritFull,
35
- stopMindFull,
36
- stopSpiritFull,
37
- wakeMind
38
- };
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- Scheduler,
4
- getScheduler,
5
- initScheduler
6
- } from "./chunk-3Z2DPESO.js";
7
- import "./chunk-SKLSMHXO.js";
8
- import "./chunk-LOEJ4HPQ.js";
9
- import "./chunk-RVGLDGMI.js";
10
- import "./chunk-GY5HBI7A.js";
11
- import "./chunk-7J3HEVR7.js";
12
- import "./chunk-G53F3JA4.js";
13
- import "./chunk-OYAKCAVY.js";
14
- import "./chunk-2NGTS5UU.js";
15
- import "./chunk-A2A4KLFE.js";
16
- import "./chunk-PB65JZK2.js";
17
- import "./chunk-JYVGHWEJ.js";
18
- import "./chunk-KVK2DLWI.js";
19
- import "./chunk-C7I35G4R.js";
20
- import "./chunk-QTUVYI7W.js";
21
- import "./chunk-YUIHSKR6.js";
22
- import "./chunk-KIEPMIM5.js";
23
- import "./chunk-VH33ZWMW.js";
24
- import "./chunk-N432I7QH.js";
25
- import "./chunk-LRCG2JLP.js";
26
- import "./chunk-RPZZSXV3.js";
27
- import "./chunk-K3NQKI34.js";
28
- export {
29
- Scheduler,
30
- getScheduler,
31
- initScheduler
32
- };
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- SleepManager,
4
- getSleepManager,
5
- getSleepManagerIfReady,
6
- initSleepManager,
7
- matchesGlob
8
- } from "./chunk-3Z2DPESO.js";
9
- import "./chunk-SKLSMHXO.js";
10
- import "./chunk-LOEJ4HPQ.js";
11
- import "./chunk-RVGLDGMI.js";
12
- import "./chunk-GY5HBI7A.js";
13
- import "./chunk-7J3HEVR7.js";
14
- import "./chunk-G53F3JA4.js";
15
- import "./chunk-OYAKCAVY.js";
16
- import "./chunk-2NGTS5UU.js";
17
- import "./chunk-A2A4KLFE.js";
18
- import "./chunk-PB65JZK2.js";
19
- import "./chunk-JYVGHWEJ.js";
20
- import "./chunk-KVK2DLWI.js";
21
- import "./chunk-C7I35G4R.js";
22
- import "./chunk-QTUVYI7W.js";
23
- import "./chunk-YUIHSKR6.js";
24
- import "./chunk-KIEPMIM5.js";
25
- import "./chunk-VH33ZWMW.js";
26
- import "./chunk-N432I7QH.js";
27
- import "./chunk-LRCG2JLP.js";
28
- import "./chunk-RPZZSXV3.js";
29
- import "./chunk-K3NQKI34.js";
30
- export {
31
- SleepManager,
32
- getSleepManager,
33
- getSleepManagerIfReady,
34
- initSleepManager,
35
- matchesGlob
36
- };
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- ensureSpiritProject,
4
- getSpiritModel,
5
- spiritDir,
6
- syncSpiritTemplate
7
- } from "./chunk-7J3HEVR7.js";
8
- import "./chunk-G53F3JA4.js";
9
- import "./chunk-C7I35G4R.js";
10
- import "./chunk-QTUVYI7W.js";
11
- import "./chunk-YUIHSKR6.js";
12
- import "./chunk-KIEPMIM5.js";
13
- import "./chunk-VH33ZWMW.js";
14
- import "./chunk-N432I7QH.js";
15
- import "./chunk-LRCG2JLP.js";
16
- import "./chunk-RPZZSXV3.js";
17
- import "./chunk-K3NQKI34.js";
18
- export {
19
- ensureSpiritProject,
20
- getSpiritModel,
21
- spiritDir,
22
- syncSpiritTemplate
23
- };
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- ensureSystemDM,
4
- generateSystemReply,
5
- resetSystemDMCache,
6
- sendSystemMessage,
7
- sendSystemMessageDirect
8
- } from "./chunk-3Z2DPESO.js";
9
- import "./chunk-SKLSMHXO.js";
10
- import "./chunk-LOEJ4HPQ.js";
11
- import "./chunk-RVGLDGMI.js";
12
- import "./chunk-GY5HBI7A.js";
13
- import "./chunk-7J3HEVR7.js";
14
- import "./chunk-G53F3JA4.js";
15
- import "./chunk-OYAKCAVY.js";
16
- import "./chunk-2NGTS5UU.js";
17
- import "./chunk-A2A4KLFE.js";
18
- import "./chunk-PB65JZK2.js";
19
- import "./chunk-JYVGHWEJ.js";
20
- import "./chunk-KVK2DLWI.js";
21
- import "./chunk-C7I35G4R.js";
22
- import "./chunk-QTUVYI7W.js";
23
- import "./chunk-YUIHSKR6.js";
24
- import "./chunk-KIEPMIM5.js";
25
- import "./chunk-VH33ZWMW.js";
26
- import "./chunk-N432I7QH.js";
27
- import "./chunk-LRCG2JLP.js";
28
- import "./chunk-RPZZSXV3.js";
29
- import "./chunk-K3NQKI34.js";
30
- export {
31
- ensureSystemDM,
32
- generateSystemReply,
33
- resetSystemDMCache,
34
- sendSystemMessage,
35
- sendSystemMessageDirect
36
- };
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run
4
- } from "./chunk-NPKSDYA2.js";
5
- import "./chunk-NNB4WIG7.js";
6
- import "./chunk-KIEPMIM5.js";
7
- import "./chunk-VH33ZWMW.js";
8
- import {
9
- readGlobalConfig
10
- } from "./chunk-N432I7QH.js";
11
- import "./chunk-D424ZQGI.js";
12
- import "./chunk-LRCG2JLP.js";
13
- import "./chunk-RPZZSXV3.js";
14
- import "./chunk-K3NQKI34.js";
15
- export {
16
- readGlobalConfig,
17
- run
18
- };