ryco-cli 0.1.21 → 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-D54V5cIY.cjs → AcpNativeLogging-COepku4a.cjs} +78 -7
  2. package/dist/{AcpNativeLogging-Ch-s9nA8.mjs → AcpNativeLogging-D7e1dn7s.mjs} +74 -9
  3. package/dist/{AzureDevOpsSourceControlProvider-DTOlXGyd.mjs → AzureDevOpsSourceControlProvider-BNGEg1R8.mjs} +3 -3
  4. package/dist/{AzureDevOpsSourceControlProvider-BzB5-N9m.cjs → AzureDevOpsSourceControlProvider-CrvgKNf2.cjs} +2 -2
  5. package/dist/{BitbucketSourceControlProvider-DGd4IPx5.mjs → BitbucketSourceControlProvider-Bt21jw68.mjs} +3 -3
  6. package/dist/{BitbucketSourceControlProvider-D-8PWXO3.cjs → BitbucketSourceControlProvider-BzhsQwH-.cjs} +2 -2
  7. package/dist/{BunPTY-CNvWSzEJ.mjs → BunPTY-TbHbSc8S.mjs} +1 -1
  8. package/dist/{ClaudeDriver-DxowtK6I.mjs → ClaudeDriver-D65SPdHR.mjs} +44 -119
  9. package/dist/{ClaudeDriver-HEbUzW34.cjs → ClaudeDriver-D7NatUx6.cjs} +52 -127
  10. package/dist/{CodexDriver-CccSWoP3.mjs → CodexDriver-D4z5-wUD.mjs} +237 -50
  11. package/dist/{CodexDriver-YG4IwzLm.cjs → CodexDriver-DWGtHt9r.cjs} +235 -48
  12. package/dist/{CodexTextGeneration-CBJHkgOz.cjs → CodexTextGeneration-B4tJTUDo.cjs} +1 -1
  13. package/dist/{CodexTextGeneration-BfGt7ZUe.mjs → CodexTextGeneration-BikHow8k.mjs} +2 -2
  14. package/dist/{CopilotDriver-Bm4OZMkm.cjs → CopilotDriver-DJvYncGI.cjs} +122 -23
  15. package/dist/{CopilotDriver-DZAW-7yV.mjs → CopilotDriver-ZvvsAIkd.mjs} +123 -24
  16. package/dist/{CursorDriver-B4jb4rWd.mjs → CursorDriver-B1QSBzuH.mjs} +34 -74
  17. package/dist/{CursorDriver-CYcKAkUY.cjs → CursorDriver-D3I4KULs.cjs} +33 -73
  18. package/dist/{ForgejoSourceControlProvider-Dfi8KH7I.mjs → ForgejoSourceControlProvider-BGXysSX6.mjs} +3 -3
  19. package/dist/{ForgejoSourceControlProvider-CXUevO6C.cjs → ForgejoSourceControlProvider-Dh6DOoc8.cjs} +2 -2
  20. package/dist/{GitHubSourceControlProvider-DOs1ouvp.cjs → GitHubSourceControlProvider-8hsv_kCE.cjs} +2 -2
  21. package/dist/{GitHubSourceControlProvider-BH97aNa0.mjs → GitHubSourceControlProvider-CPCYV8Xo.mjs} +3 -3
  22. package/dist/{GitLabSourceControlProvider-CfbE6GYD.cjs → GitLabSourceControlProvider-B0ZbF9Zx.cjs} +2 -2
  23. package/dist/{GitLabSourceControlProvider-nIzcy9AJ.mjs → GitLabSourceControlProvider-Bvknpaon.mjs} +3 -3
  24. package/dist/{GrokDriver-CENrrqQc.mjs → GrokDriver-DgQe3pKz.mjs} +30 -10
  25. package/dist/{GrokDriver-C35gWEiw.cjs → GrokDriver-_puXDTU3.cjs} +31 -11
  26. package/dist/{NodePTY-lO8PwZLk.mjs → NodePTY-B_p5tLYO.mjs} +1 -1
  27. package/dist/{OpenCodeDriver-CHuQ6Xhc.cjs → OpenCodeDriver-401RexI0.cjs} +137 -19
  28. package/dist/{OpenCodeDriver-BIxSPI9J.mjs → OpenCodeDriver-DNUlF8M-.mjs} +135 -20
  29. package/dist/{SourceControlProviderDiscoveryCatalog-DaRgCE5d.mjs → SourceControlProviderDiscoveryCatalog-B37RHe2u.mjs} +1 -1
  30. package/dist/{SourceControlProviderDiscoveryCatalog-DCmYsPEa.cjs → SourceControlProviderDiscoveryCatalog-DreaAH1H.cjs} +1 -1
  31. package/dist/bin.cjs +4508 -613
  32. package/dist/bin.mjs +4499 -615
  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-TXvkTDG8.js → ExternalIdentityWeb.logic-CGJKCFPo.js} +1 -1
  56. package/dist/client/assets/{GlassSurface-k7VAG7Dp.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-Cpzyop0g.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-BWOy8LJG.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-ro03rSMk.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-CBbr_lPX.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-DUe5V2Mj.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-BdUaa4U1.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-CQJvt69U.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-DCgzArdM.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-B7pkMeOn.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-B1VrUJXw.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-C7IGaRXO.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-WiaEF1ae.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-Bxew8m4Q.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-Cgjn5Y-7.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-BPNtoDXL.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-BQkcb-1_.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-D8TBiBWk.mjs → collectUint8StreamText-C_VNyArd.mjs} +614 -20
  254. package/dist/{collectUint8StreamText-C5fop6Zf.cjs → collectUint8StreamText-DStwNTTK.cjs} +679 -19
  255. package/dist/{makeManagedServerProvider-DRlNwlhe.mjs → makeManagedServerProvider-GZcpSLrW.mjs} +22 -3
  256. package/dist/{makeManagedServerProvider-BytnBN6b.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--RGb4Xyh.js +0 -1
  274. package/dist/client/assets/AiFocusSettings-BnGcbAMj.js +0 -1
  275. package/dist/client/assets/AnimatedHeight-xBldRJT_.js +0 -1
  276. package/dist/client/assets/AppearanceSettings-BZRfC5N0.js +0 -1
  277. package/dist/client/assets/BranchToolbar.logic-CGpYXkLE.js +0 -1
  278. package/dist/client/assets/ChatRightPanel-BlooofmF.js +0 -27
  279. package/dist/client/assets/ChatThreadRouteView-B28bv4Zt.js +0 -1
  280. package/dist/client/assets/CommandPaletteDialog-hNEraTe2.js +0 -1
  281. package/dist/client/assets/CompositeItem-CKY4wPzb.js +0 -1
  282. package/dist/client/assets/CompositeRoot-Ds7U4w5S.js +0 -1
  283. package/dist/client/assets/ConnectionsSettings-C4VqR67L.js +0 -7
  284. package/dist/client/assets/DiagnosticsSettings-ByZ42-mW.js +0 -2
  285. package/dist/client/assets/DialogHandle-BdmgCiER.js +0 -1
  286. package/dist/client/assets/DialogPopup-D6m8w7-0.js +0 -1
  287. package/dist/client/assets/DialogRoot-BnE2_J9j.js +0 -1
  288. package/dist/client/assets/DialogTitle-DFkPQ5wa.js +0 -1
  289. package/dist/client/assets/DialogTrigger-CTCt2xVs.js +0 -1
  290. package/dist/client/assets/DialogViewport-OqbNjTEg.js +0 -1
  291. package/dist/client/assets/DraftChatThreadRouteView-B_4VVh8J.js +0 -1
  292. package/dist/client/assets/HostedConnectionControls-D0YyFVVm.js +0 -1
  293. package/dist/client/assets/HostedHubRoot-gr9o6h-w.js +0 -1
  294. package/dist/client/assets/HostedNativeAuthorizationRoute-DQy7gPHg.js +0 -1
  295. package/dist/client/assets/HostedRelayTrustNotice-DtiCe1oF.js +0 -1
  296. package/dist/client/assets/Icons-BHigZ6eO.js +0 -1
  297. package/dist/client/assets/IntegrationsSettingsPanel-RgmTIo_4.js +0 -1
  298. package/dist/client/assets/KeybindingsSettings-2J94301x.js +0 -7
  299. package/dist/client/assets/MobileSheet-5RNq1fWV.js +0 -1
  300. package/dist/client/assets/NewWorktreeDialog-BE_53fbt.js +0 -4
  301. package/dist/client/assets/NoActiveThreadState-Cpar0wiW.js +0 -1
  302. package/dist/client/assets/NodeSecuritySettings-BpZYwf5z.js +0 -1
  303. package/dist/client/assets/OpinionatedPluginsSettings-CLbbw_K_.js +0 -1
  304. package/dist/client/assets/PhoneGetAppInterstitial-G1mx30Rm.js +0 -1
  305. package/dist/client/assets/PhoneGetAppInterstitialBackdrop-nfP93au3.js +0 -1
  306. package/dist/client/assets/PhoneHome-D24dskaK.js +0 -1
  307. package/dist/client/assets/PhoneSettingsSurface-DU6QcRMa.js +0 -1
  308. package/dist/client/assets/ProjectFavicon-DiAvCEOv.js +0 -1
  309. package/dist/client/assets/ProviderModelPicker-KKoDIb0I.js +0 -1
  310. package/dist/client/assets/ProvidersSettingsPanel-Cotp9jkx.js +0 -1
  311. package/dist/client/assets/RedactedSensitiveText-Bijn-7t0.js +0 -1
  312. package/dist/client/assets/RootAppShell-BPFAVRor.js +0 -6
  313. package/dist/client/assets/RycoLetterMark-DDqdXSCR.js +0 -1
  314. package/dist/client/assets/SettingsDialog-C1pQqIpt.js +0 -1
  315. package/dist/client/assets/SettingsPanels-_z4Xw8vV.js +0 -3
  316. package/dist/client/assets/SettingsPanels.editor-CFrJ6eJl.js +0 -1
  317. package/dist/client/assets/SourceControlSettings-aZXtdyQJ.js +0 -1
  318. package/dist/client/assets/StatisticsPage-DLxnsLkl.js +0 -1
  319. package/dist/client/assets/StatisticsPanel-CZng52aF.js +0 -1
  320. package/dist/client/assets/StatisticsSettingsLink-BswiD6v1.js +0 -1
  321. package/dist/client/assets/ThreadStatusIndicators-Dg7ByO0t.js +0 -0
  322. package/dist/client/assets/ThreadWorkspacePanel-j_muuK0U.js +0 -2009
  323. package/dist/client/assets/ToolbarRootContext-gBA5VTsh.js +0 -1
  324. package/dist/client/assets/alert-DM55UBFJ.js +0 -1
  325. package/dist/client/assets/alert-dialog-t0tth9lg.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-jiPI8hG1.js +0 -1
  329. package/dist/client/assets/branding-31Bj-8ZC.js +0 -1
  330. package/dist/client/assets/capabilities-DQDkV1US.js +0 -1
  331. package/dist/client/assets/chatThreadActions-3VwZmcuQ.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-BmAgbTeN.js +0 -1
  336. package/dist/client/assets/command-8YtR6jmS.js +0 -1
  337. package/dist/client/assets/composerDraftStore-Bz5WIZBE.js +0 -11
  338. package/dist/client/assets/data-list-D7UF_rKC.js +0 -1
  339. package/dist/client/assets/desktopUpdateAtoms-D_GMRE2r.js +0 -1
  340. package/dist/client/assets/desktopWorkspace-Dg6EeBlb.js +0 -1
  341. package/dist/client/assets/device-DlExHdp_.js +0 -168
  342. package/dist/client/assets/dialog-B0sUgnpe.js +0 -1
  343. package/dist/client/assets/draft-input-CljKajxE.js +0 -1
  344. package/dist/client/assets/editorPreferences-B3qgjPa6.js +0 -1
  345. package/dist/client/assets/empty-D5W-VFFg.js +0 -1
  346. package/dist/client/assets/env-3rzMJf1D.js +0 -1
  347. package/dist/client/assets/folder-open-GqwNTbSV.js +0 -1
  348. package/dist/client/assets/getPseudoElementBounds-BAmGtfzA.js +0 -1
  349. package/dist/client/assets/group-BQB2fHcw.js +0 -1
  350. package/dist/client/assets/input-5Gxk32uP.js +0 -1
  351. package/dist/client/assets/kbd-B4HCyWpi.js +0 -1
  352. package/dist/client/assets/label-CaZNWVUA.js +0 -1
  353. package/dist/client/assets/loader-circle-CrtHFAvM.js +0 -1
  354. package/dist/client/assets/main-BPfnkW0F.js +0 -9
  355. package/dist/client/assets/main-DspUYA0Y.css +0 -2
  356. package/dist/client/assets/menu-C9Z3D_7l.js +0 -1
  357. package/dist/client/assets/plus-B2h-VEqh.js +0 -1
  358. package/dist/client/assets/popover-CCz2VJor.js +0 -1
  359. package/dist/client/assets/primary-BMsRfh2b.js +0 -2
  360. package/dist/client/assets/providerDriverMeta-CgWTJ9AV.js +0 -1
  361. package/dist/client/assets/providerIconUtils-DKIWQBl_.js +0 -1
  362. package/dist/client/assets/providerInstances-DTwJD7w4.js +0 -1
  363. package/dist/client/assets/providerModels-DTwJD7w4.js +0 -1
  364. package/dist/client/assets/qr-code-BPTdK_Fr.js +0 -1
  365. package/dist/client/assets/radio-group-2REtGBUc.js +0 -2
  366. package/dist/client/assets/resolveAriaLabelledBy-CPzaFh9Q.js +0 -1
  367. package/dist/client/assets/rightPanelRouteSearch-Cv7sQjf8.js +0 -1
  368. package/dist/client/assets/runtime-DAfYpzw4.js +0 -1
  369. package/dist/client/assets/scroll-area-BsYcpnWD.js +0 -1
  370. package/dist/client/assets/scrollEdges-CUJFIJBP.js +0 -1
  371. package/dist/client/assets/search-BGQsenCM.js +0 -1
  372. package/dist/client/assets/select-zInJ5G5C.js +0 -1
  373. package/dist/client/assets/separator-CsdeZPxC.js +0 -1
  374. package/dist/client/assets/session-logic-CjEpVbpM.js +0 -6
  375. package/dist/client/assets/settingsDialogStore-B7yUTgbo.js +0 -1
  376. package/dist/client/assets/settingsLayout-7JR7nC6x.js +0 -1
  377. package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +0 -1
  378. package/dist/client/assets/sheet-CLd8wqAA.js +0 -1
  379. package/dist/client/assets/sidebar-BliCAaUG.js +0 -1
  380. package/dist/client/assets/sidebarProjectFolders-ScxWbdTn.js +0 -4
  381. package/dist/client/assets/skeleton-B_qDqbso.js +0 -1
  382. package/dist/client/assets/spinner-BlCG_0jN.js +0 -1
  383. package/dist/client/assets/src-Chx4ffXH.js +0 -14
  384. package/dist/client/assets/storeSelectors-Of4FM0vM.js +0 -1
  385. package/dist/client/assets/switch-DUT5lUyk.js +0 -1
  386. package/dist/client/assets/terminal-C_CyIsDD.js +0 -1
  387. package/dist/client/assets/textarea-C5eyaBI3.js +0 -1
  388. package/dist/client/assets/threadPinning-B8un4fjx.js +0 -1
  389. package/dist/client/assets/toast-X_O6OBAx.js +0 -1
  390. package/dist/client/assets/toggle-P-wZyQFO.js +0 -1
  391. package/dist/client/assets/toggle-group-Du7zfd4_.js +0 -1
  392. package/dist/client/assets/tooltip-D_i-87PL.js +0 -1
  393. package/dist/client/assets/types-Of4FM0vM.js +0 -1
  394. package/dist/client/assets/uiStateStore-UUXKrPLz.js +0 -1
  395. package/dist/client/assets/useButton-D8BjCVb-.js +0 -1
  396. package/dist/client/assets/useCompositeListItem-BHuxHR8U.js +0 -1
  397. package/dist/client/assets/useDebouncedValue-D2-9M4Tq.js +0 -1
  398. package/dist/client/assets/useFloatingRootContext-CTdmlYcf.js +0 -1
  399. package/dist/client/assets/useHandleNewThread-YGjWitl4.js +0 -1
  400. package/dist/client/assets/useLabelableId-LInf_Egz.js +0 -1
  401. package/dist/client/assets/useLocation-3zGT25DO.js +0 -1
  402. package/dist/client/assets/useOpenInteractionType-BPthQeg6.js +0 -1
  403. package/dist/client/assets/usePhoneThreadActions-D_Z29f6p.js +0 -1
  404. package/dist/client/assets/usePopupViewport-BErrsN0k.js +0 -1
  405. package/dist/client/assets/useRenderElement-DchFnsR8.js +0 -1
  406. package/dist/client/assets/useScrollLock-CLyJPg7p.js +0 -1
  407. package/dist/client/assets/useSwipeDismiss-DjMT1XiU.js +0 -1
  408. package/dist/client/assets/useThreadActions-ISbVGkmx.js +0 -2
  409. package/dist/client/assets/useTriggerFocusGuards-DwOHWbrB.js +0 -1
  410. package/dist/client/assets/useValueChanged-Bq39JB8D.js +0 -1
  411. package/dist/client/assets/user-round-Cpzx8pSw.js +0 -1
  412. package/dist/client/assets/utils-BFbDkTQq.js +0 -1
  413. package/dist/client/assets/visibilityPolling-BwzZdaSN.js +0 -1
  414. package/dist/client/assets/x-C1Cemsov.js +0 -1
@@ -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-C5fop6Zf.cjs");
4
+ const require_collectUint8StreamText = require("./collectUint8StreamText-DStwNTTK.cjs");
5
5
  const require_Metrics = require("./Metrics-DIjMQ5pa.cjs");
6
6
  const require_bin = require("./bin.cjs");
7
+ const require_makeManagedServerProvider = require("./makeManagedServerProvider-VzxWN-04.cjs");
7
8
  const require_sourceControlContextFormatter = require("./sourceControlContextFormatter-BDZqn-4T.cjs");
8
9
  const require_ProjectCustomSystemPrompt = require("./ProjectCustomSystemPrompt-B8SUlNGa.cjs");
9
- const require_makeManagedServerProvider = require("./makeManagedServerProvider-BytnBN6b.cjs");
10
- const require_CodexTextGeneration = require("./CodexTextGeneration-CBJHkgOz.cjs");
10
+ const require_CodexTextGeneration = require("./CodexTextGeneration-B4tJTUDo.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");
@@ -179,13 +179,6 @@ const PROVIDER$1 = require_collectUint8StreamText.ProviderDriverKind.make("codex
179
179
  const ANSI_ESCAPE_REGEX = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g");
180
180
  const CODEX_STDERR_LOG_REGEX = /^\d{4}-\d{2}-\d{2}T\S+\s+(TRACE|DEBUG|INFO|WARN|ERROR)\s+\S+:\s+(.*)$/;
181
181
  const BENIGN_ERROR_LOG_SNIPPETS = ["state db missing rollout path for thread", "state db record_discrepancy: find_thread_path_by_id_str_in_subdir, falling_back"];
182
- const RECOVERABLE_THREAD_RESUME_ERROR_SNIPPETS = [
183
- "not found",
184
- "missing thread",
185
- "no such thread",
186
- "unknown thread",
187
- "does not exist"
188
- ];
189
182
  const CodexResumeCursorSchema = effect.Schema.Struct({ threadId: effect.Schema.String });
190
183
  const CodexUserInputAnswerObject = effect.Schema.Struct({ answers: effect.Schema.Array(effect.Schema.String) });
191
184
  const CodexTurnStartParamsWithCollaborationMode = require_bin.V2TurnStartParams.pipe(effect.Schema.fieldsAssign({ collaborationMode: effect.Schema.optionalKey(require_bin.V2TurnStartParams__CollaborationMode) }));
@@ -278,7 +271,10 @@ function buildThreadStartParams(input) {
278
271
  approvalPolicy: config.approvalPolicy,
279
272
  sandbox: config.sandbox,
280
273
  approvalsReviewer: config.approvalsReviewer,
281
- ...Object.keys(mcpServers).length > 0 ? { config: { mcp_servers: mcpServers } } : {},
274
+ config: {
275
+ "features.goals": true,
276
+ ...Object.keys(mcpServers).length > 0 ? { mcp_servers: mcpServers } : {}
277
+ },
282
278
  ...input.model ? { model: input.model } : {},
283
279
  ...input.serviceTier ? { serviceTier: input.serviceTier } : {}
284
280
  };
@@ -359,11 +355,6 @@ function classifyCodexStderrLine(rawLine) {
359
355
  }
360
356
  return { message: line };
361
357
  }
362
- function isRecoverableThreadResumeError(error) {
363
- const message = (error instanceof Error ? error.message : String(error)).toLowerCase();
364
- if (!message.includes("thread")) return false;
365
- return RECOVERABLE_THREAD_RESUME_ERROR_SNIPPETS.some((snippet) => message.includes(snippet));
366
- }
367
358
  const openCodexThread = (input) => {
368
359
  const resumeThreadId = input.resumeThreadId;
369
360
  const startParams = buildThreadStartParams({
@@ -378,13 +369,10 @@ const openCodexThread = (input) => {
378
369
  return input.client.request("thread/resume", {
379
370
  threadId: resumeThreadId,
380
371
  ...startParams
381
- }).pipe(effect.Effect.catchIf(isRecoverableThreadResumeError, (error) => effect.Effect.logWarning("codex app-server thread resume fell back to fresh start", {
382
- threadId: input.threadId,
383
- requestedRuntimeMode: input.runtimeMode,
384
- resumeThreadId,
385
- recoverable: true,
386
- cause: error.message
387
- }).pipe(effect.Effect.andThen(input.client.request("thread/start", startParams)))));
372
+ }).pipe(effect.Effect.mapError((error) => error.message.includes("already has an active writer") ? new require_bin.CodexAppServerRequestError({
373
+ code: -32600,
374
+ errorMessage: "This Codex thread already has an active writer in another process. Its history can still be recovered. Release the thread in that process before continuing it here."
375
+ }) : error));
388
376
  };
389
377
  function readNotificationThreadId(notification) {
390
378
  switch (notification.method) {
@@ -571,10 +559,31 @@ function parseThreadSnapshot(response) {
571
559
  threadId: response.thread.id,
572
560
  turns: response.thread.turns.map((turn) => ({
573
561
  id: require_collectUint8StreamText.TurnId.make(turn.id),
574
- items: turn.items
562
+ items: turn.items,
563
+ status: turn.status,
564
+ ...turn.startedAt !== void 0 ? { startedAt: turn.startedAt } : {}
575
565
  }))
576
566
  };
577
567
  }
568
+ const readStoredCodexThread = (input) => effect.Effect.scoped(effect.Effect.gen(function* () {
569
+ const context = yield* effect.Layer.build(require_bin.layerCommand({
570
+ command: input.binaryPath,
571
+ args: ["app-server"],
572
+ cwd: input.cwd,
573
+ env: {
574
+ ...input.environment ?? process.env,
575
+ ...input.homePath ? { CODEX_HOME: require_bin.expandHomePath(input.homePath) } : {}
576
+ },
577
+ requestTimeoutMs: 2e4
578
+ }));
579
+ const client = yield* effect.Effect.service(require_bin.CodexAppServerClient).pipe(effect.Effect.provide(context));
580
+ yield* client.request("initialize", require_bin.buildCodexInitializeParams());
581
+ yield* client.notify("initialized", void 0);
582
+ return parseThreadSnapshot(yield* client.request("thread/read", {
583
+ threadId: input.providerThreadId,
584
+ includeTurns: true
585
+ }));
586
+ }));
578
587
  const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
579
588
  const spawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
580
589
  const runtimeScope = yield* effect.Scope.Scope;
@@ -606,7 +615,8 @@ const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
606
615
  command: `${options.binaryPath} app-server`,
607
616
  cause
608
617
  })));
