@getpaseo/server 0.1.74 → 0.1.76

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 (233) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +2 -21
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/scripts/supervisor-log-config.js +31 -0
  4. package/dist/scripts/supervisor-log-config.js.map +1 -0
  5. package/dist/server/client/daemon-client.d.ts +13 -2
  6. package/dist/server/client/daemon-client.d.ts.map +1 -1
  7. package/dist/server/client/daemon-client.js +36 -0
  8. package/dist/server/client/daemon-client.js.map +1 -1
  9. package/dist/server/server/agent/agent-manager.d.ts +5 -1
  10. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  11. package/dist/server/server/agent/agent-manager.js +152 -22
  12. package/dist/server/server/agent/agent-manager.js.map +1 -1
  13. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -1
  14. package/dist/server/server/agent/agent-prompt.js +27 -0
  15. package/dist/server/server/agent/agent-prompt.js.map +1 -1
  16. package/dist/server/server/agent/agent-sdk-types.d.ts +5 -0
  17. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.js +10 -0
  19. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  20. package/dist/server/server/agent/foreground-run-state.d.ts +1 -1
  21. package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -1
  22. package/dist/server/server/agent/foreground-run-state.js +2 -4
  23. package/dist/server/server/agent/foreground-run-state.js.map +1 -1
  24. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  25. package/dist/server/server/agent/mcp-server.js +74 -3
  26. package/dist/server/server/agent/mcp-server.js.map +1 -1
  27. package/dist/server/server/agent/provider-history-timestamps.d.ts +2 -0
  28. package/dist/server/server/agent/provider-history-timestamps.d.ts.map +1 -0
  29. package/dist/server/server/agent/provider-history-timestamps.js +16 -0
  30. package/dist/server/server/agent/provider-history-timestamps.js.map +1 -0
  31. package/dist/server/server/agent/provider-manifest.d.ts +1 -1
  32. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  33. package/dist/server/server/agent/provider-manifest.js +17 -3
  34. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  35. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  36. package/dist/server/server/agent/provider-registry.js +66 -32
  37. package/dist/server/server/agent/provider-registry.js.map +1 -1
  38. package/dist/server/server/agent/provider-snapshot-manager.d.ts +2 -6
  39. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  40. package/dist/server/server/agent/provider-snapshot-manager.js +43 -32
  41. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  42. package/dist/server/server/agent/providers/acp-agent.d.ts +42 -2
  43. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  44. package/dist/server/server/agent/providers/acp-agent.js +182 -28
  45. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  46. package/dist/server/server/agent/providers/claude/agent.d.ts +1 -1
  47. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
  48. package/dist/server/server/agent/providers/claude/agent.js +191 -62
  49. package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
  50. package/dist/server/server/agent/providers/claude/models.d.ts +2 -0
  51. package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -1
  52. package/dist/server/server/agent/providers/claude/models.js +78 -0
  53. package/dist/server/server/agent/providers/claude/models.js.map +1 -1
  54. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +8 -1
  55. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -1
  56. package/dist/server/server/agent/providers/codex/app-server-transport.js +32 -1
  57. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -1
  58. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  59. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +36 -7
  60. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  61. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +28 -4
  62. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  63. package/dist/server/server/agent/providers/codex-app-server-agent.js +487 -80
  64. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  65. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +10 -1
  66. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  67. package/dist/server/server/agent/providers/copilot-acp-agent.js +114 -7
  68. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  69. package/dist/server/server/agent/providers/cursor-acp-agent.d.ts +21 -0
  70. package/dist/server/server/agent/providers/cursor-acp-agent.d.ts.map +1 -0
  71. package/dist/server/server/agent/providers/cursor-acp-agent.js +85 -0
  72. package/dist/server/server/agent/providers/cursor-acp-agent.js.map +1 -0
  73. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +13 -0
  74. package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/generic-acp-agent.js +209 -2
  76. package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
  77. package/dist/server/server/agent/providers/opencode-agent.d.ts +7 -7
  78. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  79. package/dist/server/server/agent/providers/opencode-agent.js +121 -109
  80. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  81. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +2 -2
  82. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
  83. package/dist/server/server/agent/providers/pi-direct-agent.js +16 -15
  84. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
  85. package/dist/server/server/agent/providers/pi-session-recovery-policy.d.ts +22 -0
  86. package/dist/server/server/agent/providers/pi-session-recovery-policy.d.ts.map +1 -0
  87. package/dist/server/server/agent/providers/pi-session-recovery-policy.js +51 -0
  88. package/dist/server/server/agent/providers/pi-session-recovery-policy.js.map +1 -0
  89. package/dist/server/server/agent/providers/provider-runner.d.ts +1 -1
  90. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
  91. package/dist/server/server/agent/providers/provider-runner.js +2 -1
  92. package/dist/server/server/agent/providers/provider-runner.js.map +1 -1
  93. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +1 -1
  94. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -1
  95. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +2 -1
  96. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
  97. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  98. package/dist/server/server/agent/stt-manager.d.ts +5 -1
  99. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  100. package/dist/server/server/agent/stt-manager.js +3 -2
  101. package/dist/server/server/agent/stt-manager.js.map +1 -1
  102. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
  103. package/dist/server/server/agent/timeline-projection.js +9 -0
  104. package/dist/server/server/agent/timeline-projection.js.map +1 -1
  105. package/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts +40 -0
  106. package/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts.map +1 -0
  107. package/dist/server/server/auto-archive-on-merge/archive-if-safe.js +80 -0
  108. package/dist/server/server/auto-archive-on-merge/archive-if-safe.js.map +1 -0
  109. package/dist/server/server/auto-archive-on-merge/index.d.ts +8 -0
  110. package/dist/server/server/auto-archive-on-merge/index.d.ts.map +1 -0
  111. package/dist/server/server/auto-archive-on-merge/index.js +15 -0
  112. package/dist/server/server/auto-archive-on-merge/index.js.map +1 -0
  113. package/dist/server/server/bootstrap.d.ts +6 -0
  114. package/dist/server/server/bootstrap.d.ts.map +1 -1
  115. package/dist/server/server/bootstrap.js +74 -38
  116. package/dist/server/server/bootstrap.js.map +1 -1
  117. package/dist/server/server/checkout/status-projection.d.ts.map +1 -1
  118. package/dist/server/server/checkout/status-projection.js +5 -1
  119. package/dist/server/server/checkout/status-projection.js.map +1 -1
  120. package/dist/server/server/config.d.ts.map +1 -1
  121. package/dist/server/server/config.js +3 -1
  122. package/dist/server/server/config.js.map +1 -1
  123. package/dist/server/server/daemon-config-store.js +1 -0
  124. package/dist/server/server/daemon-config-store.js.map +1 -1
  125. package/dist/server/server/dictation/dictation-stream-manager.d.ts +2 -0
  126. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  127. package/dist/server/server/dictation/dictation-stream-manager.js +2 -1
  128. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  129. package/dist/server/server/logger.js +1 -1
  130. package/dist/server/server/logger.js.map +1 -1
  131. package/dist/server/server/loop/rpc-schemas.d.ts +96 -96
  132. package/dist/server/server/loop-service.d.ts +18 -18
  133. package/dist/server/server/paseo-worktree-service.d.ts +3 -1
  134. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -1
  135. package/dist/server/server/paseo-worktree-service.js +55 -18
  136. package/dist/server/server/paseo-worktree-service.js.map +1 -1
  137. package/dist/server/server/persisted-config.d.ts +25 -0
  138. package/dist/server/server/persisted-config.d.ts.map +1 -1
  139. package/dist/server/server/persisted-config.js +3 -0
  140. package/dist/server/server/persisted-config.js.map +1 -1
  141. package/dist/server/server/relay-transport.d.ts +2 -1
  142. package/dist/server/server/relay-transport.d.ts.map +1 -1
  143. package/dist/server/server/relay-transport.js +26 -4
  144. package/dist/server/server/relay-transport.js.map +1 -1
  145. package/dist/server/server/schedule/service.d.ts.map +1 -1
  146. package/dist/server/server/schedule/service.js +14 -1
  147. package/dist/server/server/schedule/service.js.map +1 -1
  148. package/dist/server/server/session.d.ts +9 -0
  149. package/dist/server/server/session.d.ts.map +1 -1
  150. package/dist/server/server/session.js +281 -50
  151. package/dist/server/server/session.js.map +1 -1
  152. package/dist/server/server/speech/providers/local/config.d.ts +5 -0
  153. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
  154. package/dist/server/server/speech/providers/local/config.js +35 -0
  155. package/dist/server/server/speech/providers/local/config.js.map +1 -1
  156. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
  157. package/dist/server/server/speech/speech-config-resolver.js +1 -0
  158. package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
  159. package/dist/server/server/speech/speech-runtime.d.ts +2 -0
  160. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
  161. package/dist/server/server/speech/speech-runtime.js +2 -0
  162. package/dist/server/server/speech/speech-runtime.js.map +1 -1
  163. package/dist/server/server/voice/voice-turn-controller.d.ts +1 -0
  164. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  165. package/dist/server/server/voice/voice-turn-controller.js +1 -1
  166. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  167. package/dist/server/server/websocket-server.d.ts.map +1 -1
  168. package/dist/server/server/websocket-server.js +7 -0
  169. package/dist/server/server/websocket-server.js.map +1 -1
  170. package/dist/server/server/workspace-git-service.d.ts +6 -1
  171. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  172. package/dist/server/server/workspace-git-service.js +27 -4
  173. package/dist/server/server/workspace-git-service.js.map +1 -1
  174. package/dist/server/server/workspace-reconciliation-service.d.ts +4 -2
  175. package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -1
  176. package/dist/server/server/workspace-reconciliation-service.js +112 -14
  177. package/dist/server/server/workspace-reconciliation-service.js.map +1 -1
  178. package/dist/server/server/workspace-registry.d.ts +6 -1
  179. package/dist/server/server/workspace-registry.d.ts.map +1 -1
  180. package/dist/server/server/workspace-registry.js +11 -0
  181. package/dist/server/server/workspace-registry.js.map +1 -1
  182. package/dist/server/server/worktree-session.d.ts.map +1 -1
  183. package/dist/server/server/worktree-session.js +1 -0
  184. package/dist/server/server/worktree-session.js.map +1 -1
  185. package/dist/server/services/github-service.d.ts +46 -0
  186. package/dist/server/services/github-service.d.ts.map +1 -1
  187. package/dist/server/services/github-service.js +274 -5
  188. package/dist/server/services/github-service.js.map +1 -1
  189. package/dist/server/shared/messages.d.ts +3427 -290
  190. package/dist/server/shared/messages.d.ts.map +1 -1
  191. package/dist/server/shared/messages.js +93 -3
  192. package/dist/server/shared/messages.js.map +1 -1
  193. package/dist/server/shared/terminal-input-mode.d.ts +26 -0
  194. package/dist/server/shared/terminal-input-mode.d.ts.map +1 -0
  195. package/dist/server/shared/terminal-input-mode.js +151 -0
  196. package/dist/server/shared/terminal-input-mode.js.map +1 -0
  197. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
  198. package/dist/server/terminal/terminal-session-controller.js +12 -2
  199. package/dist/server/terminal/terminal-session-controller.js.map +1 -1
  200. package/dist/server/terminal/terminal.d.ts +1 -0
  201. package/dist/server/terminal/terminal.d.ts.map +1 -1
  202. package/dist/server/terminal/terminal.js +16 -3
  203. package/dist/server/terminal/terminal.js.map +1 -1
  204. package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -1
  205. package/dist/server/terminal/worker-terminal-manager.js +8 -0
  206. package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
  207. package/dist/server/utils/checkout-git.d.ts +4 -1
  208. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  209. package/dist/server/utils/checkout-git.js +85 -29
  210. package/dist/server/utils/checkout-git.js.map +1 -1
  211. package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
  212. package/dist/server/utils/directory-suggestions.js +51 -14
  213. package/dist/server/utils/directory-suggestions.js.map +1 -1
  214. package/dist/server/utils/executable.d.ts.map +1 -1
  215. package/dist/server/utils/executable.js +6 -3
  216. package/dist/server/utils/executable.js.map +1 -1
  217. package/dist/server/utils/run-git-command.d.ts +2 -0
  218. package/dist/server/utils/run-git-command.d.ts.map +1 -1
  219. package/dist/server/utils/run-git-command.js +41 -1
  220. package/dist/server/utils/run-git-command.js.map +1 -1
  221. package/dist/server/utils/worktree.js +1 -1
  222. package/dist/server/utils/worktree.js.map +1 -1
  223. package/dist/src/server/agent/agent-sdk-types.js +10 -0
  224. package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
  225. package/dist/src/server/agent/provider-manifest.js +17 -3
  226. package/dist/src/server/agent/provider-manifest.js.map +1 -1
  227. package/dist/src/server/persisted-config.js +3 -0
  228. package/dist/src/server/persisted-config.js.map +1 -1
  229. package/dist/src/shared/messages.js +93 -3
  230. package/dist/src/shared/messages.js.map +1 -1
  231. package/dist/src/utils/executable.js +6 -3
  232. package/dist/src/utils/executable.js.map +1 -1
  233. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  import { type AssistantMessage as OpenCodeAssistantMessage, type Event as OpenCodeEvent, type FilePartInput as OpenCodeFilePartInput, type OpencodeClient, type TextPartInput as OpenCodeTextPartInput } from "@opencode-ai/sdk/v2/client";
