@getpaseo/server 0.1.91-beta.2 → 0.1.92

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.
Files changed (60) hide show
  1. package/dist/scripts/supervisor.js +21 -0
  2. package/dist/server/server/agent/agent-manager.d.ts +13 -5
  3. package/dist/server/server/agent/agent-manager.js +110 -74
  4. package/dist/server/server/agent/agent-projections.d.ts +4 -2
  5. package/dist/server/server/agent/agent-projections.js +8 -28
  6. package/dist/server/server/agent/agent-sdk-types.d.ts +30 -10
  7. package/dist/server/server/agent/import-sessions.d.ts +3 -2
  8. package/dist/server/server/agent/import-sessions.js +23 -55
  9. package/dist/server/server/agent/prompt-attachments.js +8 -0
  10. package/dist/server/server/agent/provider-registry.d.ts +0 -1
  11. package/dist/server/server/agent/provider-registry.js +55 -16
  12. package/dist/server/server/agent/provider-session-import.d.ts +10 -0
  13. package/dist/server/server/agent/provider-session-import.js +49 -0
  14. package/dist/server/server/agent/providers/acp-agent.d.ts +12 -2
  15. package/dist/server/server/agent/providers/acp-agent.js +78 -36
  16. package/dist/server/server/agent/providers/claude/agent.d.ts +3 -2
  17. package/dist/server/server/agent/providers/claude/agent.js +28 -24
  18. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +3 -2
  19. package/dist/server/server/agent/providers/codex-app-server-agent.js +29 -26
  20. package/dist/server/server/agent/providers/cursor-acp-agent.d.ts +1 -0
  21. package/dist/server/server/agent/providers/cursor-acp-agent.js +1 -0
  22. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +9 -0
  23. package/dist/server/server/agent/providers/generic-acp-agent.js +18 -1
  24. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +3 -2
  25. package/dist/server/server/agent/providers/mock-load-test-agent.js +11 -1
  26. package/dist/server/server/agent/providers/mock-slow-provider.d.ts +1 -2
  27. package/dist/server/server/agent/providers/mock-slow-provider.js +0 -3
  28. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +3 -0
  29. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +12 -0
  30. package/dist/server/server/agent/providers/opencode-agent.d.ts +18 -3
  31. package/dist/server/server/agent/providers/opencode-agent.js +135 -36
  32. package/dist/server/server/agent/providers/pi/agent.d.ts +25 -2
  33. package/dist/server/server/agent/providers/pi/agent.js +243 -14
  34. package/dist/server/server/agent/providers/pi/cli-runtime.js +9 -0
  35. package/dist/server/server/agent/providers/pi/rpc-types.d.ts +9 -0
  36. package/dist/server/server/agent/providers/pi/runtime.d.ts +2 -0
  37. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +11 -0
  38. package/dist/server/server/agent/providers/pi/session-descriptor.js +284 -0
  39. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +8 -0
  40. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +22 -0
  41. package/dist/server/server/agent/runtime-mcp-config.d.ts +8 -0
  42. package/dist/server/server/agent/runtime-mcp-config.js +50 -0
  43. package/dist/server/server/auto-archive-on-merge/archive-if-safe.js +2 -2
  44. package/dist/server/server/daemon-worker.js +84 -1
  45. package/dist/server/server/file-upload/index.d.ts +27 -0
  46. package/dist/server/server/file-upload/index.js +158 -0
  47. package/dist/server/server/loop-service.d.ts +12 -12
  48. package/dist/server/server/persisted-config.d.ts +8 -0
  49. package/dist/server/server/persisted-config.js +1 -1
  50. package/dist/server/server/persistence-hooks.js +6 -4
  51. package/dist/server/server/session.d.ts +5 -2
  52. package/dist/server/server/session.js +20 -3
  53. package/dist/server/server/speech/providers/local/runtime.js +1 -0
  54. package/dist/server/server/speech/providers/local/worker-client.d.ts +14 -1
  55. package/dist/server/server/speech/providers/local/worker-client.js +169 -7
  56. package/dist/server/server/websocket-server.d.ts +2 -0
  57. package/dist/server/server/websocket-server.js +20 -7
  58. package/dist/server/server/workspace-registry.d.ts +4 -4
  59. package/dist/src/server/persisted-config.js +1 -1
  60. package/package.json +5 -5