609
- const clientContext = yield* require_bin.layerChildProcess(child).pipe(effect.Layer.build, effect.Effect.provideService(effect.Scope.Scope, runtimeScope));
618
+ const transportFailure = yield* effect.Deferred.make();
619
+ const clientContext = yield* require_bin.layerChildProcess(child, { onTermination: (error) => effect.Deferred.succeed(transportFailure, error).pipe(effect.Effect.asVoid) }).pipe(effect.Layer.build, effect.Effect.provideService(effect.Scope.Scope, runtimeScope));
610
620
  const client = yield* effect.Effect.service(require_bin.CodexAppServerClient).pipe(effect.Effect.provide(clientContext));
611
621
  const serverNotifications = yield* effect.Queue.bounded(512);
612
622
  const initialSession = {
@@ -638,6 +648,16 @@ const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
638
648
  method,
639
649
  message
640
650
  });
651
+ yield* effect.Deferred.await(transportFailure).pipe(effect.Effect.flatMap((error) => effect.Ref.get(closedRef).pipe(effect.Effect.flatMap((closed) => closed ? effect.Effect.void : effect.Effect.gen(function* () {
652
+ deviceTurnActive = false;
653
+ yield* updateSession(sessionRef, {
654
+ status: "error",
655
+ activeTurnId: void 0,
656
+ lastError: "Codex connection was lost. Reopen the chat to recover its history."
657
+ });
658
+ yield* emitSessionEvent("session/exited", `Codex connection lost (${error._tag}).`);
659
+ yield* child.kill().pipe(effect.Effect.ignore);
660
+ })))), effect.Effect.forkIn(runtimeScope));
641
661
  const settlePendingApprovals = (decision) => effect.Ref.get(pendingApprovalsRef).pipe(effect.Effect.flatMap((pendingApprovals) => effect.Effect.forEach(Array.from(pendingApprovals.values()), (pendingApproval) => effect.Deferred.succeed(pendingApproval.decision, decision).pipe(effect.Effect.ignore), { discard: true })));
