volute 0.32.0 → 0.33.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 (97) hide show
  1. package/README.md +16 -0
  2. package/dist/{activity-events-HETAODOK.js → activity-events-XJO3P4RR.js} +1 -1
  3. package/dist/{ai-service-ZIPCV3MX.js → ai-service-SBY2WG7O.js} +2 -2
  4. package/dist/api.d.ts +666 -848
  5. package/dist/{auth-6DMGES3I.js → auth-GKCDSO4T.js} +2 -2
  6. package/dist/{chat-XT4OBJBU.js → chat-U5ZOME3O.js} +8 -8
  7. package/dist/{chunk-QBQ424EM.js → chunk-3Z2DPESO.js} +457 -203
  8. package/dist/chunk-6LXAAQ43.js +22 -0
  9. package/dist/{spirit-N4W4UQRH.js → chunk-7J3HEVR7.js} +12 -9
  10. package/dist/{chunk-WKF5FEFK.js → chunk-A2A4KLFE.js} +54 -155
  11. package/dist/{chunk-D5G5YOPL.js → chunk-C7I35G4R.js} +3 -3
  12. package/dist/{chunk-SX5TKJBZ.js → chunk-GY5HBI7A.js} +1 -1
  13. package/dist/{chunk-2FLJ63GU.js → chunk-JUKK7FPS.js} +1 -1
  14. package/dist/{chunk-TDRYEPH4.js → chunk-JYVGHWEJ.js} +2 -2
  15. package/dist/chunk-KIEPMIM5.js +59 -0
  16. package/dist/{chunk-QZANELPX.js → chunk-KVK2DLWI.js} +1 -0
  17. package/dist/{chunk-R7E6CRVQ.js → chunk-LOEJ4HPQ.js} +1 -1
  18. package/dist/{chunk-TSXLLQZW.js → chunk-N432I7QH.js} +9 -0
  19. package/dist/{chunk-LSGWR54X.js → chunk-NNB4WIG7.js} +1 -1
  20. package/dist/{chunk-JJ7W6WSB.js → chunk-NPKSDYA2.js} +2 -2
  21. package/dist/chunk-OYAKCAVY.js +29 -0
  22. package/dist/{chunk-IYDIE3HG.js → chunk-QTUVYI7W.js} +1 -1
  23. package/dist/{chunk-S6NFERDC.js → chunk-RVGLDGMI.js} +1 -1
  24. package/dist/{chunk-LGB6JBHI.js → chunk-VH33ZWMW.js} +4 -54
  25. package/dist/cli.js +26 -18
  26. package/dist/{clock-2UOZ6JPU.js → clock-BVH3V6E3.js} +5 -5
  27. package/dist/{cloud-sync-JN3NWKEM.js → cloud-sync-4NWLMFVH.js} +15 -11
  28. package/dist/{conversations-3O5O6AS3.js → conversations-AWI5SZW2.js} +2 -2
  29. package/dist/{create-WBBYI6V7.js → create-2FK7Z46Y.js} +1 -1
  30. package/dist/{create-RNLNCORE.js → create-YWD2TIP4.js} +4 -4
  31. package/dist/{daemon-restart-NGFHFAUF.js → daemon-restart-GOBUKLX7.js} +6 -5
  32. package/dist/daemon.js +1182 -1031
  33. package/dist/delivery-manager-PFAKEJTC.js +32 -0
  34. package/dist/{down-TB3ESMNP.js → down-FWWTEKXM.js} +4 -3
  35. package/dist/{extension-FQ5D3NCC.js → extension-OBTGKQQD.js} +2 -1
  36. package/dist/{extensions-GDYWQXC4.js → extensions-KYNTVTMO.js} +7 -6
  37. package/dist/isolation-LLAYQYDY.js +22 -0
  38. package/dist/message-delivery-DFF5SJRM.js +42 -0
  39. package/dist/{mind-2B6M7Y25.js → mind-IOJFLEM5.js} +13 -7
  40. package/dist/{mind-activity-tracker-NZZT2NTT.js → mind-activity-tracker-F6O4Q2SL.js} +2 -2
  41. package/dist/mind-manager-NBJF5D26.js +32 -0
  42. package/dist/mind-profile-P67FEHOY.js +47 -0
  43. package/dist/mind-service-2MQ6UK5N.js +38 -0
  44. package/dist/{package-PK6JUFL3.js → package-U3VFO273.js} +2 -1
  45. package/dist/read-stdin-HQJ7774D.js +8 -0
  46. package/dist/{sandbox-JANNTX6U.js → sandbox-GJOK4QLQ.js} +2 -2
  47. package/dist/scheduler-ZZ7XGQG6.js +32 -0
  48. package/dist/seed-QDYVLG74.js +11 -0
  49. package/dist/seed-check-S2IX25RL.js +32 -0
  50. package/dist/seed-cmd-DKOUFEAU.js +36 -0
  51. package/dist/{seed-ALUQ55FF.js → seed-create-4XBBOLRH.js} +5 -5
  52. package/dist/{sprout-L2GFOVF7.js → seed-sprout-GQEIIQRT.js} +19 -6
  53. package/dist/{send-3MI36LEF.js → send-QIV2INHB.js} +51 -49
  54. package/dist/{setup-SZIARWI6.js → setup-TISPCO22.js} +3 -1
  55. package/dist/{setup-WENLVPVP.js → setup-XMCBE3LF.js} +7 -5
  56. package/dist/skills/imagegen/SKILL.md +11 -7
  57. package/dist/skills/imagegen/scripts/imagegen.ts +146 -25
  58. package/dist/skills/orientation/SKILL.md +9 -2
  59. package/dist/skills/seed-nurture/SKILL.md +42 -0
  60. package/dist/skills/volute-mind/SKILL.md +4 -0
  61. package/dist/{skills-XNZK6P4K.js → skills-7FV7EJTE.js} +4 -3
  62. package/dist/sleep-manager-JTXSN7NV.js +36 -0
  63. package/dist/spirit-VRONKFMF.js +23 -0
  64. package/dist/sprout-WKLZXUIQ.js +11 -0
  65. package/dist/{status-TCUMUO6M.js → status-3JBTFSMI.js} +3 -2
  66. package/dist/{system-chat-NPYFYZVI.js → system-chat-JAPOJ3KE.js} +15 -11
  67. package/dist/{systems-DHBKVYEY.js → systems-XRI52VCH.js} +2 -2
  68. package/dist/{up-6I6BHRTO.js → up-M5AS6SBV.js} +5 -4
  69. package/dist/{update-QVPRF6GR.js → update-UD543CXX.js} +3 -2
  70. package/dist/{version-notify-TCKWBZZG.js → version-notify-NBI2MTJO.js} +18 -15
  71. package/dist/volute-config-HD7WWUQC.js +10 -0
  72. package/dist/web-assets/assets/index-CWJrVveV.css +1 -0
  73. package/dist/web-assets/assets/index-DJt14FRI.js +75 -0
  74. package/dist/web-assets/index.html +2 -2
  75. package/package.json +2 -1
  76. package/templates/claude/src/lib/stream-consumer.ts +38 -0
  77. package/templates/codex/src/agent.ts +1 -0
  78. package/dist/delivery-manager-SDVXFD4W.js +0 -28
  79. package/dist/message-delivery-2FIM7QKO.js +0 -32
  80. package/dist/mind-manager-BNCMGYXW.js +0 -28
  81. package/dist/mind-service-AV273WT4.js +0 -34
  82. package/dist/sleep-manager-53DZOWW7.js +0 -32
  83. package/dist/web-assets/assets/index-Bui7U9Uu.css +0 -1
  84. package/dist/web-assets/assets/index-e36DIo1b.js +0 -73
  85. package/dist/{accept-74M7I4RZ.js → accept-D5VBM7JW.js} +3 -3
  86. package/dist/{bridge-BVCBTGPF.js → bridge-TXWWPPOJ.js} +3 -3
  87. package/dist/{env-RLYQBOOP.js → env-JCOF2222.js} +3 -3
  88. package/dist/{files-EAMPO2SJ.js → files-65PMW5IK.js} +3 -3
  89. package/dist/{history-FO5PHBQ5.js → history-DKCDI3JO.js} +3 -3
  90. package/dist/{list-DW2VRTOZ.js → list-JQ463EDA.js} +3 -3
  91. package/dist/{login-7CHPW2PN.js → login-D7ETSU4R.js} +3 -3
  92. package/dist/{mind-sleep-B7BHJLH7.js → mind-sleep-WW2IX7JT.js} +3 -3
  93. package/dist/{mind-wake-GY3RFX7Y.js → mind-wake-VSSGW465.js} +3 -3
  94. package/dist/{read-5AMJRO3D.js → read-EBY56C33.js} +3 -3
  95. package/dist/{register-V2JZZKFK.js → register-HD74C4TT.js} +3 -3
  96. package/dist/{reject-33HEZMZ4.js → reject-UJKFBHRO.js} +3 -3
  97. package/dist/{skill-TUVOTW4Z.js → skill-PSQGRRJX.js} +3 -3
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ DeliveryManager,
4
+ getDeliveryManager,
5
+ initDeliveryManager
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
+ DeliveryManager,
30
+ getDeliveryManager,
31
+ initDeliveryManager
32
+ };
@@ -2,9 +2,10 @@
2
2
  import {
3
3
  run,
4
4
  stopDaemon
5
- } from "./chunk-2FLJ63GU.js";
6
- import "./chunk-LSGWR54X.js";
7
- import "./chunk-LGB6JBHI.js";
5
+ } from "./chunk-JUKK7FPS.js";
6
+ import "./chunk-NNB4WIG7.js";
7
+ import "./chunk-KIEPMIM5.js";
8
+ import "./chunk-VH33ZWMW.js";
8
9
  import "./chunk-LRCG2JLP.js";
