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.
- package/dist/{agent-manager-4OCID725.js → agent-manager-B6EPBU45.js} +1 -1
- package/dist/{chunk-KR6WRAJ4.js → chunk-ANS3UV23.js} +34 -2
- package/dist/cli.js +3 -3
- package/dist/{daemon-restart-BO25T4J6.js → daemon-restart-UCUNJ4AD.js} +1 -1
- package/dist/daemon.js +2 -2
- package/dist/{package-4QEVVIDG.js → package-7NO4W4WX.js} +1 -1
- package/dist/{up-6ORVZLBR.js → up-IY5M3Q35.js} +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-34GBEBQH.js → chunk-4QMF7SNL.js} +0 -0
|
@@ -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-
|
|
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-
|
|
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-
|
|
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));
|
package/dist/daemon.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
initAgentManager,
|
|
7
7
|
loadJsonMap,
|
|
8
8
|
saveJsonMap
|
|
9
|
-
} from "./chunk-
|
|
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-
|
|
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.
|
|
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",
|
package/package.json
CHANGED
|
File without changes
|