ryco-cli 0.1.20 → 0.1.22

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 (414) hide show
  1. package/dist/{AcpNativeLogging-Bh7MX3rC.cjs → AcpNativeLogging-COepku4a.cjs} +264 -7
  2. package/dist/{AcpNativeLogging-CLM3p9JD.mjs → AcpNativeLogging-D7e1dn7s.mjs} +254 -9
  3. package/dist/{AzureDevOpsSourceControlProvider-jQm1WPMS.mjs → AzureDevOpsSourceControlProvider-BNGEg1R8.mjs} +3 -3
  4. package/dist/{AzureDevOpsSourceControlProvider-D9QXGi1h.cjs → AzureDevOpsSourceControlProvider-CrvgKNf2.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-j95Cro_2.mjs → BitbucketSourceControlProvider-Bt21jw68.mjs} +3 -3
  6. package/dist/{BitbucketSourceControlProvider-C3VDp9qR.cjs → BitbucketSourceControlProvider-BzhsQwH-.cjs} +2 -2
  7. package/dist/{BunPTY-CNvWSzEJ.mjs → BunPTY-TbHbSc8S.mjs} +1 -1
  8. package/dist/{ClaudeDriver-CT89QDP8.mjs → ClaudeDriver-D65SPdHR.mjs} +44 -119
  9. package/dist/{ClaudeDriver-DiRhQM2K.cjs → ClaudeDriver-D7NatUx6.cjs} +52 -127
  10. package/dist/{CodexDriver-CBYfPl_X.mjs → CodexDriver-D4z5-wUD.mjs} +237 -50
  11. package/dist/{CodexDriver-BmKoU7w_.cjs → CodexDriver-DWGtHt9r.cjs} +235 -48
  12. package/dist/{CodexTextGeneration-CuXvtfAi.cjs → CodexTextGeneration-B4tJTUDo.cjs} +1 -1
  13. package/dist/{CodexTextGeneration-B7GPyLo2.mjs → CodexTextGeneration-BikHow8k.mjs} +2 -2
  14. package/dist/{CopilotDriver-XX5zmGVK.cjs → CopilotDriver-DJvYncGI.cjs} +122 -23
  15. package/dist/{CopilotDriver-BJ1P_bHz.mjs → CopilotDriver-ZvvsAIkd.mjs} +123 -24
  16. package/dist/{CursorDriver-BH6yAijk.mjs → CursorDriver-B1QSBzuH.mjs} +45 -74
  17. package/dist/{CursorDriver-CYMXQKec.cjs → CursorDriver-D3I4KULs.cjs} +44 -73
  18. package/dist/{ForgejoSourceControlProvider-ZfU3SBzW.mjs → ForgejoSourceControlProvider-BGXysSX6.mjs} +3 -3
  19. package/dist/{ForgejoSourceControlProvider-Dzg-BJY_.cjs → ForgejoSourceControlProvider-Dh6DOoc8.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-BpyIi23Q.cjs → GitHubSourceControlProvider-8hsv_kCE.cjs} +2 -2
  21. package/dist/{GitHubSourceControlProvider-Bx5_H3zb.mjs → GitHubSourceControlProvider-CPCYV8Xo.mjs} +3 -3
  22. package/dist/{GitLabSourceControlProvider-QccSsOnx.cjs → GitLabSourceControlProvider-B0ZbF9Zx.cjs} +2 -2
  23. package/dist/{GitLabSourceControlProvider-DjvGD1WZ.mjs → GitLabSourceControlProvider-Bvknpaon.mjs} +3 -3
  24. package/dist/{GrokDriver-BPIUrqkN.mjs → GrokDriver-DgQe3pKz.mjs} +41 -10
  25. package/dist/{GrokDriver-jE4az7JZ.cjs → GrokDriver-_puXDTU3.cjs} +42 -11
  26. package/dist/{NodePTY-lO8PwZLk.mjs → NodePTY-B_p5tLYO.mjs} +1 -1
  27. package/dist/{OpenCodeDriver-IbZqAzYW.cjs → OpenCodeDriver-401RexI0.cjs} +240 -40
  28. package/dist/{OpenCodeDriver-_hUfFwH4.mjs → OpenCodeDriver-DNUlF8M-.mjs} +238 -41
  29. package/dist/{SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs → SourceControlProviderDiscoveryCatalog-B37RHe2u.mjs} +1 -1
  30. package/dist/{SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs → SourceControlProviderDiscoveryCatalog-DreaAH1H.cjs} +1 -1
  31. package/dist/bin.cjs +10690 -5679
  32. package/dist/bin.mjs +10674 -5674
  33. package/dist/client/assets/AccountSettings-CypheYqM.js +1 -0
  34. package/dist/client/assets/AiFocusSettings-BlX0ED1t.js +1 -0
  35. package/dist/client/assets/AnimatedHeight-DKCe4x_Q.js +1 -0
  36. package/dist/client/assets/AppearanceSettings-BSyn6NXf.js +1 -0
  37. package/dist/client/assets/BranchToolbar.logic-fpBz8Ajj.js +1 -0
  38. package/dist/client/assets/BrowserPanel-BWch19QH.js +1 -0
  39. package/dist/client/assets/ChatRightPanel-B7yrq-hS.js +27 -0
  40. package/dist/client/assets/ChatThreadRouteView-Cg0d_EHs.js +1 -0
  41. package/dist/client/assets/CommandPaletteDialog-DImCuPaX.js +1 -0
  42. package/dist/client/assets/CompositeItem-BYnHWRNf.js +1 -0
  43. package/dist/client/assets/CompositeRoot-B28uivk7.js +1 -0
  44. package/dist/client/assets/ComputerUseSettings-CosW7jaG.js +1 -0
  45. package/dist/client/assets/ConnectionsSettings-Bk6vI3G-.js +7 -0
  46. package/dist/client/assets/ContextHandoffEndpointLabel-BR6ygaub.js +4 -0
  47. package/dist/client/assets/DiagnosticsSettings-Dp_tCNLw.js +2 -0
  48. package/dist/client/assets/DialogHandle-BN-QB-sO.js +1 -0
  49. package/dist/client/assets/DialogPopup-BuJs5WUt.js +1 -0
  50. package/dist/client/assets/DialogRoot-PxEcoecQ.js +1 -0
  51. package/dist/client/assets/DialogTitle-4nxQsra4.js +1 -0
  52. package/dist/client/assets/DialogTrigger-D_0canul.js +1 -0
  53. package/dist/client/assets/DialogViewport-DSo-2hyf.js +1 -0
  54. package/dist/client/assets/DraftChatThreadRouteView-C94kpMx4.js +1 -0
  55. package/dist/client/assets/{ExternalIdentityWeb.logic-TlJdh82R.js → ExternalIdentityWeb.logic-CGJKCFPo.js} +1 -1
  56. package/dist/client/assets/{GlassSurface-BWk2twKc.js → GlassSurface-CyOTUS7E.js} +1 -1
  57. package/dist/client/assets/HostedConnectionControls-CL0Ws4ca.js +1 -0
  58. package/dist/client/assets/HostedHubRoot-LUINZl4r.js +1 -0
  59. package/dist/client/assets/HostedNativeAuthorizationRoute-CgYVBE6N.js +1 -0
  60. package/dist/client/assets/HostedRelayTrustNotice-DgdeZh52.js +1 -0
  61. package/dist/client/assets/Icons-BIUbIFr7.js +1 -0
  62. package/dist/client/assets/IntegrationsSettingsPanel-B7tXTaa3.js +1 -0
  63. package/dist/client/assets/KeybindingsSettings-HMlRcGQ4.js +7 -0
  64. package/dist/client/assets/LazyBrowserPanel-CKfmuM9U.js +1 -0
  65. package/dist/client/assets/{McpServersSettings-Cbq-uHU3.js → McpServersSettings-Bq-HyhvC.js} +4 -4
  66. package/dist/client/assets/MobileSheet-acDRH9aa.js +1 -0
  67. package/dist/client/assets/NoActiveThreadState-7rym7bV7.js +1 -0
  68. package/dist/client/assets/NodeSecuritySettings-D8qjh4Dc.js +1 -0
  69. package/dist/client/assets/OpinionatedPluginsSettings-D7Uks5yR.js +1 -0
  70. package/dist/client/assets/PhoneGetAppInterstitial-BQXUSufH.js +1 -0
  71. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-BbUvwGmI.js +1 -0
  72. package/dist/client/assets/PhoneHome-DvgdMTkh.js +1 -0
  73. package/dist/client/assets/PhoneSettingsSurface-DncJ540i.js +1 -0
  74. package/dist/client/assets/ProjectFavicon-BY5Vyyk6.js +1 -0
  75. package/dist/client/assets/ProviderInstanceIcon-CZe1TbeC.js +1 -0
  76. package/dist/client/assets/ProviderModelPicker-DHAY1n_1.js +1 -0
  77. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-D3qYdp40.js → ProviderUpdateLaunchNotification.logic-DQJVrUIo.js} +1 -1
  78. package/dist/client/assets/ProvidersSettingsPanel-BylxZs4S.js +1 -0
  79. package/dist/client/assets/RedactedSensitiveText-D-enj1h5.js +1 -0
  80. package/dist/client/assets/RootAppShell-DBK0WW2b.js +6 -0
  81. package/dist/client/assets/RycoLetterMark-PnGm6TQY.js +1 -0
  82. package/dist/client/assets/{Separator-DiMB6Prz.js → Separator-BWKYMFqt.js} +1 -1
  83. package/dist/client/assets/SettingsDialog-N25hIv-a.js +1 -0
  84. package/dist/client/assets/SettingsPanels-D9YXmUPP.js +3 -0
  85. package/dist/client/assets/SettingsPanels.editor-Cn18k74l.js +1 -0
  86. package/dist/client/assets/SourceControlSettings-BAzSpMfR.js +1 -0
  87. package/dist/client/assets/StatisticsPage-CLKpfsQ8.js +1 -0
  88. package/dist/client/assets/StatisticsPanel-DxHUFn64.js +1 -0
  89. package/dist/client/assets/StatisticsSettingsLink-B3HIQYFh.js +1 -0
  90. package/dist/client/assets/ThreadStatusIndicators-CQZ_OgY8.js +0 -0
  91. package/dist/client/assets/{ThreadTerminalDrawer-DvadlVXV.js → ThreadTerminalDrawer-D1SPewXR.js} +3 -3
  92. package/dist/client/assets/ThreadWorkspacePanel-DVF6oZsV.js +2009 -0
  93. package/dist/client/assets/ToolbarRootContext-Dt8G5aCw.js +1 -0
  94. package/dist/client/assets/{WorkItemsTab-CI6hTQ_k.js → WorkItemsTab-BoE-TcXJ.js} +8 -8
  95. package/dist/client/assets/{activity-1CkdQG5u.js → activity-DfFM6I8A.js} +1 -1
  96. package/dist/client/assets/alert-DE5SkZhr.js +1 -0
  97. package/dist/client/assets/alert-dialog-BqPnPhb6.js +1 -0
  98. package/dist/client/assets/appChrome-CJauXpqv.js +1 -0
  99. package/dist/client/assets/{archive-BL1hojl3.js → archive-BFV4YQ7D.js} +1 -1
  100. package/dist/client/assets/arrow-left-CCmICk1t.js +1 -0
  101. package/dist/client/assets/arrow-right-Z3Eay6Fd.js +1 -0
  102. package/dist/client/assets/{arrow-up-CTcWIlqV.js → arrow-up-caak6P06.js} +1 -1
  103. package/dist/client/assets/arrow-up-right-BwC-fCE4.js +1 -0
  104. package/dist/client/assets/authorization-bHsGYIT0.js +1 -0
  105. package/dist/client/assets/{badge-Cil0isYQ.js → badge-m9kM3P07.js} +1 -1
  106. package/dist/client/assets/{bot-DJp0cuhK.js → bot-Cv7a7Ksf.js} +1 -1
  107. package/dist/client/assets/{button-CBqaO2Ub.js → button-B6xQZNKz.js} +1 -1
  108. package/dist/client/assets/capabilities-D6bsjqkj.js +1 -0
  109. package/dist/client/assets/{chart-column-Dw6ACmXM.js → chart-column-DgGlY4sD.js} +1 -1
  110. package/dist/client/assets/chatThreadActions-BXaNbPbp.js +1 -0
  111. package/dist/client/assets/check-BfnWUGBT.js +1 -0
  112. package/dist/client/assets/{chevron-down-B7C6FKzM.js → chevron-down-B_FKCRVh.js} +1 -1
  113. package/dist/client/assets/chevron-right-B6CKNGh4.js +1 -0
  114. package/dist/client/assets/{circle-alert-BWvs6IOn.js → circle-alert-BV3vJE-c.js} +1 -1
  115. package/dist/client/assets/circle-check-D2Vx39x-.js +1 -0
  116. package/dist/client/assets/{external-link-fbvzDWM7.js → circle-dashed-khcA8K3Y.js} +1 -1
  117. package/dist/client/assets/circle-question-mark-DEuLdOiy.js +1 -0
  118. package/dist/client/assets/circle-x-DqfM_2wS.js +1 -0
  119. package/dist/client/assets/clamp-D0kAXd-u.js +1 -0
  120. package/dist/client/assets/{clipboard-copy-C4VV20QR.js → clipboard-copy-CiD4tBsh.js} +1 -1
  121. package/dist/client/assets/clock--4M7moiV.js +1 -0
  122. package/dist/client/assets/clock-3-NbnQqtcd.js +1 -0
  123. package/dist/client/assets/collapsible-BECg-ssO.js +1 -0
  124. package/dist/client/assets/command-DvbA3O0J.js +1 -0
  125. package/dist/client/assets/{copy-UQjKGt7t.js → copy-CkPe1c-r.js} +1 -1
  126. package/dist/client/assets/data-list-7TiaqfZU.js +1 -0
  127. package/dist/client/assets/desktopUpdateAtoms-6j0d8vfy.js +1 -0
  128. package/dist/client/assets/desktopWorkspace-8s8rm3zL.js +1 -0
  129. package/dist/client/assets/device-CGaJ6fwD.js +168 -0
  130. package/dist/client/assets/dialog-C9v8Zl6e.js +1 -0
  131. package/dist/client/assets/{download-CQZ-m4zW.js → download-DPjzVxTa.js} +1 -1
  132. package/dist/client/assets/draft-input-BRSLIjV6.js +1 -0
  133. package/dist/client/assets/editorPreferences-D-9SDgRM.js +1 -0
  134. package/dist/client/assets/empty-CuQ57p2u.js +1 -0
  135. package/dist/client/assets/external-link-CF9EzT-A.js +1 -0
  136. package/dist/client/assets/{eye-CUSPj-gd.js → eye-C2Puut9B.js} +1 -1
  137. package/dist/client/assets/{folder-DtsQoI9_.js → folder-BKTxLq18.js} +1 -1
  138. package/dist/client/assets/{folder-closed-CsvKfC6X.js → folder-closed-D2cwiusg.js} +1 -1
  139. package/dist/client/assets/getPseudoElementBounds-DdH76YK5.js +1 -0
  140. package/dist/client/assets/{git-branch-BKr-Ij4u.js → git-branch-Dauy2SWC.js} +1 -1
  141. package/dist/client/assets/{git-pull-request-DIYyPsg5.js → git-pull-request-DsK1gBtK.js} +1 -1
  142. package/dist/client/assets/globe-dS40wBdE.js +1 -0
  143. package/dist/client/assets/group-DBXm8riE.js +1 -0
  144. package/dist/client/assets/hostedConnectionCoordinator-DSMW2Ldh.js +1 -0
  145. package/dist/client/assets/{index-QY6vcnCY.js → index-DRY8Hgrj.js} +2 -2
  146. package/dist/client/assets/input-Dn_zesdZ.js +1 -0
  147. package/dist/client/assets/kbd-BF2-WlxQ.js +1 -0
  148. package/dist/client/assets/{key-round-CacMputS.js → key-round-BjaaL9Df.js} +1 -1
  149. package/dist/client/assets/{keybindings-Bj6xWIbQ.js → keybindings-FSJY3Tht.js} +1 -1
  150. package/dist/client/assets/{keyboard-BqeRMHfL.js → keyboard-AkUFPD_e.js} +1 -1
  151. package/dist/client/assets/label-BKjVY2A9.js +1 -0
  152. package/dist/client/assets/{layers-BYi0v17h.js → layers-tzRiuxSx.js} +1 -1
  153. package/dist/client/assets/{lib-B6XyeqaU.js → lib-D5cyGc84.js} +1 -1
  154. package/dist/client/assets/{loader-zHASMrUy.js → loader-BrbWRz3I.js} +1 -1
  155. package/dist/client/assets/loader-circle-DRKbHQst.js +1 -0
  156. package/dist/client/assets/{log-out-tMJm0Gk6.js → log-out-BEihaal1.js} +1 -1
  157. package/dist/client/assets/{logging-1BfRrhxL.js → logging-Y73f240E.js} +1 -1
  158. package/dist/client/assets/main-BiIQEybS.js +9 -0
  159. package/dist/client/assets/main-tZWU6iqX.css +2 -0
  160. package/dist/client/assets/menu-BxtB33Up.js +1 -0
  161. package/dist/client/assets/{messages-square-DiMgWzoq.js → messages-square-e0Zg750i.js} +1 -1
  162. package/dist/client/assets/{minimize-2-C33mL7LT.js → minimize-2-DC9gMgGl.js} +1 -1
  163. package/dist/client/assets/monitor-Dj0JFj4_.js +1 -0
  164. package/dist/client/assets/{palette-BSD_aJZg.js → palette-0qvNt1CR.js} +1 -1
  165. package/dist/client/assets/{pencil-B69ERoVM.js → pencil-CA0DGufX.js} +1 -1
  166. package/dist/client/assets/{play-DYDxlTKo.js → play-wIyvqd_g.js} +1 -1
  167. package/dist/client/assets/plus-5kH13lqq.js +1 -0
  168. package/dist/client/assets/popover-CwhgX3HA.js +1 -0
  169. package/dist/client/assets/primary-BqnEJHWx.js +2 -0
  170. package/dist/client/assets/{projectPaths-BFTUsvWs.js → projectPaths-45WPhgoj.js} +1 -1
  171. package/dist/client/assets/providerDriverMeta-Cc60r9Rb.js +1 -0
  172. package/dist/client/assets/providerInstances-Cr8JmFCe.js +1 -0
  173. package/dist/client/assets/providerModels-Cr8JmFCe.js +1 -0
  174. package/dist/client/assets/qr-code-BKrwYZ2s.js +1 -0
  175. package/dist/client/assets/{qr-code-ScYULAuR.js → qr-code-DDmpRnPp.js} +1 -1
  176. package/dist/client/assets/radio-group-DZCo21CF.js +2 -0
  177. package/dist/client/assets/{refresh-cw-DopCMrtR.js → refresh-cw-DiuiLTny.js} +1 -1
  178. package/dist/client/assets/resolveAriaLabelledBy-927ShlEO.js +1 -0
  179. package/dist/client/assets/rightPanelRouteSearch-CExl-IaQ.js +1 -0
  180. package/dist/client/assets/rotate-ccw-XOYBPtyK.js +1 -0
  181. package/dist/client/assets/rotate-cw-D32Z4Sdd.js +1 -0
  182. package/dist/client/assets/runtime-CA2W9mZ-.js +17 -0
  183. package/dist/client/assets/{save-Bh36JIv6.js → save-DjlqeVG_.js} +1 -1
  184. package/dist/client/assets/scroll-area-CylKYQms.js +1 -0
  185. package/dist/client/assets/scrollEdges-D7RQhYjX.js +1 -0
  186. package/dist/client/assets/search-B2nLj573.js +1 -0
  187. package/dist/client/assets/select-qTezUK8F.js +1 -0
  188. package/dist/client/assets/separator-D77goPy-.js +1 -0
  189. package/dist/client/assets/{server-JApJpgLa.js → server-y8Wq0Qwv.js} +1 -1
  190. package/dist/client/assets/session-logic-xfW418Rx.js +1 -0
  191. package/dist/client/assets/{settings-2-CZQg_KUQ.js → settings-2-DpwBKj3m.js} +1 -1
  192. package/dist/client/assets/settingsLayout-BuaXzjIe.js +1 -0
  193. package/dist/client/assets/settingsSections.logic-CR4aytUI.js +1 -0
  194. package/dist/client/assets/sheet-z3AEiSN4.js +1 -0
  195. package/dist/client/assets/{shield-IZEIJ8r7.js → shield-BuXuMVtb.js} +1 -1
  196. package/dist/client/assets/{shield-alert-DY9uVP5G.js → shield-alert-Dfk--o-I.js} +1 -1
  197. package/dist/client/assets/{shield-check-dQ-4cMKk.js → shield-check-BHi57iF1.js} +1 -1
  198. package/dist/client/assets/sidebar-Dst9O2OR.js +1 -0
  199. package/dist/client/assets/sidebarProjectFolders-DR1NBLLz.js +4 -0
  200. package/dist/client/assets/{sidebarStatusText-q88Acn3r.js → sidebarStatusText-7jo1n9E1.js} +1 -1
  201. package/dist/client/assets/skeleton-D_kbMg21.js +1 -0
  202. package/dist/client/assets/{smartphone-gNe1ynB8.js → smartphone-DcUQ17YT.js} +1 -1
  203. package/dist/client/assets/{sparkles-CAf3oJ5S.js → sparkles-nVLLtdqb.js} +1 -1
  204. package/dist/client/assets/spinner-CkXSwhuf.js +1 -0
  205. package/dist/client/assets/{square-pen-Bj3p_Q8E.js → square-pen-dcArpda7.js} +1 -1
  206. package/dist/client/assets/src-I4s4HU8f.js +14 -0
  207. package/dist/client/assets/star-CdUOqzzZ.js +1 -0
  208. package/dist/client/assets/storeSelectors-Cr8JmFCe.js +1 -0
  209. package/dist/client/assets/switch-BMeRsIbg.js +1 -0
  210. package/dist/client/assets/{tabSwitchInstrumentation-CLDM7g1_.js → tabSwitchInstrumentation-BuxWNdCV.js} +1 -1
  211. package/dist/client/assets/terminal-DupJfYRW.js +1 -0
  212. package/dist/client/assets/{terminal-links-BJzH2Ipe.js → terminal-links-Bf4neyyn.js} +1 -1
  213. package/dist/client/assets/textarea-Bu_OTJYe.js +1 -0
  214. package/dist/client/assets/threadPinning-DhnkssEa.js +1 -0
  215. package/dist/client/assets/{threadPriorityRefreshRuntime-D-OkS27H.js → threadPriorityRefreshRuntime-DJjlyX7f.js} +1 -1
  216. package/dist/client/assets/toast-CIjfIWUw.js +1 -0
  217. package/dist/client/assets/toggle-BA4mJ5v9.js +1 -0
  218. package/dist/client/assets/toggle-group-ChGfILTR.js +1 -0
  219. package/dist/client/assets/{tokenModePresentation-lVM0-Wi3.js → tokenModePresentation-B64s_OK3.js} +1 -1
  220. package/dist/client/assets/tooltip-C2VVqN6U.js +1 -0
  221. package/dist/client/assets/{trash-2-CM1zXPGb.js → trash-2-Dqgxd0nF.js} +1 -1
  222. package/dist/client/assets/{triangle-alert-RL_T3KLo.js → triangle-alert-D4cCh6sB.js} +1 -1
  223. package/dist/client/assets/types-Cr8JmFCe.js +1 -0
  224. package/dist/client/assets/{undo-2-x37tfI3V.js → undo-2-C8EQVSSD.js} +1 -1
  225. package/dist/client/assets/{unplug-Cw8iawyX.js → unplug-Dt3Sy2op.js} +1 -1
  226. package/dist/client/assets/useAppSidebarCollapsed-w0th-164.js +1 -0
  227. package/dist/client/assets/{useAtlassian-Bpvpm41l.js → useAtlassian-j7ex3bVN.js} +0 -0
  228. package/dist/client/assets/useButton-Dx5k1uZG.js +1 -0
  229. package/dist/client/assets/useCompositeListItem-BqkyY0oT.js +1 -0
  230. package/dist/client/assets/{clamp-CgH0Dl6R.js → useControlled-HocCF1v9.js} +1 -1
  231. package/dist/client/assets/useDebouncedValue-BevbEbPO.js +1 -0
  232. package/dist/client/assets/useFloatingRootContext-j6TgzEFa.js +1 -0
  233. package/dist/client/assets/useHandleNewThread-gVYty_Bg.js +1 -0
  234. package/dist/client/assets/useLabelableId-CcYPzJvj.js +1 -0
  235. package/dist/client/assets/useLocation-CZ3osOgz.js +1 -0
  236. package/dist/client/assets/useOpenInteractionType-apbY9ZEK.js +1 -0
  237. package/dist/client/assets/usePhoneThreadActions-CnDlicSp.js +1 -0
  238. package/dist/client/assets/usePopupViewport-0k75uXo1.js +1 -0
  239. package/dist/client/assets/useRenderElement-5DRNLBaU.js +1 -0
  240. package/dist/client/assets/useScrollLock-C5WLWXcc.js +1 -0
  241. package/dist/client/assets/{useStatistics-B4vW9Enx.js → useStatistics-GOFXPHO0.js} +2 -2
  242. package/dist/client/assets/useSwipeDismiss-BNHPBucH.js +1 -0
  243. package/dist/client/assets/useThreadActions-B4Xy2soQ.js +2 -0
  244. package/dist/client/assets/useTriggerFocusGuards-C3geWFzt.js +1 -0
  245. package/dist/client/assets/useValueChanged-FVqPwcY_.js +1 -0
  246. package/dist/client/assets/user-round-KsVtJgon.js +1 -0
  247. package/dist/client/assets/utils-B5qahmRn.js +1 -0
  248. package/dist/client/assets/visuallyHidden-j2WbVEv-.js +1 -0
  249. package/dist/client/assets/workspaceMetadataProjection-D3vqw40g.js +1 -0
  250. package/dist/client/assets/{wrench-D0IetWa1.js → wrench-BnpoYEZm.js} +1 -1
  251. package/dist/client/assets/x-BXHT1Zj1.js +1 -0
  252. package/dist/client/index.html +1 -1
  253. package/dist/{collectUint8StreamText-B3klZuIF.mjs → collectUint8StreamText-C_VNyArd.mjs} +1027 -162
  254. package/dist/{collectUint8StreamText-CDu-bszH.cjs → collectUint8StreamText-DStwNTTK.cjs} +1122 -161
  255. package/dist/{makeManagedServerProvider-CsaYHU8T.mjs → makeManagedServerProvider-GZcpSLrW.mjs} +22 -3
  256. package/dist/{makeManagedServerProvider-DeEmDbiq.cjs → makeManagedServerProvider-VzxWN-04.cjs} +32 -1
  257. package/dist/resource-monitor/LICENSE +21 -0
  258. package/dist/resource-monitor/darwin-arm64/LICENSE +21 -0
  259. package/dist/resource-monitor/darwin-arm64/ryco-resource-monitor +0 -0
  260. package/dist/resource-monitor/darwin-x64/LICENSE +21 -0
  261. package/dist/resource-monitor/darwin-x64/ryco-resource-monitor +0 -0
  262. package/dist/resource-monitor/linux-arm64/LICENSE +21 -0
  263. package/dist/resource-monitor/linux-arm64/ryco-resource-monitor +0 -0
  264. package/dist/resource-monitor/linux-x64/LICENSE +21 -0
  265. package/dist/resource-monitor/linux-x64/ryco-resource-monitor +0 -0
  266. package/dist/resource-monitor/ryco-resource-monitor +0 -0
  267. package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
  268. package/dist/resource-monitor/win32-arm64/LICENSE +21 -0
  269. package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
  270. package/dist/resource-monitor/win32-x64/LICENSE +21 -0
  271. package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
  272. package/package.json +1 -1
  273. package/dist/client/assets/AccountSettings-CvD49Uja.js +0 -1
  274. package/dist/client/assets/AiFocusSettings-CYIp0JOV.js +0 -1
  275. package/dist/client/assets/AnimatedHeight-CM_Eh6tz.js +0 -1
  276. package/dist/client/assets/AppearanceSettings-BwUAv5oz.js +0 -1
  277. package/dist/client/assets/BranchToolbar.logic-CKKpnCfs.js +0 -1
  278. package/dist/client/assets/ChatRightPanel-DYXZNh1m.js +0 -27
  279. package/dist/client/assets/ChatThreadRouteView-B0kj0wFr.js +0 -1
  280. package/dist/client/assets/CommandPaletteDialog-CJKvYVxh.js +0 -1
  281. package/dist/client/assets/CompositeItem-B4ITmHni.js +0 -1
  282. package/dist/client/assets/CompositeRoot-C5I2Yh5e.js +0 -1
  283. package/dist/client/assets/ConnectionsSettings-4l-DXYo6.js +0 -7
  284. package/dist/client/assets/DiagnosticsSettings-B6IUUiYM.js +0 -2
  285. package/dist/client/assets/DialogHandle-Bs7TUuxl.js +0 -1
  286. package/dist/client/assets/DialogPopup-BAK5J3da.js +0 -1
  287. package/dist/client/assets/DialogRoot-DMnQO_iQ.js +0 -1
  288. package/dist/client/assets/DialogTitle-B1m3rLO-.js +0 -1
  289. package/dist/client/assets/DialogTrigger-VXV8wYO4.js +0 -1
  290. package/dist/client/assets/DialogViewport-yUeHNu43.js +0 -1
  291. package/dist/client/assets/DraftChatThreadRouteView-C39ZNgWr.js +0 -1
  292. package/dist/client/assets/HostedConnectionControls-DO5uPfav.js +0 -1
  293. package/dist/client/assets/HostedHubRoot-DkHX6TkK.js +0 -1
  294. package/dist/client/assets/HostedNativeAuthorizationRoute-C1VRYU0-.js +0 -1
  295. package/dist/client/assets/HostedRelayTrustNotice-Cl7lRwRJ.js +0 -1
  296. package/dist/client/assets/Icons-uMh1k5C0.js +0 -1
  297. package/dist/client/assets/IntegrationsSettingsPanel-Mx-1xSUL.js +0 -1
  298. package/dist/client/assets/KeybindingsSettings-Bv3H18VO.js +0 -7
  299. package/dist/client/assets/MobileSheet-DS7_soKu.js +0 -1
  300. package/dist/client/assets/NewWorktreeDialog-CLm1JR27.js +0 -4
  301. package/dist/client/assets/NoActiveThreadState-CFxNrhs_.js +0 -1
  302. package/dist/client/assets/NodeSecuritySettings-B3uURyma.js +0 -1
  303. package/dist/client/assets/OpinionatedPluginsSettings-B7gZOBCs.js +0 -1
  304. package/dist/client/assets/PhoneGetAppInterstitial-DQdUrqs1.js +0 -1
  305. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-DbRPU11Z.js +0 -1
  306. package/dist/client/assets/PhoneHome-BbZKBYb8.js +0 -1
  307. package/dist/client/assets/PhoneSettingsSurface-BJ8jDucY.js +0 -1
  308. package/dist/client/assets/ProjectFavicon-DHnstN4J.js +0 -1
  309. package/dist/client/assets/ProviderModelPicker-Ch69G0-0.js +0 -1
  310. package/dist/client/assets/ProvidersSettingsPanel-Dz-1od7X.js +0 -1
  311. package/dist/client/assets/RedactedSensitiveText-BORE69Ig.js +0 -1
  312. package/dist/client/assets/RootAppShell-DnesFYfo.js +0 -6
  313. package/dist/client/assets/RycoLetterMark-DDx_gBX-.js +0 -1
  314. package/dist/client/assets/SettingsDialog-CWK_H1sI.js +0 -1
  315. package/dist/client/assets/SettingsPanels-DxMEuovz.js +0 -3
  316. package/dist/client/assets/SettingsPanels.editor-D2gxvDPy.js +0 -1
  317. package/dist/client/assets/SourceControlSettings-CB2SdaRk.js +0 -1
  318. package/dist/client/assets/StatisticsPage-MhMDuSSQ.js +0 -1
  319. package/dist/client/assets/StatisticsPanel-D3d0bJgk.js +0 -1
  320. package/dist/client/assets/StatisticsSettingsLink-DlnQpfyr.js +0 -1
  321. package/dist/client/assets/ThreadStatusIndicators-CPpIFcAC.js +0 -0
  322. package/dist/client/assets/ThreadWorkspacePanel-Ct9EINsa.js +0 -2009
  323. package/dist/client/assets/ToolbarRootContext-DtUqN8i6.js +0 -1
  324. package/dist/client/assets/alert-DQjuri3D.js +0 -1
  325. package/dist/client/assets/alert-dialog-Cb2TnXzy.js +0 -1
  326. package/dist/client/assets/arrow-left-Dtj9PfsA.js +0 -1
  327. package/dist/client/assets/arrow-up-right-DGeet8e6.js +0 -1
  328. package/dist/client/assets/authorization-BrGZruGo.js +0 -1
  329. package/dist/client/assets/branding-BEx1jrAA.js +0 -1
  330. package/dist/client/assets/capabilities-Cj8jXZOW.js +0 -1
  331. package/dist/client/assets/chatThreadActions-kwD_yAEt.js +0 -1
  332. package/dist/client/assets/chevron-right-BWYGybX9.js +0 -1
  333. package/dist/client/assets/clock-3-r12DkpRj.js +0 -1
  334. package/dist/client/assets/clock-nNA05brA.js +0 -1
  335. package/dist/client/assets/collapsible-DBPd--L7.js +0 -1
  336. package/dist/client/assets/command-DuPvkUAz.js +0 -1
  337. package/dist/client/assets/composerDraftStore-czbuHgbM.js +0 -11
  338. package/dist/client/assets/data-list-BNy2Nwkd.js +0 -1
  339. package/dist/client/assets/desktopUpdateAtoms-Dz4zQu-C.js +0 -1
  340. package/dist/client/assets/desktopWorkspace-wrPRMcOi.js +0 -1
  341. package/dist/client/assets/device-DbMaLmeM.js +0 -168
  342. package/dist/client/assets/dialog-Csp7hsmq.js +0 -1
  343. package/dist/client/assets/draft-input-COB-ymgx.js +0 -1
  344. package/dist/client/assets/editorPreferences-lQ3Fm4yA.js +0 -1
  345. package/dist/client/assets/empty-BcTA7vWq.js +0 -1
  346. package/dist/client/assets/env-BZZxbmon.js +0 -1
  347. package/dist/client/assets/folder-open-GqwNTbSV.js +0 -1
  348. package/dist/client/assets/getPseudoElementBounds-BaLrkv_J.js +0 -1
  349. package/dist/client/assets/group-CCjhaP2K.js +0 -1
  350. package/dist/client/assets/input-pu0UXdN_.js +0 -1
  351. package/dist/client/assets/kbd-xUvRCeUS.js +0 -1
  352. package/dist/client/assets/label-BzDE8wjR.js +0 -1
  353. package/dist/client/assets/loader-circle-CrtHFAvM.js +0 -1
  354. package/dist/client/assets/main-CZzCxtM-.css +0 -2
  355. package/dist/client/assets/main-stppnsiU.js +0 -9
  356. package/dist/client/assets/menu-g3Hcm2JF.js +0 -1
  357. package/dist/client/assets/plus-B2h-VEqh.js +0 -1
  358. package/dist/client/assets/popover-z5hURYff.js +0 -1
  359. package/dist/client/assets/primary-AnB-Zuft.js +0 -2
  360. package/dist/client/assets/providerDriverMeta-C9M8tUrj.js +0 -1
  361. package/dist/client/assets/providerIconUtils-BXecnJ0v.js +0 -1
  362. package/dist/client/assets/providerInstances-CMy-5cGE.js +0 -1
  363. package/dist/client/assets/providerModels-CMy-5cGE.js +0 -1
  364. package/dist/client/assets/qr-code-B6lBPRxy.js +0 -1
  365. package/dist/client/assets/radio-group-DQahlnSi.js +0 -2
  366. package/dist/client/assets/resolveAriaLabelledBy-CUqcBhyS.js +0 -1
  367. package/dist/client/assets/rightPanelRouteSearch-uEySicf2.js +0 -1
  368. package/dist/client/assets/runtime-DRPzstwF.js +0 -1
  369. package/dist/client/assets/scroll-area-CzUrMo2h.js +0 -1
  370. package/dist/client/assets/scrollEdges-C5VxoJIp.js +0 -1
  371. package/dist/client/assets/search-BGQsenCM.js +0 -1
  372. package/dist/client/assets/select-_C7bRT7k.js +0 -1
  373. package/dist/client/assets/separator-CFUmZFfK.js +0 -1
  374. package/dist/client/assets/session-logic-C5moG_sv.js +0 -4
  375. package/dist/client/assets/settingsDialogStore-DnU14tMG.js +0 -1
  376. package/dist/client/assets/settingsLayout-zwP6p5aD.js +0 -1
  377. package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +0 -1
  378. package/dist/client/assets/sheet-BoROLwxR.js +0 -1
  379. package/dist/client/assets/sidebar-5T3qKIfp.js +0 -1
  380. package/dist/client/assets/sidebarProjectFolders-Bzdw3xc6.js +0 -4
  381. package/dist/client/assets/skeleton-C2GDOvXd.js +0 -1
  382. package/dist/client/assets/spinner-Dlyh0j_K.js +0 -1
  383. package/dist/client/assets/src-Blzsn4sO.js +0 -14
  384. package/dist/client/assets/storeSelectors-BJw1h5Ih.js +0 -1
  385. package/dist/client/assets/switch-CIMwetO3.js +0 -1
  386. package/dist/client/assets/terminal-C_CyIsDD.js +0 -1
  387. package/dist/client/assets/textarea-C0_BLJbT.js +0 -1
  388. package/dist/client/assets/threadPinning-DQrBoIxu.js +0 -1
  389. package/dist/client/assets/toast-D7IDKuLa.js +0 -1
  390. package/dist/client/assets/toggle-DjmkdNns.js +0 -1
  391. package/dist/client/assets/toggle-group-q7LGJy7u.js +0 -1
  392. package/dist/client/assets/tooltip-c9oahm_e.js +0 -1
  393. package/dist/client/assets/types-BJw1h5Ih.js +0 -1
  394. package/dist/client/assets/uiStateStore-C48VlkZ2.js +0 -1
  395. package/dist/client/assets/useButton-CbjUY1n3.js +0 -1
  396. package/dist/client/assets/useCompositeListItem-Mh9CnfjW.js +0 -1
  397. package/dist/client/assets/useDebouncedValue-fMFxXx4-.js +0 -1
  398. package/dist/client/assets/useFloatingRootContext-P6J9bP_1.js +0 -1
  399. package/dist/client/assets/useHandleNewThread-C1VSk4Ji.js +0 -1
  400. package/dist/client/assets/useLabelableId-ve_G1Djw.js +0 -1
  401. package/dist/client/assets/useLocation-LUorHj6V.js +0 -1
  402. package/dist/client/assets/useOpenInteractionType-BcwkVFGu.js +0 -1
  403. package/dist/client/assets/usePhoneThreadActions--SRv1Gdm.js +0 -1
  404. package/dist/client/assets/usePopupViewport-DyXMbxzY.js +0 -1
  405. package/dist/client/assets/useRenderElement-DchFnsR8.js +0 -1
  406. package/dist/client/assets/useScrollLock-DvPB4gyu.js +0 -1
  407. package/dist/client/assets/useSwipeDismiss-8zZC4ynu.js +0 -1
  408. package/dist/client/assets/useThreadActions-wbcN8Mp3.js +0 -2
  409. package/dist/client/assets/useTriggerFocusGuards-DI2oAYh0.js +0 -1
  410. package/dist/client/assets/useValueChanged-DeYQvzxH.js +0 -1
  411. package/dist/client/assets/user-round-Cpzx8pSw.js +0 -1
  412. package/dist/client/assets/utils-Dz7wQZDk.js +0 -1
  413. package/dist/client/assets/visibilityPolling-BwzZdaSN.js +0 -1
  414. package/dist/client/assets/x-C1Cemsov.js +0 -1
