ryco-cli 0.1.26 → 0.1.27

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 (490) hide show
  1. package/dist/{AcpAdapter-CadxcdZV.cjs → AcpAdapter-CZc_JW7_.cjs} +5 -5
  2. package/dist/{AcpAdapter-BemMQNbj.mjs → AcpAdapter-DoRyx18Q.mjs} +5 -5
  3. package/dist/{AcpNativeLogging-BsbZRRD7.mjs → AcpNativeLogging-FscLjPYB.mjs} +2 -2
  4. package/dist/{AcpNativeLogging-DZPZNoju.cjs → AcpNativeLogging-WQZ0Jm4p.cjs} +1 -1
  5. package/dist/{AcpRegistryDriver-BpXCjh9I.mjs → AcpRegistryDriver-1FCrMtNw.mjs} +4 -4
  6. package/dist/{AcpRegistryDriver-BfCPf8FX.cjs → AcpRegistryDriver-BmdM0rgN.cjs} +5 -5
  7. package/dist/{AzureDevOpsSourceControlProvider-BcQO_CyW.mjs → AzureDevOpsSourceControlProvider-9bLYTK0M.mjs} +2 -3
  8. package/dist/{AzureDevOpsSourceControlProvider-B9N_8NJg.cjs → AzureDevOpsSourceControlProvider-DW5RKUeo.cjs} +6 -7
  9. package/dist/{BitbucketSourceControlProvider-C9WuwvY2.cjs → BitbucketSourceControlProvider-CMHRxVsd.cjs} +6 -7
  10. package/dist/{BitbucketSourceControlProvider-BTUY2ZT8.mjs → BitbucketSourceControlProvider-Cl3sSLIx.mjs} +2 -3
  11. package/dist/{BunPTY-DdnqQAdw.mjs → BunPTY-Dfgo5uCn.mjs} +1 -1
  12. package/dist/{ClaudeDriver-Csnp78qR.mjs → ClaudeDriver-B3h2ood6.mjs} +132 -30
  13. package/dist/{ClaudeDriver-BSTxNNGO.cjs → ClaudeDriver-CyPp-Fs3.cjs} +148 -45
  14. package/dist/{CodexDriver-BK4HVNV4.cjs → CodexDriver-BP3EtJ0S.cjs} +14 -14
  15. package/dist/{CodexDriver-fwcV84hX.mjs → CodexDriver-CN6idmnS.mjs} +6 -6
  16. package/dist/{CodexTextGeneration-Y2GSS7f1.cjs → CodexTextGeneration-B1kQOBKx.cjs} +8 -8
  17. package/dist/{CodexTextGeneration-_4aT5BHa.mjs → CodexTextGeneration-zuVszBVZ.mjs} +5 -5
  18. package/dist/{CopilotDriver-B12ZJ-L_.mjs → CopilotDriver-BYrkdbjf.mjs} +7 -7
  19. package/dist/{CopilotDriver-C7IyIwVW.cjs → CopilotDriver-DXAV2YFZ.cjs} +16 -16
  20. package/dist/{CursorDriver-C_p0v-ul.mjs → CursorDriver-BhxUUcPd.mjs} +7 -7
  21. package/dist/{CursorDriver-BWmCfJ-w.cjs → CursorDriver-DqFJ48VM.cjs} +15 -15
  22. package/dist/{ForgejoSourceControlProvider-DTRrllIH.cjs → ForgejoSourceControlProvider-BaX8QACC.cjs} +6 -7
  23. package/dist/{ForgejoSourceControlProvider-DmOGJEaJ.mjs → ForgejoSourceControlProvider-Dd70jIKU.mjs} +2 -3
  24. package/dist/{GitHubSourceControlProvider-sQGcwnr3.mjs → GitHubSourceControlProvider-C7BTtssl.mjs} +2 -3
  25. package/dist/{GitHubSourceControlProvider-D-YV8WP6.cjs → GitHubSourceControlProvider-bB3VvbjC.cjs} +4 -5
  26. package/dist/{GitLabSourceControlProvider-kKYYnpER.cjs → GitLabSourceControlProvider-CpPjVL2v.cjs} +6 -7
  27. package/dist/{GitLabSourceControlProvider-mIl-K-4F.mjs → GitLabSourceControlProvider-DtYBP_yY.mjs} +2 -3
  28. package/dist/{GrokDriver-BFOniP_K.cjs → GrokDriver-B66NTem3.cjs} +9 -9
  29. package/dist/{GrokDriver-CDcWkiAi.mjs → GrokDriver-DM1NdZRk.mjs} +6 -6
  30. package/dist/{NodePTY-DArvQ9bX.mjs → NodePTY-BtRL0A34.mjs} +1 -1
  31. package/dist/{OpenCodeDriver-CnWJHyDJ.mjs → OpenCodeDriver-DH41ibjc.mjs} +7 -7
  32. package/dist/{OpenCodeDriver-CckbFEQJ.cjs → OpenCodeDriver-DeSH_rjs.cjs} +17 -17
  33. package/dist/{SideQuestionIsolation-5eGFRW0t.mjs → SideQuestionIsolation-Dn-HWCtI.mjs} +1 -1
  34. package/dist/{SideQuestionIsolation-DvVKZWxi.cjs → SideQuestionIsolation-pW7UQKVD.cjs} +1 -1
  35. package/dist/bin.cjs +11516 -9316
  36. package/dist/bin.mjs +11166 -8960
  37. package/dist/client/assets/AccountSettings-CEf7oALI.js +1 -0
  38. package/dist/client/assets/AiFocusSettings-Bx0qzXZb.js +1 -0
  39. package/dist/client/assets/AnimatedHeight-BdPmCa-2.js +1 -0
  40. package/dist/client/assets/AppearanceSettings-dR9CQ8NA.js +1 -0
  41. package/dist/client/assets/BranchToolbar.logic-h0d4Ciue.js +3 -0
  42. package/dist/client/assets/BrowserPanel-D8lPv8fb.js +1 -0
  43. package/dist/client/assets/ChatRightPanel-Dn-7Xvyc.js +199 -0
  44. package/dist/client/assets/ChatThreadRouteView-DVBC81zl.js +1 -0
  45. package/dist/client/assets/CommandPaletteDialog-BNYMM9Z4.js +1 -0
  46. package/dist/client/assets/CompositeRoot-C2w3pPeh.js +1 -0
  47. package/dist/client/assets/ComputerUseSettings-Cs_Owo6-.js +1 -0
  48. package/dist/client/assets/ConnectionsSettings-DEi2p0zo.js +7 -0
  49. package/dist/client/assets/ContextHandoffEndpointLabel-DS0hRX6s.js +4 -0
  50. package/dist/client/assets/DiagnosticsSettings-YBPSnfRV.js +2 -0
  51. package/dist/client/assets/DialogHandle-4vx7sbjo.js +1 -0
  52. package/dist/client/assets/DialogPopup-B0PxwE99.js +1 -0
  53. package/dist/client/assets/DialogRoot-m4XA9S7t.js +1 -0
  54. package/dist/client/assets/DialogTitle-BYcCdrqC.js +1 -0
  55. package/dist/client/assets/DialogTrigger-DJWPHhX_.js +1 -0
  56. package/dist/client/assets/DialogViewport-UVYw-6p8.js +1 -0
  57. package/dist/client/assets/DraftChatThreadRouteView-BSqiqymo.js +1 -0
  58. package/dist/client/assets/{ExternalIdentityWeb.logic-CrcNfdHK.js → ExternalIdentityWeb.logic-BcfjLeSk.js} +1 -1
  59. package/dist/client/assets/{GlassSurface-CBIEgwt1.js → GlassSurface-YfHTds9q.js} +1 -1
  60. package/dist/client/assets/HostedConnectionControls-zCFvpOtX.js +1 -0
  61. package/dist/client/assets/HostedHubRoot-Dhp_vsh3.js +2 -0
  62. package/dist/client/assets/HostedNativeAuthorizationRoute-Dk-X6kyE.js +2 -0
  63. package/dist/client/assets/HostedNodeRenameDialog-BPmZUTA0.js +1 -0
  64. package/dist/client/assets/HostedRelayTrustNotice-9UBK7nWp.js +1 -0
  65. package/dist/client/assets/IntegrationsSettingsPanel-Dx_DA-GV.js +2 -0
  66. package/dist/client/assets/KeybindingsSettings-CXhTidkh.js +7 -0
  67. package/dist/client/assets/LazyBrowserPanel-B7krhylG.js +2 -0
  68. package/dist/client/assets/McpServersSettings-DaSVryrF.js +6 -0
  69. package/dist/client/assets/MobileSheet-CJK9LUkP.js +1 -0
  70. package/dist/client/assets/NodeSecuritySettings-D8-nbjl0.js +1 -0
  71. package/dist/client/assets/NullStore-B1qVh9r1.js +1 -0
  72. package/dist/client/assets/OnboardingDialog-BouStRFq.js +1 -0
  73. package/dist/client/assets/OpinionatedPluginsSettings-Dell0ad6.js +1 -0
  74. package/dist/client/assets/{PdfAttachmentPreview-BCMO9OHD.js → PdfAttachmentPreview-Cxmy8p4o.js} +3 -3
  75. package/dist/client/assets/PhoneGetAppInterstitial-DApTgg3Y.js +1 -0
  76. package/dist/client/assets/PhoneHome-Clzp8GJr.js +1 -0
  77. package/dist/client/assets/PhoneSettingsSurface-ByGQx_24.js +2 -0
  78. package/dist/client/assets/ProvidersSettingsPanel-BqIyPjmD.js +1 -0
  79. package/dist/client/assets/QuitShortcutFeedback-fpDQ3cUQ.js +1 -0
  80. package/dist/client/assets/RedactedSensitiveText-CcYd2px8.js +1 -0
  81. package/dist/client/assets/RootAppShell-CWZbIY7q.js +7 -0
  82. package/dist/client/assets/Separator-phTJr0Qx.js +1 -0
  83. package/dist/client/assets/SettingsDialog-TJfJzHN9.js +2 -0
  84. package/dist/client/assets/SettingsPanels-DWkzFTVO.js +3 -0
  85. package/dist/client/assets/SettingsPanels.editor-Cml3ZnL4.js +1 -0
  86. package/dist/client/assets/SourceControlSettings-C-4QtBJz.js +1 -0
  87. package/dist/client/assets/StatisticsPage-DcHPYglK.js +1 -0
  88. package/dist/client/assets/StatisticsPanel-BaobZm_7.js +1 -0
  89. package/dist/client/assets/StatisticsSettingsLink-D495bF8R.js +1 -0
  90. package/dist/client/assets/ThreadTerminalDrawer-erl6kZF6.js +18 -0
  91. package/dist/client/assets/ThreadWorkspacePanel-CdlvFu_u.js +2074 -0
  92. package/dist/client/assets/abnfDiagram-N423BO3Z-BAYNysM5.js +1 -0
  93. package/dist/client/assets/{activity-BmRcsTyL.js → activity-BdLqP9i_.js} +1 -1
  94. package/dist/client/assets/{alert-C5UiA2xk.js → alert-DPLHJUsX.js} +1 -1
  95. package/dist/client/assets/angular-html-B8mrqUL5.js +1 -0
  96. package/dist/client/assets/{angular-ts-BQK9km6-.js → angular-ts-Bzix210W.js} +1 -1
  97. package/dist/client/assets/{apl-C92MddLO.js → apl-Dhin1L29.js} +1 -1
  98. package/dist/client/assets/{appChrome-CsZ2ylc1.js → appChrome-DWDme9Dt.js} +1 -1
  99. package/dist/client/assets/arc-BbkdAXW7.js +1 -0
  100. package/dist/client/assets/architecture-7GRP2DOG-BJtkrWuJ.js +1 -0
  101. package/dist/client/assets/architectureDiagram-T3A2C74G-C8_Cvj7E.js +36 -0
  102. package/dist/client/assets/{arrow-left-CSz-z20j.js → arrow-left-BAJW4wtE.js} +1 -1
  103. package/dist/client/assets/{arrow-right-DEi91hao.js → arrow-right-Dns94Sea.js} +1 -1
  104. package/dist/client/assets/{arrow-up-right-D7SpcTV9.js → arrow-up-right-B4jqikrK.js} +1 -1
  105. package/dist/client/assets/{astro-CV97iv9o.js → astro-B-4NNgOP.js} +1 -1
  106. package/dist/client/assets/authorization-DMv-wK-V.js +1 -0
  107. package/dist/client/assets/badge-DLmSMsDm.js +1 -0
  108. package/dist/client/assets/band-DZ4Jagyz.js +1 -0
  109. package/dist/client/assets/{blade-yJCl9jZA.js → blade-C6Gedziy.js} +1 -1
  110. package/dist/client/assets/blockDiagram-VBNYF7ZC-B75XFMEV.js +132 -0
  111. package/dist/client/assets/{bot-SC4UGZyw.js → bot-Dv0XDWJs.js} +1 -1
  112. package/dist/client/assets/c-iCihek07.js +1 -0
  113. package/dist/client/assets/c4Diagram-5PPSVZJV-DwxLnQVX.js +10 -0
  114. package/dist/client/assets/capabilities-8t5cq9FQ.js +1 -0
  115. package/dist/client/assets/channel-BBNf4NuI.js +1 -0
  116. package/dist/client/assets/{chapel-B4wvmE90.js → chapel-DmtgEXO_.js} +1 -1
  117. package/dist/client/assets/{chart-column-C08MuLgY.js → chart-column-B_-qnXGB.js} +1 -1
  118. package/dist/client/assets/chevron-right-Cnb37R-Q.js +1 -0
  119. package/dist/client/assets/chunk-2GRJ4B5K-nG7WCf2t.js +1 -0
  120. package/dist/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  121. package/dist/client/assets/chunk-4I5QYGJK-D3luggpT.js +1 -0
  122. package/dist/client/assets/chunk-5RXB4S5H-nhzQkmkg.js +231 -0
  123. package/dist/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  124. package/dist/client/assets/chunk-6Q2QTUOP-dP86RxKA.js +88 -0
  125. package/dist/client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  126. package/dist/client/assets/chunk-7Z6QIM7H-DaMB-SqH.js +10 -0
  127. package/dist/client/assets/chunk-FOHPRMQF-CoA4358r.js +161 -0
  128. package/dist/client/assets/chunk-GF5L2VYU-asgcvCCI.js +206 -0
  129. package/dist/client/assets/chunk-I66GZJ75-CDkA1o_8.js +127 -0
  130. package/dist/client/assets/chunk-JQJVKLGR-Bw0X5Ip-.js +156 -0
  131. package/dist/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  132. package/dist/client/assets/chunk-KBJHAD2P-dO_kTnL7.js +1 -0
  133. package/dist/client/assets/chunk-NSK5VX7P-BmceTTBR.js +2 -0
  134. package/dist/client/assets/chunk-QR6OTTB3-B5kA0ffj.js +62 -0
  135. package/dist/client/assets/chunk-RYQCIY6F-DwFgeAGr.js +1 -0
  136. package/dist/client/assets/chunk-UBXNYLIW-CDedwfvO.js +1 -0
  137. package/dist/client/assets/chunk-W5SLKNZC-CYitqjQA.js +1 -0
  138. package/dist/client/assets/chunk-WRU74C26-BuyHUiY3.js +70 -0
  139. package/dist/client/assets/chunk-XXDRQBXY-DKGD__ll.js +1 -0
  140. package/dist/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  141. package/dist/client/assets/classDiagram-JCYQIIEL-CEJrTr5w.js +1 -0
  142. package/dist/client/assets/classDiagram-v2-OCEON4UE-CEJrTr5w.js +1 -0
  143. package/dist/client/assets/{clipboard-copy-D74Wvnon.js → clipboard-copy-m25MViws.js} +1 -1
  144. package/dist/client/assets/{cobol-NqUMvFU8.js → cobol-Cw2-KvLW.js} +1 -1
  145. package/dist/client/assets/{coffee-DVKhASwQ.js → coffee-CiiSLhB6.js} +1 -1
  146. package/dist/client/assets/compiler-runtime-C4g8XhC5.js +1 -0
  147. package/dist/client/assets/cose-bilkent-JH36ORCC-CQw99gYc.js +1 -0
  148. package/dist/client/assets/cpp-71xkOQct.js +1 -0
  149. package/dist/client/assets/{crystal-DTR4CTFy.js → crystal-DGPAtLeY.js} +1 -1
  150. package/dist/client/assets/css-CNuuLpMC.js +1 -0
  151. package/dist/client/assets/cynefin-OW5HDTMX-PI1jXfo9.js +1 -0
  152. package/dist/client/assets/cynefinDiagram-MW4NZA55-D9aXz2H3.js +62 -0
  153. package/dist/client/assets/cytoscape.esm-B-1iW2ft.js +321 -0
  154. package/dist/client/assets/dagre-VZM6K2ZE-DAkAWtHf.js +4 -0
  155. package/dist/client/assets/dagre-jnk0s9qx.js +1 -0
  156. package/dist/client/assets/{data-list-CZ4Utnfl.js → data-list-CzuRaMoY.js} +1 -1
  157. package/dist/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  158. package/dist/client/assets/desktopWorkspace-DCXeateK.js +1 -0
  159. package/dist/client/assets/diagram-7IWD3JNH-D9Y5DAHG.js +30 -0
  160. package/dist/client/assets/diagram-B4RE2ZJO-pcVWvD1c.js +3 -0
  161. package/dist/client/assets/diagram-LBJQPF4R-CKQHNEf3.js +24 -0
  162. package/dist/client/assets/diagram-Q27KOJAE-DpUj2dlx.js +24 -0
  163. package/dist/client/assets/diagram-UB23O5K3-D9ixM4zK.js +41 -0
  164. package/dist/client/assets/dist-v5Q1xZ2K.js +1 -0
  165. package/dist/client/assets/{download-Dio40wIJ.js → download-BLSwvpO8.js} +1 -1
  166. package/dist/client/assets/ebnfDiagram-BXEA7PRR-DtVIaCAg.js +1 -0
  167. package/dist/client/assets/{edge-CpqhDICu.js → edge-DCY0a-ow.js} +1 -1
  168. package/dist/client/assets/editorPreferences-B9oRG3Zd.js +1 -0
  169. package/dist/client/assets/{elixir--isJgL2B.js → elixir-DP304Xio.js} +1 -1
  170. package/dist/client/assets/{elm-DgHzNgm_.js → elm-o4NJxfws.js} +1 -1
  171. package/dist/client/assets/{empty-6LExKYgQ.js → empty-DOy2mOw2.js} +1 -1
  172. package/dist/client/assets/erDiagram-JOGREHBK-BLKpTkcC.js +85 -0
  173. package/dist/client/assets/{erb-CXyXxaAM.js → erb-C7MPl934.js} +1 -1
  174. package/dist/client/assets/eventmodeling-NTZA5JFV-BwvZvQqc.js +1 -0
  175. package/dist/client/assets/flowDiagram-UKHOOZJN-BQ7PEPRm.js +1 -0
  176. package/dist/client/assets/ganttDiagram-PKOTCBZU-CnqZ0jmv.js +292 -0
  177. package/dist/client/assets/{git-rebase-BqNqx552.js → git-rebase-BDPpS8w6.js} +1 -1
  178. package/dist/client/assets/gitGraph-4MIJSDKK-CwCT0-s6.js +1 -0
  179. package/dist/client/assets/gitGraphDiagram-DS77QQ5N-s8lXhp4w.js +106 -0
  180. package/dist/client/assets/{glimmer-js-yZWXr7D1.js → glimmer-js-BONyzAsu.js} +1 -1
  181. package/dist/client/assets/{glimmer-ts-BgilwNe9.js → glimmer-ts-f9c0GCOe.js} +1 -1
  182. package/dist/client/assets/glsl-D5MA2a_X.js +1 -0
  183. package/dist/client/assets/graphlib-DS17s2tU.js +1 -0
  184. package/dist/client/assets/graphql-Ctjuxyvl.js +1 -0
  185. package/dist/client/assets/{group-D_mu0Kiq.js → group-CuoO9JnL.js} +1 -1
  186. package/dist/client/assets/{hack-Bw3mo9za.js → hack-Dh_ZLRbs.js} +1 -1
  187. package/dist/client/assets/haml-CwEpbK1d.js +1 -0
  188. package/dist/client/assets/{handlebars-D71nAVX4.js → handlebars-ryMP1rBR.js} +1 -1
  189. package/dist/client/assets/hostedConnectionCoordinator-BSJ_DOFJ.js +1 -0
  190. package/dist/client/assets/hostedPairing-CqhLPQqG.js +1 -0
  191. package/dist/client/assets/html-XwrE-1r6.js +1 -0
  192. package/dist/client/assets/{html-derivative-BwDrYmK9.js → html-derivative-i4STDFnl.js} +1 -1
  193. package/dist/client/assets/{http-BSiVGmrj.js → http-kmH8AyfE.js} +1 -1
  194. package/dist/client/assets/hubRoutes-21nfUON0.js +1 -0
  195. package/dist/client/assets/{hurl-BUTu-xdf.js → hurl-DCZHXKU4.js} +1 -1
  196. package/dist/client/assets/{index-7MTgf8YI.js → index-BwKpO5H0.js} +2 -2
  197. package/dist/client/assets/info-A6RAGUB7-BEii5_a7.js +1 -0
  198. package/dist/client/assets/infoDiagram-6WML65LV-BDA4ayxB.js +2 -0
  199. package/dist/client/assets/init-ZlXS9mIS.js +1 -0
  200. package/dist/client/assets/input-C7jwjNin.js +1 -0
  201. package/dist/client/assets/ishikawaDiagram-WSZJBQD7-Dg0BzsTT.js +70 -0
  202. package/dist/client/assets/java-DdHNQ9hk.js +1 -0
  203. package/dist/client/assets/javascript-obGGvMPs.js +1 -0
  204. package/dist/client/assets/{jinja-BA7hgfzz.js → jinja-B-tLrNsM.js} +1 -1
  205. package/dist/client/assets/{jison-CUMnSUVk.js → jison-CBjhYtSs.js} +1 -1
  206. package/dist/client/assets/journeyDiagram-NVQOT4AX-C8EwxR5-.js +139 -0
  207. package/dist/client/assets/json-DAgxKhMr.js +1 -0
  208. package/dist/client/assets/jsx-gTgmArGx.js +1 -0
  209. package/dist/client/assets/{julia-C-lBeOK5.js → julia-CXJVy74_.js} +1 -1
  210. package/dist/client/assets/{just-DfEtguTY.js → just-B9Xn_Dp4.js} +1 -1
  211. package/dist/client/assets/kanban-definition-27J2QSJJ-CwWIK4hH.js +89 -0
  212. package/dist/client/assets/katex-ZlcWpGUi.js +257 -0
  213. package/dist/client/assets/kbd-BkhO-OIB.js +1 -0
  214. package/dist/client/assets/{key-round-C-oUSjpF.js → key-round-QNi8vZ3o.js} +1 -1
  215. package/dist/client/assets/{latex-6oxeCMbP.js → latex-o9DRzaEe.js} +1 -1
  216. package/dist/client/assets/{layers-Co2a5C1k.js → layers-DxCncDg0.js} +1 -1
  217. package/dist/client/assets/linear-DCT4R0u9.js +1 -0
  218. package/dist/client/assets/{liquid-Cr73H0-U.js → liquid-G0MH4h_m.js} +1 -1
  219. package/dist/client/assets/liquidGlass-CA2o_Cq0.js +1 -0
  220. package/dist/client/assets/{log-out-pWFhbvwr.js → log-out-0cx8xYmG.js} +1 -1
  221. package/dist/client/assets/{logging-JMrwaeZh.js → logging-D0Z2ysS_.js} +1 -1
  222. package/dist/client/assets/lua-FONpmTUP.js +1 -0
  223. package/dist/client/assets/main-Bs1wRbtM.css +2 -0
  224. package/dist/client/assets/main-DRnQOdGw.js +9 -0
  225. package/dist/client/assets/map-CLsMSThe.js +1 -0
  226. package/dist/client/assets/{marko-8BhW8jZt.js → marko-DV5GrDmo.js} +1 -1
  227. package/dist/client/assets/{mdc-uTSeACfH.js → mdc-BKfPFPZw.js} +1 -1
  228. package/dist/client/assets/mermaid-parser.core-DFyHLivv.js +6 -0
  229. package/dist/client/assets/mermaidEngine-CFbqgukn.js +41 -0
  230. package/dist/client/assets/mindmap-definition-FAOFIHXS-DEUodh64.js +96 -0
  231. package/dist/client/assets/{nginx-BbzDIRDu.js → nginx-BTMw9COX.js} +1 -1
  232. package/dist/client/assets/{nim-C27DPxCt.js → nim-B6yJ_yaC.js} +1 -1
  233. package/dist/client/assets/noop-CdBy4H-p.js +1 -0
  234. package/dist/client/assets/ordinal-CPleeUAT.js +1 -0
  235. package/dist/client/assets/{org-DRYqs_wo.js → org-Ddi8Gs6E.js} +1 -1
  236. package/dist/client/assets/packet-AYTQ26CC-kDW4NC3U.js +1 -0
  237. package/dist/client/assets/{palette-B_6C4fD6.js → palette-DJP6HjoK.js} +1 -1
  238. package/dist/client/assets/pegDiagram-VL7TDLO6-DP6G624r.js +1 -0
  239. package/dist/client/assets/{perl-Dj7_nwz_.js → perl-DEgXgjuC.js} +1 -1
  240. package/dist/client/assets/{php-Xqfm-TjX.js → php-B9UPq-vz.js} +1 -1
  241. package/dist/client/assets/pie-WAS4IAKB-CkU95zMj.js +1 -0
  242. package/dist/client/assets/pieDiagram-7S7Q4E2Y-CbI-Me3X.js +39 -0
  243. package/dist/client/assets/{play-DFtc9zBy.js → play-D2dLXeYA.js} +1 -1
  244. package/dist/client/assets/primary-CTbs3K5y.js +5 -0
  245. package/dist/client/assets/providerDriverMeta-BufQsOt9.js +1 -0
  246. package/dist/client/assets/providerInstances-BsYOgLbA.js +1 -0
  247. package/dist/client/assets/providerModels-B6q2qkJn.js +1 -0
  248. package/dist/client/assets/providerStatus-DBGvvkyF.js +1 -0
  249. package/dist/client/assets/{pug-CKEc9v9y.js → pug-DkgDHZci.js} +1 -1
  250. package/dist/client/assets/{qml-C3bhdnuC.js → qml-_a-QhfPD.js} +1 -1
  251. package/dist/client/assets/qr-code-aWP2UC_0.js +1 -0
  252. package/dist/client/assets/{qr-code-DaHWf7Oq.js → qr-code-rHO2PSNK.js} +1 -1
  253. package/dist/client/assets/quadrantDiagram-CIZ2JOQS-DdT-PJym.js +7 -0
  254. package/dist/client/assets/r-BHcO8Vjq.js +1 -0
  255. package/dist/client/assets/radar-RG4KPBEZ-BCHjOI8k.js +1 -0
  256. package/dist/client/assets/radio-group-j7Aw0khh.js +2 -0
  257. package/dist/client/assets/railroad-74A4TZTK-Coyy1E7r.js +1 -0
  258. package/dist/client/assets/railroad-abnf-HS5TGJTU-vVvBZ7mV.js +1 -0
  259. package/dist/client/assets/railroad-ebnf-LZEXJU2U-DPhiX3AH.js +1 -0
  260. package/dist/client/assets/railroad-peg-WCYAUIDC-CE5r0-yf.js +1 -0
  261. package/dist/client/assets/railroadDiagram-AXF67PYL-BtotoGcb.js +1 -0
  262. package/dist/client/assets/{razor-CCBiKnb_.js → razor-BMJ0eI3p.js} +1 -1
  263. package/dist/client/assets/react-CwJFpaho.js +1 -0
  264. package/dist/client/assets/{refresh-cw-CY5BeUEr.js → refresh-cw-BvLhRgIT.js} +1 -1
  265. package/dist/client/assets/regexp-DR20uMnK.js +1 -0
  266. package/dist/client/assets/requirementDiagram-LRYGKXZP-CkRiHwnq.js +84 -0
  267. package/dist/client/assets/rolldown-runtime-hePW80VL.js +1 -0
  268. package/dist/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
  269. package/dist/client/assets/{rst-DKqX_39h.js → rst-BQCbfb9V.js} +1 -1
  270. package/dist/client/assets/{ruby-CaU3RLfE.js → ruby-B8JcIHv0.js} +1 -1
  271. package/dist/client/assets/runtime-BmkVEPVk.js +17 -0
  272. package/dist/client/assets/sankeyDiagram-W5VNT64P-CRA3QeOy.js +40 -0
  273. package/dist/client/assets/{sas-Dq8EnVfj.js → sas-CBpMWA2M.js} +1 -1
  274. package/dist/client/assets/{save-DIHMjHXd.js → save-BS49-bF8.js} +1 -1
  275. package/dist/client/assets/scroll-area-DCAX5yOi.js +1 -0
  276. package/dist/client/assets/scrollEdges-BPCo6eoJ.js +1 -0
  277. package/dist/client/assets/scss-YesllqfO.js +1 -0
  278. package/dist/client/assets/separator-BzCfJfqt.js +1 -0
  279. package/dist/client/assets/sequenceDiagram-SI44F4Z6-C1NBZD9Z.js +162 -0
  280. package/dist/client/assets/settingsLayout-DsTnu1ag.js +1 -0
  281. package/dist/client/assets/{sheet-CFvRY7T6.js → sheet-B5Bho6hg.js} +1 -1
  282. package/dist/client/assets/shellscript-Da78Ox-3.js +1 -0
  283. package/dist/client/assets/{shellsession-26dOf2m0.js → shellsession-CVsQGYfZ.js} +1 -1
  284. package/dist/client/assets/{shield-Zn2kFj5M.js → shield-D8Js3j2m.js} +1 -1
  285. package/dist/client/assets/{shield-alert-DMB5gKiC.js → shield-alert-D5KtaxAD.js} +1 -1
  286. package/dist/client/assets/{shield-check-DyNf6Bky.js → shield-check-Bw3PFmc5.js} +1 -1
  287. package/dist/client/assets/sidebar-BgdP0aPP.js +1 -0
  288. package/dist/client/assets/sidebarProjectFolders-SidXpBYm.js +4 -0
  289. package/dist/client/assets/{sidebarStatusText-DCo-whyK.js → sidebarStatusText-CGlncYed.js} +1 -1
  290. package/dist/client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  291. package/dist/client/assets/{skeleton-DEuowfjY.js → skeleton-D2DLiMeL.js} +1 -1
  292. package/dist/client/assets/{smartphone-BLWJ7C9-.js → smartphone-BxLjYoMC.js} +1 -1
  293. package/dist/client/assets/{soy-Bf3k5CrX.js → soy-DEd-qcad.js} +1 -1
  294. package/dist/client/assets/sql-DdD7vxS4.js +1 -0
  295. package/dist/client/assets/src-BISxbUej.js +1 -0
  296. package/dist/client/assets/{src-DPpEXU6w.js → src-DveUJAx7.js} +1 -1
  297. package/dist/client/assets/{star-CjQxHYbD.js → star-COJFLZTR.js} +1 -1
  298. package/dist/client/assets/{stata-DYvaCWJV.js → stata-CMv7m7Gi.js} +1 -1
  299. package/dist/client/assets/stateDiagram-OKZ733FA-Ds3WpAzo.js +1 -0
  300. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-B1G6cGoL.js +1 -0
  301. package/dist/client/assets/{surrealql-CVtmRpY6.js → surrealql-BZoq2lXR.js} +1 -1
  302. package/dist/client/assets/{svelte-k_k4XYnr.js → svelte-Bj3Hmc9F.js} +1 -1
  303. package/dist/client/assets/swimlanes-SLNWSIFB-CBOT6h6D.js +1 -0
  304. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-C7dzqG68.js +8 -0
  305. package/dist/client/assets/switch-DRWMuFAB.js +48 -0
  306. package/dist/client/assets/{templ-CxD_nC0J.js → templ-TjxbArHn.js} +1 -1
  307. package/dist/client/assets/tex-BK-H2Wn4.js +1 -0
  308. package/dist/client/assets/time-DQ1f7CYz.js +1 -0
  309. package/dist/client/assets/timeline-definition-Z64GVDOM-BchFx9aU.js +120 -0
  310. package/dist/client/assets/toggle-BFimNtfd.js +1 -0
  311. package/dist/client/assets/toggle-group-DkiAyblO.js +1 -0
  312. package/dist/client/assets/{tokenModePresentation-CPUsUGY4.js → tokenModePresentation-CF3EmBbY.js} +1 -1
  313. package/dist/client/assets/tooltip-DCkohGhZ.js +1 -0
  314. package/dist/client/assets/treeView-Q6P3EWNA-CEV1Lb2d.js +1 -0
  315. package/dist/client/assets/treemap-WGGIJYW6-BmpcuJbz.js +1 -0
  316. package/dist/client/assets/{ts-tags-BriKwQve.js → ts-tags-Cc5do7zu.js} +1 -1
  317. package/dist/client/assets/tsx-CUOciP0b.js +1 -0
  318. package/dist/client/assets/{twig-DsmcR2eZ.js → twig-BVSnuTf-.js} +1 -1
  319. package/dist/client/assets/typescript-BydbNFcO.js +1 -0
  320. package/dist/client/assets/{typst-Drab9wKO.js → typst-C40W_gC6.js} +1 -1
  321. package/dist/client/assets/{unplug-Bjpxv8i0.js → unplug-8DPlQKIp.js} +1 -1
  322. package/dist/client/assets/{usage-8vQUo0mr.js → usage-C8xQ6Fzh.js} +1 -1
  323. package/dist/client/assets/useAppSidebarCollapsed-C2LlQGyO.js +1 -0
  324. package/dist/client/assets/useAppearancePreference-Dlh9P8iu.js +1 -0
  325. package/dist/client/assets/useBaseUiId-mt0hfEAe.js +1 -0
  326. package/dist/client/assets/useControlled-CgAAWIy9.js +1 -0
  327. package/dist/client/assets/useLabelableId-Cvt4WsTl.js +1 -0
  328. package/dist/client/assets/useLongPress-CUmLovQ7.js +1 -0
  329. package/dist/client/assets/useNavigate-C3GqcMfH.js +1 -0
  330. package/dist/client/assets/usePhoneThreadActions-D6vlUMhK.js +1 -0
  331. package/dist/client/assets/usePopupViewport-Do1Do_XW.js +1 -0
  332. package/dist/client/assets/usePresentationTier-hxB7Yv_Q.js +1 -0
  333. package/dist/client/assets/useScrollLock-CBkwVMhR.js +1 -0
  334. package/dist/client/assets/useStatistics-DVzBUtMo.js +55 -0
  335. package/dist/client/assets/useTheme-B441xg4F.js +1 -0
  336. package/dist/client/assets/useTriggerFocusGuards-CwCaKZe6.js +1 -0
  337. package/dist/client/assets/useValueChanged-DdYHxdoK.js +1 -0
  338. package/dist/client/assets/{user-round-DEWIPpNs.js → user-round-D4L0lVW8.js} +1 -1
  339. package/dist/client/assets/vennDiagram-T6HMQDX7-D5h4gL4M.js +34 -0
  340. package/dist/client/assets/{vscode-icons-DTH-Vj-_.js → vscode-icons-BKarOrEi.js} +1 -1
  341. package/dist/client/assets/{vue-Dt-rrFdH.js → vue-BNQF7r6F.js} +1 -1
  342. package/dist/client/assets/{vue-html-BrRsRUlP.js → vue-html-DkKkQnZL.js} +1 -1
  343. package/dist/client/assets/{vue-vine-CxnolnwP.js → vue-vine-DFaKYU4X.js} +1 -1
  344. package/dist/client/assets/wardley-WFR3VGLG-COhlspfw.js +1 -0
  345. package/dist/client/assets/wardleyDiagram-T6FBY63Y-WJNCmmcd.js +78 -0
  346. package/dist/client/assets/{workspaceMetadataProjection-BnpxBe8S.js → workspaceMetadataProjection-DGOQN5yh.js} +1 -1
  347. package/dist/client/assets/{wrench-36WYdK_a.js → wrench-B8Kn44An.js} +1 -1
  348. package/dist/client/assets/xml-BlnrEAEy.js +1 -0
  349. package/dist/client/assets/{xsl-BY-Cn9M_.js → xsl-BOPS8gLt.js} +1 -1
  350. package/dist/client/assets/xychartDiagram-ELKLHX3M-CabQ0hKy.js +7 -0
  351. package/dist/client/assets/yaml-Du_6cdrH.js +1 -0
  352. package/dist/client/index.html +1 -1
  353. package/dist/{deviceHostWorker-C-BSnmkn.mjs → deviceHostWorker-CV7GZgfH.mjs} +1 -1
  354. package/dist/{git-C4iJMbBu.mjs → git-BaEqFwDw.mjs} +1 -1
  355. package/dist/{git-irmB8_k7.cjs → git-VPCnunmz.cjs} +1 -1
  356. package/dist/{makeManagedServerProvider-BINne1KE.mjs → makeManagedServerProvider--SPw3bxe.mjs} +23 -19
  357. package/dist/{makeManagedServerProvider-DGbd8BhM.cjs → makeManagedServerProvider-A3NSgBwN.cjs} +23 -19
  358. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  359. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  360. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  361. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  362. package/dist/{Metrics-C-3MahDy.mjs → serverSettings-C7N2cm7C.mjs} +783 -8
  363. package/dist/{Metrics-DCKbdeoH.cjs → serverSettings-_fgQZNIb.cjs} +944 -11
  364. package/dist/{src-BlzIcnVG.cjs → src-CBu69HDR.cjs} +395 -20
  365. package/dist/{src-DtEOcXdl.mjs → src-D8uCtoDZ.mjs} +342 -15
  366. package/package.json +1 -1
  367. package/dist/SourceControlProviderDiscoveryCatalog-BVvq7liJ.mjs +0 -525
  368. package/dist/SourceControlProviderDiscoveryCatalog-CyUhKJLD.cjs +0 -614
  369. package/dist/client/assets/AccountSettings-DLbcE2w-.js +0 -1
  370. package/dist/client/assets/AiFocusSettings-FKvdkl4P.js +0 -1
  371. package/dist/client/assets/AnimatedHeight-CbIEyMLg.js +0 -1
  372. package/dist/client/assets/AppearanceSettings-B2LsGKmL.js +0 -1
  373. package/dist/client/assets/BranchToolbar.logic-BqkvYNPk.js +0 -1
  374. package/dist/client/assets/BrowserPanel-C_C4zjrh.js +0 -1
  375. package/dist/client/assets/ChatRightPanel-ibiQ79jI.js +0 -195
  376. package/dist/client/assets/ChatThreadRouteView-c7AXmbSk.js +0 -1
  377. package/dist/client/assets/CommandPaletteDialog-DdPKN6rv.js +0 -1
  378. package/dist/client/assets/CompositeRoot-DKwS-ADi.js +0 -1
  379. package/dist/client/assets/ComputerUseSettings-DM17BYP5.js +0 -1
  380. package/dist/client/assets/ConnectionsSettings-D6wysIC8.js +0 -7
  381. package/dist/client/assets/ContextHandoffEndpointLabel-CsF_maM_.js +0 -4
  382. package/dist/client/assets/DiagnosticsSettings-Bq2l-C4J.js +0 -2
  383. package/dist/client/assets/DialogHandle-DuKTleCw.js +0 -1
  384. package/dist/client/assets/DialogPopup-Dt7DzTWv.js +0 -1
  385. package/dist/client/assets/DialogRoot-DRyawL6l.js +0 -1
  386. package/dist/client/assets/DialogTitle-BaxfPC6e.js +0 -1
  387. package/dist/client/assets/DialogTrigger-D0PJ8bRT.js +0 -1
  388. package/dist/client/assets/DialogViewport-C3B2JZWQ.js +0 -1
  389. package/dist/client/assets/DraftChatThreadRouteView-B8YiD5NP.js +0 -1
  390. package/dist/client/assets/HostedConnectionControls-DOpTlXzE.js +0 -1
  391. package/dist/client/assets/HostedHubRoot-C1jq8cM6.js +0 -2
  392. package/dist/client/assets/HostedNativeAuthorizationRoute-Clw1DHQW.js +0 -2
  393. package/dist/client/assets/HostedNodeRenameDialog-Bd_Qu_ek.js +0 -1
  394. package/dist/client/assets/HostedRelayTrustNotice-CGcBpT9m.js +0 -1
  395. package/dist/client/assets/IntegrationsSettingsPanel-J0qODRW-.js +0 -2
  396. package/dist/client/assets/KeybindingsSettings-CwxIHsFy.js +0 -7
  397. package/dist/client/assets/LazyBrowserPanel-VNAn6AUL.js +0 -2
  398. package/dist/client/assets/McpServersSettings-1pkIeutq.js +0 -6
  399. package/dist/client/assets/MobileSheet-DddfN8c2.js +0 -1
  400. package/dist/client/assets/NodeSecuritySettings-BOIZeFZo.js +0 -1
  401. package/dist/client/assets/OpinionatedPluginsSettings-oTIrPtIb.js +0 -1
  402. package/dist/client/assets/PhoneGetAppInterstitial-0EOj-PbW.js +0 -1
  403. package/dist/client/assets/PhoneHome-Cg7l3b1T.js +0 -1
  404. package/dist/client/assets/PhoneSettingsSurface-BXAUtZ9M.js +0 -2
  405. package/dist/client/assets/ProvidersSettingsPanel-BaJgypXu.js +0 -1
  406. package/dist/client/assets/QuitShortcutFeedback-DgJFEd6b.js +0 -1
  407. package/dist/client/assets/RedactedSensitiveText-D1VC2xa7.js +0 -1
  408. package/dist/client/assets/RootAppShell-D2RjZ9jQ.js +0 -7
  409. package/dist/client/assets/Separator-CeMncdkm.js +0 -1
  410. package/dist/client/assets/SettingsDialog-B2hEb6u8.js +0 -2
  411. package/dist/client/assets/SettingsPanels-DtWLQDne.js +0 -3
  412. package/dist/client/assets/SettingsPanels.editor-DJRckD71.js +0 -1
  413. package/dist/client/assets/SourceControlSettings-IpoZrjt5.js +0 -1
  414. package/dist/client/assets/StatisticsPage-CUpE_5Gr.js +0 -1
  415. package/dist/client/assets/StatisticsPanel-CHrAY5AP.js +0 -1
  416. package/dist/client/assets/StatisticsSettingsLink-bGWuxNG3.js +0 -1
  417. package/dist/client/assets/ThreadTerminalDrawer-BEv83xrk.js +0 -18
  418. package/dist/client/assets/ThreadWorkspacePanel-BdMdJVHJ.js +0 -2073
  419. package/dist/client/assets/angular-html-Dht9YPGR.js +0 -1
  420. package/dist/client/assets/authorization-B1YXfej3.js +0 -1
  421. package/dist/client/assets/badge-BjvTY7-E.js +0 -1
  422. package/dist/client/assets/c-Baw6W2ff.js +0 -1
  423. package/dist/client/assets/capabilities-BCkDNe83.js +0 -1
  424. package/dist/client/assets/chevron-right-DgB53U1_.js +0 -1
  425. package/dist/client/assets/compiler-runtime-qmuS0Svy.js +0 -1
  426. package/dist/client/assets/cpp-C3nXdf7H.js +0 -1
  427. package/dist/client/assets/css-tyblAV2Z.js +0 -1
  428. package/dist/client/assets/desktopWorkspace-DVfn9ZT_.js +0 -1
  429. package/dist/client/assets/editorPreferences-2dG4uloq.js +0 -1
  430. package/dist/client/assets/glsl-CiPx7o44.js +0 -1
  431. package/dist/client/assets/graphql-dVCFBcPU.js +0 -1
  432. package/dist/client/assets/haml-Bvq_b7GQ.js +0 -1
  433. package/dist/client/assets/hostedConnectionCoordinator-YkDLnATK.js +0 -1
  434. package/dist/client/assets/hostedPairing-B_ylEEDa.js +0 -1
  435. package/dist/client/assets/html-CQCljoLJ.js +0 -1
  436. package/dist/client/assets/hubRoutes-D3quWvU7.js +0 -1
  437. package/dist/client/assets/input-CfVJycb1.js +0 -1
  438. package/dist/client/assets/java-DKLhoot1.js +0 -1
  439. package/dist/client/assets/javascript-BoDf_Xaa.js +0 -1
  440. package/dist/client/assets/json-D-CzDEr3.js +0 -1
  441. package/dist/client/assets/jsx-RPKfHBaT.js +0 -1
  442. package/dist/client/assets/kbd-uFa_tY-L.js +0 -1
  443. package/dist/client/assets/liquidGlass-Dbl4k51l.js +0 -1
  444. package/dist/client/assets/lua-BNklVDJF.js +0 -1
  445. package/dist/client/assets/main-BNPtp9Z0.css +0 -2
  446. package/dist/client/assets/main-CGeD6yVE.js +0 -9
  447. package/dist/client/assets/primary-CNUdEGcv.js +0 -2
  448. package/dist/client/assets/providerDriverMeta-Cg_XLUfo.js +0 -1
  449. package/dist/client/assets/providerInstances-JaDrOWPZ.js +0 -1
  450. package/dist/client/assets/providerModels-5uOq3qPC.js +0 -1
  451. package/dist/client/assets/qr-code-BU354aLS.js +0 -1
  452. package/dist/client/assets/r-B-BYV2IP.js +0 -1
  453. package/dist/client/assets/radio-group-DKaA1eey.js +0 -2
  454. package/dist/client/assets/react-SIfiwpqq.js +0 -1
  455. package/dist/client/assets/regexp-BG8FlKR9.js +0 -1
  456. package/dist/client/assets/runtime-BKneT96Q.js +0 -17
  457. package/dist/client/assets/scroll-area-Cq4SX9P8.js +0 -1
  458. package/dist/client/assets/scrollEdges-BaWRjrac.js +0 -1
  459. package/dist/client/assets/scss-CMpBj9xp.js +0 -1
  460. package/dist/client/assets/separator-BN705fC0.js +0 -1
  461. package/dist/client/assets/settingsLayout-DQERzSce.js +0 -1
  462. package/dist/client/assets/shellscript-C5MCrJaB.js +0 -1
  463. package/dist/client/assets/sidebar-Bsh64sLK.js +0 -1
  464. package/dist/client/assets/sidebarProjectFolders-CQbpO9ZI.js +0 -4
  465. package/dist/client/assets/sparkles-DAXDXp_s.js +0 -1
  466. package/dist/client/assets/sql-DcFiju6z.js +0 -1
  467. package/dist/client/assets/switch-LahPAvrd.js +0 -48
  468. package/dist/client/assets/tex-DOBpnpUK.js +0 -1
  469. package/dist/client/assets/toggle-45lsrmyi.js +0 -1
  470. package/dist/client/assets/toggle-group-D5pl24ED.js +0 -1
  471. package/dist/client/assets/tooltip-B8-izeMo.js +0 -1
  472. package/dist/client/assets/tsx-CltjRl2u.js +0 -1
  473. package/dist/client/assets/typescript-BwOcYJx4.js +0 -1
  474. package/dist/client/assets/useAppSidebarCollapsed-uwz9Hlgc.js +0 -1
  475. package/dist/client/assets/useAppearancePreference-BteoFdGa.js +0 -1
  476. package/dist/client/assets/useBaseUiId-BtuL7q77.js +0 -1
  477. package/dist/client/assets/useControlled-DQwgzrEC.js +0 -1
  478. package/dist/client/assets/useLabelableId-N_LsKNbf.js +0 -1
  479. package/dist/client/assets/useLongPress-DG1W7YqV.js +0 -1
  480. package/dist/client/assets/useNavigate-DADLi29i.js +0 -1
  481. package/dist/client/assets/usePhoneThreadActions-B9_HK7tn.js +0 -1
  482. package/dist/client/assets/usePopupViewport-w8BEny9j.js +0 -1
  483. package/dist/client/assets/usePresentationTier-B_SCFvN7.js +0 -1
  484. package/dist/client/assets/useScrollLock-bCmUzTgK.js +0 -1
  485. package/dist/client/assets/useStatistics-DJtONxT0.js +0 -55
  486. package/dist/client/assets/useTheme-CVNauCtz.js +0 -1
  487. package/dist/client/assets/useTriggerFocusGuards-C7JWO2LT.js +0 -1
  488. package/dist/client/assets/useValueChanged-DkoUO9bY.js +0 -1
  489. package/dist/client/assets/xml-DUCOjSp4.js +0 -1
  490. package/dist/client/assets/yaml-BONObsYN.js +0 -1
