ryco-cli 0.1.18 → 0.1.20

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 (188) hide show
  1. package/dist/{AcpNativeLogging-CUpW8y6E.cjs → AcpNativeLogging-Bh7MX3rC.cjs} +1 -1
  2. package/dist/{AcpNativeLogging-hu4rXzHU.mjs → AcpNativeLogging-CLM3p9JD.mjs} +2 -2
  3. package/dist/{AzureDevOpsSourceControlProvider-DAdboLpu.cjs → AzureDevOpsSourceControlProvider-D9QXGi1h.cjs} +2 -2
  4. package/dist/{AzureDevOpsSourceControlProvider-C7Ff-COJ.mjs → AzureDevOpsSourceControlProvider-jQm1WPMS.mjs} +3 -3
  5. package/dist/{BitbucketSourceControlProvider-Bg6lSYm8.cjs → BitbucketSourceControlProvider-C3VDp9qR.cjs} +2 -2
  6. package/dist/{BitbucketSourceControlProvider-CMPQXie7.mjs → BitbucketSourceControlProvider-j95Cro_2.mjs} +3 -3
  7. package/dist/{ClaudeDriver-Nc7gDoUZ.mjs → ClaudeDriver-CT89QDP8.mjs} +124 -285
  8. package/dist/{ClaudeDriver-CILJj4bi.cjs → ClaudeDriver-DiRhQM2K.cjs} +123 -284
  9. package/dist/{CodexDriver-CdE1fyKF.cjs → CodexDriver-BmKoU7w_.cjs} +3 -3
  10. package/dist/{CodexDriver-OeWoP24r.mjs → CodexDriver-CBYfPl_X.mjs} +4 -4
  11. package/dist/{CodexTextGeneration-CKacDpkR.mjs → CodexTextGeneration-B7GPyLo2.mjs} +2 -2
  12. package/dist/{CodexTextGeneration-BJvCqVzm.cjs → CodexTextGeneration-CuXvtfAi.cjs} +1 -1
  13. package/dist/{CopilotDriver-C6IkwOg5.mjs → CopilotDriver-BJ1P_bHz.mjs} +4 -4
  14. package/dist/{CopilotDriver-5toln6vu.cjs → CopilotDriver-XX5zmGVK.cjs} +3 -3
  15. package/dist/{CursorDriver-BPyhSbOl.mjs → CursorDriver-BH6yAijk.mjs} +4 -4
  16. package/dist/{CursorDriver-otlL4axb.cjs → CursorDriver-CYMXQKec.cjs} +3 -3
  17. package/dist/{ForgejoSourceControlProvider-SZj0DxRM.cjs → ForgejoSourceControlProvider-Dzg-BJY_.cjs} +2 -2
  18. package/dist/{ForgejoSourceControlProvider-Df0EwCPV.mjs → ForgejoSourceControlProvider-ZfU3SBzW.mjs} +3 -3
  19. package/dist/{GitHubSourceControlProvider-D9v0HrDd.cjs → GitHubSourceControlProvider-BpyIi23Q.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-G07yjZJS.mjs → GitHubSourceControlProvider-Bx5_H3zb.mjs} +3 -3
  21. package/dist/{GitLabSourceControlProvider-D7NhCVP9.mjs → GitLabSourceControlProvider-DjvGD1WZ.mjs} +3 -3
  22. package/dist/{GitLabSourceControlProvider-BTXml3Wh.cjs → GitLabSourceControlProvider-QccSsOnx.cjs} +2 -2
  23. package/dist/{GrokDriver-VxcAlypB.mjs → GrokDriver-BPIUrqkN.mjs} +4 -4
  24. package/dist/{GrokDriver-BkU6D5ZE.cjs → GrokDriver-jE4az7JZ.cjs} +3 -3
  25. package/dist/{OpenCodeDriver-CXvTVYvY.cjs → OpenCodeDriver-IbZqAzYW.cjs} +2 -2
  26. package/dist/{OpenCodeDriver-fQlgTeuI.mjs → OpenCodeDriver-_hUfFwH4.mjs} +3 -3
  27. package/dist/{SourceControlProviderDiscoveryCatalog-dqetZQiC.mjs → SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs} +1 -1
  28. package/dist/{SourceControlProviderDiscoveryCatalog-CR-cmnC-.cjs → SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs} +1 -1
  29. package/dist/bin.cjs +1015 -89
  30. package/dist/bin.mjs +1012 -91
  31. package/dist/client/assets/{AccountSettings-C3YGn5s7.js → AccountSettings-CvD49Uja.js} +1 -1
  32. package/dist/client/assets/{AiFocusSettings-CNucfJ5Y.js → AiFocusSettings-CYIp0JOV.js} +1 -1
  33. package/dist/client/assets/{AnimatedHeight-B8ZeY3LL.js → AnimatedHeight-CM_Eh6tz.js} +1 -1
  34. package/dist/client/assets/{AppearanceSettings-D1MyfaES.js → AppearanceSettings-BwUAv5oz.js} +1 -1
  35. package/dist/client/assets/{BranchToolbar.logic-CN2-yLTE.js → BranchToolbar.logic-CKKpnCfs.js} +1 -1
  36. package/dist/client/assets/{ChatRightPanel-DhZiZCcx.js → ChatRightPanel-DYXZNh1m.js} +3 -3
  37. package/dist/client/assets/{ChatThreadRouteView-CR8HQgm3.js → ChatThreadRouteView-B0kj0wFr.js} +1 -1
  38. package/dist/client/assets/{CommandPaletteDialog-ChB99Jee.js → CommandPaletteDialog-CJKvYVxh.js} +1 -1
  39. package/dist/client/assets/{CompositeItem-CxRCTsWt.js → CompositeItem-B4ITmHni.js} +1 -1
  40. package/dist/client/assets/{CompositeRoot-CDscEk_b.js → CompositeRoot-C5I2Yh5e.js} +1 -1
  41. package/dist/client/assets/{ConnectionsSettings-Dsewo1mI.js → ConnectionsSettings-4l-DXYo6.js} +1 -1
  42. package/dist/client/assets/{DiagnosticsSettings-ClUk2Ycp.js → DiagnosticsSettings-B6IUUiYM.js} +1 -1
  43. package/dist/client/assets/{DialogHandle-BGW2rJq8.js → DialogHandle-Bs7TUuxl.js} +1 -1
  44. package/dist/client/assets/{DialogPopup-9zEMlOyz.js → DialogPopup-BAK5J3da.js} +1 -1
  45. package/dist/client/assets/DialogRoot-DMnQO_iQ.js +1 -0
  46. package/dist/client/assets/{DialogTitle-7dK2BQ85.js → DialogTitle-B1m3rLO-.js} +1 -1
  47. package/dist/client/assets/{DialogTrigger-B7jdDPNa.js → DialogTrigger-VXV8wYO4.js} +1 -1
  48. package/dist/client/assets/{DialogViewport-BrRcGV_l.js → DialogViewport-yUeHNu43.js} +1 -1
  49. package/dist/client/assets/{DraftChatThreadRouteView-C7HNQzJO.js → DraftChatThreadRouteView-C39ZNgWr.js} +1 -1
  50. package/dist/client/assets/{ExternalIdentityWeb.logic-DS77EplU.js → ExternalIdentityWeb.logic-TlJdh82R.js} +1 -1
  51. package/dist/client/assets/{GlassSurface--5lIEJCy.js → GlassSurface-BWk2twKc.js} +1 -1
  52. package/dist/client/assets/{HostedConnectionControls-5f2EOB5t.js → HostedConnectionControls-DO5uPfav.js} +1 -1
  53. package/dist/client/assets/{HostedHubRoot-tRaAruhb.js → HostedHubRoot-DkHX6TkK.js} +1 -1
  54. package/dist/client/assets/{HostedNativeAuthorizationRoute-B4SBCUZq.js → HostedNativeAuthorizationRoute-C1VRYU0-.js} +1 -1
  55. package/dist/client/assets/{HostedRelayTrustNotice-D7TIN2KZ.js → HostedRelayTrustNotice-Cl7lRwRJ.js} +1 -1
  56. package/dist/client/assets/{Icons-CqMTQkuR.js → Icons-uMh1k5C0.js} +1 -1
  57. package/dist/client/assets/{IntegrationsSettingsPanel-Be0RMI3X.js → IntegrationsSettingsPanel-Mx-1xSUL.js} +1 -1
  58. package/dist/client/assets/{KeybindingsSettings-BxoOXbJf.js → KeybindingsSettings-Bv3H18VO.js} +1 -1
  59. package/dist/client/assets/{McpServersSettings-D6wFULhe.js → McpServersSettings-Cbq-uHU3.js} +1 -1
  60. package/dist/client/assets/{MobileSheet-fqwVmSQY.js → MobileSheet-DS7_soKu.js} +1 -1
  61. package/dist/client/assets/{NewWorktreeDialog-DljDMikm.js → NewWorktreeDialog-CLm1JR27.js} +1 -1
  62. package/dist/client/assets/{NoActiveThreadState-DvLgUR0A.js → NoActiveThreadState-CFxNrhs_.js} +1 -1
  63. package/dist/client/assets/{NodeSecuritySettings-BYX0uV1b.js → NodeSecuritySettings-B3uURyma.js} +1 -1
  64. package/dist/client/assets/{OpinionatedPluginsSettings-ZOQ0n5GP.js → OpinionatedPluginsSettings-B7gZOBCs.js} +1 -1
  65. package/dist/client/assets/{PhoneGetAppInterstitial-DzlPIIW0.js → PhoneGetAppInterstitial-DQdUrqs1.js} +1 -1
  66. package/dist/client/assets/{PhoneGetAppInterstitialBackdrop-C_j-OVwR.js → PhoneGetAppInterstitialBackdrop-DbRPU11Z.js} +1 -1
  67. package/dist/client/assets/{PhoneHome-BIYOn5P7.js → PhoneHome-BbZKBYb8.js} +1 -1
  68. package/dist/client/assets/{PhoneSettingsSurface-CL26SDJP.js → PhoneSettingsSurface-BJ8jDucY.js} +1 -1
  69. package/dist/client/assets/{ProjectFavicon-BLFEmLYd.js → ProjectFavicon-DHnstN4J.js} +1 -1
  70. package/dist/client/assets/ProviderModelPicker-Ch69G0-0.js +1 -0
  71. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-DcLWligu.js → ProviderUpdateLaunchNotification.logic-D3qYdp40.js} +1 -1
  72. package/dist/client/assets/{ProvidersSettingsPanel-tIQSB1Ni.js → ProvidersSettingsPanel-Dz-1od7X.js} +1 -1
  73. package/dist/client/assets/{RedactedSensitiveText-DnYWrxD2.js → RedactedSensitiveText-BORE69Ig.js} +1 -1
  74. package/dist/client/assets/{RootAppShell-BVqIVDWT.js → RootAppShell-DnesFYfo.js} +2 -2
  75. package/dist/client/assets/{RycoLetterMark-C1QHVbKN.js → RycoLetterMark-DDx_gBX-.js} +1 -1
  76. package/dist/client/assets/{SettingsDialog-TY6l7DuD.js → SettingsDialog-CWK_H1sI.js} +1 -1
  77. package/dist/client/assets/{SettingsPanels-_-BazuGl.js → SettingsPanels-DxMEuovz.js} +1 -1
  78. package/dist/client/assets/{SettingsPanels.editor-Bl_mOgB-.js → SettingsPanels.editor-D2gxvDPy.js} +1 -1
  79. package/dist/client/assets/{SourceControlSettings-CwRuv7T6.js → SourceControlSettings-CB2SdaRk.js} +1 -1
  80. package/dist/client/assets/{StatisticsPage-DAvOIX_d.js → StatisticsPage-MhMDuSSQ.js} +1 -1
  81. package/dist/client/assets/{StatisticsPanel-BfmqkZgK.js → StatisticsPanel-D3d0bJgk.js} +1 -1
  82. package/dist/client/assets/{StatisticsSettingsLink-J-iBGP5I.js → StatisticsSettingsLink-DlnQpfyr.js} +1 -1
  83. package/dist/client/assets/{ThreadStatusIndicators-BzpZG_IZ.js → ThreadStatusIndicators-CPpIFcAC.js} +0 -0
  84. package/dist/client/assets/{ThreadTerminalDrawer-DZy0S10m.js → ThreadTerminalDrawer-DvadlVXV.js} +1 -1
  85. package/dist/client/assets/{ThreadWorkspacePanel-PRfBFuHE.js → ThreadWorkspacePanel-Ct9EINsa.js} +1 -1
  86. package/dist/client/assets/{ToolbarRootContext-C48gkU4j.js → ToolbarRootContext-DtUqN8i6.js} +1 -1
  87. package/dist/client/assets/{WorkItemsTab-EO7aDVI8.js → WorkItemsTab-CI6hTQ_k.js} +1 -1
  88. package/dist/client/assets/{alert-C24pxxYz.js → alert-DQjuri3D.js} +1 -1
  89. package/dist/client/assets/{alert-dialog-iYnjheVe.js → alert-dialog-Cb2TnXzy.js} +1 -1
  90. package/dist/client/assets/{authorization-BNZY2k8w.js → authorization-BrGZruGo.js} +1 -1
  91. package/dist/client/assets/{badge-tHmsB3yQ.js → badge-Cil0isYQ.js} +1 -1
  92. package/dist/client/assets/{branding-hWmEaQ8d.js → branding-BEx1jrAA.js} +1 -1
  93. package/dist/client/assets/{button-WR80VgkK.js → button-CBqaO2Ub.js} +1 -1
  94. package/dist/client/assets/{capabilities-CXhsftU9.js → capabilities-Cj8jXZOW.js} +1 -1
  95. package/dist/client/assets/{chatThreadActions-C6tNI5Qi.js → chatThreadActions-kwD_yAEt.js} +1 -1
  96. package/dist/client/assets/{collapsible-BUn1kona.js → collapsible-DBPd--L7.js} +1 -1
  97. package/dist/client/assets/{command-CfaBUmS3.js → command-DuPvkUAz.js} +1 -1
  98. package/dist/client/assets/{composerDraftStore-DXTD6mKH.js → composerDraftStore-czbuHgbM.js} +1 -1
  99. package/dist/client/assets/{data-list-jNXWZwx3.js → data-list-BNy2Nwkd.js} +1 -1
  100. package/dist/client/assets/{desktopUpdateAtoms-C6z0AhGE.js → desktopUpdateAtoms-Dz4zQu-C.js} +1 -1
  101. package/dist/client/assets/{desktopWorkspace-BFTBEpzF.js → desktopWorkspace-wrPRMcOi.js} +1 -1
  102. package/dist/client/assets/{device-DB8v-PV8.js → device-DbMaLmeM.js} +1 -1
  103. package/dist/client/assets/{dialog-CwRtKu2U.js → dialog-Csp7hsmq.js} +1 -1
  104. package/dist/client/assets/{draft-input-BHjWDHqU.js → draft-input-COB-ymgx.js} +1 -1
  105. package/dist/client/assets/{editorPreferences-BqfWlBPx.js → editorPreferences-lQ3Fm4yA.js} +1 -1
  106. package/dist/client/assets/{empty-CITbdlFs.js → empty-BcTA7vWq.js} +1 -1
  107. package/dist/client/assets/{env-Bcy-9P3V.js → env-BZZxbmon.js} +1 -1
  108. package/dist/client/assets/{getPseudoElementBounds-BPmVta2g.js → getPseudoElementBounds-BaLrkv_J.js} +1 -1
  109. package/dist/client/assets/{group-BpXcg5Ba.js → group-CCjhaP2K.js} +1 -1
  110. package/dist/client/assets/{index-CnRziuz2.js → index-QY6vcnCY.js} +2 -2
  111. package/dist/client/assets/{input-Ba4jS4Ks.js → input-pu0UXdN_.js} +1 -1
  112. package/dist/client/assets/{kbd-BvgpGZEI.js → kbd-xUvRCeUS.js} +1 -1
  113. package/dist/client/assets/{keybindings-QVMzXI5S.js → keybindings-Bj6xWIbQ.js} +1 -1
  114. package/dist/client/assets/{label-2jpS7gCY.js → label-BzDE8wjR.js} +1 -1
  115. package/dist/client/assets/{lib-CuR3OHWo.js → lib-B6XyeqaU.js} +1 -1
  116. package/dist/client/assets/{logging-CTOc5ONT.js → logging-1BfRrhxL.js} +1 -1
  117. package/dist/client/assets/main-CZzCxtM-.css +2 -0
  118. package/dist/client/assets/{main-C5za36qj.js → main-stppnsiU.js} +2 -2
  119. package/dist/client/assets/{menu-CsEBcjDz.js → menu-g3Hcm2JF.js} +1 -1
  120. package/dist/client/assets/{popover-BpnQc7ji.js → popover-z5hURYff.js} +1 -1
  121. package/dist/client/assets/{primary-DiL6nRV-.js → primary-AnB-Zuft.js} +1 -1
  122. package/dist/client/assets/{projectPaths-DDcwkag5.js → projectPaths-BFTUsvWs.js} +1 -1
  123. package/dist/client/assets/{providerDriverMeta-DrgHrvO3.js → providerDriverMeta-C9M8tUrj.js} +1 -1
  124. package/dist/client/assets/{providerIconUtils-VIm6bh4U.js → providerIconUtils-BXecnJ0v.js} +1 -1
  125. package/dist/client/assets/providerInstances-CMy-5cGE.js +1 -0
  126. package/dist/client/assets/providerModels-CMy-5cGE.js +1 -0
  127. package/dist/client/assets/{qr-code-CXu67ChC.js → qr-code-B6lBPRxy.js} +1 -1
  128. package/dist/client/assets/{radio-group-B7kMeg_h.js → radio-group-DQahlnSi.js} +1 -1
  129. package/dist/client/assets/{resolveAriaLabelledBy-DoGkVnyF.js → resolveAriaLabelledBy-CUqcBhyS.js} +1 -1
  130. package/dist/client/assets/{rightPanelRouteSearch-YV6CEBkv.js → rightPanelRouteSearch-uEySicf2.js} +1 -1
  131. package/dist/client/assets/{runtime-Cy36EhFa.js → runtime-DRPzstwF.js} +1 -1
  132. package/dist/client/assets/{scroll-area-BZayohht.js → scroll-area-CzUrMo2h.js} +1 -1
  133. package/dist/client/assets/{scrollEdges-BObY5qgX.js → scrollEdges-C5VxoJIp.js} +1 -1
  134. package/dist/client/assets/{select-DQIoKiCF.js → select-_C7bRT7k.js} +1 -1
  135. package/dist/client/assets/{separator-DgV5UvWO.js → separator-CFUmZFfK.js} +1 -1
  136. package/dist/client/assets/{session-logic-yjrYZ67x.js → session-logic-C5moG_sv.js} +1 -1
  137. package/dist/client/assets/{settingsDialogStore-CzH3-ZEg.js → settingsDialogStore-DnU14tMG.js} +1 -1
  138. package/dist/client/assets/{settingsLayout-BPKHc7wz.js → settingsLayout-zwP6p5aD.js} +1 -1
  139. package/dist/client/assets/{sheet-BxlpAnIJ.js → sheet-BoROLwxR.js} +1 -1
  140. package/dist/client/assets/{sidebar-CuxI1O8j.js → sidebar-5T3qKIfp.js} +1 -1
  141. package/dist/client/assets/{sidebarProjectFolders-Bi8I6mH5.js → sidebarProjectFolders-Bzdw3xc6.js} +1 -1
  142. package/dist/client/assets/{sidebarStatusText-DTXq8x3L.js → sidebarStatusText-q88Acn3r.js} +1 -1
  143. package/dist/client/assets/{skeleton-C8KnJ1KQ.js → skeleton-C2GDOvXd.js} +1 -1
  144. package/dist/client/assets/{spinner-D9HJGQ01.js → spinner-Dlyh0j_K.js} +1 -1
  145. package/dist/client/assets/{src-CtanPQei.js → src-Blzsn4sO.js} +1 -1
  146. package/dist/client/assets/storeSelectors-BJw1h5Ih.js +1 -0
  147. package/dist/client/assets/{switch-B50w01tf.js → switch-CIMwetO3.js} +1 -1
  148. package/dist/client/assets/{terminal-links-C5NsgIQU.js → terminal-links-BJzH2Ipe.js} +1 -1
  149. package/dist/client/assets/{textarea-CJ8Vux-T.js → textarea-C0_BLJbT.js} +1 -1
  150. package/dist/client/assets/{threadPinning-B5WtT-P_.js → threadPinning-DQrBoIxu.js} +1 -1
  151. package/dist/client/assets/{threadPriorityRefreshRuntime-BnDDqCxq.js → threadPriorityRefreshRuntime-D-OkS27H.js} +1 -1
  152. package/dist/client/assets/{toast-CV5dwFOH.js → toast-D7IDKuLa.js} +1 -1
  153. package/dist/client/assets/{toggle-DRqyFTHJ.js → toggle-DjmkdNns.js} +1 -1
  154. package/dist/client/assets/{toggle-group-mhVkQLP2.js → toggle-group-q7LGJy7u.js} +1 -1
  155. package/dist/client/assets/{tooltip-DZhBSkif.js → tooltip-c9oahm_e.js} +1 -1
  156. package/dist/client/assets/types-BJw1h5Ih.js +1 -0
  157. package/dist/client/assets/{uiStateStore-OqZLiCwV.js → uiStateStore-C48VlkZ2.js} +1 -1
  158. package/dist/client/assets/{useAtlassian-zbqx4xW1.js → useAtlassian-Bpvpm41l.js} +0 -0
  159. package/dist/client/assets/{useButton-DXIv8wCn.js → useButton-CbjUY1n3.js} +1 -1
  160. package/dist/client/assets/{useCompositeListItem-rrdFaxXB.js → useCompositeListItem-Mh9CnfjW.js} +1 -1
  161. package/dist/client/assets/{useDebouncedValue-Dz3pyT5q.js → useDebouncedValue-fMFxXx4-.js} +1 -1
  162. package/dist/client/assets/{useFloatingRootContext-CIRRjmkd.js → useFloatingRootContext-P6J9bP_1.js} +1 -1
  163. package/dist/client/assets/{useHandleNewThread-DRoY_cL7.js → useHandleNewThread-C1VSk4Ji.js} +1 -1
  164. package/dist/client/assets/{useLabelableId-nlk2LM0q.js → useLabelableId-ve_G1Djw.js} +1 -1
  165. package/dist/client/assets/{useLocation-TExTri5H.js → useLocation-LUorHj6V.js} +1 -1
  166. package/dist/client/assets/{useOpenInteractionType-Co4_pLo_.js → useOpenInteractionType-BcwkVFGu.js} +1 -1
  167. package/dist/client/assets/{usePhoneThreadActions-CTmdPjGg.js → usePhoneThreadActions--SRv1Gdm.js} +1 -1
  168. package/dist/client/assets/{usePopupViewport-SxCh7dCg.js → usePopupViewport-DyXMbxzY.js} +1 -1
  169. package/dist/client/assets/{useScrollLock-cFFkQSYy.js → useScrollLock-DvPB4gyu.js} +1 -1
  170. package/dist/client/assets/{useStatistics-D8hzpDv4.js → useStatistics-B4vW9Enx.js} +1 -1
  171. package/dist/client/assets/{useSwipeDismiss-ALyKckxx.js → useSwipeDismiss-8zZC4ynu.js} +1 -1
  172. package/dist/client/assets/{useThreadActions-5hLAJAJB.js → useThreadActions-wbcN8Mp3.js} +1 -1
  173. package/dist/client/assets/{useTriggerFocusGuards-lOK7sLv0.js → useTriggerFocusGuards-DI2oAYh0.js} +1 -1
  174. package/dist/client/assets/{useValueChanged-BQLjL43O.js → useValueChanged-DeYQvzxH.js} +1 -1
  175. package/dist/client/assets/{utils-Ct58OPtz.js → utils-Dz7wQZDk.js} +1 -1
  176. package/dist/client/index.html +1 -1
  177. package/dist/{collectUint8StreamText-Bwltp7kn.mjs → collectUint8StreamText-B3klZuIF.mjs} +7 -2
  178. package/dist/{collectUint8StreamText-D0THfPrP.cjs → collectUint8StreamText-CDu-bszH.cjs} +12 -1
  179. package/dist/{makeManagedServerProvider-BMSV4Aim.mjs → makeManagedServerProvider-CsaYHU8T.mjs} +2 -2
  180. package/dist/{makeManagedServerProvider-B7rRjRgd.cjs → makeManagedServerProvider-DeEmDbiq.cjs} +1 -1
  181. package/package.json +1 -1
  182. package/dist/client/assets/DialogRoot-Z8JWsDCS.js +0 -1
  183. package/dist/client/assets/ProviderModelPicker-CWALhPw5.js +0 -1
  184. package/dist/client/assets/main-CgLLEwXi.css +0 -2
  185. package/dist/client/assets/providerInstances-pNPE7SuA.js +0 -1
  186. package/dist/client/assets/providerModels-pNPE7SuA.js +0 -1
  187. package/dist/client/assets/storeSelectors-DMs36CMz.js +0 -1
  188. package/dist/client/assets/types-DMs36CMz.js +0 -1
