volute 0.3.1 → 0.4.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 (40) hide show
  1. package/README.md +7 -7
  2. package/dist/{channel-7FZ6D25H.js → channel-DQ6UY7QB.js} +16 -39
  3. package/dist/chunk-5OCWMTVS.js +152 -0
  4. package/dist/chunk-MXUCNIBG.js +168 -0
  5. package/dist/{chunk-N4YNKR3Q.js → chunk-ZHCE4DPY.js} +20 -0
  6. package/dist/cli.js +29 -18
  7. package/dist/connector-DKDJTLYZ.js +152 -0
  8. package/dist/connectors/discord.js +102 -161
  9. package/dist/connectors/slack.js +170 -0
  10. package/dist/connectors/telegram.js +156 -0
  11. package/dist/daemon.js +262 -142
  12. package/dist/{import-K4MP2GX7.js → import-4CI2ZUTJ.js} +15 -0
  13. package/dist/package-Z2SFO2SV.js +89 -0
  14. package/dist/{send-UK3JBZIB.js → send-3U6OTKG7.js} +6 -2
  15. package/dist/web-assets/assets/{index-BC5eSqbY.js → index-NS621maO.js} +23 -23
  16. package/dist/web-assets/index.html +1 -1
  17. package/package.json +3 -1
  18. package/templates/_base/_skills/volute-agent/SKILL.md +3 -3
  19. package/templates/_base/home/VOLUTE.md +18 -6
  20. package/templates/_base/src/lib/file-handler.ts +46 -0
  21. package/templates/_base/src/lib/router.ts +180 -0
  22. package/templates/_base/src/lib/routing.ts +100 -0
  23. package/templates/_base/src/lib/types.ts +13 -2
  24. package/templates/_base/src/lib/volute-server.ts +20 -48
  25. package/templates/agent-sdk/src/agent.ts +268 -82
  26. package/templates/agent-sdk/src/server.ts +12 -3
  27. package/templates/pi/src/agent.ts +277 -58
  28. package/templates/pi/src/server.ts +15 -4
  29. package/dist/connector-TVJULIRT.js +0 -96
  30. package/templates/_base/src/lib/sessions.ts +0 -71
  31. package/templates/agent-sdk/src/lib/agent-sessions.ts +0 -204
  32. package/templates/pi/src/lib/agent-sessions.ts +0 -210
  33. package/dist/{create-BRG2DBWI.js → create-ILVOG75A.js} +3 -3
  34. package/dist/{delete-GQ7JEK2S.js → delete-55MXCEY5.js} +3 -3
  35. package/dist/{history-3VRUBGGV.js → history-BKG74I43.js} +3 -3
  36. package/dist/{schedule-4I5TYHFH.js → schedule-A35SH4HT.js} +3 -3
  37. package/dist/{setup-SRS7AUAA.js → setup-2FDVN7OF.js} +3 -3
  38. package/dist/{up-UT3IMKCA.js → up-F7TMTLRE.js} +0 -0
  39. package/dist/{upgrade-CDKECCGN.js → upgrade-6ZW2RD64.js} +3 -3
  40. package/dist/{variant-CVYM3EQG.js → variant-T64BKARF.js} +6 -6
@@ -491,12 +491,27 @@ function importOpenClawConnectors(agentDirPath) {
491
491
  const env = readEnv(envPath);
492
492
  env.DISCORD_TOKEN = discord.token;
493
493
  writeEnv(envPath, env);
494
+ const channelNames = /* @__PURE__ */ new Set();
495
+ if (discord.guilds) {
496
+ for (const guild of Object.values(discord.guilds)) {
497
+ if (!guild.channels) continue;
498
+ for (const [name, ch] of Object.entries(guild.channels)) {
499
+ if (ch.allow) channelNames.add(name);
500
+ }
501
+ }
502
+ }
494
503
  const voluteConfig = readVoluteConfig(agentDirPath) ?? {};
495
504
  const connectors = new Set(voluteConfig.connectors ?? []);
496
505
  connectors.add("discord");
497
506
  voluteConfig.connectors = [...connectors];
507
+ if (channelNames.size > 0) {
508
+ voluteConfig.discord = { channels: [...channelNames] };
509
+ }
498
510
  writeVoluteConfig(agentDirPath, voluteConfig);
499
511
  console.log("Imported Discord connector config");
512
+ if (channelNames.size > 0) {
513
+ console.log(`Imported followed channels: ${[...channelNames].join(", ")}`);
514
+ }
500
515
  }
