ryco-cli 0.1.13 → 0.1.15

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 (217) hide show
  1. package/dist/{AcpNativeLogging-Be1KGJfF.cjs → AcpNativeLogging-OhEq3XNp.cjs} +1 -1
  2. package/dist/{AcpNativeLogging-Ba9Nn9Re.mjs → AcpNativeLogging-qZgtIa5K.mjs} +2 -2
  3. package/dist/{AzureDevOpsSourceControlProvider-CGlK6M0b.mjs → AzureDevOpsSourceControlProvider-B0YsaJyI.mjs} +3 -3
  4. package/dist/{AzureDevOpsSourceControlProvider-CVj-F-pW.cjs → AzureDevOpsSourceControlProvider-Dyu8KQ_S.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-CEZEd4PX.cjs → BitbucketSourceControlProvider-3VHGKSl1.cjs} +2 -2
  6. package/dist/{BitbucketSourceControlProvider-BV6iRDi7.mjs → BitbucketSourceControlProvider-B8IPx2Ad.mjs} +3 -3
  7. package/dist/{ClaudeDriver-lBU7EyUX.cjs → ClaudeDriver-CBCy0_WX.cjs} +176 -11
  8. package/dist/{ClaudeDriver-rooMNrJz.mjs → ClaudeDriver-DsW8yDj9.mjs} +177 -12
  9. package/dist/{CodexDriver-CZCIJSLV.cjs → CodexDriver-3TZPgrGk.cjs} +3 -3
  10. package/dist/{CodexDriver-DBz2rPXb.mjs → CodexDriver-DLwPz5sk.mjs} +4 -4
  11. package/dist/{CodexTextGeneration-BeG7ymPC.mjs → CodexTextGeneration-D1vV8grr.mjs} +2 -2
  12. package/dist/{CodexTextGeneration-BvIcyD1P.cjs → CodexTextGeneration-DLHSW4Mz.cjs} +1 -1
  13. package/dist/{CopilotDriver-CX5zhEdZ.cjs → CopilotDriver-C7a8IhyK.cjs} +20 -16
  14. package/dist/{CopilotDriver-D36vbGbn.mjs → CopilotDriver-DXvGBv-s.mjs} +21 -17
  15. package/dist/{CursorDriver-DWuuOSkJ.mjs → CursorDriver-CeB_vMKJ.mjs} +4 -4
  16. package/dist/{CursorDriver-CPBVeesr.cjs → CursorDriver-uNsDetA3.cjs} +3 -3
  17. package/dist/{ForgejoSourceControlProvider-CzmmcAZO.cjs → ForgejoSourceControlProvider-CJLksvL_.cjs} +2 -2
  18. package/dist/{ForgejoSourceControlProvider-CeN7Snfr.mjs → ForgejoSourceControlProvider-Ds0rU_PN.mjs} +3 -3
  19. package/dist/{GitHubSourceControlProvider-Dmz1LJct.mjs → GitHubSourceControlProvider-C7CJAslU.mjs} +3 -3
  20. package/dist/{GitHubSourceControlProvider-DfFR9O2o.cjs → GitHubSourceControlProvider-CrYNFu8S.cjs} +2 -2
  21. package/dist/{GitLabSourceControlProvider-DGoelNmL.cjs → GitLabSourceControlProvider-jbX5M34A.cjs} +2 -2
  22. package/dist/{GitLabSourceControlProvider-C21lwphV.mjs → GitLabSourceControlProvider-u-Y-e8PV.mjs} +3 -3
  23. package/dist/{GrokDriver-CIXj_4ry.cjs → GrokDriver-BJ00ZiYg.cjs} +3 -3
  24. package/dist/{GrokDriver-qKX1a63G.mjs → GrokDriver-CFgjwnvE.mjs} +4 -4
  25. package/dist/{OpenCodeDriver-DDEuwtXl.cjs → OpenCodeDriver-BTxd2Q3Q.cjs} +487 -207
  26. package/dist/{OpenCodeDriver-CbdswhqU.mjs → OpenCodeDriver-DNApoGdu.mjs} +487 -207
  27. package/dist/{SourceControlProviderDiscoveryCatalog-DJWDCoup.cjs → SourceControlProviderDiscoveryCatalog-CPO3a9_U.cjs} +1 -1
  28. package/dist/{SourceControlProviderDiscoveryCatalog-4_4yahsa.mjs → SourceControlProviderDiscoveryCatalog-hXWNwRMn.mjs} +1 -1
  29. package/dist/bin.cjs +1324 -340
  30. package/dist/bin.mjs +1324 -343
  31. package/dist/client/assets/{AccountSettings-Be5_48k0.js → AccountSettings-Cey-16wq.js} +1 -1
  32. package/dist/client/assets/{AiFocusSettings-DIpQXLW2.js → AiFocusSettings-CaHQXDaQ.js} +1 -1
  33. package/dist/client/assets/{AnimatedHeight-BIsV_Z3J.js → AnimatedHeight-BC-qaTJY.js} +1 -1
  34. package/dist/client/assets/AppearanceSettings-B6UaU-_a.js +1 -0
  35. package/dist/client/assets/{BranchToolbar.logic-D7slG_zJ.js → BranchToolbar.logic-DILAA3Cz.js} +1 -1
  36. package/dist/client/assets/ChatRightPanel-D-AL07IU.js +27 -0
  37. package/dist/client/assets/{ChatThreadRouteView-CocRstME.js → ChatThreadRouteView-tEo-zoCf.js} +1 -1
  38. package/dist/client/assets/CommandPaletteDialog-s7yf5Y2S.js +1 -0
  39. package/dist/client/assets/{CompositeItem-F3NGn6aG.js → CompositeItem-97y1QiiT.js} +1 -1
  40. package/dist/client/assets/{CompositeRoot-CmJGfRtc.js → CompositeRoot-C7Mz4Y_2.js} +1 -1
  41. package/dist/client/assets/{ConnectionsSettings-CXabxSaH.js → ConnectionsSettings-B0-Hkwof.js} +2 -2
  42. package/dist/client/assets/{DiagnosticsSettings-CZ3vY43G.js → DiagnosticsSettings-DX5LH9Bt.js} +1 -1
  43. package/dist/client/assets/{DialogHandle-C4uSr9wX.js → DialogHandle-Cl9dQBJp.js} +1 -1
  44. package/dist/client/assets/{DialogPopup-Dck8r8Hn.js → DialogPopup-a1M74u16.js} +1 -1
  45. package/dist/client/assets/DialogRoot-C_DO1gtO.js +1 -0
  46. package/dist/client/assets/{DialogTitle-CCedPAjV.js → DialogTitle-Bk-w3xLJ.js} +1 -1
  47. package/dist/client/assets/{DialogTrigger-CYJ7_YcV.js → DialogTrigger-D9nkMFu2.js} +1 -1
  48. package/dist/client/assets/{DialogViewport-D-CrTM-P.js → DialogViewport-tgJz2Lwn.js} +1 -1
  49. package/dist/client/assets/{DraftChatThreadRouteView-D8Bt3Qnq.js → DraftChatThreadRouteView-BU2IGTR6.js} +1 -1
  50. package/dist/client/assets/{ExternalIdentityWeb.logic-D64j70NH.js → ExternalIdentityWeb.logic-Bn1HigS9.js} +1 -1
  51. package/dist/client/assets/GlassSurface-CDok2tTN.js +1 -0
  52. package/dist/client/assets/{HostedConnectionControls-DxAXv0Hd.js → HostedConnectionControls-Cux_sRCM.js} +1 -1
  53. package/dist/client/assets/HostedHubRoot-CyySCdJV.js +1 -0
  54. package/dist/client/assets/{HostedNativeAuthorizationRoute-CTQe7Vjt.js → HostedNativeAuthorizationRoute-490iDXmk.js} +1 -1
  55. package/dist/client/assets/{HostedRelayTrustNotice-BldMySVi.js → HostedRelayTrustNotice-CcDOAwgS.js} +1 -1
  56. package/dist/client/assets/{Icons-CT3nd2MA.js → Icons-BEtED8P8.js} +1 -1
  57. package/dist/client/assets/{IntegrationsSettingsPanel-D6f3KoqM.js → IntegrationsSettingsPanel-BFTAvxtn.js} +1 -1
  58. package/dist/client/assets/KeybindingsSettings-VYgbhiZF.js +7 -0
  59. package/dist/client/assets/{McpServersSettings-B7YqVvV4.js → McpServersSettings-DSDCjoTn.js} +1 -1
  60. package/dist/client/assets/{MobileSheet-CkeG6_SP.js → MobileSheet-BDvnUC5W.js} +1 -1
  61. package/dist/client/assets/{NewWorktreeDialog-CKr2ioue.js → NewWorktreeDialog-C65Aifeb.js} +1 -1
  62. package/dist/client/assets/{NoActiveThreadState-BD-eNmfn.js → NoActiveThreadState-DehHNgAp.js} +1 -1
  63. package/dist/client/assets/{NodeSecuritySettings-FWM_SeDi.js → NodeSecuritySettings-DW9GJ-kU.js} +1 -1
  64. package/dist/client/assets/{OpinionatedPluginsSettings-BtZQF4Ze.js → OpinionatedPluginsSettings-DbxPOokL.js} +1 -1
  65. package/dist/client/assets/{PhoneGetAppInterstitial-CooQgpSw.js → PhoneGetAppInterstitial-CbyVrtDn.js} +1 -1
  66. package/dist/client/assets/{PhoneGetAppInterstitialBackdrop-B8vfJdZd.js → PhoneGetAppInterstitialBackdrop-BA4R225F.js} +1 -1
  67. package/dist/client/assets/PhoneHome-c0j_TBEC.js +1 -0
  68. package/dist/client/assets/PhoneSettingsSurface-5LFRIx_5.js +1 -0
  69. package/dist/client/assets/{ProjectFavicon-qZGdjYCM.js → ProjectFavicon-CeVJCQCy.js} +1 -1
  70. package/dist/client/assets/{ProviderModelPicker-D0w23uWo.js → ProviderModelPicker-MFRYAv_3.js} +1 -1
  71. package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-BkoRegCn.js → ProviderUpdateLaunchNotification.logic-CywRitn3.js} +1 -1
  72. package/dist/client/assets/ProvidersSettingsPanel-FYBEqSr_.js +1 -0
  73. package/dist/client/assets/{RedactedSensitiveText-CxtaUiKH.js → RedactedSensitiveText-BuWSWty8.js} +1 -1
  74. package/dist/client/assets/RootAppShell-5HrP6N8H.js +6 -0
  75. package/dist/client/assets/{RycoLetterMark-Bk0kvGJ_.js → RycoLetterMark-CZYntY8t.js} +1 -1
  76. package/dist/client/assets/SettingsDialog-CpwoqGS8.js +1 -0
  77. package/dist/client/assets/{SettingsPanels-Dr4f2y9l.js → SettingsPanels-COWRB29-.js} +3 -3
  78. package/dist/client/assets/{SettingsPanels.editor-B2x4U4rW.js → SettingsPanels.editor-lbLEbllb.js} +1 -1
  79. package/dist/client/assets/SourceControlSettings-DvBNelcO.js +1 -0
  80. package/dist/client/assets/{StatisticsPage-Bjouapmf.js → StatisticsPage-DxAKqvVX.js} +1 -1
  81. package/dist/client/assets/{StatisticsPanel-D_khPph6.js → StatisticsPanel-C0xGLlMA.js} +1 -1
  82. package/dist/client/assets/{StatisticsSettingsLink-Cx43bOeo.js → StatisticsSettingsLink-B7SZerf3.js} +1 -1
  83. package/dist/client/assets/ThreadStatusIndicators-CIOM98q2.js +0 -0
  84. package/dist/client/assets/{ThreadTerminalDrawer-DDHEuRGB.js → ThreadTerminalDrawer-DRelLlEP.js} +1 -1
  85. package/dist/client/assets/{ThreadWorkspacePanel-QF3KwbGm.js → ThreadWorkspacePanel-CktVSliZ.js} +3 -3
  86. package/dist/client/assets/{ToolbarRootContext-BgqqXVly.js → ToolbarRootContext-B1g8IP6k.js} +1 -1
  87. package/dist/client/assets/{WorkItemsTab-AOVwVvb7.js → WorkItemsTab-CahU_t_S.js} +12 -12
  88. package/dist/client/assets/{alert-LqMhbdE9.js → alert-DomE7dAt.js} +1 -1
  89. package/dist/client/assets/{alert-dialog-DxoA6ky8.js → alert-dialog-9Jyh0e8u.js} +1 -1
  90. package/dist/client/assets/appearancePreferences-BhNRCg6W.js +1 -0
  91. package/dist/client/assets/authorization-D8lJzXTE.js +1 -0
  92. package/dist/client/assets/{badge-CXw6fWrB.js → badge-w43sx8eF.js} +1 -1
  93. package/dist/client/assets/{branding-BDfN6Spd.js → branding-B7DcCXjn.js} +1 -1
  94. package/dist/client/assets/{button-BAbJxRzt.js → button-DG8WqjNn.js} +1 -1
  95. package/dist/client/assets/{capabilities-3zgirmmI.js → capabilities-B1FHGoov.js} +1 -1
  96. package/dist/client/assets/{chatThreadActions-DQ8aOQ1g.js → chatThreadActions-BZvyhfKr.js} +1 -1
  97. package/dist/client/assets/{collapsible-dxy6kc2k.js → collapsible-EhAEe5S9.js} +1 -1
  98. package/dist/client/assets/{command-CGNKG_Oe.js → command-Cyn6yIEa.js} +1 -1
  99. package/dist/client/assets/composerDraftStore-TYv9j3vY.js +11 -0
  100. package/dist/client/assets/{data-list-CYKBxN62.js → data-list-DTdqWMGN.js} +1 -1
  101. package/dist/client/assets/{desktopUpdateAtoms-CyfPW2jg.js → desktopUpdateAtoms-CPlZiFRm.js} +1 -1
  102. package/dist/client/assets/{desktopWorkspace-DHUZEpfy.js → desktopWorkspace-DEZ30LlY.js} +1 -1
  103. package/dist/client/assets/device-CHdXzvhB.js +168 -0
  104. package/dist/client/assets/{dialog-DQsYchqu.js → dialog-BNmFD6Nh.js} +1 -1
  105. package/dist/client/assets/{draft-input-CkzOk8BY.js → draft-input-dP7F8odz.js} +1 -1
  106. package/dist/client/assets/editorPreferences-B4GvqMiF.js +1 -0
  107. package/dist/client/assets/{empty-DwzqNgCP.js → empty-Ccxhyvdf.js} +1 -1
  108. package/dist/client/assets/{env-B4arEvJg.js → env-Bcq9YR3B.js} +1 -1
  109. package/dist/client/assets/{getPseudoElementBounds-X62ElHN8.js → getPseudoElementBounds-CO5HJT7x.js} +1 -1
  110. package/dist/client/assets/{group-D9ER9giz.js → group-CzdKmc45.js} +1 -1
  111. package/dist/client/assets/{index-CQmEMMQH.js → index-Gre6bNC8.js} +2 -2
  112. package/dist/client/assets/{input-CHEwW3oH.js → input-BZz4eLRl.js} +1 -1
  113. package/dist/client/assets/{kbd-DCGQZk18.js → kbd-DbvN3zTb.js} +1 -1
  114. package/dist/client/assets/{keybindings-CWJ7E9ZI.js → keybindings-BPE3eEAM.js} +1 -1
  115. package/dist/client/assets/{label-CVFHsLFO.js → label-DZf4lbNF.js} +1 -1
  116. package/dist/client/assets/{lib-qiiNMGgU.js → lib-DgOYoged.js} +1 -1
  117. package/dist/client/assets/{liquidGlass-CPsvmaF0.js → liquidGlass-yFkZrRk5.js} +1 -1
  118. package/dist/client/assets/{logging-M8H3z7rQ.js → logging-81iP6Hps.js} +1 -1
  119. package/dist/client/assets/main-DlGNPwsH.css +2 -0
  120. package/dist/client/assets/main-Dz0zookE.js +9 -0
  121. package/dist/client/assets/{menu-Dvxh8sD5.js → menu-B6UEFcn0.js} +1 -1
  122. package/dist/client/assets/{popover-CuH9Yrj3.js → popover-BuYzXGwl.js} +1 -1
  123. package/dist/client/assets/primary-CiDY2oUi.js +2 -0
  124. package/dist/client/assets/projectPaths-D6fHIU1b.js +1 -0
  125. package/dist/client/assets/{providerDriverMeta-I0TSo-QI.js → providerDriverMeta-sBwZhQoN.js} +1 -1
  126. package/dist/client/assets/{providerIconUtils-X0Z3EK-Q.js → providerIconUtils-DiDJeNtT.js} +1 -1
  127. package/dist/client/assets/providerInstances-vd2eZtHx.js +1 -0
  128. package/dist/client/assets/providerModels-vd2eZtHx.js +1 -0
  129. package/dist/client/assets/{qr-code-Bddq6K7S.js → qr-code-Ie92aZvE.js} +1 -1
  130. package/dist/client/assets/{radio-group-CBZFr4C8.js → radio-group-BuuTEtdC.js} +1 -1
  131. package/dist/client/assets/{resolveAriaLabelledBy-CD_ugzhJ.js → resolveAriaLabelledBy-0FA0k4xp.js} +1 -1
  132. package/dist/client/assets/{rightPanelRouteSearch-DB5gQGHK.js → rightPanelRouteSearch-BS8CkNS6.js} +1 -1
  133. package/dist/client/assets/runtime-CPM0EUhb.js +1 -0
  134. package/dist/client/assets/{scroll-area-Drsa8bNB.js → scroll-area-C0yF015F.js} +1 -1
  135. package/dist/client/assets/{scrollEdges-B-cqxY4l.js → scrollEdges-DI5Y3mtR.js} +1 -1
  136. package/dist/client/assets/{select-BYbVr-yg.js → select-CZukJlTn.js} +1 -1
  137. package/dist/client/assets/{separator-CdS5bi4Z.js → separator-D4ckGtPe.js} +1 -1
  138. package/dist/client/assets/session-logic-BalPN1Sc.js +4 -0
  139. package/dist/client/assets/{settingsDialogStore-ygYoScKe.js → settingsDialogStore-LxRFC5hh.js} +1 -1
  140. package/dist/client/assets/{settingsLayout-D8glO7f1.js → settingsLayout-CHJT5wtl.js} +1 -1
  141. package/dist/client/assets/{sheet-BO78gIKZ.js → sheet-BNfImQ-7.js} +1 -1
  142. package/dist/client/assets/{sidebar-Dm6l2GA6.js → sidebar-CFGg5Tkr.js} +1 -1
  143. package/dist/client/assets/sidebarProjectFolders-bhNsO9Z_.js +4 -0
  144. package/dist/client/assets/{sidebarStatusText-D0HT0fek.js → sidebarStatusText-C8QBhZhZ.js} +1 -1
  145. package/dist/client/assets/{skeleton-CvQSeJbw.js → skeleton-DOgQaVXv.js} +1 -1
  146. package/dist/client/assets/{spinner-ClF0jOcX.js → spinner-ClQu8SdC.js} +1 -1
  147. package/dist/client/assets/{src-Vf4LVnMX.js → src-DmPIm3ie.js} +1 -1
  148. package/dist/client/assets/storeSelectors-Cf2WDMfx.js +1 -0
  149. package/dist/client/assets/{switch-BTGo9Yip.js → switch-BZjA7VT9.js} +1 -1
  150. package/dist/client/assets/{terminal-links-CZ3c9AbA.js → terminal-links-CzJomeox.js} +1 -1
  151. package/dist/client/assets/{textarea-RFPODxWW.js → textarea-DHdmRD1r.js} +1 -1
  152. package/dist/client/assets/threadPinning-BLqwZebi.js +1 -0
  153. package/dist/client/assets/{threadPriorityRefreshRuntime-Ct5pnIbX.js → threadPriorityRefreshRuntime-BoNAlBXK.js} +1 -1
  154. package/dist/client/assets/{toast-CcSCAm4B.js → toast-C-0Ft2jD.js} +1 -1
  155. package/dist/client/assets/{toggle-I6h33Cu5.js → toggle-DsnOFDbJ.js} +1 -1
  156. package/dist/client/assets/{toggle-group-mLIkiJtU.js → toggle-group-Chxh9G6t.js} +1 -1
  157. package/dist/client/assets/{tooltip-C8sAONBj.js → tooltip-C_-9XEfA.js} +1 -1
  158. package/dist/client/assets/types-Cf2WDMfx.js +1 -0
  159. package/dist/client/assets/{uiStateStore-B6pjzSjj.js → uiStateStore-DzUrk2GS.js} +1 -1
  160. package/dist/client/assets/useAtlassian-CoHKzu-e.js +0 -0
  161. package/dist/client/assets/{useButton-D__1LqCF.js → useButton-BmvYhoMC.js} +1 -1
  162. package/dist/client/assets/{useCompositeListItem-Cmr_nuuG.js → useCompositeListItem-D0PvH4nv.js} +1 -1
  163. package/dist/client/assets/{useDebouncedValue-DHjoudTq.js → useDebouncedValue-s0BC8Yyp.js} +1 -1
  164. package/dist/client/assets/{useFloatingRootContext-D5EZmrCa.js → useFloatingRootContext-CLCaQEJk.js} +1 -1
  165. package/dist/client/assets/{useHandleNewThread-DX2FtXcP.js → useHandleNewThread-Bw460iXT.js} +1 -1
  166. package/dist/client/assets/{useLabelableId-DnQJ7amm.js → useLabelableId-CB_9OReR.js} +1 -1
  167. package/dist/client/assets/{useLocation-CDeYzWW6.js → useLocation-DGJMt6gP.js} +1 -1
  168. package/dist/client/assets/{useOpenInteractionType-CjtpACKR.js → useOpenInteractionType-BSSI2GzS.js} +1 -1
  169. package/dist/client/assets/{usePhoneThreadActions-BEa3VzGG.js → usePhoneThreadActions-BIDUSWSI.js} +1 -1
  170. package/dist/client/assets/{usePopupViewport-BuhsNdVy.js → usePopupViewport-8F-J1h5f.js} +1 -1
  171. package/dist/client/assets/{useScrollLock-D3tMGsRk.js → useScrollLock-CBz-5_MX.js} +1 -1
  172. package/dist/client/assets/{useStatistics-CtunoTE-.js → useStatistics-B91973jb.js} +2 -2
  173. package/dist/client/assets/{useSwipeDismiss-CbgDJvw1.js → useSwipeDismiss-D22_vuiH.js} +1 -1
  174. package/dist/client/assets/{useTheme-DiC-5xCb.js → useTheme-By1kfyiU.js} +1 -1
  175. package/dist/client/assets/{useThreadActions-fN-Al13y.js → useThreadActions-BCH01d6u.js} +1 -1
  176. package/dist/client/assets/{useTriggerFocusGuards-CrugmkhX.js → useTriggerFocusGuards-f7afwACm.js} +1 -1
  177. package/dist/client/assets/{useValueChanged-MQtIzPIU.js → useValueChanged-EkWF0C3k.js} +1 -1
  178. package/dist/client/assets/{utils-BofFIn5Y.js → utils-CV2fJJxC.js} +1 -1
  179. package/dist/client/index.html +1 -1
  180. package/dist/{collectUint8StreamText-Bb52hlpd.cjs → collectUint8StreamText-Dsbmrw73.cjs} +48 -10
  181. package/dist/{collectUint8StreamText-EDg4F0TU.mjs → collectUint8StreamText-oFvWyN3_.mjs} +37 -11
  182. package/dist/{makeManagedServerProvider-itynW7xv.cjs → makeManagedServerProvider-CANTNAsz.cjs} +9 -2
  183. package/dist/{makeManagedServerProvider-Cf8bNWwc.mjs → makeManagedServerProvider-PLtJj7EV.mjs} +10 -3
  184. package/package.json +1 -1
  185. package/dist/client/assets/AppearanceSettings-CYbSApl4.js +0 -1
  186. package/dist/client/assets/ChatRightPanel-BIS1DPGa.js +0 -27
  187. package/dist/client/assets/CommandPaletteDialog-C5xAo65V.js +0 -1
  188. package/dist/client/assets/DialogRoot-BpIvUdm7.js +0 -1
  189. package/dist/client/assets/GlassSurface-C3IIWMu9.js +0 -1
  190. package/dist/client/assets/HostedHubRoot-Cc8GYcK6.js +0 -1
  191. package/dist/client/assets/KeybindingsSettings-D2bNQPI-.js +0 -7
  192. package/dist/client/assets/PhoneHome-BtPE7bQn.js +0 -1
  193. package/dist/client/assets/PhoneSettingsSurface-tcFCccEL.js +0 -1
  194. package/dist/client/assets/ProvidersSettingsPanel-B3aBKY--.js +0 -1
  195. package/dist/client/assets/RootAppShell-C-0ChFVJ.js +0 -6
  196. package/dist/client/assets/SettingsDialog-Bbuoh793.js +0 -1
  197. package/dist/client/assets/SourceControlSettings-CkiYR4lR.js +0 -1
  198. package/dist/client/assets/ThreadStatusIndicators-ZImeLExQ.js +0 -0
  199. package/dist/client/assets/appearancePreferences-COvj0WMT.js +0 -1
  200. package/dist/client/assets/authorization-mIJKV2yp.js +0 -1
  201. package/dist/client/assets/composerDraftStore-CdJJZe42.js +0 -11
  202. package/dist/client/assets/device-B_qvyvtW.js +0 -168
  203. package/dist/client/assets/editorPreferences-DHIJntKF.js +0 -1
  204. package/dist/client/assets/main-BKS5Nf2_.js +0 -9
  205. package/dist/client/assets/main-DaYHZt-J.css +0 -2
  206. package/dist/client/assets/panel-right-BodNpkM9.js +0 -1
  207. package/dist/client/assets/primary-BzLEg2w1.js +0 -2
  208. package/dist/client/assets/projectPaths-BAd6NFcE.js +0 -1
  209. package/dist/client/assets/providerInstances-BJcfB_9E.js +0 -1
  210. package/dist/client/assets/providerModels-BJcfB_9E.js +0 -1
  211. package/dist/client/assets/runtime-CXut_g4p.js +0 -1
  212. package/dist/client/assets/session-logic-GZix7S2I.js +0 -4
  213. package/dist/client/assets/sidebarProjectFolders-cnmz3B_-.js +0 -4
  214. package/dist/client/assets/storeSelectors-DYekgeHu.js +0 -1
  215. package/dist/client/assets/types-DYekgeHu.js +0 -1
  216. package/dist/client/assets/useAppearancePreference-BlLlxQl7.js +0 -1
  217. package/dist/client/assets/useAtlassian-9-hy2f8z.js +0 -0
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { $n as ClaudeSettings, Ao as ApprovalRequestId, Go as RuntimeItemId, Jo as RuntimeSubagentId, Ko as RuntimeRequestId, Pn as TextGenerationError, Qo as TurnId, Ra as ProviderDriverKind, Ro as EventId, Wo as ProviderItemId, Xo as ThreadId, Yo as RuntimeTaskId, za as ProviderInstanceId } from "./collectUint8StreamText-EDg4F0TU.mjs";
3
+ import { $n as ClaudeSettings, Ba as ProviderDriverKind, Bo as EventId, Jo as RuntimeRequestId, Ko as ProviderItemId, Mo as ApprovalRequestId, Pn as TextGenerationError, Qo as ThreadId, Va as ProviderInstanceId, Xo as RuntimeSubagentId, Zo as RuntimeTaskId, es as TurnId, qo as RuntimeItemId } from "./collectUint8StreamText-oFvWyN3_.mjs";
4
4
  import { nt as sanitizeFeatureBranchName, st as ServerConfig, tt as sanitizeBranchFragment } from "./Metrics-BP9YjxZB.mjs";
