@getpaseo/server 0.1.2 → 0.1.4

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 (175) hide show
  1. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts +8 -0
  2. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -0
  3. package/dist/server/client/daemon-client-relay-e2ee-transport.js +161 -0
  4. package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -0
  5. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts +43 -0
  6. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -0
  7. package/dist/server/client/daemon-client-terminal-stream-manager.js +130 -0
  8. package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -0
  9. package/dist/server/client/daemon-client-transport-types.d.ts +34 -0
  10. package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -0
  11. package/dist/server/client/daemon-client-transport-types.js +2 -0
  12. package/dist/server/client/daemon-client-transport-types.js.map +1 -0
  13. package/dist/server/client/daemon-client-transport-utils.d.ts +9 -0
  14. package/dist/server/client/daemon-client-transport-utils.d.ts.map +1 -0
  15. package/dist/server/client/daemon-client-transport-utils.js +121 -0
  16. package/dist/server/client/daemon-client-transport-utils.js.map +1 -0
  17. package/dist/server/client/daemon-client-transport.d.ts +5 -0
  18. package/dist/server/client/daemon-client-transport.d.ts.map +1 -0
  19. package/dist/server/client/daemon-client-transport.js +4 -0
  20. package/dist/server/client/daemon-client-transport.js.map +1 -0
  21. package/dist/server/client/daemon-client-websocket-transport.d.ts +7 -0
  22. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -0
  23. package/dist/server/client/daemon-client-websocket-transport.js +64 -0
  24. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -0
  25. package/dist/server/client/daemon-client.d.ts +54 -36
  26. package/dist/server/client/daemon-client.d.ts.map +1 -1
  27. package/dist/server/client/daemon-client.js +497 -800
  28. package/dist/server/client/daemon-client.js.map +1 -1
  29. package/dist/server/server/agent/agent-manager.d.ts +52 -0
  30. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  31. package/dist/server/server/agent/agent-manager.js +238 -10
  32. package/dist/server/server/agent/agent-manager.js.map +1 -1
  33. package/dist/server/server/agent/agent-storage.d.ts +4 -4
  34. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts.map +1 -1
  35. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +62 -12
  36. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -1
  37. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +4 -4
  38. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
  39. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +213 -50
  40. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  41. package/dist/server/server/agent/providers/claude-agent.d.ts +7 -0
  42. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  43. package/dist/server/server/agent/providers/claude-agent.js +100 -19
  44. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  45. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +0 -1
  46. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts.map +1 -1
  47. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +67 -30
  48. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js.map +1 -1
  49. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +1 -1
  50. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  51. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +293 -266
  52. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  53. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +1 -1
  54. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  55. package/dist/server/server/agent/providers/codex-app-server-agent.js +49 -14
  56. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  57. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -1
  58. package/dist/server/server/agent/providers/codex-rollout-timeline.js +5 -4
  59. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -1
  60. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  61. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +8 -2
  62. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  63. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +1 -1
  64. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -1
  65. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +121 -45
  66. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
  67. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  68. package/dist/server/server/agent/providers/opencode-agent.js +87 -35
  69. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  70. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +2 -2
  71. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  72. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +23 -6
  73. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  74. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +0 -1
  75. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -1
  76. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +0 -10
  77. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
  78. package/dist/server/server/agent/stt-manager.d.ts +3 -2
  79. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  80. package/dist/server/server/agent/stt-manager.js +5 -3
  81. package/dist/server/server/agent/stt-manager.js.map +1 -1
  82. package/dist/server/server/agent/timeline-projection.d.ts +19 -0
  83. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -0
  84. package/dist/server/server/agent/timeline-projection.js +142 -0
  85. package/dist/server/server/agent/timeline-projection.js.map +1 -0
  86. package/dist/server/server/agent/tts-manager.d.ts +3 -2
  87. package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
  88. package/dist/server/server/agent/tts-manager.js +5 -17
  89. package/dist/server/server/agent/tts-manager.js.map +1 -1
  90. package/dist/server/server/agent-attention-policy.d.ts +20 -0
  91. package/dist/server/server/agent-attention-policy.d.ts.map +1 -0
  92. package/dist/server/server/agent-attention-policy.js +40 -0
  93. package/dist/server/server/agent-attention-policy.js.map +1 -0
  94. package/dist/server/server/bootstrap.d.ts.map +1 -1
  95. package/dist/server/server/bootstrap.js +13 -20
  96. package/dist/server/server/bootstrap.js.map +1 -1
  97. package/dist/server/server/dictation/dictation-stream-manager.d.ts +10 -2
  98. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  99. package/dist/server/server/dictation/dictation-stream-manager.js +83 -27
  100. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  101. package/dist/server/server/exports.d.ts +2 -1
  102. package/dist/server/server/exports.d.ts.map +1 -1
  103. package/dist/server/server/exports.js +1 -0
  104. package/dist/server/server/exports.js.map +1 -1
  105. package/dist/server/server/persisted-config.d.ts +36 -22
  106. package/dist/server/server/persisted-config.d.ts.map +1 -1
  107. package/dist/server/server/persisted-config.js +2 -0
  108. package/dist/server/server/persisted-config.js.map +1 -1
  109. package/dist/server/server/relay-transport.d.ts +3 -2
  110. package/dist/server/server/relay-transport.d.ts.map +1 -1
  111. package/dist/server/server/relay-transport.js +99 -16
  112. package/dist/server/server/relay-transport.js.map +1 -1
  113. package/dist/server/server/session.d.ts +34 -16
  114. package/dist/server/server/session.d.ts.map +1 -1
  115. package/dist/server/server/session.js +619 -328
  116. package/dist/server/server/session.js.map +1 -1
  117. package/dist/server/server/speech/provider-resolver.d.ts +3 -0
  118. package/dist/server/server/speech/provider-resolver.d.ts.map +1 -0
  119. package/dist/server/server/speech/provider-resolver.js +7 -0
  120. package/dist/server/server/speech/provider-resolver.js.map +1 -0
  121. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
  122. package/dist/server/server/speech/providers/local/config.js +11 -8
  123. package/dist/server/server/speech/providers/local/config.js.map +1 -1
  124. package/dist/server/server/speech/providers/local/runtime.d.ts +1 -0
  125. package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
  126. package/dist/server/server/speech/providers/local/runtime.js +13 -9
  127. package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
  128. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
  129. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +73 -54
  130. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  131. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -1
  132. package/dist/server/server/speech/providers/openai/config.js +10 -5
  133. package/dist/server/server/speech/providers/openai/config.js.map +1 -1
  134. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
  135. package/dist/server/server/speech/providers/openai/runtime.js +17 -6
  136. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
  137. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
  138. package/dist/server/server/speech/speech-config-resolver.js +25 -4
  139. package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
  140. package/dist/server/server/speech/speech-runtime.d.ts +26 -3
  141. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
  142. package/dist/server/server/speech/speech-runtime.js +468 -85
  143. package/dist/server/server/speech/speech-runtime.js.map +1 -1
  144. package/dist/server/server/speech/speech-types.d.ts +3 -0
  145. package/dist/server/server/speech/speech-types.d.ts.map +1 -1
  146. package/dist/server/server/speech/speech-types.js +1 -0
  147. package/dist/server/server/speech/speech-types.js.map +1 -1
  148. package/dist/server/server/websocket-server.d.ts +23 -7
  149. package/dist/server/server/websocket-server.d.ts.map +1 -1
  150. package/dist/server/server/websocket-server.js +288 -102
  151. package/dist/server/server/websocket-server.js.map +1 -1
  152. package/dist/server/shared/binary-mux.d.ts +31 -0
  153. package/dist/server/shared/binary-mux.d.ts.map +1 -0
  154. package/dist/server/shared/binary-mux.js +101 -0
  155. package/dist/server/shared/binary-mux.js.map +1 -0
  156. package/dist/server/shared/messages.d.ts +5206 -4814
  157. package/dist/server/shared/messages.d.ts.map +1 -1
  158. package/dist/server/shared/messages.js +225 -58
  159. package/dist/server/shared/messages.js.map +1 -1
  160. package/dist/server/shared/terminal-key-input.d.ts +9 -0
  161. package/dist/server/shared/terminal-key-input.d.ts.map +1 -0
  162. package/dist/server/shared/terminal-key-input.js +132 -0
  163. package/dist/server/shared/terminal-key-input.js.map +1 -0
  164. package/dist/server/terminal/terminal.d.ts +17 -0
  165. package/dist/server/terminal/terminal.d.ts.map +1 -1
  166. package/dist/server/terminal/terminal.js +89 -0
  167. package/dist/server/terminal/terminal.js.map +1 -1
  168. package/dist/server/utils/checkout-git.d.ts +9 -1
  169. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  170. package/dist/server/utils/checkout-git.js +314 -75
  171. package/dist/server/utils/checkout-git.js.map +1 -1
  172. package/dist/server/utils/worktree.d.ts.map +1 -1
  173. package/dist/server/utils/worktree.js +33 -4
  174. package/dist/server/utils/worktree.js.map +1 -1
  175. package/package.json +2 -2
