ryco-cli 0.1.23 → 0.1.24

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 (269) hide show
  1. package/dist/bin.cjs +228 -88
  2. package/dist/bin.mjs +230 -90
  3. package/dist/client/assets/AccountSettings-ApnDA1f-.js +1 -0
  4. package/dist/client/assets/AiFocusSettings-CNmGHEcA.js +1 -0
  5. package/dist/client/assets/{AnimatedHeight-D9bpLPqe.js → AnimatedHeight-i0YhvlGD.js} +1 -1
  6. package/dist/client/assets/AppearanceSettings-BG8W4DP0.js +1 -0
  7. package/dist/client/assets/BranchToolbar.logic-AgPy06Mx.js +1 -0
  8. package/dist/client/assets/BrowserPanel-BWztlNuL.js +1 -0
  9. package/dist/client/assets/ChatRightPanel-a6UOHNMm.js +194 -0
  10. package/dist/client/assets/ChatThreadRouteView-CWoBLzR_.js +1 -0
  11. package/dist/client/assets/CommandPaletteDialog-B2iKWCUi.js +1 -0
  12. package/dist/client/assets/CompositeRoot-C1G-Ejus.js +1 -0
  13. package/dist/client/assets/ComputerUseSettings-CPwWoHWj.js +1 -0
  14. package/dist/client/assets/ConnectionsSettings-CPMkuxza.js +7 -0
  15. package/dist/client/assets/ContextHandoffEndpointLabel-BildLLDY.js +4 -0
  16. package/dist/client/assets/DiagnosticsSettings-DvnNz2AZ.js +2 -0
  17. package/dist/client/assets/DialogHandle-8o3kfoiI.js +1 -0
  18. package/dist/client/assets/DialogPopup-CLw6NCkW.js +1 -0
  19. package/dist/client/assets/DialogRoot-SKkIuQHA.js +1 -0
  20. package/dist/client/assets/DialogTitle-DCHX74Tz.js +1 -0
  21. package/dist/client/assets/DialogTrigger-Bl_fcIV2.js +1 -0
  22. package/dist/client/assets/DialogViewport-DVDl03yd.js +1 -0
  23. package/dist/client/assets/DraftChatThreadRouteView-CEDYjbKq.js +1 -0
  24. package/dist/client/assets/{ExternalIdentityWeb.logic-pjD4pCDd.js → ExternalIdentityWeb.logic-arHvT6AX.js} +1 -1
  25. package/dist/client/assets/GlassSurface-GY6owikG.js +1 -0
  26. package/dist/client/assets/HostedConnectionControls-COUhSe9x.js +1 -0
  27. package/dist/client/assets/HostedHubRoot-BTWc0XoQ.js +2 -0
  28. package/dist/client/assets/HostedNativeAuthorizationRoute-DZhYxv--.js +2 -0
  29. package/dist/client/assets/HostedRelayTrustNotice-Bl6On0Yi.js +1 -0
  30. package/dist/client/assets/IntegrationsSettingsPanel-n9owMZf-.js +2 -0
  31. package/dist/client/assets/KeybindingsSettings-CPtXx-W2.js +7 -0
  32. package/dist/client/assets/LazyBrowserPanel-SUIBB7B4.js +2 -0
  33. package/dist/client/assets/McpServersSettings-BWIUud0Z.js +6 -0
  34. package/dist/client/assets/MobileSheet-NTayGHF6.js +1 -0
  35. package/dist/client/assets/NodeSecuritySettings-BFifrshE.js +1 -0
  36. package/dist/client/assets/OpinionatedPluginsSettings-D7WuuNWZ.js +1 -0
  37. package/dist/client/assets/PhoneGetAppInterstitial-R0cqI17q.js +1 -0
  38. package/dist/client/assets/PhoneHome-FqWvnJP_.js +1 -0
  39. package/dist/client/assets/PhoneSettingsSurface-w5PJnoBc.js +2 -0
  40. package/dist/client/assets/ProviderModelPicker-dwWhl7Uf.js +1 -0
  41. package/dist/client/assets/ProvidersSettingsPanel-Ww1ch3xA.js +1 -0
  42. package/dist/client/assets/QuitShortcutFeedback-CklL3jMd.js +1 -0
  43. package/dist/client/assets/RedactedSensitiveText-CLPBtvH1.js +1 -0
  44. package/dist/client/assets/RootAppShell-BdQCs2XJ.js +7 -0
  45. package/dist/client/assets/Separator-CpYBhf-I.js +1 -0
  46. package/dist/client/assets/SettingsDialog-DeMzEeCP.js +2 -0
  47. package/dist/client/assets/SettingsPanels-ZxNz9ZfL.js +3 -0
  48. package/dist/client/assets/SettingsPanels.editor-9pSZP875.js +1 -0
  49. package/dist/client/assets/SourceControlSettings-C1F3Brcn.js +1 -0
  50. package/dist/client/assets/StatisticsPage-C7v-6CTr.js +1 -0
  51. package/dist/client/assets/StatisticsPanel-CeIjiBm8.js +1 -0
  52. package/dist/client/assets/StatisticsSettingsLink-5s_violW.js +1 -0
  53. package/dist/client/assets/{ThreadTerminalDrawer-DcZk76Y9.js → ThreadTerminalDrawer-CHZ60lPI.js} +11 -11
  54. package/dist/client/assets/{ThreadWorkspacePanel-Shhau2BD.js → ThreadWorkspacePanel-Ct5kMcuY.js} +17 -17
  55. package/dist/client/assets/activity-BMBx2Fu0.js +1 -0
  56. package/dist/client/assets/alert-CXnC_RJc.js +1 -0
  57. package/dist/client/assets/{appChrome-CiOQzE1d.js → appChrome-BzM66lXM.js} +1 -1
  58. package/dist/client/assets/arrow-left-CymyVbCi.js +1 -0
  59. package/dist/client/assets/arrow-right-9wyq4YVq.js +1 -0
  60. package/dist/client/assets/arrow-up-right-mfU38K6p.js +1 -0
  61. package/dist/client/assets/authorization-CjOFkg7b.js +1 -0
  62. package/dist/client/assets/badge-Dg7mXiOh.js +1 -0
  63. package/dist/client/assets/bot-BR3RyOWP.js +1 -0
  64. package/dist/client/assets/{capabilities-BTd0MRtv.js → capabilities-C8sxDbKT.js} +1 -1
  65. package/dist/client/assets/chart-column-CcRi3pAd.js +1 -0
  66. package/dist/client/assets/chevron-right-CuUjBsQV.js +1 -0
  67. package/dist/client/assets/clipboard-copy-ezz8rnaT.js +1 -0
  68. package/dist/client/assets/data-list-ZLhzdlED.js +1 -0
  69. package/dist/client/assets/desktopWorkspace-P28r2lN2.js +1 -0
  70. package/dist/client/assets/download-BA9L9tK9.js +1 -0
  71. package/dist/client/assets/editorPreferences-DeKdSV3s.js +1 -0
  72. package/dist/client/assets/empty-3NpXLnAM.js +1 -0
  73. package/dist/client/assets/group-D5qBdsaB.js +1 -0
  74. package/dist/client/assets/hostedConnectionCoordinator-CLV-JD1S.js +1 -0
  75. package/dist/client/assets/{hostedPairing-PogXRAb7.js → hostedPairing-B_ylEEDa.js} +1 -1
  76. package/dist/client/assets/hubRoutes-EWJ3Gdod.js +1 -0
  77. package/dist/client/assets/{index-D5j6WG7w.js → index-DxCd1PgA.js} +2 -2
  78. package/dist/client/assets/input-DrOL1KPS.js +1 -0
  79. package/dist/client/assets/kbd-rWDjJnWX.js +1 -0
  80. package/dist/client/assets/key-round-D2DtQ7aS.js +1 -0
  81. package/dist/client/assets/layers-DtSJWmwy.js +1 -0
  82. package/dist/client/assets/log-out-YAp9fsOg.js +1 -0
  83. package/dist/client/assets/{logging-DfaR8ACp.js → logging-BuUPX1SP.js} +1 -1
  84. package/dist/client/assets/main-BbtLAX7M.js +9 -0
  85. package/dist/client/assets/{main-CRk9p9SC.css → main-D4CtFNPY.css} +1 -1
  86. package/dist/client/assets/monitor-OyD484tI.js +1 -0
  87. package/dist/client/assets/palette-D18VboLH.js +1 -0
  88. package/dist/client/assets/play-d3KUi4G6.js +1 -0
  89. package/dist/client/assets/primary-D_D7eLwT.js +2 -0
  90. package/dist/client/assets/{providerDriverMeta-Cl-ADdmZ.js → providerDriverMeta-DNTocCcU.js} +1 -1
  91. package/dist/client/assets/providerModels-bFbEIfL9.js +1 -0
  92. package/dist/client/assets/{qr-code-Bun4dpvz.js → qr-code-Bk1kdf_k.js} +1 -1
  93. package/dist/client/assets/qr-code-MAZkoKtL.js +1 -0
  94. package/dist/client/assets/radio-group-D-VCGinX.js +2 -0
  95. package/dist/client/assets/refresh-cw-DY3_Ph-S.js +1 -0
  96. package/dist/client/assets/runtime-Djy96GJd.js +17 -0
  97. package/dist/client/assets/save-ugJXuJRM.js +1 -0
  98. package/dist/client/assets/scroll-area-BMnGzd2a.js +1 -0
  99. package/dist/client/assets/scrollEdges-QLSFwGSQ.js +1 -0
  100. package/dist/client/assets/separator-BwUYkCkX.js +1 -0
  101. package/dist/client/assets/settingsLayout-C6SUmJVB.js +1 -0
  102. package/dist/client/assets/sheet-DLy4aeVa.js +1 -0
  103. package/dist/client/assets/shield-Zq_ygsnJ.js +1 -0
  104. package/dist/client/assets/shield-alert-DfUhTI4-.js +1 -0
  105. package/dist/client/assets/shield-check-CO4SMhAs.js +1 -0
  106. package/dist/client/assets/sidebar-DNnW-a2V.js +1 -0
  107. package/dist/client/assets/sidebarProjectFolders-ygpaKZM6.js +4 -0
  108. package/dist/client/assets/sidebarStatusText-CawrXnx0.js +1 -0
  109. package/dist/client/assets/skeleton-DRm4_OvB.js +1 -0
  110. package/dist/client/assets/smartphone-O2VACDhU.js +1 -0
  111. package/dist/client/assets/sparkles-isHutYWU.js +1 -0
  112. package/dist/client/assets/src-BSuAGqhK.js +14 -0
  113. package/dist/client/assets/star-7UHEnC3x.js +1 -0
  114. package/dist/client/assets/{switch-COrEGDkz.js → switch-DD1qVLgN.js} +9 -9
  115. package/dist/client/assets/toastHelpers-CSQRKo4F.js +1 -0
  116. package/dist/client/assets/toggle-CaKBNe6W.js +1 -0
  117. package/dist/client/assets/toggle-group-UeFeTI3u.js +1 -0
  118. package/dist/client/assets/tokenModePresentation-DV56ekA4.js +1 -0
  119. package/dist/client/assets/tooltip-DXvXxL37.js +1 -0
  120. package/dist/client/assets/unplug-DisTpujT.js +1 -0
  121. package/dist/client/assets/useAppSidebarCollapsed-CaAsLi1q.js +1 -0
  122. package/dist/client/assets/useBaseUiId-CJN4MvrU.js +1 -0
  123. package/dist/client/assets/useLabelableId-BsDFG9Oj.js +1 -0
  124. package/dist/client/assets/useNavigate-cLfxn_9L.js +1 -0
  125. package/dist/client/assets/usePhoneThreadActions-rekHL1Mi.js +1 -0
  126. package/dist/client/assets/usePopupViewport-kXU31P6l.js +1 -0
  127. package/dist/client/assets/useScrollLock-DjMxrUJe.js +1 -0
  128. package/dist/client/assets/{useStatistics-DfLU9_Qu.js → useStatistics-BYP-9CmW.js} +15 -15
  129. package/dist/client/assets/useTriggerFocusGuards-DuAm2B8C.js +1 -0
  130. package/dist/client/assets/useValueChanged-DreFjrMK.js +1 -0
  131. package/dist/client/assets/user-round-DctamWV6.js +1 -0
  132. package/dist/client/assets/{vscode-icons-Dgo7Sslf.js → vscode-icons-Dw-LGJAv.js} +1 -1
  133. package/dist/client/assets/{workspaceMetadataProjection-UiprkDbH.js → workspaceMetadataProjection-BL4sEIL2.js} +1 -1
  134. package/dist/client/assets/wrench-Ds8eZerZ.js +1 -0
  135. package/dist/client/index.html +1 -1
  136. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  137. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  138. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  139. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  140. package/package.json +1 -1
  141. package/dist/client/assets/AccountSettings-DGvZzAqN.js +0 -1
  142. package/dist/client/assets/AiFocusSettings-D8wZfNES.js +0 -1
  143. package/dist/client/assets/AppearanceSettings-BFo6g6_s.js +0 -1
  144. package/dist/client/assets/BranchToolbar.logic-CmO2U1U7.js +0 -1
  145. package/dist/client/assets/BrowserPanel-r6is5C3e.js +0 -1
  146. package/dist/client/assets/ChatRightPanel-BewXBRFZ.js +0 -194
  147. package/dist/client/assets/ChatThreadRouteView-CC_6FmHd.js +0 -1
  148. package/dist/client/assets/CommandPaletteDialog-ftA_Xg2G.js +0 -1
  149. package/dist/client/assets/CompositeRoot-arlgwzfX.js +0 -1
  150. package/dist/client/assets/ComputerUseSettings-V-oMtddy.js +0 -1
  151. package/dist/client/assets/ConnectionsSettings-BrFvrRjz.js +0 -7
  152. package/dist/client/assets/ContextHandoffEndpointLabel-CPeU4K5A.js +0 -4
  153. package/dist/client/assets/DiagnosticsSettings-Dk3JaIOU.js +0 -2
  154. package/dist/client/assets/DialogHandle-00ZXxxpz.js +0 -1
  155. package/dist/client/assets/DialogPopup-mazVJKyB.js +0 -1
  156. package/dist/client/assets/DialogRoot-CWlzx19Z.js +0 -1
  157. package/dist/client/assets/DialogTitle-CKaEtTky.js +0 -1
  158. package/dist/client/assets/DialogTrigger-CiElTNmo.js +0 -1
  159. package/dist/client/assets/DialogViewport-a5beR5bY.js +0 -1
  160. package/dist/client/assets/DraftChatThreadRouteView-DMwnSfgh.js +0 -1
  161. package/dist/client/assets/FloatingPortalLite-DWdtHKob.js +0 -1
  162. package/dist/client/assets/GlassSurface-BqfxDYiR.js +0 -1
  163. package/dist/client/assets/HostedConnectionControls-BmJd89CC.js +0 -1
  164. package/dist/client/assets/HostedHubRoot-CRIiJ67A.js +0 -2
  165. package/dist/client/assets/HostedNativeAuthorizationRoute-DcksCt9n.js +0 -2
  166. package/dist/client/assets/HostedRelayTrustNotice-C9pl5h2a.js +0 -1
  167. package/dist/client/assets/IntegrationsSettingsPanel-BnfjyLrM.js +0 -2
  168. package/dist/client/assets/KeybindingsSettings-CkW7lzvz.js +0 -7
  169. package/dist/client/assets/LazyBrowserPanel-C6uMUmoV.js +0 -2
  170. package/dist/client/assets/McpServersSettings-BdXgS-Pm.js +0 -6
  171. package/dist/client/assets/MobileSheet-D19YdeQ9.js +0 -1
  172. package/dist/client/assets/NodeSecuritySettings-BfcBgtEg.js +0 -1
  173. package/dist/client/assets/OpinionatedPluginsSettings-YY54IT7P.js +0 -1
  174. package/dist/client/assets/PhoneGetAppInterstitial-9r6NwJP8.js +0 -1
  175. package/dist/client/assets/PhoneHome-DnEJp0bU.js +0 -1
  176. package/dist/client/assets/PhoneSettingsSurface-NKJrLCxU.js +0 -2
  177. package/dist/client/assets/ProviderModelPicker-CYGv-4fE.js +0 -1
  178. package/dist/client/assets/ProvidersSettingsPanel-DsXHij4h.js +0 -1
  179. package/dist/client/assets/QuitShortcutFeedback-BVyYaNtd.js +0 -1
  180. package/dist/client/assets/RedactedSensitiveText-D8j7kpow.js +0 -1
  181. package/dist/client/assets/RootAppShell-D7c8sbA0.js +0 -7
  182. package/dist/client/assets/Separator-Bn8l1oSK.js +0 -1
  183. package/dist/client/assets/SettingsDialog-BlPX1mT8.js +0 -2
  184. package/dist/client/assets/SettingsPanels-CeuvwIV_.js +0 -3
  185. package/dist/client/assets/SettingsPanels.editor-CLJJeKLI.js +0 -1
  186. package/dist/client/assets/SourceControlSettings-D-GeZ6PW.js +0 -1
  187. package/dist/client/assets/StatisticsPage-poomFDoQ.js +0 -1
  188. package/dist/client/assets/StatisticsPanel-DbGgCCpZ.js +0 -1
  189. package/dist/client/assets/StatisticsSettingsLink-Brc9--O7.js +0 -1
  190. package/dist/client/assets/activity-Dy-wOS-S.js +0 -1
  191. package/dist/client/assets/alert-4WZo8oMe.js +0 -1
  192. package/dist/client/assets/arrow-left-gLRAasih.js +0 -1
  193. package/dist/client/assets/arrow-right-CAK2t4QL.js +0 -1
  194. package/dist/client/assets/arrow-up-right-DP0hmMEB.js +0 -1
  195. package/dist/client/assets/authorization-K_UCP_xh.js +0 -1
  196. package/dist/client/assets/badge-CYDyJZRJ.js +0 -1
  197. package/dist/client/assets/bot-CCrx5oCt.js +0 -1
  198. package/dist/client/assets/button-QrCU0tNP.js +0 -1
  199. package/dist/client/assets/chart-column-BvK6lSzG.js +0 -1
  200. package/dist/client/assets/chevron-down-yka18-iP.js +0 -1
  201. package/dist/client/assets/chevron-right-CHyIXx5W.js +0 -1
  202. package/dist/client/assets/clamp-D0kAXd-u.js +0 -1
  203. package/dist/client/assets/clipboard-copy-DfdkWOiT.js +0 -1
  204. package/dist/client/assets/copy-riIPLkKV.js +0 -1
  205. package/dist/client/assets/data-list-CsiYTho5.js +0 -1
  206. package/dist/client/assets/download-B0lbSdq5.js +0 -1
  207. package/dist/client/assets/editorPreferences-Cf2Smgu1.js +0 -1
  208. package/dist/client/assets/empty-CHk0OiOB.js +0 -1
  209. package/dist/client/assets/group-DfFZdj79.js +0 -1
  210. package/dist/client/assets/hostedConnectionCoordinator-DZh1yVqz.js +0 -1
  211. package/dist/client/assets/input-BAC5Cd3b.js +0 -1
  212. package/dist/client/assets/kbd-CMUW8K7b.js +0 -1
  213. package/dist/client/assets/key-round-Cm6itp2V.js +0 -1
  214. package/dist/client/assets/layers-DoDpJao_.js +0 -1
  215. package/dist/client/assets/loader-circle-D0CNb5GI.js +0 -1
  216. package/dist/client/assets/log-out-BuoOiS45.js +0 -1
  217. package/dist/client/assets/main-DaXSCt8g.js +0 -9
  218. package/dist/client/assets/monitor-Dyigmrl2.js +0 -1
  219. package/dist/client/assets/palette-kIM_geXk.js +0 -1
  220. package/dist/client/assets/play-Dh8XDMnw.js +0 -1
  221. package/dist/client/assets/primary-DjXNHNGV.js +0 -2
  222. package/dist/client/assets/providerModels-dpugJUmV.js +0 -1
  223. package/dist/client/assets/qr-code-CkI1p05P.js +0 -1
  224. package/dist/client/assets/radio-group-Hh0oQGyf.js +0 -2
  225. package/dist/client/assets/react-dom-x9LNwWQc.js +0 -1
  226. package/dist/client/assets/refresh-cw-MqmsC7V0.js +0 -1
  227. package/dist/client/assets/runtime-L56puJDA.js +0 -17
  228. package/dist/client/assets/save-BSB81i-r.js +0 -1
  229. package/dist/client/assets/scroll-area-DCGCzd6v.js +0 -1
  230. package/dist/client/assets/scrollEdges-DIzjkUJG.js +0 -1
  231. package/dist/client/assets/separator-YeH3P39x.js +0 -1
  232. package/dist/client/assets/settingsLayout-CmNqO2kB.js +0 -1
  233. package/dist/client/assets/settingsSections.logic-Bg960p_I.js +0 -1
  234. package/dist/client/assets/sheet-CTbjQ5Bv.js +0 -1
  235. package/dist/client/assets/shield-DlqCO-0N.js +0 -1
  236. package/dist/client/assets/shield-alert-BrZ-Rb8N.js +0 -1
  237. package/dist/client/assets/shield-check-DHxdM6te.js +0 -1
  238. package/dist/client/assets/sidebar-4cwEndEB.js +0 -1
  239. package/dist/client/assets/sidebarProjectFolders-C7WDwUYJ.js +0 -4
  240. package/dist/client/assets/sidebarStatusText-Cq_MMykN.js +0 -1
  241. package/dist/client/assets/skeleton-BlostfCS.js +0 -1
  242. package/dist/client/assets/smartphone-OaA-Xj_d.js +0 -1
  243. package/dist/client/assets/sparkles-BXwkPX2M.js +0 -1
  244. package/dist/client/assets/src-gDjuIvMO.js +0 -14
  245. package/dist/client/assets/star-BjaAYD-x.js +0 -1
  246. package/dist/client/assets/toast-C_F1LeME.js +0 -1
  247. package/dist/client/assets/toggle-BPNEBXg_.js +0 -1
  248. package/dist/client/assets/toggle-group-BC1zJ9xi.js +0 -1
  249. package/dist/client/assets/tokenModePresentation-DUJ8DMTy.js +0 -1
  250. package/dist/client/assets/tooltip-iy3_osu5.js +0 -1
  251. package/dist/client/assets/triangle-alert-YXqtFxD6.js +0 -1
  252. package/dist/client/assets/unplug-e3z4rXgY.js +0 -1
  253. package/dist/client/assets/useAppSidebarCollapsed-mtvJ7qbW.js +0 -1
  254. package/dist/client/assets/useLabelableId-NJQsKdL6.js +0 -1
  255. package/dist/client/assets/useNavigate-2tVq4iZ2.js +0 -1
  256. package/dist/client/assets/usePhoneThreadActions-97AsVVIR.js +0 -1
  257. package/dist/client/assets/usePopupViewport-8OM2irPK.js +0 -1
  258. package/dist/client/assets/usePositioner-0Kb-C4al.js +0 -1
  259. package/dist/client/assets/useRenderElement-D0HVF5g_.js +0 -1
  260. package/dist/client/assets/useRouter-CcIDS3PN.js +0 -1
  261. package/dist/client/assets/useScrollLock-AUqaSAkf.js +0 -1
  262. package/dist/client/assets/useSwipeDismiss-CcW-GPO_.js +0 -1
  263. package/dist/client/assets/useTriggerFocusGuards-ChBvppef.js +0 -1
  264. package/dist/client/assets/useValueChanged-CThCTn4h.js +0 -1
  265. package/dist/client/assets/user-round-evbX_eto.js +0 -1
  266. package/dist/client/assets/utils-5-6TOrS1.js +0 -1
  267. package/dist/client/assets/visuallyHidden-BRaogTVF.js +0 -1
  268. package/dist/client/assets/wrench-mA--bcId.js +0 -1
  269. package/dist/client/assets/x-_SjFRYll.js +0 -1
