ryco-cli 0.1.25 → 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 (299) hide show
  1. package/dist/{GrokDriver-CduUwiOH.mjs → AcpAdapter-BemMQNbj.mjs} +102 -604
  2. package/dist/{GrokDriver-D0jraOC_.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-COmd21c-.cjs → AzureDevOpsSourceControlProvider-B9N_8NJg.cjs} +14 -14
  8. package/dist/{AzureDevOpsSourceControlProvider-B_E0XXfD.mjs → AzureDevOpsSourceControlProvider-BcQO_CyW.mjs} +3 -3
  9. package/dist/{BitbucketSourceControlProvider-pUKsNXcg.mjs → BitbucketSourceControlProvider-BTUY2ZT8.mjs} +3 -3
  10. package/dist/{BitbucketSourceControlProvider-CD8IvXQK.cjs → BitbucketSourceControlProvider-C9WuwvY2.cjs} +14 -14
  11. package/dist/{BunPTY-TbHbSc8S.mjs → BunPTY-DdnqQAdw.mjs} +1 -1
  12. package/dist/{ClaudeDriver-Dry5uJfX.cjs → ClaudeDriver-BSTxNNGO.cjs} +162 -126
  13. package/dist/{ClaudeDriver-CGifBixr.mjs → ClaudeDriver-Csnp78qR.mjs} +129 -93
  14. package/dist/{CodexDriver-BzR8gA8w.cjs → CodexDriver-BK4HVNV4.cjs} +145 -60
  15. package/dist/{CodexDriver-V4CL9APE.mjs → CodexDriver-fwcV84hX.mjs} +99 -14
  16. package/dist/{CodexTextGeneration-DTrSzY-I.cjs → CodexTextGeneration-Y2GSS7f1.cjs} +145 -99
  17. package/dist/{CodexTextGeneration-DoCidwvI.mjs → CodexTextGeneration-_4aT5BHa.mjs} +141 -95
  18. package/dist/{CopilotDriver-Dt13X60f.mjs → CopilotDriver-B12ZJ-L_.mjs} +69 -7
  19. package/dist/{CopilotDriver-rLcA8PSN.cjs → CopilotDriver-C7IyIwVW.cjs} +98 -36
  20. package/dist/{CursorDriver-C3s-8s9F.cjs → CursorDriver-BWmCfJ-w.cjs} +38 -32
  21. package/dist/{CursorDriver-HIPUs7cz.mjs → CursorDriver-C_p0v-ul.mjs} +12 -6
  22. package/dist/{ForgejoSourceControlProvider-JgiyrMqp.cjs → ForgejoSourceControlProvider-DTRrllIH.cjs} +14 -14
  23. package/dist/{ForgejoSourceControlProvider-CmvOAzEG.mjs → ForgejoSourceControlProvider-DmOGJEaJ.mjs} +3 -3
  24. package/dist/{GitHubSourceControlProvider-CItCpOcC.cjs → GitHubSourceControlProvider-D-YV8WP6.cjs} +16 -17
  25. package/dist/{GitHubSourceControlProvider-BYuvbcBf.mjs → GitHubSourceControlProvider-sQGcwnr3.mjs} +6 -7
  26. package/dist/{GitLabSourceControlProvider-CMce22nU.cjs → GitLabSourceControlProvider-kKYYnpER.cjs} +14 -14
  27. package/dist/{GitLabSourceControlProvider-DZzEaVSi.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-DxGpgtDS.cjs → OpenCodeDriver-CckbFEQJ.cjs} +459 -141
  34. package/dist/{OpenCodeDriver-Bz_uJdMA.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-ZtwPWoxE.mjs → SourceControlProviderDiscoveryCatalog-BVvq7liJ.mjs} +2 -1
  38. package/dist/{SourceControlProviderDiscoveryCatalog-Dm_lhrhv.cjs → SourceControlProviderDiscoveryCatalog-CyUhKJLD.cjs} +6 -5
  39. package/dist/bin.cjs +12537 -3029
  40. package/dist/bin.mjs +10444 -965
  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-DPqb09B0.js → AnimatedHeight-CbIEyMLg.js} +1 -1
  48. package/dist/client/assets/AppearanceSettings-B2LsGKmL.js +1 -0
  49. package/dist/client/assets/{BranchToolbar.logic-CHRK3hDt.js → BranchToolbar.logic-BqkvYNPk.js} +1 -1
  50. package/dist/client/assets/{BrowserPanel-2Xu08il5.js → BrowserPanel-C_C4zjrh.js} +1 -1
  51. package/dist/client/assets/ChatRightPanel-ibiQ79jI.js +195 -0
  52. package/dist/client/assets/{ChatThreadRouteView-CNww3i2J.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-BJs7jqR0.js → ComputerUseSettings-DM17BYP5.js} +1 -1
  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-BmrqOKMe.js → DiagnosticsSettings-Bq2l-C4J.js} +2 -2
  59. package/dist/client/assets/{DialogHandle-pelzaaiH.js → DialogHandle-DuKTleCw.js} +1 -1
  60. package/dist/client/assets/{DialogPopup-BLM0vN4N.js → DialogPopup-Dt7DzTWv.js} +1 -1
  61. package/dist/client/assets/DialogRoot-DRyawL6l.js +1 -0
  62. package/dist/client/assets/{DialogTitle-BvIjMtMm.js → DialogTitle-BaxfPC6e.js} +1 -1
  63. package/dist/client/assets/DialogTrigger-D0PJ8bRT.js +1 -0
  64. package/dist/client/assets/{DialogViewport-Cz0OadGI.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-3rlDV7lT.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-CEVIdyfP.js → GlassSurface-CBIEgwt1.js} +1 -1
  85. package/dist/client/assets/HKscs-B5-H-CXbBbq6g.bcmap +0 -0
  86. package/dist/client/assets/{HostedConnectionControls-r9cyZPyF.js → HostedConnectionControls-DOpTlXzE.js} +1 -1
  87. package/dist/client/assets/{HostedHubRoot-BkfafJ5x.js → HostedHubRoot-C1jq8cM6.js} +2 -2
  88. package/dist/client/assets/{HostedNativeAuthorizationRoute-CqHuW853.js → HostedNativeAuthorizationRoute-Clw1DHQW.js} +2 -2
  89. package/dist/client/assets/{HostedNodeRenameDialog-C7m-nvTj.js → HostedNodeRenameDialog-Bd_Qu_ek.js} +1 -1
  90. package/dist/client/assets/{HostedRelayTrustNotice-DNZQyAX0.js → HostedRelayTrustNotice-CGcBpT9m.js} +1 -1
  91. package/dist/client/assets/{IntegrationsSettingsPanel-hul3ysgL.js → IntegrationsSettingsPanel-J0qODRW-.js} +2 -2
  92. package/dist/client/assets/KSC-Johab-H-CGtV3MPT.bcmap +0 -0
  93. package/dist/client/assets/{KeybindingsSettings-Cme6omBM.js → KeybindingsSettings-CwxIHsFy.js} +1 -1
  94. package/dist/client/assets/{LazyBrowserPanel-COJFwNK7.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-CwT5nEW9.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-BBnGXVkR.js → PhoneGetAppInterstitial-0EOj-PbW.js} +1 -1
  105. package/dist/client/assets/PhoneHome-Cg7l3b1T.js +1 -0
  106. package/dist/client/assets/{PhoneSettingsSurface-DdVCndyt.js → PhoneSettingsSurface-BXAUtZ9M.js} +2 -2
  107. package/dist/client/assets/ProvidersSettingsPanel-BaJgypXu.js +1 -0
  108. package/dist/client/assets/{QuitShortcutFeedback-mF7X0WMD.js → QuitShortcutFeedback-DgJFEd6b.js} +1 -1
  109. package/dist/client/assets/{RedactedSensitiveText-DovqFcmM.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-d-rVlbeN.js → SettingsPanels.editor-DJRckD71.js} +1 -1
  115. package/dist/client/assets/SourceControlSettings-IpoZrjt5.js +1 -0
  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-DaLrSTn9.js → ThreadTerminalDrawer-BEv83xrk.js} +3 -3
  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-bn_fBQGf.js → activity-BmRcsTyL.js} +1 -1
  143. package/dist/client/assets/{alert-BmLJh6DH.js → alert-C5UiA2xk.js} +1 -1
  144. package/dist/client/assets/{appChrome-Dy57Ve9N.js → appChrome-CsZ2ylc1.js} +1 -1
  145. package/dist/client/assets/{arrow-left-pzj1cbX3.js → arrow-left-CSz-z20j.js} +1 -1
  146. package/dist/client/assets/{arrow-right-BW5jU-vo.js → arrow-right-DEi91hao.js} +1 -1
  147. package/dist/client/assets/{arrow-up-right-AfC5AaSO.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-CsKkSRlb.js → bot-SC4UGZyw.js} +1 -1
  151. package/dist/client/assets/{capabilities-DskyVNd2.js → capabilities-BCkDNe83.js} +1 -1
  152. package/dist/client/assets/{chart-column-DhvWXIiH.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-fJnfdl4H.js → clipboard-copy-D74Wvnon.js} +1 -1
  155. package/dist/client/assets/{data-list-_E-Al1sf.js → data-list-CZ4Utnfl.js} +1 -1
  156. package/dist/client/assets/{desktopWorkspace-DycXKuMm.js → desktopWorkspace-DVfn9ZT_.js} +1 -1
  157. package/dist/client/assets/{download-CLQzE1di.js → download-Dio40wIJ.js} +1 -1
  158. package/dist/client/assets/editorPreferences-2dG4uloq.js +1 -0
  159. package/dist/client/assets/{empty-YXFtCUDN.js → empty-6LExKYgQ.js} +1 -1
  160. package/dist/client/assets/{group-DOCkUmuY.js → group-D_mu0Kiq.js} +1 -1
  161. package/dist/client/assets/{hostedConnectionCoordinator-JZ1dLx4v.js → hostedConnectionCoordinator-YkDLnATK.js} +1 -1
  162. package/dist/client/assets/{hubRoutes-C2S5of9_.js → hubRoutes-D3quWvU7.js} +1 -1
  163. package/dist/client/assets/{index-CvRFRkBK.js → index-7MTgf8YI.js} +2 -2
  164. package/dist/client/assets/{input-C2xv8mMt.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-CYcb9lAa.js → key-round-C-oUSjpF.js} +1 -1
  168. package/dist/client/assets/{layers-CGlOWYxu.js → layers-Co2a5C1k.js} +1 -1
  169. package/dist/client/assets/{log-out-CZW2EpNJ.js → log-out-pWFhbvwr.js} +1 -1
  170. package/dist/client/assets/{logging-BpmZOfmu.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-CQOuNfSO.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-CPVy9wwV.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-DoYEUZrn.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-BPqDlVMn.js → qr-code-BU354aLS.js} +1 -1
  183. package/dist/client/assets/{qr-code-C6BVTc4V.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-B5Cz1z3e.js → refresh-cw-CY5BeUEr.js} +1 -1
  187. package/dist/client/assets/runtime-BKneT96Q.js +17 -0
  188. package/dist/client/assets/{save-C7zM6ey6.js → save-DIHMjHXd.js} +1 -1
  189. package/dist/client/assets/{scroll-area-5OU_pvTW.js → scroll-area-Cq4SX9P8.js} +1 -1
  190. package/dist/client/assets/{scrollEdges-qnEXfIOg.js → scrollEdges-BaWRjrac.js} +1 -1
  191. package/dist/client/assets/{separator-B5HfRiaO.js → separator-BN705fC0.js} +1 -1
  192. package/dist/client/assets/{settingsLayout-CfKq88KD.js → settingsLayout-DQERzSce.js} +1 -1
  193. package/dist/client/assets/{sheet-B9gQDy_I.js → sheet-CFvRY7T6.js} +1 -1
  194. package/dist/client/assets/{shield-rdjnBE2Q.js → shield-Zn2kFj5M.js} +1 -1
  195. package/dist/client/assets/{shield-alert-7yBlEyOs.js → shield-alert-DMB5gKiC.js} +1 -1
  196. package/dist/client/assets/{shield-check-CnKgVJ0F.js → shield-check-DyNf6Bky.js} +1 -1
  197. package/dist/client/assets/{sidebar-BdvL1Pbj.js → sidebar-Bsh64sLK.js} +1 -1
  198. package/dist/client/assets/sidebarProjectFolders-CQbpO9ZI.js +4 -0
  199. package/dist/client/assets/{sidebarStatusText-CZKsUFBD.js → sidebarStatusText-DCo-whyK.js} +1 -1
  200. package/dist/client/assets/{skeleton-CoyLqyaB.js → skeleton-DEuowfjY.js} +1 -1
  201. package/dist/client/assets/{smartphone-CBgpMHXR.js → smartphone-BLWJ7C9-.js} +1 -1
  202. package/dist/client/assets/{sparkles-w-UZXQx1.js → sparkles-DAXDXp_s.js} +1 -1
  203. package/dist/client/assets/src-DPpEXU6w.js +14 -0
  204. package/dist/client/assets/{star-BZ-RtSFD.js → star-CjQxHYbD.js} +1 -1
  205. package/dist/client/assets/switch-LahPAvrd.js +48 -0
  206. package/dist/client/assets/{toggle-DVGrNHjq.js → toggle-45lsrmyi.js} +1 -1
  207. package/dist/client/assets/{toggle-group-CNDOfNhH.js → toggle-group-D5pl24ED.js} +1 -1
  208. package/dist/client/assets/{tokenModePresentation-CQNdC9CW.js → tokenModePresentation-CPUsUGY4.js} +1 -1
  209. package/dist/client/assets/tooltip-B8-izeMo.js +1 -0
  210. package/dist/client/assets/{unplug-CRUwFNFw.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-DStbWN3z.js → user-round-DEWIPpNs.js} +1 -1
  223. package/dist/client/assets/{vscode-icons-BihBo3tb.js → vscode-icons-DTH-Vj-_.js} +1 -1
  224. package/dist/client/assets/workspaceMetadataProjection-BnpxBe8S.js +1 -0
  225. package/dist/client/assets/{wrench-BBIgGxy9.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-CwYhl_P-.mjs → makeManagedServerProvider-BINne1KE.mjs} +3 -38
  234. package/dist/{makeManagedServerProvider-Dy2Ny9tk.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-whblCEfg.cjs → src-BlzIcnVG.cjs} +522 -116
  244. package/dist/{collectUint8StreamText-CE1Re5Ij.mjs → src-DtEOcXdl.mjs} +350 -94
  245. package/package.json +1 -1
  246. package/dist/AcpNativeLogging-CA6XYzIS.cjs +0 -5130
  247. package/dist/AcpNativeLogging-D4-VoHrq.mjs +0 -5015
  248. package/dist/client/assets/AccountSettings-Bv57-JYy.js +0 -1
  249. package/dist/client/assets/AiFocusSettings-DCPHmJpA.js +0 -1
  250. package/dist/client/assets/AppearanceSettings-EmTrtb_U.js +0 -1
  251. package/dist/client/assets/ChatRightPanel-C1VD6GCV.js +0 -194
  252. package/dist/client/assets/CommandPaletteDialog-B_f3fKp7.js +0 -1
  253. package/dist/client/assets/CompositeRoot-B40iitmH.js +0 -1
  254. package/dist/client/assets/ConnectionsSettings-B9nfvgLG.js +0 -7
  255. package/dist/client/assets/ContextHandoffEndpointLabel-BSQOArMR.js +0 -4
  256. package/dist/client/assets/DialogRoot-CY6ZzEUS.js +0 -1
  257. package/dist/client/assets/DialogTrigger-CIeVAA-a.js +0 -1
  258. package/dist/client/assets/DraftChatThreadRouteView-DMIGMESb.js +0 -1
  259. package/dist/client/assets/McpServersSettings-CPeNF8_u.js +0 -6
  260. package/dist/client/assets/MobileSheet-BZo-RAfm.js +0 -1
  261. package/dist/client/assets/OpinionatedPluginsSettings-D8A1CbMG.js +0 -1
  262. package/dist/client/assets/PhoneHome-BTKOPVjw.js +0 -1
  263. package/dist/client/assets/ProvidersSettingsPanel-ldDCPVIY.js +0 -1
  264. package/dist/client/assets/RootAppShell-CzmEWO9w.js +0 -7
  265. package/dist/client/assets/Separator-BhAVTIOc.js +0 -1
  266. package/dist/client/assets/SettingsDialog-ByXgBN0U.js +0 -2
  267. package/dist/client/assets/SettingsPanels-Bgf4vkrJ.js +0 -3
  268. package/dist/client/assets/SourceControlSettings-dKw0FaN1.js +0 -1
  269. package/dist/client/assets/StatisticsPage-C2RuqDIK.js +0 -1
  270. package/dist/client/assets/StatisticsPanel-DqoXnrhQ.js +0 -1
  271. package/dist/client/assets/StatisticsSettingsLink-C_f31sb4.js +0 -1
  272. package/dist/client/assets/ThreadWorkspacePanel-BvRZIxZQ.js +0 -2073
  273. package/dist/client/assets/authorization-7xVVtCBu.js +0 -1
  274. package/dist/client/assets/badge-DnBuGHGL.js +0 -1
  275. package/dist/client/assets/chevron-right-CITtTwME.js +0 -1
  276. package/dist/client/assets/editorPreferences-Bg624RVT.js +0 -1
  277. package/dist/client/assets/kbd-4-4mGdIa.js +0 -1
  278. package/dist/client/assets/main-CC-U8LrA.css +0 -2
  279. package/dist/client/assets/main-CzDOnLFw.js +0 -9
  280. package/dist/client/assets/primary-CjhRI8fe.js +0 -2
  281. package/dist/client/assets/providerDriverMeta-BVHpFupf.js +0 -1
  282. package/dist/client/assets/providerModels-BsybzP4P.js +0 -1
  283. package/dist/client/assets/radio-group-C8qudOQH.js +0 -2
  284. package/dist/client/assets/runtime-Bxg7k81u.js +0 -17
  285. package/dist/client/assets/sidebarProjectFolders-BH8XBqNe.js +0 -4
  286. package/dist/client/assets/src-Bi-5Nw9C.js +0 -14
  287. package/dist/client/assets/switch-CEJEmLe7.js +0 -48
  288. package/dist/client/assets/tooltip-B7Z4qomY.js +0 -1
  289. package/dist/client/assets/useAppSidebarCollapsed-wq6czkNJ.js +0 -1
  290. package/dist/client/assets/useBaseUiId-OYaGjnkh.js +0 -1
  291. package/dist/client/assets/useLabelableId-VMc-yITe.js +0 -1
  292. package/dist/client/assets/useNavigate-DVi0rBlf.js +0 -1
  293. package/dist/client/assets/usePhoneThreadActions-CwwHikjB.js +0 -1
  294. package/dist/client/assets/usePopupViewport-BcSIK_ph.js +0 -1
  295. package/dist/client/assets/useScrollLock-BQf9VYJT.js +0 -1
  296. package/dist/client/assets/useStatistics-DczKdEfy.js +0 -55
  297. package/dist/client/assets/useTriggerFocusGuards-DjP-D0_a.js +0 -1
  298. package/dist/client/assets/useValueChanged-CRwCkFdy.js +0 -1
  299. package/dist/client/assets/workspaceMetadataProjection-j3BGlVOB.js +0 -1