@@ -1,11 +1,248 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
4
+ const require_src = require("./src-CBu69HDR.cjs");
5
+ const require_schemaJson = require("./schemaJson-CuhFxa8p.cjs");
4
6
  let effect = require("effect");
7
+ let effect_Predicate = require("effect/Predicate");
8
+ effect_Predicate = require_rolldown_runtime.__toESM(effect_Predicate, 1);
5
9
  let node_path = require("node:path");
6
10
  node_path = require_rolldown_runtime.__toESM(node_path, 1);
7
11
  let node_crypto = require("node:crypto");
12
+ node_crypto = require_rolldown_runtime.__toESM(node_crypto, 1);
13
+ let node_fs = require("node:fs");
14
+ let node_os = require("node:os");
15
+ let node_fs_promises = require("node:fs/promises");
8
16
  let effect_Function = require("effect/Function");
17
+ let effect_Semaphore = require("effect/Semaphore");
18
+ effect_Semaphore = require_rolldown_runtime.__toESM(effect_Semaphore, 1);
19
+ require("effect/PlatformError");
20
+ //#region ../../packages/shared/src/Struct.ts
21
+ function deepMerge(current, patch) {
22
+ if (!effect_Predicate.isObject(current) || !effect_Predicate.isObject(patch)) return patch;
23
+ const next = { ...current };
24
+ for (const [key, value] of Object.entries(patch)) {
25
+ if (value === void 0) continue;
26
+ const existing = next[key];
27
+ next[key] = effect_Predicate.isObject(existing) && effect_Predicate.isObject(value) ? deepMerge(existing, value) : value;
28
+ }
29
+ return next;
30
+ }
31
+ //#endregion
32
+ //#region ../../packages/shared/src/model.ts
33
+ const DEFAULT_PROVIDER_DRIVER_KIND = require_src.ProviderDriverKind.make("codex");
34
+ /**
35
+ * Resolve the human-readable model title used by picker surfaces and durable
36
+ * handoff presentation. Provider catalogs are authoritative when they carry a
37
+ * friendly name; the routing slug remains the deterministic final fallback.
38
+ */
39
+ function getModelDisplayName(model, options) {
40
+ const shortName = trimOrNull(model.shortName);
41
+ const name = trimOrNull(model.name);
42
+ const slug = trimOrNull(model.slug) ?? model.slug;
43
+ return options?.preferShortName ? shortName ?? name ?? slug : name ?? shortName ?? slug;
44
+ }
45
+ /** Compose the optional sub-provider prefix exactly as the picker trigger does. */
46
+ function getModelDisplayLabel(model, options) {
47
+ const title = getModelDisplayName(model, options);
48
+ const subProvider = trimOrNull(model.subProvider);
49
+ return subProvider ? `${subProvider} · ${title}` : title;
50
+ }
51
+ function createModelCapabilities(input) {
52
+ return { optionDescriptors: input.optionDescriptors.map(cloneDescriptor) };
53
+ }
54
+ function getRawSelectionValueById(selections, id) {
55
+ return (selections?.find((candidate) => candidate.id === id))?.value;
56
+ }
57
+ function getProviderOptionSelectionValue(selections, id) {
58
+ return getRawSelectionValueById(selections, id);
59
+ }
60
+ function getProviderOptionStringSelectionValue(selections, id) {
61
+ const value = getProviderOptionSelectionValue(selections, id);
62
+ return typeof value === "string" ? value : void 0;
63
+ }
64
+ function getProviderOptionBooleanSelectionValue(selections, id) {
65
+ const value = getProviderOptionSelectionValue(selections, id);
66
+ return typeof value === "boolean" ? value : void 0;
67
+ }
68
+ function getModelSelectionStringOptionValue(modelSelection, id) {
69
+ return getProviderOptionStringSelectionValue(modelSelection?.options, id);
70
+ }
71
+ function getModelSelectionBooleanOptionValue(modelSelection, id) {
72
+ return getProviderOptionBooleanSelectionValue(modelSelection?.options, id);
73
+ }
74
+ function resolveDescriptorChoiceValue(descriptor, raw) {
75
+ const trimmed = trimOrNull(raw);
76
+ if (!trimmed) return descriptor.currentValue ?? descriptor.options.find((option) => option.isDefault)?.id;
77
+ if (descriptor.options.length === 0) return trimmed;
78
+ if (descriptor.promptInjectedValues?.includes(trimmed) && descriptor.options.some((option) => option.id === trimmed)) return descriptor.options.find((option) => option.isDefault)?.id;
79
+ if (descriptor.options.some((option) => option.id === trimmed)) return trimmed;
80
+ return descriptor.currentValue ?? descriptor.options.find((option) => option.isDefault)?.id;
81
+ }
82
+ function cloneDescriptor(descriptor) {
83
+ return descriptor.type === "select" ? {
84
+ ...descriptor,
85
+ options: [...descriptor.options],
86
+ ...descriptor.promptInjectedValues ? { promptInjectedValues: [...descriptor.promptInjectedValues] } : {}
87
+ } : { ...descriptor };
88
+ }
89
+ function cloneSelection(selection) {
90
+ return { ...selection };
91
+ }
92
+ function withDescriptorCurrentValue(descriptor, rawCurrentValue) {
93
+ if (descriptor.type === "boolean") {
94
+ if (typeof rawCurrentValue === "boolean") return {
95
+ ...descriptor,
96
+ currentValue: rawCurrentValue
97
+ };
98
+ return descriptor;
99
+ }
100
+ const currentValue = typeof rawCurrentValue === "string" ? resolveDescriptorChoiceValue(descriptor, rawCurrentValue) : resolveDescriptorChoiceValue(descriptor, descriptor.currentValue);
101
+ if (!currentValue) {
102
+ const { currentValue: _unusedCurrentValue, ...rest } = descriptor;
103
+ return rest;
104
+ }
105
+ return {
106
+ ...descriptor,
107
+ currentValue
108
+ };
109
+ }
110
+ function getProviderOptionDescriptors(input) {
111
+ const { caps, selections } = input;
112
+ return (caps.optionDescriptors ?? []).map(cloneDescriptor).map((descriptor) => withDescriptorCurrentValue(descriptor, getRawSelectionValueById(selections, descriptor.id) ?? descriptor.currentValue));
113
+ }
114
+ function getProviderOptionCurrentValue(descriptor) {
115
+ if (!descriptor) return;
116
+ if (descriptor.type === "boolean") return descriptor.currentValue;
117
+ if (descriptor.currentValue) return descriptor.currentValue;
118
+ return descriptor.options.find((option) => option.isDefault)?.id;
119
+ }
120
+ function normalizeModelSlug(model, provider = DEFAULT_PROVIDER_DRIVER_KIND) {
121
+ if (typeof model !== "string") return null;
122
+ const trimmed = model.trim();
123
+ if (!trimmed) return null;
124
+ const aliases = require_src.MODEL_SLUG_ALIASES_BY_PROVIDER[provider] ?? {};
125
+ const aliased = Object.prototype.hasOwnProperty.call(aliases, trimmed) ? aliases[trimmed] : void 0;
126
+ return typeof aliased === "string" ? aliased : trimmed;
127
+ }
128
+ /** Trim a string, returning null for empty/missing values. */
129
+ function trimOrNull(value) {
130
+ if (typeof value !== "string") return null;
131
+ return value.trim() || null;
132
+ }
133
+ function cloneSelections(selections) {
134
+ return selections.map(cloneSelection);
135
+ }
136
+ function createModelSelection(instanceId, model, options) {
137
+ const selections = options ? cloneSelections(options) : [];
138
+ const base = {
139
+ instanceId,
140
+ model
141
+ };
142
+ return selections.length > 0 ? {
143
+ ...base,
144
+ options: selections
145
+ } : base;
146
+ }
147
+ /**
148
+ * Context handoff is a provider-instance boundary. Model and option changes
149
+ * within one configured instance remain on that provider's normal turn path.
150
+ */
151
+ function modelSelectionRequiresContextHandoff(input) {
152
+ return input.canonicalSelection.instanceId !== input.targetSelection.instanceId;
153
+ }
154
+ /**
155
+ * Returns the effort value if it is a prompt-injected value according to
156
+ * any select descriptor in the given capabilities, or null otherwise.
157
+ *
158
+ * Unlike a single `find`, this checks every descriptor so that the
159
+ * correct descriptor's `promptInjectedValues` list is consulted even when
160
+ * multiple select descriptors exist.
161
+ */
162
+ function resolvePromptInjectedEffort(caps, rawEffort) {
163
+ const trimmed = trimOrNull(rawEffort);
164
+ if (!trimmed) return null;
165
+ const descriptors = getProviderOptionDescriptors({ caps });
166
+ for (const descriptor of descriptors) if (descriptor.type === "select" && descriptor.promptInjectedValues?.includes(trimmed)) return trimmed;
167
+ return null;
168
+ }
169
+ function applyClaudePromptEffortPrefix(text, effort) {
170
+ const trimmed = text.trim();
171
+ if (!trimmed) return trimmed;
172
+ if (effort !== "ultrathink") return trimmed;
173
+ if (trimmed.startsWith("Ultrathink:")) return trimmed;
174
+ return `Ultrathink:\n${trimmed}`;
175
+ }
176
+ //#endregion
177
+ //#region ../../packages/shared/src/serverSettings.ts
178
+ const ServerSettingsJson$1 = require_schemaJson.fromLenientJson(require_src.ServerSettings);
179
+ function normalizePersistedServerSettingString(value) {
180
+ const trimmed = value?.trim();
181
+ return trimmed && trimmed.length > 0 ? trimmed : void 0;
182
+ }
183
+ function extractPersistedServerObservabilitySettings(input) {
184
+ return {
185
+ otlpTracesUrl: normalizePersistedServerSettingString(input.observability?.otlpTracesUrl),
186
+ otlpMetricsUrl: normalizePersistedServerSettingString(input.observability?.otlpMetricsUrl)
187
+ };
188
+ }
189
+ function parsePersistedServerObservabilitySettings(raw) {
190
+ try {
191
+ return extractPersistedServerObservabilitySettings(effect.Schema.decodeUnknownSync(ServerSettingsJson$1)(raw));
192
+ } catch {
193
+ return {
194
+ otlpTracesUrl: void 0,
195
+ otlpMetricsUrl: void 0
196
+ };
197
+ }
198
+ }
199
+ function shouldReplaceTextGenerationModelSelection(patch) {
200
+ return Boolean(patch && (patch.instanceId !== void 0 || patch.model !== void 0));
201
+ }
202
+ function mergeModelSelectionOptionsById(input) {
203
+ if (input.patch === void 0) return input.current ? [...input.current] : void 0;
204
+ if (input.patch.length === 0) return;
205
+ const merged = new Map((input.current ?? []).map((selection) => [selection.id, selection.value]));
206
+ for (const selection of input.patch) merged.set(selection.id, selection.value);
207
+ return [...merged.entries()].map(([id, value]) => ({
208
+ id,
209
+ value
210
+ }));
211
+ }
212
+ /**
213
+ * Applies a server settings patch while treating textGenerationModelSelection as
214
+ * replace-on-provider/model updates. This prevents stale nested options from
215
+ * surviving a reset patch that intentionally omits options.
216
+ */
217
+ function applyServerSettingsPatch(current, patch) {
218
+ const selectionPatch = patch.textGenerationModelSelection;
219
+ let next = deepMerge(current, patch);
220
+ if (patch.projectWorktreeRoots !== void 0) {
221
+ const roots = new Map(Object.entries(current.projectWorktreeRoots));
222
+ for (const [projectId, root] of Object.entries(patch.projectWorktreeRoots)) if (root === null || root === "") roots.delete(projectId);
223
+ else roots.set(projectId, root);
224
+ next = {
225
+ ...next,
226
+ projectWorktreeRoots: Object.fromEntries(roots)
227
+ };
228
+ }
229
+ const nextWithReplacements = patch.providerInstances !== void 0 ? {
230
+ ...next,
231
+ providerInstances: patch.providerInstances
232
+ } : next;
233
+ if (!selectionPatch) return nextWithReplacements;
234
+ const instanceId = selectionPatch.instanceId ?? current.textGenerationModelSelection.instanceId;
235
+ const model = selectionPatch.model ?? current.textGenerationModelSelection.model;
236
+ const options = shouldReplaceTextGenerationModelSelection(selectionPatch) ? selectionPatch.options : mergeModelSelectionOptionsById({
237
+ current: current.textGenerationModelSelection.options,
238
+ patch: selectionPatch.options
239
+ });
240
+ return {
241
+ ...nextWithReplacements,
242
+ textGenerationModelSelection: createModelSelection(instanceId, model, options)
243
+ };
244
+ }
245
+ //#endregion
9
246
  //#region ../../node_modules/.bun/cborg@6.1.2/node_modules/cborg/lib/is.js
