@parall/daemon 1.27.0 → 1.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.
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/index.js +2 -1
- package/dist/runtimes.d.ts.map +1 -1
- package/dist/runtimes.js +19 -0
- package/package.json +2 -2
- package/src/config.ts +4 -0
- package/src/index.ts +3 -1
- package/src/runtimes.ts +20 -0
package/dist/config.d.ts
CHANGED
|
@@ -59,4 +59,5 @@ export declare function sharedClaudeCredentialsFileFor(rootClaudeHome: string):
|
|
|
59
59
|
export declare function agentClaudeCredentialsFileFor(agentClaudeHome: string): string;
|
|
60
60
|
/** Per-agent workspace dir where the agent runs git commands. */
|
|
61
61
|
export declare function agentWorkspaceDirFor(rootStateDir: string, agentId: string): string;
|
|
62
|
+
export declare function resolveWsUrl(apiUrl: string, explicitWsUrl?: string): string;
|
|
62
63
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,2GAA2G;IAC3G,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,cAAc,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAC;AA2BF,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CA8BlG;AASD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;mEAEmE;AACnE,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,uEAAuE;AACvE,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElF"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,2GAA2G;IAC3G,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,cAAc,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAC;AA2BF,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CA8BlG;AASD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;mEAEmE;AACnE,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,uEAAuE;AACvE,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3E"}
|
package/dist/config.js
CHANGED
|
@@ -79,3 +79,6 @@ export function agentClaudeCredentialsFileFor(agentClaudeHome) {
|
|
|
79
79
|
export function agentWorkspaceDirFor(rootStateDir, agentId) {
|
|
80
80
|
return path.join(rootStateDir, "agents", assertSafeAgentId(agentId), "workspace");
|
|
81
81
|
}
|
|
82
|
+
export function resolveWsUrl(apiUrl, explicitWsUrl) {
|
|
83
|
+
return explicitWsUrl || `${apiUrl.replace(/\/$/, "").replace(/^http/, "ws")}/ws`;
|
|
84
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { ParallClient } from "@parall/sdk";
|
|
3
|
-
import { resolveClaudeDaemonConfig } from "./config.js";
|
|
3
|
+
import { resolveClaudeDaemonConfig, resolveWsUrl } from "./config.js";
|
|
4
4
|
import { DaemonSupervisor, sleepCancellable } from "./supervisor.js";
|
|
5
5
|
function createLogger(prefix) {
|
|
6
6
|
return {
|
|
@@ -100,6 +100,7 @@ async function main() {
|
|
|
100
100
|
process.exitCode = 1;
|
|
101
101
|
process.exit(1);
|
|
102
102
|
});
|
|
103
|
+
config.wsUrl = resolveWsUrl(config.apiUrl, config.wsUrl);
|
|
103
104
|
await runForever(config, client, log, abortController.signal);
|
|
104
105
|
}
|
|
105
106
|
main().catch((err) => {
|
package/dist/runtimes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../src/runtimes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;CAC1H;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../src/runtimes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;CAC1H;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAInD"}
|
package/dist/runtimes.js
CHANGED
|
@@ -9,6 +9,9 @@ const claudeCodeAdapter = {
|
|
|
9
9
|
env.PRLL_CLAUDE_HOME = dirs.claudeHome;
|
|
10
10
|
env.PRLL_CLAUDE_STATE_DIR = dirs.stateDir;
|
|
11
11
|
env.PRLL_CLAUDE_WORKSPACE_DIR = dirs.workspaceDir;
|
|
12
|
+
if ("ANTHROPIC_AUTH_TOKEN" in env) {
|
|
13
|
+
env.ANTHROPIC_AUTH_TOKEN = apiKey;
|
|
14
|
+
}
|
|
12
15
|
delete env.PRLL_DAEMON_MODE;
|
|
13
16
|
return env;
|
|
14
17
|
},
|
|
@@ -41,9 +44,25 @@ const defaultAdapter = {
|
|
|
41
44
|
return env;
|
|
42
45
|
},
|
|
43
46
|
};
|
|
47
|
+
const openclawAdapter = {
|
|
48
|
+
bin: "parall-openclaw-agent",
|
|
49
|
+
buildEnv(baseEnv, agentId, orgId, apiKey, dirs) {
|
|
50
|
+
const env = { ...baseEnv };
|
|
51
|
+
env.PRLL_API_KEY = apiKey;
|
|
52
|
+
env.PRLL_ORG_ID = orgId;
|
|
53
|
+
env.AGENT_ID = agentId;
|
|
54
|
+
env.PRLL_AGENT_ID = agentId;
|
|
55
|
+
env.PRLL_OPENCLAW_STATE_DIR = dirs.stateDir;
|
|
56
|
+
env.PRLL_OPENCLAW_WORKSPACE_DIR = dirs.workspaceDir;
|
|
57
|
+
env.OPENCLAW_GATEWAY_PORT = env.OPENCLAW_GATEWAY_PORT || "0";
|
|
58
|
+
delete env.PRLL_DAEMON_MODE;
|
|
59
|
+
return env;
|
|
60
|
+
},
|
|
61
|
+
};
|
|
44
62
|
const RUNTIME_ADAPTERS = {
|
|
45
63
|
"claude-code": claudeCodeAdapter,
|
|
46
64
|
"codex": codexAdapter,
|
|
65
|
+
"openclaw": openclawAdapter,
|
|
47
66
|
};
|
|
48
67
|
export function getRuntimeAdapter(runtimeType) {
|
|
49
68
|
return RUNTIME_ADAPTERS[runtimeType] ?? defaultAdapter;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parall/daemon",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.0",
|
|
4
4
|
"description": "Per-host supervisor for daemon-mode Parall Machines — fans one mck_ bearer out into N agent-runtime subprocesses, one per attached agent",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"src"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@parall/sdk": "1.
|
|
28
|
+
"@parall/sdk": "1.28.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.0.0",
|
package/src/config.ts
CHANGED
|
@@ -140,3 +140,7 @@ export function agentClaudeCredentialsFileFor(agentClaudeHome: string): string {
|
|
|
140
140
|
export function agentWorkspaceDirFor(rootStateDir: string, agentId: string): string {
|
|
141
141
|
return path.join(rootStateDir, "agents", assertSafeAgentId(agentId), "workspace");
|
|
142
142
|
}
|
|
143
|
+
|
|
144
|
+
export function resolveWsUrl(apiUrl: string, explicitWsUrl?: string): string {
|
|
145
|
+
return explicitWsUrl || `${apiUrl.replace(/\/$/, "").replace(/^http/, "ws")}/ws`;
|
|
146
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { ParallClient } from "@parall/sdk";
|
|
4
|
-
import { resolveClaudeDaemonConfig, type ClaudeDaemonConfig } from "./config.js";
|
|
4
|
+
import { resolveClaudeDaemonConfig, resolveWsUrl, type ClaudeDaemonConfig } from "./config.js";
|
|
5
5
|
import { DaemonSupervisor, sleepCancellable, type DaemonLogger } from "./supervisor.js";
|
|
6
6
|
|
|
7
7
|
function createLogger(prefix: string): DaemonLogger {
|
|
@@ -121,6 +121,8 @@ async function main(): Promise<void> {
|
|
|
121
121
|
process.exit(1);
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
+
config.wsUrl = resolveWsUrl(config.apiUrl, config.wsUrl);
|
|
125
|
+
|
|
124
126
|
await runForever(config, client, log, abortController.signal);
|
|
125
127
|
}
|
|
126
128
|
|
package/src/runtimes.ts
CHANGED
|
@@ -20,6 +20,9 @@ const claudeCodeAdapter: RuntimeAdapter = {
|
|
|
20
20
|
env.PRLL_CLAUDE_HOME = dirs.claudeHome;
|
|
21
21
|
env.PRLL_CLAUDE_STATE_DIR = dirs.stateDir;
|
|
22
22
|
env.PRLL_CLAUDE_WORKSPACE_DIR = dirs.workspaceDir;
|
|
23
|
+
if ("ANTHROPIC_AUTH_TOKEN" in env) {
|
|
24
|
+
env.ANTHROPIC_AUTH_TOKEN = apiKey;
|
|
25
|
+
}
|
|
23
26
|
delete env.PRLL_DAEMON_MODE;
|
|
24
27
|
return env;
|
|
25
28
|
},
|
|
@@ -55,9 +58,26 @@ const defaultAdapter: RuntimeAdapter = {
|
|
|
55
58
|
},
|
|
56
59
|
};
|
|
57
60
|
|
|
61
|
+
const openclawAdapter: RuntimeAdapter = {
|
|
62
|
+
bin: "parall-openclaw-agent",
|
|
63
|
+
buildEnv(baseEnv, agentId, orgId, apiKey, dirs) {
|
|
64
|
+
const env = { ...baseEnv };
|
|
65
|
+
env.PRLL_API_KEY = apiKey;
|
|
66
|
+
env.PRLL_ORG_ID = orgId;
|
|
67
|
+
env.AGENT_ID = agentId;
|
|
68
|
+
env.PRLL_AGENT_ID = agentId;
|
|
69
|
+
env.PRLL_OPENCLAW_STATE_DIR = dirs.stateDir;
|
|
70
|
+
env.PRLL_OPENCLAW_WORKSPACE_DIR = dirs.workspaceDir;
|
|
71
|
+
env.OPENCLAW_GATEWAY_PORT = env.OPENCLAW_GATEWAY_PORT || "0";
|
|
72
|
+
delete env.PRLL_DAEMON_MODE;
|
|
73
|
+
return env;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
58
77
|
const RUNTIME_ADAPTERS: Record<string, RuntimeAdapter> = {
|
|
59
78
|
"claude-code": claudeCodeAdapter,
|
|
60
79
|
"codex": codexAdapter,
|
|
80
|
+
"openclaw": openclawAdapter,
|
|
61
81
|
};
|
|
62
82
|
|
|
63
83
|
export function getRuntimeAdapter(runtimeType: string): RuntimeAdapter {
|