@getpaseo/server 0.1.97-beta.3 → 0.1.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/server/agent/agent-manager.d.ts +11 -3
- package/dist/server/server/agent/agent-manager.js +95 -23
- package/dist/server/server/agent/agent-prompt.d.ts +1 -1
- package/dist/server/server/agent/agent-prompt.js +3 -10
- package/dist/server/server/agent/agent-response-loop.js +9 -3
- package/dist/server/server/agent/agent-sdk-types.d.ts +9 -3
- package/dist/server/server/agent/agent-storage.d.ts +20 -240
- package/dist/server/server/agent/agent-storage.js +6 -6
- package/dist/server/server/agent/create-agent/create.d.ts +2 -0
- package/dist/server/server/agent/create-agent/create.js +8 -7
- package/dist/server/server/agent/lifecycle-command.d.ts +15 -1
- package/dist/server/server/agent/lifecycle-command.js +9 -2
- package/dist/server/server/agent/mcp-server.js +263 -119
- package/dist/server/server/agent/mcp-shared.d.ts +35 -179
- package/dist/server/server/agent/provider-notices.d.ts +3 -0
- package/dist/server/server/agent/provider-notices.js +5 -0
- package/dist/server/server/agent/provider-registry.d.ts +2 -0
- package/dist/server/server/agent/provider-registry.js +10 -3
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +3 -0
- package/dist/server/server/agent/provider-snapshot-manager.js +11 -2
- package/dist/server/server/agent/providers/claude/agent.js +257 -143
- package/dist/server/server/agent/providers/claude/models.js +7 -3
- package/dist/server/server/agent/providers/claude/project-dir.js +9 -6
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -22
- package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +8 -118
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +4 -3
- package/dist/server/server/agent/providers/codex-app-server-agent.js +43 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +4 -1
- package/dist/server/server/agent/providers/diagnostic-utils.d.ts +9 -0
- package/dist/server/server/agent/providers/diagnostic-utils.js +188 -0
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -5
- package/dist/server/server/agent/providers/mock-slow-provider.js +1 -1
- package/dist/server/server/agent/providers/opencode/server-manager.d.ts +29 -2
- package/dist/server/server/agent/providers/opencode/server-manager.js +83 -17
- package/dist/server/server/agent/providers/opencode-agent.d.ts +2 -0
- package/dist/server/server/agent/providers/opencode-agent.js +14 -9
- package/dist/server/server/agent/providers/pi/agent.d.ts +1 -5
- package/dist/server/server/agent/providers/pi/agent.js +27 -14
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +391 -1261
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js +26 -16
- package/dist/server/server/bootstrap.d.ts +2 -0
- package/dist/server/server/bootstrap.js +32 -2
- package/dist/server/server/loop-service.d.ts +60 -359
- package/dist/server/server/managed-processes/managed-processes.d.ts +76 -0
- package/dist/server/server/managed-processes/managed-processes.js +326 -0
- package/dist/server/server/migrations/backfill-workspace-id.migration.js +10 -6
- package/dist/server/server/package-version.d.ts +1 -7
- package/dist/server/server/paseo-worktree-service.js +15 -1
- package/dist/server/server/persisted-config.d.ts +138 -1009
- package/dist/server/server/persisted-config.js +1 -1
- package/dist/server/server/pid-lock.d.ts +1 -15
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +3 -0
- package/dist/server/server/resolve-worktree-creation-intent.js +3 -3
- package/dist/server/server/session.d.ts +18 -1
- package/dist/server/server/session.js +424 -64
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +2 -2
- package/dist/server/server/speech/providers/openai/runtime.js +3 -4
- package/dist/server/server/speech/speech-types.d.ts +9 -11
- package/dist/server/server/websocket-server.d.ts +1 -0
- package/dist/server/server/websocket-server.js +15 -0
- package/dist/server/server/workspace-archive-service.js +2 -3
- package/dist/server/server/workspace-directory.js +5 -5
- package/dist/server/server/workspace-reconciliation-service.js +2 -2
- package/dist/server/server/workspace-registry.d.ts +17 -48
- package/dist/server/server/workspace-registry.js +9 -0
- package/dist/server/server/worktree-core.d.ts +1 -0
- package/dist/server/server/worktree-core.js +5 -1
- package/dist/server/services/quota-fetcher/manifest.d.ts +4 -0
- package/dist/server/services/quota-fetcher/manifest.js +47 -0
- package/dist/server/services/quota-fetcher/provider.d.ts +17 -0
- package/dist/server/services/quota-fetcher/provider.js +2 -0
- package/dist/server/services/quota-fetcher/providers/claude.d.ts +26 -0
- package/dist/server/services/quota-fetcher/providers/claude.js +217 -0
- package/dist/server/services/quota-fetcher/providers/codex.d.ts +23 -0
- package/dist/server/services/quota-fetcher/providers/codex.js +211 -0
- package/dist/server/services/quota-fetcher/providers/copilot.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/copilot.js +75 -0
- package/dist/server/services/quota-fetcher/providers/cursor.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/cursor.js +123 -0
- package/dist/server/services/quota-fetcher/providers/grok.d.ts +18 -0
- package/dist/server/services/quota-fetcher/providers/grok.js +89 -0
- package/dist/server/services/quota-fetcher/providers/kimi.d.ts +20 -0
- package/dist/server/services/quota-fetcher/providers/kimi.js +89 -0
- package/dist/server/services/quota-fetcher/providers/zai.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/zai.js +58 -0
- package/dist/server/services/quota-fetcher/service.d.ts +28 -0
- package/dist/server/services/quota-fetcher/service.js +58 -0
- package/dist/server/services/quota-fetcher/usage.d.ts +22 -0
- package/dist/server/services/quota-fetcher/usage.js +49 -0
- package/dist/server/terminal/terminal-session-controller.d.ts +8 -0
- package/dist/server/terminal/terminal-session-controller.js +23 -3
- package/dist/server/utils/checkout-git.js +36 -76
- package/dist/server/utils/directory-suggestions.js +98 -2
- package/dist/server/utils/worktree-metadata.d.ts +7 -59
- package/dist/src/server/persisted-config.js +1 -1
- package/package.json +9 -9
|
@@ -7,31 +7,11 @@ declare const TaskNotificationEnvelopeSchema: z.ZodObject<{
|
|
|
7
7
|
summary: z.ZodNullable<z.ZodString>;
|
|
8
8
|
outputFile: z.ZodNullable<z.ZodString>;
|
|
9
9
|
rawText: z.ZodNullable<z.ZodString>;
|
|
10
|
-
},
|
|
11
|
-
status: string | null;
|
|
12
|
-
messageId: string | null;
|
|
13
|
-
summary: string | null;
|
|
14
|
-
taskId: string | null;
|
|
15
|
-
outputFile: string | null;
|
|
16
|
-
rawText: string | null;
|
|
17
|
-
}, {
|
|
18
|
-
status: string | null;
|
|
19
|
-
messageId: string | null;
|
|
20
|
-
summary: string | null;
|
|
21
|
-
taskId: string | null;
|
|
22
|
-
outputFile: string | null;
|
|
23
|
-
rawText: string | null;
|
|
24
|
-
}>;
|
|
10
|
+
}, z.core.$strip>;
|
|
25
11
|
declare const MapTaskNotificationUserContentToToolCallInputSchema: z.ZodObject<{
|
|
26
12
|
content: z.ZodUnknown;
|
|
27
13
|
messageId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
28
|
-
},
|
|
29
|
-
content?: unknown;
|
|
30
|
-
messageId?: string | null | undefined;
|
|
31
|
-
}, {
|
|
32
|
-
content?: unknown;
|
|
33
|
-
messageId?: string | null | undefined;
|
|
34
|
-
}>;
|
|
14
|
+
}, z.core.$strip>;
|
|
35
15
|
export type TaskNotificationEnvelope = z.infer<typeof TaskNotificationEnvelopeSchema>;
|
|
36
16
|
export type MapTaskNotificationUserContentToToolCallInput = z.infer<typeof MapTaskNotificationUserContentToToolCallInputSchema>;
|
|
37
17
|
export interface TaskNotificationSystemMessageLike {
|
|
@@ -28,86 +28,20 @@ declare const CodexThreadForkResponseSchema: z.ZodObject<{
|
|
|
28
28
|
id: z.ZodString;
|
|
29
29
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
30
30
|
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown
|
|
32
|
-
},
|
|
33
|
-
id: z.ZodString;
|
|
34
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
35
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
36
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
37
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
38
|
-
id: z.ZodString;
|
|
39
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
40
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
42
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
43
|
-
model: z.ZodString;
|
|
44
|
-
modelProvider: z.ZodString;
|
|
45
|
-
serviceTier: z.ZodNullable<z.ZodString>;
|
|
46
|
-
cwd: z.ZodString;
|
|
47
|
-
runtimeWorkspaceRoots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
48
|
-
instructionSources: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
49
|
-
approvalPolicy: z.ZodUnknown;
|
|
50
|
-
approvalsReviewer: z.ZodUnknown;
|
|
51
|
-
sandbox: z.ZodUnknown;
|
|
52
|
-
activePermissionProfile: z.ZodOptional<z.ZodUnknown>;
|
|
53
|
-
reasoningEffort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
54
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
55
|
-
thread: z.ZodObject<{
|
|
56
|
-
id: z.ZodString;
|
|
57
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
58
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
59
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
60
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
61
|
-
id: z.ZodString;
|
|
62
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
63
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
64
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
65
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
66
|
-
id: z.ZodString;
|
|
67
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
68
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
69
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
70
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
71
|
-
model: z.ZodString;
|
|
72
|
-
modelProvider: z.ZodString;
|
|
73
|
-
serviceTier: z.ZodNullable<z.ZodString>;
|
|
74
|
-
cwd: z.ZodString;
|
|
75
|
-
runtimeWorkspaceRoots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
76
|
-
instructionSources: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
|
|
77
|
-
approvalPolicy: z.ZodUnknown;
|
|
78
|
-
approvalsReviewer: z.ZodUnknown;
|
|
79
|
-
sandbox: z.ZodUnknown;
|
|
80
|
-
activePermissionProfile: z.ZodOptional<z.ZodUnknown>;
|
|
81
|
-
reasoningEffort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
82
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
83
|
-
thread: z.ZodObject<{
|
|
84
|
-
id: z.ZodString;
|
|
85
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
86
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
87
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
88
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
89
|
-
id: z.ZodString;
|
|
90
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
91
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
92
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
93
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
94
|
-
id: z.ZodString;
|
|
95
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
96
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
97
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
98
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
31
|
+
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
32
|
+
}, z.core.$loose>;
|
|
99
33
|
model: z.ZodString;
|
|
100
34
|
modelProvider: z.ZodString;
|
|
101
35
|
serviceTier: z.ZodNullable<z.ZodString>;
|
|
102
36
|
cwd: z.ZodString;
|
|
103
|
-
runtimeWorkspaceRoots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString
|
|
104
|
-
instructionSources: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString
|
|
37
|
+
runtimeWorkspaceRoots: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
38
|
+
instructionSources: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
105
39
|
approvalPolicy: z.ZodUnknown;
|
|
106
40
|
approvalsReviewer: z.ZodUnknown;
|
|
107
41
|
sandbox: z.ZodUnknown;
|
|
108
42
|
activePermissionProfile: z.ZodOptional<z.ZodUnknown>;
|
|
109
43
|
reasoningEffort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
110
|
-
}, z.
|
|
44
|
+
}, z.core.$loose>;
|
|
111
45
|
export type CodexThreadForkResponse = z.infer<typeof CodexThreadForkResponseSchema>;
|
|
112
46
|
export declare function parseCodexThreadForkResponse(response: unknown): CodexThreadForkResponse;
|
|
113
47
|
export interface CodexThreadRollbackParams {
|
|
@@ -119,53 +53,9 @@ declare const CodexThreadRollbackResponseSchema: z.ZodObject<{
|
|
|
119
53
|
id: z.ZodString;
|
|
120
54
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
121
55
|
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
122
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
126
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
127
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
128
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
129
|
-
id: z.ZodString;
|
|
130
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
131
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
132
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
133
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
134
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
135
|
-
thread: z.ZodObject<{
|
|
136
|
-
id: z.ZodString;
|
|
137
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
138
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
139
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
140
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
141
|
-
id: z.ZodString;
|
|
142
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
143
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
144
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
145
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
146
|
-
id: z.ZodString;
|
|
147
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
148
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
149
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
150
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
151
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
152
|
-
thread: z.ZodObject<{
|
|
153
|
-
id: z.ZodString;
|
|
154
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
155
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
156
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
157
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
158
|
-
id: z.ZodString;
|
|
159
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
160
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
161
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
162
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
163
|
-
id: z.ZodString;
|
|
164
|
-
sessionId: z.ZodOptional<z.ZodString>;
|
|
165
|
-
forkedFromId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
166
|
-
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
167
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
168
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
56
|
+
turns: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
57
|
+
}, z.core.$loose>;
|
|
58
|
+
}, z.core.$loose>;
|
|
169
59
|
export type CodexThreadRollbackResponse = z.infer<typeof CodexThreadRollbackResponseSchema>;
|
|
170
60
|
export declare function parseCodexThreadRollbackResponse(response: unknown): CodexThreadRollbackResponse;
|
|
171
61
|
export interface CodexAppServerTraceContext {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgentCapabilityFlags, type AgentClient, type AgentCreateSessionOptions, type AgentFeature, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPersistenceHandle, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPermissionResult, type AgentPromptContentBlock, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentTimelineItem, type ToolCallTimelineItem, type AgentUsage, type ImportableProviderSession, type ImportProviderSessionContext, type ImportProviderSessionInput, type ListImportableSessionsOptions, type ListModelsOptions } from "../agent-sdk-types.js";
|
|
1
|
+
import { type AgentCapabilityFlags, type AgentClient, type AgentCreateSessionOptions, type AgentFeature, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPersistenceHandle, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPermissionResult, type AgentProviderNotice, type AgentPromptContentBlock, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentTimelineItem, type ToolCallTimelineItem, type AgentUsage, type ImportableProviderSession, type ImportProviderSessionContext, type ImportProviderSessionInput, type ListImportableSessionsOptions, type ListModelsOptions } from "../agent-sdk-types.js";
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
3
|
import type { ChildProcessWithoutNullStreams } from "node:child_process";
|
|
4
4
|
import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
|
|
@@ -196,9 +196,9 @@ export declare class CodexAppServerAgentSession implements AgentSession {
|
|
|
196
196
|
getRuntimeInfo(): Promise<AgentRuntimeInfo>;
|
|
197
197
|
getAvailableModes(): Promise<AgentMode[]>;
|
|
198
198
|
getCurrentMode(): Promise<string | null>;
|
|
199
|
-
setMode(modeId: string): Promise<void>;
|
|
199
|
+
setMode(modeId: string): Promise<void | AgentProviderNotice>;
|
|
200
200
|
setModel(modelId: string | null): Promise<void>;
|
|
201
|
-
setThinkingOption(thinkingOptionId: string | null): Promise<void>;
|
|
201
|
+
setThinkingOption(thinkingOptionId: string | null): Promise<void | AgentProviderNotice>;
|
|
202
202
|
setFeature(featureId: string, value: unknown): Promise<void>;
|
|
203
203
|
getPendingPermissions(): AgentPermissionRequest[];
|
|
204
204
|
respondToPermission(requestId: string, response: AgentPermissionResponse): Promise<AgentPermissionResult | void>;
|
|
@@ -297,6 +297,7 @@ export declare class CodexAppServerAgentClient implements AgentClient {
|
|
|
297
297
|
importSession(input: ImportProviderSessionInput, context: ImportProviderSessionContext): Promise<import("../agent-sdk-types.js").ImportedProviderSession>;
|
|
298
298
|
listModels(_options: ListModelsOptions): Promise<AgentModelDefinition[]>;
|
|
299
299
|
archiveNativeSession(handle: AgentPersistenceHandle): Promise<void>;
|
|
300
|
+
unarchiveNativeSession(handle: AgentPersistenceHandle): Promise<void>;
|
|
300
301
|
isAvailable(): Promise<boolean>;
|
|
301
302
|
getDiagnostic(): Promise<{
|
|
302
303
|
diagnostic: string;
|
|
@@ -21,8 +21,9 @@ import { CodexAppServerClient, parseCodexThreadForkResponse, parseCodexThreadRol
|
|
|
21
21
|
import { revertCodexConversation } from "./codex/rewind.js";
|
|
22
22
|
import { renderProviderImageOutputAsAssistantMarkdown, } from "./provider-image-output.js";
|
|
23
23
|
import { normalizeProviderReplayTimestamp } from "../provider-history-timestamps.js";
|
|
24
|
-
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, buildBinaryDiagnosticRows, resolveBinaryVersion, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
24
|
+
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, buildBinaryDiagnosticRows, buildCommandResolutionDiagnosticRows, resolveBinaryVersion, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
25
25
|
import { runProviderTurn } from "./provider-runner.js";
|
|
26
|
+
import { SETTING_APPLIES_NEXT_TURN_NOTICE } from "../provider-notices.js";
|
|
26
27
|
function assertChildWithPipes(child) {
|
|
27
28
|
if (!child.stdin || !child.stdout || !child.stderr) {
|
|
28
29
|
throw new Error("Child process did not expose stdio pipes");
|
|
@@ -31,6 +32,10 @@ function assertChildWithPipes(child) {
|
|
|
31
32
|
function isRecord(value) {
|
|
32
33
|
return value != null && typeof value === "object" && !Array.isArray(value);
|
|
33
34
|
}
|
|
35
|
+
function isCodexAlreadyUnarchivedError(error, threadId) {
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
return message.includes(`no archived rollout found for thread id ${threadId}`);
|
|
38
|
+
}
|
|
34
39
|
const TURN_START_TIMEOUT_MS = 90 * 1000;
|
|
35
40
|
const INTERRUPT_TIMEOUT_MS = 2000;
|
|
36
41
|
const CODEX_PROVIDER = "codex";
|
|
@@ -2759,6 +2764,9 @@ export class CodexAppServerAgentSession {
|
|
|
2759
2764
|
validateCodexMode(modeId);
|
|
2760
2765
|
this.currentMode = modeId;
|
|
2761
2766
|
this.cachedRuntimeInfo = null;
|
|
2767
|
+
if (this.activeForegroundTurnId) {
|
|
2768
|
+
return SETTING_APPLIES_NEXT_TURN_NOTICE;
|
|
2769
|
+
}
|
|
2762
2770
|
}
|
|
2763
2771
|
async setModel(modelId) {
|
|
2764
2772
|
this.config.model = modelId ?? undefined;
|
|
@@ -2772,6 +2780,9 @@ export class CodexAppServerAgentSession {
|
|
|
2772
2780
|
this.config.thinkingOptionId = normalizeCodexThinkingOptionId(thinkingOptionId);
|
|
2773
2781
|
this.refreshResolvedCollaborationMode();
|
|
2774
2782
|
this.cachedRuntimeInfo = null;
|
|
2783
|
+
if (this.activeForegroundTurnId) {
|
|
2784
|
+
return SETTING_APPLIES_NEXT_TURN_NOTICE;
|
|
2785
|
+
}
|
|
2775
2786
|
}
|
|
2776
2787
|
async setFeature(featureId, value) {
|
|
2777
2788
|
if (featureId === "fast_mode") {
|
|
@@ -4406,6 +4417,34 @@ export class CodexAppServerAgentClient {
|
|
|
4406
4417
|
await client.dispose();
|
|
4407
4418
|
}
|
|
4408
4419
|
}
|
|
4420
|
+
async unarchiveNativeSession(handle) {
|
|
4421
|
+
const threadId = handle.nativeHandle ?? handle.sessionId;
|
|
4422
|
+
if (!threadId)
|
|
4423
|
+
return;
|
|
4424
|
+
const child = await this.spawnAppServer();
|
|
4425
|
+
const client = new CodexAppServerClient(child, this.logger);
|
|
4426
|
+
try {
|
|
4427
|
+
await client.request("initialize", buildCodexAppServerInitializeParams());
|
|
4428
|
+
client.notify("initialized", {});
|
|
4429
|
+
try {
|
|
4430
|
+
await client.request("thread/unarchive", { threadId });
|
|
4431
|
+
}
|
|
4432
|
+
catch (error) {
|
|
4433
|
+
if (!isCodexAlreadyUnarchivedError(error, threadId)) {
|
|
4434
|
+
throw error;
|
|
4435
|
+
}
|
|
4436
|
+
try {
|
|
4437
|
+
await client.request("thread/read", { threadId });
|
|
4438
|
+
}
|
|
4439
|
+
catch {
|
|
4440
|
+
throw error;
|
|
4441
|
+
}
|
|
4442
|
+
}
|
|
4443
|
+
}
|
|
4444
|
+
finally {
|
|
4445
|
+
await client.dispose();
|
|
4446
|
+
}
|
|
4447
|
+
}
|
|
4409
4448
|
async isAvailable() {
|
|
4410
4449
|
const launch = await resolveCodexLaunch(this.runtimeSettings);
|
|
4411
4450
|
const availability = await checkCodexLaunchAvailable(launch);
|
|
@@ -4417,6 +4456,9 @@ export class CodexAppServerAgentClient {
|
|
|
4417
4456
|
const availability = await checkCodexLaunchAvailable(launch);
|
|
4418
4457
|
const available = availability.available;
|
|
4419
4458
|
const entries = [
|
|
4459
|
+
...(await buildCommandResolutionDiagnosticRows(launch, {
|
|
4460
|
+
knownBinaryNames: ["codex"],
|
|
4461
|
+
})),
|
|
4420
4462
|
...(await buildBinaryDiagnosticRows(launch, availability)),
|
|
4421
4463
|
];
|
|
4422
4464
|
let status = formatDiagnosticStatus(available);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
2
|
import { checkProviderLaunchAvailable, resolveProviderLaunch, } from "../provider-launch-config.js";
|
|
3
3
|
import { ACPAgentClient, } from "./acp-agent.js";
|
|
4
|
-
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, buildBinaryDiagnosticRows, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
4
|
+
import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnosticError, buildBinaryDiagnosticRows, buildCommandResolutionDiagnosticRows, toDiagnosticErrorMessage, } from "./diagnostic-utils.js";
|
|
5
5
|
const COPILOT_CAPABILITIES = {
|
|
6
6
|
supportsStreaming: true,
|
|
7
7
|
supportsSessionPersistence: true,
|
|
@@ -93,6 +93,9 @@ export class CopilotACPAgentClient extends ACPAgentClient {
|
|
|
93
93
|
}
|
|
94
94
|
return {
|
|
95
95
|
diagnostic: formatProviderDiagnostic("Copilot", [
|
|
96
|
+
...(await buildCommandResolutionDiagnosticRows(launch, {
|
|
97
|
+
knownBinaryNames: ["copilot"],
|
|
98
|
+
})),
|
|
96
99
|
...(await buildBinaryDiagnosticRows(launch, availability)),
|
|
97
100
|
{ label: "Models", value: modelsValue },
|
|
98
101
|
{ label: "Status", value: status },
|
|
@@ -21,6 +21,15 @@ export interface BinaryDiagnosticRowsOptions {
|
|
|
21
21
|
binaryLabel?: string;
|
|
22
22
|
versionCommand?: BinaryDiagnosticVersionCommand;
|
|
23
23
|
}
|
|
24
|
+
export interface CommandResolutionDiagnosticRowsOptions {
|
|
25
|
+
knownBinaryNames: readonly string[];
|
|
26
|
+
includeCommandProbes?: boolean;
|
|
27
|
+
pathValue?: string;
|
|
28
|
+
pathext?: string;
|
|
29
|
+
platform?: NodeJS.Platform;
|
|
30
|
+
shell?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function buildCommandResolutionDiagnosticRows(launch: ResolvedProviderLaunch, options: CommandResolutionDiagnosticRowsOptions): Promise<DiagnosticEntry[]>;
|
|
24
33
|
export declare function buildBinaryDiagnosticRows(launch: ResolvedProviderLaunch, availability: ProviderLaunchAvailability, options?: BinaryDiagnosticRowsOptions): Promise<DiagnosticEntry[]>;
|
|
25
34
|
export declare function formatConfiguredCommand(defaultArgv: readonly string[], runtimeSettings?: ProviderRuntimeSettings): string;
|
|
26
35
|
//# sourceMappingURL=diagnostic-utils.d.ts.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { access, stat } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
1
4
|
import { createProviderEnvSpec, } from "../provider-launch-config.js";
|
|
2
5
|
import { execCommand } from "../../../utils/spawn.js";
|
|
3
6
|
export function formatProviderDiagnostic(providerName, entries) {
|
|
@@ -114,6 +117,191 @@ export async function resolveBinaryVersion(binaryPath) {
|
|
|
114
117
|
return `error: ${toDiagnosticErrorMessage(error)}`;
|
|
115
118
|
}
|
|
116
119
|
}
|
|
120
|
+
const COMMAND_PROBE_TIMEOUT_MS = 3000;
|
|
121
|
+
const COMMAND_PROBE_MAX_BUFFER = 32 * 1024;
|
|
122
|
+
function resolvePlatform(options) {
|
|
123
|
+
return options?.platform ?? process.platform;
|
|
124
|
+
}
|
|
125
|
+
function resolvePathValue(options) {
|
|
126
|
+
return options?.pathValue ?? process.env["PATH"] ?? process.env["Path"] ?? "";
|
|
127
|
+
}
|
|
128
|
+
function resolveShellValue(options) {
|
|
129
|
+
if (options?.shell) {
|
|
130
|
+
return options.shell;
|
|
131
|
+
}
|
|
132
|
+
if (resolvePlatform(options) === "win32") {
|
|
133
|
+
return process.env["ComSpec"] ?? "cmd.exe";
|
|
134
|
+
}
|
|
135
|
+
return process.env["SHELL"] ?? "/bin/sh";
|
|
136
|
+
}
|
|
137
|
+
async function isExecutableFile(filePath, platform) {
|
|
138
|
+
try {
|
|
139
|
+
const candidate = await stat(filePath);
|
|
140
|
+
if (!candidate.isFile()) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
if (platform === "win32") {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
await access(filePath, constants.X_OK);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function resolveSearchableNames(binaryNames) {
|
|
154
|
+
return binaryNames.filter((binaryName) => binaryName.trim().length > 0 && !binaryName.includes("/") && !binaryName.includes("\\"));
|
|
155
|
+
}
|
|
156
|
+
function resolveWindowsPathExt(options) {
|
|
157
|
+
const value = options.pathext ?? process.env["PATHEXT"] ?? ".COM;.EXE;.BAT;.CMD";
|
|
158
|
+
return value
|
|
159
|
+
.split(";")
|
|
160
|
+
.map((extension) => extension.trim())
|
|
161
|
+
.filter(Boolean)
|
|
162
|
+
.map((extension) => (extension.startsWith(".") ? extension : `.${extension}`));
|
|
163
|
+
}
|
|
164
|
+
function resolveBinaryCandidateNames(binaryName, options) {
|
|
165
|
+
if (resolvePlatform(options) !== "win32" || path.win32.extname(binaryName)) {
|
|
166
|
+
return [binaryName];
|
|
167
|
+
}
|
|
168
|
+
return [binaryName, ...resolveWindowsPathExt(options).map((extension) => binaryName + extension)];
|
|
169
|
+
}
|
|
170
|
+
async function formatPathMatches(options) {
|
|
171
|
+
const binaryNames = options.knownBinaryNames;
|
|
172
|
+
const searchableNames = resolveSearchableNames(binaryNames);
|
|
173
|
+
if (searchableNames.length === 0) {
|
|
174
|
+
return "not checked";
|
|
175
|
+
}
|
|
176
|
+
const pathDelimiter = resolvePlatform(options) === "win32" ? ";" : path.delimiter;
|
|
177
|
+
const pathEntries = resolvePathValue(options).split(pathDelimiter).filter(Boolean);
|
|
178
|
+
const matches = [];
|
|
179
|
+
const seen = new Set();
|
|
180
|
+
const platform = resolvePlatform(options);
|
|
181
|
+
for (const directory of pathEntries) {
|
|
182
|
+
for (const binaryName of searchableNames) {
|
|
183
|
+
for (const candidateName of resolveBinaryCandidateNames(binaryName, options)) {
|
|
184
|
+
const candidate = path.join(directory, candidateName);
|
|
185
|
+
if (seen.has(candidate)) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
seen.add(candidate);
|
|
189
|
+
if (await isExecutableFile(candidate, platform)) {
|
|
190
|
+
matches.push(candidate);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return matches.length > 0 ? matches.join("\n ") : "none";
|
|
196
|
+
}
|
|
197
|
+
function shellToken(value) {
|
|
198
|
+
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
199
|
+
}
|
|
200
|
+
function formatCommandProbeOutput(stdout, stderr) {
|
|
201
|
+
const sections = [];
|
|
202
|
+
const trimmedStdout = truncateForDiagnostic(stdout);
|
|
203
|
+
const trimmedStderr = truncateForDiagnostic(stderr);
|
|
204
|
+
if (trimmedStdout.length > 0) {
|
|
205
|
+
sections.push(trimmedStdout);
|
|
206
|
+
}
|
|
207
|
+
if (trimmedStderr.length > 0) {
|
|
208
|
+
sections.push(`stderr: ${trimmedStderr}`);
|
|
209
|
+
}
|
|
210
|
+
return sections.length > 0 ? sections.join("\n") : "(no output)";
|
|
211
|
+
}
|
|
212
|
+
function formatCommandProbeError(error) {
|
|
213
|
+
return toDiagnosticErrorMessage(error);
|
|
214
|
+
}
|
|
215
|
+
async function runCommandProbe(command, args) {
|
|
216
|
+
try {
|
|
217
|
+
const { stdout, stderr } = await execCommand(command, args, {
|
|
218
|
+
timeout: COMMAND_PROBE_TIMEOUT_MS,
|
|
219
|
+
killSignal: "SIGKILL",
|
|
220
|
+
maxBuffer: COMMAND_PROBE_MAX_BUFFER,
|
|
221
|
+
});
|
|
222
|
+
return formatCommandProbeOutput(stdout, stderr);
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
return formatCommandProbeError(error);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async function buildPosixCommandProbeRows(binaryName) {
|
|
229
|
+
const shell = resolveShellValue();
|
|
230
|
+
const typeCommand = `type -a ${shellToken(binaryName)}`;
|
|
231
|
+
return [
|
|
232
|
+
{
|
|
233
|
+
label: `which -a ${binaryName}`,
|
|
234
|
+
value: await runCommandProbe("/usr/bin/which", ["-a", binaryName]),
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
label: `${path.basename(shell)} -lc type -a ${binaryName}`,
|
|
238
|
+
value: await runCommandProbe(shell, ["-lc", typeCommand]),
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
}
|
|
242
|
+
async function buildWindowsCommandProbeRows(binaryName) {
|
|
243
|
+
const powershellCommand = [
|
|
244
|
+
"$ErrorActionPreference = 'Continue';",
|
|
245
|
+
`Get-Command -All ${JSON.stringify(binaryName)} |`,
|
|
246
|
+
"Select-Object CommandType,Source,Name,Definition |",
|
|
247
|
+
"Format-List",
|
|
248
|
+
].join(" ");
|
|
249
|
+
return [
|
|
250
|
+
{
|
|
251
|
+
label: `where.exe ${binaryName}`,
|
|
252
|
+
value: await runCommandProbe("where.exe", [binaryName]),
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
label: `powershell Get-Command -All ${binaryName}`,
|
|
256
|
+
value: await runCommandProbe("powershell.exe", [
|
|
257
|
+
"-NoProfile",
|
|
258
|
+
"-ExecutionPolicy",
|
|
259
|
+
"Bypass",
|
|
260
|
+
"-Command",
|
|
261
|
+
powershellCommand,
|
|
262
|
+
]),
|
|
263
|
+
},
|
|
264
|
+
];
|
|
265
|
+
}
|
|
266
|
+
async function buildCommandProbeRows(binaryNames) {
|
|
267
|
+
const searchableNames = resolveSearchableNames(binaryNames);
|
|
268
|
+
if (searchableNames.length === 0) {
|
|
269
|
+
return [];
|
|
270
|
+
}
|
|
271
|
+
const rows = [];
|
|
272
|
+
for (const binaryName of searchableNames) {
|
|
273
|
+
rows.push(...(process.platform === "win32"
|
|
274
|
+
? await buildWindowsCommandProbeRows(binaryName)
|
|
275
|
+
: await buildPosixCommandProbeRows(binaryName)));
|
|
276
|
+
}
|
|
277
|
+
return rows;
|
|
278
|
+
}
|
|
279
|
+
export async function buildCommandResolutionDiagnosticRows(launch, options) {
|
|
280
|
+
const includeCommandProbes = options.includeCommandProbes ?? true;
|
|
281
|
+
return [
|
|
282
|
+
{
|
|
283
|
+
label: "Command source",
|
|
284
|
+
value: launch.source,
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
label: "Configured command",
|
|
288
|
+
value: [launch.command, ...launch.args].join(" "),
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
label: "Daemon PATH",
|
|
292
|
+
value: truncateForDiagnostic(resolvePathValue(options)) || "(empty)",
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
label: "Daemon shell",
|
|
296
|
+
value: resolveShellValue(options),
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
label: "PATH matches",
|
|
300
|
+
value: await formatPathMatches(options),
|
|
301
|
+
},
|
|
302
|
+
...(includeCommandProbes ? await buildCommandProbeRows(options.knownBinaryNames) : []),
|
|
303
|
+
];
|
|
304
|
+
}
|
|
117
305
|
async function resolveCommandVersion(invocation) {
|
|
118
306
|
try {
|
|
119
307
|
const { stdout, stderr } = await execCommand(invocation.command, invocation.args, {
|
|
@@ -3,11 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { ACPAgentClient } from "./acp-agent.js";
|
|
4
4
|
export declare const GenericACPProviderParamsSchema: z.ZodObject<{
|
|
5
5
|
supportsMcpServers: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
-
},
|
|
7
|
-
supportsMcpServers: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
9
|
-
supportsMcpServers: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
6
|
+
}, z.core.$loose>;
|
|
11
7
|
interface GenericACPAgentClientOptions {
|
|
12
8
|
logger: Logger;
|
|
13
9
|
command: [string, ...string[]];
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ChildProcess } from "node:child_process";
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
|
+
import { type SpawnProcessOptions } from "../../../../utils/spawn.js";
|
|
4
|
+
import { type ProcessTerminator } from "../../../../utils/tree-kill.js";
|
|
5
|
+
import type { ManagedProcessRegistry } from "../../../managed-processes/managed-processes.js";
|
|
3
6
|
import { type ProviderRuntimeSettings } from "../../provider-launch-config.js";
|
|
4
7
|
export interface OpenCodeServerAcquisition {
|
|
5
8
|
server: {
|
|
@@ -24,6 +27,22 @@ export interface OpenCodeServerGeneration {
|
|
|
24
27
|
url: string;
|
|
25
28
|
refCount: number;
|
|
26
29
|
retired: boolean;
|
|
30
|
+
managedProcessId?: string;
|
|
31
|
+
}
|
|
32
|
+
export type OpenCodePortAllocator = () => Promise<number>;
|
|
33
|
+
export type OpenCodeCommandPrefixResolver = () => Promise<{
|
|
34
|
+
command: string;
|
|
35
|
+
args: string[];
|
|
36
|
+
}>;
|
|
37
|
+
export type OpenCodeServerProcessSpawner = (command: string, args: string[], options: SpawnProcessOptions) => ChildProcess;
|
|
38
|
+
export interface OpenCodeServerManagerOptions {
|
|
39
|
+
logger: Logger;
|
|
40
|
+
runtimeSettings?: ProviderRuntimeSettings;
|
|
41
|
+
managedProcesses?: ManagedProcessRegistry;
|
|
42
|
+
terminateProcess?: ProcessTerminator;
|
|
43
|
+
portAllocator?: OpenCodePortAllocator;
|
|
44
|
+
resolveCommandPrefix?: OpenCodeCommandPrefixResolver;
|
|
45
|
+
spawnServerProcess?: OpenCodeServerProcessSpawner;
|
|
27
46
|
}
|
|
28
47
|
export declare class OpenCodeServerManager implements OpenCodeServerManagerLike {
|
|
29
48
|
private static instance;
|
|
@@ -35,8 +54,13 @@ export declare class OpenCodeServerManager implements OpenCodeServerManagerLike
|
|
|
35
54
|
private readonly logger;
|
|
36
55
|
private readonly runtimeSettings?;
|
|
37
56
|
private readonly runtimeSettingsKey;
|
|
38
|
-
private
|
|
39
|
-
|
|
57
|
+
private readonly managedProcesses?;
|
|
58
|
+
private readonly terminateProcess;
|
|
59
|
+
private readonly portAllocator;
|
|
60
|
+
private readonly resolveCommandPrefix;
|
|
61
|
+
private readonly spawnServerProcess;
|
|
62
|
+
constructor(options: OpenCodeServerManagerOptions);
|
|
63
|
+
static getInstance(logger: Logger, runtimeSettings?: ProviderRuntimeSettings, options?: Omit<OpenCodeServerManagerOptions, "logger" | "runtimeSettings">): OpenCodeServerManager;
|
|
40
64
|
private static registerExitHandler;
|
|
41
65
|
ensureRunning(): Promise<{
|
|
42
66
|
port: number;
|
|
@@ -55,5 +79,8 @@ export declare class OpenCodeServerManager implements OpenCodeServerManagerLike
|
|
|
55
79
|
shutdown(): Promise<void>;
|
|
56
80
|
private cleanupRetiredServers;
|
|
57
81
|
private killServer;
|
|
82
|
+
private recordManagedServerProcess;
|
|
83
|
+
private removeManagedProcessRecordWhenResolved;
|
|
84
|
+
private removeManagedProcessId;
|
|
58
85
|
}
|
|
59
86
|
//# sourceMappingURL=server-manager.d.ts.map
|