5
- import { $ as spawnAndCollect, A as normalizeCliError, Bn as getModelSelectionBooleanOptionValue, C as buildCommitMessagePrompt, D as buildThreadPriorityPrompt, Dn as enrichProviderSnapshotWithVersionAdvisory, E as buildPrContentPrompt, F as makeClaudeCapabilitiesCacheKey, Fn as ServerSettingsService, G as buildSelectOptionDescriptor, I as makeClaudeContinuationGroupKey, In as resolveAttachmentPath, J as detailFromResult, K as buildServerProvider, L as makeClaudeEnvironment, M as sanitizePrTitle, Mn as normalizeCommandPath, N as sanitizeThreadTitle, Nn as resolveProviderMaintenanceCapabilitiesEffect, O as buildThreadTitlePrompt, P as toJsonSchemaObject, Pn as compareCliVersions, Q as providerModelsFromSettings, R as resolveClaudeHomePath, Rn as applyClaudePromptEffortPrefix, S as buildBranchNamePrompt, T as buildIssueContentTitlePrompt, U as DEFAULT_TIMEOUT_MS, Un as getProviderOptionCurrentValue, Vn as getModelSelectionStringOptionValue, W as buildBooleanOptionDescriptor, Wn as getProviderOptionDescriptors, Y as isCommandMissingCause, Z as parseGenericCliVersion, _ as ProviderEventLoggers, at as createProcessDeviceToolBinding, b as checkRtkAvailability, ct as ProviderAdapterSessionClosedError, dt as ProviderDriverError, et as AGENT_CONTROL_INTERNAL_SERVER_NAME, i as classifyTaskAgentKind, it as redactAgentControlSecrets, j as sanitizeCommitSubject, kn as makePackageManagedProviderMaintenanceResolver, lt as ProviderAdapterSessionNotFoundError, n as AgentControlSessionRegistry, ot as ProviderAdapterProcessError, qn as resolvePromptInjectedEffort, rt as installAgentControlNativeHttp, st as ProviderAdapterRequestError, t as makeServerQueueMetrics, tt as agentControlHostContext, ut as ProviderAdapterValidationError, v as makeEventNdjsonLogger, w as buildIssueContentPolishPrompt, x as validateRankInboxThreadsResult, y as buildTokenReductionInstructions, z as mergeProviderInstanceEnvironment, zn as createModelCapabilities } from "./bin.mjs";
5
+ import { $ as parseGenericCliVersion, A as buildThreadTitlePrompt, B as resolveClaudeHomePath, C as validateRankInboxThreadsResult, D as buildIssueContentTitlePrompt, E as buildIssueContentPolishPrompt, F as sanitizeThreadTitle, Fn as resolveProviderMaintenanceCapabilitiesEffect, G as DEFAULT_TIMEOUT_MS, Hn as createModelCapabilities, I as toJsonSchemaObject, In as compareCliVersions, J as buildServerProvider, K as buildBooleanOptionDescriptor, Kn as getProviderOptionCurrentValue, L as makeClaudeCapabilitiesCacheKey, Ln as ServerSettingsService, M as normalizeCliError, N as sanitizeCommitSubject, O as buildPrContentPrompt, P as sanitizePrTitle, Pn as normalizeCommandPath, R as makeClaudeContinuationGroupKey, S as checkRtkAvailability, T as buildCommitMessagePrompt, Un as getModelSelectionBooleanOptionValue, V as mergeProviderInstanceEnvironment, Vn as applyClaudePromptEffortPrefix, Wn as getModelSelectionStringOptionValue, X as detailFromResult, Xn as resolvePromptInjectedEffort, Z as isCommandMissingCause, at as installAgentControlNativeHttp, b as makeEventNdjsonLogger, ct as ProviderAdapterProcessError, dt as ProviderAdapterSessionNotFoundError, et as providerModelsFromSettings, ft as ProviderAdapterValidationError, i as classifyTaskAgentKind, jn as makePackageManagedProviderMaintenanceResolver, k as buildThreadPriorityPrompt, kn as enrichProviderSnapshotWithVersionAdvisory, lt as ProviderAdapterRequestError, n as AgentControlSessionRegistry, nt as AGENT_CONTROL_INTERNAL_SERVER_NAME, ot as redactAgentControlSecrets, pt as ProviderDriverError, q as buildSelectOptionDescriptor, qn as getProviderOptionDescriptors, rt as agentControlHostContext, st as createProcessDeviceToolBinding, t as makeServerQueueMetrics, tt as spawnAndCollect, ut as ProviderAdapterSessionClosedError, w as buildBranchNamePrompt, x as buildTokenReductionInstructions, y as ProviderEventLoggers, z as makeClaudeEnvironment, zn as resolveAttachmentPath } from "./bin.mjs";
6
6
  import { t as formatSourceControlContextsForAgent } from "./sourceControlContextFormatter-DEwpnVAH.mjs";