501
516
  function parseNameFromIdentity(identity) {
502
517
  const match = identity.match(/\*\*Name:\*\*\s*(.+)/);
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env node
2
+ import "./chunk-K3NQKI34.js";
3
+
4
+ // package.json
5
+ var package_default = {
6
+ name: "volute",
7
+ version: "0.4.0",
8
+ description: "CLI for creating and managing self-modifying AI agents powered by the Claude Agent SDK",
9
+ type: "module",
10
+ license: "MIT",
11
+ repository: {
12
+ type: "git",
13
+ url: "https://github.com/mimsy/volute.git"
14
+ },
15
+ keywords: [
16
+ "cli",
17
+ "ai",
18
+ "agents",
19
+ "claude",
20
+ "anthropic"
21
+ ],
22
+ engines: {
23
+ node: ">=22"
24
+ },
25
+ bin: {
26
+ volute: "dist/cli.js"
27
+ },
28
+ files: [
29
+ "dist/",
30
+ "drizzle/",
31
+ "templates/"
32
+ ],
33
+ scripts: {
34
+ dev: "tsx src/cli.ts",
35
+ build: "tsup && npm run build:web",
36
+ "build:web": "vite build --config src/web/frontend/vite.config.ts",
37
+ "dev:web": "vite --config src/web/frontend/vite.config.ts",
38
+ test: "node --import tsx --import ./test/setup.ts --test --test-force-exit --test-concurrency=1 test/*.test.ts",
39
+ lint: "biome check src/ test/",
40
+ "lint:fix": "biome check --write src/ test/",
41
+ format: "biome format --write src/ test/",
42
+ typecheck: "tsc --noEmit",
43
+ "typecheck:templates": "tsc --noEmit -p templates/agent-sdk/tsconfig.json && tsc --noEmit -p templates/pi/tsconfig.json",
44
+ "lint:templates": "biome check templates/",
45
+ "typecheck:web": "tsc --noEmit -p src/web/frontend/tsconfig.json",
46
+ prepare: "lefthook install",
47
+ prepublishOnly: "npm run build",
48
+ "db:generate": "drizzle-kit generate",
49
+ "db:migrate": "drizzle-kit migrate"
50
+ },
51
+ dependencies: {
52
+ "@hono/node-server": "^1.19.9",
53
+ "@hono/zod-validator": "^0.7.6",
54
+ "@libsql/client": "^0.17.0",
55
+ "@slack/bolt": "^4.6.0",
56
+ bcryptjs: "^3.0.3",
57
+ "cron-parser": "^5.5.0",
58
+ "discord.js": "^14.25.1",
59
+ "drizzle-orm": "^0.45.1",
60
+ hono: "^4.11.7",
61
+ telegraf: "^4.16.3",
62
+ zod: "^4.3.6"
63
+ },
64
+ devDependencies: {
65
+ "@anthropic-ai/claude-agent-sdk": "^0.2.34",
66
+ "@biomejs/biome": "2.3.14",
67
+ "@mariozechner/pi-ai": "^0.52.7",
68
+ "@mariozechner/pi-coding-agent": "^0.52.7",
69
+ "@types/bcryptjs": "^2.4.6",
70
+ "@types/dompurify": "^3.0.5",
71
+ "@types/node": "^25.2.0",
72
+ "@types/react": "^19.2.11",
73
+ "@types/react-dom": "^19.2.3",
74
+ "@vitejs/plugin-react": "^5.1.3",
75
+ dompurify: "^3.3.1",
76
+ "drizzle-kit": "^0.31.8",
77
+ lefthook: "^2.1.0",
78
+ marked: "^17.0.1",
79
+ react: "^19.2.4",
80
+ "react-dom": "^19.2.4",
81
+ tsup: "^8.0.0",
82
+ tsx: "^4.0.0",
83
+ typescript: "^5.7.0",
84
+ vite: "^7.3.1"
85
+ }
86
+ };
87
+ export {
88
+ package_default as default
89
+ };
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- readNdjson
4
- } from "./chunk-N4YNKR3Q.js";
3
+ readNdjson,
4
+ summarizeTool
5
+ } from "./chunk-ZHCE4DPY.js";
5
6
  import {
6
7
  daemonFetch
7
8
  } from "./chunk-YGFIWIOF.js";
@@ -41,6 +42,9 @@ async function run(args) {
41
42
  for await (const event of readNdjson(res.body)) {
42
43
  if (event.type === "text") {
43
44
  process.stdout.write(event.content);
45
+ } else if (event.type === "tool_use") {
46
+ process.stderr.write(`${summarizeTool(event.name, event.input)}
47
+ `);
44
48
  }
45
49
  if (event.type === "done") {
46
50
  break;