ryco-cli 0.1.24 → 0.1.26

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 (303) hide show
  1. package/dist/{GrokDriver-DSPEmiwq.mjs → AcpAdapter-BemMQNbj.mjs} +102 -604
  2. package/dist/{GrokDriver-RyyFeh_q.cjs → AcpAdapter-CadxcdZV.cjs} +129 -612
  3. package/dist/AcpNativeLogging-BsbZRRD7.mjs +312 -0
  4. package/dist/AcpNativeLogging-DZPZNoju.cjs +383 -0
  5. package/dist/AcpRegistryDriver-BfCPf8FX.cjs +222 -0
  6. package/dist/AcpRegistryDriver-BpXCjh9I.mjs +221 -0
  7. package/dist/{AzureDevOpsSourceControlProvider-CrvgKNf2.cjs → AzureDevOpsSourceControlProvider-B9N_8NJg.cjs} +14 -14
  8. package/dist/{AzureDevOpsSourceControlProvider-BNGEg1R8.mjs → AzureDevOpsSourceControlProvider-BcQO_CyW.mjs} +3 -3
  9. package/dist/{BitbucketSourceControlProvider-Bt21jw68.mjs → BitbucketSourceControlProvider-BTUY2ZT8.mjs} +3 -3
  10. package/dist/{BitbucketSourceControlProvider-BzhsQwH-.cjs → BitbucketSourceControlProvider-C9WuwvY2.cjs} +14 -14
  11. package/dist/{BunPTY-TbHbSc8S.mjs → BunPTY-DdnqQAdw.mjs} +1 -1
  12. package/dist/{ClaudeDriver-B7mbf51W.cjs → ClaudeDriver-BSTxNNGO.cjs} +162 -126
  13. package/dist/{ClaudeDriver-C4yu7Jit.mjs → ClaudeDriver-Csnp78qR.mjs} +129 -93
  14. package/dist/{CodexDriver-CR0S17Lb.cjs → CodexDriver-BK4HVNV4.cjs} +145 -60
  15. package/dist/{CodexDriver-DnnqkGoY.mjs → CodexDriver-fwcV84hX.mjs} +99 -14
  16. package/dist/{CodexTextGeneration-tlfe1S5W.cjs → CodexTextGeneration-Y2GSS7f1.cjs} +145 -99
  17. package/dist/{CodexTextGeneration-Cw-FZbSS.mjs → CodexTextGeneration-_4aT5BHa.mjs} +141 -95
  18. package/dist/{CopilotDriver-GxKLX5pL.mjs → CopilotDriver-B12ZJ-L_.mjs} +69 -7
  19. package/dist/{CopilotDriver-IBd27Ji2.cjs → CopilotDriver-C7IyIwVW.cjs} +98 -36
  20. package/dist/{CursorDriver-C4Enoe9N.cjs → CursorDriver-BWmCfJ-w.cjs} +38 -32
  21. package/dist/{CursorDriver-CNo9Uzo8.mjs → CursorDriver-C_p0v-ul.mjs} +12 -6
  22. package/dist/{ForgejoSourceControlProvider-Dh6DOoc8.cjs → ForgejoSourceControlProvider-DTRrllIH.cjs} +14 -14
  23. package/dist/{ForgejoSourceControlProvider-BGXysSX6.mjs → ForgejoSourceControlProvider-DmOGJEaJ.mjs} +3 -3
  24. package/dist/{GitHubSourceControlProvider-8hsv_kCE.cjs → GitHubSourceControlProvider-D-YV8WP6.cjs} +16 -17
  25. package/dist/{GitHubSourceControlProvider-CPCYV8Xo.mjs → GitHubSourceControlProvider-sQGcwnr3.mjs} +6 -7
  26. package/dist/{GitLabSourceControlProvider-B0ZbF9Zx.cjs → GitLabSourceControlProvider-kKYYnpER.cjs} +14 -14
  27. package/dist/{GitLabSourceControlProvider-Bvknpaon.mjs → GitLabSourceControlProvider-mIl-K-4F.mjs} +3 -3
  28. package/dist/GrokDriver-BFOniP_K.cjs +567 -0
  29. package/dist/GrokDriver-CDcWkiAi.mjs +552 -0
  30. package/dist/{Metrics-a1h4iBQi.mjs → Metrics-C-3MahDy.mjs} +1 -107
  31. package/dist/{Metrics-Bcb9vCAe.cjs → Metrics-DCKbdeoH.cjs} +0 -168
  32. package/dist/{NodePTY-B_p5tLYO.mjs → NodePTY-DArvQ9bX.mjs} +1 -1
  33. package/dist/{OpenCodeDriver-CDcvPT9v.cjs → OpenCodeDriver-CckbFEQJ.cjs} +459 -141
  34. package/dist/{OpenCodeDriver-0q44rSQX.mjs → OpenCodeDriver-CnWJHyDJ.mjs} +430 -112
  35. package/dist/SideQuestionIsolation-5eGFRW0t.mjs +26 -0
  36. package/dist/SideQuestionIsolation-DvVKZWxi.cjs +37 -0
  37. package/dist/{SourceControlProviderDiscoveryCatalog-B37RHe2u.mjs → SourceControlProviderDiscoveryCatalog-BVvq7liJ.mjs} +2 -1
  38. package/dist/{SourceControlProviderDiscoveryCatalog-DreaAH1H.cjs → SourceControlProviderDiscoveryCatalog-CyUhKJLD.cjs} +6 -5
  39. package/dist/bin.cjs +12772 -3149
  40. package/dist/bin.mjs +10669 -1075
  41. package/dist/client/assets/AccountSettings-DLbcE2w-.js +1 -0
  42. package/dist/client/assets/Adobe-CNS1-UCS2-fO900upv.bcmap +0 -0
  43. package/dist/client/assets/Adobe-GB1-UCS2-BA083yIo.bcmap +0 -0
  44. package/dist/client/assets/Adobe-Japan1-UCS2-BL-4M2vS.bcmap +0 -0
  45. package/dist/client/assets/Adobe-Korea1-UCS2-BEQZuOdo.bcmap +0 -0
  46. package/dist/client/assets/AiFocusSettings-FKvdkl4P.js +1 -0
  47. package/dist/client/assets/{AnimatedHeight-i0YhvlGD.js → AnimatedHeight-CbIEyMLg.js} +1 -1
  48. package/dist/client/assets/AppearanceSettings-B2LsGKmL.js +1 -0
  49. package/dist/client/assets/{BranchToolbar.logic-AgPy06Mx.js → BranchToolbar.logic-BqkvYNPk.js} +1 -1
  50. package/dist/client/assets/{BrowserPanel-BWztlNuL.js → BrowserPanel-C_C4zjrh.js} +1 -1
  51. package/dist/client/assets/ChatRightPanel-ibiQ79jI.js +195 -0
  52. package/dist/client/assets/{ChatThreadRouteView-CWoBLzR_.js → ChatThreadRouteView-c7AXmbSk.js} +1 -1
  53. package/dist/client/assets/CommandPaletteDialog-DdPKN6rv.js +1 -0
  54. package/dist/client/assets/CompositeRoot-DKwS-ADi.js +1 -0
  55. package/dist/client/assets/ComputerUseSettings-DM17BYP5.js +1 -0
  56. package/dist/client/assets/ConnectionsSettings-D6wysIC8.js +7 -0
  57. package/dist/client/assets/ContextHandoffEndpointLabel-CsF_maM_.js +4 -0
  58. package/dist/client/assets/{DiagnosticsSettings-DvnNz2AZ.js → DiagnosticsSettings-Bq2l-C4J.js} +2 -2
  59. package/dist/client/assets/{DialogHandle-8o3kfoiI.js → DialogHandle-DuKTleCw.js} +1 -1
  60. package/dist/client/assets/{DialogPopup-CLw6NCkW.js → DialogPopup-Dt7DzTWv.js} +1 -1
  61. package/dist/client/assets/DialogRoot-DRyawL6l.js +1 -0
  62. package/dist/client/assets/{DialogTitle-DCHX74Tz.js → DialogTitle-BaxfPC6e.js} +1 -1
  63. package/dist/client/assets/DialogTrigger-D0PJ8bRT.js +1 -0
  64. package/dist/client/assets/{DialogViewport-DVDl03yd.js → DialogViewport-C3B2JZWQ.js} +1 -1
  65. package/dist/client/assets/DraftChatThreadRouteView-B8YiD5NP.js +1 -0
  66. package/dist/client/assets/ETHK-B5-H-1MLb5v9x.bcmap +0 -0
  67. package/dist/client/assets/{ExternalIdentityWeb.logic-arHvT6AX.js → ExternalIdentityWeb.logic-CrcNfdHK.js} +1 -1
  68. package/dist/client/assets/FoxitDingbats-BaQLufoW.pfb +0 -0
  69. package/dist/client/assets/FoxitFixed-Dyd5Nipw.pfb +0 -0
  70. package/dist/client/assets/FoxitFixedBold-D5TuYRwj.pfb +0 -0
  71. package/dist/client/assets/FoxitFixedBoldItalic-BqlXQ_Yv.pfb +0 -0
  72. package/dist/client/assets/FoxitFixedItalic-DqjQkmbS.pfb +0 -0
  73. package/dist/client/assets/FoxitSerif-qbgiDIe-.pfb +0 -0
  74. package/dist/client/assets/FoxitSerifBold-DZZ4CclT.pfb +0 -0
  75. package/dist/client/assets/FoxitSerifBoldItalic-DSQtwd_X.pfb +0 -0
  76. package/dist/client/assets/FoxitSerifItalic-CQs5lx9Y.pfb +0 -0
  77. package/dist/client/assets/FoxitSymbol-BVtbc20u.pfb +0 -0
  78. package/dist/client/assets/GBK-EUC-H-CAORqCkf.bcmap +0 -0
  79. package/dist/client/assets/GBK2K-H-Cv55KPk8.bcmap +0 -0
  80. package/dist/client/assets/GBKp-EUC-H-CElrnV5g.bcmap +0 -0
  81. package/dist/client/assets/GBT-EUC-H-BTsQIL1M.bcmap +0 -0
  82. package/dist/client/assets/GBT-H-DL9h-WkS.bcmap +0 -0
  83. package/dist/client/assets/GBTpc-EUC-H-DnIh5WJ3.bcmap +0 -0
  84. package/dist/client/assets/{GlassSurface-GY6owikG.js → GlassSurface-CBIEgwt1.js} +1 -1
  85. package/dist/client/assets/HKscs-B5-H-CXbBbq6g.bcmap +0 -0
  86. package/dist/client/assets/{HostedConnectionControls-COUhSe9x.js → HostedConnectionControls-DOpTlXzE.js} +1 -1
  87. package/dist/client/assets/HostedHubRoot-C1jq8cM6.js +2 -0
  88. package/dist/client/assets/{HostedNativeAuthorizationRoute-DZhYxv--.js → HostedNativeAuthorizationRoute-Clw1DHQW.js} +2 -2
  89. package/dist/client/assets/HostedNodeRenameDialog-Bd_Qu_ek.js +1 -0
  90. package/dist/client/assets/{HostedRelayTrustNotice-Bl6On0Yi.js → HostedRelayTrustNotice-CGcBpT9m.js} +1 -1
  91. package/dist/client/assets/IntegrationsSettingsPanel-J0qODRW-.js +2 -0
  92. package/dist/client/assets/KSC-Johab-H-CGtV3MPT.bcmap +0 -0
  93. package/dist/client/assets/{KeybindingsSettings-CPtXx-W2.js → KeybindingsSettings-CwxIHsFy.js} +1 -1
  94. package/dist/client/assets/{LazyBrowserPanel-SUIBB7B4.js → LazyBrowserPanel-VNAn6AUL.js} +2 -2
  95. package/dist/client/assets/LiberationSans-Bold-BPt4bU5Z.ttf +0 -0
  96. package/dist/client/assets/LiberationSans-BoldItalic-Bj53-jFw.ttf +0 -0
  97. package/dist/client/assets/LiberationSans-Italic-5QhGB3P9.ttf +0 -0
  98. package/dist/client/assets/LiberationSans-Regular-cbskN6YR.ttf +0 -0
  99. package/dist/client/assets/McpServersSettings-1pkIeutq.js +6 -0
  100. package/dist/client/assets/MobileSheet-DddfN8c2.js +1 -0
  101. package/dist/client/assets/{NodeSecuritySettings-BFifrshE.js → NodeSecuritySettings-BOIZeFZo.js} +1 -1
  102. package/dist/client/assets/OpinionatedPluginsSettings-oTIrPtIb.js +1 -0
  103. package/dist/client/assets/PdfAttachmentPreview-BCMO9OHD.js +54 -0
  104. package/dist/client/assets/{PhoneGetAppInterstitial-R0cqI17q.js → PhoneGetAppInterstitial-0EOj-PbW.js} +1 -1
  105. package/dist/client/assets/PhoneHome-Cg7l3b1T.js +1 -0
  106. package/dist/client/assets/PhoneSettingsSurface-BXAUtZ9M.js +2 -0
  107. package/dist/client/assets/ProvidersSettingsPanel-BaJgypXu.js +1 -0
  108. package/dist/client/assets/{QuitShortcutFeedback-CklL3jMd.js → QuitShortcutFeedback-DgJFEd6b.js} +1 -1
  109. package/dist/client/assets/{RedactedSensitiveText-CLPBtvH1.js → RedactedSensitiveText-D1VC2xa7.js} +1 -1
  110. package/dist/client/assets/RootAppShell-D2RjZ9jQ.js +7 -0
  111. package/dist/client/assets/Separator-CeMncdkm.js +1 -0
  112. package/dist/client/assets/SettingsDialog-B2hEb6u8.js +2 -0
  113. package/dist/client/assets/SettingsPanels-DtWLQDne.js +3 -0
  114. package/dist/client/assets/{SettingsPanels.editor-9pSZP875.js → SettingsPanels.editor-DJRckD71.js} +1 -1
  115. package/dist/client/assets/{SourceControlSettings-C1F3Brcn.js → SourceControlSettings-IpoZrjt5.js} +1 -1
  116. package/dist/client/assets/StatisticsPage-CUpE_5Gr.js +1 -0
  117. package/dist/client/assets/StatisticsPanel-CHrAY5AP.js +1 -0
  118. package/dist/client/assets/StatisticsSettingsLink-bGWuxNG3.js +1 -0
  119. package/dist/client/assets/{ThreadTerminalDrawer-CHZ60lPI.js → ThreadTerminalDrawer-BEv83xrk.js} +11 -11
  120. package/dist/client/assets/ThreadWorkspacePanel-BdMdJVHJ.js +2073 -0
  121. package/dist/client/assets/UniCNS-UCS2-H-DWzv8UhH.bcmap +0 -0
  122. package/dist/client/assets/UniCNS-UTF16-H-Bw0JKgCq.bcmap +0 -0
  123. package/dist/client/assets/UniCNS-UTF32-H-IE_GrH2i.bcmap +0 -0
  124. package/dist/client/assets/UniCNS-UTF8-H-BbLcFh6Q.bcmap +0 -0
  125. package/dist/client/assets/UniGB-UCS2-H-D7xzRvZN.bcmap +0 -0
  126. package/dist/client/assets/UniGB-UTF16-H-DKjbEwc0.bcmap +0 -0
  127. package/dist/client/assets/UniGB-UTF32-H-Behfouj5.bcmap +0 -0
  128. package/dist/client/assets/UniGB-UTF8-H-EROft1ro.bcmap +0 -0
  129. package/dist/client/assets/UniJIS-UCS2-H-2DbZ0MaQ.bcmap +0 -0
  130. package/dist/client/assets/UniJIS-UTF16-H-BlDDPdCK.bcmap +0 -0
  131. package/dist/client/assets/UniJIS-UTF32-H-BIQPWkjv.bcmap +0 -0
  132. package/dist/client/assets/UniJIS-UTF8-H-CGusholx.bcmap +0 -0
  133. package/dist/client/assets/UniJIS2004-UTF16-H-KXixH-HI.bcmap +0 -0
  134. package/dist/client/assets/UniJIS2004-UTF32-H-CXrD-9YE.bcmap +0 -0
  135. package/dist/client/assets/UniJIS2004-UTF8-H-BkOctZjn.bcmap +0 -0
  136. package/dist/client/assets/UniJISX0213-UTF32-H-BavAhZjb.bcmap +0 -0
  137. package/dist/client/assets/UniJISX02132004-UTF32-H-DAH-AgUq.bcmap +0 -0
  138. package/dist/client/assets/UniKS-UCS2-H-YeUc7k1L.bcmap +0 -0
  139. package/dist/client/assets/UniKS-UTF16-H-B0dvB-Td.bcmap +0 -0
  140. package/dist/client/assets/UniKS-UTF32-H-olR_LtmR.bcmap +0 -0
  141. package/dist/client/assets/UniKS-UTF8-H-CbpebD-y.bcmap +0 -0
  142. package/dist/client/assets/{activity-BMBx2Fu0.js → activity-BmRcsTyL.js} +1 -1
  143. package/dist/client/assets/{alert-CXnC_RJc.js → alert-C5UiA2xk.js} +1 -1
  144. package/dist/client/assets/{appChrome-BzM66lXM.js → appChrome-CsZ2ylc1.js} +1 -1
  145. package/dist/client/assets/{arrow-left-CymyVbCi.js → arrow-left-CSz-z20j.js} +1 -1
  146. package/dist/client/assets/{arrow-right-9wyq4YVq.js → arrow-right-DEi91hao.js} +1 -1
  147. package/dist/client/assets/{arrow-up-right-mfU38K6p.js → arrow-up-right-D7SpcTV9.js} +1 -1
  148. package/dist/client/assets/authorization-B1YXfej3.js +1 -0
  149. package/dist/client/assets/badge-BjvTY7-E.js +1 -0
  150. package/dist/client/assets/{bot-BR3RyOWP.js → bot-SC4UGZyw.js} +1 -1
  151. package/dist/client/assets/{capabilities-C8sxDbKT.js → capabilities-BCkDNe83.js} +1 -1
  152. package/dist/client/assets/{chart-column-CcRi3pAd.js → chart-column-C08MuLgY.js} +1 -1
  153. package/dist/client/assets/chevron-right-DgB53U1_.js +1 -0
  154. package/dist/client/assets/{clipboard-copy-ezz8rnaT.js → clipboard-copy-D74Wvnon.js} +1 -1
  155. package/dist/client/assets/{data-list-ZLhzdlED.js → data-list-CZ4Utnfl.js} +1 -1
  156. package/dist/client/assets/{desktopWorkspace-P28r2lN2.js → desktopWorkspace-DVfn9ZT_.js} +1 -1
  157. package/dist/client/assets/{download-BA9L9tK9.js → download-Dio40wIJ.js} +1 -1
  158. package/dist/client/assets/editorPreferences-2dG4uloq.js +1 -0
  159. package/dist/client/assets/{empty-3NpXLnAM.js → empty-6LExKYgQ.js} +1 -1
  160. package/dist/client/assets/{group-D5qBdsaB.js → group-D_mu0Kiq.js} +1 -1
  161. package/dist/client/assets/{hostedConnectionCoordinator-CLV-JD1S.js → hostedConnectionCoordinator-YkDLnATK.js} +1 -1
  162. package/dist/client/assets/{hubRoutes-EWJ3Gdod.js → hubRoutes-D3quWvU7.js} +1 -1
  163. package/dist/client/assets/{index-DxCd1PgA.js → index-7MTgf8YI.js} +2 -2
  164. package/dist/client/assets/{input-DrOL1KPS.js → input-CfVJycb1.js} +1 -1
  165. package/dist/client/assets/jbig2-CNFLgX9F.wasm +0 -0
  166. package/dist/client/assets/kbd-uFa_tY-L.js +1 -0
  167. package/dist/client/assets/{key-round-D2DtQ7aS.js → key-round-C-oUSjpF.js} +1 -1
  168. package/dist/client/assets/{layers-DtSJWmwy.js → layers-Co2a5C1k.js} +1 -1
  169. package/dist/client/assets/{log-out-YAp9fsOg.js → log-out-pWFhbvwr.js} +1 -1
  170. package/dist/client/assets/{logging-BuUPX1SP.js → logging-JMrwaeZh.js} +1 -1
  171. package/dist/client/assets/main-BNPtp9Z0.css +2 -0
  172. package/dist/client/assets/main-CGeD6yVE.js +9 -0
  173. package/dist/client/assets/openjpeg-MeY6OQBn.wasm +0 -0
  174. package/dist/client/assets/{palette-D18VboLH.js → palette-B_6C4fD6.js} +1 -1
  175. package/dist/client/assets/pdf.worker.min-Dswkl-cV.mjs +29 -0
  176. package/dist/client/assets/{play-d3KUi4G6.js → play-DFtc9zBy.js} +1 -1
  177. package/dist/client/assets/primary-CNUdEGcv.js +2 -0
  178. package/dist/client/assets/providerDriverMeta-Cg_XLUfo.js +1 -0
  179. package/dist/client/assets/{ProviderModelPicker-dwWhl7Uf.js → providerInstances-JaDrOWPZ.js} +1 -1
  180. package/dist/client/assets/providerModels-5uOq3qPC.js +1 -0
  181. package/dist/client/assets/qcms_bg-3PJi_GXR.wasm +0 -0
  182. package/dist/client/assets/{qr-code-Bk1kdf_k.js → qr-code-BU354aLS.js} +1 -1
  183. package/dist/client/assets/{qr-code-MAZkoKtL.js → qr-code-DaHWf7Oq.js} +1 -1
  184. package/dist/client/assets/quickjs-eval-zJSp5SB4.wasm +0 -0
  185. package/dist/client/assets/radio-group-DKaA1eey.js +2 -0
  186. package/dist/client/assets/{refresh-cw-DY3_Ph-S.js → refresh-cw-CY5BeUEr.js} +1 -1
  187. package/dist/client/assets/runtime-BKneT96Q.js +17 -0
  188. package/dist/client/assets/{save-ugJXuJRM.js → save-DIHMjHXd.js} +1 -1
  189. package/dist/client/assets/{scroll-area-BMnGzd2a.js → scroll-area-Cq4SX9P8.js} +1 -1
  190. package/dist/client/assets/{scrollEdges-QLSFwGSQ.js → scrollEdges-BaWRjrac.js} +1 -1
  191. package/dist/client/assets/{separator-BwUYkCkX.js → separator-BN705fC0.js} +1 -1
  192. package/dist/client/assets/{settingsLayout-C6SUmJVB.js → settingsLayout-DQERzSce.js} +1 -1
  193. package/dist/client/assets/{sheet-DLy4aeVa.js → sheet-CFvRY7T6.js} +1 -1
  194. package/dist/client/assets/{shield-Zq_ygsnJ.js → shield-Zn2kFj5M.js} +1 -1
  195. package/dist/client/assets/{shield-alert-DfUhTI4-.js → shield-alert-DMB5gKiC.js} +1 -1
  196. package/dist/client/assets/{shield-check-CO4SMhAs.js → shield-check-DyNf6Bky.js} +1 -1
  197. package/dist/client/assets/{sidebar-DNnW-a2V.js → sidebar-Bsh64sLK.js} +1 -1
  198. package/dist/client/assets/sidebarProjectFolders-CQbpO9ZI.js +4 -0
  199. package/dist/client/assets/{sidebarStatusText-CawrXnx0.js → sidebarStatusText-DCo-whyK.js} +1 -1
  200. package/dist/client/assets/{skeleton-DRm4_OvB.js → skeleton-DEuowfjY.js} +1 -1
  201. package/dist/client/assets/{smartphone-O2VACDhU.js → smartphone-BLWJ7C9-.js} +1 -1
  202. package/dist/client/assets/{sparkles-isHutYWU.js → sparkles-DAXDXp_s.js} +1 -1
  203. package/dist/client/assets/src-DPpEXU6w.js +14 -0
  204. package/dist/client/assets/{star-7UHEnC3x.js → star-CjQxHYbD.js} +1 -1
  205. package/dist/client/assets/switch-LahPAvrd.js +48 -0
  206. package/dist/client/assets/{toggle-CaKBNe6W.js → toggle-45lsrmyi.js} +1 -1
  207. package/dist/client/assets/{toggle-group-UeFeTI3u.js → toggle-group-D5pl24ED.js} +1 -1
  208. package/dist/client/assets/{tokenModePresentation-DV56ekA4.js → tokenModePresentation-CPUsUGY4.js} +1 -1
  209. package/dist/client/assets/tooltip-B8-izeMo.js +1 -0
  210. package/dist/client/assets/{unplug-DisTpujT.js → unplug-Bjpxv8i0.js} +1 -1
  211. package/dist/client/assets/usage-8vQUo0mr.js +1 -0
  212. package/dist/client/assets/useAppSidebarCollapsed-uwz9Hlgc.js +1 -0
  213. package/dist/client/assets/useBaseUiId-BtuL7q77.js +1 -0
  214. package/dist/client/assets/useLabelableId-N_LsKNbf.js +1 -0
  215. package/dist/client/assets/useNavigate-DADLi29i.js +1 -0
  216. package/dist/client/assets/usePhoneThreadActions-B9_HK7tn.js +1 -0
  217. package/dist/client/assets/usePopupViewport-w8BEny9j.js +1 -0
  218. package/dist/client/assets/useScrollLock-bCmUzTgK.js +1 -0
  219. package/dist/client/assets/useStatistics-DJtONxT0.js +55 -0
  220. package/dist/client/assets/useTriggerFocusGuards-C7JWO2LT.js +1 -0
  221. package/dist/client/assets/useValueChanged-DkoUO9bY.js +1 -0
  222. package/dist/client/assets/{user-round-DctamWV6.js → user-round-DEWIPpNs.js} +1 -1
  223. package/dist/client/assets/{vscode-icons-Dw-LGJAv.js → vscode-icons-DTH-Vj-_.js} +1 -1
  224. package/dist/client/assets/workspaceMetadataProjection-BnpxBe8S.js +1 -0
  225. package/dist/client/assets/{wrench-Ds8eZerZ.js → wrench-36WYdK_a.js} +1 -1
  226. package/dist/client/index.html +1 -1
  227. package/dist/collectUint8StreamText-BAUF-vzz.mjs +37 -0
  228. package/dist/collectUint8StreamText-vagpNUMJ.cjs +42 -0
  229. package/dist/deviceHostWorker-C-BSnmkn.mjs +167 -0
  230. package/dist/deviceHostWorker-CYnrwfrv.cjs +169 -0
  231. package/dist/git-C4iJMbBu.mjs +132 -0
  232. package/dist/git-irmB8_k7.cjs +218 -0
  233. package/dist/{makeManagedServerProvider-GZcpSLrW.mjs → makeManagedServerProvider-BINne1KE.mjs} +3 -38
  234. package/dist/{makeManagedServerProvider-VzxWN-04.cjs → makeManagedServerProvider-DGbd8BhM.cjs} +1 -60
  235. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  236. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  237. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  238. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  239. package/dist/runtimeSession-Bj0OUcNJ.cjs +63 -0
  240. package/dist/runtimeSession-CA6cLWg0.mjs +40 -0
  241. package/dist/schemaJson-CaG1bOvo.mjs +49 -0
  242. package/dist/schemaJson-CuhFxa8p.cjs +66 -0
  243. package/dist/{collectUint8StreamText-DStwNTTK.cjs → src-BlzIcnVG.cjs} +573 -117
  244. package/dist/{collectUint8StreamText-C_VNyArd.mjs → src-DtEOcXdl.mjs} +389 -95
  245. package/package.json +1 -1
  246. package/dist/AcpNativeLogging-COepku4a.cjs +0 -5130
  247. package/dist/AcpNativeLogging-D7e1dn7s.mjs +0 -5015
  248. package/dist/client/assets/AccountSettings-ApnDA1f-.js +0 -1
  249. package/dist/client/assets/AiFocusSettings-CNmGHEcA.js +0 -1
  250. package/dist/client/assets/AppearanceSettings-BG8W4DP0.js +0 -1
  251. package/dist/client/assets/ChatRightPanel-a6UOHNMm.js +0 -194
  252. package/dist/client/assets/CommandPaletteDialog-B2iKWCUi.js +0 -1
  253. package/dist/client/assets/CompositeRoot-C1G-Ejus.js +0 -1
  254. package/dist/client/assets/ComputerUseSettings-CPwWoHWj.js +0 -1
  255. package/dist/client/assets/ConnectionsSettings-CPMkuxza.js +0 -7
  256. package/dist/client/assets/ContextHandoffEndpointLabel-BildLLDY.js +0 -4
  257. package/dist/client/assets/DialogRoot-SKkIuQHA.js +0 -1
  258. package/dist/client/assets/DialogTrigger-Bl_fcIV2.js +0 -1
  259. package/dist/client/assets/DraftChatThreadRouteView-CEDYjbKq.js +0 -1
  260. package/dist/client/assets/HostedHubRoot-BTWc0XoQ.js +0 -2
  261. package/dist/client/assets/IntegrationsSettingsPanel-n9owMZf-.js +0 -2
  262. package/dist/client/assets/McpServersSettings-BWIUud0Z.js +0 -6
  263. package/dist/client/assets/MobileSheet-NTayGHF6.js +0 -1
  264. package/dist/client/assets/OpinionatedPluginsSettings-D7WuuNWZ.js +0 -1
  265. package/dist/client/assets/PhoneHome-FqWvnJP_.js +0 -1
  266. package/dist/client/assets/PhoneSettingsSurface-w5PJnoBc.js +0 -2
  267. package/dist/client/assets/ProvidersSettingsPanel-Ww1ch3xA.js +0 -1
  268. package/dist/client/assets/RootAppShell-BdQCs2XJ.js +0 -7
  269. package/dist/client/assets/Separator-CpYBhf-I.js +0 -1
  270. package/dist/client/assets/SettingsDialog-DeMzEeCP.js +0 -2
  271. package/dist/client/assets/SettingsPanels-ZxNz9ZfL.js +0 -3
  272. package/dist/client/assets/StatisticsPage-C7v-6CTr.js +0 -1
  273. package/dist/client/assets/StatisticsPanel-CeIjiBm8.js +0 -1
  274. package/dist/client/assets/StatisticsSettingsLink-5s_violW.js +0 -1
  275. package/dist/client/assets/ThreadWorkspacePanel-Ct5kMcuY.js +0 -2073
  276. package/dist/client/assets/authorization-CjOFkg7b.js +0 -1
  277. package/dist/client/assets/badge-Dg7mXiOh.js +0 -1
  278. package/dist/client/assets/chevron-right-CuUjBsQV.js +0 -1
  279. package/dist/client/assets/editorPreferences-DeKdSV3s.js +0 -1
  280. package/dist/client/assets/kbd-rWDjJnWX.js +0 -1
  281. package/dist/client/assets/main-BbtLAX7M.js +0 -9
  282. package/dist/client/assets/main-D4CtFNPY.css +0 -2
  283. package/dist/client/assets/monitor-OyD484tI.js +0 -1
  284. package/dist/client/assets/primary-D_D7eLwT.js +0 -2
  285. package/dist/client/assets/providerDriverMeta-DNTocCcU.js +0 -1
  286. package/dist/client/assets/providerModels-bFbEIfL9.js +0 -1
  287. package/dist/client/assets/radio-group-D-VCGinX.js +0 -2
  288. package/dist/client/assets/runtime-Djy96GJd.js +0 -17
  289. package/dist/client/assets/sidebarProjectFolders-ygpaKZM6.js +0 -4
  290. package/dist/client/assets/src-BSuAGqhK.js +0 -14
  291. package/dist/client/assets/switch-DD1qVLgN.js +0 -48
  292. package/dist/client/assets/tooltip-DXvXxL37.js +0 -1
  293. package/dist/client/assets/useAppSidebarCollapsed-CaAsLi1q.js +0 -1
  294. package/dist/client/assets/useBaseUiId-CJN4MvrU.js +0 -1
  295. package/dist/client/assets/useLabelableId-BsDFG9Oj.js +0 -1
  296. package/dist/client/assets/useNavigate-cLfxn_9L.js +0 -1
  297. package/dist/client/assets/usePhoneThreadActions-rekHL1Mi.js +0 -1
  298. package/dist/client/assets/usePopupViewport-kXU31P6l.js +0 -1
  299. package/dist/client/assets/useScrollLock-DjMxrUJe.js +0 -1
  300. package/dist/client/assets/useStatistics-BYP-9CmW.js +0 -55
  301. package/dist/client/assets/useTriggerFocusGuards-DuAm2B8C.js +0 -1
  302. package/dist/client/assets/useValueChanged-DreFjrMK.js +0 -1
  303. package/dist/client/assets/workspaceMetadataProjection-BL4sEIL2.js +0 -1