642
662
  const settlePendingUserInputs = (answers) => effect.Ref.get(pendingUserInputsRef).pipe(effect.Effect.flatMap((pendingUserInputs) => effect.Effect.forEach(Array.from(pendingUserInputs.values()), (pendingUserInput) => effect.Deferred.succeed(pendingUserInput.answers, answers).pipe(effect.Effect.ignore), { discard: true })));
643
663
  /**
@@ -794,7 +814,8 @@ const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
794
814
  method: "collabAgent/item",
795
815
  payload: {
796
816
  ...childIdentity,
797
- item: notification.params.item
817
+ item: notification.params.item,
818
+ lifecycle: notification.method
798
819
  }
799
820
  });
800
821
  return true;
@@ -1097,9 +1118,12 @@ const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
1097
1118
  ...options.agentControl ? { agentControl: options.agentControl } : {}
1098
1119
  });
1099
1120
  const providerThreadId = opened.thread.id;
1121
+ const activeTurn = opened.thread.turns.findLast((turn) => turn.status === "inProgress");
1122
+ deviceTurnActive = activeTurn !== void 0;
1100
1123
  const session = {
1101
1124
  ...yield* effect.Ref.get(sessionRef),
1102
- status: "ready",
1125
+ status: activeTurn ? "running" : "ready",
1126
+ activeTurnId: activeTurn ? require_collectUint8StreamText.TurnId.make(activeTurn.id) : void 0,
1103
1127
  cwd: opened.cwd,
1104
1128
  model: opened.model,
1105
1129
  resumeCursor: { threadId: providerThreadId },
@@ -1199,10 +1223,19 @@ const makeCodexSessionRuntime = (options) => effect.Effect.gen(function* () {
1199
1223
  }),
1200
1224
  readThread: effect.Effect.gen(function* () {
1201
1225
  const providerThreadId = yield* readProviderThreadId;
1202
- return parseThreadSnapshot(yield* client.request("thread/read", {
1226
+ const response = yield* client.request("thread/read", {
1203
1227
  threadId: providerThreadId,
1204
1228
  includeTurns: true
1205
- }));
1229
+ });
1230
+ const session = yield* effect.Ref.get(sessionRef);
1231
+ if (session.activeTurnId && response.thread.turns.some((turn) => turn.id === session.activeTurnId && turn.status !== "inProgress")) {
1232
+ deviceTurnActive = false;
1233
+ yield* updateSession(sessionRef, {
1234
+ status: "ready",
1235
+ activeTurnId: void 0
1236
+ });
1237
+ }
1238
+ return parseThreadSnapshot(response);
1206
1239
  }),
1207
1240
  rollbackThread: (numTurns) => effect.Effect.gen(function* () {
1208
1241
  const providerThreadId = yield* readProviderThreadId;
@@ -1364,7 +1397,7 @@ function readTokenReductionInstructions(tokenMode) {
1364
1397
  function normalizeCodexTokenUsage(usage) {
1365
1398
  const totalProcessedTokens = usage.total.totalTokens;
1366
1399
  const usedTokens = usage.last.totalTokens;
1367
- if (usedTokens === void 0 || usedTokens <= 0) return;
1400
+ if (usedTokens === void 0 || usedTokens < 0) return;
1368
1401
  const maxTokens = usage.modelContextWindow ?? void 0;
1369
1402
  const inputTokens = usage.last.inputTokens;
1370
1403
  const cachedInputTokens = usage.last.cachedInputTokens;
@@ -1734,7 +1767,35 @@ function mapCollabAgentEvent(event, canonicalThreadId) {
1734
1767
  const looseSummary = (typeof item?.command === "string" ? item.command : void 0) ?? (typeof item?.title === "string" ? item.title : void 0) ?? (typeof item?.query === "string" ? item.query : void 0);
1735
1768
  const canonical = toCanonicalItemType(itemTypeRaw);
1736
1769
  const summary = looseSummary ?? canonical.replaceAll("_", " ");
1737
- return [{
1770
+ if (canonical === "assistant_message" && payload.lifecycle === "item/completed" && typeof item?.text === "string" && typeof item.id === "string") return [{
1771
+ ...base,
1772
+ type: "subagent.message.delta",
1773
+ payload: {
1774
+ subagentId: require_collectUint8StreamText.RuntimeSubagentId.make(agentThreadId),
1775
+ providerThreadId: agentThreadId,
1776
+ providerMessageId: item.id,
1777
+ delta: item.text,
1778
+ role: "assistant"
1779
+ }
1780
+ }];
1781
+ const toolEvents = [];
1782
+ if (require_collectUint8StreamText.isToolLifecycleItemType(canonical) && typeof item?.id === "string") {
1783
+ const completed = payload.lifecycle === "item/completed" || item.status === "completed" || item.status === "failed";
1784
+ toolEvents.push({
1785
+ ...base,
1786
+ eventId: require_collectUint8StreamText.EventId.make(`${base.eventId}:tool`),
1787
+ itemId: require_collectUint8StreamText.RuntimeItemId.make(`${agentThreadId}:${item.id}`),
1788
+ type: completed ? "item.completed" : "item.updated",
1789
+ payload: {
1790
+ itemType: canonical,
1791
+ status: item.status === "failed" ? "failed" : completed ? "completed" : "inProgress",
1792
+ title: summary,
1793
+ agentId: agentThreadId,
1794
+ data: { item }
1795
+ }
1796
+ });
1797
+ }
1798
+ return [...toolEvents, {
1738
1799
  ...base,
1739
1800
  type: "task.progress",
1740
1801
  payload: {
@@ -2292,6 +2353,7 @@ function mapToRuntimeEvents(event, canonicalThreadId) {
2292
2353
  */