9
10
  import "./chunk-RPZZSXV3.js";
10
11
  import "./chunk-K3NQKI34.js";
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exec
4
- } from "./chunk-LGB6JBHI.js";
4
+ } from "./chunk-KIEPMIM5.js";
5
+ import "./chunk-VH33ZWMW.js";
5
6
  import {
6
7
  daemonFetch
7
8
  } from "./chunk-UKVWJRKN.js";
@@ -7,14 +7,15 @@ import {
7
7
  notifyExtensionsDaemonStop,
8
8
  notifyExtensionsMindStart,
9
9
  notifyExtensionsMindStop
10
- } from "./chunk-WKF5FEFK.js";
10
+ } from "./chunk-A2A4KLFE.js";
11
11
  import "./chunk-PB65JZK2.js";
12
- import "./chunk-TDRYEPH4.js";
13
- import "./chunk-QZANELPX.js";
14
- import "./chunk-D5G5YOPL.js";
12
+ import "./chunk-JYVGHWEJ.js";
13
+ import "./chunk-KVK2DLWI.js";
14
+ import "./chunk-C7I35G4R.js";
15
15
  import "./chunk-YUIHSKR6.js";
16
- import "./chunk-LGB6JBHI.js";
17
- import "./chunk-TSXLLQZW.js";
16
+ import "./chunk-KIEPMIM5.js";
17
+ import "./chunk-VH33ZWMW.js";
18
+ import "./chunk-N432I7QH.js";
18
19
  import "./chunk-LRCG2JLP.js";
