volute 0.11.0 → 0.11.1

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.
@@ -3,7 +3,7 @@ import {
3
3
  AgentManager,
4
4
  getAgentManager,
5
5
  initAgentManager
6
- } from "./chunk-KR6WRAJ4.js";
6
+ } from "./chunk-ANS3UV23.js";
7
7
  import "./chunk-46S7YHUB.js";
8
8
  import "./chunk-QF22MYDJ.js";
9
9
  import "./chunk-DP2DX4WV.js";
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- applyIsolation
3
+ applyIsolation,
4
+ chownAgentDir,
5
+ isIsolationEnabled
4
6
  } from "./chunk-46S7YHUB.js";
5
7
  import {
6
8
  loadMergedEnv
@@ -17,7 +19,7 @@ import {
17
19
 
18
20
  // src/lib/agent-manager.ts
19
21
  import { execFile, spawn } from "child_process";
20
- import { existsSync as existsSync3, mkdirSync, readFileSync as readFileSync2, rmSync as rmSync2, writeFileSync as writeFileSync2 } from "fs";
22
+ import { existsSync as existsSync3, mkdirSync, readFileSync as readFileSync2, rmSync as rmSync2, symlinkSync, writeFileSync as writeFileSync2 } from "fs";
21
23
  import { resolve } from "path";
22
24
  import { promisify } from "util";
23
25
 
@@ -194,6 +196,36 @@ var AgentManager = class {
194
196
  VOLUTE_AGENT_DIR: dir,
195
197
  VOLUTE_AGENT_PORT: String(port)
196
198
  };
199
+ if (isIsolationEnabled() && process.env.CLAUDE_CONFIG_DIR) {
200
+ const agentClaudeDir = resolve(dir, ".claude-config");
201
+ try {
202
+ mkdirSync(agentClaudeDir, { recursive: true });
203
+ } catch (err) {
204
+ throw new Error(
205
+ `Cannot start agent ${name}: failed to create config directory at ${agentClaudeDir}: ${err instanceof Error ? err.message : err}`
206
+ );
207
+ }
208
+ const sharedCreds = resolve(process.env.CLAUDE_CONFIG_DIR, ".credentials.json");
209
+ const agentCreds = resolve(agentClaudeDir, ".credentials.json");
210
+ if (existsSync3(sharedCreds)) {
211
+ if (!existsSync3(agentCreds)) {
212
+ try {
213
+ symlinkSync(sharedCreds, agentCreds);
214
+ } catch (err) {
215
+ console.error(
216
+ `[daemon] failed to symlink credentials for ${name}: ${err instanceof Error ? err.message : err}`
217
+ );
218
+ }
219
+ }
220
+ } else {
221
+ console.warn(
222
+ `[daemon] shared credentials not found at ${sharedCreds} for agent ${name}. Copy ~/.claude/.credentials.json to ${process.env.CLAUDE_CONFIG_DIR}/.credentials.json or set ANTHROPIC_API_KEY in the agent's environment.`
223
+ );
224
+ }
225
+ const baseName2 = name.split("@", 2)[0];
226
+ chownAgentDir(agentClaudeDir, baseName2);
227
+ env.CLAUDE_CONFIG_DIR = agentClaudeDir;
228
+ }
197
229
  const tsxBin = resolve(dir, "node_modules", ".bin", "tsx");
198
230
  const spawnOpts = {
199
231
  cwd: dir,
package/dist/cli.js CHANGED
@@ -9,7 +9,7 @@ if (!process.env.VOLUTE_HOME) {
9
9
  var command = process.argv[2];
10
10
  var args = process.argv.slice(3);
11
11
  if (command === "--version" || command === "-v") {
12
- const { default: pkg } = await import("./package-4QEVVIDG.js");
12
+ const { default: pkg } = await import("./package-7NO4W4WX.js");
13
13
  console.log(pkg.version);
14
14
  process.exit(0);
15
15
  }
@@ -39,13 +39,13 @@ switch (command) {
39
39
  await import("./env-CGORIKVF.js").then((m) => m.run(args));
40
40
  break;
41
41
  case "up":
42
- await import("./up-6ORVZLBR.js").then((m) => m.run(args));
42
+ await import("./up-IY5M3Q35.js").then((m) => m.run(args));
43
43
  break;
44
44
  case "down":
45
45
  await import("./down-XV2OQJ7O.js").then((m) => m.run(args));
46
46
  break;
47
47
  case "restart":
48
- await import("./daemon-restart-BO25T4J6.js").then((m) => m.run(args));
48
+ await import("./daemon-restart-UCUNJ4AD.js").then((m) => m.run(args));
49
49
  break;
50
50
  case "setup":
51
51
  await import("./setup-GMZOD52B.js").then((m) => m.run(args));
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  run
4
- } from "./chunk-34GBEBQH.js";
4
+ } from "./chunk-4QMF7SNL.js";
5
5
  import {
6
6
  stopDaemon
7
7
  } from "./chunk-GGLTM53H.js";
package/dist/daemon.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  initAgentManager,
7
7
  loadJsonMap,
8
8
  saveJsonMap
9
- } from "./chunk-KR6WRAJ4.js";
9
+ } from "./chunk-ANS3UV23.js";
10
10
  import {
11
11
  applyIsolation,
12
12
  chownAgentDir,
@@ -3501,7 +3501,7 @@ var app13 = new Hono13().post("/:name/chat", zValidator3("json", chatSchema), as
3501
3501
  const participants = await getParticipants(conversationId);
3502
3502
  const agentParticipants = participants.filter((p) => p.userType === "agent");
3503
3503
  const participantNames = participants.map((p) => p.username);
3504
- const { getAgentManager: getAgentManager2 } = await import("./agent-manager-4OCID725.js");
3504
+ const { getAgentManager: getAgentManager2 } = await import("./agent-manager-B6EPBU45.js");
3505
3505
  const manager = getAgentManager2();
3506
3506
  const runningAgents = agentParticipants.map((ap) => {
3507
3507
  const agentKey = ap.username === baseName ? name : ap.username;
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "volute",
7
- version: "0.11.0",
7
+ version: "0.11.1",
8
8
  description: "CLI for creating and managing self-modifying AI agents powered by the Claude Agent SDK",
9
9
  type: "module",
10
10
  license: "MIT",
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  readGlobalConfig,
4
4
  run
5
- } from "./chunk-34GBEBQH.js";
5
+ } from "./chunk-4QMF7SNL.js";
6
6
  import "./chunk-25GGN3OV.js";
7
7
  import "./chunk-5C5JWR2L.js";
8
8
  import "./chunk-D424ZQGI.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volute",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "CLI for creating and managing self-modifying AI agents powered by the Claude Agent SDK",
5
5
  "type": "module",
6
6
  "license": "MIT",
File without changes