@@ -23,7 +23,7 @@ export function normalizeImportAgentRequest(msg) {
23
23
  return { error: "Import requires providerId and providerHandleId" };
24
24
  }
25
25
  return {
26
- provider,
26
+ provider: provider,
27
27
  providerHandleId,
28
28
  cwd: msg.cwd,
29
29
  labels: msg.labels,
@@ -36,7 +36,7 @@ export async function listImportableProviderSessions(input) {
36
36
  const sinceTimestamp = parseRecentProviderSessionsSince(request.since);
37
37
  const providerFilter = request.providers ? new Set(request.providers) : undefined;
38
38
  const importedHandles = await collectImportedProviderSessionHandles(agentManager, agentStorage);
39
- const descriptors = await agentManager.listImportablePersistedAgents({
39
+ const sessions = await agentManager.listImportableSessions({
40
40
  limit,
41
41
  providerFilter,
42
42
  cwd: request.cwd,
@@ -44,25 +44,21 @@ export async function listImportableProviderSessions(input) {
44
44
  let filteredAlreadyImportedCount = 0;
45
45
  const candidates = [];
46
46
  const matchesRequestCwd = request.cwd ? createRealpathAwarePathMatcher(request.cwd) : null;
47
- for (const descriptor of descriptors) {
48
- if (matchesRequestCwd && !matchesRequestCwd(descriptor.cwd)) {
49
- continue;
50
- }
51
- if (sinceTimestamp !== null && descriptor.lastActivityAt.getTime() < sinceTimestamp) {
47
+ for (const session of sessions) {
48
+ if (matchesRequestCwd && !matchesRequestCwd(session.cwd)) {
52
49
  continue;
53
50
  }
54
- if (isMetadataGenerationDescriptor(descriptor)) {
51
+ if (sinceTimestamp !== null && session.lastActivityAt.getTime() < sinceTimestamp) {
55
52
  continue;
56
53
  }
57
- if (!hasUserPrompt(descriptor)) {
54
+ if (isMetadataGenerationSession(session)) {
58
55
  continue;
59
56
  }
60
- const providerHandleId = descriptor.persistence.nativeHandle ?? descriptor.persistence.sessionId;
61
- if (importedHandles.has(toProviderSessionHandleKey(descriptor.provider, providerHandleId))) {
57
+ if (importedHandles.has(toProviderSessionHandleKey(session.provider, session.providerHandleId))) {
62
58
  filteredAlreadyImportedCount += 1;
63
59
  continue;
64
60
  }
65
- candidates.push(descriptor);
61
+ candidates.push(session);
66
62
  }
67
63
  const entries = candidates
68
64
  .sort((a, b) => b.lastActivityAt.getTime() - a.lastActivityAt.getTime())
@@ -74,23 +70,19 @@ export async function listImportableProviderSessions(input) {
74
70
  }
75
71
  export async function importProviderSession(input) {
76
72
  const { provider, providerHandleId, cwd, labels } = input.request;
77
- const descriptor = await input.agentManager.findPersistedAgent(provider, providerHandleId, {
78
- cwd,
79
- });
80
- if (!descriptor && provider === "opencode" && !cwd) {
81
- throw new Error("OpenCode sessions require --cwd when the session cannot be found in persisted agents");
73
+ if (!cwd) {
74
+ throw new Error("Import requires cwd from the selected provider session");
82
75
  }
83
- const handle = descriptor
84
- ? applyImportCwdOverride(descriptor.persistence, cwd)
85
- : buildImportPersistenceHandle({ provider, providerHandleId, cwd });
86
- const overrides = cwd ? { cwd } : undefined;
76
+ const handle = buildImportPersistenceHandle({ provider, providerHandleId, cwd });
87
77
  await unarchiveAgentByHandle(input.agentStorage, input.agentManager, handle);
88
- const snapshot = await input.agentManager.resumeAgentFromPersistence(handle, overrides, undefined, {
78
+ const snapshot = await input.agentManager.importProviderSession({
79
+ provider,
80
+ providerHandleId,
81
+ cwd,
89
82
  labels,
90
83
  });
91
84
  await unarchiveAgentState(input.agentStorage, input.agentManager, snapshot.id);
92
- await input.agentManager.hydrateTimelineFromProvider(snapshot.id);
93
- await applyImportedAgentTitle({
85
+ scheduleImportedAgentMetadata({
94
86
  snapshot,
95
87
  agentManager: input.agentManager,
96
88
  workspaceGitService: input.workspaceGitService,
@@ -108,24 +100,22 @@ export async function importProviderSession(input) {
108
100
  async function unarchiveAgentByHandle(agentStorage, agentManager, handle) {
109
101
  const records = await agentStorage.list();
110
102
  const matched = records.find((record) => record.persistence?.provider === handle.provider &&
111
- record.persistence?.sessionId === handle.sessionId);
103
+ (record.persistence.sessionId === handle.sessionId ||
104
+ record.persistence.nativeHandle === handle.nativeHandle));
112
105
  if (!matched) {
113
106
  return;
114
107
  }
115
108
  await unarchiveAgentState(agentStorage, agentManager, matched.id);
116
109
  }
117
- async function applyImportedAgentTitle(input) {
110
+ function scheduleImportedAgentMetadata(input) {
118
111
  const initialPrompt = getFirstUserMessageText(input.agentManager.getTimeline(input.snapshot.id));
119
112
  if (!initialPrompt) {
120
113
  return;
121
114
  }
122
- const { explicitTitle, provisionalTitle } = resolveCreateAgentTitles({
115
+ const { explicitTitle } = resolveCreateAgentTitles({
123
116
  configTitle: input.snapshot.config.title,
124
117
  initialPrompt,
125
118
  });
126
- if (!explicitTitle && provisionalTitle) {
127
- await input.agentManager.setTitle(input.snapshot.id, provisionalTitle);
128
- }
129
119
  input.scheduleAgentMetadataGeneration({
130
120
  agentManager: input.agentManager,
131
121
  agentId: input.snapshot.id,
@@ -157,27 +147,13 @@ function parseRecentProviderSessionsSince(since) {
157
147
  return timestamp;
158
148
  }
159
149
  function buildImportPersistenceHandle(input) {
160
- const cwd = input.cwd ?? process.cwd();
161
150
  return {
162
151
  provider: input.provider,
163
152
  sessionId: input.providerHandleId,
164
153
  nativeHandle: input.providerHandleId,
165
154
  metadata: {
166
155
  provider: input.provider,
167
- cwd,
168
- },
169
- };
170
- }
171
- function applyImportCwdOverride(handle, cwd) {
172
- if (!cwd) {
173
- return handle;
174
- }
175
- return {
176
- ...handle,
177
- metadata: {
178
- ...handle.metadata,
179
- provider: handle.provider,
180
- cwd,
156
+ cwd: input.cwd,
181
157
  },
182
158
  };
183
159
  }
@@ -206,16 +182,8 @@ async function collectImportedProviderSessionHandles(agentManager, agentStorage)
206
182
  function toProviderSessionHandleKey(provider, providerHandleId) {
207
183
  return `${provider}\0${providerHandleId}`;
208
184
  }
209
- function isMetadataGenerationDescriptor(descriptor) {
210
- for (const item of descriptor.timeline) {
211
- if (item.type !== "user_message")
212
- continue;
213
- return item.text.trimStart().startsWith(METADATA_GENERATION_PROMPT_PREFIX);
214
- }
215
- return false;
216
- }
217
- function hasUserPrompt(descriptor) {
218
- return descriptor.timeline.some((item) => item.type === "user_message" && item.text.trim() !== "");
185
+ function isMetadataGenerationSession(input) {
186
+ return (input.firstPromptPreview?.trimStart().startsWith(METADATA_GENERATION_PROMPT_PREFIX) ?? false);
219
187
  }
220
188
  function collectProviderSessionHandleKeys(target, provider, persistence) {
221
189
  if (!persistence) {
@@ -45,6 +45,14 @@ export function renderPromptAttachmentAsText(attachment) {
45
45
  });
46
46
  return lines.join("\n");
47
47
  }
48
+ case "uploaded_file": {
49
+ return [
50
+ `Uploaded file: ${attachment.fileName}`,
51
+ `Path: ${attachment.path}`,
52
+ `MIME: ${attachment.mimeType}`,
53
+ `Size: ${attachment.size} bytes`,
54
+ ].join("\n");
55
+ }
48
56
  default:
49
57
  throw new Error("unreachable");
50
58
  }
@@ -19,7 +19,6 @@ export interface ProviderDefinition extends AgentProviderDefinition {
19
19
  fetchModels: (options: ListModelsOptions) => Promise<AgentModelDefinition[]>;
20
20
  fetchModes: (options: ListModesOptions) => Promise<AgentMode[]>;
21
21
  }
22
- export { IMPORTABLE_PROVIDERS } from "@getpaseo/protocol/importable-providers";
23
22
  export interface BuildProviderRegistryOptions {
24
23
  runtimeSettings?: AgentProviderRuntimeSettingsMap;
25
24
  providerOverrides?: Record<string, ProviderOverride>;
@@ -14,7 +14,6 @@ function isNonEmptyStringArray(value) {
14
14
  return value.length > 0;
15
15
  }
16
16
  export { AGENT_PROVIDER_DEFINITIONS, getAgentProviderDefinition };
17
- export { IMPORTABLE_PROVIDERS } from "@getpaseo/protocol/importable-providers";
18
17
  const PROVIDER_CLIENT_FACTORIES = {
19
18
  claude: (logger, runtimeSettings) => new ClaudeAgentClient({
20
19
  logger,
@@ -34,9 +33,22 @@ const PROVIDER_CLIENT_FACTORIES = {
34
33
  env: runtimeSettings?.env,
35
34
  }),
36
35
  opencode: (logger, runtimeSettings) => new OpenCodeAgentClient(logger, runtimeSettings),
37
- pi: (logger, runtimeSettings) => new PiRpcAgentClient({
36
+ pi: (logger, runtimeSettings, options) => new PiRpcAgentClient({
38
37
  logger,
39
38
  runtimeSettings,
39
+ providerParams: options?.providerParams,
40
+ }),
41
+ omp: (logger, runtimeSettings, options) => new PiRpcAgentClient({
42
+ logger,
43
+ runtimeSettings: mergeRuntimeSettings({
44
+ command: {
45
+ mode: "replace",
46
+ argv: ["omp"],
47
+ },
48
+ }, runtimeSettings),
49
+ providerParams: options?.providerParams ?? {
50
+ sessionDir: "~/.omp/agent/sessions",
51
+ },
40
52
  }),
41
53
  mock: (logger) => new MockLoadTestAgentClient(logger),
42
54
  "mock-slow": () => new MockSlowProviderClient(),
@@ -129,16 +141,6 @@ function mapStreamEvent(provider, event) {
129
141
  provider,
130
142
  };
131
143
  }
132
- function mapPersistedAgentDescriptor(provider, descriptor) {
133
- return {
134
- ...descriptor,
135
- provider,
136
- persistence: {
137
- ...descriptor.persistence,
138
- provider,
139
- },
140
- };
141
- }
142
144
  function mapModel(provider, model) {
143
145
  return normalizeAgentModelDefinition({ ...model, provider });
144
146
  }
@@ -210,7 +212,8 @@ export function wrapSessionProvider(provider, inner) {
210
212
  };
211
213
  }
212
214
  function wrapClientProvider(provider, inner, profileModels, additionalModels, profileModelsAreAdditive) {
213
- const listPersistedAgents = inner.listPersistedAgents?.bind(inner);
215
+ const listImportableSessions = inner.listImportableSessions?.bind(inner);
216
+ const importSession = inner.importSession?.bind(inner);
214
217
  return {
215
218
  provider,
216
219
  capabilities: inner.capabilities,
@@ -233,8 +236,36 @@ function wrapClientProvider(provider, inner, profileModels, additionalModels, pr
233
236
  listModes: inner.listModes?.bind(inner),
234
237
  resolveCreateConfig: inner.resolveCreateConfig?.bind(inner),
235
238
  isCreateConfigUnattended: inner.isCreateConfigUnattended?.bind(inner),
236
- listPersistedAgents: listPersistedAgents
237
- ? async (options) => (await listPersistedAgents(options)).map((descriptor) => mapPersistedAgentDescriptor(provider, descriptor))
239
+ listImportableSessions: listImportableSessions
240
+ ? async (options) => await listImportableSessions(options)
241
+ : undefined,
242
+ importSession: importSession
243
+ ? async (input, context) => {
244
+ const imported = await importSession(input, {
245
+ ...context,
246
+ config: {
247
+ ...context.config,
248
+ provider: inner.provider,
249
+ },
250
+ storedConfig: {
251
+ ...context.storedConfig,
252
+ provider: inner.provider,
253
+ },
254
+ });
255
+ const persistence = mapPersistenceHandle(provider, imported.persistence);
256
+ if (!persistence) {
257
+ throw new Error(`Provider '${provider}' import did not return persistence`);
258
+ }
259
+ return {
260
+ ...imported,
261
+ session: wrapSessionProvider(provider, imported.session),
262
+ config: {
263
+ ...imported.config,
264
+ provider,
265
+ },
266
+ persistence,
267
+ };
268
+ }
238
269
  : undefined,
239
270
  isAvailable: () => inner.isAvailable(),
240
271
  getDiagnostic: inner.getDiagnostic?.bind(inner),
@@ -293,10 +324,12 @@ function buildResolvedBuiltinProviders(providerOverrides, runtimeSettings, optio
293
324
  profileModels: override?.models ?? [],
294
325
  additionalModels: override?.additionalModels ?? [],
295
326
  profileModelsAreAdditive: false,
296
- enabled: override?.enabled !== false,
327
+ enabled: override?.enabled ?? definition.enabledByDefault ?? true,
297
328
  derivedFromProviderId: null,
329
+ providerParams: override?.params,
298
330
  createBaseClient: (logger) => factory(logger, mergedRuntimeSettings, {
299
331
  workspaceGitService: options.workspaceGitService,
332
+ providerParams: override?.params,
300
333
  }),
301
334
  });
302
335
  }
@@ -330,6 +363,7 @@ function addDerivedProviders(resolvedProviders, providerOverrides) {
330
363
  profileModelsAreAdditive: false,
331
364
  enabled: override.enabled !== false,
332
365
  derivedFromProviderId: null,
366
+ providerParams: override.params,
333
367
  createBaseClient: (logger) => providerId === "cursor"
334
368
  ? new CursorACPAgentClient({
335
369
  logger,
@@ -337,6 +371,7 @@ function addDerivedProviders(resolvedProviders, providerOverrides) {
337
371
  env: override.env,
338
372
  providerId,
339
373
  label: override.label ?? providerId,
374
+ providerParams: override.params,
340
375
  })
341
376
  : new GenericACPAgentClient({
342
377
  logger,
@@ -344,6 +379,7 @@ function addDerivedProviders(resolvedProviders, providerOverrides) {
344
379
  env: override.env,
345
380
  providerId,
346
381
  label: override.label ?? providerId,
382
+ providerParams: override.params,
347
383
  }),
348
384
  });
349
385
  continue;
@@ -356,6 +392,7 @@ function addDerivedProviders(resolvedProviders, providerOverrides) {
356
392
  const mergedRuntimeSettings = mergeRuntimeSettings(baseProvider.runtimeSettings, toRuntimeSettings(override));
357
393
  const baseDefinition = baseProvider.definition;
358
394
  const baseFactory = getProviderClientFactory(baseProviderId);
395
+ const providerParams = override.params ?? baseProvider.providerParams;
359
396
  resolvedProviders.set(providerId, {
360
397
  definition: createDerivedDefinition(providerId, baseDefinition, override),
361
398
  runtimeSettings: mergedRuntimeSettings,
@@ -364,7 +401,9 @@ function addDerivedProviders(resolvedProviders, providerOverrides) {
364
401
  profileModelsAreAdditive: false,
365
402
  enabled: override.enabled !== false,
366
403
  derivedFromProviderId: baseProviderId,
404
+ providerParams,
367
405
  createBaseClient: (logger) => baseFactory(logger, mergedRuntimeSettings, {
406
+ providerParams,
368
407
  customProvider: {
369
408
  id: providerId,
370
409
  label: override.label ?? providerId,
@@ -0,0 +1,10 @@
1
+ import type { AgentClient, AgentPersistenceHandle, AgentProvider, AgentSessionConfig, ImportedProviderSession, ImportProviderSessionContext, ImportProviderSessionInput } from "./agent-sdk-types.js";
2
+ export declare function importSessionFromPersistence(input: {
3
+ provider: AgentProvider;
4
+ request: ImportProviderSessionInput;
5
+ context: ImportProviderSessionContext;
6
+ resumeSession: AgentClient["resumeSession"];
7
+ config?: Partial<AgentSessionConfig>;
8
+ persistence?: AgentPersistenceHandle;
9
+ }): Promise<ImportedProviderSession>;
10
+ //# sourceMappingURL=provider-session-import.d.ts.map
@@ -0,0 +1,49 @@
1
+ export async function importSessionFromPersistence(input) {
2
+ const config = {
3
+ ...input.context.config,
4
+ ...input.config,
5
+ provider: input.provider,
6
+ cwd: input.request.cwd,
7
+ };
8
+ const storedConfig = {
9
+ ...input.context.storedConfig,
10
+ ...input.config,
11
+ provider: input.provider,
12
+ cwd: input.request.cwd,
13
+ };
14
+ const persistence = input.persistence ?? buildImportPersistenceHandle(input.provider, input.request, storedConfig);
15
+ const session = await input.resumeSession(persistence, config, input.context.launchContext);
16
+ const timeline = await collectImportedTimeline(session.streamHistory());
17
+ return {
18
+ session,
19
+ config: storedConfig,
20
+ persistence,
21
+ timeline,
22
+ };
23
+ }
24
+ function buildImportPersistenceHandle(provider, input, config) {
25
+ return {
26
+ provider,
27
+ sessionId: input.providerHandleId,
28
+ nativeHandle: input.providerHandleId,
29
+ metadata: {
30
+ ...config,
31
+ provider,
32
+ cwd: input.cwd,
33
+ },
34
+ };
35
+ }
36
+ async function collectImportedTimeline(events) {
37
+ const timeline = [];
38
+ for await (const event of events) {
39
+ if (event.type !== "timeline") {
40
+ continue;
41
+ }
42
+ timeline.push({
43
+ item: event.item,
44
+ ...(event.timestamp ? { timestamp: event.timestamp } : {}),
45
+ });
46
+ }
47
+ return timeline;
48
+ }
49
+ //# sourceMappingURL=provider-session-import.js.map
@@ -2,8 +2,14 @@ import { type ChildProcessWithoutNullStreams } from "node:child_process";
2
2
  import type { ReadableStream as NodeReadableStream, WritableStream as NodeWritableStream } from "node:stream/web";
3
3
  import { ClientSideConnection, type Client as ACPClient, type CreateTerminalRequest, type InitializeResponse, type KillTerminalRequest, type LoadSessionResponse, type NewSessionResponse, type ReadTextFileRequest, type RequestPermissionRequest, type RequestPermissionResponse, type ResumeSessionResponse, type SessionConfigOption, type SessionMode, type SessionModelState, type SessionNotification, type TerminalOutputRequest, type TerminalOutputResponse, type ToolCallContent, type ToolCallLocation, type ToolCallStatus, type ToolKind, type Usage, type WaitForTerminalExitRequest, type WriteTextFileRequest, type Stream as ACPStream } from "@agentclientprotocol/sdk";
4
4
  import type { Logger } from "pino";
5
- import { type AgentCapabilityFlags, type AgentClient, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPersistenceHandle, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentUsage, type ListModesOptions, type ListModelsOptions, type ListPersistedAgentsOptions, type PersistedAgentDescriptor } from "../agent-sdk-types.js";
5
+ import { type AgentCapabilityFlags, type AgentClient, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPersistenceHandle, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentUsage, type ImportableProviderSession, type ImportProviderSessionContext, type ImportProviderSessionInput, type ListImportableSessionsOptions, type ListModesOptions, type ListModelsOptions } from "../agent-sdk-types.js";
6
6
  import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
7
+ export declare function summarizeACPRequestError(error: unknown): {
8
+ message: string;
9
+ code?: string;
10
+ diagnostic?: string;
11
+ };
12
+ export declare const DEFAULT_ACP_CAPABILITIES: AgentCapabilityFlags;
7
13
  export declare function createLoggedNdJsonStream(output: NodeWritableStream, input: NodeReadableStream, options: {
8
14
  logger: Logger;
9
15
  provider: string;
@@ -147,13 +153,15 @@ export declare class ACPAgentClient implements AgentClient {
147
153
  resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, launchContext?: AgentLaunchContext): Promise<AgentSession>;
148
154
  listModels(options: ListModelsOptions): Promise<AgentModelDefinition[]>;
149
155
  listModes(options: ListModesOptions): Promise<AgentMode[]>;
150
- listPersistedAgents(options?: ListPersistedAgentsOptions): Promise<PersistedAgentDescriptor[]>;
156
+ listImportableSessions(options?: ListImportableSessionsOptions): Promise<ImportableProviderSession[]>;
157
+ importSession(input: ImportProviderSessionInput, context: ImportProviderSessionContext): Promise<import("../agent-sdk-types.js").ImportedProviderSession>;
151
158
  isAvailable(): Promise<boolean>;
152
159
  protected spawnProcess(launchEnv?: Record<string, string>, options?: {
153
160
  initializeTimeoutMs?: number;
154
161
  }): Promise<SpawnedACPProcess>;
155
162
  protected buildProbeClient(): ACPClient;
156
163
  protected closeProbe(probe: SpawnedACPProcess): Promise<void>;
164
+ protected runACPRequest<T>(request: () => Promise<T>): Promise<T>;
157
165
  protected resolveLaunchCommand(): Promise<{
158
166
  command: string;
159
167
  args: string[];
@@ -257,6 +265,8 @@ export declare class ACPAgentSession implements AgentSession, ACPClient {
257
265
  }): Promise<void>;
258
266
  killTerminal(params: KillTerminalRequest): Promise<Record<string, never>>;
259
267
  private spawnProcess;
268
+ private runACPRequest;
269
+ private acpMcpServers;
260
270
  private applySessionState;
261
271
  private transformConfigOptions;
262
272
  private transformModeId;