10
247
  const objectTypeNames = [
11
248
  "Object",
@@ -131,7 +368,7 @@ var Token = class {
131
368
  //#endregion
132
369
  //#region ../../node_modules/.bun/cborg@6.1.2/node_modules/cborg/lib/byte-utils.js
133
370
  const useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === "function";
134
- const textEncoder = new TextEncoder();
371
+ const textEncoder$1 = new TextEncoder();
135
372
  /**
136
373
  * @typedef {import('../interface.js').ByteView} ByteView
137
374
  * @typedef {import('../interface.js').AllocatedByteView} AllocatedByteView
@@ -160,7 +397,7 @@ const fromString = useBuffer ? (string) => {
160
397
  * @param {string} string
161
398
  */
162
399
  (string) => {
163
- return string.length >= FROM_STRING_THRESHOLD_TEXTENCODER ? textEncoder.encode(string) : utf8ToBytes(string);
400
+ return string.length >= FROM_STRING_THRESHOLD_TEXTENCODER ? textEncoder$1.encode(string) : utf8ToBytes(string);
164
401
  };
165
402
  /**
166
403
  * Buffer variant not fast enough for what we need
@@ -821,7 +1058,7 @@ function compareBytes(b1, b2) {
821
1058
  }
822
1059
  //#endregion
823
1060
  //#region ../../node_modules/.bun/cborg@6.1.2/node_modules/cborg/lib/3string.js
824
- const textDecoder = new TextDecoder();
1061
+ const textDecoder$1 = new TextDecoder();
825
1062
  const ASCII_THRESHOLD = 32;
826
1063
  /**
827
1064
  * @typedef {import('../interface.js').ByteWriter} ByteWriter
@@ -840,12 +1077,12 @@ function toStr(bytes, start, end) {
840
1077
  let str = "";
841
1078
  for (let i = start; i < end; i++) {
842
1079
  const c = bytes[i];
843
- if (c & 128) return textDecoder.decode(bytes.subarray(start, end));
1080
+ if (c & 128) return textDecoder$1.decode(bytes.subarray(start, end));
844
1081
  str += String.fromCharCode(c);
845
1082
  }
846
1083
  return str;
847
1084
  }
848
- return textDecoder.decode(bytes.subarray(start, end));
1085
+ return textDecoder$1.decode(bytes.subarray(start, end));
849
1086
  }
850
1087
  /**
851
1088
  * @param {Uint8Array} data
@@ -1624,7 +1861,7 @@ function makeCborEncoders() {
1624
1861
  const cborEncoders = makeCborEncoders();
1625
1862
  const defaultWriter = new Bl();
1626
1863
  /** @implements {Reference} */
1627
- var Ref = class Ref {
1864
+ var Ref$1 = class Ref$1 {
1628
1865
  /**
1629
1866
  * @param {object|any[]} obj
1630
1867
  * @param {Reference|undefined} parent
@@ -1652,7 +1889,7 @@ var Ref = class Ref {
1652
1889
  */
1653
1890
  static createCheck(stack, obj) {
1654
1891
  if (stack && stack.includes(obj)) throw new Error(`${encodeErrPrefix} object contains circular references`);
1655
- return new Ref(obj, stack);
1892
+ return new Ref$1(obj, stack);
1656
1893
  }
1657
1894
  };
1658
1895
  const simpleTokens = {
@@ -1770,7 +2007,7 @@ const typeEncoders = {
1770
2007
  if (options.addBreakTokens === true) return [simpleTokens.emptyArray, new Token(Type.break)];
1771
2008
  return simpleTokens.emptyArray;
1772
2009
  }
1773
- refStack = Ref.createCheck(refStack, obj);
2010
+ refStack = Ref$1.createCheck(refStack, obj);
1774
2011
  const entries = [];
1775
2012
  let i = 0;
1776
2013
  for (const e of obj) entries[i++] = objectToTokens(e, options, refStack);
@@ -1796,7 +2033,7 @@ const typeEncoders = {
1796
2033
  let entries;
1797
2034
  if (maxLength) {
1798
2035
  entries = new Array(maxLength);
1799
- refStack = Ref.createCheck(refStack, obj);
2036
+ refStack = Ref$1.createCheck(refStack, obj);
1800
2037
  const skipUndefined = !isMap && options.ignoreUndefinedProperties;
1801
2038
  let i = 0;
1802
2039
  for (const key of keys) {
@@ -1958,7 +2195,7 @@ function directEncodeMap(writer, data, typ, options, refStack) {
1958
2195
  writer.pushByte(MAJOR_MAP);
1959
2196
  return;
1960
2197
  }
1961
- refStack = Ref.createCheck(refStack, data);
2198
+ refStack = Ref$1.createCheck(refStack, data);
1962
2199
  const skipUndefined = !isMap && options.ignoreUndefinedProperties;
1963
2200
  const entries = new Array(maxLength);
1964
2201
  let length = 0;
@@ -2031,7 +2268,7 @@ function directEncode(writer, data, options, refStack) {
2031
2268
  writer.pushByte(MAJOR_ARRAY);
2032
2269
  return;
2033
2270
  }
2034
- refStack = Ref.createCheck(refStack, data);
2271
+ refStack = Ref$1.createCheck(refStack, data);
2035
2272
  directEncodeUintValue(writer, MAJOR_ARRAY, data.length);
2036
2273
  for (const elem of data) directEncode(writer, elem, options, refStack);
2037
2274
  return;
@@ -2741,6 +2978,27 @@ const resolveStaticDir = effect.Effect.fn(function* () {
2741
2978
  if (yield* exists(join(monorepoClient, "index.html")).pipe(effect.Effect.orElseSucceed(() => false))) return monorepoClient;
2742
2979
  });
2743
2980
  //#endregion
2981
+ //#region src/workspace/Services/WorkspaceAccessPolicy.ts
2982
+ /**
2983
+ * WorkspaceAccessPolicy - Process-wide boundary for Ryco-managed workspace paths.
2984
+ *
2985
+ * This service constrains paths accepted by Ryco RPCs. It does not sandbox child
2986
+ * processes such as terminals or coding-agent runtimes.
2987
+ *
2988
+ * @module WorkspaceAccessPolicy
2989
+ */
2990
+ var WorkspaceAccessDeniedError = class extends effect.Schema.TaggedError()("WorkspaceAccessDeniedError", {
2991
+ operation: effect.Schema.String,
2992
+ requestedPath: effect.Schema.String,
2993
+ accessRoot: effect.Schema.String,
2994
+ reason: effect.Schema.Literals(["outsideRoot", "unresolvable"])
2995
+ }) {
2996
+ get message() {
2997
+ return `Workspace path is not available for ${this.operation}; access is restricted to '${this.accessRoot}'.`;
2998
+ }
2999
+ };
3000
+ var WorkspaceAccessPolicy = class extends effect.Context.Service()("ryco/workspace/Services/WorkspaceAccessPolicy") {};
3001
+ //#endregion
2744
3002
  //#region src/observability/Attributes.ts
2745
3003
  function isPlainObject(value) {
2746
3004
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -3008,6 +3266,525 @@ const providerTurnMetricAttributes = (input) => {
3008
3266
  });
3009
3267
  };
3010
3268
  //#endregion
3269
+ //#region src/atomicWrite.ts
3270
+ const writeFileStringAtomically = (input) => effect.Effect.scoped(effect.Effect.gen(function* () {
3271
+ const fs = yield* effect.FileSystem.FileSystem;
3272
+ const path = yield* effect.Path.Path;
3273
+ const tempFileId = yield* effect.Effect.sync(() => crypto.randomUUID());
3274
+ const targetDirectory = path.dirname(input.filePath);
3275
+ yield* fs.makeDirectory(targetDirectory, { recursive: true });
3276
+ const tempDirectory = yield* fs.makeTempDirectoryScoped({
3277
+ directory: targetDirectory,
3278
+ prefix: `${path.basename(input.filePath)}.`
3279
+ });
3280
+ const tempPath = path.join(tempDirectory, `${tempFileId}.tmp`);
3281
+ yield* fs.writeFileString(tempPath, input.contents);
3282
+ yield* fs.rename(tempPath, input.filePath);
3283
+ }));
3284
+ //#endregion
3285
+ //#region src/auth/Services/ServerSecretStore.ts
3286
+ var SecretStoreError = class extends effect.Data.TaggedError("SecretStoreError") {};
3287
+ var ServerSecretStore = class extends effect.Context.Service()("ryco/auth/Services/ServerSecretStore") {};
3288
+ //#endregion
3289
+ //#region src/auth/Layers/ServerSecretStore.ts
3290
+ const makeServerSecretStore = effect.Effect.gen(function* () {
3291
+ const fileSystem = yield* effect.FileSystem.FileSystem;
3292
+ const path = yield* effect.Path.Path;
3293
+ const serverConfig = yield* ServerConfig;
3294
+ yield* fileSystem.makeDirectory(serverConfig.secretsDir, { recursive: true });
3295
+ yield* fileSystem.chmod(serverConfig.secretsDir, 448).pipe(effect.Effect.mapError((cause) => new SecretStoreError({
3296
+ message: `Failed to secure secrets directory ${serverConfig.secretsDir}.`,
3297
+ cause
3298
+ })));
3299
+ const resolveSecretPath = (name) => path.join(serverConfig.secretsDir, `${name}.bin`);
3300
+ const ensureSecretDirectory = (secretPath) => {
3301
+ const directory = path.dirname(secretPath);
3302
+ return fileSystem.makeDirectory(directory, { recursive: true }).pipe(effect.Effect.flatMap(() => fileSystem.chmod(directory, 448)));
3303
+ };
3304
+ const isPlatformError = (u) => effect.Predicate.isTagged(u, "PlatformError");
3305
+ const get = (name) => fileSystem.readFile(resolveSecretPath(name)).pipe(effect.Effect.map((bytes) => Uint8Array.from(bytes)), effect.Effect.catch((cause) => cause.reason._tag === "NotFound" ? effect.Effect.succeed(null) : effect.Effect.fail(new SecretStoreError({
3306
+ message: `Failed to read secret ${name}.`,
3307
+ cause
3308
+ }))));
3309
+ const set = (name, value) => {
3310
+ const secretPath = resolveSecretPath(name);
3311
+ const tempPath = `${secretPath}.${node_crypto.randomUUID()}.tmp`;
3312
+ return effect.Effect.gen(function* () {
3313
+ yield* ensureSecretDirectory(secretPath);
3314
+ yield* fileSystem.writeFile(tempPath, value);
3315
+ yield* fileSystem.chmod(tempPath, 384);
3316
+ yield* fileSystem.rename(tempPath, secretPath);
3317
+ yield* fileSystem.chmod(secretPath, 384);
3318
+ }).pipe(effect.Effect.catch((cause) => fileSystem.remove(tempPath).pipe(effect.Effect.ignore, effect.Effect.flatMap(() => effect.Effect.fail(new SecretStoreError({
3319
+ message: `Failed to persist secret ${name}.`,
3320
+ cause
3321
+ }))))));
3322
+ };
3323
+ const create = (name, value) => {
3324
+ const secretPath = resolveSecretPath(name);
3325
+ return effect.Effect.scoped(effect.Effect.gen(function* () {
3326
+ yield* ensureSecretDirectory(secretPath);
3327
+ const file = yield* fileSystem.open(secretPath, {
3328
+ flag: "wx",
3329
+ mode: 384
3330
+ });
3331
+ yield* file.writeAll(value);
3332
+ yield* file.sync;
3333
+ yield* fileSystem.chmod(secretPath, 384);
3334
+ })).pipe(effect.Effect.mapError((cause) => new SecretStoreError({
3335
+ message: `Failed to persist secret ${name}.`,
3336
+ cause
3337
+ })));
3338
+ };
3339
+ const getOrCreateRandom = (name, bytes) => get(name).pipe(effect.Effect.flatMap((existing) => {
3340
+ if (existing) return effect.Effect.succeed(existing);
3341
+ const generated = node_crypto.randomBytes(bytes);
3342
+ return create(name, generated).pipe(effect.Effect.as(Uint8Array.from(generated)), effect.Effect.catchTag("SecretStoreError", (error) => isPlatformError(error.cause) && error.cause.reason._tag === "AlreadyExists" ? get(name).pipe(effect.Effect.flatMap((created) => created !== null ? effect.Effect.succeed(created) : effect.Effect.fail(new SecretStoreError({ message: `Failed to read secret ${name} after concurrent creation.` })))) : effect.Effect.fail(error)));
3343
+ }));
3344
+ const remove = (name) => fileSystem.remove(resolveSecretPath(name)).pipe(effect.Effect.catch((cause) => cause.reason._tag === "NotFound" ? effect.Effect.void : effect.Effect.fail(new SecretStoreError({
3345
+ message: `Failed to remove secret ${name}.`,
3346
+ cause
3347
+ }))));
3348
+ return {
3349
+ get,
3350
+ set,
3351
+ getOrCreateRandom,
3352
+ remove
3353
+ };
3354
+ });
3355
+ const ServerSecretStoreLive = effect.Layer.effect(ServerSecretStore, makeServerSecretStore);
3356
+ //#endregion
3357
+ //#region src/pathExpansion.ts
3358
+ /**
3359
+ * Expand a leading `~` (or `~/…`, `~\…`) in a user-supplied path to the
3360
+ * current user's home directory. Spawned processes don't get shell
3361
+ * expansion, so env vars like `CODEX_HOME=~/.codex-work` would be passed
3362
+ * verbatim and treated as relative paths by the receiver.
3363
+ *
3364
+ * Matches the behavior of the other `expandHomePath` helpers in the
3365
+ * workspace layers and CLI bootstrap: `~` alone and both `~/` and `~\`
3366
+ * separators are handled. Returns the input unchanged if it doesn't
3367
+ * start with `~` or is empty. Does not handle `~user` (other-user)
3368
+ * expansion.
3369
+ */
3370
+ function expandHomePath(value) {
3371
+ if (!value) return value;
3372
+ if (value === "~") return (0, node_os.homedir)();
3373
+ if (value.startsWith("~/") || value.startsWith("~\\")) return (0, node_path.join)((0, node_os.homedir)(), value.slice(2));
3374
+ return value;
3375
+ }
3376
+ //#endregion
3377
+ //#region src/project/worktreeRoot.ts
3378
+ var WorktreeRootError = class extends effect.Schema.TaggedError()("WorktreeRootError", { detail: effect.Schema.String }) {
3379
+ get message() {
3380
+ return this.detail;
3381
+ }
3382
+ };
3383
+ /** Resolve missing descendants through the nearest existing directory, including symlink aliases.
3384
+ * Do not turn permission errors or dangling symlinks into nonexistent ancestors.
3385
+ * No directories are created while validating a preference.
3386
+ */
3387
+ async function canonicalizeWorktreeDirectory(candidate) {
3388
+ let ancestor = candidate;
3389
+ while (true) try {
3390
+ await (0, node_fs_promises.lstat)(ancestor);
3391
+ const canonical = await (0, node_fs_promises.realpath)(ancestor);
3392
+ if (!(await (0, node_fs_promises.lstat)(canonical)).isDirectory()) throw new Error("Worktree root must be a directory.");
3393
+ await (0, node_fs_promises.access)(canonical, node_fs.constants.W_OK | node_fs.constants.X_OK);
3394
+ return node_path.default.join(canonical, node_path.default.relative(ancestor, candidate));
3395
+ } catch (cause) {
3396
+ if (cause.code !== "ENOENT") throw cause;
3397
+ if (await (0, node_fs_promises.lstat)(ancestor).catch((error) => {
3398
+ if (error.code !== "ENOENT") throw error;
3399
+ return null;
3400
+ }) !== null) throw new Error("Worktree root contains a dangling symlink.", { cause });
3401
+ const parent = node_path.default.dirname(ancestor);
3402
+ if (parent === ancestor) throw cause;
3403
+ ancestor = parent;
3404
+ }
3405
+ }
3406
+ const validateWorktreeRoot = (value, policy) => effect.Effect.gen(function* () {
3407
+ const trimmed = value.trim();
3408
+ const expanded = expandHomePath(trimmed);
3409
+ if (!trimmed || /[\x00-\x1f\x7f]/.test(trimmed) || !node_path.default.isAbsolute(expanded) || process.platform === "win32" && !/^(?:[A-Za-z]:[\\/]|\\\\[^\\]+\\[^\\]+)/.test(expanded)) return yield* new WorktreeRootError({ detail: "Worktree root must be an absolute directory on this node or start with ~/." });
3410
+ const operation = "worktree root";
3411
+ const authorized = yield* policy.assertPath({
3412
+ path: node_path.default.normalize(expanded),
3413
+ operation
3414
+ }).pipe(effect.Effect.mapError((cause) => new WorktreeRootError({ detail: cause.message })));
3415
+ const canonical = yield* effect.Effect.tryPromise({
3416
+ try: () => canonicalizeWorktreeDirectory(authorized),
3417
+ catch: () => new WorktreeRootError({ detail: "Worktree root must resolve to a writable directory (or have a writable existing parent), without broken symlinks." })
3418
+ });
3419
+ return yield* policy.assertPath({
3420
+ path: canonical,
3421
+ operation
3422
+ }).pipe(effect.Effect.mapError((cause) => new WorktreeRootError({ detail: cause.message })));
3423
+ });
3424
+ /** Storage selection only: this never grants access to the selected directory's contents. */
3425
+ const selectConfiguredWorktreeRoot = (input) => (input.projectId && Object.hasOwn(input.settings.projectWorktreeRoots, input.projectId) ? input.settings.projectWorktreeRoots[input.projectId] : null) || input.settings.worktreeRoot || resolveManagedWorktreesRoot(input.config);
3426
+ const resolveConfiguredWorktreeRoot = (input) => validateWorktreeRoot(selectConfiguredWorktreeRoot(input), input.policy);
3427
+ //#endregion
3428
+ //#region src/workspace/Layers/WorkspaceAccessPolicy.ts
3429
+ function isWithinOrEqual(path, root, target) {
3430
+ const relative = path.relative(root, target);
3431
+ return relative.length === 0 || relative === "." || !relative.startsWith(`..${path.sep}`) && relative !== ".." && !path.isAbsolute(relative);
3432
+ }
3433
+ const makeWorkspaceAccessPolicy = (configuredRoot) => effect.Effect.gen(function* () {
3434
+ const fileSystem = yield* effect.FileSystem.FileSystem;
3435
+ const path = yield* effect.Path.Path;
3436
+ const accessRoot = configuredRoot === void 0 ? void 0 : yield* fileSystem.realPath(configuredRoot);
3437
+ const denied = (input, reason) => new WorkspaceAccessDeniedError({
3438
+ operation: input.operation,
3439
+ requestedPath: input.path,
3440
+ accessRoot: accessRoot ?? "",
3441
+ reason
3442
+ });
3443
+ const assertInside = (input, target) => {
3444
+ if (accessRoot === void 0 || isWithinOrEqual(path, accessRoot, target)) return effect.Effect.succeed(target);
3445
+ return effect.Effect.fail(denied(input, "outsideRoot"));
3446
+ };
3447
+ const assertExistingPath = effect.Effect.fn("WorkspaceAccessPolicy.assertExistingPath")(function* (input) {
3448
+ const normalized = path.resolve(input.path);
3449
+ if (accessRoot === void 0) return normalized;
3450
+ const canonical = yield* fileSystem.realPath(normalized).pipe(effect.Effect.mapError(() => denied(input, "unresolvable")));
3451
+ return yield* assertInside(input, canonical);
3452
+ });
3453
+ const assertPath = effect.Effect.fn("WorkspaceAccessPolicy.assertPath")(function* (input) {
3454
+ const normalized = path.resolve(input.path);
3455
+ if (accessRoot === void 0) return normalized;
3456
+ let ancestor = normalized;
3457
+ while (!(yield* fileSystem.exists(ancestor).pipe(effect.Effect.orElseSucceed(() => false)))) {
3458
+ const parent = path.dirname(ancestor);
3459
+ if (parent === ancestor) return yield* denied(input, "unresolvable");
3460
+ ancestor = parent;
3461
+ }
3462
+ const canonicalAncestor = yield* fileSystem.realPath(ancestor).pipe(effect.Effect.mapError(() => denied(input, "unresolvable")));
3463
+ const canonicalTarget = path.resolve(canonicalAncestor, path.relative(ancestor, normalized));
3464
+ return yield* assertInside(input, canonicalTarget);
3465
+ });
3466
+ return {
3467
+ accessRoot,
3468
+ isRestricted: accessRoot !== void 0,
3469
+ assertPath,
3470
+ assertExistingPath
3471
+ };
3472
+ });
3473
+ const WorkspaceAccessPolicyLive = effect.Layer.effect(WorkspaceAccessPolicy, effect.Effect.gen(function* () {
3474
+ const config = yield* ServerConfig;
3475
+ return yield* makeWorkspaceAccessPolicy(config.workspaceAccessRoot);
3476
+ }));
3477
+ //#endregion
3478
+ //#region src/serverSettings.ts
3479
+ /**
3480
+ * ServerSettings - Server-authoritative settings service.
3481
+ *
3482
+ * Owns persistence, validation, and change notification of settings that affect
3483
+ * server-side behavior (binary paths, streaming mode, env mode, custom models,
3484
+ * text generation model selection).
3485
+ *
3486
+ * Follows the same pattern as `keybindings.ts`: JSON file + Cache + PubSub +
3487
+ * Semaphore + FileSystem.watch for concurrency and external edit detection.
3488
+ *
3489
+ * @module ServerSettings
3490
+ */
3491
+ const textEncoder = new TextEncoder();
3492
+ const textDecoder = new TextDecoder();
3493
+ function providerEnvironmentSecretName(input) {
3494
+ return `provider-env-${Buffer.from(input.instanceId, "utf8").toString("base64url")}-${Buffer.from(input.name, "utf8").toString("base64url")}`;
3495
+ }
3496
+ function redactProviderEnvironmentVariable(variable) {
3497
+ if (!variable.sensitive) {
3498
+ const { valueRedacted: _omit, ...rest } = variable;
3499
+ return rest;
3500
+ }
3501
+ return {
3502
+ ...variable,
3503
+ value: "",
3504
+ ...variable.value.length > 0 || variable.valueRedacted ? { valueRedacted: true } : {}
3505
+ };
3506
+ }
3507
+ function redactServerSettingsForClient(settings) {
3508
+ const providerInstances = Object.fromEntries(Object.entries(settings.providerInstances).map(([instanceId, instance]) => [instanceId, instance.environment ? {
3509
+ ...instance,
3510
+ environment: instance.environment.map(redactProviderEnvironmentVariable)
3511
+ } : instance]));
3512
+ return {
3513
+ ...settings,
3514
+ providerInstances
3515
+ };
3516
+ }
3517
+ var ServerSettingsService = class ServerSettingsService extends effect.Context.Service()("ryco/serverSettings/ServerSettingsService") {
3518
+ static layerTest = (overrides = {}) => effect.Layer.effect(ServerSettingsService, effect.Effect.gen(function* () {
3519
+ const currentSettingsRef = yield* effect.Ref.make(deepMerge(require_src.DEFAULT_SERVER_SETTINGS, overrides));
3520
+ return {
3521
+ start: effect.Effect.void,
3522
+ ready: effect.Effect.void,
3523
+ getSettings: effect.Ref.get(currentSettingsRef),
3524
+ updateSettings: (patch) => effect.Ref.get(currentSettingsRef).pipe(effect.Effect.flatMap((currentSettings) => effect.Schema.decodeEffect(require_src.ServerSettings)(applyServerSettingsPatch(currentSettings, patch)).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3525
+ settingsPath: "<memory>",
3526
+ detail: `failed to normalize server settings: ${effect.SchemaIssue.makeFormatterDefault()(cause.issue)}`,
3527
+ cause
3528
+ })))), effect.Effect.tap((nextSettings) => effect.Ref.set(currentSettingsRef, nextSettings))),
3529
+ streamChanges: effect.Stream.empty
3530
+ };
3531
+ }));
3532
+ };
3533
+ const ServerSettingsJson = require_schemaJson.fromLenientJson(require_src.ServerSettings);
3534
+ const getLegacyProviderSettings = (settings, provider) => settings.providers[provider];
3535
+ /**
3536
+ * Ensure the `textGenerationModelSelection` points to an enabled provider.
3537
+ * If the selected provider is disabled, fall back to the first enabled
3538
+ * provider with its default model. This is applied at read-time so the
3539
+ * persisted preference is preserved for when a provider is re-enabled.
3540
+ */
3541
+ function resolveTextGenerationProvider(settings) {
3542
+ const selection = settings.textGenerationModelSelection;
3543
+ const instanceConfig = settings.providerInstances[selection.instanceId];
3544
+ if (instanceConfig !== void 0) return instanceConfig.enabled ?? true ? settings : fallbackTextGenerationProvider(settings);
3545
+ if (require_src.isProviderDriverKind(selection.instanceId) && getLegacyProviderSettings(settings, selection.instanceId)?.enabled) return settings;
3546
+ return fallbackTextGenerationProvider(settings);
3547
+ }
3548
+ function fallbackTextGenerationProvider(settings) {
3549
+ const fallbackEntry = Object.entries(settings.providers).find(([, provider]) => provider.enabled);
3550
+ const fallback = fallbackEntry ? require_src.ProviderDriverKind.make(fallbackEntry[0]) : void 0;
3551
+ if (!fallback) return settings;
3552
+ const defaultOptions = require_src.DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER[fallback];
3553
+ return {
3554
+ ...settings,
3555
+ textGenerationModelSelection: {
3556
+ instanceId: require_src.ProviderInstanceId.make(fallback),
3557
+ model: require_src.DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER[fallback] ?? "gpt-5.6-luna",
3558
+ ...defaultOptions ? { options: defaultOptions } : {}
3559
+ }
3560
+ };
3561
+ }
3562
+ const ATOMIC_SETTINGS_KEYS = /* @__PURE__ */ new Set(["textGenerationModelSelection"]);
3563
+ function stripDefaultServerSettings(current, defaults) {
3564
+ if (Array.isArray(current) || Array.isArray(defaults)) return effect.Equal.equals(current, defaults) ? void 0 : current;
3565
+ if (current !== null && defaults !== null && typeof current === "object" && typeof defaults === "object") {
3566
+ const currentRecord = current;
3567
+ const defaultsRecord = defaults;
3568
+ const next = {};
3569
+ for (const key of Object.keys(currentRecord)) if (ATOMIC_SETTINGS_KEYS.has(key)) {
3570
+ if (!effect.Equal.equals(currentRecord[key], defaultsRecord[key])) next[key] = currentRecord[key];
3571
+ } else {
3572
+ const stripped = stripDefaultServerSettings(currentRecord[key], defaultsRecord[key]);
3573
+ if (stripped !== void 0) next[key] = stripped;
3574
+ }
3575
+ return Object.keys(next).length > 0 ? next : void 0;
3576
+ }
3577
+ return Object.is(current, defaults) ? void 0 : current;
3578
+ }
3579
+ const makeServerSettings = effect.Effect.gen(function* () {
3580
+ const { settingsPath, workspaceAccessRoot } = yield* ServerConfig;
3581
+ const worktreeAccessPolicy = yield* makeWorkspaceAccessPolicy(workspaceAccessRoot);
3582
+ const fs = yield* effect.FileSystem.FileSystem;
3583
+ const pathService = yield* effect.Path.Path;
3584
+ const secretStore = yield* ServerSecretStore;
3585
+ const writeSemaphore = yield* effect_Semaphore.make(1);
3586
+ const cacheKey = "settings";
3587
+ const changesPubSub = yield* effect.PubSub.unbounded();
3588
+ const startedRef = yield* effect.Ref.make(false);
3589
+ const startedDeferred = yield* effect.Deferred.make();
3590
+ const watcherScope = yield* effect.Scope.make("sequential");
3591
+ yield* effect.Effect.addFinalizer(() => effect.Scope.close(watcherScope, effect.Exit.void));
3592
+ const emitChange = (settings) => effect.PubSub.publish(changesPubSub, settings).pipe(effect.Effect.asVoid);
3593
+ const readConfigExists = fs.exists(settingsPath).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3594
+ settingsPath,
3595
+ detail: "failed to check settings file existence",
3596
+ cause
3597
+ })));
3598
+ const readRawConfig = fs.readFileString(settingsPath).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3599
+ settingsPath,
3600
+ detail: "failed to read settings file",
3601
+ cause
3602
+ })));
3603
+ const loadSettingsFromDisk = effect.Effect.gen(function* () {
3604
+ if (!(yield* readConfigExists)) return require_src.DEFAULT_SERVER_SETTINGS;
3605
+ const raw = yield* readRawConfig;
3606
+ const decoded = effect.Schema.decodeUnknownExit(ServerSettingsJson)(raw);
3607
+ if (decoded._tag === "Failure") {
3608
+ yield* effect.Effect.logWarning("failed to parse settings.json, using defaults", {
3609
+ path: settingsPath,
3610
+ issues: effect.Cause.pretty(decoded.cause)
3611
+ });
3612
+ return require_src.DEFAULT_SERVER_SETTINGS;
3613
+ }
3614
+ return decoded.value;
3615
+ });
3616
+ const settingsCache = yield* effect.Cache.make({
3617
+ capacity: 1,
3618
+ lookup: () => loadSettingsFromDisk
3619
+ });
3620
+ const getSettingsFromCache = effect.Cache.get(settingsCache, cacheKey);
3621
+ const toSettingsError = (detail, cause) => new require_src.ServerSettingsError({
3622
+ settingsPath,
3623
+ detail,
3624
+ cause
3625
+ });
3626
+ const materializeProviderEnvironmentSecrets = (settings) => effect.Effect.gen(function* () {
3627
+ const providerInstances = { ...settings.providerInstances };
3628
+ for (const [instanceId, instance] of Object.entries(settings.providerInstances)) {
3629
+ if (!instance.environment) continue;
3630
+ const environment = [];
3631
+ for (const variable of instance.environment) {
3632
+ if (!variable.sensitive || !variable.valueRedacted) {
3633
+ environment.push(variable);
3634
+ continue;
3635
+ }
3636
+ const secret = yield* secretStore.get(providerEnvironmentSecretName({
3637
+ instanceId,
3638
+ name: variable.name
3639
+ })).pipe(effect.Effect.mapError((cause) => toSettingsError(`failed to read sensitive environment variable ${variable.name}`, cause)));
3640
+ environment.push({
3641
+ ...variable,
3642
+ value: secret ? textDecoder.decode(secret) : ""
3643
+ });
3644
+ }
3645
+ providerInstances[instanceId] = {
3646
+ ...instance,
3647
+ environment
3648
+ };
3649
+ }
3650
+ return {
3651
+ ...settings,
3652
+ providerInstances
3653
+ };
3654
+ });
3655
+ const persistProviderEnvironmentSecrets = (current, next) => effect.Effect.gen(function* () {
3656
+ const providerInstances = { ...next.providerInstances };
3657
+ const nextSecretKeys = /* @__PURE__ */ new Set();
3658
+ for (const [instanceId, instance] of Object.entries(next.providerInstances)) {
3659
+ if (!instance.environment) continue;
3660
+ const environment = [];
3661
+ for (const variable of instance.environment) {
3662
+ const secretName = providerEnvironmentSecretName({
3663
+ instanceId,
3664
+ name: variable.name
3665
+ });
3666
+ if (!variable.sensitive) {
3667
+ yield* secretStore.remove(secretName).pipe(effect.Effect.mapError((cause) => toSettingsError(`failed to remove environment secret ${variable.name}`, cause)));
3668
+ environment.push(redactProviderEnvironmentVariable(variable));
3669
+ continue;
3670
+ }
3671
+ nextSecretKeys.add(secretName);
3672
+ if (!variable.valueRedacted) {
3673
+ if (variable.value.length > 0) {
3674
+ yield* secretStore.set(secretName, textEncoder.encode(variable.value)).pipe(effect.Effect.mapError((cause) => toSettingsError(`failed to persist environment secret ${variable.name}`, cause)));
3675
+ environment.push({
3676
+ ...variable,
3677
+ value: "",
3678
+ valueRedacted: true
3679
+ });
3680
+ } else {
3681
+ yield* secretStore.remove(secretName).pipe(effect.Effect.mapError((cause) => toSettingsError(`failed to remove environment secret ${variable.name}`, cause)));
3682
+ const { valueRedacted: _omit, ...rest } = variable;
3683
+ environment.push(rest);
3684
+ }
3685
+ continue;
3686
+ }
3687
+ environment.push(redactProviderEnvironmentVariable(variable));
3688
+ }
3689
+ providerInstances[instanceId] = {
3690
+ ...instance,
3691
+ environment
3692
+ };
3693
+ }
3694
+ for (const [instanceId, instance] of Object.entries(current.providerInstances)) for (const variable of instance.environment ?? []) {
3695
+ if (!variable.sensitive) continue;
3696
+ const secretName = providerEnvironmentSecretName({
3697
+ instanceId,
3698
+ name: variable.name
3699
+ });
3700
+ if (nextSecretKeys.has(secretName)) continue;
3701
+ yield* secretStore.remove(secretName).pipe(effect.Effect.mapError((cause) => toSettingsError(`failed to remove stale environment secret ${variable.name}`, cause)));
3702
+ }
3703
+ return {
3704
+ ...next,
3705
+ providerInstances
3706
+ };
3707
+ });
3708
+ const writeSettingsAtomically = (settings) => {
3709
+ const sparseSettings = stripDefaultServerSettings(settings, require_src.DEFAULT_SERVER_SETTINGS) ?? {};
3710
+ return writeFileStringAtomically({
3711
+ filePath: settingsPath,
3712
+ contents: `${JSON.stringify(sparseSettings, null, 2)}\n`
3713
+ }).pipe(effect.Effect.provideService(effect.FileSystem.FileSystem, fs), effect.Effect.provideService(effect.Path.Path, pathService), effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3714
+ settingsPath,
3715
+ detail: "failed to write settings file",
3716
+ cause
3717
+ })));
3718
+ };
3719
+ const revalidateAndEmit = writeSemaphore.withPermits(1)(effect.Effect.gen(function* () {
3720
+ yield* effect.Cache.invalidate(settingsCache, cacheKey);
3721
+ const settings = yield* getSettingsFromCache;
3722
+ yield* emitChange(settings);
3723
+ }));
3724
+ const startWatcher = effect.Effect.gen(function* () {
3725
+ const settingsDir = pathService.dirname(settingsPath);
3726
+ const settingsFile = pathService.basename(settingsPath);
3727
+ const settingsPathResolved = pathService.resolve(settingsPath);
3728
+ yield* fs.makeDirectory(settingsDir, { recursive: true }).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3729
+ settingsPath,
3730
+ detail: "failed to prepare settings directory",
3731
+ cause
3732
+ })));
3733
+ const revalidateAndEmitSafely = revalidateAndEmit.pipe(effect.Effect.ignoreCause({ log: true }));
3734
+ const debouncedSettingsEvents = fs.watch(settingsDir).pipe(effect.Stream.filter((event) => {
3735
+ return event.path === settingsFile || event.path === settingsPath || pathService.resolve(settingsDir, event.path) === settingsPathResolved;
3736
+ }), effect.Stream.debounce(effect.Duration.millis(100)));
3737
+ yield* effect.Stream.runForEach(debouncedSettingsEvents, () => revalidateAndEmitSafely).pipe(effect.Effect.ignoreCause({ log: true }), effect.Effect.forkIn(watcherScope), effect.Effect.asVoid);
3738
+ });
3739
+ return {
3740
+ start: effect.Effect.gen(function* () {
3741
+ if (!(yield* effect.Ref.modify(startedRef, (started) => [!started, true]))) return yield* effect.Deferred.await(startedDeferred);
3742
+ const startup = effect.Effect.gen(function* () {
3743
+ yield* startWatcher;
3744
+ yield* effect.Cache.invalidate(settingsCache, cacheKey);
3745
+ yield* getSettingsFromCache;
3746
+ });
3747
+ const startupExit = yield* effect.Effect.exit(startup);
3748
+ if (startupExit._tag === "Failure") {
3749
+ yield* effect.Deferred.failCause(startedDeferred, startupExit.cause).pipe(effect.Effect.orDie);
3750
+ return yield* effect.Effect.failCause(startupExit.cause);
3751
+ }
3752
+ yield* effect.Deferred.succeed(startedDeferred, void 0).pipe(effect.Effect.orDie);
3753
+ }),
3754
+ ready: effect.Deferred.await(startedDeferred),
3755
+ getSettings: getSettingsFromCache.pipe(effect.Effect.flatMap(materializeProviderEnvironmentSecrets), effect.Effect.map(resolveTextGenerationProvider)),
3756
+ updateSettings: (patch) => writeSemaphore.withPermits(1)(effect.Effect.gen(function* () {
3757
+ const current = yield* getSettingsFromCache;
3758
+ const normalizedPatch = { ...patch };
3759
+ const validateRoot = (root) => validateWorktreeRoot(root, worktreeAccessPolicy).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3760
+ settingsPath,
3761
+ detail: cause.message,
3762
+ cause
3763
+ })));
3764
+ if (patch.worktreeRoot) normalizedPatch.worktreeRoot = yield* validateRoot(patch.worktreeRoot);
3765
+ if (patch.projectWorktreeRoots !== void 0) {
3766
+ const roots = [];
3767
+ for (const [id, root] of Object.entries(patch.projectWorktreeRoots)) roots.push([id, root ? yield* validateRoot(root) : null]);
3768
+ normalizedPatch.projectWorktreeRoots = Object.fromEntries(roots);
3769
+ }
3770
+ const nextPersisted = yield* persistProviderEnvironmentSecrets(current, applyServerSettingsPatch(current, normalizedPatch));
3771
+ const next = yield* effect.Schema.decodeEffect(require_src.ServerSettings)(nextPersisted).pipe(effect.Effect.mapError((cause) => new require_src.ServerSettingsError({
3772
+ settingsPath: "<memory>",
3773
+ detail: `failed to normalize server settings: ${effect.SchemaIssue.makeFormatterDefault()(cause.issue)}`,
3774
+ cause
3775
+ })));
3776
+ yield* writeSettingsAtomically(next);
3777
+ yield* effect.Cache.set(settingsCache, cacheKey, next);
3778
+ yield* emitChange(next);
3779
+ return resolveTextGenerationProvider(yield* materializeProviderEnvironmentSecrets(next));
3780
+ })),
3781
+ get streamChanges() {
3782
+ return effect.Stream.fromPubSub(changesPubSub).pipe(effect.Stream.mapEffect((settings) => materializeProviderEnvironmentSecrets(settings).pipe(effect.Effect.catch((error) => effect.Effect.logWarning("failed to materialize provider environment secrets", { detail: error.detail }).pipe(effect.Effect.as(settings))))), effect.Stream.map(resolveTextGenerationProvider));
3783
+ }
3784
+ };
3785
+ });
3786
+ const ServerSettingsLive = effect.Layer.effect(ServerSettingsService, makeServerSettings).pipe(effect.Layer.provide(ServerSecretStoreLive));
3787
+ //#endregion
3011
3788
  Object.defineProperty(exports, "DEFAULT_PORT", {
3012
3789
  enumerable: true,
3013
3790
  get: function() {
@@ -3038,6 +3815,30 @@ Object.defineProperty(exports, "ServerConfig", {
3038
3815
  return ServerConfig;
3039
3816
  }
3040
3817
  });
3818
+ Object.defineProperty(exports, "ServerSecretStore", {
3819
+ enumerable: true,
3820
+ get: function() {
3821
+ return ServerSecretStore;
3822
+ }
3823
+ });
3824
+ Object.defineProperty(exports, "ServerSecretStoreLive", {
3825
+ enumerable: true,
3826
+ get: function() {
3827
+ return ServerSecretStoreLive;
3828
+ }
3829
+ });
3830
+ Object.defineProperty(exports, "ServerSettingsLive", {
3831
+ enumerable: true,
3832
+ get: function() {
3833
+ return ServerSettingsLive;
3834
+ }
3835
+ });
3836
+ Object.defineProperty(exports, "ServerSettingsService", {
3837
+ enumerable: true,
3838
+ get: function() {
3839
+ return ServerSettingsService;
3840
+ }
3841
+ });
3041
3842
  Object.defineProperty(exports, "Tokeniser", {
3042
3843
  enumerable: true,
3043
3844
  get: function() {
@@ -3050,6 +3851,24 @@ Object.defineProperty(exports, "Type", {
3050
3851
  return Type;
3051
3852
  }
3052
3853
  });
3854
+ Object.defineProperty(exports, "WorkspaceAccessPolicy", {
3855
+ enumerable: true,
3856
+ get: function() {
3857
+ return WorkspaceAccessPolicy;
3858
+ }
3859
+ });
3860
+ Object.defineProperty(exports, "WorkspaceAccessPolicyLive", {
3861
+ enumerable: true,
3862
+ get: function() {
3863
+ return WorkspaceAccessPolicyLive;
3864
+ }
3865
+ });
3866
+ Object.defineProperty(exports, "applyClaudePromptEffortPrefix", {
3867
+ enumerable: true,
3868
+ get: function() {
3869
+ return applyClaudePromptEffortPrefix;
3870
+ }
3871
+ });
3053
3872
  Object.defineProperty(exports, "canonicalizeHubOrigin", {
3054
3873
  enumerable: true,
3055
3874
  get: function() {
@@ -3092,6 +3911,12 @@ Object.defineProperty(exports, "contextHandoffsTotal", {
3092
3911
  return contextHandoffsTotal;
3093
3912
  }
3094
3913
  });
3914
+ Object.defineProperty(exports, "createModelCapabilities", {
3915
+ enumerable: true,
3916
+ get: function() {
3917
+ return createModelCapabilities;
3918
+ }
3919
+ });
3095
3920
  Object.defineProperty(exports, "decode", {
3096
3921
  enumerable: true,
3097
3922
  get: function() {
@@ -3140,6 +3965,12 @@ Object.defineProperty(exports, "equalNodeIdentityBytes", {
3140
3965
  return equalNodeIdentityBytes;
3141
3966
  }
3142
3967
  });
3968
+ Object.defineProperty(exports, "expandHomePath", {
3969
+ enumerable: true,
3970
+ get: function() {
3971
+ return expandHomePath;
3972
+ }
3973
+ });
3143
3974
  Object.defineProperty(exports, "fingerprintNodePublicKey", {
3144
3975
  enumerable: true,
3145
3976
  get: function() {
@@ -3152,6 +3983,48 @@ Object.defineProperty(exports, "formatNodePublicKeyFingerprint", {
3152
3983
  return formatNodePublicKeyFingerprint;
3153
3984
  }
3154
3985
  });
3986
+ Object.defineProperty(exports, "getModelDisplayLabel", {
3987
+ enumerable: true,
3988
+ get: function() {
3989
+ return getModelDisplayLabel;
3990
+ }
3991
+ });
3992
+ Object.defineProperty(exports, "getModelSelectionBooleanOptionValue", {
3993
+ enumerable: true,
3994
+ get: function() {
3995
+ return getModelSelectionBooleanOptionValue;
3996
+ }
3997
+ });
3998
+ Object.defineProperty(exports, "getModelSelectionStringOptionValue", {
3999
+ enumerable: true,
4000
+ get: function() {
4001
+ return getModelSelectionStringOptionValue;
4002
+ }
4003
+ });
4004
+ Object.defineProperty(exports, "getProviderOptionBooleanSelectionValue", {
4005
+ enumerable: true,
4006
+ get: function() {
4007
+ return getProviderOptionBooleanSelectionValue;
4008
+ }
4009
+ });
4010
+ Object.defineProperty(exports, "getProviderOptionCurrentValue", {
4011
+ enumerable: true,
4012
+ get: function() {
4013
+ return getProviderOptionCurrentValue;
4014
+ }
4015
+ });
4016
+ Object.defineProperty(exports, "getProviderOptionDescriptors", {
4017
+ enumerable: true,
4018
+ get: function() {
4019
+ return getProviderOptionDescriptors;
4020
+ }
4021
+ });
4022
+ Object.defineProperty(exports, "getProviderOptionStringSelectionValue", {
4023
+ enumerable: true,
4024
+ get: function() {
4025
+ return getProviderOptionStringSelectionValue;
4026
+ }
4027
+ });
3155
4028
  Object.defineProperty(exports, "gitCommandDuration", {
3156
4029
  enumerable: true,
3157
4030
  get: function() {
@@ -3170,6 +4043,12 @@ Object.defineProperty(exports, "increment", {
3170
4043
  return increment;
3171
4044
  }
3172
4045
  });
4046
+ Object.defineProperty(exports, "makeWorkspaceAccessPolicy", {
4047
+ enumerable: true,
4048
+ get: function() {
4049
+ return makeWorkspaceAccessPolicy;
4050
+ }
4051
+ });
3173
4052
  Object.defineProperty(exports, "metricAttributes", {
3174
4053
  enumerable: true,
3175
4054
  get: function() {
@@ -3182,12 +4061,24 @@ Object.defineProperty(exports, "metricNames", {
3182
4061
  return metricNames;
3183
4062
  }
3184
4063
  });
4064
+ Object.defineProperty(exports, "modelSelectionRequiresContextHandoff", {
4065
+ enumerable: true,
4066
+ get: function() {
4067
+ return modelSelectionRequiresContextHandoff;
4068
+ }
4069
+ });
3185
4070
  Object.defineProperty(exports, "normalizeHubNodeName", {
3186
4071
  enumerable: true,
3187
4072
  get: function() {
3188
4073
  return normalizeHubNodeName;
3189
4074
  }
3190
4075
  });
4076
+ Object.defineProperty(exports, "normalizeModelSlug", {
4077
+ enumerable: true,
4078
+ get: function() {
4079
+ return normalizeModelSlug;
4080
+ }
4081
+ });
3191
4082
  Object.defineProperty(exports, "orchestrationCommandAckDuration", {
3192
4083
  enumerable: true,
3193
4084
  get: function() {
@@ -3218,6 +4109,12 @@ Object.defineProperty(exports, "outcomeFromExit", {
3218
4109
  return outcomeFromExit;
3219
4110
  }
3220
4111
  });
4112
+ Object.defineProperty(exports, "parsePersistedServerObservabilitySettings", {
4113
+ enumerable: true,
4114
+ get: function() {
4115
+ return parsePersistedServerObservabilitySettings;
4116
+ }
4117
+ });
3221
4118
  Object.defineProperty(exports, "providerEventLogRecordsDroppedTotal", {
3222
4119
  enumerable: true,
3223
4120
  get: function() {
@@ -3296,6 +4193,18 @@ Object.defineProperty(exports, "providerTurnsTotal", {
3296
4193
  return providerTurnsTotal;
3297
4194
  }
3298
4195
  });
4196
+ Object.defineProperty(exports, "redactServerSettingsForClient", {
4197
+ enumerable: true,
4198
+ get: function() {
4199
+ return redactServerSettingsForClient;
4200
+ }
4201
+ });
4202
+ Object.defineProperty(exports, "resolveConfiguredWorktreeRoot", {
4203
+ enumerable: true,
4204
+ get: function() {
4205
+ return resolveConfiguredWorktreeRoot;
4206
+ }
4207
+ });
3299
4208
  Object.defineProperty(exports, "resolveHubConnectorConfig", {
3300
4209
  enumerable: true,
3301
4210
  get: function() {
@@ -3314,6 +4223,12 @@ Object.defineProperty(exports, "resolveNodeE2eePolicyConfig", {
3314
4223
  return resolveNodeE2eePolicyConfig;
3315
4224
  }
3316
4225
  });
4226
+ Object.defineProperty(exports, "resolvePromptInjectedEffort", {
4227
+ enumerable: true,
4228
+ get: function() {
4229
+ return resolvePromptInjectedEffort;
4230
+ }
4231
+ });
3317
4232
  Object.defineProperty(exports, "resolveStaticDir", {
3318
4233
  enumerable: true,
3319
4234
  get: function() {
@@ -3386,6 +4301,12 @@ Object.defineProperty(exports, "runtimeQueueRecoveriesTotal", {
3386
4301
  return runtimeQueueRecoveriesTotal;
3387
4302
  }
3388
4303
  });
4304
+ Object.defineProperty(exports, "selectConfiguredWorktreeRoot", {
4305
+ enumerable: true,
4306
+ get: function() {
4307
+ return selectConfiguredWorktreeRoot;
4308
+ }
4309
+ });
3389
4310
  Object.defineProperty(exports, "startupCommandGateEnqueuesTotal", {
3390
4311
  enumerable: true,
3391
4312
  get: function() {
@@ -3422,9 +4343,21 @@ Object.defineProperty(exports, "terminalSessionsTotal", {
3422
4343
  return terminalSessionsTotal;
3423
4344
  }
3424
4345
  });
4346
+ Object.defineProperty(exports, "validateWorktreeRoot", {
4347
+ enumerable: true,
4348
+ get: function() {
4349
+ return validateWorktreeRoot;
4350
+ }
4351
+ });
3425
4352
  Object.defineProperty(exports, "withMetrics", {
3426
4353
  enumerable: true,
3427
4354
  get: function() {
3428
4355
  return withMetrics;
3429
4356
  }
3430
4357
  });
4358
+ Object.defineProperty(exports, "writeFileStringAtomically", {
4359
+ enumerable: true,
4360
+ get: function() {
4361
+ return writeFileStringAtomically;
4362
+ }
4363
+ });