volute 0.3.1 → 0.5.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 (82) hide show
  1. package/README.md +29 -29
  2. package/dist/agent-Z2B6EFEQ.js +75 -0
  3. package/dist/{agent-manager-AUCKMGPR.js → agent-manager-PXBKA2GK.js} +4 -4
  4. package/dist/channel-MK5OK2SI.js +113 -0
  5. package/dist/chunk-5X7HGB6L.js +107 -0
  6. package/dist/{chunk-YGFIWIOF.js → chunk-7L4AN5D4.js} +1 -1
  7. package/dist/{chunk-VRVVQIYY.js → chunk-AZEL2IEK.js} +1 -1
  8. package/dist/chunk-B3R6L2GW.js +24 -0
  9. package/dist/{chunk-DNOXHLE5.js → chunk-HE67X4T6.js} +1 -1
  10. package/dist/{chunk-I6OHXCMV.js → chunk-MW2KFO3B.js} +47 -9
  11. package/dist/chunk-MXUCNIBG.js +168 -0
  12. package/dist/chunk-SMISE4SV.js +226 -0
  13. package/dist/{chunk-SOZA2TLP.js → chunk-UAVD2AHX.js} +1 -1
  14. package/dist/{chunk-3C2XR4IY.js → chunk-UX25Z2ND.js} +113 -107
  15. package/dist/{chunk-GSPKUPKU.js → chunk-XUA3JUFK.js} +2 -1
  16. package/dist/chunk-ZYGKG6VC.js +22 -0
  17. package/dist/cli.js +98 -75
  18. package/dist/connector-LYEMXQEV.js +157 -0
  19. package/dist/connectors/discord.js +104 -161
  20. package/dist/connectors/slack.js +179 -0
  21. package/dist/connectors/telegram.js +175 -0
  22. package/dist/conversation-ERXEQZTY.js +163 -0
  23. package/dist/create-RVCZN6HE.js +91 -0
  24. package/dist/{daemon-client-XR24PUJF.js → daemon-client-ZY6UUN2M.js} +2 -2
  25. package/dist/daemon.js +824 -252
  26. package/dist/{delete-GQ7JEK2S.js → delete-3QH7VYIN.js} +8 -9
  27. package/dist/{down-3OB6UVAJ.js → down-O7IFZLVJ.js} +1 -1
  28. package/dist/{env-JB27UAC3.js → env-4D4REPJF.js} +8 -5
  29. package/dist/{history-3VRUBGGV.js → history-OEONB53Z.js} +5 -5
  30. package/dist/{import-K4MP2GX7.js → import-MXJB2EII.js} +23 -8
  31. package/dist/{logs-NXFFGUKY.js → logs-DF342W4M.js} +2 -2
  32. package/dist/message-ADHWFHSI.js +32 -0
  33. package/dist/package-VQOE7JNH.js +89 -0
  34. package/dist/{schedule-4I5TYHFH.js → schedule-NAG6F463.js} +12 -7
  35. package/dist/send-66QMKRUH.js +75 -0
  36. package/dist/{setup-SRS7AUAA.js → setup-RPRRGG2F.js} +6 -6
  37. package/dist/{start-LDPMCMYT.js → start-TUOXDSFL.js} +3 -3
  38. package/dist/{status-MVSQG54T.js → status-A36EHRO4.js} +3 -3
  39. package/dist/{stop-5PZTZCLL.js → stop-AOJZLQ5X.js} +6 -7
  40. package/dist/{up-UT3IMKCA.js → up-7ILD7GU7.js} +2 -2
  41. package/dist/update-LPSIAWQ2.js +140 -0
  42. package/dist/update-check-Y33QDCFL.js +17 -0
  43. package/dist/{upgrade-CDKECCGN.js → upgrade-FX2TKJ2S.js} +16 -15
  44. package/dist/{variant-CVYM3EQG.js → variant-LAB67OC2.js} +17 -12
  45. package/dist/web-assets/assets/index-BbRmoxoA.js +308 -0
  46. package/dist/web-assets/index.html +2 -2
  47. package/drizzle/0003_clean_ego.sql +12 -0
  48. package/drizzle/meta/0003_snapshot.json +417 -0
  49. package/drizzle/meta/_journal.json +7 -0
  50. package/package.json +3 -1
  51. package/templates/_base/.init/.config/hooks/startup-context.sh +19 -1
  52. package/templates/_base/_skills/volute-agent/SKILL.md +112 -16
  53. package/templates/_base/home/.config/routes.json +10 -0
  54. package/templates/_base/home/VOLUTE.md +19 -28
  55. package/templates/_base/src/lib/file-handler.ts +46 -0
  56. package/templates/_base/src/lib/format-prefix.ts +1 -1
  57. package/templates/_base/src/lib/router.ts +327 -0
  58. package/templates/_base/src/lib/routing.ts +137 -0
  59. package/templates/_base/src/lib/types.ts +16 -3
  60. package/templates/_base/src/lib/volute-server.ts +20 -48
  61. package/templates/agent-sdk/.init/.config/routes.json +5 -0
  62. package/templates/agent-sdk/.init/CLAUDE.md +2 -2
  63. package/templates/agent-sdk/src/agent.ts +269 -82
  64. package/templates/agent-sdk/src/server.ts +19 -4
  65. package/templates/agent-sdk/volute-template.json +1 -1
  66. package/templates/pi/.init/.config/routes.json +5 -0
  67. package/templates/pi/.init/AGENTS.md +1 -1
  68. package/templates/pi/src/agent.ts +279 -58
  69. package/templates/pi/src/server.ts +15 -4
  70. package/templates/pi/volute-template.json +1 -1
  71. package/dist/channel-7FZ6D25H.js +0 -90
  72. package/dist/chunk-N4YNKR3Q.js +0 -90
  73. package/dist/connector-TVJULIRT.js +0 -96
  74. package/dist/create-BRG2DBWI.js +0 -79
  75. package/dist/send-UK3JBZIB.js +0 -53
  76. package/dist/web-assets/assets/index-BC5eSqbY.js +0 -296
  77. package/templates/_base/src/lib/sessions.ts +0 -71
  78. package/templates/agent-sdk/.init/.config/sessions.json +0 -4
  79. package/templates/agent-sdk/src/lib/agent-sessions.ts +0 -204
  80. package/templates/pi/.init/.config/sessions.json +0 -1
  81. package/templates/pi/src/lib/agent-sessions.ts +0 -210
  82. package/dist/{service-SA4TTMDU.js → service-HZNIDNJF.js} +3 -3
