ryco-cli 0.1.30 → 0.1.31

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 (493) hide show
  1. package/dist/{AcpAdapter-DjP0IHpH.cjs → AcpAdapter-ByUp9-wk.cjs} +71 -51
  2. package/dist/{AcpAdapter-CKWzfB3Q.mjs → AcpAdapter-CY_ANTKu.mjs} +73 -53
  3. package/dist/{AcpNativeLogging-Do0LktDb.mjs → AcpNativeLogging-C7PC6imv.mjs} +30 -4
  4. package/dist/{AcpNativeLogging-5gTPK9Fq.cjs → AcpNativeLogging-OQeAya9d.cjs} +33 -1
  5. package/dist/{AcpRegistryDriver-BblCFfev.cjs → AcpRegistryDriver-CD9GN7rI.cjs} +3 -3
  6. package/dist/{AcpRegistryDriver-BzohT-PC.mjs → AcpRegistryDriver-DMZ5VBWJ.mjs} +4 -4
  7. package/dist/AzureDevOpsSourceControlProvider-5giVYoNi.mjs +2053 -0
  8. package/dist/AzureDevOpsSourceControlProvider-BKMXEUaN.cjs +2055 -0
  9. package/dist/{BitbucketSourceControlProvider-D5UVAc9z.mjs → BitbucketSourceControlProvider-BVUBsEUF.mjs} +63 -23
  10. package/dist/{BitbucketSourceControlProvider-Bvl_q1o2.cjs → BitbucketSourceControlProvider-BWnnrbch.cjs} +62 -22
  11. package/dist/{BunPTY-Dcl1Lp62.mjs → BunPTY-CMbDQ1Xb.mjs} +1 -1
  12. package/dist/{ClaudeDriver-DZkz0QPr.cjs → ClaudeDriver-DCrqouOR.cjs} +1373 -191
  13. package/dist/{ClaudeDriver-BuQ_azDw.mjs → ClaudeDriver-DVOss8cC.mjs} +1375 -193
  14. package/dist/{CodexDriver-6Ph2cjAW.cjs → CodexDriver-CBQPHJqU.cjs} +258 -28
  15. package/dist/{CodexDriver-Bi49RIL4.mjs → CodexDriver-DJoTky7Z.mjs} +261 -31
  16. package/dist/{CodexTextGeneration-C5TIspJA.mjs → CodexTextGeneration-BSgNgfZv.mjs} +6 -6
  17. package/dist/{CodexTextGeneration-sXPR9eld.cjs → CodexTextGeneration-C9MDQmZm.cjs} +7 -7
  18. package/dist/{CopilotDriver-Bcdpz6U_.mjs → CopilotDriver-CUkdPXcH.mjs} +78 -20
  19. package/dist/{CopilotDriver-D6P0xgRX.cjs → CopilotDriver-DbaMDH16.cjs} +76 -18
  20. package/dist/{CursorDriver-CRnDGwEv.mjs → CursorDriver-B-ZilXJB.mjs} +114 -97
  21. package/dist/{CursorDriver-DMJ7sGSx.cjs → CursorDriver-DKQqPbKH.cjs} +114 -97
  22. package/dist/{ForgejoSourceControlProvider-D4jGdaJX.cjs → ForgejoSourceControlProvider-CgpjFECj.cjs} +94 -60
  23. package/dist/{ForgejoSourceControlProvider-Dl_Fk3RY.mjs → ForgejoSourceControlProvider-DemMYUye.mjs} +95 -61
  24. package/dist/{GitHubSourceControlProvider-QMe-zymI.cjs → GitHubSourceControlProvider-C4un6hOK.cjs} +218 -119
  25. package/dist/{GitHubSourceControlProvider-DnwKf0ap.mjs → GitHubSourceControlProvider-CRSDYcjc.mjs} +206 -108
  26. package/dist/GitLabSourceControlProvider-D8W1ZLPh.cjs +2260 -0
  27. package/dist/GitLabSourceControlProvider-DpWkJ0M3.mjs +2258 -0
  28. package/dist/{GrokDriver-jy8JIvYY.cjs → GrokDriver-BQ6G_7ZZ.cjs} +6 -7
  29. package/dist/{GrokDriver-Bvq1jP3S.mjs → GrokDriver-Buvas9-q.mjs} +5 -6
  30. package/dist/{Metrics-CnmjpbWk.mjs → Metrics-C3vLS9rz.mjs} +123 -13
  31. package/dist/{Metrics-C0LSU8s7.cjs → Metrics-DjRPLE98.cjs} +170 -12
  32. package/dist/{NodePTY-D7tFWuQe.mjs → NodePTY-DgnuBruq.mjs} +1 -1
  33. package/dist/{OpenCodeDriver-DhyVaBMT.mjs → OpenCodeDriver-BWEZD841.mjs} +183 -49
  34. package/dist/{OpenCodeDriver-Bu5D19tl.cjs → OpenCodeDriver-qUiX0RLH.cjs} +183 -49
  35. package/dist/{SideQuestionIsolation-B-aE6aBz.mjs → SideQuestionIsolation-B1T-DsR0.mjs} +1 -1
  36. package/dist/{SideQuestionIsolation-CtJ4wX83.cjs → SideQuestionIsolation-BPC-Bxsz.cjs} +1 -1
  37. package/dist/bin.cjs +37021 -10253
  38. package/dist/bin.mjs +36892 -10178
  39. package/dist/client/assets/AccountSettings-B88Q_w9Y.js +1 -0
  40. package/dist/client/assets/AiFocusSettings-Bb0TrCPn.js +1 -0
  41. package/dist/client/assets/{AnimatedHeight-UXn4-nUd.js → AnimatedHeight-epXOsgdm.js} +1 -1
  42. package/dist/client/assets/AppearanceSettings-XS9WRVPU.js +1 -0
  43. package/dist/client/assets/AutomationsDialog-bZckh4Y3.js +1 -0
  44. package/dist/client/assets/AutomationsSummary-wPFZCF49.js +1 -0
  45. package/dist/client/assets/BranchToolbar.logic-DjzLKbbB.js +3 -0
  46. package/dist/client/assets/BrowserPanel-CdBLnnfz.js +1 -0
  47. package/dist/client/assets/ChatRightPanel-BCINd0vP.js +34 -0
  48. package/dist/client/assets/ChatThreadRouteView-BFZ0Si-l.js +1 -0
  49. package/dist/client/assets/ColorSwatchPicker-CGyo99o0.js +1 -0
  50. package/dist/client/assets/CommandPalette.logic-BIOMtnEQ.js +1 -0
  51. package/dist/client/assets/CommandPaletteDialog-Db4LH--z.js +2 -0
  52. package/dist/client/assets/CompositeRoot-DtnwMJKj.js +1 -0
  53. package/dist/client/assets/ComputerUseSettings-CkqCqDsU.js +1 -0
  54. package/dist/client/assets/ConnectionsSettings-B9mxExdG.js +7 -0
  55. package/dist/client/assets/CreatePullRequestDialog-CJ7pNCue.js +1 -0
  56. package/dist/client/assets/CreatePullRequestDialogHost-n4ZjdSr4.js +1 -0
  57. package/dist/client/assets/DiagnosticsSettings-f9rFG9re.js +2 -0
  58. package/dist/client/assets/DiagnosticsSettings.logic-Byf-Bu4S.js +1 -0
  59. package/dist/client/assets/DialogHandle-C0c_rK3I.js +1 -0
  60. package/dist/client/assets/{DialogPopup-NfwDyR5c.js → DialogPopup-BKW1PEEa.js} +1 -1
  61. package/dist/client/assets/DialogRoot-BIubqrv0.js +1 -0
  62. package/dist/client/assets/DialogTitle-BAX_FLoG.js +1 -0
  63. package/dist/client/assets/{DialogViewport-B6w_ROOE.js → DialogViewport-C2iOUx0O.js} +1 -1
  64. package/dist/client/assets/DiffPanel-BkqDt_SS.js +25 -0
  65. package/dist/client/assets/DisclosureRegion-B8556yU0.js +1 -0
  66. package/dist/client/assets/DraftChatThreadRouteView-BKgRKJ2w.js +1 -0
  67. package/dist/client/assets/{ExternalIdentityWeb.logic-BlKX8J9h.js → ExternalIdentityWeb.logic-Cu6suNrN.js} +1 -1
  68. package/dist/client/assets/GlassSurface-DLYYzRdP.js +1 -0
  69. package/dist/client/assets/HostedConnectionControls-CoVqtnrK.js +1 -0
  70. package/dist/client/assets/HostedHubRoot-CM2CwPUr.js +2 -0
  71. package/dist/client/assets/{HostedNativeAuthorizationRoute-j7oSlakZ.js → HostedNativeAuthorizationRoute-Bizmqrh_.js} +2 -2
  72. package/dist/client/assets/HostedNodeRenameDialog-SXWMsTO0.js +1 -0
  73. package/dist/client/assets/HostedRelayTrustNotice-BfTyrBi5.js +1 -0
  74. package/dist/client/assets/InboxStatusGlyph-BPTqzp7l.js +1 -0
  75. package/dist/client/assets/IntegrationsSettingsPanel-DAPvkV4i.js +1 -0
  76. package/dist/client/assets/KeybindingsSettings-B8g-YI2O.js +1 -0
  77. package/dist/client/assets/LazyBrowserPanel-Ds9cdOC_.js +2 -0
  78. package/dist/client/assets/McpServersSettings-Dw6G3ff3.js +6 -0
  79. package/dist/client/assets/MobileSheet-DfgXNWbd.js +1 -0
  80. package/dist/client/assets/ModelTuningDial-DQBAbuNL.js +1 -0
  81. package/dist/client/assets/NewWorktreeDialog-CDZAJmK6.js +4 -0
  82. package/dist/client/assets/NodeSecuritySettings-3MELA9ru.js +1 -0
  83. package/dist/client/assets/NullStore-gT_6_xZE.js +1 -0
  84. package/dist/client/assets/OnboardingDialog-CAAtNnJf.js +1 -0
  85. package/dist/client/assets/OpinionatedPluginsSettings-AiDB0Vl4.js +1 -0
  86. package/dist/client/assets/{PdfAttachmentPreview-C8-hT8KQ.js → PdfAttachmentPreview-BFNW2wjN.js} +2 -2
  87. package/dist/client/assets/{PhoneGetAppInterstitial-Zh0zpBgT.js → PhoneGetAppInterstitial-D8fwZ8E9.js} +1 -1
  88. package/dist/client/assets/PhoneHome-YHgHljA0.js +1 -0
  89. package/dist/client/assets/PhoneSettingsSurface-BVxJppvK.js +2 -0
  90. package/dist/client/assets/PreviewPanel-BYcEnkv9.js +643 -0
  91. package/dist/client/assets/ProjectScriptDialog-K34K2Kzm.js +1 -0
  92. package/dist/client/assets/ProjectsPage-DXnMYLjb.js +1 -0
  93. package/dist/client/assets/PromoteChatDialog-CAY7_wJ-.js +1 -0
  94. package/dist/client/assets/ProviderLimitWindow-CK04BSkM.js +1 -0
  95. package/dist/client/assets/ProviderUpdateLaunchNotification.logic-BMBrDDOC.js +1 -0
  96. package/dist/client/assets/ProvidersSettingsPanel-C85PX9Es.js +1 -0
  97. package/dist/client/assets/PullRequestsPage-C0rgfGwB.js +1 -0
  98. package/dist/client/assets/{QuitShortcutFeedback-Qs9XsuZ4.js → QuitShortcutFeedback-DSkKqETs.js} +1 -1
  99. package/dist/client/assets/RedactedSensitiveText-DQ0YveQd.js +1 -0
  100. package/dist/client/assets/RollingText-BzvpP5fa.js +1 -0
  101. package/dist/client/assets/RootAppShell-BYQ-eGNT.js +6 -0
  102. package/dist/client/assets/{Separator-B6Esv57Y.js → Separator-DpiW19Vw.js} +1 -1
  103. package/dist/client/assets/SettingsPage-BCFN7Ju2.js +2 -0
  104. package/dist/client/assets/SettingsPanels-CP6z2b1x.js +3 -0
  105. package/dist/client/assets/SettingsPanels.editor-D8U-TWWG.js +1 -0
  106. package/dist/client/assets/SettingsSelect-DEhNaz3E.js +1 -0
  107. package/dist/client/assets/Sidebar.logic-D_ODfSpl.js +1 -0
  108. package/dist/client/assets/SimulatorPanel-DCT6fZ0X.js +1 -0
  109. package/dist/client/assets/SourceControlSettings-DxUtvPMK.js +1 -0
  110. package/dist/client/assets/StatisticsPage-C9SrwtM4.js +1 -0
  111. package/dist/client/assets/StatisticsPanel-BMYLETs0.js +1 -0
  112. package/dist/client/assets/ThreadLinkList-BN5z5EpS.js +169 -0
  113. package/dist/client/assets/ThreadTerminalDrawer-CgIFOlR-.js +18 -0
  114. package/dist/client/assets/ThreadWorkspacePanel-DvXoqQPF.js +3 -0
  115. package/dist/client/assets/ToolbarRootContext-8FsV9Cpj.js +1 -0
  116. package/dist/client/assets/TraitsPicker-DcrpJahy.js +1 -0
  117. package/dist/client/assets/Virtualizer-CwXeUPla.js +1345 -0
  118. package/dist/client/assets/WorkspacePullRequestPanel-3mlcJn9G.js +1 -0
  119. package/dist/client/assets/WorkspaceReview-UGbCgXeK.js +2 -0
  120. package/dist/client/assets/{abnfDiagram-N423BO3Z-ByEe3mC0.js → abnfDiagram-N423BO3Z-DVEM6Scc.js} +1 -1
  121. package/dist/client/assets/{activity-CwTUF6lv.js → activity-DVCuAejY.js} +1 -1
  122. package/dist/client/assets/{alert-DQEkrtUJ.js → alert-FV7ZIit_.js} +1 -1
  123. package/dist/client/assets/alert-dialog-CgXR9tED.js +1 -0
  124. package/dist/client/assets/app-window-3xtwqZgI.js +1 -0
  125. package/dist/client/assets/appChrome-COCz-T7w.js +1 -0
  126. package/dist/client/assets/{appearancePreferences-nFx4MHoI.js → appearancePreferences-NnsvXwBe.js} +1 -1
  127. package/dist/client/assets/architecture-7GRP2DOG-DXXb_0_g.js +1 -0
  128. package/dist/client/assets/{architectureDiagram-T3A2C74G-Bd-yxaTr.js → architectureDiagram-T3A2C74G-B6pcKiCj.js} +1 -1
  129. package/dist/client/assets/{arrow-left-DUOpzEbP.js → arrow-left-Blu3LSE2.js} +1 -1
  130. package/dist/client/assets/{arrow-right-HOYJnPKw.js → arrow-right-CO3CH0ne.js} +1 -1
  131. package/dist/client/assets/arrow-up-B69gV2Bq.js +1 -0
  132. package/dist/client/assets/{arrow-up-right-DHnMKuVA.js → arrow-up-right-BbPGFOLA.js} +1 -1
  133. package/dist/client/assets/authorization-Ob6YwWiI.js +1 -0
  134. package/dist/client/assets/autocomplete-RVpjsrDv.js +1 -0
  135. package/dist/client/assets/ban-BIm2PVkE.js +1 -0
  136. package/dist/client/assets/{blockDiagram-VBNYF7ZC-CPDBonMC.js → blockDiagram-VBNYF7ZC-WNerGp9V.js} +1 -1
  137. package/dist/client/assets/{bot-DxjPA7Bw.js → bot-C9nWtaWq.js} +1 -1
  138. package/dist/client/assets/browserState-jt47YsqD.js +1 -0
  139. package/dist/client/assets/{c4Diagram-5PPSVZJV-BM6pAiqT.js → c4Diagram-5PPSVZJV-wp1ioOoM.js} +1 -1
  140. package/dist/client/assets/camera-C13VoW3c.js +1 -0
  141. package/dist/client/assets/capabilities-CfOhq009.js +1 -0
  142. package/dist/client/assets/channel-56r2qL2v.js +1 -0
  143. package/dist/client/assets/{chart-column-Cg7d41tb.js → chart-column-DRv0YtL_.js} +1 -1
  144. package/dist/client/assets/checkbox-CIIIY9FA.js +1 -0
  145. package/dist/client/assets/checks-Dw022Bvy.js +1 -0
  146. package/dist/client/assets/{chunk-2GRJ4B5K-DVKozJ41.js → chunk-2GRJ4B5K-DRl3ILpc.js} +1 -1
  147. package/dist/client/assets/{chunk-4I5QYGJK-BRoMwPkW.js → chunk-4I5QYGJK-CYTRl4bo.js} +1 -1
  148. package/dist/client/assets/{chunk-5RXB4S5H-DFMKyoqP.js → chunk-5RXB4S5H-VCNwRsOa.js} +1 -1
  149. package/dist/client/assets/{chunk-6Q2QTUOP-Ba6UENe9.js → chunk-6Q2QTUOP-DnSeKGPG.js} +1 -1
  150. package/dist/client/assets/{chunk-7Z6QIM7H-B87gYLWH.js → chunk-7Z6QIM7H-Cjilh9TF.js} +1 -1
  151. package/dist/client/assets/{chunk-GF5L2VYU-DZ840GRQ.js → chunk-GF5L2VYU-CGR7AW0t.js} +1 -1
  152. package/dist/client/assets/{chunk-I66GZJ75-BO6p4Aqg.js → chunk-I66GZJ75-CXSn8dDu.js} +1 -1
  153. package/dist/client/assets/{chunk-JQJVKLGR-5dTfVinz.js → chunk-JQJVKLGR-Dro-75lU.js} +1 -1
  154. package/dist/client/assets/{chunk-KBJHAD2P-BeWfBZdP.js → chunk-KBJHAD2P-BDqN2kVf.js} +1 -1
  155. package/dist/client/assets/{chunk-NSK5VX7P-DuRkdn5k.js → chunk-NSK5VX7P-DGo5UczH.js} +1 -1
  156. package/dist/client/assets/{chunk-QR6OTTB3-Duz4Y_uE.js → chunk-QR6OTTB3-RWuyWnBI.js} +1 -1
  157. package/dist/client/assets/{chunk-UBXNYLIW-D-z8URgN.js → chunk-UBXNYLIW-BPRzeB0w.js} +1 -1
  158. package/dist/client/assets/{chunk-W5SLKNZC-AGjFjjoJ.js → chunk-W5SLKNZC-DYWocTFi.js} +1 -1
  159. package/dist/client/assets/{chunk-WRU74C26-BgY3UiXB.js → chunk-WRU74C26-ChbB1jY3.js} +1 -1
  160. package/dist/client/assets/circle-stop-D8B4hRpY.js +1 -0
  161. package/dist/client/assets/circle-x-CNLfrTqR.js +1 -0
  162. package/dist/client/assets/classDiagram-JCYQIIEL-DGvmFev3.js +1 -0
  163. package/dist/client/assets/classDiagram-v2-OCEON4UE-DGvmFev3.js +1 -0
  164. package/dist/client/assets/{clipboard-copy-BWf3JuTE.js → clipboard-copy-DGi8FKNO.js} +1 -1
  165. package/dist/client/assets/clock-3-DmJ4_XPI.js +1 -0
  166. package/dist/client/assets/clock-DZIuPtNG.js +1 -0
  167. package/dist/client/assets/color-picker-BdBXje-a.js +1 -0
  168. package/dist/client/assets/columns-2-CWlMOClK.js +1 -0
  169. package/dist/client/assets/combobox-Dtjtf7AB.js +1 -0
  170. package/dist/client/assets/{cynefin-OW5HDTMX-BuOAGqlK.js → cynefin-OW5HDTMX-TuShvMuM.js} +1 -1
  171. package/dist/client/assets/{cynefinDiagram-MW4NZA55-DqV0Aokp.js → cynefinDiagram-MW4NZA55-B0Edt2Em.js} +1 -1
  172. package/dist/client/assets/{dagre-VZM6K2ZE-D_GFquDW.js → dagre-VZM6K2ZE-D-eiuqHx.js} +1 -1
  173. package/dist/client/assets/{data-list-BJCq3CVP.js → data-list-BAx6jBY1.js} +1 -1
  174. package/dist/client/assets/desktopUpdateAtoms-BjrLa3tl.js +1 -0
  175. package/dist/client/assets/desktopWorkspace-C2wXVBhc.js +1 -0
  176. package/dist/client/assets/{deviceName-C2N8ZRX3.js → deviceName-B4youG0v.js} +1 -1
  177. package/dist/client/assets/{diagram-7IWD3JNH-B1wlsNg2.js → diagram-7IWD3JNH-DgM6lMlR.js} +1 -1
  178. package/dist/client/assets/{diagram-B4RE2ZJO-D-CYoym7.js → diagram-B4RE2ZJO-CyHNDjzV.js} +1 -1
  179. package/dist/client/assets/{diagram-LBJQPF4R-DqJ9NCqt.js → diagram-LBJQPF4R-DDzuLIN5.js} +1 -1
  180. package/dist/client/assets/{diagram-Q27KOJAE-3yp1D2u4.js → diagram-Q27KOJAE-BaBvK9QB.js} +1 -1
  181. package/dist/client/assets/{diagram-UB23O5K3-Byp25nGC.js → diagram-UB23O5K3-CzZ2ewuZ.js} +1 -1
  182. package/dist/client/assets/dialogWords-Cg0YkJVg.js +1 -0
  183. package/dist/client/assets/diffRouteSearch-D2MKN_ah.js +1 -0
  184. package/dist/client/assets/disclosureMotion-cbMJn5-z.js +1 -0
  185. package/dist/client/assets/{download-DsYNYJeu.js → download-TvtXS4hE.js} +1 -1
  186. package/dist/client/assets/{ebnfDiagram-BXEA7PRR-B_IM1l6o.js → ebnfDiagram-BXEA7PRR-CL1vdOKi.js} +1 -1
  187. package/dist/client/assets/editorPreferences-DqKyA-2Z.js +1 -0
  188. package/dist/client/assets/ellipsis-CDK1dNFZ.js +1 -0
  189. package/dist/client/assets/ellipsis-vertical-CwzEUTwV.js +1 -0
  190. package/dist/client/assets/{empty-BbJHvskr.js → empty-BovKoxbn.js} +1 -1
  191. package/dist/client/assets/{erDiagram-JOGREHBK--OtcrCRJ.js → erDiagram-JOGREHBK-DmQR2if6.js} +1 -1
  192. package/dist/client/assets/eventmodeling-NTZA5JFV-D272GIcY.js +1 -0
  193. package/dist/client/assets/external-link-CJeVJZ7s.js +1 -0
  194. package/dist/client/assets/eye-BUmrXqzg.js +1 -0
  195. package/dist/client/assets/file-diff-BWc3mYsz.js +1 -0
  196. package/dist/client/assets/flowDiagram-UKHOOZJN-DLyS38Mm.js +1 -0
  197. package/dist/client/assets/folder-git-2-CPxg5wKP.js +1 -0
  198. package/dist/client/assets/folder-open-DcMymvp1.js +1 -0
  199. package/dist/client/assets/formatCount-B4KLI651.js +1 -0
  200. package/dist/client/assets/{ganttDiagram-PKOTCBZU-w0seBi3Q.js → ganttDiagram-PKOTCBZU-1q2nUL92.js} +1 -1
  201. package/dist/client/assets/git-pull-request-BFPwpm3c.js +1 -0
  202. package/dist/client/assets/{gitGraph-4MIJSDKK-BOJ0lcSW.js → gitGraph-4MIJSDKK-COtwmv2S.js} +1 -1
  203. package/dist/client/assets/{gitGraphDiagram-DS77QQ5N-BMfOCCYn.js → gitGraphDiagram-DS77QQ5N-ChsvaxX4.js} +1 -1
  204. package/dist/client/assets/{group-tVMKGp7Q.js → group-DWWn0dTx.js} +1 -1
  205. package/dist/client/assets/hammer-BXo-EU88.js +1 -0
  206. package/dist/client/assets/hostedConnectionCoordinator-BkAE-RhA.js +1 -0
  207. package/dist/client/assets/{index-BqZvnGNr.js → index-DARIYokI.js} +2 -2
  208. package/dist/client/assets/{info-A6RAGUB7-acjBTQ5o.js → info-A6RAGUB7-CI2qZ9wW.js} +1 -1
  209. package/dist/client/assets/{infoDiagram-6WML65LV-DB01Nc2m.js → infoDiagram-6WML65LV-BPmgcTPH.js} +1 -1
  210. package/dist/client/assets/{input-BDWSVClC.js → input-CCie4mm1.js} +1 -1
  211. package/dist/client/assets/{ishikawaDiagram-WSZJBQD7-KhZTvm-J.js → ishikawaDiagram-WSZJBQD7-LyS9p3Yg.js} +1 -1
  212. package/dist/client/assets/{journeyDiagram-NVQOT4AX-C3JCYk-2.js → journeyDiagram-NVQOT4AX-BYaAmN65.js} +1 -1
  213. package/dist/client/assets/{kanban-definition-27J2QSJJ-Dbo0C1s6.js → kanban-definition-27J2QSJJ-D-pwzqFt.js} +1 -1
  214. package/dist/client/assets/{key-round-CETZqe3h.js → key-round-BlrUTfxB.js} +1 -1
  215. package/dist/client/assets/keyboard-DlBdq6sz.js +1 -0
  216. package/dist/client/assets/label-ChtVI9lp.js +1 -0
  217. package/dist/client/assets/layers-BB-ruGvd.js +1 -0
  218. package/dist/client/assets/lifecycleSuggestionPolicy-0ERe_O53.js +1 -0
  219. package/dist/client/assets/list-checks-BkM_ZRsj.js +1 -0
  220. package/dist/client/assets/loader-3vQnfqIT.js +1 -0
  221. package/dist/client/assets/{log-out-D5-aSBAz.js → log-out-CKq9YiLY.js} +1 -1
  222. package/dist/client/assets/{logging-B_qXVrk6.js → logging-CCg76rgn.js} +1 -1
  223. package/dist/client/assets/main-Ch0bwS-M.js +9 -0
  224. package/dist/client/assets/main-Di0isH9D.css +2 -0
  225. package/dist/client/assets/{mermaid-parser.core-B6Q-3x_q.js → mermaid-parser.core-RK9ah5RM.js} +2 -2
  226. package/dist/client/assets/{mermaidEngine-DksLcesB.js → mermaidEngine-Dr8UsPhH.js} +3 -3
  227. package/dist/client/assets/message-circle-dashed-BrjwqS7-.js +1 -0
  228. package/dist/client/assets/messageQueueDrain-B7R7Qmq6.js +1 -0
  229. package/dist/client/assets/messages-square-cDTkDJv_.js +1 -0
  230. package/dist/client/assets/{mindmap-definition-FAOFIHXS-LaMzRxqw.js → mindmap-definition-FAOFIHXS-DVudWasx.js} +1 -1
  231. package/dist/client/assets/{packet-AYTQ26CC-BHhg59Si.js → packet-AYTQ26CC-DnkTsVhD.js} +1 -1
  232. package/dist/client/assets/panels-top-left-B7jZiLth.js +1 -0
  233. package/dist/client/assets/path-text-3Rfu6lt8.js +1 -0
  234. package/dist/client/assets/{pegDiagram-VL7TDLO6-s7l7UD9d.js → pegDiagram-VL7TDLO6-Do5PIp8B.js} +1 -1
  235. package/dist/client/assets/pencil-Bzg-nc6d.js +1 -0
  236. package/dist/client/assets/{pie-WAS4IAKB-DygX31Z9.js → pie-WAS4IAKB-B_nNQOzn.js} +1 -1
  237. package/dist/client/assets/{pieDiagram-7S7Q4E2Y-bb6I9TtZ.js → pieDiagram-7S7Q4E2Y-D_IG4xwA.js} +1 -1
  238. package/dist/client/assets/{play-DUvOxTpL.js → play-DpXXQ1qB.js} +1 -1
  239. package/dist/client/assets/popover-OWEv6cQz.js +48 -0
  240. package/dist/client/assets/presentationTier-DPVAxTK4.js +1 -0
  241. package/dist/client/assets/previewRouteSearch-BjZdTuSf.js +1 -0
  242. package/dist/client/assets/primary-Cf-xJExj.js +4 -0
  243. package/dist/client/assets/primitives-CxTBN7D4.js +1 -0
  244. package/dist/client/assets/projectCheckouts.logic-DUT4AxXr.js +1 -0
  245. package/dist/client/assets/projectPaths-B8aVmOZX.js +1 -0
  246. package/dist/client/assets/projectPreferences-CzWBItFj.js +1 -0
  247. package/dist/client/assets/providerCapabilities-B2YOPsLN.js +1 -0
  248. package/dist/client/assets/providerDriverMeta-BHHL9uw0.js +1 -0
  249. package/dist/client/assets/providerModels-v9PYbzRE.js +1 -0
  250. package/dist/client/assets/providerStatus-CDPaqb0S.js +1 -0
  251. package/dist/client/assets/pullRequestsModel.logic-Dv_om_C4.js +1 -0
  252. package/dist/client/assets/{qr-code-dbkTo07n.js → qr-code-BlbiBIwH.js} +1 -1
  253. package/dist/client/assets/{qr-code-D4CtBq2F.js → qr-code-DywzVgQC.js} +1 -1
  254. package/dist/client/assets/{quadrantDiagram-CIZ2JOQS-Cj1Y68ZF.js → quadrantDiagram-CIZ2JOQS-DY6fJyrM.js} +1 -1
  255. package/dist/client/assets/{radar-RG4KPBEZ-FHM3ftPp.js → radar-RG4KPBEZ-D9689I5m.js} +1 -1
  256. package/dist/client/assets/radio-group-DVwD6Cuy.js +1 -0
  257. package/dist/client/assets/{railroad-74A4TZTK-CPMn18Cm.js → railroad-74A4TZTK-DVzWbQnl.js} +1 -1
  258. package/dist/client/assets/railroad-abnf-HS5TGJTU-C_2P6umA.js +1 -0
  259. package/dist/client/assets/railroad-ebnf-LZEXJU2U-aGlR3R3z.js +1 -0
  260. package/dist/client/assets/railroad-peg-WCYAUIDC-DCB9oE8y.js +1 -0
  261. package/dist/client/assets/{railroadDiagram-AXF67PYL-DyV3SuDj.js → railroadDiagram-AXF67PYL-D1oJ6Jtl.js} +1 -1
  262. package/dist/client/assets/readCache-B7cDPz2O.js +1 -0
  263. package/dist/client/assets/{refresh-cw-CgDa2Ok_.js → refresh-cw-CRUTivd6.js} +1 -1
  264. package/dist/client/assets/{requirementDiagram-LRYGKXZP-_xEAGWaH.js → requirementDiagram-LRYGKXZP-7RM8iREp.js} +1 -1
  265. package/dist/client/assets/rotate-ccw-BE2ZCwL6.js +1 -0
  266. package/dist/client/assets/roving-radio-group-NMPWrDqe.js +1 -0
  267. package/dist/client/assets/rows-2-DDS4dGTX.js +1 -0
  268. package/dist/client/assets/runtime-DjjjAcTE.js +18 -0
  269. package/dist/client/assets/safePolygon-C1AzMRS4.js +1 -0
  270. package/dist/client/assets/{sankeyDiagram-W5VNT64P-Clf6oTLi.js → sankeyDiagram-W5VNT64P-C1tKAPGN.js} +1 -1
  271. package/dist/client/assets/{save-C8h0AMdl.js → save-OZdkPs_y.js} +1 -1
  272. package/dist/client/assets/scroll-area-80P7vbjw.js +1 -0
  273. package/dist/client/assets/{scrollEdges-BXYnwntN.js → scrollEdges-C0Oc-5qi.js} +1 -1
  274. package/dist/client/assets/select-Cb9FUPHD.js +1 -0
  275. package/dist/client/assets/separator-CO8bC7Wc.js +1 -0
  276. package/dist/client/assets/{sequenceDiagram-SI44F4Z6-CcYtQLSe.js → sequenceDiagram-SI44F4Z6-DGVpb7jL.js} +1 -1
  277. package/dist/client/assets/settings-2-PrRDu6Lc.js +1 -0
  278. package/dist/client/assets/settingsLayout-CRFNCk_D.js +1 -0
  279. package/dist/client/assets/sheet-C5DW7qVO.js +1 -0
  280. package/dist/client/assets/{shield-DPC4oHTi.js → shield-CBHYqlkR.js} +1 -1
  281. package/dist/client/assets/{shield-alert-CwH36qZb.js → shield-alert-Dc2cGwyR.js} +1 -1
  282. package/dist/client/assets/{shield-check-CGD7sEeF.js → shield-check-_wl7R4Js.js} +1 -1
  283. package/dist/client/assets/sidebar-0BBaFNm3.js +1 -0
  284. package/dist/client/assets/sidebarProjectFolders-BjWzbt8C.js +3 -0
  285. package/dist/client/assets/sidebarProjectGrouping-nQRStWrZ.js +1 -0
  286. package/dist/client/assets/sidebarStatusText-BBKuNies.js +1 -0
  287. package/dist/client/assets/sidebarUndo-Dfq1lvyF.js +1 -0
  288. package/dist/client/assets/{skeleton-rS3IgBob.js → skeleton-DfUe6VV_.js} +1 -1
  289. package/dist/client/assets/sliders-horizontal-BGXkwvKv.js +1 -0
  290. package/dist/client/assets/sliding-tabs-BnDSjRU3.js +39 -0
  291. package/dist/client/assets/{smartphone-DgVJfbv3.js → smartphone-OEAQOTdv.js} +1 -1
  292. package/dist/client/assets/spinner-lHRJWsym.js +1 -0
  293. package/dist/client/assets/square-B05NKv3e.js +1 -0
  294. package/dist/client/assets/{star-Cqay-Cae.js → star-C8mHmfZu.js} +1 -1
  295. package/dist/client/assets/{stateDiagram-OKZ733FA-DEKURpRP.js → stateDiagram-OKZ733FA-CCOAegCG.js} +1 -1
  296. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-D60qqBed.js +1 -0
  297. package/dist/client/assets/storeSelectors-BichCKDC.js +1 -0
  298. package/dist/client/assets/surfaceMorph-BTRijmlU.js +1 -0
  299. package/dist/client/assets/{swimlanes-SLNWSIFB-DrR6sbi6.js → swimlanes-SLNWSIFB-CFsLYT4h.js} +1 -1
  300. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-D0SaJgSn.js +8 -0
  301. package/dist/client/assets/switch-oQc7Ifbl.js +1 -0
  302. package/dist/client/assets/text-wrap-DSRdSfDm.js +1 -0
  303. package/dist/client/assets/textarea-VyiIZ0wQ.js +1 -0
  304. package/dist/client/assets/threadPriorityRefreshRuntime-H656C1J_.js +1 -0
  305. package/dist/client/assets/ticker-CPutfhZ4.js +1 -0
  306. package/dist/client/assets/{timeline-definition-Z64GVDOM-bQJvmJx5.js → timeline-definition-Z64GVDOM-B4agmO7R.js} +1 -1
  307. package/dist/client/assets/toggle-DFqtCPt-.js +1 -0
  308. package/dist/client/assets/toggle-group-C5ICmqkI.js +1 -0
  309. package/dist/client/assets/{tokenModePresentation-BkS-mry_.js → tokenModePresentation-umDRm4k1.js} +1 -1
  310. package/dist/client/assets/tooltip-DbqhseXd.js +1 -0
  311. package/dist/client/assets/{treeView-Q6P3EWNA-D4Ex5QTp.js → treeView-Q6P3EWNA-C_S3udFB.js} +1 -1
  312. package/dist/client/assets/{treemap-WGGIJYW6-C4B6Y6qM.js → treemap-WGGIJYW6-B-kUSAkE.js} +1 -1
  313. package/dist/client/assets/undo-2-lyluTGMW.js +1 -0
  314. package/dist/client/assets/{unplug-B1dczi-t.js → unplug-D6iu-qlh.js} +1 -1
  315. package/dist/client/assets/usage-ClF-eUmy.js +1 -0
  316. package/dist/client/assets/useActiveIndicator-R5NWu8Fg.js +1 -0
  317. package/dist/client/assets/useAppSidebarCollapsed-BbMxfio5.js +1 -0
  318. package/dist/client/assets/useAppearancePreference-Ix13pMKy.js +1 -0
  319. package/dist/client/assets/useAtlassian-BYDCc9lv.js +0 -0
  320. package/dist/client/assets/useCheckoutResolution-CR-oOp5-.js +1 -0
  321. package/dist/client/assets/useDesktopRelaunchGuard-Jmh615iZ.js +1 -0
  322. package/dist/client/assets/useDiffFileNavigation-DeuzdD5E.js +15 -0
  323. package/dist/client/assets/useDiffLayout-DhcXwhBL.js +1 -0
  324. package/dist/client/assets/useEnvironmentSettingsTarget-DM6BRDT7.js +1 -0
  325. package/dist/client/assets/useFocus-CV0KIZwg.js +1 -0
  326. package/dist/client/assets/useGit-CUcs7h5_.js +1 -0
  327. package/dist/client/assets/useGitBranchSearch-CeKFtnCL.js +1 -0
  328. package/dist/client/assets/useHostedDraftExecutionTarget-DvQU5UOq.js +1 -0
  329. package/dist/client/assets/useLabelableId-CEgCRi6q.js +1 -0
  330. package/dist/client/assets/useLandingFlash-BfOOlFtW.js +1 -0
  331. package/dist/client/assets/useLogicalProjectSnapshots-CRNZke74.js +1 -0
  332. package/dist/client/assets/useNavigate-sQZthdyT.js +1 -0
  333. package/dist/client/assets/usePageLeadingInsetClass-Bf4nUvx4.js +1 -0
  334. package/dist/client/assets/usePhoneThreadActions-VaQ-mZex.js +1 -0
  335. package/dist/client/assets/usePopupHandleStore-DimKo2Yy.js +1 -0
  336. package/dist/client/assets/usePopupViewport-YeqX_UM3.js +1 -0
  337. package/dist/client/assets/usePresentationTier-B9kCQ4YH.js +1 -0
  338. package/dist/client/assets/useProject-Kt74Z12J.js +1 -0
  339. package/dist/client/assets/useProviderOptionsUpdater-CTzNh2B7.js +2 -0
  340. package/dist/client/assets/usePullRequestFilesViewed-D5Snmzys.js +1 -0
  341. package/dist/client/assets/usePullRequestsModel-DJL5HHbP.js +40 -0
  342. package/dist/client/assets/useScrollLock-CLZ31xsK.js +1 -0
  343. package/dist/client/assets/useSidebarThreadActions-n6EkLATf.js +6 -0
  344. package/dist/client/assets/{useStatistics-B76_r68I.js → useStatistics-DD0mYS4J.js} +14 -14
  345. package/dist/client/assets/{useTheme-B441xg4F.js → useTheme-Bdy-BDs-.js} +1 -1
  346. package/dist/client/assets/useValueChanged-DoumqMnV.js +1 -0
  347. package/dist/client/assets/{user-round-CLy1Qy1Y.js → user-round-BPDXr8Gq.js} +1 -1
  348. package/dist/client/assets/{vennDiagram-T6HMQDX7-8iiroXim.js → vennDiagram-T6HMQDX7-B1UEn_j_.js} +1 -1
  349. package/dist/client/assets/{vscode-icons-CJBVQtq5.js → vscode-icons-Ccy-gzFN.js} +1 -1
  350. package/dist/client/assets/{wardley-WFR3VGLG-DpyNUbTc.js → wardley-WFR3VGLG-gPdyDc-7.js} +1 -1
  351. package/dist/client/assets/{wardleyDiagram-T6FBY63Y-CI7is3QO.js → wardleyDiagram-T6FBY63Y-2aDcwOA4.js} +1 -1
  352. package/dist/client/assets/workspaceLifecycle-OJ1aKksw.js +3 -0
  353. package/dist/client/assets/workspaceMetadataProjection-CyEyJhUa.js +1 -0
  354. package/dist/client/assets/workspaceRouteSearch-CCavUdbH.js +1 -0
  355. package/dist/client/assets/{wrench-7pbbxqrZ.js → wrench-CPUCA_rn.js} +1 -1
  356. package/dist/client/assets/wsTransport-C88seBPA.js +15 -0
  357. package/dist/client/assets/{xychartDiagram-ELKLHX3M-BTEX3m2y.js → xychartDiagram-ELKLHX3M-C1_7Q-1i.js} +1 -1
  358. package/dist/client/favicon.svg +1 -1
  359. package/dist/client/index.html +1 -1
  360. package/dist/collectUint8StreamText-BsLSgI8i.mjs +710 -0
  361. package/dist/collectUint8StreamText-D5olwfpM.cjs +757 -0
  362. package/dist/{deviceHostWorker-L8C9wy38.mjs → deviceHostWorker-B-Dn-6An.mjs} +1 -1
  363. package/dist/{makeManagedServerProvider-CF776SAO.cjs → makeManagedServerProvider-B5tP7tvg.cjs} +1 -1
  364. package/dist/{makeManagedServerProvider-B90UKjnv.mjs → makeManagedServerProvider-B65ipCxM.mjs} +2 -2
  365. package/dist/resource-monitor/linux-arm64/ryco-resource-monitor +0 -0
  366. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  367. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  368. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  369. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  370. package/dist/{runtimeSession-V3RIy8Ao.mjs → runtimeSession-D_BZ-wRH.mjs} +1 -1
  371. package/dist/{src-CARHuYkT.cjs → src-FmeCeBJ9.cjs} +2291 -72
  372. package/dist/{src-CtsgPPhb.mjs → src-VTj60bUm.mjs} +1974 -61
  373. package/package.json +1 -1
  374. package/dist/AzureDevOpsSourceControlProvider-CKSvfuDS.cjs +0 -190
  375. package/dist/AzureDevOpsSourceControlProvider-DRWSXTml.mjs +0 -188
  376. package/dist/GitLabSourceControlProvider-Cj07OTBD.mjs +0 -186
  377. package/dist/GitLabSourceControlProvider-CvvN5pHt.cjs +0 -188
  378. package/dist/client/assets/AccountSettings-v6-r6gYl.js +0 -1
  379. package/dist/client/assets/AiFocusSettings-BVdLON0q.js +0 -1
  380. package/dist/client/assets/AppearanceSettings-DRChsQnN.js +0 -1
  381. package/dist/client/assets/BranchToolbar.logic-YN3KjVr9.js +0 -3
  382. package/dist/client/assets/BrowserPanel-Dxw3stFP.js +0 -1
  383. package/dist/client/assets/ChatRightPanel-CygpcJiF.js +0 -201
  384. package/dist/client/assets/ChatThreadRouteView-DYLZFHu0.js +0 -1
  385. package/dist/client/assets/CommandPaletteDialog-BRvBzP1R.js +0 -1
  386. package/dist/client/assets/CompositeRoot-BeEGGWwn.js +0 -1
  387. package/dist/client/assets/ComputerUseSettings-Cq8Pi0ZU.js +0 -1
  388. package/dist/client/assets/ConnectionsSettings-RSYtexxd.js +0 -7
  389. package/dist/client/assets/ContextHandoffEndpointLabel-CeGDLNA4.js +0 -4
  390. package/dist/client/assets/DiagnosticsSettings-CDa6MVx4.js +0 -2
  391. package/dist/client/assets/DialogHandle-BE7egDQQ.js +0 -1
  392. package/dist/client/assets/DialogRoot-C4mtzigX.js +0 -1
  393. package/dist/client/assets/DialogTitle-B_Q4DykI.js +0 -1
  394. package/dist/client/assets/DialogTrigger-BSqd4Crj.js +0 -1
  395. package/dist/client/assets/DraftChatThreadRouteView-JW_bXVrM.js +0 -1
  396. package/dist/client/assets/GlassSurface-DDG4eTlj.js +0 -1
  397. package/dist/client/assets/HostedConnectionControls-CscV6hm1.js +0 -1
  398. package/dist/client/assets/HostedHubRoot-gp7-ClBP.js +0 -2
  399. package/dist/client/assets/HostedNodeRenameDialog-D1DSiTpx.js +0 -1
  400. package/dist/client/assets/HostedRelayTrustNotice-B9jp4SRh.js +0 -1
  401. package/dist/client/assets/IntegrationsSettingsPanel-DH7SfWtV.js +0 -2
  402. package/dist/client/assets/KeybindingsSettings-DkgYYSHS.js +0 -7
  403. package/dist/client/assets/LazyBrowserPanel-D4e76vc_.js +0 -2
  404. package/dist/client/assets/McpServersSettings-Dc1kPa-X.js +0 -6
  405. package/dist/client/assets/MobileSheet-lT--mLEz.js +0 -1
  406. package/dist/client/assets/NodeSecuritySettings-DcfSx4KT.js +0 -1
  407. package/dist/client/assets/NullStore-8d2s-Re3.js +0 -1
  408. package/dist/client/assets/OnboardingDialog-CnLjwM6Z.js +0 -1
  409. package/dist/client/assets/OpinionatedPluginsSettings-BTJyS3rN.js +0 -1
  410. package/dist/client/assets/PhoneHome-CIMkuDJF.js +0 -1
  411. package/dist/client/assets/PhoneSettingsSurface-CfZQxJNI.js +0 -2
  412. package/dist/client/assets/ProvidersSettingsPanel-DAVSiwE1.js +0 -1
  413. package/dist/client/assets/RedactedSensitiveText-BHGbQJwB.js +0 -1
  414. package/dist/client/assets/RootAppShell-T056pByH.js +0 -7
  415. package/dist/client/assets/SettingsDialog-BERU2Qg7.js +0 -2
  416. package/dist/client/assets/SettingsPanels-De_XZOQF.js +0 -3
  417. package/dist/client/assets/SettingsPanels.editor-Dkva9gX_.js +0 -2
  418. package/dist/client/assets/SourceControlSettings-B4HS17cB.js +0 -1
  419. package/dist/client/assets/StatisticsPage-Bj2ftFdH.js +0 -1
  420. package/dist/client/assets/StatisticsPanel-Dw7GBBmd.js +0 -1
  421. package/dist/client/assets/StatisticsSettingsLink-_XL3ABoI.js +0 -1
  422. package/dist/client/assets/ThreadTerminalDrawer-CPPzQSXN.js +0 -18
  423. package/dist/client/assets/ThreadWorkspacePanel-DWKU7Omm.js +0 -2073
  424. package/dist/client/assets/appChrome-TkWLAGxk.js +0 -1
  425. package/dist/client/assets/architecture-7GRP2DOG-HS59zfrk.js +0 -1
  426. package/dist/client/assets/authorization-D8dOcEYq.js +0 -1
  427. package/dist/client/assets/badge-2AZ3HfVS.js +0 -1
  428. package/dist/client/assets/capabilities-CsHjxjab.js +0 -1
  429. package/dist/client/assets/channel-Dn3_cOkm.js +0 -1
  430. package/dist/client/assets/chevron-right-Dsw16yGn.js +0 -1
  431. package/dist/client/assets/classDiagram-JCYQIIEL-ZQvrS8No.js +0 -1
  432. package/dist/client/assets/classDiagram-v2-OCEON4UE-ZQvrS8No.js +0 -1
  433. package/dist/client/assets/compiler-runtime-C4g8XhC5.js +0 -1
  434. package/dist/client/assets/desktopWorkspace-_iM6B9Kf.js +0 -1
  435. package/dist/client/assets/editorPreferences-D8q1ItMW.js +0 -1
  436. package/dist/client/assets/eventmodeling-NTZA5JFV-Dj71kuPV.js +0 -1
  437. package/dist/client/assets/flowDiagram-UKHOOZJN-BaAiwuvL.js +0 -1
  438. package/dist/client/assets/hostedConnectionCoordinator-BuRWCvUG.js +0 -1
  439. package/dist/client/assets/hubRoutes-jcMPIFy3.js +0 -1
  440. package/dist/client/assets/kbd-Dxm5Elqj.js +0 -1
  441. package/dist/client/assets/layers-Dqez1Uq8.js +0 -1
  442. package/dist/client/assets/liquidGlass-CA2o_Cq0.js +0 -1
  443. package/dist/client/assets/liquidGlass.worker-icvLJKHf.js +0 -1
  444. package/dist/client/assets/main-BqSANuAs.css +0 -2
  445. package/dist/client/assets/main-DAbEANjY.js +0 -9
  446. package/dist/client/assets/motion-BdscFixQ.js +0 -1
  447. package/dist/client/assets/palette-92ylWqeC.js +0 -1
  448. package/dist/client/assets/perfInstrumentation-BT27w4tn.js +0 -1
  449. package/dist/client/assets/presentationTier-xlIjcFab.js +0 -1
  450. package/dist/client/assets/primary-DZjgHvyf.js +0 -5
  451. package/dist/client/assets/providerDriverMeta-T2YbXzuS.js +0 -1
  452. package/dist/client/assets/providerStatus-DBGvvkyF.js +0 -1
  453. package/dist/client/assets/radio-group-CRnHYWa8.js +0 -1
  454. package/dist/client/assets/railroad-abnf-HS5TGJTU-DxU7Mt1k.js +0 -1
  455. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BYAPVjRd.js +0 -1
  456. package/dist/client/assets/railroad-peg-WCYAUIDC-BOqgR_X7.js +0 -1
  457. package/dist/client/assets/runtime-BwHA1GUS.js +0 -18
  458. package/dist/client/assets/scroll-area-7n2X_RLQ.js +0 -1
  459. package/dist/client/assets/separator-CL1qjMqJ.js +0 -1
  460. package/dist/client/assets/settingsLayout-DxsFwhF0.js +0 -1
  461. package/dist/client/assets/sheet-CGiaw8-i.js +0 -1
  462. package/dist/client/assets/sidebar-Cc6ANbOP.js +0 -1
  463. package/dist/client/assets/sidebarProjectFolders-DO2Uv84F.js +0 -4
  464. package/dist/client/assets/sidebarStatusText-B4AtFXZo.js +0 -1
  465. package/dist/client/assets/sidebarUndo-gdSrfa4O.js +0 -1
  466. package/dist/client/assets/square-Cr9X8U6y.js +0 -1
  467. package/dist/client/assets/src-C3Y_imaX.js +0 -14
  468. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-CWtHILqh.js +0 -1
  469. package/dist/client/assets/storeSelectors-CTDWheMy.js +0 -1
  470. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-DuaPce9O.js +0 -8
  471. package/dist/client/assets/switch-DnpJB2xv.js +0 -48
  472. package/dist/client/assets/toggle-D10FsFoE.js +0 -1
  473. package/dist/client/assets/toggle-group-BhzbQPEQ.js +0 -1
  474. package/dist/client/assets/tooltip-BlweKBxc.js +0 -1
  475. package/dist/client/assets/usage-BBwaxMif.js +0 -1
  476. package/dist/client/assets/useAppSidebarCollapsed-CFy476E3.js +0 -1
  477. package/dist/client/assets/useAppearancePreference-Dlh9P8iu.js +0 -1
  478. package/dist/client/assets/useBaseUiId-DKOjzmu3.js +0 -1
  479. package/dist/client/assets/useLabelableId-DQbY2GG1.js +0 -1
  480. package/dist/client/assets/useNavigate-B8oXtF30.js +0 -1
  481. package/dist/client/assets/usePhoneThreadActions-6DCLiyJ5.js +0 -1
  482. package/dist/client/assets/usePopupViewport-CNWcP7Od.js +0 -1
  483. package/dist/client/assets/usePresentationTier-hxB7Yv_Q.js +0 -1
  484. package/dist/client/assets/useScrollLock-BbKeKZdj.js +0 -1
  485. package/dist/client/assets/useTriggerFocusGuards-BC4Wb3GI.js +0 -1
  486. package/dist/client/assets/useValueChanged-BkTbyZdO.js +0 -1
  487. package/dist/client/assets/workspaceMetadataProjection-aqZEXDrQ.js +0 -1
  488. package/dist/collectUint8StreamText-BAUF-vzz.mjs +0 -37
  489. package/dist/collectUint8StreamText-vagpNUMJ.cjs +0 -42
  490. package/dist/git-9xWsJYIH.mjs +0 -132
  491. package/dist/git-xIkXFy_l.cjs +0 -218
  492. package/dist/sourceControl-B0D1Op29.cjs +0 -253
  493. package/dist/sourceControl-BiEBxN01.mjs +0 -224
