@getpaseo/server 0.1.58 → 0.1.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/dev-runner.js +26 -7
- package/dist/scripts/dev-runner.js.map +1 -1
- package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
- package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
- package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
- package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
- package/dist/server/client/daemon-client.d.ts +58 -9
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +151 -10
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +55 -48
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +541 -331
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +3 -2
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +31 -16
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts +2 -1
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +29 -1
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +9 -5
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +76 -69
- package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.js +13 -6
- package/dist/server/server/agent/agent-storage.js.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
- package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
- package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
- package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.js +245 -0
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts +12 -1
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +276 -65
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +196 -152
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +40 -42
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
- package/dist/server/server/agent/model-resolver.js +3 -1
- package/dist/server/server/agent/model-resolver.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts +6 -0
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
- package/dist/server/server/agent/prompt-attachments.js +31 -0
- package/dist/server/server/agent/prompt-attachments.js.map +1 -0
- package/dist/server/server/agent/provider-launch-config.d.ts +12 -10
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +34 -0
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +1 -0
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +22 -1
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts +5 -2
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +20 -9
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +17 -5
- package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js +150 -61
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +8 -4
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +73 -8
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.js +21 -0
- package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
- 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 +15 -8
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +37 -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 +61 -31
- 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.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -2
- package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +64 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js +585 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts +19 -4
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +227 -118
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts +69 -0
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js +1177 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -4
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +13 -13
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.js +20 -36
- package/dist/server/server/agent-attention-policy.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +6 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +113 -11
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/chat/chat-rpc-schemas.d.ts +44 -44
- package/dist/server/server/chat/chat-types.d.ts +6 -6
- package/dist/server/server/checkout-diff-manager.d.ts +0 -1
- package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
- package/dist/server/server/checkout-diff-manager.js +6 -4
- package/dist/server/server/checkout-diff-manager.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +1 -0
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +2 -1
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +392 -392
- package/dist/server/server/loop-service.d.ts +52 -52
- package/dist/server/server/paseo-worktree-archive-service.d.ts +41 -0
- package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-archive-service.js +137 -0
- package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
- package/dist/server/server/paseo-worktree-service.d.ts +24 -0
- package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-service.js +94 -0
- package/dist/server/server/paseo-worktree-service.js.map +1 -0
- package/dist/server/server/path-utils.d.ts +1 -0
- package/dist/server/server/path-utils.d.ts.map +1 -1
- package/dist/server/server/path-utils.js +9 -0
- package/dist/server/server/path-utils.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +73 -73
- package/dist/server/server/persistence-hooks.d.ts.map +1 -1
- package/dist/server/server/persistence-hooks.js +3 -0
- package/dist/server/server/persistence-hooks.js.map +1 -1
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +30 -0
- package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
- package/dist/server/server/resolve-worktree-creation-intent.js +163 -0
- package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
- package/dist/server/server/schedule/rpc-schemas.d.ts +192 -192
- package/dist/server/server/schedule/service.d.ts +1 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/types.d.ts +44 -44
- package/dist/server/server/script-health-monitor.d.ts +39 -0
- package/dist/server/server/script-health-monitor.d.ts.map +1 -0
- package/dist/server/server/script-health-monitor.js +158 -0
- package/dist/server/server/script-health-monitor.js.map +1 -0
- package/dist/server/server/script-proxy.d.ts +40 -0
- package/dist/server/server/script-proxy.d.ts.map +1 -0
- package/dist/server/server/script-proxy.js +245 -0
- package/dist/server/server/script-proxy.js.map +1 -0
- package/dist/server/server/script-route-branch-handler.d.ts +10 -0
- package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
- package/dist/server/server/script-route-branch-handler.js +45 -0
- package/dist/server/server/script-route-branch-handler.js.map +1 -0
- package/dist/server/server/script-status-projection.d.ts +29 -0
- package/dist/server/server/script-status-projection.d.ts.map +1 -0
- package/dist/server/server/script-status-projection.js +133 -0
- package/dist/server/server/script-status-projection.js.map +1 -0
- package/dist/server/server/session.d.ts +77 -13
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +1290 -548
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +27 -3
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +112 -29
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-archive-service.d.ts +8 -0
- package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
- package/dist/server/server/workspace-archive-service.js +17 -0
- package/dist/server/server/workspace-archive-service.js.map +1 -0
- package/dist/server/server/workspace-git-metadata.d.ts +24 -0
- package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
- package/dist/server/server/workspace-git-metadata.js +78 -0
- package/dist/server/server/workspace-git-metadata.js.map +1 -0
- package/dist/server/server/workspace-git-service.d.ts +104 -5
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +442 -56
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-reconciliation-service.d.ts +54 -0
- package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
- package/dist/server/server/workspace-reconciliation-service.js +176 -0
- package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
- package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-bootstrap.js +4 -3
- package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
- package/dist/server/server/workspace-registry.d.ts +8 -8
- package/dist/server/server/workspace-registry.test-helpers.d.ts +37 -0
- package/dist/server/server/workspace-registry.test-helpers.d.ts.map +1 -0
- package/dist/server/server/workspace-registry.test-helpers.js +121 -0
- package/dist/server/server/workspace-registry.test-helpers.js.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.js +78 -0
- package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
- package/dist/server/server/workspace-service-env.d.ts +17 -0
- package/dist/server/server/workspace-service-env.d.ts.map +1 -0
- package/dist/server/server/workspace-service-env.js +80 -0
- package/dist/server/server/workspace-service-env.js.map +1 -0
- package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
- package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
- package/dist/server/server/workspace-service-port-registry.js +59 -0
- package/dist/server/server/workspace-service-port-registry.js.map +1 -0
- package/dist/server/server/worktree-bootstrap.d.ts +55 -10
- package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
- package/dist/server/server/worktree-bootstrap.js +290 -112
- package/dist/server/server/worktree-bootstrap.js.map +1 -1
- package/dist/server/server/worktree-core.d.ts +25 -0
- package/dist/server/server/worktree-core.d.ts.map +1 -0
- package/dist/server/server/worktree-core.js +75 -0
- package/dist/server/server/worktree-core.js.map +1 -0
- package/dist/server/server/worktree-errors.d.ts +12 -0
- package/dist/server/server/worktree-errors.d.ts.map +1 -0
- package/dist/server/server/worktree-errors.js +31 -0
- package/dist/server/server/worktree-errors.js.map +1 -0
- package/dist/server/server/worktree-session.d.ts +56 -70
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +176 -251
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/services/github-service.d.ts +225 -0
- package/dist/server/services/github-service.d.ts.map +1 -0
- package/dist/server/services/github-service.js +1381 -0
- package/dist/server/services/github-service.js.map +1 -0
- package/dist/server/shared/messages.d.ts +29408 -12268
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +391 -65
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/dist/server/terminal/terminal-manager.d.ts +9 -0
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +27 -0
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
- package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
- package/dist/server/terminal/terminal-output-coalescer.js +55 -0
- package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +32 -1
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +397 -17
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +63 -10
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +321 -229
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/promise-timeout.d.ts +9 -0
- package/dist/server/utils/promise-timeout.d.ts.map +1 -0
- package/dist/server/utils/promise-timeout.js +25 -0
- package/dist/server/utils/promise-timeout.js.map +1 -0
- package/dist/server/utils/script-hostname.d.ts +8 -0
- package/dist/server/utils/script-hostname.d.ts.map +1 -0
- package/dist/server/utils/script-hostname.js +14 -0
- package/dist/server/utils/script-hostname.js.map +1 -0
- package/dist/server/utils/string-command-shell.d.ts +10 -0
- package/dist/server/utils/string-command-shell.d.ts.map +1 -0
- package/dist/server/utils/string-command-shell.js +21 -0
- package/dist/server/utils/string-command-shell.js.map +1 -0
- package/dist/server/utils/worktree.d.ts +54 -7
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +434 -129
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/package.json +11 -14
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
- package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-load-test-agent.js","sourceRoot":"","sources":["../../../../../src/server/agent/providers/mock-load-test-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,9 +76,10 @@ export declare const __openCodeInternals: {
|
|
|
76
76
|
export declare class OpenCodeServerManager {
|
|
77
77
|
private static instance;
|
|
78
78
|
private static exitHandlerRegistered;
|
|
79
|
-
private
|
|
80
|
-
private
|
|
79
|
+
private currentServer;
|
|
80
|
+
private retiredServers;
|
|
81
81
|
private startPromise;
|
|
82
|
+
private forcedRefreshPromise;
|
|
82
83
|
private readonly logger;
|
|
83
84
|
private readonly runtimeSettings?;
|
|
84
85
|
private readonly runtimeSettingsKey;
|
|
@@ -89,8 +90,22 @@ export declare class OpenCodeServerManager {
|
|
|
89
90
|
port: number;
|
|
90
91
|
url: string;
|
|
91
92
|
}>;
|
|
93
|
+
acquire(options: {
|
|
94
|
+
force: boolean;
|
|
95
|
+
}): Promise<{
|
|
96
|
+
server: {
|
|
97
|
+
port: number;
|
|
98
|
+
url: string;
|
|
99
|
+
};
|
|
100
|
+
release: () => void;
|
|
101
|
+
}>;
|
|
102
|
+
private getForcedRefreshServer;
|
|
103
|
+
private getCurrentServer;
|
|
104
|
+
private rotateCurrentServer;
|
|
92
105
|
private startServer;
|
|
93
106
|
shutdown(): Promise<void>;
|
|
107
|
+
private cleanupRetiredServers;
|
|
108
|
+
private killServer;
|
|
94
109
|
}
|
|
95
110
|
export declare class OpenCodeAgentClient implements AgentClient {
|
|
96
111
|
readonly provider: "opencode";
|
|
@@ -102,8 +117,8 @@ export declare class OpenCodeAgentClient implements AgentClient {
|
|
|
102
117
|
constructor(logger: Logger, runtimeSettings?: ProviderRuntimeSettings);
|
|
103
118
|
createSession(config: AgentSessionConfig, _launchContext?: AgentLaunchContext): Promise<AgentSession>;
|
|
104
119
|
resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, _launchContext?: AgentLaunchContext): Promise<AgentSession>;
|
|
105
|
-
listModels(options
|
|
106
|
-
listModes(options
|
|
120
|
+
listModels(options: ListModelsOptions): Promise<AgentModelDefinition[]>;
|
|
121
|
+
listModes(options: ListModesOptions): Promise<AgentMode[]>;
|
|
107
122
|
listPersistedAgents(_options?: ListPersistedAgentsOptions): Promise<PersistedAgentDescriptor[]>;
|
|
108
123
|
isAvailable(): Promise<boolean>;
|
|
109
124
|
getDiagnostic(): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
1
2
|
import { createOpencodeClient, } from "@opencode-ai/sdk/v2/client";
|
|
2
3
|
import net from "node:net";
|
|
3
4
|
import { z } from "zod";
|
|
4
5
|
import { applyProviderEnv, resolveProviderCommandPrefix, } from "../provider-launch-config.js";
|
|
5
6
|
import { findExecutable, isCommandAvailable } from "../../../utils/executable.js";
|
|
7
|
+
import { withTimeout } from "../../../utils/promise-timeout.js";
|
|
6
8
|
import { spawnProcess } from "../../../utils/spawn.js";
|
|
7
9
|
import { mapOpencodeToolCall } from "./opencode/tool-call-mapper.js";
|
|
8
10
|
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, resolveBinaryVersion, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
11
|
+
import { renderPromptAttachmentAsText } from "../prompt-attachments.js";
|
|
9
12
|
const OPENCODE_CAPABILITIES = {
|
|
10
13
|
supportsStreaming: true,
|
|
11
14
|
supportsSessionPersistence: true,
|
|
@@ -455,6 +458,10 @@ function buildOpenCodePromptParts(prompt) {
|
|
|
455
458
|
output.push({ type: "text", text: part.text });
|
|
456
459
|
continue;
|
|
457
460
|
}
|
|
461
|
+
if (part.type === "github_pr" || part.type === "github_issue") {
|
|
462
|
+
output.push({ type: "text", text: renderPromptAttachmentAsText(part) });
|
|
463
|
+
continue;
|
|
464
|
+
}
|
|
458
465
|
attachmentOrdinal += 1;
|
|
459
466
|
const normalized = toOpenCodeDataUrl(part.mimeType, part.data);
|
|
460
467
|
output.push({
|
|
@@ -481,9 +488,10 @@ export const __openCodeInternals = {
|
|
|
481
488
|
};
|
|
482
489
|
export class OpenCodeServerManager {
|
|
483
490
|
constructor(logger, runtimeSettings) {
|
|
484
|
-
this.
|
|
485
|
-
this.
|
|
491
|
+
this.currentServer = null;
|
|
492
|
+
this.retiredServers = new Set();
|
|
486
493
|
this.startPromise = null;
|
|
494
|
+
this.forcedRefreshPromise = null;
|
|
487
495
|
this.logger = logger;
|
|
488
496
|
this.runtimeSettings = runtimeSettings;
|
|
489
497
|
this.runtimeSettingsKey = JSON.stringify(runtimeSettings ?? {});
|
|
@@ -509,36 +517,90 @@ export class OpenCodeServerManager {
|
|
|
509
517
|
OpenCodeServerManager.exitHandlerRegistered = true;
|
|
510
518
|
const cleanup = () => {
|
|
511
519
|
const instance = OpenCodeServerManager.instance;
|
|
512
|
-
|
|
513
|
-
instance.server.kill("SIGTERM");
|
|
514
|
-
}
|
|
520
|
+
void instance?.shutdown();
|
|
515
521
|
};
|
|
516
522
|
process.on("exit", cleanup);
|
|
517
523
|
process.on("SIGTERM", cleanup);
|
|
518
524
|
process.on("SIGINT", cleanup);
|
|
519
525
|
}
|
|
520
526
|
async ensureRunning() {
|
|
527
|
+
const acquisition = await this.acquire({ force: false });
|
|
528
|
+
acquisition.release();
|
|
529
|
+
return acquisition.server;
|
|
530
|
+
}
|
|
531
|
+
async acquire(options) {
|
|
532
|
+
const server = options.force
|
|
533
|
+
? await this.getForcedRefreshServer()
|
|
534
|
+
: await this.getCurrentServer();
|
|
535
|
+
server.refCount += 1;
|
|
536
|
+
let released = false;
|
|
537
|
+
return {
|
|
538
|
+
server: { port: server.port, url: server.url },
|
|
539
|
+
release: () => {
|
|
540
|
+
if (released) {
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
released = true;
|
|
544
|
+
server.refCount -= 1;
|
|
545
|
+
this.cleanupRetiredServers();
|
|
546
|
+
},
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
async getForcedRefreshServer() {
|
|
550
|
+
if (this.forcedRefreshPromise) {
|
|
551
|
+
return this.forcedRefreshPromise;
|
|
552
|
+
}
|
|
553
|
+
this.forcedRefreshPromise = Promise.resolve()
|
|
554
|
+
.then(async () => {
|
|
555
|
+
await this.rotateCurrentServer();
|
|
556
|
+
return this.getCurrentServer();
|
|
557
|
+
})
|
|
558
|
+
.finally(() => {
|
|
559
|
+
this.forcedRefreshPromise = null;
|
|
560
|
+
});
|
|
561
|
+
return this.forcedRefreshPromise;
|
|
562
|
+
}
|
|
563
|
+
async getCurrentServer() {
|
|
521
564
|
if (this.startPromise) {
|
|
522
565
|
return this.startPromise;
|
|
523
566
|
}
|
|
524
|
-
if (this.
|
|
525
|
-
return
|
|
567
|
+
if (this.currentServer && !this.currentServer.process.killed) {
|
|
568
|
+
return this.currentServer;
|
|
526
569
|
}
|
|
527
570
|
this.startPromise = this.startServer();
|
|
528
571
|
try {
|
|
529
572
|
const result = await this.startPromise;
|
|
573
|
+
if (!result.retired) {
|
|
574
|
+
this.currentServer = result;
|
|
575
|
+
}
|
|
530
576
|
return result;
|
|
531
577
|
}
|
|
532
578
|
finally {
|
|
533
579
|
this.startPromise = null;
|
|
534
580
|
}
|
|
535
581
|
}
|
|
582
|
+
async rotateCurrentServer() {
|
|
583
|
+
const existing = this.currentServer;
|
|
584
|
+
if (existing) {
|
|
585
|
+
existing.retired = true;
|
|
586
|
+
this.retiredServers.add(existing);
|
|
587
|
+
this.currentServer = null;
|
|
588
|
+
this.cleanupRetiredServers();
|
|
589
|
+
}
|
|
590
|
+
if (this.startPromise) {
|
|
591
|
+
const pending = await this.startPromise;
|
|
592
|
+
pending.retired = true;
|
|
593
|
+
this.retiredServers.add(pending);
|
|
594
|
+
this.currentServer = null;
|
|
595
|
+
this.cleanupRetiredServers();
|
|
596
|
+
}
|
|
597
|
+
}
|
|
536
598
|
async startServer() {
|
|
537
|
-
|
|
538
|
-
const url = `http://127.0.0.1:${
|
|
599
|
+
const port = await findAvailablePort();
|
|
600
|
+
const url = `http://127.0.0.1:${port}`;
|
|
539
601
|
const launchPrefix = await resolveProviderCommandPrefix(this.runtimeSettings?.command, resolveOpenCodeBinary);
|
|
540
602
|
return new Promise((resolve, reject) => {
|
|
541
|
-
|
|
603
|
+
const serverProcess = spawnProcess(launchPrefix.command, [...launchPrefix.args, "serve", "--port", String(port)], {
|
|
542
604
|
stdio: ["ignore", "pipe", "pipe"],
|
|
543
605
|
env: applyProviderEnv(process.env, this.runtimeSettings),
|
|
544
606
|
});
|
|
@@ -548,47 +610,77 @@ export class OpenCodeServerManager {
|
|
|
548
610
|
reject(new Error("OpenCode server startup timeout"));
|
|
549
611
|
}
|
|
550
612
|
}, 30000);
|
|
551
|
-
|
|
613
|
+
serverProcess.stdout?.on("data", (data) => {
|
|
552
614
|
const output = data.toString();
|
|
553
615
|
if (output.includes("listening on") && !started) {
|
|
554
616
|
started = true;
|
|
555
617
|
clearTimeout(timeout);
|
|
556
|
-
resolve({
|
|
618
|
+
resolve({
|
|
619
|
+
process: serverProcess,
|
|
620
|
+
port,
|
|
621
|
+
url,
|
|
622
|
+
refCount: 0,
|
|
623
|
+
retired: false,
|
|
624
|
+
});
|
|
557
625
|
}
|
|
558
626
|
});
|
|
559
|
-
|
|
627
|
+
serverProcess.stderr?.on("data", (data) => {
|
|
560
628
|
this.logger.error({ stderr: data.toString().trim() }, "OpenCode server stderr");
|
|
561
629
|
});
|
|
562
|
-
|
|
630
|
+
serverProcess.on("error", (error) => {
|
|
563
631
|
clearTimeout(timeout);
|
|
564
632
|
reject(error);
|
|
565
633
|
});
|
|
566
|
-
|
|
634
|
+
serverProcess.on("exit", (code) => {
|
|
567
635
|
if (!started) {
|
|
568
636
|
clearTimeout(timeout);
|
|
569
637
|
reject(new Error(`OpenCode server exited with code ${code}`));
|
|
570
638
|
}
|
|
571
|
-
this.
|
|
572
|
-
|
|
639
|
+
if (this.currentServer?.process === serverProcess) {
|
|
640
|
+
this.currentServer = null;
|
|
641
|
+
}
|
|
642
|
+
for (const retired of Array.from(this.retiredServers)) {
|
|
643
|
+
if (retired.process === serverProcess) {
|
|
644
|
+
this.retiredServers.delete(retired);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
573
647
|
});
|
|
574
648
|
});
|
|
575
649
|
}
|
|
576
650
|
async shutdown() {
|
|
577
|
-
|
|
578
|
-
this.
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
651
|
+
const servers = [
|
|
652
|
+
...(this.currentServer ? [this.currentServer] : []),
|
|
653
|
+
...Array.from(this.retiredServers),
|
|
654
|
+
];
|
|
655
|
+
for (const server of servers) {
|
|
656
|
+
await this.killServer(server);
|
|
657
|
+
}
|
|
658
|
+
this.currentServer = null;
|
|
659
|
+
this.retiredServers.clear();
|
|
660
|
+
}
|
|
661
|
+
cleanupRetiredServers() {
|
|
662
|
+
for (const server of Array.from(this.retiredServers)) {
|
|
663
|
+
if (server.refCount === 0) {
|
|
664
|
+
this.retiredServers.delete(server);
|
|
665
|
+
void this.killServer(server);
|
|
666
|
+
}
|
|
589
667
|
}
|
|
590
|
-
|
|
591
|
-
|
|
668
|
+
}
|
|
669
|
+
async killServer(server) {
|
|
670
|
+
if (server.process.killed) {
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
await new Promise((resolve) => {
|
|
674
|
+
const timeout = setTimeout(() => {
|
|
675
|
+
server.process.kill("SIGKILL");
|
|
676
|
+
resolve();
|
|
677
|
+
}, 5000);
|
|
678
|
+
server.process.on("exit", () => {
|
|
679
|
+
clearTimeout(timeout);
|
|
680
|
+
resolve();
|
|
681
|
+
});
|
|
682
|
+
server.process.kill("SIGTERM");
|
|
683
|
+
});
|
|
592
684
|
}
|
|
593
685
|
}
|
|
594
686
|
OpenCodeServerManager.instance = null;
|
|
@@ -604,28 +696,28 @@ export class OpenCodeAgentClient {
|
|
|
604
696
|
}
|
|
605
697
|
async createSession(config, _launchContext) {
|
|
606
698
|
const openCodeConfig = this.assertConfig(config);
|
|
607
|
-
const
|
|
699
|
+
const acquisition = await this.serverManager.acquire({ force: false });
|
|
700
|
+
const { url } = acquisition.server;
|
|
608
701
|
const client = createOpencodeClient({
|
|
609
702
|
baseUrl: url,
|
|
610
703
|
directory: openCodeConfig.cwd,
|
|
611
704
|
});
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
705
|
+
try {
|
|
706
|
+
const response = await withTimeout(client.session.create({ directory: openCodeConfig.cwd }), 10000, "OpenCode session.create timed out after 10s");
|
|
707
|
+
if (response.error) {
|
|
708
|
+
throw new Error(`Failed to create OpenCode session: ${JSON.stringify(response.error)}`);
|
|
709
|
+
}
|
|
710
|
+
const session = response.data;
|
|
711
|
+
if (!session) {
|
|
712
|
+
throw new Error("OpenCode session creation returned no data");
|
|
713
|
+
}
|
|
714
|
+
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
715
|
+
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, new Map(this.modelContextWindows), acquisition.release);
|
|
622
716
|
}
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
throw
|
|
717
|
+
catch (error) {
|
|
718
|
+
acquisition.release();
|
|
719
|
+
throw error;
|
|
626
720
|
}
|
|
627
|
-
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
628
|
-
return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, new Map(this.modelContextWindows));
|
|
629
721
|
}
|
|
630
722
|
async resumeSession(handle, overrides, _launchContext) {
|
|
631
723
|
const cwd = overrides?.cwd ?? handle.metadata?.cwd;
|
|
@@ -638,81 +730,91 @@ export class OpenCodeAgentClient {
|
|
|
638
730
|
...overrides,
|
|
639
731
|
};
|
|
640
732
|
const openCodeConfig = this.assertConfig(config);
|
|
641
|
-
const
|
|
733
|
+
const acquisition = await this.serverManager.acquire({ force: false });
|
|
734
|
+
const { url } = acquisition.server;
|
|
642
735
|
const client = createOpencodeClient({
|
|
643
736
|
baseUrl: url,
|
|
644
737
|
directory: openCodeConfig.cwd,
|
|
645
738
|
});
|
|
646
|
-
|
|
647
|
-
|
|
739
|
+
try {
|
|
740
|
+
await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
|
|
741
|
+
return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, new Map(this.modelContextWindows), acquisition.release);
|
|
742
|
+
}
|
|
743
|
+
catch (error) {
|
|
744
|
+
acquisition.release();
|
|
745
|
+
throw error;
|
|
746
|
+
}
|
|
648
747
|
}
|
|
649
748
|
async listModels(options) {
|
|
650
|
-
const
|
|
749
|
+
const acquisition = await this.serverManager.acquire({ force: options.force });
|
|
750
|
+
const { url } = acquisition.server;
|
|
651
751
|
const client = createOpencodeClient({
|
|
652
752
|
baseUrl: url,
|
|
653
|
-
directory: options
|
|
753
|
+
directory: options.cwd,
|
|
654
754
|
});
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
throw new Error(`Failed to fetch OpenCode providers: ${JSON.stringify(response.error)}`);
|
|
666
|
-
}
|
|
667
|
-
const providers = response.data;
|
|
668
|
-
if (!providers) {
|
|
669
|
-
return [];
|
|
670
|
-
}
|
|
671
|
-
// Only include models from connected providers (ones that are actually available)
|
|
672
|
-
const connectedProviderIds = new Set(providers.connected);
|
|
673
|
-
// Fail fast if no providers are connected
|
|
674
|
-
if (connectedProviderIds.size === 0) {
|
|
675
|
-
throw new Error("OpenCode has no connected providers. Please authenticate with at least one provider (e.g., openai, anthropic) or set appropriate environment variables (e.g., OPENAI_API_KEY).");
|
|
676
|
-
}
|
|
677
|
-
const models = [];
|
|
678
|
-
this.modelContextWindows.clear();
|
|
679
|
-
for (const provider of providers.all) {
|
|
680
|
-
// Skip providers that aren't connected/configured
|
|
681
|
-
if (!connectedProviderIds.has(provider.id)) {
|
|
682
|
-
continue;
|
|
755
|
+
try {
|
|
756
|
+
// Background model discovery can be legitimately slow while OpenCode refreshes
|
|
757
|
+
// provider state, so allow longer than turn execution paths.
|
|
758
|
+
const response = await withTimeout(client.provider.list({ directory: options.cwd }), OPENCODE_PROVIDER_LIST_TIMEOUT_MS, `OpenCode provider.list timed out after ${OPENCODE_PROVIDER_LIST_TIMEOUT_MS / 1000}s - server may not be authenticated or connected to any providers`);
|
|
759
|
+
if (response.error) {
|
|
760
|
+
throw new Error(`Failed to fetch OpenCode providers: ${JSON.stringify(response.error)}`);
|
|
761
|
+
}
|
|
762
|
+
const providers = response.data;
|
|
763
|
+
if (!providers) {
|
|
764
|
+
return [];
|
|
683
765
|
}
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
766
|
+
// Only include models from connected providers (ones that are actually available)
|
|
767
|
+
const connectedProviderIds = new Set(providers.connected);
|
|
768
|
+
// Fail fast if no providers are connected
|
|
769
|
+
if (connectedProviderIds.size === 0) {
|
|
770
|
+
throw new Error("OpenCode has no connected providers. Please authenticate with at least one provider (e.g., openai, anthropic) or set appropriate environment variables (e.g., OPENAI_API_KEY).");
|
|
771
|
+
}
|
|
772
|
+
const models = [];
|
|
773
|
+
this.modelContextWindows.clear();
|
|
774
|
+
for (const provider of providers.all) {
|
|
775
|
+
// Skip providers that aren't connected/configured
|
|
776
|
+
if (!connectedProviderIds.has(provider.id)) {
|
|
777
|
+
continue;
|
|
778
|
+
}
|
|
779
|
+
for (const [modelId, model] of Object.entries(provider.models)) {
|
|
780
|
+
const definition = buildOpenCodeModelDefinition(provider, modelId, model);
|
|
781
|
+
const contextWindowMaxTokens = extractOpenCodeModelContextWindow(model);
|
|
782
|
+
if (contextWindowMaxTokens !== undefined) {
|
|
783
|
+
this.modelContextWindows.set(buildOpenCodeModelLookupKey(provider.id, modelId), contextWindowMaxTokens);
|
|
784
|
+
}
|
|
785
|
+
models.push(definition);
|
|
689
786
|
}
|
|
690
|
-
models.push(definition);
|
|
691
787
|
}
|
|
788
|
+
return models;
|
|
789
|
+
}
|
|
790
|
+
finally {
|
|
791
|
+
acquisition.release();
|
|
692
792
|
}
|
|
693
|
-
return models;
|
|
694
793
|
}
|
|
695
794
|
async listModes(options) {
|
|
696
|
-
const
|
|
697
|
-
const
|
|
795
|
+
const acquisition = await this.serverManager.acquire({ force: options.force });
|
|
796
|
+
const { url } = acquisition.server;
|
|
797
|
+
const directory = options.cwd;
|
|
698
798
|
const client = createOpencodeClient({ baseUrl: url, directory });
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
}
|
|
715
|
-
|
|
799
|
+
try {
|
|
800
|
+
const response = await withTimeout(client.app.agents({ directory }), 10000, "OpenCode app.agents timed out after 10s");
|
|
801
|
+
if (response.error || !response.data) {
|
|
802
|
+
return DEFAULT_MODES;
|
|
803
|
+
}
|
|
804
|
+
const discovered = response.data
|
|
805
|
+
.filter((agent) => agent.mode === "primary" && agent.hidden !== true)
|
|
806
|
+
.map((agent) => ({
|
|
807
|
+
id: agent.name,
|
|
808
|
+
label: agent.name.charAt(0).toUpperCase() + agent.name.slice(1),
|
|
809
|
+
description: typeof agent.description === "string" && agent.description.trim().length > 0
|
|
810
|
+
? agent.description.trim()
|
|
811
|
+
: DEFAULT_MODES.find((mode) => mode.id === agent.name)?.description,
|
|
812
|
+
}));
|
|
813
|
+
return discovered.length > 0 ? sortOpenCodeModes(discovered) : DEFAULT_MODES;
|
|
814
|
+
}
|
|
815
|
+
finally {
|
|
816
|
+
acquisition.release();
|
|
817
|
+
}
|
|
716
818
|
}
|
|
717
819
|
async listPersistedAgents(_options) {
|
|
718
820
|
// TODO: Implement by listing sessions from OpenCode
|
|
@@ -741,7 +843,7 @@ export class OpenCodeAgentClient {
|
|
|
741
843
|
}
|
|
742
844
|
if (available) {
|
|
743
845
|
try {
|
|
744
|
-
const models = await this.listModels();
|
|
846
|
+
const models = await this.listModels({ cwd: homedir(), force: false });
|
|
745
847
|
modelsValue = String(models.length);
|
|
746
848
|
}
|
|
747
849
|
catch (error) {
|
|
@@ -753,7 +855,7 @@ export class OpenCodeAgentClient {
|
|
|
753
855
|
}
|
|
754
856
|
if (!modelsValue.startsWith("Error -")) {
|
|
755
857
|
try {
|
|
756
|
-
await this.listModes();
|
|
858
|
+
await this.listModes({ cwd: homedir(), force: false });
|
|
757
859
|
}
|
|
758
860
|
catch (error) {
|
|
759
861
|
status = formatDiagnosticStatus(available, {
|
|
@@ -1242,7 +1344,7 @@ export function translateOpenCodeEvent(event, state) {
|
|
|
1242
1344
|
return events;
|
|
1243
1345
|
}
|
|
1244
1346
|
class OpenCodeAgentSession {
|
|
1245
|
-
constructor(config, client, sessionId, logger, modelContextWindowsByModelKey = new Map()) {
|
|
1347
|
+
constructor(config, client, sessionId, logger, modelContextWindowsByModelKey = new Map(), releaseServer) {
|
|
1246
1348
|
this.provider = "opencode";
|
|
1247
1349
|
this.capabilities = OPENCODE_CAPABILITIES;
|
|
1248
1350
|
this.currentMode = "default";
|
|
@@ -1270,6 +1372,7 @@ class OpenCodeAgentSession {
|
|
|
1270
1372
|
this.logger = logger;
|
|
1271
1373
|
this.modelContextWindowsByModelKey = modelContextWindowsByModelKey;
|
|
1272
1374
|
this.currentMode = normalizeOpenCodeModeId(config.modeId);
|
|
1375
|
+
this.releaseServer = releaseServer ?? null;
|
|
1273
1376
|
this.selectedModelContextWindowMaxTokens = this.resolveConfiguredModelContextWindowMaxTokens(config.model);
|
|
1274
1377
|
}
|
|
1275
1378
|
get id() {
|
|
@@ -1768,15 +1871,21 @@ class OpenCodeAgentSession {
|
|
|
1768
1871
|
};
|
|
1769
1872
|
}
|
|
1770
1873
|
async close() {
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1874
|
+
try {
|
|
1875
|
+
this.abortController?.abort();
|
|
1876
|
+
await reconcileOpenCodeSessionClose({
|
|
1877
|
+
client: this.client,
|
|
1878
|
+
sessionId: this.sessionId,
|
|
1879
|
+
directory: this.config.cwd,
|
|
1880
|
+
logger: this.logger,
|
|
1881
|
+
});
|
|
1882
|
+
this.subscribers.clear();
|
|
1883
|
+
this.activeForegroundTurnId = null;
|
|
1884
|
+
}
|
|
1885
|
+
finally {
|
|
1886
|
+
this.releaseServer?.();
|
|
1887
|
+
this.releaseServer = null;
|
|
1888
|
+
}
|
|
1780
1889
|
}
|
|
1781
1890
|
parseSlashCommandInput(text) {
|
|
1782
1891
|
const trimmed = text.trim();
|