2
2
  import type { Logger } from "pino";
3
- import type { AgentCapabilityFlags, AgentClient, AgentCreateSessionOptions, AgentLaunchContext, AgentMode, AgentModelDefinition, AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentPromptInput, AgentRunOptions, AgentRunResult, AgentRuntimeInfo, AgentSession, AgentSessionConfig, AgentSlashCommand, AgentStreamEvent, AgentUsage, ListModelsOptions, ListModesOptions, ListPersistedAgentsOptions, PersistedAgentDescriptor, ToolCallTimelineItem } from "../agent-sdk-types.js";
3
+ import { type AgentCapabilityFlags, type AgentClient, type AgentCreateSessionOptions, type AgentLaunchContext, type AgentMode, type AgentModelDefinition, type AgentPermissionRequest, type AgentPermissionResponse, type AgentPersistenceHandle, type AgentPromptInput, type AgentRunOptions, type AgentRunResult, type AgentRuntimeInfo, type AgentSession, type AgentSessionConfig, type AgentSlashCommand, type AgentStreamEvent, type AgentUsage, type ListModelsOptions, type ListModesOptions, type ListPersistedAgentsOptions, type PersistedAgentDescriptor, type ToolCallTimelineItem } from "../agent-sdk-types.js";
4
4
  import { type ProviderRuntimeSettings } from "../provider-launch-config.js";