@@ -1,26 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
4
- const require_collectUint8StreamText = require("./collectUint8StreamText-whblCEfg.cjs");
5
- const require_Metrics = require("./Metrics-Bcb9vCAe.cjs");
4
+ const require_src = require("./src-BlzIcnVG.cjs");
5
+ const require_Metrics = require("./Metrics-DCKbdeoH.cjs");
6
6
  const require_bin = require("./bin.cjs");
7
- const require_makeManagedServerProvider = require("./makeManagedServerProvider-Dy2Ny9tk.cjs");
8
- const require_ProviderDriver = require("./ProviderDriver--rNeAi3B.cjs");
9
- const require_AcpNativeLogging = require("./AcpNativeLogging-CA6XYzIS.cjs");
7
+ const require_AcpNativeLogging = require("./AcpNativeLogging-DZPZNoju.cjs");
8
+ const require_runtimeSession = require("./runtimeSession-Bj0OUcNJ.cjs");
10
9
  let effect_Effect = require("effect/Effect");
11
10
  effect_Effect = require_rolldown_runtime.__toESM(effect_Effect, 1);
12
- let effect_Layer = require("effect/Layer");
13
- effect_Layer = require_rolldown_runtime.__toESM(effect_Layer, 1);
14
11
  let effect_Schema = require("effect/Schema");
15
12
  effect_Schema = require_rolldown_runtime.__toESM(effect_Schema, 1);
16
- let effect_unstable_http = require("effect/unstable/http");
17
13
  let effect_unstable_process = require("effect/unstable/process");
18
14
  let effect_Semaphore = require("effect/Semaphore");
19
15
  effect_Semaphore = require_rolldown_runtime.__toESM(effect_Semaphore, 1);