2293
2354
  const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexConfig, options) {
2294
2355
  const boundInstanceId = options?.instanceId ?? require_collectUint8StreamText.ProviderInstanceId.make("codex");
2356
+ const adapterScope = yield* effect.Scope.Scope;
2295
2357
  const fileSystem = yield* effect.FileSystem.FileSystem;
2296
2358
  const childProcessSpawner = yield* effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner;
2297
2359
  const serverConfig = yield* effect.Effect.service(require_Metrics.ServerConfig);
@@ -2371,6 +2433,11 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2371
2433
  detail: formatCodexRuntimeErrorDetail(cause),
2372
2434
  cause
2373
2435
  })));
2436
+ let runtimeExited = false;
2437
+ const retireRuntime = effect.Effect.gen(function* () {
2438
+ const current = sessions.get(input.threadId);
2439
+ if (current?.runtime === runtime) yield* stopSessionInternal(current);
2440
+ });
2374
2441
  const eventFiber = yield* effect.Stream.runForEach(runtime.events, (event) => effect.Effect.gen(function* () {
2375
2442
  yield* writeNativeEvent(event);
2376
2443
  const runtimeEvents = mapToRuntimeEvents(event, event.threadId).map((runtimeEvent) => require_makeManagedServerProvider.stampRuntimeEvent(runtimeEvent, {
@@ -2393,19 +2460,43 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2393
2460
  }
2394
2461
  yield* effect.Queue.offerAll(runtimeEventQueue, runtimeEvents);
2395
2462
  yield* runtimeEventQueueMetrics.recordEnqueued(runtimeEvents.length);
2396
- })).pipe(effect.Effect.forkIn(sessionScope));
2463
+ if (runtimeEvents.some((runtimeEvent) => runtimeEvent.type === "session.exited")) {
2464
+ runtimeExited = true;
2465
+ yield* retireRuntime.pipe(effect.Effect.forkIn(adapterScope));
2466
+ }
2467
+ })).pipe(effect.Effect.catchCause((cause) => effect.Cause.hasInterruptsOnly(cause) ? effect.Effect.interrupt : effect.Effect.gen(function* () {
2468
+ runtimeExited = true;
2469
+ if (agentControl) yield* agentControl.revoke("runtime-teardown");
2470
+ yield* effect.Effect.logWarning("Codex event consumer failed; retiring its runtime", { threadId: input.threadId });
2471
+ yield* effect.Queue.offer(runtimeEventQueue, {
2472
+ eventId: require_collectUint8StreamText.EventId.make(crypto.randomUUID()),
2473
+ provider: PROVIDER,
2474
+ providerInstanceId: boundInstanceId,
2475
+ runtimeSessionId,
2476
+ threadId: input.threadId,
2477
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2478
+ type: "session.exited",
2479
+ payload: {
2480
+ reason: "Codex event stream failed. Reopen the chat to recover.",
2481
+ recoverable: true,
2482
+ exitKind: "error"
2483
+ }
2484
+ });
2485
+ yield* runtimeEventQueueMetrics.recordEnqueued(1);
2486
+ yield* retireRuntime.pipe(effect.Effect.forkIn(adapterScope));
2487
+ })), effect.Effect.forkIn(sessionScope));
2397
2488
  const started = yield* runtime.start().pipe(effect.Effect.mapError((cause) => new require_bin.ProviderAdapterProcessError({
2398
2489
  provider: PROVIDER,
2399
2490
  threadId: input.threadId,
2400
2491
  detail: formatCodexRuntimeErrorDetail(cause),
2401
2492
  cause
2402
2493
  })), effect.Effect.onError(() => runtime.close.pipe(effect.Effect.andThen(effect.Effect.ignore(effect.Scope.close(sessionScope, effect.Exit.void))), effect.Effect.andThen(effect.Fiber.interrupt(eventFiber)), effect.Effect.ignore)));