@@ -262,8 +262,10 @@ const ExecutionEnvironmentPlatform = effect.Schema.Struct({
262
262
  });
263
263
  const ExecutionEnvironmentCapabilities = effect.Schema.Struct({
264
264
  repositoryIdentity: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
265
+ threadSnooze: effect.Schema.optional(effect.Schema.Boolean),
265
266
  threadSettlement: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
266
- threadPriorityRanking: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false)))
267
+ threadPriorityRanking: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
268
+ fileAttachments: effect.Schema.optional(effect.Schema.Struct({ maxUploadBytes: NonNegativeInt }))
267
269
  });
268
270
  const ExecutionEnvironmentDescriptor = effect.Schema.Struct({
269
271
  environmentId: EnvironmentId$1,
@@ -365,6 +367,7 @@ const AdvertisedEndpoint = effect.Schema.Struct({
365
367
  isDefault: effect.Schema.optional(effect.Schema.Boolean),
366
368
  description: effect.Schema.optional(TrimmedNonEmptyString)
367
369
  });
370
+ const RELAY_E2EE_CAPABILITY_STATEMENT_MAX_BYTES = 5190;
368
371
  const RELAY_MAX_CONTROL_FRAME_BYTES = 262144;
369
372
  const RELAY_MAX_DATA_CHUNK_BYTES = 262144;
370
373
  const RELAY_MAX_DATA_FRAME_OVERHEAD_BYTES = 1024;
@@ -427,7 +430,11 @@ const RELAY_FRAME_TYPES = [
427
430
  "channel.close",
428
431
  "ping",
429
432
  "pong",
430
- "error"
433
+ "error",
434
+ "node.e2ee.statement",
435
+ "node.e2ee.statement.ack",
436
+ "e2ee.verifier-keys",
437
+ "e2ee.enrollment-revoked"
431
438
  ];
432
439
  const RELAY_PROTOCOL_ERROR_CODES = [
433
440
  "invalid_encoding",
@@ -438,7 +445,7 @@ const RELAY_PROTOCOL_ERROR_CODES = [
438
445
  ...RELAY_CLOSE_REASONS
439
446
  ];
440
447
  const UInt16 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(65535));
441
- const UInt32 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(4294967295));
448
+ const UInt32$1 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(4294967295));
442
449
  const RetryAfterMs = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(RELAY_MAX_RETRY_AFTER_MS));
