@getpaseo/server 0.1.27 → 0.1.29
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/client/daemon-client.d.ts +1 -1
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +1 -1
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-response-loop.js +1 -1
- package/dist/server/server/agent/agent-response-loop.js.map +1 -1
- package/dist/server/server/agent/provider-launch-config.d.ts +13 -2
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +17 -9
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +10 -5
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts +3 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +5 -1
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- 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 +30 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +1 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +110 -9
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/tts-manager.d.ts +8 -1
- package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
- package/dist/server/server/agent/tts-manager.js +215 -108
- package/dist/server/server/agent/tts-manager.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +2 -2
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +26 -5
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/exports.d.ts +1 -0
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/exports.js +2 -0
- package/dist/server/server/exports.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +25 -0
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +6 -0
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/session.d.ts +16 -19
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +171 -237
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/providers/local/runtime.d.ts +2 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/runtime.js +7 -0
- package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +2 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts +13 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts.map +1 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +23 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts +32 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts.map +1 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js +107 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -0
- package/dist/server/server/speech/providers/openai/runtime.d.ts +2 -0
- package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
- package/dist/server/server/speech/providers/openai/runtime.js +2 -0
- package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
- package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
- package/dist/server/server/speech/speech-config-resolver.js +35 -14
- package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
- package/dist/server/server/speech/speech-runtime.d.ts +3 -1
- package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
- package/dist/server/server/speech/speech-runtime.js +39 -6
- package/dist/server/server/speech/speech-runtime.js.map +1 -1
- package/dist/server/server/speech/speech-types.d.ts +1 -0
- package/dist/server/server/speech/speech-types.d.ts.map +1 -1
- package/dist/server/server/speech/turn-detection-provider.d.ts +22 -0
- package/dist/server/server/speech/turn-detection-provider.d.ts.map +1 -0
- package/dist/server/server/speech/turn-detection-provider.js +2 -0
- package/dist/server/server/speech/turn-detection-provider.js.map +1 -0
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +16 -0
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +1 -0
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +35 -0
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +1 -0
- package/dist/server/server/voice/voice-turn-controller.d.ts +34 -0
- package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -0
- package/dist/server/server/voice/voice-turn-controller.js +161 -0
- package/dist/server/server/voice/voice-turn-controller.js.map +1 -0
- package/dist/server/server/websocket-server.d.ts +3 -0
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +5 -1
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-registry.d.ts +2 -0
- package/dist/server/server/workspace-registry.d.ts.map +1 -1
- package/dist/server/server/workspace-registry.js +11 -4
- package/dist/server/server/workspace-registry.js.map +1 -1
- package/dist/server/shared/messages.d.ts +97 -0
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +7 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/tool-call-display.d.ts.map +1 -1
- package/dist/server/shared/tool-call-display.js +58 -39
- package/dist/server/shared/tool-call-display.js.map +1 -1
- package/dist/src/server/agent/agent-response-loop.js +1 -1
- package/dist/src/server/agent/agent-response-loop.js.map +1 -1
- package/dist/src/server/agent/provider-launch-config.js +17 -9
- package/dist/src/server/agent/provider-launch-config.js.map +1 -1
- package/dist/src/server/agent/provider-manifest.js +10 -5
- package/dist/src/server/agent/provider-manifest.js.map +1 -1
- package/dist/src/server/agent/providers/claude-agent.js +5 -1
- package/dist/src/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/src/server/agent/providers/codex-app-server-agent.js +30 -1
- package/dist/src/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/src/server/agent/providers/opencode-agent.js +110 -9
- package/dist/src/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/src/server/agent/tts-manager.js +215 -108
- package/dist/src/server/agent/tts-manager.js.map +1 -1
- package/dist/src/server/bootstrap.js +26 -5
- package/dist/src/server/bootstrap.js.map +1 -1
- package/dist/src/server/persisted-config.js +6 -0
- package/dist/src/server/persisted-config.js.map +1 -1
- package/dist/src/server/session.js +171 -237
- package/dist/src/server/session.js.map +1 -1
- package/dist/src/server/speech/providers/local/runtime.js +7 -0
- package/dist/src/server/speech/providers/local/runtime.js.map +1 -1
- package/dist/src/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -1
- package/dist/src/server/speech/providers/local/sherpa/silero-vad-provider.js +23 -0
- package/dist/src/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -0
- package/dist/src/server/speech/providers/local/sherpa/silero-vad-session.js +107 -0
- package/dist/src/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -0
- package/dist/src/server/speech/providers/openai/runtime.js +2 -0
- package/dist/src/server/speech/providers/openai/runtime.js.map +1 -1
- package/dist/src/server/speech/speech-config-resolver.js +35 -14
- package/dist/src/server/speech/speech-config-resolver.js.map +1 -1
- package/dist/src/server/speech/speech-runtime.js +39 -6
- package/dist/src/server/speech/speech-runtime.js.map +1 -1
- package/dist/src/server/speech/turn-detection-provider.js +2 -0
- package/dist/src/server/speech/turn-detection-provider.js.map +1 -0
- package/dist/src/server/voice/fixed-duration-pcm-ring-buffer.js +35 -0
- package/dist/src/server/voice/fixed-duration-pcm-ring-buffer.js.map +1 -0
- package/dist/src/server/voice/voice-turn-controller.js +161 -0
- package/dist/src/server/voice/voice-turn-controller.js.map +1 -0
- package/dist/src/server/websocket-server.js +5 -1
- package/dist/src/server/websocket-server.js.map +1 -1
- package/dist/src/server/workspace-registry.js +11 -4
- package/dist/src/server/workspace-registry.js.map +1 -1
- package/dist/src/shared/messages.js +7 -0
- package/dist/src/shared/messages.js.map +1 -1
- package/dist/src/shared/tool-call-display.js +58 -39
- package/dist/src/shared/tool-call-display.js.map +1 -1
- package/package.json +4 -3
- package/src/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
|
@@ -78,10 +78,10 @@ export function resolveShellEnv() {
|
|
|
78
78
|
}
|
|
79
79
|
return cachedShellEnv;
|
|
80
80
|
}
|
|
81
|
-
export function applyProviderEnv(baseEnv, runtimeSettings) {
|
|
81
|
+
export function applyProviderEnv(baseEnv, runtimeSettings, shellEnv) {
|
|
82
82
|
return {
|
|
83
|
-
...resolveShellEnv(),
|
|
84
83
|
...baseEnv,
|
|
84
|
+
...(shellEnv ?? resolveShellEnv()),
|
|
85
85
|
...(runtimeSettings?.env ?? {}),
|
|
86
86
|
};
|
|
87
87
|
}
|
|
@@ -95,17 +95,25 @@ export function applyProviderEnv(baseEnv, runtimeSettings) {
|
|
|
95
95
|
*
|
|
96
96
|
* On Windows the system PATH is always available, so `where.exe` is sufficient.
|
|
97
97
|
*/
|
|
98
|
-
export function findExecutable(name) {
|
|
98
|
+
export function findExecutable(name, dependencies) {
|
|
99
99
|
const trimmed = name.trim();
|
|
100
100
|
if (!trimmed) {
|
|
101
101
|
return null;
|
|
102
102
|
}
|
|
103
|
+
const deps = {
|
|
104
|
+
execSync,
|
|
105
|
+
execFileSync,
|
|
106
|
+
existsSync,
|
|
107
|
+
platform,
|
|
108
|
+
shell: process.env["SHELL"],
|
|
109
|
+
...dependencies,
|
|
110
|
+
};
|
|
103
111
|
if (trimmed.includes("/") || trimmed.includes("\\")) {
|
|
104
|
-
return existsSync(trimmed) ? trimmed : null;
|
|
112
|
+
return deps.existsSync(trimmed) ? trimmed : null;
|
|
105
113
|
}
|
|
106
|
-
if (platform() === "win32") {
|
|
114
|
+
if (deps.platform() === "win32") {
|
|
107
115
|
try {
|
|
108
|
-
const out = execSync(`where.exe ${trimmed}`, { encoding: "utf8" }).trim();
|
|
116
|
+
const out = deps.execSync(`where.exe ${trimmed}`, { encoding: "utf8" }).trim();
|
|
109
117
|
const firstLine = out.split(/\r?\n/)[0]?.trim();
|
|
110
118
|
return firstLine || null;
|
|
111
119
|
}
|
|
@@ -114,10 +122,10 @@ export function findExecutable(name) {
|
|
|
114
122
|
}
|
|
115
123
|
}
|
|
116
124
|
// Unix: try the user's login shell so rc-file PATH entries are visible.
|
|
117
|
-
const shell =
|
|
125
|
+
const shell = deps.shell;
|
|
118
126
|
if (shell) {
|
|
119
127
|
try {
|
|
120
|
-
const out = execSync(`${shell} -lic "which ${trimmed}"`, {
|
|
128
|
+
const out = deps.execSync(`${shell} -lic "which ${trimmed}"`, {
|
|
121
129
|
encoding: "utf8",
|
|
122
130
|
timeout: 5000,
|
|
123
131
|
}).trim();
|
|
@@ -131,7 +139,7 @@ export function findExecutable(name) {
|
|
|
131
139
|
}
|
|
132
140
|
}
|
|
133
141
|
try {
|
|
134
|
-
return resolveExecutableFromWhichOutput(trimmed, execFileSync("which", [trimmed], { encoding: "utf8" }).trim(), "which");
|
|
142
|
+
return resolveExecutableFromWhichOutput(trimmed, deps.execFileSync("which", [trimmed], { encoding: "utf8" }).trim(), "which");
|
|
135
143
|
}
|
|
136
144
|
catch {
|
|
137
145
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-launch-config.js","sourceRoot":"","sources":["../../../../src/server/agent/provider-launch-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,2BAA2B,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAChE,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAC3D,mBAAmB,EACnB,6BAA6B,CAC9B,CAAC;
|
|
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":"provider-manifest.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/provider-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"provider-manifest.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/provider-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AA0DD,eAAO,MAAM,0BAA0B,EAAE,uBAAuB,EAuC/D,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CAMpF;AAED,eAAO,MAAM,kBAAkB,EAAkD,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAEvG,eAAO,MAAM,mBAAmB,kCAA6B,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
|
@@ -40,9 +40,14 @@ const CODEX_MODES = [
|
|
|
40
40
|
];
|
|
41
41
|
const OPENCODE_MODES = [
|
|
42
42
|
{
|
|
43
|
-
id: "
|
|
44
|
-
label: "
|
|
45
|
-
description: "
|
|
43
|
+
id: "build",
|
|
44
|
+
label: "Build",
|
|
45
|
+
description: "Allows edits and tool execution for implementation work",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "plan",
|
|
49
|
+
label: "Plan",
|
|
50
|
+
description: "Read-only planning mode that avoids file edits",
|
|
46
51
|
},
|
|
47
52
|
];
|
|
48
53
|
export const AGENT_PROVIDER_DEFINITIONS = [
|
|
@@ -74,11 +79,11 @@ export const AGENT_PROVIDER_DEFINITIONS = [
|
|
|
74
79
|
id: "opencode",
|
|
75
80
|
label: "OpenCode",
|
|
76
81
|
description: "Open-source coding assistant with multi-provider model support",
|
|
77
|
-
defaultModeId: "
|
|
82
|
+
defaultModeId: "build",
|
|
78
83
|
modes: OPENCODE_MODES,
|
|
79
84
|
voice: {
|
|
80
85
|
enabled: true,
|
|
81
|
-
defaultModeId: "
|
|
86
|
+
defaultModeId: "build",
|
|
82
87
|
},
|
|
83
88
|
},
|
|
84
89
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-manifest.js","sourceRoot":"","sources":["../../../../src/server/agent/provider-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,MAAM,YAAY,GAAgB;IAChC;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEF,MAAM,WAAW,GAAgB;IAC/B;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,gGAAgG;KACnG;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EACT,iFAAiF;KACpF;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8EAA8E;KAC5F;CACF,CAAC;AAEF,MAAM,cAAc,GAAgB;IAClC;QACE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"provider-manifest.js","sourceRoot":"","sources":["../../../../src/server/agent/provider-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,MAAM,YAAY,GAAgB;IAChC;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEF,MAAM,WAAW,GAAgB;IAC/B;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,gGAAgG;KACnG;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EACT,iFAAiF;KACpF;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8EAA8E;KAC5F;CACF,CAAC;AAEF,MAAM,cAAc,GAAgB;IAClC;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,yDAAyD;KACvE;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAA8B;IACnE;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,kFAAkF;QACpF,aAAa,EAAE,SAAS;QACxB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,OAAO;SACtB;KACF;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,WAAW,EACT,kFAAkF;QACpF,aAAa,EAAE,MAAM;QACrB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,WAAW;YAC1B,YAAY,EAAE,oBAAoB;SACnC;KACF;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,gEAAgE;QAClE,aAAa,EAAE,OAAO;QACtB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,OAAO;SACvB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACrF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAA0B,CAAC;AAEvG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgentDefinition, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
1
|
+
import { query, type AgentDefinition, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
3
|
import { type ClaudeModelFamily } from "./claude/model-catalog.js";
|
|
4
4
|
import type { AgentCapabilityFlags, AgentClient, AgentModelDefinition, AgentPersistenceHandle, AgentSession, AgentSessionConfig, AgentTimelineItem, ListModelsOptions, ListPersistedAgentsOptions, PersistedAgentDescriptor } from "../agent-sdk-types.js";
|
|
@@ -26,6 +26,7 @@ type ClaudeAgentClientOptions = {
|
|
|
26
26
|
};
|
|
27
27
|
logger: Logger;
|
|
28
28
|
runtimeSettings?: ProviderRuntimeSettings;
|
|
29
|
+
queryFactory?: typeof query;
|
|
29
30
|
};
|
|
30
31
|
export declare function extractUserMessageText(content: unknown): string | null;
|
|
31
32
|
export declare function readEventIdentifiers(message: SDKMessage): EventIdentifiers;
|
|
@@ -35,6 +36,7 @@ export declare class ClaudeAgentClient implements AgentClient {
|
|
|
35
36
|
private readonly defaults?;
|
|
36
37
|
private readonly logger;
|
|
37
38
|
private readonly runtimeSettings?;
|
|
39
|
+
private readonly queryFactory;
|
|
38
40
|
constructor(options: ClaudeAgentClientOptions);
|
|
39
41
|
createSession(config: AgentSessionConfig): Promise<AgentSession>;
|
|
40
42
|
resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>): Promise<AgentSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/claude-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -948,6 +948,7 @@ export class ClaudeAgentClient {
|
|
|
948
948
|
this.defaults = options.defaults;
|
|
949
949
|
this.logger = options.logger.child({ module: "agent", provider: "claude" });
|
|
950
950
|
this.runtimeSettings = options.runtimeSettings;
|
|
951
|
+
this.queryFactory = options.queryFactory ?? query;
|
|
951
952
|
}
|
|
952
953
|
async createSession(config) {
|
|
953
954
|
const claudeConfig = this.assertConfig(config);
|
|
@@ -955,6 +956,7 @@ export class ClaudeAgentClient {
|
|
|
955
956
|
defaults: this.defaults,
|
|
956
957
|
runtimeSettings: this.runtimeSettings,
|
|
957
958
|
logger: this.logger,
|
|
959
|
+
queryFactory: this.queryFactory,
|
|
958
960
|
});
|
|
959
961
|
}
|
|
960
962
|
async resumeSession(handle, overrides) {
|
|
@@ -970,6 +972,7 @@ export class ClaudeAgentClient {
|
|
|
970
972
|
runtimeSettings: this.runtimeSettings,
|
|
971
973
|
handle,
|
|
972
974
|
logger: this.logger,
|
|
975
|
+
queryFactory: this.queryFactory,
|
|
973
976
|
});
|
|
974
977
|
}
|
|
975
978
|
async listModels(_options) {
|
|
@@ -1113,6 +1116,7 @@ class ClaudeAgentSession {
|
|
|
1113
1116
|
this.defaults = options.defaults;
|
|
1114
1117
|
this.runtimeSettings = options.runtimeSettings;
|
|
1115
1118
|
this.logger = options.logger;
|
|
1119
|
+
this.queryFactory = options.queryFactory ?? query;
|
|
1116
1120
|
const handle = options.handle;
|
|
1117
1121
|
if (handle) {
|
|
1118
1122
|
if (!handle.sessionId) {
|
|
@@ -1723,7 +1727,7 @@ class ClaudeAgentSession {
|
|
|
1723
1727
|
const options = this.buildOptions();
|
|
1724
1728
|
this.logger.debug({ options: summarizeClaudeOptionsForLog(options) }, "claude query");
|
|
1725
1729
|
this.input = input;
|
|
1726
|
-
this.query =
|
|
1730
|
+
this.query = this.queryFactory({ prompt: input, options });
|
|
1727
1731
|
// Do not kick off background control-plane queries here. Methods like
|
|
1728
1732
|
// supportedCommands()/setPermissionMode() may execute immediately after
|
|
1729
1733
|
// ensureQuery() (for listCommands()/setMode()), and sharing the same query
|