@junctionpanel/server 0.1.58 → 0.1.60
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/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +6 -39
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +40 -15
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude-cli-capabilities.d.ts +39 -2
- package/dist/server/server/agent/providers/claude-cli-capabilities.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-cli-capabilities.js +88 -23
- package/dist/server/server/agent/providers/claude-cli-capabilities.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +29 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +64 -34
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +2 -10
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/daemon-doctor.d.ts +2 -1
- package/dist/server/server/daemon-doctor.d.ts.map +1 -1
- package/dist/server/server/daemon-doctor.js +70 -13
- package/dist/server/server/daemon-doctor.js.map +1 -1
- package/dist/server/server/daemon-provider-settings.d.ts +3 -9
- package/dist/server/server/daemon-provider-settings.d.ts.map +1 -1
- package/dist/server/server/daemon-provider-settings.js +27 -83
- package/dist/server/server/daemon-provider-settings.js.map +1 -1
- package/dist/server/server/index.js +11 -2
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/lifecycle-intent.d.ts +20 -0
- package/dist/server/server/lifecycle-intent.d.ts.map +1 -0
- package/dist/server/server/lifecycle-intent.js +2 -0
- package/dist/server/server/lifecycle-intent.js.map +1 -0
- package/dist/server/server/persisted-config.d.ts +19 -19
- package/dist/server/server/provider-command-resolution.d.ts +33 -0
- package/dist/server/server/provider-command-resolution.d.ts.map +1 -0
- package/dist/server/server/provider-command-resolution.js +198 -0
- package/dist/server/server/provider-command-resolution.js.map +1 -0
- package/dist/server/server/session.d.ts +3 -11
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +8 -0
- package/dist/server/server/session.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-launch-config.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/provider-launch-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-launch-config.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/provider-launch-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwB1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;IAIhC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC;AAEZ,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,qBAAqB,EAAE,MAAM,MAAM,GAClC,qBAAqB,CAmBvB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,eAAe,CAAC,EAAE,uBAAuB,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAKpC;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAaT;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,qBAAqB,EAAE,MAAM,MAAM,EACnC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAOT"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { execFileSync } from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
1
|
import { z } from "zod";
|
|
4
2
|
import { AgentProviderSchema } from "./provider-manifest.js";
|
|
3
|
+
import { resolveCommandPathWithFallback } from "../provider-command-resolution.js";
|
|
5
4
|
const ProviderCommandDefaultSchema = z
|
|
6
5
|
.object({
|
|
7
6
|
mode: z.literal("default"),
|
|
@@ -55,48 +54,16 @@ export function applyProviderEnv(baseEnv, runtimeSettings) {
|
|
|
55
54
|
...(runtimeSettings?.env ?? {}),
|
|
56
55
|
};
|
|
57
56
|
}
|
|
58
|
-
function escapeShellArgument(value) {
|
|
59
|
-
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
60
|
-
}
|
|
61
|
-
function isCommandAvailableViaLoginShell(command, env) {
|
|
62
|
-
if (process.platform === "win32") {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
const shell = env.SHELL ?? process.env.SHELL;
|
|
66
|
-
if (!shell || !existsSync(shell)) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
const output = execFileSync(shell, ["-lic", `command -v ${escapeShellArgument(command)}`], {
|
|
71
|
-
encoding: "utf8",
|
|
72
|
-
env,
|
|
73
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
74
|
-
}).trim();
|
|
75
|
-
return output.length > 0;
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
57
|
export function isCommandAvailable(command, env = process.env) {
|
|
82
58
|
const normalized = command.trim();
|
|
83
59
|
if (!normalized) {
|
|
84
60
|
return false;
|
|
85
61
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
encoding: "utf8",
|
|
92
|
-
env,
|
|
93
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
94
|
-
}).trim();
|
|
95
|
-
return output.length > 0;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return isCommandAvailableViaLoginShell(normalized, env);
|
|
99
|
-
}
|
|
62
|
+
return (resolveCommandPathWithFallback(normalized, {
|
|
63
|
+
env,
|
|
64
|
+
platform: process.platform,
|
|
65
|
+
loginShell: env.SHELL ?? process.env.SHELL ?? null,
|
|
66
|
+
}) !== null);
|
|
100
67
|
}
|
|
101
68
|
export function isProviderCommandAvailable(commandConfig, resolveDefaultCommand, env = process.env) {
|
|
102
69
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-launch-config.js","sourceRoot":"","sources":["../../../../src/server/agent/provider-launch-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"provider-launch-config.js","sourceRoot":"","sources":["../../../../src/server/agent/provider-launch-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
1
|
import { randomUUID } from "node:crypto";
|
|
3
2
|
import fs from "node:fs";
|
|
4
3
|
import { promises } from "node:fs";
|
|
@@ -11,6 +10,7 @@ import { buildClaudeModelDefinitions, buildClaudeModelFamilyAliases, buildClaude
|
|
|
11
10
|
import { applyRuntimeSettingsToClaudeOptions, detectClaudeThinkingCompatibility, fetchClaudeSupportedModels, getClaudeThinkingCompatibilityCacheKey, } from "./claude-cli-capabilities.js";
|
|
12
11
|
import { buildToolCallDisplayModel } from "../../../shared/tool-call-display.js";
|
|
13
12
|
import { applyProviderEnv, isProviderCommandAvailable, } from "../provider-launch-config.js";
|
|
13
|
+
import { resolveCommandPathWithFallback } from "../../provider-command-resolution.js";
|
|
14
14
|
import { getCachedProviderModels } from "../provider-model-cache.js";
|
|
15
15
|
import { getOrchestratorModeInstructions } from "../orchestrator-instructions.js";
|
|
16
16
|
const fsPromises = promises;
|
|
@@ -217,17 +217,46 @@ const REWIND_COMMAND = {
|
|
|
217
217
|
const INTERRUPT_TOOL_USE_PLACEHOLDER = "[Request interrupted by user for tool use]";
|
|
218
218
|
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
219
219
|
function resolveClaudeBinary() {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
catch {
|
|
227
|
-
// fall through
|
|
220
|
+
const claudePath = resolveCommandPathWithFallback("claude", {
|
|
221
|
+
env: process.env,
|
|
222
|
+
platform: process.platform,
|
|
223
|
+
});
|
|
224
|
+
if (claudePath) {
|
|
225
|
+
return claudePath;
|
|
228
226
|
}
|
|
229
227
|
throw new Error("Claude CLI not found. Install claude or configure agents.providers.claude.command.mode='replace'.");
|
|
230
228
|
}
|
|
229
|
+
function resolveClaudeExecutablePath(runtimeSettings) {
|
|
230
|
+
const env = applyProviderEnv(process.env, runtimeSettings);
|
|
231
|
+
const command = resolveClaudeExecutableCommand(runtimeSettings?.command);
|
|
232
|
+
if (!command) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
return resolveCommandPathWithFallback(command, {
|
|
236
|
+
env,
|
|
237
|
+
platform: process.platform,
|
|
238
|
+
loginShell: env.SHELL ?? process.env.SHELL ?? null,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
function resolveClaudeExecutableCommand(commandConfig) {
|
|
242
|
+
if (!commandConfig || commandConfig.mode === "default" || commandConfig.mode === "append") {
|
|
243
|
+
return "claude";
|
|
244
|
+
}
|
|
245
|
+
for (let index = commandConfig.argv.length - 1; index >= 0; index -= 1) {
|
|
246
|
+
const candidate = commandConfig.argv[index]?.trim();
|
|
247
|
+
if (!candidate) {
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
const basename = path.basename(candidate).toLowerCase();
|
|
251
|
+
if (basename === "claude" ||
|
|
252
|
+
basename === "claude.exe" ||
|
|
253
|
+
basename === "claude.cmd" ||
|
|
254
|
+
basename === "claude.bat") {
|
|
255
|
+
return candidate;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return commandConfig.argv[0] ?? null;
|
|
259
|
+
}
|
|
231
260
|
function summarizeClaudeOptionsForLog(options) {
|
|
232
261
|
const systemPromptRaw = options.systemPrompt;
|
|
233
262
|
const systemPromptSummary = (() => {
|
|
@@ -981,12 +1010,7 @@ export class ClaudeAgentClient {
|
|
|
981
1010
|
this.defaults = options.defaults;
|
|
982
1011
|
this.logger = options.logger.child({ module: "agent", provider: "claude" });
|
|
983
1012
|
this.runtimeSettings = options.runtimeSettings;
|
|
984
|
-
|
|
985
|
-
this.claudePath = execSync("which claude", { encoding: "utf8" }).trim() || null;
|
|
986
|
-
}
|
|
987
|
-
catch {
|
|
988
|
-
this.claudePath = null;
|
|
989
|
-
}
|
|
1013
|
+
this.claudePath = resolveClaudeExecutablePath(this.runtimeSettings);
|
|
990
1014
|
}
|
|
991
1015
|
async createSession(config) {
|
|
992
1016
|
const claudeConfig = this.assertConfig(config);
|
|
@@ -1910,6 +1934,7 @@ class ClaudeAgentSession {
|
|
|
1910
1934
|
return;
|
|
1911
1935
|
}
|
|
1912
1936
|
this.thinkingCompatibility = await detectClaudeThinkingCompatibility({
|
|
1937
|
+
cwd: this.config.cwd,
|
|
1913
1938
|
claudePath: this.claudePath,
|
|
1914
1939
|
runtimeSettings: this.runtimeSettings,
|
|
1915
1940
|
logger: this.logger,
|