2403
- if (started.runtimeSessionId !== void 0 && started.runtimeSessionId !== runtimeSessionId) {
2494
+ if (runtimeExited || started.runtimeSessionId !== void 0 && started.runtimeSessionId !== runtimeSessionId) {
2404
2495
  yield* runtime.close.pipe(effect.Effect.andThen(effect.Fiber.interrupt(eventFiber)), effect.Effect.andThen(effect.Scope.close(sessionScope, effect.Exit.void)), effect.Effect.ignore);
2405
2496
  return yield* new require_bin.ProviderAdapterValidationError({
2406
2497
  provider: PROVIDER,
2407
2498
  operation: "startSession",
2408
- issue: `Codex runtime returned epoch '${started.runtimeSessionId}' for requested epoch '${runtimeSessionId}'.`
2499
+ issue: runtimeExited ? "Codex runtime exited while the session was starting." : `Codex runtime returned epoch '${started.runtimeSessionId}' for requested epoch '${runtimeSessionId}'.`
2409
2500
  });
2410
2501
  }
2411
2502
  sessions.set(input.threadId, {
@@ -2469,13 +2560,21 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2469
2560
  method,
2470
2561
  detail: `Turn has ${attachments.length} attachments; limit is 8.`
2471
2562
  });
2472
- const resolved = yield* effect.Effect.forEach(attachments, (attachment) => resolveAttachmentForPreflight(attachment, method), { concurrency: 1 });
2563
+ const native = attachments.filter((attachment) => attachment.type === "image");
2564
+ const resolved = yield* effect.Effect.forEach(native, (attachment) => resolveAttachmentForPreflight(attachment, method), { concurrency: 1 });
2473
2565
  const totalBytes = resolved.reduce((total, entry) => total + entry.sizeBytes, 0);
2474
2566
  if (totalBytes > PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES) return yield* new require_bin.ProviderAdapterRequestError({
2475
2567
  provider: PROVIDER,
2476
2568
  method,
2477
2569
  detail: `Turn attachments total ${totalBytes} bytes; limit is ${PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
2478
2570
  });
2571
+ const pathLineEntries = attachments.filter((attachment) => attachment.type !== "image").map((attachment) => ({
2572
+ attachment,
2573
+ ...attachment.id === void 0 ? {} : { resolvedPath: require_bin.resolveAttachmentPath({
2574
+ attachmentsDir: serverConfig.attachmentsDir,
2575
+ attachment
2576
+ }) ?? void 0 }
2577
+ }));
2479
2578
  if (resolved.length > 0) {
2480
2579
  yield* effect.Effect.annotateCurrentSpan({
2481
2580
  "provider.attachment_count": resolved.length,
@@ -2492,7 +2591,10 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2492
2591
  }))
2493
2592
  });
2494
2593
  }
2495
- return resolved;
2594
+ return {
2595
+ native: resolved,
2596
+ pathLines: require_makeManagedServerProvider.formatAttachmentPathLines(pathLineEntries)
2597
+ };
2496
2598
  });
2497
2599
  const toCodexAttachment = effect.Effect.fn("toCodexAttachment")(function* (resolved, method) {
2498
2600
  const bytes = yield* fileSystem.readFile(resolved.path).pipe(effect.Effect.mapError((cause) => new require_bin.ProviderAdapterRequestError({
@@ -2507,13 +2609,13 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2507
2609
  };
2508
2610
  });
2509
2611
  const sendTurn = effect.Effect.fn("sendTurn")(function* (input) {
2510
- const resolvedAttachments = yield* preflightAttachments(input, "turn/start");
2511
- const codexAttachments = yield* effect.Effect.forEach(resolvedAttachments, (attachment) => toCodexAttachment(attachment, "turn/start"), { concurrency: 1 });
2612
+ const { native, pathLines } = yield* preflightAttachments(input, "turn/start");
2613
+ const codexAttachments = yield* effect.Effect.forEach(native, (attachment) => toCodexAttachment(attachment, "turn/start"), { concurrency: 1 });
2512
2614
  const session = yield* requireSession(input.threadId);
2513
2615
  const reasoningEffort = input.modelSelection?.instanceId === boundInstanceId ? require_bin.getModelSelectionStringOptionValue(input.modelSelection, "reasoningEffort") : void 0;
2514
2616
  const fastMode = input.modelSelection?.instanceId === boundInstanceId ? require_bin.getModelSelectionBooleanOptionValue(input.modelSelection, "fastMode") : void 0;
2515
2617
  const formatted = require_sourceControlContextFormatter.formatSourceControlContextsForAgent(input.sourceControlContexts ?? []);
2516
- const codexInput = formatted ? formatted + "\n\n" + (input.input ?? "") : input.input;
2618
+ const codexInput = require_makeManagedServerProvider.appendAttachmentPathLines(formatted ? formatted + "\n\n" + (input.input ?? "") : input.input, pathLines);
2517
2619
  const result = yield* session.runtime.sendTurn({
2518
2620
  ...codexInput !== void 0 ? { input: codexInput } : {},
2519
2621
  ...input.modelSelection?.instanceId === boundInstanceId ? { model: input.modelSelection.model } : {},
@@ -2531,12 +2633,14 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2531
2633
  return result;
2532
2634
  });
2533
2635
  const steerTurn = effect.Effect.fn("steerTurn")(function* (input) {
2534
- const resolvedAttachments = yield* preflightAttachments(input, "turn/steer");
2535
- const codexAttachments = yield* effect.Effect.forEach(resolvedAttachments, (attachment) => toCodexAttachment(attachment, "turn/steer"), { concurrency: 1 });
2536
- return yield* (yield* requireSession(input.threadId)).runtime.steerTurn({
2636
+ const { native, pathLines } = yield* preflightAttachments(input, "turn/steer");
2637
+ const codexAttachments = yield* effect.Effect.forEach(native, (attachment) => toCodexAttachment(attachment, "turn/steer"), { concurrency: 1 });
2638
+ const session = yield* requireSession(input.threadId);
2639
+ const steerInput = require_makeManagedServerProvider.appendAttachmentPathLines(input.input, pathLines);
2640
+ return yield* session.runtime.steerTurn({
2537
2641
  expectedTurnId: input.expectedTurnId,
2538
2642
  messageId: input.messageId,
2539
- ...input.input !== void 0 ? { input: input.input } : {},
2643
+ ...steerInput !== void 0 ? { input: steerInput } : {},
2540
2644
  ...codexAttachments.length > 0 ? { attachments: codexAttachments } : {}
2541
2645
  }).pipe(effect.Effect.mapError((cause) => mapCodexRuntimeError(input.threadId, "turn/steer", cause)));
2542
2646
  });
@@ -2567,6 +2671,64 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2567
2671
  threadId,
2568
2672
  turns: snapshot.turns
2569
2673
  })));
2674
+ const readThreadHistory = (input) => effect.Effect.gen(function* () {
2675
+ if (!effect.Schema.is(CodexResumeCursorSchema)(input.resumeCursor)) return yield* new require_bin.ProviderAdapterValidationError({
2676
+ provider: PROVIDER,
2677
+ operation: "readThreadHistory",
2678
+ issue: "Missing Codex thread identity."
2679
+ });
2680
+ const existing = sessions.get(input.threadId);
2681
+ const liveSession = existing && !existing.stopped ? yield* existing.runtime.getSession : void 0;
2682
+ const liveSnapshot = existing && liveSession && (liveSession.status === "ready" || liveSession.status === "running") && effect.Schema.is(CodexResumeCursorSchema)(liveSession.resumeCursor) && liveSession.resumeCursor.threadId === input.resumeCursor.threadId ? yield* existing.runtime.readThread.pipe(effect.Effect.timeoutOption("2 seconds"), effect.Effect.orElseSucceed(() => effect.Option.none())) : effect.Option.none();
2683
+ const snapshot = effect.Option.isSome(liveSnapshot) ? liveSnapshot.value : yield* readStoredCodexThread({
2684
+ binaryPath: codexConfig.binaryPath,
2685
+ cwd: input.cwd ?? process.cwd(),
2686
+ providerThreadId: input.resumeCursor.threadId,
2687
+ ...codexConfig.homePath ? { homePath: codexConfig.homePath } : {},
2688
+ ...options?.environment ? { environment: options.environment } : {}
2689
+ }).pipe(effect.Effect.provideService(effect_unstable_process.ChildProcessSpawner.ChildProcessSpawner, childProcessSpawner), effect.Effect.mapError((cause) => mapCodexRuntimeError(input.threadId, "thread/read", cause)));
2690
+ const messages = [];
2691
+ const items = [];
2692
+ const completedTurnIds = [];
2693
+ const failedTurnIds = [];
2694
+ for (const turn of snapshot.turns) {
2695
+ if (!turn.status || turn.status === "inProgress") continue;
2696
+ completedTurnIds.push(turn.id);
2697
+ if (turn.status === "failed") failedTurnIds.push(turn.id);
2698
+ const createdAt = (/* @__PURE__ */ new Date((turn.startedAt ?? 0) * 1e3)).toISOString();
2699
+ for (const item of turn.items) if (item.type === "agentMessage" || item.type === "userMessage") messages.push({
2700
+ id: require_collectUint8StreamText.MessageId.make(item.type === "agentMessage" ? `assistant:${item.id}` : item.clientId ?? `user:${item.id}`),
2701
+ turnId: turn.id,
2702
+ role: item.type === "agentMessage" ? "assistant" : "user",
2703
+ text: item.type === "agentMessage" ? item.text : item.content.flatMap((part) => part.type === "text" ? [part.text] : []).join("\n"),
2704
+ createdAt
2705
+ });
2706
+ else {
2707
+ const event = mapItemLifecycle({
2708
+ id: require_collectUint8StreamText.EventId.make(`history:${input.threadId}:${snapshot.threadId}:${turn.id}:${item.id}`),
2709
+ provider: PROVIDER,
2710
+ threadId: input.threadId,
2711
+ kind: "notification",
2712
+ method: "item/completed",
2713
+ turnId: turn.id,
2714
+ itemId: require_collectUint8StreamText.ProviderItemId.make(item.id),
2715
+ createdAt,
2716
+ payload: {
2717
+ threadId: snapshot.threadId,
2718
+ turnId: turn.id,
2719
+ item
2720
+ }
2721
+ }, input.threadId, "item.completed");
2722
+ if (event) items.push(event);
2723
+ }
2724
+ }
2725
+ return {
2726
+ messages,
2727
+ items,
2728
+ completedTurnIds,
2729
+ failedTurnIds
2730
+ };
2731
+ });
2570
2732
  const rollbackThread = (threadId, numTurns) => {
2571
2733
  if (!Number.isInteger(numTurns) || numTurns < 1) return effect.Effect.fail(new require_bin.ProviderAdapterValidationError({
2572
2734
  provider: PROVIDER,
@@ -2578,11 +2740,34 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2578
2740
  turns: snapshot.turns
2579
2741
  })));
2580
2742
  };
2581
- const setThreadGoal = (threadId, goal) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => session.runtime.setGoal({
2582
- objective: goal.objective,
2583
- status: goal.status,
2584
- tokenBudget: goal.tokenBudget
2585
- })), effect.Effect.asVoid, effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/set", cause)));
2743
+ const setThreadGoal = (threadId, goal) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => {
2744
+ const fields = goal.synchronization?.fields ?? [
2745
+ "objective",
2746
+ "status",
2747
+ "tokenBudget"
2748
+ ];
2749
+ return session.runtime.setGoal({
2750
+ ...fields.includes("objective") ? { objective: goal.objective } : {},
2751
+ ...fields.includes("status") ? { status: goal.status } : {},
2752
+ ...fields.includes("tokenBudget") ? { tokenBudget: goal.tokenBudget } : {}
2753
+ });
2754
+ }), effect.Effect.flatMap((response) => {
2755
+ const goal = normalizeCodexThreadGoal(response.goal);
2756
+ return goal ? effect.Effect.succeed(goal) : effect.Effect.fail(new require_bin.ProviderAdapterRequestError({
2757
+ provider: "codex",
2758
+ method: "thread/goal/set",
2759
+ detail: "Codex returned an invalid goal."
2760
+ }));
2761
+ }), effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" || cause._tag === "ProviderAdapterRequestError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/set", cause)));
2762
+ const getThreadGoal = (threadId) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => session.runtime.getGoal), effect.Effect.flatMap((response) => {
2763
+ if (!response.goal) return effect.Effect.succeed(null);
2764
+ const goal = normalizeCodexThreadGoal(response.goal);
2765
+ return goal ? effect.Effect.succeed(goal) : effect.Effect.fail(new require_bin.ProviderAdapterRequestError({
2766
+ provider: "codex",
2767
+ method: "thread/goal/get",
2768
+ detail: "Codex returned an invalid goal."
2769
+ }));
2770
+ }), effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" || cause._tag === "ProviderAdapterRequestError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/get", cause)));
2586
2771
  const clearThreadGoal = (threadId) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => session.runtime.clearGoal), effect.Effect.asVoid, effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/clear", cause)));
2587
2772
  const respondToRequest = (threadId, requestId, decision) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => session.runtime.respondToRequest(requestId, decision)), effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "item/requestApproval/decision", cause)));
2588
2773
  const respondToUserInput = (threadId, requestId, answers) => requireSession(threadId).pipe(effect.Effect.flatMap((session) => session.runtime.respondToUserInput(requestId, answers)), effect.Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "item/tool/requestUserInput", cause)));
@@ -2613,8 +2798,10 @@ const makeCodexAdapter = effect.Effect.fn("makeCodexAdapter")(function* (codexCo
2613
2798
  steerTurn,
2614
2799
  interruptTurn,
2615
2800
  readThread,
2801
+ readThreadHistory,
2616
2802
  rollbackThread,
2617
2803
  setThreadGoal,
2804
+ getThreadGoal,
2618
2805
  clearThreadGoal,
2619
2806
  respondToRequest,
2620
2807
  respondToUserInput,
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const require_collectUint8StreamText = require("./collectUint8StreamText-C5fop6Zf.cjs");
3
+ const require_collectUint8StreamText = require("./collectUint8StreamText-DStwNTTK.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,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Pn as TextGenerationError } from "./collectUint8StreamText-D8TBiBWk.mjs";
3
+ import { Ln as TextGenerationError } from "./collectUint8StreamText-C_VNyArd.mjs";
4
4
  import { nt as sanitizeFeatureBranchName, st as ServerConfig, tt as sanitizeBranchFragment } from "./Metrics-BP9YjxZB.mjs";
5
- import { A as buildCommitMessagePrompt, B as sanitizeThreadTitle, F as buildThreadTitlePrompt, Jn as getModelSelectionBooleanOptionValue, L as normalizeCliError, M as buildIssueContentTitlePrompt, N as buildPrContentPrompt, O as validateRankInboxThreadsResult, P as buildThreadPriorityPrompt, R as sanitizeCommitSubject, St as expandHomePath, V as toJsonSchemaObject, Wn as resolveAttachmentPath, Yn as getModelSelectionStringOptionValue, j as buildIssueContentPolishPrompt, k as buildBranchNamePrompt, z as sanitizePrTitle } from "./bin.mjs";
5
+ import { $n as resolveAttachmentPath, B as buildPrContentPrompt, F as validateRankInboxThreadsResult, G as sanitizeCommitSubject, H as buildThreadTitlePrompt, I as buildBranchNamePrompt, J as toJsonSchemaObject, K as sanitizePrTitle, L as buildCommitMessagePrompt, R as buildIssueContentPolishPrompt, V as buildThreadPriorityPrompt, W as normalizeCliError, ir as getModelSelectionStringOptionValue, kt as expandHomePath, q as sanitizeThreadTitle, rr as getModelSelectionBooleanOptionValue, z as buildIssueContentTitlePrompt } 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