volute 0.26.0 → 0.28.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 (141) hide show
  1. package/README.md +18 -18
  2. package/dist/accept-666DIZX2.js +41 -0
  3. package/dist/{activity-events-ZMBAKLUF.js → activity-events-BBIEA2F4.js} +2 -3
  4. package/dist/api.d.ts +510 -299
  5. package/dist/{archive-4ZQYK5MN.js → archive-UA4BDFXQ.js} +2 -2
  6. package/dist/bridge-FQHZL3MC.js +206 -0
  7. package/dist/chat-M4SX42JD.js +68 -0
  8. package/dist/{chunk-PHU4DEAJ.js → chunk-2WPW7OT6.js} +3 -3
  9. package/dist/{chunk-5Y3PBKW6.js → chunk-2YP2TVDT.js} +138 -56
  10. package/dist/{chunk-3CFRE2VC.js → chunk-AAPXKR5V.js} +435 -1090
  11. package/dist/{chunk-YJA7P64S.js → chunk-AW7PFDVN.js} +5 -5
  12. package/dist/{chunk-OZFKBXD6.js → chunk-EHYDTZTF.js} +6 -6
  13. package/dist/{chunk-WBHMQ5OZ.js → chunk-H7OZRFJB.js} +192 -12
  14. package/dist/{chunk-ON3FF5JA.js → chunk-HDN7MNGD.js} +3 -3
  15. package/dist/chunk-IAYBDWVG.js +477 -0
  16. package/dist/{chunk-TZKJLDQN.js → chunk-IKRVFPWU.js} +14 -9
  17. package/dist/{chunk-UTL75LP6.js → chunk-J4IBNXGJ.js} +20 -22
  18. package/dist/{chunk-WGOGUMPO.js → chunk-JGFVMROS.js} +13 -6
  19. package/dist/{chunk-NWI2425I.js → chunk-K5NAC55T.js} +1 -1
  20. package/dist/chunk-KTLFDYPT.js +61 -0
  21. package/dist/{chunk-V63B7DX3.js → chunk-LAC664WU.js} +7 -4
  22. package/dist/chunk-MD4C26II.js +128 -0
  23. package/dist/{chunk-USNBKHYG.js → chunk-NI5FFCCS.js} +12 -7
  24. package/dist/{chunk-3TV4GLFO.js → chunk-P72MVS4R.js} +4 -43
  25. package/dist/{chunk-2VO7453N.js → chunk-POSXWWTA.js} +30 -54
  26. package/dist/{chunk-XOXLRRR2.js → chunk-RKQEHRBB.js} +4 -3
  27. package/dist/{chunk-LX22GRG7.js → chunk-SGVNFZHW.js} +11 -8
  28. package/dist/chunk-T6HKBWXZ.js +23 -0
  29. package/dist/{chunk-J2CO4WEV.js → chunk-VIVMW2H2.js} +4 -4
  30. package/dist/{chunk-KTJGZ7M7.js → chunk-XBLSAVJF.js} +1 -1
  31. package/dist/cli.js +32 -49
  32. package/dist/{cloud-sync-NI2K3C7G.js → cloud-sync-HDL6PHZI.js} +14 -14
  33. package/dist/connectors/discord-bridge.js +158 -0
  34. package/dist/connectors/slack-bridge.js +119 -0
  35. package/dist/connectors/telegram-bridge.js +133 -0
  36. package/dist/conversations-M2K4253F.js +55 -0
  37. package/dist/create-D7J73A6H.js +45 -0
  38. package/dist/{create-4YBRTTJS.js → create-QWV73WXD.js} +1 -1
  39. package/dist/{daemon-client-Z7FAJ6JW.js → daemon-client-I42FK2BF.js} +2 -2
  40. package/dist/{daemon-restart-BJZ3O4U4.js → daemon-restart-G4B2OYAB.js} +7 -7
  41. package/dist/daemon.js +1889 -1216
  42. package/dist/db-IC4J52XQ.js +8 -0
  43. package/dist/{delete-27OYNK25.js → delete-4JYGD4VN.js} +1 -1
  44. package/dist/down-LVBXEULC.js +14 -0
  45. package/dist/{env-M336ONDP.js → env-YJMUMFIY.js} +2 -2
  46. package/dist/{export-HP4G5DQC.js → export-BOJQWBMA.js} +4 -4
  47. package/dist/files-M546TKVN.js +46 -0
  48. package/dist/{history-B64GTFTD.js → history-ALPTNB3I.js} +5 -5
  49. package/dist/{import-XIB7UV4S.js → import-SRTQXBGH.js} +4 -4
  50. package/dist/join-J4QU42DL.js +66 -0
  51. package/dist/list-R73GENNL.js +40 -0
  52. package/dist/{login-B5E7N7MY.js → login-3QZNR2DF.js} +4 -4
  53. package/dist/{login-6U7U6BNG.js → login-BKP3AFWN.js} +8 -18
  54. package/dist/logout-IQK7FNEK.js +20 -0
  55. package/dist/{logout-XSJRYS3U.js → logout-T53VKCPU.js} +4 -4
  56. package/dist/message-delivery-HV3S6HZV.js +24 -0
  57. package/dist/migrate-registry-to-db-XC7T5B7P.js +110 -0
  58. package/dist/{mind-HZ3QSDDJ.js → mind-S5V6CK5W.js} +29 -34
  59. package/dist/{mind-activity-tracker-4G6FURY2.js → mind-activity-tracker-EN6XNXPF.js} +3 -4
  60. package/dist/mind-list-UPJ75GPI.js +29 -0
  61. package/dist/mind-manager-S6ILZVX3.js +18 -0
  62. package/dist/{mind-sleep-DTV7L44D.js → mind-sleep-BTSWQNAC.js} +4 -4
  63. package/dist/mind-status-TK5AETEM.js +55 -0
  64. package/dist/{mind-wake-PFN4FN3T.js → mind-wake-SBAKIDVP.js} +4 -4
  65. package/dist/{notes-37FW2UR2.js → notes-XCER3I7M.js} +11 -21
  66. package/dist/{package-VZWLXPHV.js → package-CG4RWUGP.js} +1 -1
  67. package/dist/{pages-DIIT5HMQ.js → pages-KJDJX4TA.js} +5 -5
  68. package/dist/{publish-HQV7YREB.js → publish-ZZB33WP4.js} +9 -20
  69. package/dist/read-36UFXN3G.js +46 -0
  70. package/dist/{register-EFND67FQ.js → register-CHREOMJ3.js} +6 -25
  71. package/dist/{registry-D2BSQ2X5.js → registry-NDNOOYG4.js} +15 -9
  72. package/dist/reject-LXIZFJ4Q.js +39 -0
  73. package/dist/{restart-CCK7D6TV.js → restart-6ESL3NBO.js} +5 -5
  74. package/dist/{sandbox-EHGFF52K.js → sandbox-5BW5HPXM.js} +3 -3
  75. package/dist/{schedule-6F7ELB2M.js → schedule-QTJMFATP.js} +5 -5
  76. package/dist/{seed-E5OQGWX3.js → seed-SSUCYYDF.js} +2 -2
  77. package/dist/{send-IH6XZKPC.js → send-TAOEZ4NH.js} +87 -23
  78. package/dist/{setup-YGAAIKKZ.js → setup-JHL5ZEST.js} +2 -2
  79. package/dist/{setup-F6TWFYGQ.js → setup-RXYVGGT7.js} +9 -9
  80. package/dist/{skill-42LGFBQC.js → skill-AUAQTSP5.js} +5 -5
  81. package/dist/skills/dreaming/references/INSTALL.md +2 -2
  82. package/dist/skills/orientation/SKILL.md +3 -3
  83. package/dist/skills/shared-files/SKILL.md +44 -0
  84. package/dist/skills/shared-files/scripts/merge.ts +72 -0
  85. package/dist/skills/shared-files/scripts/pull.ts +52 -0
  86. package/dist/skills/volute-mind/SKILL.md +35 -34
  87. package/dist/sleep-manager-WMVG2VCL.js +28 -0
  88. package/dist/split-TKJ5OT3P.js +63 -0
  89. package/dist/{sprout-QL74KR2X.js → sprout-UNT7LKKE.js} +6 -7
  90. package/dist/{start-O5JQASRC.js → start-EUJSS5R4.js} +2 -2
  91. package/dist/status-NQJYR4BG.js +114 -0
  92. package/dist/{status-LV34BG6G.js → status-S7UUPNRW.js} +4 -14
  93. package/dist/{stop-2SOG5NYF.js → stop-3XAITBBF.js} +5 -5
  94. package/dist/systems-SMEFSHTA.js +60 -0
  95. package/dist/{tailscale-AJ4VL5XK.js → tailscale-NY5MUMY3.js} +1 -1
  96. package/dist/up-GM2JOH2Y.js +17 -0
  97. package/dist/{update-5VUDAI3D.js → update-PTSH22AZ.js} +9 -9
  98. package/dist/{update-check-F5Z3ALXX.js → update-check-64FWC4Y2.js} +2 -2
  99. package/dist/{upgrade-QCCO33BK.js → upgrade-HA47CS4C.js} +12 -5
  100. package/dist/variant-7TGZHOU3.js +41 -0
  101. package/dist/{version-notify-USFZBWMG.js → version-notify-JDUF4HQJ.js} +24 -29
  102. package/dist/web-assets/assets/index-BZGvToHi.css +1 -0
  103. package/dist/web-assets/assets/index-Cz4TrpzB.js +75 -0
  104. package/dist/web-assets/favicon.png +0 -0
  105. package/dist/web-assets/index.html +2 -2
  106. package/drizzle/0017_minds.sql +16 -0
  107. package/drizzle/meta/_journal.json +7 -0
  108. package/package.json +1 -1
  109. package/templates/_base/.init/.config/prompts.json +2 -2
  110. package/templates/_base/home/VOLUTE.md +5 -5
  111. package/templates/_base/src/lib/logger.ts +0 -4
  112. package/templates/_base/src/lib/startup.ts +2 -2
  113. package/dist/auth-4TV573WE.js +0 -37
  114. package/dist/channel-ZVZV42UD.js +0 -260
  115. package/dist/chunk-B2CPS4QU.js +0 -283
  116. package/dist/chunk-HFCBO2GL.js +0 -50
  117. package/dist/chunk-RWKVSSLY.js +0 -26
  118. package/dist/chunk-SIAG3QMM.js +0 -42
  119. package/dist/chunk-WSLPZF72.js +0 -173
  120. package/dist/connector-G722WXAU.js +0 -147
  121. package/dist/connectors/discord.js +0 -177
  122. package/dist/connectors/slack.js +0 -181
  123. package/dist/connectors/telegram.js +0 -187
  124. package/dist/down-7UKFMJJZ.js +0 -14
  125. package/dist/file-HUDKTRAS.js +0 -204
  126. package/dist/log-PBFNILJ4.js +0 -39
  127. package/dist/logout-UKD5LA37.js +0 -18
  128. package/dist/logs-3CART7O7.js +0 -77
  129. package/dist/merge-VK2HSKMA.js +0 -46
  130. package/dist/message-delivery-MS5JYPZX.js +0 -25
  131. package/dist/mind-manager-VVK67AY3.js +0 -19
  132. package/dist/pull-2MB4SK3C.js +0 -39
  133. package/dist/service-LLBV3R7M.js +0 -122
  134. package/dist/shared-UMO4S7CC.js +0 -39
  135. package/dist/sleep-manager-EE4NRN2Q.js +0 -29
  136. package/dist/status-FZBEBM7Q.js +0 -70
  137. package/dist/status-WXD4HXRL.js +0 -35
  138. package/dist/up-SDMCSVI3.js +0 -17
  139. package/dist/variant-WWLDY6D5.js +0 -207
  140. package/dist/web-assets/assets/index-CUQ31ieL.js +0 -69
  141. package/dist/web-assets/assets/index-CW8NSl1o.css +0 -1
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- getDaemonUrl,
4
- getServiceMode,
5
- modeLabel,
6
- readDaemonConfig
7
- } from "./chunk-V63B7DX3.js";
8
- import {
9
- checkForUpdate
10
- } from "./chunk-ON3FF5JA.js";
11
- import "./chunk-YJA7P64S.js";
12
- import "./chunk-XOXLRRR2.js";
13
- import "./chunk-B2CPS4QU.js";
14
- import "./chunk-K3NQKI34.js";
15
-
16
- // src/commands/status.ts
17
- async function run(_args) {
18
- const mode = getServiceMode();
19
- console.log(`Mode: ${modeLabel(mode)}`);
20
- const { hostname, port, internalPort, token } = readDaemonConfig();
21
- const apiPort = internalPort ?? port;
22
- const baseUrl = getDaemonUrl("127.0.0.1", apiPort);
23
- let running = false;
24
- let version;
25
- try {
26
- const res = await fetch(`${baseUrl}/api/health`);
27
- if (res.ok) {
28
- const body = await res.json();
29
- if (body.ok) {
30
- running = true;
31
- version = body.version;
32
- }
33
- }
34
- } catch {
35
- }
36
- if (!running) {
37
- console.log("Status: not running");
38
- return;
39
- }
40
- console.log(`Status: running on ${hostname}:${port}`);
41
- if (version) console.log(`Version: ${version}`);
42
- const update = await checkForUpdate();
43
- if (update.updateAvailable) {
44
- console.log(`Update available: ${update.current} \u2192 ${update.latest}`);
45
- }
46
- const headers = {};
47
- if (token) headers.Authorization = `Bearer ${token}`;
48
- headers.Origin = baseUrl;
49
- try {
50
- const res = await fetch(`${baseUrl}/api/minds`, { headers });
51
- if (res.ok) {
52
- const minds = await res.json();
53
- if (minds.length > 0) {
54
- console.log(`
55
- Minds (${minds.length}):`);
56
- for (const mind of minds) {
57
- const status = mind.running ? "running" : "stopped";
58
- const label = mind.stage === "seed" ? " (seed)" : "";
59
- console.log(` ${mind.name}: ${status}${label}`);
60
- }
61
- } else {
62
- console.log("\nNo minds configured.");
63
- }
64
- }
65
- } catch {
66
- }
67
- }
68
- export {
69
- run
70
- };
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- daemonFetch
4
- } from "./chunk-WGOGUMPO.js";
5
- import {
6
- resolveMindName
7
- } from "./chunk-NAOW2CLO.js";
8
- import {
9
- parseArgs
10
- } from "./chunk-D424ZQGI.js";
11
- import "./chunk-B2CPS4QU.js";
12
- import "./chunk-K3NQKI34.js";
13
-
14
- // src/commands/shared/status.ts
15
- async function run(args) {
16
- const { flags } = parseArgs(args, {
17
- mind: { type: "string" }
18
- });
19
- const mindName = resolveMindName(flags);
20
- const res = await daemonFetch(`/api/minds/${encodeURIComponent(mindName)}/shared/status`);
21
- if (!res.ok) {
22
- const body = await res.json().catch(() => ({}));
23
- console.error(body.error ?? `Server responded with ${res.status}`);
24
- process.exit(1);
25
- }
26
- const output = await res.text();
27
- if (output.trim()) {
28
- console.log(output.trimEnd());
29
- } else {
30
- console.log("No pending changes.");
31
- }
32
- }
33
- export {
34
- run
35
- };
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run
4
- } from "./chunk-LX22GRG7.js";
5
- import "./chunk-V63B7DX3.js";
6
- import "./chunk-YJA7P64S.js";
7
- import "./chunk-XOXLRRR2.js";
8
- import "./chunk-D424ZQGI.js";
9
- import {
10
- readGlobalConfig
11
- } from "./chunk-TZKJLDQN.js";
12
- import "./chunk-B2CPS4QU.js";
13
- import "./chunk-K3NQKI34.js";
14
- export {
15
- readGlobalConfig,
16
- run
17
- };
@@ -1,207 +0,0 @@
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/variant.ts
11
- async function run(args) {
12
- const subcommand = args[0];
13
- switch (subcommand) {
14
- case "create":
15
- await createVariant(args.slice(1));
16
- break;
17
- case "list":
18
- await listVariants(args.slice(1));
19
- break;
20
- case "merge":
21
- await mergeVariant(args.slice(1));
22
- break;
23
- case "delete":
24
- await deleteVariant(args.slice(1));
25
- break;
26
- case "--help":
27
- case "-h":
28
- case void 0:
29
- printUsage();
30
- break;
31
- default:
32
- printUsage();
33
- process.exit(1);
34
- }
35
- }
36
- function printUsage() {
37
- console.log(`Usage:
38
- volute variant create <variant> [--mind <name>] [--soul "..."] [--port N] [--no-start] [--json]
39
- volute variant list [--mind <name>] [--json]
40
- volute variant merge <variant> [--mind <name>] [--summary "..." --memory "..."] [--skip-verify]
41
- volute variant delete <variant> [--mind <name>]`);
42
- }
43
- async function createVariant(args) {
44
- const { positional, flags } = parseArgs(args, {
45
- mind: { type: "string" },
46
- soul: { type: "string" },
47
- port: { type: "number" },
48
- "no-start": { type: "boolean" },
49
- json: { type: "boolean" }
50
- });
51
- const mindName = resolveMindName(flags);
52
- const variantName = positional[0];
53
- const { soul, port, json } = flags;
54
- const noStart = flags["no-start"];
55
- if (!variantName) {
56
- console.error(
57
- 'Usage: volute variant create <variant> [--mind <name>] [--soul "..."] [--port N] [--no-start] [--json]'
58
- );
59
- process.exit(1);
60
- }
61
- if (!json) console.log("Creating variant via daemon...");
62
- const { daemonFetch } = await import("./daemon-client-Z7FAJ6JW.js");
63
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
64
- const client = getClient();
65
- const res = await daemonFetch(
66
- urlOf(client.api.minds[":name"].variants.$url({ param: { name: mindName } })),
67
- {
68
- method: "POST",
69
- headers: { "Content-Type": "application/json" },
70
- body: JSON.stringify({
71
- name: variantName,
72
- ...soul && { soul },
73
- ...port && { port },
74
- ...noStart && { noStart }
75
- })
76
- }
77
- );
78
- const data = await res.json();
79
- if (!res.ok) {
80
- console.error(data.error ?? "Failed to create variant");
81
- process.exit(1);
82
- }
83
- if (json) {
84
- console.log(JSON.stringify(data.variant, null, 2));
85
- } else {
86
- console.log(`
87
- Variant created: ${variantName}`);
88
- console.log(` Branch: ${data.variant?.branch}`);
89
- console.log(` Path: ${data.variant?.path}`);
90
- console.log(` Port: ${data.variant?.port}`);
91
- }
92
- }
93
- async function listVariants(args) {
94
- const { flags } = parseArgs(args, {
95
- mind: { type: "string" },
96
- json: { type: "boolean" }
97
- });
98
- const mindName = resolveMindName(flags);
99
- const { json } = flags;
100
- const { daemonFetch } = await import("./daemon-client-Z7FAJ6JW.js");
101
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
102
- const client = getClient();
103
- const res = await daemonFetch(
104
- urlOf(client.api.minds[":name"].variants.$url({ param: { name: mindName } }))
105
- );
106
- if (!res.ok) {
107
- const data = await res.json().catch(() => ({ error: `HTTP ${res.status}` }));
108
- console.error(data.error ?? "Failed to list variants");
109
- process.exit(1);
110
- }
111
- const results = await res.json();
112
- if (results.length === 0) {
113
- if (json) {
114
- console.log("[]");
115
- } else {
116
- console.log("No variants.");
117
- }
118
- return;
119
- }
120
- if (json) {
121
- console.log(JSON.stringify(results, null, 2));
122
- return;
123
- }
124
- const nameW = Math.max(4, ...results.map((r) => r.name.length));
125
- const portW = Math.max(4, ...results.map((r) => String(r.port || "-").length));
126
- console.log(`${"NAME".padEnd(nameW)} ${"PORT".padEnd(portW)} ${"STATUS".padEnd(10)} BRANCH`);
127
- for (const r of results) {
128
- console.log(
129
- `${r.name.padEnd(nameW)} ${String(r.port || "-").padEnd(portW)} ${r.status.padEnd(10)} ${r.branch}`
130
- );
131
- }
132
- }
133
- async function mergeVariant(args) {
134
- const { positional, flags } = parseArgs(args, {
135
- mind: { type: "string" },
136
- summary: { type: "string" },
137
- justification: { type: "string" },
138
- memory: { type: "string" },
139
- "skip-verify": { type: "boolean" }
140
- });
141
- const mindName = resolveMindName(flags);
142
- const variantName = positional[0];
143
- if (!variantName) {
144
- console.error(
145
- "Usage: volute variant merge <variant> [--mind <name>] [--summary '...'] [--justification '...'] [--memory '...'] [--skip-verify]"
146
- );
147
- process.exit(1);
148
- }
149
- console.log(`Merging variant ${variantName}...`);
150
- const { daemonFetch } = await import("./daemon-client-Z7FAJ6JW.js");
151
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
152
- const client = getClient();
153
- const res = await daemonFetch(
154
- urlOf(
155
- client.api.minds[":name"].variants[":variant"].merge.$url({
156
- param: { name: mindName, variant: variantName }
157
- })
158
- ),
159
- {
160
- method: "POST",
161
- headers: { "Content-Type": "application/json" },
162
- body: JSON.stringify({
163
- ...flags.summary && { summary: flags.summary },
164
- ...flags.justification && { justification: flags.justification },
165
- ...flags.memory && { memory: flags.memory },
166
- ...flags["skip-verify"] && { skipVerify: true }
167
- })
168
- }
169
- );
170
- const data = await res.json();
171
- if (!res.ok) {
172
- console.error(data.error ?? "Failed to merge variant");
173
- process.exit(1);
174
- }
175
- console.log(`Variant ${variantName} merged and cleaned up.`);
176
- }
177
- async function deleteVariant(args) {
178
- const { positional, flags } = parseArgs(args, {
179
- mind: { type: "string" }
180
- });
181
- const mindName = resolveMindName(flags);
182
- const variantName = positional[0];
183
- if (!variantName) {
184
- console.error("Usage: volute variant delete <variant> [--mind <name>]");
185
- process.exit(1);
186
- }
187
- const { daemonFetch } = await import("./daemon-client-Z7FAJ6JW.js");
188
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
189
- const client = getClient();
190
- const res = await daemonFetch(
191
- urlOf(
192
- client.api.minds[":name"].variants[":variant"].$url({
193
- param: { name: mindName, variant: variantName }
194
- })
195
- ),
196
- { method: "DELETE" }
197
- );
198
- const data = await res.json();
199
- if (!res.ok) {
200
- console.error(data.error ?? "Failed to delete variant");
201
- process.exit(1);
202
- }
203
- console.log(`Variant ${variantName} deleted.`);
204
- }
205
- export {
206
- run
207
- };