19
20
  import "./chunk-RPZZSXV3.js";
20
21
  import "./chunk-K3NQKI34.js";
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ chownMindDir,
4
+ createMindUser,
5
+ deleteMindUser,
6
+ ensureVoluteGroup,
7
+ isIsolationEnabled,
8
+ mindUserName,
9
+ wrapForIsolation
10
+ } from "./chunk-VH33ZWMW.js";
11
+ import "./chunk-LRCG2JLP.js";
12
+ import "./chunk-RPZZSXV3.js";
13
+ import "./chunk-K3NQKI34.js";
14
+ export {
15
+ chownMindDir,
16
+ createMindUser,
17
+ deleteMindUser,
18
+ ensureVoluteGroup,
19
+ isIsolationEnabled,
20
+ mindUserName,
21
+ wrapForIsolation
22
+ };
@@ -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-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
+ };
@@ -6,7 +6,7 @@ async function run(args) {
6
6
  const subcommand = args[0];
7
7
  switch (subcommand) {
8
8
  case "create":
9
- await import("./create-WBBYI6V7.js").then((m) => m.run(args.slice(1)));
9
+ await import("./create-2FK7Z46Y.js").then((m) => m.run(args.slice(1)));
10
10
  break;
11
11
  case "start":
12
12
  await import("./start-K2NCUUCG.js").then((m) => m.run(args.slice(1)));
@@ -29,7 +29,7 @@ async function run(args) {
29
29
  case "history": {
30
30
  const rest = args.slice(1);
31
31
  const historyArgs = transformMindFlag(rest);
32
- await import("./history-FO5PHBQ5.js").then((m) => m.run(historyArgs));
32
+ await import("./history-DKCDI3JO.js").then((m) => m.run(historyArgs));
33
33
  break;
34
34
  }
35
35
  case "upgrade":
@@ -42,16 +42,19 @@ async function run(args) {
42
42
  await import("./export-SUYRLI5Q.js").then((m) => m.run(args.slice(1)));
43
43
  break;
44
44
  case "seed":
45
- await import("./seed-ALUQ55FF.js").then((m) => m.run(args.slice(1)));
45
+ await import("./seed-QDYVLG74.js").then((m) => m.run(args.slice(1)));
46
46
  break;
47
47
  case "sprout":
48
- await import("./sprout-L2GFOVF7.js").then((m) => m.run(args.slice(1)));
48
+ await import("./sprout-WKLZXUIQ.js").then((m) => m.run(args.slice(1)));
49
+ break;
50
+ case "profile":
51
+ await import("./mind-profile-P67FEHOY.js").then((m) => m.run(args.slice(1)));
49
52
  break;
50
53
  case "sleep":
51
- await import("./mind-sleep-B7BHJLH7.js").then((m) => m.run(args.slice(1)));
54
+ await import("./mind-sleep-WW2IX7JT.js").then((m) => m.run(args.slice(1)));
52
55
  break;
53
56
  case "wake":
54
- await import("./mind-wake-GY3RFX7Y.js").then((m) => m.run(args.slice(1)));
57
+ await import("./mind-wake-VSSGW465.js").then((m) => m.run(args.slice(1)));
55
58
  break;
56
59
  case "split":
57
60
  await import("./split-STOROBYJ.js").then((m) => m.run(args.slice(1)));
@@ -86,6 +89,7 @@ function printUsage() {
86
89
  volute mind list
87
90
  volute mind status [name]
88
91
  volute mind history [name] [--channel <ch>] [--limit N] [--full]
92
+ volute mind profile [--mind <name>] [--display-name <name>] [--description <text>] [--avatar <path>]
89
93
  volute mind sprout
90
94
  volute mind sleep [name] [--wake-at <time>]
91
95
  volute mind wake [name]
@@ -95,7 +99,9 @@ function printUsage() {
95
99
  volute mind import <path> [--name <name>] [--session <path>] [--template <name>]
96
100
  volute mind export <name> [--include-env] [--include-identity] [--include-history] [--include-sessions] [--all] [--output <path>]
97
101
 
98
- Mind name can be omitted (where shown as [name]) if VOLUTE_MIND is set.`);
102
+ Mind name can be omitted (where shown as [name]) if VOLUTE_MIND is set.
103
+
104
+ Note: 'volute mind seed' and 'volute mind sprout' are now 'volute seed create' and 'volute seed sprout'.`);
99
105
  }
100
106
  export {
101
107
  run
@@ -4,8 +4,8 @@ import {
4
4
  markIdle,
5
5
  onMindEvent,
6
6
  stopAll
7
- } from "./chunk-R7E6CRVQ.js";
8
- import "./chunk-QZANELPX.js";
7
+ } from "./chunk-LOEJ4HPQ.js";
8
+ import "./chunk-KVK2DLWI.js";
9
9
  import "./chunk-YUIHSKR6.js";
10
10
  import "./chunk-LRCG2JLP.js";
11
11
  import "./chunk-RPZZSXV3.js";
@@ -0,0 +1,32 @@
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
+ };
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ resolveMindName
4
+ } from "./chunk-NAOW2CLO.js";
5
+ import {
6
+ parseArgs
7
+ } from "./chunk-D424ZQGI.js";
8
+ import "./chunk-K3NQKI34.js";
9
+
10
+ // src/commands/mind-profile.ts
11
+ async function run(args) {
12
+ const { flags } = parseArgs(args, {
13
+ mind: { type: "string" },
14
+ "display-name": { type: "string" },
15
+ description: { type: "string" },
16
+ avatar: { type: "string" }
17
+ });
18
+ const name = resolveMindName(flags);
19
+ const displayName = flags["display-name"];
20
+ const description = flags.description;
21
+ const avatar = flags.avatar;
22
+ if (!displayName && !description && !avatar) {
23
+ console.error(
24
+ "Usage: volute mind profile [--mind <name>] [--display-name <name>] [--description <text>] [--avatar <path>]"
25
+ );
26
+ process.exit(1);
27
+ }
28
+ const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
29
+ const body = {};
30
+ if (displayName) body.displayName = displayName;
31
+ if (description) body.description = description;
32
+ if (avatar) body.avatar = avatar;
33
+ const res = await daemonFetch(`/api/minds/${encodeURIComponent(name)}/profile`, {
34
+ method: "PATCH",
35
+ headers: { "Content-Type": "application/json" },
36
+ body: JSON.stringify(body)
37
+ });
38
+ if (!res.ok) {
39
+ const data = await res.json().catch(() => ({}));
40
+ console.error(data.error ?? `Failed to update profile (HTTP ${res.status})`);
41
+ process.exit(1);
42
+ }
43
+ console.log(`Profile updated for ${name}`);
44
+ }
45
+ export {
46
+ run
47
+ };
@@ -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-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
+ };
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "volute",
7
- version: "0.32.0",
7
+ version: "0.33.0",
8
8
  description: "CLI for creating and managing self-modifying AI minds powered by the Claude Agent SDK",
9
9
  type: "module",
10
10
  license: "MIT",
@@ -79,6 +79,7 @@ var package_default = {
79
79
  "drizzle-orm": "^0.45.1",
80
80
  hono: "^4.11.7",
81
81
  libsql: "^0.5.22",
82
+ replicate: "^1.4.0",
82
83
  telegraf: "^4.16.3",
83
84
  zod: "^4.3.6"
84
85
  },
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ readStdin
4
+ } from "./chunk-6LXAAQ43.js";
5
+ import "./chunk-K3NQKI34.js";
6
+ export {
7
+ readStdin
8
+ };
@@ -5,9 +5,9 @@ import {
5
5
  isSandboxEnabled,
6
6
  shellEscape,
7
7
  wrapForSandbox
8
- } from "./chunk-SX5TKJBZ.js";
8
+ } from "./chunk-GY5HBI7A.js";
9
9
  import "./chunk-YUIHSKR6.js";
