@getpaseo/server 0.1.72 → 0.1.74
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-archive.d.ts +11 -0
- package/dist/server/server/agent/agent-archive.d.ts.map +1 -0
- package/dist/server/server/agent/agent-archive.js +16 -0
- package/dist/server/server/agent/agent-archive.js.map +1 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +3 -23
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +1 -0
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +31 -0
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts.map +1 -0
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +172 -0
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js.map +1 -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 +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +1 -0
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +7 -0
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +8 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +224 -27
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +2 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +45 -8
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +84 -67
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/push/notifications.d.ts +9 -0
- package/dist/server/server/push/notifications.d.ts.map +1 -0
- package/dist/server/server/push/notifications.js +15 -0
- package/dist/server/server/push/notifications.js.map +1 -0
- package/dist/server/server/push/push-service.d.ts +1 -2
- package/dist/server/server/push/push-service.d.ts.map +1 -1
- package/dist/server/server/relay-transport.d.ts +7 -1
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +10 -5
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/websocket/runtime-metrics.d.ts +71 -0
- package/dist/server/server/websocket/runtime-metrics.d.ts.map +1 -0
- package/dist/server/server/websocket/runtime-metrics.js +148 -0
- package/dist/server/server/websocket/runtime-metrics.js.map +1 -0
- package/dist/server/server/websocket-server.d.ts +4 -21
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +28 -137
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/shared/connection-offer.d.ts +6 -6
- package/dist/server/shared/connection-offer.js +1 -1
- package/dist/server/shared/connection-offer.js.map +1 -1
- package/dist/server/utils/run-git-command.d.ts.map +1 -1
- package/dist/server/utils/run-git-command.js +1 -0
- package/dist/server/utils/run-git-command.js.map +1 -1
- package/dist/src/server/agent/provider-launch-config.js +1 -0
- package/dist/src/server/agent/provider-launch-config.js.map +1 -1
- package/package.json +4 -4
package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-opencode-runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/agent/providers/opencode/test-utils/test-opencode-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEhF,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAC5E,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,MAAM;;;MAAgD;IAEtD,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIzC,aAAa,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAW9E,mBAAmB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAInE,YAAY,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAMvE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK;mBACK,OAAO,EAAE;qBACP,OAAO,EAAE;wBACN,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"test-opencode-runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/agent/providers/opencode/test-utils/test-opencode-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEhF,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAC5E,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,MAAM;;;MAAgD;IAEtD,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIzC,aAAa,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAW9E,mBAAmB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAInE,YAAY,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAMvE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK;mBACK,OAAO,EAAE;qBACP,OAAO,EAAE;wBACN,OAAO,EAAE;qBACZ,OAAO,EAAE;yBACL,OAAO,EAAE;sBACZ,OAAO,EAAE;wBACP,OAAO,EAAE;uBACV,OAAO,EAAE;sBACV,OAAO,EAAE;wBACP,OAAO,EAAE;uBACV,OAAO,EAAE;uBACT,OAAO,EAAE;yBACP,OAAO,EAAE;4BACN,OAAO,EAAE;0BACX,OAAO,EAAE;uBACZ,OAAO,EAAE;MAC9B;IAEF,iBAAiB,EAAE,gBAAgB,CAAgB;IACnD,mBAAmB,EAAE,gBAAgB,CAAgB;IACrD,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAoC;IACvE,uBAAuB,EAAE,gBAAgB,CAAM;IAC/C,oBAAoB,EAAE,gBAAgB,CAAwC;IAC9E,0BAA0B,EAAE,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAQ;IAC5E,sBAAsB,EAAE,gBAAgB,CAAM;IAC9C,qBAAqB,EAAE,gBAAgB,CAAM;IAC7C,oBAAoB,EAAE,gBAAgB,CAAM;IAC5C,mBAAmB,EAAE,OAAO,CAAQ;IACpC,sBAAsB,EAAE,gBAAgB,CAAM;IAC9C,qBAAqB,EAAE,gBAAgB,CAAiC;IACxE,qBAAqB,EAAE,gBAAgB,CAAM;IAC7C,uBAAuB,EAAE,gBAAgB,CAAgB;IACzD,0BAA0B,EAAE,gBAAgB,CAAM;IAClD,wBAAwB,EAAE,gBAAgB,CAAgB;IAC1D,qBAAqB,EAAE,gBAAgB,CAAM;IAE7C,WAAW,IAAI,cAAc;CA6F9B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAM5E;AAED,wBAAgB,SAAS,IAAI,OAAO,CAKnC"}
|
|
@@ -34,6 +34,7 @@ export class TestOpenCodeClient {
|
|
|
34
34
|
appAgents: [],
|
|
35
35
|
commandList: [],
|
|
36
36
|
eventSubscribe: [],
|
|
37
|
+
globalEvent: [],
|
|
37
38
|
permissionReply: [],
|
|
38
39
|
providerList: [],
|
|
39
40
|
questionReject: [],
|
|
@@ -85,6 +86,12 @@ export class TestOpenCodeClient {
|
|
|
85
86
|
return { stream: this.eventStream };
|
|
86
87
|
},
|
|
87
88
|
},
|
|
89
|
+
global: {
|
|
90
|
+
event: async (options) => {
|
|
91
|
+
this.calls.globalEvent.push(options);
|
|
92
|
+
return { stream: this.eventStream };
|
|
93
|
+
},
|
|
94
|
+
},
|
|
88
95
|
mcp: {
|
|
89
96
|
add: async () => ({}),
|
|
90
97
|
connect: async () => ({}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-opencode-runtime.js","sourceRoot":"","sources":["../../../../../../../src/server/agent/providers/opencode/test-utils/test-opencode-runtime.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,mBAAmB;IAAhC;QACW,iBAAY,GAAoD,EAAE,CAAC;QACnE,oBAAe,GAAkD,EAAE,CAAC;QAC5D,YAAO,GAAyB,EAAE,CAAC;QAEpD,WAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC;IA4BxD,CAAC;IA1BC,aAAa,CAAC,MAA0B;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA2B;QAC7C,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,EAAE;gBACZ,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC;YAChC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,OAA+C;QAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,kBAAkB,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ,KAAmB,CAAC;CACnC;AAED,MAAM,OAAO,kBAAkB;IAA/B;QACW,UAAK,GAAG;YACf,SAAS,EAAE,EAAe;YAC1B,WAAW,EAAE,EAAe;YAC5B,cAAc,EAAE,EAAe;YAC/B,eAAe,EAAE,EAAe;YAChC,YAAY,EAAE,EAAe;YAC7B,cAAc,EAAE,EAAe;YAC/B,aAAa,EAAE,EAAe;YAC9B,YAAY,EAAE,EAAe;YAC7B,cAAc,EAAE,EAAe;YAC/B,aAAa,EAAE,EAAe;YAC9B,aAAa,EAAE,EAAe;YAC9B,eAAe,EAAE,EAAe;YAChC,kBAAkB,EAAE,EAAe;YACnC,gBAAgB,EAAE,EAAe;YACjC,aAAa,EAAE,EAAe;SAC/B,CAAC;QAEF,sBAAiB,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACnD,wBAAmB,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrD,gBAAW,GAA2B,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,4BAAuB,GAAqB,EAAE,CAAC;QAC/C,yBAAoB,GAAqB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QAC9E,+BAA0B,GAA6C,IAAI,CAAC;QAC5E,2BAAsB,GAAqB,EAAE,CAAC;QAC9C,0BAAqB,GAAqB,EAAE,CAAC;QAC7C,yBAAoB,GAAqB,EAAE,CAAC;QAC5C,wBAAmB,GAAY,IAAI,CAAC;QACpC,2BAAsB,GAAqB,EAAE,CAAC;QAC9C,0BAAqB,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;QACxE,0BAAqB,GAAqB,EAAE,CAAC;QAC7C,4BAAuB,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACzD,+BAA0B,GAAqB,EAAE,CAAC;QAClD,6BAAwB,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1D,0BAAqB,GAAqB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"test-opencode-runtime.js","sourceRoot":"","sources":["../../../../../../../src/server/agent/providers/opencode/test-utils/test-opencode-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -152,6 +152,7 @@ declare class OpenCodeAgentSession implements AgentSession {
|
|
|
152
152
|
private currentMode;
|
|
153
153
|
private pendingPermissions;
|
|
154
154
|
private abortController;
|
|
155
|
+
private pendingAbortPromise;
|
|
155
156
|
private accumulatedUsage;
|
|
156
157
|
private mcpConfigured;
|
|
157
158
|
private mcpSetupPromise;
|
|
@@ -175,20 +176,26 @@ declare class OpenCodeAgentSession implements AgentSession {
|
|
|
175
176
|
private releaseServer;
|
|
176
177
|
private readonly persistSession;
|
|
177
178
|
private deletedFromProvider;
|
|
178
|
-
|
|
179
|
+
private retryFailureTimer;
|
|
180
|
+
constructor(config: OpenCodeAgentConfig, client: OpencodeClient, sessionId: string, logger: Logger, _storageRoot: string, modelContextWindowsByModelKey?: ReadonlyMap<string, number>, releaseServer?: () => void, persistSession?: boolean);
|
|
179
181
|
get id(): string | null;
|
|
180
182
|
getRuntimeInfo(): Promise<AgentRuntimeInfo>;
|
|
181
183
|
setModel(modelId: string | null): Promise<void>;
|
|
182
184
|
setThinkingOption(thinkingOptionId: string | null): Promise<void>;
|
|
183
185
|
run(prompt: AgentPromptInput, options?: AgentRunOptions): Promise<AgentRunResult>;
|
|
184
186
|
interrupt(): Promise<void>;
|
|
187
|
+
private beginSessionAbort;
|
|
188
|
+
private awaitPendingAbortBeforeStartingTurn;
|
|
185
189
|
startTurn(prompt: AgentPromptInput, options?: AgentRunOptions): Promise<{
|
|
186
190
|
turnId: string;
|
|
187
191
|
}>;
|
|
188
192
|
subscribe(callback: (event: AgentStreamEvent) => void): () => void;
|
|
189
193
|
private consumeEventStream;
|
|
194
|
+
private consumeOpenCodeStreamEvent;
|
|
190
195
|
private finishForegroundTurn;
|
|
191
196
|
private trackToolCall;
|
|
197
|
+
private armRetryFailureTimerForStatus;
|
|
198
|
+
private clearRetryFailureTimer;
|
|
192
199
|
private synthesizeInterruptedToolCalls;
|
|
193
200
|
private notifySubscribers;
|
|
194
201
|
private createTurnId;
|
|
@@ -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,EACV,oBAAoB,EACpB,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAEhB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAE1B,wBAAwB,EAExB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAenG,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,8 @@ const OPENCODE_CAPABILITIES = {
|
|
|
24
24
|
const OPENCODE_BUILD_MODE_ID = "build";
|
|
25
25
|
const OPENCODE_FULL_ACCESS_MODE_ID = "full-access";
|
|
26
26
|
const OPENCODE_STORAGE_SESSION_LIMIT = 200;
|
|
27
|
+
const OPENCODE_PENDING_ABORT_START_TIMEOUT_MS = 10000;
|
|
28
|
+
const OPENCODE_RETRY_STATUS_FAILURE_MS = 10000;
|
|
27
29
|
const DEFAULT_MODES = [
|
|
28
30
|
{
|
|
29
31
|
id: OPENCODE_BUILD_MODE_ID,
|
|
@@ -574,17 +576,24 @@ async function readOpenCodeSessionTimeline(storageRoot, sessionId) {
|
|
|
574
576
|
return timeline;
|
|
575
577
|
}
|
|
576
578
|
async function readOpenCodeMessageText(storageRoot, messageId) {
|
|
579
|
+
const parts = await readOpenCodeStoredParts(storageRoot, messageId);
|
|
580
|
+
return readOpenCodeTextFromParts(parts);
|
|
581
|
+
}
|
|
582
|
+
async function readOpenCodeStoredParts(storageRoot, messageId) {
|
|
577
583
|
const partRoot = path.join(storageRoot, "part", messageId);
|
|
578
584
|
const partFiles = await findJsonFiles(partRoot);
|
|
579
585
|
const parts = [];
|
|
580
586
|
for (const file of partFiles) {
|
|
581
587
|
const parsed = await readJsonFile(file, OpenCodeStoredPartSchema);
|
|
582
|
-
if (parsed
|
|
588
|
+
if (parsed) {
|
|
583
589
|
parts.push(parsed);
|
|
584
590
|
}
|
|
585
591
|
}
|
|
592
|
+
return parts.sort((left, right) => getOpenCodePartTimestamp(left) - getOpenCodePartTimestamp(right));
|
|
593
|
+
}
|
|
594
|
+
function readOpenCodeTextFromParts(parts) {
|
|
586
595
|
return parts
|
|
587
|
-
.
|
|
596
|
+
.filter((part) => part.type === "text" && typeof part.text === "string")
|
|
588
597
|
.map((part) => part.text?.trim() ?? "")
|
|
589
598
|
.filter(Boolean)
|
|
590
599
|
.join("\n\n");
|
|
@@ -691,7 +700,7 @@ export class OpenCodeAgentClient {
|
|
|
691
700
|
throw new Error("OpenCode session creation returned no data");
|
|
692
701
|
}
|
|
693
702
|
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
694
|
-
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, new Map(this.modelContextWindows), acquisition.release, options?.persistSession);
|
|
703
|
+
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, options?.persistSession);
|
|
695
704
|
}
|
|
696
705
|
catch (error) {
|
|
697
706
|
acquisition.release();
|
|
@@ -717,7 +726,7 @@ export class OpenCodeAgentClient {
|
|
|
717
726
|
});
|
|
718
727
|
try {
|
|
719
728
|
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
720
|
-
return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, new Map(this.modelContextWindows), acquisition.release);
|
|
729
|
+
return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, undefined);
|
|
721
730
|
}
|
|
722
731
|
catch (error) {
|
|
723
732
|
acquisition.release();
|
|
@@ -1554,13 +1563,41 @@ function createDeferred() {
|
|
|
1554
1563
|
});
|
|
1555
1564
|
return { promise, resolve, reject };
|
|
1556
1565
|
}
|
|
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
|
+
function unwrapOpenCodeGlobalEvent(event) {
|
|
1580
|
+
const record = readOpenCodeRecord(event);
|
|
1581
|
+
if (!record) {
|
|
1582
|
+
return null;
|
|
1583
|
+
}
|
|
1584
|
+
const payload = readOpenCodeRecord(record.payload);
|
|
1585
|
+
if (typeof payload?.type === "string") {
|
|
1586
|
+
return payload;
|
|
1587
|
+
}
|
|
1588
|
+
if (typeof record.type === "string") {
|
|
1589
|
+
return record;
|
|
1590
|
+
}
|
|
1591
|
+
return null;
|
|
1592
|
+
}
|
|
1557
1593
|
class OpenCodeAgentSession {
|
|
1558
|
-
constructor(config, client, sessionId, logger, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true) {
|
|
1594
|
+
constructor(config, client, sessionId, logger, _storageRoot, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true) {
|
|
1559
1595
|
this.provider = "opencode";
|
|
1560
1596
|
this.capabilities = OPENCODE_CAPABILITIES;
|
|
1561
1597
|
this.currentMode = "default";
|
|
1562
1598
|
this.pendingPermissions = new Map();
|
|
1563
1599
|
this.abortController = null;
|
|
1600
|
+
this.pendingAbortPromise = null;
|
|
1564
1601
|
this.accumulatedUsage = {};
|
|
1565
1602
|
this.mcpConfigured = false;
|
|
1566
1603
|
this.mcpSetupPromise = null;
|
|
@@ -1581,6 +1618,7 @@ class OpenCodeAgentSession {
|
|
|
1581
1618
|
this.subAgentCallIdByChildSessionId = new Map();
|
|
1582
1619
|
this.pendingChildToolPartsBySessionId = new Map();
|
|
1583
1620
|
this.deletedFromProvider = false;
|
|
1621
|
+
this.retryFailureTimer = null;
|
|
1584
1622
|
this.config = config;
|
|
1585
1623
|
this.client = client;
|
|
1586
1624
|
this.sessionId = sessionId;
|
|
@@ -1626,22 +1664,57 @@ class OpenCodeAgentSession {
|
|
|
1626
1664
|
const turnId = this.activeForegroundTurnId;
|
|
1627
1665
|
const turnAbortController = this.abortController;
|
|
1628
1666
|
turnAbortController?.abort();
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1667
|
+
// COMPAT(opencodeSlowAbort): OpenCode 1.14.42+ blocks session.abort until
|
|
1668
|
+
// the running tool actually stops, which can be tens of seconds for
|
|
1669
|
+
// long-running tools. Cap the wait so the user-visible cancel lands
|
|
1670
|
+
// quickly while still giving OpenCode a chance to confirm the abort
|
|
1671
|
+
// cleanly. Drop the timeout once upstream returns abort acknowledgement
|
|
1672
|
+
// before tool teardown.
|
|
1673
|
+
const abortPromise = this.beginSessionAbort(turnId, "interrupt");
|
|
1674
|
+
await withTimeout(abortPromise, 2000, "OpenCode session.abort").catch((error) => {
|
|
1675
|
+
this.logger.warn({ err: error, sessionId: this.sessionId, turnId }, "OpenCode session.abort exceeded the cancel cap; proceeding with local cancel");
|
|
1632
1676
|
});
|
|
1633
1677
|
if (turnId) {
|
|
1634
1678
|
this.finishForegroundTurn({ type: "turn_canceled", provider: "opencode", reason: "interrupted" }, turnId);
|
|
1635
1679
|
}
|
|
1636
1680
|
}
|
|
1681
|
+
beginSessionAbort(turnId, reason) {
|
|
1682
|
+
const abortPromise = this.client.session
|
|
1683
|
+
.abort({
|
|
1684
|
+
sessionID: this.sessionId,
|
|
1685
|
+
directory: this.config.cwd,
|
|
1686
|
+
})
|
|
1687
|
+
.then(() => undefined)
|
|
1688
|
+
.catch((error) => {
|
|
1689
|
+
this.logger.warn({ err: error, sessionId: this.sessionId, turnId, reason }, "OpenCode session.abort rejected");
|
|
1690
|
+
});
|
|
1691
|
+
const trackedAbortPromise = abortPromise.finally(() => {
|
|
1692
|
+
if (this.pendingAbortPromise === trackedAbortPromise) {
|
|
1693
|
+
this.pendingAbortPromise = null;
|
|
1694
|
+
}
|
|
1695
|
+
});
|
|
1696
|
+
this.pendingAbortPromise = trackedAbortPromise;
|
|
1697
|
+
return trackedAbortPromise;
|
|
1698
|
+
}
|
|
1699
|
+
async awaitPendingAbortBeforeStartingTurn() {
|
|
1700
|
+
const pendingAbortPromise = this.pendingAbortPromise;
|
|
1701
|
+
if (!pendingAbortPromise) {
|
|
1702
|
+
return;
|
|
1703
|
+
}
|
|
1704
|
+
await withTimeout(pendingAbortPromise, OPENCODE_PENDING_ABORT_START_TIMEOUT_MS, "OpenCode pending session.abort").catch((error) => {
|
|
1705
|
+
this.logger.warn({ err: error, sessionId: this.sessionId }, "OpenCode session.abort was still pending before starting the next turn");
|
|
1706
|
+
});
|
|
1707
|
+
}
|
|
1637
1708
|
async startTurn(prompt, options) {
|
|
1638
1709
|
if (this.activeForegroundTurnId) {
|
|
1639
1710
|
throw new Error("A foreground turn is already active");
|
|
1640
1711
|
}
|
|
1712
|
+
await this.awaitPendingAbortBeforeStartingTurn();
|
|
1641
1713
|
this.runningToolCalls.clear();
|
|
1642
1714
|
this.subAgentsByCallId.clear();
|
|
1643
1715
|
this.subAgentCallIdByChildSessionId.clear();
|
|
1644
1716
|
this.pendingChildToolPartsBySessionId.clear();
|
|
1717
|
+
this.clearRetryFailureTimer();
|
|
1645
1718
|
const turnAbortController = new AbortController();
|
|
1646
1719
|
this.abortController = turnAbortController;
|
|
1647
1720
|
await this.ensureMcpServersConfigured();
|
|
@@ -1750,6 +1823,14 @@ class OpenCodeAgentSession {
|
|
|
1750
1823
|
// SDK input validation) is caught alongside async rejections. A plain
|
|
1751
1824
|
// `.then().catch()` chain would let a sync throw escape unhandled.
|
|
1752
1825
|
void (async () => {
|
|
1826
|
+
traceOpenCode("promptAsync.start", {
|
|
1827
|
+
turnId,
|
|
1828
|
+
sessionId: this.sessionId,
|
|
1829
|
+
model,
|
|
1830
|
+
effectiveMode,
|
|
1831
|
+
effectiveVariant,
|
|
1832
|
+
partTypes: parts.map((p) => p.type),
|
|
1833
|
+
});
|
|
1753
1834
|
try {
|
|
1754
1835
|
const promptResponse = await this.client.session.promptAsync({
|
|
1755
1836
|
sessionID: this.sessionId,
|
|
@@ -1768,6 +1849,12 @@ class OpenCodeAgentSession {
|
|
|
1768
1849
|
...(effectiveMode ? { agent: effectiveMode } : {}),
|
|
1769
1850
|
...(effectiveVariant ? { variant: effectiveVariant } : {}),
|
|
1770
1851
|
});
|
|
1852
|
+
traceOpenCode("promptAsync.response", {
|
|
1853
|
+
turnId,
|
|
1854
|
+
hasError: promptResponse.error !== undefined,
|
|
1855
|
+
error: promptResponse.error,
|
|
1856
|
+
data: promptResponse.data,
|
|
1857
|
+
});
|
|
1771
1858
|
if (promptResponse.error) {
|
|
1772
1859
|
this.finishForegroundTurn({
|
|
1773
1860
|
type: "turn_failed",
|
|
@@ -1777,6 +1864,12 @@ class OpenCodeAgentSession {
|
|
|
1777
1864
|
}
|
|
1778
1865
|
}
|
|
1779
1866
|
catch (error) {
|
|
1867
|
+
traceOpenCode("promptAsync.throw", {
|
|
1868
|
+
turnId,
|
|
1869
|
+
error: error instanceof Error
|
|
1870
|
+
? { name: error.name, message: error.message, stack: error.stack }
|
|
1871
|
+
: String(error),
|
|
1872
|
+
});
|
|
1780
1873
|
this.finishForegroundTurn({
|
|
1781
1874
|
type: "turn_failed",
|
|
1782
1875
|
provider: "opencode",
|
|
@@ -1794,30 +1887,42 @@ class OpenCodeAgentSession {
|
|
|
1794
1887
|
};
|
|
1795
1888
|
}
|
|
1796
1889
|
async consumeEventStream(turnId, turnAbortController, subscriptionReady) {
|
|
1890
|
+
traceOpenCode("subscribe.start", { turnId, sessionId: this.sessionId, cwd: this.config.cwd });
|
|
1797
1891
|
try {
|
|
1798
|
-
const result = await this.client.event
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1892
|
+
const result = await this.client.global.event({
|
|
1893
|
+
signal: turnAbortController.signal,
|
|
1894
|
+
sseMaxRetryAttempts: 0,
|
|
1895
|
+
});
|
|
1896
|
+
let eventCount = 0;
|
|
1897
|
+
let subscriptionReadyResolved = false;
|
|
1898
|
+
for await (const rawEvent of result.stream) {
|
|
1899
|
+
eventCount += 1;
|
|
1900
|
+
if (!subscriptionReadyResolved) {
|
|
1901
|
+
subscriptionReadyResolved = true;
|
|
1902
|
+
traceOpenCode("subscribe.ready", { turnId, sessionId: this.sessionId });
|
|
1903
|
+
subscriptionReady.resolve();
|
|
1803
1904
|
}
|
|
1804
|
-
const
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
const terminalEvent = toTerminalTurnEvent(e);
|
|
1813
|
-
if (terminalEvent) {
|
|
1814
|
-
this.finishForegroundTurn(terminalEvent, turnId);
|
|
1815
|
-
return;
|
|
1816
|
-
}
|
|
1817
|
-
this.notifySubscribers(e, turnId);
|
|
1905
|
+
const shouldContinue = await this.consumeOpenCodeStreamEvent({
|
|
1906
|
+
rawEvent,
|
|
1907
|
+
eventCount,
|
|
1908
|
+
turnId,
|
|
1909
|
+
turnAbortController,
|
|
1910
|
+
});
|
|
1911
|
+
if (!shouldContinue) {
|
|
1912
|
+
return;
|
|
1818
1913
|
}
|
|
1819
1914
|
}
|
|
1915
|
+
traceOpenCode("stream.eof", {
|
|
1916
|
+
turnId,
|
|
1917
|
+
eventCount,
|
|
1918
|
+
aborted: turnAbortController.signal.aborted,
|
|
1919
|
+
stillActive: this.activeForegroundTurnId === turnId,
|
|
1920
|
+
});
|
|
1820
1921
|
if (!turnAbortController.signal.aborted && this.activeForegroundTurnId === turnId) {
|
|
1922
|
+
traceOpenCode("turn.fail.eof", { turnId, eventCount });
|
|
1923
|
+
if (!subscriptionReadyResolved) {
|
|
1924
|
+
subscriptionReady.reject(new Error("OpenCode event stream ended before it became ready"));
|
|
1925
|
+
}
|
|
1821
1926
|
this.finishForegroundTurn({
|
|
1822
1927
|
type: "turn_failed",
|
|
1823
1928
|
provider: "opencode",
|
|
@@ -1826,6 +1931,10 @@ class OpenCodeAgentSession {
|
|
|
1826
1931
|
}
|
|
1827
1932
|
}
|
|
1828
1933
|
catch (error) {
|
|
1934
|
+
traceOpenCode("subscribe.error", {
|
|
1935
|
+
turnId,
|
|
1936
|
+
error: error instanceof Error ? { name: error.name, message: error.message } : String(error),
|
|
1937
|
+
});
|
|
1829
1938
|
subscriptionReady.reject(error);
|
|
1830
1939
|
if (!turnAbortController.signal.aborted && this.activeForegroundTurnId === turnId) {
|
|
1831
1940
|
this.finishForegroundTurn({
|
|
@@ -1848,7 +1957,63 @@ class OpenCodeAgentSession {
|
|
|
1848
1957
|
}
|
|
1849
1958
|
}
|
|
1850
1959
|
}
|
|
1960
|
+
async consumeOpenCodeStreamEvent(params) {
|
|
1961
|
+
const { rawEvent, eventCount, turnId, turnAbortController } = params;
|
|
1962
|
+
const event = unwrapOpenCodeGlobalEvent(rawEvent);
|
|
1963
|
+
traceOpenCode("event.raw", {
|
|
1964
|
+
turnId,
|
|
1965
|
+
n: eventCount,
|
|
1966
|
+
type: event?.type,
|
|
1967
|
+
rawType: readOpenCodeRecord(rawEvent)?.type,
|
|
1968
|
+
directory: readOpenCodeRecord(rawEvent)?.directory,
|
|
1969
|
+
properties: event ? event.properties : undefined,
|
|
1970
|
+
});
|
|
1971
|
+
if (!event) {
|
|
1972
|
+
return true;
|
|
1973
|
+
}
|
|
1974
|
+
if (turnAbortController.signal.aborted || this.activeForegroundTurnId !== turnId) {
|
|
1975
|
+
traceOpenCode("event.skip", {
|
|
1976
|
+
turnId,
|
|
1977
|
+
n: eventCount,
|
|
1978
|
+
aborted: turnAbortController.signal.aborted,
|
|
1979
|
+
activeTurnId: this.activeForegroundTurnId,
|
|
1980
|
+
});
|
|
1981
|
+
return false;
|
|
1982
|
+
}
|
|
1983
|
+
this.armRetryFailureTimerForStatus(event, turnId);
|
|
1984
|
+
const translated = await this.translateEvent(event);
|
|
1985
|
+
traceOpenCode("event.translated", {
|
|
1986
|
+
turnId,
|
|
1987
|
+
n: eventCount,
|
|
1988
|
+
count: translated.length,
|
|
1989
|
+
types: translated.map((t) => t.type),
|
|
1990
|
+
});
|
|
1991
|
+
for (const e of translated) {
|
|
1992
|
+
if (this.activeForegroundTurnId !== turnId) {
|
|
1993
|
+
traceOpenCode("event.translated.skip-active", { turnId, type: e.type });
|
|
1994
|
+
return false;
|
|
1995
|
+
}
|
|
1996
|
+
if (e.type === "timeline" && e.item.type === "tool_call") {
|
|
1997
|
+
this.trackToolCall(e.item);
|
|
1998
|
+
}
|
|
1999
|
+
const terminalEvent = toTerminalTurnEvent(e);
|
|
2000
|
+
if (terminalEvent) {
|
|
2001
|
+
traceOpenCode("event.terminal", { turnId, type: terminalEvent.type });
|
|
2002
|
+
this.finishForegroundTurn(terminalEvent, turnId);
|
|
2003
|
+
return false;
|
|
2004
|
+
}
|
|
2005
|
+
this.notifySubscribers(e, turnId);
|
|
2006
|
+
}
|
|
2007
|
+
return true;
|
|
2008
|
+
}
|
|
1851
2009
|
finishForegroundTurn(event, turnId) {
|
|
2010
|
+
traceOpenCode("finishForegroundTurn", {
|
|
2011
|
+
turnId,
|
|
2012
|
+
activeTurnId: this.activeForegroundTurnId,
|
|
2013
|
+
type: event.type,
|
|
2014
|
+
error: event.type === "turn_failed" ? event.error : undefined,
|
|
2015
|
+
reason: event.type === "turn_canceled" ? event.reason : undefined,
|
|
2016
|
+
});
|
|
1852
2017
|
if (this.activeForegroundTurnId !== turnId) {
|
|
1853
2018
|
return;
|
|
1854
2019
|
}
|
|
@@ -1858,6 +2023,7 @@ class OpenCodeAgentSession {
|
|
|
1858
2023
|
else {
|
|
1859
2024
|
this.runningToolCalls.clear();
|
|
1860
2025
|
}
|
|
2026
|
+
this.clearRetryFailureTimer();
|
|
1861
2027
|
this.activeForegroundTurnId = null;
|
|
1862
2028
|
// Abort the SSE connection so the SDK tears down the underlying fetch.
|
|
1863
2029
|
this.abortController?.abort();
|
|
@@ -1871,6 +2037,37 @@ class OpenCodeAgentSession {
|
|
|
1871
2037
|
}
|
|
1872
2038
|
this.runningToolCalls.delete(item.callId);
|
|
1873
2039
|
}
|
|
2040
|
+
armRetryFailureTimerForStatus(event, turnId) {
|
|
2041
|
+
if (this.retryFailureTimer || event.type !== "session.status") {
|
|
2042
|
+
return;
|
|
2043
|
+
}
|
|
2044
|
+
if (event.properties.sessionID !== this.sessionId || event.properties.status.type !== "retry") {
|
|
2045
|
+
return;
|
|
2046
|
+
}
|
|
2047
|
+
const retry = event.properties.status;
|
|
2048
|
+
const message = typeof retry.message === "string" ? retry.message.trim() : "";
|
|
2049
|
+
const error = message
|
|
2050
|
+
? `OpenCode provider retry did not recover: ${message}`
|
|
2051
|
+
: "OpenCode provider retry did not recover";
|
|
2052
|
+
this.retryFailureTimer = setTimeout(() => {
|
|
2053
|
+
this.retryFailureTimer = null;
|
|
2054
|
+
if (this.activeForegroundTurnId !== turnId) {
|
|
2055
|
+
return;
|
|
2056
|
+
}
|
|
2057
|
+
this.finishForegroundTurn({
|
|
2058
|
+
type: "turn_failed",
|
|
2059
|
+
provider: "opencode",
|
|
2060
|
+
error,
|
|
2061
|
+
}, turnId);
|
|
2062
|
+
}, OPENCODE_RETRY_STATUS_FAILURE_MS);
|
|
2063
|
+
}
|
|
2064
|
+
clearRetryFailureTimer() {
|
|
2065
|
+
if (!this.retryFailureTimer) {
|
|
2066
|
+
return;
|
|
2067
|
+
}
|
|
2068
|
+
clearTimeout(this.retryFailureTimer);
|
|
2069
|
+
this.retryFailureTimer = null;
|
|
2070
|
+
}
|
|
1874
2071
|
synthesizeInterruptedToolCalls(turnId) {
|
|
1875
2072
|
for (const item of this.runningToolCalls.values()) {
|
|
1876
2073
|
const error = { message: "Tool execution aborted" };
|