@getpaseo/server 0.1.81 → 0.1.83

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 (163) hide show
  1. package/dist/server/client/daemon-client.d.ts +2 -1
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +29 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-manager.d.ts +9 -7
  6. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  7. package/dist/server/server/agent/agent-manager.js +78 -92
  8. package/dist/server/server/agent/agent-manager.js.map +1 -1
  9. package/dist/server/server/agent/agent-metadata-generator.js +1 -1
  10. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  11. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  12. package/dist/server/server/agent/agent-projections.js +4 -4
  13. package/dist/server/server/agent/agent-projections.js.map +1 -1
  14. package/dist/server/server/agent/agent-prompt.d.ts +13 -10
  15. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -1
  16. package/dist/server/server/agent/agent-prompt.js +38 -18
  17. package/dist/server/server/agent/agent-prompt.js.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.d.ts +13 -0
  19. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  20. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  21. package/dist/server/server/agent/agent-storage.d.ts +2 -7
  22. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  23. package/dist/server/server/agent/agent-storage.js +2 -16
  24. package/dist/server/server/agent/agent-storage.js.map +1 -1
  25. package/dist/server/server/agent/agent-timeline-store-types.d.ts +0 -4
  26. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -1
  27. package/dist/server/server/agent/agent-timeline-store.d.ts +0 -5
  28. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -1
  29. package/dist/server/server/agent/agent-timeline-store.js +0 -33
  30. package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
  31. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  32. package/dist/server/server/agent/mcp-server.js +42 -28
  33. package/dist/server/server/agent/mcp-server.js.map +1 -1
  34. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  35. package/dist/server/server/agent/provider-launch-config.js +0 -1
  36. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  37. package/dist/server/server/agent/provider-manifest.d.ts +1 -1
  38. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  39. package/dist/server/server/agent/provider-registry.d.ts +2 -1
  40. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  41. package/dist/server/server/agent/provider-registry.js +5 -1
  42. package/dist/server/server/agent/provider-registry.js.map +1 -1
  43. package/dist/server/server/agent/provider-snapshot-manager.d.ts +2 -2
  44. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  45. package/dist/server/server/agent/provider-snapshot-manager.js +60 -26
  46. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  47. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  48. package/dist/server/server/agent/providers/acp-agent.js +3 -0
  49. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  50. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
  51. package/dist/server/server/agent/providers/claude/agent.js +275 -85
  52. package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
  53. package/dist/server/server/agent/providers/claude/rewind.d.ts +30 -0
  54. package/dist/server/server/agent/providers/claude/rewind.d.ts.map +1 -0
  55. package/dist/server/server/agent/providers/claude/rewind.js +30 -0
  56. package/dist/server/server/agent/providers/claude/rewind.js.map +1 -0
  57. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts +24 -0
  58. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts.map +1 -0
  59. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js +23 -0
  60. package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js.map +1 -0
  61. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +168 -0
  62. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -1
  63. package/dist/server/server/agent/providers/codex/app-server-transport.js +48 -0
  64. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -1
  65. package/dist/server/server/agent/providers/codex/rewind.d.ts +21 -0
  66. package/dist/server/server/agent/providers/codex/rewind.d.ts.map +1 -0
  67. package/dist/server/server/agent/providers/codex/rewind.js +46 -0
  68. package/dist/server/server/agent/providers/codex/rewind.js.map +1 -0
  69. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +5 -0
  70. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts.map +1 -1
  71. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +45 -0
  72. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js.map +1 -1
  73. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +1 -1
  74. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +11 -11
  76. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  77. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +32 -34
  78. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  79. package/dist/server/server/agent/providers/codex-app-server-agent.js +206 -60
  80. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  81. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  82. package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -0
  83. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  84. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +13 -0
  85. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
  86. package/dist/server/server/agent/providers/mock-load-test-agent.js +55 -1
  87. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
  88. package/dist/server/server/agent/providers/opencode/rewind.d.ts +18 -0
  89. package/dist/server/server/agent/providers/opencode/rewind.d.ts.map +1 -0
  90. package/dist/server/server/agent/providers/opencode/rewind.js +14 -0
  91. package/dist/server/server/agent/providers/opencode/rewind.js.map +1 -0
  92. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  93. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +110 -2
  94. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  95. package/dist/server/server/agent/providers/opencode-agent.d.ts +18 -0
  96. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  97. package/dist/server/server/agent/providers/opencode-agent.js +265 -38
  98. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  99. package/dist/server/server/agent/providers/pi/agent.d.ts +21 -1
  100. package/dist/server/server/agent/providers/pi/agent.d.ts.map +1 -1
  101. package/dist/server/server/agent/providers/pi/agent.js +355 -13
  102. package/dist/server/server/agent/providers/pi/agent.js.map +1 -1
  103. package/dist/server/server/agent/providers/pi/history-mapper.d.ts +5 -1
  104. package/dist/server/server/agent/providers/pi/history-mapper.d.ts.map +1 -1
  105. package/dist/server/server/agent/providers/pi/history-mapper.js +3 -2
  106. package/dist/server/server/agent/providers/pi/history-mapper.js.map +1 -1
  107. package/dist/server/server/agent/providers/pi/rewind.d.ts +8 -0
  108. package/dist/server/server/agent/providers/pi/rewind.d.ts.map +1 -0
  109. package/dist/server/server/agent/providers/pi/rewind.js +8 -0
  110. package/dist/server/server/agent/providers/pi/rewind.js.map +1 -0
  111. package/dist/server/server/agent/providers/pi/rpc-types.d.ts +10 -0
  112. package/dist/server/server/agent/providers/pi/rpc-types.d.ts.map +1 -1
  113. package/dist/server/server/agent/providers/pi/runtime.d.ts +2 -0
  114. package/dist/server/server/agent/providers/pi/runtime.d.ts.map +1 -1
  115. package/dist/server/server/agent/providers/pi/runtime.js +4 -0
  116. package/dist/server/server/agent/providers/pi/runtime.js.map +1 -1
  117. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +10 -0
  118. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts.map +1 -1
  119. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +49 -1
  120. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js.map +1 -1
  121. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +4 -1
  122. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  123. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +57 -1
  124. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  125. package/dist/server/server/agent/rewind/rewind.d.ts +10 -0
  126. package/dist/server/server/agent/rewind/rewind.d.ts.map +1 -0
  127. package/dist/server/server/agent/rewind/rewind.js +29 -0
  128. package/dist/server/server/agent/rewind/rewind.js.map +1 -0
  129. package/dist/server/server/agent/rewind/test-rewind-session.d.ts +48 -0
  130. package/dist/server/server/agent/rewind/test-rewind-session.d.ts.map +1 -0
  131. package/dist/server/server/agent/rewind/test-rewind-session.js +88 -0
  132. package/dist/server/server/agent/rewind/test-rewind-session.js.map +1 -0
  133. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  134. package/dist/server/server/persistence-hooks.js +0 -2
  135. package/dist/server/server/persistence-hooks.js.map +1 -1
  136. package/dist/server/server/session.d.ts +2 -0
  137. package/dist/server/server/session.d.ts.map +1 -1
  138. package/dist/server/server/session.js +56 -25
  139. package/dist/server/server/session.js.map +1 -1
  140. package/dist/server/server/websocket-server.d.ts.map +1 -1
  141. package/dist/server/server/websocket-server.js +2 -0
  142. package/dist/server/server/websocket-server.js.map +1 -1
  143. package/dist/server/shared/messages.d.ts +281 -0
  144. package/dist/server/shared/messages.d.ts.map +1 -1
  145. package/dist/server/shared/messages.js +27 -0
  146. package/dist/server/shared/messages.js.map +1 -1
  147. package/dist/server/terminal/terminal.d.ts.map +1 -1
  148. package/dist/server/terminal/terminal.js +14 -0
  149. package/dist/server/terminal/terminal.js.map +1 -1
  150. package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
  151. package/dist/src/server/agent/provider-launch-config.js +0 -1
  152. package/dist/src/server/agent/provider-launch-config.js.map +1 -1
  153. package/dist/src/shared/messages.js +27 -0
  154. package/dist/src/shared/messages.js.map +1 -1
  155. package/package.json +3 -3
  156. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts +0 -9
  157. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +0 -1
  158. package/dist/server/server/agent/providers/codex-rollout-timeline.js +0 -555
  159. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +0 -1
  160. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +0 -10
  161. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts.map +0 -1
  162. package/dist/server/server/agent/providers/pi/session-descriptor.js +0 -300
  163. package/dist/server/server/agent/providers/pi/session-descriptor.js.map +0 -1