5
5
  import { type OpenCodeRuntime } from "./opencode/runtime.js";
6
6
  type OpenCodeAgentConfig = AgentSessionConfig & {
@@ -49,6 +49,7 @@ declare function buildOpenCodeModelContextWindowLookup(providers: {
49
49
  connected?: string[];
50
50
  all?: Array<{
51
51
  id: string;
52
+ source?: string;
52
53
  models?: Record<string, unknown>;
53
54
  }>;
54
55
  } | null | undefined): Map<string, number>;
@@ -95,8 +96,8 @@ export declare class OpenCodeAgentClient implements AgentClient {
95
96
  private readonly modelContextWindows;
96
97
  private readonly storageRoot;
97
98
  constructor(logger: Logger, runtimeSettings?: ProviderRuntimeSettings, storageRoot?: string, deps?: OpenCodeAgentClientDeps);
98
- createSession(config: AgentSessionConfig, _launchContext?: AgentLaunchContext, options?: AgentCreateSessionOptions): Promise<AgentSession>;
99
- resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, _launchContext?: AgentLaunchContext): Promise<AgentSession>;
99
+ createSession(config: AgentSessionConfig, launchContext?: AgentLaunchContext, options?: AgentCreateSessionOptions): Promise<AgentSession>;
100
+ resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, launchContext?: AgentLaunchContext): Promise<AgentSession>;
100
101
  listModels(options: ListModelsOptions): Promise<AgentModelDefinition[]>;