7
7
  import { n as formatProjectCustomSystemPrompt } from "./ProjectCustomSystemPrompt-CS1nulhL.mjs";
8
- import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-Cf8bNWwc.mjs";
8
+ import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-PLtJj7EV.mjs";
9
9
  import { t as defaultProviderContinuationIdentity } from "./ProviderDriver-kCV60GKk.mjs";
10
10
  import { Cache, Cause, DateTime, Deferred, Duration, Effect, Exit, Fiber, FileSystem, Option, Path, Queue, Ref, Result, Schema, Stream } from "effect";
11
11
  import { HttpClient } from "effect/unstable/http";
@@ -879,6 +879,87 @@ function parseCliArgs(args, options) {
879
879
  };
880
880
  }
881
881
  //#endregion
882
+ //#region src/provider/contextCompactionPolicy.ts
883
+ const CONTEXT_COMPACTION_TRIGGER_RATIO = .8;
884
+ function initialContextCompactionPolicyState(generation) {
885
+ return {
886
+ generation,
887
+ phase: "idle",
888
+ armed: true
889
+ };
890
+ }
891
+ /**
892
+ * Decides whether a context snapshot should arm automatic compaction.
893
+ *
894
+ * The lower rearm watermark prevents a repeated high-water snapshot from
895
+ * creating another request after a completed or interrupted compaction. A
896
+ * generation mismatch is always ignored so a late observation from a replaced
897
+ * provider session cannot mutate the active one.
898
+ */
899
+ function observeContextCompaction(state, input) {
900
+ if (input.generation !== state.generation || state.phase === "disabled") return {
901
+ state,
902
+ trigger: false
903
+ };
904
+ const { usedTokens, maxTokens } = input.usage;
905
+ if (maxTokens === void 0 || !Number.isFinite(maxTokens) || maxTokens <= 0 || !Number.isFinite(usedTokens) || usedTokens < 0) return {
906
+ state,
907
+ trigger: false
908
+ };
909
+ const ratio = usedTokens / maxTokens;
910
+ if (state.phase !== "idle") return {
911
+ state,
912
+ trigger: false
913
+ };
914
+ if (!state.armed) return ratio <= .65 ? {
915
+ state: {
916
+ ...state,
917
+ armed: true
918
+ },
919
+ trigger: false
920
+ } : {
921
+ state,
922
+ trigger: false
923
+ };
924
+ if (ratio < .8) return {
925
+ state,
926
+ trigger: false
927
+ };
928
+ return {
929
+ state: {
930
+ ...state,
931
+ phase: "requested",
932
+ armed: false
933
+ },
934
+ trigger: true,
935
+ windowTokens: Math.max(1, Math.floor(maxTokens * CONTEXT_COMPACTION_TRIGGER_RATIO))
936
+ };
937
+ }
938
+ function markContextCompactionStarted(state, generation) {
939
+ if (generation !== state.generation || state.phase === "disabled") return state;
940
+ return {
941
+ ...state,
942
+ phase: "compacting",
943
+ armed: false
944
+ };
945
+ }
946
+ function settleContextCompaction(state, generation) {
947
+ if (generation !== state.generation || state.phase === "disabled") return state;
948
+ return {
949
+ ...state,
950
+ phase: "idle",
951
+ armed: false
952
+ };
953
+ }
954
+ function disableContextCompaction(state, generation) {
955
+ if (generation !== state.generation) return state;
956
+ return {
957
+ ...state,
958
+ phase: "disabled",
959
+ armed: false
960
+ };
961
+ }
962
+ //#endregion
882
963
  //#region src/provider/Layers/ClaudeAdapter.ts