443
450
  const ProtocolFields = {
444
451
  protocolMajor: UInt16,
@@ -457,11 +464,25 @@ const RelayEffectiveRole = effect.Schema.Literals([
457
464
  const RelayProtocolErrorCode = effect.Schema.Literals(RELAY_PROTOCOL_ERROR_CODES);
458
465
  const RelayNodeId = effect.Schema.String.check(effect.Schema.isPattern(/^node_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48)).pipe(effect.Schema.brand("RelayNodeId"));
459
466
  const RelayChannelId = effect.Schema.String.check(effect.Schema.isPattern(/^ch_[A-Za-z0-9_-]{22}$/), effect.Schema.isMaxLength(25)).pipe(effect.Schema.brand("RelayChannelId"));
460
- const RelaySequence = UInt32.pipe(effect.Schema.brand("RelaySequence"));
467
+ const NativeE2eeEnrollmentId = effect.Schema.String.check(effect.Schema.isPattern(/^enr_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(47)).pipe(effect.Schema.brand("NativeE2eeEnrollmentId"));
468
+ const HubGrantVerificationKeyId = effect.Schema.String.check(effect.Schema.isPattern(/^hgk_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(47)).pipe(effect.Schema.brand("HubGrantVerificationKeyId"));
469
+ const RelayTicketId = effect.Schema.String.check(effect.Schema.isPattern(/^rtk_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(47)).pipe(effect.Schema.brand("RelayTicketId"));
470
+ const NativeE2eeEnrollmentRevision = UInt32$1.check(effect.Schema.isGreaterThanOrEqualTo(1)).pipe(effect.Schema.brand("NativeE2eeEnrollmentRevision"));
471
+ const E2eeAuthorizationEpoch = UInt32$1.pipe(effect.Schema.brand("E2eeAuthorizationEpoch"));
472
+ const E2eeKeysetGeneration = UInt32$1.pipe(effect.Schema.brand("E2eeKeysetGeneration"));
473
+ const RelayConnectorGeneration = UInt32$1.pipe(effect.Schema.brand("RelayConnectorGeneration"));
474
+ const RelaySequence = UInt32$1.pipe(effect.Schema.brand("RelaySequence"));
461
475
  const RelayHeartbeatNonce = boundedBytes(8, 8);
462
476
  const RelayAuthenticationNonce = boundedBytes(32, 32);
463
477
  const RelaySignatureMaterial = boundedBytes(64, 512);
464
478
  const RelayTicketMaterial = boundedBytes(32, 64);
479
+ const RelayE2eeDigest = boundedBytes(32, 32).pipe(effect.Schema.brand("RelayE2eeDigest"));
480
+ const RelayAccountGrantContext = effect.Schema.Tuple([
481
+ effect.Schema.Literal(2),
482
+ RelayTicketId,
483
+ RelayE2eeDigest,
484
+ RelayE2eeDigest
485
+ ]);
465
486
  const RelayLimits = effect.Schema.Struct({
466
487
  maxControlFrameBytes: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(RELAY_MIN_CONTROL_FRAME_BYTES), effect.Schema.isLessThanOrEqualTo(RELAY_MAX_CONTROL_FRAME_BYTES)),
467
488
  maxDataChunkBytes: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(RELAY_MIN_DATA_CHUNK_BYTES), effect.Schema.isLessThanOrEqualTo(RELAY_MAX_DATA_CHUNK_BYTES)),
@@ -490,7 +511,11 @@ const minorVersionSupportsCloseReason = (protocolMinor, reason) => reason === vo
490
511
  const minorVersionSupportsAuthorizedChannel = (input) => {
491
512
  const hasCapability = input.capability !== void 0;
492
513
  const hasEffectiveRole = input.effectiveRole !== void 0;
493
- if (input.protocolMinor >= 2) return hasCapability && hasEffectiveRole ? void 0 : "protocol minor version 2 or newer requires channel authorization metadata";
514
+ if (input.accountGrantContext !== void 0 && input.protocolMinor < 3) return "account grant context requires protocol minor version 3 or newer";
515
+ if (input.protocolMinor >= 2) {
516
+ if (!hasCapability || !hasEffectiveRole) return "protocol minor version 2 or newer requires channel authorization metadata";
517
+ return;
518
+ }
494
519
  return !hasCapability && !hasEffectiveRole ? void 0 : "channel authorization metadata requires protocol minor version 2 or newer";
495
520
  };
496
521
  const RelayNodeAuthHandshake = effect.Schema.Struct({
@@ -518,8 +543,43 @@ const RelayChannelOpenFrame = effect.Schema.Struct({
518
543
  ...ProtocolFields,
519
544
  channelId: RelayChannelId,
520
545
  capability: effect.Schema.optionalKey(RelayCapability),
521
- effectiveRole: effect.Schema.optionalKey(RelayEffectiveRole)
546
+ effectiveRole: effect.Schema.optionalKey(RelayEffectiveRole),
547
+ accountGrantContext: effect.Schema.optionalKey(RelayAccountGrantContext)
522
548
  }).check(effect.Schema.makeFilter(minorVersionSupportsAuthorizedChannel));
549
+ const minor3Frame = (fields) => effect.Schema.Struct({
550
+ ...fields,
551
+ ...ProtocolFields
552
+ }).check(effect.Schema.makeFilter((frame) => frame.protocolMinor >= 3 ? void 0 : "frame requires protocol minor version 3 or newer"));
553
+ const RelayNodeE2eeStatementFrame = minor3Frame({
554
+ type: effect.Schema.Literal("node.e2ee.statement"),
555
+ connectorGeneration: RelayConnectorGeneration,
556
+ statement: boundedBytes(1, RELAY_E2EE_CAPABILITY_STATEMENT_MAX_BYTES),
557
+ statementDigest: RelayE2eeDigest,
558
+ expiresAt: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER))
559
+ });
560
+ const RelayNodeE2eeStatementAckFrame = minor3Frame({
561
+ type: effect.Schema.Literal("node.e2ee.statement.ack"),
562
+ connectorGeneration: RelayConnectorGeneration,
563
+ statementDigest: RelayE2eeDigest
564
+ });
565
+ const RelayHubGrantVerificationKey = effect.Schema.Struct({
566
+ keyId: HubGrantVerificationKeyId,
567
+ publicKey: boundedBytes(32, 32),
568
+ notBefore: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)),
569
+ notAfter: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER))
570
+ }).check(effect.Schema.makeFilter((key) => key.notAfter > key.notBefore ? void 0 : "notAfter must be after notBefore"));
571
+ const RelayE2eeVerifierKeysFrame = minor3Frame({
572
+ type: effect.Schema.Literal("e2ee.verifier-keys"),
573
+ generation: E2eeKeysetGeneration,
574
+ keys: effect.Schema.Array(RelayHubGrantVerificationKey).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(4), effect.Schema.makeFilter((keys) => new Set(keys.map((key) => key.keyId)).size === keys.length ? void 0 : "grant verification key ids must be distinct"))
575
+ });
576
+ const RelayE2eeEnrollmentRevokedFrame = minor3Frame({
577
+ type: effect.Schema.Literal("e2ee.enrollment-revoked"),
578
+ enrollmentId: NativeE2eeEnrollmentId,
579
+ enrollmentRevision: NativeE2eeEnrollmentRevision,
580
+ accountAuthEpoch: E2eeAuthorizationEpoch,
581
+ deviceAuthEpoch: E2eeAuthorizationEpoch
582
+ });
523
583
  const RelayChannelAcceptFrame = effect.Schema.Struct({
524
584
  type: effect.Schema.Literal("channel.accept"),
525
585
  ...ProtocolFields,
@@ -573,7 +633,7 @@ const RelaySupportedVersionRange = effect.Schema.Struct({
573
633
  const RELAY_SUPPORTED_VERSION_RANGE = RelaySupportedVersionRange.make({
574
634
  protocolMajor: 1,
575
635
  minimumMinor: 0,
576
- maximumMinor: 2
636
+ maximumMinor: 3
577
637
  });
578
638
  const RelayErrorFrame = effect.Schema.Struct({
579
639
  type: effect.Schema.Literal("error"),
@@ -604,7 +664,11 @@ const RelayControlFrame = effect.Schema.Union([
604
664
  RelayChannelCloseFrame,
605
665
  RelayPingFrame,
606
666
  RelayPongFrame,
607
- RelayErrorFrame
667
+ RelayErrorFrame,
668
+ RelayNodeE2eeStatementFrame,
669
+ RelayNodeE2eeStatementAckFrame,
670
+ RelayE2eeVerifierKeysFrame,
671
+ RelayE2eeEnrollmentRevokedFrame
608
672
  ]);
609
673
  const RelayFrame = effect.Schema.Union([RelayControlFrame, RelayDataFrame]);
610
674
  //#endregion
@@ -660,7 +724,7 @@ const HubConnectorStatus = effect.Schema.Struct({
660
724
  if (status.state === "degraded" && status.degradedMode === void 0) return "degraded status requires degradedMode";
661
725
  if (status.state !== "degraded" && status.degradedMode !== void 0) return "degradedMode is allowed only for degraded status";
662
726
  if (status.state === "online") {
663
- if (status.protocolMajor !== 1 || status.protocolMinor !== 2) return "online status requires the supported relay protocol";
727
+ if (status.protocolMajor !== 1 || status.protocolMinor === void 0 || status.protocolMinor < 2 || status.protocolMinor > 3) return "online status requires the supported relay protocol";
664
728
  } else if (status.protocolMajor !== void 0 || status.protocolMinor !== void 0) return "protocol is exposed only while online";
665
729
  if (status.nextRetryAt !== void 0 && status.degradedMode !== "backing_off") return "nextRetryAt requires backing_off";
666
730
  if (status.state !== "online" && status.activeChannels !== 0) return "active channels require online status";
@@ -731,16 +795,16 @@ const HubEnrollmentStartResult = effect.Schema.Struct({
731
795
  ...HubEnrollmentCeremonyDetail.fields
732
796
  });
733
797
  const HOSTED_IDENTITY_MAX_ANTI_BOT_ASSERTION_CHARS = 8192;
734
- const strict$3 = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
735
- const EpochMs$1 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0));
798
+ const strict$4 = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
799
+ const EpochMs$2 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0));
736
800
  const Opaque256 = effect.Schema.String.check(effect.Schema.isMinLength(43), effect.Schema.isMaxLength(43), effect.Schema.isPattern(/^[A-Za-z0-9_-]{43}$/));
737
- const AccountId$1 = effect.Schema.String.check(effect.Schema.isPattern(/^acct_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48));
801
+ const HubAccountId = effect.Schema.String.check(effect.Schema.isPattern(/^acct_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48));
738
802
  const SessionId$1 = effect.Schema.String.check(effect.Schema.isPattern(/^sess_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48));
739
803
  const BoundedDisplayName = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(200));
740
804
  const BoundedSpaceDisplayName = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(100));
741
805
  const BoundedPassword = effect.Schema.String.check(effect.Schema.isMinLength(12), effect.Schema.isMaxLength(256));
742
806
  const AntiBotAssertion = effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(HOSTED_IDENTITY_MAX_ANTI_BOT_ASSERTION_CHARS));
743
- const IdempotencyKey = Opaque256.pipe(effect.Schema.brand("HostedIdentityIdempotencyKey"));
807
+ const IdempotencyKey$1 = Opaque256.pipe(effect.Schema.brand("HostedIdentityIdempotencyKey"));
744
808
  const SignupAttemptSecret = Opaque256.pipe(effect.Schema.brand("PublicSignupAttemptSecret"));
745
809
  const SignupActivationSecret = Opaque256.pipe(effect.Schema.brand("PublicSignupActivationSecret"));
746
810
  const PasswordLoginAttemptSecret = Opaque256.pipe(effect.Schema.brand("PasswordLoginAttemptSecret"));
@@ -753,10 +817,10 @@ const MailToken = Opaque256.pipe(effect.Schema.brand("HostedIdentityMailToken"))
753
817
  const EmailCode = effect.Schema.String.check(effect.Schema.isPattern(/^[0-9]{6}$/));
754
818
  const TotpCode = effect.Schema.String.check(effect.Schema.isPattern(/^[0-9]{6}$/));
755
819
  const JsonObject = effect.Schema.Unknown.check(effect.Schema.makeFilter((value) => typeof value === "object" && value !== null && !Array.isArray(value) ? void 0 : "value must be an object"));
756
- const strictTimed = (fields) => strict$3(effect.Schema.Struct({
820
+ const strictTimed = (fields) => strict$4(effect.Schema.Struct({
757
821
  ...fields,
758
- issuedAt: EpochMs$1,
759
- expiresAt: EpochMs$1
822
+ issuedAt: EpochMs$2,
823
+ expiresAt: EpochMs$2
760
824
  }).check(effect.Schema.makeFilter((value) => {
761
825
  const timed = value;
762
826
  return timed.expiresAt > timed.issuedAt ? void 0 : "expiresAt must be after issuedAt";
@@ -774,14 +838,14 @@ const HubNormalizedEmail = effect.Schema.String.check(effect.Schema.isMinLength(
774
838
  const HubLoginIdentifier = effect.Schema.Union([HubUsername, HubNormalizedEmail]).pipe(effect.Schema.brand("HubLoginIdentifier"));
775
839
  const PublicSignupTurnstileSiteKey = effect.Schema.String.check(effect.Schema.isMinLength(10), effect.Schema.isMaxLength(128), effect.Schema.isPattern(/^[A-Za-z0-9_-]+$/));
776
840
  effect.Schema.Union([
777
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("disabled") })),
778
- strict$3(effect.Schema.Struct({
841
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("disabled") })),
842
+ strict$4(effect.Schema.Struct({
779
843
  status: effect.Schema.Literal("enabled"),
780
- antiBot: strict$3(effect.Schema.Struct({ provider: effect.Schema.Literal("bypass") }))
844
+ antiBot: strict$4(effect.Schema.Struct({ provider: effect.Schema.Literal("bypass") }))
781
845
  })),
782
- strict$3(effect.Schema.Struct({
846
+ strict$4(effect.Schema.Struct({
783
847
  status: effect.Schema.Literal("enabled"),
784
- antiBot: strict$3(effect.Schema.Struct({
848
+ antiBot: strict$4(effect.Schema.Struct({
785
849
  provider: effect.Schema.Literal("turnstile"),
786
850
  siteKey: PublicSignupTurnstileSiteKey
787
851
  }))
@@ -789,21 +853,21 @@ effect.Schema.Union([
789
853
  ]);
790
854
  const ExternalIdentityProvider = effect.Schema.Literal("github");
791
855
  const ExternalIdentityLogin = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(100), effect.Schema.isPattern(/^[A-Za-z0-9-]+$/));
792
- const ExternalIdentitySummary = strict$3(effect.Schema.Struct({
856
+ const ExternalIdentitySummary = strict$4(effect.Schema.Struct({
793
857
  provider: ExternalIdentityProvider,
794
858
  login: ExternalIdentityLogin,
795
859
  displayName: effect.Schema.NullOr(BoundedDisplayName),
796
- connectedAt: EpochMs$1,
797
- lastUsedAt: effect.Schema.NullOr(EpochMs$1)
860
+ connectedAt: EpochMs$2,
861
+ lastUsedAt: effect.Schema.NullOr(EpochMs$2)
798
862
  }).check(effect.Schema.makeFilter((value) => value.lastUsedAt === null || value.lastUsedAt >= value.connectedAt ? void 0 : "lastUsedAt must not precede connectedAt")));
799
- const ExternalIdentityProviderPolicy = strict$3(effect.Schema.Struct({
863
+ const ExternalIdentityProviderPolicy = strict$4(effect.Schema.Struct({
800
864
  provider: ExternalIdentityProvider,
801
865
  login: effect.Schema.Literal(true),
802
866
  signup: effect.Schema.Boolean,
803
867
  link: effect.Schema.Literal(true)
804
868
  }));
805
869
  const ExternalIdentityProviders = effect.Schema.Array(ExternalIdentityProviderPolicy).check(effect.Schema.isMaxLength(1), effect.Schema.makeFilter((providers) => new Set(providers.map((provider) => provider.provider)).size === providers.length ? void 0 : "external identity providers must be unique"));
806
- strict$3(effect.Schema.Struct({
870
+ strict$4(effect.Schema.Struct({
807
871
  version: effect.Schema.Literal(1),
808
872
  providers: ExternalIdentityProviders
809
873
  }));
@@ -823,14 +887,14 @@ const GitHubAuthorizationUrl = effect.Schema.String.check(effect.Schema.isNonEmp
823
887
  return "authorization URL must be absolute";
824
888
  }
825
889
  }));
826
- strict$3(effect.Schema.Struct({
890
+ strict$4(effect.Schema.Struct({
827
891
  provider: ExternalIdentityProvider,
828
892
  intent: effect.Schema.Literals(["authenticate", "link"]),
829
893
  returnTo: effect.Schema.optionalKey(ExternalIdentityReturnPath)
830
894
  }));
831
- strict$3(effect.Schema.Struct({
895
+ strict$4(effect.Schema.Struct({
832
896
  authorizationUrl: GitHubAuthorizationUrl,
833
- expiresAt: EpochMs$1
897
+ expiresAt: EpochMs$2
834
898
  }));
835
899
  const ExternalIdentityPendingErrorCode = effect.Schema.Literals([
836
900
  "external_provider_unavailable",
@@ -843,72 +907,72 @@ const ExternalIdentityPendingErrorCode = effect.Schema.Literals([
843
907
  "username_unavailable"
844
908
  ]);
845
909
  effect.Schema.Union([
846
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("none") })),
847
- strict$3(effect.Schema.Struct({
910
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("none") })),
911
+ strict$4(effect.Schema.Struct({
848
912
  status: effect.Schema.Literal("signup"),
849
913
  provider: ExternalIdentityProvider,
850
914
  suggestedUsername: effect.Schema.NullOr(HubUsername),
851
915
  displayName: effect.Schema.NullOr(BoundedDisplayName),
852
- expiresAt: EpochMs$1
916
+ expiresAt: EpochMs$2
853
917
  })),
854
- strict$3(effect.Schema.Struct({
918
+ strict$4(effect.Schema.Struct({
855
919
  status: effect.Schema.Literal("link"),
856
920
  externalIdentity: ExternalIdentitySummary,
857
- expiresAt: EpochMs$1
921
+ expiresAt: EpochMs$2
858
922
  })),
859
- strict$3(effect.Schema.Struct({
923
+ strict$4(effect.Schema.Struct({
860
924
  status: effect.Schema.Literal("error"),
861
925
  provider: ExternalIdentityProvider,
862
926
  code: ExternalIdentityPendingErrorCode
863
927
  }))
864
928
  ]);
865
- strict$3(effect.Schema.Struct({
929
+ strict$4(effect.Schema.Struct({
866
930
  provider: ExternalIdentityProvider,
867
931
  username: HubUsername,
868
932
  antiBotAssertion: AntiBotAssertion,
869
- idempotencyKey: IdempotencyKey
933
+ idempotencyKey: IdempotencyKey$1
870
934
  }));
871
- strict$3(effect.Schema.Struct({ totpCode: effect.Schema.optionalKey(TotpCode) }));
872
- strict$3(effect.Schema.Struct({
935
+ strict$4(effect.Schema.Struct({ totpCode: effect.Schema.optionalKey(TotpCode) }));
936
+ strict$4(effect.Schema.Struct({
873
937
  status: effect.Schema.Literal("connected"),
874
938
  externalIdentity: ExternalIdentitySummary
875
939
  }));
876
- strict$3(effect.Schema.Struct({ totpCode: effect.Schema.optionalKey(TotpCode) }));
877
- strict$3(effect.Schema.Struct({
940
+ strict$4(effect.Schema.Struct({ totpCode: effect.Schema.optionalKey(TotpCode) }));
941
+ strict$4(effect.Schema.Struct({
878
942
  status: effect.Schema.Literal("disconnected"),
879
943
  signedOut: effect.Schema.Boolean
880
944
  }));
881
945
  const ExternalIdentitySummaries = effect.Schema.Array(ExternalIdentitySummary).check(effect.Schema.isMaxLength(1), effect.Schema.makeFilter((identities) => new Set(identities.map((identity) => identity.provider)).size === identities.length ? void 0 : "external identity providers must be unique"));
882
- strict$3(effect.Schema.Struct({
946
+ strict$4(effect.Schema.Struct({
883
947
  passwordConfigured: effect.Schema.Boolean,
884
948
  totpEnrolled: effect.Schema.Boolean,
885
949
  emailDeliveryConfigured: effect.Schema.Boolean,
886
- email: effect.Schema.NullOr(strict$3(effect.Schema.Struct({
950
+ email: effect.Schema.NullOr(strict$4(effect.Schema.Struct({
887
951
  address: HubNormalizedEmail,
888
952
  verified: effect.Schema.Boolean
889
953
  }))),
890
954
  externalIdentities: ExternalIdentitySummaries
891
955
  }));
892
- const HubActiveSpaceSummary = strict$3(effect.Schema.Struct({
956
+ const HubActiveSpaceSummary = strict$4(effect.Schema.Struct({
893
957
  id: HubSpaceId,
894
958
  kind: HubSpaceKind,
895
959
  displayName: BoundedSpaceDisplayName,
896
960
  role: HubSpaceRole
897
961
  }));
898
- const HubPublicAccount = strict$3(effect.Schema.Struct({
899
- id: AccountId$1,
962
+ const HubPublicAccount = strict$4(effect.Schema.Struct({
963
+ id: HubAccountId,
900
964
  username: HubUsername,
901
965
  displayName: BoundedDisplayName,
902
- createdAt: EpochMs$1,
966
+ createdAt: EpochMs$2,
903
967
  disabledAt: effect.Schema.Null
904
968
  }));
905
- const HubPublicBrowserSession = strict$3(effect.Schema.Struct({
969
+ const HubPublicBrowserSession = strict$4(effect.Schema.Struct({
906
970
  id: SessionId$1,
907
- accountId: AccountId$1,
971
+ accountId: HubAccountId,
908
972
  activeSpaceId: HubSpaceId,
909
- createdAt: EpochMs$1,
910
- expiresAt: EpochMs$1,
911
- lastSeenAt: EpochMs$1,
973
+ createdAt: EpochMs$2,
974
+ expiresAt: EpochMs$2,
975
+ lastSeenAt: EpochMs$2,
912
976
  revokedAt: effect.Schema.Null,
913
977
  revocationReasonCode: effect.Schema.Null
914
978
  }).check(effect.Schema.makeFilter((session) => session.expiresAt > session.createdAt && session.lastSeenAt >= session.createdAt && session.lastSeenAt <= session.expiresAt ? void 0 : "browser session timestamps are inconsistent")));
@@ -926,11 +990,11 @@ function hubSessionIdentityConsistency(value) {
926
990
  const matches = value.spaces.filter((space) => space.id === value.activeSpace.id);
927
991
  return matches.length === 1 && matches[0]?.role === value.activeSpace.role ? void 0 : "active space must appear exactly once in spaces";
928
992
  }
929
- const HubBrowserSessionResponse = strict$3(effect.Schema.Struct({
993
+ const HubBrowserSessionResponse = strict$4(effect.Schema.Struct({
930
994
  ...HubSessionIdentityFields,
931
995
  csrfToken: effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(4096))
932
996
  }).check(effect.Schema.makeFilter(hubSessionIdentityConsistency)));
933
- const HubSessionIdentity = strict$3(effect.Schema.Struct(HubSessionIdentityFields).check(effect.Schema.makeFilter(hubSessionIdentityConsistency)));
997
+ const HubSessionIdentity = strict$4(effect.Schema.Struct(HubSessionIdentityFields).check(effect.Schema.makeFilter(hubSessionIdentityConsistency)));
934
998
  const NativeIdentityAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^nident_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(50)).pipe(effect.Schema.brand("NativeIdentityAttemptId"));
935
999
  const NativeIdentityLoginAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^nlogin_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(50)).pipe(effect.Schema.brand("NativeIdentityLoginAttemptId"));
936
1000
  const NativeIdentityResetAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^nreset_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(50)).pipe(effect.Schema.brand("NativeIdentityResetAttemptId"));
@@ -939,7 +1003,7 @@ const NativeIdentityTimedAttempt = {
939
1003
  attemptSecret: NativeIdentityAttemptSecret,
940
1004
  resendAfterMs: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(9e5))
941
1005
  };
942
- strict$3(effect.Schema.Struct({
1006
+ strict$4(effect.Schema.Struct({
943
1007
  email: HubNormalizedEmail,
944
1008
  antiBotAssertion: AntiBotAssertion
945
1009
  }));
@@ -947,14 +1011,14 @@ strictTimed({
947
1011
  status: effect.Schema.Literal("accepted"),
948
1012
  ...NativeIdentityTimedAttempt
949
1013
  });
950
- const NativeIdentityMailboxProof = effect.Schema.Union([strict$3(effect.Schema.Struct({
1014
+ const NativeIdentityMailboxProof = effect.Schema.Union([strict$4(effect.Schema.Struct({
951
1015
  kind: effect.Schema.Literal("link_token"),
952
1016
  token: MailToken
953
- })), strict$3(effect.Schema.Struct({
1017
+ })), strict$4(effect.Schema.Struct({
954
1018
  kind: effect.Schema.Literal("email_code"),
955
1019
  code: EmailCode
956
1020
  }))]);
957
- strict$3(effect.Schema.Struct({
1021
+ strict$4(effect.Schema.Struct({
958
1022
  attemptId: NativeIdentityAttemptId,
959
1023
  attemptSecret: NativeIdentityAttemptSecret,
960
1024
  proof: NativeIdentityMailboxProof
@@ -972,41 +1036,41 @@ const NativeIdentityActivation = {
972
1036
  attemptId: NativeIdentityAttemptId,
973
1037
  activationSecret: NativeIdentityActivationSecret
974
1038
  };
975
- strict$3(effect.Schema.Struct({
1039
+ strict$4(effect.Schema.Struct({
976
1040
  ...NativeIdentityActivation,
977
1041
  username: HubUsername
978
1042
  }));
979
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("claimed") }));
980
- strict$3(effect.Schema.Struct(NativeIdentityActivation));
981
- strict$3(effect.Schema.Struct({ options: JsonObject }));
982
- strict$3(effect.Schema.Struct({
1043
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("claimed") }));
1044
+ strict$4(effect.Schema.Struct(NativeIdentityActivation));
1045
+ strict$4(effect.Schema.Struct({ options: JsonObject }));
1046
+ strict$4(effect.Schema.Struct({
983
1047
  ...NativeIdentityActivation,
984
1048
  response: JsonObject,
985
- idempotencyKey: IdempotencyKey
1049
+ idempotencyKey: IdempotencyKey$1
986
1050
  }));
987
- strict$3(effect.Schema.Struct({
1051
+ strict$4(effect.Schema.Struct({
988
1052
  ...NativeIdentityActivation,
989
1053
  password: BoundedPassword,
990
- idempotencyKey: IdempotencyKey
1054
+ idempotencyKey: IdempotencyKey$1
991
1055
  }));
992
- strict$3(effect.Schema.Struct({
1056
+ strict$4(effect.Schema.Struct({
993
1057
  status: effect.Schema.Literal("complete"),
994
1058
  identity: HubSessionIdentity,
995
1059
  token: NativeIdentitySessionToken
996
1060
  }));
997
1061
  const NativeIdentityRecoveryCodes = effect.Schema.Array(effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(512))).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256));
998
- strict$3(effect.Schema.Struct({
1062
+ strict$4(effect.Schema.Struct({
999
1063
  status: effect.Schema.Literal("complete"),
1000
1064
  identity: HubSessionIdentity,
1001
1065
  token: NativeIdentitySessionToken,
1002
1066
  recoveryCodes: NativeIdentityRecoveryCodes
1003
1067
  }));
1004
- effect.Schema.Union([strict$3(effect.Schema.Struct({
1068
+ effect.Schema.Union([strict$4(effect.Schema.Struct({
1005
1069
  kind: effect.Schema.Literal("username"),
1006
1070
  username: HubUsername,
1007
1071
  password: BoundedPassword,
1008
1072
  antiBotAssertion: effect.Schema.optionalKey(AntiBotAssertion)
1009
- })), strict$3(effect.Schema.Struct({
1073
+ })), strict$4(effect.Schema.Struct({
1010
1074
  kind: effect.Schema.Literal("verified_email"),
1011
1075
  ...NativeIdentityActivation,
1012
1076
  password: BoundedPassword
@@ -1017,22 +1081,22 @@ strictTimed({
1017
1081
  attemptSecret: NativeIdentityAttemptSecret,
1018
1082
  factor: effect.Schema.Literals(["totp", "email_code"])
1019
1083
  });
1020
- effect.Schema.Union([strict$3(effect.Schema.Struct({
1084
+ effect.Schema.Union([strict$4(effect.Schema.Struct({
1021
1085
  attemptId: NativeIdentityLoginAttemptId,
1022
1086
  attemptSecret: NativeIdentityAttemptSecret,
1023
1087
  factor: effect.Schema.Literal("totp"),
1024
1088
  code: TotpCode
1025
- })), strict$3(effect.Schema.Struct({
1089
+ })), strict$4(effect.Schema.Struct({
1026
1090
  attemptId: NativeIdentityLoginAttemptId,
1027
1091
  attemptSecret: NativeIdentityAttemptSecret,
1028
1092
  factor: effect.Schema.Literal("email_code"),
1029
1093
  code: EmailCode
1030
1094
  }))]);
1031
- strict$3(effect.Schema.Struct({
1095
+ strict$4(effect.Schema.Struct({
1032
1096
  code: effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(512)),
1033
- idempotencyKey: IdempotencyKey
1097
+ idempotencyKey: IdempotencyKey$1
1034
1098
  }));
1035
- strict$3(effect.Schema.Struct({
1099
+ strict$4(effect.Schema.Struct({
1036
1100
  identifier: HubLoginIdentifier,
1037
1101
  antiBotAssertion: effect.Schema.optionalKey(AntiBotAssertion)
1038
1102
  }));
@@ -1042,7 +1106,7 @@ strictTimed({
1042
1106
  attemptSecret: NativeIdentityAttemptSecret,
1043
1107
  resendAfterMs: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(9e5))
1044
1108
  });
1045
- strict$3(effect.Schema.Struct({
1109
+ strict$4(effect.Schema.Struct({
1046
1110
  attemptId: NativeIdentityResetAttemptId,
1047
1111
  attemptSecret: NativeIdentityAttemptSecret,
1048
1112
  proof: NativeIdentityMailboxProof
@@ -1053,17 +1117,17 @@ strictTimed({
1053
1117
  resetSecret: NativeIdentityResetSecret,
1054
1118
  requiresTotp: effect.Schema.Boolean
1055
1119
  });
1056
- strict$3(effect.Schema.Struct({
1120
+ strict$4(effect.Schema.Struct({
1057
1121
  attemptId: NativeIdentityResetAttemptId,
1058
1122
  resetSecret: NativeIdentityResetSecret,
1059
1123
  password: BoundedPassword,
1060
- factor: effect.Schema.Union([strict$3(effect.Schema.Struct({ kind: effect.Schema.Literal("none") })), strict$3(effect.Schema.Struct({
1124
+ factor: effect.Schema.Union([strict$4(effect.Schema.Struct({ kind: effect.Schema.Literal("none") })), strict$4(effect.Schema.Struct({
1061
1125
  kind: effect.Schema.Literal("totp"),
1062
1126
  code: TotpCode
1063
1127
  }))])
1064
1128
  }));
1065
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("complete") }));
1066
- strict$3(effect.Schema.Struct({
1129
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("complete") }));
1130
+ strict$4(effect.Schema.Struct({
1067
1131
  attemptId: effect.Schema.Union([
1068
1132
  NativeIdentityAttemptId,
1069
1133
  NativeIdentityLoginAttemptId,
@@ -1071,9 +1135,9 @@ strict$3(effect.Schema.Struct({
1071
1135
  ]),
1072
1136
  attemptSecret: effect.Schema.Union([NativeIdentityAttemptSecret, NativeIdentityActivationSecret])
1073
1137
  }));
1074
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("cancelled") }));
1138
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("cancelled") }));
1075
1139
  const PublicSignupAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^signup_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(50)).pipe(effect.Schema.brand("PublicSignupAttemptId"));
1076
- strict$3(effect.Schema.Struct({
1140
+ strict$4(effect.Schema.Struct({
1077
1141
  username: HubUsername,
1078
1142
  email: HubNormalizedEmail,
1079
1143
  antiBotAssertion: AntiBotAssertion,
@@ -1085,14 +1149,14 @@ strictTimed({
1085
1149
  attemptSecret: SignupAttemptSecret,
1086
1150
  resendAfterMs: effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(9e5))
1087
1151
  });
1088
- const PublicSignupMailboxProof = effect.Schema.Union([strict$3(effect.Schema.Struct({
1152
+ const PublicSignupMailboxProof = effect.Schema.Union([strict$4(effect.Schema.Struct({
1089
1153
  kind: effect.Schema.Literal("link_token"),
1090
1154
  token: MailToken
1091
- })), strict$3(effect.Schema.Struct({
1155
+ })), strict$4(effect.Schema.Struct({
1092
1156
  kind: effect.Schema.Literal("email_code"),
1093
1157
  code: EmailCode
1094
1158
  }))]);
1095
- strict$3(effect.Schema.Struct({
1159
+ strict$4(effect.Schema.Struct({
1096
1160
  attemptId: PublicSignupAttemptId,
1097
1161
  attemptSecret: SignupAttemptSecret,
1098
1162
  proof: PublicSignupMailboxProof
@@ -1106,26 +1170,26 @@ const PublicSignupActivation = {
1106
1170
  attemptId: PublicSignupAttemptId,
1107
1171
  activationSecret: SignupActivationSecret
1108
1172
  };
1109
- strict$3(effect.Schema.Struct(PublicSignupActivation));
1110
- strict$3(effect.Schema.Struct({ options: JsonObject }));
1111
- strict$3(effect.Schema.Struct({
1173
+ strict$4(effect.Schema.Struct(PublicSignupActivation));
1174
+ strict$4(effect.Schema.Struct({ options: JsonObject }));
1175
+ strict$4(effect.Schema.Struct({
1112
1176
  ...PublicSignupActivation,
1113
1177
  response: JsonObject,
1114
- idempotencyKey: IdempotencyKey
1178
+ idempotencyKey: IdempotencyKey$1
1115
1179
  }));
1116
- strict$3(effect.Schema.Struct({
1180
+ strict$4(effect.Schema.Struct({
1117
1181
  ...PublicSignupActivation,
1118
1182
  password: BoundedPassword,
1119
- idempotencyKey: IdempotencyKey
1183
+ idempotencyKey: IdempotencyKey$1
1120
1184
  }));
1121
- strict$3(effect.Schema.Struct({
1185
+ strict$4(effect.Schema.Struct({
1122
1186
  status: effect.Schema.Literal("complete"),
1123
1187
  identity: HubBrowserSessionResponse,
1124
1188
  recoveryCodes: effect.Schema.Array(effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(512))).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256))
1125
1189
  }));
1126
1190
  const PasswordLoginAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^login_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(49)).pipe(effect.Schema.brand("PasswordLoginAttemptId"));
1127
1191
  const PasswordLoginFactor = effect.Schema.Literals(["totp", "email_code"]);
1128
- strict$3(effect.Schema.Struct({
1192
+ strict$4(effect.Schema.Struct({
1129
1193
  identifier: HubLoginIdentifier,
1130
1194
  password: BoundedPassword,
1131
1195
  antiBotAssertion: effect.Schema.optional(AntiBotAssertion)
@@ -1136,43 +1200,43 @@ strictTimed({
1136
1200
  attemptSecret: PasswordLoginAttemptSecret,
1137
1201
  factor: PasswordLoginFactor
1138
1202
  });
1139
- effect.Schema.Union([strict$3(effect.Schema.Struct({
1203
+ effect.Schema.Union([strict$4(effect.Schema.Struct({
1140
1204
  attemptId: PasswordLoginAttemptId,
1141
1205
  attemptSecret: PasswordLoginAttemptSecret,
1142
1206
  factor: effect.Schema.Literal("totp"),
1143
1207
  code: TotpCode
1144
- })), strict$3(effect.Schema.Struct({
1208
+ })), strict$4(effect.Schema.Struct({
1145
1209
  attemptId: PasswordLoginAttemptId,
1146
1210
  attemptSecret: PasswordLoginAttemptSecret,
1147
1211
  factor: effect.Schema.Literal("email_code"),
1148
1212
  code: EmailCode
1149
1213
  }))]);
1150
- strict$3(effect.Schema.Struct({
1214
+ strict$4(effect.Schema.Struct({
1151
1215
  identifier: HubLoginIdentifier,
1152
1216
  antiBotAssertion: effect.Schema.optional(AntiBotAssertion)
1153
1217
  }));
1154
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("accepted") }));
1218
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("accepted") }));
1155
1219
  const PasswordResetAttemptId = effect.Schema.String.check(effect.Schema.isPattern(/^reset_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(49)).pipe(effect.Schema.brand("PasswordResetAttemptId"));
1156
- strict$3(effect.Schema.Struct({ token: MailToken }));
1220
+ strict$4(effect.Schema.Struct({ token: MailToken }));
1157
1221
  strictTimed({
1158
1222
  status: effect.Schema.Literal("verified"),
1159
1223
  attemptId: PasswordResetAttemptId,
1160
1224
  attemptSecret: PasswordResetAttemptSecret,
1161
1225
  requiresTotp: effect.Schema.Boolean
1162
1226
  });
1163
- const PasswordResetFactor = effect.Schema.Union([strict$3(effect.Schema.Struct({ kind: effect.Schema.Literal("none") })), strict$3(effect.Schema.Struct({
1227
+ const PasswordResetFactor = effect.Schema.Union([strict$4(effect.Schema.Struct({ kind: effect.Schema.Literal("none") })), strict$4(effect.Schema.Struct({
1164
1228
  kind: effect.Schema.Literal("totp"),
1165
1229
  code: TotpCode
1166
1230
  }))]);
1167
- strict$3(effect.Schema.Struct({
1231
+ strict$4(effect.Schema.Struct({
1168
1232
  attemptId: PasswordResetAttemptId,
1169
1233
  attemptSecret: PasswordResetAttemptSecret,
1170
1234
  password: BoundedPassword,
1171
1235
  factor: PasswordResetFactor
1172
1236
  }));
1173
- strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("complete") }));
1174
- strict$3(effect.Schema.Struct({ spaceId: HubSpaceId }));
1175
- strict$3(effect.Schema.Struct({
1237
+ strict$4(effect.Schema.Struct({ status: effect.Schema.Literal("complete") }));
1238
+ strict$4(effect.Schema.Struct({ spaceId: HubSpaceId }));
1239
+ strict$4(effect.Schema.Struct({
1176
1240
  activeSpace: HubActiveSpaceSummary,
1177
1241
  spaces: HubSpaces
1178
1242
  }).check(effect.Schema.makeFilter((value) => {
@@ -1184,7 +1248,7 @@ const DesktopInstallationId = effect.Schema.String.check(effect.Schema.isPattern
1184
1248
  const NativeNodeClaimId = effect.Schema.String.check(effect.Schema.isPattern(/^nclaim_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(50)).pipe(effect.Schema.brand("NativeNodeClaimId"));
1185
1249
  const NativeNodeClaimEnvironmentId = effect.Schema.String.check(effect.Schema.isPattern(/^env_[A-Za-z0-9_-]{22}$/), effect.Schema.isMaxLength(26)).pipe(effect.Schema.brand("NativeNodeClaimEnvironmentId"));
1186
1250
  const NativeNodeClaimPublicKey = effect.Schema.String.check(effect.Schema.isMinLength(43), effect.Schema.isMaxLength(43), effect.Schema.isPattern(/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/)).pipe(effect.Schema.brand("NativeNodeClaimPublicKey"));
1187
- const NativeNodeClaimMetadata = strict$3(effect.Schema.Struct({
1251
+ const NativeNodeClaimMetadata = strict$4(effect.Schema.Struct({
1188
1252
  environmentId: NativeNodeClaimEnvironmentId,
1189
1253
  label: effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(100)),
1190
1254
  platformOs: effect.Schema.Literals([
@@ -1203,7 +1267,7 @@ const NativeNodeClaimMetadata = strict$3(effect.Schema.Struct({
1203
1267
  publicKey: NativeNodeClaimPublicKey,
1204
1268
  fingerprint: HubNodePublicKeyFingerprint
1205
1269
  }));
1206
- strict$3(effect.Schema.Struct({
1270
+ strict$4(effect.Schema.Struct({
1207
1271
  installationId: DesktopInstallationId,
1208
1272
  node: NativeNodeClaimMetadata
1209
1273
  }));
@@ -1212,7 +1276,7 @@ const NativeNodeClaimStartResponse = strictTimed({
1212
1276
  transcriptVersion: effect.Schema.Literal(1),
1213
1277
  claimId: NativeNodeClaimId,
1214
1278
  challenge: Opaque256,
1215
- accountId: AccountId$1,
1279
+ accountId: HubAccountId,
1216
1280
  spaceId: HubSpaceId,
1217
1281
  sessionId: SessionId$1,
1218
1282
  dpopKeyThumbprint: Opaque256,
@@ -1220,16 +1284,16 @@ const NativeNodeClaimStartResponse = strictTimed({
1220
1284
  environmentId: NativeNodeClaimEnvironmentId,
1221
1285
  nodeFingerprint: HubNodePublicKeyFingerprint
1222
1286
  });
1223
- strict$3(effect.Schema.Struct({
1287
+ strict$4(effect.Schema.Struct({
1224
1288
  claimId: NativeNodeClaimId,
1225
1289
  challenge: Opaque256,
1226
1290
  signature: effect.Schema.String.check(effect.Schema.isMinLength(86), effect.Schema.isMaxLength(86), effect.Schema.isPattern(/^[A-Za-z0-9_-]{85}[AQgw]$/)),
1227
- idempotencyKey: IdempotencyKey
1291
+ idempotencyKey: IdempotencyKey$1
1228
1292
  }));
1229
- const NativeNodeClaimFinishResponse = strict$3(effect.Schema.Struct({
1293
+ const NativeNodeClaimFinishResponse = strict$4(effect.Schema.Struct({
1230
1294
  status: effect.Schema.Literal("claimed"),
1231
1295
  disposition: effect.Schema.Literals(["created", "reconnected"]),
1232
- node: strict$3(effect.Schema.Struct({
1296
+ node: strict$4(effect.Schema.Struct({
1233
1297
  id: RelayNodeId,
1234
1298
  activeKeyId: effect.Schema.String.check(effect.Schema.isPattern(/^nkey_[A-Za-z0-9_-]{22}$/), effect.Schema.isMaxLength(27)),
1235
1299
  environmentId: NativeNodeClaimEnvironmentId,
@@ -1238,10 +1302,10 @@ const NativeNodeClaimFinishResponse = strict$3(effect.Schema.Struct({
1238
1302
  effectiveRole: effect.Schema.Literal("owner")
1239
1303
  }))
1240
1304
  }));
1241
- effect.Schema.Union([strict$3(effect.Schema.Struct({
1305
+ effect.Schema.Union([strict$4(effect.Schema.Struct({
1242
1306
  error: effect.Schema.Literal("node_claim_rejected"),
1243
1307
  retryable: effect.Schema.Literal(false)
1244
- })), strict$3(effect.Schema.Struct({
1308
+ })), strict$4(effect.Schema.Struct({
1245
1309
  error: effect.Schema.Literal("node_claim_unavailable"),
1246
1310
  retryable: effect.Schema.Literal(true),
1247
1311
  retryAfterMs: effect.Schema.optional(effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(3e5)))
@@ -1253,7 +1317,7 @@ const NATIVE_HANDOFF_CALLBACK_URIS = [
1253
1317
  "ryco://hosted/complete"
1254
1318
  ];
1255
1319
  const NATIVE_HANDOFF_MAX_URL_CHARS = 2048;
1256
- const strict$2 = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
1320
+ const strict$3 = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
1257
1321
  const Base64Url256$1 = effect.Schema.String.check(effect.Schema.isMinLength(43), effect.Schema.isMaxLength(43), effect.Schema.isPattern(/^[A-Za-z0-9_-]{43}$/));
1258
1322
  const isBase64Url256 = effect.Schema.is(Base64Url256$1);
1259
1323
  const NativeHandoffId = Base64Url256$1.pipe(effect.Schema.brand("NativeHandoffId"));
@@ -1262,7 +1326,7 @@ const NativeHandoffCode = Base64Url256$1.pipe(effect.Schema.brand("NativeHandoff
1262
1326
  const NativeHandoffCodeVerifier = Base64Url256$1.pipe(effect.Schema.brand("NativeHandoffCodeVerifier"));
1263
1327
  const NativeHandoffCodeChallenge = Base64Url256$1.pipe(effect.Schema.brand("NativeHandoffCodeChallenge"));
1264
1328
  const NativeHandoffCallbackUri = effect.Schema.Literals(NATIVE_HANDOFF_CALLBACK_URIS);
1265
- const EpochMs = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0));
1329
+ const EpochMs$1 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0));
1266
1330
  const BoundedDeviceLabel = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(64));
1267
1331
  const RelyingPartyId = effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(253), effect.Schema.isPattern(/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))*$/i));
1268
1332
  const DisplayName = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(64));
@@ -1274,28 +1338,28 @@ const NativeIdentityLoginMethod = effect.Schema.Literals([
1274
1338
  "recovery_code"
1275
1339
  ]);
1276
1340
  const uniqueNonEmpty = (item, maximum) => effect.Schema.Array(item).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(maximum), effect.Schema.makeFilter((values) => new Set(values).size === values.length ? void 0 : "values must be unique"));
1277
- const NativeIdentityAntiBot = effect.Schema.Union([strict$2(effect.Schema.Struct({ provider: effect.Schema.Literal("bypass") })), strict$2(effect.Schema.Struct({
1341
+ const NativeIdentityAntiBot = effect.Schema.Union([strict$3(effect.Schema.Struct({ provider: effect.Schema.Literal("bypass") })), strict$3(effect.Schema.Struct({
1278
1342
  provider: effect.Schema.Literal("turnstile"),
1279
1343
  siteKey: NativeIdentityTurnstileSiteKey
1280
1344
  }))]);
1281
- const NativeIdentityCapability = strict$2(effect.Schema.Struct({
1345
+ const NativeIdentityCapability = strict$3(effect.Schema.Struct({
1282
1346
  version: effect.Schema.Literal(2),
1283
- email: strict$2(effect.Schema.Struct({
1347
+ email: strict$3(effect.Schema.Struct({
1284
1348
  verification: effect.Schema.Literal("required"),
1285
1349
  antiBot: NativeIdentityAntiBot
1286
1350
  })),
1287
- signup: effect.Schema.Union([strict$2(effect.Schema.Struct({ status: effect.Schema.Literal("disabled") })), strict$2(effect.Schema.Struct({
1351
+ signup: effect.Schema.Union([strict$3(effect.Schema.Struct({ status: effect.Schema.Literal("disabled") })), strict$3(effect.Schema.Struct({
1288
1352
  status: effect.Schema.Literal("enabled"),
1289
1353
  primaryCredentials: uniqueNonEmpty(NativeIdentityPrimaryCredential, 2)
1290
1354
  }))]),
1291
- login: strict$2(effect.Schema.Struct({
1355
+ login: strict$3(effect.Schema.Struct({
1292
1356
  methods: uniqueNonEmpty(NativeIdentityLoginMethod, 3),
1293
- passwordSecondFactor: strict$2(effect.Schema.Struct({
1357
+ passwordSecondFactor: strict$3(effect.Schema.Struct({
1294
1358
  totp: effect.Schema.Literal("when_enrolled"),
1295
1359
  fallback: effect.Schema.Literal("verified_email_code")
1296
1360
  }))
1297
1361
  })),
1298
- recovery: strict$2(effect.Schema.Struct({
1362
+ recovery: strict$3(effect.Schema.Struct({
1299
1363
  recoveryCode: effect.Schema.Boolean,
1300
1364
  passwordReset: effect.Schema.Boolean
1301
1365
  }))
@@ -1344,29 +1408,29 @@ function validCallbackResponse(value, outcome) {
1344
1408
  }
1345
1409
  const ApprovedCallbackUrl = effect.Schema.String.check(effect.Schema.makeFilter((value) => validCallbackResponse(value, "approved") ? void 0 : "invalid approved callback URL"));
1346
1410
  const CancelledCallbackUrl = effect.Schema.String.check(effect.Schema.makeFilter((value) => validCallbackResponse(value, "cancelled") ? void 0 : "invalid cancelled callback URL"));
1347
- strict$2(effect.Schema.Struct({
1411
+ strict$3(effect.Schema.Struct({
1348
1412
  service: effect.Schema.Literal("ryco-hub"),
1349
1413
  protocolVersion: effect.Schema.Literal(1),
1350
- nativeHandoff: strict$2(effect.Schema.Struct({
1414
+ nativeHandoff: strict$3(effect.Schema.Struct({
1351
1415
  mode: effect.Schema.Literal(NATIVE_HANDOFF_MODE),
1352
1416
  version: effect.Schema.Literal(1)
1353
1417
  })),
1354
- relyingParty: strict$2(effect.Schema.Struct({
1418
+ relyingParty: strict$3(effect.Schema.Struct({
1355
1419
  id: RelyingPartyId,
1356
1420
  displayName: DisplayName
1357
1421
  })),
1358
1422
  nativeIdentity: effect.Schema.optionalKey(NativeIdentityCapability)
1359
1423
  }));
1360
- const NativeHandoffSignInPurpose = strict$2(effect.Schema.Struct({
1424
+ const NativeHandoffSignInPurpose = strict$3(effect.Schema.Struct({
1361
1425
  kind: effect.Schema.Literal("sign_in"),
1362
1426
  providerHint: effect.Schema.optionalKey(ExternalIdentityProvider)
1363
1427
  }));
1364
- const NativeHandoffConnectExternalIdentityPurpose = strict$2(effect.Schema.Struct({
1428
+ const NativeHandoffConnectExternalIdentityPurpose = strict$3(effect.Schema.Struct({
1365
1429
  kind: effect.Schema.Literal("connect_external_identity"),
1366
1430
  provider: ExternalIdentityProvider
1367
1431
  }));
1368
1432
  const NativeHandoffPurpose = effect.Schema.Union([NativeHandoffSignInPurpose, NativeHandoffConnectExternalIdentityPurpose]);
1369
- strict$2(effect.Schema.Struct({
1433
+ strict$3(effect.Schema.Struct({
1370
1434
  redirectUri: NativeHandoffCallbackUri,
1371
1435
  codeChallenge: NativeHandoffCodeChallenge,
1372
1436
  codeChallengeMethod: effect.Schema.Literal("S256"),
@@ -1374,25 +1438,25 @@ strict$2(effect.Schema.Struct({
1374
1438
  deviceLabel: BoundedDeviceLabel,
1375
1439
  purpose: effect.Schema.optionalKey(NativeHandoffPurpose)
1376
1440
  }));
1377
- strict$2(effect.Schema.Struct({
1441
+ strict$3(effect.Schema.Struct({
1378
1442
  handoffId: NativeHandoffId,
1379
1443
  authorizationUrl: AuthorizationUrl,
1380
- expiresAt: EpochMs
1444
+ expiresAt: EpochMs$1
1381
1445
  }));
1382
- strict$2(effect.Schema.Struct({
1446
+ strict$3(effect.Schema.Struct({
1383
1447
  status: effect.Schema.Literal("pending"),
1384
1448
  deviceLabel: BoundedDeviceLabel,
1385
- expiresAt: EpochMs,
1449
+ expiresAt: EpochMs$1,
1386
1450
  providerHint: effect.Schema.optionalKey(ExternalIdentityProvider)
1387
1451
  }));
1388
- strict$2(effect.Schema.Struct({ redirectUri: ApprovedCallbackUrl }));
1389
- strict$2(effect.Schema.Struct({ redirectUri: CancelledCallbackUrl }));
1390
- strict$2(effect.Schema.Struct({
1452
+ strict$3(effect.Schema.Struct({ redirectUri: ApprovedCallbackUrl }));
1453
+ strict$3(effect.Schema.Struct({ redirectUri: CancelledCallbackUrl }));
1454
+ strict$3(effect.Schema.Struct({
1391
1455
  handoffId: NativeHandoffId,
1392
1456
  code: NativeHandoffCode,
1393
1457
  codeVerifier: NativeHandoffCodeVerifier
1394
1458
  }));
1395
- strict$2(effect.Schema.Struct({
1459
+ strict$3(effect.Schema.Struct({
1396
1460
  handoffId: NativeHandoffId,
1397
1461
  code: NativeHandoffCode,
1398
1462
  codeVerifier: NativeHandoffCodeVerifier,
@@ -1403,7 +1467,7 @@ const AccountId = effect.Schema.String.check(effect.Schema.isPattern(/^acct_[A-Z
1403
1467
  const SessionId = effect.Schema.String.check(effect.Schema.isPattern(/^sess_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48));
1404
1468
  const SessionFamilyId = effect.Schema.String.check(effect.Schema.isPattern(/^sfam_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(48));
1405
1469
  const NullableSessionLabel = effect.Schema.NullOr(effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(64)));
1406
- const NativeHandoffAccount = strict$2(effect.Schema.Struct({
1470
+ const NativeHandoffAccount = strict$3(effect.Schema.Struct({
1407
1471
  id: AccountId,
1408
1472
  displayName: effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(200)),
1409
1473
  role: effect.Schema.Literals([
@@ -1411,32 +1475,241 @@ const NativeHandoffAccount = strict$2(effect.Schema.Struct({
1411
1475
  "operator",
1412
1476
  "owner"
1413
1477
  ]),
1414
- createdAt: EpochMs,
1478
+ createdAt: EpochMs$1,
1415
1479
  disabledAt: effect.Schema.Null
1416
1480
  }));
1417
- const NativeHandoffSession = strict$2(effect.Schema.Struct({
1481
+ const NativeHandoffSession = strict$3(effect.Schema.Struct({
1418
1482
  id: SessionId,
1419
1483
  accountId: AccountId,
1420
1484
  familyId: SessionFamilyId,
1421
1485
  clientLabel: NullableSessionLabel,
1422
1486
  kind: effect.Schema.Literal("native"),
1423
- createdAt: EpochMs,
1424
- expiresAt: EpochMs,
1425
- lastSeenAt: EpochMs,
1487
+ createdAt: EpochMs$1,
1488
+ expiresAt: EpochMs$1,
1489
+ lastSeenAt: EpochMs$1,
1426
1490
  replacedBySessionId: effect.Schema.Null,
1427
1491
  revokedAt: effect.Schema.Null,
1428
1492
  revocationReasonCode: effect.Schema.Null
1429
1493
  }).check(effect.Schema.makeFilter((session) => session.expiresAt > session.createdAt && session.lastSeenAt >= session.createdAt && session.lastSeenAt <= session.expiresAt ? void 0 : "native session timestamps are inconsistent")));
1430
- strict$2(effect.Schema.Struct({
1494
+ strict$3(effect.Schema.Struct({
1431
1495
  account: NativeHandoffAccount,
1432
1496
  session: NativeHandoffSession,
1433
1497
  token: Base64Url256$1
1434
1498
  }).check(effect.Schema.makeFilter((value) => value.session.accountId === value.account.id ? void 0 : "native session account does not match")));
1435
- strict$2(effect.Schema.Struct({
1499
+ strict$3(effect.Schema.Struct({
1436
1500
  status: effect.Schema.Literal("connected"),
1437
1501
  purpose: NativeHandoffConnectExternalIdentityPurpose,
1438
1502
  externalIdentity: ExternalIdentitySummary
1439
1503
  }));
1504
+ const NATIVE_E2EE_MAX_GRANT_KEYS = 4;
1505
+ const HUB_DEVICE_GRANT_MAX_BYTES = 2048;
1506
+ const HUB_DEVICE_GRANT_BASE64URL_MAX_CHARS = 2731;
1507
+ const CLIENT_PREKEY_CERTIFICATE_BASE64URL_MAX_CHARS = 1459;
1508
+ const NODE_E2EE_CAPABILITY_STATEMENT_BASE64URL_MAX_CHARS = 6920;
1509
+ const strict$2 = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
1510
+ const UInt32 = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(4294967295));
1511
+ const EpochMs = effect.Schema.Int.check(effect.Schema.isGreaterThanOrEqualTo(0), effect.Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER));
1512
+ const ExactBytes = (length) => effect.Schema.Uint8Array.check(effect.Schema.isMinLength(length), effect.Schema.isMaxLength(length));
1513
+ const Base64Url = (minimum, maximum) => effect.Schema.String.check(effect.Schema.isMinLength(minimum), effect.Schema.isMaxLength(maximum), effect.Schema.isPattern(/^[A-Za-z0-9_-]+$/), effect.Schema.makeFilter((value) => value.length % 4 === 1 ? "invalid unpadded base64url length" : void 0));
1514
+ const Base64Url32 = Base64Url(43, 43);
1515
+ const Base64UrlP256 = Base64Url(87, 87);
1516
+ const HubDeviceGrantId = effect.Schema.String.check(effect.Schema.isPattern(/^hgr_[A-Za-z0-9_-]{22,43}$/), effect.Schema.isMaxLength(47)).pipe(effect.Schema.brand("HubDeviceGrantId"));
1517
+ const NodeE2eeContinuityId = effect.Schema.String.check(effect.Schema.isPattern(/^nct_[A-Za-z0-9_-]{22}$/), effect.Schema.isMaxLength(26)).pipe(effect.Schema.brand("NodeE2eeContinuityId"));
1518
+ const NativeE2eePlatform = effect.Schema.Literals([
1519
+ "darwin",
1520
+ "linux",
1521
+ "windows",
1522
+ "ios",
1523
+ "android"
1524
+ ]);
1525
+ const NativeE2eeReportedKeyBacking = effect.Schema.Literals([
1526
+ "secure-enclave",
1527
+ "strongbox",
1528
+ "tee",
1529
+ "tpm",
1530
+ "hardware-backed",
1531
+ "unavailable"
1532
+ ]);
1533
+ const NativeE2eeUsableKeyBacking = effect.Schema.Literals([
1534
+ "secure-enclave",
1535
+ "strongbox",
1536
+ "tee",
1537
+ "tpm",
1538
+ "hardware-backed"
1539
+ ]);
1540
+ const NativeE2eeEnrollmentStatus = effect.Schema.Literals([
1541
+ "active",
1542
+ "revoked",
1543
+ "superseded"
1544
+ ]);
1545
+ effect.Schema.Literals([
1546
+ "locally-verified",
1547
+ "account-enrolled",
1548
+ "web-unsigned"
1549
+ ]);
1550
+ const NodeE2eeAdmissionPolicy = effect.Schema.Literals([
1551
+ "compatibility",
1552
+ "require-e2ee",
1553
+ "require-native-e2ee",
1554
+ "require-locally-approved-native-e2ee"
1555
+ ]);
1556
+ const HubDeviceGrantEnvelope = Base64Url(1, HUB_DEVICE_GRANT_BASE64URL_MAX_CHARS).pipe(effect.Schema.brand("HubDeviceGrantEnvelope"));
1557
+ const E2eeDigestBase64Url = Base64Url32.pipe(effect.Schema.brand("E2eeDigestBase64Url"));
1558
+ const BoundedCapabilities = effect.Schema.Array(RelayCapability).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(32), effect.Schema.makeFilter((values) => new Set(values).size === values.length ? void 0 : "capabilities must be distinct"));
1559
+ const HubOrigin = effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(128), effect.Schema.isPattern(/^https?:\/\/[^\s/]+$/));
1560
+ const DeviceLabel = effect.Schema.Trim.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(100));
1561
+ const AppVersion = effect.Schema.String.check(effect.Schema.isNonEmpty(), effect.Schema.isMaxLength(64));
1562
+ const IdempotencyKey = Base64Url32.pipe(effect.Schema.brand("NativeE2eeIdempotencyKey"));
1563
+ const ReasonCode = effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(64), effect.Schema.isPattern(/^[a-z][a-z0-9_]*$/));
1564
+ const HubDeviceGrantClaims = strict$2(effect.Schema.Struct({
1565
+ version: effect.Schema.Literal(1),
1566
+ suiteId: effect.Schema.Literal(2),
1567
+ issuerHubOrigin: HubOrigin,
1568
+ keyId: HubGrantVerificationKeyId,
1569
+ grantId: HubDeviceGrantId,
1570
+ accountId: HubAccountId,
1571
+ accountAuthEpoch: E2eeAuthorizationEpoch,
1572
+ enrollmentId: NativeE2eeEnrollmentId,
1573
+ enrollmentRevision: NativeE2eeEnrollmentRevision,
1574
+ deviceAuthEpoch: E2eeAuthorizationEpoch,
1575
+ deviceIdentityAlgorithm: effect.Schema.Literal("p256"),
1576
+ deviceIdentityPublicKey: ExactBytes(65),
1577
+ deviceIdentityFingerprint: ExactBytes(32),
1578
+ deviceAgreementAlgorithm: effect.Schema.Literal("x25519"),
1579
+ deviceAgreementPublicKey: ExactBytes(32),
1580
+ deviceAgreementFingerprint: ExactBytes(32),
1581
+ clientPrekeyCertificateDigest: ExactBytes(32),
1582
+ nodeId: RelayNodeId,
1583
+ nodeIdentityAlgorithm: effect.Schema.Literal("ed25519"),
1584
+ nodeIdentityPublicKey: ExactBytes(32),
1585
+ nodeIdentityFingerprint: ExactBytes(32),
1586
+ nodeAgreementAlgorithm: effect.Schema.Literal("x25519"),
1587
+ nodeAgreementPublicKey: ExactBytes(32),
1588
+ nodeAgreementFingerprint: ExactBytes(32),
1589
+ nodeContinuityId: NodeE2eeContinuityId,
1590
+ nodePolicyGeneration: UInt32,
1591
+ nodeCapabilityStatementDigest: ExactBytes(32),
1592
+ relayTicketId: RelayTicketId,
1593
+ maximumRole: RelayEffectiveRole,
1594
+ capabilities: BoundedCapabilities,
1595
+ issuedAt: EpochMs,
1596
+ notBefore: EpochMs,
1597
+ expiresAt: EpochMs,
1598
+ nonce: ExactBytes(32)
1599
+ }).check(effect.Schema.makeFilter((claims) => claims.notBefore <= claims.issuedAt && claims.issuedAt < claims.expiresAt && claims.expiresAt - claims.issuedAt <= 12e4 ? void 0 : "invalid grant validity interval")));
1600
+ strict$2(effect.Schema.Struct({
1601
+ protocolVersion: effect.Schema.Literal(1),
1602
+ hubOrigin: HubOrigin,
1603
+ accountId: HubAccountId,
1604
+ enrollmentId: NativeE2eeEnrollmentId,
1605
+ expectedEnrollmentRevision: effect.Schema.optionalKey(UInt32),
1606
+ identityPublicKey: Base64UrlP256,
1607
+ identityFingerprint: Base64Url32,
1608
+ agreementPublicKey: Base64Url32,
1609
+ agreementFingerprint: Base64Url32,
1610
+ clientPrekeyCertificate: Base64Url(1, CLIENT_PREKEY_CERTIFICATE_BASE64URL_MAX_CHARS),
1611
+ clientPrekeyCertificateDigest: Base64Url32,
1612
+ certificateExpiresAt: EpochMs,
1613
+ platform: NativeE2eePlatform,
1614
+ appVersion: AppVersion,
1615
+ reportedKeyBacking: NativeE2eeUsableKeyBacking,
1616
+ deviceLabel: DeviceLabel,
1617
+ requestedMaximumRole: RelayEffectiveRole,
1618
+ requestedCapabilities: BoundedCapabilities,
1619
+ enrollmentNonce: Base64Url32,
1620
+ idempotencyKey: IdempotencyKey
1621
+ }));
1622
+ const AccountE2eeDeviceSummary = strict$2(effect.Schema.Struct({
1623
+ enrollmentId: NativeE2eeEnrollmentId,
1624
+ enrollmentRevision: NativeE2eeEnrollmentRevision,
1625
+ accountAuthEpoch: E2eeAuthorizationEpoch,
1626
+ deviceAuthEpoch: E2eeAuthorizationEpoch,
1627
+ platform: NativeE2eePlatform,
1628
+ appVersion: AppVersion,
1629
+ reportedKeyBacking: NativeE2eeReportedKeyBacking,
1630
+ deviceLabel: DeviceLabel,
1631
+ identityFingerprint: Base64Url32,
1632
+ agreementFingerprint: Base64Url32,
1633
+ clientPrekeyCertificateDigest: Base64Url32,
1634
+ certificateExpiresAt: EpochMs,
1635
+ status: NativeE2eeEnrollmentStatus,
1636
+ createdAt: EpochMs,
1637
+ updatedAt: EpochMs,
1638
+ lastUsedAt: effect.Schema.NullOr(EpochMs),
1639
+ revokedAt: effect.Schema.NullOr(EpochMs)
1640
+ }).check(effect.Schema.makeFilter((device) => {
1641
+ if (device.updatedAt < device.createdAt) return "updatedAt must not precede createdAt";
1642
+ if (device.lastUsedAt !== null && device.lastUsedAt < device.createdAt) return "lastUsedAt must not precede createdAt";
1643
+ if (device.revokedAt !== null && device.revokedAt < device.createdAt) return "revokedAt must not precede createdAt";
1644
+ if (device.status === "active" && device.revokedAt !== null) return "active enrollment cannot have revokedAt";
1645
+ if (device.status !== "active" && device.revokedAt === null) return "inactive enrollment requires revokedAt";
1646
+ })));
1647
+ strict$2(effect.Schema.Struct({
1648
+ protocolVersion: effect.Schema.Literal(1),
1649
+ enrollment: AccountE2eeDeviceSummary
1650
+ }));
1651
+ strict$2(effect.Schema.Struct({
1652
+ protocolVersion: effect.Schema.Literal(1),
1653
+ devices: effect.Schema.Array(AccountE2eeDeviceSummary).check(effect.Schema.isMaxLength(128), effect.Schema.makeFilter((devices) => new Set(devices.map((device) => `${device.enrollmentId}:${device.enrollmentRevision}`)).size === devices.length ? void 0 : "device enrollment revisions must be distinct"))
1654
+ }));
1655
+ strict$2(effect.Schema.Struct({
1656
+ expectedEnrollmentRevision: NativeE2eeEnrollmentRevision,
1657
+ deviceLabel: DeviceLabel
1658
+ }));
1659
+ strict$2(effect.Schema.Struct({
1660
+ expectedEnrollmentRevision: NativeE2eeEnrollmentRevision,
1661
+ reasonCode: ReasonCode
1662
+ }));
1663
+ strict$2(effect.Schema.Struct({
1664
+ protocolVersion: effect.Schema.Literal(1),
1665
+ enrollment: AccountE2eeDeviceSummary
1666
+ }));
1667
+ const HubGrantVerificationKey = strict$2(effect.Schema.Struct({
1668
+ keyId: HubGrantVerificationKeyId,
1669
+ publicKey: Base64Url32,
1670
+ notBefore: EpochMs,
1671
+ notAfter: EpochMs
1672
+ }).check(effect.Schema.makeFilter((key) => key.notAfter > key.notBefore ? void 0 : "notAfter must be after notBefore")));
1673
+ const HubGrantVerificationKeys = effect.Schema.Array(HubGrantVerificationKey).check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(NATIVE_E2EE_MAX_GRANT_KEYS), effect.Schema.makeFilter((keys) => new Set(keys.map((key) => key.keyId)).size === keys.length ? void 0 : "grant verification key ids must be distinct"));
1674
+ strict$2(effect.Schema.Struct({
1675
+ protocolVersion: effect.Schema.Literal(1),
1676
+ generation: E2eeKeysetGeneration,
1677
+ keys: HubGrantVerificationKeys
1678
+ }));
1679
+ strict$2(effect.Schema.Struct({
1680
+ protocolVersion: effect.Schema.Literal(1),
1681
+ nodeId: RelayNodeId,
1682
+ capability: RelayCapability,
1683
+ protocolMajor: effect.Schema.Literal(1),
1684
+ protocolMinor: effect.Schema.Literal(3),
1685
+ suiteId: effect.Schema.Literal(2),
1686
+ enrollmentId: NativeE2eeEnrollmentId,
1687
+ enrollmentRevision: NativeE2eeEnrollmentRevision,
1688
+ clientPrekeyCertificateDigest: Base64Url32
1689
+ }));
1690
+ strict$2(effect.Schema.Struct({
1691
+ protocolVersion: effect.Schema.Literal(1),
1692
+ ticket: Base64Url(43, 86),
1693
+ ticketId: RelayTicketId,
1694
+ expiresAt: EpochMs,
1695
+ protocolMajor: effect.Schema.Literal(1),
1696
+ protocolMinor: effect.Schema.Literal(3),
1697
+ suiteId: effect.Schema.Literal(2),
1698
+ deviceGrant: HubDeviceGrantEnvelope,
1699
+ deviceGrantDigest: E2eeDigestBase64Url,
1700
+ nodeCapabilityStatement: Base64Url(1, NODE_E2EE_CAPABILITY_STATEMENT_BASE64URL_MAX_CHARS),
1701
+ nodeCapabilityStatementDigest: E2eeDigestBase64Url,
1702
+ keysetGeneration: E2eeKeysetGeneration,
1703
+ capability: RelayCapability,
1704
+ effectiveRole: RelayEffectiveRole
1705
+ }));
1706
+ strict$2(effect.Schema.Struct({
1707
+ protocolVersion: effect.Schema.Literal(1),
1708
+ enrollmentId: NativeE2eeEnrollmentId,
1709
+ enrollmentRevision: NativeE2eeEnrollmentRevision,
1710
+ accountAuthEpoch: E2eeAuthorizationEpoch,
1711
+ deviceAuthEpoch: E2eeAuthorizationEpoch
1712
+ }));
1440
1713
  const LOCAL_INTRODUCTION_DESCRIPTOR_PATH = "/api/desktop/e2ee/local-introduction/descriptor";
1441
1714
  const LOCAL_INTRODUCTION_COMPLETE_PATH = "/api/desktop/e2ee/local-introduction/complete";
1442
1715
  const LOCAL_INTRODUCTION_CONTROL_HEADER = "x-ryco-desktop-control";
@@ -3028,6 +3301,28 @@ const ThreadGoalStatus = effect.Schema.Literals([
3028
3301
  "budgetLimited",
3029
3302
  "complete"
3030
3303
  ]);
3304
+ const ThreadGoalUpdate = effect.Schema.Struct({
3305
+ objective: effect.Schema.optional(ThreadGoalObjective),
3306
+ status: effect.Schema.optional(ThreadGoalStatus),
3307
+ tokenBudget: effect.Schema.optional(effect.Schema.NullOr(PositiveInt))
3308
+ });
3309
+ const ThreadGoalSynchronization = effect.Schema.Struct({
3310
+ requestId: effect.Schema.String,
3311
+ state: effect.Schema.Literals([
3312
+ "pending",
3313
+ "failed",
3314
+ "unsupported"
3315
+ ]),
3316
+ action: effect.Schema.Literals(["set", "clear"]),
3317
+ startTurn: effect.Schema.optional(effect.Schema.Boolean),
3318
+ deferUntilTurn: effect.Schema.optional(effect.Schema.Boolean),
3319
+ fields: effect.Schema.optional(effect.Schema.Array(effect.Schema.Literals([
3320
+ "objective",
3321
+ "status",
3322
+ "tokenBudget"
3323
+ ]))),
3324
+ error: effect.Schema.optional(effect.Schema.String)
3325
+ });
3031
3326
  const ThreadGoal = effect.Schema.Struct({
3032
3327
  objective: ThreadGoalObjective,
3033
3328
  status: ThreadGoalStatus,
@@ -3035,7 +3330,9 @@ const ThreadGoal = effect.Schema.Struct({
3035
3330
  tokensUsed: NonNegativeInt,
3036
3331
  timeUsedSeconds: NonNegativeInt,
3037
3332
  createdAt: IsoDateTime,
3038
- updatedAt: IsoDateTime
3333
+ updatedAt: IsoDateTime,
3334
+ /** Local delivery state. Absent when the native provider has confirmed the goal. */
3335
+ synchronization: effect.Schema.optional(ThreadGoalSynchronization)
3039
3336
  });
3040
3337
  const ThreadGoalEventOrigin = effect.Schema.Literals(["client", "provider"]);
3041
3338
  //#endregion
@@ -3325,7 +3622,30 @@ const ContextHandoffInspectionSummaryInput = effect.Schema.Struct({
3325
3622
  threadId: ThreadId,
3326
3623
  handoffId: ContextHandoffId
3327
3624
  });
3625
+ const CONTEXT_HANDOFF_MAX_INPUT_CHARS = 14e5;
3626
+ const ModelContextWindowMetadata = effect.Schema.Array(effect.Schema.Struct({
3627
+ slug: effect.Schema.String,
3628
+ aliases: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
3629
+ defaultContextWindow: effect.Schema.optional(effect.Schema.String),
3630
+ contextWindowTokens: effect.Schema.optional(effect.Schema.Record(effect.Schema.String, effect.Schema.Number)),
3631
+ fixedContextWindowTokens: effect.Schema.optional(effect.Schema.Number)
3632
+ }));
3633
+ const ContextHandoffInputBudget = effect.Schema.Struct({
3634
+ maxInputChars: PositiveInt,
3635
+ budgetSource: effect.Schema.Literals([
3636
+ "default",
3637
+ "manifest",
3638
+ "slug"
3639
+ ]),
3640
+ contextWindowTokens: effect.Schema.NullOr(PositiveInt)
3641
+ });
3642
+ const ContextHandoffAppliedBudget = effect.Schema.Struct({
3643
+ maxInputChars: effect.Schema.optional(effect.Schema.NullOr(PositiveInt)),
3644
+ budgetSource: effect.Schema.optional(effect.Schema.NullOr(ContextHandoffInputBudget.fields.budgetSource)),
3645
+ contextWindowTokens: effect.Schema.optional(effect.Schema.NullOr(PositiveInt))
3646
+ });
3328
3647
  const ContextHandoffInspectionSummary = effect.Schema.Struct({
3648
+ ...ContextHandoffAppliedBudget.fields,
3329
3649
  threadId: ThreadId,
3330
3650
  handoffId: ContextHandoffId,
3331
3651
  status: effect.Schema.Literals([
@@ -3451,15 +3771,20 @@ const PROVIDER_SEND_TURN_MAX_FILE_BYTES = 52428800;
3451
3771
  const PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES = 52428800;
3452
3772
  const PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS = 14e6;
3453
3773
  const PROVIDER_SEND_TURN_MAX_FILE_DATA_URL_CHARS = 7e7;
3454
- const ChatAttachmentId = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(128), effect.Schema.isPattern(/^[a-z0-9_-]+$/i));
3774
+ const CHAT_ATTACHMENT_ID_MAX_CHARS = 128;
3775
+ const FILE_ATTACHMENT_UPLOAD_TOKEN_MAX_CHARS = 256;
3776
+ const ChatAttachmentId = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), effect.Schema.isPattern(/^[a-z0-9_-]+$/i));
3455
3777
  const ChatAttachmentName = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(255), effect.Schema.isPattern(/^[^/\\\p{Cc}]+$/u));
3456
3778
  const ChatAttachmentMimeType = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(100), effect.Schema.isPattern(/^[a-z0-9][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/i));
3779
+ const UnknownChatAttachmentType = effect.Schema.String.check(effect.Schema.makeFilter((type) => type === "image" || type === "file" ? "reserved chat attachment type" : true));
3457
3780
  const ChatImageAttachment = effect.Schema.Struct({
3458
3781
  type: effect.Schema.Literal("image"),
3459
3782
  id: ChatAttachmentId,
3460
3783
  name: ChatAttachmentName,
3461
3784
  mimeType: ChatAttachmentMimeType.check(effect.Schema.isPattern(/^image\//i)),
3462
- sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
3785
+ sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES)),
3786
+ width: effect.Schema.optional(NonNegativeInt),
3787
+ height: effect.Schema.optional(NonNegativeInt)
3463
3788
  });
3464
3789
  const UploadChatImageAttachment = effect.Schema.Struct({
3465
3790
  type: effect.Schema.Literal("image"),
@@ -3473,17 +3798,66 @@ const ChatFileAttachment = effect.Schema.Struct({
3473
3798
  id: ChatAttachmentId,
3474
3799
  name: ChatAttachmentName,
3475
3800
  mimeType: ChatAttachmentMimeType,
3476
- sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES))
3801
+ sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES)),
3802
+ width: effect.Schema.optional(NonNegativeInt),
3803
+ height: effect.Schema.optional(NonNegativeInt)
3477
3804
  });
3805
+ const CHAT_ATTACHMENT_READ_CHUNK_BYTES = 262144;
3806
+ const ChatAttachmentReadChunkInput = effect.Schema.Struct({
3807
+ threadId: ThreadId,
3808
+ messageId: MessageId,
3809
+ attachmentId: ChatAttachmentId,
3810
+ offset: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES))
3811
+ });
3812
+ const ChatAttachmentReadChunkResult = effect.Schema.Struct({
3813
+ dataBase64: effect.Schema.String.check(effect.Schema.isMaxLength(4 * Math.ceil(CHAT_ATTACHMENT_READ_CHUNK_BYTES / 3))),
3814
+ offset: NonNegativeInt,
3815
+ totalBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES))
3816
+ });
3817
+ var ChatAttachmentReadError = class extends effect.Schema.TaggedError()("ChatAttachmentReadError", { message: effect.Schema.String }) {};
3818
+ const FileAttachmentUploadToken = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(FILE_ATTACHMENT_UPLOAD_TOKEN_MAX_CHARS));
3478
3819
  const UploadChatFileAttachment = effect.Schema.Struct({
3479
3820
  type: effect.Schema.Literal("file"),
3480
3821
  name: ChatAttachmentName,
3481
3822
  mimeType: ChatAttachmentMimeType,
3482
3823
  sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES)),
3483
- dataUrl: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(PROVIDER_SEND_TURN_MAX_FILE_DATA_URL_CHARS))
3824
+ dataUrl: effect.Schema.optionalKey(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(PROVIDER_SEND_TURN_MAX_FILE_DATA_URL_CHARS))),
3825
+ uploadToken: effect.Schema.optionalKey(FileAttachmentUploadToken)
3826
+ }).check(effect.Schema.makeFilter((attachment) => {
3827
+ const hasDataUrl = attachment.dataUrl !== void 0;
3828
+ return hasDataUrl !== (attachment.uploadToken !== void 0) ? true : {
3829
+ path: ["dataUrl"],
3830
+ issue: hasDataUrl ? "provide either dataUrl or uploadToken, not both" : "provide exactly one of dataUrl or uploadToken"
3831
+ };
3832
+ }));
3833
+ const FileAttachmentCreateUploadUrlInput = effect.Schema.Struct({
3834
+ threadId: ThreadId,
3835
+ name: ChatAttachmentName,
3836
+ mimeType: ChatAttachmentMimeType,
3837
+ sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES))
3838
+ });
3839
+ const FileAttachmentCreateUploadUrlResult = effect.Schema.Struct({
3840
+ uploadToken: FileAttachmentUploadToken,
3841
+ expiresAt: IsoDateTime,
3842
+ maxUploadBytes: NonNegativeInt
3484
3843
  });
3485
- const ChatAttachment = effect.Schema.Union([ChatImageAttachment, ChatFileAttachment]);
3486
- const UploadChatAttachment = effect.Schema.Union([UploadChatImageAttachment, UploadChatFileAttachment]);
3844
+ const ChatUnknownAttachment = effect.Schema.Struct({
3845
+ type: UnknownChatAttachmentType,
3846
+ id: effect.Schema.optional(ChatAttachmentId),
3847
+ name: effect.Schema.optional(ChatAttachmentName),
3848
+ mimeType: effect.Schema.optional(effect.Schema.String),
3849
+ sizeBytes: effect.Schema.optional(NonNegativeInt)
3850
+ });
3851
+ const ChatAttachment = effect.Schema.Union([
3852
+ ChatImageAttachment,
3853
+ ChatFileAttachment,
3854
+ ChatUnknownAttachment
3855
+ ]);
3856
+ const UploadChatAttachment = effect.Schema.Union([
3857
+ UploadChatImageAttachment,
3858
+ UploadChatFileAttachment,
3859
+ ChatUnknownAttachment
3860
+ ]);
3487
3861
  const ChatAttachments = effect.Schema.Array(ChatAttachment).check(effect.Schema.isMaxLength(8));
3488
3862
  const UploadChatAttachments = effect.Schema.Array(UploadChatAttachment).check(effect.Schema.isMaxLength(8));
3489
3863
  const ProjectScriptIcon = effect.Schema.Literals([
@@ -3644,6 +4018,8 @@ const OrchestrationThread = effect.Schema.Struct({
3644
4018
  archivedAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
3645
4019
  settledOverride: effect.Schema.NullOr(ThreadSettlementOverride).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
3646
4020
  settledAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
4021
+ snoozedUntil: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
4022
+ snoozedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
3647
4023
  deletedAt: effect.Schema.NullOr(IsoDateTime),
3648
4024
  messages: effect.Schema.Array(OrchestrationMessage),
3649
4025
  proposedPlans: effect.Schema.Array(OrchestrationProposedPlan).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed([]))),
@@ -3704,6 +4080,8 @@ const OrchestrationThreadShell = effect.Schema.Struct({
3704
4080
  archivedAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
3705
4081
  settledOverride: effect.Schema.NullOr(ThreadSettlementOverride).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
3706
4082
  settledAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
4083
+ snoozedUntil: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
4084
+ snoozedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
3707
4085
  session: effect.Schema.NullOr(OrchestrationSession),
3708
4086
  latestUserMessageAt: effect.Schema.NullOr(IsoDateTime),
3709
4087
  hasPendingApprovals: effect.Schema.Boolean,
@@ -3926,6 +4304,17 @@ const ThreadUnarchiveCommand = effect.Schema.Struct({
3926
4304
  commandId: CommandId,
3927
4305
  threadId: ThreadId
3928
4306
  });
4307
+ const ThreadSnoozeCommand = effect.Schema.Struct({
4308
+ type: effect.Schema.Literal("thread.snooze"),
4309
+ commandId: CommandId,
4310
+ threadId: ThreadId,
4311
+ snoozedUntil: IsoDateTime
4312
+ });
4313
+ const ThreadUnsnoozeCommand = effect.Schema.Struct({
4314
+ type: effect.Schema.Literal("thread.unsnooze"),
4315
+ commandId: CommandId,
4316
+ threadId: ThreadId
4317
+ });
3929
4318
  const ThreadSettleCommand = effect.Schema.Struct({
3930
4319
  type: effect.Schema.Literal("thread.settle"),
3931
4320
  commandId: CommandId,
@@ -3969,11 +4358,10 @@ const ThreadTokenModeSetCommand = effect.Schema.Struct({
3969
4358
  });
3970
4359
  const ThreadGoalSetCommand = effect.Schema.Struct({
3971
4360
  type: effect.Schema.Literal("thread.goal.set"),
4361
+ startTurn: effect.Schema.optional(effect.Schema.Boolean),
3972
4362
  commandId: CommandId,
3973
4363
  threadId: ThreadId,
3974
- objective: effect.Schema.optional(ThreadGoalObjective),
3975
- status: effect.Schema.optional(ThreadGoalStatus),
3976
- tokenBudget: effect.Schema.optional(effect.Schema.NullOr(PositiveInt)),
4364
+ ...ThreadGoalUpdate.fields,
3977
4365
  createdAt: IsoDateTime
3978
4366
  });
3979
4367
  const ThreadGoalClearCommand = effect.Schema.Struct({
@@ -3994,6 +4382,7 @@ const ThreadTurnStartBootstrapCreateThread = effect.Schema.Struct({
3994
4382
  createdAt: IsoDateTime
3995
4383
  });
3996
4384
  const ThreadTurnStartBootstrapPrepareWorktree = effect.Schema.Struct({
4385
+ fetchOrigin: effect.Schema.optional(effect.Schema.Boolean),
3997
4386
  projectCwd: TrimmedNonEmptyString,
3998
4387
  baseBranch: TrimmedNonEmptyString,
3999
4388
  branch: effect.Schema.optional(TrimmedNonEmptyString)
@@ -4018,6 +4407,7 @@ const ThreadTurnStartCommand = effect.Schema.Struct({
4018
4407
  runtimeMode: RuntimeMode.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_RUNTIME_MODE))),
4019
4408
  interactionMode: ProviderInteractionMode.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROVIDER_INTERACTION_MODE))),
4020
4409
  tokenMode: effect.Schema.optionalKey(AgentTokenMode),
4410
+ goal: effect.Schema.optional(ThreadGoalUpdate),
4021
4411
  bootstrap: effect.Schema.optional(ThreadTurnStartBootstrap),
4022
4412
  sourceProposedPlan: effect.Schema.optional(SourceProposedPlanReference),
4023
4413
  sourceControlContexts: effect.Schema.optional(effect.Schema.Array(ComposerSourceControlContext)),
@@ -4038,6 +4428,7 @@ const ClientThreadTurnStartCommand = effect.Schema.Struct({
4038
4428
  runtimeMode: RuntimeMode,
4039
4429
  interactionMode: ProviderInteractionMode,
4040
4430
  tokenMode: effect.Schema.optionalKey(AgentTokenMode),
4431
+ goal: effect.Schema.optional(ThreadGoalUpdate),
4041
4432
  bootstrap: effect.Schema.optional(ThreadTurnStartBootstrap),
4042
4433
  sourceProposedPlan: effect.Schema.optional(SourceProposedPlanReference),
4043
4434
  sourceControlContexts: effect.Schema.optional(effect.Schema.Array(ComposerSourceControlContext)),
@@ -4204,6 +4595,8 @@ const DispatchableClientOrchestrationCommand = effect.Schema.Union([
4204
4595
  ThreadDeleteCommand,
4205
4596
  ThreadArchiveCommand,
4206
4597
  ThreadUnarchiveCommand,
4598
+ ThreadSnoozeCommand,
4599
+ ThreadUnsnoozeCommand,
4207
4600
  ThreadSettleCommand,
4208
4601
  ThreadUnsettleCommand,
4209
4602
  ThreadMetaUpdateCommand,
@@ -4239,6 +4632,8 @@ const ClientOrchestrationCommand = effect.Schema.Union([
4239
4632
  ThreadDeleteCommand,
4240
4633
  ThreadArchiveCommand,
4241
4634
  ThreadUnarchiveCommand,
4635
+ ThreadSnoozeCommand,
4636
+ ThreadUnsnoozeCommand,
4242
4637
  ThreadSettleCommand,
4243
4638
  ThreadUnsettleCommand,
4244
4639
  ThreadMetaUpdateCommand,
@@ -4286,6 +4681,8 @@ const ThreadMessageAssistantCompleteCommand = effect.Schema.Struct({
4286
4681
  commandId: CommandId,
4287
4682
  threadId: ThreadId,
4288
4683
  messageId: MessageId,
4684
+ text: effect.Schema.optional(effect.Schema.String),
4685
+ attachments: effect.Schema.optional(effect.Schema.Array(ChatAttachment)),
4289
4686
  turnId: effect.Schema.optional(TurnId),
4290
4687
  createdAt: IsoDateTime
4291
4688
  });
@@ -4367,15 +4764,30 @@ const ThreadGoalSyncCommand = effect.Schema.Struct({
4367
4764
  commandId: CommandId,
4368
4765
  threadId: ThreadId,
4369
4766
  goal: ThreadGoal,
4767
+ expectedRequestId: effect.Schema.optional(effect.Schema.String),
4370
4768
  createdAt: IsoDateTime
4371
4769
  });
4372
4770
  const ThreadGoalProviderClearCommand = effect.Schema.Struct({
4373
4771
  type: effect.Schema.Literal("thread.goal.provider-clear"),
4374
4772
  commandId: CommandId,
4375
4773
  threadId: ThreadId,
4774
+ expectedRequestId: effect.Schema.optional(effect.Schema.String),
4376
4775
  createdAt: IsoDateTime
4377
4776
  });
4378
4777
  const InternalOrchestrationCommand = effect.Schema.Union([
4778
+ effect.Schema.Struct({
4779
+ type: effect.Schema.Literal("thread.history.restore"),
4780
+ commandId: CommandId,
4781
+ threadId: ThreadId,
4782
+ providerInstanceId: ProviderInstanceId,
4783
+ runtimeSessionId: RuntimeSessionId,
4784
+ expectedUpdatedAt: IsoDateTime,
4785
+ messages: effect.Schema.Array(OrchestrationMessage),
4786
+ activities: effect.Schema.Array(OrchestrationThreadActivity),
4787
+ completedTurnIds: effect.Schema.Array(TurnId),
4788
+ failedTurnIds: effect.Schema.Array(TurnId),
4789
+ createdAt: IsoDateTime
4790
+ }),
4379
4791
  ThreadSessionSetCommand,
4380
4792
  ThreadMessageAssistantDeltaCommand,
4381
4793
  ThreadMessageAssistantCompleteCommand,
@@ -4397,6 +4809,8 @@ const OrchestrationEventType = effect.Schema.Literals([
4397
4809
  "thread.deleted",
4398
4810
  "thread.archived",
4399
4811
  "thread.unarchived",
4812
+ "thread.snoozed",
4813
+ "thread.unsnoozed",
4400
4814
  "thread.settled",
4401
4815
  "thread.unsettled",
4402
4816
  "thread.meta-updated",
@@ -4501,6 +4915,16 @@ const ThreadUnarchivedPayload = effect.Schema.Struct({
4501
4915
  threadId: ThreadId,
4502
4916
  updatedAt: IsoDateTime
4503
4917
  });
4918
+ const ThreadSnoozedPayload = effect.Schema.Struct({
4919
+ threadId: ThreadId,
4920
+ snoozedUntil: IsoDateTime,
4921
+ snoozedAt: IsoDateTime,
4922
+ updatedAt: IsoDateTime
4923
+ });
4924
+ const ThreadUnsnoozedPayload = effect.Schema.Struct({
4925
+ threadId: ThreadId,
4926
+ updatedAt: IsoDateTime
4927
+ });
4504
4928
  const ThreadSettledPayload = effect.Schema.Struct({
4505
4929
  threadId: ThreadId,
4506
4930
  settledAt: IsoDateTime,
@@ -4789,6 +5213,16 @@ const OrchestrationEvent = effect.Schema.Union([
4789
5213
  type: effect.Schema.Literal("thread.unarchived"),
4790
5214
  payload: ThreadUnarchivedPayload
4791
5215
  }),
5216
+ effect.Schema.Struct({
5217
+ ...EventBaseFields,
5218
+ type: effect.Schema.Literal("thread.snoozed"),
5219
+ payload: ThreadSnoozedPayload
5220
+ }),
5221
+ effect.Schema.Struct({
5222
+ ...EventBaseFields,
5223
+ type: effect.Schema.Literal("thread.unsnoozed"),
5224
+ payload: ThreadUnsnoozedPayload
5225
+ }),
4792
5226
  effect.Schema.Struct({
4793
5227
  ...EventBaseFields,
4794
5228
  type: effect.Schema.Literal("thread.settled"),
@@ -5232,6 +5666,10 @@ var OrchestrationReplayEventsError = class extends effect.Schema.TaggedError()("
5232
5666
  message: TrimmedNonEmptyString,
5233
5667
  cause: effect.Schema.optional(effect.Schema.Defect())
5234
5668
  }) {};
5669
+ var FileAttachmentCreateUploadUrlError = class extends effect.Schema.TaggedError()("FileAttachmentCreateUploadUrlError", {
5670
+ message: TrimmedNonEmptyString,
5671
+ cause: effect.Schema.optional(effect.Schema.Defect())
5672
+ }) {};
5235
5673
  const ProviderSessionStatus = effect.Schema.Literals([
5236
5674
  "connecting",
5237
5675
  "ready",
@@ -5275,7 +5713,7 @@ const ProviderSessionStartInput = effect.Schema.Struct({
5275
5713
  });
5276
5714
  const ProviderSendTurnInput = effect.Schema.Struct({
5277
5715
  threadId: ThreadId,
5278
- input: effect.Schema.optional(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(PROVIDER_SEND_TURN_MAX_INPUT_CHARS))),
5716
+ input: effect.Schema.optional(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(CONTEXT_HANDOFF_MAX_INPUT_CHARS))),
5279
5717
  attachments: effect.Schema.optional(effect.Schema.Array(ChatAttachment).check(effect.Schema.isMaxLength(8))),
5280
5718
  sourceControlContexts: effect.Schema.optional(effect.Schema.Array(ComposerSourceControlContext).check(effect.Schema.isMaxLength(10))),
5281
5719
  modelSelection: effect.Schema.optional(ModelSelection),
@@ -6472,7 +6910,7 @@ const AiFocusRefreshIntervalMs = effect_Schema.Literals([
6472
6910
  const ClientSettingsSchema = effect_Schema.Struct({
6473
6911
  aiFocusEnabled: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
6474
6912
  aiFocusRefreshIntervalMs: AiFocusRefreshIntervalMs.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(6e5))),
6475
- autoOpenPlanSidebar: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
6913
+ autoOpenPlanSidebar: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
6476
6914
  confirmThreadArchive: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
6477
6915
  confirmThreadDelete: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
6478
6916
  confirmThreadUnpin: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
@@ -6826,6 +7264,7 @@ const ServerProviderModel = effect.Schema.Struct({
6826
7264
  shortName: effect.Schema.optional(TrimmedNonEmptyString),
6827
7265
  subProvider: effect.Schema.optional(TrimmedNonEmptyString),
6828
7266
  aliases: effect.Schema.optional(effect.Schema.Array(TrimmedNonEmptyString)),
7267
+ maxContextTokens: effect.Schema.optional(PositiveInt),
6829
7268
  isDefault: effect.Schema.optional(effect.Schema.Boolean),
6830
7269
  isLegacy: effect.Schema.optional(effect.Schema.Boolean),
6831
7270
  isCustom: effect.Schema.Boolean,
@@ -6886,10 +7325,10 @@ const ServerProviderRateLimitCredits = effect.Schema.Struct({
6886
7325
  balance: effect.Schema.optional(TrimmedNonEmptyString)
6887
7326
  });
6888
7327
  /**
6889
- * Account-scoped rate-limit snapshot attached to a provider. Currently
6890
- * populated only by the Codex driver (one snapshot per Codex provider
6891
- * instance, since each instance can target a different `CODEX_HOME` /
6892
- * ChatGPT account). Other drivers leave it absent.
7328
+ * Account-scoped rate-limit snapshot attached to a provider. Populated by the
7329
+ * drivers that can surface usage limits (Codex, Claude, and OpenCode Go);
7330
+ * each instance yields one snapshot since accounts differ per instance.
7331
+ * Other drivers leave it absent.
6893
7332
  */
6894
7333
  const ServerProviderRateLimits = effect.Schema.Struct({
6895
7334
  limitId: effect.Schema.optional(TrimmedNonEmptyString),
@@ -6897,6 +7336,7 @@ const ServerProviderRateLimits = effect.Schema.Struct({
6897
7336
  planType: effect.Schema.optional(TrimmedNonEmptyString),
6898
7337
  primary: effect.Schema.optional(ServerProviderRateLimitWindow),
6899
7338
  secondary: effect.Schema.optional(ServerProviderRateLimitWindow),
7339
+ tertiary: effect.Schema.optional(ServerProviderRateLimitWindow),
6900
7340
  credits: effect.Schema.optional(ServerProviderRateLimitCredits),
6901
7341
  rateLimitReachedType: effect.Schema.optional(TrimmedNonEmptyString)
6902
7342
  });
@@ -7074,6 +7514,206 @@ var ServerProviderUpdateError = class extends effect.Schema.TaggedError()("Serve
7074
7514
  }
7075
7515
  };
7076
7516
  //#endregion
7517
+ //#region ../../packages/contracts/src/resourceTelemetry.ts
7518
+ const DiagnosticsPowerSnapshot = effect.Schema.Struct({
7519
+ idleState: effect.Schema.String,
7520
+ idleSeconds: effect.Schema.Number,
7521
+ onBattery: effect.Schema.Boolean,
7522
+ thermalState: effect.Schema.String,
7523
+ speedLimitPercent: effect.Schema.NullOr(effect.Schema.Number),
7524
+ suspended: effect.Schema.Boolean,
7525
+ locked: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Boolean)),
7526
+ lowPowerMode: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Boolean)),
7527
+ updatedAt: effect.Schema.optional(IsoDateTime),
7528
+ stale: effect.Schema.optional(effect.Schema.Boolean)
7529
+ });
7530
+ const ResourceTelemetryIoSemantics = effect.Schema.Literals([
7531
+ "storage",
7532
+ "logical",
7533
+ "all-io",
7534
+ "unavailable"
7535
+ ]);
7536
+ const ResourceTelemetryProcessCategory = effect.Schema.Literals([
7537
+ "server",
7538
+ "server-child",
7539
+ "provider-root",
7540
+ "terminal-root",
7541
+ "electron-main",
7542
+ "electron-renderer",
7543
+ "electron-gpu",
7544
+ "electron-utility",
7545
+ "resource-monitor",
7546
+ "unknown-ryco"
7547
+ ]);
7548
+ const ResourceTelemetrySourceStatus = effect.Schema.Literals([
7549
+ "starting",
7550
+ "healthy",
7551
+ "degraded",
7552
+ "unavailable",
7553
+ "stopped"
7554
+ ]);
7555
+ const ResourceTelemetryProcessIdentity = effect.Schema.Struct({
7556
+ pid: PositiveInt,
7557
+ startTimeMs: NonNegativeInt
7558
+ });
7559
+ effect.Schema.Struct({
7560
+ pid: PositiveInt,
7561
+ startTimeMs: effect.Schema.optional(NonNegativeInt)
7562
+ });
7563
+ effect.Schema.Struct({
7564
+ cumulativeCpuTime: effect.Schema.Boolean,
7565
+ currentCpuPercent: effect.Schema.Boolean,
7566
+ residentMemory: effect.Schema.Boolean,
7567
+ virtualMemory: effect.Schema.Boolean,
7568
+ ioBytes: effect.Schema.Boolean,
7569
+ processStartTime: effect.Schema.Boolean,
7570
+ processTree: effect.Schema.Boolean
7571
+ });
7572
+ effect.Schema.Struct({
7573
+ pid: PositiveInt,
7574
+ ppid: NonNegativeInt,
7575
+ startTimeMs: NonNegativeInt,
7576
+ runTimeMs: NonNegativeInt,
7577
+ name: effect.Schema.String,
7578
+ command: effect.Schema.String,
7579
+ status: effect.Schema.String,
7580
+ cpuPercent: effect.Schema.Number,
7581
+ cpuTimeMs: NonNegativeInt,
7582
+ residentBytes: NonNegativeInt,
7583
+ virtualBytes: NonNegativeInt,
7584
+ ioReadBytes: NonNegativeInt,
7585
+ ioWriteBytes: NonNegativeInt,
7586
+ ioSemantics: effect.Schema.Literals(["storage", "all-io"])
7587
+ });
7588
+ const ResourceTelemetryProcess = effect.Schema.Struct({
7589
+ identity: ResourceTelemetryProcessIdentity,
7590
+ ppid: NonNegativeInt,
7591
+ childPids: effect.Schema.Array(PositiveInt),
7592
+ depth: NonNegativeInt,
7593
+ name: effect.Schema.String,
7594
+ command: effect.Schema.String,
7595
+ status: effect.Schema.String,
7596
+ category: ResourceTelemetryProcessCategory,
7597
+ electronType: effect.Schema.optional(effect.Schema.String),
7598
+ electronServiceName: effect.Schema.optional(effect.Schema.String),
7599
+ cpuPercent: effect.Schema.Number,
7600
+ cpuTimeMs: NonNegativeInt,
7601
+ residentBytes: NonNegativeInt,
7602
+ peakResidentBytes: NonNegativeInt,
7603
+ virtualBytes: NonNegativeInt,
7604
+ ioReadBytes: NonNegativeInt,
7605
+ ioWriteBytes: NonNegativeInt,
7606
+ ioReadBytesPerSecond: effect.Schema.Number,
7607
+ ioWriteBytesPerSecond: effect.Schema.Number,
7608
+ ioSemantics: ResourceTelemetryIoSemantics,
7609
+ idleWakeupsPerSecond: effect.Schema.optional(effect.Schema.Number),
7610
+ runTimeMs: NonNegativeInt,
7611
+ firstSeenAt: IsoDateTime,
7612
+ lastSeenAt: IsoDateTime
7613
+ });
7614
+ const ResourceTelemetryAggregate = effect.Schema.Struct({
7615
+ processCount: NonNegativeInt,
7616
+ currentCpuPercent: effect.Schema.Number,
7617
+ cpuTimeMs: NonNegativeInt,
7618
+ currentRssBytes: NonNegativeInt,
7619
+ peakRssBytes: NonNegativeInt,
7620
+ ioReadBytes: NonNegativeInt,
7621
+ ioWriteBytes: NonNegativeInt,
7622
+ ioReadBytesPerSecond: effect.Schema.Number,
7623
+ ioWriteBytesPerSecond: effect.Schema.Number,
7624
+ processStarts: NonNegativeInt,
7625
+ processExits: NonNegativeInt
7626
+ });
7627
+ const ResourceTelemetryGroups = effect.Schema.Struct({
7628
+ backend: ResourceTelemetryAggregate,
7629
+ electron: ResourceTelemetryAggregate,
7630
+ monitor: ResourceTelemetryAggregate,
7631
+ allRyco: ResourceTelemetryAggregate
7632
+ });
7633
+ const ResourceTelemetrySourceHealth = effect.Schema.Struct({
7634
+ status: ResourceTelemetrySourceStatus,
7635
+ lastSampleAt: effect.Schema.NullOr(IsoDateTime),
7636
+ lastError: effect.Schema.NullOr(TrimmedNonEmptyString)
7637
+ });
7638
+ const ResourceTelemetryHealth = effect.Schema.Struct({
7639
+ native: ResourceTelemetrySourceHealth,
7640
+ desktop: ResourceTelemetrySourceHealth,
7641
+ sidecarVersion: effect.Schema.NullOr(TrimmedNonEmptyString),
7642
+ sidecarPid: effect.Schema.NullOr(PositiveInt),
7643
+ restartCount: NonNegativeInt,
7644
+ collectionDurationMicros: NonNegativeInt,
7645
+ scannedProcessCount: NonNegativeInt,
7646
+ retainedProcessCount: NonNegativeInt,
7647
+ inaccessibleProcessCount: NonNegativeInt
7648
+ });
7649
+ const ResourceAttributionEntry = effect.Schema.Struct({
7650
+ component: TrimmedNonEmptyString,
7651
+ operation: TrimmedNonEmptyString,
7652
+ logicalReadBytes: NonNegativeInt,
7653
+ logicalWriteBytes: NonNegativeInt,
7654
+ count: NonNegativeInt,
7655
+ durationMs: NonNegativeInt
7656
+ });
7657
+ const ResourceAttributionSnapshot = effect.Schema.Struct({
7658
+ readAt: IsoDateTime,
7659
+ entries: effect.Schema.Array(ResourceAttributionEntry)
7660
+ });
7661
+ const ResourceTelemetrySnapshot = effect.Schema.Struct({
7662
+ readAt: IsoDateTime,
7663
+ sampleIntervalMs: NonNegativeInt,
7664
+ processes: effect.Schema.Array(ResourceTelemetryProcess),
7665
+ groups: ResourceTelemetryGroups,
7666
+ power: effect.Schema.NullOr(DiagnosticsPowerSnapshot),
7667
+ speedLimitPercent: effect.Schema.NullOr(effect.Schema.Number),
7668
+ attribution: ResourceAttributionSnapshot,
7669
+ health: ResourceTelemetryHealth
7670
+ });
7671
+ const ResourceTelemetryHistoryInput = effect.Schema.Struct({
7672
+ windowMs: NonNegativeInt,
7673
+ bucketMs: NonNegativeInt
7674
+ });
7675
+ const ResourceTelemetryHistoryBucket = effect.Schema.Struct({
7676
+ startedAt: IsoDateTime,
7677
+ endedAt: IsoDateTime,
7678
+ avgCpuPercent: effect.Schema.Number,
7679
+ maxCpuPercent: effect.Schema.Number,
7680
+ maxRssBytes: NonNegativeInt,
7681
+ ioReadBytes: NonNegativeInt,
7682
+ ioWriteBytes: NonNegativeInt,
7683
+ maxProcessCount: NonNegativeInt
7684
+ });
7685
+ const ResourceTelemetryProcessSummary = effect.Schema.Struct({
7686
+ identity: ResourceTelemetryProcessIdentity,
7687
+ ppid: NonNegativeInt,
7688
+ depth: NonNegativeInt,
7689
+ name: effect.Schema.String,
7690
+ command: effect.Schema.String,
7691
+ category: ResourceTelemetryProcessCategory,
7692
+ firstSeenAt: IsoDateTime,
7693
+ lastSeenAt: IsoDateTime,
7694
+ currentCpuPercent: effect.Schema.Number,
7695
+ avgCpuPercent: effect.Schema.Number,
7696
+ maxCpuPercent: effect.Schema.Number,
7697
+ cpuTimeMs: NonNegativeInt,
7698
+ currentRssBytes: NonNegativeInt,
7699
+ peakRssBytes: NonNegativeInt,
7700
+ ioReadBytes: NonNegativeInt,
7701
+ ioWriteBytes: NonNegativeInt,
7702
+ ioSemantics: ResourceTelemetryIoSemantics,
7703
+ sampleCount: NonNegativeInt
7704
+ });
7705
+ const ResourceTelemetryHistory = effect.Schema.Struct({
7706
+ totalCpuTimeMs: effect.Schema.optional(NonNegativeInt),
7707
+ readAt: IsoDateTime,
7708
+ windowMs: NonNegativeInt,
7709
+ bucketMs: NonNegativeInt,
7710
+ sampleIntervalMs: NonNegativeInt,
7711
+ retainedSampleCount: NonNegativeInt,
7712
+ buckets: effect.Schema.Array(ResourceTelemetryHistoryBucket),
7713
+ topProcesses: effect.Schema.Array(ResourceTelemetryProcessSummary),
7714
+ health: ResourceTelemetryHealth
7715
+ });
7716
+ //#endregion
7077
7717
  //#region ../../packages/contracts/src/diagnostics.ts
7078
7718
  const DiagnosticsWarning = effect.Schema.Struct({
7079
7719
  code: TrimmedNonEmptyString,
@@ -7111,7 +7751,13 @@ const DiagnosticsResourceSample = effect.Schema.Struct({
7111
7751
  cpu: DiagnosticsResourceCpu,
7112
7752
  eventLoopDelayMs: effect.Schema.optional(effect.Schema.Number)
7113
7753
  });
7754
+ const DiagnosticsHostResources = effect.Schema.Struct({
7755
+ cpuCount: NonNegativeInt,
7756
+ totalMemoryBytes: NonNegativeInt,
7757
+ availableMemoryBytes: NonNegativeInt
7758
+ });
7114
7759
  const DiagnosticsResources = effect.Schema.Struct({
7760
+ host: effect.Schema.optional(DiagnosticsHostResources),
7115
7761
  current: DiagnosticsResourceSample,
7116
7762
  history: effect.Schema.Array(DiagnosticsResourceSample)
7117
7763
  });
@@ -7198,7 +7844,28 @@ const DiagnosticsDurationBucket = effect.Schema.Struct({
7198
7844
  maxMs: effect.Schema.optional(NonNegativeInt),
7199
7845
  count: NonNegativeInt
7200
7846
  });
7847
+ const DiagnosticsTraceSummary = effect.Schema.Struct({
7848
+ parseErrorCount: NonNegativeInt,
7849
+ scannedFilePaths: effect.Schema.Array(TrimmedNonEmptyString),
7850
+ firstSpanAt: effect.Schema.NullOr(IsoDateTime),
7851
+ lastSpanAt: effect.Schema.NullOr(IsoDateTime),
7852
+ failureCount: NonNegativeInt,
7853
+ interruptionCount: NonNegativeInt,
7854
+ slowSpanThresholdMs: NonNegativeInt,
7855
+ slowSpanCount: NonNegativeInt,
7856
+ logLevelCounts: effect.Schema.Record(effect.Schema.String, NonNegativeInt),
7857
+ latestWarningAndErrorLogs: effect.Schema.Array(effect.Schema.Struct({
7858
+ traceId: TrimmedNonEmptyString,
7859
+ spanId: TrimmedNonEmptyString,
7860
+ spanName: TrimmedNonEmptyString,
7861
+ level: TrimmedNonEmptyString,
7862
+ message: effect.Schema.String,
7863
+ seenAt: IsoDateTime
7864
+ })),
7865
+ partialFailure: effect.Schema.Boolean
7866
+ });
7201
7867
  const DiagnosticsTracing = effect.Schema.Struct({
7868
+ summary: effect.Schema.optional(DiagnosticsTraceSummary),
7202
7869
  retainedSpanCount: NonNegativeInt,
7203
7870
  recentSpans: effect.Schema.Array(DiagnosticsSpan),
7204
7871
  slowestSpans: effect.Schema.Array(DiagnosticsSpan),
@@ -7278,6 +7945,37 @@ const DiagnosticsLimits = effect.Schema.Struct({
7278
7945
  resourceSampleLimit: NonNegativeInt,
7279
7946
  fileTailBytes: NonNegativeInt
7280
7947
  });
7948
+ const DiagnosticsProcessEntry = effect.Schema.Struct({
7949
+ pid: NonNegativeInt,
7950
+ ppid: NonNegativeInt,
7951
+ startTimeMs: NonNegativeInt,
7952
+ command: effect.Schema.String,
7953
+ status: effect.Schema.String,
7954
+ cpuPercent: effect.Schema.Number,
7955
+ rssBytes: NonNegativeInt,
7956
+ elapsed: effect.Schema.String,
7957
+ depth: NonNegativeInt,
7958
+ childPids: effect.Schema.Array(NonNegativeInt)
7959
+ });
7960
+ const DiagnosticsProcessTree = effect.Schema.Struct({
7961
+ readAt: IsoDateTime,
7962
+ serverPid: NonNegativeInt,
7963
+ processes: effect.Schema.Array(DiagnosticsProcessEntry),
7964
+ totalCpuPercent: effect.Schema.Number,
7965
+ totalRssBytes: NonNegativeInt,
7966
+ error: effect.Schema.optional(effect.Schema.String)
7967
+ });
7968
+ const DiagnosticsSignalProcessInput = effect.Schema.Struct({
7969
+ pid: NonNegativeInt,
7970
+ startTimeMs: NonNegativeInt,
7971
+ signal: effect.Schema.Literals(["SIGINT", "SIGKILL"])
7972
+ });
7973
+ const DiagnosticsSignalProcessResult = effect.Schema.Struct({
7974
+ pid: NonNegativeInt,
7975
+ signal: effect.Schema.Literals(["SIGINT", "SIGKILL"]),
7976
+ signaled: effect.Schema.Boolean,
7977
+ message: effect.Schema.optional(effect.Schema.String)
7978
+ });
7281
7979
  const DiagnosticsSnapshot = effect.Schema.Struct({
7282
7980
  generatedAt: IsoDateTime,
7283
7981
  serverStartedAt: IsoDateTime,
@@ -7286,6 +7984,8 @@ const DiagnosticsSnapshot = effect.Schema.Struct({
7286
7984
  observability: DiagnosticsObservability,
7287
7985
  resources: DiagnosticsResources,
7288
7986
  liveProcesses: DiagnosticsLiveProcesses,
7987
+ processTree: effect.Schema.optional(DiagnosticsProcessTree),
7988
+ telemetry: effect.Schema.optional(ResourceTelemetrySnapshot),
7289
7989
  tracing: DiagnosticsTracing,
7290
7990
  failures: DiagnosticsFailures,
7291
7991
  client: DiagnosticsClient,
@@ -7930,12 +8630,15 @@ const GitRunStackedActionInput = effect.Schema.Struct({
7930
8630
  filePaths: effect.Schema.optional(effect.Schema.Array(TrimmedNonEmptyStringSchema).check(effect.Schema.isMinLength(1)))
7931
8631
  });
7932
8632
  const VcsListRefsInput = effect.Schema.Struct({
8633
+ fetchOrigin: effect.Schema.optional(effect.Schema.Boolean),
8634
+ originOnly: effect.Schema.optional(effect.Schema.Boolean),
7933
8635
  cwd: TrimmedNonEmptyStringSchema,
7934
8636
  query: effect.Schema.optional(TrimmedNonEmptyStringSchema.check(effect.Schema.isMaxLength(256))),
7935
8637
  cursor: effect.Schema.optional(NonNegativeInt),
7936
8638
  limit: effect.Schema.optional(PositiveInt.check(effect.Schema.isLessThanOrEqualTo(GIT_LIST_BRANCHES_MAX_LIMIT)))
7937
8639
  });
7938
8640
  const VcsCreateWorktreeInput = effect.Schema.Struct({
8641
+ fetchOrigin: effect.Schema.optional(effect.Schema.Boolean),
7939
8642
  cwd: TrimmedNonEmptyStringSchema,
7940
8643
  refName: TrimmedNonEmptyStringSchema,
7941
8644
  newRefName: effect.Schema.optional(TrimmedNonEmptyStringSchema),
@@ -9077,6 +9780,7 @@ const agentControlSlug = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(6
9077
9780
  const AgentControlCapability = agentControlSlug.pipe(effect.Schema.brand("AgentControlCapability"));
9078
9781
  const AGENT_CONTROL_CAPABILITIES = {
9079
9782
  read: AgentControlCapability.make("read"),
9783
+ attachFile: AgentControlCapability.make("files.attach"),
9080
9784
  createThreads: AgentControlCapability.make("threads.create"),
9081
9785
  sendMessage: AgentControlCapability.make("threads.send-message"),
9082
9786
  interruptThread: AgentControlCapability.make("threads.interrupt"),
@@ -9093,6 +9797,8 @@ const AGENT_CONTROL_CAPABILITIES = {
9093
9797
  readDevices: AgentControlCapability.make("devices.read"),
9094
9798
  readDeviceContent: AgentControlCapability.make("devices.content.read"),
9095
9799
  controlDevices: AgentControlCapability.make("devices.control"),
9800
+ controlComputer: AgentControlCapability.make("computer.control"),
9801
+ controlBrowser: AgentControlCapability.make("browser.control"),
9096
9802
  externalListProjects: AgentControlCapability.make("external.projects.list"),
9097
9803
  externalCreateTask: AgentControlCapability.make("external.tasks.create"),
9098
9804
  externalReadTask: AgentControlCapability.make("external.tasks.read"),
@@ -10756,6 +11462,8 @@ const WS_METHODS = {
10756
11462
  projectsReadFileBinary: "projects.readFileBinary",
10757
11463
  projectsWriteFile: "projects.writeFile",
10758
11464
  projectsStageFileReference: "projects.stageFileReference",
11465
+ chatAttachmentsCreateFileUpload: "chatAttachments.createFileUpload",
11466
+ chatAttachmentsReadChunk: "chatAttachments.readChunk",
10759
11467
  shellOpenInEditor: "shell.openInEditor",
10760
11468
  filesystemBrowse: "filesystem.browse",
10761
11469
  vcsPull: "vcs.pull",
@@ -10800,6 +11508,9 @@ const WS_METHODS = {
10800
11508
  serverCheckOpinionatedPlugins: "server.checkOpinionatedPlugins",
10801
11509
  serverInstallOpinionatedPlugin: "server.installOpinionatedPlugin",
10802
11510
  serverGetDiagnosticsSnapshot: "server.getDiagnosticsSnapshot",
11511
+ serverGetResourceTelemetryHistory: "server.getResourceTelemetryHistory",
11512
+ serverRetryResourceTelemetry: "server.retryResourceTelemetry",
11513
+ serverSignalDiagnosticProcess: "server.signalDiagnosticProcess",
10803
11514
  serverGetStatistics: "server.getStatistics",
10804
11515
  serverGetUsageSummary: "server.getUsageSummary",
10805
11516
  mcpListWorkspaces: "mcp.listWorkspaces",
@@ -10859,6 +11570,7 @@ const WS_METHODS = {
10859
11570
  subscribeAuthAccess: "subscribeAuthAccess"
10860
11571
  };
10861
11572
  const GitCreateWorktreeForProjectInput = effect.Schema.Struct({
11573
+ fetchOrigin: effect.Schema.optional(effect.Schema.Boolean),
10862
11574
  projectId: ProjectId,
10863
11575
  intent: CreateWorktreeIntent,
10864
11576
  worktreeLocation: effect.Schema.optional(WorktreeCheckoutLocation)
@@ -10994,6 +11706,21 @@ const WsServerGetDiagnosticsSnapshotRpc = effect_unstable_rpc_Rpc.make(WS_METHOD
10994
11706
  success: DiagnosticsSnapshot,
10995
11707
  error: effect.Schema.Union([DiagnosticsError, AuthRpcError])
10996
11708
  });
11709
+ const WsServerGetResourceTelemetryHistoryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetResourceTelemetryHistory, {
11710
+ payload: ResourceTelemetryHistoryInput,
11711
+ success: ResourceTelemetryHistory,
11712
+ error: effect.Schema.Union([DiagnosticsError, AuthRpcError])
11713
+ });
11714
+ const WsServerRetryResourceTelemetryRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverRetryResourceTelemetry, {
11715
+ payload: effect.Schema.Struct({}),
11716
+ success: ResourceTelemetrySnapshot,
11717
+ error: effect.Schema.Union([DiagnosticsError, AuthRpcError])
11718
+ });
11719
+ const WsServerSignalDiagnosticProcessRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverSignalDiagnosticProcess, {
11720
+ payload: DiagnosticsSignalProcessInput,
11721
+ success: DiagnosticsSignalProcessResult,
11722
+ error: effect.Schema.Union([DiagnosticsError, AuthRpcError])
11723
+ });
10997
11724
  const WsServerGetStatisticsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetStatistics, {
10998
11725
  payload: effect.Schema.Struct({}),
10999
11726
  success: StatisticsSnapshot,
@@ -11345,6 +12072,16 @@ const WsProjectsStageFileReferenceRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.
11345
12072
  success: ProjectStageFileReferenceResult,
11346
12073
  error: effect.Schema.Union([ProjectStageFileReferenceError, AuthRpcError])
11347
12074
  });
12075
+ const WsChatAttachmentsCreateFileUploadRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.chatAttachmentsCreateFileUpload, {
12076
+ payload: FileAttachmentCreateUploadUrlInput,
12077
+ success: FileAttachmentCreateUploadUrlResult,
12078
+ error: effect.Schema.Union([FileAttachmentCreateUploadUrlError, AuthRpcError])
12079
+ });
12080
+ const WsChatAttachmentsReadChunkRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.chatAttachmentsReadChunk, {
12081
+ payload: ChatAttachmentReadChunkInput,
12082
+ success: ChatAttachmentReadChunkResult,
12083
+ error: effect.Schema.Union([ChatAttachmentReadError, AuthRpcError])
12084
+ });
11348
12085
  const WsShellOpenInEditorRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.shellOpenInEditor, {
11349
12086
  payload: OpenInEditorInput,
11350
12087
  error: effect.Schema.Union([OpenError, AuthRpcError])
@@ -11724,14 +12461,142 @@ const WsAgentControlDisconnectMcpInstallationRpc = effect_unstable_rpc_Rpc.make(
11724
12461
  success: AgentControlMcpInstallationMutationResult,
11725
12462
  error: effect.Schema.Union([AgentControlExternalRpcError, AuthRpcError])
11726
12463
  });
11727
- const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
12464
+ const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerSignalDiagnosticProcessRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
11728
12465
  /**
11729
12466
  * Hosted relay channels carry both groups through one lifecycle-owned encrypted
11730
12467
  * channel. Direct clients keep the device group on its own low-priority socket
11731
- * so video-adjacent work cannot contend with chat RPC.
12468
+ * so video-adjacent work cannot contend with chat RPC. The explicit annotation
12469
+ * keeps the merged RPC union within the compiler's serializable type limit.
11732
12470
  */
11733
12471
  const WsHostedRpcGroup = WsRpcGroup.merge(WsDeviceRpcGroup);
11734
12472
  //#endregion
12473
+ //#region ../../packages/contracts/src/computerUse.ts
12474
+ const boundedText = effect.Schema.String.check(effect.Schema.isMaxLength(512));
12475
+ const ComputerAppAccess = effect.Schema.Literals([
12476
+ "ask",
12477
+ "allow",
12478
+ "block"
12479
+ ]);
12480
+ const ComputerBrowser = effect.Schema.Literals([
12481
+ "ryco",
12482
+ "chrome",
12483
+ "brave",
12484
+ "edge"
12485
+ ]);
12486
+ const ComputerUsePolicy = effect.Schema.Struct({
12487
+ enabled: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
12488
+ foregroundEnabled: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
12489
+ apps: effect.Schema.Record(boundedText, ComputerAppAccess).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed({}))),
12490
+ browsers: effect.Schema.Array(ComputerBrowser).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed([])))
12491
+ });
12492
+ const ComputerUseApp = effect.Schema.Struct({
12493
+ id: boundedText,
12494
+ name: boundedText
12495
+ });
12496
+ const ComputerUseActivity = effect.Schema.Struct({
12497
+ threadId: effect.Schema.String,
12498
+ target: boundedText,
12499
+ mode: effect.Schema.Literals(["background", "foreground"]),
12500
+ action: boundedText,
12501
+ x: effect.Schema.optionalKey(effect.Schema.Number),
12502
+ y: effect.Schema.optionalKey(effect.Schema.Number)
12503
+ });
12504
+ effect.Schema.Struct({
12505
+ policy: ComputerUsePolicy,
12506
+ apps: effect.Schema.Array(ComputerUseApp),
12507
+ connectedBrowsers: effect.Schema.Array(ComputerBrowser),
12508
+ accessibility: effect.Schema.String,
12509
+ screenRecording: effect.Schema.String,
12510
+ helperAvailable: effect.Schema.Boolean,
12511
+ permissionInfo: effect.Schema.optionalKey(effect.Schema.Struct({
12512
+ checkedAt: effect.Schema.NullOr(effect.Schema.String),
12513
+ error: effect.Schema.NullOr(boundedText),
12514
+ appName: boundedText,
12515
+ development: effect.Schema.Boolean
12516
+ })),
12517
+ activity: effect.Schema.NullOr(ComputerUseActivity),
12518
+ error: effect.Schema.NullOr(boundedText)
12519
+ });
12520
+ effect.Schema.Struct({
12521
+ browser: ComputerBrowser,
12522
+ url: effect.Schema.String,
12523
+ token: effect.Schema.String
12524
+ });
12525
+ /** Only the backend receives this through its private bootstrap descriptor. */
12526
+ const ComputerUseBridgeConfig = effect.Schema.Struct({
12527
+ url: effect.Schema.String,
12528
+ token: effect.Schema.String.check(effect.Schema.isMinLength(43), effect.Schema.isMaxLength(43))
12529
+ });
12530
+ const ComputerUseRequest = effect.Schema.Struct({
12531
+ sessionId: effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256)),
12532
+ threadId: effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256)),
12533
+ turnId: effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(256)),
12534
+ tool: effect.Schema.Literals(["computer", "browser"]),
12535
+ args: effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown)
12536
+ });
12537
+ const ComputerUseResult = effect.Schema.Struct({
12538
+ content: effect.Schema.Array(effect.Schema.Union([effect.Schema.Struct({
12539
+ type: effect.Schema.Literal("text"),
12540
+ text: effect.Schema.String
12541
+ }), effect.Schema.Struct({
12542
+ type: effect.Schema.Literal("image"),
12543
+ data: effect.Schema.String,
12544
+ mimeType: effect.Schema.Literals(["image/png", "image/jpeg"])
12545
+ })])),
12546
+ isError: effect.Schema.optionalKey(effect.Schema.Boolean)
12547
+ });
12548
+ //#endregion
12549
+ //#region ../../packages/contracts/src/projectBrowser.ts
12550
+ const text = effect.Schema.String.check(effect.Schema.isMaxLength(8192));
12551
+ const ProjectBrowserTab = effect.Schema.Struct({
12552
+ id: effect.Schema.String,
12553
+ project: text,
12554
+ title: text,
12555
+ url: text,
12556
+ loading: effect.Schema.Boolean,
12557
+ canGoBack: effect.Schema.Boolean,
12558
+ canGoForward: effect.Schema.Boolean,
12559
+ zoom: effect.Schema.Number,
12560
+ presentation: effect.Schema.Literals([
12561
+ "background",
12562
+ "panel",
12563
+ "window"
12564
+ ]),
12565
+ error: effect.Schema.NullOr(text)
12566
+ });
12567
+ effect.Schema.Struct({ tabs: effect.Schema.Array(ProjectBrowserTab) });
12568
+ effect.Schema.Struct({
12569
+ action: effect.Schema.Literals([
12570
+ "navigate",
12571
+ "back",
12572
+ "forward",
12573
+ "reload",
12574
+ "stop",
12575
+ "close",
12576
+ "zoom",
12577
+ "devtools",
12578
+ "popout",
12579
+ "dock"
12580
+ ]),
12581
+ tab: effect.Schema.String,
12582
+ url: effect.Schema.optionalKey(text),
12583
+ zoom: effect.Schema.optionalKey(effect.Schema.Number)
12584
+ });
12585
+ effect.Schema.Struct({
12586
+ owner: effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(128)),
12587
+ tab: effect.Schema.NullOr(effect.Schema.String),
12588
+ x: effect.Schema.Number,
12589
+ y: effect.Schema.Number,
12590
+ width: effect.Schema.Number,
12591
+ height: effect.Schema.Number
12592
+ });
12593
+ effect.Schema.Struct({
12594
+ url: text,
12595
+ port: effect.Schema.Number,
12596
+ process: effect.Schema.String,
12597
+ projectMatch: effect.Schema.Boolean
12598
+ });
12599
+ //#endregion
11735
12600
  //#region ../../packages/shared/src/schemaJson.ts
11736
12601
  const decodeJsonResult = (schema) => {
11737
12602
  const decode = effect.Schema.decodeExit(effect.Schema.fromJsonString(schema));
@@ -12554,6 +13419,12 @@ Object.defineProperty(exports, "AuthSessionId", {
12554
13419
  return AuthSessionId;
12555
13420
  }
12556
13421
  });
13422
+ Object.defineProperty(exports, "CHAT_ATTACHMENT_READ_CHUNK_BYTES", {
13423
+ enumerable: true,
13424
+ get: function() {
13425
+ return CHAT_ATTACHMENT_READ_CHUNK_BYTES;
13426
+ }
13427
+ });
12557
13428
  Object.defineProperty(exports, "CONTEXT_HANDOFF_ACTIVITY_KIND", {
12558
13429
  enumerable: true,
12559
13430
  get: function() {
@@ -12578,6 +13449,12 @@ Object.defineProperty(exports, "CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES",
12578
13449
  return CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES;
12579
13450
  }
12580
13451
  });
13452
+ Object.defineProperty(exports, "CONTEXT_HANDOFF_MAX_INPUT_CHARS", {
13453
+ enumerable: true,
13454
+ get: function() {
13455
+ return CONTEXT_HANDOFF_MAX_INPUT_CHARS;
13456
+ }
13457
+ });
12581
13458
  Object.defineProperty(exports, "CONTEXT_HANDOFF_WS_METHODS", {
12582
13459
  enumerable: true,
12583
13460
  get: function() {
@@ -12590,6 +13467,12 @@ Object.defineProperty(exports, "ChatAttachment", {
12590
13467
  return ChatAttachment;
12591
13468
  }
12592
13469
  });
13470
+ Object.defineProperty(exports, "ChatAttachmentReadError", {
13471
+ enumerable: true,
13472
+ get: function() {
13473
+ return ChatAttachmentReadError;
13474
+ }
13475
+ });
12593
13476
  Object.defineProperty(exports, "CheckpointRef", {
12594
13477
  enumerable: true,
12595
13478
  get: function() {
@@ -12620,12 +13503,36 @@ Object.defineProperty(exports, "CommandId", {
12620
13503
  return CommandId;
12621
13504
  }
12622
13505
  });
13506
+ Object.defineProperty(exports, "ComputerUseBridgeConfig", {
13507
+ enumerable: true,
13508
+ get: function() {
13509
+ return ComputerUseBridgeConfig;
13510
+ }
13511
+ });
13512
+ Object.defineProperty(exports, "ComputerUseRequest", {
13513
+ enumerable: true,
13514
+ get: function() {
13515
+ return ComputerUseRequest;
13516
+ }
13517
+ });
13518
+ Object.defineProperty(exports, "ComputerUseResult", {
13519
+ enumerable: true,
13520
+ get: function() {
13521
+ return ComputerUseResult;
13522
+ }
13523
+ });
12623
13524
  Object.defineProperty(exports, "ContextHandoffActivityPayload", {
12624
13525
  enumerable: true,
12625
13526
  get: function() {
12626
13527
  return ContextHandoffActivityPayload;
12627
13528
  }
12628
13529
  });
13530
+ Object.defineProperty(exports, "ContextHandoffAppliedBudget", {
13531
+ enumerable: true,
13532
+ get: function() {
13533
+ return ContextHandoffAppliedBudget;
13534
+ }
13535
+ });
12629
13536
  Object.defineProperty(exports, "ContextHandoffDigest", {
12630
13537
  enumerable: true,
12631
13538
  get: function() {
@@ -12812,6 +13719,12 @@ Object.defineProperty(exports, "EventId", {
12812
13719
  return EventId;
12813
13720
  }
12814
13721
  });
13722
+ Object.defineProperty(exports, "FileAttachmentCreateUploadUrlError", {
13723
+ enumerable: true,
13724
+ get: function() {
13725
+ return FileAttachmentCreateUploadUrlError;
13726
+ }
13727
+ });
12815
13728
  Object.defineProperty(exports, "FilesystemBrowseError", {
12816
13729
  enumerable: true,
12817
13730
  get: function() {
@@ -12836,12 +13749,24 @@ Object.defineProperty(exports, "GrokSettings", {
12836
13749
  return GrokSettings;
12837
13750
  }
12838
13751
  });
13752
+ Object.defineProperty(exports, "HUB_DEVICE_GRANT_MAX_BYTES", {
13753
+ enumerable: true,
13754
+ get: function() {
13755
+ return HUB_DEVICE_GRANT_MAX_BYTES;
13756
+ }
13757
+ });
12839
13758
  Object.defineProperty(exports, "HubConnectorStatus", {
12840
13759
  enumerable: true,
12841
13760
  get: function() {
12842
13761
  return HubConnectorStatus;
12843
13762
  }
12844
13763
  });
13764
+ Object.defineProperty(exports, "HubDeviceGrantClaims", {
13765
+ enumerable: true,
13766
+ get: function() {
13767
+ return HubDeviceGrantClaims;
13768
+ }
13769
+ });
12845
13770
  Object.defineProperty(exports, "HubEnrollmentCeremonyDetail", {
12846
13771
  enumerable: true,
12847
13772
  get: function() {
@@ -12854,6 +13779,12 @@ Object.defineProperty(exports, "HubEnrollmentStartResult", {
12854
13779
  return HubEnrollmentStartResult;
12855
13780
  }
12856
13781
  });
13782
+ Object.defineProperty(exports, "HubGrantVerificationKeyId", {
13783
+ enumerable: true,
13784
+ get: function() {
13785
+ return HubGrantVerificationKeyId;
13786
+ }
13787
+ });
12857
13788
  Object.defineProperty(exports, "HubIdentitySummary", {
12858
13789
  enumerable: true,
12859
13790
  get: function() {
@@ -13022,12 +13953,30 @@ Object.defineProperty(exports, "ModelCapabilities", {
13022
13953
  return ModelCapabilities;
13023
13954
  }
13024
13955
  });
13956
+ Object.defineProperty(exports, "ModelContextWindowMetadata", {
13957
+ enumerable: true,
13958
+ get: function() {
13959
+ return ModelContextWindowMetadata;
13960
+ }
13961
+ });
13025
13962
  Object.defineProperty(exports, "ModelSelection", {
13026
13963
  enumerable: true,
13027
13964
  get: function() {
13028
13965
  return ModelSelection;
13029
13966
  }
13030
13967
  });
13968
+ Object.defineProperty(exports, "NATIVE_E2EE_MAX_GRANT_KEYS", {
13969
+ enumerable: true,
13970
+ get: function() {
13971
+ return NATIVE_E2EE_MAX_GRANT_KEYS;
13972
+ }
13973
+ });
13974
+ Object.defineProperty(exports, "NodeE2eeAdmissionPolicy", {
13975
+ enumerable: true,
13976
+ get: function() {
13977
+ return NodeE2eeAdmissionPolicy;
13978
+ }
13979
+ });
13031
13980
  Object.defineProperty(exports, "NonNegativeInt", {
13032
13981
  enumerable: true,
13033
13982
  get: function() {
@@ -13832,6 +14781,12 @@ Object.defineProperty(exports, "ThreadSettlementOverride", {
13832
14781
  return ThreadSettlementOverride;
13833
14782
  }
13834
14783
  });
14784
+ Object.defineProperty(exports, "ThreadSnoozedPayload", {
14785
+ enumerable: true,
14786
+ get: function() {
14787
+ return ThreadSnoozedPayload;
14788
+ }
14789
+ });
13835
14790
  Object.defineProperty(exports, "ThreadStatusBucketOverriddenPayload", {
13836
14791
  enumerable: true,
13837
14792
  get: function() {
@@ -13868,6 +14823,12 @@ Object.defineProperty(exports, "ThreadUnsettledPayload", {
13868
14823
  return ThreadUnsettledPayload;
13869
14824
  }
13870
14825
  });
14826
+ Object.defineProperty(exports, "ThreadUnsnoozedPayload", {
14827
+ enumerable: true,
14828
+ get: function() {
14829
+ return ThreadUnsnoozedPayload;
14830
+ }
14831
+ });
13871
14832
  Object.defineProperty(exports, "ToolLifecycleItemType", {
13872
14833
  enumerable: true,
13873
14834
  get: function() {