20
16
  let effect_Scope = require("effect/Scope");
21
17
  effect_Scope = require_rolldown_runtime.__toESM(effect_Scope, 1);
22
- let effect_Cause = require("effect/Cause");
23
- effect_Cause = require_rolldown_runtime.__toESM(effect_Cause, 1);
24
18
  let effect_Deferred = require("effect/Deferred");
25
19
  effect_Deferred = require_rolldown_runtime.__toESM(effect_Deferred, 1);
26
20
  let effect_Exit = require("effect/Exit");
@@ -31,22 +25,28 @@ let effect_Ref = require("effect/Ref");
31
25
  effect_Ref = require_rolldown_runtime.__toESM(effect_Ref, 1);
32
26
  let effect_Stream = require("effect/Stream");
33
27
  effect_Stream = require_rolldown_runtime.__toESM(effect_Stream, 1);
34
- let effect_Duration = require("effect/Duration");
35
- effect_Duration = require_rolldown_runtime.__toESM(effect_Duration, 1);
36
28
  let effect_Fiber = require("effect/Fiber");
37
29
  effect_Fiber = require_rolldown_runtime.__toESM(effect_Fiber, 1);
30
+ let effect_DateTime = require("effect/DateTime");
31
+ effect_DateTime = require_rolldown_runtime.__toESM(effect_DateTime, 1);
38
32
  let effect_FileSystem = require("effect/FileSystem");
39
33
  effect_FileSystem = require_rolldown_runtime.__toESM(effect_FileSystem, 1);
40
34
  let effect_Path = require("effect/Path");
41
35
  effect_Path = require_rolldown_runtime.__toESM(effect_Path, 1);
42
- let effect_DateTime = require("effect/DateTime");
43
- effect_DateTime = require_rolldown_runtime.__toESM(effect_DateTime, 1);
44
36
  let effect_PubSub = require("effect/PubSub");
45
37
  effect_PubSub = require_rolldown_runtime.__toESM(effect_PubSub, 1);
46
38
  let effect_SynchronizedRef = require("effect/SynchronizedRef");
47
39
  effect_SynchronizedRef = require_rolldown_runtime.__toESM(effect_SynchronizedRef, 1);
48
- let effect_Result = require("effect/Result");
49
- effect_Result = require_rolldown_runtime.__toESM(effect_Result, 1);
40
+ //#region src/provider/acp/AcpModelSelection.ts
41
+ function currentAcpModelIdFromSessionSetup(sessionSetupResult) {
42
+ const option = sessionSetupResult.configOptions?.find((entry) => entry.category === "model" && entry.type === "select");
43
+ return sessionSetupResult.models?.currentModelId?.trim() || (typeof option?.currentValue === "string" ? option.currentValue : void 0);
44
+ }
45
+ function applyAcpModelSelection(input) {
46
+ if (!(input.requestedModelId !== void 0 && input.requestedModelId !== input.currentModelId)) return effect_Effect.succeed(input.currentModelId);
47
+ return input.runtime.setSessionModel(input.requestedModelId).pipe(effect_Effect.mapError(input.mapError), effect_Effect.as(input.requestedModelId));
48
+ }
49
+ //#endregion
50
50
  //#region src/provider/acp/XAiAcpExtension.ts