883
964
  /**
884
965
  * ClaudeAdapterLive - Scoped live implementation for the Claude Agent provider adapter.
@@ -889,6 +970,25 @@ function parseCliArgs(args, options) {
889
970
  * @module ClaudeAdapterLive
890
971
  */
891
972
  const PROVIDER = ProviderDriverKind.make("claudeAgent");
973
+ const CLAUDE_SUBAGENT_ATTRIBUTION_CACHE_CAP = 256;
974
+ function rememberClaudeSubagentLaunchInput(context, toolUseId, input) {
975
+ if (!context.subagentLaunchInputByToolUseId.has(toolUseId) && context.subagentLaunchInputByToolUseId.size >= CLAUDE_SUBAGENT_ATTRIBUTION_CACHE_CAP) {
976
+ const oldestToolUseId = context.subagentLaunchInputByToolUseId.keys().next().value;
977
+ if (oldestToolUseId !== void 0) context.subagentLaunchInputByToolUseId.delete(oldestToolUseId);
978
+ }
979
+ context.subagentLaunchInputByToolUseId.set(toolUseId, input);
980
+ }
981
+ function rememberClaudeSubagentModel(context, toolUseId, model) {
982
+ if (!context.subagentModelByToolUseId.has(toolUseId) && context.subagentModelByToolUseId.size >= CLAUDE_SUBAGENT_ATTRIBUTION_CACHE_CAP) {
983
+ const oldestToolUseId = context.subagentModelByToolUseId.keys().next().value;
984
+ if (oldestToolUseId !== void 0) context.subagentModelByToolUseId.delete(oldestToolUseId);
985
+ }
986
+ context.subagentModelByToolUseId.set(toolUseId, model);
987
+ }
988
+ function claudeSubagentLaunchModel(input) {
989
+ const model = trimmedClaudeString(input?.model);
990
+ return model?.toLowerCase() === "inherit" ? void 0 : model;
991
+ }
892
992
  function isUuid(value) {
893
993
  return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
894
994
  }
@@ -981,6 +1081,12 @@ function normalizeClaudeTokenUsage(value, contextWindow) {
981
1081
  ...typeof usage.duration_ms === "number" && Number.isFinite(usage.duration_ms) ? { durationMs: usage.duration_ms } : {}
982
1082
  };
983
1083
  }
1084
+ function withAutomaticCompactionCapability(usage, supported) {
1085
+ return supported ? {
1086
+ ...usage,
1087
+ compactsAutomatically: true
1088
+ } : usage;
1089
+ }
984
1090
  function asCanonicalTurnId(value) {
985
1091
  return value;
986
1092
  }
@@ -1192,7 +1298,7 @@ function claudeTaskMetadata(message) {
1192
1298
  ].filter(([, value]) => value !== void 0));
1193
1299
  return Object.keys(metadata).length > 0 ? metadata : void 0;
1194
1300
  }
1195
- function makeClaudeTaskSubagentRef(existing, message) {
1301
+ function makeClaudeTaskSubagentRef(existing, message, linkage) {
1196
1302
  const taskType = claudeTaskField(message, "task_type");
1197
1303
  const lastToolName = claudeTaskField(message, "last_tool_name");
1198
1304
  const description = claudeTaskField(message, "description") ?? existing?.description;
@@ -1207,6 +1313,8 @@ function makeClaudeTaskSubagentRef(existing, message) {
1207
1313
  capability: "summary",
1208
1314
  label,
1209
1315
  ...description && { description },
1316
+ ...linkage?.model ?? existing?.model ? { model: linkage?.model ?? existing?.model } : {},
1317
+ ...linkage?.effort ?? existing?.effort ? { effort: linkage?.effort ?? existing?.effort } : {},
1210
1318
  providerTaskId: RuntimeTaskId.make(message.task_id),
1211
1319
  ...Object.keys(metadata).length > 0 && { metadata }
1212
1320
  };
@@ -1502,6 +1610,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
1502
1610
  options: input.options
1503
1611
  }));
1504
1612
  const sessions = /* @__PURE__ */ new Map();
1613
+ let nextSessionGeneration = 0;
1505
1614
  const runtimeEventQueue = yield* Queue.bounded(2048);
1506
1615
  const runtimeEventQueueMetrics = yield* makeServerQueueMetrics({
1507
1616
  queue: "provider.adapter.runtimeEvents",
@@ -1847,6 +1956,40 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
1847
1956
  }
1848
1957
  });
1849
1958
  });