package/dist/bin.cjs CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
5
- const require_collectUint8StreamText = require("./collectUint8StreamText-D0THfPrP.cjs");
5
+ const require_collectUint8StreamText = require("./collectUint8StreamText-CDu-bszH.cjs");
6
6
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
7
- const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-CR-cmnC-.cjs");
7
+ const require_SourceControlProviderDiscoveryCatalog = require("./SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs");
8
8
  const require_sourceControl = require("./sourceControl-B0D1Op29.cjs");
9
9
  let _effect_platform_node_NodeRuntime = require("@effect/platform-node/NodeRuntime");
10
10
  _effect_platform_node_NodeRuntime = require_rolldown_runtime.__toESM(_effect_platform_node_NodeRuntime, 1);
@@ -2827,6 +2827,10 @@ function comparePrereleaseIdentifier(left, right) {
2827
2827
  if (rightNumeric) return 1;
2828
2828
  return left.localeCompare(right);
2829
2829
  }
2830
+ /** True when `version` parses as a CLI semver (`major.minor[.patch][-pre]`). */
2831
+ function isParseableCliVersion(version) {
2832
+ return parseCliSemver(version) !== null;
2833
+ }
2830
2834
  function compareCliVersions(left, right) {
2831
2835
  const parsedLeft = parseCliSemver(left);
2832
2836
  const parsedRight = parseCliSemver(right);
@@ -3181,7 +3185,7 @@ function makeUpdateState(input) {
3181
3185
  output: input.output ?? null
3182
3186
  };
3183
3187
  }
3184
- const make$22 = effect.Effect.fn("ProviderMaintenanceRunner.make")(function* () {
3188
+ const make$23 = effect.Effect.fn("ProviderMaintenanceRunner.make")(function* () {
3185
3189
  const providerRegistry = yield* ProviderRegistry;
3186
3190
  const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
3187
3191
  const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
@@ -3293,7 +3297,7 @@ const make$22 = effect.Effect.fn("ProviderMaintenanceRunner.make")(function* ()
3293
3297
  });
3294
3298
  return ProviderMaintenanceRunner.of({ updateProvider });
3295
3299
  });
3296
- const layer$19 = effect.Layer.effect(ProviderMaintenanceRunner, make$22());
3300
+ const layer$20 = effect.Layer.effect(ProviderMaintenanceRunner, make$23());
3297
3301
  //#endregion
3298
3302
  //#region src/persistence/Errors.ts
3299
3303
  var PersistenceSqlError = class extends effect.Schema.TaggedError()("PersistenceSqlError", {
@@ -6304,7 +6308,7 @@ function decodeAzureDevOpsJson(raw, schema, operation, invalidDetail) {
6304
6308
  cause: error
6305
6309
  })));
6306
6310
  }