@@ -358,6 +358,13 @@ export const ArchiveAgentRequestMessageSchema = z.object({
358
358
  agentId: z.string(),
359
359
  requestId: z.string(),
360
360
  });
361
+ export const UpdateAgentRequestMessageSchema = z.object({
362
+ type: z.literal("update_agent_request"),
363
+ agentId: z.string(),
364
+ name: z.string().optional(),
365
+ labels: z.record(z.string()).optional(),
366
+ requestId: z.string(),
367
+ });
361
368
  export const SetVoiceModeMessageSchema = z.object({
362
369
  type: z.literal("set_voice_mode"),
363
370
  enabled: z.boolean(),
@@ -458,6 +465,7 @@ export const CreateAgentRequestMessageSchema = z.object({
458
465
  config: AgentSessionConfigSchema,
459
466
  worktreeName: z.string().optional(),
460
467
  initialPrompt: z.string().optional(),
468
+ outputSchema: z.record(z.unknown()).optional(),
461
469
  images: z.array(z.object({
462
470
  data: z.string(), // base64 encoded image
463
471
  mimeType: z.string(), // e.g., "image/jpeg", "image/png"
@@ -472,6 +480,10 @@ export const ListProviderModelsRequestMessageSchema = z.object({
472
480
  cwd: z.string().optional(),
473
481
  requestId: z.string(),
474
482
  });
483
+ export const ListAvailableProvidersRequestMessageSchema = z.object({
484
+ type: z.literal("list_available_providers_request"),
485
+ requestId: z.string(),
486
+ });
475
487
  export const SpeechModelsListRequestSchema = z.object({
476
488
  type: z.literal("speech_models_list_request"),
477
489
  requestId: z.string(),
@@ -501,21 +513,20 @@ export const RestartServerRequestMessageSchema = z.object({
501
513
  reason: z.string().optional(),
502
514
  requestId: z.string(),
503
515
  });
504
- export const InitializeAgentRequestMessageSchema = z.object({
505
- type: z.literal("initialize_agent_request"),
516
+ export const AgentTimelineCursorSchema = z.object({
517
+ epoch: z.string(),
518
+ seq: z.number().int().nonnegative(),
519
+ });
520
+ export const FetchAgentTimelineRequestMessageSchema = z.object({
521
+ type: z.literal("fetch_agent_timeline_request"),
506
522
  agentId: z.string(),
507
523
  requestId: z.string(),
508
- });
509
- export const InitializeAgentResponseMessageSchema = z.object({
510
- // Response shares the same type literal as the request for simple requestId matching
511
- type: z.literal("initialize_agent_request"),
512
- payload: z.object({
513
- agentId: z.string(),
514
- agentStatus: z.string().optional(),
515
- timelineSize: z.number().optional(),
516
- requestId: z.string(),
517
- error: z.string().optional(),
518
- }),
524
+ direction: z.enum(["tail", "before", "after"]).optional(),
525
+ cursor: AgentTimelineCursorSchema.optional(),
526
+ // 0 means "all matching rows for this query window".
527
+ limit: z.number().int().nonnegative().optional(),
528
+ // Default should be projected for app timeline loading.
529
+ projection: z.enum(["projected", "canonical"]).optional(),
519
530
  });
520
531
  export const SetAgentModeRequestMessageSchema = z.object({
521
532
  type: z.literal("set_agent_mode_request"),
@@ -562,6 +573,15 @@ export const SetAgentThinkingResponseMessageSchema = z.object({
562
573
  error: z.string().nullable(),
563
574
  }),
564
575
  });
576
+ export const UpdateAgentResponseMessageSchema = z.object({
577
+ type: z.literal("update_agent_response"),
578
+ payload: z.object({
579
+ requestId: z.string(),
580
+ agentId: z.string(),
581
+ accepted: z.boolean(),
582
+ error: z.string().nullable(),
583
+ }),
584
+ });
565
585
  export const SetVoiceModeResponseMessageSchema = z.object({
566
586
  type: z.literal("set_voice_mode_response"),
567
587
  payload: z.object({
@@ -570,6 +590,9 @@ export const SetVoiceModeResponseMessageSchema = z.object({
570
590
  agentId: z.string().nullable(),
571
591
  accepted: z.boolean(),
572
592
  error: z.string().nullable(),
593
+ reasonCode: z.string().optional(),
594
+ retryable: z.boolean().optional(),
595
+ missingModelIds: z.array(z.string()).optional(),
573
596
  }),
574
597
  });
575
598
  export const AgentPermissionResponseMessageSchema = z.object({
@@ -578,11 +601,6 @@ export const AgentPermissionResponseMessageSchema = z.object({
578
601
  requestId: z.string(),
579
602
  response: AgentPermissionResponseSchema,
580
603
  });
581
- export const GitDiffRequestSchema = z.object({
582
- type: z.literal("git_diff_request"),
583
- agentId: z.string(),
584
- requestId: z.string(),
585
- });
586
604
  const CheckoutErrorCodeSchema = z.enum([
587
605
  "NOT_GIT_REPO",
588
606
  "NOT_ALLOWED",
@@ -659,6 +677,13 @@ export const ValidateBranchRequestSchema = z.object({
659
677
  branchName: z.string(),
660
678
  requestId: z.string(),
661
679
  });
680
+ export const BranchSuggestionsRequestSchema = z.object({
681
+ type: z.literal("branch_suggestions_request"),
682
+ cwd: z.string(),
683
+ query: z.string().optional(),
684
+ limit: z.number().int().min(1).max(200).optional(),
685
+ requestId: z.string(),
686
+ });
662
687
  export const PaseoWorktreeListRequestSchema = z.object({
663
688
  type: z.literal("paseo_worktree_list_request"),
664
689
  cwd: z.string().optional(),
@@ -699,11 +724,6 @@ const ParsedDiffFileSchema = z.object({
699
724
  hunks: z.array(DiffHunkSchema),
700
725
  status: z.enum(["ok", "too_large", "binary"]).optional(),
701
726
  });
702
- export const HighlightedDiffRequestSchema = z.object({
703
- type: z.literal("highlighted_diff_request"),
704
- agentId: z.string(),
705
- requestId: z.string(),
706
- });
707
727
  const FileExplorerEntrySchema = z.object({
708
728
  name: z.string(),
709
729
  path: z.string(),
@@ -819,6 +839,19 @@ export const KillTerminalRequestSchema = z.object({
819
839
  terminalId: z.string(),
820
840
  requestId: z.string(),
821
841
  });
842
+ export const AttachTerminalStreamRequestSchema = z.object({
843
+ type: z.literal("attach_terminal_stream_request"),
844
+ terminalId: z.string(),
845
+ resumeOffset: z.number().int().nonnegative().optional(),
846
+ rows: z.number().int().positive().optional(),
847
+ cols: z.number().int().positive().optional(),
848
+ requestId: z.string(),
849
+ });
850
+ export const DetachTerminalStreamRequestSchema = z.object({
851
+ type: z.literal("detach_terminal_stream_request"),
852
+ streamId: z.number().int().nonnegative(),
853
+ requestId: z.string(),
854
+ });
822
855
  export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
823
856
  VoiceAudioChunkMessageSchema,
824
857
  AbortRequestMessageSchema,
@@ -830,6 +863,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
830
863
  UnsubscribeAgentUpdatesMessageSchema,
831
864
  DeleteAgentRequestMessageSchema,
832
865
  ArchiveAgentRequestMessageSchema,
866
+ UpdateAgentRequestMessageSchema,
833
867
  SetVoiceModeMessageSchema,
834
868
  SendAgentMessageRequestSchema,
835
869
  WaitForFinishRequestSchema,
@@ -839,18 +873,18 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
839
873
  DictationStreamCancelMessageSchema,
840
874
  CreateAgentRequestMessageSchema,
841
875
  ListProviderModelsRequestMessageSchema,
876
+ ListAvailableProvidersRequestMessageSchema,
842
877
  SpeechModelsListRequestSchema,
843
878
  SpeechModelsDownloadRequestSchema,
844
879
  ResumeAgentRequestMessageSchema,
845
880
  RefreshAgentRequestMessageSchema,
846
881
  CancelAgentRequestMessageSchema,
847
882
  RestartServerRequestMessageSchema,
848
- InitializeAgentRequestMessageSchema,
883
+ FetchAgentTimelineRequestMessageSchema,
849
884
  SetAgentModeRequestMessageSchema,
850
885
  SetAgentModelRequestMessageSchema,
851
886
  SetAgentThinkingRequestMessageSchema,
852
887
  AgentPermissionResponseMessageSchema,
853
- GitDiffRequestSchema,
854
888
  CheckoutStatusRequestSchema,
855
889
  SubscribeCheckoutDiffRequestSchema,
856
890
  UnsubscribeCheckoutDiffRequestSchema,
@@ -861,9 +895,9 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
861
895
  CheckoutPrCreateRequestSchema,
862
896
  CheckoutPrStatusRequestSchema,
863
897
  ValidateBranchRequestSchema,
898
+ BranchSuggestionsRequestSchema,
864
899
  PaseoWorktreeListRequestSchema,
865
900
  PaseoWorktreeArchiveRequestSchema,
866
- HighlightedDiffRequestSchema,
867
901
  FileExplorerRequestSchema,
868
902
  ProjectIconRequestSchema,
869
903
  FileDownloadTokenRequestSchema,
@@ -879,6 +913,8 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
879
913
  UnsubscribeTerminalRequestSchema,
880
914
  TerminalInputSchema,
881
915
  KillTerminalRequestSchema,
916
+ AttachTerminalStreamRequestSchema,
917
+ DetachTerminalStreamRequestSchema,
882
918
  ]);
883
919
  // ============================================================================
884
920
  // Session Outbound Messages (Session emits these)
@@ -940,6 +976,13 @@ export const DictationStreamAckMessageSchema = z.object({
940
976
  ackSeq: z.number().int(),
941
977
  }),
942
978
  });
979
+ export const DictationStreamFinishAcceptedMessageSchema = z.object({
980
+ type: z.literal("dictation_stream_finish_accepted"),
981
+ payload: z.object({
982
+ dictationId: z.string(),
983
+ timeoutMs: z.number().int().positive(),
984
+ }),
985
+ });
943
986
  export const DictationStreamPartialMessageSchema = z.object({
944
987
  type: z.literal("dictation_stream_partial"),
945
988
  payload: z.object({
@@ -961,9 +1004,58 @@ export const DictationStreamErrorMessageSchema = z.object({
961
1004
  dictationId: z.string(),
962
1005
  error: z.string(),
963
1006
  retryable: z.boolean(),
1007
+ reasonCode: z.string().optional(),
1008
+ missingModelIds: z.array(z.string()).optional(),
964
1009
  debugRecordingPath: z.string().optional(),
965
1010
  }),
966
1011
  });
1012
+ export const ServerCapabilityStateSchema = z.object({
1013
+ enabled: z.boolean(),
1014
+ reason: z.string(),
1015
+ });
1016
+ export const ServerVoiceCapabilitiesSchema = z.object({
1017
+ dictation: ServerCapabilityStateSchema,
1018
+ voice: ServerCapabilityStateSchema,
1019
+ });
1020
+ export const ServerCapabilitiesSchema = z
1021
+ .object({
1022
+ voice: ServerVoiceCapabilitiesSchema.optional(),
1023
+ })
1024
+ .passthrough();
1025
+ const ServerInfoHostnameSchema = z
1026
+ .unknown()
1027
+ .transform((value) => {
1028
+ if (typeof value !== "string") {
1029
+ return null;
1030
+ }
1031
+ const trimmed = value.trim();
1032
+ return trimmed.length > 0 ? trimmed : null;
1033
+ });
1034
+ const ServerCapabilitiesFromUnknownSchema = z
1035
+ .unknown()
1036
+ .optional()
1037
+ .transform((value) => {
1038
+ if (value === undefined) {
1039
+ return undefined;
1040
+ }
1041
+ const parsed = ServerCapabilitiesSchema.safeParse(value);
1042
+ if (!parsed.success) {
1043
+ return undefined;
1044
+ }
1045
+ return parsed.data;
1046
+ });
1047
+ export const ServerInfoStatusPayloadSchema = z
1048
+ .object({
1049
+ status: z.literal("server_info"),
1050
+ serverId: z.string().trim().min(1),
1051
+ hostname: ServerInfoHostnameSchema.optional(),
1052
+ capabilities: ServerCapabilitiesFromUnknownSchema,
1053
+ })
1054
+ .passthrough()
1055
+ .transform((payload) => ({
1056
+ ...payload,
1057
+ hostname: payload.hostname ?? null,
1058
+ }));
967
1059
  export const StatusMessageSchema = z.object({
968
1060
  type: z.literal("status"),
969
1061
  payload: z
@@ -1096,16 +1188,9 @@ export const AgentStreamMessageSchema = z.object({
1096
1188
  agentId: z.string(),
1097
1189
  event: AgentStreamEventPayloadSchema,
1098
1190
  timestamp: z.string(),
1099
- }),
1100
- });
1101
- export const AgentStreamSnapshotMessageSchema = z.object({
1102
- type: z.literal("agent_stream_snapshot"),
1103
- payload: z.object({
1104
- agentId: z.string(),
1105
- events: z.array(z.object({
1106
- event: AgentStreamEventPayloadSchema,
1107
- timestamp: z.string(),
1108
- })),
1191
+ // Present for timeline events. Maps 1:1 to canonical in-memory timeline rows.
1192
+ seq: z.number().int().nonnegative().optional(),
1193
+ epoch: z.string().optional(),
1109
1194
  }),
1110
1195
  });
1111
1196
  export const AgentStatusMessageSchema = z.object({
@@ -1153,6 +1238,43 @@ export const FetchAgentResponseMessageSchema = z.object({
1153
1238
  error: z.string().nullable(),
1154
1239
  }),
1155
1240
  });
1241
+ const AgentTimelineSeqRangeSchema = z.object({
1242
+ startSeq: z.number().int().nonnegative(),
1243
+ endSeq: z.number().int().nonnegative(),
1244
+ });
1245
+ export const AgentTimelineEntryPayloadSchema = z.object({
1246
+ provider: AgentProviderSchema,
1247
+ item: AgentTimelineItemPayloadSchema,
1248
+ timestamp: z.string(),
1249
+ seqStart: z.number().int().nonnegative(),
1250
+ seqEnd: z.number().int().nonnegative(),
1251
+ sourceSeqRanges: z.array(AgentTimelineSeqRangeSchema),
1252
+ collapsed: z.array(z.enum(["assistant_merge", "tool_lifecycle"])),
1253
+ });
1254
+ export const FetchAgentTimelineResponseMessageSchema = z.object({
1255
+ type: z.literal("fetch_agent_timeline_response"),
1256
+ payload: z.object({
1257
+ requestId: z.string(),
1258
+ agentId: z.string(),
1259
+ direction: z.enum(["tail", "before", "after"]),
1260
+ projection: z.enum(["projected", "canonical"]),
1261
+ epoch: z.string(),
1262
+ reset: z.boolean(),
1263
+ staleCursor: z.boolean(),
1264
+ gap: z.boolean(),
1265
+ window: z.object({
1266
+ minSeq: z.number().int().nonnegative(),
1267
+ maxSeq: z.number().int().nonnegative(),
1268
+ nextSeq: z.number().int().nonnegative(),
1269
+ }),
1270
+ startCursor: AgentTimelineCursorSchema.nullable(),
1271
+ endCursor: AgentTimelineCursorSchema.nullable(),
1272
+ hasOlder: z.boolean(),
1273
+ hasNewer: z.boolean(),
1274
+ entries: z.array(AgentTimelineEntryPayloadSchema),
1275
+ error: z.string().nullable(),
1276
+ }),
1277
+ });
1156
1278
  export const SendAgentMessageResponseMessageSchema = z.object({
1157
1279
  type: z.literal("send_agent_message_response"),
1158
1280
  payload: z.object({
@@ -1169,6 +1291,7 @@ export const WaitForFinishResponseMessageSchema = z.object({
1169
1291
  status: z.enum(["idle", "error", "permission", "timeout"]),
1170
1292
  final: AgentSnapshotPayloadSchema.nullable(),
1171
1293
  error: z.string().nullable(),
1294
+ lastMessage: z.string().nullable(),
1172
1295
  }),
1173
1296
  });
1174
1297
  export const AgentPermissionRequestMessageSchema = z.object({
@@ -1201,15 +1324,6 @@ export const AgentArchivedMessageSchema = z.object({
1201
1324
  requestId: z.string(),
1202
1325
  }),
1203
1326
  });
1204
- export const GitDiffResponseSchema = z.object({
1205
- type: z.literal("git_diff_response"),
1206
- payload: z.object({
1207
- agentId: z.string(),
1208
- diff: z.string(),
1209
- error: z.string().nullable(),
1210
- requestId: z.string(),
1211
- }),
1212
- });
1213
1327
  const AheadBehindSchema = z.object({
1214
1328
  ahead: z.number(),
1215
1329
  behind: z.number(),
@@ -1338,6 +1452,7 @@ export const CheckoutPrStatusResponseSchema = z.object({
1338
1452
  payload: z.object({
1339
1453
  cwd: z.string(),
1340
1454
  status: CheckoutPrStatusSchema.nullable(),
1455
+ githubFeaturesEnabled: z.boolean(),
1341
1456
  error: CheckoutErrorSchema.nullable(),
1342
1457
  requestId: z.string(),
1343
1458
  }),
@@ -1352,6 +1467,14 @@ export const ValidateBranchResponseSchema = z.object({
1352
1467
  requestId: z.string(),
1353
1468
  }),
1354
1469
  });
1470
+ export const BranchSuggestionsResponseSchema = z.object({
1471
+ type: z.literal("branch_suggestions_response"),
1472
+ payload: z.object({
1473
+ branches: z.array(z.string()),
1474
+ error: z.string().nullable(),
1475
+ requestId: z.string(),
1476
+ }),
1477
+ });
1355
1478
  const PaseoWorktreeSchema = z.object({
1356
1479
  worktreePath: z.string(),
1357
1480
  branchName: z.string().nullable().optional(),
@@ -1374,15 +1497,6 @@ export const PaseoWorktreeArchiveResponseSchema = z.object({
1374
1497
  requestId: z.string(),
1375
1498
  }),
1376
1499
  });
1377
- export const HighlightedDiffResponseSchema = z.object({
1378
- type: z.literal("highlighted_diff_response"),
1379
- payload: z.object({
1380
- agentId: z.string(),
1381
- files: z.array(ParsedDiffFileSchema),
1382
- error: z.string().nullable(),
1383
- requestId: z.string(),
1384
- }),
1385
- });
1386
1500
  export const FileExplorerResponseSchema = z.object({
1387
1501
  type: z.literal("file_explorer_response"),
1388
1502
  payload: z.object({
@@ -1431,6 +1545,20 @@ export const ListProviderModelsResponseMessageSchema = z.object({
1431
1545
  requestId: z.string(),
1432
1546
  }),
1433
1547
  });
1548
+ const ProviderAvailabilitySchema = z.object({
1549
+ provider: AgentProviderSchema,
1550
+ available: z.boolean(),
1551
+ error: z.string().nullable().optional(),
1552
+ });
1553
+ export const ListAvailableProvidersResponseSchema = z.object({
1554
+ type: z.literal("list_available_providers_response"),
1555
+ payload: z.object({
1556
+ providers: z.array(ProviderAvailabilitySchema),
1557
+ error: z.string().nullable().optional(),
1558
+ fetchedAt: z.string(),
1559
+ requestId: z.string(),
1560
+ }),
1561
+ });
1434
1562
  export const SpeechModelsListResponseSchema = z.object({
1435
1563
  type: z.literal("speech_models_list_response"),
1436
1564
  payload: z.object({
@@ -1548,38 +1676,66 @@ export const KillTerminalResponseSchema = z.object({
1548
1676
  requestId: z.string(),
1549
1677
  }),
1550
1678
  });
1679
+ export const AttachTerminalStreamResponseSchema = z.object({
1680
+ type: z.literal("attach_terminal_stream_response"),
1681
+ payload: z.object({
1682
+ terminalId: z.string(),
1683
+ streamId: z.number().int().nonnegative().nullable(),
1684
+ replayedFrom: z.number().int().nonnegative(),
1685
+ currentOffset: z.number().int().nonnegative(),
1686
+ earliestAvailableOffset: z.number().int().nonnegative(),
1687
+ reset: z.boolean(),
1688
+ error: z.string().nullable(),
1689
+ requestId: z.string(),
1690
+ }),
1691
+ });
1692
+ export const DetachTerminalStreamResponseSchema = z.object({
1693
+ type: z.literal("detach_terminal_stream_response"),
1694
+ payload: z.object({
1695
+ streamId: z.number().int().nonnegative(),
1696
+ success: z.boolean(),
1697
+ requestId: z.string(),
1698
+ }),
1699
+ });
1700
+ export const TerminalStreamExitSchema = z.object({
1701
+ type: z.literal("terminal_stream_exit"),
1702
+ payload: z.object({
1703
+ streamId: z.number().int().nonnegative(),
1704
+ terminalId: z.string(),
1705
+ }),
1706
+ });
1551
1707
  export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
1552
1708
  ActivityLogMessageSchema,
1553
1709
  AssistantChunkMessageSchema,
1554
1710
  AudioOutputMessageSchema,
1555
1711
  TranscriptionResultMessageSchema,
1556
1712
  DictationStreamAckMessageSchema,
1713
+ DictationStreamFinishAcceptedMessageSchema,
1557
1714
  DictationStreamPartialMessageSchema,
1558
1715
  DictationStreamFinalMessageSchema,
1559
1716
  DictationStreamErrorMessageSchema,
1560
1717
  StatusMessageSchema,
1561
1718
  PongMessageSchema,
1562
1719
  RpcErrorMessageSchema,
1563
- InitializeAgentResponseMessageSchema,
1564
1720
  ArtifactMessageSchema,
1565
1721
  AgentUpdateMessageSchema,
1566
1722
  AgentStreamMessageSchema,
1567
- AgentStreamSnapshotMessageSchema,
1568
1723
  AgentStatusMessageSchema,
1569
1724
  FetchAgentsResponseMessageSchema,
1570
1725
  FetchAgentsGroupedByProjectResponseMessageSchema,
1571
1726
  FetchAgentResponseMessageSchema,
1727
+ FetchAgentTimelineResponseMessageSchema,
1572
1728
  SendAgentMessageResponseMessageSchema,
1573
1729
  SetVoiceModeResponseMessageSchema,
1574
1730
  SetAgentModeResponseMessageSchema,
1575
1731
  SetAgentModelResponseMessageSchema,
1576
1732
  SetAgentThinkingResponseMessageSchema,
1733
+ UpdateAgentResponseMessageSchema,
1577
1734
  WaitForFinishResponseMessageSchema,
1578
1735
  AgentPermissionRequestMessageSchema,
1579
1736
  AgentPermissionResolvedMessageSchema,
1580
1737
  AgentDeletedMessageSchema,
1581
1738
  AgentArchivedMessageSchema,
1582
- GitDiffResponseSchema,
1583
1739
  CheckoutStatusResponseSchema,
1584
1740
  SubscribeCheckoutDiffResponseSchema,
1585
1741
  CheckoutDiffUpdateSchema,
@@ -1590,13 +1746,14 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
1590
1746
  CheckoutPrCreateResponseSchema,
1591
1747
  CheckoutPrStatusResponseSchema,
1592
1748
  ValidateBranchResponseSchema,
1749
+ BranchSuggestionsResponseSchema,
1593
1750
  PaseoWorktreeListResponseSchema,
1594
1751
  PaseoWorktreeArchiveResponseSchema,
1595
- HighlightedDiffResponseSchema,
1596
1752
  FileExplorerResponseSchema,
1597
1753
  ProjectIconResponseSchema,
1598
1754
  FileDownloadTokenResponseSchema,
1599
1755
  ListProviderModelsResponseMessageSchema,
1756
+ ListAvailableProvidersResponseSchema,
1600
1757
  SpeechModelsListResponseSchema,
1601
1758
  SpeechModelsDownloadResponseSchema,
1602
1759
  ListCommandsResponseSchema,
@@ -1606,6 +1763,9 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
1606
1763
  SubscribeTerminalResponseSchema,
1607
1764
  TerminalOutputSchema,
1608
1765
  KillTerminalResponseSchema,
1766
+ AttachTerminalStreamResponseSchema,
1767
+ DetachTerminalStreamResponseSchema,
1768
+ TerminalStreamExitSchema,
1609
1769
  ]);
1610
1770
  // ============================================================================
1611
1771
  // WebSocket Level Messages (wraps session messages)
@@ -1663,4 +1823,11 @@ export function wrapSessionMessage(sessionMsg) {
1663
1823
  message: sessionMsg,
1664
1824
  };
1665
1825
  }
1826
+ export function parseServerInfoStatusPayload(payload) {
1827
+ const parsed = ServerInfoStatusPayloadSchema.safeParse(payload);
1828
+ if (!parsed.success) {
1829
+ return null;
1830
+ }
1831
+ return parsed.data;
1832
+ }
1666
1833
  //# sourceMappingURL=messages.js.map