@@ -1,79 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- applyInitFiles,
4
- composeTemplate,
5
- copyTemplateToDir,
6
- findTemplatesRoot
7
- } from "./chunk-GSPKUPKU.js";
8
- import {
9
- exec,
10
- execInherit
11
- } from "./chunk-5SKQ6J7T.js";
12
- import {
13
- chownAgentDir,
14
- createAgentUser,
15
- ensureVoluteGroup
16
- } from "./chunk-SOZA2TLP.js";
17
- import {
18
- parseArgs
19
- } from "./chunk-D424ZQGI.js";
20
- import {
21
- addAgent,
22
- agentDir,
23
- ensureVoluteHome,
24
- nextPort
25
- } from "./chunk-3C2XR4IY.js";
26
- import "./chunk-K3NQKI34.js";
27
-
28
- // src/commands/create.ts
29
- import { existsSync, rmSync } from "fs";
30
- async function run(args) {
31
- const { positional, flags } = parseArgs(args, {
32
- template: { type: "string" }
33
- });
34
- const name = positional[0];
35
- const template = flags.template ?? "agent-sdk";
36
- if (!name) {
37
- console.error("Usage: volute create <name> [--template <name>]");
38
- process.exit(1);
39
- }
40
- ensureVoluteHome();
41
- const dest = agentDir(name);
42
- if (existsSync(dest)) {
43
- console.error(`Agent already exists: ${name}`);
44
- process.exit(1);
45
- }
46
- const templatesRoot = findTemplatesRoot();
47
- const { composedDir, manifest } = composeTemplate(templatesRoot, template);
48
- try {
49
- copyTemplateToDir(composedDir, dest, name, manifest);
50
- applyInitFiles(dest);
51
- } finally {
52
- rmSync(composedDir, { recursive: true, force: true });
53
- }
54
- const port = nextPort();
55
- addAgent(name, port);
56
- console.log("Installing dependencies...");
57
- await execInherit("npm", ["install"], { cwd: dest });
58
- try {
59
- await exec("git", ["init"], { cwd: dest });
60
- await exec("git", ["add", "-A"], { cwd: dest });
61
- await exec("git", ["commit", "-m", "initial commit"], { cwd: dest });
62
- } catch {
63
- console.warn(
64
- "\nWarning: git init failed (git may not be installed or configured).",
65
- "\nThe agent will work, but forking/variants won't be available.",
66
- "\nTo fix: install git and run `git config --global user.name` / `git config --global user.email`"
67
- );
68
- }
69
- ensureVoluteGroup();
70
- createAgentUser(name);
71
- chownAgentDir(dest, name);
72
- console.log(`
73
- Created agent: ${name} (port ${port})`);
74
- console.log(`
75
- volute start ${name}`);
76
- }
77
- export {
78
- run
79
- };
@@ -1,53 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- readNdjson
4
- } from "./chunk-N4YNKR3Q.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-YGFIWIOF.js";
8
- import "./chunk-3C2XR4IY.js";
9
- import "./chunk-K3NQKI34.js";
10
-
11
- // src/commands/send.ts
12
- import { userInfo } from "os";
13
- async function run(args) {
14
- const name = args[0];
15
- const message = args[1];
16
- if (!name || !message) {
17
- console.error('Usage: volute send <name> "<message>"');
18
- process.exit(1);
19
- }
20
- const agentSelf = process.env.VOLUTE_AGENT;
21
- const sender = agentSelf || userInfo().username;
22
- const channel = agentSelf ? "agent" : "cli";
23
- const res = await daemonFetch(`/api/agents/${encodeURIComponent(name)}/message`, {
24
- method: "POST",
25
- headers: { "Content-Type": "application/json" },
26
- body: JSON.stringify({
27
- content: [{ type: "text", text: message }],
28
- channel,
29
- sender
30
- })
31
- });
32
- if (!res.ok) {
33
- const data = await res.json();
34
- console.error(data.error ?? `Failed to send message: ${res.status}`);
35
- process.exit(1);
36
- }
37
- if (!res.body) {
38
- console.error("No response body");
39
- process.exit(1);
40
- }
41
- for await (const event of readNdjson(res.body)) {
42
- if (event.type === "text") {
43
- process.stdout.write(event.content);
44
- }
45
- if (event.type === "done") {
46
- break;
47
- }
48
- }
49
- process.stdout.write("\n");
50
- }
51
- export {
52
- run
53
- };