10
- import "./chunk-TSXLLQZW.js";
10
+ import "./chunk-N432I7QH.js";
11
11
  import "./chunk-LRCG2JLP.js";
12
12
  import "./chunk-RPZZSXV3.js";
13
13
  import "./chunk-K3NQKI34.js";
@@ -0,0 +1,32 @@
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
+ };
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import "./chunk-K3NQKI34.js";
3
+
4
+ // src/commands/seed.ts
5
+ async function run(args) {
6
+ console.error("Note: `volute mind seed` is now `volute seed create`");
7
+ await import("./seed-create-4XBBOLRH.js").then((m) => m.run(args));
8
+ }
9
+ export {
10
+ run
11
+ };
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ parseArgs
4
+ } from "./chunk-D424ZQGI.js";
5
+ import "./chunk-K3NQKI34.js";
6
+
7
+ // src/commands/seed-check.ts
8
+ async function run(args) {
9
+ const { positional } = parseArgs(args, {});
10
+ const name = positional[0];
11
+ if (!name) {
12
+ console.error("Usage: volute seed check <name>");
13
+ process.exit(1);
14
+ }
15
+ const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
16
+ const res = await daemonFetch(`/api/minds/${encodeURIComponent(name)}/seed-check`);
17
+ if (!res.ok) {
18
+ if (res.status === 404) {
19
+ console.log(`Seed "${name}" not found \u2014 it may have been deleted or already sprouted.`);
20
+ } else {
21
+ console.error(`seed check failed for ${name}: HTTP ${res.status}`);
22
+ }
23
+ return;
24
+ }
25
+ const data = await res.json();
26
+ if (data.output) {
27
+ console.log(data.output);
28
+ }
29
+ }
30
+ export {
31
+ run
32
+ };
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ import "./chunk-K3NQKI34.js";
3
+
4
+ // src/commands/seed-cmd.ts
5
+ async function run(args) {
6
+ const subcommand = args[0];
7
+ switch (subcommand) {
8
+ case "create":
9
+ await import("./seed-create-4XBBOLRH.js").then((m) => m.run(args.slice(1)));
10
+ break;
11
+ case "sprout":
12
+ await import("./seed-sprout-GQEIIQRT.js").then((m) => m.run(args.slice(1)));
13
+ break;
14
+ case "check":
15
+ await import("./seed-check-S2IX25RL.js").then((m) => m.run(args.slice(1)));
16
+ break;
17
+ case "--help":
18
+ case "-h":
19
+ case void 0:
20
+ printUsage();
21
+ break;
22
+ default:
23
+ printUsage();
24
+ process.exit(1);
25
+ }
26
+ }
27
+ function printUsage() {
28
+ console.log(`volute seed \u2014 seed lifecycle
29
+
30
+ volute seed create <name> Plant a new seed
31
+ volute seed sprout Complete orientation and become a full mind
32
+ volute seed check <name> Check seed readiness (used by spirit scheduler)`);
33
+ }
34
+ export {
35
+ run
36
+ };
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-D424ZQGI.js";
8
8
  import "./chunk-K3NQKI34.js";