101
102
  listModes(options: ListModesOptions): Promise<AgentMode[]>;
102
103
  listPersistedAgents(options?: ListPersistedAgentsOptions): Promise<PersistedAgentDescriptor[]>;
@@ -142,6 +143,7 @@ interface OpenCodeSubAgentActivityState {
142
143
  }
143
144
  export declare function translateOpenCodeEvent(event: OpenCodeEvent, state: OpenCodeEventTranslationState): AgentStreamEvent[];
144
145
  declare class OpenCodeAgentSession implements AgentSession {
146
+ private readonly agentId?;
145
147
  readonly provider: "opencode";
146
148
  readonly capabilities: AgentCapabilityFlags;
147
149
  private readonly config;
@@ -176,8 +178,7 @@ declare class OpenCodeAgentSession implements AgentSession {
176
178
  private releaseServer;
177
179
  private readonly persistSession;
178
180
  private deletedFromProvider;
179
- private retryFailureTimer;
180
- constructor(config: OpenCodeAgentConfig, client: OpencodeClient, sessionId: string, logger: Logger, _storageRoot: string, modelContextWindowsByModelKey?: ReadonlyMap<string, number>, releaseServer?: () => void, persistSession?: boolean);
181
+ constructor(config: OpenCodeAgentConfig, client: OpencodeClient, sessionId: string, logger: Logger, _storageRoot: string, modelContextWindowsByModelKey?: ReadonlyMap<string, number>, releaseServer?: () => void, persistSession?: boolean, agentId?: string | undefined);
181
182
  get id(): string | null;
182
183
  getRuntimeInfo(): Promise<AgentRuntimeInfo>;
183
184
  setModel(modelId: string | null): Promise<void>;
@@ -194,11 +195,10 @@ declare class OpenCodeAgentSession implements AgentSession {
194
195
  private consumeOpenCodeStreamEvent;
195
196
  private finishForegroundTurn;
196
197
  private trackToolCall;
197
- private armRetryFailureTimerForStatus;
198
- private clearRetryFailureTimer;
199
198
  private synthesizeInterruptedToolCalls;
200
199
  private notifySubscribers;
201
200
  private createTurnId;
201
+ private traceOpenCode;
202
202
  streamHistory(): AsyncGenerator<AgentStreamEvent>;
203
203
  getAvailableModes(): Promise<AgentMode[]>;
204
204
  getCurrentMode(): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../../../../src/server/agent/providers/opencode-agent.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { homedir } from "node:os";
3
3
  import path from "node:path";
4
4
  import { findExecutable, isCommandAvailable } from "../../../utils/executable.js";
5
5
  import { z } from "zod";
6
+ import { getAgentStreamEventTurnId, } from "../agent-sdk-types.js";
6
7
  import { createProviderEnvSpec } from "../provider-launch-config.js";
7
8
  import { withTimeout } from "../../../utils/promise-timeout.js";
8
9
  import { execCommand } from "../../../utils/spawn.js";
@@ -13,6 +14,7 @@ import { formatDiagnosticStatus, formatProviderDiagnostic, formatProviderDiagnos
13
14
  import { runProviderTurn } from "./provider-runner.js";
14
15
  import { renderPromptAttachmentAsText } from "../prompt-attachments.js";
15
16
  import { createSdkOpenCodeClient, } from "./opencode/runtime.js";
17
+ import { normalizeProviderReplayTimestamp } from "../provider-history-timestamps.js";
16
18
  const OPENCODE_CAPABILITIES = {
17
19
  supportsStreaming: true,
18
20
  supportsSessionPersistence: true,
@@ -25,7 +27,6 @@ const OPENCODE_BUILD_MODE_ID = "build";
25
27
  const OPENCODE_FULL_ACCESS_MODE_ID = "full-access";
26
28
  const OPENCODE_STORAGE_SESSION_LIMIT = 200;
27
29
  const OPENCODE_PENDING_ABORT_START_TIMEOUT_MS = 10000;
28
- const OPENCODE_RETRY_STATUS_FAILURE_MS = 10000;
29
30
  const DEFAULT_MODES = [
30
31
  {
31
32
  id: OPENCODE_BUILD_MODE_ID,
@@ -388,7 +389,9 @@ function buildOpenCodeModelContextWindowLookup(providers) {
388
389
  }
389
390
  const connectedProviderIds = new Set(providers.connected ?? []);
390
391
  for (const provider of providers.all ?? []) {
391
- if (!connectedProviderIds.has(provider.id)) {
392
+ // Providers with source "api" are managed by the OpenCode console/subscription and are
393
+ // usable even though they don't appear in `connected` (which only lists env/config providers).
394
+ if (!connectedProviderIds.has(provider.id) && provider.source !== "api") {
392
395
  continue;
393
396
  }
394
397
  for (const [modelId, modelDefinition] of Object.entries(provider.models ?? {})) {
@@ -636,6 +639,55 @@ function getOpenCodeMessageTimestamp(message) {
636
639
  function getOpenCodePartTimestamp(part) {
637
640
  return part.time?.start ?? part.time?.end ?? 0;
638
641
  }
642
+ function resolveOpenCodeReplayTimestamp(params) {
643
+ const timedPart = params.part;
644
+ const partTimestamp = timedPart?.time?.start ??
645
+ timedPart?.time?.end ??
646
+ params.message.time?.created ??
647
+ params.message.time?.completed;
648
+ return normalizeProviderReplayTimestamp(partTimestamp);
649
+ }
650
+ function buildOpenCodeReplayTimelineEvent(params) {
651
+ const timestamp = resolveOpenCodeReplayTimestamp({
652
+ message: params.message,
653
+ part: params.part,
654
+ });
655
+ return {
656
+ type: "timeline",
657
+ provider: "opencode",
658
+ item: params.item,
659
+ ...(timestamp ? { timestamp } : {}),
660
+ };
661
+ }
662
+ function buildOpenCodeReplayPartTimelineEvent(params) {
663
+ const { part, message } = params;
664
+ if (part.type === "text" && part.text) {
665
+ return buildOpenCodeReplayTimelineEvent({
666
+ item: { type: "assistant_message", text: part.text },
667
+ message,
668
+ part,
669
+ });
670
+ }
671
+ if (part.type === "reasoning" && part.text) {
672
+ return buildOpenCodeReplayTimelineEvent({
673
+ item: { type: "reasoning", text: part.text },
674
+ message,
675
+ part,
676
+ });
677
+ }
678
+ if (part.type !== "tool") {
679
+ return null;
680
+ }
681
+ const parsedToolPart = OpencodeToolPartToTimelineItemSchema.safeParse(part);
682
+ if (!parsedToolPart.success || !parsedToolPart.data) {
683
+ return null;
684
+ }
685
+ return buildOpenCodeReplayTimelineEvent({
686
+ item: parsedToolPart.data,
687
+ message,
688
+ part,
689
+ });
690
+ }
639
691
  export const __openCodeInternals = {
640
692
  buildOpenCodePromptParts,
641
693
  buildOpenCodeModelContextWindowLookup,
@@ -682,7 +734,7 @@ export class OpenCodeAgentClient {
682
734
  deps.runtime ??
683
735
  new ProductionOpenCodeRuntime(OpenCodeServerManager.getInstance(this.logger, runtimeSettings));
684
736
  }
685
- async createSession(config, _launchContext, options) {
737
+ async createSession(config, launchContext, options) {
686
738
  const openCodeConfig = this.assertConfig(config);
687
739
  const acquisition = await this.runtime.acquireServer({ force: false });
688
740
  const { url } = acquisition.server;
@@ -700,14 +752,14 @@ export class OpenCodeAgentClient {
700
752
  throw new Error("OpenCode session creation returned no data");
701
753
  }
702
754
  await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
703
- return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, options?.persistSession);
755
+ return new OpenCodeAgentSession(openCodeConfig, client, session.id, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, options?.persistSession, launchContext?.agentId);
704
756
  }
705
757
  catch (error) {
706
758
  acquisition.release();
707
759
  throw error;
708
760
  }
709
761
  }
710
- async resumeSession(handle, overrides, _launchContext) {
762
+ async resumeSession(handle, overrides, launchContext) {
711
763
  const cwd = overrides?.cwd ?? handle.metadata?.cwd;
712
764
  if (!cwd) {
713
765
  throw new Error("OpenCode resume requires the original working directory");
@@ -726,7 +778,7 @@ export class OpenCodeAgentClient {
726
778
  });
727
779
  try {
728
780
  await this.populateModelContextWindowCache(client, openCodeConfig.cwd);
729
- return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, undefined);
781
+ return new OpenCodeAgentSession(openCodeConfig, client, handle.sessionId, this.logger, this.storageRoot, new Map(this.modelContextWindows), acquisition.release, undefined, launchContext?.agentId);
730
782
  }
731
783
  catch (error) {
732
784
  acquisition.release();
@@ -751,17 +803,21 @@ export class OpenCodeAgentClient {
751
803
  if (!providers) {
752
804
  return [];
753
805
  }
754
- // Only include models from connected providers (ones that are actually available)
755
806
  const connectedProviderIds = new Set(providers.connected);
756
- // Fail fast if no providers are connected
757
- if (connectedProviderIds.size === 0) {
758
- 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).");
807
+ // Providers with source "api" are managed by the OpenCode console/subscription (e.g. Pi
808
+ // coding agent). They do not appear in `connected` (which only lists env/config providers)
809
+ // but are fully usable OpenCode authenticates them internally via the console session.
810
+ const isAccessible = (provider) => connectedProviderIds.has(provider.id) || provider.source === "api";
811
+ // Fail fast if no providers are accessible at all
812
+ if (!providers.all.some(isAccessible)) {
813
+ throw new Error("OpenCode has no connected providers. Please authenticate with at least one provider " +
814
+ "(e.g., openai, anthropic), set appropriate environment variables (e.g., OPENAI_API_KEY), " +
815
+ "or log in to OpenCode Go via the console.");
759
816
  }
760
817
  const models = [];
761
818
  this.modelContextWindows.clear();
762
819
  for (const provider of providers.all) {
763
- // Skip providers that aren't connected/configured
764
- if (!connectedProviderIds.has(provider.id)) {
820
+ if (!isAccessible(provider)) {
765
821
  continue;
766
822
  }
767
823
  for (const [modelId, model] of Object.entries(provider.models)) {
@@ -1563,19 +1619,6 @@ function createDeferred() {
1563
1619
  });
1564
1620
  return { promise, resolve, reject };
1565
1621
  }
1566
- const OPENCODE_TRACE_ENABLED = process.env.PASEO_OPENCODE_TRACE === "1";
1567
- function traceOpenCode(tag, data = {}) {
1568
- if (!OPENCODE_TRACE_ENABLED)
1569
- return;
1570
- const line = JSON.stringify({ ts: new Date().toISOString(), tag, ...data }, (_k, v) => {
1571
- if (v instanceof Error)
1572
- return { name: v.name, message: v.message, stack: v.stack };
1573
- if (typeof v === "bigint")
1574
- return v.toString();
1575
- return v;
1576
- });
1577
- process.stderr.write(`[opencode-trace] ${line}\n`);
1578
- }
1579
1622
  function unwrapOpenCodeGlobalEvent(event) {
1580
1623
  const record = readOpenCodeRecord(event);
1581
1624
  if (!record) {
@@ -1591,7 +1634,8 @@ function unwrapOpenCodeGlobalEvent(event) {
1591
1634
  return null;
1592
1635
  }
1593
1636
  class OpenCodeAgentSession {
1594
- constructor(config, client, sessionId, logger, _storageRoot, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true) {
1637
+ constructor(config, client, sessionId, logger, _storageRoot, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true, agentId) {
1638
+ this.agentId = agentId;
1595
1639
  this.provider = "opencode";
1596
1640
  this.capabilities = OPENCODE_CAPABILITIES;
1597
1641
  this.currentMode = "default";
@@ -1618,11 +1662,10 @@ class OpenCodeAgentSession {
1618
1662
  this.subAgentCallIdByChildSessionId = new Map();
1619
1663
  this.pendingChildToolPartsBySessionId = new Map();
1620
1664
  this.deletedFromProvider = false;
1621
- this.retryFailureTimer = null;
1622
1665
  this.config = config;
1623
1666
  this.client = client;
1624
1667
  this.sessionId = sessionId;
1625
- this.logger = logger;
1668
+ this.logger = logger.child({ agentId: this.agentId });
1626
1669
  this.modelContextWindowsByModelKey = modelContextWindowsByModelKey;
1627
1670
  this.currentMode = normalizeOpenCodeModeId(config.modeId);
1628
1671
  this.releaseServer = releaseServer ?? null;
@@ -1714,7 +1757,6 @@ class OpenCodeAgentSession {
1714
1757
  this.subAgentsByCallId.clear();
1715
1758
  this.subAgentCallIdByChildSessionId.clear();
1716
1759
  this.pendingChildToolPartsBySessionId.clear();
1717
- this.clearRetryFailureTimer();
1718
1760
  const turnAbortController = new AbortController();
1719
1761
  this.abortController = turnAbortController;
1720
1762
  await this.ensureMcpServersConfigured();
@@ -1741,6 +1783,7 @@ class OpenCodeAgentSession {
1741
1783
  // consumeEventStream already finished the turn with the subscription error.
1742
1784
  return { turnId };
1743
1785
  }
1786
+ this.notifySubscribers({ type: "turn_started", provider: "opencode" }, turnId);
1744
1787
  const slashCommand = await this.resolveSlashCommandInvocation(prompt);
1745
1788
  if (slashCommand) {
1746
1789
  if (slashCommand.commandName === "compact" || slashCommand.commandName === "summarize") {
@@ -1823,7 +1866,7 @@ class OpenCodeAgentSession {
1823
1866
  // SDK input validation) is caught alongside async rejections. A plain
1824
1867
  // `.then().catch()` chain would let a sync throw escape unhandled.
1825
1868
  void (async () => {
1826
- traceOpenCode("promptAsync.start", {
1869
+ this.traceOpenCode("provider.opencode.prompt_async.start", {
1827
1870
  turnId,
1828
1871
  sessionId: this.sessionId,
1829
1872
  model,
@@ -1849,7 +1892,7 @@ class OpenCodeAgentSession {
1849
1892
  ...(effectiveMode ? { agent: effectiveMode } : {}),
1850
1893
  ...(effectiveVariant ? { variant: effectiveVariant } : {}),
1851
1894
  });
1852
- traceOpenCode("promptAsync.response", {
1895
+ this.traceOpenCode("provider.opencode.prompt_async.response", {
1853
1896
  turnId,
1854
1897
  hasError: promptResponse.error !== undefined,
1855
1898
  error: promptResponse.error,
@@ -1864,7 +1907,7 @@ class OpenCodeAgentSession {
1864
1907
  }
1865
1908
  }
1866
1909
  catch (error) {
1867
- traceOpenCode("promptAsync.throw", {
1910
+ this.traceOpenCode("provider.opencode.prompt_async.throw", {
1868
1911
  turnId,
1869
1912
  error: error instanceof Error
1870
1913
  ? { name: error.name, message: error.message, stack: error.stack }
@@ -1887,7 +1930,11 @@ class OpenCodeAgentSession {
1887
1930
  };
1888
1931
  }
1889
1932
  async consumeEventStream(turnId, turnAbortController, subscriptionReady) {
1890
- traceOpenCode("subscribe.start", { turnId, sessionId: this.sessionId, cwd: this.config.cwd });
1933
+ this.traceOpenCode("provider.opencode.subscribe.start", {
1934
+ turnId,
1935
+ sessionId: this.sessionId,
1936
+ cwd: this.config.cwd,
1937
+ });
1891
1938
  try {
1892
1939
  const result = await this.client.global.event({
1893
1940
  signal: turnAbortController.signal,
@@ -1899,7 +1946,10 @@ class OpenCodeAgentSession {
1899
1946
  eventCount += 1;
1900
1947
  if (!subscriptionReadyResolved) {
1901
1948
  subscriptionReadyResolved = true;
1902
- traceOpenCode("subscribe.ready", { turnId, sessionId: this.sessionId });
1949
+ this.traceOpenCode("provider.opencode.subscribe.ready", {
1950
+ turnId,
1951
+ sessionId: this.sessionId,
1952
+ });
1903
1953
  subscriptionReady.resolve();
1904
1954
  }
1905
1955
  const shouldContinue = await this.consumeOpenCodeStreamEvent({
@@ -1912,14 +1962,14 @@ class OpenCodeAgentSession {
1912
1962
  return;
1913
1963
  }
1914
1964
  }
1915
- traceOpenCode("stream.eof", {
1965
+ this.traceOpenCode("provider.opencode.stream.eof", {
1916
1966
  turnId,
1917
1967
  eventCount,
1918
1968
  aborted: turnAbortController.signal.aborted,
1919
1969
  stillActive: this.activeForegroundTurnId === turnId,
1920
1970
  });
1921
1971
  if (!turnAbortController.signal.aborted && this.activeForegroundTurnId === turnId) {
1922
- traceOpenCode("turn.fail.eof", { turnId, eventCount });
1972
+ this.traceOpenCode("provider.opencode.turn.fail_eof", { turnId, eventCount });
1923
1973
  if (!subscriptionReadyResolved) {
1924
1974
  subscriptionReady.reject(new Error("OpenCode event stream ended before it became ready"));
1925
1975
  }
@@ -1931,7 +1981,7 @@ class OpenCodeAgentSession {
1931
1981
  }
1932
1982
  }
1933
1983
  catch (error) {
1934
- traceOpenCode("subscribe.error", {
1984
+ this.traceOpenCode("provider.opencode.subscribe.error", {
1935
1985
  turnId,
1936
1986
  error: error instanceof Error ? { name: error.name, message: error.message } : String(error),
1937
1987
  });
@@ -1960,19 +2010,20 @@ class OpenCodeAgentSession {
1960
2010
  async consumeOpenCodeStreamEvent(params) {
1961
2011
  const { rawEvent, eventCount, turnId, turnAbortController } = params;
1962
2012
  const event = unwrapOpenCodeGlobalEvent(rawEvent);
1963
- traceOpenCode("event.raw", {
2013
+ this.traceOpenCode("provider.opencode.raw_event", {
1964
2014
  turnId,
1965
2015
  n: eventCount,
1966
2016
  type: event?.type,
1967
2017
  rawType: readOpenCodeRecord(rawEvent)?.type,
1968
2018
  directory: readOpenCodeRecord(rawEvent)?.directory,
1969
- properties: event ? event.properties : undefined,
2019
+ rawEvent,
2020
+ properties: event?.properties,
1970
2021
  });
1971
2022
  if (!event) {
1972
2023
  return true;
1973
2024
  }
1974
2025
  if (turnAbortController.signal.aborted || this.activeForegroundTurnId !== turnId) {
1975
- traceOpenCode("event.skip", {
2026
+ this.traceOpenCode("provider.opencode.event.skip", {
1976
2027
  turnId,
1977
2028
  n: eventCount,
1978
2029
  aborted: turnAbortController.signal.aborted,
@@ -1980,17 +2031,17 @@ class OpenCodeAgentSession {
1980
2031
  });
1981
2032
  return false;
1982
2033
  }
1983
- this.armRetryFailureTimerForStatus(event, turnId);
1984
2034
  const translated = await this.translateEvent(event);
1985
- traceOpenCode("event.translated", {
2035
+ this.traceOpenCode("provider.opencode.parsed_event", {
1986
2036
  turnId,
1987
2037
  n: eventCount,
1988
2038
  count: translated.length,
1989
2039
  types: translated.map((t) => t.type),
2040
+ events: translated,
1990
2041
  });
1991
2042
  for (const e of translated) {
1992
2043
  if (this.activeForegroundTurnId !== turnId) {
1993
- traceOpenCode("event.translated.skip-active", { turnId, type: e.type });
2044
+ this.traceOpenCode("provider.opencode.parsed_event.skip_active", { turnId, type: e.type });
1994
2045
  return false;
1995
2046
  }
1996
2047
  if (e.type === "timeline" && e.item.type === "tool_call") {
@@ -1998,7 +2049,10 @@ class OpenCodeAgentSession {
1998
2049
  }
1999
2050
  const terminalEvent = toTerminalTurnEvent(e);
2000
2051
  if (terminalEvent) {
2001
- traceOpenCode("event.terminal", { turnId, type: terminalEvent.type });
2052
+ this.traceOpenCode("provider.opencode.event.terminal", {
2053
+ turnId,
2054
+ type: terminalEvent.type,
2055
+ });
2002
2056
  this.finishForegroundTurn(terminalEvent, turnId);
2003
2057
  return false;
2004
2058
  }
@@ -2007,7 +2061,7 @@ class OpenCodeAgentSession {
2007
2061
  return true;
2008
2062
  }
2009
2063
  finishForegroundTurn(event, turnId) {
2010
- traceOpenCode("finishForegroundTurn", {
2064
+ this.traceOpenCode("provider.opencode.finish_foreground_turn", {
2011
2065
  turnId,
2012
2066
  activeTurnId: this.activeForegroundTurnId,
2013
2067
  type: event.type,
@@ -2023,7 +2077,6 @@ class OpenCodeAgentSession {
2023
2077
  else {
2024
2078
  this.runningToolCalls.clear();
2025
2079
  }
2026
- this.clearRetryFailureTimer();
2027
2080
  this.activeForegroundTurnId = null;
2028
2081
  // Abort the SSE connection so the SDK tears down the underlying fetch.
2029
2082
  this.abortController?.abort();
@@ -2037,37 +2090,6 @@ class OpenCodeAgentSession {
2037
2090
  }
2038
2091
  this.runningToolCalls.delete(item.callId);
2039
2092
  }
2040
- armRetryFailureTimerForStatus(event, turnId) {
2041
- if (this.retryFailureTimer || event.type !== "session.status") {
2042
- return;
2043
- }
2044
- if (event.properties.sessionID !== this.sessionId || event.properties.status.type !== "retry") {
2045
- return;
2046
- }
2047
- const retry = event.properties.status;
2048
- const message = typeof retry.message === "string" ? retry.message.trim() : "";
2049
- const error = message
2050
- ? `OpenCode provider retry did not recover: ${message}`
2051
- : "OpenCode provider retry did not recover";
2052
- this.retryFailureTimer = setTimeout(() => {
2053
- this.retryFailureTimer = null;
2054
- if (this.activeForegroundTurnId !== turnId) {
2055
- return;
2056
- }
2057
- this.finishForegroundTurn({
2058
- type: "turn_failed",
2059
- provider: "opencode",
2060
- error,
2061
- }, turnId);
2062
- }, OPENCODE_RETRY_STATUS_FAILURE_MS);
2063
- }
2064
- clearRetryFailureTimer() {
2065
- if (!this.retryFailureTimer) {
2066
- return;
2067
- }
2068
- clearTimeout(this.retryFailureTimer);
2069
- this.retryFailureTimer = null;
2070
- }
2071
2093
  synthesizeInterruptedToolCalls(turnId) {
2072
2094
  for (const item of this.runningToolCalls.values()) {
2073
2095
  const error = { message: "Tool execution aborted" };
@@ -2094,6 +2116,10 @@ class OpenCodeAgentSession {
2094
2116
  notifySubscribers(event, turnIdOverride) {
2095
2117
  const turnId = turnIdOverride ?? this.activeForegroundTurnId;
2096
2118
  const tagged = turnId ? { ...event, turnId } : event;
2119
+ this.traceOpenCode("provider.opencode.event_emit", {
2120
+ turnId: getAgentStreamEventTurnId(tagged),
2121
+ event: tagged,
2122
+ });
2097
2123
  for (const callback of this.subscribers) {
2098
2124
  try {
2099
2125
  callback(tagged);
@@ -2106,6 +2132,15 @@ class OpenCodeAgentSession {
2106
2132
  createTurnId() {
2107
2133
  return `opencode-turn-${this.nextTurnOrdinal++}`;
2108
2134
  }
2135
+ traceOpenCode(msg, data = {}) {
2136
+ this.logger.trace({
2137
+ agentId: this.agentId,
2138
+ provider: "opencode",
2139
+ sessionId: this.sessionId,
2140
+ turnId: data.turnId ?? this.activeForegroundTurnId ?? undefined,
2141
+ ...data,
2142
+ }, msg);
2143
+ }
2109
2144
  async *streamHistory() {
2110
2145
  const response = await this.client.session.messages({
2111
2146
  sessionID: this.sessionId,
@@ -2121,11 +2156,10 @@ class OpenCodeAgentSession {
2121
2156
  .map((p) => p.text)
2122
2157
  .join("");
2123
2158
  if (text) {
2124
- yield {
2125
- type: "timeline",
2126
- provider: "opencode",
2159
+ yield buildOpenCodeReplayTimelineEvent({
2127
2160
  item: { type: "user_message", text },
2128
- };
2161
+ message: info,
2162
+ });
2129
2163
  }
2130
2164
  }
2131
2165
  else {
@@ -2133,41 +2167,19 @@ class OpenCodeAgentSession {
2133
2167
  for (const part of parts) {
2134
2168
  if (part.type === "text" && part.text) {
2135
2169
  emittedAssistantText = true;
2136
- yield {
2137
- type: "timeline",
2138
- provider: "opencode",
2139
- item: { type: "assistant_message", text: part.text },
2140
- };
2141
- continue;
2142
- }
2143
- if (part.type === "reasoning" && part.text) {
2144
- yield {
2145
- type: "timeline",
2146
- provider: "opencode",
2147
- item: { type: "reasoning", text: part.text },
2148
- };
2149
- continue;
2150
2170
  }
2151
- if (part.type !== "tool") {
2152
- continue;
2153
- }
2154
- const parsedToolPart = OpencodeToolPartToTimelineItemSchema.safeParse(part);
2155
- if (parsedToolPart.success && parsedToolPart.data) {
2156
- yield {
2157
- type: "timeline",
2158
- provider: "opencode",
2159
- item: parsedToolPart.data,
2160
- };
2171
+ const event = buildOpenCodeReplayPartTimelineEvent({ part, message: info });
2172
+ if (event) {
2173
+ yield event;
2161
2174
  }
2162
2175
  }
2163
2176
  if (!emittedAssistantText) {
2164
2177
  const text = stringifyStructuredAssistantMessage(info.structured);
2165
2178
  if (text) {
2166
- yield {
2167
- type: "timeline",
2168
- provider: "opencode",
2179
+ yield buildOpenCodeReplayTimelineEvent({
2169
2180
  item: { type: "assistant_message", text },
2170
- };
2181
+ message: info,
2182
+ });
2171
2183
  }
2172
2184
  }
2173
2185
  }