@@ -23,7 +23,7 @@ import { DictationStreamManager, } from "./dictation/dictation-stream-manager.js
23
23
  import { createVoiceTurnController, } from "./voice/voice-turn-controller.js";
24
24
  import { buildConfigOverrides, extractTimestamps, isStoredAgentProviderAvailable, toAgentPersistenceHandle, } from "./persistence-hooks.js";
25
25
  import { ensureAgentLoaded } from "./agent/agent-loading.js";
26
- import { formatSystemNotificationPrompt, sendPromptToAgent, unarchiveAgentState, } from "./agent/agent-prompt.js";
26
+ import { formatSystemNotificationPrompt, sendPromptToAgent, startCreatedAgentInitialPrompt, waitForAgentRunStartWithTimeout, unarchiveAgentState, } from "./agent/agent-prompt.js";
27
27
  import { experimental_createMCPClient } from "ai";
28
28
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
29
29
  import { buildWorkspaceScriptPayloads, readPaseoConfigForProjection, } from "./script-status-projection.js";
@@ -616,10 +616,11 @@ export class Session {
616
616
  const handleProviderSnapshotChange = (entries, cwd) => {
617
617
  // COMPAT(providersSnapshot): keep provider visibility gating for older clients.
618
618
  const visibleEntries = entries.filter((entry) => this.isProviderVisibleToClient(entry.provider));
619
+ const snapshotCwd = cwd === resolveSnapshotCwd() ? undefined : cwd;
619
620
  this.emit({
620
621
  type: "providers_snapshot_update",
621
622
  payload: {
622
- cwd,
623
+ ...(snapshotCwd ? { cwd: snapshotCwd } : {}),
623
624
  entries: visibleEntries,
624
625
  generatedAt: new Date().toISOString(),
625
626
  },
@@ -757,7 +758,7 @@ export class Session {
757
758
  }
758
759
  async buildAgentPayload(agent) {
759
760
  const storedRecord = await this.agentStorage.get(agent.id);
760
- const title = storedRecord?.title ?? storedRecord?.config?.title ?? null;
761
+ const title = storedRecord?.title ?? null;
761
762
  const payload = toAgentPayload(agent, { title });
762
763
  const storedUpdatedAt = storedRecord ? resolveStoredAgentPayloadUpdatedAt(storedRecord) : null;
763
764
  if (storedUpdatedAt) {
@@ -1038,6 +1039,7 @@ export class Session {
1038
1039
  }
1039
1040
  async dispatchInboundMessage(msg) {
1040
1041
  const promise = this.dispatchVoiceAndControlMessage(msg) ??
1042
+ this.dispatchAgentRewindMessage(msg) ??
1041
1043
  this.dispatchAgentLifecycleMessage(msg) ??
1042
1044
  this.dispatchAgentConfigMessage(msg) ??
1043
1045
  this.dispatchCheckoutMessage(msg) ??
@@ -1098,6 +1100,14 @@ export class Session {
1098
1100
  return undefined;
1099
1101
  }
1100
1102
  }
1103
+ dispatchAgentRewindMessage(msg) {
1104
+ switch (msg.type) {
1105
+ case "agent.rewind.request":
1106
+ return this.handleAgentRewindRequest(msg);
1107
+ default:
1108
+ return undefined;
1109
+ }
1110
+ }
1101
1111
  async handleDictationStreamStart(msg) {
1102
1112
  const unavailable = this.resolveVoiceFeatureUnavailableContext("dictation");
1103
1113
  if (unavailable) {
@@ -2095,7 +2105,6 @@ export class Session {
2095
2105
  agentManager: this.agentManager,
2096
2106
  agentStorage: this.agentStorage,
2097
2107
  agentId,
2098
- userMessageText: text,
2099
2108
  prompt,
2100
2109
  messageId,
2101
2110
  runOptions,
@@ -2125,10 +2134,7 @@ export class Session {
2125
2134
  configTitle: config.title,
2126
2135
  initialPrompt: trimmedPrompt,
2127
2136
  });
2128
- const resolvedConfig = {
2129
- ...config,
2130
- ...(provisionalTitle ? { title: provisionalTitle } : {}),
2131
- };
2137
+ const resolvedConfig = config;
2132
2138
  const firstAgentContext = {
2133
2139
  ...(trimmedPrompt ? { prompt: trimmedPrompt } : {}),
2134
2140
  ...(attachments && attachments.length > 0 ? { attachments } : {}),
@@ -2156,6 +2162,7 @@ export class Session {
2156
2162
  workspaceId: resolvedWorkspace.workspaceId,
2157
2163
  initialPrompt: trimmedPrompt,
2158
2164
  env,
2165
+ initialTitle: provisionalTitle,
2159
2166
  });
2160
2167
  createdAgentId = snapshot.id;
2161
2168
  await this.forwardAgentUpdate(snapshot);
@@ -2164,7 +2171,7 @@ export class Session {
2164
2171
  agentId: snapshot.id,
2165
2172
  createdWorktree,
2166
2173
  });
2167
- await this.sendInitialCreateAgentPrompt({
2174
+ const liveSnapshot = await this.sendInitialCreateAgentPrompt({
2168
2175
  snapshot,
2169
2176
  trimmedPrompt,
2170
2177
  images,
@@ -2174,12 +2181,12 @@ export class Session {
2174
2181
  explicitTitle,
2175
2182
  });
2176
2183
  if (requestId) {
2177
- const agentPayload = await this.buildAgentPayload(snapshot);
2184
+ const agentPayload = await this.buildAgentPayload(liveSnapshot);
2178
2185
  this.emit({
2179
2186
  type: "status",
2180
2187
  payload: {
2181
2188
  status: "agent_created",
2182
- agentId: snapshot.id,
2189
+ agentId: liveSnapshot.id,
2183
2190
  requestId,
2184
2191
  agent: agentPayload,
2185
2192
  },
@@ -2225,7 +2232,7 @@ export class Session {
2225
2232
  const hasImages = (images?.length ?? 0) > 0;
2226
2233
  const hasAttachments = (attachments?.length ?? 0) > 0;
2227
2234
  if (!hasPrompt && !hasImages && !hasAttachments) {
2228
- return;
2235
+ return snapshot;
2229
2236
  }
2230
2237
  scheduleAgentMetadataGeneration({
2231
2238
  agentManager: this.agentManager,
@@ -2237,10 +2244,17 @@ export class Session {
2237
2244
  paseoHome: this.paseoHome,
2238
2245
  logger: this.sessionLogger,
2239
2246
  });
2240
- const started = await this.handleSendAgentMessage(snapshot.id, trimmedPrompt || "", resolveClientMessageId(clientMessageId), images, attachments, outputSchema ? { outputSchema } : undefined);
2241
- if (!started.ok) {
2242
- throw new Error(started.error);
2243
- }
2247
+ const prompt = this.buildAgentPrompt(trimmedPrompt || "", images, attachments);
2248
+ return await startCreatedAgentInitialPrompt({
2249
+ agentManager: this.agentManager,
2250
+ agentId: snapshot.id,
2251
+ snapshot,
2252
+ prompt,
2253
+ runOptions: outputSchema ? { outputSchema } : undefined,
2254
+ logger: this.sessionLogger.child({
2255
+ clientMessageId: resolveClientMessageId(clientMessageId),
2256
+ }),
2257
+ });
2244
2258
  }
2245
2259
  async handleResumeAgentRequest(msg) {
2246
2260
  const { handle, overrides, requestId } = msg;
@@ -2464,6 +2478,31 @@ export class Session {
2464
2478
  this.handleAgentRunError(agentId, error, "Failed to cancel running agent on request");
2465
2479
  }
2466
2480
  }
2481
+ async handleAgentRewindRequest(msg) {
2482
+ try {
2483
+ await this.agentManager.rewind(msg.agentId, msg.messageId, msg.mode);
2484
+ this.emit({
2485
+ type: "agent.rewind.response",
2486
+ payload: {
2487
+ requestId: msg.requestId,
2488
+ agentId: msg.agentId,
2489
+ ok: true,
2490
+ error: null,
2491
+ },
2492
+ });
2493
+ }
2494
+ catch (error) {
2495
+ this.emit({
2496
+ type: "agent.rewind.response",
2497
+ payload: {
2498
+ requestId: msg.requestId,
2499
+ agentId: msg.agentId,
2500
+ ok: false,
2501
+ error: error instanceof Error ? error.message : "Failed to rewind agent",
2502
+ },
2503
+ });
2504
+ }
2505
+ }
2467
2506
  async buildAgentSessionConfig(config, gitOptions, legacyWorktreeName, firstAgentContext) {
2468
2507
  return buildWorktreeAgentSessionConfig({
2469
2508
  paseoHome: this.paseoHome,
@@ -5917,7 +5956,6 @@ export class Session {
5917
5956
  agentManager: this.agentManager,
5918
5957
  agentStorage: this.agentStorage,
5919
5958
  agentId,
5920
- userMessageText: msg.text,
5921
5959
  prompt,
5922
5960
  messageId: msg.messageId,
5923
5961
  logger: this.sessionLogger,
@@ -5949,11 +5987,8 @@ export class Session {
5949
5987
  });
5950
5988
  return;
5951
5989
  }
5952
- const startAbort = new AbortController();
5953
- const startTimeoutMs = 15000;
5954
- const startTimeout = setTimeout(() => startAbort.abort("timeout"), startTimeoutMs);
5955
5990
  try {
5956
- await this.agentManager.waitForAgentRunStart(agentId, { signal: startAbort.signal });
5991
+ await waitForAgentRunStartWithTimeout(this.agentManager, agentId);
5957
5992
  }
5958
5993
  catch (error) {
5959
5994
  this.emit({
@@ -5967,9 +6002,6 @@ export class Session {
5967
6002
  });
5968
6003
  return;
5969
6004
  }
5970
- finally {
5971
- clearTimeout(startTimeout);
5972
- }
5973
6005
  this.emit({
5974
6006
  type: "send_agent_message_response",
5975
6007
  payload: {
@@ -6767,7 +6799,6 @@ export class Session {
6767
6799
  agentId,
6768
6800
  prompt: formatSystemNotificationPrompt(text),
6769
6801
  unarchive: false,
6770
- recordUserMessage: false,
6771
6802
  logger: this.sessionLogger,
6772
6803
  });
6773
6804
  },