6307
- const make$21 = effect.Effect.fn("makeAzureDevOpsCli")(function* () {
6311
+ const make$22 = effect.Effect.fn("makeAzureDevOpsCli")(function* () {
6308
6312
  const process = yield* require_SourceControlProviderDiscoveryCatalog.VcsProcess;
6309
6313
  const execute = (input) => process.run({
6310
6314
  operation: "AzureDevOpsCli.execute",
@@ -6552,7 +6556,7 @@ const make$21 = effect.Effect.fn("makeAzureDevOpsCli")(function* () {
6552
6556
  }
6553
6557
  });
6554
6558
  });
6555
- const layer$18 = effect.Layer.effect(AzureDevOpsCli, make$21());
6559
+ const layer$19 = effect.Layer.effect(AzureDevOpsCli, make$22());
6556
6560
  //#endregion
6557
6561
  //#region src/sourceControl/bitbucketIssues.ts
6558
6562
  const BitbucketUserSchema$1 = effect.Schema.Struct({
@@ -6808,7 +6812,7 @@ function normalizedOrigin(value) {
6808
6812
  return null;
6809
6813
  }
6810
6814
  }
6811
- const make$20 = effect.Effect.fn("makeAtlassianConnectionService")(function* () {
6815
+ const make$21 = effect.Effect.fn("makeAtlassianConnectionService")(function* () {
6812
6816
  const connections = yield* AtlassianConnectionRepository;
6813
6817
  const resources = yield* AtlassianResourceRepository;
6814
6818
  const projectLinks = yield* ProjectAtlassianLinkRepository;
@@ -6979,7 +6983,7 @@ const make$20 = effect.Effect.fn("makeAtlassianConnectionService")(function* ()
6979
6983
  }))
6980
6984
  });
6981
6985
  });
6982
- const layer$17 = effect.Layer.effect(AtlassianConnectionService, make$20());
6986
+ const layer$18 = effect.Layer.effect(AtlassianConnectionService, make$21());
6983
6987
  //#endregion
6984
6988
  //#region src/git/remoteRefs.ts
6985
6989
  function parseRemoteNamesInGitOrder(stdout) {
@@ -8698,12 +8702,12 @@ const makeVcsDriver = effect.Effect.fn("makeGitVcsDriver")(function* () {
8698
8702
  const driver = yield* makeVcsDriverShape();
8699
8703
  return VcsDriver.of(driver);
8700
8704
  });
8701
- const make$19 = effect.Effect.fn("makeGitVcsDriverService")(function* () {
8705
+ const make$20 = effect.Effect.fn("makeGitVcsDriverService")(function* () {
8702
8706
  const git = yield* makeGitVcsDriverCore();
8703
8707
  return GitVcsDriver.of(git);
8704
8708
  });
8705
8709
  effect.Layer.effect(VcsDriver, makeVcsDriver());
8706
- const layer$16 = effect.Layer.effect(GitVcsDriver, make$19());
8710
+ const layer$17 = effect.Layer.effect(GitVcsDriver, make$20());
8707
8711
  //#endregion
8708
8712
  //#region src/vcs/VcsProjectConfig.ts
8709
8713
  const ProjectVcsConfig = effect.Schema.Struct({
@@ -8722,7 +8726,7 @@ function parseConfig(raw) {
8722
8726
  return null;
8723
8727
  }
8724
8728
  }
8725
- const make$18 = effect.Effect.fn("makeVcsProjectConfig")(function* () {
8729
+ const make$19 = effect.Effect.fn("makeVcsProjectConfig")(function* () {
8726
8730
  const fileSystem = yield* effect.FileSystem.FileSystem;
8727
8731
  const path = yield* effect.Path.Path;
8728
8732
  const findConfigPath = effect.Effect.fn("VcsProjectConfig.findConfigPath")(function* (cwd) {
@@ -8756,7 +8760,7 @@ const make$18 = effect.Effect.fn("makeVcsProjectConfig")(function* () {
8756
8760
  });
8757
8761
  return VcsProjectConfig.of({ resolveKind });
8758
8762
  });
8759
- const layer$15 = effect.Layer.effect(VcsProjectConfig, make$18());
8763
+ const layer$16 = effect.Layer.effect(VcsProjectConfig, make$19());
8760
8764
  //#endregion
8761
8765
  //#region src/vcs/VcsDriverRegistry.ts
8762
8766
  const DETECTION_CACHE_CAPACITY = 2048;
@@ -8781,7 +8785,7 @@ function parseDetectionCacheKey(key) {
8781
8785
  cwd: key.slice(separatorIndex + 1)
8782
8786
  };
8783
8787
  }
8784
- const make$17 = effect.Effect.fn("makeVcsDriverRegistry")(function* () {
8788
+ const make$18 = effect.Effect.fn("makeVcsDriverRegistry")(function* () {
8785
8789
  const projectConfig = yield* VcsProjectConfig;
8786
8790
  const git = yield* makeVcsDriverShape();
8787
8791
  const drivers = { git };
@@ -8830,7 +8834,7 @@ const make$17 = effect.Effect.fn("makeVcsDriverRegistry")(function* () {
8830
8834
  resolve
8831
8835
  });
8832
8836
  });
8833
- const layer$14 = effect.Layer.effect(VcsDriverRegistry, make$17()).pipe(effect.Layer.provide(layer$15));
8837
+ const layer$15 = effect.Layer.effect(VcsDriverRegistry, make$18()).pipe(effect.Layer.provide(layer$16));
8834
8838
  //#endregion
8835
8839
  //#region src/sourceControl/BitbucketApi.ts
8836
8840
  const DEFAULT_API_BASE_URL = "https://api.bitbucket.org/2.0";
@@ -9154,7 +9158,7 @@ function responseError$2(operation, response) {
9154
9158
  detail: body.trim().length > 0 ? `Bitbucket returned HTTP ${response.status}: ${body.trim()}` : `Bitbucket returned HTTP ${response.status}.`
9155
9159
  }))));
9156
9160
  }
9157
- const make$16 = effect.Effect.fn("makeBitbucketApi")(function* () {
9161
+ const make$17 = effect.Effect.fn("makeBitbucketApi")(function* () {
9158
9162
  const config = yield* BitbucketApiEnvConfig;
9159
9163
  const atlassianConnections = yield* AtlassianConnectionRepository;
9160
9164
  const secretStore = yield* ServerSecretStore;
@@ -9495,7 +9499,7 @@ const make$16 = effect.Effect.fn("makeBitbucketApi")(function* () {
9495
9499
  }
9496
9500
  });
9497
9501
  });
9498
- const layer$13 = effect.Layer.effect(BitbucketApi, make$16());
9502
+ const layer$14 = effect.Layer.effect(BitbucketApi, make$17());
9499
9503
  //#endregion
9500
9504
  //#region src/sourceControl/forgejoIssues.ts
9501
9505
  const ForgejoUserSchema = effect.Schema.Struct({
@@ -10016,7 +10020,7 @@ function responseError$1(operation, response) {
10016
10020
  detail: body.trim().length > 0 ? `Forgejo returned HTTP ${response.status}: ${body.trim()}` : `Forgejo returned HTTP ${response.status}.`
10017
10021
  }))));
10018
10022
  }
10019
- const make$15 = effect.Effect.fn("makeForgejoApi")(function* () {
10023
+ const make$16 = effect.Effect.fn("makeForgejoApi")(function* () {
10020
10024
  const config = yield* ForgejoApiEnvConfig;
10021
10025
  const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
10022
10026
  const fileSystem = yield* effect.FileSystem.FileSystem;
@@ -10313,7 +10317,7 @@ const make$15 = effect.Effect.fn("makeForgejoApi")(function* () {
10313
10317
  }
10314
10318
  });
10315
10319
  });
10316
- const layer$12 = effect.Layer.effect(ForgejoApi, make$15());
10320
+ const layer$13 = effect.Layer.effect(ForgejoApi, make$16());
10317
10321
  //#endregion
10318
10322
  //#region src/sourceControl/gitHubReactions.ts
10319
10323
  const RawGitHubReactionGroupSchema = effect.Schema.Struct({
@@ -11447,7 +11451,7 @@ function mergeCommentReactionGroups(comments, groups) {
11447
11451
  };
11448
11452
  });
11449
11453
  }
11450
- const make$14 = effect.Effect.fn("makeGitHubCli")(function* () {
11454
+ const make$15 = effect.Effect.fn("makeGitHubCli")(function* () {
11451
11455
  const process = yield* require_SourceControlProviderDiscoveryCatalog.VcsProcess;
11452
11456
  const execute = (input) => process.run({
11453
11457
  operation: "GitHubCli.execute",
@@ -12028,7 +12032,7 @@ const make$14 = effect.Effect.fn("makeGitHubCli")(function* () {
12028
12032
  }), { normalizeWorkflowRerunErrors: true }).pipe(effect.Effect.asVoid)
12029
12033
  });
12030
12034
  });
12031
- const layer$11 = effect.Layer.effect(GitHubCli, make$14());
12035
+ const layer$12 = effect.Layer.effect(GitHubCli, make$15());
12032
12036
  //#endregion
12033
12037
  //#region src/sourceControl/gitLabIssues.ts
12034
12038
  const GitLabIssueSchema = effect.Schema.Struct({
@@ -12320,7 +12324,7 @@ function parseRepositoryPath(repository) {
12320
12324
  projectPath
12321
12325
  };
12322
12326
  }
12323
- const make$13 = effect.Effect.fn("makeGitLabCli")(function* () {
12327
+ const make$14 = effect.Effect.fn("makeGitLabCli")(function* () {
12324
12328
  const process = yield* require_SourceControlProviderDiscoveryCatalog.VcsProcess;
12325
12329
  const execute = (input) => process.run({
12326
12330
  operation: "GitLabCli.execute",
@@ -12528,7 +12532,7 @@ const make$13 = effect.Effect.fn("makeGitLabCli")(function* () {
12528
12532
  })
12529
12533
  });
12530
12534
  });
12531
- const layer$10 = effect.Layer.effect(GitLabCli, make$13());
12535
+ const layer$11 = effect.Layer.effect(GitLabCli, make$14());
12532
12536
  //#endregion
12533
12537
  //#region src/sourceControl/SourceControlProviderRegistry.ts
12534
12538
  const PROVIDER_DETECTION_CACHE_CAPACITY = 2048;
@@ -12844,7 +12848,7 @@ const makeWithProviders = effect.Effect.fn("makeSourceControlProviderRegistryWit
12844
12848
  })), { concurrency: "unbounded" })
12845
12849
  });
12846
12850
  });
12847
- const make$12 = effect.Effect.fn("makeSourceControlProviderRegistry")(function* () {
12851
+ const make$13 = effect.Effect.fn("makeSourceControlProviderRegistry")(function* () {
12848
12852
  const githubCli = yield* GitHubCli;
12849
12853
  const gitlabCli = yield* GitLabCli;
12850
12854
  const bitbucketApi = yield* BitbucketApi;
@@ -12852,26 +12856,26 @@ const make$12 = effect.Effect.fn("makeSourceControlProviderRegistry")(function*
12852
12856
  const azureDevOpsCli = yield* AzureDevOpsCli;
12853
12857
  const fileSystem = yield* effect.FileSystem.FileSystem;
12854
12858
  const github = yield* makeLazyProvider("github", effect.Effect.tryPromise({
12855
- try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-D9v0HrDd.cjs")),
12859
+ try: () => Promise.resolve().then(() => require("./GitHubSourceControlProvider-BpyIi23Q.cjs")),
12856
12860
  catch: (cause) => providerLoadError("github", cause)
12857
12861
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitHubCli, githubCli), effect.Effect.provideService(effect.FileSystem.FileSystem, fileSystem)));
12858
12862
  const gitlab = yield* makeLazyProvider("gitlab", effect.Effect.tryPromise({
12859
- try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-BTXml3Wh.cjs")),
12863
+ try: () => Promise.resolve().then(() => require("./GitLabSourceControlProvider-QccSsOnx.cjs")),
12860
12864
  catch: (cause) => providerLoadError("gitlab", cause)
12861
12865
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(GitLabCli, gitlabCli)));
12862
12866
  const bitbucket = yield* makeLazyProvider("bitbucket", effect.Effect.tryPromise({
12863
- try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-Bg6lSYm8.cjs")),
12867
+ try: () => Promise.resolve().then(() => require("./BitbucketSourceControlProvider-C3VDp9qR.cjs")),
12864
12868
  catch: (cause) => providerLoadError("bitbucket", cause)
12865
12869
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(BitbucketApi, bitbucketApi)), {
12866
12870
  searchRepositories: true,
12867
12871
  cloneAuthentication: true
12868
12872
  });
12869
12873
  const forgejo = yield* makeLazyProvider("forgejo", effect.Effect.tryPromise({
12870
- try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-SZj0DxRM.cjs")),
12874
+ try: () => Promise.resolve().then(() => require("./ForgejoSourceControlProvider-Dzg-BJY_.cjs")),
12871
12875
  catch: (cause) => providerLoadError("forgejo", cause)
12872
12876
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(ForgejoApi, forgejoApi)));
12873
12877
  const azureDevOps = yield* makeLazyProvider("azure-devops", effect.Effect.tryPromise({
12874
- try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-DAdboLpu.cjs")),
12878
+ try: () => Promise.resolve().then(() => require("./AzureDevOpsSourceControlProvider-D9QXGi1h.cjs")),
12875
12879
  catch: (cause) => providerLoadError("azure-devops", cause)
12876
12880
  }).pipe(effect.Effect.flatMap((module) => module.make()), effect.Effect.provideService(AzureDevOpsCli, azureDevOpsCli)));
12877
12881
  const bitbucketDiscovery = require_SourceControlProviderDiscoveryCatalog.makeBitbucketDiscovery(bitbucketApi);
@@ -12905,7 +12909,7 @@ const make$12 = effect.Effect.fn("makeSourceControlProviderRegistry")(function*
12905
12909
  }
12906
12910
  ]);
12907
12911
  });
12908
- const layer$9 = effect.Layer.effect(SourceControlProviderRegistry, make$12());
12912
+ const layer$10 = effect.Layer.effect(SourceControlProviderRegistry, make$13());
12909
12913
  //#endregion
12910
12914
  //#region src/sourceControl/SourceControlDiscovery.ts
12911
12915
  const VCS_PROBES = [{
@@ -12926,7 +12930,7 @@ const VCS_PROBES = [{
12926
12930
  const DISCOVERY_CACHE_KEY = "source-control-discovery";
12927
12931
  const SOURCE_CONTROL_DISCOVERY_CACHE_TTL = effect.Duration.seconds(5);
12928
12932
  var SourceControlDiscovery = class extends effect.Context.Service()("ryco/source-control/SourceControlDiscovery") {};
12929
- const layer$8 = effect.Layer.effect(SourceControlDiscovery, effect.Effect.gen(function* () {
12933
+ const layer$9 = effect.Layer.effect(SourceControlDiscovery, effect.Effect.gen(function* () {
12930
12934
  const config = yield* require_Metrics.ServerConfig;
12931
12935
  const process = yield* require_SourceControlProviderDiscoveryCatalog.VcsProcess;
12932
12936
  const sourceControlProviders = yield* SourceControlProviderRegistry;
@@ -31727,7 +31731,7 @@ const makeTerminationError = (handle) => effect_Effect.match(handle.exitCode, {
31727
31731
  //#endregion
31728
31732
  //#region ../../packages/effect-codex-app-server/src/client.ts
31729
31733
  var CodexAppServerClient = class extends effect_Context.Service()("effect-codex-app-server/CodexAppServerClient") {};
31730
- const make$11 = effect_Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(function* (stdio, options = {}, terminationError) {
31734
+ const make$12 = effect_Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(function* (stdio, options = {}, terminationError) {
31731
31735
  const requestHandlers = /* @__PURE__ */ new Map();
31732
31736
  const notificationHandlers = /* @__PURE__ */ new Map();
31733
31737
  let unknownRequestHandler;
@@ -31794,7 +31798,7 @@ const make$11 = effect_Effect.fn("effect-codex-app-server/CodexAppServerClient.m
31794
31798
  const layerChildProcess = (handle, options = {}) => {
31795
31799
  const stdio = makeChildStdio(handle);
31796
31800
  const terminationError = makeTerminationError(handle);
31797
- return effect_Layer.effect(CodexAppServerClient, make$11(stdio, options, terminationError));
31801
+ return effect_Layer.effect(CodexAppServerClient, make$12(stdio, options, terminationError));
31798
31802
  };
31799
31803
  const layerCommand = (options) => effect_Layer.effect(CodexAppServerClient, effect_Effect.acquireRelease(effect_Effect.gen(function* () {
31800
31804
  const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
@@ -31810,7 +31814,7 @@ const layerCommand = (options) => effect_Layer.effect(CodexAppServerClient, effe
31810
31814
  command: [options.command, ...options.args ?? []].join(" "),
31811
31815
  cause
31812
31816
  })));
31813
- }), (handle) => handle.kill().pipe(effect_Effect.orDie)).pipe(effect_Effect.flatMap((handle) => make$11(makeChildStdio(handle), options, makeTerminationError(handle)))));
31817
+ }), (handle) => handle.kill().pipe(effect_Effect.orDie)).pipe(effect_Effect.flatMap((handle) => make$12(makeChildStdio(handle), options, makeTerminationError(handle)))));
31814
31818
  //#endregion
31815
31819
  //#region src/processRunner.ts
31816
31820
  function commandLabel(command, args) {
@@ -33325,7 +33329,7 @@ const BUILT_IN_DRIVERS = [
33325
33329
  configSchema: require_collectUint8StreamText.CodexSettings,
33326
33330
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CodexSettings)({}),
33327
33331
  create: (input) => effect.Effect.tryPromise({
33328
- try: () => Promise.resolve().then(() => require("./CodexDriver-CdE1fyKF.cjs")),
33332
+ try: () => Promise.resolve().then(() => require("./CodexDriver-BmKoU7w_.cjs")),
33329
33333
  catch: (cause) => driverImportError(codexDriverKind, input, cause)
33330
33334
  }).pipe(effect.Effect.flatMap(({ CodexDriver }) => CodexDriver.create(input)))
33331
33335
  },
@@ -33339,7 +33343,7 @@ const BUILT_IN_DRIVERS = [
33339
33343
  configSchema: require_collectUint8StreamText.ClaudeSettings,
33340
33344
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.ClaudeSettings)({}),
33341
33345
  create: (input) => effect.Effect.tryPromise({
33342
- try: () => Promise.resolve().then(() => require("./ClaudeDriver-CILJj4bi.cjs")),
33346
+ try: () => Promise.resolve().then(() => require("./ClaudeDriver-DiRhQM2K.cjs")),
33343
33347
  catch: (cause) => driverImportError(claudeDriverKind, input, cause)
33344
33348
  }).pipe(effect.Effect.flatMap(({ ClaudeDriver }) => ClaudeDriver.create(input)))
33345
33349
  },
@@ -33353,7 +33357,7 @@ const BUILT_IN_DRIVERS = [
33353
33357
  configSchema: require_collectUint8StreamText.CopilotSettings,
33354
33358
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CopilotSettings)({}),
33355
33359
  create: (input) => effect.Effect.tryPromise({
33356
- try: () => Promise.resolve().then(() => require("./CopilotDriver-5toln6vu.cjs")),
33360
+ try: () => Promise.resolve().then(() => require("./CopilotDriver-XX5zmGVK.cjs")),
33357
33361
  catch: (cause) => driverImportError(copilotDriverKind, input, cause)
33358
33362
  }).pipe(effect.Effect.flatMap(({ CopilotDriver }) => CopilotDriver.create(input)))
33359
33363
  },
@@ -33367,7 +33371,7 @@ const BUILT_IN_DRIVERS = [
33367
33371
  configSchema: require_collectUint8StreamText.CursorSettings,
33368
33372
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.CursorSettings)({}),
33369
33373
  create: (input) => effect.Effect.tryPromise({
33370
- try: () => Promise.resolve().then(() => require("./CursorDriver-otlL4axb.cjs")),
33374
+ try: () => Promise.resolve().then(() => require("./CursorDriver-CYMXQKec.cjs")),
33371
33375
  catch: (cause) => driverImportError(cursorDriverKind, input, cause)
33372
33376
  }).pipe(effect.Effect.flatMap(({ CursorDriver }) => CursorDriver.create(input)))
33373
33377
  },
@@ -33381,7 +33385,7 @@ const BUILT_IN_DRIVERS = [
33381
33385
  configSchema: require_collectUint8StreamText.GrokSettings,
33382
33386
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.GrokSettings)({}),
33383
33387
  create: (input) => effect.Effect.tryPromise({
33384
- try: () => Promise.resolve().then(() => require("./GrokDriver-BkU6D5ZE.cjs")),
33388
+ try: () => Promise.resolve().then(() => require("./GrokDriver-jE4az7JZ.cjs")),
33385
33389
  catch: (cause) => driverImportError(grokDriverKind, input, cause)
33386
33390
  }).pipe(effect.Effect.flatMap(({ GrokDriver }) => GrokDriver.create(input)))
33387
33391
  },
@@ -33395,7 +33399,7 @@ const BUILT_IN_DRIVERS = [
33395
33399
  configSchema: require_collectUint8StreamText.OpenCodeSettings,
33396
33400
  defaultConfig: () => effect.Schema.decodeSync(require_collectUint8StreamText.OpenCodeSettings)({}),
33397
33401
  create: (input) => effect.Effect.tryPromise({
33398
- try: () => Promise.resolve().then(() => require("./OpenCodeDriver-CXvTVYvY.cjs")),
33402
+ try: () => Promise.resolve().then(() => require("./OpenCodeDriver-IbZqAzYW.cjs")),
33399
33403
  catch: (cause) => driverImportError(openCodeDriverKind, input, cause)
33400
33404
  }).pipe(effect.Effect.flatMap(({ OpenCodeDriver }) => OpenCodeDriver.create(input)))
33401
33405
  }
@@ -34110,7 +34114,7 @@ const scopedSafeTeardown = (label) => (effect$28) => effect.Effect.gen(function*
34110
34114
  });
34111
34115
  //#endregion
34112
34116
  //#region package.json
34113
- var version$1 = "0.1.18";
34117
+ var version$2 = "0.1.20";
34114
34118
  //#endregion
34115
34119
  //#region src/provider/Layers/CodexProvider.ts
34116
34120
  const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
@@ -34280,7 +34284,7 @@ function buildCodexInitializeParams() {
34280
34284
  clientInfo: {
34281
34285
  name: "ryco_desktop",
34282
34286
  title: "Ryco Desktop",
34283
- version: version$1
34287
+ version: version$2
34284
34288
  },
34285
34289
  capabilities: { experimentalApi: true }
34286
34290
  };
@@ -37482,7 +37486,7 @@ const launchDetached = (launch) => effect.Effect.gen(function* () {
37482
37486
  }))));
37483
37487
  });
37484
37488
  });
37485
- const make$10 = effect.Effect.gen(function* () {
37489
+ const make$11 = effect.Effect.gen(function* () {
37486
37490
  const open = yield* effect.Effect.tryPromise({
37487
37491
  try: () => import("open"),
37488
37492
  catch: (cause) => new require_collectUint8StreamText.OpenError({
@@ -37501,7 +37505,7 @@ const make$10 = effect.Effect.gen(function* () {
37501
37505
  openInEditor: (input) => effect.Effect.flatMap(resolveEditorLaunch(input), launchDetached)
37502
37506
  };
37503
37507
  });
37504
- const OpenLive = effect.Layer.effect(Open, make$10);
37508
+ const OpenLive = effect.Layer.effect(Open, make$11);
37505
37509
  //#endregion
37506
37510
  //#region src/orchestration/Services/OrchestrationEngine.ts
37507
37511
  /**
@@ -40976,7 +40980,7 @@ const makeTextGenerationFromRegistry = (registry) => ({
40976
40980
  generateIssueContent: (input) => resolveInstance(registry, "generateIssueContent", input.modelSelection.instanceId).pipe(effect.Effect.flatMap((textGeneration) => textGeneration.generateIssueContent(input))),
40977
40981
  rankInboxThreads: (input) => resolveInstance(registry, "rankInboxThreads", input.modelSelection.instanceId).pipe(effect.Effect.flatMap((textGeneration) => textGeneration.rankInboxThreads(input)))
40978
40982
  });
40979
- const layer$7 = effect.Layer.effect(TextGeneration, effect.Effect.gen(function* () {
40983
+ const layer$8 = effect.Layer.effect(TextGeneration, effect.Effect.gen(function* () {
40980
40984
  const registry = yield* ProviderInstanceRegistry;
40981
40985
  return makeTextGenerationFromRegistry(registry);
40982
40986
  }));
@@ -42101,7 +42105,7 @@ const makeGitManager = effect.Effect.fn("makeGitManager")(function* () {
42101
42105
  })
42102
42106
  };
42103
42107
  });
42104
- const layer$6 = effect.Layer.effect(GitManager, makeGitManager());
42108
+ const layer$7 = effect.Layer.effect(GitManager, makeGitManager());
42105
42109
  //#endregion
42106
42110
  //#region src/git/GitWorkflowService.ts
42107
42111
  var GitWorkflowService = class extends effect.Context.Service()("ryco/git/GitWorkflowService") {};
@@ -42148,7 +42152,7 @@ function nonRepositoryListRefs() {
42148
42152
  totalCount: 0
42149
42153
  };
42150
42154
  }
42151
- const make$9 = effect.Effect.fn("makeGitWorkflowService")(function* () {
42155
+ const make$10 = effect.Effect.fn("makeGitWorkflowService")(function* () {
42152
42156
  const registry = yield* VcsDriverRegistry;
42153
42157
  const git = yield* GitVcsDriver;
42154
42158
  const gitManager = yield* GitManager;
@@ -42203,7 +42207,7 @@ const make$9 = effect.Effect.fn("makeGitWorkflowService")(function* () {
42203
42207
  renameBranch: (input) => ensureGit("GitWorkflowService.renameBranch", input.cwd).pipe(effect.Effect.andThen(git.renameBranch(input)))
42204
42208
  });
42205
42209
  });
42206
- const layer$5 = effect.Layer.effect(GitWorkflowService, make$9());
42210
+ const layer$6 = effect.Layer.effect(GitWorkflowService, make$10());
42207
42211
  //#endregion
42208
42212
  //#region src/vcs/VcsStatusBroadcaster.ts
42209
42213
  const DEFAULT_VCS_STATUS_REFRESH_INTERVAL = effect.Duration.seconds(30);
@@ -42227,7 +42231,7 @@ function remoteRefreshFailureDelay(consecutiveFailures, configuredInterval) {
42227
42231
  const cappedBackoff = effect.Duration.min(effect.Duration.millis(backoffMs), VCS_STATUS_REFRESH_FAILURE_MAX_DELAY);
42228
42232
  return effect.Duration.max(configuredInterval, cappedBackoff);
42229
42233
  }
42230
- const layer$4 = effect.Layer.effect(VcsStatusBroadcaster, effect.Effect.gen(function* () {
42234
+ const layer$5 = effect.Layer.effect(VcsStatusBroadcaster, effect.Effect.gen(function* () {
42231
42235
  const workflow = yield* GitWorkflowService;
42232
42236
  const changesPubSub = yield* effect.Effect.acquireRelease(effect.PubSub.sliding(64), (pubsub) => effect.PubSub.shutdown(pubsub));
42233
42237
  const broadcasterScope = yield* effect.Effect.acquireRelease(effect.Scope.make(), (scope) => effect.Scope.close(scope, effect.Exit.void));
@@ -42437,7 +42441,7 @@ function resolveRequestedKind(kind) {
42437
42441
  }));
42438
42442
  return effect.Effect.succeed(kind);
42439
42443
  }
42440
- const make$8 = effect.Effect.fn("makeVcsProvisioningService")(function* () {
42444
+ const make$9 = effect.Effect.fn("makeVcsProvisioningService")(function* () {
42441
42445
  const registry = yield* VcsDriverRegistry;
42442
42446
  const initRepository = effect.Effect.fn("VcsProvisioningService.initRepository")(function* (input) {
42443
42447
  const kind = yield* resolveRequestedKind(input.kind);
@@ -42445,7 +42449,7 @@ const make$8 = effect.Effect.fn("makeVcsProvisioningService")(function* () {
42445
42449
  });
42446
42450
  return VcsProvisioningService.of({ initRepository });
42447
42451
  });
42448
- const layer$3 = effect.Layer.effect(VcsProvisioningService, make$8());
42452
+ const layer$4 = effect.Layer.effect(VcsProvisioningService, make$9());
42449
42453
  //#endregion
42450
42454
  //#region src/project/Services/RepositoryIdentityResolver.ts
42451
42455
  var RepositoryIdentityResolver = class extends effect.Context.Service()("ryco/project/Services/RepositoryIdentityResolver") {};
@@ -42692,7 +42696,7 @@ function removeUrlCredentials(remoteUrl) {
42692
42696
  return remoteUrl;
42693
42697
  }
42694
42698
  }
42695
- const make$7 = effect.Effect.fn("makeSourceControlRepositoryService")(function* () {
42699
+ const make$8 = effect.Effect.fn("makeSourceControlRepositoryService")(function* () {
42696
42700
  const config = yield* require_Metrics.ServerConfig;
42697
42701
  const fileSystem = yield* effect.FileSystem.FileSystem;
42698
42702
  const git = yield* GitVcsDriver;
@@ -42937,7 +42941,7 @@ const make$7 = effect.Effect.fn("makeSourceControlRepositoryService")(function*
42937
42941
  publishRepository: (input) => publishRepository(input).pipe(mapRepositoryError("publishRepository", input.provider))
42938
42942
  });
42939
42943
  });
42940
- const layer$2 = effect.Layer.effect(SourceControlRepositoryService, make$7());
42944
+ const layer$3 = effect.Layer.effect(SourceControlRepositoryService, make$8());
42941
42945
  //#endregion
42942
42946
  //#region src/auth/Services/BootstrapCredentialService.ts
42943
42947
  var BootstrapCredentialError = class extends effect.Data.TaggedError("BootstrapCredentialError") {};
@@ -43457,7 +43461,7 @@ function mapActivity(changelog) {
43457
43461
  return mapped;
43458
43462
  }).filter((entry) => entry.items.length > 0);
43459
43463
  }
43460
- const make$6 = effect.Effect.fn("makeJiraWorkItemService")(function* () {
43464
+ const make$7 = effect.Effect.fn("makeJiraWorkItemService")(function* () {
43461
43465
  const connections = yield* AtlassianConnectionRepository;
43462
43466
  const projectLinks = yield* ProjectAtlassianLinkRepository;
43463
43467
  const secretStore = yield* ServerSecretStore;
@@ -43713,7 +43717,7 @@ const make$6 = effect.Effect.fn("makeJiraWorkItemService")(function* () {
43713
43717
  })
43714
43718
  });
43715
43719
  });
43716
- const layer$1 = effect.Layer.effect(JiraWorkItemService, make$6());
43720
+ const layer$2 = effect.Layer.effect(JiraWorkItemService, make$7());
43717
43721
  //#endregion
43718
43722
  //#region src/remote/Services/AdvertisedEndpointRegistry.ts
43719
43723
  var AdvertisedEndpointRegistry = class extends effect.Context.Service()("ryco/remote/Services/AdvertisedEndpointRegistry") {};
@@ -49512,7 +49516,7 @@ const makeContextHandoffRepository = effect.Effect.gen(function* () {
49512
49516
  const ContextHandoffRepositoryLive = effect.Layer.effect(ContextHandoffRepository, makeContextHandoffRepository);
49513
49517
  //#endregion
49514
49518
  //#region src/ws.ts
49515
- const makeServerWsRpcLayer = (principal) => makeWsRpcLayer(principal).pipe(effect.Layer.provide(ContextHandoffInspectionLive.pipe(effect.Layer.provide(ContextHandoffRepositoryLive), effect.Layer.provide(layerConfig))), effect.Layer.provideMerge(effect_unstable_rpc.RpcSerialization.layerJson), effect.Layer.provide(layer$19), effect.Layer.provide(layer$8.pipe(effect.Layer.provide(layer$9.pipe(effect.Layer.provide(effect.Layer.mergeAll(layer$18, layer$13, layer$12, layer$11, layer$10)), effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(layerConfig), effect.Layer.provide(ServerSecretStoreLive), effect.Layer.provideMerge(layer$16), effect.Layer.provide(layer$14.pipe(effect.Layer.provide(layer$15))))), effect.Layer.provide(require_SourceControlProviderDiscoveryCatalog.layer))));
49519
+ const makeServerWsRpcLayer = (principal) => makeWsRpcLayer(principal).pipe(effect.Layer.provide(ContextHandoffInspectionLive.pipe(effect.Layer.provide(ContextHandoffRepositoryLive), effect.Layer.provide(layerConfig))), effect.Layer.provideMerge(effect_unstable_rpc.RpcSerialization.layerJson), effect.Layer.provide(layer$20), effect.Layer.provide(layer$9.pipe(effect.Layer.provide(layer$10.pipe(effect.Layer.provide(effect.Layer.mergeAll(layer$19, layer$14, layer$13, layer$12, layer$11)), effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(layerConfig), effect.Layer.provide(ServerSecretStoreLive), effect.Layer.provideMerge(layer$17), effect.Layer.provide(layer$15.pipe(effect.Layer.provide(layer$16))))), effect.Layer.provide(require_SourceControlProviderDiscoveryCatalog.layer))));
49516
49520
  const websocketRpcRouteLayer = effect.Layer.unwrap(effect.Effect.succeed(effect_unstable_http.HttpRouter.add("GET", "/ws", effect.Effect.gen(function* () {
49517
49521
  const request = yield* effect_unstable_http.HttpServerRequest.HttpServerRequest;
49518
49522
  const serverAuth = yield* ServerAuth;
@@ -70994,7 +70998,7 @@ var RelaySendQueue = class {
70994
70998
  * *is* the negotiated version of every channel on the connection, and a contract
70995
70999
  * bump moves both together instead of leaving a stale literal behind.
70996
71000
  */
70997
- const version = {
71001
+ const version$1 = {
70998
71002
  protocolMajor: 1,
70999
71003
  protocolMinor: 2
71000
71004
  };
@@ -71116,7 +71120,7 @@ var RelayChannelRegistry = class {
71116
71120
  entry.graceFrames = 0;
71117
71121
  this.#enqueueControl({
71118
71122
  type: "flow.resume",
71119
- ...version,
71123
+ ...version$1,
71120
71124
  channelId: entry.channelId
71121
71125
  });
71122
71126
  }
@@ -71177,7 +71181,7 @@ var RelayChannelRegistry = class {
71177
71181
  try {
71178
71182
  if (options.notifyPeer ?? reason !== void 0) this.#enqueueControl({
71179
71183
  type: "channel.close",
71180
- ...version,
71184
+ ...version$1,
71181
71185
  channelId,
71182
71186
  ...reason === void 0 ? {} : { reason }
71183
71187
  });
@@ -71285,7 +71289,7 @@ var RelayChannelRegistry = class {
71285
71289
  if (this.#stopping || frame.capability !== "ryco.rpc" || frame.effectiveRole === void 0 || this.#channels.size + this.#preparing.size >= this.#limits.maxChannels || this.#channels.has(key) || this.#preparing.has(key)) {
71286
71290
  this.#enqueueControl({
71287
71291
  type: "channel.reject",
71288
- ...version,
71292
+ ...version$1,
71289
71293
  channelId: frame.channelId,
71290
71294
  reason: this.#stopping ? "server_draining" : "channel_rejected"
71291
71295
  });
@@ -71308,7 +71312,7 @@ var RelayChannelRegistry = class {
71308
71312
  if (prepared.kind === "error") return this.#refuse(frame.channelId, prepared.reason, options);
71309
71313
  if (!this.#sendQueue.enqueueDataBatch(prepared.payloads.map((payload, index) => ({
71310
71314
  type: "data",
71311
- ...version,
71315
+ ...version$1,
71312
71316
  channelId: frame.channelId,
71313
71317
  sequence: outputSequence + index,
71314
71318
  payload: Uint8Array.from(payload)
@@ -71344,7 +71348,7 @@ var RelayChannelRegistry = class {
71344
71348
  channelId: frame.channelId,
71345
71349
  capability: frame.capability,
71346
71350
  effectiveRole: role,
71347
- ...version,
71351
+ ...version$1,
71348
71352
  connection: this.#connection,
71349
71353
  send,
71350
71354
  admit,
@@ -71372,7 +71376,7 @@ var RelayChannelRegistry = class {
71372
71376
  this.#channels.set(key, entry);
71373
71377
  this.#enqueueControl({
71374
71378
  type: "channel.accept",
71375
- ...version,
71379
+ ...version$1,
71376
71380
  channelId: frame.channelId
71377
71381
  });
71378
71382
  } catch (error) {
@@ -71383,7 +71387,7 @@ var RelayChannelRegistry = class {
71383
71387
  }
71384
71388
  this.#enqueueControl({
71385
71389
  type: "channel.reject",
71386
- ...version,
71390
+ ...version$1,
71387
71391
  channelId: frame.channelId,
71388
71392
  reason: this.#stopping ? "server_draining" : "channel_rejected"
71389
71393
  });
@@ -71433,7 +71437,7 @@ var RelayChannelRegistry = class {
71433
71437
  entry.graceFrames = 0;
71434
71438
  this.#enqueueControl({
71435
71439
  type: "flow.pause",
71436
- ...version,
71440
+ ...version$1,
71437
71441
  channelId: frame.channelId
71438
71442
  });
71439
71443
  }
@@ -75410,7 +75414,7 @@ const makeAnalyticsService = effect.Effect.gen(function* () {
75410
75414
  platform: process.platform,
75411
75415
  wsl: process.env.WSL_DISTRO_NAME,
75412
75416
  arch: process.arch,
75413
- rycoVersion: version$1,
75417
+ rycoVersion: version$2,
75414
75418
  clientType
75415
75419
  },
75416
75420
  timestamp: event.capturedAt
@@ -75877,17 +75881,42 @@ var AsyncRotatingFileSink = class {
75877
75881
  function isMissingFileError(error) {
75878
75882
  return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
75879
75883
  }
75880
- //#endregion
75881
- //#region src/provider/Layers/EventNdjsonLogger.ts
75884
+ const EVENT_LOG_FILE_PATTERN = /\.log(?:\.\d+)?$/;
75882
75885
  /**
75883
- * Provider event logger helper.
75884
- *
75885
- * Best-effort writer for observability logs. Each record is formatted as a
75886
- * single effect-style text line in a thread-scoped file. Failures are
75887
- * downgraded to warnings so provider runtime behavior is unaffected.
75886
+ * Best-effort deletion of `*.log` / `*.log.N` files in `directory` whose
75887
+ * mtime is older than the retention window. Returns the number of files
75888
+ * removed. Never fails: unreadable directories or races with rotation are
75889
+ * downgraded to a warning / skipped file.
75888
75890
  */
75891
+ const sweepStaleEventLogs = effect.Effect.fn("sweepStaleEventLogs")(function* (directory, options) {
75892
+ const maxAgeMs = options?.maxAgeMs ?? 2592e6;
75893
+ const cutoffMs = (options?.now ?? Date.now()) - maxAgeMs;
75894
+ const removed = yield* effect.Effect.tryPromise(async () => {
75895
+ const entries = await node_fs.default.promises.readdir(directory, { withFileTypes: true });
75896
+ let count = 0;
75897
+ for (const entry of entries) {
75898
+ if (!entry.isFile() || !EVENT_LOG_FILE_PATTERN.test(entry.name)) continue;
75899
+ const filePath = node_path.default.join(directory, entry.name);
75900
+ try {
75901
+ if ((await node_fs.default.promises.stat(filePath)).mtimeMs < cutoffMs) {
75902
+ await node_fs.default.promises.unlink(filePath);
75903
+ count += 1;
75904
+ }
75905
+ } catch {}
75906
+ }
75907
+ return count;
75908
+ }).pipe(effect.Effect.catch((error) => logWarning("failed to sweep stale provider event logs", {
75909
+ directory,
75910
+ error
75911
+ }).pipe(effect.Effect.as(0))));
75912
+ if (removed > 0) yield* effect.Effect.logInfo("swept stale provider event logs", {
75913
+ directory,
75914
+ removed
75915
+ }).pipe(effect.Effect.annotateLogs({ scope: LOG_SCOPE }));
75916
+ return removed;
75917
+ });
75889
75918
  const DEFAULT_MAX_BYTES = 10485760;
75890
- const DEFAULT_MAX_FILES = 10;
75919
+ const DEFAULT_MAX_FILES = 3;
75891
75920
  const DEFAULT_BATCH_WINDOW_MS = 200;
75892
75921
  const DEFAULT_MAX_QUEUE_SIZE = 2048;
75893
75922
  const GLOBAL_THREAD_SEGMENT = "_global";
@@ -76093,8 +76122,9 @@ const makeEventNdjsonLogger = effect.Effect.fn("makeEventNdjsonLogger")(function
76093
76122
  if (state.failedSegments.has(threadSegment)) return effect.Effect.succeed([void 0, state]);
76094
76123
  const existing = state.threadWriters.get(threadSegment);
76095
76124
  if (existing) return effect.Effect.succeed([existing, state]);
76125
+ const streamSuffix = options.stream === "native" ? ".native" : "";
76096
76126
  return makeThreadWriter({
76097
- filePath: node_path.default.join(node_path.default.dirname(filePath), `${threadSegment}.log`),
76127
+ filePath: node_path.default.join(node_path.default.dirname(filePath), `${threadSegment}${streamSuffix}.log`),
76098
76128
  maxBytes,
76099
76129
  maxFiles,
76100
76130
  batchWindowMs,
@@ -76187,12 +76217,865 @@ var ProviderEventLoggers = class extends effect.Context.Service()("ryco/provider
76187
76217
  */
76188
76218
  const ProviderEventLoggersLive = effect.Layer.effect(ProviderEventLoggers, effect.Effect.gen(function* () {
76189
76219
  const { providerEventLogPath } = yield* require_Metrics.ServerConfig;
76220
+ yield* effect.Effect.forkScoped(sweepStaleEventLogs(node_path.default.dirname(providerEventLogPath)));
76190
76221
  return {
76191
76222
  native: yield* makeEventNdjsonLogger(providerEventLogPath, { stream: "native" }),
76192
76223
  canonical: yield* makeEventNdjsonLogger(providerEventLogPath, { stream: "canonical" })
76193
76224
  };
76194
76225
  }));
76195
76226
  //#endregion
76227
+ //#region src/provider/ClaudeModelManifest.ts
76228
+ /**
76229
+ * ClaudeModelManifest — allowlisted adapter payloads for the Claude entries
76230
+ * of `model-manifest.json`.
76231
+ *
76232
+ * The generic manifest treats `adapter` fields as opaque; this module gives
76233
+ * them a Claude-specific shape:
76234
+ *
76235
+ * - profile adapters carry runtime behavior shared by models on a profile
76236
+ * (CLI effort remapping, api-model-id suffixes, context-window token
76237
+ * tables — the token tables are currently unused by Ryco, which reads
76238
+ * window sizes from runtime usage events, but stay in the format so the
76239
+ * file remains interchangeable with upstream t3code manifests);
76240
+ * - model adapters carry Claude Code CLI version compatibility gates.
76241
+ *
76242
+ * Ported from pingdotgg/t3code (PR #9084), adapted to Ryco's CLI-version
76243
+ * helpers.
76244
+ */
76245
+ const ClaudeCodeProfileSchema = effect.Schema.Struct({
76246
+ /**
76247
+ * Maps a resolved effort selection onto the value passed to the Claude CLI.
76248
+ * `null` means "pass no effort flag" for that selection.
76249
+ */
76250
+ effortMap: effect.Schema.optional(effect.Schema.Record(require_collectUint8StreamText.TrimmedNonEmptyString, effect.Schema.NullOr(require_collectUint8StreamText.TrimmedNonEmptyString))),
76251
+ /** Per-option-value api-model-id suffixes, e.g. `{ contextWindow: { "1m": "[1m]" } }`. */
76252
+ modelSuffixes: effect.Schema.optional(effect.Schema.Record(require_collectUint8StreamText.TrimmedNonEmptyString, effect.Schema.Record(require_collectUint8StreamText.TrimmedNonEmptyString, require_collectUint8StreamText.TrimmedNonEmptyString))),
76253
+ contextWindowTokens: effect.Schema.optional(effect.Schema.Record(require_collectUint8StreamText.TrimmedNonEmptyString, effect.Schema.Number)),
76254
+ fixedContextWindowTokens: effect.Schema.optional(effect.Schema.Number)
76255
+ });
76256
+ const ClaudeProfileAdapterSchema = effect.Schema.Struct({ claudeCode: effect.Schema.optional(ClaudeCodeProfileSchema) });
76257
+ const ClaudeVersionSchema = require_collectUint8StreamText.TrimmedNonEmptyString.pipe(effect.Schema.check(effect.Schema.makeFilter((version) => isParseableCliVersion(version), { expected: "a supported semantic version" })));
76258
+ const ClaudeCodeCompatibilitySchema = effect.Schema.Struct({
76259
+ minVersion: effect.Schema.optional(ClaudeVersionSchema),
76260
+ maxVersionExclusive: effect.Schema.optional(ClaudeVersionSchema)
76261
+ }).pipe(effect.Schema.check(effect.Schema.makeFilter(({ minVersion, maxVersionExclusive }) => minVersion === void 0 || maxVersionExclusive === void 0 || compareCliVersions(minVersion, maxVersionExclusive) < 0, { expected: "a minimum version below the exclusive maximum version" })));
76262
+ const ClaudeModelAdapterSchema = effect.Schema.Struct({ claudeCode: effect.Schema.optional(ClaudeCodeCompatibilitySchema) });
76263
+ const decodeClaudeProfileAdapter = effect.Schema.decodeUnknownOption(ClaudeProfileAdapterSchema);
76264
+ const decodeClaudeModelAdapter = effect.Schema.decodeUnknownOption(ClaudeModelAdapterSchema);
76265
+ /**
76266
+ * Manifest-level validation hook: a manifest whose Claude adapter payloads do
76267
+ * not decode is rejected wholesale, so a bad remote edit falls back to the
76268
+ * bundled manifest instead of silently dropping runtime behavior.
76269
+ */
76270
+ function hasValidClaudeManifestAdapters(manifest) {
76271
+ const catalog = manifest.providers?.claudeAgent;
76272
+ if (!catalog) return true;
76273
+ return Object.values(catalog.profiles).every((profile) => effect.Option.isSome(decodeClaudeProfileAdapter(profile.adapter ?? {}))) && catalog.models.every((model) => effect.Option.isSome(decodeClaudeModelAdapter(model.adapter ?? {})));
76274
+ }
76275
+ //#endregion
76276
+ //#region src/provider/model-manifest.json
76277
+ var model_manifest_default = {
76278
+ version: 1,
76279
+ currentModels: {
76280
+ "codex": [
76281
+ "gpt-5.6-luna",
76282
+ "gpt-5.6-terra",
76283
+ "gpt-5.6-sol"
76284
+ ],
76285
+ "claudeAgent": [
76286
+ "claude-fable-5-1",
76287
+ "claude-opus-5",
76288
+ "claude-sonnet-5"
76289
+ ]
76290
+ },
76291
+ providers: { "claudeAgent": {
76292
+ "defaults": { "chat": "claude-opus-5" },
76293
+ "profiles": {
76294
+ "fable-5-1": {
76295
+ "capabilities": { "optionDescriptors": [{
76296
+ "id": "effort",
76297
+ "label": "Reasoning",
76298
+ "type": "select",
76299
+ "options": [
76300
+ {
76301
+ "id": "low",
76302
+ "label": "Low"
76303
+ },
76304
+ {
76305
+ "id": "medium",
76306
+ "label": "Medium"
76307
+ },
76308
+ {
76309
+ "id": "high",
76310
+ "label": "High",
76311
+ "isDefault": true
76312
+ },
76313
+ {
76314
+ "id": "xhigh",
76315
+ "label": "Extra High"
76316
+ },
76317
+ {
76318
+ "id": "max",
76319
+ "label": "Max"
76320
+ },
76321
+ {
76322
+ "id": "ultracode",
76323
+ "label": "Ultracode"
76324
+ },
76325
+ {
76326
+ "id": "ultrathink",
76327
+ "label": "Ultrathink"
76328
+ }
76329
+ ],
76330
+ "promptInjectedValues": ["ultrathink"]
76331
+ }, {
76332
+ "id": "contextWindow",
76333
+ "label": "Context Window",
76334
+ "type": "select",
76335
+ "options": [{
76336
+ "id": "200k",
76337
+ "label": "200k"
76338
+ }, {
76339
+ "id": "1m",
76340
+ "label": "1M",
76341
+ "isDefault": true
76342
+ }]
76343
+ }] },
76344
+ "adapter": { "claudeCode": {
76345
+ "effortMap": {
76346
+ "ultracode": "xhigh",
76347
+ "ultrathink": null
76348
+ },
76349
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76350
+ "contextWindowTokens": {
76351
+ "200k": 2e5,
76352
+ "1m": 1e6
76353
+ }
76354
+ } }
76355
+ },
76356
+ "fable-5": {
76357
+ "capabilities": { "optionDescriptors": [{
76358
+ "id": "effort",
76359
+ "label": "Reasoning",
76360
+ "type": "select",
76361
+ "options": [
76362
+ {
76363
+ "id": "low",
76364
+ "label": "Low"
76365
+ },
76366
+ {
76367
+ "id": "medium",
76368
+ "label": "Medium"
76369
+ },
76370
+ {
76371
+ "id": "high",
76372
+ "label": "High",
76373
+ "isDefault": true
76374
+ },
76375
+ {
76376
+ "id": "xhigh",
76377
+ "label": "Extra High"
76378
+ },
76379
+ {
76380
+ "id": "max",
76381
+ "label": "Max"
76382
+ },
76383
+ {
76384
+ "id": "ultracode",
76385
+ "label": "Ultracode"
76386
+ },
76387
+ {
76388
+ "id": "ultrathink",
76389
+ "label": "Ultrathink"
76390
+ }
76391
+ ],
76392
+ "promptInjectedValues": ["ultrathink"]
76393
+ }] },
76394
+ "adapter": { "claudeCode": {
76395
+ "effortMap": {
76396
+ "ultracode": "xhigh",
76397
+ "ultrathink": null
76398
+ },
76399
+ "fixedContextWindowTokens": 1e6
76400
+ } }
76401
+ },
76402
+ "opus-5": {
76403
+ "capabilities": { "optionDescriptors": [
76404
+ {
76405
+ "id": "effort",
76406
+ "label": "Reasoning",
76407
+ "type": "select",
76408
+ "options": [
76409
+ {
76410
+ "id": "low",
76411
+ "label": "Low"
76412
+ },
76413
+ {
76414
+ "id": "medium",
76415
+ "label": "Medium"
76416
+ },
76417
+ {
76418
+ "id": "high",
76419
+ "label": "High",
76420
+ "isDefault": true
76421
+ },
76422
+ {
76423
+ "id": "xhigh",
76424
+ "label": "Extra High"
76425
+ },
76426
+ {
76427
+ "id": "max",
76428
+ "label": "Max"
76429
+ },
76430
+ {
76431
+ "id": "ultracode",
76432
+ "label": "Ultracode"
76433
+ },
76434
+ {
76435
+ "id": "ultrathink",
76436
+ "label": "Ultrathink"
76437
+ }
76438
+ ],
76439
+ "promptInjectedValues": ["ultrathink"]
76440
+ },
76441
+ {
76442
+ "id": "fastMode",
76443
+ "label": "Fast Mode",
76444
+ "type": "boolean"
76445
+ },
76446
+ {
76447
+ "id": "contextWindow",
76448
+ "label": "Context Window",
76449
+ "type": "select",
76450
+ "options": [{
76451
+ "id": "200k",
76452
+ "label": "200k"
76453
+ }, {
76454
+ "id": "1m",
76455
+ "label": "1M",
76456
+ "isDefault": true
76457
+ }]
76458
+ }
76459
+ ] },
76460
+ "adapter": { "claudeCode": {
76461
+ "effortMap": {
76462
+ "ultracode": "xhigh",
76463
+ "ultrathink": null
76464
+ },
76465
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76466
+ "contextWindowTokens": {
76467
+ "200k": 2e5,
76468
+ "1m": 1e6
76469
+ }
76470
+ } }
76471
+ },
76472
+ "opus-4-8": {
76473
+ "capabilities": { "optionDescriptors": [
76474
+ {
76475
+ "id": "effort",
76476
+ "label": "Reasoning",
76477
+ "type": "select",
76478
+ "options": [
76479
+ {
76480
+ "id": "low",
76481
+ "label": "Low"
76482
+ },
76483
+ {
76484
+ "id": "medium",
76485
+ "label": "Medium"
76486
+ },
76487
+ {
76488
+ "id": "high",
76489
+ "label": "High",
76490
+ "isDefault": true
76491
+ },
76492
+ {
76493
+ "id": "xhigh",
76494
+ "label": "Extra High"
76495
+ },
76496
+ {
76497
+ "id": "max",
76498
+ "label": "Max"
76499
+ },
76500
+ {
76501
+ "id": "ultracode",
76502
+ "label": "Ultracode"
76503
+ },
76504
+ {
76505
+ "id": "ultrathink",
76506
+ "label": "Ultrathink"
76507
+ }
76508
+ ],
76509
+ "promptInjectedValues": ["ultrathink"]
76510
+ },
76511
+ {
76512
+ "id": "fastMode",
76513
+ "label": "Fast Mode",
76514
+ "type": "boolean"
76515
+ },
76516
+ {
76517
+ "id": "contextWindow",
76518
+ "label": "Context Window",
76519
+ "type": "select",
76520
+ "options": [{
76521
+ "id": "200k",
76522
+ "label": "200k",
76523
+ "isDefault": true
76524
+ }, {
76525
+ "id": "1m",
76526
+ "label": "1M"
76527
+ }]
76528
+ }
76529
+ ] },
76530
+ "adapter": { "claudeCode": {
76531
+ "effortMap": {
76532
+ "ultracode": "xhigh",
76533
+ "ultrathink": null
76534
+ },
76535
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76536
+ "contextWindowTokens": {
76537
+ "200k": 2e5,
76538
+ "1m": 1e6
76539
+ }
76540
+ } }
76541
+ },
76542
+ "opus-4-7": {
76543
+ "capabilities": { "optionDescriptors": [
76544
+ {
76545
+ "id": "effort",
76546
+ "label": "Reasoning",
76547
+ "type": "select",
76548
+ "options": [
76549
+ {
76550
+ "id": "low",
76551
+ "label": "Low"
76552
+ },
76553
+ {
76554
+ "id": "medium",
76555
+ "label": "Medium"
76556
+ },
76557
+ {
76558
+ "id": "high",
76559
+ "label": "High"
76560
+ },
76561
+ {
76562
+ "id": "xhigh",
76563
+ "label": "Extra High",
76564
+ "isDefault": true
76565
+ },
76566
+ {
76567
+ "id": "max",
76568
+ "label": "Max"
76569
+ },
76570
+ {
76571
+ "id": "ultrathink",
76572
+ "label": "Ultrathink"
76573
+ }
76574
+ ],
76575
+ "promptInjectedValues": ["ultrathink"]
76576
+ },
76577
+ {
76578
+ "id": "fastMode",
76579
+ "label": "Fast Mode",
76580
+ "type": "boolean"
76581
+ },
76582
+ {
76583
+ "id": "contextWindow",
76584
+ "label": "Context Window",
76585
+ "type": "select",
76586
+ "options": [{
76587
+ "id": "200k",
76588
+ "label": "200k",
76589
+ "isDefault": true
76590
+ }, {
76591
+ "id": "1m",
76592
+ "label": "1M"
76593
+ }]
76594
+ }
76595
+ ] },
76596
+ "adapter": { "claudeCode": {
76597
+ "effortMap": { "ultrathink": null },
76598
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76599
+ "contextWindowTokens": {
76600
+ "200k": 2e5,
76601
+ "1m": 1e6
76602
+ }
76603
+ } }
76604
+ },
76605
+ "opus-4-6": {
76606
+ "capabilities": { "optionDescriptors": [
76607
+ {
76608
+ "id": "effort",
76609
+ "label": "Reasoning",
76610
+ "type": "select",
76611
+ "options": [
76612
+ {
76613
+ "id": "low",
76614
+ "label": "Low"
76615
+ },
76616
+ {
76617
+ "id": "medium",
76618
+ "label": "Medium"
76619
+ },
76620
+ {
76621
+ "id": "high",
76622
+ "label": "High",
76623
+ "isDefault": true
76624
+ },
76625
+ {
76626
+ "id": "max",
76627
+ "label": "Max"
76628
+ },
76629
+ {
76630
+ "id": "ultrathink",
76631
+ "label": "Ultrathink"
76632
+ }
76633
+ ],
76634
+ "promptInjectedValues": ["ultrathink"]
76635
+ },
76636
+ {
76637
+ "id": "fastMode",
76638
+ "label": "Fast Mode",
76639
+ "type": "boolean"
76640
+ },
76641
+ {
76642
+ "id": "contextWindow",
76643
+ "label": "Context Window",
76644
+ "type": "select",
76645
+ "options": [{
76646
+ "id": "200k",
76647
+ "label": "200k",
76648
+ "isDefault": true
76649
+ }, {
76650
+ "id": "1m",
76651
+ "label": "1M"
76652
+ }]
76653
+ }
76654
+ ] },
76655
+ "adapter": { "claudeCode": {
76656
+ "effortMap": { "ultrathink": null },
76657
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76658
+ "contextWindowTokens": {
76659
+ "200k": 2e5,
76660
+ "1m": 1e6
76661
+ }
76662
+ } }
76663
+ },
76664
+ "opus-4-5": {
76665
+ "capabilities": { "optionDescriptors": [{
76666
+ "id": "effort",
76667
+ "label": "Reasoning",
76668
+ "type": "select",
76669
+ "options": [
76670
+ {
76671
+ "id": "low",
76672
+ "label": "Low"
76673
+ },
76674
+ {
76675
+ "id": "medium",
76676
+ "label": "Medium"
76677
+ },
76678
+ {
76679
+ "id": "high",
76680
+ "label": "High",
76681
+ "isDefault": true
76682
+ },
76683
+ {
76684
+ "id": "max",
76685
+ "label": "Max"
76686
+ }
76687
+ ]
76688
+ }] },
76689
+ "adapter": { "claudeCode": {} }
76690
+ },
76691
+ "sonnet-5": {
76692
+ "capabilities": { "optionDescriptors": [{
76693
+ "id": "effort",
76694
+ "label": "Reasoning",
76695
+ "type": "select",
76696
+ "options": [
76697
+ {
76698
+ "id": "low",
76699
+ "label": "Low"
76700
+ },
76701
+ {
76702
+ "id": "medium",
76703
+ "label": "Medium"
76704
+ },
76705
+ {
76706
+ "id": "high",
76707
+ "label": "High",
76708
+ "isDefault": true
76709
+ },
76710
+ {
76711
+ "id": "xhigh",
76712
+ "label": "Extra High"
76713
+ },
76714
+ {
76715
+ "id": "max",
76716
+ "label": "Max"
76717
+ },
76718
+ {
76719
+ "id": "ultrathink",
76720
+ "label": "Ultrathink"
76721
+ }
76722
+ ],
76723
+ "promptInjectedValues": ["ultrathink"]
76724
+ }, {
76725
+ "id": "contextWindow",
76726
+ "label": "Context Window",
76727
+ "type": "select",
76728
+ "options": [{
76729
+ "id": "200k",
76730
+ "label": "200k",
76731
+ "isDefault": true
76732
+ }, {
76733
+ "id": "1m",
76734
+ "label": "1M"
76735
+ }]
76736
+ }] },
76737
+ "adapter": { "claudeCode": {
76738
+ "effortMap": { "ultrathink": null },
76739
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76740
+ "contextWindowTokens": {
76741
+ "200k": 2e5,
76742
+ "1m": 1e6
76743
+ }
76744
+ } }
76745
+ },
76746
+ "sonnet-4-6": {
76747
+ "capabilities": { "optionDescriptors": [{
76748
+ "id": "effort",
76749
+ "label": "Reasoning",
76750
+ "type": "select",
76751
+ "options": [
76752
+ {
76753
+ "id": "low",
76754
+ "label": "Low"
76755
+ },
76756
+ {
76757
+ "id": "medium",
76758
+ "label": "Medium"
76759
+ },
76760
+ {
76761
+ "id": "high",
76762
+ "label": "High",
76763
+ "isDefault": true
76764
+ },
76765
+ {
76766
+ "id": "max",
76767
+ "label": "Max"
76768
+ },
76769
+ {
76770
+ "id": "ultrathink",
76771
+ "label": "Ultrathink"
76772
+ }
76773
+ ],
76774
+ "promptInjectedValues": ["ultrathink"]
76775
+ }, {
76776
+ "id": "contextWindow",
76777
+ "label": "Context Window",
76778
+ "type": "select",
76779
+ "options": [{
76780
+ "id": "200k",
76781
+ "label": "200k",
76782
+ "isDefault": true
76783
+ }, {
76784
+ "id": "1m",
76785
+ "label": "1M"
76786
+ }]
76787
+ }] },
76788
+ "adapter": { "claudeCode": {
76789
+ "effortMap": {
76790
+ "max": "high",
76791
+ "ultrathink": null
76792
+ },
76793
+ "modelSuffixes": { "contextWindow": { "1m": "[1m]" } },
76794
+ "contextWindowTokens": {
76795
+ "200k": 2e5,
76796
+ "1m": 1e6
76797
+ }
76798
+ } }
76799
+ },
76800
+ "haiku-4-5": {
76801
+ "capabilities": { "optionDescriptors": [{
76802
+ "id": "thinking",
76803
+ "label": "Thinking",
76804
+ "type": "boolean"
76805
+ }] },
76806
+ "adapter": { "claudeCode": {} }
76807
+ }
76808
+ },
76809
+ "models": [
76810
+ {
76811
+ "slug": "claude-fable-5-1",
76812
+ "name": "Claude Fable 5.1",
76813
+ "shortName": "Fable 5.1",
76814
+ "aliases": [
76815
+ "fable",
76816
+ "fable-5.1",
76817
+ "claude-fable-5.1"
76818
+ ],
76819
+ "status": "current",
76820
+ "profile": "fable-5-1",
76821
+ "adapter": { "claudeCode": { "minVersion": "2.1.257" } }
76822
+ },
76823
+ {
76824
+ "slug": "claude-fable-5",
76825
+ "name": "Claude Fable 5",
76826
+ "shortName": "Fable 5",
76827
+ "aliases": ["fable-5"],
76828
+ "status": "legacy",
76829
+ "profile": "fable-5",
76830
+ "adapter": { "claudeCode": { "minVersion": "2.1.194" } }
76831
+ },
76832
+ {
76833
+ "slug": "claude-opus-5",
76834
+ "name": "Claude Opus 5",
76835
+ "shortName": "Opus 5",
76836
+ "aliases": ["opus-5"],
76837
+ "status": "current",
76838
+ "profile": "opus-5",
76839
+ "adapter": { "claudeCode": { "minVersion": "2.1.219" } }
76840
+ },
76841
+ {
76842
+ "slug": "claude-opus-4-8",
76843
+ "name": "Claude Opus 4.8",
76844
+ "shortName": "Opus 4.8",
76845
+ "aliases": [
76846
+ "opus",
76847
+ "opus-4.8",
76848
+ "claude-opus-4.8"
76849
+ ],
76850
+ "status": "legacy",
76851
+ "profile": "opus-4-8",
76852
+ "adapter": { "claudeCode": { "minVersion": "2.1.154" } }
76853
+ },
76854
+ {
76855
+ "slug": "claude-opus-4-7",
76856
+ "name": "Claude Opus 4.7",
76857
+ "shortName": "Opus 4.7",
76858
+ "aliases": ["opus-4.7", "claude-opus-4.7"],
76859
+ "status": "legacy",
76860
+ "profile": "opus-4-7",
76861
+ "adapter": { "claudeCode": { "minVersion": "2.1.111" } }
76862
+ },
76863
+ {
76864
+ "slug": "claude-opus-4-6",
76865
+ "name": "Claude Opus 4.6",
76866
+ "shortName": "Opus 4.6",
76867
+ "aliases": [
76868
+ "opus-4.6",
76869
+ "claude-opus-4.6",
76870
+ "claude-opus-4-6-20251117"
76871
+ ],
76872
+ "status": "legacy",
76873
+ "profile": "opus-4-6"
76874
+ },
76875
+ {
76876
+ "slug": "claude-opus-4-5",
76877
+ "name": "Claude Opus 4.5",
76878
+ "shortName": "Opus 4.5",
76879
+ "status": "legacy",
76880
+ "profile": "opus-4-5"
76881
+ },
76882
+ {
76883
+ "slug": "claude-sonnet-5",
76884
+ "name": "Claude Sonnet 5",
76885
+ "shortName": "Sonnet 5",
76886
+ "aliases": [
76887
+ "sonnet",
76888
+ "sonnet-5",
76889
+ "claude-sonnet-5.0"
76890
+ ],
76891
+ "status": "current",
76892
+ "profile": "sonnet-5"
76893
+ },
76894
+ {
76895
+ "slug": "claude-sonnet-4-6",
76896
+ "name": "Claude Sonnet 4.6",
76897
+ "shortName": "Sonnet 4.6",
76898
+ "aliases": [
76899
+ "sonnet-4.6",
76900
+ "claude-sonnet-4.6",
76901
+ "claude-sonnet-4-6-20251117"
76902
+ ],
76903
+ "status": "legacy",
76904
+ "profile": "sonnet-4-6"
76905
+ },
76906
+ {
76907
+ "slug": "claude-haiku-4-5",
76908
+ "name": "Claude Haiku 4.5",
76909
+ "shortName": "Haiku 4.5",
76910
+ "aliases": [
76911
+ "haiku",
76912
+ "haiku-4.5",
76913
+ "claude-haiku-4.5",
76914
+ "claude-haiku-4-5-20251001"
76915
+ ],
76916
+ "status": "legacy",
76917
+ "profile": "haiku-4-5"
76918
+ }
76919
+ ]
76920
+ } }
76921
+ };
76922
+ //#endregion
76923
+ //#region src/provider/ModelManifest.ts
76924
+ /**
76925
+ * ModelManifest — remote provider-model metadata with a bundled offline
76926
+ * fallback.
76927
+ *
76928
+ * Provider catalogs live in `model-manifest.json`. The bundled copy ships
76929
+ * with every release; at runtime the service refreshes it from the same file
76930
+ * on the repository's `main` branch, so new Claude models can be published by
76931
+ * editing one file on GitHub without shipping a client update. Preference
76932
+ * order is remote, then the last successful on-disk copy, then the bundle. A
76933
+ * failed fetch never fails a provider check.
76934
+ *
76935
+ * Ported from pingdotgg/t3code (PRs #8227/#9084), adapted to Ryco's config,
76936
+ * settings, and schema surface.
76937
+ */
76938
+ const MODEL_MANIFEST_URL = "https://raw.githubusercontent.com/saka-gg/ryco/main/apps/server/src/provider/model-manifest.json";
76939
+ /** How long a fetched manifest stays fresh before the next probe re-fetches. */
76940
+ const MANIFEST_TTL_MS = 36e5;
76941
+ /** Minimum gap between fetch attempts after a failure, so an offline server
76942
+ * does not pay a network timeout on every provider check. */
76943
+ const MANIFEST_RETRY_MS = 3e5;
76944
+ const FETCH_TIMEOUT_MS = 1e4;
76945
+ const ManifestModelStatus = effect.Schema.Literals(["current", "legacy"]);
76946
+ const ManifestModelProfile = effect.Schema.Struct({
76947
+ capabilities: effect.Schema.optional(require_collectUint8StreamText.ModelCapabilities),
76948
+ adapter: effect.Schema.optional(effect.Schema.Unknown)
76949
+ });
76950
+ const ManifestProviderModel = effect.Schema.Struct({
76951
+ slug: require_collectUint8StreamText.TrimmedNonEmptyString,
76952
+ name: require_collectUint8StreamText.TrimmedNonEmptyString,
76953
+ shortName: effect.Schema.optional(require_collectUint8StreamText.TrimmedNonEmptyString),
76954
+ subProvider: effect.Schema.optional(require_collectUint8StreamText.TrimmedNonEmptyString),
76955
+ aliases: effect.Schema.optional(effect.Schema.Array(require_collectUint8StreamText.TrimmedNonEmptyString)),
76956
+ status: ManifestModelStatus,
76957
+ profile: effect.Schema.optional(require_collectUint8StreamText.TrimmedNonEmptyString),
76958
+ adapter: effect.Schema.optional(effect.Schema.Unknown)
76959
+ });
76960
+ const ManifestProviderCatalog = effect.Schema.Struct({
76961
+ defaults: effect.Schema.optional(effect.Schema.Struct({ chat: effect.Schema.optional(require_collectUint8StreamText.TrimmedNonEmptyString) })),
76962
+ profiles: effect.Schema.Record(effect.Schema.String, ManifestModelProfile),
76963
+ models: effect.Schema.Array(ManifestProviderModel)
76964
+ });
76965
+ /**
76966
+ * `version` gates breaking schema changes. Provider catalogs are additive so
76967
+ * clients that only understand `currentModels` keep accepting this v1 file.
76968
+ */
76969
+ const ModelManifestEnvelopeSchema = effect.Schema.Struct({
76970
+ version: effect.Schema.Literal(1),
76971
+ currentModels: effect.Schema.Record(effect.Schema.String, effect.Schema.Array(effect.Schema.String)),
76972
+ providers: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, ManifestProviderCatalog))
76973
+ });
76974
+ const hasValidProviderCatalogReferences = (manifest) => Object.values(manifest.providers ?? {}).every((catalog) => {
76975
+ const slugs = /* @__PURE__ */ new Set();
76976
+ return catalog.models.every((model) => {
76977
+ if (slugs.has(model.slug)) return false;
76978
+ slugs.add(model.slug);
76979
+ return model.profile === void 0 || catalog.profiles[model.profile] !== void 0;
76980
+ }) && (catalog.defaults?.chat === void 0 || slugs.has(catalog.defaults.chat));
76981
+ });
76982
+ const ModelManifestSchema = ModelManifestEnvelopeSchema.pipe(effect.Schema.check(effect.Schema.makeFilter(hasValidProviderCatalogReferences, { expected: "unique model slugs and existing model and profile references" }), effect.Schema.makeFilter(hasValidClaudeManifestAdapters, { expected: "valid Claude adapter metadata" })));
76983
+ const decodeManifest = effect.Schema.decodeUnknownEffect(ModelManifestSchema);
76984
+ const BUNDLED_MODEL_MANIFEST = effect.Schema.decodeUnknownSync(ModelManifestSchema)(model_manifest_default);
76985
+ /** Resolve provider-neutral model presentation and capability data. */
76986
+ function resolveProviderCatalog(manifest, driverKind) {
76987
+ const catalog = manifest.providers?.[driverKind];
76988
+ if (!catalog) return null;
76989
+ const seen = /* @__PURE__ */ new Set();
76990
+ const models = [];
76991
+ for (const entry of catalog.models) {
76992
+ if (seen.has(entry.slug)) return null;
76993
+ seen.add(entry.slug);
76994
+ const profile = entry.profile ? catalog.profiles[entry.profile] : void 0;
76995
+ if (entry.profile && !profile) return null;
76996
+ models.push({
76997
+ model: {
76998
+ slug: entry.slug,
76999
+ name: entry.name,
77000
+ ...entry.shortName ? { shortName: entry.shortName } : {},
77001
+ ...entry.subProvider ? { subProvider: entry.subProvider } : {},
77002
+ ...entry.aliases ? { aliases: entry.aliases } : {},
77003
+ isCustom: false,
77004
+ ...catalog.defaults?.chat === entry.slug ? { isDefault: true } : {},
77005
+ ...entry.status === "legacy" ? { isLegacy: true } : {},
77006
+ capabilities: profile?.capabilities ?? null
77007
+ },
77008
+ adapter: entry.adapter,
77009
+ profileAdapter: profile?.adapter
77010
+ });
77011
+ }
77012
+ if (catalog.defaults?.chat !== void 0 && !seen.has(catalog.defaults.chat)) return null;
77013
+ return {
77014
+ models,
77015
+ defaults: { chat: catalog.defaults?.chat }
77016
+ };
77017
+ }
77018
+ /** On-disk shape of the last successfully fetched manifest. */
77019
+ const ManifestCacheFile = effect.Schema.Struct({
77020
+ fetchedAtMs: effect.Schema.Number,
77021
+ manifest: ModelManifestSchema
77022
+ });
77023
+ const decodeManifestCache = effect.Schema.decodeUnknownEffect(effect.Schema.fromJsonString(ManifestCacheFile));
77024
+ const encodeManifestCache = effect.Schema.encodeEffect(effect.Schema.fromJsonString(ManifestCacheFile));
77025
+ var ModelManifest = class extends effect.Context.Service()("ryco/provider/ModelManifest") {};
77026
+ /** Constant service for tests and callers that only need the bundled data. */
77027
+ const BundledOnlyModelManifest = {
77028
+ current: effect.Effect.succeed(BUNDLED_MODEL_MANIFEST),
77029
+ refresh: effect.Effect.succeed(BUNDLED_MODEL_MANIFEST),
77030
+ refreshInBackground: effect.Effect.void
77031
+ };
77032
+ effect.Layer.succeed(ModelManifest, BundledOnlyModelManifest);
77033
+ const make$6 = effect.Effect.gen(function* () {
77034
+ const fileSystem = yield* effect.FileSystem.FileSystem;
77035
+ const path = yield* effect.Path.Path;
77036
+ const config = yield* require_Metrics.ServerConfig;
77037
+ const settingsService = yield* ServerSettingsService;
77038
+ const httpClient = yield* effect_unstable_http.HttpClient.HttpClient;
77039
+ const serviceScope = yield* effect.Effect.scope;
77040
+ const cachePath = path.join(config.stateDir, "model-manifest.json");
77041
+ let manifest = BUNDLED_MODEL_MANIFEST;
77042
+ let fetchedAtMs = null;
77043
+ let lastAttemptMs = null;
77044
+ const refreshSemaphore = yield* effect_Semaphore.make(1);
77045
+ const ensureDiskCacheLoaded = yield* effect.Effect.cached(effect.Effect.gen(function* () {
77046
+ const fromDisk = yield* fileSystem.readFileString(cachePath).pipe(effect.Effect.flatMap((raw) => decodeManifestCache(raw)), effect.Effect.catchCause(() => effect.Effect.succeed(null)));
77047
+ if (fromDisk === null) return;
77048
+ manifest = fromDisk.manifest;
77049
+ fetchedAtMs = fromDisk.fetchedAtMs;
77050
+ }));
77051
+ const refresh = effect.Effect.fn("ModelManifest.refresh")(function* () {
77052
+ yield* ensureDiskCacheLoaded;
77053
+ const now = yield* effect.Clock.currentTimeMillis;
77054
+ const isWithin = (sinceMs, windowMs) => sinceMs !== null && now >= sinceMs && now - sinceMs < windowMs;
77055
+ if (isWithin(fetchedAtMs, MANIFEST_TTL_MS)) return manifest;
77056
+ if (isWithin(lastAttemptMs, MANIFEST_RETRY_MS)) return manifest;
77057
+ const settings = yield* settingsService.getSettings.pipe(effect.Effect.catchCause(() => effect.Effect.succeed(null)));
77058
+ if (settings !== null && !settings.enableProviderUpdateChecks) return manifest;
77059
+ lastAttemptMs = now;
77060
+ const fetched = yield* httpClient.get(MODEL_MANIFEST_URL).pipe(effect.Effect.flatMap(effect_unstable_http.HttpClientResponse.filterStatusOk), effect.Effect.flatMap((response) => response.json), effect.Effect.flatMap((json) => decodeManifest(json)), effect.Effect.timeout(FETCH_TIMEOUT_MS), effect.Effect.catchCause(() => effect.Effect.succeed(null)));
77061
+ if (fetched === null) return manifest;
77062
+ manifest = fetched;
77063
+ fetchedAtMs = now;
77064
+ yield* encodeManifestCache({
77065
+ fetchedAtMs: now,
77066
+ manifest: fetched
77067
+ }).pipe(effect.Effect.flatMap((serialized) => fileSystem.writeFileString(cachePath, serialized)), effect.Effect.catchCause(() => effect.Effect.void));
77068
+ return manifest;
77069
+ });
77070
+ const guardedRefresh = refreshSemaphore.withPermits(1)(refresh());
77071
+ return ModelManifest.of({
77072
+ current: ensureDiskCacheLoaded.pipe(effect.Effect.map(() => manifest)),
77073
+ refresh: guardedRefresh,
77074
+ refreshInBackground: effect.Effect.forkIn(guardedRefresh, serviceScope).pipe(effect.Effect.asVoid)
77075
+ });
77076
+ });
77077
+ const layer$1 = effect.Layer.effect(ModelManifest, make$6);
77078
+ //#endregion
76196
77079
  //#region ../../packages/shared/src/providerCapabilities.ts
76197
77080
  /** Drivers whose native turn API accepts arbitrary file bytes, not only images. */
76198
77081
  function providerSupportsGeneralFileAttachments(provider) {
@@ -80226,6 +81109,44 @@ function projectActivityPayload(activity) {
80226
81109
  }
80227
81110
  };
80228
81111
  }
81112
+ const HEAD_CHARS = 1e4;
81113
+ const TAIL_CHARS = 5e3;
81114
+ const MAX_DEPTH = 16;
81115
+ const EXEMPT_ITEM_TYPES = /* @__PURE__ */ new Set(["image_view", "file_change"]);
81116
+ function capString(value) {
81117
+ if (value.length <= 16e3) return value;
81118
+ const truncated = value.length - HEAD_CHARS - TAIL_CHARS;
81119
+ return `${value.slice(0, HEAD_CHARS)}\n… [${truncated.toLocaleString("en-US")} chars truncated] …\n${value.slice(value.length - TAIL_CHARS)}`;
81120
+ }
81121
+ function capValue(value, depth) {
81122
+ if (typeof value === "string") return capString(value);
81123
+ if (depth >= MAX_DEPTH || value === null || typeof value !== "object") return value;
81124
+ if (Array.isArray(value)) {
81125
+ let changed = false;
81126
+ const next = value.map((entry) => {
81127
+ const capped = capValue(entry, depth + 1);
81128
+ if (capped !== entry) changed = true;
81129
+ return capped;
81130
+ });
81131
+ return changed ? next : value;
81132
+ }
81133
+ let changed = false;
81134
+ const next = {};
81135
+ for (const [key, entry] of Object.entries(value)) {
81136
+ const capped = capValue(entry, depth + 1);
81137
+ if (capped !== entry) changed = true;
81138
+ next[key] = capped;
81139
+ }
81140
+ return changed ? next : value;
81141
+ }
81142
+ /**
81143
+ * Returns `data` with every oversized string truncated, or the same
81144
+ * reference when nothing needed truncation.
81145
+ */
81146
+ function capActivityData(itemType, data) {
81147
+ if (typeof itemType === "string" && EXEMPT_ITEM_TYPES.has(itemType)) return data;
81148
+ return capValue(data, 0);
81149
+ }
80229
81150
  //#endregion
80230
81151
  //#region src/orchestration/Layers/ProviderRuntimeIngestion.ts
80231
81152
  const providerTurnKey = (threadId, turnId) => `${threadId}:${turnId}`;
@@ -80756,7 +81677,7 @@ function runtimeEventToActivities(event, taskTitle) {
80756
81677
  ...event.itemId ? { providerItemId: event.itemId } : {},
80757
81678
  ...event.providerRefs ? { providerRefs: event.providerRefs } : {},
80758
81679
  ...event.payload.detail ? { detail: truncateDetail(event.payload.detail) } : {},
80759
- ...event.payload.data !== void 0 ? { data: event.payload.data } : {},
81680
+ ...event.payload.data !== void 0 ? { data: capActivityData(event.payload.itemType, event.payload.data) } : {},
80760
81681
  ...event.payload.agentId ? { agentId: event.payload.agentId } : {},
80761
81682
  ...event.payload.parentToolUseId ? { parentToolUseId: event.payload.parentToolUseId } : {}
80762
81683
  },
@@ -80777,7 +81698,7 @@ function runtimeEventToActivities(event, taskTitle) {
80777
81698
  ...event.itemId ? { providerItemId: event.itemId } : {},
80778
81699
  ...event.providerRefs ? { providerRefs: event.providerRefs } : {},
80779
81700
  ...event.payload.detail ? { detail: truncateDetail(event.payload.detail) } : {},
80780
- ...event.payload.data !== void 0 ? { data: event.payload.data } : {},
81701
+ ...event.payload.data !== void 0 ? { data: capActivityData(event.payload.itemType, event.payload.data) } : {},
80781
81702
  ...event.payload.agentId ? { agentId: event.payload.agentId } : {},
80782
81703
  ...event.payload.parentToolUseId ? { parentToolUseId: event.payload.parentToolUseId } : {}
80783
81704
  },
@@ -80798,7 +81719,7 @@ function runtimeEventToActivities(event, taskTitle) {
80798
81719
  ...event.itemId ? { providerItemId: event.itemId } : {},
80799
81720
  ...event.providerRefs ? { providerRefs: event.providerRefs } : {},
80800
81721
  ...event.payload.detail ? { detail: truncateDetail(event.payload.detail) } : {},
80801
- ...event.payload.data !== void 0 ? { data: event.payload.data } : {},
81722
+ ...event.payload.data !== void 0 ? { data: capActivityData(event.payload.itemType, event.payload.data) } : {},
80802
81723
  ...event.payload.agentId ? { agentId: event.payload.agentId } : {},
80803
81724
  ...event.payload.parentToolUseId ? { parentToolUseId: event.payload.parentToolUseId } : {}
80804
81725
  },
@@ -86953,7 +87874,7 @@ const makeServerEnvironment = effect.Effect.fn("makeServerEnvironment")(function
86953
87874
  os: platformOs(),
86954
87875
  arch: platformArch()
86955
87876
  },
86956
- serverVersion: version$1,
87877
+ serverVersion: version$2,
86957
87878
  capabilities: {
86958
87879
  repositoryIdentity: true,
86959
87880
  threadSettlement: true,
@@ -105920,7 +106841,7 @@ const ProjectAvatarStoreLayerLive = effect.Layer.unwrap(effect.Effect.gen(functi
105920
106841
  return ProjectAvatarStoreLive({ dataDir: config.stateDir });
105921
106842
  }));
105922
106843
  const ReactorLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(OrchestrationReactorLive), effect.Layer.provideMerge(ProviderRuntimeIngestionLive), effect.Layer.provideMerge(ProviderCommandReactorLive), effect.Layer.provideMerge(ContextHandoffCoordinatorLive), effect.Layer.provideMerge(ContextHandoffServiceLive), effect.Layer.provideMerge(ContextHandoffRepositoryLive), effect.Layer.provideMerge(CheckpointReactorLive), effect.Layer.provideMerge(ThreadDeletionReactorLive), effect.Layer.provideMerge(RuntimeReceiptBusLive));
105923
- const RuntimeFeatureLayerLive = effect.Layer.mergeAll(ReactorLayerLive, ThreadPriorityCoordinatorLive).pipe(effect.Layer.provideMerge(ThreadPriorityCandidateQueryLive), effect.Layer.provideMerge(ThreadPriorityRepositoryLive), effect.Layer.provideMerge(layer$7));
106844
+ const RuntimeFeatureLayerLive = effect.Layer.mergeAll(ReactorLayerLive, ThreadPriorityCoordinatorLive).pipe(effect.Layer.provideMerge(ThreadPriorityCandidateQueryLive), effect.Layer.provideMerge(ThreadPriorityRepositoryLive), effect.Layer.provideMerge(layer$8));
105924
106845
  const ProviderSessionDirectoryLayerLive = ProviderSessionDirectoryLive.pipe(effect.Layer.provide(ProviderSessionRuntimeRepositoryLive));
105925
106846
  const ProviderLayerLive = ProviderServiceLive.pipe(effect.Layer.provide(ProviderAdapterRegistryLive), effect.Layer.provideMerge(ProviderSessionDirectoryLayerLive));
105926
106847
  const PersistenceLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(layerConfig));
@@ -105928,22 +106849,22 @@ const AgentControlAutomationLayerLive = AgentControlAutomationServiceLive.pipe(e
105928
106849
  const AgentControlExternalInstallationLayerLive = AgentControlExternalInstallationServiceLive.pipe(effect.Layer.provideMerge(AgentControlExternalIntegrationServiceLive), effect.Layer.provideMerge(AgentControlMcpInstallationRepositoryLive));
105929
106850
  const AgentControlLayerLive = effect.Layer.mergeAll(AgentControlProposalServiceLive, AgentControlOperationStoreLive, AgentControlAutomationLayerLive, AgentControlExternalInstallationLayerLive).pipe(effect.Layer.provideMerge(AgentControlProposalStoreLive), effect.Layer.provideMerge(AgentControlProposalEventsLive), effect.Layer.provideMerge(AgentControlPolicyLive), effect.Layer.provideMerge(AgentControlProposalRepositoryLive), effect.Layer.provideMerge(AgentControlOperationRepositoryLive), effect.Layer.provideMerge(AgentControlAuditRepositoryLive), effect.Layer.provideMerge(AgentControlExternalRepositoryLive), effect.Layer.provideMerge(AgentControlAutomationRepositoryLive), effect.Layer.provideMerge(AgentControlMcpInstallationRepositoryLive));
105930
106851
  const AgentControlSessionRegistryLayerLive = AgentControlSessionRegistryLive.pipe(effect.Layer.provide(AgentControlPolicyLive));
105931
- const VcsDriverRegistryLayerLive = layer$14.pipe(effect.Layer.provide(layer$15));
105932
- const SourceControlProviderRegistryLayerLive = layer$9.pipe(effect.Layer.provide(effect.Layer.mergeAll(layer$18, layer$13, layer$12, layer$11, layer$10)), effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provide(ServerSecretStoreLive), effect.Layer.provideMerge(layer$16), effect.Layer.provideMerge(VcsDriverRegistryLayerLive));
105933
- const GitManagerLayerLive = layer$6.pipe(effect.Layer.provideMerge(ProjectSetupScriptRunnerLive), effect.Layer.provideMerge(layer$16), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provideMerge(layer$7));
105934
- const GitLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(GitManagerLayerLive), effect.Layer.provideMerge(layer$16));
105935
- const GitWorkflowLayerLive = layer$5.pipe(effect.Layer.provideMerge(VcsDriverRegistryLayerLive), effect.Layer.provideMerge(GitLayerLive));
105936
- const SourceControlRepositoryServiceLayerLive = layer$2.pipe(effect.Layer.provideMerge(layer$16), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provide(WorkspaceAccessPolicyLive));
105937
- const VcsLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(layer$15), effect.Layer.provideMerge(VcsDriverRegistryLayerLive), effect.Layer.provideMerge(layer$3.pipe(effect.Layer.provide(VcsDriverRegistryLayerLive))), effect.Layer.provideMerge(GitWorkflowLayerLive), effect.Layer.provideMerge(SourceControlRepositoryServiceLayerLive), effect.Layer.provideMerge(layer$4.pipe(effect.Layer.provide(GitWorkflowLayerLive))));
106852
+ const VcsDriverRegistryLayerLive = layer$15.pipe(effect.Layer.provide(layer$16));
106853
+ const SourceControlProviderRegistryLayerLive = layer$10.pipe(effect.Layer.provide(effect.Layer.mergeAll(layer$19, layer$14, layer$13, layer$12, layer$11)), effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provide(ServerSecretStoreLive), effect.Layer.provideMerge(layer$17), effect.Layer.provideMerge(VcsDriverRegistryLayerLive));
106854
+ const GitManagerLayerLive = layer$7.pipe(effect.Layer.provideMerge(ProjectSetupScriptRunnerLive), effect.Layer.provideMerge(layer$17), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provideMerge(layer$8));
106855
+ const GitLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(GitManagerLayerLive), effect.Layer.provideMerge(layer$17));
106856
+ const GitWorkflowLayerLive = layer$6.pipe(effect.Layer.provideMerge(VcsDriverRegistryLayerLive), effect.Layer.provideMerge(GitLayerLive));
106857
+ const SourceControlRepositoryServiceLayerLive = layer$3.pipe(effect.Layer.provideMerge(layer$17), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provide(WorkspaceAccessPolicyLive));
106858
+ const VcsLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(layer$16), effect.Layer.provideMerge(VcsDriverRegistryLayerLive), effect.Layer.provideMerge(layer$4.pipe(effect.Layer.provide(VcsDriverRegistryLayerLive))), effect.Layer.provideMerge(GitWorkflowLayerLive), effect.Layer.provideMerge(SourceControlRepositoryServiceLayerLive), effect.Layer.provideMerge(layer$5.pipe(effect.Layer.provide(GitWorkflowLayerLive))));
105938
106859
  const CheckpointingLayerLive = effect.Layer.empty.pipe(effect.Layer.provideMerge(CheckpointDiffQueryLive), effect.Layer.provideMerge(CheckpointStoreLive.pipe(effect.Layer.provide(VcsDriverRegistryLayerLive))));
105939
106860
  const TerminalLayerLive = TerminalManagerLive.pipe(effect.Layer.provide(PtyAdapterLive), effect.Layer.provide(WorkspaceAccessPolicyLive));
105940
106861
  const WorkspaceEntriesLayerLive = WorkspaceEntriesLive.pipe(effect.Layer.provide(WorkspacePathsLive), effect.Layer.provide(WorkspaceAccessPolicyLive), effect.Layer.provideMerge(VcsDriverRegistryLayerLive));
105941
106862
  const WorkspaceFileSystemLayerLive = WorkspaceFileSystemLive.pipe(effect.Layer.provide(WorkspacePathsLive), effect.Layer.provide(WorkspaceEntriesLayerLive));
105942
106863
  const WorkspaceLayerLive = effect.Layer.mergeAll(WorkspaceAccessPolicyLive, WorkspacePathsLive, WorkspaceEntriesLayerLive, WorkspaceFileSystemLayerLive);
105943
106864
  const AuthLayerLive = ServerAuthLive.pipe(effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provide(ServerSecretStoreLive));
105944
- const AtlassianLayerLive = effect.Layer.mergeAll(layer$17, layer$1).pipe(effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(AtlassianResourceRepositoryLive), effect.Layer.provideMerge(ProjectAtlassianLinkRepositoryLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provide(ServerSecretStoreLive));
106865
+ const AtlassianLayerLive = effect.Layer.mergeAll(layer$18, layer$2).pipe(effect.Layer.provideMerge(AtlassianConnectionRepositoryLive), effect.Layer.provideMerge(AtlassianResourceRepositoryLive), effect.Layer.provideMerge(ProjectAtlassianLinkRepositoryLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provide(ServerSecretStoreLive));
105945
106866
  const ProviderRuntimeLayerLive = ProviderSessionReaperLive.pipe(effect.Layer.provideMerge(ProviderLayerLive), effect.Layer.provideMerge(OrchestrationLayerLive));
105946
- const RuntimeCoreBaseDependenciesLive = RuntimeFeatureLayerLive.pipe(effect.Layer.provideMerge(CheckpointingLayerLive), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provideMerge(GitLayerLive), effect.Layer.provideMerge(VcsLayerLive), effect.Layer.provideMerge(ProviderRuntimeLayerLive), effect.Layer.provideMerge(TerminalLayerLive), effect.Layer.provideMerge(AgentControlLayerLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provideMerge(ProjectionWorktreeRepositoryLive), effect.Layer.provideMerge(KeybindingsLive), effect.Layer.provideMerge(ProviderRegistryLive), effect.Layer.provideMerge(ProviderInstanceRegistryHydrationLive), effect.Layer.provideMerge(AgentControlSessionRegistryLayerLive), effect.Layer.provideMerge(ProviderEventLoggersLive), effect.Layer.provideMerge(OpenCodeRuntimeLive), effect.Layer.provideMerge(WorkspaceLayerLive), effect.Layer.provideMerge(ProjectFaviconResolverLive), effect.Layer.provideMerge(ProjectAvatarStoreLayerLive));
106867
+ const RuntimeCoreBaseDependenciesLive = RuntimeFeatureLayerLive.pipe(effect.Layer.provideMerge(CheckpointingLayerLive), effect.Layer.provideMerge(SourceControlProviderRegistryLayerLive), effect.Layer.provideMerge(GitLayerLive), effect.Layer.provideMerge(VcsLayerLive), effect.Layer.provideMerge(ProviderRuntimeLayerLive), effect.Layer.provideMerge(TerminalLayerLive), effect.Layer.provideMerge(AgentControlLayerLive), effect.Layer.provideMerge(PersistenceLayerLive), effect.Layer.provideMerge(ProjectionWorktreeRepositoryLive), effect.Layer.provideMerge(KeybindingsLive), effect.Layer.provideMerge(ProviderRegistryLive), effect.Layer.provideMerge(ProviderInstanceRegistryHydrationLive), effect.Layer.provideMerge(AgentControlSessionRegistryLayerLive), effect.Layer.provideMerge(ProviderEventLoggersLive), effect.Layer.provideMerge(layer$1), effect.Layer.provideMerge(OpenCodeRuntimeLive), effect.Layer.provideMerge(WorkspaceLayerLive), effect.Layer.provideMerge(ProjectFaviconResolverLive), effect.Layer.provideMerge(ProjectAvatarStoreLayerLive));
105947
106868
  const RuntimeDependenciesLive = effect.Layer.mergeAll(RuntimeCoreBaseDependenciesLive, UsageServiceLive).pipe(effect.Layer.provideMerge(ServerSettingsLive)).pipe(effect.Layer.provideMerge(RepositoryIdentityResolverLive), effect.Layer.provideMerge(ServerEnvironmentLive), effect.Layer.provideMerge(AdvertisedEndpointRegistryLive), effect.Layer.provideMerge(AuthLayerLive), effect.Layer.provideMerge(AtlassianLayerLive)).pipe(effect.Layer.provideMerge(AnalyticsServiceLayerLive), effect.Layer.provideMerge(OpenLive), effect.Layer.provideMerge(ServerLifecycleEventsLive), effect.Layer.provide(NetService.layer));
105948
106869
  const RuntimeServicesLive = effect.Layer.mergeAll(ServerRuntimeStartupLive, AgentControlMcpServerLive.pipe(effect.Layer.provideMerge(AgentControlDiagnosticsServiceLive), effect.Layer.provideMerge(AgentControlActionValidatorLive), effect.Layer.provideMerge(AgentControlProjectPlansLive)), AgentControlExternalMcpServerLive.pipe(effect.Layer.provideMerge(AgentControlDiagnosticsServiceLive), effect.Layer.provideMerge(AgentControlActionValidatorLive), effect.Layer.provideMerge(AgentControlProjectPlansLive), effect.Layer.provideMerge(AgentControlExternalTaskServiceLive.pipe(effect.Layer.provideMerge(AgentControlActionValidatorLive), effect.Layer.provideMerge(AgentControlProjectPlansLive)))), AgentControlExecutionLive.pipe(effect.Layer.provideMerge(ServerRuntimeStartupLive), effect.Layer.provideMerge(AgentControlActionValidatorLive), effect.Layer.provideMerge(AgentControlProjectPlansLive), effect.Layer.provideMerge(OrchestrationCommandApplicationLive))).pipe(effect.Layer.provideMerge(RuntimeDependenciesLive), effect.Layer.provideMerge(DeviceServiceLive));
105949
106870
  const authRoutesLayer = effect.Layer.mergeAll(authBearerBootstrapRouteLayer, authBootstrapRouteLayer, authClientsRevokeOthersRouteLayer, authClientsRevokeRouteLayer, authClientsRouteLayer, authPairingLinksRevokeRouteLayer, authPairingLinksRouteLayer, authPairingCredentialRouteLayer, authSessionRouteLayer, authWebSocketTokenRouteLayer);
@@ -107448,7 +108369,7 @@ const promptAndPairExternalMcpBridge = async (input) => {
107448
108369
  //#endregion
107449
108370
  //#region src/bin.ts
107450
108371
  const CliRuntimeLayer = effect_Layer.mergeAll(_effect_platform_node_NodeServices.layer, NetService.layer);
107451
- const program = effect_unstable_cli.Command.run(cli, { version: version$1 }).pipe(effect_Effect.scoped, effect_Effect.provide(CliRuntimeLayer));
108372
+ const program = effect_unstable_cli.Command.run(cli, { version: version$2 }).pipe(effect_Effect.scoped, effect_Effect.provide(CliRuntimeLayer));
107452
108373
  const externalMcpArgs = () => {
107453
108374
  if (process.argv[2] !== "mcp" || process.argv[3] !== "pair" && process.argv[3] !== "serve") return null;
107454
108375
  const integrationIndex = process.argv.indexOf("--integration", 4);
@@ -107486,6 +108407,7 @@ else _effect_platform_node_NodeRuntime.runMain(program);
107486
108407
  exports.AGENT_CONTROL_INTERNAL_SERVER_NAME = AGENT_CONTROL_INTERNAL_SERVER_NAME;
107487
108408
  exports.AgentControlSessionRegistry = AgentControlSessionRegistry;
107488
108409
  exports.AzureDevOpsCli = AzureDevOpsCli;
108410
+ exports.BUNDLED_MODEL_MANIFEST = BUNDLED_MODEL_MANIFEST;
107489
108411
  exports.BitbucketApi = BitbucketApi;
107490
108412
  exports.CodexAppServerClient = CodexAppServerClient;
107491
108413
  exports.CodexAppServerProcessExitedError = CodexAppServerProcessExitedError;
@@ -107500,6 +108422,7 @@ exports.GitHubCli = GitHubCli;
107500
108422
  exports.GitHubCliError = GitHubCliError;
107501
108423
  exports.GitLabCli = GitLabCli;
107502
108424
  exports.MINIMUM_OPENCODE_VERSION = MINIMUM_OPENCODE_VERSION;
108425
+ exports.ModelManifest = ModelManifest;
107503
108426
  exports.OpenCodeRuntime = OpenCodeRuntime;
107504
108427
  exports.OpenCodeRuntimeError = OpenCodeRuntimeError;
107505
108428
  exports.ProviderAdapterProcessError = ProviderAdapterProcessError;
@@ -107582,6 +108505,8 @@ exports.collectStreamAsString = collectStreamAsString;
107582
108505
  exports.compareCliVersions = compareCliVersions;
107583
108506
  exports.createModelCapabilities = createModelCapabilities;
107584
108507
  exports.createProcessDeviceToolBinding = createProcessDeviceToolBinding;
108508
+ exports.decodeClaudeModelAdapter = decodeClaudeModelAdapter;
108509
+ exports.decodeClaudeProfileAdapter = decodeClaudeProfileAdapter;
107585
108510
  exports.decodeGitHubPullRequestListJson = decodeGitHubPullRequestListJson;
107586
108511
  exports.detailFromResult = detailFromResult;
107587
108512
  exports.enrichProviderSnapshotWithVersionAdvisory = enrichProviderSnapshotWithVersionAdvisory;
@@ -107628,6 +108553,7 @@ exports.resolveClaudeHomePath = resolveClaudeHomePath$1;
107628
108553
  exports.resolveCodexHomeLayout = resolveCodexHomeLayout;
107629
108554
  exports.resolveCommandPath = resolveCommandPath;
107630
108555
  exports.resolvePromptInjectedEffort = resolvePromptInjectedEffort;
108556
+ exports.resolveProviderCatalog = resolveProviderCatalog;
107631
108557
  exports.resolveProviderMaintenanceCapabilitiesEffect = resolveProviderMaintenanceCapabilitiesEffect;
107632
108558
  exports.runOpenCodeSdk = runOpenCodeSdk;
107633
108559
  exports.sanitizeCommitSubject = sanitizeCommitSubject;