@junctionpanel/server 0.1.34 → 0.1.35
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/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +3 -3
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +1 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts.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 +38 -90
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude-cli-capabilities.d.ts +50 -0
- package/dist/server/server/agent/providers/claude-cli-capabilities.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude-cli-capabilities.js +247 -0
- package/dist/server/server/agent/providers/claude-cli-capabilities.js.map +1 -0
- package/dist/server/server/agent/providers/gemini-agent.d.ts +287 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.js +255 -16
- package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
- package/dist/server/server/daemon-doctor.d.ts +5 -0
- package/dist/server/server/daemon-doctor.d.ts.map +1 -1
- package/dist/server/server/daemon-doctor.js +26 -0
- package/dist/server/server/daemon-doctor.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts +1 -0
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +36 -0
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +5 -2
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +147 -0
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +4 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { query, type ModelInfo, type Options, type SpawnOptions } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
import type { Logger } from "pino";
|
|
3
|
+
import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
|
|
4
|
+
export type ClaudeOptions = Options;
|
|
5
|
+
export type ClaudeThinkingCompatibility = {
|
|
6
|
+
status: "supported";
|
|
7
|
+
message: string;
|
|
8
|
+
} | {
|
|
9
|
+
status: "unsupported";
|
|
10
|
+
message: string;
|
|
11
|
+
remediation: string;
|
|
12
|
+
} | {
|
|
13
|
+
status: "unknown";
|
|
14
|
+
message: string;
|
|
15
|
+
};
|
|
16
|
+
type ClaudeQueryFactory = typeof query;
|
|
17
|
+
type DetectClaudeThinkingCompatibilityDependencies = {
|
|
18
|
+
cache?: boolean;
|
|
19
|
+
queryFactory?: ClaudeQueryFactory;
|
|
20
|
+
};
|
|
21
|
+
export declare function getClaudeThinkingCompatibilityCacheKey(input: {
|
|
22
|
+
claudePath: string | null;
|
|
23
|
+
runtimeSettings?: ProviderRuntimeSettings;
|
|
24
|
+
}): string;
|
|
25
|
+
export declare function clearClaudeThinkingCompatibilityCacheForTests(): void;
|
|
26
|
+
export declare function resolveClaudeSpawnCommand(spawnOptions: SpawnOptions, runtimeSettings?: ProviderRuntimeSettings): {
|
|
27
|
+
command: string;
|
|
28
|
+
args: string[];
|
|
29
|
+
};
|
|
30
|
+
export declare function applyRuntimeSettingsToClaudeOptions(options: ClaudeOptions, runtimeSettings?: ProviderRuntimeSettings): ClaudeOptions;
|
|
31
|
+
export declare function buildClaudeControlOptions(params: {
|
|
32
|
+
cwd?: string;
|
|
33
|
+
claudePath: string | null;
|
|
34
|
+
runtimeSettings?: ProviderRuntimeSettings;
|
|
35
|
+
logger: Logger;
|
|
36
|
+
stderr?: (data: string) => void;
|
|
37
|
+
}): ClaudeOptions;
|
|
38
|
+
export declare function fetchClaudeSupportedModels(params: {
|
|
39
|
+
cwd?: string;
|
|
40
|
+
claudePath: string | null;
|
|
41
|
+
runtimeSettings?: ProviderRuntimeSettings;
|
|
42
|
+
logger: Logger;
|
|
43
|
+
}): Promise<ModelInfo[]>;
|
|
44
|
+
export declare function detectClaudeThinkingCompatibility(params: {
|
|
45
|
+
claudePath: string | null;
|
|
46
|
+
runtimeSettings?: ProviderRuntimeSettings;
|
|
47
|
+
logger: Logger;
|
|
48
|
+
}, dependencies?: DetectClaudeThinkingCompatibilityDependencies): Promise<ClaudeThinkingCompatibility>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=claude-cli-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-cli-capabilities.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-cli-capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,KAAK,SAAS,EACd,KAAK,OAAO,EAEZ,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC,MAAM,MAAM,2BAA2B,GACnC;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,KAAK,kBAAkB,GAAG,OAAO,KAAK,CAAC;AAEvC,KAAK,6CAA6C,GAAG;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAgEF,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C,GAAG,MAAM,CAMT;AAED,wBAAgB,6CAA6C,IAAI,IAAI,CAEpE;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,uBAAuB,GACxC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBrC;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,EACtB,eAAe,CAAC,EAAE,uBAAuB,GACxC,aAAa,CAuBf;AAiBD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,GAAG,aAAa,CAsBhB;AAeD,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgBvB;AAkCD,wBAAsB,iCAAiC,CACrD,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,YAAY,CAAC,EAAE,6CAA6C,GAC3D,OAAO,CAAC,2BAA2B,CAAC,CAqEtC"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { statSync } from "node:fs";
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import { query, } from "@anthropic-ai/claude-agent-sdk";
|
|
4
|
+
import { applyProviderEnv, } from "../provider-launch-config.js";
|
|
5
|
+
const compatibilityCache = new Map();
|
|
6
|
+
const SAFE_STDIN_ERROR_CODES = new Set(["EPIPE", "ERR_STREAM_DESTROYED"]);
|
|
7
|
+
function summarizeRuntimeSettings(runtimeSettings) {
|
|
8
|
+
return JSON.stringify({
|
|
9
|
+
command: runtimeSettings?.command ?? null,
|
|
10
|
+
env: runtimeSettings?.env ?? null,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function fingerprintExecutablePath(pathValue) {
|
|
14
|
+
if (typeof pathValue !== "string" || pathValue.trim().length === 0) {
|
|
15
|
+
return {
|
|
16
|
+
path: null,
|
|
17
|
+
size: null,
|
|
18
|
+
mtimeMs: null,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const stats = statSync(pathValue);
|
|
23
|
+
return {
|
|
24
|
+
path: pathValue,
|
|
25
|
+
size: stats.size,
|
|
26
|
+
mtimeMs: stats.mtimeMs,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return {
|
|
31
|
+
path: pathValue,
|
|
32
|
+
size: null,
|
|
33
|
+
mtimeMs: null,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function collectCompatibilityFingerprints(input) {
|
|
38
|
+
const fingerprints = [
|
|
39
|
+
fingerprintExecutablePath(input.claudePath),
|
|
40
|
+
];
|
|
41
|
+
const command = input.runtimeSettings?.command;
|
|
42
|
+
if (command?.mode === "replace") {
|
|
43
|
+
fingerprints.push(fingerprintExecutablePath(command.argv[0] ?? null));
|
|
44
|
+
}
|
|
45
|
+
return fingerprints;
|
|
46
|
+
}
|
|
47
|
+
export function getClaudeThinkingCompatibilityCacheKey(input) {
|
|
48
|
+
return JSON.stringify({
|
|
49
|
+
claudePath: input.claudePath,
|
|
50
|
+
runtimeSettings: summarizeRuntimeSettings(input.runtimeSettings),
|
|
51
|
+
fingerprints: collectCompatibilityFingerprints(input),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function clearClaudeThinkingCompatibilityCacheForTests() {
|
|
55
|
+
compatibilityCache.clear();
|
|
56
|
+
}
|
|
57
|
+
export function resolveClaudeSpawnCommand(spawnOptions, runtimeSettings) {
|
|
58
|
+
const commandConfig = runtimeSettings?.command;
|
|
59
|
+
if (!commandConfig || commandConfig.mode === "default") {
|
|
60
|
+
return {
|
|
61
|
+
command: spawnOptions.command,
|
|
62
|
+
args: [...spawnOptions.args],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (commandConfig.mode === "append") {
|
|
66
|
+
return {
|
|
67
|
+
command: spawnOptions.command,
|
|
68
|
+
args: [...(commandConfig.args ?? []), ...spawnOptions.args],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
command: commandConfig.argv[0],
|
|
73
|
+
args: [...commandConfig.argv.slice(1), ...spawnOptions.args],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function applyRuntimeSettingsToClaudeOptions(options, runtimeSettings) {
|
|
77
|
+
return {
|
|
78
|
+
...options,
|
|
79
|
+
spawnClaudeCodeProcess: (spawnOptions) => {
|
|
80
|
+
const resolved = resolveClaudeSpawnCommand(spawnOptions, runtimeSettings);
|
|
81
|
+
const child = spawn(resolved.command, resolved.args, {
|
|
82
|
+
cwd: spawnOptions.cwd,
|
|
83
|
+
env: applyProviderEnv(spawnOptions.env, runtimeSettings),
|
|
84
|
+
signal: spawnOptions.signal,
|
|
85
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
86
|
+
});
|
|
87
|
+
attachSafeClaudeStdinErrorHandler(child, options.stderr);
|
|
88
|
+
if (options.stderr) {
|
|
89
|
+
child.stderr?.on("data", (data) => {
|
|
90
|
+
options.stderr?.(data.toString());
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return child;
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function attachSafeClaudeStdinErrorHandler(child, stderr) {
|
|
98
|
+
child.stdin?.on("error", (error) => {
|
|
99
|
+
if (error?.code && SAFE_STDIN_ERROR_CODES.has(error.code)) {
|
|
100
|
+
stderr?.(`Claude compatibility probe stdin closed before startup completed (${error.code}).`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
child.emit("error", error);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
export function buildClaudeControlOptions(params) {
|
|
107
|
+
const baseOptions = {
|
|
108
|
+
...(params.cwd ? { cwd: params.cwd } : {}),
|
|
109
|
+
...(params.claudePath
|
|
110
|
+
? { pathToClaudeCodeExecutable: params.claudePath }
|
|
111
|
+
: {}),
|
|
112
|
+
settingSources: ["user", "project"],
|
|
113
|
+
includePartialMessages: false,
|
|
114
|
+
stderr: (data) => {
|
|
115
|
+
params.stderr?.(data);
|
|
116
|
+
params.logger.warn({ stderr: data.trim() }, "Claude Agent SDK stderr");
|
|
117
|
+
},
|
|
118
|
+
env: {
|
|
119
|
+
...process.env,
|
|
120
|
+
MCP_TIMEOUT: "600000",
|
|
121
|
+
MCP_TOOL_TIMEOUT: "600000",
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
return applyRuntimeSettingsToClaudeOptions(baseOptions, params.runtimeSettings);
|
|
125
|
+
}
|
|
126
|
+
async function teardownControlQuery(controlQuery) {
|
|
127
|
+
try {
|
|
128
|
+
await Promise.race([
|
|
129
|
+
controlQuery.interrupt(),
|
|
130
|
+
new Promise((resolve) => {
|
|
131
|
+
setTimeout(resolve, 1000);
|
|
132
|
+
}),
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Ignore teardown errors for short-lived control queries.
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export async function fetchClaudeSupportedModels(params) {
|
|
140
|
+
const abortController = new AbortController();
|
|
141
|
+
const controlQuery = query({
|
|
142
|
+
prompt: "",
|
|
143
|
+
options: {
|
|
144
|
+
...buildClaudeControlOptions(params),
|
|
145
|
+
abortController,
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
try {
|
|
149
|
+
return await controlQuery.supportedModels();
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
abortController.abort();
|
|
153
|
+
await teardownControlQuery(controlQuery);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function normalizeClaudeCompatibilityText(value) {
|
|
157
|
+
return value.trim().toLowerCase();
|
|
158
|
+
}
|
|
159
|
+
function isClaudeThinkingFlagUnsupported(input) {
|
|
160
|
+
const candidates = [];
|
|
161
|
+
if (typeof input.error === "string") {
|
|
162
|
+
candidates.push(input.error);
|
|
163
|
+
}
|
|
164
|
+
else if (input.error instanceof Error) {
|
|
165
|
+
candidates.push(input.error.message);
|
|
166
|
+
}
|
|
167
|
+
else if (typeof input.error === "object" &&
|
|
168
|
+
input.error !== null &&
|
|
169
|
+
"message" in input.error &&
|
|
170
|
+
typeof input.error.message === "string") {
|
|
171
|
+
candidates.push(input.error.message);
|
|
172
|
+
}
|
|
173
|
+
candidates.push(...input.stderrLines);
|
|
174
|
+
return candidates.some((value) => {
|
|
175
|
+
const normalized = normalizeClaudeCompatibilityText(value);
|
|
176
|
+
return (normalized.includes("unknown option '--thinking'") ||
|
|
177
|
+
normalized.includes("unknown option '--effort'"));
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export async function detectClaudeThinkingCompatibility(params, dependencies) {
|
|
181
|
+
const useCache = dependencies?.cache !== false;
|
|
182
|
+
const cacheKey = getClaudeThinkingCompatibilityCacheKey(params);
|
|
183
|
+
if (useCache) {
|
|
184
|
+
const cached = compatibilityCache.get(cacheKey);
|
|
185
|
+
if (cached) {
|
|
186
|
+
return cached;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const queryFactory = dependencies?.queryFactory ?? query;
|
|
190
|
+
const resultPromise = (async () => {
|
|
191
|
+
const stderrLines = [];
|
|
192
|
+
const abortController = new AbortController();
|
|
193
|
+
const controlQuery = queryFactory({
|
|
194
|
+
prompt: "",
|
|
195
|
+
options: {
|
|
196
|
+
...buildClaudeControlOptions({
|
|
197
|
+
...params,
|
|
198
|
+
stderr: (data) => {
|
|
199
|
+
stderrLines.push(data.trim());
|
|
200
|
+
},
|
|
201
|
+
}),
|
|
202
|
+
abortController,
|
|
203
|
+
thinking: { type: "adaptive" },
|
|
204
|
+
effort: "high",
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
try {
|
|
208
|
+
await controlQuery.supportedCommands();
|
|
209
|
+
return {
|
|
210
|
+
status: "supported",
|
|
211
|
+
message: "Claude CLI supports Junction thinking controls.",
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
if (isClaudeThinkingFlagUnsupported({ error, stderrLines })) {
|
|
216
|
+
return {
|
|
217
|
+
status: "unsupported",
|
|
218
|
+
message: "Installed Claude CLI is too old for Junction thinking controls; Junction will run Claude with thinking controls turned off.",
|
|
219
|
+
remediation: "Upgrade Claude CLI or point Junction at a newer Claude executable to re-enable thinking controls.",
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
status: "unknown",
|
|
224
|
+
message: error instanceof Error
|
|
225
|
+
? error.message
|
|
226
|
+
: "Claude thinking compatibility could not be verified.",
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
abortController.abort();
|
|
231
|
+
await teardownControlQuery(controlQuery);
|
|
232
|
+
}
|
|
233
|
+
})();
|
|
234
|
+
if (useCache) {
|
|
235
|
+
compatibilityCache.set(cacheKey, resultPromise);
|
|
236
|
+
}
|
|
237
|
+
try {
|
|
238
|
+
return await resultPromise;
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
if (useCache) {
|
|
242
|
+
compatibilityCache.delete(cacheKey);
|
|
243
|
+
}
|
|
244
|
+
throw error;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=claude-cli-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-cli-capabilities.js","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-cli-capabilities.ts"],"names":[],"mappings":"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"}
|