1959
+ const emitCompactionUnavailableWarning = Effect.fn("emitCompactionUnavailableWarning")(function* (context) {
1960
+ if (context.compactionUnavailableWarningEmitted) return;
1961
+ context.compactionUnavailableWarningEmitted = true;
1962
+ yield* emitRuntimeWarning(context, "Automatic context compaction is unavailable for this session. Start a new session if the context window fills.");
1963
+ });
1964
+ const maybeEnableAutomaticCompaction = Effect.fn("maybeEnableAutomaticCompaction")(function* (context, usage) {
1965
+ if (context.stopped || sessions.get(context.session.threadId) !== context) return;
1966
+ const decision = observeContextCompaction(context.compactionPolicy, {
1967
+ generation: context.generation,
1968
+ usage
1969
+ });
1970
+ context.compactionPolicy = decision.state;
1971
+ const windowTokens = decision.windowTokens;
1972
+ if (!decision.trigger || windowTokens === void 0) return;
1973
+ const applyFlagSettings = context.query.applyFlagSettings;
1974
+ if (!context.supportsAutomaticCompaction || !applyFlagSettings) {
1975
+ context.compactionPolicy = disableContextCompaction(context.compactionPolicy, context.generation);
1976
+ yield* emitCompactionUnavailableWarning(context);
1977
+ return;
1978
+ }
1979
+ const generation = context.generation;
1980
+ const applied = yield* Effect.tryPromise({
1981
+ try: () => applyFlagSettings.call(context.query, {
1982
+ autoCompactEnabled: true,
1983
+ autoCompactWindow: windowTokens
1984
+ }),
1985
+ catch: () => void 0
1986
+ }).pipe(Effect.as(true), Effect.timeout("3 seconds"), Effect.catch(() => Effect.succeed(false)));
1987
+ if (context.stopped || context.generation !== generation || sessions.get(context.session.threadId) !== context) return;
1988
+ if (!applied) {
1989
+ context.compactionPolicy = disableContextCompaction(context.compactionPolicy, generation);
1990
+ yield* emitCompactionUnavailableWarning(context);
1991
+ }
1992
+ });
1850
1993
  const completeTurn = Effect.fn("completeTurn")(function* (context, status, errorMessage, result) {
1851
1994
  const resultContextWindow = maxClaudeContextWindowFromModelUsage(result?.modelUsage);
1852
1995
  if (resultContextWindow !== void 0) context.lastKnownContextWindow = resultContextWindow;
@@ -1854,11 +1997,12 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
1854
1997
  const accumulatedTotalProcessedTokens = accumulatedSnapshot?.totalProcessedTokens ?? accumulatedSnapshot?.usedTokens;
1855
1998
  const lastGoodUsage = context.lastKnownTokenUsage;
1856
1999
  const maxTokens = resultContextWindow ?? context.lastKnownContextWindow;
1857
- const usageSnapshot = lastGoodUsage ? {
2000
+ const rawUsageSnapshot = lastGoodUsage ? {
1858
2001
  ...lastGoodUsage,
1859
2002
  ...typeof maxTokens === "number" && Number.isFinite(maxTokens) && maxTokens > 0 ? { maxTokens } : {},
1860
2003
  ...typeof accumulatedTotalProcessedTokens === "number" && Number.isFinite(accumulatedTotalProcessedTokens) && accumulatedTotalProcessedTokens > lastGoodUsage.usedTokens ? { totalProcessedTokens: accumulatedTotalProcessedTokens } : {}
1861
2004
  } : accumulatedSnapshot;
2005
+ const usageSnapshot = rawUsageSnapshot ? withAutomaticCompactionCapability(rawUsageSnapshot, context.supportsAutomaticCompaction) : void 0;
1862
2006
  const turnState = context.turnState;
1863
2007
  if (!turnState) {
1864
2008
  if (usageSnapshot) {
@@ -1964,6 +2108,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
1964
2108
  };
1965
2109
  if (context.agentControl) yield* context.agentControl.retireTurn(turnState.turnId);
1966
2110
  yield* updateResumeCursor(context);
2111
+ if (status === "completed" && usageSnapshot) yield* maybeEnableAutomaticCompaction(context, usageSnapshot);
1967
2112
  });
1968
2113
  const handleStreamEvent = Effect.fn("handleStreamEvent")(function* (context, message) {
1969
2114
  if (message.type !== "stream_event") return;
@@ -2034,6 +2179,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2034
2179
  };
2035
2180
  const nextFingerprint = parsedInput && Object.keys(parsedInput).length > 0 ? toolInputFingerprint(parsedInput) : void 0;
2036
2181
  context.inFlightTools.set(event.index, nextTool);
2182
+ if (nextTool.itemType === "collab_agent_tool_call" && parsedInput) rememberClaudeSubagentLaunchInput(context, nextTool.itemId, parsedInput);
2037
2183
  if (!parsedInput || !nextFingerprint || tool.lastEmittedInputFingerprint === nextFingerprint) return;
2038
2184
  nextTool = {
2039
2185
  ...nextTool,
@@ -2115,6 +2261,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2115
2261
  ...parentToolUseId ? { parentToolUseId } : {}
2116
2262
  };
2117
2263
  context.inFlightTools.set(index, tool);
2264
+ if (itemType === "collab_agent_tool_call") rememberClaudeSubagentLaunchInput(context, itemId, toolInput);
2118
2265
  const stamp = yield* makeEventStamp();
2119
2266
  yield* offerRuntimeEventForContext(context, {
2120
2267
  type: "item.started",
@@ -2282,6 +2429,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2282
2429
  const snapshotModel = trimmedClaudeString(message.message.model);
2283
2430
  const owningAgent = owningTaskId ? context.taskAgents.get(owningTaskId) : void 0;
2284
2431
  if (owningAgent && snapshotModel) owningAgent.model = snapshotModel;
2432
+ else if (snapshotModel) rememberClaudeSubagentModel(context, assistantParentToolUseId, snapshotModel);
2285
2433
  context.lastAssistantUuid = message.uuid;
2286
2434
  yield* updateResumeCursor(context);
2287
2435
  return;
@@ -2504,6 +2652,11 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2504
2652
  });
2505
2653
  return;
2506
2654
  case "status":
2655
+ if (message.status === "compacting") context.compactionPolicy = markContextCompactionStarted(context.compactionPolicy, context.generation);
2656
+ else if (message.compact_result === "failed") {
2657
+ context.compactionPolicy = disableContextCompaction(context.compactionPolicy, context.generation);
2658
+ yield* emitCompactionUnavailableWarning(context);
2659
+ } else if (message.compact_result === "success") context.compactionPolicy = settleContextCompaction(context.compactionPolicy, context.generation);
2507
2660
  yield* offerRuntimeEventForContext(context, {
2508
2661
  ...base,
2509
2662
  type: "session.state.changed",
@@ -2515,6 +2668,8 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2515
2668
  });
2516
2669
  return;
2517
2670
  case "compact_boundary":
2671
+ context.compactionPolicy = settleContextCompaction(context.compactionPolicy, context.generation);
2672
+ context.lastKnownTokenUsage = void 0;
2518
2673
  yield* offerRuntimeEventForContext(context, {
2519
2674
  ...base,
2520
2675
  type: "thread.state.changed",
@@ -2564,8 +2719,10 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2564
2719
  case "task_started": {
2565
2720
  const launchingTool = message.tool_use_id ? Array.from(context.inFlightTools.values()).find((tool) => tool.itemId === message.tool_use_id) : void 0;
2566
2721
  const owningAgentId = launchingTool?.agentId;
2567
- const launchInput = launchingTool?.input;
2568
- const model = trimmedClaudeString(launchInput?.model) ?? trimmedClaudeString(context.session.model ?? void 0);
2722
+ const launchInput = launchingTool?.input ?? (message.tool_use_id ? context.subagentLaunchInputByToolUseId.get(message.tool_use_id) : void 0);
2723
+ if (message.tool_use_id) context.subagentLaunchInputByToolUseId.delete(message.tool_use_id);
2724
+ const model = (message.tool_use_id ? context.subagentModelByToolUseId.get(message.tool_use_id) : void 0) ?? claudeSubagentLaunchModel(launchInput);
2725
+ if (message.tool_use_id) context.subagentModelByToolUseId.delete(message.tool_use_id);
2569
2726
  const rawLaunchEffort = launchInput?.effort;
2570
2727
  const effort = trimmedClaudeString(rawLaunchEffort) ?? (typeof rawLaunchEffort === "number" && Number.isFinite(rawLaunchEffort) ? String(rawLaunchEffort) : context.currentEffort);
2571
2728
  context.taskAgents.set(message.task_id, {
@@ -2602,7 +2759,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2602
2759
  taskType: message.task_type,
2603
2760
  agentId: owningAgentId
2604
2761
  }) === "agent") {
2605
- const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
2762
+ const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message, context.taskAgents.get(message.task_id));
2606
2763
  context.subagentByTaskId.set(message.task_id, subagent);
2607
2764
  yield* emitClaudeSubagentStarted(context, subagent, message);
2608
2765
  }
@@ -2619,7 +2776,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2619
2776
  eventId: usageStamp.eventId,
2620
2777
  createdAt: usageStamp.createdAt,
2621
2778
  type: "thread.token-usage.updated",
2622
- payload: { usage: normalizedUsage }
2779
+ payload: { usage: withAutomaticCompactionCapability(normalizedUsage, context.supportsAutomaticCompaction) }
2623
2780
  });
2624
2781
  }
2625
2782
  }
@@ -2645,7 +2802,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2645
2802
  });
2646
2803
  yield* emitWorkflowMemberProgress(context, message, workflowProgress);
2647
2804
  if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
2648
- const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
2805
+ const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message, context.taskAgents.get(message.task_id));
2649
2806
  context.subagentByTaskId.set(message.task_id, subagent);
2650
2807
  yield* emitClaudeSubagentUpdated(context, {
2651
2808
  subagent,
@@ -2698,7 +2855,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2698
2855
  eventId: usageStamp.eventId,
2699
2856
  createdAt: usageStamp.createdAt,
2700
2857
  type: "thread.token-usage.updated",
2701
- payload: { usage: normalizedUsage }
2858
+ payload: { usage: withAutomaticCompactionCapability(normalizedUsage, context.supportsAutomaticCompaction) }
2702
2859
  });
2703
2860
  }
2704
2861
  }
@@ -2717,7 +2874,7 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
2717
2874
  }
2718
2875
  });
2719
2876
  if (isClaudeSubagentTaskMessage(message) || context.subagentByTaskId.has(message.task_id)) {
2720
- const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message);
2877
+ const subagent = makeClaudeTaskSubagentRef(context.subagentByTaskId.get(message.task_id), message, context.taskAgents.get(message.task_id));
2721
2878
  context.subagentByTaskId.set(message.task_id, subagent);