@@ -256,12 +256,27 @@ const ExecutionEnvironmentPlatformArch = effect.Schema.Literals([
256
256
  "x64",
257
257
  "other"
258
258
  ]);
259
+ const EnvironmentMachineKind = effect.Schema.Literals([
260
+ "laptop",
261
+ "desktop",
262
+ "mini-pc",
263
+ "workstation",
264
+ "server",
265
+ "cloud",
266
+ "linux",
267
+ "windows"
268
+ ]);
269
+ /** Future icon kinds degrade to Automatic without rejecting a node snapshot. */
270
+ const EnvironmentMachineHint = effect.Schema.NullOr(EnvironmentMachineKind).pipe(effect.Schema.catchDecoding(() => effect.Effect.succeed(effect.Option.some(null))));
259
271
  const ExecutionEnvironmentPlatform = effect.Schema.Struct({
260
272
  os: ExecutionEnvironmentPlatformOs,
261
- arch: ExecutionEnvironmentPlatformArch
273
+ arch: ExecutionEnvironmentPlatformArch,
274
+ machine: effect.Schema.optionalKey(EnvironmentMachineHint)
262
275
  });
263
276
  const ExecutionEnvironmentCapabilities = effect.Schema.Struct({
264
277
  repositoryIdentity: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
278
+ projectIcons: effect.Schema.optional(effect.Schema.Boolean),
279
+ environmentIcon: effect.Schema.optionalKey(effect.Schema.Boolean),
265
280
  threadSnooze: effect.Schema.optional(effect.Schema.Boolean),
266
281
  threadSettlement: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
267
282
  threadPriorityRanking: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
@@ -3086,6 +3101,41 @@ function truncateSourceControlDetailContent(input) {
3086
3101
  truncated
3087
3102
  };
3088
3103
  }
3104
+ /** Provider-owned review progress; environment storage is reserved for future adapters. */
3105
+ const SourceControlViewedCapability = effect.Schema.Struct({ storage: effect.Schema.Literals([
3106
+ "host",
3107
+ "environment",
3108
+ "unsupported"
3109
+ ]) });
3110
+ const SourceControlFileViewedState = effect.Schema.Literals([
3111
+ "viewed",
3112
+ "unviewed",
3113
+ "stale"
3114
+ ]);
3115
+ const SourceControlFileViewed = effect.Schema.Struct({
3116
+ path: effect.Schema.String.check(effect.Schema.isMinLength(1)),
3117
+ state: SourceControlFileViewedState
3118
+ });
3119
+ const SourceControlGetChangeRequestFilesViewedInput = effect.Schema.Struct({
3120
+ cwd: TrimmedNonEmptyString,
3121
+ reference: TrimmedNonEmptyString
3122
+ });
3123
+ const SourceControlChangeRequestFilesViewed = effect.Schema.Struct({
3124
+ provider: SourceControlProviderKind,
3125
+ capability: SourceControlViewedCapability,
3126
+ headSha: effect.Schema.NullOr(TrimmedNonEmptyString),
3127
+ files: effect.Schema.Array(SourceControlFileViewed)
3128
+ });
3129
+ const SourceControlSetChangeRequestFileViewedInput = effect.Schema.Struct({
3130
+ ...SourceControlGetChangeRequestFilesViewedInput.fields,
3131
+ path: effect.Schema.String.check(effect.Schema.isMinLength(1)),
3132
+ viewed: effect.Schema.Boolean,
3133
+ expectedHeadSha: TrimmedNonEmptyString
3134
+ });
3135
+ const SourceControlSetChangeRequestFileViewedResult = effect.Schema.Struct({
3136
+ ...SourceControlFileViewed.fields,
3137
+ headSha: TrimmedNonEmptyString
3138
+ });
3089
3139
  //#endregion
3090
3140
  //#region ../../packages/contracts/src/workItems.ts
3091
3141
  const WorkItemProviderKind = effect.Schema.Literals(["jira"]);
@@ -4242,6 +4292,7 @@ const ProjectCreateCommand = effect.Schema.Struct({
4242
4292
  workspaceRoot: TrimmedNonEmptyString,
4243
4293
  projectMetadataDir: effect.Schema.optional(ProjectMetadataDir).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
4244
4294
  createWorkspaceRootIfMissing: effect.Schema.optional(effect.Schema.Boolean),
4295
+ /** @deprecated Accepted for old clients; project model defaults are ignored. */
4245
4296
  defaultModelSelection: effect.Schema.optional(effect.Schema.NullOr(ModelSelection)),
4246
4297
  customSystemPrompt: effect.Schema.optional(effect.Schema.NullOr(ProjectCustomSystemPrompt)),
4247
4298
  createdAt: IsoDateTime
@@ -4255,6 +4306,7 @@ const ProjectMetaUpdateCommand = effect.Schema.Struct({
4255
4306
  title: effect.Schema.optional(TrimmedNonEmptyString),
4256
4307
  workspaceRoot: effect.Schema.optional(TrimmedNonEmptyString),
4257
4308
  projectMetadataDir: effect.Schema.optional(ProjectMetadataDir),
4309
+ /** @deprecated Accepted for old clients; project model defaults are ignored. */
4258
4310
  defaultModelSelection: effect.Schema.optional(effect.Schema.NullOr(ModelSelection)),
4259
4311
  customSystemPrompt: effect.Schema.optional(effect.Schema.NullOr(ProjectCustomSystemPrompt)),
4260
4312
  scripts: effect.Schema.optional(effect.Schema.Array(ProjectScript)),
@@ -6929,7 +6981,7 @@ const ClientSettingsSchema = effect_Schema.Struct({
6929
6981
  sidebarProjectGroupingOverrides: effect_Schema.Record(TrimmedNonEmptyString, SidebarProjectGroupingMode).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({}))),
6930
6982
  sidebarProjectSortOrder: SidebarProjectSortOrder.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_SIDEBAR_PROJECT_SORT_ORDER))),
6931
6983
  sidebarThreadSortOrder: SidebarThreadSortOrder.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_SIDEBAR_THREAD_SORT_ORDER))),