package/dist/bin.cjs CHANGED
@@ -2494,9 +2494,14 @@ const INLINE_ATTACHMENT_EXTENSIONS = /* @__PURE__ */ new Set([
2494
2494
  ".webp"
2495
2495
  ]);
2496
2496
  const STATIC_CONTENT_TYPES = {
2497
+ ".avif": "image/avif",
2498
+ ".bmp": "image/bmp",
2497
2499
  ".css": "text/css; charset=utf-8",
2498
2500
  ".html": "text/html; charset=utf-8",
2501
+ ".gif": "image/gif",
2499
2502
  ".ico": "image/x-icon",
2503
+ ".jpeg": "image/jpeg",
2504
+ ".jpg": "image/jpeg",
2500
2505
  ".js": "text/javascript; charset=utf-8",
2501
2506
  ".json": "application/json; charset=utf-8",
2502
2507
  ".map": "application/json; charset=utf-8",
@@ -2504,7 +2509,8 @@ const STATIC_CONTENT_TYPES = {
2504
2509
  ".svg": "image/svg+xml; charset=utf-8",
2505
2510
  ".txt": "text/plain; charset=utf-8",
2506
2511
  ".wasm": "application/wasm",
2507
- ".webmanifest": "application/manifest+json; charset=utf-8"
2512
+ ".webmanifest": "application/manifest+json; charset=utf-8",
2513
+ ".webp": "image/webp"
2508
2514
  };
2509
2515
  const browserApiCorsLayer = effect_unstable_http.HttpRouter.cors({
2510
2516
  allowedMethods: [
@@ -2823,16 +2829,17 @@ const projectFaviconRouteLayer = effect_unstable_http.HttpRouter.add("GET", "/ap
2823
2829
  if (effect.Option.isNone(url)) return effect_unstable_http.HttpServerResponse.text("Bad Request", { status: 400 });
2824
2830
  const projectCwd = url.value.searchParams.get("cwd");
2825
2831
  if (!projectCwd) return effect_unstable_http.HttpServerResponse.text("Missing cwd parameter", { status: 400 });
2826
- const faviconFilePath = yield* (yield* ProjectFaviconResolver).resolvePath(projectCwd);
2827
- if (!faviconFilePath) return effect_unstable_http.HttpServerResponse.text(FALLBACK_PROJECT_FAVICON_SVG, {
2832
+ const favicon = yield* (yield* ProjectFaviconResolver).readIcon(projectCwd);
2833
+ if (!favicon) return effect_unstable_http.HttpServerResponse.text(FALLBACK_PROJECT_FAVICON_SVG, {
2828
2834
  status: 200,
2829
2835
  contentType: "image/svg+xml",
2830
2836
  headers: inlineImageResponseHeaders("fallback.svg")
2831
2837
  });
2832
- return yield* effect_unstable_http.HttpServerResponse.file(faviconFilePath, {
2838
+ return effect_unstable_http.HttpServerResponse.uint8Array(favicon.bytes, {
2833
2839
  status: 200,
2834
- headers: inlineImageResponseHeaders(faviconFilePath)
2835
- }).pipe(effect.Effect.catch(() => effect.Effect.succeed(effect_unstable_http.HttpServerResponse.text("Internal Server Error", { status: 500 }))));
2840
+ contentType: resolveStaticContentType(favicon.path, yield* effect.Path.Path),
2841
+ headers: inlineImageResponseHeaders(favicon.path)
2842
+ });
2836
2843
  }).pipe(effect.Effect.catchTag("AuthError", respondToAuthError)));
2837
2844
  const AvatarFormSchema = effect_Schema.Struct({ avatar: effect_unstable_http.Multipart.SingleFileSchema });
2838
2845
  const PROJECT_ID_PATTERN = /^[A-Za-z0-9_-]+$/;
@@ -34793,7 +34800,7 @@ const scopedSafeTeardown = (label) => (effect$28) => effect.Effect.gen(function*
34793
34800
  });
34794
34801
  //#endregion
34795
34802
  //#region package.json
34796
- var version$1 = "0.1.23";
34803
+ var version$1 = "0.1.24";
34797
34804
  //#endregion
34798
34805
  //#region src/provider/Layers/CodexProvider.ts
34799
34806
  const PROVIDER_PROBE_TIMEOUT_MS = 8e3;
@@ -49264,7 +49271,7 @@ async function readResourceTelemetryHistory(input) {
49264
49271
  //#endregion
49265
49272
  //#region src/diagnostics/ProcessDiagnostics.ts
49266
49273
  const QUERY_TIMEOUT_MS = 3e3;
49267
- const MAX_OUTPUT_BYTES = 4194304;
49274
+ const MAX_OUTPUT_BYTES$1 = 4194304;
49268
49275
  const MAX_PROCESSES = 2e4;
49269
49276
  /** Parse fixed numeric columns; never capture command-line arguments. */
49270
49277
  function parseProcessTable(output) {
@@ -49345,7 +49352,7 @@ async function queryProcessTable(fresh = false) {
49345
49352
  (0, node_child_process.execFile)("/bin/ps", ["-axo", "pid=,ppid=,lstart=,pcpu=,rss=,stat=,etime=,comm="], {
49346
49353
  encoding: "utf8",
49347
49354
  timeout: QUERY_TIMEOUT_MS,
49348
- maxBuffer: MAX_OUTPUT_BYTES,
49355
+ maxBuffer: MAX_OUTPUT_BYTES$1,
49349
49356
  env: {
49350
49357
  ...process.env,
49351
49358
  LC_ALL: "C"
@@ -73603,6 +73610,8 @@ var RelayConnectionSession = class {
73603
73610
  #frameDeliveryActive = false;
73604
73611
  #settled = false;
73605
73612
  #closed = false;
73613
+ #authenticationStarted = false;
73614
+ #rejectAuthentication;
73606
73615
  #listeners;
73607
73616
  constructor(options) {
73608
73617
  this.#identity = options.identity;
@@ -73618,8 +73627,21 @@ var RelayConnectionSession = class {
73618
73627
  get ready() {
73619
73628
  return this.#ready;
73620
73629
  }
73621
- async authenticate() {
73622
- if (this.#socket !== void 0) throw new RelayConnectionError("internal_error");
73630
+ authenticate() {
73631
+ if (this.#authenticationStarted || this.#closed) return Promise.reject(new RelayConnectionError("internal_error"));
73632
+ this.#authenticationStarted = true;
73633
+ return new Promise((resolve, reject) => {
73634
+ this.#rejectAuthentication = reject;
73635
+ this.#authenticate().then((ready) => {
73636
+ this.#rejectAuthentication = void 0;
73637
+ resolve(ready);
73638
+ }, (error) => {
73639
+ this.#rejectAuthentication = void 0;
73640
+ reject(error);
73641
+ });
73642
+ });
73643
+ }
73644
+ async #authenticate() {
73623
73645
  let auth;
73624
73646
  try {
73625
73647
  auth = await this.#identity.createRelayAuthenticationFrame(this.#hubOrigin, {
@@ -73668,6 +73690,7 @@ var RelayConnectionSession = class {
73668
73690
  };
73669
73691
  const onOpen = () => {
73670
73692
  if (this.#closed) return;
73693
+ if (this.#timer !== void 0) this.#scheduler.clearTimeout(this.#timer);
73671
73694
  try {
73672
73695
  socket.send(authBytes);
73673
73696
  } catch {
@@ -73741,6 +73764,7 @@ var RelayConnectionSession = class {
73741
73764
  socket.addEventListener("message", onMessage);
73742
73765
  socket.addEventListener("error", onError);
73743
73766
  socket.addEventListener("close", onClose);
73767
+ this.#timer = this.#scheduler.setTimeout(() => fail(new RelayConnectionError("network")), require_collectUint8StreamText.RELAY_AUTHENTICATION_DEADLINE_MS);
73744
73768
  });
73745
73769
  }
73746
73770
  /**
@@ -73772,6 +73796,11 @@ var RelayConnectionSession = class {
73772
73796
  close() {
73773
73797
  if (this.#closed) return;
73774
73798
  this.#closed = true;
73799
+ if (!this.#settled) {
73800
+ this.#settled = true;
73801
+ this.#rejectAuthentication?.(new RelayConnectionError("network"));
73802
+ }
73803
+ this.#rejectAuthentication = void 0;
73775
73804
  for (const frame of this.#pendingPostReadyFrames) clearRelayFrameBytes(frame);
73776
73805
  this.#pendingPostReadyFrames = [];
73777
73806
  this.#clearPendingAuthentication();
@@ -89730,83 +89759,173 @@ const ProviderRegistryLive = effect.Layer.effect(ProviderRegistry, effect.Effect
89730
89759
  };
89731
89760
  }));
89732
89761
  //#endregion
89733
- //#region src/project/Layers/ProjectFaviconResolver.ts
89734
- const FAVICON_CANDIDATES = [
89735
- "favicon.svg",
89736
- "favicon.ico",
89737
- "favicon.png",
89738
- "public/favicon.svg",
89739
- "public/favicon.ico",
89740
- "public/favicon.png",
89741
- "app/favicon.ico",
89742
- "app/favicon.png",
89743
- "app/icon.svg",
89744
- "app/icon.png",
89745
- "app/icon.ico",
89746
- "src/favicon.ico",
89747
- "src/favicon.svg",
89748
- "src/app/favicon.ico",
89749
- "src/app/icon.svg",
89750
- "src/app/icon.png",
89751
- "assets/icon.svg",
89752
- "assets/icon.png",
89753
- "assets/logo.svg",
89754
- "assets/logo.png",
89755
- ".idea/icon.svg"
89756
- ];
89757
- const ICON_SOURCE_FILES = [
89758
- "index.html",
89759
- "public/index.html",
89760
- "app/routes/__root.tsx",
89761
- "src/routes/__root.tsx",
89762
- "app/root.tsx",
89763
- "src/root.tsx",
89764
- "src/index.html"
89765
- ];
89766
- const LINK_ICON_HTML_RE = /<link\b(?=[^>]*\brel=["'](?:icon|shortcut icon)["'])(?=[^>]*\bhref=["']([^"'?]+))[^>]*>/i;
89767
- const LINK_ICON_OBJ_RE = /(?=[^}]*\brel\s*:\s*["'](?:icon|shortcut icon)["'])(?=[^}]*\bhref\s*:\s*["']([^"'?]+))[^}]*/i;
89768
- function extractIconHref(source) {
89769
- const htmlMatch = source.match(LINK_ICON_HTML_RE);
89770
- if (htmlMatch?.[1]) return htmlMatch[1];
89771
- const objMatch = source.match(LINK_ICON_OBJ_RE);
89772
- if (objMatch?.[1]) return objMatch[1];
89773
- return null;
89774
- }
89775
- const makeProjectFaviconResolver = effect.Effect.gen(function* () {
89776
- const fileSystem = yield* effect.FileSystem.FileSystem;
89777
- const path = yield* effect.Path.Path;
89778
- const resolveIconHref = (projectCwd, href) => {
89779
- const clean = href.replace(/^\//, "");
89780
- return [path.join(projectCwd, "public", clean), path.join(projectCwd, clean)];
89781
- };
89782
- const isPathWithinProject = (projectCwd, candidatePath) => {
89783
- const relative = path.relative(path.resolve(projectCwd), path.resolve(candidatePath));
89784
- return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
89785
- };
89786
- const findExistingFile = effect.Effect.fn("ProjectFaviconResolver.findExistingFile")(function* (projectCwd, candidates) {
89762
+ //#region src/project/projectFaviconWorker.ts
89763
+ /**
89764
+ * Serialized into a short-lived Node/Bun child. Keep this function self-contained:
89765
+ * opening a cloud-backed file can block in the kernel even after an async read
89766
+ * is cancelled. A separate process keeps optional icons out of the node's shared
89767
+ * filesystem/DNS worker pool, and lets the parent terminate a stalled read.
89768
+ */
89769
+ function projectFaviconWorkerMain() {
89770
+ const fs = process.getBuiltinModule("node:fs");
89771
+ const path = process.getBuiltinModule("node:path");
89772
+ const iconLimit = 524288;
89773
+ const sourceLimit = 262144;
89774
+ const candidates = [
89775
+ "favicon.svg",
89776
+ "favicon.ico",
89777
+ "favicon.png",
89778
+ "public/favicon.svg",
89779
+ "public/favicon.ico",
89780
+ "public/favicon.png",
89781
+ "app/favicon.ico",
89782
+ "app/favicon.png",
89783
+ "app/icon.svg",
89784
+ "app/icon.png",
89785
+ "app/icon.ico",
89786
+ "src/favicon.ico",
89787
+ "src/favicon.svg",
89788
+ "src/app/favicon.ico",
89789
+ "src/app/icon.svg",
89790
+ "src/app/icon.png",
89791
+ "assets/icon.svg",
89792
+ "assets/icon.png",
89793
+ "assets/logo.svg",
89794
+ "assets/logo.png",
89795
+ ".idea/icon.svg"
89796
+ ];
89797
+ const sources = [
89798
+ "index.html",
89799
+ "public/index.html",
89800
+ "app/routes/__root.tsx",
89801
+ "src/routes/__root.tsx",
89802
+ "app/root.tsx",
89803
+ "src/root.tsx",
89804
+ "src/index.html"
89805
+ ];
89806
+ try {
89807
+ const root = fs.realpathSync(process.argv[1]);
89808
+ const read = (relative, limit) => {
89809
+ let fd;
89810
+ try {
89811
+ const filename = fs.realpathSync(path.resolve(root, relative));
89812
+ const within = path.relative(root, filename);
89813
+ if (within === ".." || within.startsWith(`..${path.sep}`) || path.isAbsolute(within)) return null;
89814
+ fd = fs.openSync(filename, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK);
89815
+ const stats = fs.fstatSync(fd);
89816
+ if (!stats.isFile() || stats.size > limit) return null;
89817
+ const bytes = Buffer.alloc(limit + 1);
89818
+ let length = 0;
89819
+ while (length < bytes.length) {
89820
+ const count = fs.readSync(fd, bytes, length, bytes.length - length, null);
89821
+ if (count === 0) break;
89822
+ length += count;
89823
+ }
89824
+ return length > limit ? null : {
89825
+ path: filename,
89826
+ bytes: bytes.subarray(0, length)
89827
+ };
89828
+ } catch {
89829
+ return null;
89830
+ } finally {
89831
+ if (fd !== void 0) fs.closeSync(fd);
89832
+ }
89833
+ };
89834
+ const send = (icon) => {
89835
+ process.stdout.write(JSON.stringify({
89836
+ path: icon.path,
89837
+ base64: icon.bytes.toString("base64")
89838
+ }));
89839
+ };
89787
89840
  for (const candidate of candidates) {
89788
- if (!isPathWithinProject(projectCwd, candidate)) continue;
89789
- if ((yield* fileSystem.stat(candidate).pipe(effect.Effect.catch(() => effect.Effect.succeed(null))))?.type === "File") return candidate;
89841
+ const icon = read(candidate, iconLimit);
89842
+ if (icon) {
89843
+ send(icon);
89844
+ return;
89845
+ }
89790
89846
  }
89791
- return null;
89792
- });
89793
- return { resolvePath: effect.Effect.fn("ProjectFaviconResolver.resolvePath")(function* (cwd) {
89794
- for (const candidate of FAVICON_CANDIDATES) {
89795
- const resolved = path.join(cwd, candidate);
89796
- const existing = yield* findExistingFile(cwd, [resolved]);
89797
- if (existing) return existing;
89798
- }
89799
- for (const sourceFile of ICON_SOURCE_FILES) {
89800
- const sourcePath = path.join(cwd, sourceFile);
89801
- const source = yield* fileSystem.readFileString(sourcePath).pipe(effect.Effect.catch(() => effect.Effect.succeed(null)));
89802
- if (!source) continue;
89803
- const href = extractIconHref(source);
89847
+ for (const source of sources) {
89848
+ const text = read(source, sourceLimit)?.bytes.toString("utf8");
89849
+ if (!text) continue;
89850
+ const href = text.match(/<link\b(?=[^>]*\brel=["'](?:icon|shortcut icon)["'])(?=[^>]*\bhref=["']([^"'?]+))[^>]*>/i)?.[1] ?? text.match(/(?=[^}]*\brel\s*:\s*["'](?:icon|shortcut icon)["'])(?=[^}]*\bhref\s*:\s*["']([^"'?]+))[^}]*/i)?.[1];
89804
89851
  if (!href) continue;
89805
- const existing = yield* findExistingFile(cwd, resolveIconHref(cwd, href));
89806
- if (existing) return existing;
89852
+ const clean = href.replace(/^\//, "");
89853
+ for (const candidate of [path.join("public", clean), clean]) {
89854
+ const icon = read(candidate, iconLimit);
89855
+ if (icon) {
89856
+ send(icon);
89857
+ return;
89858
+ }
89859
+ }
89807
89860
  }
89808
- return null;
89809
- }) };
89861
+ } catch {}
89862
+ process.stdout.write("null");
89863
+ }
89864
+ const MAX_OUTPUT_BYTES = 786432;
89865
+ const WORKER_SCRIPT = `(${projectFaviconWorkerMain.toString()})()`;
89866
+ function readProjectFavicon(cwd, options = {}) {
89867
+ return new Promise((resolve) => {
89868
+ if (options.signal?.aborted) {
89869
+ resolve(null);
89870
+ return;
89871
+ }
89872
+ let child;
89873
+ const abort = () => {
89874
+ child?.kill("SIGKILL");
89875
+ };
89876
+ const cleanup = () => options.signal?.removeEventListener("abort", abort);
89877
+ options.signal?.addEventListener("abort", abort, { once: true });
89878
+ try {
89879
+ child = (options.execFile ?? node_child_process.execFile)(process.execPath, [
89880
+ "--eval",
89881
+ WORKER_SCRIPT,
89882
+ "--",
89883
+ cwd
89884
+ ], {
89885
+ env: {
89886
+ ...process.env,
89887
+ ELECTRON_RUN_AS_NODE: "1",
89888
+ NODE_OPTIONS: void 0,
89889
+ NODE_PATH: void 0
89890
+ },
89891
+ encoding: "utf8",
89892
+ timeout: options.timeoutMs ?? 1500,
89893
+ killSignal: "SIGKILL",
89894
+ maxBuffer: MAX_OUTPUT_BYTES,
89895
+ windowsHide: true
89896
+ }, (error, stdout) => {
89897
+ cleanup();
89898
+ if (error) {
89899
+ resolve(null);
89900
+ return;
89901
+ }
89902
+ try {
89903
+ const result = JSON.parse(stdout);
89904
+ if (typeof result !== "object" || result === null || !("path" in result) || !("base64" in result) || typeof result.path !== "string" || typeof result.base64 !== "string") {
89905
+ resolve(null);
89906
+ return;
89907
+ }
89908
+ const bytes = Buffer.from(result.base64, "base64");
89909
+ resolve(bytes.length <= 524288 ? {
89910
+ path: result.path,
89911
+ bytes
89912
+ } : null);
89913
+ } catch {
89914
+ resolve(null);
89915
+ }
89916
+ });
89917
+ if (options.signal?.aborted) abort();
89918
+ } catch {
89919
+ cleanup();
89920
+ resolve(null);
89921
+ }
89922
+ });
89923
+ }
89924
+ //#endregion
89925
+ //#region src/project/Layers/ProjectFaviconResolver.ts
89926
+ const makeProjectFaviconResolver = effect.Effect.gen(function* () {
89927
+ const workers = yield* effect_Semaphore.make(2);
89928
+ return { readIcon: (cwd) => workers.withPermit(effect.Effect.promise((signal) => readProjectFavicon(cwd, { signal }))).pipe(effect.Effect.timeout("5 seconds"), effect.Effect.catch(() => effect.Effect.succeed(null))) };
89810
89929
  });
89811
89930
  const ProjectFaviconResolverLive = effect.Layer.effect(ProjectFaviconResolver, makeProjectFaviconResolver);
89812
89931
  //#endregion
@@ -92052,6 +92171,23 @@ const makeTraceSink = effect.Effect.fn("makeTraceSink")(function* (options) {
92052
92171
  };
92053
92172
  });
92054
92173
  //#endregion
92174
+ //#region src/observability/HttpHeaderRedaction.ts
92175
+ /** Capture policy before HTTP tracing defers span completion outside its request context. */
92176
+ function makeHttpHeaderRedactor(names) {
92177
+ const redactedNames = [
92178
+ ...names,
92179
+ require_collectUint8StreamText.LOCAL_INTRODUCTION_CONTROL_HEADER,
92180
+ "dpop",
92181
+ "dpop-nonce"
92182
+ ];
92183
+ return (key, value) => {
92184
+ const match = /^http\.(?:request|response)\.header\.(.+)$/iu.exec(key);
92185
+ if (!match) return value;
92186
+ const name = match[1].toLowerCase();
92187
+ return String(effect_unstable_http.Headers.redact(effect_unstable_http.Headers.fromInput({ [name]: String(value) }), redactedNames)[name]);
92188
+ };
92189
+ }
92190
+ //#endregion
92055
92191
  //#region src/observability/LocalFileTracer.ts
92056
92192
  var LocalFileSpan = class {
92057
92193
  _tag = "Span";
@@ -92068,9 +92204,11 @@ var LocalFileSpan = class {
92068
92204
  events;
92069
92205
  delegate;
92070
92206
  push;
92071
- constructor(options, delegate, push) {
92207
+ redactAttribute;
92208
+ constructor(options, delegate, push, redactAttribute) {
92072
92209
  this.delegate = delegate;
92073
92210
  this.push = push;
92211
+ this.redactAttribute = redactAttribute;
92074
92212
  this.name = delegate.name;
92075
92213
  this.spanId = delegate.spanId;
92076
92214
  this.traceId = delegate.traceId;
@@ -92097,8 +92235,9 @@ var LocalFileSpan = class {
92097
92235
  if (this.sampled) this.push(spanToTraceRecord(this));
92098
92236
  }
92099
92237
  attribute(key, value) {
92100
- this.attributes.set(key, value);
92101
- this.delegate.attribute(key, value);
92238
+ const redacted = this.redactAttribute(key, value);
92239
+ this.attributes.set(key, redacted);
92240
+ this.delegate.attribute(key, redacted);
92102
92241
  }
92103
92242
  event(name, startTime, attributes) {
92104
92243
  const nextAttributes = attributes ?? {};
@@ -92115,6 +92254,7 @@ var LocalFileSpan = class {
92115
92254
  }
92116
92255
  };
92117
92256
  const makeLocalFileTracer = effect.Effect.fn("makeLocalFileTracer")(function* (options) {
92257
+ const redactAttribute = makeHttpHeaderRedactor(yield* effect.Effect.service(effect_unstable_http.Headers.CurrentRedactedNames));
92118
92258
  const sink = options.sink ?? (yield* makeTraceSink({
92119
92259
  filePath: options.filePath,
92120
92260
  maxBytes: options.maxBytes,
@@ -92124,7 +92264,7 @@ const makeLocalFileTracer = effect.Effect.fn("makeLocalFileTracer")(function* (o
92124
92264
  const delegate = options.delegate ?? effect.Tracer.make({ span: (spanOptions) => new effect.Tracer.NativeSpan(spanOptions) });
92125
92265
  return effect.Tracer.make({
92126
92266
  span(spanOptions) {
92127
- return new LocalFileSpan(spanOptions, delegate.span(spanOptions), sink.push);
92267
+ return new LocalFileSpan(spanOptions, delegate.span(spanOptions), sink.push, redactAttribute);
92128
92268
  },
92129
92269
  ...delegate.context ? { context: delegate.context } : {}
92130
92270
  });