9
9
 
10
- // src/commands/seed.ts
10
+ // src/commands/seed-create.ts
11
11
  async function chooseModel(daemonFetch) {
12
12
  const res = await daemonFetch("/api/system/ai/models");
13
13
  if (!res.ok) {
@@ -42,7 +42,7 @@ async function run(args) {
42
42
  const name = positional[0];
43
43
  if (!name) {
44
44
  console.error(
45
- "Usage: volute mind seed <name> [--template <name>] [--model <model>] [--description <text>] [--skills <list|none>] [--created-by <username>]"
45
+ "Usage: volute seed create <name> [--template <name>] [--model <model>] [--description <text>] [--skills <list|none>] [--created-by <username>]"
46
46
  );
47
47
  process.exit(1);
48
48
  }
@@ -54,13 +54,13 @@ async function run(args) {
54
54
  let model = flags.model;
55
55
  let template = flags.template;
56
56
  if (!template) {
57
- const { resolveTemplate } = await import("./ai-service-ZIPCV3MX.js");
57
+ const { resolveTemplate } = await import("./ai-service-SBY2WG7O.js");
58
58
  template = resolveTemplate(model);
59
59
  }
60
60
  if (template !== "claude" && !model) {
61
61
  if (process.env.VOLUTE_MIND || !process.stdin.isTTY) {
62
- const { getSpiritModel } = await import("./spirit-N4W4UQRH.js");
63
- const { qualifyModelId } = await import("./ai-service-ZIPCV3MX.js");
62
+ const { getSpiritModel } = await import("./spirit-VRONKFMF.js");
63
+ const { qualifyModelId } = await import("./ai-service-SBY2WG7O.js");
64
64
  const spiritModel = getSpiritModel();
65
65
  if (spiritModel) {
66
66
  model = template === "pi" ? qualifyModelId(spiritModel) : spiritModel;
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getStandardSkillsWithExtensions
4
- } from "./chunk-D5G5YOPL.js";
4
+ } from "./chunk-C7I35G4R.js";
5
5
  import "./chunk-YUIHSKR6.js";
6
- import "./chunk-LGB6JBHI.js";
7
- import "./chunk-TSXLLQZW.js";
6
+ import "./chunk-KIEPMIM5.js";
7
+ import "./chunk-VH33ZWMW.js";
8
+ import "./chunk-N432I7QH.js";
8
9
  import {
9
10
  findMind,
10
11
  mindDir
@@ -12,14 +13,14 @@ import {
12
13
  import "./chunk-RPZZSXV3.js";
13
14
  import "./chunk-K3NQKI34.js";
14
15
 
15
- // src/commands/sprout.ts
16
+ // src/commands/seed-sprout.ts
16
17
  import { existsSync, readFileSync } from "fs";
17
18
  import { resolve } from "path";
18
19
  var ORIENTATION_MARKER = "You don't have a soul yet";
19
20
  async function run(_args) {
20
21
  const mindName = process.env.VOLUTE_MIND;
21
22
  if (!mindName) {
22
- console.error("volute mind sprout must be run by a mind (VOLUTE_MIND not set)");
23
+ console.error("volute seed sprout must be run by a mind (VOLUTE_MIND not set)");
23
24
  process.exit(1);
24
25
  }
25
26
  const entry = await findMind(mindName);
@@ -49,9 +50,21 @@ async function run(_args) {
49
50
  console.error("Write your MEMORY.md before sprouting.");
50
51
  process.exit(1);
51
52
  }
53
+ const { isImagegenEnabled } = await import("./setup-TISPCO22.js");
54
+ if (isImagegenEnabled()) {
55
+ const { readVoluteConfig } = await import("./volute-config-HD7WWUQC.js");
56
+ const config = readVoluteConfig(dir);
57
+ const avatarPath = config?.profile?.avatar;
58
+ if (!avatarPath || !existsSync(resolve(dir, "home", avatarPath))) {
59
+ console.error(
60
+ "Generate an avatar before sprouting. Use `imagegen generate` to create one, then `volute mind profile --avatar <path>` to set it."
61
+ );
62
+ process.exit(1);
63
+ }
64
+ }
52
65
  const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
53
66
  const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
54
- const { mindSkillsDir } = await import("./skills-XNZK6P4K.js");
67
+ const { mindSkillsDir } = await import("./skills-7FV7EJTE.js");
55
68
  const client = getClient();
56
69
  const failedSkills = [];
57
70
  for (const skillId of getStandardSkillsWithExtensions()) {