@@ -280,6 +280,10 @@ const ExecutionEnvironmentCapabilities = Schema.Struct({
280
280
  threadSettlement: Schema.Boolean.pipe(Schema.withDecodingDefault(Effect.succeed(false))),
281
281
  threadPriorityRanking: Schema.Boolean.pipe(Schema.withDecodingDefault(Effect.succeed(false))),
282
282
  worktreeSubmoduleSettings: Schema.optionalKey(Schema.Boolean),
283
+ /** Usage-limit settings and the resume/snooze worker; absent on older servers. */
284
+ usageLimitRecovery: Schema.optionalKey(Schema.Boolean),
285
+ /** Server-owned worktree notes (`notes.list` / `notes.command`); absent on older servers. */
286
+ worktreeNotes: Schema.optionalKey(Schema.Boolean),
283
287
  fileAttachments: Schema.optional(Schema.Struct({ maxUploadBytes: NonNegativeInt }))
284
288
  });
285
289
  const ExecutionEnvironmentDescriptor = Schema.Struct({
@@ -1827,6 +1831,12 @@ const DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH = "/api/desktop/hub/native-node-
1827
1831
  const DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH = "/api/desktop/hub/native-node-claim/sign";
1828
1832
  const DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH = "/api/desktop/hub/native-node-claim/commit";
1829
1833
  const DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES = 16384;
1834
+ /**
1835
+ * Desktop main asks its own backend, over the same per-child local control
1836
+ * channel, whether other devices can reach this node through the Hub, to keep
1837
+ * the machine awake only while they can.
1838
+ */
1839
+ const DESKTOP_HUB_REACHABILITY_PATH = "/api/desktop/hub/reachability";
1830
1840
  const strict = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
1831
1841
  strict(Schema.Struct({
1832
1842
  protocolVersion: Schema.Literal(1),
@@ -1864,6 +1874,15 @@ strict(Schema.Struct({
1864
1874
  status: Schema.Literal("active"),
1865
1875
  result: NativeNodeClaimFinishResponse
1866
1876
  }));
1877
+ strict(Schema.Struct({
1878
+ protocolVersion: Schema.Literal(1),
1879
+ reachable: Schema.Boolean,
1880
+ /**
1881
+ * Whether the backend runs its connector at all. A standby launch can
1882
+ * resolve to off, which only a relaunch with an explicit enable changes.
1883
+ */
1884
+ connectorEnabled: Schema.Boolean
1885
+ }));
1867
1886
  strict(Schema.Struct({ error: Schema.Literals([
1868
1887
  "native_node_claim_unavailable",
1869
1888
  "native_node_claim_rejected",
@@ -2551,6 +2570,14 @@ const MODEL_SLUG_ALIASES_BY_PROVIDER = {
2551
2570
  [GROK_DRIVER_KIND]: {},
2552
2571
  [OPENCODE_DRIVER_KIND]: {}
2553
2572
  };
2573
+ const PROVIDER_DISPLAY_NAMES = {
2574
+ [CODEX_DRIVER_KIND]: "Codex",
2575
+ [CLAUDE_DRIVER_KIND]: "Claude",
2576
+ [COPILOT_DRIVER_KIND]: "GitHub Copilot",
2577
+ [CURSOR_DRIVER_KIND]: "Cursor",
2578
+ [GROK_DRIVER_KIND]: "Grok",
2579
+ [OPENCODE_DRIVER_KIND]: "OpenCode"
2580
+ };
2554
2581
  const ThreadPriorityTier = Schema.Literals([
2555
2582
  "now",
2556
2583
  "soon",
@@ -2757,13 +2784,67 @@ const SourceControlCheckRollupItem = Schema.Struct({
2757
2784
  conclusion: Schema.Option(TrimmedNonEmptyString),
2758
2785
  url: Schema.Option(TrimmedNonEmptyString),
2759
2786
  startedAt: Schema.Option(Schema.DateTimeUtc),
2760
- completedAt: Schema.Option(Schema.DateTimeUtc)
2787
+ completedAt: Schema.Option(Schema.DateTimeUtc),
2788
+ /**
2789
+ * The base branch's protection requires this check to pass before merging.
2790
+ * Absent when the host did not say (list rows, hosts without the concept,
2791
+ * or a failed lookup), which is not the same as `false`.
2792
+ */
2793
+ isRequired: Schema.optional(Schema.Boolean)
2761
2794
  });
2762
2795
  const SourceControlLabel = Schema.Struct({
2763
2796
  name: TrimmedNonEmptyString,
2764
2797
  color: Schema.optional(TrimmedNonEmptyString),
2765
2798
  description: Schema.optional(TrimmedNonEmptyString)
2766
2799
  });
2800
+ /** Aggregate review verdict as reported by the host (GitHub `reviewDecision`). */
2801
+ const SourceControlChangeRequestReviewDecision = Schema.Literals([
2802
+ "approved",
2803
+ "changes_requested",
2804
+ "review_required"
2805
+ ]);
2806
+ /**
2807
+ * Why a change request can or cannot merge right now (GitHub `mergeStateStatus`,
2808
+ * lower-cased). `behind` means the head needs the base merged in; `blocked`
2809
+ * means required reviews or checks are missing; `dirty` means conflicts.
2810
+ */
2811
+ const SourceControlChangeRequestMergeStateStatus = Schema.Literals([
2812
+ "behind",
2813
+ "blocked",
2814
+ "clean",
2815
+ "dirty",
2816
+ "draft",
2817
+ "has_hooks",
2818
+ "unknown",
2819
+ "unstable"
2820
+ ]);
2821
+ /** One reviewer's latest standing on a change request. `requested` = asked, not yet reviewed. */
2822
+ const SourceControlChangeRequestReviewerState = Schema.Literals([
2823
+ "approved",
2824
+ "changes_requested",
2825
+ "commented",
2826
+ "dismissed",
2827
+ "requested"
2828
+ ]);
2829
+ const SourceControlChangeRequestReviewer = Schema.Struct({
2830
+ /** User login, or `org/team-slug` for team review requests. */
2831
+ login: TrimmedNonEmptyString,
2832
+ kind: Schema.Literals([
2833
+ "user",
2834
+ "team",
2835
+ "bot"
2836
+ ]),
2837
+ state: SourceControlChangeRequestReviewerState,
2838
+ avatarUrl: Schema.optional(Schema.String),
2839
+ submittedAt: Schema.optional(Schema.DateTimeUtc),
2840
+ /** True when the request came from CODEOWNERS. */
2841
+ isCodeOwner: Schema.optional(Schema.Boolean)
2842
+ });
2843
+ const SourceControlChangeRequestAutoMerge = Schema.Struct({
2844
+ mergeMethod: SourceControlChangeRequestMergeMethod,
2845
+ enabledBy: Schema.optional(TrimmedNonEmptyString),
2846
+ enabledAt: Schema.optional(Schema.DateTimeUtc)
2847
+ });
2767
2848
  const ChangeRequest = Schema.Struct({
2768
2849
  provider: SourceControlProviderKind,
2769
2850
  number: PositiveInt,
@@ -2783,8 +2864,20 @@ const ChangeRequest = Schema.Struct({
2783
2864
  headRepositoryOwnerLogin: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)),
2784
2865
  headSha: Schema.optional(TrimmedNonEmptyString),
2785
2866
  mergeability: Schema.optional(SourceControlChangeRequestMergeability),
2867
+ /**
2868
+ * Why it can or cannot merge right now. Always on the detail where the host
2869
+ * reports readiness; on list rows only where the list payload carries it
2870
+ * (GitLab's `detailed_merge_status`).
2871
+ */
2872
+ mergeStateStatus: Schema.optional(SourceControlChangeRequestMergeStateStatus),
2786
2873
  checkRollup: Schema.optional(Schema.Array(SourceControlCheckRollupItem)),
2787
- stackSummary: Schema.optional(SourceControlChangeRequestStackSummary)
2874
+ stackSummary: Schema.optional(SourceControlChangeRequestStackSummary),
2875
+ createdAt: Schema.optional(Schema.DateTimeUtc),
2876
+ reviewDecision: Schema.optional(Schema.NullOr(SourceControlChangeRequestReviewDecision)),
2877
+ additions: Schema.optional(NonNegativeInt),
2878
+ deletions: Schema.optional(NonNegativeInt),
2879
+ /** Files touched (list rows waiting on the viewer's review show it). */
2880
+ changedFiles: Schema.optional(NonNegativeInt)
2788
2881
  });
2789
2882
  const SOURCE_CONTROL_DETAIL_BODY_MAX_BYTES = 8192;
2790
2883
  const SOURCE_CONTROL_DETAIL_COMMENT_BODY_MAX_BYTES = 2048;
@@ -2869,11 +2962,11 @@ const SourceControlCreateIssueInput = Schema.Struct({
2869
2962
  assignees: Schema.optional(Schema.Array(TrimmedNonEmptyString)),
2870
2963
  worktree: Schema.optional(SourceControlCreateIssueWorktree)
2871
2964
  });
2872
- const NonBlankMarkdownBody = Schema.String.check(Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
2965
+ const NonBlankMarkdownBody$1 = Schema.String.check(Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
2873
2966
  const SourceControlAddIssueCommentInput = Schema.Struct({
2874
2967
  cwd: TrimmedNonEmptyString,
2875
2968
  reference: TrimmedNonEmptyString,
2876
- body: NonBlankMarkdownBody,
2969
+ body: NonBlankMarkdownBody$1,
2877
2970
  clientMutationId: Schema.optional(TrimmedNonEmptyString)
2878
2971
  });
2879
2972
  const SourceControlAddIssueCommentResult = Schema.Struct({ detail: SourceControlIssueDetail });
@@ -2919,12 +3012,24 @@ const SourceControlChangeRequestDetail = Schema.Struct({
2919
3012
  files: Schema.optional(Schema.Array(SourceControlChangeRequestFile)),
2920
3013
  stack: Schema.optional(SourceControlChangeRequestStack),
2921
3014
  stackMetadataIncomplete: Schema.optional(Schema.Boolean),
2922
- mergeCapabilities: Schema.optional(SourceControlChangeRequestMergeCapabilities)
3015
+ mergeCapabilities: Schema.optional(SourceControlChangeRequestMergeCapabilities),
3016
+ /** Per-reviewer latest state, including pending (requested) reviewers. */
3017
+ reviewerStates: Schema.optional(Schema.Array(SourceControlChangeRequestReviewer)),
3018
+ autoMerge: Schema.optional(Schema.NullOr(SourceControlChangeRequestAutoMerge)),
3019
+ closedAt: Schema.optional(Schema.DateTimeUtc),
3020
+ mergedAt: Schema.optional(Schema.DateTimeUtc),
3021
+ mergedBy: Schema.optional(TrimmedNonEmptyString),
3022
+ /** True when the host deletes the head branch automatically after merge. */
3023
+ deleteBranchOnMerge: Schema.optional(Schema.Boolean)
2923
3024
  });
2924
3025
  const SourceControlMergeChangeRequestInput = Schema.Struct({
2925
3026
  cwd: TrimmedNonEmptyString,
2926
3027
  reference: TrimmedNonEmptyString,
2927
- mergeMethod: SourceControlChangeRequestMergeMethod
3028
+ mergeMethod: SourceControlChangeRequestMergeMethod,
3029
+ /** Delete the head branch after a successful (non-queued) merge. */
3030
+ deleteBranch: Schema.optional(Schema.Boolean),
3031
+ /** Refuse to merge when the head moved since the user looked. */
3032
+ expectedHeadSha: Schema.optional(TrimmedNonEmptyString)
2928
3033
  });
2929
3034
  const SourceControlMergeChangeRequestResult = Schema.Struct({ outcome: Schema.Literals(["merged", "enqueued"]) });
2930
3035
  const SOURCE_CONTROL_WORKFLOW_LOG_MAX_BYTES = 204800;
@@ -2941,6 +3046,12 @@ const SourceControlWorkflowRun = Schema.Struct({
2941
3046
  branch: Schema.Option(TrimmedNonEmptyString),
2942
3047
  event: Schema.optional(TrimmedNonEmptyString),
2943
3048
  commit: SourceControlWorkflowRunCommit,
3049
+ /**
3050
+ * The change request head this run verifies when `commit` is not the head
3051
+ * itself but a merge of it into the target (GitLab merged-results and
3052
+ * merge-train pipelines). Absent when the run is on the head commit.
3053
+ */
3054
+ sourceHeadOid: Schema.optional(TrimmedNonEmptyString),
2944
3055
  actor: Schema.Option(TrimmedNonEmptyString),
2945
3056
  status: TrimmedNonEmptyString,
2946
3057
  conclusion: Schema.Option(TrimmedNonEmptyString),
@@ -3029,7 +3140,7 @@ const SourceControlWorkflowRerunResult = Schema.Struct({
3029
3140
  const SourceControlAddChangeRequestCommentInput = Schema.Struct({
3030
3141
  cwd: TrimmedNonEmptyString,
3031
3142
  reference: TrimmedNonEmptyString,
3032
- body: NonBlankMarkdownBody,
3143
+ body: NonBlankMarkdownBody$1,
3033
3144
  clientMutationId: Schema.optional(TrimmedNonEmptyString)
3034
3145
  });
3035
3146
  const SourceControlAddChangeRequestCommentResult = Schema.Struct({ detail: SourceControlChangeRequestDetail });
@@ -3506,6 +3617,8 @@ const StatusBucket = Schema.Literals([
3506
3617
  "done"
3507
3618
  ]);
3508
3619
  const WorktreeCheckoutLocation = Schema.Literals(["appManaged", "projectMetadata"]);
3620
+ /** Why a workspace record no longer has a checkout: removed by Ryco, or found missing. */
3621
+ const WorktreeCheckoutRemovalReason = Schema.Literals(["removed", "missing"]);
3509
3622
  const Worktree = Schema.Struct({
3510
3623
  worktreeId: WorktreeId,
3511
3624
  projectId: ProjectId,
@@ -3520,6 +3633,12 @@ const Worktree = Schema.Struct({
3520
3633
  prState: Schema.optional(Schema.NullOr(PullRequestState)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
3521
3634
  prIsDraft: Schema.optional(Schema.NullOr(Schema.Boolean)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
3522
3635
  issueState: Schema.optional(Schema.NullOr(IssueState)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
3636
+ /**
3637
+ * When the PR reached its current merged/closed state (forge time, else first
3638
+ * observation). `null` while open, unknown, or absent. No decoding default:
3639
+ * an absent key means the server predates the field (legacy settlement rule).
3640
+ */
3641
+ prTerminalAt: Schema.optional(Schema.NullOr(IsoDateTime)),
3523
3642
  workItemProvider: Schema.optional(Schema.NullOr(WorkItemProviderKind)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
3524
3643
  workItemKey: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
3525
3644
  workItemTitle: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
@@ -3529,6 +3648,12 @@ const Worktree = Schema.Struct({
3529
3648
  createdAt: IsoDateTime,
3530
3649
  updatedAt: IsoDateTime,
3531
3650
  archivedAt: Schema.NullOr(IsoDateTime),
3651
+ /**
3652
+ * Set once the physical checkout is gone (removed or found missing). The record,
3653
+ * `worktreePath` and `branch` stay as provenance. Optional so older peers decode.
3654
+ */
3655
+ checkoutRemovedAt: Schema.optional(Schema.NullOr(IsoDateTime)),
3656
+ checkoutRemovalReason: Schema.optional(Schema.NullOr(WorktreeCheckoutRemovalReason)),
3532
3657
  manualPosition: Schema.Number
3533
3658
  });
3534
3659
  const CreateWorktreeIntent = Schema.Union([
@@ -3650,6 +3775,13 @@ const CONTEXT_HANDOFF_ERROR_MAX_CHARS = 2e3;
3650
3775
  const CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES = 131072;
3651
3776
  const CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES = 98304;
3652
3777
  const ContextHandoffMode = Schema.Literal("full-context-fresh-session");
3778
+ /**
3779
+ * Why a thread handed its context to a fresh session:
3780
+ * - `model-change`: the user switched to another provider instance.
3781
+ * - `cwd-relocation`: the thread's working directory moved (for example, a chat became a project)
3782
+ * and the provider cannot resume its conversation there.
3783
+ */
3784
+ const ContextHandoffReason = Schema.Literals(["model-change", "cwd-relocation"]);
3653
3785
  const ContextHandoffEndpointSnapshot = Schema.Struct({
3654
3786
  providerInstanceId: ProviderInstanceId,
3655
3787
  driverKind: ProviderDriverKind,
@@ -3675,6 +3807,8 @@ const ContextHandoffActivityBaseFields = {
3675
3807
  schemaVersion: Schema.Literal(1),
3676
3808
  handoffId: ContextHandoffId,
3677
3809
  mode: ContextHandoffMode,
3810
+ /** Absent on records written before reasons existed: those are model changes. */
3811
+ reason: Schema.optional(ContextHandoffReason),
3678
3812
  targetMessageId: MessageId,
3679
3813
  targetTurnId: Schema.optional(TurnId),
3680
3814
  sourceSelection: ModelSelection,
@@ -3730,6 +3864,44 @@ const ContextHandoffActivityPayload = Schema.Union([
3730
3864
  inspection: Schema.optional(ContextHandoffInspectionSummaryMetadata)
3731
3865
  })
3732
3866
  ]);
3867
+ /**
3868
+ * Lifecycle activity journaling one checkpoint revert. Its id is
3869
+ * `checkpoint-revert:<revertRequestId>`; every phase replaces the same row.
3870
+ */
3871
+ const CHECKPOINT_REVERT_ACTIVITY_KIND = "checkpoint.revert";
3872
+ const CheckpointRevertStatus = Schema.Literals([
3873
+ "requested",
3874
+ "rolling-back",
3875
+ "restoring-files",
3876
+ "completed",
3877
+ "files-not-restored",
3878
+ "failed",
3879
+ "interrupted"
3880
+ ]);
3881
+ const CheckpointRevertFailureReason = Schema.Literals([
3882
+ "thread-busy",
3883
+ "target-unavailable",
3884
+ "handoff-boundary",
3885
+ "not-git",
3886
+ "shared-checkout",
3887
+ "provider-unsupported",
3888
+ "provider-failed",
3889
+ "files-failed",
3890
+ "restart",
3891
+ "internal-error"
3892
+ ]);
3893
+ const CheckpointRevertActivityPayload = Schema.Struct({
3894
+ schemaVersion: Schema.Literal(1),
3895
+ revertRequestId: CommandId,
3896
+ /** Target checkpoint K. */
3897
+ turnCount: NonNegativeInt,
3898
+ fromTurnCount: Schema.optional(NonNegativeInt),
3899
+ status: CheckpointRevertStatus,
3900
+ reason: Schema.optional(CheckpointRevertFailureReason),
3901
+ detail: Schema.optional(TrimmedNonEmptyString),
3902
+ /** Restore cwd, recorded from "rolling-back" on so startup recovery can finish. */
3903
+ cwd: Schema.optional(TrimmedNonEmptyString)
3904
+ });
3733
3905
  const ContextHandoffInspectionScope = Schema.Literals(["sent", "complete"]);
3734
3906
  const ContextHandoffInspectionSection = Schema.Literals([
3735
3907
  "messages",
@@ -3941,6 +4113,25 @@ const UploadChatImageAttachment = Schema.Struct({
3941
4113
  sizeBytes: NonNegativeInt.check(Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES)),
3942
4114
  dataUrl: TrimmedNonEmptyString.check(Schema.isMaxLength(PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS))
3943
4115
  });
4116
+ /**
4117
+ * Marks a `text/html` file attachment as an agent HTML render: a page the agent
4118
+ * published with `ryco_html_render` for clients to show inline in the thread.
4119
+ * Deliberately loose (any finite numbers, no length caps) so a newer server's
4120
+ * metadata can never fail an older client's decode; `@ryco/shared/htmlRender`
4121
+ * `readHtmlRenderMetadata` clamps it before use.
4122
+ */
4123
+ const ChatHtmlRenderMetadata = Schema.Struct({
4124
+ title: Schema.String,
4125
+ /** The agent's frame height in CSS pixels, and the cap on any measured height. */
4126
+ height: Schema.Finite,
4127
+ /** `[width, contentHeight]` pairs measured at publish; absent when not measured. */
4128
+ heights: Schema.optional(Schema.Array(Schema.Tuple([Schema.Finite, Schema.Finite]))),
4129
+ /** Small `data:image/...` screenshots of the page's top per appearance; absent when not captured. */
4130
+ thumbnails: Schema.optional(Schema.Struct({
4131
+ dark: Schema.optional(Schema.String),
4132
+ light: Schema.optional(Schema.String)
4133
+ }))
4134
+ });
3944
4135
  const ChatFileAttachment = Schema.Struct({
3945
4136
  type: Schema.Literal("file"),
3946
4137
  id: ChatAttachmentId,
@@ -3948,7 +4139,8 @@ const ChatFileAttachment = Schema.Struct({
3948
4139
  mimeType: ChatAttachmentMimeType,
3949
4140
  sizeBytes: NonNegativeInt.check(Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES)),
3950
4141
  width: Schema.optional(NonNegativeInt),
3951
- height: Schema.optional(NonNegativeInt)
4142
+ height: Schema.optional(NonNegativeInt),
4143
+ htmlRender: Schema.optional(ChatHtmlRenderMetadata)
3952
4144
  });
3953
4145
  const CHAT_ATTACHMENT_READ_CHUNK_BYTES = 262144;
3954
4146
  const ChatAttachmentReadChunkInput = Schema.Struct({
@@ -4026,8 +4218,18 @@ const ProjectScript = Schema.Struct({
4026
4218
  const ProjectCustomSystemPrompt = TrimmedNonEmptyString.check(Schema.isMaxLength(2e4));
4027
4219
  const DEFAULT_PROJECT_METADATA_DIR = ".ryco";
4028
4220
  const ProjectMetadataDir = TrimmedNonEmptyString.check(Schema.isMaxLength(256), Schema.isPattern(/^(?![\\/])(?!~)(?![A-Za-z]:[\\/])(?!.*(?:^|[\\/])\.\.(?:[\\/]|$)).+$/));
4221
+ /**
4222
+ * `chat` backs a "No project" chat: one project record per chat, rooted in a Ryco-managed
4223
+ * plain folder under the chats root. Promotion turns it into a regular `project`, never back.
4224
+ * Read it through `@ryco/shared/projectKind`, which treats an absent kind as `project`.
4225
+ */
4226
+ const ProjectKind = Schema.Literals(["project", "chat"]);
4227
+ const DEFAULT_PROJECT_KIND = "project";
4228
+ /** Absent on snapshots, events and nodes that predate chats; those only had regular projects. */
4229
+ const OptionalProjectKind = Schema.optional(ProjectKind).pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_PROJECT_KIND)));
4029
4230
  const OrchestrationProject = Schema.Struct({
4030
4231
  id: ProjectId,
4232
+ kind: OptionalProjectKind,
4031
4233
  title: TrimmedNonEmptyString,
4032
4234
  workspaceRoot: TrimmedNonEmptyString,
4033
4235
  projectMetadataDir: Schema.optional(ProjectMetadataDir).pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
@@ -4047,6 +4249,19 @@ const OrchestrationMessageRole = Schema.Literals([
4047
4249
  "system"
4048
4250
  ]);
4049
4251
  const TurnDispatchMode = Schema.Literals(["queue", "steer"]);
4252
+ /**
4253
+ * Why a steer was not applied. `deferred`: the message stays queued and is sent as the next turn
4254
+ * (the turn ended, or the provider could not take it right now). `failed`: a real provider error.
4255
+ * Absent on older events, which read as `failed`.
4256
+ */
4257
+ const TurnSteerRejectionReason = Schema.Literals(["deferred", "failed"]);
4258
+ /**
4259
+ * Set on a `failed` steer rejection the provider may still have received (a restart cut off its
4260
+ * delivery). Clients hold such a message for an explicit retry or removal instead of sending it
4261
+ * again as the next turn. An optional flag rather than a third reason, so older clients that
4262
+ * decode the event keep working and read it as a plain failure.
4263
+ */
4264
+ const TurnSteerDeliveryUncertain = Schema.optionalKey(Schema.Boolean);
4050
4265
  const OrchestrationMessage = Schema.Struct({
4051
4266
  id: MessageId,
4052
4267
  role: OrchestrationMessageRole,
@@ -4137,6 +4352,31 @@ const OrchestrationLatestTurnState = Schema.Literals([
4137
4352
  "completed",
4138
4353
  "error"
4139
4354
  ]);
4355
+ /**
4356
+ * Frozen set of states a turn can end in. New outcomes (for example usage limits)
4357
+ * go into `reason` or a separate field, never into this literal set.
4358
+ */
4359
+ const OrchestrationTerminalTurnState = Schema.Literals([
4360
+ "completed",
4361
+ "error",
4362
+ "interrupted"
4363
+ ]);
4364
+ /** Server-internal: what the caller knows about how the active turn ended. */
4365
+ const OrchestrationTurnOutcome = Schema.Struct({
4366
+ /** Omitted = "the turn this release ends", whichever it is. */
4367
+ turnId: Schema.optional(TurnId),
4368
+ state: OrchestrationTerminalTurnState,
4369
+ /** Open diagnostic string (see TURN_FINALIZATION_REASON). Never a closed literal set. */
4370
+ reason: TrimmedNonEmptyString,
4371
+ completedAt: Schema.optional(IsoDateTime)
4372
+ });
4373
+ /** Decided by the server: the turn this session-set releases, and how it ended. */
4374
+ const OrchestrationReleasedTurn = Schema.Struct({
4375
+ turnId: TurnId,
4376
+ state: OrchestrationTerminalTurnState,
4377
+ completedAt: IsoDateTime,
4378
+ reason: TrimmedNonEmptyString
4379
+ });
4140
4380
  const OrchestrationLatestTurn = Schema.Struct({
4141
4381
  userMessageId: Schema.optional(MessageId),
4142
4382
  turnId: TurnId,
@@ -4147,6 +4387,42 @@ const OrchestrationLatestTurn = Schema.Struct({
4147
4387
  assistantMessageId: Schema.NullOr(MessageId),
4148
4388
  sourceProposedPlan: Schema.optional(SourceProposedPlanReference)
4149
4389
  });
4390
+ const ThreadUsageLimitId = TrimmedNonEmptyString.check(Schema.isMaxLength(512));
4391
+ /**
4392
+ * A provider usage limit stopped this thread's turn. Durable until a turn starts, the
4393
+ * thread is archived or reverted; it only gates the thread while
4394
+ * `modelSelection.instanceId === providerInstanceId`.
4395
+ */
4396
+ const ThreadUsageLimit = Schema.Struct({
4397
+ /** "usage-limit:<threadId>:<turnId>" */
4398
+ limitId: ThreadUsageLimitId,
4399
+ provider: ProviderDriverKind,
4400
+ providerInstanceId: ProviderInstanceId,
4401
+ turnId: TurnId,
4402
+ message: TrimmedNonEmptyString.check(Schema.isMaxLength(1e3)),
4403
+ limitedAt: IsoDateTime,
4404
+ resetAt: Schema.NullOr(IsoDateTime),
4405
+ /** null follows ServerSettings.autoResumeLimitedThreads; a boolean is an explicit per-thread override. */
4406
+ autoResume: Schema.NullOr(Schema.Boolean),
4407
+ updatedAt: IsoDateTime
4408
+ });
4409
+ /** Accepts the resume turn only while this exact limit is still recorded and idle. */
4410
+ const UsageLimitResumeGuard = Schema.Struct({
4411
+ limitId: ThreadUsageLimitId,
4412
+ origin: Schema.Literals(["auto", "manual"])
4413
+ });
4414
+ /**
4415
+ * Server-owned provenance of a thread created on behalf of another thread.
4416
+ * Absent on root threads. Immutable for a thread incarnation. Never authority.
4417
+ * `relationship` is deliberately an open string: a newer server may add kinds
4418
+ * without failing older clients' shell decode. Clients must treat values they
4419
+ * do not know as "no known relationship". Known values: "delegated".
4420
+ */
4421
+ const ThreadLineage = Schema.Struct({
4422
+ parentThreadId: ThreadId,
4423
+ rootThreadId: ThreadId,
4424
+ relationship: TrimmedNonEmptyString.check(Schema.isMaxLength(64))
4425
+ });
4150
4426
  const OrchestrationThread = Schema.Struct({
4151
4427
  id: ThreadId,
4152
4428
  projectId: ProjectId,
@@ -4162,6 +4438,8 @@ const OrchestrationThread = Schema.Struct({
4162
4438
  manualPosition: Schema.optional(Schema.Number),
4163
4439
  latestTurn: Schema.NullOr(OrchestrationLatestTurn),
4164
4440
  goal: Schema.optional(Schema.NullOr(ThreadGoal)).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
4441
+ /** Server-owned provenance; absent on root threads and from older servers. */
4442
+ lineage: Schema.optional(Schema.NullOr(ThreadLineage)),
4165
4443
  createdAt: IsoDateTime,
4166
4444
  updatedAt: IsoDateTime,
4167
4445
  archivedAt: Schema.NullOr(IsoDateTime).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
@@ -4169,14 +4447,25 @@ const OrchestrationThread = Schema.Struct({
4169
4447
  settledAt: Schema.NullOr(IsoDateTime).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
4170
4448
  snoozedUntil: Schema.optional(Schema.NullOr(IsoDateTime)),
4171
4449
  snoozedAt: Schema.optional(Schema.NullOr(IsoDateTime)),
4450
+ /** Optional so mixed-version snapshots decode; older clients strip it. */
4451
+ usageLimit: Schema.optional(Schema.NullOr(ThreadUsageLimit)),
4452
+ /**
4453
+ * Hidden from every live view. A trashed thread also carries `trashedAt` and keeps
4454
+ * its history and assets; without `trashedAt` the deletion is permanent.
4455
+ */
4172
4456
  deletedAt: Schema.NullOr(IsoDateTime),
4457
+ trashedAt: Schema.optional(Schema.NullOr(IsoDateTime)),
4173
4458
  messages: Schema.Array(OrchestrationMessage),
4174
4459
  proposedPlans: Schema.Array(OrchestrationProposedPlan).pipe(Schema.withDecodingDefault(Effect.succeed([]))),
4175
4460
  activities: Schema.Array(OrchestrationThreadActivity),
4176
4461
  checkpoints: Schema.Array(OrchestrationCheckpointSummary),
4177
4462
  session: Schema.NullOr(OrchestrationSession)
4178
4463
  });
4179
- const OrchestrationWorktreeShell = Worktree;
4464
+ const OrchestrationWorktreeShell = Schema.Struct({
4465
+ ...Worktree.fields,
4466
+ /** Retired managed path, so persisted drafts can retarget after a cold reconnect. */
4467
+ relocatedFromPath: Schema.optional(Schema.NullOr(TrimmedNonEmptyString))
4468
+ });
4180
4469
  const OrchestrationReadModel = Schema.Struct({
4181
4470
  snapshotSequence: NonNegativeInt,
4182
4471
  projects: Schema.Array(OrchestrationProject),
@@ -4186,6 +4475,7 @@ const OrchestrationReadModel = Schema.Struct({
4186
4475
  });
4187
4476
  const OrchestrationProjectShell = Schema.Struct({
4188
4477
  id: ProjectId,
4478
+ kind: OptionalProjectKind,
4189
4479
  title: TrimmedNonEmptyString,
4190
4480
  workspaceRoot: TrimmedNonEmptyString,
4191
4481
  projectMetadataDir: Schema.optional(ProjectMetadataDir).pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
@@ -4231,6 +4521,8 @@ const OrchestrationThreadShell = Schema.Struct({
4231
4521
  settledAt: Schema.NullOr(IsoDateTime).pipe(Schema.withDecodingDefault(Effect.succeed(null))),
4232
4522
  snoozedUntil: Schema.optional(Schema.NullOr(IsoDateTime)),
4233
4523
  snoozedAt: Schema.optional(Schema.NullOr(IsoDateTime)),
4524
+ /** Optional so mixed-version snapshots decode; older clients strip it. */
4525
+ usageLimit: Schema.optional(Schema.NullOr(ThreadUsageLimit)),
4234
4526
  session: Schema.NullOr(OrchestrationSession),
4235
4527
  latestUserMessageAt: Schema.NullOr(IsoDateTime),
4236
4528
  /** Last successful turn that is no longer active; absent on older servers. */
@@ -4244,6 +4536,8 @@ const OrchestrationThreadShell = Schema.Struct({
4244
4536
  * live work. Optional so old servers/clients interop; absent = none.
4245
4537
  */
4246
4538
  backgroundLiveness: Schema.optional(Schema.NullOr(Schema.Literals(["working", "monitoring"]))),
4539
+ /** Server-owned provenance; absent on root threads and from older servers. */
4540
+ lineage: Schema.optional(Schema.NullOr(ThreadLineage)),
4247
4541
  priority: Schema.optional(ThreadPriorityProjectedRanking)
4248
4542
  });
4249
4543
  const OrchestrationShellSnapshot = Schema.Struct({
@@ -4274,6 +4568,13 @@ const OrchestrationShellStreamEvent = Schema.Union([
4274
4568
  sequence: NonNegativeInt,
4275
4569
  worktree: OrchestrationWorktreeShell
4276
4570
  }),
4571
+ Schema.Struct({
4572
+ kind: Schema.Literal("worktree-relocated"),
4573
+ sequence: NonNegativeInt,
4574
+ worktree: OrchestrationWorktreeShell,
4575
+ sourcePath: TrimmedNonEmptyString,
4576
+ destinationPath: TrimmedNonEmptyString
4577
+ }),
4277
4578
  Schema.Struct({
4278
4579
  kind: Schema.Literal("thread-removed"),
4279
4580
  sequence: NonNegativeInt,
@@ -4355,7 +4656,13 @@ const OrchestrationSubscribeThreadWindowInput = Schema.Struct({
4355
4656
  const OrchestrationThreadWindowSnapshot = Schema.Struct({
4356
4657
  snapshotSequence: NonNegativeInt,
4357
4658
  thread: OrchestrationThread,
4358
- history: OrchestrationThreadHistoryState
4659
+ history: OrchestrationThreadHistoryState,
4660
+ /**
4661
+ * The directory the thread's next turn runs in (its worktree, else its project root), as the
4662
+ * server resolves it when starting a provider session. Absent from older servers and when the
4663
+ * thread has no resolvable project.
4664
+ */
4665
+ workspaceCwd: Schema.optional(TrimmedNonEmptyString)
4359
4666
  });
4360
4667
  const OrchestrationThreadHistoryPageMode = Schema.Struct({
4361
4668
  kind: Schema.Literal("before"),
@@ -4419,6 +4726,8 @@ const ProjectCreateCommand = Schema.Struct({
4419
4726
  type: Schema.Literal("project.create"),
4420
4727
  commandId: CommandId,
4421
4728
  projectId: ProjectId,
4729
+ /** Absent creates a regular project. */
4730
+ kind: Schema.optional(ProjectKind),
4422
4731
  title: TrimmedNonEmptyString,
4423
4732
  workspaceRoot: TrimmedNonEmptyString,
4424
4733
  projectMetadataDir: Schema.optional(ProjectMetadataDir).pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
@@ -4434,6 +4743,8 @@ const ProjectMetaUpdateCommand = Schema.Struct({
4434
4743
  projectId: ProjectId,
4435
4744
  /** Optional compare-and-set guard used by governed mutation flows. */
4436
4745
  expectedUpdatedAt: Schema.optional(IsoDateTime),
4746
+ /** Only `chat` -> `project` (promotion) is accepted; the same kind is a no-op. */
4747
+ kind: Schema.optional(ProjectKind),
4437
4748
  title: Schema.optional(TrimmedNonEmptyString),
4438
4749
  workspaceRoot: Schema.optional(TrimmedNonEmptyString),
4439
4750
  projectMetadataDir: Schema.optional(ProjectMetadataDir),
@@ -4472,11 +4783,29 @@ const ThreadCreateCommand = Schema.Struct({
4472
4783
  worktreePath: Schema.NullOr(TrimmedNonEmptyString),
4473
4784
  createdAt: IsoDateTime
4474
4785
  });
4786
+ /** Server-originated only (Agent Control). Never part of ClientOrchestrationCommand. */
4787
+ const ThreadDelegatedCreateCommand = Schema.Struct({
4788
+ ...ThreadCreateCommand.fields,
4789
+ type: Schema.Literal("thread.delegated.create"),
4790
+ parentThreadId: ThreadId
4791
+ });
4792
+ /** Permanent deletion. Only a trashed (or never-used) thread can be deleted. */
4475
4793
  const ThreadDeleteCommand = Schema.Struct({
4476
4794
  type: Schema.Literal("thread.delete"),
4477
4795
  commandId: CommandId,
4478
4796
  threadId: ThreadId
4479
4797
  });
4798
+ /** Recoverable removal: hidden everywhere, history and assets preserved. */
4799
+ const ThreadTrashCommand = Schema.Struct({
4800
+ type: Schema.Literal("thread.trash"),
4801
+ commandId: CommandId,
4802
+ threadId: ThreadId
4803
+ });
4804
+ const ThreadUntrashCommand = Schema.Struct({
4805
+ type: Schema.Literal("thread.untrash"),
4806
+ commandId: CommandId,
4807
+ threadId: ThreadId
4808
+ });
4480
4809
  const ThreadArchiveCommand = Schema.Struct({
4481
4810
  type: Schema.Literal("thread.archive"),
4482
4811
  commandId: CommandId,
@@ -4504,6 +4833,15 @@ const ThreadUnsnoozeCommand = Schema.Struct({
4504
4833
  commandId: CommandId,
4505
4834
  threadId: ThreadId
4506
4835
  });
4836
+ /** Per-thread auto-resume override for the thread's current usage limit. */
4837
+ const ThreadUsageLimitConfigureCommand = Schema.Struct({
4838
+ type: Schema.Literal("thread.usage-limit.configure"),
4839
+ commandId: CommandId,
4840
+ threadId: ThreadId,
4841
+ limitId: ThreadUsageLimitId,
4842
+ autoResume: Schema.NullOr(Schema.Boolean),
4843
+ createdAt: IsoDateTime
4844
+ });
4507
4845
  const ThreadSettleCommand = Schema.Struct({
4508
4846
  type: Schema.Literal("thread.settle"),
4509
4847
  commandId: CommandId,
@@ -4576,36 +4914,81 @@ const ThreadTurnStartBootstrapPrepareWorktree = Schema.Struct({
4576
4914
  baseBranch: TrimmedNonEmptyString,
4577
4915
  branch: Schema.optional(TrimmedNonEmptyString)
4578
4916
  });
4917
+ /**
4918
+ * Shown when work (a turn, provider session, terminal or file write) is refused because the chat's
4919
+ * folder is moving into a project. The move settles in moments, so retrying shortly succeeds.
4920
+ */
4921
+ const PROJECT_RELOCATION_PENDING_MESSAGE = "This chat is being moved into a project. Try again in a moment.";
4922
+ /**
4923
+ * First send of a "No project" chat. The server, not the client, allocates the chat folder
4924
+ * under its chats root, creates a `chat` project with `projectId` there, and then continues
4925
+ * with `createThread` for that project. Mutually exclusive with `prepareWorktree` and
4926
+ * `requireWorktree`: a chat folder is a plain directory, never a Git worktree.
4927
+ */
4928
+ const ThreadTurnStartBootstrapCreateChatProject = Schema.Struct({
4929
+ projectId: ProjectId,
4930
+ /** Seeds the chat title and its folder name; the folder name never changes afterwards. */
4931
+ titleSeed: TrimmedNonEmptyString.check(Schema.isMaxLength(200))
4932
+ });
4579
4933
  const ThreadTurnStartBootstrap = Schema.Struct({
4580
4934
  /** Reject a turn unless this bootstrap creates a fresh isolated Git worktree. */
4581
4935
  requireWorktree: Schema.optional(Schema.Boolean),
4936
+ createChatProject: Schema.optional(ThreadTurnStartBootstrapCreateChatProject),
4582
4937
  createThread: Schema.optional(ThreadTurnStartBootstrapCreateThread),
4583
4938
  prepareWorktree: Schema.optional(ThreadTurnStartBootstrapPrepareWorktree),
4584
4939
  runSetupScript: Schema.optional(Schema.Boolean)
4585
- });
4586
- /** Optimistic identity fence for delayed delegated-result queue delivery. */
4940
+ }).check(Schema.makeFilter((bootstrap) => {
4941
+ if (bootstrap.createChatProject === void 0) return void 0;
4942
+ if (bootstrap.prepareWorktree !== void 0 || bootstrap.requireWorktree === true) return "A chat without a project cannot also prepare a Git worktree";
4943
+ if (bootstrap.createThread?.projectId !== bootstrap.createChatProject.projectId) return "A chat without a project must create its first thread in that chat";
4944
+ }));
4945
+ /**
4946
+ * Delegated-result wake fence. Legacy fields (`turnMessageId`, `turnId`, `runtimeSessionId`,
4947
+ * `providerInstanceId`) are decoded for stored events and ledger commands and ignored.
4948
+ */
4587
4949
  const DelegationReturnGuard = Schema.Struct({
4588
- turnMessageId: MessageId,
4589
4950
  latestUserMessageId: Schema.NullOr(MessageId),
4590
4951
  projectId: ProjectId,
4591
- turnId: TurnId,
4592
- runtimeSessionId: RuntimeSessionId,
4593
- providerInstanceId: ProviderInstanceId,
4594
4952
  runtimeMode: RuntimeMode,
4595
- worktreePath: Schema.NullOr(Schema.String)
4953
+ worktreePath: Schema.NullOr(Schema.String),
4954
+ turnMessageId: Schema.optional(MessageId),
4955
+ turnId: Schema.optional(TurnId),
4956
+ runtimeSessionId: Schema.optional(RuntimeSessionId),
4957
+ providerInstanceId: Schema.optional(ProviderInstanceId)
4596
4958
  });
4597
4959
  const ClaudeResumeGuard = Schema.Struct({
4598
4960
  requireReady: Schema.Boolean,
4599
- runtimeSessionId: RuntimeSessionId,
4961
+ /**
4962
+ * The runtime the review saw. Null when the session had none (it was stopped): the send is
4963
+ * then accepted only while still no runtime is bound, so the review stays current until the
4964
+ * next turn starts one.
4965
+ */
4966
+ runtimeSessionId: Schema.NullOr(RuntimeSessionId),
4600
4967
  latestTurnId: Schema.NullOr(TurnId),
4601
4968
  modelSelection: ModelSelection
4602
4969
  });
4970
+ /**
4971
+ * Server-only optimistic fence for an automatic continuation after a restart. Never part
4972
+ * of `ClientThreadTurnStartCommand`: client decode strips it, so it cannot be forged.
4973
+ */
4974
+ const RestartContinuationGuard = Schema.Struct({
4975
+ sourceTurnId: TurnId,
4976
+ expectedLatestTurnState: Schema.Literals(["interrupted", "completed"]),
4977
+ latestUserMessageId: Schema.NullOr(MessageId),
4978
+ modelSelection: ModelSelection,
4979
+ runtimeMode: RuntimeMode,
4980
+ interactionMode: ProviderInteractionMode,
4981
+ worktreePath: Schema.NullOr(Schema.String),
4982
+ providerInstanceId: ProviderInstanceId
4983
+ });
4603
4984
  const ThreadTurnStartCommand = Schema.Struct({
4604
4985
  claudeResumeGuard: Schema.optional(ClaudeResumeGuard),
4986
+ restartContinuationGuard: Schema.optional(RestartContinuationGuard),
4605
4987
  computerUse: Schema.optionalKey(ComputerTurnIntent),
4606
4988
  projectMemory: Schema.optional(Schema.Never),
4607
4989
  type: Schema.Literal("thread.turn.start"),
4608
4990
  delegationReturnGuard: Schema.optional(DelegationReturnGuard),
4991
+ usageLimitResumeGuard: Schema.optional(UsageLimitResumeGuard),
4609
4992
  commandId: CommandId,
4610
4993
  threadId: ThreadId,
4611
4994
  message: Schema.Struct({
@@ -4631,6 +5014,7 @@ const ClientThreadTurnStartCommand = Schema.Struct({
4631
5014
  projectMemory: Schema.optional(Schema.Never),
4632
5015
  type: Schema.Literal("thread.turn.start"),
4633
5016
  delegationReturnGuard: Schema.optional(DelegationReturnGuard),
5017
+ usageLimitResumeGuard: Schema.optional(UsageLimitResumeGuard),
4634
5018
  commandId: CommandId,
4635
5019
  threadId: ThreadId,
4636
5020
  message: Schema.Struct({
@@ -4773,6 +5157,8 @@ const WorktreeSourceControlStateUpdateCommand = Schema.Struct({
4773
5157
  prTitle: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)),
4774
5158
  prState: Schema.NullOr(PullRequestState),
4775
5159
  prIsDraft: Schema.NullOr(Schema.Boolean),
5160
+ /** When the PR reached its current merged/closed state; see `Worktree.prTerminalAt`. */
5161
+ prTerminalAt: Schema.optional(Schema.NullOr(IsoDateTime)),
4776
5162
  issueState: Schema.NullOr(IssueState),
4777
5163
  updatedAt: IsoDateTime
4778
5164
  });
@@ -4784,6 +5170,11 @@ const WorktreeRestoreCommand = Schema.Struct({
4784
5170
  worktreePath: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)),
4785
5171
  restoredAt: IsoDateTime
4786
5172
  });
5173
+ /**
5174
+ * Drops a workspace record. Never touches conversations: the decider refuses while
5175
+ * any conversation (active, archived or trashed) still references the record.
5176
+ * `sessions` is decoded for stored commands only; "delete" is always refused.
5177
+ */
4787
5178
  const WorktreeDeleteCommand = Schema.Struct({
4788
5179
  sessions: Schema.optional(Schema.Literals(["preserve", "delete"])),
4789
5180
  type: Schema.Literal("worktree.delete"),
@@ -4793,6 +5184,37 @@ const WorktreeDeleteCommand = Schema.Struct({
4793
5184
  deletedAt: IsoDateTime,
4794
5185
  deletedBranch: Schema.Boolean
4795
5186
  });
5187
+ /**
5188
+ * Server-only (workspace lifecycle service): records that the physical checkout is
5189
+ * gone. Archives the record when it is still active; the path and branch stay.
5190
+ */
5191
+ const WorktreeCheckoutRemoveCommand = Schema.Struct({
5192
+ type: Schema.Literal("worktree.checkout.remove"),
5193
+ commandId: CommandId,
5194
+ worktreeId: WorktreeId,
5195
+ reason: WorktreeCheckoutRemovalReason,
5196
+ lifecycleGuard: Schema.optional(WorktreeLifecycleGuard),
5197
+ removedAt: IsoDateTime
5198
+ });
5199
+ /** Server-only: the checkout was recreated at its recorded path. */
5200
+ const WorktreeCheckoutRestoreCommand = Schema.Struct({
5201
+ type: Schema.Literal("worktree.checkout.restore"),
5202
+ commandId: CommandId,
5203
+ worktreeId: WorktreeId,
5204
+ worktreePath: TrimmedNonEmptyString,
5205
+ restoredAt: IsoDateTime
5206
+ });
5207
+ /** Server-only: a verified managed checkout moved under workspace lifecycle admission. */
5208
+ const WorktreeRelocateCommand = Schema.Struct({
5209
+ type: Schema.Literal("worktree.relocate"),
5210
+ commandId: CommandId,
5211
+ worktreeId: WorktreeId,
5212
+ projectId: ProjectId,
5213
+ sourcePath: TrimmedNonEmptyString,
5214
+ destinationPath: TrimmedNonEmptyString,
5215
+ expectedUpdatedAt: IsoDateTime,
5216
+ relocatedAt: IsoDateTime
5217
+ });
4796
5218
  const ThreadAttachToWorktreeCommand = Schema.Struct({
4797
5219
  type: Schema.Literal("thread.attach-to-worktree"),
4798
5220
  commandId: CommandId,
@@ -4828,11 +5250,14 @@ const DispatchableClientOrchestrationCommand = Schema.Union([
4828
5250
  ProjectDeleteCommand,
4829
5251
  ThreadCreateCommand,
4830
5252
  ThreadDeleteCommand,
5253
+ ThreadTrashCommand,
5254
+ ThreadUntrashCommand,
4831
5255
  ThreadArchiveCommand,
4832
5256
  ThreadSidebarUndoCommand,
4833
5257
  ThreadUnarchiveCommand,
4834
5258
  ThreadSnoozeCommand,
4835
5259
  ThreadUnsnoozeCommand,
5260
+ ThreadUsageLimitConfigureCommand,
4836
5261
  ThreadSettleCommand,
4837
5262
  ThreadUnsettleCommand,
4838
5263
  ThreadMetaUpdateCommand,
@@ -4866,11 +5291,14 @@ const ClientOrchestrationCommand = Schema.Union([
4866
5291
  ProjectDeleteCommand,
4867
5292
  ThreadCreateCommand,
4868
5293
  ThreadDeleteCommand,
5294
+ ThreadTrashCommand,
5295
+ ThreadUntrashCommand,
4869
5296
  ThreadArchiveCommand,
4870
5297
  ThreadSidebarUndoCommand,
4871
5298
  ThreadUnarchiveCommand,
4872
5299
  ThreadSnoozeCommand,
4873
5300
  ThreadUnsnoozeCommand,
5301
+ ThreadUsageLimitConfigureCommand,
4874
5302
  ThreadSettleCommand,
4875
5303
  ThreadUnsettleCommand,
4876
5304
  ThreadMetaUpdateCommand,
@@ -4897,11 +5325,25 @@ const ClientOrchestrationCommand = Schema.Union([
4897
5325
  ThreadManualPositionSetCommand,
4898
5326
  WorktreeManualPositionSetCommand
4899
5327
  ]);
5328
+ /**
5329
+ * The runtime a provider-originated session update comes from. The update applies only while
5330
+ * the thread's session is still bound to exactly this provider instance and runtime (null: none),
5331
+ * so a late lifecycle event of a replaced runtime can never overwrite its successor, whatever
5332
+ * order the two writes reach the engine in.
5333
+ */
5334
+ const ThreadSessionSetExpectedRuntime = Schema.Struct({
5335
+ providerInstanceId: Schema.NullOr(ProviderInstanceId),
5336
+ runtimeSessionId: Schema.NullOr(RuntimeSessionId)
5337
+ });
4900
5338
  const ThreadSessionSetCommand = Schema.Struct({
4901
5339
  type: Schema.Literal("thread.session.set"),
4902
5340
  commandId: CommandId,
4903
5341
  threadId: ThreadId,
4904
5342
  session: OrchestrationSession,
5343
+ /** Server-internal precondition; absent for server-decided transitions (bind, stop, restart). */
5344
+ expectedRuntime: Schema.optional(ThreadSessionSetExpectedRuntime),
5345
+ /** Internal hint: how the turn this session-set releases ended, when the caller knows. */
5346
+ turnOutcome: Schema.optional(OrchestrationTurnOutcome),
4905
5347
  createdAt: IsoDateTime
4906
5348
  });
4907
5349
  const ThreadMessageAssistantDeltaCommand = Schema.Struct({
@@ -4986,6 +5428,8 @@ const ThreadTurnSteerResolveCommand = Schema.Union([Schema.Struct({
4986
5428
  resolution: Schema.Struct({
4987
5429
  status: Schema.Literal("rejected"),
4988
5430
  error: TrimmedNonEmptyString.check(Schema.isMaxLength(1e3)),
5431
+ reason: Schema.optionalKey(TurnSteerRejectionReason),
5432
+ deliveryUncertain: TurnSteerDeliveryUncertain,
4989
5433
  resolvedAt: IsoDateTime
4990
5434
  })
4991
5435
  })]);
@@ -4994,6 +5438,8 @@ const ThreadRevertCompleteCommand = Schema.Struct({
4994
5438
  commandId: CommandId,
4995
5439
  threadId: ThreadId,
4996
5440
  turnCount: NonNegativeInt,
5441
+ droppedTurnIds: Schema.optional(Schema.Array(TurnId)),
5442
+ latestTurn: Schema.optional(Schema.NullOr(OrchestrationLatestTurn)),
4997
5443
  createdAt: IsoDateTime
4998
5444
  });
4999
5445
  const ThreadGoalSyncCommand = Schema.Struct({
@@ -5004,6 +5450,19 @@ const ThreadGoalSyncCommand = Schema.Struct({
5004
5450
  expectedRequestId: Schema.optional(Schema.String),
5005
5451
  createdAt: IsoDateTime
5006
5452
  });
5453
+ /** Internal only: clients must never be able to forge a usage limit. */
5454
+ const ThreadUsageLimitRecordCommand = Schema.Struct({
5455
+ type: Schema.Literal("thread.usage-limit.record"),
5456
+ commandId: CommandId,
5457
+ threadId: ThreadId,
5458
+ limitId: ThreadUsageLimitId,
5459
+ provider: ProviderDriverKind,
5460
+ providerInstanceId: ProviderInstanceId,
5461
+ turnId: TurnId,
5462
+ message: TrimmedNonEmptyString.check(Schema.isMaxLength(1e3)),
5463
+ resetAt: Schema.NullOr(IsoDateTime),
5464
+ createdAt: IsoDateTime
5465
+ });
5007
5466
  const ThreadGoalProviderClearCommand = Schema.Struct({
5008
5467
  type: Schema.Literal("thread.goal.provider-clear"),
5009
5468
  commandId: CommandId,
@@ -5012,6 +5471,7 @@ const ThreadGoalProviderClearCommand = Schema.Struct({
5012
5471
  createdAt: IsoDateTime
5013
5472
  });
5014
5473
  const InternalOrchestrationCommand = Schema.Union([
5474
+ ThreadDelegatedCreateCommand,
5015
5475
  Schema.Struct({
5016
5476
  ...ThreadCreateCommand.fields,
5017
5477
  type: Schema.Literal("thread.history.import"),
@@ -5041,7 +5501,11 @@ const InternalOrchestrationCommand = Schema.Union([
5041
5501
  ThreadTurnSteerResolveCommand,
5042
5502
  ThreadRevertCompleteCommand,
5043
5503
  ThreadGoalSyncCommand,
5044
- ThreadGoalProviderClearCommand
5504
+ ThreadGoalProviderClearCommand,
5505
+ ThreadUsageLimitRecordCommand,
5506
+ WorktreeCheckoutRemoveCommand,
5507
+ WorktreeCheckoutRestoreCommand,
5508
+ WorktreeRelocateCommand
5045
5509
  ]);
5046
5510
  const OrchestrationCommand = Schema.Union([DispatchableClientOrchestrationCommand, InternalOrchestrationCommand]);
5047
5511
  const OrchestrationEventType = Schema.Literals([
@@ -5051,12 +5515,16 @@ const OrchestrationEventType = Schema.Literals([
5051
5515
  "project.deleted",
5052
5516
  "thread.created",
5053
5517
  "thread.deleted",
5518
+ "thread.trashed",
5519
+ "thread.untrashed",
5054
5520
  "thread.archived",
5055
5521
  "thread.unarchived",
5056
5522
  "thread.snoozed",
5057
5523
  "thread.unsnoozed",
5058
5524
  "thread.settled",
5059
5525
  "thread.unsettled",
5526
+ "thread.usage-limit-set",
5527
+ "thread.usage-limit-cleared",
5060
5528
  "thread.meta-updated",
5061
5529
  "thread.runtime-mode-set",
5062
5530
  "thread.interaction-mode-set",
@@ -5085,6 +5553,9 @@ const OrchestrationEventType = Schema.Literals([
5085
5553
  "worktree.sourceControlStateUpdated",
5086
5554
  "worktree.restored",
5087
5555
  "worktree.deleted",
5556
+ "worktree.checkoutRemoved",
5557
+ "worktree.checkoutRestored",
5558
+ "worktree.relocated",
5088
5559
  "thread.attachedToWorktree",
5089
5560
  "thread.statusBucketOverridden",
5090
5561
  "thread.manualPositionSet",
@@ -5102,6 +5573,7 @@ const OrchestrationActorKind = Schema.Literals([
5102
5573
  ]);
5103
5574
  const ProjectCreatedPayload = Schema.Struct({
5104
5575
  projectId: ProjectId,
5576
+ kind: OptionalProjectKind,
5105
5577
  title: TrimmedNonEmptyString,
5106
5578
  workspaceRoot: TrimmedNonEmptyString,
5107
5579
  projectMetadataDir: Schema.optional(ProjectMetadataDir).pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
@@ -5114,6 +5586,8 @@ const ProjectCreatedPayload = Schema.Struct({
5114
5586
  });
5115
5587
  const ProjectMetaUpdatedPayload = Schema.Struct({
5116
5588
  projectId: ProjectId,
5589
+ /** Present only when the kind changed, which is always `chat` -> `project`. */
5590
+ kind: Schema.optional(ProjectKind),
5117
5591
  title: Schema.optional(TrimmedNonEmptyString),
5118
5592
  workspaceRoot: Schema.optional(TrimmedNonEmptyString),
5119
5593
  projectMetadataDir: Schema.optional(ProjectMetadataDir),
@@ -5144,12 +5618,22 @@ const ThreadCreatedPayload = Schema.Struct({
5144
5618
  branch: Schema.NullOr(TrimmedNonEmptyString),
5145
5619
  worktreePath: Schema.NullOr(TrimmedNonEmptyString),
5146
5620
  createdAt: IsoDateTime,
5147
- updatedAt: IsoDateTime
5621
+ updatedAt: IsoDateTime,
5622
+ lineage: Schema.optional(ThreadLineage)
5148
5623
  });
5149
5624
  const ThreadDeletedPayload = Schema.Struct({
5150
5625
  threadId: ThreadId,
5151
5626
  deletedAt: IsoDateTime
5152
5627
  });
5628
+ const ThreadTrashedPayload = Schema.Struct({
5629
+ threadId: ThreadId,
5630
+ trashedAt: IsoDateTime,
5631
+ updatedAt: IsoDateTime
5632
+ });
5633
+ const ThreadUntrashedPayload = Schema.Struct({
5634
+ threadId: ThreadId,
5635
+ updatedAt: IsoDateTime
5636
+ });
5153
5637
  const ThreadArchivedPayload = Schema.Struct({
5154
5638
  threadId: ThreadId,
5155
5639
  archivedAt: IsoDateTime,
@@ -5187,6 +5671,20 @@ const ThreadUnsettledPayload = Schema.Struct({
5187
5671
  updatedAt: IsoDateTime,
5188
5672
  restoredSidebarState: Schema.optional(ThreadSidebarRestoreState)
5189
5673
  });
5674
+ const ThreadUsageLimitSetPayload = Schema.Struct({
5675
+ threadId: ThreadId,
5676
+ usageLimit: ThreadUsageLimit
5677
+ });
5678
+ const ThreadUsageLimitClearedPayload = Schema.Struct({
5679
+ threadId: ThreadId,
5680
+ limitId: ThreadUsageLimitId,
5681
+ reason: Schema.Literals([
5682
+ "turn-started",
5683
+ "archived",
5684
+ "reverted"
5685
+ ]),
5686
+ updatedAt: IsoDateTime
5687
+ });
5190
5688
  const ThreadMetaUpdatedPayload = Schema.Struct({
5191
5689
  threadId: ThreadId,
5192
5690
  title: Schema.optional(TrimmedNonEmptyString),
@@ -5256,6 +5754,8 @@ const ThreadTurnSteerRejectedPayload = Schema.Struct({
5256
5754
  messageId: MessageId,
5257
5755
  expectedTurnId: TurnId,
5258
5756
  error: TrimmedNonEmptyString.check(Schema.isMaxLength(1e3)),
5757
+ reason: Schema.optionalKey(TurnSteerRejectionReason),
5758
+ deliveryUncertain: TurnSteerDeliveryUncertain,
5259
5759
  resolvedAt: IsoDateTime
5260
5760
  });
5261
5761
  const ThreadContextHandoffRequestedPayload = Schema.Struct({
@@ -5310,7 +5810,13 @@ const ThreadCheckpointRevertRequestedPayload = Schema.Struct({
5310
5810
  });
5311
5811
  const ThreadRevertedPayload = Schema.Struct({
5312
5812
  threadId: ThreadId,
5313
- turnCount: NonNegativeInt
5813
+ turnCount: NonNegativeInt,
5814
+ /**
5815
+ * Authoritative revert result read from the projection. Absent on legacy
5816
+ * events, which keep the count-based projection.
5817
+ */
5818
+ droppedTurnIds: Schema.optional(Schema.Array(TurnId)),
5819
+ latestTurn: Schema.optional(Schema.NullOr(OrchestrationLatestTurn))
5314
5820
  });
5315
5821
  const ThreadSessionStopRequestedPayload = Schema.Struct({
5316
5822
  threadId: ThreadId,
@@ -5318,7 +5824,9 @@ const ThreadSessionStopRequestedPayload = Schema.Struct({
5318
5824
  });
5319
5825
  const ThreadSessionSetPayload = Schema.Struct({
5320
5826
  threadId: ThreadId,
5321
- session: OrchestrationSession
5827
+ session: OrchestrationSession,
5828
+ /** Decided by the server: the turn this session-set releases and its terminal state. */
5829
+ releasedTurn: Schema.optional(OrchestrationReleasedTurn)
5322
5830
  });
5323
5831
  const ThreadProposedPlanUpsertedPayload = Schema.Struct({
5324
5832
  threadId: ThreadId,
@@ -5374,6 +5882,8 @@ const WorktreeSourceControlStateUpdatedPayload = Schema.Struct({
5374
5882
  prTitle: Schema.optional(Schema.NullOr(TrimmedNonEmptyString)),
5375
5883
  prState: Schema.NullOr(PullRequestState),
5376
5884
  prIsDraft: Schema.NullOr(Schema.Boolean),
5885
+ /** When the PR reached its current merged/closed state; see `Worktree.prTerminalAt`. */
5886
+ prTerminalAt: Schema.optional(Schema.NullOr(IsoDateTime)),
5377
5887
  issueState: Schema.NullOr(IssueState),
5378
5888
  updatedAt: IsoDateTime
5379
5889
  });
@@ -5387,6 +5897,23 @@ const WorktreeDeletedPayload = Schema.Struct({
5387
5897
  deletedAt: IsoDateTime,
5388
5898
  deletedBranch: Schema.Boolean
5389
5899
  });
5900
+ const WorktreeCheckoutRemovedPayload = Schema.Struct({
5901
+ worktreeId: WorktreeId,
5902
+ reason: WorktreeCheckoutRemovalReason,
5903
+ removedAt: IsoDateTime
5904
+ });
5905
+ const WorktreeCheckoutRestoredPayload = Schema.Struct({
5906
+ worktreeId: WorktreeId,
5907
+ worktreePath: TrimmedNonEmptyString,
5908
+ restoredAt: IsoDateTime
5909
+ });
5910
+ const WorktreeRelocatedPayload = Schema.Struct({
5911
+ worktreeId: WorktreeId,
5912
+ projectId: ProjectId,
5913
+ sourcePath: TrimmedNonEmptyString,
5914
+ destinationPath: TrimmedNonEmptyString,
5915
+ relocatedAt: IsoDateTime
5916
+ });
5390
5917
  const ThreadAttachedToWorktreePayload = Schema.Struct({
5391
5918
  threadId: ThreadId,
5392
5919
  worktreeId: WorktreeId,
@@ -5460,6 +5987,16 @@ const OrchestrationEvent = Schema.Union([
5460
5987
  type: Schema.Literal("thread.deleted"),
5461
5988
  payload: ThreadDeletedPayload
5462
5989
  }),
5990
+ Schema.Struct({
5991
+ ...EventBaseFields,
5992
+ type: Schema.Literal("thread.trashed"),
5993
+ payload: ThreadTrashedPayload
5994
+ }),
5995
+ Schema.Struct({
5996
+ ...EventBaseFields,
5997
+ type: Schema.Literal("thread.untrashed"),
5998
+ payload: ThreadUntrashedPayload
5999
+ }),
5463
6000
  Schema.Struct({
5464
6001
  ...EventBaseFields,
5465
6002
  type: Schema.Literal("thread.archived"),
@@ -5490,6 +6027,16 @@ const OrchestrationEvent = Schema.Union([
5490
6027
  type: Schema.Literal("thread.unsettled"),
5491
6028
  payload: ThreadUnsettledPayload
5492
6029
  }),
6030
+ Schema.Struct({
6031
+ ...EventBaseFields,
6032
+ type: Schema.Literal("thread.usage-limit-set"),
6033
+ payload: ThreadUsageLimitSetPayload
6034
+ }),
6035
+ Schema.Struct({
6036
+ ...EventBaseFields,
6037
+ type: Schema.Literal("thread.usage-limit-cleared"),
6038
+ payload: ThreadUsageLimitClearedPayload
6039
+ }),
5493
6040
  Schema.Struct({
5494
6041
  ...EventBaseFields,
5495
6042
  type: Schema.Literal("thread.meta-updated"),
@@ -5630,6 +6177,21 @@ const OrchestrationEvent = Schema.Union([
5630
6177
  type: Schema.Literal("worktree.deleted"),
5631
6178
  payload: WorktreeDeletedPayload
5632
6179
  }),
6180
+ Schema.Struct({
6181
+ ...EventBaseFields,
6182
+ type: Schema.Literal("worktree.checkoutRemoved"),
6183
+ payload: WorktreeCheckoutRemovedPayload
6184
+ }),
6185
+ Schema.Struct({
6186
+ ...EventBaseFields,
6187
+ type: Schema.Literal("worktree.checkoutRestored"),
6188
+ payload: WorktreeCheckoutRestoredPayload
6189
+ }),
6190
+ Schema.Struct({
6191
+ ...EventBaseFields,
6192
+ type: Schema.Literal("worktree.relocated"),
6193
+ payload: WorktreeRelocatedPayload
6194
+ }),
5633
6195
  Schema.Struct({
5634
6196
  ...EventBaseFields,
5635
6197
  type: Schema.Literal("thread.attachedToWorktree"),
@@ -5928,8 +6490,20 @@ var OrchestrationGetSnapshotError = class extends Schema.TaggedError()("Orchestr
5928
6490
  message: TrimmedNonEmptyString,
5929
6491
  cause: Schema.optional(Schema.Defect())
5930
6492
  }) {};
6493
+ /**
6494
+ * Machine-readable dispatch failures a client acts on. Absent for every other failure, which a
6495
+ * client only shows by `message`.
6496
+ *
6497
+ * - `chat-project-retired`: a `thread.turn.start` whose `bootstrap.createChatProject` names a
6498
+ * project id this node has already deleted, such as an unused chat removed by startup cleanup.
6499
+ * Nothing was created and the id can never be used again. The client gives the draft a fresh
6500
+ * project id and sends again once.
6501
+ */
6502
+ const OrchestrationDispatchCommandErrorReason = Schema.Literals(["chat-project-retired"]);
5931
6503
  var OrchestrationDispatchCommandError = class extends Schema.TaggedError()("OrchestrationDispatchCommandError", {
5932
6504
  message: TrimmedNonEmptyString,
6505
+ /** Additive: older clients ignore it and show `message`. */
6506
+ reason: Schema.optionalKey(OrchestrationDispatchCommandErrorReason),
5933
6507
  cause: Schema.optional(Schema.Defect())
5934
6508
  }) {};
5935
6509
  var OrchestrationGetTurnDiffError = class extends Schema.TaggedError()("OrchestrationGetTurnDiffError", {
@@ -6070,6 +6644,13 @@ const ClaudeCacheObservation = Schema.Struct({
6070
6644
  providerInstanceId: ProviderInstanceId,
6071
6645
  model: TrimmedNonEmptyString,
6072
6646
  modelSelection: Schema.optional(ModelSelection),
6647
+ /**
6648
+ * The working directory of the runtime that made this request. Claude keeps native
6649
+ * conversations per directory, so once the thread's working directory differs, the next
6650
+ * turn continues in a fresh session instead of resuming this conversation. Absent from
6651
+ * older servers.
6652
+ */
6653
+ cwd: Schema.optional(TrimmedNonEmptyString),
6073
6654
  messageId: TrimmedNonEmptyString,
6074
6655
  directInputTokens: NonNegativeInt,
6075
6656
  cacheReadInputTokens: NonNegativeInt,
@@ -6165,6 +6746,7 @@ const RuntimeErrorClass = Schema.Literals([
6165
6746
  "transport_error",
6166
6747
  "permission_error",
6167
6748
  "validation_error",
6749
+ "usage_limit",
6168
6750
  "unknown"
6169
6751
  ]);
6170
6752
  const TOOL_LIFECYCLE_ITEM_TYPES = [
@@ -6355,7 +6937,25 @@ const ThreadMetadataUpdatedPayload = Schema.Struct({
6355
6937
  });
6356
6938
  const ProviderThreadGoalUpdatedPayload = Schema.Struct({ goal: ThreadGoal });
6357
6939
  const ProviderThreadGoalClearedPayload = Schema.Struct({});
6940
+ /** Billing/work counters are separate from the current context-window gauge. */
6941
+ const ProcessedTokenUsage = Schema.Struct({
6942
+ scope: Schema.Literals([
6943
+ "session",
6944
+ "turn",
6945
+ "request"
6946
+ ]),
6947
+ requestId: Schema.optional(TrimmedNonEmptyStringSchema$1),
6948
+ sessionId: Schema.optional(TrimmedNonEmptyStringSchema$1),
6949
+ /** Includes cache reads and writes. */
6950
+ inputTokens: NonNegativeInt,
6951
+ cachedInputTokens: NonNegativeInt,
6952
+ /** Includes reasoning output; reasoning is not charged a second time. */
6953
+ outputTokens: NonNegativeInt,
6954
+ reasoningOutputTokens: NonNegativeInt,
6955
+ totalTokens: NonNegativeInt
6956
+ });
6358
6957
  const ThreadTokenUsageSnapshot = Schema.Struct({
6958
+ processedUsage: Schema.optional(ProcessedTokenUsage),
6359
6959
  claudeCache: Schema.optional(ClaudeCacheObservation),
6360
6960
  usedTokens: NonNegativeInt,
6361
6961
  totalProcessedTokens: Schema.optional(NonNegativeInt),
@@ -6681,7 +7281,19 @@ const AuthStatusPayload = Schema.Struct({
6681
7281
  error: Schema.optional(TrimmedNonEmptyStringSchema$1)
6682
7282
  });
6683
7283
  const AccountUpdatedPayload = Schema.Struct({ account: Schema.Unknown });
6684
- const AccountRateLimitsUpdatedPayload = Schema.Struct({ rateLimits: Schema.Unknown });
7284
+ /**
7285
+ * Provider-agnostic reading of a rate-limit update. `exhausted` means at least one
7286
+ * window is rejected or at 100%; `resetAt` is when ALL exhausted windows reset, or
7287
+ * null when any of their resets is unknown.
7288
+ */
7289
+ const UsageLimitState = Schema.Struct({
7290
+ exhausted: Schema.Boolean,
7291
+ resetAt: Schema.NullOr(IsoDateTime)
7292
+ });
7293
+ const AccountRateLimitsUpdatedPayload = Schema.Struct({
7294
+ rateLimits: Schema.Unknown,
7295
+ usageLimitState: Schema.optional(UsageLimitState)
7296
+ });
6685
7297
  const McpStatusUpdatedPayload = Schema.Struct({ status: Schema.Unknown });
6686
7298
  const McpOauthCompletedPayload = Schema.Struct({
6687
7299
  success: Schema.Boolean,
@@ -6726,7 +7338,12 @@ const RuntimeWarningPayload = Schema.Struct({
6726
7338
  const RuntimeErrorPayload = Schema.Struct({
6727
7339
  message: TrimmedNonEmptyStringSchema$1,
6728
7340
  class: Schema.optional(RuntimeErrorClass),
6729
- detail: Schema.optional(Schema.Unknown)
7341
+ detail: Schema.optional(Schema.Unknown),
7342
+ /**
7343
+ * Only meaningful for `class: "usage_limit"`: when the limit resets. null = a limit
7344
+ * with an unknown reset; absent = not applicable.
7345
+ */
7346
+ resetAt: Schema.optional(Schema.NullOr(IsoDateTime))
6730
7347
  });
6731
7348
  const ProviderRuntimeSessionStartedEvent = Schema.Struct({
6732
7349
  ...ProviderRuntimeEventBase.fields,
@@ -7096,6 +7713,11 @@ const THREAD_KEYBINDING_COMMANDS = [
7096
7713
  "thread.next",
7097
7714
  ...THREAD_JUMP_KEYBINDING_COMMANDS
7098
7715
  ];
7716
+ /**
7717
+ * Every built-in command a key can be bound to. Some ship without a default
7718
+ * key, so this — not the default keymap — is the list a keybindings editor
7719
+ * offers.
7720
+ */
7099
7721
  const STATIC_KEYBINDING_COMMANDS = [
7100
7722
  "terminal.toggle",
7101
7723
  "terminal.split",
@@ -7111,8 +7733,15 @@ const STATIC_KEYBINDING_COMMANDS = [
7111
7733
  "sidebar.showProjects",
7112
7734
  "chat.new",
7113
7735
  "chat.newLocal",
7736
+ "chat.newWithoutProject",
7114
7737
  "composer.stash",
7115
7738
  "editor.openFavorite",
7739
+ "pane.split",
7740
+ "pane.close",
7741
+ "pane.focusNext",
7742
+ "pane.focusPrevious",
7743
+ "pullRequests.open",
7744
+ "projects.open",
7116
7745
  ...["modelPicker.toggle", ...MODEL_PICKER_JUMP_KEYBINDING_COMMANDS],
7117
7746
  ...THREAD_KEYBINDING_COMMANDS
7118
7747
  ];
@@ -7121,7 +7750,13 @@ const SCRIPT_RUN_COMMAND_PATTERN = Schema.TemplateLiteral([
7121
7750
  Schema.NonEmptyString.check(Schema.isMaxLength(24), Schema.isPattern(/^[a-z0-9][a-z0-9-]*$/)),
7122
7751
  Schema.Literal(".run")
7123
7752
  ]);
7124
- const KeybindingCommand = Schema.Union([Schema.Literals(STATIC_KEYBINDING_COMMANDS), SCRIPT_RUN_COMMAND_PATTERN]);
7753
+ /** Client-owned script commands include the environment and project identity. */
7754
+ const SCOPED_SCRIPT_RUN_COMMAND = Schema.String.check(Schema.isMaxLength(2048), Schema.isPattern(/^projectScript\.[^/]+\/[^/]+\/[a-z0-9][a-z0-9-]{0,23}\.run$/));
7755
+ const KeybindingCommand = Schema.Union([
7756
+ Schema.Literals(STATIC_KEYBINDING_COMMANDS),
7757
+ SCRIPT_RUN_COMMAND_PATTERN,
7758
+ SCOPED_SCRIPT_RUN_COMMAND
7759
+ ]);
7125
7760
  const KeybindingValue = TrimmedString.check(Schema.isMinLength(1), Schema.isMaxLength(64));
7126
7761
  const KeybindingWhen = TrimmedString.check(Schema.isMinLength(1), Schema.isMaxLength(MAX_KEYBINDING_WHEN_LENGTH));
7127
7762
  const KeybindingRule = Schema.Struct({
@@ -7174,6 +7809,10 @@ var KeybindingsConfigError = class extends Schema.TaggedError()("KeybindingsConf
7174
7809
  return `Unable to parse keybindings config at ${this.configPath}: ${this.detail}`;
7175
7810
  }
7176
7811
  };
7812
+ Schema.Struct({
7813
+ rules: KeybindingsConfig,
7814
+ disabledCommands: Schema.Array(KeybindingCommand).check(Schema.isMaxLength(256))
7815
+ });
7177
7816
  //#endregion
7178
7817
  //#region ../../packages/contracts/src/codexResetCredits.ts
7179
7818
  const CodexResetCredit = Schema.Struct({
@@ -7287,25 +7926,252 @@ var StorageError = class extends Schema.TaggedError()("StorageError", { detail:
7287
7926
  }
7288
7927
  };
7289
7928
  //#endregion
7290
- //#region ../../packages/contracts/src/settings.ts
7291
- const TimestampFormat = Schema$1.Literals([
7292
- "locale",
7293
- "12-hour",
7294
- "24-hour"
7929
+ //#region ../../packages/contracts/src/workspaceLifecycle.ts
7930
+ /**
7931
+ * Workspace lifecycle is separate from conversation lifecycle. No action here ever
7932
+ * deletes a conversation; checkout removal archives the workspace's conversations
7933
+ * by default and keeps their history and the branch. Only an explicit discard
7934
+ * ("Delete workspace") throws work away, and it moves conversations to Trash.
7935
+ */
7936
+ const WorkspaceLifecycleAction = Schema.Literals([
7937
+ "archive",
7938
+ "restore",
7939
+ "remove-checkout",
7940
+ "remove-stale-record",
7941
+ "recreate-checkout"
7295
7942
  ]);
7296
- const DEFAULT_TIMESTAMP_FORMAT = "locale";
7297
- const SidebarProjectSortOrder = Schema$1.Literals([
7298
- "updated_at",
7299
- "created_at",
7300
- "manual"
7943
+ /** `removed`: the record says the checkout is gone. `unavailable`: inspection failed. */
7944
+ const WorkspaceCheckoutState = Schema.Literals([
7945
+ "present",
7946
+ "missing",
7947
+ "removed",
7948
+ "unavailable"
7301
7949
  ]);
7302
- const DEFAULT_SIDEBAR_PROJECT_SORT_ORDER = "updated_at";
7303
- const SidebarThreadSortOrder = Schema$1.Literals(["updated_at", "created_at"]);
7304
- const DEFAULT_SIDEBAR_THREAD_SORT_ORDER = "updated_at";
7305
- const SidebarAutoSettleAfterDays = Schema$1.NullOr(Schema$1.Literals([
7306
- 1,
7307
- 3,
7308
- 7,
7950
+ const SamplePaths = Schema.Array(Schema.String).check(Schema.isMaxLength(20));
7951
+ const WorkspaceChangeSummary = Schema.Struct({
7952
+ /** Tracked files with staged, unstaged or conflicted changes. */
7953
+ modified: NonNegativeInt,
7954
+ untracked: NonNegativeInt,
7955
+ /** Ignored content that is not a known regenerable cache (credentials, databases, outputs…). */
7956
+ protectedIgnored: NonNegativeInt,
7957
+ protectedIgnoredSample: SamplePaths,
7958
+ /** Ignored caches/build outputs that `git worktree remove` may discard. */
7959
+ regenerableIgnored: NonNegativeInt,
7960
+ regenerableIgnoredSample: SamplePaths,
7961
+ /** Status output exceeded its bound; treated as blocking. */
7962
+ truncated: Schema.Boolean
7963
+ });
7964
+ const WorkspaceConversationCounts = Schema.Struct({
7965
+ active: NonNegativeInt,
7966
+ archived: NonNegativeInt,
7967
+ trashed: NonNegativeInt
7968
+ });
7969
+ const WorkspaceActionAvailability = Schema.Struct({
7970
+ action: WorkspaceLifecycleAction,
7971
+ available: Schema.Boolean,
7972
+ blockers: Schema.Array(Schema.String)
7973
+ });
7974
+ const WorkspaceLifecycleSummary = Schema.Struct({
7975
+ worktreeId: WorktreeId,
7976
+ projectId: ProjectId,
7977
+ title: Schema.String,
7978
+ branch: TrimmedNonEmptyString,
7979
+ path: Schema.NullOr(Schema.String),
7980
+ origin: WorktreeOrigin,
7981
+ /** The project root/main checkout is never a disposable workspace. */
7982
+ main: Schema.Boolean,
7983
+ archivedAt: Schema.NullOr(IsoDateTime),
7984
+ checkoutRemovedAt: Schema.NullOr(IsoDateTime),
7985
+ checkout: WorkspaceCheckoutState,
7986
+ gitRegistered: Schema.NullOr(Schema.Boolean),
7987
+ branchExists: Schema.NullOr(Schema.Boolean),
7988
+ /** Commits on the branch that the project HEAD does not contain. */
7989
+ unmerged: Schema.NullOr(Schema.Boolean),
7990
+ changes: Schema.NullOr(WorkspaceChangeSummary),
7991
+ conversations: WorkspaceConversationCounts,
7992
+ activeWork: Schema.Array(Schema.String),
7993
+ actions: Schema.Array(WorkspaceActionAvailability),
7994
+ /**
7995
+ * Why "Delete workspace" (`remove-checkout` with `discard`) cannot run; empty
7996
+ * when it can. Absent from nodes that predate it.
7997
+ */
7998
+ discardBlockers: Schema.optional(Schema.Array(Schema.String)),
7999
+ inspectedAt: IsoDateTime
8000
+ });
8001
+ const WorkspaceLifecycleListInput = Schema.Struct({ projectId: ProjectId });
8002
+ const WorkspaceLifecycleRequest = Schema.Struct({
8003
+ worktreeId: WorktreeId,
8004
+ action: WorkspaceLifecycleAction,
8005
+ /** Default true for checkout removal and stale-record cleanup; ignored otherwise. */
8006
+ archiveConversations: Schema.optional(Schema.Boolean),
8007
+ /**
8008
+ * Off by default. Only on removal; a verified merged branch, or any branch when
8009
+ * discarding.
8010
+ */
8011
+ deleteBranch: Schema.optional(Schema.Boolean),
8012
+ /**
8013
+ * Off by default; `remove-checkout` only. "Delete workspace": the checkout is
8014
+ * removed even with uncommitted, untracked or ignored files (they are lost),
8015
+ * an unmerged branch may be deleted, and the workspace's conversations move to
8016
+ * Trash instead of the archive. Also finishes a workspace whose checkout is
8017
+ * already removed. Active work still blocks it.
8018
+ */
8019
+ discard: Schema.optional(Schema.Boolean)
8020
+ });
8021
+ const WorkspaceLifecycleEffects = Schema.Struct({
8022
+ archiveWorkspace: Schema.Boolean,
8023
+ restoreWorkspace: Schema.Boolean,
8024
+ removeCheckout: Schema.Boolean,
8025
+ recreateCheckout: Schema.Boolean,
8026
+ recordCheckoutRemoval: Schema.Boolean,
8027
+ stopSessionThreadIds: Schema.Array(ThreadId),
8028
+ archiveConversationIds: Schema.Array(ThreadId),
8029
+ /** Conversations left exactly as they are (already archived, trashed or never used). */
8030
+ unchangedConversations: NonNegativeInt,
8031
+ discardedRegenerableIgnored: NonNegativeInt,
8032
+ deleteBranch: Schema.Boolean,
8033
+ branch: TrimmedNonEmptyString,
8034
+ /** The request discards ("Delete workspace"). Absent from nodes that predate it. */
8035
+ discard: Schema.optional(Schema.Boolean),
8036
+ /** Conversations moved to Trash, where they stay restorable. */
8037
+ trashConversationIds: Schema.optional(Schema.Array(ThreadId)),
8038
+ /** Work that exists nowhere else is lost: changed or untracked files, unmerged commits. */
8039
+ discardsWork: Schema.optional(Schema.Boolean)
8040
+ });
8041
+ const WorkspaceLifecyclePreview = Schema.Struct({
8042
+ request: WorkspaceLifecycleRequest,
8043
+ workspace: WorkspaceLifecycleSummary,
8044
+ effects: WorkspaceLifecycleEffects,
8045
+ /** One-line exact effect, e.g. "Remove 1 checkout, archive 4 conversations, keep history and branch." */
8046
+ summary: Schema.String,
8047
+ details: Schema.Array(Schema.String),
8048
+ blockers: Schema.Array(Schema.String),
8049
+ /** Binds an apply to exactly the state this preview inspected. */
8050
+ fingerprint: TrimmedNonEmptyString
8051
+ });
8052
+ const WorkspaceLifecycleApplyInput = Schema.Struct({
8053
+ ...WorkspaceLifecycleRequest.fields,
8054
+ expectedFingerprint: TrimmedNonEmptyString
8055
+ });
8056
+ const WorkspaceLifecycleStepId = Schema.Literals([
8057
+ "preflight",
8058
+ "stop-sessions",
8059
+ "fence-checkout",
8060
+ "revalidate",
8061
+ "remove-checkout",
8062
+ "recreate-checkout",
8063
+ "update-record",
8064
+ "archive-conversations",
8065
+ "delete-branch"
8066
+ ]);
8067
+ const WorkspaceLifecycleStep = Schema.Struct({
8068
+ id: WorkspaceLifecycleStepId,
8069
+ status: Schema.Literals([
8070
+ "done",
8071
+ "skipped",
8072
+ "failed"
8073
+ ]),
8074
+ detail: Schema.String
8075
+ });
8076
+ /**
8077
+ * `blocked`: nothing changed. `failed`: nothing durable changed. `partial`: some steps
8078
+ * completed (listed truthfully); retrying the same action resumes safely.
8079
+ */
8080
+ const WorkspaceLifecycleOutcome = Schema.Literals([
8081
+ "completed",
8082
+ "blocked",
8083
+ "partial",
8084
+ "failed"
8085
+ ]);
8086
+ const WorkspaceLifecycleResult = Schema.Struct({
8087
+ outcome: WorkspaceLifecycleOutcome,
8088
+ message: Schema.String,
8089
+ steps: Schema.Array(WorkspaceLifecycleStep)
8090
+ });
8091
+ var WorkspaceLifecycleError = class extends Schema.TaggedError()("WorkspaceLifecycleError", { detail: Schema.String }) {
8092
+ get message() {
8093
+ return this.detail;
8094
+ }
8095
+ };
8096
+ const SuggestionDays = Schema.NullOr(Schema.Int.check(Schema.isBetween({
8097
+ minimum: 1,
8098
+ maximum: 3650
8099
+ })));
8100
+ /** `null` turns a suggestion off. Suggestions never act on their own; each needs approval. */
8101
+ const LifecycleSuggestionPolicy = Schema.Struct({
8102
+ archiveInactiveThreadsDays: SuggestionDays,
8103
+ removeArchivedCheckoutsDays: SuggestionDays
8104
+ });
8105
+ const DEFAULT_LIFECYCLE_SUGGESTION_POLICY = {
8106
+ archiveInactiveThreadsDays: 30,
8107
+ removeArchivedCheckoutsDays: 7
8108
+ };
8109
+ const ThreadArchiveSuggestion = Schema.Struct({
8110
+ threadId: ThreadId,
8111
+ projectId: ProjectId,
8112
+ title: Schema.String,
8113
+ lastActivityAt: IsoDateTime
8114
+ });
8115
+ const CheckoutRemovalSuggestion = Schema.Struct({
8116
+ worktreeId: WorktreeId,
8117
+ projectId: ProjectId,
8118
+ title: Schema.String,
8119
+ branch: TrimmedNonEmptyString,
8120
+ /** When the last of its conversations was archived. */
8121
+ archivedSince: IsoDateTime,
8122
+ conversations: NonNegativeInt
8123
+ });
8124
+ const LifecycleSuggestions = Schema.Struct({
8125
+ generatedAt: IsoDateTime,
8126
+ threads: Schema.Array(ThreadArchiveSuggestion),
8127
+ checkouts: Schema.Array(CheckoutRemovalSuggestion)
8128
+ });
8129
+ const TrashedThreadSummary = Schema.Struct({
8130
+ threadId: ThreadId,
8131
+ projectId: ProjectId,
8132
+ projectTitle: Schema.NullOr(Schema.String),
8133
+ /**
8134
+ * The owning project's kind, so a chat is listed as "No project" without the client's project
8135
+ * store. Absent when the project record is gone, or from a node that predates chats; both read
8136
+ * as a regular project.
8137
+ */
8138
+ projectKind: Schema.optionalKey(ProjectKind),
8139
+ /** False when the owning project was removed; restore is unavailable. */
8140
+ projectAvailable: Schema.Boolean,
8141
+ title: Schema.String,
8142
+ branch: Schema.NullOr(Schema.String),
8143
+ worktreePath: Schema.NullOr(Schema.String),
8144
+ worktreeId: Schema.NullOr(WorktreeId),
8145
+ /** Restoring returns the conversation to this archive state. */
8146
+ archivedAt: Schema.NullOr(IsoDateTime),
8147
+ trashedAt: IsoDateTime,
8148
+ createdAt: IsoDateTime,
8149
+ updatedAt: IsoDateTime
8150
+ });
8151
+ const TrashListResult = Schema.Struct({
8152
+ threads: Schema.Array(TrashedThreadSummary),
8153
+ truncated: Schema.Boolean
8154
+ });
8155
+ //#endregion
8156
+ //#region ../../packages/contracts/src/settings.ts
8157
+ const TimestampFormat = Schema$1.Literals([
8158
+ "locale",
8159
+ "12-hour",
8160
+ "24-hour"
8161
+ ]);
8162
+ const DEFAULT_TIMESTAMP_FORMAT = "locale";
8163
+ const SidebarProjectSortOrder = Schema$1.Literals([
8164
+ "updated_at",
8165
+ "created_at",
8166
+ "manual"
8167
+ ]);
8168
+ const DEFAULT_SIDEBAR_PROJECT_SORT_ORDER = "updated_at";
8169
+ const SidebarThreadSortOrder = Schema$1.Literals(["updated_at", "created_at"]);
8170
+ const DEFAULT_SIDEBAR_THREAD_SORT_ORDER = "updated_at";
8171
+ const SidebarAutoSettleAfterDays = Schema$1.NullOr(Schema$1.Literals([
8172
+ 1,
8173
+ 3,
8174
+ 7,
7309
8175
  14,
7310
8176
  30,
7311
8177
  90
@@ -7339,6 +8205,13 @@ const AiFocusRefreshIntervalMs = Schema$1.Literals([
7339
8205
  864e5
7340
8206
  ]);
7341
8207
  const DEFAULT_AI_FOCUS_REFRESH_INTERVAL_MS = 6e5;
8208
+ /**
8209
+ * What Enter does with a message sent while a turn runs: `queue` waits for the turn to finish,
8210
+ * `steer` adds it to the running turn when the provider supports steering. Mod+Enter does the
8211
+ * opposite.
8212
+ */
8213
+ const FollowUpBehavior = Schema$1.Literals(["queue", "steer"]);
8214
+ const DEFAULT_FOLLOW_UP_BEHAVIOR = "queue";
7342
8215
  /** Missing effort is a legacy model-only preset; provider remains the stable instance id. */
7343
8216
  const ModelFavorite = Schema$1.Struct({
7344
8217
  provider: ProviderInstanceId,
@@ -7356,6 +8229,7 @@ const ClientSettingsSchema = Schema$1.Struct({
7356
8229
  dismissedProviderUpdateNotificationKeys: Schema$1.Array(TrimmedNonEmptyString).pipe(Schema$1.withDecodingDefault(Effect.succeed([]))),
7357
8230
  diffIgnoreWhitespace: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(true))),
7358
8231
  diffWordWrap: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(false))),
8232
+ followUpBehavior: FollowUpBehavior.pipe(Schema$1.withDecodingDefault(Effect.succeed(DEFAULT_FOLLOW_UP_BEHAVIOR))),
7359
8233
  favorites: Schema$1.Array(ModelFavorite).pipe(Schema$1.withDecodingDefault(Effect.succeed([]))),
7360
8234
  providerModelPreferences: Schema$1.Record(ProviderInstanceId, Schema$1.Struct({
7361
8235
  hiddenModels: Schema$1.Array(Schema$1.String).pipe(Schema$1.withDecodingDefault(Effect.succeed([]))),
@@ -7627,13 +8501,19 @@ const ServerSettings = Schema$1.Struct({
7627
8501
  environmentIcon: EnvironmentMachineHint.pipe(Schema$1.withDecodingDefault(Effect.succeed(null))),
7628
8502
  enableLegacyTokenStreaming: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(false))),
7629
8503
  enableProviderUpdateChecks: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(true))),
8504
+ continueThreadsAfterRestart: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(false))),
8505
+ autoResumeLimitedThreads: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(false))),
8506
+ snoozeLimitedThreads: Schema$1.Boolean.pipe(Schema$1.withDecodingDefault(Effect.succeed(false))),
7630
8507
  storageRetention: StorageRetentionPolicy.pipe(Schema$1.withDecodingDefault(Effect.succeed({
7631
8508
  automatic: false,
7632
8509
  completedWorktreeDays: null,
7633
8510
  temporaryDataDays: null
7634
8511
  }))),
7635
8512
  projectStorageRetention: Schema$1.Record(Schema$1.String, Schema$1.NullOr(StorageRetentionPolicy)).pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
8513
+ lifecycleSuggestions: LifecycleSuggestionPolicy.pipe(Schema$1.withDecodingDefault(Effect.succeed(DEFAULT_LIFECYCLE_SUGGESTION_POLICY))),
8514
+ projectLifecycleSuggestions: Schema$1.Record(Schema$1.String, Schema$1.NullOr(LifecycleSuggestionPolicy)).pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
7636
8515
  worktreeRoot: WorktreeRoot.pipe(Schema$1.withDecodingDefault(Effect.succeed(""))),
8516
+ chatsRoot: WorktreeRoot.pipe(Schema$1.withDecodingDefault(Effect.succeed(""))),
7637
8517
  worktreeSubmodules: WorktreeSubmodules.pipe(Schema$1.withDecodingDefault(Effect.succeed("recursive"))),
7638
8518
  projectWorktreeSubmodules: Schema$1.Record(Schema$1.String, Schema$1.NullOr(WorktreeSubmodules)).pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
7639
8519
  projectWorktreeRoots: Schema$1.Record(Schema$1.String, Schema$1.NullOr(WorktreeRoot)).pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
@@ -7728,9 +8608,15 @@ const ServerSettingsPatch = Schema$1.Struct({
7728
8608
  environmentIcon: Schema$1.optionalKey(Schema$1.NullOr(EnvironmentMachineKind)),
7729
8609
  enableLegacyTokenStreaming: Schema$1.optionalKey(Schema$1.Boolean),
7730
8610
  enableProviderUpdateChecks: Schema$1.optionalKey(Schema$1.Boolean),
8611
+ continueThreadsAfterRestart: Schema$1.optionalKey(Schema$1.Boolean),
8612
+ autoResumeLimitedThreads: Schema$1.optionalKey(Schema$1.Boolean),
8613
+ snoozeLimitedThreads: Schema$1.optionalKey(Schema$1.Boolean),
7731
8614
  storageRetention: Schema$1.optionalKey(StorageRetentionPolicy),
7732
8615
  projectStorageRetention: Schema$1.optionalKey(Schema$1.Record(Schema$1.String, Schema$1.NullOr(StorageRetentionPolicy))),
8616
+ lifecycleSuggestions: Schema$1.optionalKey(LifecycleSuggestionPolicy),
8617
+ projectLifecycleSuggestions: Schema$1.optionalKey(Schema$1.Record(Schema$1.String, Schema$1.NullOr(LifecycleSuggestionPolicy))),
7733
8618
  worktreeRoot: Schema$1.optionalKey(WorktreeRoot),
8619
+ chatsRoot: Schema$1.optionalKey(WorktreeRoot),
7734
8620
  worktreeSubmodules: Schema$1.optionalKey(WorktreeSubmodules),
7735
8621
  projectWorktreeSubmodules: Schema$1.optionalKey(Schema$1.Record(Schema$1.String, Schema$1.NullOr(WorktreeSubmodules))),
7736
8622
  projectWorktreeRoots: Schema$1.optionalKey(Schema$1.Record(Schema$1.String, Schema$1.NullOr(WorktreeRoot))),
@@ -7765,6 +8651,7 @@ Schema$1.Struct({
7765
8651
  confirmThreadUnpin: Schema$1.optionalKey(Schema$1.Boolean),
7766
8652
  diffIgnoreWhitespace: Schema$1.optionalKey(Schema$1.Boolean),
7767
8653
  diffWordWrap: Schema$1.optionalKey(Schema$1.Boolean),
8654
+ followUpBehavior: Schema$1.optionalKey(FollowUpBehavior),
7768
8655
  favorites: Schema$1.optionalKey(Schema$1.Array(ModelFavorite)),
7769
8656
  providerModelPreferences: Schema$1.optionalKey(Schema$1.Record(ProviderInstanceId, Schema$1.Struct({
7770
8657
  hiddenModels: Schema$1.Array(Schema$1.String).pipe(Schema$1.withDecodingDefault(Effect.succeed([]))),
@@ -7893,6 +8780,27 @@ const ServerProviderRateLimits = Schema.Struct({
7893
8780
  resetCredits: Schema.optional(CodexResetCredits),
7894
8781
  rateLimitReachedType: Schema.optional(TrimmedNonEmptyString)
7895
8782
  });
8783
+ /**
8784
+ * How a provider version fits this Ryco release, per the server's compatibility policy
8785
+ * (code-owned floors + bundled defaults + remote model manifest).
8786
+ * FROZEN: mobile/desktop clients ship separately and decode whole provider lists with this
8787
+ * schema, so an unknown literal would fail the entire `ServerProvider` list. Never add a member —
8788
+ * put new meanings in a new optional field.
8789
+ */
8790
+ const ServerProviderCompatibilityStatus = Schema.Literals([
8791
+ "unknown",
8792
+ "supported",
8793
+ "graceful",
8794
+ "unsupported",
8795
+ "broken"
8796
+ ]);
8797
+ const ServerProviderCompatibilityAdvisory = Schema.Struct({
8798
+ /** Rating of `ServerProvider.version`. */
8799
+ status: ServerProviderCompatibilityStatus,
8800
+ /** Rating of `versionAdvisory.latestVersion`; absent when no latest version is known. */
8801
+ latestVersionStatus: Schema.optionalKey(ServerProviderCompatibilityStatus),
8802
+ message: Schema.NullOr(TrimmedNonEmptyString)
8803
+ });
7896
8804
  const ServerProviderVersionAdvisoryStatus = Schema.Literals([
7897
8805
  "unknown",
7898
8806
  "current",
@@ -7944,6 +8852,7 @@ const ServerProvider = Schema.Struct({
7944
8852
  showInteractionModeToggle: Schema.optional(Schema.Boolean),
7945
8853
  supportsAskMode: Schema.optional(Schema.Boolean),
7946
8854
  supportsTurnSteering: Schema.optional(Schema.Boolean),
8855
+ supportsConversationRollback: Schema.optional(Schema.Boolean),
7947
8856
  enabled: Schema.Boolean,
7948
8857
  installed: Schema.Boolean,
7949
8858
  version: Schema.NullOr(TrimmedNonEmptyString),
@@ -7958,9 +8867,17 @@ const ServerProvider = Schema.Struct({
7958
8867
  skills: Schema.Array(ServerProviderSkill).pipe(Schema.withDecodingDefault(Effect.succeed([]))),
7959
8868
  rateLimits: Schema.optional(ServerProviderRateLimits),
7960
8869
  versionAdvisory: Schema.optionalKey(ServerProviderVersionAdvisory),
8870
+ compatibilityAdvisory: Schema.optionalKey(ServerProviderCompatibilityAdvisory),
7961
8871
  updateState: Schema.optionalKey(ServerProviderUpdateState)
7962
8872
  });
7963
8873
  const ServerProviders = Schema.Array(ServerProvider);
8874
+ /**
8875
+ * Treat the optional `availability` as "available" when absent. This is
8876
+ * the rule legacy producers (which omit the field) and new producers
8877
+ * (which set it explicitly) agree on so consumers never have to thread
8878
+ * `?? "available"` defaults through their code paths.
8879
+ */
8880
+ const isProviderAvailable = (snapshot) => snapshot.availability !== "unavailable";
7964
8881
  const ServerLocalDiagnosticsMetrics = Schema.Struct({
7965
8882
  turnQuiescenceAvgMs: Schema.NullOr(Schema.Number),
7966
8883
  checkpointDurationP95Ms: Schema.NullOr(Schema.Number),
@@ -7980,12 +8897,32 @@ const ServerObservability = Schema.Struct({
7980
8897
  otlpMetricsEnabled: Schema.Boolean,
7981
8898
  localMetrics: Schema.optional(ServerLocalDiagnosticsMetrics)
7982
8899
  });
8900
+ /**
8901
+ * Why "No project" chats are off on this node:
8902
+ * - `inside-git-repository`: the chats root lies in a Git working tree, so every chat would show
8903
+ * the parent repository's branch and diff.
8904
+ * - `root-unavailable`: the chats root cannot be resolved or created.
8905
+ * - `restricted`: the workspace access policy does not allow the chats root.
8906
+ */
8907
+ const ServerChatsUnavailableReason = Schema.Literals([
8908
+ "inside-git-repository",
8909
+ "root-unavailable",
8910
+ "restricted"
8911
+ ]);
8912
+ /** Absent from nodes without chat support; clients then hide every "No project" entry point. */
8913
+ const ServerChatsCapability = Schema.Struct({
8914
+ available: Schema.Boolean,
8915
+ /** Resolved chats root (symlinks resolved), present when it could be determined. */
8916
+ root: Schema.optionalKey(TrimmedNonEmptyString),
8917
+ unavailableReason: Schema.optionalKey(ServerChatsUnavailableReason)
8918
+ });
7983
8919
  const ServerConfig = Schema.Struct({
7984
8920
  usageContractVersion: Schema.optional(NonNegativeInt),
7985
8921
  environment: ExecutionEnvironmentDescriptor,
7986
8922
  auth: ServerAuthDescriptor,
7987
8923
  cwd: TrimmedNonEmptyString,
7988
8924
  workspaceAccessRoot: Schema.optional(TrimmedNonEmptyString),
8925
+ chats: Schema.optionalKey(ServerChatsCapability),
7989
8926
  keybindingsConfigPath: TrimmedNonEmptyString,
7990
8927
  keybindings: ResolvedKeybindingsConfig,
7991
8928
  issues: ServerConfigIssues,
@@ -9516,6 +10453,24 @@ const GitReadLineBlameResult = Schema.Union([Schema.Struct({
9516
10453
  kind: Schema.Literal("unavailable"),
9517
10454
  reason: Schema.String
9518
10455
  })]);
10456
+ /**
10457
+ * One stored blob named by a review patch's `index` line. Patches without
10458
+ * `--full-index` carry abbreviated IDs. No path, index or working-tree lookup.
10459
+ */
10460
+ const GitReadImageBlobInput = Schema.Struct({
10461
+ cwd: TrimmedNonEmptyStringSchema,
10462
+ oid: Schema.String.check(Schema.isPattern(/^(?:[0-9a-f]{4,40}|[0-9a-f]{64})$/))
10463
+ });
10464
+ /** The mime type is sniffed from the blob's bytes, never from a path. */
10465
+ const GitReadImageBlobResult = Schema.Union([Schema.Struct({
10466
+ kind: Schema.Literal("image"),
10467
+ dataBase64: Schema.String,
10468
+ mimeType: TrimmedNonEmptyStringSchema,
10469
+ sizeBytes: NonNegativeInt
10470
+ }), Schema.Struct({
10471
+ kind: Schema.Literal("unavailable"),
10472
+ reason: Schema.String
10473
+ })]);
9519
10474
  const GitLocalChangesInput = Schema.Struct({ cwd: TrimmedNonEmptyStringSchema });
9520
10475
  const GitLocalChangesScope = Schema.Literals(["staged", "unstaged"]);
9521
10476
  const GitLocalPatch = Schema.Struct({
@@ -9544,6 +10499,402 @@ const GitApplyIndexPatchInput = Schema.Struct({
9544
10499
  hunkIndex: Schema.optional(NonNegativeInt)
9545
10500
  });
9546
10501
  //#endregion
10502
+ //#region ../../packages/contracts/src/changeRequestReview.ts
10503
+ /**
10504
+ * Review conversation, timeline, and lifecycle contracts for the dedicated
10505
+ * pull request page. Unlike `SourceControlChangeRequestDetail`, these payloads
10506
+ * are never attached to agent prompts, so they are bounded by page size
10507
+ * rather than by the composer token budget.
10508
+ */
10509
+ const NonBlankMarkdownBody = Schema.String.check(Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
10510
+ /** `left` is the base (deleted) side of a diff, `right` the head (added) side. */
10511
+ const ChangeRequestDiffSide = Schema.Literals(["left", "right"]);
10512
+ const ChangeRequestActor = Schema.Struct({
10513
+ login: TrimmedNonEmptyString,
10514
+ avatarUrl: Schema.optional(Schema.String),
10515
+ isBot: Schema.optional(Schema.Boolean)
10516
+ });
10517
+ const ChangeRequestReviewComment = Schema.Struct({
10518
+ /** Host node id; used for replies, reactions, edits, and deletes. */
10519
+ id: TrimmedNonEmptyString,
10520
+ author: ChangeRequestActor,
10521
+ authorAssociation: Schema.optional(Schema.String),
10522
+ body: Schema.String,
10523
+ createdAt: Schema.DateTimeUtc,
10524
+ updatedAt: Schema.optional(Schema.DateTimeUtc),
10525
+ url: Schema.optional(Schema.String),
10526
+ reactions: Schema.optional(Schema.Array(SourceControlCommentReaction)),
10527
+ /** `pending` comments belong to the viewer's unsubmitted host-side review. */
10528
+ state: Schema.optional(Schema.Literals(["pending", "submitted"])),
10529
+ viewerCanUpdate: Schema.optional(Schema.Boolean),
10530
+ viewerCanDelete: Schema.optional(Schema.Boolean),
10531
+ isMinimized: Schema.optional(Schema.Boolean)
10532
+ });
10533
+ const ChangeRequestReviewThread = Schema.Struct({
10534
+ id: TrimmedNonEmptyString,
10535
+ path: TrimmedNonEmptyString,
10536
+ subjectType: Schema.Literals(["line", "file"]),
10537
+ side: ChangeRequestDiffSide,
10538
+ startSide: Schema.optional(ChangeRequestDiffSide),
10539
+ /** Current anchor line; null when the thread is outdated and no longer maps onto the diff. */
10540
+ line: Schema.NullOr(PositiveInt),
10541
+ startLine: Schema.optional(Schema.NullOr(PositiveInt)),
10542
+ originalLine: Schema.optional(Schema.NullOr(PositiveInt)),
10543
+ originalStartLine: Schema.optional(Schema.NullOr(PositiveInt)),
10544
+ /** Commit the first comment was written on; `originalLine` refers to that commit. */
10545
+ originalCommitOid: Schema.optional(TrimmedNonEmptyString),
10546
+ /** Unified diff excerpt the first comment was written against. */
10547
+ diffHunk: Schema.optional(Schema.String),
10548
+ isResolved: Schema.Boolean,
10549
+ isOutdated: Schema.Boolean,
10550
+ resolvedBy: Schema.optional(TrimmedNonEmptyString),
10551
+ viewerCanReply: Schema.Boolean,
10552
+ viewerCanResolve: Schema.Boolean,
10553
+ viewerCanUnresolve: Schema.Boolean,
10554
+ comments: Schema.Array(ChangeRequestReviewComment),
10555
+ /** Total comments on the host; larger than `comments.length` when paged. */
10556
+ totalComments: NonNegativeInt
10557
+ });
10558
+ const TimelineBase = {
10559
+ id: TrimmedNonEmptyString,
10560
+ createdAt: Schema.DateTimeUtc,
10561
+ actor: Schema.optional(ChangeRequestActor)
10562
+ };
10563
+ const ChangeRequestTimelineComment = Schema.Struct({
10564
+ ...TimelineBase,
10565
+ kind: Schema.Literal("comment"),
10566
+ body: Schema.String,
10567
+ authorAssociation: Schema.optional(Schema.String),
10568
+ updatedAt: Schema.optional(Schema.DateTimeUtc),
10569
+ url: Schema.optional(Schema.String),
10570
+ reactions: Schema.optional(Schema.Array(SourceControlCommentReaction)),
10571
+ viewerCanUpdate: Schema.optional(Schema.Boolean),
10572
+ viewerCanDelete: Schema.optional(Schema.Boolean),
10573
+ isMinimized: Schema.optional(Schema.Boolean)
10574
+ });
10575
+ const ChangeRequestTimelineReview = Schema.Struct({
10576
+ ...TimelineBase,
10577
+ kind: Schema.Literal("review"),
10578
+ state: SourceControlReviewState,
10579
+ body: Schema.String,
10580
+ authorAssociation: Schema.optional(Schema.String),
10581
+ url: Schema.optional(Schema.String),
10582
+ reactions: Schema.optional(Schema.Array(SourceControlCommentReaction)),
10583
+ /** Review threads opened by this review, so the timeline can nest them. */
10584
+ threadIds: Schema.Array(TrimmedNonEmptyString),
10585
+ viewerCanUpdate: Schema.optional(Schema.Boolean)
10586
+ });
10587
+ const ChangeRequestTimelineCommit = Schema.Struct({
10588
+ ...TimelineBase,
10589
+ kind: Schema.Literal("commit"),
10590
+ oid: TrimmedNonEmptyString,
10591
+ shortOid: TrimmedNonEmptyString,
10592
+ messageHeadline: Schema.String,
10593
+ messageBody: Schema.optional(Schema.String),
10594
+ /** Rollup of the commit's checks, when the host reports one. */
10595
+ checkState: Schema.optional(Schema.Literals([
10596
+ "success",
10597
+ "failure",
10598
+ "pending",
10599
+ "neutral"
10600
+ ]))
10601
+ });
10602
+ const ChangeRequestTimelineForcePush = Schema.Struct({
10603
+ ...TimelineBase,
10604
+ kind: Schema.Literal("force-pushed"),
10605
+ beforeOid: Schema.optional(TrimmedNonEmptyString),
10606
+ afterOid: Schema.optional(TrimmedNonEmptyString)
10607
+ });
10608
+ const ChangeRequestTimelineReviewRequest = Schema.Struct({
10609
+ ...TimelineBase,
10610
+ kind: Schema.Literals(["review-requested", "review-request-removed"]),
10611
+ reviewer: TrimmedNonEmptyString,
10612
+ reviewerKind: Schema.Literals([
10613
+ "user",
10614
+ "team",
10615
+ "bot"
10616
+ ])
10617
+ });
10618
+ const ChangeRequestTimelineLabel = Schema.Struct({
10619
+ ...TimelineBase,
10620
+ kind: Schema.Literals(["labeled", "unlabeled"]),
10621
+ label: SourceControlLabel
10622
+ });
10623
+ const ChangeRequestTimelineAssignment = Schema.Struct({
10624
+ ...TimelineBase,
10625
+ kind: Schema.Literals(["assigned", "unassigned"]),
10626
+ assignee: TrimmedNonEmptyString
10627
+ });
10628
+ const ChangeRequestTimelineRename = Schema.Struct({
10629
+ ...TimelineBase,
10630
+ kind: Schema.Literal("renamed"),
10631
+ previousTitle: Schema.String,
10632
+ currentTitle: Schema.String
10633
+ });
10634
+ const ChangeRequestTimelineMerged = Schema.Struct({
10635
+ ...TimelineBase,
10636
+ kind: Schema.Literal("merged"),
10637
+ commitOid: Schema.optional(TrimmedNonEmptyString),
10638
+ baseRefName: Schema.optional(TrimmedNonEmptyString)
10639
+ });
10640
+ const ChangeRequestTimelineLifecycle = Schema.Struct({
10641
+ ...TimelineBase,
10642
+ kind: Schema.Literals([
10643
+ "closed",
10644
+ "reopened",
10645
+ "ready-for-review",
10646
+ "converted-to-draft",
10647
+ "head-ref-deleted",
10648
+ "head-ref-restored"
10649
+ ])
10650
+ });
10651
+ const ChangeRequestTimelineBaseChanged = Schema.Struct({
10652
+ ...TimelineBase,
10653
+ kind: Schema.Literal("base-ref-changed"),
10654
+ previousRefName: Schema.optional(TrimmedNonEmptyString),
10655
+ currentRefName: Schema.optional(TrimmedNonEmptyString)
10656
+ });
10657
+ const ChangeRequestTimelineCrossReference = Schema.Struct({
10658
+ ...TimelineBase,
10659
+ kind: Schema.Literal("cross-referenced"),
10660
+ source: Schema.Struct({
10661
+ kind: Schema.Literals(["issue", "change-request"]),
10662
+ number: PositiveInt,
10663
+ title: Schema.String,
10664
+ url: Schema.String,
10665
+ repository: Schema.optional(TrimmedNonEmptyString),
10666
+ state: Schema.optional(Schema.Literals([
10667
+ "open",
10668
+ "closed",
10669
+ "merged"
10670
+ ]))
10671
+ }),
10672
+ willCloseTarget: Schema.optional(Schema.Boolean)
10673
+ });
10674
+ const ChangeRequestTimelineAutoMerge = Schema.Struct({
10675
+ ...TimelineBase,
10676
+ kind: Schema.Literals(["auto-merge-enabled", "auto-merge-disabled"]),
10677
+ mergeMethod: Schema.optional(SourceControlChangeRequestMergeMethod)
10678
+ });
10679
+ const ChangeRequestTimelineReviewDismissed = Schema.Struct({
10680
+ ...TimelineBase,
10681
+ kind: Schema.Literal("review-dismissed"),
10682
+ reviewAuthor: Schema.optional(TrimmedNonEmptyString),
10683
+ message: Schema.optional(Schema.String)
10684
+ });
10685
+ const ChangeRequestTimelineItem = Schema.Union([
10686
+ ChangeRequestTimelineComment,
10687
+ ChangeRequestTimelineReview,
10688
+ ChangeRequestTimelineCommit,
10689
+ ChangeRequestTimelineForcePush,
10690
+ ChangeRequestTimelineReviewRequest,
10691
+ ChangeRequestTimelineLabel,
10692
+ ChangeRequestTimelineAssignment,
10693
+ ChangeRequestTimelineRename,
10694
+ ChangeRequestTimelineMerged,
10695
+ ChangeRequestTimelineLifecycle,
10696
+ ChangeRequestTimelineBaseChanged,
10697
+ ChangeRequestTimelineCrossReference,
10698
+ ChangeRequestTimelineAutoMerge,
10699
+ ChangeRequestTimelineReviewDismissed
10700
+ ]);
10701
+ const ChangeRequestViewerCapabilities = Schema.Struct({
10702
+ login: TrimmedNonEmptyString,
10703
+ isAuthor: Schema.Boolean,
10704
+ /** Edit title/body/base, labels, assignees, reviewers, draft state, close/reopen. */
10705
+ canUpdate: Schema.Boolean,
10706
+ canMerge: Schema.Boolean,
10707
+ canReview: Schema.Boolean,
10708
+ canUpdateBranch: Schema.Boolean,
10709
+ canEnableAutoMerge: Schema.Boolean,
10710
+ canDisableAutoMerge: Schema.Boolean
10711
+ });
10712
+ const ChangeRequestActivityInput = Schema.Struct({
10713
+ cwd: TrimmedNonEmptyString,
10714
+ reference: TrimmedNonEmptyString
10715
+ });
10716
+ const ChangeRequestActivity = Schema.Struct({
10717
+ provider: SourceControlProviderKind,
10718
+ number: PositiveInt,
10719
+ headSha: Schema.NullOr(TrimmedNonEmptyString),
10720
+ viewer: Schema.NullOr(ChangeRequestViewerCapabilities),
10721
+ /** Chronological (oldest first). */
10722
+ timeline: Schema.Array(ChangeRequestTimelineItem),
10723
+ /** True when older timeline items were dropped to stay within the page budget. */
10724
+ timelineTruncated: Schema.Boolean,
10725
+ reviewThreads: Schema.Array(ChangeRequestReviewThread),
10726
+ reviewThreadsTruncated: Schema.Boolean,
10727
+ /** The viewer's unsubmitted host-side review (e.g. started on the web), if any. */
10728
+ pendingReview: Schema.NullOr(Schema.Struct({
10729
+ id: TrimmedNonEmptyString,
10730
+ commentsCount: NonNegativeInt
10731
+ }))
10732
+ });
10733
+ const ChangeRequestReviewEvent = Schema.Literals([
10734
+ "comment",
10735
+ "approve",
10736
+ "request_changes"
10737
+ ]);
10738
+ const ChangeRequestDraftReviewComment = Schema.Struct({
10739
+ path: TrimmedNonEmptyString,
10740
+ body: NonBlankMarkdownBody,
10741
+ /** `file` comments attach to the whole file and ignore line/side. */
10742
+ subjectType: Schema.optional(Schema.Literals(["line", "file"])),
10743
+ line: Schema.optional(PositiveInt),
10744
+ side: Schema.optional(ChangeRequestDiffSide),
10745
+ startLine: Schema.optional(PositiveInt),
10746
+ startSide: Schema.optional(ChangeRequestDiffSide)
10747
+ });
10748
+ const ChangeRequestSubmitReviewInput = Schema.Struct({
10749
+ cwd: TrimmedNonEmptyString,
10750
+ reference: TrimmedNonEmptyString,
10751
+ event: ChangeRequestReviewEvent,
10752
+ body: Schema.optional(Schema.String),
10753
+ comments: Schema.Array(ChangeRequestDraftReviewComment),
10754
+ /** The head the comments were written against; the host anchors lines to it. */
10755
+ expectedHeadSha: TrimmedNonEmptyString
10756
+ });
10757
+ const ChangeRequestSubmitReviewResult = Schema.Struct({
10758
+ reviewId: TrimmedNonEmptyString,
10759
+ state: SourceControlReviewState,
10760
+ url: Schema.optional(Schema.String)
10761
+ });
10762
+ const ChangeRequestReplyToThreadInput = Schema.Struct({
10763
+ cwd: TrimmedNonEmptyString,
10764
+ reference: TrimmedNonEmptyString,
10765
+ threadId: TrimmedNonEmptyString,
10766
+ body: NonBlankMarkdownBody,
10767
+ clientMutationId: Schema.optional(TrimmedNonEmptyString)
10768
+ });
10769
+ const ChangeRequestReplyToThreadResult = Schema.Struct({ thread: ChangeRequestReviewThread });
10770
+ const ChangeRequestSetThreadResolvedInput = Schema.Struct({
10771
+ cwd: TrimmedNonEmptyString,
10772
+ reference: TrimmedNonEmptyString,
10773
+ threadId: TrimmedNonEmptyString,
10774
+ resolved: Schema.Boolean
10775
+ });
10776
+ const ChangeRequestSetThreadResolvedResult = Schema.Struct({
10777
+ threadId: TrimmedNonEmptyString,
10778
+ isResolved: Schema.Boolean,
10779
+ resolvedBy: Schema.optional(TrimmedNonEmptyString)
10780
+ });
10781
+ const ChangeRequestCommentKind = Schema.Literals([
10782
+ "issue-comment",
10783
+ "review-comment",
10784
+ "review"
10785
+ ]);
10786
+ const ChangeRequestUpdateCommentInput = Schema.Union([Schema.Struct({
10787
+ cwd: TrimmedNonEmptyString,
10788
+ reference: TrimmedNonEmptyString,
10789
+ commentId: TrimmedNonEmptyString,
10790
+ commentKind: ChangeRequestCommentKind,
10791
+ action: Schema.Literal("edit"),
10792
+ body: NonBlankMarkdownBody
10793
+ }), Schema.Struct({
10794
+ cwd: TrimmedNonEmptyString,
10795
+ reference: TrimmedNonEmptyString,
10796
+ commentId: TrimmedNonEmptyString,
10797
+ commentKind: Schema.Literals(["issue-comment", "review-comment"]),
10798
+ action: Schema.Literal("delete")
10799
+ })]);
10800
+ const ChangeRequestUpdateCommentResult = Schema.Struct({
10801
+ commentId: TrimmedNonEmptyString,
10802
+ deleted: Schema.Boolean
10803
+ });
10804
+ const ListEdit = {
10805
+ add: Schema.Array(TrimmedNonEmptyString),
10806
+ remove: Schema.Array(TrimmedNonEmptyString)
10807
+ };
10808
+ const ChangeRequestUpdateAction = Schema.Union([
10809
+ Schema.Struct({
10810
+ kind: Schema.Literal("edit"),
10811
+ title: Schema.optional(TrimmedNonEmptyString),
10812
+ body: Schema.optional(Schema.String),
10813
+ baseRefName: Schema.optional(TrimmedNonEmptyString)
10814
+ }),
10815
+ Schema.Struct({
10816
+ kind: Schema.Literal("set-draft"),
10817
+ draft: Schema.Boolean
10818
+ }),
10819
+ Schema.Struct({
10820
+ kind: Schema.Literal("close"),
10821
+ deleteBranch: Schema.optional(Schema.Boolean)
10822
+ }),
10823
+ Schema.Struct({ kind: Schema.Literal("reopen") }),
10824
+ Schema.Struct({
10825
+ kind: Schema.Literal("reviewers"),
10826
+ ...ListEdit
10827
+ }),
10828
+ Schema.Struct({
10829
+ kind: Schema.Literal("labels"),
10830
+ ...ListEdit
10831
+ }),
10832
+ Schema.Struct({
10833
+ kind: Schema.Literal("assignees"),
10834
+ ...ListEdit
10835
+ }),
10836
+ Schema.Struct({
10837
+ kind: Schema.Literal("update-branch"),
10838
+ method: Schema.Literals(["merge", "rebase"]),
10839
+ expectedHeadSha: TrimmedNonEmptyString
10840
+ }),
10841
+ Schema.Struct({
10842
+ kind: Schema.Literal("auto-merge"),
10843
+ enabled: Schema.Boolean,
10844
+ mergeMethod: Schema.optional(SourceControlChangeRequestMergeMethod),
10845
+ /** When enabling: refuse if the head moved since the user looked (as for merges). */
10846
+ expectedHeadSha: Schema.optional(TrimmedNonEmptyString)
10847
+ }),
10848
+ Schema.Struct({ kind: Schema.Literal("delete-branch") })
10849
+ ]);
10850
+ const ChangeRequestUpdateInput = Schema.Struct({
10851
+ cwd: TrimmedNonEmptyString,
10852
+ reference: TrimmedNonEmptyString,
10853
+ action: ChangeRequestUpdateAction
10854
+ });
10855
+ const ChangeRequestUpdateResult = Schema.Struct({
10856
+ /** Fresh, uncapped (`fullContent`) detail after the action. */
10857
+ detail: SourceControlChangeRequestDetail });
10858
+ const ChangeRequestCreateInput = Schema.Struct({
10859
+ cwd: TrimmedNonEmptyString,
10860
+ baseRefName: TrimmedNonEmptyString,
10861
+ /** Branch name, or `owner:branch` for a fork head. */
10862
+ headRefName: TrimmedNonEmptyString,
10863
+ title: TrimmedNonEmptyString,
10864
+ body: Schema.String,
10865
+ draft: Schema.optional(Schema.Boolean)
10866
+ });
10867
+ const CHANGE_REQUEST_FILE_CONTENTS_MAX_BYTES = 1048576;
10868
+ const ChangeRequestFileContentsInput = Schema.Struct({
10869
+ cwd: TrimmedNonEmptyString,
10870
+ reference: TrimmedNonEmptyString,
10871
+ path: TrimmedNonEmptyString,
10872
+ /** Pre-rename path on the base side, when the file moved. */
10873
+ previousPath: Schema.optional(TrimmedNonEmptyString),
10874
+ /**
10875
+ * Old-side revision. Omit for the whole change request: the server resolves
10876
+ * the merge base of the base branch and `headSha`, matching the PR diff.
10877
+ * Pass the parent commit when the diff is scoped to a single commit.
10878
+ */
10879
+ baseSha: Schema.optional(TrimmedNonEmptyString),
10880
+ headSha: TrimmedNonEmptyString
10881
+ });
10882
+ const ChangeRequestFileContents = Schema.Struct({
10883
+ path: TrimmedNonEmptyString,
10884
+ /** Null when the file does not exist on that side (added/deleted) or is binary. */
10885
+ oldContents: Schema.NullOr(Schema.String),
10886
+ newContents: Schema.NullOr(Schema.String),
10887
+ truncated: Schema.Boolean
10888
+ });
10889
+ /** Server-side involvement filter for change request lists (relative to the viewer). */
10890
+ const ChangeRequestInvolvement = Schema.Literals([
10891
+ "authored",
10892
+ "review-requested",
10893
+ "assigned",
10894
+ "mentioned",
10895
+ "involved"
10896
+ ]);
10897
+ //#endregion
9547
10898
  //#region ../../packages/contracts/src/atlassian.ts
9548
10899
  const AtlassianConnectionKind = Schema.Literals([
9549
10900
  "oauth_3lo",
@@ -10514,6 +11865,15 @@ const AgentControlRequestId = TrimmedNonEmptyString.check(Schema.isMaxLength(128
10514
11865
  * per-provider-runtime, in-memory, thread-bound, and revoked on runtime
10515
11866
  * teardown — none of that credential material appears in this contract.
10516
11867
  */
11868
+ /** Audit-safe target thread state captured at submission and used to reject stale approved plans. */
11869
+ const AgentControlTargetThreadSnapshot = Schema.Struct({
11870
+ threadId: ThreadId,
11871
+ projectId: ProjectId,
11872
+ runtimeMode: RuntimeMode,
11873
+ envMode: ThreadEnvMode,
11874
+ archived: Schema.Boolean,
11875
+ activeTurnId: Schema.NullOr(TurnId)
11876
+ });
10517
11877
  const AgentControlProviderSessionPrincipal = Schema.Struct({
10518
11878
  kind: Schema.Literal("provider-session"),
10519
11879
  threadId: ThreadId,
@@ -10527,28 +11887,26 @@ const AgentControlProviderSessionPrincipal = Schema.Struct({
10527
11887
  originRuntimeMode: Schema.optional(RuntimeMode),
10528
11888
  originEnvMode: Schema.optional(ThreadEnvMode),
10529
11889
  /** Audit-safe target state used to reject stale approved plans. */
10530
- targetSnapshots: Schema.optional(Schema.Array(Schema.Struct({
10531
- threadId: ThreadId,
10532
- projectId: ProjectId,
10533
- runtimeMode: RuntimeMode,
10534
- envMode: ThreadEnvMode,
10535
- archived: Schema.Boolean,
10536
- activeTurnId: Schema.NullOr(TurnId)
10537
- })))
11890
+ targetSnapshots: Schema.optional(Schema.Array(AgentControlTargetThreadSnapshot))
10538
11891
  });
10539
11892
  /**
10540
- * A separately paired local MCP client. Pairing, credential issuance, and
10541
- * scope grants are owned by later PRs; the principal identity is defined
10542
- * here so proposals persist a stable, audit-safe origin from day one.
11893
+ * A separately paired local MCP client. It has no caller thread, so its
11894
+ * privilege evidence is the integration's grant ceiling at submission.
10543
11895
  */
10544
11896
  const AgentControlExternalIntegrationPrincipal = Schema.Struct({
10545
11897
  kind: Schema.Literal("external-integration"),
10546
11898
  integrationId: AgentControlIntegrationId,
10547
11899
  label: Schema.optional(TrimmedNonEmptyString.check(Schema.isMaxLength(120))),
10548
- /** Immutable execution-policy evidence captured when the proposal is created. */
11900
+ /**
11901
+ * Immutable execution-policy evidence captured when the proposal is created:
11902
+ * the task's own policy for created threads, or the integration's runtime
11903
+ * and checkout ceiling for thread control.
11904
+ */
10549
11905
  projectId: Schema.optional(ProjectId),
10550
11906
  runtimeMode: Schema.optional(RuntimeMode),
10551
- envMode: Schema.optional(ThreadEnvMode)
11907
+ envMode: Schema.optional(ThreadEnvMode),
11908
+ /** Audit-safe target state for thread control, used to reject stale approved plans. */
11909
+ targetSnapshots: Schema.optional(Schema.Array(AgentControlTargetThreadSnapshot))
10552
11910
  });
10553
11911
  /** Owner-authored automation only; never accepted from an MCP principal. */
10554
11912
  const AgentControlAutomationOwnerPrincipal = Schema.Struct({
@@ -10572,6 +11930,8 @@ const AgentControlCapability = agentControlSlug.pipe(Schema.brand("AgentControlC
10572
11930
  const AGENT_CONTROL_CAPABILITIES = {
10573
11931
  read: AgentControlCapability.make("read"),
10574
11932
  attachFile: AgentControlCapability.make("files.attach"),
11933
+ /** Preview HTML pages in Ryco's headless browser and show them inline in the caller's thread. */
11934
+ renderHtml: AgentControlCapability.make("html.render"),
10575
11935
  createThreads: AgentControlCapability.make("threads.create"),
10576
11936
  sendMessage: AgentControlCapability.make("threads.send-message"),
10577
11937
  interruptThread: AgentControlCapability.make("threads.interrupt"),
@@ -10599,7 +11959,13 @@ const AGENT_CONTROL_CAPABILITIES = {
10599
11959
  externalReadAutomations: AgentControlCapability.make("external.automations.read"),
10600
11960
  externalManageAutomations: AgentControlCapability.make("external.automations.manage"),
10601
11961
  externalReadActivity: AgentControlCapability.make("external.activity.read"),
10602
- externalReadDiagnostics: AgentControlCapability.make("external.diagnostics.read")
11962
+ externalReadDiagnostics: AgentControlCapability.make("external.diagnostics.read"),
11963
+ externalReadThreads: AgentControlCapability.make("external.threads.read"),
11964
+ externalReadReviews: AgentControlCapability.make("external.reviews.read"),
11965
+ externalReadFiles: AgentControlCapability.make("external.files.read"),
11966
+ externalReadWorkspaces: AgentControlCapability.make("external.workspaces.read"),
11967
+ externalControlThreads: AgentControlCapability.make("external.threads.control"),
11968
+ externalManageWorkspaces: AgentControlCapability.make("external.workspaces.manage")
10603
11969
  };
10604
11970
  const AgentControlActionKind = Schema.Literals([
10605
11971
  "createThreads",
@@ -11812,6 +13178,7 @@ const AgentControlMcpReadDeviceStateResult = Schema.Struct({
11812
13178
  });
11813
13179
  const AgentControlMcpProjectSummary = Schema.Struct({
11814
13180
  projectId: ProjectId,
13181
+ kind: OptionalProjectKind,
11815
13182
  title: TrimmedNonEmptyString,
11816
13183
  createdAt: IsoDateTime,
11817
13184
  updatedAt: IsoDateTime
@@ -12180,7 +13547,24 @@ const AGENT_CONTROL_EXTERNAL_MCP_TOOLS = {
12180
13547
  recentActivity: "ryco_recent_activity",
12181
13548
  orchestrationEvents: "ryco_orchestration_events",
12182
13549
  providerRuntimeEvents: "ryco_provider_runtime_events",
12183
- diagnosticsSummary: "ryco_diagnostics_summary"
13550
+ diagnosticsSummary: "ryco_diagnostics_summary",
13551
+ readControlRequest: "ryco_read_control_request",
13552
+ waitForControlRequest: "ryco_wait_for_control_request",
13553
+ listThreads: "ryco_list_threads",
13554
+ readThread: "ryco_read_thread",
13555
+ searchThreads: "ryco_search_threads",
13556
+ waitThreads: "ryco_wait_threads",
13557
+ inspectThread: "ryco_inspect_thread",
13558
+ readThreadDiff: "ryco_read_thread_diff",
13559
+ readThreadFile: "ryco_read_thread_file",
13560
+ readProject: "ryco_read_project",
13561
+ listWorkspaces: "ryco_list_workspaces",
13562
+ readWorkspace: "ryco_read_workspace",
13563
+ sendMessage: "ryco_send_message",
13564
+ interruptThread: "ryco_interrupt_thread",
13565
+ updateThread: "ryco_update_thread",
13566
+ planWorkspace: "ryco_plan_workspace_lifecycle",
13567
+ proposeWorkspace: "ryco_propose_workspace_lifecycle"
12184
13568
  };
12185
13569
  const AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES = Object.values(AGENT_CONTROL_EXTERNAL_MCP_TOOLS);
12186
13570
  const AgentControlExternalCreateTaskInput = Schema.Struct({
@@ -12369,6 +13753,107 @@ const ProjectReadIconResult = Schema.NullOr(Schema.Struct({
12369
13753
  ])
12370
13754
  }));
12371
13755
  var ProjectReadIconError = class extends Schema.TaggedError()("ProjectReadIconError", { message: TrimmedNonEmptyString }) {};
13756
+ /** Server-local absolute directory; access and filesystem validation belong to the server. */
13757
+ const ProjectChatDestination = TrimmedNonEmptyString.check(Schema.isMaxLength(4096));
13758
+ /**
13759
+ * Where a promoted chat folder would go. Only `available` can be promoted:
13760
+ * - `exists`: something is already at the destination, or another chat is moving there.
13761
+ * - `invalid`: not an absolute path, or its parent is missing or not a writable directory.
13762
+ * - `access-denied`: the workspace access policy rejects it.
13763
+ * - `inside-chats`: it lies inside the chats root.
13764
+ * - `inside-source`: it lies inside the chat folder being moved.
13765
+ * - `retired-checkout`: it is at or inside a workspace checkout Ryco removed (or is removing or
13766
+ * moving). The server keeps new work out of such paths, so a project there could never run.
13767
+ */
13768
+ const ProjectChatDestinationStatus = Schema.Literals([
13769
+ "available",
13770
+ "exists",
13771
+ "invalid",
13772
+ "access-denied",
13773
+ "inside-chats",
13774
+ "inside-source",
13775
+ "retired-checkout"
13776
+ ]);
13777
+ const ProjectsPromoteChatPreviewInput = Schema.Struct({
13778
+ projectId: ProjectId,
13779
+ /** Absent previews the default destination. Any text is accepted and judged in the result. */
13780
+ destination: Schema.optional(Schema.String.check(Schema.isMaxLength(4096)))
13781
+ });
13782
+ /** Read-only: previewing never creates, moves or locks anything. */
13783
+ const ProjectsPromoteChatPreviewResult = Schema.Struct({
13784
+ projectId: ProjectId,
13785
+ /** The chat folder that would move. */
13786
+ source: TrimmedNonEmptyString,
13787
+ /**
13788
+ * A free folder under `addProjectBaseDirectory` (or its default): `<slug>` when nothing is there,
13789
+ * otherwise the first free `<slug>-2`, `<slug>-3`, …
13790
+ */
13791
+ defaultDestination: TrimmedNonEmptyString,
13792
+ /** The destination that was judged: the input's (normalized) or the default. */
13793
+ destination: Schema.String,
13794
+ destinationStatus: ProjectChatDestinationStatus,
13795
+ fileCount: NonNegativeInt,
13796
+ totalBytes: NonNegativeInt,
13797
+ /** The scan stopped at its bound; the counts are lower limits. */
13798
+ countTruncated: Schema.Boolean,
13799
+ /** Threads with live work (running turn, pending approval or input, queued dispatch). */
13800
+ busyThreadIds: Schema.Array(ThreadId),
13801
+ gitAvailable: Schema.Boolean,
13802
+ /** Whether `user.name` and `user.email` resolve, so an initial commit can succeed. */
13803
+ gitIdentityConfigured: Schema.Boolean,
13804
+ /** Source and destination are on different devices: the move is a copy, then a delete. */
13805
+ crossDevice: Schema.Boolean
13806
+ });
13807
+ const ProjectsPromoteChatInput = Schema.Struct({
13808
+ projectId: ProjectId,
13809
+ /** Compare-and-set guard against the project as previewed. */
13810
+ expectedUpdatedAt: Schema.optional(IsoDateTime),
13811
+ title: TrimmedNonEmptyString.check(Schema.isMaxLength(200)),
13812
+ destination: ProjectChatDestination,
13813
+ initializeGit: Schema.Boolean,
13814
+ /** Ignored unless `initializeGit`. */
13815
+ initialCommit: Schema.Boolean,
13816
+ /** Ignored unless `initializeGit`; never overwrites an existing `.gitignore`. */
13817
+ writeGitignore: Schema.Boolean
13818
+ });
13819
+ const ProjectsPromoteChatResult = Schema.Struct({
13820
+ projectId: ProjectId,
13821
+ workspaceRoot: TrimmedNonEmptyString,
13822
+ gitInitialized: Schema.Boolean,
13823
+ initialCommitCreated: Schema.Boolean,
13824
+ /** The project was promoted, but its first commit failed (for example, no Git identity). */
13825
+ commitError: Schema.optional(Schema.String)
13826
+ });
13827
+ /**
13828
+ * The explicit "Also delete files" step for a chat. Refused while the chat still has threads, and
13829
+ * never removes anything outside the chats root.
13830
+ */
13831
+ const ProjectsDeleteChatFolderInput = Schema.Struct({ projectId: ProjectId });
13832
+ const ProjectsDeleteChatFolderResult = Schema.Struct({
13833
+ /** False when the folder was already gone. */
13834
+ deleted: Schema.Boolean });
13835
+ const ProjectChatErrorReason = Schema.Literals([
13836
+ "not-found",
13837
+ "not-chat",
13838
+ "busy",
13839
+ "stale",
13840
+ "destination-exists",
13841
+ "destination-invalid",
13842
+ "destination-inside-chats",
13843
+ "destination-inside-source",
13844
+ "destination-retired-checkout",
13845
+ "access-denied",
13846
+ "move-failed",
13847
+ "git-failed",
13848
+ "chats-unavailable",
13849
+ "has-threads",
13850
+ "outside-chats-root"
13851
+ ]);
13852
+ /** One error for every chat-folder RPC; `reason` is the stable, machine-readable part. */
13853
+ var ProjectChatError = class extends Schema.TaggedError()("ProjectChatError", {
13854
+ reason: ProjectChatErrorReason,
13855
+ message: TrimmedNonEmptyString
13856
+ }) {};
12372
13857
  //#endregion
12373
13858
  //#region ../../packages/contracts/src/filesystem.ts
12374
13859
  const FILESYSTEM_PATH_MAX_LENGTH = 512;
@@ -12392,6 +13877,195 @@ var FilesystemBrowseError = class extends Schema.TaggedError()("FilesystemBrowse
12392
13877
  cause: Schema.optional(Schema.Defect())
12393
13878
  }) {};
12394
13879
  //#endregion
13880
+ //#region ../../packages/contracts/src/localTasks.ts
13881
+ const LocalTaskId = Schema.String.check(Schema.isPattern(/^[a-zA-Z0-9_-]{1,128}$/));
13882
+ const Title = Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(500));
13883
+ const Notes = Schema.String.check(Schema.isMaxLength(2e4));
13884
+ const LocalTaskPriority = Schema.Literals([
13885
+ "low",
13886
+ "normal",
13887
+ "high",
13888
+ "urgent"
13889
+ ]);
13890
+ const LocalTaskFields = {
13891
+ title: Title,
13892
+ notes: Notes,
13893
+ priority: LocalTaskPriority,
13894
+ dueAt: Schema.NullOr(IsoDateTime),
13895
+ projectId: Schema.NullOr(ProjectId)
13896
+ };
13897
+ const LocalTaskStatus = Schema.Literals([
13898
+ "todo",
13899
+ "starting",
13900
+ "running",
13901
+ "needs-you",
13902
+ "review",
13903
+ "failed",
13904
+ "unavailable",
13905
+ "done"
13906
+ ]);
13907
+ const LocalTask = Schema.Struct({
13908
+ taskId: LocalTaskId,
13909
+ revision: NonNegativeInt,
13910
+ ...LocalTaskFields,
13911
+ state: Schema.Literals(["todo", "done"]),
13912
+ status: LocalTaskStatus,
13913
+ delegation: Schema.NullOr(Schema.Struct({
13914
+ threadId: ThreadId,
13915
+ messageId: MessageId,
13916
+ commandId: CommandId,
13917
+ dispatched: Schema.Boolean
13918
+ })),
13919
+ createdAt: IsoDateTime,
13920
+ updatedAt: IsoDateTime
13921
+ });
13922
+ const LocalTaskCreateInput = Schema.Struct({
13923
+ taskId: LocalTaskId,
13924
+ ...LocalTaskFields
13925
+ });
13926
+ const LocalTaskUpdateInput = Schema.Struct({
13927
+ taskId: LocalTaskId,
13928
+ expectedRevision: NonNegativeInt,
13929
+ title: Schema.optional(Title),
13930
+ notes: Schema.optional(Notes),
13931
+ priority: Schema.optional(LocalTaskPriority),
13932
+ dueAt: Schema.optional(Schema.NullOr(IsoDateTime)),
13933
+ projectId: Schema.optional(Schema.NullOr(ProjectId)),
13934
+ state: Schema.optional(Schema.Literals(["todo", "done"]))
13935
+ });
13936
+ const LocalTaskDeleteInput = Schema.Struct({
13937
+ taskId: LocalTaskId,
13938
+ expectedRevision: NonNegativeInt
13939
+ });
13940
+ const LocalTaskListInput = Schema.Struct({
13941
+ limit: Schema.optional(Schema.Int.check(Schema.isBetween({
13942
+ minimum: 1,
13943
+ maximum: 100
13944
+ }))),
13945
+ afterId: Schema.optional(LocalTaskId)
13946
+ });
13947
+ const LocalTaskListResult = Schema.Struct({
13948
+ tasks: Schema.Array(LocalTask),
13949
+ nextCursor: Schema.NullOr(LocalTaskId)
13950
+ });
13951
+ const LocalTaskDelegateInput = Schema.Struct({
13952
+ taskId: LocalTaskId,
13953
+ expectedRevision: NonNegativeInt,
13954
+ command: ClientThreadTurnStartCommand
13955
+ });
13956
+ var LocalTaskError = class extends Schema.TaggedError()("LocalTaskError", {
13957
+ reason: Schema.Literals([
13958
+ "not-found",
13959
+ "conflict",
13960
+ "invalid",
13961
+ "persistence"
13962
+ ]),
13963
+ message: Schema.String
13964
+ }) {};
13965
+ //#endregion
13966
+ //#region ../../packages/contracts/src/notes.ts
13967
+ /** `worktree` belongs to one checkout; `project` is shared by the whole project. */
13968
+ const NoteScope = Schema.Literals(["worktree", "project"]);
13969
+ /** Free text; empty is a cleared document. */
13970
+ const NoteBody = Schema.String.check(Schema.isMaxLength(1e5));
13971
+ /**
13972
+ * One free-text notes document: a checkout's (`scope: "worktree"`, keyed by
13973
+ * its worktree, `null` for the main checkout) or the project's own
13974
+ * (`scope: "project"`, always `worktreeId: null`).
13975
+ */
13976
+ const NotesDocument = Schema.Struct({
13977
+ projectId: ProjectId,
13978
+ scope: NoteScope,
13979
+ worktreeId: Schema.NullOr(WorktreeId),
13980
+ body: NoteBody,
13981
+ /** Bumped by every save; a document never saved is revision 0 and is not listed. */
13982
+ revision: NonNegativeInt,
13983
+ updatedAt: IsoDateTime
13984
+ });
13985
+ const NotesListInput = Schema.Struct({ projectId: ProjectId });
13986
+ const NotesSnapshot = Schema.Struct({
13987
+ projectId: ProjectId,
13988
+ /** The project's document and every live checkout's, in no particular order. */
13989
+ documents: Schema.Array(NotesDocument)
13990
+ });
13991
+ /** Replaces one document's body; judged against the revision the edit started from. */
13992
+ const NotesCommand = Schema.Struct({
13993
+ kind: Schema.Literal("save"),
13994
+ projectId: ProjectId,
13995
+ scope: NoteScope,
13996
+ /** Must be `null` for the project's document. */
13997
+ worktreeId: Schema.NullOr(WorktreeId),
13998
+ body: NoteBody,
13999
+ /** The revision the edit was based on (0 for a document never saved). */
14000
+ expectedRevision: NonNegativeInt
14001
+ }).annotate({ parseOptions: { onExcessProperty: "error" } });
14002
+ var NotesError = class extends Schema.TaggedError()("NotesError", {
14003
+ reason: Schema.Literals([
14004
+ "conflict",
14005
+ "invalid",
14006
+ "persistence"
14007
+ ]),
14008
+ message: Schema.String
14009
+ }) {};
14010
+ //#endregion
14011
+ //#region ../../packages/contracts/src/dailyRecap.ts
14012
+ const DailyRecapRequest = Schema.Struct({
14013
+ date: UsageCalendarDate,
14014
+ timeZone: TrimmedNonEmptyString,
14015
+ /** Maximum threads in each section; defaults to 20. Counts remain complete. */
14016
+ limit: Schema.optional(PositiveInt.check(Schema.isLessThanOrEqualTo(50)))
14017
+ });
14018
+ const DailyRecapThread = Schema.Struct({
14019
+ threadId: ThreadId,
14020
+ threadTitle: Schema.String,
14021
+ projectId: ProjectId,
14022
+ projectTitle: Schema.String,
14023
+ lastActivityAt: IsoDateTime
14024
+ });
14025
+ const DailyRecapAttentionThread = Schema.Struct({
14026
+ ...DailyRecapThread.fields,
14027
+ pendingApprovals: NonNegativeInt,
14028
+ pendingUserInputs: NonNegativeInt,
14029
+ hasProposedPlan: Schema.Boolean,
14030
+ sessionError: Schema.Boolean
14031
+ });
14032
+ const DailyRecapThreadSection = Schema.Struct({
14033
+ totalThreads: NonNegativeInt,
14034
+ threads: Schema.Array(DailyRecapThread),
14035
+ truncated: Schema.Boolean
14036
+ });
14037
+ const DailyRecapSnapshot = Schema.Struct({
14038
+ date: UsageCalendarDate,
14039
+ timeZone: TrimmedNonEmptyString,
14040
+ generatedAt: IsoDateTime,
14041
+ /** Exact UTC interval for the selected local calendar day; end is exclusive. */
14042
+ from: IsoDateTime,
14043
+ to: IsoDateTime,
14044
+ /** Ryco turn outcomes in this day, excluding deleted threads and projects. */
14045
+ counts: Schema.Struct({
14046
+ completedTurns: NonNegativeInt,
14047
+ failedTurns: NonNegativeInt,
14048
+ interruptedTurns: NonNegativeInt
14049
+ }),
14050
+ /** Sections are independent: a thread may have both successful and failed turns. */
14051
+ completed: DailyRecapThreadSection,
14052
+ failed: DailyRecapThreadSection,
14053
+ /** Current outstanding attention, regardless of the selected day; excludes archived threads. */
14054
+ needsAttention: Schema.Struct({
14055
+ totalThreads: NonNegativeInt,
14056
+ threads: Schema.Array(DailyRecapAttentionThread),
14057
+ truncated: Schema.Boolean
14058
+ })
14059
+ });
14060
+ var DailyRecapReadError = class extends Schema.TaggedError()("DailyRecapReadError", {
14061
+ reason: Schema.Literals([
14062
+ "invalid-date",
14063
+ "invalid-time-zone",
14064
+ "query-failed"
14065
+ ]),
14066
+ detail: TrimmedNonEmptyString
14067
+ }) {};
14068
+ //#endregion
12395
14069
  //#region ../../packages/contracts/src/sessionImport.ts
12396
14070
  const SessionImportSource = Schema.Literals(["codex", "claudeAgent"]);
12397
14071
  const ImportKey = Schema.String.check(Schema.isPattern(/^[a-f0-9]{64}$/));
@@ -12579,6 +14253,7 @@ const WS_METHODS = {
12579
14253
  vcsRefreshStatus: "vcs.refreshStatus",
12580
14254
  vcsListRefs: "vcs.listRefs",
12581
14255
  vcsReadLineBlame: "vcs.readLineBlame",
14256
+ vcsReadImageBlob: "vcs.readImageBlob",
12582
14257
  vcsReadLocalChanges: "vcs.readLocalChanges",
12583
14258
  vcsApplyIndexPatch: "vcs.applyIndexPatch",
12584
14259
  vcsReadComparison: "vcs.readComparison",
@@ -12595,10 +14270,18 @@ const WS_METHODS = {
12595
14270
  gitArchiveWorktree: "git.archiveWorktree",
12596
14271
  gitRestoreWorktree: "git.restoreWorktree",
12597
14272
  gitDeleteWorktree: "git.deleteWorktree",
14273
+ lifecycleListWorkspaces: "lifecycle.listWorkspaces",
14274
+ lifecyclePreviewWorkspace: "lifecycle.previewWorkspace",
14275
+ lifecycleApplyWorkspace: "lifecycle.applyWorkspace",
14276
+ lifecycleSuggestions: "lifecycle.suggestions",
14277
+ lifecycleListTrash: "lifecycle.listTrash",
12598
14278
  threadsSetManualBucket: "threads.setManualBucket",
12599
14279
  threadsSetManualPosition: "threads.setManualPosition",
12600
14280
  worktreesSetManualPosition: "worktrees.setManualPosition",
12601
14281
  projectsInitializeGit: "projects.initializeGit",
14282
+ projectsPromoteChatPreview: "projects.promoteChatPreview",
14283
+ projectsPromoteChat: "projects.promoteChat",
14284
+ projectsDeleteChatFolder: "projects.deleteChatFolder",
12602
14285
  searchThreadMessages: "threads.searchMessages",
12603
14286
  threadPriorityEnsureCurrent: "threadPriority.ensureCurrent",
12604
14287
  terminalOpen: "terminal.open",
@@ -12616,6 +14299,15 @@ const WS_METHODS = {
12616
14299
  serverAuthenticateAcpRegistry: "server.authenticateAcpRegistry",
12617
14300
  serverReadCodexResetCredits: "server.readCodexResetCredits",
12618
14301
  serverConsumeCodexResetCredit: "server.consumeCodexResetCredit",
14302
+ serverListLocalTasks: "server.listLocalTasks",
14303
+ serverGetLocalTask: "server.getLocalTask",
14304
+ serverCreateLocalTask: "server.createLocalTask",
14305
+ serverUpdateLocalTask: "server.updateLocalTask",
14306
+ serverDeleteLocalTask: "server.deleteLocalTask",
14307
+ serverDelegateLocalTask: "server.delegateLocalTask",
14308
+ serverGetDailyRecap: "server.getDailyRecap",
14309
+ notesList: "notes.list",
14310
+ notesCommand: "notes.command",
12619
14311
  serverRefreshProviders: "server.refreshProviders",
12620
14312
  serverUpdateProvider: "server.updateProvider",
12621
14313
  serverUpsertKeybinding: "server.upsertKeybinding",
@@ -12665,6 +14357,14 @@ const WS_METHODS = {
12665
14357
  sourceControlGetWorkflowRunJobs: "sourceControl.getWorkflowRunJobs",
12666
14358
  sourceControlGetWorkflowJobLog: "sourceControl.getWorkflowJobLog",
12667
14359
  sourceControlRerunWorkflow: "sourceControl.rerunWorkflow",
14360
+ sourceControlGetChangeRequestActivity: "sourceControl.getChangeRequestActivity",
14361
+ sourceControlGetChangeRequestFileContents: "sourceControl.getChangeRequestFileContents",
14362
+ sourceControlSubmitChangeRequestReview: "sourceControl.submitChangeRequestReview",
14363
+ sourceControlReplyToReviewThread: "sourceControl.replyToReviewThread",
14364
+ sourceControlSetReviewThreadResolved: "sourceControl.setReviewThreadResolved",
14365
+ sourceControlUpdateChangeRequestComment: "sourceControl.updateChangeRequestComment",
14366
+ sourceControlUpdateChangeRequest: "sourceControl.updateChangeRequest",
14367
+ sourceControlCreateChangeRequest: "sourceControl.createChangeRequest",
12668
14368
  textGenerationGenerateIssueContent: "textGeneration.generateIssueContent",
12669
14369
  textGenerationAskSideQuestion: "textGeneration.askSideQuestion",
12670
14370
  textGenerationCancelSideQuestion: "textGeneration.cancelSideQuestion",
@@ -12868,6 +14568,55 @@ const WsServerConsumeCodexResetCreditRpc = Rpc.make(WS_METHODS.serverConsumeCode
12868
14568
  success: Schema.Struct({ outcome: CodexResetCreditOutcome }),
12869
14569
  error: Schema.Union([CodexResetCreditError, AuthRpcError])
12870
14570
  });
14571
+ const WsServerListLocalTasksRpc = Rpc.make(WS_METHODS.serverListLocalTasks, {
14572
+ payload: LocalTaskListInput,
14573
+ success: LocalTaskListResult,
14574
+ error: Schema.Union([LocalTaskError, AuthRpcError])
14575
+ });
14576
+ const WsServerGetLocalTaskRpc = Rpc.make(WS_METHODS.serverGetLocalTask, {
14577
+ payload: Schema.Struct({ taskId: LocalTaskId }),
14578
+ success: LocalTask,
14579
+ error: Schema.Union([LocalTaskError, AuthRpcError])
14580
+ });
14581
+ const WsServerCreateLocalTaskRpc = Rpc.make(WS_METHODS.serverCreateLocalTask, {
14582
+ payload: LocalTaskCreateInput,
14583
+ success: LocalTask,
14584
+ error: Schema.Union([LocalTaskError, AuthRpcError])
14585
+ });
14586
+ const WsServerUpdateLocalTaskRpc = Rpc.make(WS_METHODS.serverUpdateLocalTask, {
14587
+ payload: LocalTaskUpdateInput,
14588
+ success: LocalTask,
14589
+ error: Schema.Union([LocalTaskError, AuthRpcError])
14590
+ });
14591
+ const WsServerDeleteLocalTaskRpc = Rpc.make(WS_METHODS.serverDeleteLocalTask, {
14592
+ payload: LocalTaskDeleteInput,
14593
+ success: Schema.Struct({ deleted: Schema.Literal(true) }),
14594
+ error: Schema.Union([LocalTaskError, AuthRpcError])
14595
+ });
14596
+ const WsServerDelegateLocalTaskRpc = Rpc.make(WS_METHODS.serverDelegateLocalTask, {
14597
+ payload: LocalTaskDelegateInput,
14598
+ success: LocalTask,
14599
+ error: Schema.Union([
14600
+ LocalTaskError,
14601
+ AuthRpcError,
14602
+ OrchestrationDispatchCommandError
14603
+ ])
14604
+ });
14605
+ const WsNotesListRpc = Rpc.make(WS_METHODS.notesList, {
14606
+ payload: NotesListInput,
14607
+ success: NotesSnapshot,
14608
+ error: Schema.Union([NotesError, AuthRpcError])
14609
+ });
14610
+ const WsNotesCommandRpc = Rpc.make(WS_METHODS.notesCommand, {
14611
+ payload: NotesCommand,
14612
+ success: NotesSnapshot,
14613
+ error: Schema.Union([NotesError, AuthRpcError])
14614
+ });
14615
+ const WsServerGetDailyRecapRpc = Rpc.make(WS_METHODS.serverGetDailyRecap, {
14616
+ payload: DailyRecapRequest,
14617
+ success: DailyRecapSnapshot,
14618
+ error: Schema.Union([DailyRecapReadError, AuthRpcError])
14619
+ });
12871
14620
  const WsServerRefreshProvidersRpc = Rpc.make(WS_METHODS.serverRefreshProviders, {
12872
14621
  payload: Schema.Struct({
12873
14622
  /**
@@ -13046,7 +14795,9 @@ const WsSourceControlListChangeRequestsRpc = Rpc.make(WS_METHODS.sourceControlLi
13046
14795
  "all"
13047
14796
  ]),
13048
14797
  limit: Schema.optional(Schema.Number),
13049
- query: Schema.optional(Schema.String)
14798
+ query: Schema.optional(Schema.String),
14799
+ /** Narrow to change requests involving the authenticated viewer. */
14800
+ involvement: Schema.optional(ChangeRequestInvolvement)
13050
14801
  }),
13051
14802
  success: Schema.Array(ChangeRequest),
13052
14803
  error: Schema.Union([SourceControlProviderError, AuthRpcError])
@@ -13083,7 +14834,9 @@ const WsSourceControlGetChangeRequestDiffRpc = Rpc.make(WS_METHODS.sourceControl
13083
14834
  payload: Schema.Struct({
13084
14835
  cwd: Schema.String,
13085
14836
  reference: Schema.String,
13086
- expectedHeadSha: Schema.optional(TrimmedNonEmptyString)
14837
+ expectedHeadSha: Schema.optional(TrimmedNonEmptyString),
14838
+ /** Scope the diff to a single commit of the change request. */
14839
+ commitSha: Schema.optional(TrimmedNonEmptyString)
13087
14840
  }),
13088
14841
  success: Schema.String,
13089
14842
  error: Schema.Union([SourceControlProviderError, AuthRpcError])
@@ -13152,6 +14905,46 @@ const WsSourceControlRerunWorkflowRpc = Rpc.make(WS_METHODS.sourceControlRerunWo
13152
14905
  success: SourceControlWorkflowRerunResult,
13153
14906
  error: Schema.Union([SourceControlProviderError, AuthRpcError])
13154
14907
  });
14908
+ const WsSourceControlGetChangeRequestActivityRpc = Rpc.make(WS_METHODS.sourceControlGetChangeRequestActivity, {
14909
+ payload: ChangeRequestActivityInput,
14910
+ success: ChangeRequestActivity,
14911
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14912
+ });
14913
+ const WsSourceControlGetChangeRequestFileContentsRpc = Rpc.make(WS_METHODS.sourceControlGetChangeRequestFileContents, {
14914
+ payload: ChangeRequestFileContentsInput,
14915
+ success: ChangeRequestFileContents,
14916
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14917
+ });
14918
+ const WsSourceControlSubmitChangeRequestReviewRpc = Rpc.make(WS_METHODS.sourceControlSubmitChangeRequestReview, {
14919
+ payload: ChangeRequestSubmitReviewInput,
14920
+ success: ChangeRequestSubmitReviewResult,
14921
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14922
+ });
14923
+ const WsSourceControlReplyToReviewThreadRpc = Rpc.make(WS_METHODS.sourceControlReplyToReviewThread, {
14924
+ payload: ChangeRequestReplyToThreadInput,
14925
+ success: ChangeRequestReplyToThreadResult,
14926
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14927
+ });
14928
+ const WsSourceControlSetReviewThreadResolvedRpc = Rpc.make(WS_METHODS.sourceControlSetReviewThreadResolved, {
14929
+ payload: ChangeRequestSetThreadResolvedInput,
14930
+ success: ChangeRequestSetThreadResolvedResult,
14931
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14932
+ });
14933
+ const WsSourceControlUpdateChangeRequestCommentRpc = Rpc.make(WS_METHODS.sourceControlUpdateChangeRequestComment, {
14934
+ payload: ChangeRequestUpdateCommentInput,
14935
+ success: ChangeRequestUpdateCommentResult,
14936
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14937
+ });
14938
+ const WsSourceControlUpdateChangeRequestRpc = Rpc.make(WS_METHODS.sourceControlUpdateChangeRequest, {
14939
+ payload: ChangeRequestUpdateInput,
14940
+ success: ChangeRequestUpdateResult,
14941
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14942
+ });
14943
+ const WsSourceControlCreateChangeRequestRpc = Rpc.make(WS_METHODS.sourceControlCreateChangeRequest, {
14944
+ payload: ChangeRequestCreateInput,
14945
+ success: ChangeRequest,
14946
+ error: Schema.Union([SourceControlProviderError, AuthRpcError])
14947
+ });
13155
14948
  const WsTextGenerationAskSideQuestionRpc = Rpc.make(WS_METHODS.textGenerationAskSideQuestion, {
13156
14949
  payload: SideQuestionInput,
13157
14950
  success: SideQuestionResult,
@@ -13444,6 +15237,31 @@ const WsGitDeleteWorktreeRpc = Rpc.make(WS_METHODS.gitDeleteWorktree, {
13444
15237
  success: EmptyRpcResult,
13445
15238
  error: Schema.Union([GitManagerServiceError, AuthRpcError])
13446
15239
  });
15240
+ const WsLifecycleListWorkspacesRpc = Rpc.make(WS_METHODS.lifecycleListWorkspaces, {
15241
+ payload: WorkspaceLifecycleListInput,
15242
+ success: Schema.Array(WorkspaceLifecycleSummary),
15243
+ error: Schema.Union([WorkspaceLifecycleError, AuthRpcError])
15244
+ });
15245
+ const WsLifecyclePreviewWorkspaceRpc = Rpc.make(WS_METHODS.lifecyclePreviewWorkspace, {
15246
+ payload: WorkspaceLifecycleRequest,
15247
+ success: WorkspaceLifecyclePreview,
15248
+ error: Schema.Union([WorkspaceLifecycleError, AuthRpcError])
15249
+ });
15250
+ const WsLifecycleApplyWorkspaceRpc = Rpc.make(WS_METHODS.lifecycleApplyWorkspace, {
15251
+ payload: WorkspaceLifecycleApplyInput,
15252
+ success: WorkspaceLifecycleResult,
15253
+ error: Schema.Union([WorkspaceLifecycleError, AuthRpcError])
15254
+ });
15255
+ const WsLifecycleSuggestionsRpc = Rpc.make(WS_METHODS.lifecycleSuggestions, {
15256
+ payload: Schema.Struct({}),
15257
+ success: LifecycleSuggestions,
15258
+ error: Schema.Union([WorkspaceLifecycleError, AuthRpcError])
15259
+ });
15260
+ const WsLifecycleListTrashRpc = Rpc.make(WS_METHODS.lifecycleListTrash, {
15261
+ payload: Schema.Struct({}),
15262
+ success: TrashListResult,
15263
+ error: Schema.Union([WorkspaceLifecycleError, AuthRpcError])
15264
+ });
13447
15265
  const WsThreadsSetManualBucketRpc = Rpc.make(WS_METHODS.threadsSetManualBucket, {
13448
15266
  payload: ThreadsSetManualBucketInput,
13449
15267
  success: EmptyRpcResult,
@@ -13474,11 +15292,31 @@ const WsProjectsInitializeGitRpc = Rpc.make(WS_METHODS.projectsInitializeGit, {
13474
15292
  success: EmptyRpcResult,
13475
15293
  error: Schema.Union([GitManagerServiceError, AuthRpcError])
13476
15294
  });
15295
+ const WsProjectsPromoteChatPreviewRpc = Rpc.make(WS_METHODS.projectsPromoteChatPreview, {
15296
+ payload: ProjectsPromoteChatPreviewInput,
15297
+ success: ProjectsPromoteChatPreviewResult,
15298
+ error: Schema.Union([ProjectChatError, AuthRpcError])
15299
+ });
15300
+ const WsProjectsPromoteChatRpc = Rpc.make(WS_METHODS.projectsPromoteChat, {
15301
+ payload: ProjectsPromoteChatInput,
15302
+ success: ProjectsPromoteChatResult,
15303
+ error: Schema.Union([ProjectChatError, AuthRpcError])
15304
+ });
15305
+ const WsProjectsDeleteChatFolderRpc = Rpc.make(WS_METHODS.projectsDeleteChatFolder, {
15306
+ payload: ProjectsDeleteChatFolderInput,
15307
+ success: ProjectsDeleteChatFolderResult,
15308
+ error: Schema.Union([ProjectChatError, AuthRpcError])
15309
+ });
13477
15310
  const WsVcsReadLineBlameRpc = Rpc.make(WS_METHODS.vcsReadLineBlame, {
13478
15311
  payload: GitReadLineBlameInput,
13479
15312
  success: GitReadLineBlameResult,
13480
15313
  error: Schema.Union([GitCommandError, AuthRpcError])
13481
15314
  });
15315
+ const WsVcsReadImageBlobRpc = Rpc.make(WS_METHODS.vcsReadImageBlob, {
15316
+ payload: GitReadImageBlobInput,
15317
+ success: GitReadImageBlobResult,
15318
+ error: Schema.Union([GitCommandError, AuthRpcError])
15319
+ });
13482
15320
  const WsVcsReadLocalChangesRpc = Rpc.make(WS_METHODS.vcsReadLocalChanges, {
13483
15321
  payload: GitLocalChangesInput,
13484
15322
  success: GitLocalChangesResult,
@@ -13757,7 +15595,7 @@ const WsAgentControlDisconnectMcpInstallationRpc = Rpc.make(AGENT_CONTROL_WS_MET
13757
15595
  error: Schema.Union([AgentControlExternalRpcError, AuthRpcError])
13758
15596
  });
13759
15597
  /** Keep declaration emit bounded as shared settings and RPC schemas grow. */
13760
- const WsRpcGroup = RpcGroup.make(WsSessionImportSourcesRpc, WsSessionImportReconcileRpc, WsSessionImportAdoptRpc, WsSessionImportDiscoverRpc, WsSessionImportRunRpc, WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerSearchAcpRegistryRpc, WsServerInstallAcpRegistryRpc, WsServerGetAcpRegistryAuthMethodsRpc, WsServerAuthenticateAcpRegistryRpc, WsServerReadCodexResetCreditsRpc, WsServerConsumeCodexResetCreditRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetProjectPreferencesRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerSignalDiagnosticProcessRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestFilesViewedRpc, WsSourceControlSetChangeRequestFileViewedRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationAskSideQuestionRpc, WsTextGenerationCancelSideQuestionRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadIconRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsStorageScanRpc, WsStoragePreviewRpc, WsStorageExecuteRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsReadLineBlameRpc, WsVcsReadLocalChangesRpc, WsVcsApplyIndexPatchRpc, WsVcsReadComparisonRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAutomationCentreRpc, WsAutomationCommandRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
15598
+ const WsRpcGroup = RpcGroup.make(WsSessionImportSourcesRpc, WsSessionImportReconcileRpc, WsSessionImportAdoptRpc, WsSessionImportDiscoverRpc, WsSessionImportRunRpc, WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerSearchAcpRegistryRpc, WsServerInstallAcpRegistryRpc, WsServerGetAcpRegistryAuthMethodsRpc, WsServerAuthenticateAcpRegistryRpc, WsServerReadCodexResetCreditsRpc, WsServerConsumeCodexResetCreditRpc, WsServerListLocalTasksRpc, WsServerGetLocalTaskRpc, WsServerCreateLocalTaskRpc, WsServerUpdateLocalTaskRpc, WsServerDeleteLocalTaskRpc, WsServerDelegateLocalTaskRpc, WsNotesListRpc, WsNotesCommandRpc, WsServerGetDailyRecapRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetProjectPreferencesRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerSignalDiagnosticProcessRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestFilesViewedRpc, WsSourceControlSetChangeRequestFileViewedRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsSourceControlGetChangeRequestActivityRpc, WsSourceControlGetChangeRequestFileContentsRpc, WsSourceControlSubmitChangeRequestReviewRpc, WsSourceControlReplyToReviewThreadRpc, WsSourceControlSetReviewThreadResolvedRpc, WsSourceControlUpdateChangeRequestCommentRpc, WsSourceControlUpdateChangeRequestRpc, WsSourceControlCreateChangeRequestRpc, WsTextGenerationAskSideQuestionRpc, WsTextGenerationCancelSideQuestionRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadIconRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsStorageScanRpc, WsStoragePreviewRpc, WsStorageExecuteRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsLifecycleListWorkspacesRpc, WsLifecyclePreviewWorkspaceRpc, WsLifecycleApplyWorkspaceRpc, WsLifecycleSuggestionsRpc, WsLifecycleListTrashRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsProjectsPromoteChatPreviewRpc, WsProjectsPromoteChatRpc, WsProjectsDeleteChatFolderRpc, WsVcsReadLineBlameRpc, WsVcsReadImageBlobRpc, WsVcsReadLocalChangesRpc, WsVcsApplyIndexPatchRpc, WsVcsReadComparisonRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAutomationCentreRpc, WsAutomationCommandRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
13761
15599
  /**
13762
15600
  * Hosted relay channels carry both groups through one lifecycle-owned encrypted
13763
15601
  * channel. Direct clients keep the device group on its own low-priority socket
@@ -13940,6 +15778,81 @@ const AgentControlReadThreadFileInput = Schema.Struct({
13940
15778
  threadId: ThreadId,
13941
15779
  relativePath: TrimmedNonEmptyString.check(Schema.isMaxLength(4096))
13942
15780
  });
15781
+ //#endregion
15782
+ //#region ../../packages/contracts/src/agentControlDelegation.ts
15783
+ /**
15784
+ * Private-session tools for tasks a chat delegated with `ryco_create_threads` and
15785
+ * `returnToOrigin`. Like the inspection tools, they are not part of
15786
+ * `AGENT_CONTROL_MCP_TOOLS` and never reach the external endpoint.
15787
+ */
15788
+ const AGENT_CONTROL_DELEGATION_MCP_TOOLS = {
15789
+ taskStatus: "ryco_task_status",
15790
+ taskCancel: "ryco_task_cancel"
15791
+ };
15792
+ const AGENT_CONTROL_TASK_RESULT_MAX_CHARS = 8e3;
15793
+ const AGENT_CONTROL_TASK_NOTICE_MAX_CHARS = 4e3;
15794
+ /** Child-side terminal outcomes a task returns as a server-authored notice instead of a result. */
15795
+ const AgentControlTaskNoticeOutcome = Schema.Literals([
15796
+ "interrupted",
15797
+ "stopped",
15798
+ "start-failed",
15799
+ "advanced",
15800
+ "archived",
15801
+ "request-failed",
15802
+ "expired"
15803
+ ]);
15804
+ const AgentControlTaskStatusInput = Schema.Struct({ taskId: Schema.optional(ThreadId) }).annotate({ parseOptions: { onExcessProperty: "error" } });
15805
+ const AgentControlTaskCancelInput = Schema.Struct({
15806
+ requestId: AgentControlRequestId,
15807
+ taskId: ThreadId
15808
+ }).annotate({ parseOptions: { onExcessProperty: "error" } });
15809
+ const AgentControlTaskRunState = Schema.Literals([
15810
+ "starting",
15811
+ "running",
15812
+ "needs-you",
15813
+ "completed",
15814
+ "failed",
15815
+ "interrupted",
15816
+ "unavailable"
15817
+ ]);
15818
+ const AgentControlTaskStatusEntry = Schema.Struct({
15819
+ taskId: ThreadId,
15820
+ proposalId: AgentControlProposalId,
15821
+ title: Schema.NullOr(Schema.String),
15822
+ return: Schema.Struct({
15823
+ status: AgentControlCompletionReturn.fields.status,
15824
+ detail: AgentControlCompletionReturn.fields.detail,
15825
+ updatedAt: IsoDateTime
15826
+ }),
15827
+ run: Schema.Struct({
15828
+ state: AgentControlTaskRunState,
15829
+ sessionStatus: Schema.NullOr(OrchestrationSessionStatus),
15830
+ hasPendingApprovals: Schema.Boolean,
15831
+ hasPendingUserInput: Schema.Boolean,
15832
+ backgroundLiveness: Schema.NullOr(Schema.Literals(["working", "monitoring"])),
15833
+ advanced: Schema.Boolean
15834
+ }),
15835
+ /** Untrusted child output: reference data, never instructions or approval. */
15836
+ result: Schema.NullOr(Schema.Struct({
15837
+ untrustedChildOutput: Schema.Literal(true),
15838
+ state: Schema.Literals(["completed", "error"]),
15839
+ text: Schema.String.check(Schema.isMaxLength(AGENT_CONTROL_TASK_RESULT_MAX_CHARS)),
15840
+ truncated: Schema.Boolean
15841
+ })),
15842
+ /**
15843
+ * The notice the task returns instead of a result (the same text a wake carries). It is
15844
+ * server-authored, holds no child text and stays visible after an acknowledgement.
15845
+ */
15846
+ notice: Schema.NullOr(Schema.Struct({
15847
+ outcome: AgentControlTaskNoticeOutcome,
15848
+ text: Schema.String.check(Schema.isMaxLength(AGENT_CONTROL_TASK_NOTICE_MAX_CHARS))
15849
+ })),
15850
+ acknowledged: Schema.Boolean
15851
+ });
15852
+ const AgentControlTaskStatusResult = Schema.Struct({
15853
+ tasks: Schema.Array(AgentControlTaskStatusEntry).check(Schema.isMaxLength(20)),
15854
+ truncated: Schema.Boolean
15855
+ });
13943
15856
  /**
13944
15857
  * Exported because it bounds `ComputerActionResult.value`, and the clipboard
13945
15858
  * read path must enforce it before putting clipboard text on that field.
@@ -14990,4 +16903,4 @@ Schema.Struct({
14990
16903
  ])
14991
16904
  });
14992
16905
  //#endregion
14993
- export { AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS as $, ThreadMetaUpdatedPayload as $a, NativeIdentityPasswordResetVerifyRequest as $c, OrchestrationCheckpointStatus as $i, RELAY_AUTHENTICATION_DEADLINE_MS as $l, DeviceHardwareButton as $n, defaultInstanceIdForDriver as $o, OpenCodeSettings as $r, NativeHandoffId as $s, AgentControlMcpProposeAutomationCreateInput as $t, PROJECT_ICON_MAX_BYTES as A, PROVIDER_SEND_TURN_MAX_IMAGE_BYTES as Aa, NATIVE_IDENTITY_PASSWORD_FINISH_PATH as Ac, CONTEXT_HANDOFF_ERROR_MAX_CHARS as Ai, PasswordLoginStartResponse as Al, AgentControlOperationState as An, WorkItemProviderError as Ao, McpInventoryTool as Ar, HubDeviceGrantClaims as As, AgentControlMcpCapabilitiesResult as At, NonNegativeInt as Au, AGENT_CONTROL_ACTION_CAPABILITIES as B, ProviderApprovalDecision as Ba, NATIVE_NODE_CLAIM_FINISH_PATH as Bc, ContextHandoffDigest as Bi, PublicSignupPasskeyOptionsRequest as Bl, AgentControlReadWorkspaceInput as Bn, VcsProcessTimeoutError as Bo, McpWorkspace as Br, NodeE2eeAdmissionPolicy as Bs, AgentControlMcpListAutomationRunsResult as Bt, TrimmedNonEmptyString as Bu, WsHostedRpcGroup as C, OrchestrationThreadActivity as Ca, GITHUB_EXTERNAL_IDENTITY_CONNECT_PATH as Cc, ProviderSessionStartInput as Ci, PUBLIC_SIGNUP_PASSKEY_FINISH_PATH as Cl, AgentControlMcpRecentActivityResult as Cn, PullRequestState as Co, GitCommandError as Cr, ACCOUNT_E2EE_DEVICES_PATH as Cs, AgentControlExternalProjectScope as Ct, CheckpointRef as Cu, AcpRegistryVersion as D, OrchestrationWorktreeShell as Da, NATIVE_IDENTITY_ATTEMPT_CANCEL_PATH as Dc, AgentTokenMode as Di, PUBLIC_SIGNUP_VERIFY_PATH as Dl, AgentControlMcpWaitForControlRequestInput as Dn, ThreadGoal as Do, TextGenerationError as Dr, AccountE2eeDeviceRenameRequest as Ds, AgentControlExternalWaitForTaskInput as Dt, EventId as Du, AcpRegistrySettings as E, OrchestrationThreadHistoryError as Ea, HubBrowserSessionResponse as Ec, ProviderStopSessionInput as Ei, PUBLIC_SIGNUP_START_PATH as El, AgentControlMcpUpdateThreadInput as En, WorktreeId as Eo, GitReadLineBlameInput as Er, AccountE2eeDeviceMutationResponse as Es, AgentControlExternalTaskIdInput as Et, EnvironmentId$1 as Eu, ProjectReadFileError as F, ProjectMetaUpdatedPayload as Fa, NATIVE_IDENTITY_RECOVERY_CODE_PATH as Fc, ChatAttachment as Fi, PasswordResetVerifyRequest as Fl, AgentControlPromptSummary as Fn, truncateSourceControlDetailContent as Fo, McpServer as Fr, NATIVE_E2EE_MAX_GRANT_KEYS as Fs, AgentControlMcpDiagnosticsSummaryResult as Ft, RuntimeRequestId as Fu, AGENT_CONTROL_DEVICE_ACTION_KINDS as G, ThreadArchivedPayload as Ga, NativeIdentityEmailStartResponse as Gc, DEFAULT_PROVIDER_INTERACTION_MODE as Gi, PublicSignupVerifyRequest as Gl, DEVICE_CAPABILITY_LABELS as Gn, DEFAULT_GIT_TEXT_GENERATION_MODEL as Go, ServerProviderUpdateError as Gr, NATIVE_HANDOFF_REDEEM_PATH as Gs, AgentControlMcpListProjectsInput as Gt, AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS as H, ProviderSessionRuntimeStatus as Ha, NativeIdentityAttemptCancelRequest as Hc, ContextHandoffInspectionError as Hi, PublicSignupPasswordFinishRequest as Hl, AgentControlResultEnvelope as Hn, ThreadPriorityBatchId as Ho, OpinionatedPluginError as Hr, NATIVE_HANDOFF_CANCEL_PATH_SUFFIX as Hs, AgentControlMcpListAutomationsResult as Ht, ProjectReadIconError as I, ProjectMetadataDir as Ia, NATIVE_IDENTITY_SIGNUP_PASSKEY_FINISH_PATH as Ic, ChatAttachmentReadError as Ii, PasswordResetVerifyResponse as Il, AgentControlProposal as In, VcsDriverKind as Io, McpServerConfig as Ir, NativeAccountGrantRelayTicketRequest as Is, AgentControlMcpInstallation as It, RuntimeSessionId as Iu, AGENT_CONTROL_EXTERNAL_MCP_TOOLS as J, ThreadDeletedPayload as Ja, NativeIdentityPasswordFinishRequest as Jc, ModelSelection as Ji, HubEnrollmentCeremonyDetail as Jl, DEVICE_WS_METHODS as Jn, DEFAULT_MODEL as Jo, CopilotSettings as Jr, NativeHandoffApproveResponse as Js, AgentControlMcpListThreadsResult as Jt, AGENT_CONTROL_ERROR_CODES as K, ThreadAttachedToWorktreePayload as Ka, NativeIdentityEmailVerifyRequest as Kc, FileAttachmentCreateUploadUrlError as Ki, PublicSignupVerifyResponse as Kl, DEVICE_FRAME_MAGIC as Kn, DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER as Ko, ClaudeSettings as Kr, NATIVE_HANDOFF_START_PATH as Ks, AgentControlMcpListProjectsResult as Kt, ProjectSearchEntriesError as L, ProjectScript as La, NATIVE_IDENTITY_SIGNUP_PASSKEY_OPTIONS_PATH as Lc, ClientOrchestrationCommand as Li, PublicSignupConfigResponse as Ll, AgentControlProposalId as Ln, VcsOutputDecodeError as Lo, McpServerName as Lr, NativeAccountGrantRelayTicketResponse as Ls, AgentControlMcpInstallationId as Lt, RuntimeSubagentId as Lu, PROJECT_STAGE_FILE_MAX_BYTES as M, ProjectAvatarSetPayload as Ma, NATIVE_IDENTITY_PASSWORD_RESET_REQUEST_PATH as Mc, CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES as Mi, PasswordResetFinishResponse as Ml, AgentControlPlanDigest as Mn, SOURCE_CONTROL_WORKFLOW_LOG_MAX_BYTES as Mo, McpOauthLoginResult as Mr, NATIVE_ACCOUNT_GRANT_RELAY_TICKET_PATH as Ms, AgentControlMcpControlRequestResult as Mt, ProjectId as Mu, ProjectListEntriesError as N, ProjectCreatedPayload as Na, NATIVE_IDENTITY_PASSWORD_RESET_VERIFY_PATH as Nc, CONTEXT_HANDOFF_MAX_INPUT_CHARS as Ni, PasswordResetRequest as Nl, AgentControlPlanWorkspaceInput as Nn, SourceControlProviderError as No, McpProviderCapabilities as Nr, NATIVE_E2EE_CURRENT_DEVICE_PATH as Ns, AgentControlMcpCreateThreadsInput as Nt, ProviderItemId as Nu, SessionImportError as O, PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES as Oa, NATIVE_IDENTITY_EMAIL_START_PATH as Oc, CHAT_ATTACHMENT_READ_CHUNK_BYTES as Oi, PasswordLoginFinishRequest as Ol, AgentControlOperation as On, WORK_ITEM_DETAIL_BODY_MAX_BYTES as Oo, McpInventoryResource as Or, AccountE2eeDeviceRevokeRequest as Os, AgentControlIntegrationId as Ot, IsoDateTime as Ou, ProjectReadFileBinaryError as P, ProjectDeletedPayload as Pa, NATIVE_IDENTITY_PASSWORD_START_PATH as Pc, CONTEXT_HANDOFF_WS_METHODS as Pi, PasswordResetRequestResponse as Pl, AgentControlPrincipal as Pn, SourceControlRepositoryError as Po, McpProviderSupport as Pr, NATIVE_E2EE_GRANT_KEYS_PATH as Ps, AgentControlMcpDiagnosticsSummaryInput as Pt, RuntimeItemId as Pu, AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS as Q, ThreadMessageSentPayload as Qa, NativeIdentityPasswordResetResponse as Qc, OrchestrationCheckpointFile as Qi, NativeE2eeEnrollmentId as Ql, DeviceDescriptor as Qn, ProviderInstanceId as Qo, GrokSettings as Qr, NativeHandoffConnectRedeemResponse as Qs, AgentControlMcpProposeAutomationCancelInput as Qt, ProjectStageFileReferenceError as R, ProjectionPendingApprovalDecision as Ra, NATIVE_IDENTITY_SIGNUP_PASSWORD_FINISH_PATH as Rc, ContextHandoffActivityPayload as Ri, PublicSignupFinishResponse as Rl, AgentControlProposalStatus as Rn, VcsProcessExitError as Ro, McpServerWritableConfig as Rr, NativeE2eeEnrollmentUpsertRequest as Rs, AgentControlMcpInterruptThreadInput as Rt, RuntimeTaskId as Ru, WsDeviceRpcGroup as S, OrchestrationThread as Sa, ExternalIdentitySignupFinishResponse as Sc, ProviderSendTurnInput as Si, PUBLIC_SIGNUP_CONFIG_PATH as Sl, AgentControlMcpReadThreadResult as Sn, WorktreeSourceControlStateUpdatedPayload as So, GitApplyIndexPatchInput as Sr, LocalIntroductionCompleteRequest as Ss, AgentControlExternalOverviewResult as St, AuthSessionId as Su, AcpRegistryAgentId as T, OrchestrationThreadHistoryCursor as Ta, HostedAccountSecurityResponse as Tc, ProviderStopBackgroundTaskInput as Ti, PUBLIC_SIGNUP_PASSWORD_FINISH_PATH as Tl, AgentControlMcpSettingsSummaryResult as Tn, Worktree as To, GitReadComparisonInput as Tr, AccountE2eeDeviceListResponse as Ts, AgentControlExternalTaskId as Tt, ContextHandoffId as Tu, AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS as U, RuntimeMode as Ua, NativeIdentityAttemptCancelResponse as Uc, ContextHandoffMode as Ui, PublicSignupStartRequest as Ul, AgentControlRiskTag as Un, ThreadPriorityCandidateId as Uo, UsageReadError as Ur, NATIVE_HANDOFF_CODE_LIFETIME_MS as Us, AgentControlMcpListDevicesInput as Ut, AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS as V, ProviderInteractionMode as Va, NATIVE_NODE_CLAIM_START_PATH as Vc, ContextHandoffEndpointSnapshot as Vi, PublicSignupPasskeyOptionsResponse as Vl, AgentControlRequestId as Vn, VcsUnsupportedOperationError as Vo, McpWorkspaceId as Vr, NATIVE_HANDOFF_APPROVE_PATH_SUFFIX as Vs, AgentControlMcpListAutomationsInput as Vt, TurnId as Vu, AGENT_CONTROL_CAPABILITIES as W, ThreadActivityAppendedPayload as Wa, NativeIdentityEmailStartRequest as Wc, DEFAULT_PROJECT_METADATA_DIR as Wi, PublicSignupStartResponse as Wl, AgentControlRpcError as Wn, ThreadPriorityFingerprint as Wo, ServerProvider as Wr, NATIVE_HANDOFF_PRESENTATION_PATH_PREFIX as Ws, AgentControlMcpListDevicesResult as Wt, AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS as X, ThreadGoalUpdatedPayload as Xa, NativeIdentityPasswordResetFinishResponse as Xc, OrchestrationActorKind as Xi, HubIdentitySummary as Xl, DeviceBundleId as Xn, ModelCapabilities as Xo, DEFAULT_SERVER_SETTINGS as Xr, NativeHandoffCancelResponse as Xs, AgentControlMcpOperationalReadInput as Xt, AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES as Y, ThreadGoalClearedPayload as Ya, NativeIdentityPasswordResetFinishRequest as Yc, ORCHESTRATION_WS_METHODS as Yi, HubEnrollmentStartResult as Yl, DeviceAvailability as Yn, MODEL_SLUG_ALIASES_BY_PROVIDER as Yo, CursorSettings as Yr, NativeHandoffCallbackUri as Ys, AgentControlMcpMutationResult as Yt, AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS as Z, ThreadInteractionModeSetPayload as Za, NativeIdentityPasswordResetRequest as Zc, OrchestrationAggregateKind as Zi, HubGrantVerificationKeyId as Zl, DeviceDescribeUiResult as Zn, ProviderDriverKind as Zo, DEFAULT_WORKTREE_BRANCH_PREFIX as Zr, NativeHandoffConnectRedeemRequest as Zs, AgentControlMcpOrchestrationEventsResult as Zt, ComputerUseBridgeConfig as _, OrchestrationReplayEventsError as _a, ExternalIdentityDisconnectRequest as _c, UserInputQuestion as _i, PASSWORD_LOGIN_FINISH_PATH as _l, AgentControlMcpReadControlRequestInput as _n, WorktreeCreatedPayload as _o, AtlassianCapability as _r, DesktopNativeNodeClaimSignRequest as _s, AgentControlCapability as _t, AuthRevokePairingLinkInput as _u, COMPUTER_FRAME_MAGIC as a, OrchestrationEventMetadata as aa, ACTIVE_SPACE_SWITCH_PATH as ac, StorageCleanupResult as ai, NativeIdentitySessionResponse as al, AgentControlMcpProposeDeviceInstallInput as an, ThreadSettledPayload as ao, DeviceOpenUrlInput as ar, TerminalHistoryError as as, AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT as at, RELAY_MAX_RPC_MESSAGE_BYTES as au, AcpRegistryOperationError as b, OrchestrationShellSnapshot as ba, ExternalIdentityProvider as bc, ProviderRespondToRequestInput as bi, PASSWORD_RESET_REQUEST_PATH as bl, AgentControlMcpReadDeviceStateResult as bn, WorktreeMetaUpdatedPayload as bo, AtlassianConnectionStatus as br, LOCAL_INTRODUCTION_DESCRIPTOR_PATH as bs, AgentControlExternalCreateTaskInput as bt, AtlassianConnectionId as bu, COMPUTER_SELECT_TEXT_RANGE_MAX as c, OrchestrationGetSnapshotError as ca, BrowserExternalIdentityConnectRequest as cc, CodexResetCreditError as ci, NativeIdentitySignupPasskeyOptionsRequest as cl, AgentControlMcpProposeDeviceRecordingInput as cn, ThreadStatusBucketOverriddenPayload as co, DeviceStartRecordingResult as cr, TerminalSessionLookupError as cs, AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES as ct, RelayChannelId as cu, AgentControlInspectThreadInput as d, OrchestrationGetTurnDiffResult as da, EXTERNAL_IDENTITY_PENDING_PATH as dc, KeybindingsConfigError as di, NativeIdentitySignupUsernameRequest as dl, AgentControlMcpProposeProjectRemoveInput as dn, ThreadTurnInterruptRequestedPayload as do, DeviceTestingInput as dr, OpenError as ds, AgentControlActionPlan as dt, RelayNodeId as du, OrchestrationCheckpointSummary as ea, NativeHandoffPresentation as ec, ServerSettings as ei, NativeIdentityPasswordResetVerifyResponse as el, AgentControlMcpProposeAutomationUpdateInput as en, ThreadPriorityProjectedRanking as eo, DeviceInstallAppInput as er, isProviderDriverKind as es, AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS as et, RELAY_FRAME_TYPES as eu, AgentControlReadDiffInput as f, OrchestrationGetWorkflowScriptError as fa, EXTERNAL_IDENTITY_SIGNUP_FINISH_PATH as fc, MODEL_PICKER_JUMP_KEYBINDING_COMMANDS as fi, NativeIdentitySignupUsernameResponse as fl, AgentControlMcpProposeProjectUpdateInput as fn, ThreadUnarchivedPayload as fo, DeviceTypeTextInput as fr, DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH as fs, AgentControlAutomation as ft, RelayProtocolVersion as fu, AgentControlWaitThreadsInput as g, OrchestrationReadModel as ga, ExternalIdentityConfigResponse as gc, ToolLifecycleItemType as gi, NativeNodeClaimStartResponse as gl, AgentControlMcpReadAutomationResult as gn, WorktreeArchivedPayload as go, ThreadPriorityRpcError as gr, DesktopNativeNodeClaimCommitRequest as gs, AgentControlAutomationRunId as gt, AuthRevokeClientSessionInput as gu, AgentControlSearchThreadsInput as h, OrchestrationProposedPlanId as ha, ExternalIdentityAuthorizationStartResponse as hc, RuntimeSubagentStatus as hi, NativeNodeClaimStartRequest as hl, AgentControlMcpReadAutomationInput as hn, TurnDispatchMode as ho, ThreadPriorityCandidateRanking as hr, DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH as hs, AgentControlAutomationRun as ht, AuthCreatePairingCredentialInput as hu, COMPUTER_DRAG_MAX_DURATION_MS as i, OrchestrationEvent as ia, NativeHandoffStartResponse as ic, StorageCleanupPreview as ii, NativeIdentityRecoveryResponse as il, AgentControlMcpProposeDeviceInputInput as in, ThreadSessionSetPayload as io, DeviceLaunchAppResult as ir, TerminalCwdError as is, AGENT_CONTROL_MCP_TOOL_NAMES as it, RELAY_MAX_RETRY_AFTER_MS as iu, PROJECT_READ_FILE_BINARY_MAX_BYTES as j, PROVIDER_SEND_TURN_MAX_INPUT_CHARS as ja, NATIVE_IDENTITY_PASSWORD_RESET_FINISH_PATH as jc, CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES as ji, PasswordResetFinishRequest as jl, AgentControlOperationStatus as jn, WorkItemProviderKind as jo, McpListServersResult as jr, HubGrantVerificationKeysetResponse as js, AgentControlMcpContextResult as jt, PositiveInt as ju, FilesystemBrowseError as k, PROVIDER_SEND_TURN_MAX_FILE_BYTES as ka, NATIVE_IDENTITY_EMAIL_VERIFY_PATH as kc, CONTEXT_HANDOFF_ACTIVITY_KIND as ki, PasswordLoginStartRequest as kl, AgentControlOperationId as kn, WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES as ko, McpInventoryResourceTemplate as kr, HUB_DEVICE_GRANT_MAX_BYTES as ks, AgentControlListWorkspacesInput as kt, MessageId as ku, COMPUTER_TEXT_MAX_LENGTH as l, OrchestrationGetTaskOutputError as la, BrowserExternalIdentityConnectResponse as lc, KeybindingRule as li, NativeIdentitySignupPasskeyOptionsResponse as ll, AgentControlMcpProposeDeviceShutdownInput as ln, ThreadTokenModeSetPayload as lo, DeviceStopRecordingResult as lr, TerminalSubscriptionResyncError as ls, AGENT_CONTROL_WS_METHODS as lt, RelayEffectiveRole as lu, AgentControlReadThreadFileInput as m, OrchestrationMessageRole as ma, ExternalIdentityAuthorizationStartRequest as mc, THREAD_JUMP_KEYBINDING_COMMANDS as mi, NativeNodeClaimFinishResponse as ml, AgentControlMcpProviderRuntimeEventsResult as mn, ThreadUnsnoozedPayload as mo, ThreadPriorityBatchSnapshot as mr, DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES as ms, AgentControlAutomationId as mt, AuthClientMetadataDeviceType as mu, ComputerSpaceInventory as n, OrchestrationCommandReceiptStatus as na, NativeHandoffRedeemResponse as nc, ThreadEnvMode as ni, NativeIdentityPasswordStartResponse as nl, AgentControlMcpProposeDeviceBootInput as nn, ThreadRevertedPayload as no, DeviceKeyEventInput as nr, ApprovalResponseState as ns, AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS as nt, RELAY_MAX_DATA_CHUNK_BYTES as nu, COMPUTER_MESSAGE_MAX_LENGTH as o, OrchestrationEventType as oa, ActiveSpaceSwitchRequest as oc, StorageError as oi, NativeIdentitySignupFinishResponse as ol, AgentControlMcpProposeDeviceLaunchInput as on, ThreadSettlementOverride as oo, DeviceRpcError as or, TerminalInputRejectedError as os, AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX as ot, RELAY_SUPPORTED_VERSION_RANGE as ou, AgentControlReadProjectInput as p, OrchestrationMessage as pa, EXTERNAL_IDENTITY_START_PATH as pc, ResolvedKeybindingRule as pi, NativeNodeClaimFinishRequest as pl, AgentControlMcpProposeSettingsChangeInput as pn, ThreadUnsettledPayload as po, DeviceUdid as pr, DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH as ps, AgentControlAutomationDefinition as pt, AuthBootstrapInput as pu, AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE as q, ThreadCreatedPayload as qa, NativeIdentityEmailVerifyResponse as qc, ModelContextWindowMetadata as qi, HubConnectorStatus as ql, DEVICE_SWIPE_DURATION_MAX_MS as qn, DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER as qo, CodexSettings as qr, NATIVE_HANDOFF_TRANSACTION_LIFETIME_MS as qs, AgentControlMcpListThreadsInput as qt, COMPUTER_BROWSER_DRIVER_NAMES as r, OrchestrationDispatchCommandError as ra, NativeHandoffStartRequest as rc, WorktreeSubmoduleRepositoryConfig as ri, NativeIdentityRecoveryCodeRequest as rl, AgentControlMcpProposeDeviceDetachInput as rn, ThreadRuntimeModeSetPayload as ro, DeviceLaunchAppInput as rr, DEFAULT_TERMINAL_ID as rs, AGENT_CONTROL_MCP_TOOLS as rt, RELAY_MAX_DATA_FRAME_BYTES as ru, COMPUTER_PROVISION_SUMMARY_MAX_LENGTH as s, OrchestrationGetFullThreadDiffError as sa, ActiveSpaceSwitchResponse as sc, StorageRetentionPolicy as si, NativeIdentitySignupPasskeyFinishRequest as sl, AgentControlMcpProposeDeviceOpenUrlInput as sn, ThreadSnoozedPayload as so, DeviceScreenshotResult as sr, TerminalNotRunningError as ss, AGENT_CONTROL_RISK_TAGS as st, RelayCapability as su, ComputerAuditEffect as t, OrchestrationCommand as ta, NativeHandoffRedeemRequest as tc, ServerSettingsError as ti, NativeIdentityPasswordStartRequest as tl, AgentControlMcpProposeDeviceAttachInput as tn, ThreadProposedPlanUpsertedPayload as to, DeviceInstallAppResult as tr, ApprovalResponseIdentity as ts, AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS as tt, RELAY_MAX_CONTROL_FRAME_BYTES as tu, COMPUTER_WAIT_MAX_MS as u, OrchestrationGetTurnDiffError as ua, EXTERNAL_IDENTITY_CONFIG_PATH as uc, KeybindingsConfig as ui, NativeIdentitySignupPasswordFinishRequest as ul, AgentControlMcpProposeProjectCreateInput as un, ThreadTurnDiffCompletedPayload as uo, DeviceSwipeInput as ur, EDITORS as us, AgentControlActionKind as ut, RelayFrame as uu, ComputerUseRequest as v, OrchestrationSession as va, ExternalIdentityDisconnectResponse as vc, isToolLifecycleItemType as vi, PASSWORD_LOGIN_START_PATH as vl, AgentControlMcpReadDeviceContentInput as vn, WorktreeDeletedPayload as vo, AtlassianConnectionError as vr, LOCAL_INTRODUCTION_COMPLETE_PATH as vs, AgentControlCompletionReturn as vt, AuthRpcError as vu, WsRpcGroup as w, OrchestrationThreadActivityTone as wa, GITHUB_EXTERNAL_IDENTITY_DISCONNECT_PATH as wc, ProviderSteerTurnInput as wi, PUBLIC_SIGNUP_PASSKEY_OPTIONS_PATH as wl, AgentControlMcpSendMessageInput as wn, StatusBucket as wo, GitManagerError as wr, ACCOUNT_E2EE_DEVICE_PATH_PREFIX as ws, AgentControlExternalRpcError as wt, CommandId as wu, WS_METHODS as x, OrchestrationStopBackgroundTaskError as xa, ExternalIdentitySignupFinishRequest as xc, ProviderRespondToUserInputInput as xi, PASSWORD_RESET_VERIFY_PATH as xl, AgentControlMcpReadThreadInput as xn, WorktreeRestoredPayload as xo, AtlassianProduct as xr, LOCAL_INTRODUCTION_MAX_BODY_BYTES as xs, AgentControlExternalIntegration as xt, AtlassianResourceId as xu, ComputerUseResult as y, OrchestrationSessionStatus as ya, ExternalIdentityPendingResponse as yc, ProviderInterruptTurnInput as yi, PASSWORD_RESET_FINISH_PATH as yl, AgentControlMcpReadDeviceStateInput as yn, WorktreeManualPositionSetPayload as yo, AtlassianConnectionKind as yr, LOCAL_INTRODUCTION_CONTROL_HEADER as ys, AgentControlExternalCapabilitiesResult as yt, ApprovalRequestId as yu, ProjectWriteFileError as z, ProjectionPendingApprovalStatus as za, NATIVE_IDENTITY_SIGNUP_USERNAME_PATH as zc, ContextHandoffAppliedBudget as zi, PublicSignupPasskeyFinishRequest as zl, AgentControlProposeWorkspaceInput as zn, VcsProcessSpawnError as zo, McpSettingsError as zr, NativeE2eeEnrollmentUpsertResponse as zs, AgentControlMcpListAutomationRunsInput as zt, ThreadId as zu };
16906
+ export { ProjectChatError as $, OrchestrationReadModel as $a, NativeHandoffStartRequest as $c, ProviderRespondToUserInputInput as $i, NativeIdentityPasswordStartResponse as $l, AgentControlPlanDigest as $n, ThreadUnsettledPayload as $o, GitReadLineBlameInput as $r, TerminalCwdError as $s, AgentControlMcpControlRequestResult as $t, RELAY_MAX_DATA_CHUNK_BYTES as $u, WsHostedRpcGroup as A, ModelContextWindowMetadata as Aa, NATIVE_E2EE_GRANT_KEYS_PATH as Ac, ProviderItemId as Ad, ServerSettingsError as Ai, NATIVE_IDENTITY_PASSWORD_RESET_VERIFY_PATH as Al, AgentControlMcpProposeDeviceShutdownInput as An, ThreadArchivedPayload as Ao, DeviceStopRecordingResult as Ar, VcsDriverKind as As, AGENT_CONTROL_WS_METHODS as At, PasswordResetRequest as Au, NotesError as B, OrchestrationDispatchCommandError as Ba, NATIVE_HANDOFF_PRESENTATION_PATH_PREFIX as Bc, KeybindingRule as Bi, NativeIdentityAttemptCancelResponse as Bl, AgentControlMcpReadDeviceStateInput as Bn, ThreadProposedPlanUpsertedPayload as Bo, AtlassianConnectionKind as Br, DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER as Bs, AgentControlExternalCapabilitiesResult as Bt, PublicSignupStartRequest as Bu, AgentControlWaitThreadsInput as C, ContextHandoffEndpointSnapshot as Ca, AccountE2eeDeviceRenameRequest as Cc, EnvironmentId$1 as Cd, CopilotSettings as Ci, HubSpaceId as Cl, AgentControlMcpProposeDeviceBootInput as Cn, ProjectionPendingApprovalDecision as Co, DeviceKeyEventInput as Cr, WorkItemProviderError as Cs, AGENT_CONTROL_MCP_READ_THREAD_TEXT_BUDGET_CHARS as Ct, PUBLIC_SIGNUP_START_PATH as Cu, AcpRegistryOperationError as D, DEFAULT_PROJECT_METADATA_DIR as Da, HubGrantVerificationKeysetResponse as Dc, NonNegativeInt as Dd, GrokSettings as Di, NATIVE_IDENTITY_PASSWORD_FINISH_PATH as Dl, AgentControlMcpProposeDeviceLaunchInput as Dn, ProviderSessionRuntimeStatus as Do, DeviceRpcError as Dr, SourceControlProviderError as Ds, AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_MAX as Dt, PasswordLoginStartResponse as Du, ComputerUseResult as E, DEFAULT_PROJECT_KIND as Ea, HubDeviceGrantClaims as Ec, MessageId as Ed, DEFAULT_WORKTREE_BRANCH_PREFIX as Ei, NATIVE_IDENTITY_EMAIL_VERIFY_PATH as El, AgentControlMcpProposeDeviceInstallInput as En, ProviderInteractionMode as Eo, DeviceOpenUrlInput as Er, SourceControlChangeRequestReviewer as Es, AGENT_CONTROL_MCP_WAIT_TIMEOUT_MS_DEFAULT as Et, PasswordLoginStartRequest as Eu, SessionImportError as F, OrchestrationCheckpointFile as Fa, NativeE2eeEnrollmentUpsertResponse as Fc, RuntimeTaskId as Fd, StorageCleanupPreview as Fi, NATIVE_IDENTITY_SIGNUP_PASSWORD_FINISH_PATH as Fl, AgentControlMcpProviderRuntimeEventsResult as Fn, ThreadGoalUpdatedPayload as Fo, ThreadPriorityBatchSnapshot as Fr, VcsUnsupportedOperationError as Fs, AgentControlAutomationId as Ft, PublicSignupFinishResponse as Fu, LocalTaskDeleteInput as G, OrchestrationGetSnapshotError as Ga, NativeHandoffCallbackUri as Gc, THREAD_JUMP_KEYBINDING_COMMANDS as Gi, NativeIdentityPasswordFinishRequest as Gl, AgentControlMcpSendMessageInput as Gn, ThreadSettlementOverride as Go, ChangeRequestReviewThread as Gr, PROVIDER_DISPLAY_NAMES as Gs, AgentControlExternalRpcError as Gt, HubEnrollmentCeremonyDetail as Gu, LocalTask as H, OrchestrationEventMetadata as Ha, NATIVE_HANDOFF_START_PATH as Hc, KeybindingsConfigError as Hi, NativeIdentityEmailStartResponse as Hl, AgentControlMcpReadThreadInput as Hn, ThreadRuntimeModeSetPayload as Ho, AtlassianProduct as Hr, DEFAULT_MODEL as Hs, AgentControlExternalIntegration as Ht, PublicSignupVerifyRequest as Hu, DailyRecapReadError as I, OrchestrationCheckpointStatus as Ia, NodeE2eeAdmissionPolicy as Ic, ThreadId as Id, StorageCleanupResult as Ii, NATIVE_IDENTITY_SIGNUP_USERNAME_PATH as Il, AgentControlMcpReadAutomationInput as In, ThreadInteractionModeSetPayload as Io, ThreadPriorityCandidateRanking as Ir, ThreadPriorityBatchId as Is, AgentControlAutomationRun as It, PublicSignupPasskeyFinishRequest as Iu, LocalTaskUpdateInput as J, OrchestrationGetTurnDiffResult as Ja, NativeHandoffConnectRedeemResponse as Jc, UserInputQuestion as Ji, NativeIdentityPasswordResetRequest as Jl, AgentControlMcpWaitForControlRequestInput as Jn, ThreadTokenModeSetPayload as Jo, GitApplyIndexPatchInput as Jr, defaultInstanceIdForDriver as Js, AgentControlExternalWaitForTaskInput as Jt, HubGrantVerificationKeyId as Ju, LocalTaskError as K, OrchestrationGetTaskOutputError as Ka, NativeHandoffCancelResponse as Kc, RuntimeSubagentStatus as Ki, NativeIdentityPasswordResetFinishRequest as Kl, AgentControlMcpSettingsSummaryResult as Kn, ThreadSnoozedPayload as Ko, ChangeRequestTimelineItem as Kr, ProviderDriverKind as Ks, AgentControlExternalTaskId as Kt, HubEnrollmentStartResult as Ku, DailyRecapThread as L, OrchestrationCheckpointSummary as La, NATIVE_HANDOFF_APPROVE_PATH_SUFFIX as Lc, TrimmedNonEmptyString as Ld, StorageError as Li, NATIVE_NODE_CLAIM_FINISH_PATH as Ll, AgentControlMcpReadAutomationResult as Ln, ThreadMessageSentPayload as Lo, ThreadPriorityRpcError as Lr, ThreadPriorityCandidateId as Ls, AgentControlAutomationRunId as Lt, PublicSignupPasskeyOptionsRequest as Lu, AcpRegistryAgentId as M, ORCHESTRATION_WS_METHODS as Ma, NativeAccountGrantRelayTicketRequest as Mc, RuntimeRequestId as Md, WorktreeSubmoduleRepositoryConfig as Mi, NATIVE_IDENTITY_RECOVERY_CODE_PATH as Ml, AgentControlMcpProposeProjectRemoveInput as Mn, ThreadCreatedPayload as Mo, DeviceTestingInput as Mr, VcsProcessExitError as Ms, AgentControlActionPlan as Mt, PasswordResetVerifyRequest as Mu, AcpRegistrySettings as N, OrchestrationActorKind as Na, NativeAccountGrantRelayTicketResponse as Nc, RuntimeSessionId as Nd, DEFAULT_LIFECYCLE_SUGGESTION_POLICY as Ni, NATIVE_IDENTITY_SIGNUP_PASSKEY_FINISH_PATH as Nl, AgentControlMcpProposeProjectUpdateInput as Nn, ThreadDeletedPayload as No, DeviceTypeTextInput as Nr, VcsProcessSpawnError as Ns, AgentControlAutomation as Nt, PasswordResetVerifyResponse as Nu, WS_METHODS as O, DEFAULT_PROVIDER_INTERACTION_MODE as Oa, NATIVE_ACCOUNT_GRANT_RELAY_TICKET_PATH as Oc, PositiveInt as Od, OpenCodeSettings as Oi, NATIVE_IDENTITY_PASSWORD_RESET_FINISH_PATH as Ol, AgentControlMcpProposeDeviceOpenUrlInput as On, RuntimeMode as Oo, DeviceScreenshotResult as Or, SourceControlRepositoryError as Os, AGENT_CONTROL_RISK_TAGS as Ot, PasswordResetFinishRequest as Ou, AcpRegistryVersion as P, OrchestrationAggregateKind as Pa, NativeE2eeEnrollmentUpsertRequest as Pc, RuntimeSubagentId as Pd, WorkspaceLifecycleError as Pi, NATIVE_IDENTITY_SIGNUP_PASSKEY_OPTIONS_PATH as Pl, AgentControlMcpProposeSettingsChangeInput as Pn, ThreadGoalClearedPayload as Po, DeviceUdid as Pr, VcsProcessTimeoutError as Ps, AgentControlAutomationDefinition as Pt, PublicSignupConfigResponse as Pu, PROJECT_STAGE_FILE_MAX_BYTES as Q, OrchestrationProposedPlanId as Qa, NativeHandoffRedeemResponse as Qc, ProviderRespondToRequestInput as Qi, NativeIdentityPasswordStartRequest as Ql, AgentControlOperationStatus as Qn, ThreadUnarchivedPayload as Qo, GitReadImageBlobInput as Qr, DEFAULT_TERMINAL_ID as Qs, AgentControlMcpContextResult as Qt, RELAY_MAX_CONTROL_FRAME_BYTES as Qu, NotesCommand as R, OrchestrationCommand as Ra, NATIVE_HANDOFF_CANCEL_PATH_SUFFIX as Rc, TurnId as Rd, StorageRetentionPolicy as Ri, NATIVE_NODE_CLAIM_START_PATH as Rl, AgentControlMcpReadControlRequestInput as Rn, ThreadMetaUpdatedPayload as Ro, AtlassianCapability as Rr, ThreadPriorityFingerprint as Rs, AgentControlCapability as Rt, PublicSignupPasskeyOptionsResponse as Ru, AgentControlSearchThreadsInput as S, ContextHandoffDigest as Sa, AccountE2eeDeviceMutationResponse as Sc, ContextHandoffId as Sd, CodexSettings as Si, HubBrowserSessionResponse as Sl, AgentControlMcpProposeDeviceAttachInput as Sn, ProjectScript as So, DeviceInstallAppResult as Sr, WORK_ITEM_DETAIL_COMMENT_BODY_MAX_BYTES as Ss, AGENT_CONTROL_MCP_OPERATIONAL_RETENTION_MS as St, PUBLIC_SIGNUP_PASSWORD_FINISH_PATH as Su, ComputerUseRequest as T, ContextHandoffMode as Ta, HUB_DEVICE_GRANT_MAX_BYTES as Tc, IsoDateTime as Td, DEFAULT_SERVER_SETTINGS as Ti, NATIVE_IDENTITY_EMAIL_START_PATH as Tl, AgentControlMcpProposeDeviceInputInput as Tn, ProviderApprovalDecision as To, DeviceLaunchAppResult as Tr, SOURCE_CONTROL_WORKFLOW_LOG_MAX_BYTES as Ts, AGENT_CONTROL_MCP_TOOL_NAMES as Tt, PasswordLoginFinishRequest as Tu, LocalTaskCreateInput as U, OrchestrationEventType as Ua, NATIVE_HANDOFF_TRANSACTION_LIFETIME_MS as Uc, MODEL_PICKER_JUMP_KEYBINDING_COMMANDS as Ui, NativeIdentityEmailVerifyRequest as Ul, AgentControlMcpReadThreadResult as Un, ThreadSessionSetPayload as Uo, CHANGE_REQUEST_FILE_CONTENTS_MAX_BYTES as Ur, MODEL_SLUG_ALIASES_BY_PROVIDER as Us, AgentControlExternalOverviewResult as Ut, PublicSignupVerifyResponse as Uu, NotesListInput as V, OrchestrationEvent as Va, NATIVE_HANDOFF_REDEEM_PATH as Vc, KeybindingsConfig as Vi, NativeIdentityEmailStartRequest as Vl, AgentControlMcpReadDeviceStateResult as Vn, ThreadRevertedPayload as Vo, AtlassianConnectionStatus as Vr, DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER as Vs, AgentControlExternalCreateTaskInput as Vt, PublicSignupStartResponse as Vu, LocalTaskDelegateInput as W, OrchestrationGetFullThreadDiffError as Wa, NativeHandoffApproveResponse as Wc, ResolvedKeybindingRule as Wi, NativeIdentityEmailVerifyResponse as Wl, AgentControlMcpRecentActivityResult as Wn, ThreadSettledPayload as Wo, ChangeRequestReviewComment as Wr, ModelCapabilities as Ws, AgentControlExternalProjectScope as Wt, HubConnectorStatus as Wu, PROJECT_ICON_MAX_BYTES as X, OrchestrationMessage as Xa, NativeHandoffPresentation as Xc, ClaudeCacheObservation as Xi, NativeIdentityPasswordResetVerifyRequest as Xl, AgentControlOperationId as Xn, ThreadTurnDiffCompletedPayload as Xo, GitManagerError as Xr, ApprovalResponseIdentity as Xs, AgentControlListWorkspacesInput as Xt, RELAY_AUTHENTICATION_DEADLINE_MS as Xu, FilesystemBrowseError as Y, OrchestrationGetWorkflowScriptError as Ya, NativeHandoffId as Yc, isToolLifecycleItemType as Yi, NativeIdentityPasswordResetResponse as Yl, AgentControlOperation as Yn, ThreadTrashedPayload as Yo, GitCommandError as Yr, isProviderDriverKind as Ys, AgentControlIntegrationId as Yt, NativeE2eeEnrollmentId as Yu, PROJECT_READ_FILE_BINARY_MAX_BYTES as Z, OrchestrationMessageRole as Za, NativeHandoffRedeemRequest as Zc, ProviderInterruptTurnInput as Zi, NativeIdentityPasswordResetVerifyResponse as Zl, AgentControlOperationState as Zn, ThreadTurnInterruptRequestedPayload as Zo, GitReadComparisonInput as Zr, ApprovalResponseState as Zs, AgentControlMcpCapabilitiesResult as Zt, RELAY_FRAME_TYPES as Zu, AgentControlTaskStatusResult as _, CheckpointRevertActivityPayload as _a, LOCAL_INTRODUCTION_MAX_BODY_BYTES as _c, AtlassianConnectionId as _d, ServerProvider as _i, ExternalIdentitySignupFinishRequest as _l, AgentControlMcpOperationalReadInput as _n, ProjectCreatedPayload as _o, DeviceBundleId as _r, StatusBucket as _s, AGENT_CONTROL_EXTERNAL_PAIRING_CODE_TTL_MS as _t, PASSWORD_RESET_REQUEST_PATH as _u, COMPUTER_FRAME_MAGIC as a, AgentTokenMode as aa, EDITORS as ac, RelayChannelId as ad, McpOauthLoginResult as ai, BrowserExternalIdentityConnectResponse as al, AgentControlMcpInterruptThreadInput as an, OrchestrationThread as ao, AgentControlProposalStatus as ar, TurnDispatchMode as as, ProjectStageFileReferenceError as at, NativeIdentitySignupPasskeyOptionsRequest as au, AgentControlReadProjectInput as b, ContextHandoffActivityPayload as ba, ACCOUNT_E2EE_DEVICE_PATH_PREFIX as bc, CheckpointRef as bd, isProviderAvailable as bi, GITHUB_EXTERNAL_IDENTITY_DISCONNECT_PATH as bl, AgentControlMcpProposeAutomationCreateInput as bn, ProjectMetaUpdatedPayload as bo, DeviceHardwareButton as br, ThreadGoal as bs, AGENT_CONTROL_MCP_MESSAGE_TEXT_MAX_CHARS as bt, PUBLIC_SIGNUP_PASSKEY_FINISH_PATH as bu, COMPUTER_SELECT_TEXT_RANGE_MAX as c, CONTEXT_HANDOFF_ACTIVITY_KIND as ca, DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH as cc, RelayNodeId as cd, McpServer as ci, EXTERNAL_IDENTITY_SIGNUP_FINISH_PATH as cl, AgentControlMcpListAutomationsInput as cn, OrchestrationThreadHistoryCursor as co, AgentControlRequestId as cr, WorktreeCheckoutRestoredPayload as cs, AGENT_CONTROL_AUTOMATION_MAX_HORIZON_MS as ct, NativeIdentitySignupUsernameRequest as cu, AGENT_CONTROL_DELEGATION_MCP_TOOLS as d, CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES as da, DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH as dc, AuthClientMetadataDeviceType as dd, McpServerWritableConfig as di, ExternalIdentityAuthorizationStartResponse as dl, AgentControlMcpListDevicesResult as dn, PROJECT_RELOCATION_PENDING_MESSAGE as do, AgentControlRpcError as dr, WorktreeManualPositionSetPayload as ds, AGENT_CONTROL_CAPABILITIES as dt, NativeNodeClaimFinishResponse as du, ProviderSendTurnInput as ea, TerminalHistoryError as ec, RELAY_MAX_DATA_FRAME_BYTES as ed, TextGenerationError as ei, NativeHandoffStartResponse as el, AgentControlMcpCreateThreadsInput as en, OrchestrationReplayEventsError as eo, AgentControlPlanWorkspaceInput as er, ThreadUnsnoozedPayload as es, ProjectListEntriesError as et, NativeIdentityRecoveryCodeRequest as eu, AGENT_CONTROL_TASK_NOTICE_MAX_CHARS as f, CONTEXT_HANDOFF_MAX_INPUT_CHARS as fa, DesktopNativeNodeClaimCommitRequest as fc, AuthCreatePairingCredentialInput as fd, McpSettingsError as fi, ExternalIdentityConfigResponse as fl, AgentControlMcpListProjectsInput as fn, PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES as fo, DEVICE_CAPABILITY_LABELS as fr, WorktreeMetaUpdatedPayload as fs, AGENT_CONTROL_DEVICE_ACTION_KINDS as ft, NativeNodeClaimStartRequest as fu, AgentControlTaskStatusInput as g, ChatFileAttachment as ga, LOCAL_INTRODUCTION_DESCRIPTOR_PATH as gc, ApprovalRequestId as gd, UsageReadError as gi, ExternalIdentityProvider as gl, AgentControlMcpMutationResult as gn, ProjectAvatarSetPayload as go, DeviceAvailability as gr, PullRequestState as gs, AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES as gt, PASSWORD_RESET_FINISH_PATH as gu, AgentControlTaskNoticeOutcome as h, ChatAttachmentReadError as ha, LOCAL_INTRODUCTION_CONTROL_HEADER as hc, AuthRpcError as hd, OpinionatedPluginError as hi, ExternalIdentityPendingResponse as hl, AgentControlMcpListThreadsResult as hn, PROVIDER_SEND_TURN_MAX_INPUT_CHARS as ho, DEVICE_WS_METHODS as hr, WorktreeSourceControlStateUpdatedPayload as hs, AGENT_CONTROL_EXTERNAL_MCP_TOOLS as ht, PASSWORD_LOGIN_START_PATH as hu, COMPUTER_DRAG_MAX_DURATION_MS as i, ProviderStopSessionInput as ia, TerminalSubscriptionResyncError as ic, RelayCapability as id, McpListServersResult as ii, BrowserExternalIdentityConnectRequest as il, AgentControlMcpInstallationId as in, OrchestrationStopBackgroundTaskError as io, AgentControlProposalId as ir, ThreadUsageLimitSetPayload as is, ProjectSearchEntriesError as it, NativeIdentitySignupPasskeyFinishRequest as iu, WsRpcGroup as j, ModelSelection as ja, NATIVE_E2EE_MAX_GRANT_KEYS as jc, RuntimeItemId as jd, ThreadEnvMode as ji, NATIVE_IDENTITY_PASSWORD_START_PATH as jl, AgentControlMcpProposeProjectCreateInput as jn, ThreadAttachedToWorktreePayload as jo, DeviceSwipeInput as jr, VcsOutputDecodeError as js, AgentControlActionKind as jt, PasswordResetRequestResponse as ju, WsDeviceRpcGroup as k, FileAttachmentCreateUploadUrlError as ka, NATIVE_E2EE_CURRENT_DEVICE_PATH as kc, ProjectId as kd, ServerSettings as ki, NATIVE_IDENTITY_PASSWORD_RESET_REQUEST_PATH as kl, AgentControlMcpProposeDeviceRecordingInput as kn, ThreadActivityAppendedPayload as ko, DeviceStartRecordingResult as kr, truncateSourceControlDetailContent as ks, AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES as kt, PasswordResetFinishResponse as ku, COMPUTER_TEXT_MAX_LENGTH as l, CONTEXT_HANDOFF_ERROR_MAX_CHARS as la, DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH as lc, RelayProtocolVersion as ld, McpServerConfig as li, EXTERNAL_IDENTITY_START_PATH as ll, AgentControlMcpListAutomationsResult as ln, OrchestrationThreadHistoryError as lo, AgentControlResultEnvelope as lr, WorktreeCreatedPayload as ls, AGENT_CONTROL_AUTOMATION_MIN_INTERVAL_MS as lt, NativeIdentitySignupUsernameResponse as lu, AgentControlTaskCancelInput as m, ChatAttachment as ma, LOCAL_INTRODUCTION_COMPLETE_PATH as mc, AuthRevokePairingLinkInput as md, McpWorkspaceId as mi, ExternalIdentityDisconnectResponse as ml, AgentControlMcpListThreadsInput as mn, PROVIDER_SEND_TURN_MAX_IMAGE_BYTES as mo, DEVICE_SWIPE_DURATION_MAX_MS as mr, WorktreeRestoredPayload as ms, AGENT_CONTROL_EXTERNAL_CREDENTIAL_AUDIENCE as mt, PASSWORD_LOGIN_FINISH_PATH as mu, ComputerSpaceInventory as n, ProviderSteerTurnInput as na, TerminalNotRunningError as nc, RELAY_MAX_RPC_MESSAGE_BYTES as nd, McpInventoryResourceTemplate as ni, ActiveSpaceSwitchRequest as nl, AgentControlMcpDiagnosticsSummaryResult as nn, OrchestrationSessionStatus as no, AgentControlPromptSummary as nr, ThreadUsageLimit as ns, ProjectReadFileError as nt, NativeIdentitySessionResponse as nu, COMPUTER_MESSAGE_MAX_LENGTH as o, CHAT_ATTACHMENT_READ_CHUNK_BYTES as oa, OpenError as oc, RelayEffectiveRole as od, McpProviderCapabilities as oi, EXTERNAL_IDENTITY_CONFIG_PATH as ol, AgentControlMcpListAutomationRunsInput as on, OrchestrationThreadActivity as oo, AgentControlProposeWorkspaceInput as or, WorktreeArchivedPayload as os, ProjectWriteFileError as ot, NativeIdentitySignupPasskeyOptionsResponse as ou, AGENT_CONTROL_TASK_RESULT_MAX_CHARS as p, CONTEXT_HANDOFF_WS_METHODS as pa, DesktopNativeNodeClaimSignRequest as pc, AuthRevokeClientSessionInput as pd, McpWorkspace as pi, ExternalIdentityDisconnectRequest as pl, AgentControlMcpListProjectsResult as pn, PROVIDER_SEND_TURN_MAX_FILE_BYTES as po, DEVICE_FRAME_MAGIC as pr, WorktreeRelocatedPayload as ps, AGENT_CONTROL_ERROR_CODES as pt, NativeNodeClaimStartResponse as pu, LocalTaskListInput as q, OrchestrationGetTurnDiffError as qa, NativeHandoffConnectRedeemRequest as qc, ToolLifecycleItemType as qi, NativeIdentityPasswordResetFinishResponse as ql, AgentControlMcpUpdateThreadInput as qn, ThreadStatusBucketOverriddenPayload as qo, ChangeRequestViewerCapabilities as qr, ProviderInstanceId as qs, AgentControlExternalTaskIdInput as qt, HubIdentitySummary as qu, COMPUTER_BROWSER_DRIVER_NAMES as r, ProviderStopBackgroundTaskInput as ra, TerminalSessionLookupError as rc, RELAY_SUPPORTED_VERSION_RANGE as rd, McpInventoryTool as ri, ActiveSpaceSwitchResponse as rl, AgentControlMcpInstallation as rn, OrchestrationShellSnapshot as ro, AgentControlProposal as rr, ThreadUsageLimitClearedPayload as rs, ProjectReadIconError as rt, NativeIdentitySignupFinishResponse as ru, COMPUTER_PROVISION_SUMMARY_MAX_LENGTH as s, CHECKPOINT_REVERT_ACTIVITY_KIND as sa, DESKTOP_HUB_REACHABILITY_PATH as sc, RelayFrame as sd, McpProviderSupport as si, EXTERNAL_IDENTITY_PENDING_PATH as sl, AgentControlMcpListAutomationRunsResult as sn, OrchestrationThreadActivityTone as so, AgentControlReadWorkspaceInput as sr, WorktreeCheckoutRemovedPayload as ss, AGENT_CONTROL_ACTION_CAPABILITIES as st, NativeIdentitySignupPasswordFinishRequest as su, ComputerAuditEffect as t, ProviderSessionStartInput as ta, TerminalInputRejectedError as tc, RELAY_MAX_RETRY_AFTER_MS as td, McpInventoryResource as ti, ACTIVE_SPACE_SWITCH_PATH as tl, AgentControlMcpDiagnosticsSummaryInput as tn, OrchestrationSession as to, AgentControlPrincipal as tr, ThreadUntrashedPayload as ts, ProjectReadFileBinaryError as tt, NativeIdentityRecoveryResponse as tu, COMPUTER_WAIT_MAX_MS as u, CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES as ua, DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES as uc, AuthBootstrapInput as ud, McpServerName as ui, ExternalIdentityAuthorizationStartRequest as ul, AgentControlMcpListDevicesInput as un, OrchestrationWorktreeShell as uo, AgentControlRiskTag as ur, WorktreeDeletedPayload as us, AGENT_CONTROL_AUTOMATION_PROPOSAL_TTL_MS as ut, NativeNodeClaimFinishRequest as uu, AgentControlInspectThreadInput as v, ClientOrchestrationCommand as va, LocalIntroductionCompleteRequest as vc, AtlassianResourceId as vd, ServerProviderCompatibilityStatus as vi, ExternalIdentitySignupFinishResponse as vl, AgentControlMcpOrchestrationEventsResult as vn, ProjectDeletedPayload as vo, DeviceDescribeUiResult as vr, Worktree as vs, AGENT_CONTROL_EXTERNAL_PROPOSAL_TTL_MS as vt, PASSWORD_RESET_VERIFY_PATH as vu, ComputerUseBridgeConfig as w, ContextHandoffInspectionError as wa, AccountE2eeDeviceRevokeRequest as wc, EventId as wd, CursorSettings as wi, NATIVE_IDENTITY_ATTEMPT_CANCEL_PATH as wl, AgentControlMcpProposeDeviceDetachInput as wn, ProjectionPendingApprovalStatus as wo, DeviceLaunchAppInput as wr, WorkItemProviderKind as ws, AGENT_CONTROL_MCP_TOOLS as wt, PUBLIC_SIGNUP_VERIFY_PATH as wu, AgentControlReadThreadFileInput as x, ContextHandoffAppliedBudget as xa, AccountE2eeDeviceListResponse as xc, CommandId as xd, ClaudeSettings as xi, HostedAccountSecurityResponse as xl, AgentControlMcpProposeAutomationUpdateInput as xn, ProjectMetadataDir as xo, DeviceInstallAppInput as xr, WORK_ITEM_DETAIL_BODY_MAX_BYTES as xs, AGENT_CONTROL_MCP_OPERATIONAL_RANGE_MAX_MS as xt, PUBLIC_SIGNUP_PASSKEY_OPTIONS_PATH as xu, AgentControlReadDiffInput as y, ClientThreadTurnStartCommand as ya, ACCOUNT_E2EE_DEVICES_PATH as yc, AuthSessionId as yd, ServerProviderUpdateError as yi, GITHUB_EXTERNAL_IDENTITY_CONNECT_PATH as yl, AgentControlMcpProposeAutomationCancelInput as yn, ProjectKind as yo, DeviceDescriptor as yr, WorktreeId as ys, AGENT_CONTROL_MCP_AUTOMATION_LIST_PROMPT_MAX_CHARS as yt, PUBLIC_SIGNUP_CONFIG_PATH as yu, NotesDocument as z, OrchestrationCommandReceiptStatus as za, NATIVE_HANDOFF_CODE_LIFETIME_MS as zc, CodexResetCreditError as zi, NativeIdentityAttemptCancelRequest as zl, AgentControlMcpReadDeviceContentInput as zn, ThreadPriorityProjectedRanking as zo, AtlassianConnectionError as zr, DEFAULT_GIT_TEXT_GENERATION_MODEL as zs, AgentControlCompletionReturn as zt, PublicSignupPasswordFinishRequest as zu };