@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
@@ -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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"}
@@ -15,6 +15,7 @@ import { renderPromptAttachmentAsText } from "../prompt-attachments.js";
15
15
  import { composeSystemPromptParts } from "../system-prompt.js";
16
16
  import { createSdkOpenCodeClient, } from "./opencode/runtime.js";
17
17
  import { normalizeProviderReplayTimestamp } from "../provider-history-timestamps.js";
18
+ import { revertOpenCodeConversationAndFiles } from "./opencode/rewind.js";
18
19
  const OPENCODE_CAPABILITIES = {
19
20
  supportsStreaming: true,
20
21
  supportsSessionPersistence: true,
@@ -22,11 +23,16 @@ const OPENCODE_CAPABILITIES = {
22
23
  supportsMcpServers: true,
23
24
  supportsReasoningStream: true,
24
25
  supportsToolInvocations: true,
26
+ supportsRewindConversation: false,
27
+ supportsRewindFiles: false,
28
+ supportsRewindBoth: true,
25
29
  };
26
30
  const OPENCODE_BUILD_MODE_ID = "build";
27
31
  const OPENCODE_FULL_ACCESS_MODE_ID = "full-access";
28
32
  const OPENCODE_PERSISTED_SESSION_LIMIT = 200;
29
33
  const OPENCODE_PENDING_ABORT_START_TIMEOUT_MS = 10000;
34
+ const OPENCODE_PERMISSION_ACTION_ALLOW_ONCE = "allow_once";
35
+ const OPENCODE_PERMISSION_ACTION_ALLOW_ALWAYS = "allow_always";
30
36
  const DEFAULT_MODES = [
31
37
  {
32
38
  id: OPENCODE_BUILD_MODE_ID,
@@ -44,6 +50,38 @@ const DEFAULT_MODES = [
44
50
  description: "Automatically approves all tool permission prompts for the session",
45
51
  },
46
52
  ];
53
+ function buildOpenCodePermissionActions() {
54
+ return [
55
+ {
56
+ id: "deny",
57
+ label: "Deny",
58
+ behavior: "deny",
59
+ variant: "danger",
60
+ intent: "dismiss",
61
+ },
62
+ {
63
+ id: OPENCODE_PERMISSION_ACTION_ALLOW_ALWAYS,
64
+ label: "Allow always",
65
+ behavior: "allow",
66
+ variant: "secondary",
67
+ },
68
+ {
69
+ id: OPENCODE_PERMISSION_ACTION_ALLOW_ONCE,
70
+ label: "Allow once",
71
+ behavior: "allow",
72
+ variant: "primary",
73
+ },
74
+ ];
75
+ }
76
+ function resolveOpenCodePermissionReply(response) {
77
+ if (response.behavior === "deny") {
78
+ return "reject";
79
+ }
80
+ if (response.selectedActionId === OPENCODE_PERMISSION_ACTION_ALLOW_ALWAYS) {
81
+ return "always";
82
+ }
83
+ return "once";
84
+ }
47
85
  const MCP_ALREADY_PRESENT_ERROR_TOKENS = ["already", "exists", "connected"];
48
86
  const OPENCODE_PROVIDER_LIST_TIMEOUT_MS = 30000;
49
87
  const OPENCODE_HANDLED_BUILTIN_SLASH_COMMANDS = [
@@ -258,6 +296,23 @@ function resolveOpenCodeRuntimeAgentId(modeId) {
258
296
  function isSelectableOpenCodeAgent(agent) {
259
297
  return (agent.mode === "primary" || agent.mode === "all") && agent.hidden !== true;
260
298
  }
299
+ const OPENCODE_AGENT_HEX_COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/;
300
+ function readOpenCodeAgentHexColor(agent) {
301
+ return typeof agent.color === "string" && OPENCODE_AGENT_HEX_COLOR_PATTERN.test(agent.color)
302
+ ? agent.color
303
+ : undefined;
304
+ }
305
+ function mapOpenCodeAgentToMode(agent) {
306
+ const colorTier = readOpenCodeAgentHexColor(agent);
307
+ return {
308
+ id: agent.name,
309
+ label: agent.name.charAt(0).toUpperCase() + agent.name.slice(1),
310
+ description: typeof agent.description === "string" && agent.description.trim().length > 0
311
+ ? agent.description.trim()
312
+ : DEFAULT_MODES.find((mode) => mode.id === agent.name)?.description,
313
+ ...(colorTier ? { colorTier } : {}),
314
+ };
315
+ }
261
316
  function mergeOpenCodeModes(discoveredModes) {
262
317
  const modesById = new Map(DEFAULT_MODES.map((mode) => [mode.id, mode]));
263
318
  for (const mode of discoveredModes) {
@@ -279,6 +334,14 @@ function sortOpenCodeModes(modes) {
279
334
  function readPositiveFiniteNumber(value) {
280
335
  return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
281
336
  }
337
+ function maxFiniteNumber(left, right) {
338
+ return left === undefined ? right : Math.max(left, right);
339
+ }
340
+ function assignUsageNumber(usage, key, value) {
341
+ if (value !== undefined) {
342
+ usage[key] = value;
343
+ }
344
+ }
282
345
  function buildOpenCodeModelLookupKey(providerId, modelId) {
283
346
  return `${providerId}/${modelId}`;
284
347
  }
@@ -374,7 +437,7 @@ function resolveOpenCodeModelLookupKeyFromAssistantMessage(info) {
374
437
  }
375
438
  return buildOpenCodeModelLookupKey(providerId, modelId);
376
439
  }
377
- function mergeOpenCodeStepFinishUsage(usage, part) {
440
+ function mergeOpenCodeStepFinishUsage(usage, part, options = {}) {
378
441
  const inputTokens = readPositiveFiniteNumber(part.tokens?.input);
379
442
  const outputTokens = readPositiveFiniteNumber(part.tokens?.output);
380
443
  const reasoningTokens = readPositiveFiniteNumber(part.tokens?.reasoning);
@@ -386,20 +449,14 @@ function mergeOpenCodeStepFinishUsage(usage, part) {
386
449
  (cacheReadTokens ?? 0) +
387
450
  (cacheWriteTokens ?? 0);
388
451
  const cost = readPositiveFiniteNumber(part.cost);
389
- if (inputTokens !== undefined) {
390
- usage.inputTokens = inputTokens;
391
- }
392
- if (cacheReadTokens !== undefined) {
393
- usage.cachedInputTokens = cacheReadTokens;
394
- }
395
- if (outputTokens !== undefined) {
396
- usage.outputTokens = outputTokens;
397
- }
452
+ assignUsageNumber(usage, "inputTokens", inputTokens);
453
+ assignUsageNumber(usage, "cachedInputTokens", cacheReadTokens);
454
+ assignUsageNumber(usage, "outputTokens", outputTokens);
398
455
  if (totalTokens > 0) {
399
456
  usage.contextWindowUsedTokens = totalTokens;
400
457
  }
401
458
  if (cost !== undefined) {
402
- usage.totalCostUsd = (usage.totalCostUsd ?? 0) + cost;
459
+ usage.totalCostUsd = options.totalCostUsd ?? (usage.totalCostUsd ?? 0) + cost;
403
460
  }
404
461
  }
405
462
  function hasNormalizedOpenCodeUsage(usage) {
@@ -467,6 +524,23 @@ function buildOpenCodePromptParts(prompt) {
467
524
  }
468
525
  return output;
469
526
  }
527
+ function buildOpenCodeUserTimelineText(prompt) {
528
+ if (typeof prompt === "string") {
529
+ return prompt;
530
+ }
531
+ return prompt
532
+ .map((part) => {
533
+ if (part.type === "text") {
534
+ return part.text;
535
+ }
536
+ if (part.type === "image") {
537
+ return "[Image]";
538
+ }
539
+ return renderPromptAttachmentAsText(part);
540
+ })
541
+ .filter((text) => text.trim().length > 0)
542
+ .join("\n");
543
+ }
470
544
  async function collectOpenCodePersistedAgentsFromSdk(client, options) {
471
545
  const limit = options?.limit ?? OPENCODE_PERSISTED_SESSION_LIMIT;
472
546
  const sessionListLimit = options?.cwd ? Math.max(limit, OPENCODE_PERSISTED_SESSION_LIMIT) : limit;
@@ -558,6 +632,17 @@ function buildOpenCodeReplayPartTimelineEvent(params) {
558
632
  if (part.type !== "tool") {
559
633
  return null;
560
634
  }
635
+ if (isOpenCodeTodoWriteToolPart(part)) {
636
+ const todos = readOpenCodeTodoItemsFromToolPart(part);
637
+ if (!todos) {
638
+ return null;
639
+ }
640
+ return buildOpenCodeReplayTimelineEvent({
641
+ item: mapOpenCodeTodosToTimelineItems(todos),
642
+ message,
643
+ part,
644
+ });
645
+ }
561
646
  const parsedToolPart = OpencodeToolPartToTimelineItemSchema.safeParse(part);
562
647
  if (!parsedToolPart.success || !parsedToolPart.data) {
563
648
  return null;
@@ -576,11 +661,21 @@ async function readOpenCodeSessionMessagesFromSdk(client, session) {
576
661
  if (response.error || !response.data) {
577
662
  return [];
578
663
  }
579
- return response.data;
664
+ return filterOpenCodeRevertedMessages(response.data, session.revert);
580
665
  }
581
666
  function buildOpenCodeSessionTimeline(messages) {
582
667
  return messages.flatMap((message) => buildOpenCodeReplayTimelineEvents(message).map((event) => event.item));
583
668
  }
669
+ function filterOpenCodeRevertedMessages(messages, revert) {
670
+ if (!revert?.messageID || revert.partID) {
671
+ return [...messages];
672
+ }
673
+ const revertIndex = messages.findIndex((message) => message.info.id === revert.messageID);
674
+ if (revertIndex < 0) {
675
+ return [...messages];
676
+ }
677
+ return messages.slice(0, revertIndex);
678
+ }
584
679
  function resolveOpenCodePersistedSessionModeId(session, messages) {
585
680
  const agent = session.agent ?? messages.map(readOpenCodeMessageAgent).find(Boolean);
586
681
  return agent ? normalizeOpenCodeModeId(agent) : undefined;
@@ -657,6 +752,7 @@ export const __openCodeInternals = {
657
752
  resolveOpenCodeModelLookupKeyFromAssistantMessage,
658
753
  resolveOpenCodeSelectedModelContextWindow,
659
754
  isSelectableOpenCodeAgent,
755
+ mapOpenCodeAgentToMode,
660
756
  get OpenCodeAgentSession() {
661
757
  return OpenCodeAgentSession;
662
758
  },
@@ -805,13 +901,9 @@ export class OpenCodeAgentClient {
805
901
  if (response.error || !response.data) {
806
902
  return DEFAULT_MODES;
807
903
  }
808
- const discovered = response.data.filter(isSelectableOpenCodeAgent).map((agent) => ({
809
- id: agent.name,
810
- label: agent.name.charAt(0).toUpperCase() + agent.name.slice(1),
811
- description: typeof agent.description === "string" && agent.description.trim().length > 0
812
- ? agent.description.trim()
813
- : DEFAULT_MODES.find((mode) => mode.id === agent.name)?.description,
814
- }));
904
+ const discovered = response.data
905
+ .filter(isSelectableOpenCodeAgent)
906
+ .map(mapOpenCodeAgentToMode);
815
907
  return mergeOpenCodeModes(discovered);
816
908
  }
817
909
  finally {
@@ -990,6 +1082,48 @@ function readOpenCodeRecord(value) {
990
1082
  function readNonEmptyString(value) {
991
1083
  return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
992
1084
  }
1085
+ function isOpenCodeTodoWriteToolPart(part) {
1086
+ return part.type === "tool" && part.tool.trim().toLowerCase() === "todowrite";
1087
+ }
1088
+ function readOpenCodeTodoItems(value) {
1089
+ if (typeof value === "string") {
1090
+ try {
1091
+ return readOpenCodeTodoItems(JSON.parse(value));
1092
+ }
1093
+ catch {
1094
+ return null;
1095
+ }
1096
+ }
1097
+ if (Array.isArray(value)) {
1098
+ return value.flatMap((entry) => {
1099
+ const record = readOpenCodeRecord(entry);
1100
+ if (!record) {
1101
+ return [];
1102
+ }
1103
+ const content = readNonEmptyString(record.content);
1104
+ if (!content) {
1105
+ return [];
1106
+ }
1107
+ return [
1108
+ {
1109
+ content,
1110
+ status: readNonEmptyString(record.status),
1111
+ },
1112
+ ];
1113
+ });
1114
+ }
1115
+ const record = readOpenCodeRecord(value);
1116
+ if (!record) {
1117
+ return null;
1118
+ }
1119
+ return readOpenCodeTodoItems(record.todos);
1120
+ }
1121
+ function readOpenCodeTodoItemsFromToolPart(part) {
1122
+ const state = readOpenCodeRecord(part.state);
1123
+ return (readOpenCodeTodoItems(state?.input) ??
1124
+ readOpenCodeTodoItems(state?.output) ??
1125
+ readOpenCodeTodoItems(state?.metadata));
1126
+ }
993
1127
  function mapOpenCodeTodosToTimelineItems(todos) {
994
1128
  return {
995
1129
  type: "todo",
@@ -1144,14 +1278,7 @@ export function translateOpenCodeEvent(event, state) {
1144
1278
  }
1145
1279
  break;
1146
1280
  case "session.error":
1147
- if (event.properties.sessionID === state.sessionId) {
1148
- resetOpenCodeTurnTrackingState(state);
1149
- events.push({
1150
- type: "turn_failed",
1151
- provider: "opencode",
1152
- error: toDiagnosticErrorMessage(event.properties.error),
1153
- });
1154
- }
1281
+ appendOpenCodeSessionError(event, state, events);
1155
1282
  break;
1156
1283
  case "session.status":
1157
1284
  appendOpenCodeSessionStatus(event, state, events);
@@ -1349,7 +1476,13 @@ function appendOpenCodeSubAgentChildToolPart(part, state, events) {
1349
1476
  });
1350
1477
  }
1351
1478
  function appendOpenCodeSessionCreatedOrUpdated(event, state, events) {
1479
+ const info = readOpenCodeRecord(event.properties.info);
1352
1480
  if (event.properties.info.id === state.sessionId) {
1481
+ const sessionCost = readPositiveFiniteNumber(info?.cost);
1482
+ if (sessionCost !== undefined) {
1483
+ state.sessionTotalCostUsd = maxFiniteNumber(state.sessionTotalCostUsd, sessionCost);
1484
+ state.accumulatedUsage.totalCostUsd = state.sessionTotalCostUsd;
1485
+ }
1353
1486
  events.push({
1354
1487
  type: "thread_started",
1355
1488
  sessionId: state.sessionId,
@@ -1357,7 +1490,6 @@ function appendOpenCodeSessionCreatedOrUpdated(event, state, events) {
1357
1490
  });
1358
1491
  return;
1359
1492
  }
1360
- const info = readOpenCodeRecord(event.properties.info);
1361
1493
  const parentSessionId = readNonEmptyString(info?.parentID) ?? readNonEmptyString(info?.parentId);
1362
1494
  if (parentSessionId === state.sessionId) {
1363
1495
  appendOpenCodeSubAgentChildSessionLinked(event.properties.info.id, state, events);
@@ -1369,6 +1501,10 @@ function appendOpenCodeMessageUpdated(event, state, events) {
1369
1501
  return;
1370
1502
  }
1371
1503
  state.messageRoles.set(info.id, info.role);
1504
+ if (info.role === "user") {
1505
+ appendOpenCodeUserMessageUpdated(info, state, events);
1506
+ return;
1507
+ }
1372
1508
  if (info.role !== "assistant") {
1373
1509
  return;
1374
1510
  }
@@ -1393,8 +1529,23 @@ function appendOpenCodeMessageUpdated(event, state, events) {
1393
1529
  item: { type: "assistant_message", text },
1394
1530
  });
1395
1531
  }
1532
+ function appendOpenCodeUserMessageUpdated(info, state, events) {
1533
+ const text = state.pendingUserMessageText;
1534
+ if (!text || text.trim().length === 0 || state.emittedUserMessageIds?.has(info.id)) {
1535
+ return;
1536
+ }
1537
+ state.emittedUserMessageIds?.add(info.id);
1538
+ events.push({
1539
+ type: "timeline",
1540
+ provider: "opencode",
1541
+ item: { type: "user_message", text, messageId: info.id },
1542
+ });
1543
+ }
1396
1544
  function appendOpenCodeMessagePartUpdated(event, state, events) {
1397
1545
  const part = event.properties.part;
1546
+ if (part.type === "tool" && isOpenCodeTodoWriteToolPart(part)) {
1547
+ return;
1548
+ }
1398
1549
  if (part.sessionID !== state.sessionId) {
1399
1550
  if (part.type === "tool") {
1400
1551
  appendOpenCodeSubAgentChildToolPart(part, state, events);
@@ -1427,7 +1578,13 @@ function appendOpenCodeMessagePartUpdated(event, state, events) {
1427
1578
  return;
1428
1579
  }
1429
1580
  if (part.type === "step-finish") {
1430
- mergeOpenCodeStepFinishUsage(state.accumulatedUsage, part);
1581
+ const stepCost = readPositiveFiniteNumber(part.cost);
1582
+ if (stepCost !== undefined) {
1583
+ state.sessionTotalCostUsd = (state.sessionTotalCostUsd ?? 0) + stepCost;
1584
+ }
1585
+ mergeOpenCodeStepFinishUsage(state.accumulatedUsage, part, {
1586
+ totalCostUsd: state.sessionTotalCostUsd,
1587
+ });
1431
1588
  if (hasNormalizedOpenCodeUsage(state.accumulatedUsage)) {
1432
1589
  events.push({
1433
1590
  type: "usage_updated",
@@ -1541,6 +1698,7 @@ function appendOpenCodePermissionAsked(event, state, events) {
1541
1698
  ...(description ? { description } : {}),
1542
1699
  input,
1543
1700
  detail,
1701
+ actions: buildOpenCodePermissionActions(),
1544
1702
  },
1545
1703
  });
1546
1704
  }
@@ -1585,6 +1743,30 @@ function appendOpenCodeQuestionAsked(event, state, events) {
1585
1743
  },
1586
1744
  });
1587
1745
  }
1746
+ function appendOpenCodeSessionError(event, state, events) {
1747
+ if (event.properties.sessionID !== state.sessionId) {
1748
+ return;
1749
+ }
1750
+ resetOpenCodeTurnTrackingState(state);
1751
+ const error = event.properties.error;
1752
+ if (typeof error === "object" &&
1753
+ error !== null &&
1754
+ "name" in error &&
1755
+ error.name === "MessageAbortedError") {
1756
+ events.push({
1757
+ type: "turn_canceled",
1758
+ provider: "opencode",
1759
+ reason: "interrupted",
1760
+ });
1761
+ }
1762
+ else {
1763
+ events.push({
1764
+ type: "turn_failed",
1765
+ provider: "opencode",
1766
+ error: toDiagnosticErrorMessage(error),
1767
+ });
1768
+ }
1769
+ }
1588
1770
  function appendOpenCodeSessionStatus(event, state, events) {
1589
1771
  if (event.properties.sessionID !== state.sessionId) {
1590
1772
  return;
@@ -1637,6 +1819,19 @@ function unwrapOpenCodeGlobalEvent(event) {
1637
1819
  }
1638
1820
  return null;
1639
1821
  }
1822
+ function isOpenCodeUserMessageEvent(event, sessionId) {
1823
+ return (event.type === "message.updated" &&
1824
+ event.properties.info.sessionID === sessionId &&
1825
+ event.properties.info.role === "user");
1826
+ }
1827
+ function isOpenCodeTerminalEvent(event, sessionId) {
1828
+ if (event.type === "session.idle" || event.type === "session.error") {
1829
+ return event.properties.sessionID === sessionId;
1830
+ }
1831
+ return (event.type === "session.status" &&
1832
+ event.properties.sessionID === sessionId &&
1833
+ event.properties.status.type === "idle");
1834
+ }
1640
1835
  class OpenCodeAgentSession {
1641
1836
  constructor(config, client, sessionId, logger, modelContextWindowsByModelKey = new Map(), releaseServer, persistSession = true, agentId) {
1642
1837
  this.agentId = agentId;
@@ -1651,6 +1846,8 @@ class OpenCodeAgentSession {
1651
1846
  this.mcpSetupPromise = null;
1652
1847
  /** Tracks the role of each message by ID to distinguish user from assistant messages */
1653
1848
  this.messageRoles = new Map();
1849
+ this.pendingUserMessageText = null;
1850
+ this.emittedUserMessageIds = new Set();
1654
1851
  /** Tracks streamed textual part IDs to suppress final full-text echoes from OpenCode. */
1655
1852
  this.streamedPartKeys = new Set();
1656
1853
  /** Tracks assistant messages already emitted from structured payloads. */
@@ -1667,6 +1864,7 @@ class OpenCodeAgentSession {
1667
1864
  this.pendingChildToolPartsBySessionId = new Map();
1668
1865
  this.eventStreamAbortController = null;
1669
1866
  this.eventStreamReady = null;
1867
+ this.suppressTerminalUntilNextUserMessage = false;
1670
1868
  this.closed = false;
1671
1869
  this.deletedFromProvider = false;
1672
1870
  this.config = config;
@@ -1726,9 +1924,18 @@ class OpenCodeAgentSession {
1726
1924
  this.logger.warn({ err: error, sessionId: this.sessionId, turnId }, "OpenCode session.abort exceeded the cancel cap; proceeding with local cancel");
1727
1925
  });
1728
1926
  if (turnId) {
1927
+ this.suppressTerminalUntilNextUserMessage = true;
1729
1928
  this.finishForegroundTurn({ type: "turn_canceled", provider: "opencode", reason: "interrupted" }, turnId);
1730
1929
  }
1731
1930
  }
1931
+ async revertBoth(input) {
1932
+ await revertOpenCodeConversationAndFiles({
1933
+ client: this.client,
1934
+ sessionId: this.sessionId,
1935
+ cwd: this.config.cwd,
1936
+ messageId: input.messageId,
1937
+ });
1938
+ }
1732
1939
  beginSessionAbort(turnId, reason) {
1733
1940
  const abortPromise = this.client.session
1734
1941
  .abort({
@@ -1771,6 +1978,7 @@ class OpenCodeAgentSession {
1771
1978
  const contextWindowMaxTokens = this.resolveSelectedModelContextWindowMaxTokens();
1772
1979
  this.accumulatedUsage = contextWindowMaxTokens !== undefined ? { contextWindowMaxTokens } : {};
1773
1980
  const parts = buildOpenCodePromptParts(prompt);
1981
+ this.pendingUserMessageText = buildOpenCodeUserTimelineText(prompt);
1774
1982
  const model = this.parseModel(this.config.model);
1775
1983
  const thinkingOptionId = this.config.thinkingOptionId;
1776
1984
  const effectiveVariant = thinkingOptionId ?? undefined;
@@ -2033,6 +2241,19 @@ class OpenCodeAgentSession {
2033
2241
  });
2034
2242
  return;
2035
2243
  }
2244
+ if (this.suppressTerminalUntilNextUserMessage) {
2245
+ if (isOpenCodeUserMessageEvent(event, this.sessionId)) {
2246
+ this.suppressTerminalUntilNextUserMessage = false;
2247
+ }
2248
+ else if (isOpenCodeTerminalEvent(event, this.sessionId)) {
2249
+ this.traceOpenCode("provider.opencode.event.skip", {
2250
+ n: eventCount,
2251
+ reason: "stale_interrupt_terminal",
2252
+ type: event.type,
2253
+ });
2254
+ return;
2255
+ }
2256
+ }
2036
2257
  const translated = await this.translateEvent(event);
2037
2258
  this.traceOpenCode("provider.opencode.parsed_event", {
2038
2259
  turnId,
@@ -2078,6 +2299,7 @@ class OpenCodeAgentSession {
2078
2299
  else {
2079
2300
  this.runningToolCalls.clear();
2080
2301
  }
2302
+ this.pendingUserMessageText = null;
2081
2303
  this.activeForegroundTurnId = null;
2082
2304
  this.abortController = null;
2083
2305
  this.notifySubscribers(event, turnId);
@@ -2144,6 +2366,10 @@ class OpenCodeAgentSession {
2144
2366
  }, msg);
2145
2367
  }
2146
2368
  async *streamHistory() {
2369
+ const sessionResponse = await this.client.session.get({
2370
+ sessionID: this.sessionId,
2371
+ directory: this.config.cwd,
2372
+ });
2147
2373
  const response = await this.client.session.messages({
2148
2374
  sessionID: this.sessionId,
2149
2375
  directory: this.config.cwd,
@@ -2151,7 +2377,8 @@ class OpenCodeAgentSession {
2151
2377
  if (response.error || !response.data) {
2152
2378
  return;
2153
2379
  }
2154
- for (const message of response.data) {
2380
+ const messages = filterOpenCodeRevertedMessages(response.data, sessionResponse.error ? null : sessionResponse.data?.revert);
2381
+ for (const message of messages) {
2155
2382
  for (const event of buildOpenCodeReplayTimelineEvents(message)) {
2156
2383
  yield event;
2157
2384
  }
@@ -2165,13 +2392,7 @@ class OpenCodeAgentSession {
2165
2392
  directory: this.config.cwd,
2166
2393
  });
2167
2394
  const agents = response.error || !response.data ? [] : response.data;
2168
- const discoveredModes = agents.filter(isSelectableOpenCodeAgent).map((agent) => ({
2169
- id: agent.name,
2170
- label: agent.name.charAt(0).toUpperCase() + agent.name.slice(1),
2171
- description: typeof agent.description === "string" && agent.description.trim().length > 0
2172
- ? agent.description.trim()
2173
- : DEFAULT_MODES.find((mode) => mode.id === agent.name)?.description,
2174
- }));
2395
+ const discoveredModes = agents.filter(isSelectableOpenCodeAgent).map(mapOpenCodeAgentToMode);
2175
2396
  this.availableModesCache = mergeOpenCodeModes(discoveredModes);
2176
2397
  return this.availableModesCache;
2177
2398
  }
@@ -2222,7 +2443,7 @@ class OpenCodeAgentSession {
2222
2443
  this.pendingPermissions.delete(requestId);
2223
2444
  return;
2224
2445
  }
2225
- const reply = response.behavior === "allow" ? "once" : "reject";
2446
+ const reply = resolveOpenCodePermissionReply(response);
2226
2447
  await this.client.permission.reply({
2227
2448
  requestID: requestId,
2228
2449
  directory: this.config.cwd,
@@ -2375,7 +2596,10 @@ class OpenCodeAgentSession {
2375
2596
  sessionId: this.sessionId,
2376
2597
  cwd: this.config.cwd,
2377
2598
  messageRoles: this.messageRoles,
2599
+ pendingUserMessageText: this.pendingUserMessageText,
2600
+ emittedUserMessageIds: this.emittedUserMessageIds,
2378
2601
  accumulatedUsage: this.accumulatedUsage,
2602
+ sessionTotalCostUsd: this.sessionTotalCostUsd,
2379
2603
  streamedPartKeys: this.streamedPartKeys,
2380
2604
  emittedStructuredMessageIds: this.emittedStructuredMessageIds,
2381
2605
  partTypes: this.partTypes,
@@ -2391,6 +2615,9 @@ class OpenCodeAgentSession {
2391
2615
  },
2392
2616
  });
2393
2617
  const events = [];
2618
+ if (typeof this.accumulatedUsage.totalCostUsd === "number") {
2619
+ this.sessionTotalCostUsd = maxFiniteNumber(this.sessionTotalCostUsd, this.accumulatedUsage.totalCostUsd);
2620
+ }
2394
2621
  for (const translatedEvent of translated) {
2395
2622
  if (translatedEvent.type === "permission_requested") {
2396
2623
  const autoApproved = await this.tryAutoApproveToolPermission(translatedEvent.request);