@getpaseo/server 0.1.74 → 0.1.75
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/scripts/supervisor-entrypoint.js +2 -21
- package/dist/scripts/supervisor-entrypoint.js.map +1 -1
- package/dist/scripts/supervisor-log-config.js +31 -0
- package/dist/scripts/supervisor-log-config.js.map +1 -0
- package/dist/server/server/agent/agent-manager.d.ts +4 -1
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +139 -14
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-prompt.d.ts.map +1 -1
- package/dist/server/server/agent/agent-prompt.js +27 -0
- package/dist/server/server/agent/agent-prompt.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +2 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js +3 -0
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/foreground-run-state.d.ts +1 -1
- package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -1
- package/dist/server/server/agent/foreground-run-state.js +2 -4
- package/dist/server/server/agent/foreground-run-state.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +3 -3
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +13 -5
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +39 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +121 -14
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/agent.d.ts +1 -1
- package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/agent.js +80 -24
- package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +7 -1
- package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex/app-server-transport.js +28 -1
- package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js +36 -7
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +14 -4
- 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 +121 -15
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +10 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +114 -7
- package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +6 -4
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +48 -34
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.js +2 -15
- package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
- package/dist/server/server/agent/providers/provider-runner.d.ts +1 -1
- package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
- package/dist/server/server/agent/providers/provider-runner.js +2 -1
- package/dist/server/server/agent/providers/provider-runner.js.map +1 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +1 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +2 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
- package/dist/server/server/agent/stt-manager.d.ts +5 -1
- package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.js +3 -2
- package/dist/server/server/agent/stt-manager.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +5 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.d.ts +2 -0
- package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
- package/dist/server/server/dictation/dictation-stream-manager.js +2 -1
- package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
- package/dist/server/server/logger.js +1 -1
- package/dist/server/server/logger.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +18 -0
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +2 -0
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/service.js +14 -1
- package/dist/server/server/schedule/service.js.map +1 -1
- package/dist/server/server/session.d.ts +3 -0
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +89 -18
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/providers/local/config.d.ts +5 -0
- package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/config.js +35 -0
- package/dist/server/server/speech/providers/local/config.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 +1 -0
- package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
- package/dist/server/server/speech/speech-runtime.d.ts +2 -0
- package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
- package/dist/server/server/speech/speech-runtime.js +2 -0
- package/dist/server/server/speech/speech-runtime.js.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.d.ts +1 -0
- package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.js +1 -1
- package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +2 -0
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/src/server/agent/agent-sdk-types.js +3 -0
- package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/src/server/agent/provider-manifest.js +3 -3
- package/dist/src/server/agent/provider-manifest.js.map +1 -1
- package/dist/src/server/persisted-config.js +2 -0
- package/dist/src/server/persisted-config.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Logger } from "pino";
|
|
2
|
+
import type { SessionConfigOption } from "@agentclientprotocol/sdk";
|
|
3
|
+
import type { AgentMode } from "../agent-sdk-types.js";
|
|
2
4
|
import type { ProviderRuntimeSettings } from "../provider-launch-config.js";
|
|
3
|
-
import { ACPAgentClient } from "./acp-agent.js";
|
|
5
|
+
import { ACPAgentClient, type ACPBeforeModeWriteResult, type ACPProviderModeWriteResult, type ACPProviderModeWriterContext, type SessionStateResponse } from "./acp-agent.js";
|
|
6
|
+
export declare const COPILOT_ALLOW_ALL_MODE_ID = "allow-all";
|
|
7
|
+
export declare const COPILOT_MODES: AgentMode[];
|
|
4
8
|
interface CopilotACPAgentClientOptions {
|
|
5
9
|
logger: Logger;
|
|
6
10
|
runtimeSettings?: ProviderRuntimeSettings;
|
|
@@ -12,5 +16,10 @@ export declare class CopilotACPAgentClient extends ACPAgentClient {
|
|
|
12
16
|
diagnostic: string;
|
|
13
17
|
}>;
|
|
14
18
|
}
|
|
19
|
+
export declare function transformCopilotSessionResponse(response: SessionStateResponse): SessionStateResponse;
|
|
20
|
+
export declare function transformCopilotConfigOptions(configOptions: SessionConfigOption[]): SessionConfigOption[];
|
|
21
|
+
export declare function transformCopilotModeId(modeId: string): string | null;
|
|
22
|
+
export declare function writeCopilotProviderMode(context: ACPProviderModeWriterContext): Promise<ACPProviderModeWriteResult>;
|
|
23
|
+
export declare function beforeCopilotModeWriter(context: ACPProviderModeWriterContext): Promise<ACPBeforeModeWriteResult>;
|
|
15
24
|
export {};
|
|
16
25
|
//# sourceMappingURL=copilot-acp-agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-acp-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/copilot-acp-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-acp-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/copilot-acp-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAwB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EACL,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAsBxB,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAMrD,eAAO,MAAM,aAAa,EAAE,SAAS,EAgBpC,CAAC;AAEF,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,OAAO,EAAE,4BAA4B;IAgBlC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC,aAAa,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAmDvD;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,oBAAoB,GAC7B,oBAAoB,CAwBtB;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,mBAAmB,EAAE,GACnC,mBAAmB,EAAE,CAyBvB;AAgBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpE;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,0BAA0B,CAAC,CAkBrC;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAanC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
2
|
import { findExecutable } from "../../../utils/executable.js";
|
|
3
|
-
import { ACPAgentClient } from "./acp-agent.js";
|
|
3
|
+
import { ACPAgentClient, } from "./acp-agent.js";
|
|
4
4
|
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, resolveBinaryVersion, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
5
5
|
const COPILOT_CAPABILITIES = {
|
|
6
6
|
supportsStreaming: true,
|
|
@@ -10,21 +10,28 @@ const COPILOT_CAPABILITIES = {
|
|
|
10
10
|
supportsReasoningStream: true,
|
|
11
11
|
supportsToolInvocations: true,
|
|
12
12
|
};
|
|
13
|
-
const
|
|
13
|
+
const COPILOT_AGENT_MODE_ID = "https://agentclientprotocol.com/protocol/session-modes#agent";
|
|
14
|
+
const COPILOT_PLAN_MODE_ID = "https://agentclientprotocol.com/protocol/session-modes#plan";
|
|
15
|
+
const COPILOT_AUTOPILOT_MODE_ID = "https://agentclientprotocol.com/protocol/session-modes#autopilot";
|
|
16
|
+
export const COPILOT_ALLOW_ALL_MODE_ID = "allow-all";
|
|
17
|
+
const COPILOT_ALLOW_ALL_CONFIG_ID = "allow_all";
|
|
18
|
+
const COPILOT_ALLOW_ALL_ON = "on";
|
|
19
|
+
const COPILOT_ALLOW_ALL_OFF = "off";
|
|
20
|
+
export const COPILOT_MODES = [
|
|
14
21
|
{
|
|
15
|
-
id:
|
|
22
|
+
id: COPILOT_AGENT_MODE_ID,
|
|
16
23
|
label: "Agent",
|
|
17
24
|
description: "Default agent mode for conversational interactions",
|
|
18
25
|
},
|
|
19
26
|
{
|
|
20
|
-
id:
|
|
27
|
+
id: COPILOT_PLAN_MODE_ID,
|
|
21
28
|
label: "Plan",
|
|
22
29
|
description: "Plan mode for creating and executing multi-step plans",
|
|
23
30
|
},
|
|
24
31
|
{
|
|
25
|
-
id:
|
|
26
|
-
label: "
|
|
27
|
-
description: "
|
|
32
|
+
id: COPILOT_ALLOW_ALL_MODE_ID,
|
|
33
|
+
label: "Allow All",
|
|
34
|
+
description: "Automatically approves all Copilot tool, path, and URL requests.",
|
|
28
35
|
},
|
|
29
36
|
];
|
|
30
37
|
export class CopilotACPAgentClient extends ACPAgentClient {
|
|
@@ -35,6 +42,11 @@ export class CopilotACPAgentClient extends ACPAgentClient {
|
|
|
35
42
|
runtimeSettings: options.runtimeSettings,
|
|
36
43
|
defaultCommand: ["copilot", "--acp"],
|
|
37
44
|
defaultModes: COPILOT_MODES,
|
|
45
|
+
sessionResponseTransformer: transformCopilotSessionResponse,
|
|
46
|
+
configOptionsTransformer: transformCopilotConfigOptions,
|
|
47
|
+
modeIdTransformer: transformCopilotModeId,
|
|
48
|
+
providerModeWriter: writeCopilotProviderMode,
|
|
49
|
+
beforeModeWriter: beforeCopilotModeWriter,
|
|
38
50
|
capabilities: COPILOT_CAPABILITIES,
|
|
39
51
|
});
|
|
40
52
|
}
|
|
@@ -93,4 +105,99 @@ export class CopilotACPAgentClient extends ACPAgentClient {
|
|
|
93
105
|
}
|
|
94
106
|
}
|
|
95
107
|
}
|
|
108
|
+
export function transformCopilotSessionResponse(response) {
|
|
109
|
+
if (!response.modes) {
|
|
110
|
+
return response;
|
|
111
|
+
}
|
|
112
|
+
const allowAllEnabled = isCopilotAllowAllEnabled(response.configOptions ?? []);
|
|
113
|
+
return {
|
|
114
|
+
...response,
|
|
115
|
+
modes: {
|
|
116
|
+
...response.modes,
|
|
117
|
+
availableModes: response.modes.availableModes
|
|
118
|
+
?.filter((mode) => mode.id !== COPILOT_AUTOPILOT_MODE_ID && mode.id !== COPILOT_ALLOW_ALL_MODE_ID)
|
|
119
|
+
.concat({
|
|
120
|
+
id: COPILOT_ALLOW_ALL_MODE_ID,
|
|
121
|
+
name: "Allow All",
|
|
122
|
+
description: "Automatically approves all Copilot tool, path, and URL requests.",
|
|
123
|
+
}),
|
|
124
|
+
currentModeId: allowAllEnabled
|
|
125
|
+
? COPILOT_ALLOW_ALL_MODE_ID
|
|
126
|
+
: (transformCopilotModeId(response.modes.currentModeId ?? COPILOT_AGENT_MODE_ID) ??
|
|
127
|
+
COPILOT_AGENT_MODE_ID),
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function transformCopilotConfigOptions(configOptions) {
|
|
132
|
+
const allowAllEnabled = isCopilotAllowAllEnabled(configOptions);
|
|
133
|
+
return configOptions.map((option) => {
|
|
134
|
+
if (option.type !== "select" || option.category !== "mode") {
|
|
135
|
+
return option;
|
|
136
|
+
}
|
|
137
|
+
// Trust Copilot's allow_all config value as the source of truth when it changes in-process.
|
|
138
|
+
const options = flattenCopilotModeOptions(option.options)
|
|
139
|
+
.filter((choice) => choice.value !== COPILOT_AUTOPILOT_MODE_ID && choice.value !== COPILOT_ALLOW_ALL_MODE_ID)
|
|
140
|
+
.concat({
|
|
141
|
+
value: COPILOT_ALLOW_ALL_MODE_ID,
|
|
142
|
+
name: "Allow All",
|
|
143
|
+
description: "Automatically approves all Copilot tool, path, and URL requests.",
|
|
144
|
+
});
|
|
145
|
+
return {
|
|
146
|
+
...option,
|
|
147
|
+
currentValue: allowAllEnabled
|
|
148
|
+
? COPILOT_ALLOW_ALL_MODE_ID
|
|
149
|
+
: (transformCopilotModeId(option.currentValue) ?? COPILOT_AGENT_MODE_ID),
|
|
150
|
+
options,
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function flattenCopilotModeOptions(options) {
|
|
155
|
+
const flattened = [];
|
|
156
|
+
for (const option of options) {
|
|
157
|
+
if ("value" in option) {
|
|
158
|
+
flattened.push(option);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
flattened.push(...option.options);
|
|
162
|
+
}
|
|
163
|
+
return flattened;
|
|
164
|
+
}
|
|
165
|
+
export function transformCopilotModeId(modeId) {
|
|
166
|
+
return modeId === COPILOT_AUTOPILOT_MODE_ID ? COPILOT_AGENT_MODE_ID : modeId;
|
|
167
|
+
}
|
|
168
|
+
export async function writeCopilotProviderMode(context) {
|
|
169
|
+
// COMPAT(copilotAutopilotMode): added in v0.1.75, remove after 2026-11-12 once old clients no longer send Copilot's old ACP autopilot mode ID.
|
|
170
|
+
const requestsAllowAll = context.requestedModeId === COPILOT_ALLOW_ALL_MODE_ID ||
|
|
171
|
+
context.requestedModeId === COPILOT_AUTOPILOT_MODE_ID;
|
|
172
|
+
if (!requestsAllowAll) {
|
|
173
|
+
return { handled: false };
|
|
174
|
+
}
|
|
175
|
+
const response = await context.connection.setSessionConfigOption({
|
|
176
|
+
sessionId: context.sessionId,
|
|
177
|
+
configId: COPILOT_ALLOW_ALL_CONFIG_ID,
|
|
178
|
+
value: COPILOT_ALLOW_ALL_ON,
|
|
179
|
+
});
|
|
180
|
+
return {
|
|
181
|
+
handled: true,
|
|
182
|
+
currentModeId: COPILOT_ALLOW_ALL_MODE_ID,
|
|
183
|
+
configOptions: response.configOptions,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export async function beforeCopilotModeWriter(context) {
|
|
187
|
+
if (context.currentModeId !== COPILOT_ALLOW_ALL_MODE_ID ||
|
|
188
|
+
context.requestedModeId === COPILOT_ALLOW_ALL_MODE_ID) {
|
|
189
|
+
return {};
|
|
190
|
+
}
|
|
191
|
+
const response = await context.connection.setSessionConfigOption({
|
|
192
|
+
sessionId: context.sessionId,
|
|
193
|
+
configId: COPILOT_ALLOW_ALL_CONFIG_ID,
|
|
194
|
+
value: COPILOT_ALLOW_ALL_OFF,
|
|
195
|
+
});
|
|
196
|
+
return { configOptions: response.configOptions };
|
|
197
|
+
}
|
|
198
|
+
function isCopilotAllowAllEnabled(configOptions) {
|
|
199
|
+
return configOptions.some((option) => option.type === "select" &&
|
|
200
|
+
option.id === COPILOT_ALLOW_ALL_CONFIG_ID &&
|
|
201
|
+
option.currentValue === COPILOT_ALLOW_ALL_ON);
|
|
202
|
+
}
|
|
96
203
|
//# sourceMappingURL=copilot-acp-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-acp-agent.js","sourceRoot":"","sources":["../../../../../src/server/agent/providers/copilot-acp-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-acp-agent.js","sourceRoot":"","sources":["../../../../../src/server/agent/providers/copilot-acp-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AssistantMessage as OpenCodeAssistantMessage, type Event as OpenCodeEvent, type FilePartInput as OpenCodeFilePartInput, type OpencodeClient, type TextPartInput as OpenCodeTextPartInput } from "@opencode-ai/sdk/v2/client";
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
|
-
import type
|
|
3
|
+
import { type AgentCapabilityFlags, type AgentClient, type AgentCreateSessionOptions, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPersistenceHandle, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentUsage, type ListModelsOptions, type ListModesOptions, type ListPersistedAgentsOptions, type PersistedAgentDescriptor, type ToolCallTimelineItem } from "../agent-sdk-types.js";
|
|
4
4
|
import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
|
|
5
5
|
import { type OpenCodeRuntime } from "./opencode/runtime.js";
|
|
6
6
|
type OpenCodeAgentConfig = AgentSessionConfig & {
|
|
@@ -95,8 +95,8 @@ export declare class OpenCodeAgentClient implements AgentClient {
|
|
|
95
95
|
private readonly modelContextWindows;
|
|
96
96
|
private readonly storageRoot;
|
|
97
97
|
constructor(logger: Logger, runtimeSettings?: ProviderRuntimeSettings, storageRoot?: string, deps?: OpenCodeAgentClientDeps);
|
|
98
|
-
createSession(config: AgentSessionConfig,
|
|
99
|
-
resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>,
|
|
98
|
+
createSession(config: AgentSessionConfig, launchContext?: AgentLaunchContext, options?: AgentCreateSessionOptions): Promise<AgentSession>;
|
|
99
|
+
resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, launchContext?: AgentLaunchContext): Promise<AgentSession>;
|
|
100
100
|
listModels(options: ListModelsOptions): Promise<AgentModelDefinition[]>;
|
|
101
101
|
listModes(options: ListModesOptions): Promise<AgentMode[]>;
|
|
102
102
|
listPersistedAgents(options?: ListPersistedAgentsOptions): Promise<PersistedAgentDescriptor[]>;
|
|
@@ -142,6 +142,7 @@ interface OpenCodeSubAgentActivityState {
|
|
|
142
142
|
}
|
|
143
143
|
export declare function translateOpenCodeEvent(event: OpenCodeEvent, state: OpenCodeEventTranslationState): AgentStreamEvent[];
|
|
144
144
|
declare class OpenCodeAgentSession implements AgentSession {
|
|
145
|
+
private readonly agentId?;
|
|
145
146
|
readonly provider: "opencode";
|
|
146
147
|
readonly capabilities: AgentCapabilityFlags;
|
|
147
148
|
private readonly config;
|
|
@@ -177,7 +178,7 @@ declare class OpenCodeAgentSession implements AgentSession {
|
|
|
177
178
|
private readonly persistSession;
|
|
178
179
|
private deletedFromProvider;
|
|
179
180
|
private retryFailureTimer;
|
|
180
|
-
constructor(config: OpenCodeAgentConfig, client: OpencodeClient, sessionId: string, logger: Logger, _storageRoot: string, modelContextWindowsByModelKey?: ReadonlyMap<string, number>, releaseServer?: () => void, persistSession?: boolean);
|
|
181
|
+
constructor(config: OpenCodeAgentConfig, client: OpencodeClient, sessionId: string, logger: Logger, _storageRoot: string, modelContextWindowsByModelKey?: ReadonlyMap<string, number>, releaseServer?: () => void, persistSession?: boolean, agentId?: string | undefined);
|
|
181
182
|
get id(): string | null;
|
|
182
183
|
getRuntimeInfo(): Promise<AgentRuntimeInfo>;
|
|
183
184
|
setModel(modelId: string | null): Promise<void>;
|
|
@@ -199,6 +200,7 @@ declare class OpenCodeAgentSession implements AgentSession {
|
|
|
199
200
|
private synthesizeInterruptedToolCalls;
|
|
200
201
|
private notifySubscribers;
|
|
201
202
|
private createTurnId;
|
|
203
|
+
private traceOpenCode;
|
|
202
204
|
streamHistory(): AsyncGenerator<AgentStreamEvent>;
|
|
203
205
|
getAvailableModes(): Promise<AgentMode[]>;
|
|
204
206
|
getCurrentMode(): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,gBAAgB,IAAI,wBAAwB,EACjD,KAAK,KAAK,IAAI,aAAa,EAC3B,KAAK,aAAa,IAAI,qBAAqB,EAC3C,KAAK,cAAc,EAEnB,KAAK,aAAa,IAAI,qBAAqB,EAC5C,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { homedir } from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { findExecutable, isCommandAvailable } from "../../../utils/executable.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
|
+
import { getAgentStreamEventTurnId, } from "../agent-sdk-types.js";
|
|
6
7
|
import { createProviderEnvSpec } from "../provider-launch-config.js";
|
|
7
8
|
import { withTimeout } from "../../../utils/promise-timeout.js";
|
|
8
9
|
import { execCommand } from "../../../utils/spawn.js";
|
|
@@ -682,7 +683,7 @@ export class OpenCodeAgentClient {
|
|
|
682
683
|
deps.runtime ??
|
|
683
684
|
new ProductionOpenCodeRuntime(OpenCodeServerManager.getInstance(this.logger, runtimeSettings));
|
|
684
685
|
}
|
|
685
|
-
async createSession(config,
|
|
686
|
+
async createSession(config, launchContext, options) {
|
|
686
687
|
const openCodeConfig = this.assertConfig(config);
|
|
687
688
|
const acquisition = await this.runtime.acquireServer({ force: false });
|
|
688
689
|
const { url } = acquisition.server;
|
|
@@ -700,14 +701,14 @@ export class OpenCodeAgentClient {
|
|
|
700
701
|
throw new Error("OpenCode session creation returned no data");
|
|
701
702
|
}
|
|
702
703
|
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
703
|
-
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, options?.persistSession);
|
|
704
|
+
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, options?.persistSession, launchContext?.agentId);
|
|
704
705
|
}
|
|
705
706
|
catch (error) {
|
|
706
707
|
acquisition.release();
|
|
707
708
|
throw error;
|
|
708
709
|
}
|
|
709
710
|
}
|
|
710
|
-
async resumeSession(handle, overrides,
|
|
711
|
+
async resumeSession(handle, overrides, launchContext) {
|
|
711
712
|
const cwd = overrides?.cwd ?? handle.metadata?.cwd;
|
|
712
713
|
if (!cwd) {
|
|
713
714
|
throw new Error("OpenCode resume requires the original working directory");
|
|
@@ -726,7 +727,7 @@ export class OpenCodeAgentClient {
|
|
|
726
727
|
});
|
|
727
728
|
try {
|
|
728
729
|
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
729
|
-
return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, undefined);
|
|
730
|
+
return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, undefined, launchContext?.agentId);
|
|
730
731
|
}
|
|
731
732
|
catch (error) {
|
|
732
733
|
acquisition.release();
|
|
@@ -1563,19 +1564,6 @@ function createDeferred() {
|
|
|
1563
1564
|
});
|
|
1564
1565
|
return { promise, resolve, reject };
|
|
1565
1566
|
}
|
|
1566
|
-
const OPENCODE_TRACE_ENABLED = process.env.PASEO_OPENCODE_TRACE === "1";
|
|
1567
|
-
function traceOpenCode(tag, data = {}) {
|
|
1568
|
-
if (!OPENCODE_TRACE_ENABLED)
|
|
1569
|
-
return;
|
|
1570
|
-
const line = JSON.stringify({ ts: new Date().toISOString(), tag, ...data }, (_k, v) => {
|
|
1571
|
-
if (v instanceof Error)
|
|
1572
|
-
return { name: v.name, message: v.message, stack: v.stack };
|
|
1573
|
-
if (typeof v === "bigint")
|
|
1574
|
-
return v.toString();
|
|
1575
|
-
return v;
|
|
1576
|
-
});
|
|
1577
|
-
process.stderr.write(`[opencode-trace] ${line}\n`);
|
|
1578
|
-
}
|
|
1579
1567
|
function unwrapOpenCodeGlobalEvent(event) {
|
|
1580
1568
|
const record = readOpenCodeRecord(event);
|
|
1581
1569
|
if (!record) {
|
|
@@ -1591,7 +1579,8 @@ function unwrapOpenCodeGlobalEvent(event) {
|
|
|
1591
1579
|
return null;
|
|
1592
1580
|
}
|
|
1593
1581
|
class OpenCodeAgentSession {
|
|
1594
|
-
constructor(config, client, sessionId, logger, _storageRoot, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true) {
|
|
1582
|
+
constructor(config, client, sessionId, logger, _storageRoot, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true, agentId) {
|
|
1583
|
+
this.agentId = agentId;
|
|
1595
1584
|
this.provider = "opencode";
|
|
1596
1585
|
this.capabilities = OPENCODE_CAPABILITIES;
|
|
1597
1586
|
this.currentMode = "default";
|
|
@@ -1622,7 +1611,7 @@ class OpenCodeAgentSession {
|
|
|
1622
1611
|
this.config = config;
|
|
1623
1612
|
this.client = client;
|
|
1624
1613
|
this.sessionId = sessionId;
|
|
1625
|
-
this.logger = logger;
|
|
1614
|
+
this.logger = logger.child({ agentId: this.agentId });
|
|
1626
1615
|
this.modelContextWindowsByModelKey = modelContextWindowsByModelKey;
|
|
1627
1616
|
this.currentMode = normalizeOpenCodeModeId(config.modeId);
|
|
1628
1617
|
this.releaseServer = releaseServer ?? null;
|
|
@@ -1823,7 +1812,7 @@ class OpenCodeAgentSession {
|
|
|
1823
1812
|
// SDK input validation) is caught alongside async rejections. A plain
|
|
1824
1813
|
// `.then().catch()` chain would let a sync throw escape unhandled.
|
|
1825
1814
|
void (async () => {
|
|
1826
|
-
traceOpenCode("
|
|
1815
|
+
this.traceOpenCode("provider.opencode.prompt_async.start", {
|
|
1827
1816
|
turnId,
|
|
1828
1817
|
sessionId: this.sessionId,
|
|
1829
1818
|
model,
|
|
@@ -1849,7 +1838,7 @@ class OpenCodeAgentSession {
|
|
|
1849
1838
|
...(effectiveMode ? { agent: effectiveMode } : {}),
|
|
1850
1839
|
...(effectiveVariant ? { variant: effectiveVariant } : {}),
|
|
1851
1840
|
});
|
|
1852
|
-
traceOpenCode("
|
|
1841
|
+
this.traceOpenCode("provider.opencode.prompt_async.response", {
|
|
1853
1842
|
turnId,
|
|
1854
1843
|
hasError: promptResponse.error !== undefined,
|
|
1855
1844
|
error: promptResponse.error,
|
|
@@ -1864,7 +1853,7 @@ class OpenCodeAgentSession {
|
|
|
1864
1853
|
}
|
|
1865
1854
|
}
|
|
1866
1855
|
catch (error) {
|
|
1867
|
-
traceOpenCode("
|
|
1856
|
+
this.traceOpenCode("provider.opencode.prompt_async.throw", {
|
|
1868
1857
|
turnId,
|
|
1869
1858
|
error: error instanceof Error
|
|
1870
1859
|
? { name: error.name, message: error.message, stack: error.stack }
|
|
@@ -1887,7 +1876,11 @@ class OpenCodeAgentSession {
|
|
|
1887
1876
|
};
|
|
1888
1877
|
}
|
|
1889
1878
|
async consumeEventStream(turnId, turnAbortController, subscriptionReady) {
|
|
1890
|
-
traceOpenCode("subscribe.start", {
|
|
1879
|
+
this.traceOpenCode("provider.opencode.subscribe.start", {
|
|
1880
|
+
turnId,
|
|
1881
|
+
sessionId: this.sessionId,
|
|
1882
|
+
cwd: this.config.cwd,
|
|
1883
|
+
});
|
|
1891
1884
|
try {
|
|
1892
1885
|
const result = await this.client.global.event({
|
|
1893
1886
|
signal: turnAbortController.signal,
|
|
@@ -1899,7 +1892,10 @@ class OpenCodeAgentSession {
|
|
|
1899
1892
|
eventCount += 1;
|
|
1900
1893
|
if (!subscriptionReadyResolved) {
|
|
1901
1894
|
subscriptionReadyResolved = true;
|
|
1902
|
-
traceOpenCode("subscribe.ready", {
|
|
1895
|
+
this.traceOpenCode("provider.opencode.subscribe.ready", {
|
|
1896
|
+
turnId,
|
|
1897
|
+
sessionId: this.sessionId,
|
|
1898
|
+
});
|
|
1903
1899
|
subscriptionReady.resolve();
|
|
1904
1900
|
}
|
|
1905
1901
|
const shouldContinue = await this.consumeOpenCodeStreamEvent({
|
|
@@ -1912,14 +1908,14 @@ class OpenCodeAgentSession {
|
|
|
1912
1908
|
return;
|
|
1913
1909
|
}
|
|
1914
1910
|
}
|
|
1915
|
-
traceOpenCode("stream.eof", {
|
|
1911
|
+
this.traceOpenCode("provider.opencode.stream.eof", {
|
|
1916
1912
|
turnId,
|
|
1917
1913
|
eventCount,
|
|
1918
1914
|
aborted: turnAbortController.signal.aborted,
|
|
1919
1915
|
stillActive: this.activeForegroundTurnId === turnId,
|
|
1920
1916
|
});
|
|
1921
1917
|
if (!turnAbortController.signal.aborted && this.activeForegroundTurnId === turnId) {
|
|
1922
|
-
traceOpenCode("turn.
|
|
1918
|
+
this.traceOpenCode("provider.opencode.turn.fail_eof", { turnId, eventCount });
|
|
1923
1919
|
if (!subscriptionReadyResolved) {
|
|
1924
1920
|
subscriptionReady.reject(new Error("OpenCode event stream ended before it became ready"));
|
|
1925
1921
|
}
|
|
@@ -1931,7 +1927,7 @@ class OpenCodeAgentSession {
|
|
|
1931
1927
|
}
|
|
1932
1928
|
}
|
|
1933
1929
|
catch (error) {
|
|
1934
|
-
traceOpenCode("subscribe.error", {
|
|
1930
|
+
this.traceOpenCode("provider.opencode.subscribe.error", {
|
|
1935
1931
|
turnId,
|
|
1936
1932
|
error: error instanceof Error ? { name: error.name, message: error.message } : String(error),
|
|
1937
1933
|
});
|
|
@@ -1960,19 +1956,20 @@ class OpenCodeAgentSession {
|
|
|
1960
1956
|
async consumeOpenCodeStreamEvent(params) {
|
|
1961
1957
|
const { rawEvent, eventCount, turnId, turnAbortController } = params;
|
|
1962
1958
|
const event = unwrapOpenCodeGlobalEvent(rawEvent);
|
|
1963
|
-
traceOpenCode("
|
|
1959
|
+
this.traceOpenCode("provider.opencode.raw_event", {
|
|
1964
1960
|
turnId,
|
|
1965
1961
|
n: eventCount,
|
|
1966
1962
|
type: event?.type,
|
|
1967
1963
|
rawType: readOpenCodeRecord(rawEvent)?.type,
|
|
1968
1964
|
directory: readOpenCodeRecord(rawEvent)?.directory,
|
|
1969
|
-
|
|
1965
|
+
rawEvent,
|
|
1966
|
+
properties: event?.properties,
|
|
1970
1967
|
});
|
|
1971
1968
|
if (!event) {
|
|
1972
1969
|
return true;
|
|
1973
1970
|
}
|
|
1974
1971
|
if (turnAbortController.signal.aborted || this.activeForegroundTurnId !== turnId) {
|
|
1975
|
-
traceOpenCode("event.skip", {
|
|
1972
|
+
this.traceOpenCode("provider.opencode.event.skip", {
|
|
1976
1973
|
turnId,
|
|
1977
1974
|
n: eventCount,
|
|
1978
1975
|
aborted: turnAbortController.signal.aborted,
|
|
@@ -1982,15 +1979,16 @@ class OpenCodeAgentSession {
|
|
|
1982
1979
|
}
|
|
1983
1980
|
this.armRetryFailureTimerForStatus(event, turnId);
|
|
1984
1981
|
const translated = await this.translateEvent(event);
|
|
1985
|
-
traceOpenCode("
|
|
1982
|
+
this.traceOpenCode("provider.opencode.parsed_event", {
|
|
1986
1983
|
turnId,
|
|
1987
1984
|
n: eventCount,
|
|
1988
1985
|
count: translated.length,
|
|
1989
1986
|
types: translated.map((t) => t.type),
|
|
1987
|
+
events: translated,
|
|
1990
1988
|
});
|
|
1991
1989
|
for (const e of translated) {
|
|
1992
1990
|
if (this.activeForegroundTurnId !== turnId) {
|
|
1993
|
-
traceOpenCode("
|
|
1991
|
+
this.traceOpenCode("provider.opencode.parsed_event.skip_active", { turnId, type: e.type });
|
|
1994
1992
|
return false;
|
|
1995
1993
|
}
|
|
1996
1994
|
if (e.type === "timeline" && e.item.type === "tool_call") {
|
|
@@ -1998,7 +1996,10 @@ class OpenCodeAgentSession {
|
|
|
1998
1996
|
}
|
|
1999
1997
|
const terminalEvent = toTerminalTurnEvent(e);
|
|
2000
1998
|
if (terminalEvent) {
|
|
2001
|
-
traceOpenCode("event.terminal", {
|
|
1999
|
+
this.traceOpenCode("provider.opencode.event.terminal", {
|
|
2000
|
+
turnId,
|
|
2001
|
+
type: terminalEvent.type,
|
|
2002
|
+
});
|
|
2002
2003
|
this.finishForegroundTurn(terminalEvent, turnId);
|
|
2003
2004
|
return false;
|
|
2004
2005
|
}
|
|
@@ -2007,7 +2008,7 @@ class OpenCodeAgentSession {
|
|
|
2007
2008
|
return true;
|
|
2008
2009
|
}
|
|
2009
2010
|
finishForegroundTurn(event, turnId) {
|
|
2010
|
-
traceOpenCode("
|
|
2011
|
+
this.traceOpenCode("provider.opencode.finish_foreground_turn", {
|
|
2011
2012
|
turnId,
|
|
2012
2013
|
activeTurnId: this.activeForegroundTurnId,
|
|
2013
2014
|
type: event.type,
|
|
@@ -2094,6 +2095,10 @@ class OpenCodeAgentSession {
|
|
|
2094
2095
|
notifySubscribers(event, turnIdOverride) {
|
|
2095
2096
|
const turnId = turnIdOverride ?? this.activeForegroundTurnId;
|
|
2096
2097
|
const tagged = turnId ? { ...event, turnId } : event;
|
|
2098
|
+
this.traceOpenCode("provider.opencode.event_emit", {
|
|
2099
|
+
turnId: getAgentStreamEventTurnId(tagged),
|
|
2100
|
+
event: tagged,
|
|
2101
|
+
});
|
|
2097
2102
|
for (const callback of this.subscribers) {
|
|
2098
2103
|
try {
|
|
2099
2104
|
callback(tagged);
|
|
@@ -2106,6 +2111,15 @@ class OpenCodeAgentSession {
|
|
|
2106
2111
|
createTurnId() {
|
|
2107
2112
|
return `opencode-turn-${this.nextTurnOrdinal++}`;
|
|
2108
2113
|
}
|
|
2114
|
+
traceOpenCode(msg, data = {}) {
|
|
2115
|
+
this.logger.trace({
|
|
2116
|
+
agentId: this.agentId,
|
|
2117
|
+
provider: "opencode",
|
|
2118
|
+
sessionId: this.sessionId,
|
|
2119
|
+
turnId: data.turnId ?? this.activeForegroundTurnId ?? undefined,
|
|
2120
|
+
...data,
|
|
2121
|
+
}, msg);
|
|
2122
|
+
}
|
|
2109
2123
|
async *streamHistory() {
|
|
2110
2124
|
const response = await this.client.session.messages({
|
|
2111
2125
|
sessionID: this.sessionId,
|