51
51
  const XAiPromptCompleteNotification = effect_Schema.Struct({
52
52
  sessionId: effect_Schema.String,
@@ -320,228 +320,9 @@ function normalizeXAiStopReason(value) {
320
320
  }
321
321
  }
322
322
  //#endregion
323
- //#region src/provider/acp/GrokAcpSupport.ts
324
- const GROK_API_KEY_ENV = "XAI_API_KEY";
325
- const GROK_OAUTH2_REFERRER_ENV = "GROK_OAUTH2_REFERRER";
326
- const RYCO_OAUTH_REFERRER = "ryco";
327
- const GROK_AUTH_METHOD_API_KEY = "xai.api_key";
328
- const GROK_AUTH_METHOD_CACHED_TOKEN = "cached_token";
329
- const GROK_DRIVER_KIND = require_collectUint8StreamText.ProviderDriverKind.make("grok");
330
- function buildGrokAcpSpawnInput(grokSettings, cwd, environment) {
331
- return {
332
- command: grokSettings?.binaryPath || "grok",
333
- args: ["agent", "stdio"],
334
- cwd,
335
- env: {
336
- ...environment,
337
- [GROK_OAUTH2_REFERRER_ENV]: RYCO_OAUTH_REFERRER
338
- }
339
- };
340
- }
341
- function resolveGrokAuthMethodId(environment) {
342
- return environment?.[GROK_API_KEY_ENV]?.trim() ? GROK_AUTH_METHOD_API_KEY : GROK_AUTH_METHOD_CACHED_TOKEN;
343
- }
344
- const makeGrokAcpRuntime = (input) => effect_Effect.gen(function* () {
345
- const acpContext = yield* effect_Layer.build(require_AcpNativeLogging.AcpSessionRuntime.layer({
346
- ...input,
347
- spawn: buildGrokAcpSpawnInput(input.grokSettings, input.cwd, input.environment),
348
- authMethodId: resolveGrokAuthMethodId(input.environment)
349
- }).pipe(effect_Layer.provide(effect_Layer.succeed(effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner, input.childProcessSpawner))));
350
- const runtime = yield* effect_Effect.service(require_AcpNativeLogging.AcpSessionRuntime).pipe(effect_Effect.provide(acpContext));
351
- return yield* makeXAiPromptCompletionRuntime(runtime);
352
- });
353
- function resolveGrokAcpBaseModelId(model) {
354
- const trimmed = model?.trim();
355
- const base = trimmed && trimmed.length > 0 ? trimmed : "grok-build";
356
- return require_bin.normalizeModelSlug(base, GROK_DRIVER_KIND) ?? "grok-build";
357
- }
358
- function currentGrokModelIdFromSessionSetup(sessionSetupResult) {
359
- return sessionSetupResult.models?.currentModelId?.trim() || void 0;
360
- }
361
- function applyGrokAcpModelSelection(input) {
362
- if (!(input.requestedModelId !== void 0 && input.requestedModelId !== input.currentModelId)) return effect_Effect.succeed(input.currentModelId);
363
- return input.runtime.setSessionModel(input.requestedModelId).pipe(effect_Effect.mapError(input.mapError), effect_Effect.as(input.requestedModelId));
364
- }
365
- //#endregion
366
- //#region src/textGeneration/GrokTextGeneration.ts
367
- const GROK_TIMEOUT_MS = 18e4;
368
- function mapGrokAcpError(operation, detail, cause) {
369
- return new require_collectUint8StreamText.TextGenerationError({
370
- operation,
371
- detail,
372
- ...cause !== void 0 ? { cause } : {}
373
- });
374
- }
375
- function isTextGenerationError(error) {
376
- return typeof error === "object" && error !== null && "_tag" in error && error._tag === "TextGenerationError";
377
- }
378
- const makeGrokTextGeneration = effect_Effect.fn("makeGrokTextGeneration")(function* (grokSettings, environment = process.env) {
379
- const commandSpawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
380
- const runGrokJson = ({ operation, cwd, prompt, outputSchemaJson, modelSelection }) => effect_Effect.gen(function* () {
381
- const resolvedModel = resolveGrokAcpBaseModelId(modelSelection.model);
382
- const outputRef = yield* effect_Ref.make("");
383
- const runtime = yield* makeGrokAcpRuntime({
384
- grokSettings,
385
- environment,
386
- childProcessSpawner: commandSpawner,
387
- cwd,
388
- clientInfo: {
389
- name: "ryco-git-text",
390
- version: "0.0.0"
391
- }
392
- });
393
- yield* runtime.handleSessionUpdate((notification) => {
394
- const update = notification.update;
395
- if (update.sessionUpdate !== "agent_message_chunk") return effect_Effect.void;
396
- const content = update.content;
397
- if (content.type !== "text") return effect_Effect.void;
398
- return effect_Ref.update(outputRef, (current) => current + content.text);
399
- });
400
- const promptResult = yield* effect_Effect.gen(function* () {
401
- const started = yield* runtime.start();
402
- yield* applyGrokAcpModelSelection({
403
- runtime,
404
- currentModelId: currentGrokModelIdFromSessionSetup(started.sessionSetupResult),
405
- requestedModelId: resolvedModel,
406
- mapError: (cause) => mapGrokAcpError(operation, "Failed to set Grok ACP base model for text generation.", cause)
407
- });
408
- return yield* runtime.prompt({ prompt: [{
409
- type: "text",
410
- text: prompt
411
- }] });
412
- }).pipe(effect_Effect.timeoutOption(GROK_TIMEOUT_MS), effect_Effect.flatMap(effect_Option.match({
413
- onNone: () => effect_Effect.fail(new require_collectUint8StreamText.TextGenerationError({
414
- operation,
415
- detail: "Grok ACP request timed out."
416
- })),
417
- onSome: (value) => effect_Effect.succeed(value)
418
- })), effect_Effect.mapError((cause) => isTextGenerationError(cause) ? cause : mapGrokAcpError(operation, "Grok ACP request failed.", cause)));
419
- const trimmed = (yield* effect_Ref.get(outputRef)).trim();
420
- if (!trimmed) return yield* new require_collectUint8StreamText.TextGenerationError({
421
- operation,
422
- detail: promptResult.stopReason === "cancelled" ? "Grok ACP request was cancelled." : "Grok Agent returned empty output."
423
- });
424
- return yield* effect_Schema.decodeEffect(effect_Schema.fromJsonString(outputSchemaJson))(require_bin.extractJsonObject(trimmed)).pipe(effect_Effect.catchTag("SchemaError", (cause) => effect_Effect.fail(new require_collectUint8StreamText.TextGenerationError({
425
- operation,
426
- detail: "Grok Agent returned invalid structured output.",
427
- cause
428
- }))));
429
- }).pipe(effect_Effect.mapError((cause) => isTextGenerationError(cause) ? cause : mapGrokAcpError(operation, "Grok ACP text generation failed.", cause)), effect_Effect.scoped);
430
- return {
431
- generateCommitMessage: effect_Effect.fn("GrokTextGeneration.generateCommitMessage")(function* (input) {
432
- const { prompt, outputSchema } = require_bin.buildCommitMessagePrompt({
433
- branch: input.branch,
434
- stagedSummary: input.stagedSummary,
435
- stagedPatch: input.stagedPatch,
436
- includeBranch: input.includeBranch === true
437
- });
438
- const generated = yield* runGrokJson({
439
- operation: "generateCommitMessage",
440
- cwd: input.cwd,
441
- prompt,
442
- outputSchemaJson: outputSchema,
443
- modelSelection: input.modelSelection
444
- });
445
- return {
446
- subject: require_bin.sanitizeCommitSubject(generated.subject),
447
- body: generated.body.trim(),
448
- ..."branch" in generated && typeof generated.branch === "string" ? { branch: require_Metrics.sanitizeFeatureBranchName(generated.branch) } : {}
449
- };
450
- }),
451
- generatePrContent: effect_Effect.fn("GrokTextGeneration.generatePrContent")(function* (input) {
452
- const { prompt, outputSchema } = require_bin.buildPrContentPrompt({
453
- baseBranch: input.baseBranch,
454
- headBranch: input.headBranch,
455
- commitSummary: input.commitSummary,
456
- diffSummary: input.diffSummary,
457
- diffPatch: input.diffPatch
458
- });
459
- const generated = yield* runGrokJson({
460
- operation: "generatePrContent",
461
- cwd: input.cwd,
462
- prompt,
463
- outputSchemaJson: outputSchema,
464
- modelSelection: input.modelSelection
465
- });
466
- return {
467
- title: require_bin.sanitizePrTitle(generated.title),
468
- body: generated.body.trim()
469
- };
470
- }),
471
- generateBranchName: effect_Effect.fn("GrokTextGeneration.generateBranchName")(function* (input) {
472
- const { prompt, outputSchema } = require_bin.buildBranchNamePrompt({
473
- message: input.message,
474
- attachments: input.attachments
475
- });
476
- const generated = yield* runGrokJson({
477
- operation: "generateBranchName",
478
- cwd: input.cwd,
479
- prompt,
480
- outputSchemaJson: outputSchema,
481
- modelSelection: input.modelSelection
482
- });
483
- return { branch: require_Metrics.sanitizeBranchFragment(generated.branch) };
484
- }),
485
- generateThreadTitle: effect_Effect.fn("GrokTextGeneration.generateThreadTitle")(function* (input) {
486
- const { prompt, outputSchema } = require_bin.buildThreadTitlePrompt({
487
- message: input.message,
488
- attachments: input.attachments
489
- });
490
- const generated = yield* runGrokJson({
491
- operation: "generateThreadTitle",
492
- cwd: input.cwd,
493
- prompt,
494
- outputSchemaJson: outputSchema,
495
- modelSelection: input.modelSelection
496
- });
497
- return { title: require_bin.sanitizeThreadTitle(generated.title) };
498
- }),
499
- generateIssueContent: effect_Effect.fn("GrokTextGeneration.generateIssueContent")(function* (input) {
500
- if (input.mode === "polish") {
501
- const { prompt, outputSchema } = require_bin.buildIssueContentPolishPrompt({
502
- rough: input.rough,
503
- ...input.currentTitle ? { currentTitle: input.currentTitle } : {},
504
- ...input.customInstructions ? { customInstructions: input.customInstructions } : {}
505
- });
506
- const decoded = yield* runGrokJson({
507
- operation: "generateIssueContent",
508
- cwd: input.cwd,
509
- prompt,
510
- outputSchemaJson: outputSchema,
511
- modelSelection: input.modelSelection
512
- });
513
- return {
514
- title: decoded.title.trim(),
515
- body: decoded.body.trim()
516
- };
517
- }
518
- const { prompt, outputSchema } = require_bin.buildIssueContentTitlePrompt({ body: input.body });
519
- return { title: (yield* runGrokJson({
520
- operation: "generateIssueContent",
521
- cwd: input.cwd,
522
- prompt,
523
- outputSchemaJson: outputSchema,
524
- modelSelection: input.modelSelection
525
- })).title.trim() };
526
- }),
527
- rankInboxThreads: effect_Effect.fn("GrokTextGeneration.rankInboxThreads")(function* (input) {
528
- const { prompt, outputSchema } = require_bin.buildThreadPriorityPrompt({ serializedCandidates: input.chunk.serializedCandidates });
529
- const generated = yield* runGrokJson({
530
- operation: "rankInboxThreads",
531
- cwd: input.cwd,
532
- prompt,
533
- outputSchemaJson: outputSchema,
534
- modelSelection: input.modelSelection
535
- });
536
- return yield* require_bin.validateRankInboxThreadsResult(input, generated.rankings);
537
- })
538
- };
539
- });
540
- //#endregion
541
- //#region src/provider/Layers/GrokAdapter.ts
323
+ //#region src/provider/Layers/AcpAdapter.ts
542
324
  const encodeUnknownJsonStringExit = effect_Schema.encodeUnknownExit(effect_Schema.fromJsonString(effect_Schema.Unknown));
543
- const PROVIDER$1 = require_collectUint8StreamText.ProviderDriverKind.make("grok");
544
- const GROK_RESUME_VERSION = 1;
325
+ const ACP_RESUME_VERSION = 1;
545
326
  function encodeJsonStringForDiagnostics(input) {
546
327
  const result = encodeUnknownJsonStringExit(input);
547
328
  return effect_Exit.isSuccess(result) ? result.value : void 0;
@@ -555,9 +336,9 @@ function settlePendingUserInputsAsCancelled(pendingUserInputs) {
555
336
  function isRecord(value) {
556
337
  return typeof value === "object" && value !== null && !Array.isArray(value);
557
338
  }
558
- function parseGrokResume(raw) {
339
+ function parseAcpResume(raw) {
559
340
  if (!isRecord(raw)) return void 0;
560
- if (raw.schemaVersion !== GROK_RESUME_VERSION) return void 0;
341
+ if (raw.schemaVersion !== ACP_RESUME_VERSION) return void 0;
561
342
  if (typeof raw.sessionId !== "string" || !raw.sessionId.trim()) return void 0;
562
343
  return { sessionId: raw.sessionId.trim() };
563
344
  }
@@ -568,9 +349,11 @@ function selectPermissionOptionId(request, decision) {
568
349
  function selectAutoApprovedPermissionOption(request) {
569
350
  return selectPermissionOptionId(request, "acceptForSession") ?? selectPermissionOptionId(request, "accept");
570
351
  }
571
- function makeGrokAdapter(grokSettings, options) {
352
+ function makeAcpAdapter(options) {
353
+ const PROVIDER = options.provider;
354
+ const normalizeModel = options.normalizeModel;
572
355
  return effect_Effect.gen(function* () {
573
- const boundInstanceId = options?.instanceId ?? require_collectUint8StreamText.ProviderInstanceId.make("grok");
356
+ const boundInstanceId = options?.instanceId ?? require_src.ProviderInstanceId.make(PROVIDER);
574
357
  const fileSystem = yield* effect_FileSystem.FileSystem;
575
358
  const path = yield* effect_Path.Path;
576
359
  const childProcessSpawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
@@ -582,17 +365,17 @@ function makeGrokAdapter(grokSettings, options) {
582
365
  const runtimeEventPubSub = yield* effect_PubSub.bounded(2048);
583
366
  const nowIso = effect_Effect.map(effect_DateTime.now, effect_DateTime.formatIso);
584
367
  const randomUUIDv4 = effect_Effect.sync(() => crypto.randomUUID());
585
- const nextEventId = effect_Effect.map(randomUUIDv4, (id) => require_collectUint8StreamText.EventId.make(id));
368
+ const nextEventId = effect_Effect.map(randomUUIDv4, (id) => require_src.EventId.make(id));
586
369
  const makeEventStamp = () => effect_Effect.all({
587
370
  eventId: nextEventId,
588
371
  createdAt: nowIso
589
372
  });
590
- const mapAcpCallbackFailure = (effect) => effect.pipe(effect_Effect.mapError((cause) => new require_AcpNativeLogging.AcpTransportError({
591
- detail: "Failed to process Grok ACP callback.",
373
+ const mapAcpCallbackFailure = (effect) => effect.pipe(effect_Effect.mapError((cause) => new require_bin.AcpTransportError({
374
+ detail: "Failed to process ACP callback.",
592
375
  cause
593
376
  })));
594
377
  const offerRuntimeEventForRuntime = (runtimeSessionId, event) => {
595
- return effect_PubSub.publish(runtimeEventPubSub, require_makeManagedServerProvider.stampRuntimeEvent(event, {
378
+ return effect_PubSub.publish(runtimeEventPubSub, require_runtimeSession.stampRuntimeEvent(event, {
596
379
  providerInstanceId: boundInstanceId,
597
380
  runtimeSessionId
598
381
  })).pipe(effect_Effect.asVoid);
@@ -617,14 +400,14 @@ function makeGrokAdapter(grokSettings, options) {
617
400
  event: {
618
401
  id: yield* randomUUIDv4,
619
402
  kind: "notification",
620
- provider: PROVIDER$1,
403
+ provider: PROVIDER,
621
404
  createdAt: observedAt,
622
405
  method,
623
406
  threadId,
624
407
  payload
625
408
  }
626
409
  }, threadId);
627
- }).pipe(effect_Effect.catchCause((cause) => effect_Effect.logWarning("Failed to write native Grok notification log.", {
410
+ }).pipe(effect_Effect.catchCause((cause) => effect_Effect.logWarning("Failed to write native ACP notification log.", {
628
411
  cause,
629
412
  threadId,
630
413
  method
@@ -635,7 +418,7 @@ function makeGrokAdapter(grokSettings, options) {
635
418
  ctx.lastPlanFingerprint = fingerprint;
636
419
  yield* offerRuntimeEventForRuntime(ctx.session.runtimeSessionId, require_AcpNativeLogging.makeAcpPlanUpdatedEvent({
637
420
  stamp: yield* makeEventStamp(),
638
- provider: PROVIDER$1,
421
+ provider: PROVIDER,
639
422
  threadId: ctx.threadId,
640
423
  turnId: ctx.activeTurnId,
641
424
  payload,
@@ -647,7 +430,7 @@ function makeGrokAdapter(grokSettings, options) {
647
430
  const requireSession = (threadId) => {
648
431
  const ctx = sessions.get(threadId);
649
432
  if (!ctx || ctx.stopped) return effect_Effect.fail(new require_bin.ProviderAdapterSessionNotFoundError({
650
- provider: PROVIDER$1,
433
+ provider: PROVIDER,
651
434
  threadId
652
435
  }));
653
436
  return effect_Effect.succeed(ctx);
@@ -663,42 +446,42 @@ function makeGrokAdapter(grokSettings, options) {
663
446
  yield* offerRuntimeEventForRuntime(ctx.session.runtimeSessionId, {
664
447
  type: "session.exited",
665
448
  ...yield* makeEventStamp(),
666
- provider: PROVIDER$1,
449
+ provider: PROVIDER,
667
450
  threadId: ctx.threadId,
668
451
  payload: { exitKind: "graceful" }
669
452
  });
670
453
  });
671
454
  const startSession = (input) => withThreadLock(input.threadId, effect_Effect.gen(function* () {
672
- if (input.provider !== void 0 && input.provider !== PROVIDER$1) return yield* new require_bin.ProviderAdapterValidationError({
673
- provider: PROVIDER$1,
455
+ if (input.provider !== void 0 && input.provider !== PROVIDER) return yield* new require_bin.ProviderAdapterValidationError({
456
+ provider: PROVIDER,
674
457
  operation: "startSession",
675
- issue: `Expected provider '${PROVIDER$1}' but received '${input.provider}'.`
458
+ issue: `Expected provider '${PROVIDER}' but received '${input.provider}'.`
676
459
  });
677
460
  if (input.providerInstanceId !== void 0 && input.providerInstanceId !== boundInstanceId) return yield* new require_bin.ProviderAdapterValidationError({
678
- provider: PROVIDER$1,
461
+ provider: PROVIDER,
679
462
  operation: "startSession",
680
463
  issue: `Expected provider instance '${boundInstanceId}' but received '${input.providerInstanceId}'.`
681
464
  });
682
- const runtimeSessionId = yield* require_makeManagedServerProvider.requireRuntimeSessionId(PROVIDER$1, input);
465
+ const runtimeSessionId = yield* require_runtimeSession.requireRuntimeSessionId(PROVIDER, input);
683
466
  if (!input.cwd?.trim()) return yield* new require_bin.ProviderAdapterValidationError({
684
- provider: PROVIDER$1,
467
+ provider: PROVIDER,
685
468
  operation: "startSession",
686
469
  issue: "cwd is required and must be non-empty."
687
470
  });
688
471
  const effectiveResumeCursor = input.resumePolicy === "fresh" ? void 0 : input.resumeCursor;
689
- const grokResume = effectiveResumeCursor === void 0 ? void 0 : parseGrokResume(effectiveResumeCursor);
690
- if (effectiveResumeCursor !== void 0 && grokResume === void 0) return yield* new require_bin.ProviderAdapterValidationError({
691
- provider: PROVIDER$1,
472
+ const acpResume = effectiveResumeCursor === void 0 ? void 0 : parseAcpResume(effectiveResumeCursor);
473
+ if (effectiveResumeCursor !== void 0 && acpResume === void 0) return yield* new require_bin.ProviderAdapterValidationError({
474
+ provider: PROVIDER,
692
475
  operation: "startSession",
693
476
  issue: "resumeCursor must use schema version 1 and contain a non-empty sessionId."
694
477
  });
695
478
  const cwd = path.resolve(input.cwd.trim());
696
- const grokModelSelection = input.modelSelection?.instanceId === boundInstanceId ? input.modelSelection : void 0;
479
+ const acpModelSelection = input.modelSelection?.instanceId === boundInstanceId ? input.modelSelection : void 0;
697
480
  const existing = sessions.get(input.threadId);
698
481
  if (existing && !existing.stopped) {
699
482
  if (existing.session.runtimeSessionId === runtimeSessionId) return existing.session;
700
483
  return yield* new require_bin.ProviderAdapterValidationError({
701
- provider: PROVIDER$1,
484
+ provider: PROVIDER,
702
485
  operation: "startSession",
703
486
  issue: `Thread '${input.threadId}' still has runtime '${existing.session.runtimeSessionId ?? "legacy"}'; stop it before starting '${runtimeSessionId}'.`
704
487
  });
@@ -714,14 +497,13 @@ function makeGrokAdapter(grokSettings, options) {
714
497
  isTurnActive: () => ctx !== void 0 && ctx.activeTurnId !== void 0 && !ctx.stopped
715
498
  });
716
499
  if (deviceToolBinding) yield* effect_Scope.addFinalizer(sessionScope, effect_Effect.sync(() => deviceToolBinding.dispose()));
717
- const resumeSessionId = grokResume?.sessionId;
500
+ const resumeSessionId = acpResume?.sessionId;
718
501
  const acpNativeLoggers = require_AcpNativeLogging.makeAcpNativeLoggers({
719
502
  nativeEventLogger,
720
- provider: PROVIDER$1,
503
+ provider: PROVIDER,
721
504
  threadId: input.threadId
722
505
  });
723
- const acp = yield* makeGrokAcpRuntime({
724
- grokSettings,
506
+ const acp = yield* options.makeRuntime({
725
507
  ...options?.environment ? { environment: options.environment } : {},
726
508
  childProcessSpawner,
727
509
  cwd,
@@ -741,22 +523,22 @@ function makeGrokAdapter(grokSettings, options) {
741
523
  }] } : {},
742
524
  ...acpNativeLoggers
743
525
  }).pipe(effect_Effect.provideService(effect_Scope.Scope, sessionScope), effect_Effect.mapError((cause) => new require_bin.ProviderAdapterProcessError({
744
- provider: PROVIDER$1,
526
+ provider: PROVIDER,
745
527
  threadId: input.threadId,
746
528
  detail: cause.message,
747
529
  cause
748
530
  })));
749
531
  const started = yield* effect_Effect.gen(function* () {
750
- yield* effect_Effect.forEach(["x.ai/ask_user_question", "_x.ai/ask_user_question"], (method) => acp.handleExtRequest(method, XAiAskUserQuestionRequest, (params) => mapAcpCallbackFailure(effect_Effect.gen(function* () {
532
+ yield* effect_Effect.forEach(options.xaiExtensions ? ["x.ai/ask_user_question", "_x.ai/ask_user_question"] : [], (method) => acp.handleExtRequest(method, XAiAskUserQuestionRequest, (params) => mapAcpCallbackFailure(effect_Effect.gen(function* () {
751
533
  yield* logNative(input.threadId, method, params);
752
- const requestId = require_collectUint8StreamText.ApprovalRequestId.make(yield* randomUUIDv4);
753
- const runtimeRequestId = require_collectUint8StreamText.RuntimeRequestId.make(requestId);
534
+ const requestId = require_src.ApprovalRequestId.make(yield* randomUUIDv4);
535
+ const runtimeRequestId = require_src.RuntimeRequestId.make(requestId);
754
536
  const resolution = yield* effect_Deferred.make();
755
537
  pendingUserInputs.set(requestId, { resolution });
756
538
  yield* offerRuntimeEventForRuntime(runtimeSessionId, {
757
539
  type: "user-input.requested",
758
540
  ...yield* makeEventStamp(),
759
- provider: PROVIDER$1,
541
+ provider: PROVIDER,
760
542
  threadId: input.threadId,
761
543
  turnId: sessions.get(input.threadId)?.activeTurnId,
762
544
  requestId: runtimeRequestId,
@@ -773,7 +555,7 @@ function makeGrokAdapter(grokSettings, options) {
773
555
  yield* offerRuntimeEventForRuntime(runtimeSessionId, {
774
556
  type: "user-input.resolved",
775
557
  ...yield* makeEventStamp(),
776
- provider: PROVIDER$1,
558
+ provider: PROVIDER,
777
559
  threadId: input.threadId,
778
560
  turnId: sessions.get(input.threadId)?.activeTurnId,
779
561
  requestId: runtimeRequestId,
@@ -798,14 +580,14 @@ function makeGrokAdapter(grokSettings, options) {
798
580
  optionId: autoApprovedOptionId
799
581
  } };
800
582
  }
801
- const permissionRequest = require_AcpNativeLogging.parsePermissionRequest(params);
802
- const requestId = require_collectUint8StreamText.ApprovalRequestId.make(yield* randomUUIDv4);
803
- const runtimeRequestId = require_collectUint8StreamText.RuntimeRequestId.make(requestId);
583
+ const permissionRequest = require_bin.parsePermissionRequest(params);
584
+ const requestId = require_src.ApprovalRequestId.make(yield* randomUUIDv4);
585
+ const runtimeRequestId = require_src.RuntimeRequestId.make(requestId);
804
586
  const decision = yield* effect_Deferred.make();
805
587
  pendingApprovals.set(requestId, { decision });
806
588
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpRequestOpenedEvent({
807
589
  stamp: yield* makeEventStamp(),
808
- provider: PROVIDER$1,
590
+ provider: PROVIDER,
809
591
  threadId: input.threadId,
810
592
  turnId: sessions.get(input.threadId)?.activeTurnId,
811
593
  requestId: runtimeRequestId,
@@ -820,7 +602,7 @@ function makeGrokAdapter(grokSettings, options) {
820
602
  pendingApprovals.delete(requestId);
821
603
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpRequestResolvedEvent({
822
604
  stamp: yield* makeEventStamp(),
823
- provider: PROVIDER$1,
605
+ provider: PROVIDER,
824
606
  threadId: input.threadId,
825
607
  turnId: sessions.get(input.threadId)?.activeTurnId,
826
608
  requestId: runtimeRequestId,
@@ -834,27 +616,28 @@ function makeGrokAdapter(grokSettings, options) {
834
616
  } : { outcome: "cancelled" } };
835
617
  })));
836
618
  return yield* acp.start();
837
- }).pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER$1, input.threadId, "session/start", error)));
838
- const requestedStartModelId = grokModelSelection?.model ? resolveGrokAcpBaseModelId(grokModelSelection.model) : void 0;
839
- const boundModelId = yield* applyGrokAcpModelSelection({
619
+ }).pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER, input.threadId, "session/start", error)));
620
+ if (options.onStarted) yield* options.onStarted(started);
621
+ const requestedStartModelId = acpModelSelection?.model ? normalizeModel(acpModelSelection.model) : void 0;
622
+ const boundModelId = yield* applyAcpModelSelection({
840
623
  runtime: acp,
841
- currentModelId: currentGrokModelIdFromSessionSetup(started.sessionSetupResult),
842
- requestedModelId: requestedStartModelId,
843
- mapError: (cause) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER$1, input.threadId, "session/set_model", cause)
624
+ currentModelId: currentAcpModelIdFromSessionSetup(started.sessionSetupResult),
625
+ requestedModelId: requestedStartModelId || void 0,
626
+ mapError: (cause) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER, input.threadId, "session/set_model", cause)
844
627
  });
845
628
  const now = yield* nowIso;
846
629
  const session = {
847
- provider: PROVIDER$1,
630
+ provider: PROVIDER,
848
631
  providerInstanceId: boundInstanceId,
849
632
  runtimeSessionId,
850
633
  status: "ready",
851
634
  runtimeMode: input.runtimeMode,
852
635
  tokenMode: input.tokenMode ?? "balanced",
853
636
  cwd,
854
- ...boundModelId ? { model: resolveGrokAcpBaseModelId(boundModelId) } : {},
637
+ ...boundModelId ? { model: normalizeModel(boundModelId) } : {},
855
638
  threadId: input.threadId,
856
639
  resumeCursor: {
857
- schemaVersion: GROK_RESUME_VERSION,
640
+ schemaVersion: ACP_RESUME_VERSION,
858
641
  sessionId: started.sessionId
859
642
  },
860
643
  createdAt: now,
@@ -874,14 +657,18 @@ function makeGrokAdapter(grokSettings, options) {
874
657
  lastPlanFingerprint: void 0,
875
658
  activeTurnId: void 0,
876
659
  currentModelId: boundModelId,
660
+ promptImages: started.initializeResult.agentCapabilities?.promptCapabilities?.image === true,
877
661
  stopped: false
878
662
  };
879
663
  const nf = yield* effect_Stream.runDrain(effect_Stream.mapEffect(acp.getEvents(), (event) => effect_Effect.gen(function* () {
880
664
  switch (event._tag) {
665
+ case "CommandsUpdated":
666
+ if (options.onCommands) yield* options.onCommands(event.commands);
667
+ return;
881
668
  case "AssistantItemStarted":
882
669
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpAssistantItemEvent({
883
670
  stamp: yield* makeEventStamp(),
884
- provider: PROVIDER$1,
671
+ provider: PROVIDER,
885
672
  threadId: ctx.threadId,
886
673
  turnId: ctx.activeTurnId,
887
674
  itemId: event.itemId,
@@ -891,7 +678,7 @@ function makeGrokAdapter(grokSettings, options) {
891
678
  case "AssistantItemCompleted":
892
679
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpAssistantItemEvent({
893
680
  stamp: yield* makeEventStamp(),
894
- provider: PROVIDER$1,
681
+ provider: PROVIDER,
895
682
  threadId: ctx.threadId,
896
683
  turnId: ctx.activeTurnId,
897
684
  itemId: event.itemId,
@@ -906,14 +693,14 @@ function makeGrokAdapter(grokSettings, options) {
906
693
  yield* logNative(ctx.threadId, "session/update", event.rawPayload);
907
694
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpToolCallEvent({
908
695
  stamp: yield* makeEventStamp(),
909
- provider: PROVIDER$1,
696
+ provider: PROVIDER,
910
697
  threadId: ctx.threadId,
911
698
  turnId: ctx.activeTurnId,
912
699
  toolCall: event.toolCall,
913
700
  rawPayload: event.rawPayload
914
701
  }));
915
702
  for (const subagentEvent of yield* ctx.subagentEvents({
916
- provider: PROVIDER$1,
703
+ provider: PROVIDER,
917
704
  threadId: ctx.threadId,
918
705
  turnId: ctx.activeTurnId,
919
706
  state: event.toolCall.subagent,
@@ -925,7 +712,7 @@ function makeGrokAdapter(grokSettings, options) {
925
712
  yield* logNative(ctx.threadId, "session/update", event.rawPayload);
926
713
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpContentDeltaEvent({
927
714
  stamp: yield* makeEventStamp(),
928
- provider: PROVIDER$1,
715
+ provider: PROVIDER,
929
716
  threadId: ctx.threadId,
930
717
  turnId: ctx.activeTurnId,
931
718
  ...event.itemId ? { itemId: event.itemId } : {},
@@ -937,7 +724,7 @@ function makeGrokAdapter(grokSettings, options) {
937
724
  yield* logNative(ctx.threadId, "session/update", event.rawPayload);
938
725
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpThoughtDeltaEvent({
939
726
  stamp: yield* makeEventStamp(),
940
- provider: PROVIDER$1,
727
+ provider: PROVIDER,
941
728
  threadId: ctx.threadId,
942
729
  turnId: ctx.activeTurnId,
943
730
  text: event.text,
@@ -945,10 +732,11 @@ function makeGrokAdapter(grokSettings, options) {
945
732
  }));
946
733
  return;
947
734
  case "UsageUpdated":
735
+ if (options.onUsage) yield* options.onUsage();
948
736
  yield* logNative(ctx.threadId, "session/update", event.rawPayload);
949
737
  yield* offerRuntimeEventForRuntime(runtimeSessionId, require_AcpNativeLogging.makeAcpTokenUsageEvent({
950
738
  stamp: yield* makeEventStamp(),
951
- provider: PROVIDER$1,
739
+ provider: PROVIDER,
952
740
  threadId: ctx.threadId,
953
741
  turnId: ctx.activeTurnId,
954
742
  usage: event.usage,
@@ -963,24 +751,24 @@ function makeGrokAdapter(grokSettings, options) {
963
751
  yield* offerRuntimeEventForRuntime(runtimeSessionId, {
964
752
  type: "session.started",
965
753
  ...yield* makeEventStamp(),
966
- provider: PROVIDER$1,
754
+ provider: PROVIDER,
967
755
  threadId: input.threadId,
968
756
  payload: { resume: started.initializeResult }
969
757
  });
970
758
  yield* offerRuntimeEventForRuntime(runtimeSessionId, {
971
759
  type: "session.state.changed",
972
760
  ...yield* makeEventStamp(),
973
- provider: PROVIDER$1,
761
+ provider: PROVIDER,
974
762
  threadId: input.threadId,
975
763
  payload: {
976
764
  state: "ready",
977
- reason: "Grok ACP session ready"
765
+ reason: "ACP session ready"
978
766
  }
979
767
  });
980
768
  yield* offerRuntimeEventForRuntime(runtimeSessionId, {
981
769
  type: "thread.started",
982
770
  ...yield* makeEventStamp(),
983
- provider: PROVIDER$1,
771
+ provider: PROVIDER,
984
772
  threadId: input.threadId,
985
773
  payload: { providerThreadId: started.sessionId }
986
774
  });
@@ -989,18 +777,18 @@ function makeGrokAdapter(grokSettings, options) {
989
777
  const sendTurn = (input) => effect_Effect.gen(function* () {
990
778
  const prepared = yield* withThreadLock(input.threadId, effect_Effect.gen(function* () {
991
779
  const ctx = yield* requireSession(input.threadId);
992
- const turnId = require_collectUint8StreamText.TurnId.make(yield* randomUUIDv4);
780
+ const turnId = require_src.TurnId.make(yield* randomUUIDv4);
993
781
  const turnModelSelection = input.modelSelection?.instanceId === boundInstanceId ? input.modelSelection : void 0;
994
- const requestedTurnModelId = turnModelSelection?.model ? resolveGrokAcpBaseModelId(turnModelSelection.model) : void 0;
995
- const currentModelId = yield* applyGrokAcpModelSelection({
782
+ const requestedTurnModelId = turnModelSelection?.model ? normalizeModel(turnModelSelection.model) : void 0;
783
+ const currentModelId = yield* applyAcpModelSelection({
996
784
  runtime: ctx.acp,
997
785
  currentModelId: ctx.currentModelId,
998
- requestedModelId: requestedTurnModelId,
999
- mapError: (cause) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER$1, input.threadId, "session/set_model", cause)
786
+ requestedModelId: requestedTurnModelId || void 0,
787
+ mapError: (cause) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER, input.threadId, "session/set_model", cause)
1000
788
  });
1001
789
  const pathLineEntries = [];
1002
790
  const imagePromptParts = yield* effect_Effect.forEach(input.attachments ?? [], (attachment) => effect_Effect.gen(function* () {
1003
- if (!require_bin.isPersistableChatAttachment(attachment) || attachment.type !== "image") {
791
+ if (!require_bin.isPersistableChatAttachment(attachment) || attachment.type !== "image" || options.respectPromptCapabilities && !ctx.promptImages) {
1004
792
  pathLineEntries.push({
1005
793
  attachment,
1006
794
  ...attachment.id === void 0 ? {} : { resolvedPath: require_bin.resolveAttachmentPath({
@@ -1015,12 +803,12 @@ function makeGrokAdapter(grokSettings, options) {
1015
803
  attachment
1016
804
  });
1017
805
  if (!attachmentPath) return yield* new require_bin.ProviderAdapterRequestError({
1018
- provider: PROVIDER$1,
806
+ provider: PROVIDER,
1019
807
  method: "session/prompt",
1020
808
  detail: `Invalid attachment id '${attachment.id}'.`
1021
809
  });
1022
810
  const bytes = yield* fileSystem.readFile(attachmentPath).pipe(effect_Effect.mapError((cause) => new require_bin.ProviderAdapterRequestError({
1023
- provider: PROVIDER$1,
811
+ provider: PROVIDER,
1024
812
  method: "session/prompt",
1025
813
  detail: cause.message,
1026
814
  cause
@@ -1031,18 +819,18 @@ function makeGrokAdapter(grokSettings, options) {
1031
819
  mimeType: attachment.mimeType
1032
820
  };
1033
821
  }));
1034
- const promptText = require_makeManagedServerProvider.appendAttachmentPathLines(input.input?.trim(), require_makeManagedServerProvider.formatAttachmentPathLines(pathLineEntries));
822
+ const promptText = require_runtimeSession.appendAttachmentPathLines(input.input?.trim(), require_runtimeSession.formatAttachmentPathLines(pathLineEntries));
1035
823
  const promptParts = [...promptText && promptText.trim().length > 0 ? [{
1036
824
  type: "text",
1037
825
  text: promptText
1038
826
  }] : [], ...imagePromptParts.filter((part) => part !== null)];
1039
827
  if (promptParts.length === 0) return yield* new require_bin.ProviderAdapterValidationError({
1040
- provider: PROVIDER$1,
828
+ provider: PROVIDER,
1041
829
  operation: "sendTurn",
1042
830
  issue: "Turn requires non-empty text or attachments."
1043
831
  });
1044
832
  ctx.currentModelId = currentModelId;
1045
- const displayModel = currentModelId ? resolveGrokAcpBaseModelId(currentModelId) : void 0;
833
+ const displayModel = currentModelId ? normalizeModel(currentModelId) : void 0;
1046
834
  ctx.activeTurnId = turnId;
1047
835
  ctx.lastPlanFingerprint = void 0;
1048
836
  ctx.session = {
@@ -1054,7 +842,7 @@ function makeGrokAdapter(grokSettings, options) {
1054
842
  yield* offerRuntimeEventForRuntime(ctx.session.runtimeSessionId, {
1055
843
  type: "turn.started",
1056
844
  ...yield* makeEventStamp(),
1057
- provider: PROVIDER$1,
845
+ provider: PROVIDER,
1058
846
  threadId: input.threadId,
1059
847
  turnId,
1060
848
  payload: displayModel ? { model: displayModel } : {}
@@ -1067,13 +855,13 @@ function makeGrokAdapter(grokSettings, options) {
1067
855
  turnId
1068
856
  };
1069
857
  }));
1070
- const result = yield* prepared.acp.prompt({ prompt: prepared.promptParts }).pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER$1, input.threadId, "session/prompt", error)));
858
+ const result = yield* prepared.acp.prompt({ prompt: prepared.promptParts }).pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER, input.threadId, "session/prompt", error)));
1071
859
  return yield* withThreadLock(input.threadId, effect_Effect.gen(function* () {
1072
860
  const ctx = yield* requireSession(input.threadId);
1073
861
  if (ctx.acpSessionId !== prepared.acpSessionId) return yield* new require_bin.ProviderAdapterRequestError({
1074
- provider: PROVIDER$1,
862
+ provider: PROVIDER,
1075
863
  method: "session/prompt",
1076
- detail: "Grok session changed before the turn completed."
864
+ detail: "ACP session changed before the turn completed."
1077
865
  });
1078
866
  ctx.turns = [...ctx.turns, {
1079
867
  id: prepared.turnId,
@@ -1091,7 +879,7 @@ function makeGrokAdapter(grokSettings, options) {
1091
879
  yield* offerRuntimeEventForRuntime(ctx.session.runtimeSessionId, {
1092
880
  type: "turn.completed",
1093
881
  ...yield* makeEventStamp(),
1094
- provider: PROVIDER$1,
882
+ provider: PROVIDER,
1095
883
  threadId: input.threadId,
1096
884
  turnId: prepared.turnId,
1097
885
  payload: {
@@ -1110,12 +898,12 @@ function makeGrokAdapter(grokSettings, options) {
1110
898
  const ctx = yield* requireSession(threadId);
1111
899
  yield* settlePendingApprovalsAsCancelled(ctx.pendingApprovals);
1112
900
  yield* settlePendingUserInputsAsCancelled(ctx.pendingUserInputs);
1113
- yield* effect_Effect.ignore(ctx.acp.cancel.pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER$1, threadId, "session/cancel", error))));
901
+ yield* effect_Effect.ignore(ctx.acp.cancel.pipe(effect_Effect.mapError((error) => require_AcpNativeLogging.mapAcpToAdapterError(PROVIDER, threadId, "session/cancel", error))));
1114
902
  });
1115
903
  const respondToRequest = (threadId, requestId, decision) => effect_Effect.gen(function* () {
1116
904
  const pending = (yield* requireSession(threadId)).pendingApprovals.get(requestId);
1117
905
  if (!pending) return yield* new require_bin.ProviderAdapterRequestError({
1118
- provider: PROVIDER$1,
906
+ provider: PROVIDER,
1119
907
  method: "session/request_permission",
1120
908
  detail: `Unknown pending approval request: ${requestId}`
1121
909
  });
@@ -1124,7 +912,7 @@ function makeGrokAdapter(grokSettings, options) {
1124
912
  const respondToUserInput = (threadId, requestId, answers) => effect_Effect.gen(function* () {
1125
913
  const pending = (yield* requireSession(threadId)).pendingUserInputs.get(requestId);
1126
914
  if (!pending) return yield* new require_bin.ProviderAdapterRequestError({
1127
- provider: PROVIDER$1,
915
+ provider: PROVIDER,
1128
916
  method: "_x.ai/ask_user_question",
1129
917
  detail: `Unknown pending user-input request: ${requestId}`
1130
918
  });
@@ -1142,14 +930,14 @@ function makeGrokAdapter(grokSettings, options) {
1142
930
  const rollbackThread = (threadId, numTurns) => effect_Effect.gen(function* () {
1143
931
  yield* requireSession(threadId);
1144
932
  if (!Number.isInteger(numTurns) || numTurns < 1) return yield* new require_bin.ProviderAdapterValidationError({
1145
- provider: PROVIDER$1,
933
+ provider: PROVIDER,
1146
934
  operation: "rollbackThread",
1147
935
  issue: "numTurns must be an integer >= 1."
1148
936
  });
1149
937
  return yield* new require_bin.ProviderAdapterRequestError({
1150
- provider: PROVIDER$1,
938
+ provider: PROVIDER,
1151
939
  method: "thread/rollback",
1152
- detail: "Grok ACP sessions do not support provider-side rollback yet."
940
+ detail: "ACP sessions do not support provider-side rollback yet."
1153
941
  });
1154
942
  });
1155
943
  const stopSession = (threadId) => withThreadLock(threadId, effect_Effect.gen(function* () {
@@ -1165,8 +953,10 @@ function makeGrokAdapter(grokSettings, options) {
1165
953
  yield* effect_Effect.addFinalizer(() => effect_Effect.ignore(stopAll()).pipe(effect_Effect.tap(() => effect_PubSub.shutdown(runtimeEventPubSub)), effect_Effect.tap(() => managedNativeEventLogger?.close() ?? effect_Effect.void)));
1166
954
  const streamEvents = effect_Stream.fromPubSub(runtimeEventPubSub);
1167
955
  return {
1168
- provider: PROVIDER$1,
1169
- capabilities: { sessionModelSwitch: "unsupported" },
956
+ provider: PROVIDER,
957
+ capabilities: { get sessionModelSwitch() {
958
+ return options.getSessionModelSwitch?.() ?? "unsupported";
959
+ } },
1170
960
  startSession,
1171
961
  sendTurn,
1172
962
  interruptTurn,
@@ -1183,300 +973,27 @@ function makeGrokAdapter(grokSettings, options) {
1183
973
  });
1184
974
  }
1185
975
  //#endregion
1186
- //#region src/provider/Layers/GrokProvider.ts
1187
- const GROK_PRESENTATION = {
1188
- displayName: "Grok",
1189
- badgeLabel: "Early Access",
1190
- showInteractionModeToggle: false
1191
- };
1192
- const PROVIDER = require_collectUint8StreamText.ProviderDriverKind.make("grok");
1193
- const EMPTY_CAPABILITIES = require_bin.createModelCapabilities({ optionDescriptors: [] });
1194
- const VERSION_PROBE_TIMEOUT_MS = 4e3;
1195
- const GROK_ACP_MODEL_DISCOVERY_TIMEOUT_MS = 15e3;
1196
- const GROK_BUILT_IN_MODELS = [{
1197
- slug: "grok-build",
1198
- name: "Grok Build",
1199
- isCustom: false,
1200
- capabilities: EMPTY_CAPABILITIES
1201
- }];
1202
- function buildInitialGrokProviderSnapshot(grokSettings) {
1203
- const checkedAt = (/* @__PURE__ */ new Date()).toISOString();
1204
- const models = grokModelsFromSettings(grokSettings.customModels);
1205
- if (!grokSettings.enabled) return require_bin.buildServerProvider({
1206
- presentation: GROK_PRESENTATION,
1207
- enabled: false,
1208
- checkedAt,
1209
- models,
1210
- probe: {
1211
- installed: false,
1212
- version: null,
1213
- status: "warning",
1214
- auth: { status: "unknown" },
1215
- message: "Grok is disabled in Ryco settings."
1216
- }
1217
- });
1218
- return require_bin.buildServerProvider({
1219
- presentation: GROK_PRESENTATION,
1220
- enabled: true,
1221
- checkedAt,
1222
- models,
1223
- probe: {
1224
- installed: true,
1225
- version: null,
1226
- status: "warning",
1227
- auth: { status: "unknown" },
1228
- message: "Checking Grok CLI availability..."
1229
- }
1230
- });
1231
- }
1232
- function grokModelsFromSettings(customModels, builtInModels = GROK_BUILT_IN_MODELS) {
1233
- return require_bin.providerModelsFromSettings(builtInModels, PROVIDER, customModels ?? [], EMPTY_CAPABILITIES);
1234
- }
1235
- function buildGrokDiscoveredModelsFromSessionModelState(modelState) {
1236
- if (!modelState || modelState.availableModels.length === 0) return [];
1237
- const seen = /* @__PURE__ */ new Set();
1238
- return modelState.availableModels.map((model) => {
1239
- const slug = resolveGrokAcpBaseModelId(model.modelId);
1240
- if (!slug || seen.has(slug)) return;
1241
- seen.add(slug);
1242
- return {
1243
- slug,
1244
- name: model.name.trim() || slug,
1245
- isCustom: false,
1246
- capabilities: EMPTY_CAPABILITIES
1247
- };
1248
- }).filter((model) => model !== void 0);
1249
- }
1250
- const discoverGrokModelsViaAcp = (grokSettings, environment = process.env) => effect_Effect.gen(function* () {
1251
- const childProcessSpawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
1252
- return buildGrokDiscoveredModelsFromSessionModelState((yield* (yield* makeGrokAcpRuntime({
1253
- grokSettings,
1254
- environment,
1255
- childProcessSpawner,
1256
- cwd: process.cwd(),
1257
- clientInfo: {
1258
- name: "ryco-provider-probe",
1259
- version: "0.0.0"
1260
- }
1261
- })).start()).sessionSetupResult.models);
1262
- }).pipe(effect_Effect.scoped);
1263
- const runGrokVersionCommand = (grokSettings, environment = process.env) => {
1264
- const command = grokSettings.binaryPath || "grok";
1265
- return require_bin.spawnAndCollect(command, effect_unstable_process.ChildProcess.make(command, ["--version"], {
1266
- env: environment,
1267
- shell: process.platform === "win32"
1268
- }));
1269
- };
1270
- const checkGrokProviderStatus = effect_Effect.fn("checkGrokProviderStatus")(function* (grokSettings, environment = process.env) {
1271
- const checkedAt = effect_DateTime.formatIso(yield* effect_DateTime.now);
1272
- const fallbackModels = grokModelsFromSettings(grokSettings.customModels);
1273
- if (!grokSettings.enabled) return require_bin.buildServerProvider({
1274
- presentation: GROK_PRESENTATION,
1275
- enabled: false,
1276
- checkedAt,
1277
- models: fallbackModels,
1278
- probe: {
1279
- installed: false,
1280
- version: null,
1281
- status: "warning",
1282
- auth: { status: "unknown" },
1283
- message: "Grok is disabled in Ryco settings."
1284
- }
1285
- });
1286
- const versionResult = yield* runGrokVersionCommand(grokSettings, environment).pipe(effect_Effect.timeoutOption(VERSION_PROBE_TIMEOUT_MS), effect_Effect.result);
1287
- if (effect_Result.isFailure(versionResult)) {
1288
- const error = versionResult.failure;
1289
- yield* effect_Effect.logWarning("Grok CLI health check failed.", { errorTag: error.name });
1290
- return require_bin.buildServerProvider({
1291
- presentation: GROK_PRESENTATION,
1292
- enabled: grokSettings.enabled,
1293
- checkedAt,
1294
- models: fallbackModels,
1295
- probe: {
1296
- installed: !require_bin.isCommandMissingCause(error),
1297
- version: null,
1298
- status: "error",
1299
- auth: { status: "unknown" },
1300
- message: require_bin.isCommandMissingCause(error) ? "Grok CLI (`grok`) is not installed or not on PATH." : "Failed to execute Grok CLI health check."
1301
- }
1302
- });
1303
- }
1304
- if (effect_Option.isNone(versionResult.success)) return require_bin.buildServerProvider({
1305
- presentation: GROK_PRESENTATION,
1306
- enabled: grokSettings.enabled,
1307
- checkedAt,
1308
- models: fallbackModels,
1309
- probe: {
1310
- installed: true,
1311
- version: null,
1312
- status: "error",
1313
- auth: { status: "unknown" },
1314
- message: "Grok CLI is installed but timed out while running `grok --version`."
1315
- }
1316
- });
1317
- const versionOutput = versionResult.success.value;
1318
- const version = require_bin.parseGenericCliVersion(`${versionOutput.stdout}\n${versionOutput.stderr}`);
1319
- if (versionOutput.code !== 0) {
1320
- yield* effect_Effect.logWarning("Grok CLI version probe exited with a non-zero status.", {
1321
- exitCode: versionOutput.code,
1322
- stdoutLength: versionOutput.stdout.length,
1323
- stderrLength: versionOutput.stderr.length
1324
- });
1325
- return require_bin.buildServerProvider({
1326
- presentation: GROK_PRESENTATION,
1327
- enabled: grokSettings.enabled,
1328
- checkedAt,
1329
- models: fallbackModels,
1330
- probe: {
1331
- installed: true,
1332
- version,
1333
- status: "error",
1334
- auth: { status: "unknown" },
1335
- message: "Grok CLI is installed but failed to run."
1336
- }
1337
- });
976
+ Object.defineProperty(exports, "applyAcpModelSelection", {
977
+ enumerable: true,
978
+ get: function() {
979
+ return applyAcpModelSelection;
1338
980
  }
1339
- const discoveryExit = yield* discoverGrokModelsViaAcp(grokSettings, environment).pipe(effect_Effect.timeoutOption(GROK_ACP_MODEL_DISCOVERY_TIMEOUT_MS), effect_Effect.exit);
1340
- if (effect_Exit.isFailure(discoveryExit)) {
1341
- yield* effect_Effect.logWarning("Grok ACP model discovery failed", { cause: effect_Cause.pretty(discoveryExit.cause) });
1342
- return require_bin.buildServerProvider({
1343
- presentation: GROK_PRESENTATION,
1344
- enabled: grokSettings.enabled,
1345
- checkedAt,
1346
- models: fallbackModels,
1347
- probe: {
1348
- installed: true,
1349
- version,
1350
- status: "error",
1351
- auth: { status: "unknown" },
1352
- message: "Grok CLI is installed but ACP startup failed. Check server logs for details."
1353
- }
1354
- });
981
+ });
982
+ Object.defineProperty(exports, "currentAcpModelIdFromSessionSetup", {
983
+ enumerable: true,
984
+ get: function() {
985
+ return currentAcpModelIdFromSessionSetup;
1355
986
  }
1356
- if (effect_Option.isNone(discoveryExit.value)) {
1357
- yield* effect_Effect.logWarning(`Grok ACP model discovery timed out after ${GROK_ACP_MODEL_DISCOVERY_TIMEOUT_MS}ms.`);
1358
- return require_bin.buildServerProvider({
1359
- presentation: GROK_PRESENTATION,
1360
- enabled: grokSettings.enabled,
1361
- checkedAt,
1362
- models: fallbackModels,
1363
- probe: {
1364
- installed: true,
1365
- version,
1366
- status: "error",
1367
- auth: { status: "unknown" },
1368
- message: `Grok CLI is installed but ACP startup timed out after ${GROK_ACP_MODEL_DISCOVERY_TIMEOUT_MS}ms.`
1369
- }
1370
- });
987
+ });
988
+ Object.defineProperty(exports, "makeAcpAdapter", {
989
+ enumerable: true,
990
+ get: function() {
991
+ return makeAcpAdapter;
1371
992
  }
1372
- const discoveredModels = discoveryExit.value.value;
1373
- const models = discoveredModels.length > 0 ? grokModelsFromSettings(grokSettings.customModels, discoveredModels) : fallbackModels;
1374
- return require_bin.buildServerProvider({
1375
- presentation: GROK_PRESENTATION,
1376
- enabled: grokSettings.enabled,
1377
- checkedAt,
1378
- models,
1379
- probe: {
1380
- installed: true,
1381
- version,
1382
- status: "ready",
1383
- auth: { status: "unknown" }
1384
- }
1385
- });
1386
993
  });
1387
- const enrichGrokSnapshot = (input) => {
1388
- const { snapshot, publishSnapshot } = input;
1389
- return require_bin.enrichProviderSnapshotWithVersionAdvisory(snapshot, input.maintenanceCapabilities).pipe(effect_Effect.provideService(effect_unstable_http.HttpClient.HttpClient, input.httpClient), effect_Effect.provideService(require_bin.ServerSettingsService, input.serverSettings), effect_Effect.flatMap((enrichedSnapshot) => publishSnapshot(enrichedSnapshot)), effect_Effect.catchCause((cause) => effect_Effect.logWarning("Grok version advisory enrichment failed", { cause: effect_Cause.pretty(cause) })), effect_Effect.asVoid);
1390
- };
1391
- //#endregion
1392
- //#region src/provider/Drivers/GrokDriver.ts
1393
- const decodeGrokSettings = effect_Schema.decodeSync(require_collectUint8StreamText.GrokSettings);
1394
- const DRIVER_KIND = require_collectUint8StreamText.ProviderDriverKind.make("grok");
1395
- const SNAPSHOT_REFRESH_INTERVAL = effect_Duration.minutes(5);
1396
- const UPDATE = require_bin.makeStaticProviderMaintenanceResolver(require_bin.makeManualOnlyProviderMaintenanceCapabilities({
1397
- provider: DRIVER_KIND,
1398
- packageName: null
1399
- }));
1400
- const withInstanceIdentity = (input) => (snapshot) => ({
1401
- ...snapshot,
1402
- instanceId: input.instanceId,
1403
- driver: DRIVER_KIND,
1404
- ...input.displayName ? { displayName: input.displayName } : {},
1405
- ...input.accentColor ? { accentColor: input.accentColor } : {},
1406
- continuation: { groupKey: input.continuationGroupKey }
994
+ Object.defineProperty(exports, "makeXAiPromptCompletionRuntime", {
995
+ enumerable: true,
996
+ get: function() {
997
+ return makeXAiPromptCompletionRuntime;
998
+ }
1407
999
  });
1408
- const GrokDriver = {
1409
- driverKind: DRIVER_KIND,
1410
- metadata: {
1411
- displayName: "Grok",
1412
- supportsMultipleInstances: true
1413
- },
1414
- configSchema: require_collectUint8StreamText.GrokSettings,
1415
- defaultConfig: () => decodeGrokSettings({}),
1416
- create: ({ instanceId, displayName, accentColor, environment, enabled, config }) => effect_Effect.gen(function* () {
1417
- const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
1418
- const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
1419
- const serverSettings = yield* require_bin.ServerSettingsService;
1420
- const eventLoggers = yield* require_bin.ProviderEventLoggers;
1421
- const processEnv = require_bin.mergeProviderInstanceEnvironment(environment);
1422
- const continuationIdentity = require_ProviderDriver.defaultProviderContinuationIdentity({
1423
- driverKind: DRIVER_KIND,
1424
- instanceId
1425
- });
1426
- const stampIdentity = withInstanceIdentity({
1427
- instanceId,
1428
- displayName,
1429
- accentColor,
1430
- continuationGroupKey: continuationIdentity.continuationKey
1431
- });
1432
- const effectiveConfig = {
1433
- ...config,
1434
- enabled
1435
- };
1436
- const maintenanceCapabilities = yield* require_bin.resolveProviderMaintenanceCapabilitiesEffect(UPDATE, {
1437
- binaryPath: effectiveConfig.binaryPath,
1438
- env: processEnv
1439
- });
1440
- const adapter = yield* makeGrokAdapter(effectiveConfig, {
1441
- environment: processEnv,
1442
- ...eventLoggers.native ? { nativeEventLogger: eventLoggers.native } : {},
1443
- instanceId
1444
- });
1445
- const textGeneration = yield* makeGrokTextGeneration(effectiveConfig, processEnv);
1446
- const checkProvider = checkGrokProviderStatus(effectiveConfig, processEnv).pipe(effect_Effect.map(stampIdentity), effect_Effect.provideService(effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner, spawner));
1447
- const snapshot = yield* require_makeManagedServerProvider.makeManagedServerProvider({
1448
- maintenanceCapabilities,
1449
- getSettings: effect_Effect.succeed(effectiveConfig),
1450
- streamSettings: effect_Stream.never,
1451
- haveSettingsChanged: () => false,
1452
- initialSnapshot: (settings) => stampIdentity(buildInitialGrokProviderSnapshot(settings)),
1453
- checkProvider,
1454
- enrichSnapshot: ({ snapshot: currentSnapshot, publishSnapshot }) => enrichGrokSnapshot({
1455
- snapshot: currentSnapshot,
1456
- maintenanceCapabilities,
1457
- publishSnapshot,
1458
- httpClient,
1459
- serverSettings
1460
- }),
1461
- refreshInterval: SNAPSHOT_REFRESH_INTERVAL
1462
- }).pipe(effect_Effect.mapError((cause) => new require_bin.ProviderDriverError({
1463
- driver: DRIVER_KIND,
1464
- instanceId,
1465
- detail: `Failed to build Grok snapshot: ${cause.message ?? String(cause)}`,
1466
- cause
1467
- })));
1468
- return {
1469
- instanceId,
1470
- driverKind: DRIVER_KIND,
1471
- continuationIdentity,
1472
- displayName,
1473
- accentColor,
1474
- enabled,
1475
- snapshot,
1476
- adapter,
1477
- textGeneration
1478
- };
1479
- })
1480
- };
1481
- //#endregion
1482
- exports.GrokDriver = GrokDriver;