2722
2879
  yield* emitClaudeSubagentCompleted(context, {
2723
2880
  subagent,
@@ -3312,7 +3469,10 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
3312
3469
  createdAt: startedAt,
3313
3470
  updatedAt: startedAt
3314
3471
  };
3472
+ const generation = ++nextSessionGeneration;
3473
+ const supportsAutomaticCompaction = typeof queryRuntime.applyFlagSettings === "function";
3315
3474
  const context = {
3475
+ generation,
3316
3476
  session,
3317
3477
  promptQueue,
3318
3478
  query: queryRuntime,
@@ -3332,6 +3492,8 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
3332
3492
  inFlightTools,
3333
3493
  suppressedSubagentBlocks: /* @__PURE__ */ new Map(),
3334
3494
  taskAgents: /* @__PURE__ */ new Map(),
3495
+ subagentLaunchInputByToolUseId: /* @__PURE__ */ new Map(),
3496
+ subagentModelByToolUseId: /* @__PURE__ */ new Map(),
3335
3497
  workflowMemberFingerprints: /* @__PURE__ */ new Map(),
3336
3498
  workflowPhasesByTaskId: /* @__PURE__ */ new Map(),
3337
3499
  liveTaskIds: /* @__PURE__ */ new Set(),
@@ -3339,6 +3501,9 @@ const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* (claudeSettin
3339
3501
  turnState: void 0,
3340
3502
  lastKnownContextWindow: void 0,
3341
3503
  lastKnownTokenUsage: void 0,
3504
+ compactionPolicy: initialContextCompactionPolicyState(generation),
3505
+ supportsAutomaticCompaction,
3506
+ compactionUnavailableWarningEmitted: false,
3342
3507
  lastAssistantUuid: resumeState?.resumeSessionAt,
3343
3508
  lastThreadStartedId: void 0,
3344
3509
  subagentByTaskId: /* @__PURE__ */ new Map(),
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
4
- const require_collectUint8StreamText = require("./collectUint8StreamText-Bb52hlpd.cjs");
4
+ const require_collectUint8StreamText = require("./collectUint8StreamText-Dsbmrw73.cjs");
5
5
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
6
6
  const require_bin = require("./bin.cjs");
7
7
  const require_sourceControlContextFormatter = require("./sourceControlContextFormatter-BDZqn-4T.cjs");
8
8
  const require_ProjectCustomSystemPrompt = require("./ProjectCustomSystemPrompt-B8SUlNGa.cjs");
9
- const require_makeManagedServerProvider = require("./makeManagedServerProvider-itynW7xv.cjs");
10
- const require_CodexTextGeneration = require("./CodexTextGeneration-BvIcyD1P.cjs");
9
+ const require_makeManagedServerProvider = require("./makeManagedServerProvider-CANTNAsz.cjs");
10
+ const require_CodexTextGeneration = require("./CodexTextGeneration-DLHSW4Mz.cjs");
11
11
  let effect = require("effect");
12
12
  let effect_unstable_http = require("effect/unstable/http");
13
13
  let effect_unstable_process = require("effect/unstable/process");
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Ai as ProviderApprovalDecision, Ao as ApprovalRequestId, Go as RuntimeItemId, Ko as RuntimeRequestId, Qo as TurnId, Ra as ProviderDriverKind, Ro as EventId, Wo as ProviderItemId, Yo as RuntimeTaskId, bi as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, er as CodexSettings, ha as ThreadGoal, za as ProviderInstanceId } from "./collectUint8StreamText-EDg4F0TU.mjs";
3
+ import { Ba as ProviderDriverKind, Bo as EventId, Jo as RuntimeRequestId, Ko as ProviderItemId, Mi as ProviderApprovalDecision, Mo as ApprovalRequestId, Si as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, Va as ProviderInstanceId, Zo as RuntimeTaskId, _a as ThreadGoal, er as CodexSettings, es as TurnId, qo as RuntimeItemId } from "./collectUint8StreamText-oFvWyN3_.mjs";
4
4
  import { st as ServerConfig } from "./Metrics-BP9YjxZB.mjs";
5
- import { $t as V2ThreadRealtimeErrorNotification, At as ToolRequestUserInputParams, B as buildCodexInitializeParams, Bn as getModelSelectionBooleanOptionValue, Bt as V2ItemCompletedNotification, Ct as SERVER_NOTIFICATION_METHODS, Dn as enrichProviderSnapshotWithVersionAdvisory, Dt as ServerRequest__ExecCommandApprovalParams, Et as ServerRequest__DynamicToolCallParams, Fn as ServerSettingsService, Ft as V2CommandExecutionOutputDeltaNotification, Gt as V2PlanDeltaNotification, H as makePendingCodexProvider, Ht as V2McpServerOauthLoginCompletedNotification, In as resolveAttachmentPath, It as V2ConfigWarningNotification, Jt as V2ServerRequestResolvedNotification, Kn as normalizeModelSlug, Kt as V2ReasoningSummaryTextDeltaNotification, Lt as V2DeprecationNoticeNotification, Mt as V2AccountRateLimitsUpdatedNotification, Nn as resolveProviderMaintenanceCapabilitiesEffect, Nt as V2AccountUpdatedNotification, Ot as ServerRequest__FileChangeRequestApprovalParams, Pt as V2AgentMessageDeltaNotification, Qt as V2ThreadRealtimeClosedNotification, Rt as V2ErrorNotification, St as CodexAppServerTransportError, Tt as ServerRequest__CommandExecutionRequestApprovalParams, Ut as V2McpToolCallProgressNotification, V as checkCodexProviderStatus, Vn as getModelSelectionStringOptionValue, Vt as V2ItemStartedNotification, Wt as V2ModelReroutedNotification, Xt as V2ThreadGoalUpdatedNotification, Yt as V2ThreadGoalClearedNotification, Zt as V2ThreadNameUpdatedNotification, _ as ProviderEventLoggers, _t as layerChildProcess, an as V2ThreadTokenUsageUpdatedNotification, at as createProcessDeviceToolBinding, b as checkRtkAvailability, bt as CodexAppServerRequestError, cn as V2TurnPlanUpdatedNotification, ct as ProviderAdapterSessionClosedError, dn as V2TurnStartResponse, dt as ProviderDriverError, en as V2ThreadRealtimeItemAddedNotification, fn as V2TurnSteerParams, ft as codexContinuationIdentity, gt as CodexAppServerClient, hn as V2WindowsWorldWritableWarningNotification, ht as expandHomePath, in as V2ThreadStatusChangedNotification, jt as ToolRequestUserInputResponse, kn as makePackageManagedProviderMaintenanceResolver, kt as ServerRequest__ToolRequestUserInputParams, ln as V2TurnStartParams, lt as ProviderAdapterSessionNotFoundError, mn as V2WindowsSandboxSetupCompletedNotification, mt as resolveCodexHomeLayout, n as AgentControlSessionRegistry, nn as V2ThreadRealtimeStartedNotification, on as V2TurnCompletedNotification, ot as ProviderAdapterProcessError, pn as V2TurnSteerResponse, pt as materializeCodexShadowHome, qt as V2ReasoningTextDeltaNotification, rn as V2ThreadStartedNotification, rt as installAgentControlNativeHttp, sn as V2TurnDiffUpdatedNotification, st as ProviderAdapterRequestError, t as makeServerQueueMetrics, tn as V2ThreadRealtimeOutputAudioDeltaNotification, un as V2TurnStartParams__CollaborationMode, ut as ProviderAdapterValidationError, v as makeEventNdjsonLogger, vt as CodexAppServerProcessExitedError, wt as ServerRequest__ApplyPatchApprovalParams, xt as CodexAppServerSpawnError, y as buildTokenReductionInstructions, yt as CodexAppServerProtocolParseError, z as mergeProviderInstanceEnvironment, zt as V2FileChangeOutputDeltaNotification } from "./bin.mjs";
5
+ import { $t as V2ThreadNameUpdatedNotification, At as ServerRequest__FileChangeRequestApprovalParams, Bt as V2ErrorNotification, Ct as CodexAppServerSpawnError, Dt as ServerRequest__CommandExecutionRequestApprovalParams, Et as ServerRequest__ApplyPatchApprovalParams, Fn as resolveProviderMaintenanceCapabilitiesEffect, Ft as V2AccountUpdatedNotification, Gt as V2McpToolCallProgressNotification, H as buildCodexInitializeParams, Ht as V2ItemCompletedNotification, It as V2AgentMessageDeltaNotification, Jt as V2ReasoningSummaryTextDeltaNotification, Kt as V2ModelReroutedNotification, Ln as ServerSettingsService, Lt as V2CommandExecutionOutputDeltaNotification, Mt as ToolRequestUserInputParams, Nt as ToolRequestUserInputResponse, Ot as ServerRequest__DynamicToolCallParams, Pt as V2AccountRateLimitsUpdatedNotification, Qt as V2ThreadGoalUpdatedNotification, Rt as V2ConfigWarningNotification, S as checkRtkAvailability, St as CodexAppServerRequestError, Tt as SERVER_NOTIFICATION_METHODS, U as checkCodexProviderStatus, Un as getModelSelectionBooleanOptionValue, Ut as V2ItemStartedNotification, V as mergeProviderInstanceEnvironment, Vt as V2FileChangeOutputDeltaNotification, W as makePendingCodexProvider, Wn as getModelSelectionStringOptionValue, Wt as V2McpServerOauthLoginCompletedNotification, Xt as V2ServerRequestResolvedNotification, Yn as normalizeModelSlug, Yt as V2ReasoningTextDeltaNotification, Zt as V2ThreadGoalClearedNotification, _n as V2WindowsWorldWritableWarningNotification, _t as expandHomePath, an as V2ThreadStartedNotification, at as installAgentControlNativeHttp, b as makeEventNdjsonLogger, bt as CodexAppServerProcessExitedError, cn as V2TurnCompletedNotification, ct as ProviderAdapterProcessError, dn as V2TurnStartParams, dt as ProviderAdapterSessionNotFoundError, en as V2ThreadRealtimeClosedNotification, fn as V2TurnStartParams__CollaborationMode, ft as ProviderAdapterValidationError, gn as V2WindowsSandboxSetupCompletedNotification, gt as resolveCodexHomeLayout, hn as V2TurnSteerResponse, ht as materializeCodexShadowHome, in as V2ThreadRealtimeStartedNotification, jn as makePackageManagedProviderMaintenanceResolver, jt as ServerRequest__ToolRequestUserInputParams, kn as enrichProviderSnapshotWithVersionAdvisory, kt as ServerRequest__ExecCommandApprovalParams, ln as V2TurnDiffUpdatedNotification, lt as ProviderAdapterRequestError, mn as V2TurnSteerParams, mt as codexContinuationIdentity, n as AgentControlSessionRegistry, nn as V2ThreadRealtimeItemAddedNotification, on as V2ThreadStatusChangedNotification, pn as V2TurnStartResponse, pt as ProviderDriverError, qt as V2PlanDeltaNotification, rn as V2ThreadRealtimeOutputAudioDeltaNotification, sn as V2ThreadTokenUsageUpdatedNotification, st as createProcessDeviceToolBinding, t as makeServerQueueMetrics, tn as V2ThreadRealtimeErrorNotification, un as V2TurnPlanUpdatedNotification, ut as ProviderAdapterSessionClosedError, vt as CodexAppServerClient, wt as CodexAppServerTransportError, x as buildTokenReductionInstructions, xt as CodexAppServerProtocolParseError, y as ProviderEventLoggers, yt as layerChildProcess, zn as resolveAttachmentPath, zt as V2DeprecationNoticeNotification } from "./bin.mjs";
6
6
  import { t as formatSourceControlContextsForAgent } from "./sourceControlContextFormatter-DEwpnVAH.mjs";
7
7
  import { t as appendProjectCustomSystemPrompt } from "./ProjectCustomSystemPrompt-CS1nulhL.mjs";
8
- import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-Cf8bNWwc.mjs";
9
- import { t as makeCodexTextGeneration } from "./CodexTextGeneration-BeG7ymPC.mjs";
8
+ import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-PLtJj7EV.mjs";
9
+ import { t as makeCodexTextGeneration } from "./CodexTextGeneration-D1vV8grr.mjs";
10
10
  import { Deferred, Effect, Exit, Fiber, FileSystem, Layer, Option, Queue, Redacted, Ref, Schema, Scope, Stream } from "effect";
11
11
  import { HttpClient } from "effect/unstable/http";
12
12
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Pn as TextGenerationError } from "./collectUint8StreamText-EDg4F0TU.mjs";
3
+ import { Pn as TextGenerationError } from "./collectUint8StreamText-oFvWyN3_.mjs";
4
4
  import { nt as sanitizeFeatureBranchName, st as ServerConfig, tt as sanitizeBranchFragment } from "./Metrics-BP9YjxZB.mjs";
5
- import { A as normalizeCliError, Bn as getModelSelectionBooleanOptionValue, C as buildCommitMessagePrompt, D as buildThreadPriorityPrompt, E as buildPrContentPrompt, In as resolveAttachmentPath, M as sanitizePrTitle, N as sanitizeThreadTitle, O as buildThreadTitlePrompt, P as toJsonSchemaObject, S as buildBranchNamePrompt, T as buildIssueContentTitlePrompt, Vn as getModelSelectionStringOptionValue, ht as expandHomePath, j as sanitizeCommitSubject, w as buildIssueContentPolishPrompt, x as validateRankInboxThreadsResult } from "./bin.mjs";
5
+ import { A as buildThreadTitlePrompt, C as validateRankInboxThreadsResult, D as buildIssueContentTitlePrompt, E as buildIssueContentPolishPrompt, F as sanitizeThreadTitle, I as toJsonSchemaObject, M as normalizeCliError, N as sanitizeCommitSubject, O as buildPrContentPrompt, P as sanitizePrTitle, T as buildCommitMessagePrompt, Un as getModelSelectionBooleanOptionValue, Wn as getModelSelectionStringOptionValue, _t as expandHomePath, k as buildThreadPriorityPrompt, w as buildBranchNamePrompt, zn as resolveAttachmentPath } from "./bin.mjs";
6
6
  import { Effect, FileSystem, Option, Path, Schema, Stream } from "effect";
7
7
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
8
8
  //#region src/textGeneration/CodexTextGeneration.ts
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const require_collectUint8StreamText = require("./collectUint8StreamText-Bb52hlpd.cjs");
3
+ const require_collectUint8StreamText = require("./collectUint8StreamText-Dsbmrw73.cjs");
4
4
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
5
5
  const require_bin = require("./bin.cjs");
6
6
  let effect = require("effect");
@@ -1,15 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const require_collectUint8StreamText = require("./collectUint8StreamText-Bb52hlpd.cjs");
3
+ const require_collectUint8StreamText = require("./collectUint8StreamText-Dsbmrw73.cjs");
4
4
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
5
5
  const require_bin = require("./bin.cjs");
6
- const require_makeManagedServerProvider = require("./makeManagedServerProvider-itynW7xv.cjs");
6
+ const require_makeManagedServerProvider = require("./makeManagedServerProvider-CANTNAsz.cjs");
7
7
  const require_ProviderDriver = require("./ProviderDriver--rNeAi3B.cjs");
8
- const require_CodexTextGeneration = require("./CodexTextGeneration-BvIcyD1P.cjs");
8
+ const require_CodexTextGeneration = require("./CodexTextGeneration-DLHSW4Mz.cjs");
9
9
  let effect = require("effect");
10
10
  let node_crypto = require("node:crypto");
11
11
  require("effect/unstable/process");
12
- let node_fs_promises = require("node:fs/promises");
13
12
  let _github_copilot_sdk = require("@github/copilot-sdk");
14
13
  //#region src/provider/Layers/CopilotAdapter.types.ts
15
14
  const COPILOT_DRIVER_KIND = require_collectUint8StreamText.ProviderDriverKind.make("copilot");
@@ -668,27 +667,32 @@ const makeStartSession = (deps) => (input) => effect.Effect.gen(function* () {
668
667
  }).pipe(effect.Effect.onError(() => effect.Effect.sync(() => deps.sessions.get(input.threadId)?.agentControl).pipe(effect.Effect.flatMap((connection) => connection ? connection.revoke("runtime-teardown") : effect.Effect.void))));
669
668
  const makeSendTurn = (deps) => (input) => effect.Effect.gen(function* () {
670
669
  const record = yield* deps.requireSession(input.threadId);
670
+ const declaredAttachmentBytes = (input.attachments ?? []).reduce((total, attachment) => total + attachment.sizeBytes, 0);
671
+ if (declaredAttachmentBytes > 52428800) return yield* new require_bin.ProviderAdapterRequestError({
672
+ provider: COPILOT_DRIVER_KIND,
673
+ method: "session.send",
674
+ detail: `Attachments total ${declaredAttachmentBytes} bytes; limit is ${require_collectUint8StreamText.PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
675
+ });
676
+ let attachmentTotalBytes = 0;
671
677
  const attachments = yield* effect.Effect.forEach(input.attachments ?? [], (attachment) => effect.Effect.gen(function* () {
672
- const filePath = require_bin.resolveAttachmentPath({
678
+ const persisted = require_bin.readPersistedAttachment({
673
679
  attachmentsDir: deps.serverConfig.attachmentsDir,
674
680
  attachment
675
681
  });
676
- if (!filePath) return yield* new require_bin.ProviderAdapterRequestError({
682
+ if (!persisted.ok) return yield* new require_bin.ProviderAdapterRequestError({
683
+ provider: COPILOT_DRIVER_KIND,
684
+ method: "session.send",
685
+ detail: persisted.reason
686
+ });
687
+ attachmentTotalBytes += persisted.sizeBytes;
688
+ if (attachmentTotalBytes > 52428800) return yield* new require_bin.ProviderAdapterRequestError({
677
689
  provider: COPILOT_DRIVER_KIND,
678
690
  method: "session.send",
679
- detail: `Invalid attachment id '${attachment.id}'.`
691
+ detail: `Attachments total ${attachmentTotalBytes} bytes; limit is ${require_collectUint8StreamText.PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
680
692
  });
681
693
  return {
682
694
  type: "blob",
683
- data: (yield* effect.Effect.tryPromise({
684
- try: () => (0, node_fs_promises.readFile)(filePath),
685
- catch: (cause) => new require_bin.ProviderAdapterRequestError({
686
- provider: COPILOT_DRIVER_KIND,
687
- method: "session.send",
688
- detail: `Failed to read attachment '${attachment.name}'.`,
689
- cause
690
- })
691
- })).toString("base64"),
695
+ data: persisted.bytes.toString("base64"),
692
696
  mimeType: attachmentMimeType(attachment),
693
697
  displayName: attachment.name
694
698
  };
@@ -1,15 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Fa as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Go as RuntimeItemId, Ko as RuntimeRequestId, Pa as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Pn as TextGenerationError, Qo as TurnId, Ra as ProviderDriverKind, Ro as EventId, Wo as ProviderItemId, er as CodexSettings, tr as CopilotSettings, za as ProviderInstanceId } from "./collectUint8StreamText-EDg4F0TU.mjs";
3
+ import { Ba as ProviderDriverKind, Bo as EventId, Ia as DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER, Jo as RuntimeRequestId, Ko as ProviderItemId, La as DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER, Pn as TextGenerationError, Va as ProviderInstanceId, bi as PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES, er as CodexSettings, es as TurnId, qo as RuntimeItemId, tr as CopilotSettings } from "./collectUint8StreamText-oFvWyN3_.mjs";
4
4
  import { st as ServerConfig } from "./Metrics-BP9YjxZB.mjs";
5
- import { D as buildThreadPriorityPrompt, G as buildSelectOptionDescriptor, Gn as getProviderOptionStringSelectionValue, In as resolveAttachmentPath, K as buildServerProvider, Ln as resolveCommandPath, N as sanitizeThreadTitle, O as buildThreadTitlePrompt, On as makeManualOnlyProviderMaintenanceCapabilities, Q as providerModelsFromSettings, Vn as getModelSelectionStringOptionValue, Y as isCommandMissingCause, _ as ProviderEventLoggers, at as createProcessDeviceToolBinding, dt as ProviderDriverError, et as AGENT_CONTROL_INTERNAL_SERVER_NAME, it as redactAgentControlSecrets, k as extractJsonObject, lt as ProviderAdapterSessionNotFoundError, n as AgentControlSessionRegistry, ot as ProviderAdapterProcessError, rt as installAgentControlNativeHttp, st as ProviderAdapterRequestError, t as makeServerQueueMetrics, tt as agentControlHostContext, ut as ProviderAdapterValidationError, v as makeEventNdjsonLogger, x as validateRankInboxThreadsResult, z as mergeProviderInstanceEnvironment, zn as createModelCapabilities } from "./bin.mjs";
6
- import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-Cf8bNWwc.mjs";
5
+ import { A as buildThreadTitlePrompt, An as makeManualOnlyProviderMaintenanceCapabilities, Bn as resolveCommandPath, C as validateRankInboxThreadsResult, F as sanitizeThreadTitle, Hn as createModelCapabilities, J as buildServerProvider, Jn as getProviderOptionStringSelectionValue, Rn as readPersistedAttachment, V as mergeProviderInstanceEnvironment, Wn as getModelSelectionStringOptionValue, Z as isCommandMissingCause, at as installAgentControlNativeHttp, b as makeEventNdjsonLogger, ct as ProviderAdapterProcessError, dt as ProviderAdapterSessionNotFoundError, et as providerModelsFromSettings, ft as ProviderAdapterValidationError, j as extractJsonObject, k as buildThreadPriorityPrompt, lt as ProviderAdapterRequestError, n as AgentControlSessionRegistry, nt as AGENT_CONTROL_INTERNAL_SERVER_NAME, ot as redactAgentControlSecrets, pt as ProviderDriverError, q as buildSelectOptionDescriptor, rt as agentControlHostContext, st as createProcessDeviceToolBinding, t as makeServerQueueMetrics, y as ProviderEventLoggers } from "./bin.mjs";
6
+ import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-PLtJj7EV.mjs";
7
7
  import { t as defaultProviderContinuationIdentity } from "./ProviderDriver-kCV60GKk.mjs";
8
- import { t as makeCodexTextGeneration } from "./CodexTextGeneration-BeG7ymPC.mjs";
8
+ import { t as makeCodexTextGeneration } from "./CodexTextGeneration-D1vV8grr.mjs";
9
9
  import { Effect, Option, Queue, Result, Schema, Stream } from "effect";
10
10
  import { randomUUID } from "node:crypto";
11
11
  import "effect/unstable/process";
12
- import { readFile } from "node:fs/promises";
13
12
  import { CopilotClient, RuntimeConnection } from "@github/copilot-sdk";
14
13
  //#region src/provider/Layers/CopilotAdapter.types.ts
15
14
  const COPILOT_DRIVER_KIND = ProviderDriverKind.make("copilot");
@@ -668,27 +667,32 @@ const makeStartSession = (deps) => (input) => Effect.gen(function* () {
668
667
  }).pipe(Effect.onError(() => Effect.sync(() => deps.sessions.get(input.threadId)?.agentControl).pipe(Effect.flatMap((connection) => connection ? connection.revoke("runtime-teardown") : Effect.void))));
669
668
  const makeSendTurn = (deps) => (input) => Effect.gen(function* () {
670
669
  const record = yield* deps.requireSession(input.threadId);
670
+ const declaredAttachmentBytes = (input.attachments ?? []).reduce((total, attachment) => total + attachment.sizeBytes, 0);
671
+ if (declaredAttachmentBytes > 52428800) return yield* new ProviderAdapterRequestError({
672
+ provider: COPILOT_DRIVER_KIND,
673
+ method: "session.send",
674
+ detail: `Attachments total ${declaredAttachmentBytes} bytes; limit is ${PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
675
+ });
676
+ let attachmentTotalBytes = 0;
671
677
  const attachments = yield* Effect.forEach(input.attachments ?? [], (attachment) => Effect.gen(function* () {
672
- const filePath = resolveAttachmentPath({
678
+ const persisted = readPersistedAttachment({
673
679
  attachmentsDir: deps.serverConfig.attachmentsDir,
674
680
  attachment
675
681
  });
676
- if (!filePath) return yield* new ProviderAdapterRequestError({
682
+ if (!persisted.ok) return yield* new ProviderAdapterRequestError({
683
+ provider: COPILOT_DRIVER_KIND,
684
+ method: "session.send",
685
+ detail: persisted.reason
686
+ });
687
+ attachmentTotalBytes += persisted.sizeBytes;
688
+ if (attachmentTotalBytes > 52428800) return yield* new ProviderAdapterRequestError({
677
689
  provider: COPILOT_DRIVER_KIND,
678
690
  method: "session.send",
679
- detail: `Invalid attachment id '${attachment.id}'.`
691
+ detail: `Attachments total ${attachmentTotalBytes} bytes; limit is ${PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
680
692
  });
681
693
  return {
682
694
  type: "blob",
683
- data: (yield* Effect.tryPromise({
684
- try: () => readFile(filePath),
685
- catch: (cause) => new ProviderAdapterRequestError({
686
- provider: COPILOT_DRIVER_KIND,
687
- method: "session.send",
688
- detail: `Failed to read attachment '${attachment.name}'.`,
689
- cause
690
- })
691
- })).toString("base64"),
695
+ data: persisted.bytes.toString("base64"),
692
696
  mimeType: attachmentMimeType(attachment),
693
697
  displayName: attachment.name
694
698
  };
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Ao as ApprovalRequestId, Ko as RuntimeRequestId, Pn as TextGenerationError, Qo as TurnId, Ra as ProviderDriverKind, Ro as EventId, nr as CursorSettings, za as ProviderInstanceId } from "./collectUint8StreamText-EDg4F0TU.mjs";
3
+ import { Ba as ProviderDriverKind, Bo as EventId, Jo as RuntimeRequestId, Mo as ApprovalRequestId, Pn as TextGenerationError, Va as ProviderInstanceId, es as TurnId, nr as CursorSettings } from "./collectUint8StreamText-oFvWyN3_.mjs";
4
4
  import { nt as sanitizeFeatureBranchName, st as ServerConfig, tt as sanitizeBranchFragment } from "./Metrics-BP9YjxZB.mjs";
5
- import { An as makeProviderMaintenanceCapabilities, C as buildCommitMessagePrompt, D as buildThreadPriorityPrompt, Dn as enrichProviderSnapshotWithVersionAdvisory, E as buildPrContentPrompt, Fn as ServerSettingsService, G as buildSelectOptionDescriptor, Gn as getProviderOptionStringSelectionValue, Hn as getProviderOptionBooleanSelectionValue, In as resolveAttachmentPath, K as buildServerProvider, M as sanitizePrTitle, N as sanitizeThreadTitle, Nn as resolveProviderMaintenanceCapabilitiesEffect, O as buildThreadTitlePrompt, Q as providerModelsFromSettings, S as buildBranchNamePrompt, T as buildIssueContentTitlePrompt, W as buildBooleanOptionDescriptor, Y as isCommandMissingCause, _ as ProviderEventLoggers, at as createProcessDeviceToolBinding, dt as ProviderDriverError, j as sanitizeCommitSubject, jn as makeStaticProviderMaintenanceResolver, k as extractJsonObject, lt as ProviderAdapterSessionNotFoundError, n as AgentControlSessionRegistry, nt as installAgentControlAcp, ot as ProviderAdapterProcessError, q as collectStreamAsString, st as ProviderAdapterRequestError, tt as agentControlHostContext, ut as ProviderAdapterValidationError, v as makeEventNdjsonLogger, w as buildIssueContentPolishPrompt, x as validateRankInboxThreadsResult, z as mergeProviderInstanceEnvironment, zn as createModelCapabilities } from "./bin.mjs";
6
- import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-Cf8bNWwc.mjs";
5
+ import { A as buildThreadTitlePrompt, C as validateRankInboxThreadsResult, D as buildIssueContentTitlePrompt, E as buildIssueContentPolishPrompt, F as sanitizeThreadTitle, Fn as resolveProviderMaintenanceCapabilitiesEffect, Gn as getProviderOptionBooleanSelectionValue, Hn as createModelCapabilities, J as buildServerProvider, Jn as getProviderOptionStringSelectionValue, K as buildBooleanOptionDescriptor, Ln as ServerSettingsService, Mn as makeProviderMaintenanceCapabilities, N as sanitizeCommitSubject, Nn as makeStaticProviderMaintenanceResolver, O as buildPrContentPrompt, P as sanitizePrTitle, T as buildCommitMessagePrompt, V as mergeProviderInstanceEnvironment, Y as collectStreamAsString, Z as isCommandMissingCause, b as makeEventNdjsonLogger, ct as ProviderAdapterProcessError, dt as ProviderAdapterSessionNotFoundError, et as providerModelsFromSettings, ft as ProviderAdapterValidationError, it as installAgentControlAcp, j as extractJsonObject, k as buildThreadPriorityPrompt, kn as enrichProviderSnapshotWithVersionAdvisory, lt as ProviderAdapterRequestError, n as AgentControlSessionRegistry, pt as ProviderDriverError, q as buildSelectOptionDescriptor, rt as agentControlHostContext, st as createProcessDeviceToolBinding, w as buildBranchNamePrompt, y as ProviderEventLoggers, zn as resolveAttachmentPath } from "./bin.mjs";
6
+ import { n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-PLtJj7EV.mjs";
7
7
  import { t as defaultProviderContinuationIdentity } from "./ProviderDriver-kCV60GKk.mjs";
8
- import { a as makeAcpRequestOpenedEvent, c as makeAcpToolCallEvent, d as AcpSessionRuntime, f as parsePermissionRequest, i as makeAcpPlanUpdatedEvent, l as acpPermissionOutcome, m as SessionConfigOption, n as makeAcpAssistantItemEvent, o as makeAcpRequestResolvedEvent, r as makeAcpContentDeltaEvent, s as makeAcpTokenUsageEvent, t as makeAcpNativeLoggers, u as mapAcpToAdapterError } from "./AcpNativeLogging-Ba9Nn9Re.mjs";
8
+ import { a as makeAcpRequestOpenedEvent, c as makeAcpToolCallEvent, d as AcpSessionRuntime, f as parsePermissionRequest, i as makeAcpPlanUpdatedEvent, l as acpPermissionOutcome, m as SessionConfigOption, n as makeAcpAssistantItemEvent, o as makeAcpRequestResolvedEvent, r as makeAcpContentDeltaEvent, s as makeAcpTokenUsageEvent, t as makeAcpNativeLoggers, u as mapAcpToAdapterError } from "./AcpNativeLogging-qZgtIa5K.mjs";
9
9
  import { Cause, DateTime, Deferred, Effect, Exit, Fiber, FileSystem, Layer, Option, Path, PubSub, Ref, Result, Schema, Scope, Semaphore, Stream, SynchronizedRef } from "effect";
10
10
  import { HttpClient } from "effect/unstable/http";
11
11
  import * as nodePath from "node:path";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-LGfotAqq.cjs");
4
- const require_collectUint8StreamText = require("./collectUint8StreamText-Bb52hlpd.cjs");
4
+ const require_collectUint8StreamText = require("./collectUint8StreamText-Dsbmrw73.cjs");
5
5
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
6
6
  const require_bin = require("./bin.cjs");
7
- const require_makeManagedServerProvider = require("./makeManagedServerProvider-itynW7xv.cjs");
7
+ const require_makeManagedServerProvider = require("./makeManagedServerProvider-CANTNAsz.cjs");
8
8
  const require_ProviderDriver = require("./ProviderDriver--rNeAi3B.cjs");
9
- const require_AcpNativeLogging = require("./AcpNativeLogging-Be1KGJfF.cjs");
9
+ const require_AcpNativeLogging = require("./AcpNativeLogging-OhEq3XNp.cjs");
10
10
  let effect = require("effect");
11
11
  let effect_unstable_http = require("effect/unstable/http");
12
12
  let node_path = require("node:path");