6932
- sidebarAutoSettleAfterDays: SidebarAutoSettleAfterDays.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(null))),
6984
+ sidebarAutoSettleAfterDays: SidebarAutoSettleAfterDays.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(7))),
6933
6985
  timestampFormat: TimestampFormat.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_TIMESTAMP_FORMAT))),
6934
6986
  preferredEditor: effect_Schema.NullOr(EditorId).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(null))),
6935
6987
  gitStatusPollIntervalMs: GitStatusPollIntervalMs.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(0))),
@@ -7098,9 +7150,14 @@ const ObservabilitySettings = effect_Schema.Struct({
7098
7150
  * add non-secret operational limits without a settings migration.
7099
7151
  */
7100
7152
  const AgentControlSettings = effect_Schema.Struct({ enabled: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))) });
7153
+ const DEFAULT_WORKTREE_BRANCH_PREFIX = "ryco";
7154
+ /** A Git branch namespace without a trailing slash; empty disables the namespace. */
7155
+ const WorktreeBranchPrefix = TrimmedString.check(effect_Schema.isMaxLength(128), effect_Schema.isPattern(/^(?:$|(?![-/])(?!.*(?:\.\.|@\{|[\x00-\x20\x7f~^:?*[\\]))(?!.*(?:^|\/)\.)(?!.*\.lock(?:\/|$))(?!.*\/\/)(?!.*[/.]$)[^]+)$/));
7101
7156
  const ServerSettings = effect_Schema.Struct({
7157
+ environmentIcon: EnvironmentMachineHint.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(null))),
7102
7158
  enableLegacyTokenStreaming: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
7103
7159
  enableProviderUpdateChecks: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
7160
+ worktreeBranchPrefix: WorktreeBranchPrefix.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_WORKTREE_BRANCH_PREFIX))),
7104
7161
  defaultThreadEnvMode: ThreadEnvMode.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed("local"))),
7105
7162
  defaultAgentTokenMode: AgentTokenMode.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_AGENT_TOKEN_MODE))),
7106
7163
  addProjectBaseDirectory: TrimmedString.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(""))),
@@ -7179,8 +7236,10 @@ const OpenCodeSettingsPatch = effect_Schema.Struct({
7179
7236
  customModels: effect_Schema.optionalKey(effect_Schema.Array(effect_Schema.String))
7180
7237
  });
7181
7238
  const ServerSettingsPatch = effect_Schema.Struct({
7239
+ environmentIcon: effect_Schema.optionalKey(effect_Schema.NullOr(EnvironmentMachineKind)),
7182
7240
  enableLegacyTokenStreaming: effect_Schema.optionalKey(effect_Schema.Boolean),
7183
7241
  enableProviderUpdateChecks: effect_Schema.optionalKey(effect_Schema.Boolean),
7242
+ worktreeBranchPrefix: effect_Schema.optionalKey(WorktreeBranchPrefix),
7184
7243
  defaultThreadEnvMode: effect_Schema.optionalKey(ThreadEnvMode),
7185
7244
  defaultAgentTokenMode: effect_Schema.optionalKey(AgentTokenMode),
7186
7245
  addProjectBaseDirectory: effect_Schema.optionalKey(effect_Schema.String),
@@ -7369,7 +7428,19 @@ const ServerProviderUpdateState = effect.Schema.Struct({
7369
7428
  message: effect.Schema.NullOr(TrimmedNonEmptyString),
7370
7429
  output: effect.Schema.NullOr(effect.Schema.String.check(effect.Schema.isMaxLength(1e4)))
7371
7430
  });
7431
+ /** Negotiated or observed ACP features; absent for providers without ACP metadata. */
7432
+ const AcpProviderCapabilities = effect.Schema.Struct({
7433
+ resumeSession: effect.Schema.Boolean,
7434
+ loadSession: effect.Schema.Boolean,
7435
+ models: effect.Schema.Boolean,
7436
+ commands: effect.Schema.Boolean,
7437
+ usage: effect.Schema.Boolean,
7438
+ terminal: effect.Schema.Boolean,
7439
+ promptImages: effect.Schema.Boolean,
7440
+ promptAudio: effect.Schema.Boolean
7441
+ });
7372
7442
  const ServerProvider = effect.Schema.Struct({
7443
+ acpCapabilities: effect.Schema.optionalKey(AcpProviderCapabilities),
7373
7444
  instanceId: ProviderInstanceId,
7374
7445
  driver: ProviderDriverKind,
7375
7446
  displayName: effect.Schema.optional(TrimmedNonEmptyString),
@@ -9061,7 +9132,7 @@ const DEVICE_WS_METHODS = {
9061
9132
  recording: "device.recording",
9062
9133
  subscribeEvents: "device.subscribeEvents"
9063
9134
  };
9064
- const DEVICE_UDID_MAX_LENGTH = 128;
9135
+ const DEVICE_UDID_MAX_LENGTH = 255;
9065
9136
  const DEVICE_TEXT_MAX_LENGTH = 4096;
9066
9137
  const DEVICE_PATH_MAX_LENGTH = 1024;
9067
9138
  const DEVICE_URL_MAX_LENGTH = 8192;
@@ -9092,7 +9163,7 @@ var DeviceRpcError = class extends effect.Schema.TaggedError()("DeviceRpcError",
9092
9163
  * emulator serial (`emulator-5554`) fits the same contract without a schema break.
9093
9164
  */
9094
9165
  const DeviceUdid = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(DEVICE_UDID_MAX_LENGTH)).check(effect.Schema.isPattern(/^[A-Za-z0-9._:-]+$/));
9095
- const DevicePlatform = effect.Schema.Literals(["ios-simulator"]);
9166
+ const DevicePlatform = effect.Schema.Literals(["ios-simulator", "android-emulator"]);
9096
9167
  const DeviceRuntimeState = effect.Schema.Literals([
9097
9168
  "shutdown",
9098
9169
  "booting",
@@ -9113,7 +9184,23 @@ const DeviceBootSource = effect.Schema.Literals(["ryco", "user"]);
9113
9184
  * profile still lists devices; the pane falls back to the name there.
9114
9185
  */
9115
9186
  const DeviceFamily = effect.Schema.Literals(["phone", "tablet"]);
9187
+ /** Server-owned identity. Remote IDs include a fingerprint of the SSH destination. */
9188
+ const DeviceHostId = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(64)).check(effect.Schema.isPattern(/^[A-Za-z0-9._-]+$/));
9189
+ const DeviceHostSummary = effect.Schema.Struct({
9190
+ id: DeviceHostId,
9191
+ name: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(128)),
9192
+ transport: effect.Schema.Literals(["local", "ssh"]),
9193
+ status: effect.Schema.optional(effect.Schema.Literals([
9194
+ "unknown",
9195
+ "available",
9196
+ "setup-required",
9197
+ "disconnected"
9198
+ ])),
9199
+ availability: effect.Schema.optional(effect.Schema.String.check(effect.Schema.isMaxLength(2048)))
9200
+ });
9116
9201
  const DeviceDescriptor = effect.Schema.Struct({
9202
+ host: effect.Schema.optional(DeviceHostSummary),
9203
+ nativeUdid: effect.Schema.optional(DeviceUdid),
9117
9204
  platform: DevicePlatform,
9118
9205
  udid: DeviceUdid,
9119
9206
  name: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(256)),
@@ -9146,6 +9233,9 @@ const DeviceDescriptor = effect.Schema.Struct({
9146
9233
  }))
9147
9234
  });
9148
9235
  const DeviceSetupStepId = effect.Schema.Literals([
9236
+ "install-android-platform-tools",
9237
+ "install-android-emulator",
9238
+ "create-android-avd",
9149
9239
  "install-xcode",
9150
9240
  "accept-xcode-license",
9151
9241
  "select-xcode-command-line-tools",
@@ -9243,6 +9333,7 @@ const DeviceAttachPhase = effect.Schema.Literals([
9243
9333
  "connecting"
9244
9334
  ]);
9245
9335
  const ThreadDeviceState = effect.Schema.Struct({
9336
+ hosts: effect.Schema.optional(effect.Schema.Array(DeviceHostSummary).check(effect.Schema.isMaxLength(17))),
9246
9337
  threadId: ThreadId,
9247
9338
  /** Monotonic per thread; lets the pane drop out-of-order pushes. */
9248
9339
  version: NonNegativeInt,
@@ -9255,7 +9346,7 @@ const ThreadDeviceState = effect.Schema.Struct({
9255
9346
  */
9256
9347
  attachPhase: effect.Schema.optional(effect.Schema.NullOr(DeviceAttachPhase)),
9257
9348
  /** Devices the pane may show: booted devices plus anything Ryco is booting. */
9258
- devices: effect.Schema.Array(DeviceDescriptor).check(effect.Schema.isMaxLength(64)),
9349
+ devices: effect.Schema.Array(DeviceDescriptor).check(effect.Schema.isMaxLength(256)),
9259
9350
  /** True while an agent tool is driving input, so the pane can show the badge. */
9260
9351
  agentActive: effect.Schema.Boolean,
9261
9352
  availability: DeviceAvailability,
@@ -9266,6 +9357,7 @@ const DeviceListInput = effect.Schema.Struct({
9266
9357
  /** Include shut-down devices; the pane picker wants them, the agent usually does not. */
9267
9358
  includeShutdown: effect.Schema.optional(effect.Schema.Boolean) });
9268
9359
  const DeviceListResult = effect.Schema.Struct({
9360
+ hosts: effect.Schema.optional(effect.Schema.Array(DeviceHostSummary).check(effect.Schema.isMaxLength(17))),
9269
9361
  devices: effect.Schema.Array(DeviceDescriptor).check(effect.Schema.isMaxLength(256)),
9270
9362
  availability: DeviceAvailability
9271
9363
  });
@@ -9348,6 +9440,8 @@ const DeviceKeyEventInput = effect.Schema.Struct({
9348
9440
  });
9349
9441
  const DeviceHardwareButton = effect.Schema.Literals([
9350
9442
  "home",
9443
+ "back",
9444
+ "recents",
9351
9445
  "lock",
9352
9446
  "volume-up",
9353
9447
  "volume-down",
@@ -9360,7 +9454,7 @@ const DevicePressButtonInput = effect.Schema.Struct({
9360
9454
  const DeviceBundleId = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(256));
9361
9455
  const DeviceInstallAppInput = effect.Schema.Struct({
9362
9456
  udid: DeviceUdid,
9363
- /** Absolute path to a built `.app` bundle; Ryco never runs the build itself. */
9457
+ /** Absolute path to a built `.app` bundle or Android `.apk`; Ryco never runs the build itself. */
9364
9458
  appPath: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(DEVICE_PATH_MAX_LENGTH))
9365
9459
  });
9366
9460
  const DeviceInstallAppResult = effect.Schema.Struct({
@@ -9381,6 +9475,85 @@ const DeviceOpenUrlInput = effect.Schema.Struct({
9381
9475
  udid: DeviceUdid,
9382
9476
  url: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(DEVICE_URL_MAX_LENGTH))
9383
9477
  });
9478
+ const DeviceTestingTextSize = effect.Schema.Literals([
9479
+ "extra-small",
9480
+ "small",
9481
+ "medium",
9482
+ "large",
9483
+ "extra-large",
9484
+ "extra-extra-large",
9485
+ "extra-extra-extra-large",
9486
+ "accessibility-medium",
9487
+ "accessibility-large",
9488
+ "accessibility-extra-large",
9489
+ "accessibility-extra-extra-large",
9490
+ "accessibility-extra-extra-extra-large"
9491
+ ]);
9492
+ const DeviceTestingPermission = effect.Schema.Literals([
9493
+ "calendar",
9494
+ "contacts-limited",
9495
+ "contacts",
9496
+ "location",
9497
+ "location-always",
9498
+ "photos-add",
9499
+ "photos",
9500
+ "media-library",
9501
+ "microphone",
9502
+ "motion",
9503
+ "reminders",
9504
+ "siri"
9505
+ ]);
9506
+ const DeviceTestingBundleId = DeviceBundleId.check(effect.Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9.-]*$/));
9507
+ const DeviceTestingAction = effect.Schema.Union([
9508
+ effect.Schema.Struct({
9509
+ type: effect.Schema.Literal("appearance"),
9510
+ value: effect.Schema.Literals(["light", "dark"])
9511
+ }),
9512
+ effect.Schema.Struct({
9513
+ type: effect.Schema.Literal("text-size"),
9514
+ value: DeviceTestingTextSize
9515
+ }),
9516
+ effect.Schema.Struct({
9517
+ type: effect.Schema.Literal("location"),
9518
+ latitude: effect.Schema.Finite.check(effect.Schema.isBetween({
9519
+ minimum: -90,
9520
+ maximum: 90
9521
+ })),
9522
+ longitude: effect.Schema.Finite.check(effect.Schema.isBetween({
9523
+ minimum: -180,
9524
+ maximum: 180
9525
+ }))
9526
+ }),
9527
+ effect.Schema.Struct({ type: effect.Schema.Literal("clear-location") }),
9528
+ effect.Schema.Struct({
9529
+ type: effect.Schema.Literal("permission"),
9530
+ bundleId: DeviceTestingBundleId,
9531
+ service: DeviceTestingPermission,
9532
+ decision: effect.Schema.Literals([
9533
+ "grant",
9534
+ "revoke",
9535
+ "reset"
9536
+ ])
9537
+ }),
9538
+ effect.Schema.Struct({
9539
+ type: effect.Schema.Literal("push"),
9540
+ bundleId: DeviceTestingBundleId,
9541
+ payload: effect.Schema.String.check(effect.Schema.isMaxLength(4096))
9542
+ }),
9543
+ effect.Schema.Struct({
9544
+ type: effect.Schema.Literal("preset"),
9545
+ value: effect.Schema.Literals([
9546
+ "dark",
9547
+ "large-text",
9548
+ "dark-large-text",
9549
+ "standard"
9550
+ ])
9551
+ })
9552
+ ]);
9553
+ const DeviceTestingInput = effect.Schema.Struct({
9554
+ udid: DeviceUdid.check(effect.Schema.isPattern(/^(?!booted$|all$).+$/i)),
9555
+ action: DeviceTestingAction
9556
+ });
9384
9557
  const DeviceScreenshotInput = effect.Schema.Struct({
9385
9558
  udid: DeviceUdid,
9386
9559
  /**
@@ -9599,6 +9772,10 @@ const DeviceInputResponse = effect.Schema.Union([
9599
9772
  })
9600
9773
  ]);
9601
9774
  const DeviceAppRequest = effect.Schema.Union([
9775
+ effect.Schema.Struct({
9776
+ type: effect.Schema.Literal("testing"),
9777
+ input: DeviceTestingInput
9778
+ }),
9602
9779
  effect.Schema.Struct({
9603
9780
  type: effect.Schema.Literal("install-app"),
9604
9781
  input: DeviceInstallAppInput
@@ -9613,6 +9790,7 @@ const DeviceAppRequest = effect.Schema.Union([
9613
9790
  })
9614
9791
  ]);
9615
9792
  const DeviceAppResponse = effect.Schema.Union([
9793
+ effect.Schema.Struct({ type: effect.Schema.Literal("testing") }),
9616
9794
  effect.Schema.Struct({
9617
9795
  type: effect.Schema.Literal("install-app"),
9618
9796
  result: DeviceInstallAppResult
@@ -9700,8 +9878,8 @@ effect.Schema.Literals([
9700
9878
  * Schema-only definitions for the Agent Control control plane: principals,
9701
9879
  * capabilities, immutable action plans, approval proposals, and durable
9702
9880
  * execution operations. Agents never receive ambient write access — every
9703
- * mutation is first captured as an immutable `AgentControlProposal` that a
9704
- * user must approve, and only the server-side executor may move an accepted
9881
+ * mutation is first captured as an immutable `AgentControlProposal`. Routine private-session
9882
+ * actions may be authorized by policy; other actions require user approval. Only the executor moves an accepted
9705
9883
  * proposal into execution.
9706
9884
  *
9707
9885
  * Extension rules
@@ -9916,9 +10094,21 @@ const AgentControlInterruptThreadPlan = effect.Schema.Struct({
9916
10094
  /** When present, only this exact turn may be interrupted. */
9917
10095
  turnId: effect.Schema.optional(TurnId)
9918
10096
  }).annotate({ parseOptions: { onExcessProperty: "error" } });
10097
+ const AgentControlThreadPreferences = effect.Schema.Struct({
10098
+ modelSelection: effect.Schema.optional(ModelSelection),
10099
+ runtimeMode: effect.Schema.optional(RuntimeMode),
10100
+ interactionMode: effect.Schema.optional(ProviderInteractionMode),
10101
+ tokenMode: effect.Schema.optional(AgentTokenMode)
10102
+ });
10103
+ const AgentControlProjectPreferences = effect.Schema.Struct({
10104
+ customSystemPrompt: effect.Schema.optional(effect.Schema.NullOr(ProjectCustomSystemPrompt)),
10105
+ scripts: effect.Schema.optional(effect.Schema.Array(ProjectScript).check(effect.Schema.isMaxLength(100))),
10106
+ preferredRemoteName: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString))
10107
+ });
9919
10108
  const AgentControlUpdateThreadPlan = effect.Schema.Struct({
9920
10109
  kind: effect.Schema.Literal("updateThread"),
9921
10110
  threadId: ThreadId,
10111
+ ...AgentControlThreadPreferences.fields,
9922
10112
  title: effect.Schema.optional(AgentControlTitle),
9923
10113
  archived: effect.Schema.optional(effect.Schema.Boolean),
9924
10114
  /** An explicitly requested persistent goal; `null` clears it. */
@@ -9928,12 +10118,14 @@ const AgentControlWorkspaceRoot = TrimmedNonEmptyString.check(effect.Schema.isMa
9928
10118
  const AgentControlRepositoryIdentityKey = effect.Schema.NullOr(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(2048)));
9929
10119
  /** Canonical project state captured when a mutable project proposal is created. */
9930
10120
  const AgentControlProjectState = effect.Schema.Struct({
10121
+ ...AgentControlProjectPreferences.fields,
9931
10122
  title: AgentControlTitle,
9932
10123
  workspaceRoot: AgentControlWorkspaceRoot,
9933
10124
  repositoryIdentityKey: AgentControlRepositoryIdentityKey,
9934
10125
  updatedAt: IsoDateTime
9935
10126
  }).annotate({ parseOptions: { onExcessProperty: "error" } });
9936
10127
  const AgentControlProjectTarget = effect.Schema.Struct({
10128
+ ...AgentControlProjectPreferences.fields,
9937
10129
  title: AgentControlTitle,
9938
10130
  workspaceRoot: AgentControlWorkspaceRoot,
9939
10131
  repositoryIdentityKey: AgentControlRepositoryIdentityKey
@@ -9947,7 +10139,7 @@ const AgentControlCreateProjectPlan = effect.Schema.Struct({
9947
10139
  projectMetadataDir: ProjectMetadataDir,
9948
10140
  repositoryIdentityKey: AgentControlRepositoryIdentityKey
9949
10141
  }).annotate({ parseOptions: { onExcessProperty: "error" } });
9950
- /** Exact before/after metadata update; only display name and workspace path are supported. */
10142
+ /** Exact before/after project metadata and preference update. */
9951
10143
  const AgentControlUpdateProjectPlan = effect.Schema.Struct({
9952
10144
  kind: effect.Schema.Literal("updateProject"),
9953
10145
  projectId: ProjectId,
@@ -10049,7 +10241,7 @@ const AgentControlDeviceRiskClass = effect.Schema.Literals([
10049
10241
  "device-lifecycle",
10050
10242
  "open-world"
10051
10243
  ]);
10052
- const AgentControlDeviceArtifactPath = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(AGENT_CONTROL_DEVICE_ARTIFACT_PATH_MAX_CHARS), effect.Schema.isPattern(/^(?!\/)(?!~)(?![A-Za-z]:)(?!.*(?:^|\/)\.\.(?:\/|$))(?!.*\\)[^\0]+\.app$/u));
10244
+ const AgentControlDeviceArtifactPath = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(AGENT_CONTROL_DEVICE_ARTIFACT_PATH_MAX_CHARS), effect.Schema.isPattern(/^(?!\/)(?!~)(?![A-Za-z]:)(?!.*(?:^|\/)\.\.(?:\/|$))(?!.*\\)[^\0]+\.(?:app|apk)$/u));
10053
10245
  const AgentControlDeviceExecutionSummary = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(240));
10054
10246
  const AgentControlDeviceCoordinate = effect.Schema.Finite.check(effect.Schema.isBetween({
10055
10247
  minimum: 0,
@@ -10671,6 +10863,7 @@ const AgentControlMcpInterruptThreadInput = effect.Schema.Struct({
10671
10863
  const AgentControlMcpUpdateThreadInput = effect.Schema.Struct({
10672
10864
  requestId: AgentControlRequestId,
10673
10865
  threadId: ThreadId,
10866
+ ...AgentControlThreadPreferences.fields,
10674
10867
  title: effect.Schema.optional(AgentControlTitle),
10675
10868
  archived: effect.Schema.optional(effect.Schema.Boolean),
10676
10869
  persistentGoal: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(AGENT_CONTROL_PERSISTENT_GOAL_MAX_CHARS))))
@@ -10682,6 +10875,7 @@ const AgentControlMcpProposeProjectCreateInput = effect.Schema.Struct({
10682
10875
  workspaceRoot: AgentControlWorkspaceRoot
10683
10876
  }).annotate({ parseOptions: { onExcessProperty: "error" } });
10684
10877
  const AgentControlMcpProposeProjectUpdateInput = effect.Schema.Struct({
10878
+ ...AgentControlProjectPreferences.fields,
10685
10879
  requestId: AgentControlRequestId,
10686
10880
  projectId: ProjectId,
10687
10881
  expectedUpdatedAt: IsoDateTime,
@@ -10898,14 +11092,14 @@ const AgentControlMcpSettingsSummaryItem = effect.Schema.Union([effect.Schema.St
10898
11092
  kind: effect.Schema.Literal("legacyTokenStreaming"),
10899
11093
  label: effect.Schema.Literal("Legacy token streaming"),
10900
11094
  value: effect.Schema.Boolean,
10901
- changeSupported: effect.Schema.Literal(false),
10902
- unsupportedReason: TrimmedNonEmptyString
11095
+ changeSupported: effect.Schema.Boolean,
11096
+ unsupportedReason: effect.Schema.NullOr(TrimmedNonEmptyString)
10903
11097
  }), effect.Schema.Struct({
10904
11098
  kind: effect.Schema.Literal("providerUpdateChecks"),
10905
11099
  label: effect.Schema.Literal("Provider update checks"),
10906
11100
  value: effect.Schema.Boolean,
10907
- changeSupported: effect.Schema.Literal(false),
10908
- unsupportedReason: TrimmedNonEmptyString
11101
+ changeSupported: effect.Schema.Boolean,
11102
+ unsupportedReason: effect.Schema.NullOr(TrimmedNonEmptyString)
10909
11103
  })]);
10910
11104
  const AgentControlMcpSettingsSummaryResult = effect.Schema.Struct({
10911
11105
  settings: effect.Schema.Array(AgentControlMcpSettingsSummaryItem),
@@ -11428,6 +11622,20 @@ var ProjectStageFileReferenceError = class extends effect.Schema.TaggedError()("
11428
11622
  message: TrimmedNonEmptyString,
11429
11623
  cause: effect.Schema.optional(effect.Schema.Defect())
11430
11624
  }) {};
11625
+ /** Optional, bounded project artwork carried inside the authenticated node RPC channel. */
11626
+ const PROJECT_ICON_MAX_BYTES = 524288;
11627
+ const ProjectReadIconInput = effect.Schema.Struct({ projectId: ProjectId });
11628
+ const ProjectReadIconResult = effect.Schema.NullOr(effect.Schema.Struct({
11629
+ dataBase64: effect.Schema.String.check(effect.Schema.isMaxLength(Math.ceil(PROJECT_ICON_MAX_BYTES / 3) * 4)),
11630
+ mimeType: effect.Schema.Literals([
11631
+ "image/png",
11632
+ "image/jpeg",
11633
+ "image/webp",
11634
+ "image/svg+xml",
11635
+ "image/x-icon"
11636
+ ])
11637
+ }));
11638
+ var ProjectReadIconError = class extends effect.Schema.TaggedError()("ProjectReadIconError", { message: TrimmedNonEmptyString }) {};
11431
11639
  //#endregion
11432
11640
  //#region ../../packages/contracts/src/filesystem.ts
11433
11641
  const FILESYSTEM_PATH_MAX_LENGTH = 512;
@@ -11451,6 +11659,40 @@ var FilesystemBrowseError = class extends effect.Schema.TaggedError()("Filesyste
11451
11659
  cause: effect.Schema.optional(effect.Schema.Defect())
11452
11660
  }) {};
11453
11661
  //#endregion
11662
+ //#region ../../packages/contracts/src/acpRegistry.ts
11663
+ /** Registry identities are data, never executable paths or package-manager arguments. */
11664
+ const AcpRegistryAgentId = effect.Schema.String.check(effect.Schema.isPattern(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/));
11665
+ const AcpRegistryVersion = effect.Schema.String.check(effect.Schema.isPattern(/^[0-9][a-zA-Z0-9.+_-]{0,127}$/));
11666
+ const AcpRegistrySettings = effect.Schema.Struct({
11667
+ agentId: effect.Schema.String.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed("")), effect.Schema.annotateKey({ providerSettingsForm: { hidden: true } })),
11668
+ version: effect.Schema.String.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed("")), effect.Schema.annotateKey({ providerSettingsForm: { hidden: true } })),
11669
+ authMethodId: effect.Schema.optionalKey(effect.Schema.String).pipe(effect.Schema.annotateKey({ providerSettingsForm: { hidden: true } }))
11670
+ });
11671
+ const AcpRegistryAgent = effect.Schema.Struct({
11672
+ id: AcpRegistryAgentId,
11673
+ version: AcpRegistryVersion,
11674
+ name: effect.Schema.String,
11675
+ description: effect.Schema.String,
11676
+ repository: effect.Schema.optionalKey(effect.Schema.String),
11677
+ website: effect.Schema.optionalKey(effect.Schema.String),
11678
+ icon: effect.Schema.optionalKey(effect.Schema.String),
11679
+ license: effect.Schema.optionalKey(effect.Schema.String),
11680
+ installable: effect.Schema.Boolean,
11681
+ unavailableReason: effect.Schema.optionalKey(effect.Schema.String),
11682
+ installed: effect.Schema.Boolean
11683
+ });
11684
+ const AcpRegistryInstallInput = effect.Schema.Struct({
11685
+ agentId: AcpRegistryAgentId,
11686
+ version: AcpRegistryVersion
11687
+ });
11688
+ const AcpRegistryInstallation = effect.Schema.Struct({
11689
+ agentId: AcpRegistryAgentId,
11690
+ version: AcpRegistryVersion,
11691
+ sha256: effect.Schema.String
11692
+ });
11693
+ const AcpRegistrySearchInput = effect.Schema.Struct({ query: effect.Schema.optionalKey(effect.Schema.String.check(effect.Schema.isMaxLength(200))) });
11694
+ const AcpRegistrySearchResult = effect.Schema.Struct({ agents: effect.Schema.Array(AcpRegistryAgent) });
11695
+ //#endregion
11454
11696
  //#region ../../packages/contracts/src/rpc.ts
11455
11697
  const WS_METHODS = {
11456
11698
  projectsList: "projects.list",
@@ -11459,6 +11701,7 @@ const WS_METHODS = {
11459
11701
  projectsListEntries: "projects.listEntries",
11460
11702
  projectsSearchEntries: "projects.searchEntries",
11461
11703
  projectsReadFile: "projects.readFile",
11704
+ projectsReadIcon: "projects.readIcon",
11462
11705
  projectsReadFileBinary: "projects.readFileBinary",
11463
11706
  projectsWriteFile: "projects.writeFile",
11464
11707
  projectsStageFileReference: "projects.stageFileReference",
@@ -11497,6 +11740,10 @@ const WS_METHODS = {
11497
11740
  serverGetConfig: "server.getConfig",
11498
11741
  serverGetAdvertisedEndpoints: "server.getAdvertisedEndpoints",
11499
11742
  serverGetDiagnosticsMetrics: "server.getDiagnosticsMetrics",
11743
+ serverSearchAcpRegistry: "server.searchAcpRegistry",
11744
+ serverInstallAcpRegistry: "server.installAcpRegistry",
11745
+ serverGetAcpRegistryAuthMethods: "server.getAcpRegistryAuthMethods",
11746
+ serverAuthenticateAcpRegistry: "server.authenticateAcpRegistry",
11500
11747
  serverRefreshProviders: "server.refreshProviders",
11501
11748
  serverUpdateProvider: "server.updateProvider",
11502
11749
  serverUpsertKeybinding: "server.upsertKeybinding",
@@ -11530,6 +11777,8 @@ const WS_METHODS = {
11530
11777
  sourceControlListChangeRequests: "sourceControl.listChangeRequests",
11531
11778
  sourceControlSearchChangeRequests: "sourceControl.searchChangeRequests",
11532
11779
  sourceControlGetChangeRequestDetail: "sourceControl.getChangeRequestDetail",
11780
+ sourceControlGetChangeRequestFilesViewed: "sourceControl.getChangeRequestFilesViewed",
11781
+ sourceControlSetChangeRequestFileViewed: "sourceControl.setChangeRequestFileViewed",
11533
11782
  sourceControlGetChangeRequestDiff: "sourceControl.getChangeRequestDiff",
11534
11783
  sourceControlMergeChangeRequest: "sourceControl.mergeChangeRequest",
11535
11784
  sourceControlCreateIssue: "sourceControl.createIssue",
@@ -11544,6 +11793,8 @@ const WS_METHODS = {
11544
11793
  sourceControlGetWorkflowJobLog: "sourceControl.getWorkflowJobLog",
11545
11794
  sourceControlRerunWorkflow: "sourceControl.rerunWorkflow",
11546
11795
  textGenerationGenerateIssueContent: "textGeneration.generateIssueContent",
11796
+ textGenerationAskSideQuestion: "textGeneration.askSideQuestion",
11797
+ textGenerationCancelSideQuestion: "textGeneration.cancelSideQuestion",
11547
11798
  textGenerationGenerateBranchName: "textGeneration.generateBranchName",
11548
11799
  atlassianListConnections: "atlassian.listConnections",
11549
11800
  atlassianStartOAuth: "atlassian.startOAuth",
@@ -11584,6 +11835,22 @@ const SourceControlCreateIssueWithWorktreeResult = effect.Schema.Struct({
11584
11835
  worktree: effect.Schema.optional(GitCreateWorktreeForProjectOutput),
11585
11836
  worktreeError: effect.Schema.optional(effect.Schema.String)
11586
11837
  });
11838
+ /** Ephemeral questions: context and cwd are always resolved by the server. */
11839
+ const SideQuestionInput = effect.Schema.Struct({
11840
+ threadId: ThreadId,
11841
+ requestId: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(128)),
11842
+ question: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(16e3)),
11843
+ history: effect.Schema.Array(effect.Schema.Struct({
11844
+ question: effect.Schema.String.check(effect.Schema.isMaxLength(16e3)),
11845
+ answer: effect.Schema.String.check(effect.Schema.isMaxLength(32e3))
11846
+ })).check(effect.Schema.isMaxLength(20)),
11847
+ modelSelection: ModelSelection
11848
+ });
11849
+ const SideQuestionResult = effect.Schema.Struct({
11850
+ requestId: effect.Schema.String,
11851
+ answer: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(32e3))
11852
+ });
11853
+ const SideQuestionCancelInput = effect.Schema.Struct({ requestId: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(128)) });
11587
11854
  const TextGenerationIssueContentMode = effect.Schema.Literals(["polish", "title"]);
11588
11855
  const TextGenerationIssueContentInput = effect.Schema.Struct({
11589
11856
  cwd: effect.Schema.String,
@@ -11674,6 +11941,49 @@ const WsServerGetDiagnosticsMetricsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS
11674
11941
  success: ServerLocalDiagnosticsMetrics,
11675
11942
  error: AuthRpcError
11676
11943
  });
11944
+ var AcpRegistryOperationError = class extends effect.Schema.TaggedError()("AcpRegistryOperationError", { message: effect.Schema.String }) {};
11945
+ const AcpRegistryAuthMethod = effect.Schema.Struct({
11946
+ type: effect.Schema.optionalKey(effect.Schema.Literals([
11947
+ "agent",
11948
+ "env_var",
11949
+ "terminal"
11950
+ ])),
11951
+ variables: effect.Schema.optionalKey(effect.Schema.Array(effect.Schema.Struct({
11952
+ name: effect.Schema.String,
11953
+ label: effect.Schema.optionalKey(effect.Schema.String),
11954
+ optional: effect.Schema.Boolean,
11955
+ secret: effect.Schema.Boolean
11956
+ }))),
11957
+ id: effect.Schema.String,
11958
+ name: effect.Schema.String,
11959
+ description: effect.Schema.optionalKey(effect.Schema.String)
11960
+ });
11961
+ const AcpRegistryAuthInput = effect.Schema.Struct({ instanceId: ProviderInstanceId });
11962
+ const AcpRegistryAuthenticateInput = effect.Schema.Struct({
11963
+ instanceId: ProviderInstanceId,
11964
+ methodId: effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256))
11965
+ });
11966
+ const AcpRegistryAuthenticationResult = effect.Schema.Struct({ authenticated: effect.Schema.Boolean });
11967
+ const WsServerSearchAcpRegistryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverSearchAcpRegistry, {
11968
+ payload: AcpRegistrySearchInput,
11969
+ success: AcpRegistrySearchResult,
11970
+ error: effect.Schema.Union([AcpRegistryOperationError, AuthRpcError])
11971
+ });
11972
+ const WsServerInstallAcpRegistryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverInstallAcpRegistry, {
11973
+ payload: AcpRegistryInstallInput,
11974
+ success: AcpRegistryInstallation,
11975
+ error: effect.Schema.Union([AcpRegistryOperationError, AuthRpcError])
11976
+ });
11977
+ const WsServerGetAcpRegistryAuthMethodsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetAcpRegistryAuthMethods, {
11978
+ payload: AcpRegistryAuthInput,
11979
+ success: effect.Schema.Array(AcpRegistryAuthMethod),
11980
+ error: effect.Schema.Union([AcpRegistryOperationError, AuthRpcError])
11981
+ });
11982
+ const WsServerAuthenticateAcpRegistryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverAuthenticateAcpRegistry, {
11983
+ payload: AcpRegistryAuthenticateInput,
11984
+ success: AcpRegistryAuthenticationResult,
11985
+ error: effect.Schema.Union([AcpRegistryOperationError, AuthRpcError])
11986
+ });
11677
11987
  const WsServerRefreshProvidersRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverRefreshProviders, {
11678
11988
  payload: effect.Schema.Struct({
11679
11989
  /**
@@ -11870,10 +12180,21 @@ const WsSourceControlGetChangeRequestDetailRpc = effect_unstable_rpc_Rpc.make(WS
11870
12180
  success: SourceControlChangeRequestDetail,
11871
12181
  error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
11872
12182
  });
12183
+ const WsSourceControlGetChangeRequestFilesViewedRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetChangeRequestFilesViewed, {
12184
+ payload: SourceControlGetChangeRequestFilesViewedInput,
12185
+ success: SourceControlChangeRequestFilesViewed,
12186
+ error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
12187
+ });
12188
+ const WsSourceControlSetChangeRequestFileViewedRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlSetChangeRequestFileViewed, {
12189
+ payload: SourceControlSetChangeRequestFileViewedInput,
12190
+ success: SourceControlSetChangeRequestFileViewedResult,
12191
+ error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
12192
+ });
11873
12193
  const WsSourceControlGetChangeRequestDiffRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetChangeRequestDiff, {
11874
12194
  payload: effect.Schema.Struct({
11875
12195
  cwd: effect.Schema.String,
11876
- reference: effect.Schema.String
12196
+ reference: effect.Schema.String,
12197
+ expectedHeadSha: effect.Schema.optional(TrimmedNonEmptyString)
11877
12198
  }),
11878
12199
  success: effect.Schema.String,
11879
12200
  error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
@@ -11942,6 +12263,16 @@ const WsSourceControlRerunWorkflowRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.
11942
12263
  success: SourceControlWorkflowRerunResult,
11943
12264
  error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
11944
12265
  });
12266
+ const WsTextGenerationAskSideQuestionRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.textGenerationAskSideQuestion, {
12267
+ payload: SideQuestionInput,
12268
+ success: SideQuestionResult,
12269
+ error: effect.Schema.Union([AuthRpcError, TextGenerationError])
12270
+ });
12271
+ const WsTextGenerationCancelSideQuestionRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.textGenerationCancelSideQuestion, {
12272
+ payload: SideQuestionCancelInput,
12273
+ success: effect.Schema.Struct({}),
12274
+ error: effect.Schema.Union([AuthRpcError, TextGenerationError])
12275
+ });
11945
12276
  const WsTextGenerationGenerateIssueContentRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.textGenerationGenerateIssueContent, {
11946
12277
  payload: TextGenerationIssueContentInput,
11947
12278
  success: TextGenerationIssueContentResult,
@@ -12057,6 +12388,11 @@ const WsProjectsReadFileRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsRe
12057
12388
  success: ProjectReadFileResult,
12058
12389
  error: effect.Schema.Union([ProjectReadFileError, AuthRpcError])
12059
12390
  });
12391
+ const WsProjectsReadIconRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsReadIcon, {
12392
+ payload: ProjectReadIconInput,
12393
+ success: ProjectReadIconResult,
12394
+ error: effect.Schema.Union([ProjectReadIconError, AuthRpcError])
12395
+ });
12060
12396
  const WsProjectsReadFileBinaryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsReadFileBinary, {
12061
12397
  payload: ProjectReadFileBinaryInput,
12062
12398
  success: ProjectReadFileBinaryResult,
@@ -12461,7 +12797,8 @@ const WsAgentControlDisconnectMcpInstallationRpc = effect_unstable_rpc_Rpc.make(
12461
12797
  success: AgentControlMcpInstallationMutationResult,
12462
12798
  error: effect.Schema.Union([AgentControlExternalRpcError, AuthRpcError])
12463
12799
  });
12464
- const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, 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, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, 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);
12800
+ /** Keep declaration emit bounded as shared settings and RPC schemas grow. */
12801
+ const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerSearchAcpRegistryRpc, WsServerInstallAcpRegistryRpc, WsServerGetAcpRegistryAuthMethodsRpc, WsServerAuthenticateAcpRegistryRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, 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, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, 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);
12465
12802
  /**
12466
12803
  * Hosted relay channels carry both groups through one lifecycle-owned encrypted
12467
12804
  * channel. Direct clients keep the device group on its own low-priority socket
@@ -12597,83 +12934,40 @@ effect.Schema.Struct({
12597
12934
  projectMatch: effect.Schema.Boolean
12598
12935
  });
12599
12936
  //#endregion
12600
- //#region ../../packages/shared/src/schemaJson.ts
12601
- const decodeJsonResult = (schema) => {
12602
- const decode = effect.Schema.decodeExit(effect.Schema.fromJsonString(schema));
12603
- return (input) => {
12604
- const result = decode(input);
12605
- if (effect.Exit.isFailure(result)) return effect.Result.fail(result.cause);
12606
- return effect.Result.succeed(result.value);
12607
- };
12608
- };
12609
- const formatSchemaError = (cause) => {
12610
- const squashed = effect.Cause.squash(cause);
12611
- return effect.Schema.isSchemaError(squashed) ? effect.SchemaIssue.makeFormatterDefault()(squashed.issue) : effect.Cause.pretty(cause);
12612
- };
12613
- /**
12614
- * A `Getter` that parses a lenient JSON string (tolerating trailing commas
12615
- * and JS-style comments) into an unknown value.
12616
- *
12617
- * Mirrors `SchemaGetter.parseJson()` but uses `parseLenientJson` instead
12618
- * of `JSON.parse`.
12619
- */
12620
- const parseLenientJsonGetter = effect.SchemaGetter.onSome((input) => effect.Effect.try({
12621
- try: () => {
12622
- let stripped = input.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g, (match, stringLiteral) => stringLiteral ? match : "");
12623
- stripped = stripped.replace(/("(?:[^"\\]|\\.)*")|\/\*[\s\S]*?\*\//g, (match, stringLiteral) => stringLiteral ? match : "");
12624
- stripped = stripped.replace(/,(\s*[}\]])/g, "$1");
12625
- return effect.Option.some(JSON.parse(stripped));
12626
- },
12627
- catch: (e) => new effect.SchemaIssue.InvalidValue({ message: String(e) }, input)
12628
- }));
12629
- /**
12630
- * Schema transformation: lenient JSONC string ↔ unknown.
12631
- *
12632
- * Same API as `SchemaTransformation.fromJsonString`, but the decode side
12633
- * strips trailing commas and JS-style comments before parsing.
12634
- * Encoding produces strict JSON via `JSON.stringify`.
12635
- */
12636
- const fromLenientJsonString = new effect.SchemaTransformation.Transformation(parseLenientJsonGetter, effect.SchemaGetter.stringifyJson());
12637
- /**
12638
- * Build a schema that decodes a lenient JSON string into `A`.
12639
- *
12640
- * Drop-in replacement for `Schema.fromJsonString(schema)` that tolerates
12641
- * trailing commas and comments in the input.
12642
- */
12643
- const fromLenientJson = (schema) => effect.Schema.String.pipe(effect.Schema.decodeTo(schema, fromLenientJsonString));
12644
- //#endregion
12645
- //#region src/stream/collectUint8StreamText.ts
12646
- const collectUint8StreamText = (input) => {
12647
- const decoder = new TextDecoder();
12648
- const maxBytes = input.maxBytes ?? Number.POSITIVE_INFINITY;
12649
- const truncatedMarker = input.truncatedMarker ?? "";
12650
- return input.stream.pipe(effect.Stream.runFold(() => ({
12651
- text: "",
12652
- bytes: 0,
12653
- truncated: false
12654
- }), (state, chunk) => {
12655
- if (state.truncated) return state;
12656
- const remainingBytes = maxBytes - state.bytes;
12657
- if (remainingBytes <= 0) return {
12658
- ...state,
12659
- text: `${state.text}${truncatedMarker}`,
12660
- truncated: true
12661
- };
12662
- const nextChunk = chunk.byteLength > remainingBytes ? chunk.slice(0, remainingBytes) : chunk;
12663
- const text = `${state.text}${decoder.decode(nextChunk, { stream: true })}`;
12664
- const bytes = state.bytes + nextChunk.byteLength;
12665
- const truncated = chunk.byteLength > remainingBytes;
12666
- return {
12667
- text: truncated ? `${text}${truncatedMarker}` : text,
12668
- bytes,
12669
- truncated
12670
- };
12671
- }), effect.Effect.map((state) => ({
12672
- text: state.truncated ? state.text : `${state.text}${decoder.decode()}`,
12673
- bytes: state.bytes,
12674
- truncated: state.truncated
12675
- })));
12676
- };
12937
+ //#region ../../packages/contracts/src/agentControlInspection.ts
12938
+ const AgentControlReadProjectInput = effect.Schema.Struct({ projectId: ProjectId });
12939
+ const AgentControlInspectThreadInput = effect.Schema.Struct({
12940
+ threadId: ThreadId,
12941
+ section: effect.Schema.Literals([
12942
+ "info",
12943
+ "agents",
12944
+ "activities",
12945
+ "plans",
12946
+ "review",
12947
+ "terminals"
12948
+ ]),
12949
+ limit: effect.Schema.optional(PositiveInt.check(effect.Schema.isLessThanOrEqualTo(100))),
12950
+ cursor: effect.Schema.optional(OrchestrationThreadHistoryCursor)
12951
+ });
12952
+ const AgentControlWaitThreadsInput = effect.Schema.Struct({
12953
+ threadIds: effect.Schema.Array(ThreadId).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(8)),
12954
+ timeoutMs: effect.Schema.optional(NonNegativeInt)
12955
+ });
12956
+ const AgentControlSearchThreadsInput = effect.Schema.Struct({
12957
+ query: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(1e3)),
12958
+ projectId: effect.Schema.optional(ProjectId),
12959
+ threadId: effect.Schema.optional(ThreadId),
12960
+ limit: effect.Schema.optional(PositiveInt.check(effect.Schema.isLessThanOrEqualTo(100)))
12961
+ });
12962
+ const AgentControlReadDiffInput = effect.Schema.Struct({
12963
+ threadId: ThreadId,
12964
+ toTurnCount: NonNegativeInt,
12965
+ ignoreWhitespace: effect.Schema.optionalKey(effect.Schema.Boolean)
12966
+ });
12967
+ const AgentControlReadThreadFileInput = effect.Schema.Struct({
12968
+ threadId: ThreadId,
12969
+ relativePath: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(4096))
12970
+ });
12677
12971
  //#endregion
12678
12972
  Object.defineProperty(exports, "AGENT_CONTROL_ACTION_CAPABILITIES", {
12679
12973
  enumerable: true,
@@ -12819,6 +13113,30 @@ Object.defineProperty(exports, "AGENT_CONTROL_WS_METHODS", {
12819
13113
  return AGENT_CONTROL_WS_METHODS;
12820
13114
  }
12821
13115
  });
13116
+ Object.defineProperty(exports, "AcpRegistryAgentId", {
13117
+ enumerable: true,
13118
+ get: function() {
13119
+ return AcpRegistryAgentId;
13120
+ }
13121
+ });
13122
+ Object.defineProperty(exports, "AcpRegistryOperationError", {
13123
+ enumerable: true,
13124
+ get: function() {
13125
+ return AcpRegistryOperationError;
13126
+ }
13127
+ });
13128
+ Object.defineProperty(exports, "AcpRegistrySettings", {
13129
+ enumerable: true,
13130
+ get: function() {
13131
+ return AcpRegistrySettings;
13132
+ }
13133
+ });
13134
+ Object.defineProperty(exports, "AcpRegistryVersion", {
13135
+ enumerable: true,
13136
+ get: function() {
13137
+ return AcpRegistryVersion;
13138
+ }
13139
+ });
12822
13140
  Object.defineProperty(exports, "AgentControlActionKind", {
12823
13141
  enumerable: true,
12824
13142
  get: function() {
@@ -12921,6 +13239,12 @@ Object.defineProperty(exports, "AgentControlExternalWaitForTaskInput", {
12921
13239
  return AgentControlExternalWaitForTaskInput;
12922
13240
  }
12923
13241
  });
13242
+ Object.defineProperty(exports, "AgentControlInspectThreadInput", {
13243
+ enumerable: true,
13244
+ get: function() {
13245
+ return AgentControlInspectThreadInput;
13246
+ }
13247
+ });
12924
13248
  Object.defineProperty(exports, "AgentControlIntegrationId", {
12925
13249
  enumerable: true,
12926
13250
  get: function() {
@@ -13299,6 +13623,24 @@ Object.defineProperty(exports, "AgentControlProposalStatus", {
13299
13623
  return AgentControlProposalStatus;
13300
13624
  }
13301
13625
  });
13626
+ Object.defineProperty(exports, "AgentControlReadDiffInput", {
13627
+ enumerable: true,
13628
+ get: function() {
13629
+ return AgentControlReadDiffInput;
13630
+ }
13631
+ });
13632
+ Object.defineProperty(exports, "AgentControlReadProjectInput", {
13633
+ enumerable: true,
13634
+ get: function() {
13635
+ return AgentControlReadProjectInput;
13636
+ }
13637
+ });
13638
+ Object.defineProperty(exports, "AgentControlReadThreadFileInput", {
13639
+ enumerable: true,
13640
+ get: function() {
13641
+ return AgentControlReadThreadFileInput;
13642
+ }
13643
+ });
13302
13644
  Object.defineProperty(exports, "AgentControlRequestId", {
13303
13645
  enumerable: true,
13304
13646
  get: function() {
@@ -13323,6 +13665,18 @@ Object.defineProperty(exports, "AgentControlRpcError", {
13323
13665
  return AgentControlRpcError;
13324
13666
  }
13325
13667
  });
13668
+ Object.defineProperty(exports, "AgentControlSearchThreadsInput", {
13669
+ enumerable: true,
13670
+ get: function() {
13671
+ return AgentControlSearchThreadsInput;
13672
+ }
13673
+ });
13674
+ Object.defineProperty(exports, "AgentControlWaitThreadsInput", {
13675
+ enumerable: true,
13676
+ get: function() {
13677
+ return AgentControlWaitThreadsInput;
13678
+ }
13679
+ });
13326
13680
  Object.defineProperty(exports, "AgentTokenMode", {
13327
13681
  enumerable: true,
13328
13682
  get: function() {
@@ -13629,6 +13983,12 @@ Object.defineProperty(exports, "DEFAULT_TERMINAL_ID", {
13629
13983
  return DEFAULT_TERMINAL_ID;
13630
13984
  }
13631
13985
  });
13986
+ Object.defineProperty(exports, "DEFAULT_WORKTREE_BRANCH_PREFIX", {
13987
+ enumerable: true,
13988
+ get: function() {
13989
+ return DEFAULT_WORKTREE_BRANCH_PREFIX;
13990
+ }
13991
+ });
13632
13992
  Object.defineProperty(exports, "DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH", {
13633
13993
  enumerable: true,
13634
13994
  get: function() {
@@ -13689,12 +14049,114 @@ Object.defineProperty(exports, "DesktopNativeNodeClaimSignRequest", {
13689
14049
  return DesktopNativeNodeClaimSignRequest;
13690
14050
  }
13691
14051
  });
14052
+ Object.defineProperty(exports, "DeviceAvailability", {
14053
+ enumerable: true,
14054
+ get: function() {
14055
+ return DeviceAvailability;
14056
+ }
14057
+ });
14058
+ Object.defineProperty(exports, "DeviceBundleId", {
14059
+ enumerable: true,
14060
+ get: function() {
14061
+ return DeviceBundleId;
14062
+ }
14063
+ });
14064
+ Object.defineProperty(exports, "DeviceDescribeUiResult", {
14065
+ enumerable: true,
14066
+ get: function() {
14067
+ return DeviceDescribeUiResult;
14068
+ }
14069
+ });
14070
+ Object.defineProperty(exports, "DeviceDescriptor", {
14071
+ enumerable: true,
14072
+ get: function() {
14073
+ return DeviceDescriptor;
14074
+ }
14075
+ });
14076
+ Object.defineProperty(exports, "DeviceHardwareButton", {
14077
+ enumerable: true,
14078
+ get: function() {
14079
+ return DeviceHardwareButton;
14080
+ }
14081
+ });
14082
+ Object.defineProperty(exports, "DeviceInstallAppInput", {
14083
+ enumerable: true,
14084
+ get: function() {
14085
+ return DeviceInstallAppInput;
14086
+ }
14087
+ });
14088
+ Object.defineProperty(exports, "DeviceInstallAppResult", {
14089
+ enumerable: true,
14090
+ get: function() {
14091
+ return DeviceInstallAppResult;
14092
+ }
14093
+ });
14094
+ Object.defineProperty(exports, "DeviceKeyEventInput", {
14095
+ enumerable: true,
14096
+ get: function() {
14097
+ return DeviceKeyEventInput;
14098
+ }
14099
+ });
14100
+ Object.defineProperty(exports, "DeviceLaunchAppInput", {
14101
+ enumerable: true,
14102
+ get: function() {
14103
+ return DeviceLaunchAppInput;
14104
+ }
14105
+ });
14106
+ Object.defineProperty(exports, "DeviceLaunchAppResult", {
14107
+ enumerable: true,
14108
+ get: function() {
14109
+ return DeviceLaunchAppResult;
14110
+ }
14111
+ });
14112
+ Object.defineProperty(exports, "DeviceOpenUrlInput", {
14113
+ enumerable: true,
14114
+ get: function() {
14115
+ return DeviceOpenUrlInput;
14116
+ }
14117
+ });
13692
14118
  Object.defineProperty(exports, "DeviceRpcError", {
13693
14119
  enumerable: true,
13694
14120
  get: function() {
13695
14121
  return DeviceRpcError;
13696
14122
  }
13697
14123
  });
14124
+ Object.defineProperty(exports, "DeviceScreenshotResult", {
14125
+ enumerable: true,
14126
+ get: function() {
14127
+ return DeviceScreenshotResult;
14128
+ }
14129
+ });
14130
+ Object.defineProperty(exports, "DeviceStartRecordingResult", {
14131
+ enumerable: true,
14132
+ get: function() {
14133
+ return DeviceStartRecordingResult;
14134
+ }
14135
+ });
14136
+ Object.defineProperty(exports, "DeviceStopRecordingResult", {
14137
+ enumerable: true,
14138
+ get: function() {
14139
+ return DeviceStopRecordingResult;
14140
+ }
14141
+ });
14142
+ Object.defineProperty(exports, "DeviceSwipeInput", {
14143
+ enumerable: true,
14144
+ get: function() {
14145
+ return DeviceSwipeInput;
14146
+ }
14147
+ });
14148
+ Object.defineProperty(exports, "DeviceTestingInput", {
14149
+ enumerable: true,
14150
+ get: function() {
14151
+ return DeviceTestingInput;
14152
+ }
14153
+ });
14154
+ Object.defineProperty(exports, "DeviceTypeTextInput", {
14155
+ enumerable: true,
14156
+ get: function() {
14157
+ return DeviceTypeTextInput;
14158
+ }
14159
+ });
13698
14160
  Object.defineProperty(exports, "DeviceUdid", {
13699
14161
  enumerable: true,
13700
14162
  get: function() {
@@ -14163,6 +14625,12 @@ Object.defineProperty(exports, "OrchestrationThread", {
14163
14625
  return OrchestrationThread;
14164
14626
  }
14165
14627
  });
14628
+ Object.defineProperty(exports, "OrchestrationThreadActivity", {
14629
+ enumerable: true,
14630
+ get: function() {
14631
+ return OrchestrationThreadActivity;
14632
+ }
14633
+ });
14166
14634
  Object.defineProperty(exports, "OrchestrationThreadActivityTone", {
14167
14635
  enumerable: true,
14168
14636
  get: function() {
@@ -14187,6 +14655,12 @@ Object.defineProperty(exports, "OrchestrationWorktreeShell", {
14187
14655
  return OrchestrationWorktreeShell;
14188
14656
  }
14189
14657
  });
14658
+ Object.defineProperty(exports, "PROJECT_ICON_MAX_BYTES", {
14659
+ enumerable: true,
14660
+ get: function() {
14661
+ return PROJECT_ICON_MAX_BYTES;
14662
+ }
14663
+ });
14190
14664
  Object.defineProperty(exports, "PROJECT_READ_FILE_BINARY_MAX_BYTES", {
14191
14665
  enumerable: true,
14192
14666
  get: function() {
@@ -14283,6 +14757,12 @@ Object.defineProperty(exports, "ProjectReadFileError", {
14283
14757
  return ProjectReadFileError;
14284
14758
  }
14285
14759
  });
14760
+ Object.defineProperty(exports, "ProjectReadIconError", {
14761
+ enumerable: true,
14762
+ get: function() {
14763
+ return ProjectReadIconError;
14764
+ }
14765
+ });
14286
14766
  Object.defineProperty(exports, "ProjectScript", {
14287
14767
  enumerable: true,
14288
14768
  get: function() {
@@ -14997,36 +15477,12 @@ Object.defineProperty(exports, "WsRpcGroup", {
14997
15477
  return WsRpcGroup;
14998
15478
  }
14999
15479
  });
15000
- Object.defineProperty(exports, "collectUint8StreamText", {
15001
- enumerable: true,
15002
- get: function() {
15003
- return collectUint8StreamText;
15004
- }
15005
- });
15006
- Object.defineProperty(exports, "decodeJsonResult", {
15007
- enumerable: true,
15008
- get: function() {
15009
- return decodeJsonResult;
15010
- }
15011
- });
15012
15480
  Object.defineProperty(exports, "defaultInstanceIdForDriver", {
15013
15481
  enumerable: true,
15014
15482
  get: function() {
15015
15483
  return defaultInstanceIdForDriver;
15016
15484
  }
15017
15485
  });
15018
- Object.defineProperty(exports, "formatSchemaError", {
15019
- enumerable: true,
15020
- get: function() {
15021
- return formatSchemaError;
15022
- }
15023
- });
15024
- Object.defineProperty(exports, "fromLenientJson", {
15025
- enumerable: true,
15026
- get: function() {
15027
- return fromLenientJson;
15028
- }
15029
- });
15030
15486
  Object.defineProperty(exports, "isProviderDriverKind", {
15031
15487
  enumerable: true,
15032
15488
  get: function() {