ryco-cli 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AcpNativeLogging-Bh7MX3rC.cjs → AcpNativeLogging-COepku4a.cjs} +264 -7
- package/dist/{AcpNativeLogging-CLM3p9JD.mjs → AcpNativeLogging-D7e1dn7s.mjs} +254 -9
- package/dist/{AzureDevOpsSourceControlProvider-jQm1WPMS.mjs → AzureDevOpsSourceControlProvider-BNGEg1R8.mjs} +3 -3
- package/dist/{AzureDevOpsSourceControlProvider-D9QXGi1h.cjs → AzureDevOpsSourceControlProvider-CrvgKNf2.cjs} +2 -2
- package/dist/{BitbucketSourceControlProvider-j95Cro_2.mjs → BitbucketSourceControlProvider-Bt21jw68.mjs} +3 -3
- package/dist/{BitbucketSourceControlProvider-C3VDp9qR.cjs → BitbucketSourceControlProvider-BzhsQwH-.cjs} +2 -2
- package/dist/{BunPTY-CNvWSzEJ.mjs → BunPTY-TbHbSc8S.mjs} +1 -1
- package/dist/{ClaudeDriver-CT89QDP8.mjs → ClaudeDriver-D65SPdHR.mjs} +44 -119
- package/dist/{ClaudeDriver-DiRhQM2K.cjs → ClaudeDriver-D7NatUx6.cjs} +52 -127
- package/dist/{CodexDriver-CBYfPl_X.mjs → CodexDriver-D4z5-wUD.mjs} +237 -50
- package/dist/{CodexDriver-BmKoU7w_.cjs → CodexDriver-DWGtHt9r.cjs} +235 -48
- package/dist/{CodexTextGeneration-CuXvtfAi.cjs → CodexTextGeneration-B4tJTUDo.cjs} +1 -1
- package/dist/{CodexTextGeneration-B7GPyLo2.mjs → CodexTextGeneration-BikHow8k.mjs} +2 -2
- package/dist/{CopilotDriver-XX5zmGVK.cjs → CopilotDriver-DJvYncGI.cjs} +122 -23
- package/dist/{CopilotDriver-BJ1P_bHz.mjs → CopilotDriver-ZvvsAIkd.mjs} +123 -24
- package/dist/{CursorDriver-BH6yAijk.mjs → CursorDriver-B1QSBzuH.mjs} +45 -74
- package/dist/{CursorDriver-CYMXQKec.cjs → CursorDriver-D3I4KULs.cjs} +44 -73
- package/dist/{ForgejoSourceControlProvider-ZfU3SBzW.mjs → ForgejoSourceControlProvider-BGXysSX6.mjs} +3 -3
- package/dist/{ForgejoSourceControlProvider-Dzg-BJY_.cjs → ForgejoSourceControlProvider-Dh6DOoc8.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-BpyIi23Q.cjs → GitHubSourceControlProvider-8hsv_kCE.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-Bx5_H3zb.mjs → GitHubSourceControlProvider-CPCYV8Xo.mjs} +3 -3
- package/dist/{GitLabSourceControlProvider-QccSsOnx.cjs → GitLabSourceControlProvider-B0ZbF9Zx.cjs} +2 -2
- package/dist/{GitLabSourceControlProvider-DjvGD1WZ.mjs → GitLabSourceControlProvider-Bvknpaon.mjs} +3 -3
- package/dist/{GrokDriver-BPIUrqkN.mjs → GrokDriver-DgQe3pKz.mjs} +41 -10
- package/dist/{GrokDriver-jE4az7JZ.cjs → GrokDriver-_puXDTU3.cjs} +42 -11
- package/dist/{NodePTY-lO8PwZLk.mjs → NodePTY-B_p5tLYO.mjs} +1 -1
- package/dist/{OpenCodeDriver-IbZqAzYW.cjs → OpenCodeDriver-401RexI0.cjs} +240 -40
- package/dist/{OpenCodeDriver-_hUfFwH4.mjs → OpenCodeDriver-DNUlF8M-.mjs} +238 -41
- package/dist/{SourceControlProviderDiscoveryCatalog-CHxCP6Ng.mjs → SourceControlProviderDiscoveryCatalog-B37RHe2u.mjs} +1 -1
- package/dist/{SourceControlProviderDiscoveryCatalog-CnkV-oKD.cjs → SourceControlProviderDiscoveryCatalog-DreaAH1H.cjs} +1 -1
- package/dist/bin.cjs +10690 -5679
- package/dist/bin.mjs +10674 -5674
- package/dist/client/assets/AccountSettings-CypheYqM.js +1 -0
- package/dist/client/assets/AiFocusSettings-BlX0ED1t.js +1 -0
- package/dist/client/assets/AnimatedHeight-DKCe4x_Q.js +1 -0
- package/dist/client/assets/AppearanceSettings-BSyn6NXf.js +1 -0
- package/dist/client/assets/BranchToolbar.logic-fpBz8Ajj.js +1 -0
- package/dist/client/assets/BrowserPanel-BWch19QH.js +1 -0
- package/dist/client/assets/ChatRightPanel-B7yrq-hS.js +27 -0
- package/dist/client/assets/ChatThreadRouteView-Cg0d_EHs.js +1 -0
- package/dist/client/assets/CommandPaletteDialog-DImCuPaX.js +1 -0
- package/dist/client/assets/CompositeItem-BYnHWRNf.js +1 -0
- package/dist/client/assets/CompositeRoot-B28uivk7.js +1 -0
- package/dist/client/assets/ComputerUseSettings-CosW7jaG.js +1 -0
- package/dist/client/assets/ConnectionsSettings-Bk6vI3G-.js +7 -0
- package/dist/client/assets/ContextHandoffEndpointLabel-BR6ygaub.js +4 -0
- package/dist/client/assets/DiagnosticsSettings-Dp_tCNLw.js +2 -0
- package/dist/client/assets/DialogHandle-BN-QB-sO.js +1 -0
- package/dist/client/assets/DialogPopup-BuJs5WUt.js +1 -0
- package/dist/client/assets/DialogRoot-PxEcoecQ.js +1 -0
- package/dist/client/assets/DialogTitle-4nxQsra4.js +1 -0
- package/dist/client/assets/DialogTrigger-D_0canul.js +1 -0
- package/dist/client/assets/DialogViewport-DSo-2hyf.js +1 -0
- package/dist/client/assets/DraftChatThreadRouteView-C94kpMx4.js +1 -0
- package/dist/client/assets/{ExternalIdentityWeb.logic-TlJdh82R.js → ExternalIdentityWeb.logic-CGJKCFPo.js} +1 -1
- package/dist/client/assets/{GlassSurface-BWk2twKc.js → GlassSurface-CyOTUS7E.js} +1 -1
- package/dist/client/assets/HostedConnectionControls-CL0Ws4ca.js +1 -0
- package/dist/client/assets/HostedHubRoot-LUINZl4r.js +1 -0
- package/dist/client/assets/HostedNativeAuthorizationRoute-CgYVBE6N.js +1 -0
- package/dist/client/assets/HostedRelayTrustNotice-DgdeZh52.js +1 -0
- package/dist/client/assets/Icons-BIUbIFr7.js +1 -0
- package/dist/client/assets/IntegrationsSettingsPanel-B7tXTaa3.js +1 -0
- package/dist/client/assets/KeybindingsSettings-HMlRcGQ4.js +7 -0
- package/dist/client/assets/LazyBrowserPanel-CKfmuM9U.js +1 -0
- package/dist/client/assets/{McpServersSettings-Cbq-uHU3.js → McpServersSettings-Bq-HyhvC.js} +4 -4
- package/dist/client/assets/MobileSheet-acDRH9aa.js +1 -0
- package/dist/client/assets/NoActiveThreadState-7rym7bV7.js +1 -0
- package/dist/client/assets/NodeSecuritySettings-D8qjh4Dc.js +1 -0
- package/dist/client/assets/OpinionatedPluginsSettings-D7Uks5yR.js +1 -0
- package/dist/client/assets/PhoneGetAppInterstitial-BQXUSufH.js +1 -0
- package/dist/client/assets/PhoneGetAppInterstitialBackdrop-BbUvwGmI.js +1 -0
- package/dist/client/assets/PhoneHome-DvgdMTkh.js +1 -0
- package/dist/client/assets/PhoneSettingsSurface-DncJ540i.js +1 -0
- package/dist/client/assets/ProjectFavicon-BY5Vyyk6.js +1 -0
- package/dist/client/assets/ProviderInstanceIcon-CZe1TbeC.js +1 -0
- package/dist/client/assets/ProviderModelPicker-DHAY1n_1.js +1 -0
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-D3qYdp40.js → ProviderUpdateLaunchNotification.logic-DQJVrUIo.js} +1 -1
- package/dist/client/assets/ProvidersSettingsPanel-BylxZs4S.js +1 -0
- package/dist/client/assets/RedactedSensitiveText-D-enj1h5.js +1 -0
- package/dist/client/assets/RootAppShell-DBK0WW2b.js +6 -0
- package/dist/client/assets/RycoLetterMark-PnGm6TQY.js +1 -0
- package/dist/client/assets/{Separator-DiMB6Prz.js → Separator-BWKYMFqt.js} +1 -1
- package/dist/client/assets/SettingsDialog-N25hIv-a.js +1 -0
- package/dist/client/assets/SettingsPanels-D9YXmUPP.js +3 -0
- package/dist/client/assets/SettingsPanels.editor-Cn18k74l.js +1 -0
- package/dist/client/assets/SourceControlSettings-BAzSpMfR.js +1 -0
- package/dist/client/assets/StatisticsPage-CLKpfsQ8.js +1 -0
- package/dist/client/assets/StatisticsPanel-DxHUFn64.js +1 -0
- package/dist/client/assets/StatisticsSettingsLink-B3HIQYFh.js +1 -0
- package/dist/client/assets/ThreadStatusIndicators-CQZ_OgY8.js +0 -0
- package/dist/client/assets/{ThreadTerminalDrawer-DvadlVXV.js → ThreadTerminalDrawer-D1SPewXR.js} +3 -3
- package/dist/client/assets/ThreadWorkspacePanel-DVF6oZsV.js +2009 -0
- package/dist/client/assets/ToolbarRootContext-Dt8G5aCw.js +1 -0
- package/dist/client/assets/{WorkItemsTab-CI6hTQ_k.js → WorkItemsTab-BoE-TcXJ.js} +8 -8
- package/dist/client/assets/{activity-1CkdQG5u.js → activity-DfFM6I8A.js} +1 -1
- package/dist/client/assets/alert-DE5SkZhr.js +1 -0
- package/dist/client/assets/alert-dialog-BqPnPhb6.js +1 -0
- package/dist/client/assets/appChrome-CJauXpqv.js +1 -0
- package/dist/client/assets/{archive-BL1hojl3.js → archive-BFV4YQ7D.js} +1 -1
- package/dist/client/assets/arrow-left-CCmICk1t.js +1 -0
- package/dist/client/assets/arrow-right-Z3Eay6Fd.js +1 -0
- package/dist/client/assets/{arrow-up-CTcWIlqV.js → arrow-up-caak6P06.js} +1 -1
- package/dist/client/assets/arrow-up-right-BwC-fCE4.js +1 -0
- package/dist/client/assets/authorization-bHsGYIT0.js +1 -0
- package/dist/client/assets/{badge-Cil0isYQ.js → badge-m9kM3P07.js} +1 -1
- package/dist/client/assets/{bot-DJp0cuhK.js → bot-Cv7a7Ksf.js} +1 -1
- package/dist/client/assets/{button-CBqaO2Ub.js → button-B6xQZNKz.js} +1 -1
- package/dist/client/assets/capabilities-D6bsjqkj.js +1 -0
- package/dist/client/assets/{chart-column-Dw6ACmXM.js → chart-column-DgGlY4sD.js} +1 -1
- package/dist/client/assets/chatThreadActions-BXaNbPbp.js +1 -0
- package/dist/client/assets/check-BfnWUGBT.js +1 -0
- package/dist/client/assets/{chevron-down-B7C6FKzM.js → chevron-down-B_FKCRVh.js} +1 -1
- package/dist/client/assets/chevron-right-B6CKNGh4.js +1 -0
- package/dist/client/assets/{circle-alert-BWvs6IOn.js → circle-alert-BV3vJE-c.js} +1 -1
- package/dist/client/assets/circle-check-D2Vx39x-.js +1 -0
- package/dist/client/assets/{external-link-fbvzDWM7.js → circle-dashed-khcA8K3Y.js} +1 -1
- package/dist/client/assets/circle-question-mark-DEuLdOiy.js +1 -0
- package/dist/client/assets/circle-x-DqfM_2wS.js +1 -0
- package/dist/client/assets/clamp-D0kAXd-u.js +1 -0
- package/dist/client/assets/{clipboard-copy-C4VV20QR.js → clipboard-copy-CiD4tBsh.js} +1 -1
- package/dist/client/assets/clock--4M7moiV.js +1 -0
- package/dist/client/assets/clock-3-NbnQqtcd.js +1 -0
- package/dist/client/assets/collapsible-BECg-ssO.js +1 -0
- package/dist/client/assets/command-DvbA3O0J.js +1 -0
- package/dist/client/assets/{copy-UQjKGt7t.js → copy-CkPe1c-r.js} +1 -1
- package/dist/client/assets/data-list-7TiaqfZU.js +1 -0
- package/dist/client/assets/desktopUpdateAtoms-6j0d8vfy.js +1 -0
- package/dist/client/assets/desktopWorkspace-8s8rm3zL.js +1 -0
- package/dist/client/assets/device-CGaJ6fwD.js +168 -0
- package/dist/client/assets/dialog-C9v8Zl6e.js +1 -0
- package/dist/client/assets/{download-CQZ-m4zW.js → download-DPjzVxTa.js} +1 -1
- package/dist/client/assets/draft-input-BRSLIjV6.js +1 -0
- package/dist/client/assets/editorPreferences-D-9SDgRM.js +1 -0
- package/dist/client/assets/empty-CuQ57p2u.js +1 -0
- package/dist/client/assets/external-link-CF9EzT-A.js +1 -0
- package/dist/client/assets/{eye-CUSPj-gd.js → eye-C2Puut9B.js} +1 -1
- package/dist/client/assets/{folder-DtsQoI9_.js → folder-BKTxLq18.js} +1 -1
- package/dist/client/assets/{folder-closed-CsvKfC6X.js → folder-closed-D2cwiusg.js} +1 -1
- package/dist/client/assets/getPseudoElementBounds-DdH76YK5.js +1 -0
- package/dist/client/assets/{git-branch-BKr-Ij4u.js → git-branch-Dauy2SWC.js} +1 -1
- package/dist/client/assets/{git-pull-request-DIYyPsg5.js → git-pull-request-DsK1gBtK.js} +1 -1
- package/dist/client/assets/globe-dS40wBdE.js +1 -0
- package/dist/client/assets/group-DBXm8riE.js +1 -0
- package/dist/client/assets/hostedConnectionCoordinator-DSMW2Ldh.js +1 -0
- package/dist/client/assets/{index-QY6vcnCY.js → index-DRY8Hgrj.js} +2 -2
- package/dist/client/assets/input-Dn_zesdZ.js +1 -0
- package/dist/client/assets/kbd-BF2-WlxQ.js +1 -0
- package/dist/client/assets/{key-round-CacMputS.js → key-round-BjaaL9Df.js} +1 -1
- package/dist/client/assets/{keybindings-Bj6xWIbQ.js → keybindings-FSJY3Tht.js} +1 -1
- package/dist/client/assets/{keyboard-BqeRMHfL.js → keyboard-AkUFPD_e.js} +1 -1
- package/dist/client/assets/label-BKjVY2A9.js +1 -0
- package/dist/client/assets/{layers-BYi0v17h.js → layers-tzRiuxSx.js} +1 -1
- package/dist/client/assets/{lib-B6XyeqaU.js → lib-D5cyGc84.js} +1 -1
- package/dist/client/assets/{loader-zHASMrUy.js → loader-BrbWRz3I.js} +1 -1
- package/dist/client/assets/loader-circle-DRKbHQst.js +1 -0
- package/dist/client/assets/{log-out-tMJm0Gk6.js → log-out-BEihaal1.js} +1 -1
- package/dist/client/assets/{logging-1BfRrhxL.js → logging-Y73f240E.js} +1 -1
- package/dist/client/assets/main-BiIQEybS.js +9 -0
- package/dist/client/assets/main-tZWU6iqX.css +2 -0
- package/dist/client/assets/menu-BxtB33Up.js +1 -0
- package/dist/client/assets/{messages-square-DiMgWzoq.js → messages-square-e0Zg750i.js} +1 -1
- package/dist/client/assets/{minimize-2-C33mL7LT.js → minimize-2-DC9gMgGl.js} +1 -1
- package/dist/client/assets/monitor-Dj0JFj4_.js +1 -0
- package/dist/client/assets/{palette-BSD_aJZg.js → palette-0qvNt1CR.js} +1 -1
- package/dist/client/assets/{pencil-B69ERoVM.js → pencil-CA0DGufX.js} +1 -1
- package/dist/client/assets/{play-DYDxlTKo.js → play-wIyvqd_g.js} +1 -1
- package/dist/client/assets/plus-5kH13lqq.js +1 -0
- package/dist/client/assets/popover-CwhgX3HA.js +1 -0
- package/dist/client/assets/primary-BqnEJHWx.js +2 -0
- package/dist/client/assets/{projectPaths-BFTUsvWs.js → projectPaths-45WPhgoj.js} +1 -1
- package/dist/client/assets/providerDriverMeta-Cc60r9Rb.js +1 -0
- package/dist/client/assets/providerInstances-Cr8JmFCe.js +1 -0
- package/dist/client/assets/providerModels-Cr8JmFCe.js +1 -0
- package/dist/client/assets/qr-code-BKrwYZ2s.js +1 -0
- package/dist/client/assets/{qr-code-ScYULAuR.js → qr-code-DDmpRnPp.js} +1 -1
- package/dist/client/assets/radio-group-DZCo21CF.js +2 -0
- package/dist/client/assets/{refresh-cw-DopCMrtR.js → refresh-cw-DiuiLTny.js} +1 -1
- package/dist/client/assets/resolveAriaLabelledBy-927ShlEO.js +1 -0
- package/dist/client/assets/rightPanelRouteSearch-CExl-IaQ.js +1 -0
- package/dist/client/assets/rotate-ccw-XOYBPtyK.js +1 -0
- package/dist/client/assets/rotate-cw-D32Z4Sdd.js +1 -0
- package/dist/client/assets/runtime-CA2W9mZ-.js +17 -0
- package/dist/client/assets/{save-Bh36JIv6.js → save-DjlqeVG_.js} +1 -1
- package/dist/client/assets/scroll-area-CylKYQms.js +1 -0
- package/dist/client/assets/scrollEdges-D7RQhYjX.js +1 -0
- package/dist/client/assets/search-B2nLj573.js +1 -0
- package/dist/client/assets/select-qTezUK8F.js +1 -0
- package/dist/client/assets/separator-D77goPy-.js +1 -0
- package/dist/client/assets/{server-JApJpgLa.js → server-y8Wq0Qwv.js} +1 -1
- package/dist/client/assets/session-logic-xfW418Rx.js +1 -0
- package/dist/client/assets/{settings-2-CZQg_KUQ.js → settings-2-DpwBKj3m.js} +1 -1
- package/dist/client/assets/settingsLayout-BuaXzjIe.js +1 -0
- package/dist/client/assets/settingsSections.logic-CR4aytUI.js +1 -0
- package/dist/client/assets/sheet-z3AEiSN4.js +1 -0
- package/dist/client/assets/{shield-IZEIJ8r7.js → shield-BuXuMVtb.js} +1 -1
- package/dist/client/assets/{shield-alert-DY9uVP5G.js → shield-alert-Dfk--o-I.js} +1 -1
- package/dist/client/assets/{shield-check-dQ-4cMKk.js → shield-check-BHi57iF1.js} +1 -1
- package/dist/client/assets/sidebar-Dst9O2OR.js +1 -0
- package/dist/client/assets/sidebarProjectFolders-DR1NBLLz.js +4 -0
- package/dist/client/assets/{sidebarStatusText-q88Acn3r.js → sidebarStatusText-7jo1n9E1.js} +1 -1
- package/dist/client/assets/skeleton-D_kbMg21.js +1 -0
- package/dist/client/assets/{smartphone-gNe1ynB8.js → smartphone-DcUQ17YT.js} +1 -1
- package/dist/client/assets/{sparkles-CAf3oJ5S.js → sparkles-nVLLtdqb.js} +1 -1
- package/dist/client/assets/spinner-CkXSwhuf.js +1 -0
- package/dist/client/assets/{square-pen-Bj3p_Q8E.js → square-pen-dcArpda7.js} +1 -1
- package/dist/client/assets/src-I4s4HU8f.js +14 -0
- package/dist/client/assets/star-CdUOqzzZ.js +1 -0
- package/dist/client/assets/storeSelectors-Cr8JmFCe.js +1 -0
- package/dist/client/assets/switch-BMeRsIbg.js +1 -0
- package/dist/client/assets/{tabSwitchInstrumentation-CLDM7g1_.js → tabSwitchInstrumentation-BuxWNdCV.js} +1 -1
- package/dist/client/assets/terminal-DupJfYRW.js +1 -0
- package/dist/client/assets/{terminal-links-BJzH2Ipe.js → terminal-links-Bf4neyyn.js} +1 -1
- package/dist/client/assets/textarea-Bu_OTJYe.js +1 -0
- package/dist/client/assets/threadPinning-DhnkssEa.js +1 -0
- package/dist/client/assets/{threadPriorityRefreshRuntime-D-OkS27H.js → threadPriorityRefreshRuntime-DJjlyX7f.js} +1 -1
- package/dist/client/assets/toast-CIjfIWUw.js +1 -0
- package/dist/client/assets/toggle-BA4mJ5v9.js +1 -0
- package/dist/client/assets/toggle-group-ChGfILTR.js +1 -0
- package/dist/client/assets/{tokenModePresentation-lVM0-Wi3.js → tokenModePresentation-B64s_OK3.js} +1 -1
- package/dist/client/assets/tooltip-C2VVqN6U.js +1 -0
- package/dist/client/assets/{trash-2-CM1zXPGb.js → trash-2-Dqgxd0nF.js} +1 -1
- package/dist/client/assets/{triangle-alert-RL_T3KLo.js → triangle-alert-D4cCh6sB.js} +1 -1
- package/dist/client/assets/types-Cr8JmFCe.js +1 -0
- package/dist/client/assets/{undo-2-x37tfI3V.js → undo-2-C8EQVSSD.js} +1 -1
- package/dist/client/assets/{unplug-Cw8iawyX.js → unplug-Dt3Sy2op.js} +1 -1
- package/dist/client/assets/useAppSidebarCollapsed-w0th-164.js +1 -0
- package/dist/client/assets/{useAtlassian-Bpvpm41l.js → useAtlassian-j7ex3bVN.js} +0 -0
- package/dist/client/assets/useButton-Dx5k1uZG.js +1 -0
- package/dist/client/assets/useCompositeListItem-BqkyY0oT.js +1 -0
- package/dist/client/assets/{clamp-CgH0Dl6R.js → useControlled-HocCF1v9.js} +1 -1
- package/dist/client/assets/useDebouncedValue-BevbEbPO.js +1 -0
- package/dist/client/assets/useFloatingRootContext-j6TgzEFa.js +1 -0
- package/dist/client/assets/useHandleNewThread-gVYty_Bg.js +1 -0
- package/dist/client/assets/useLabelableId-CcYPzJvj.js +1 -0
- package/dist/client/assets/useLocation-CZ3osOgz.js +1 -0
- package/dist/client/assets/useOpenInteractionType-apbY9ZEK.js +1 -0
- package/dist/client/assets/usePhoneThreadActions-CnDlicSp.js +1 -0
- package/dist/client/assets/usePopupViewport-0k75uXo1.js +1 -0
- package/dist/client/assets/useRenderElement-5DRNLBaU.js +1 -0
- package/dist/client/assets/useScrollLock-C5WLWXcc.js +1 -0
- package/dist/client/assets/{useStatistics-B4vW9Enx.js → useStatistics-GOFXPHO0.js} +2 -2
- package/dist/client/assets/useSwipeDismiss-BNHPBucH.js +1 -0
- package/dist/client/assets/useThreadActions-B4Xy2soQ.js +2 -0
- package/dist/client/assets/useTriggerFocusGuards-C3geWFzt.js +1 -0
- package/dist/client/assets/useValueChanged-FVqPwcY_.js +1 -0
- package/dist/client/assets/user-round-KsVtJgon.js +1 -0
- package/dist/client/assets/utils-B5qahmRn.js +1 -0
- package/dist/client/assets/visuallyHidden-j2WbVEv-.js +1 -0
- package/dist/client/assets/workspaceMetadataProjection-D3vqw40g.js +1 -0
- package/dist/client/assets/{wrench-D0IetWa1.js → wrench-BnpoYEZm.js} +1 -1
- package/dist/client/assets/x-BXHT1Zj1.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-B3klZuIF.mjs → collectUint8StreamText-C_VNyArd.mjs} +1027 -162
- package/dist/{collectUint8StreamText-CDu-bszH.cjs → collectUint8StreamText-DStwNTTK.cjs} +1122 -161
- package/dist/{makeManagedServerProvider-CsaYHU8T.mjs → makeManagedServerProvider-GZcpSLrW.mjs} +22 -3
- package/dist/{makeManagedServerProvider-DeEmDbiq.cjs → makeManagedServerProvider-VzxWN-04.cjs} +32 -1
- package/dist/resource-monitor/LICENSE +21 -0
- package/dist/resource-monitor/darwin-arm64/LICENSE +21 -0
- package/dist/resource-monitor/darwin-arm64/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/darwin-x64/LICENSE +21 -0
- package/dist/resource-monitor/darwin-x64/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/linux-arm64/LICENSE +21 -0
- package/dist/resource-monitor/linux-arm64/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/linux-x64/LICENSE +21 -0
- package/dist/resource-monitor/linux-x64/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
- package/dist/resource-monitor/win32-arm64/LICENSE +21 -0
- package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
- package/dist/resource-monitor/win32-x64/LICENSE +21 -0
- package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
- package/package.json +1 -1
- package/dist/client/assets/AccountSettings-CvD49Uja.js +0 -1
- package/dist/client/assets/AiFocusSettings-CYIp0JOV.js +0 -1
- package/dist/client/assets/AnimatedHeight-CM_Eh6tz.js +0 -1
- package/dist/client/assets/AppearanceSettings-BwUAv5oz.js +0 -1
- package/dist/client/assets/BranchToolbar.logic-CKKpnCfs.js +0 -1
- package/dist/client/assets/ChatRightPanel-DYXZNh1m.js +0 -27
- package/dist/client/assets/ChatThreadRouteView-B0kj0wFr.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-CJKvYVxh.js +0 -1
- package/dist/client/assets/CompositeItem-B4ITmHni.js +0 -1
- package/dist/client/assets/CompositeRoot-C5I2Yh5e.js +0 -1
- package/dist/client/assets/ConnectionsSettings-4l-DXYo6.js +0 -7
- package/dist/client/assets/DiagnosticsSettings-B6IUUiYM.js +0 -2
- package/dist/client/assets/DialogHandle-Bs7TUuxl.js +0 -1
- package/dist/client/assets/DialogPopup-BAK5J3da.js +0 -1
- package/dist/client/assets/DialogRoot-DMnQO_iQ.js +0 -1
- package/dist/client/assets/DialogTitle-B1m3rLO-.js +0 -1
- package/dist/client/assets/DialogTrigger-VXV8wYO4.js +0 -1
- package/dist/client/assets/DialogViewport-yUeHNu43.js +0 -1
- package/dist/client/assets/DraftChatThreadRouteView-C39ZNgWr.js +0 -1
- package/dist/client/assets/HostedConnectionControls-DO5uPfav.js +0 -1
- package/dist/client/assets/HostedHubRoot-DkHX6TkK.js +0 -1
- package/dist/client/assets/HostedNativeAuthorizationRoute-C1VRYU0-.js +0 -1
- package/dist/client/assets/HostedRelayTrustNotice-Cl7lRwRJ.js +0 -1
- package/dist/client/assets/Icons-uMh1k5C0.js +0 -1
- package/dist/client/assets/IntegrationsSettingsPanel-Mx-1xSUL.js +0 -1
- package/dist/client/assets/KeybindingsSettings-Bv3H18VO.js +0 -7
- package/dist/client/assets/MobileSheet-DS7_soKu.js +0 -1
- package/dist/client/assets/NewWorktreeDialog-CLm1JR27.js +0 -4
- package/dist/client/assets/NoActiveThreadState-CFxNrhs_.js +0 -1
- package/dist/client/assets/NodeSecuritySettings-B3uURyma.js +0 -1
- package/dist/client/assets/OpinionatedPluginsSettings-B7gZOBCs.js +0 -1
- package/dist/client/assets/PhoneGetAppInterstitial-DQdUrqs1.js +0 -1
- package/dist/client/assets/PhoneGetAppInterstitialBackdrop-DbRPU11Z.js +0 -1
- package/dist/client/assets/PhoneHome-BbZKBYb8.js +0 -1
- package/dist/client/assets/PhoneSettingsSurface-BJ8jDucY.js +0 -1
- package/dist/client/assets/ProjectFavicon-DHnstN4J.js +0 -1
- package/dist/client/assets/ProviderModelPicker-Ch69G0-0.js +0 -1
- package/dist/client/assets/ProvidersSettingsPanel-Dz-1od7X.js +0 -1
- package/dist/client/assets/RedactedSensitiveText-BORE69Ig.js +0 -1
- package/dist/client/assets/RootAppShell-DnesFYfo.js +0 -6
- package/dist/client/assets/RycoLetterMark-DDx_gBX-.js +0 -1
- package/dist/client/assets/SettingsDialog-CWK_H1sI.js +0 -1
- package/dist/client/assets/SettingsPanels-DxMEuovz.js +0 -3
- package/dist/client/assets/SettingsPanels.editor-D2gxvDPy.js +0 -1
- package/dist/client/assets/SourceControlSettings-CB2SdaRk.js +0 -1
- package/dist/client/assets/StatisticsPage-MhMDuSSQ.js +0 -1
- package/dist/client/assets/StatisticsPanel-D3d0bJgk.js +0 -1
- package/dist/client/assets/StatisticsSettingsLink-DlnQpfyr.js +0 -1
- package/dist/client/assets/ThreadStatusIndicators-CPpIFcAC.js +0 -0
- package/dist/client/assets/ThreadWorkspacePanel-Ct9EINsa.js +0 -2009
- package/dist/client/assets/ToolbarRootContext-DtUqN8i6.js +0 -1
- package/dist/client/assets/alert-DQjuri3D.js +0 -1
- package/dist/client/assets/alert-dialog-Cb2TnXzy.js +0 -1
- package/dist/client/assets/arrow-left-Dtj9PfsA.js +0 -1
- package/dist/client/assets/arrow-up-right-DGeet8e6.js +0 -1
- package/dist/client/assets/authorization-BrGZruGo.js +0 -1
- package/dist/client/assets/branding-BEx1jrAA.js +0 -1
- package/dist/client/assets/capabilities-Cj8jXZOW.js +0 -1
- package/dist/client/assets/chatThreadActions-kwD_yAEt.js +0 -1
- package/dist/client/assets/chevron-right-BWYGybX9.js +0 -1
- package/dist/client/assets/clock-3-r12DkpRj.js +0 -1
- package/dist/client/assets/clock-nNA05brA.js +0 -1
- package/dist/client/assets/collapsible-DBPd--L7.js +0 -1
- package/dist/client/assets/command-DuPvkUAz.js +0 -1
- package/dist/client/assets/composerDraftStore-czbuHgbM.js +0 -11
- package/dist/client/assets/data-list-BNy2Nwkd.js +0 -1
- package/dist/client/assets/desktopUpdateAtoms-Dz4zQu-C.js +0 -1
- package/dist/client/assets/desktopWorkspace-wrPRMcOi.js +0 -1
- package/dist/client/assets/device-DbMaLmeM.js +0 -168
- package/dist/client/assets/dialog-Csp7hsmq.js +0 -1
- package/dist/client/assets/draft-input-COB-ymgx.js +0 -1
- package/dist/client/assets/editorPreferences-lQ3Fm4yA.js +0 -1
- package/dist/client/assets/empty-BcTA7vWq.js +0 -1
- package/dist/client/assets/env-BZZxbmon.js +0 -1
- package/dist/client/assets/folder-open-GqwNTbSV.js +0 -1
- package/dist/client/assets/getPseudoElementBounds-BaLrkv_J.js +0 -1
- package/dist/client/assets/group-CCjhaP2K.js +0 -1
- package/dist/client/assets/input-pu0UXdN_.js +0 -1
- package/dist/client/assets/kbd-xUvRCeUS.js +0 -1
- package/dist/client/assets/label-BzDE8wjR.js +0 -1
- package/dist/client/assets/loader-circle-CrtHFAvM.js +0 -1
- package/dist/client/assets/main-CZzCxtM-.css +0 -2
- package/dist/client/assets/main-stppnsiU.js +0 -9
- package/dist/client/assets/menu-g3Hcm2JF.js +0 -1
- package/dist/client/assets/plus-B2h-VEqh.js +0 -1
- package/dist/client/assets/popover-z5hURYff.js +0 -1
- package/dist/client/assets/primary-AnB-Zuft.js +0 -2
- package/dist/client/assets/providerDriverMeta-C9M8tUrj.js +0 -1
- package/dist/client/assets/providerIconUtils-BXecnJ0v.js +0 -1
- package/dist/client/assets/providerInstances-CMy-5cGE.js +0 -1
- package/dist/client/assets/providerModels-CMy-5cGE.js +0 -1
- package/dist/client/assets/qr-code-B6lBPRxy.js +0 -1
- package/dist/client/assets/radio-group-DQahlnSi.js +0 -2
- package/dist/client/assets/resolveAriaLabelledBy-CUqcBhyS.js +0 -1
- package/dist/client/assets/rightPanelRouteSearch-uEySicf2.js +0 -1
- package/dist/client/assets/runtime-DRPzstwF.js +0 -1
- package/dist/client/assets/scroll-area-CzUrMo2h.js +0 -1
- package/dist/client/assets/scrollEdges-C5VxoJIp.js +0 -1
- package/dist/client/assets/search-BGQsenCM.js +0 -1
- package/dist/client/assets/select-_C7bRT7k.js +0 -1
- package/dist/client/assets/separator-CFUmZFfK.js +0 -1
- package/dist/client/assets/session-logic-C5moG_sv.js +0 -4
- package/dist/client/assets/settingsDialogStore-DnU14tMG.js +0 -1
- package/dist/client/assets/settingsLayout-zwP6p5aD.js +0 -1
- package/dist/client/assets/settingsSections.logic-F8RXVmAq.js +0 -1
- package/dist/client/assets/sheet-BoROLwxR.js +0 -1
- package/dist/client/assets/sidebar-5T3qKIfp.js +0 -1
- package/dist/client/assets/sidebarProjectFolders-Bzdw3xc6.js +0 -4
- package/dist/client/assets/skeleton-C2GDOvXd.js +0 -1
- package/dist/client/assets/spinner-Dlyh0j_K.js +0 -1
- package/dist/client/assets/src-Blzsn4sO.js +0 -14
- package/dist/client/assets/storeSelectors-BJw1h5Ih.js +0 -1
- package/dist/client/assets/switch-CIMwetO3.js +0 -1
- package/dist/client/assets/terminal-C_CyIsDD.js +0 -1
- package/dist/client/assets/textarea-C0_BLJbT.js +0 -1
- package/dist/client/assets/threadPinning-DQrBoIxu.js +0 -1
- package/dist/client/assets/toast-D7IDKuLa.js +0 -1
- package/dist/client/assets/toggle-DjmkdNns.js +0 -1
- package/dist/client/assets/toggle-group-q7LGJy7u.js +0 -1
- package/dist/client/assets/tooltip-c9oahm_e.js +0 -1
- package/dist/client/assets/types-BJw1h5Ih.js +0 -1
- package/dist/client/assets/uiStateStore-C48VlkZ2.js +0 -1
- package/dist/client/assets/useButton-CbjUY1n3.js +0 -1
- package/dist/client/assets/useCompositeListItem-Mh9CnfjW.js +0 -1
- package/dist/client/assets/useDebouncedValue-fMFxXx4-.js +0 -1
- package/dist/client/assets/useFloatingRootContext-P6J9bP_1.js +0 -1
- package/dist/client/assets/useHandleNewThread-C1VSk4Ji.js +0 -1
- package/dist/client/assets/useLabelableId-ve_G1Djw.js +0 -1
- package/dist/client/assets/useLocation-LUorHj6V.js +0 -1
- package/dist/client/assets/useOpenInteractionType-BcwkVFGu.js +0 -1
- package/dist/client/assets/usePhoneThreadActions--SRv1Gdm.js +0 -1
- package/dist/client/assets/usePopupViewport-DyXMbxzY.js +0 -1
- package/dist/client/assets/useRenderElement-DchFnsR8.js +0 -1
- package/dist/client/assets/useScrollLock-DvPB4gyu.js +0 -1
- package/dist/client/assets/useSwipeDismiss-8zZC4ynu.js +0 -1
- package/dist/client/assets/useThreadActions-wbcN8Mp3.js +0 -2
- package/dist/client/assets/useTriggerFocusGuards-DI2oAYh0.js +0 -1
- package/dist/client/assets/useValueChanged-DeYQvzxH.js +0 -1
- package/dist/client/assets/user-round-Cpzx8pSw.js +0 -1
- package/dist/client/assets/utils-Dz7wQZDk.js +0 -1
- package/dist/client/assets/visibilityPolling-BwzZdaSN.js +0 -1
- package/dist/client/assets/x-C1Cemsov.js +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { $a as ProviderInstanceId, Oa as ThreadGoal, Qa as ProviderDriverKind, Vi as ProviderApprovalDecision, Yo as ApprovalRequestId, _s as TurnId, as as MessageId, br as isToolLifecycleItemType, ds as RuntimeRequestId, ji as PROVIDER_SEND_TURN_MAX_IMAGE_BYTES, ls as ProviderItemId, ms as RuntimeTaskId, ps as RuntimeSubagentId, rr as CodexSettings, rs as EventId, us as RuntimeItemId } from "./collectUint8StreamText-C_VNyArd.mjs";
|
|
4
4
|
import { st as ServerConfig } from "./Metrics-BP9YjxZB.mjs";
|
|
5
|
-
import { $t as
|
|
5
|
+
import { $ as mergeProviderInstanceEnvironment, $n as resolveAttachmentPath, $t as V2ErrorNotification, An as V2WindowsWorldWritableWarningNotification, At as CodexAppServerClient, Bt as ServerRequest__CommandExecutionRequestApprovalParams, Cn as V2TurnPlanUpdatedNotification, Ct as ProviderAdapterSessionNotFoundError, Dn as V2TurnSteerParams, Dt as materializeCodexShadowHome, En as V2TurnStartResponse, Et as codexContinuationIdentity, Ft as CodexAppServerRequestError, Gt as ToolRequestUserInputParams, Hn as enrichProviderSnapshotWithVersionAdvisory, Ht as ServerRequest__ExecCommandApprovalParams, It as CodexAppServerSpawnError, Jn as resolveProviderMaintenanceCapabilitiesEffect, Jt as V2AccountUpdatedNotification, Kt as ToolRequestUserInputResponse, Lt as CodexAppServerTransportError, M as makeEventNdjsonLogger, Mt as layerCommand, N as buildTokenReductionInstructions, Nt as CodexAppServerProcessExitedError, On as V2TurnSteerResponse, Ot as resolveCodexHomeLayout, P as checkRtkAvailability, Pt as CodexAppServerProtocolParseError, Qt as V2DeprecationNoticeNotification, Rt as SERVER_NOTIFICATION_METHODS, Sn as V2TurnDiffUpdatedNotification, St as ProviderAdapterSessionClosedError, Tn as V2TurnStartParams__CollaborationMode, Tt as ProviderDriverError, Ut as ServerRequest__FileChangeRequestApprovalParams, Vt as ServerRequest__DynamicToolCallParams, Wn as makePackageManagedProviderMaintenanceResolver, Wt as ServerRequest__ToolRequestUserInputParams, Xn as ServerSettingsService, Xt as V2CommandExecutionOutputDeltaNotification, Yt as V2AgentMessageDeltaNotification, Zt as V2ConfigWarningNotification, _n as V2ThreadRealtimeStartedNotification, _t as installAgentControlNativeHttp, an as V2ModelReroutedNotification, bn as V2ThreadTokenUsageUpdatedNotification, bt as ProviderAdapterProcessError, cn as V2ReasoningTextDeltaNotification, dn as V2ThreadGoalUpdatedNotification, en as V2FileChangeOutputDeltaNotification, et as buildCodexInitializeParams, fn as V2ThreadNameUpdatedNotification, gn as V2ThreadRealtimeOutputAudioDeltaNotification, hn as V2ThreadRealtimeItemAddedNotification, in as V2McpToolCallProgressNotification, ir as getModelSelectionStringOptionValue, j as ProviderEventLoggers, jt as layerChildProcess, kn as V2WindowsSandboxSetupCompletedNotification, kt as expandHomePath, ln as V2ServerRequestResolvedNotification, lr as normalizeModelSlug, mn as V2ThreadRealtimeErrorNotification, n as AgentControlSessionRegistry, nn as V2ItemStartedNotification, nt as makePendingCodexProvider, on as V2PlanDeltaNotification, pn as V2ThreadRealtimeClosedNotification, qt as V2AccountRateLimitsUpdatedNotification, rn as V2McpServerOauthLoginCompletedNotification, rr as getModelSelectionBooleanOptionValue, sn as V2ReasoningSummaryTextDeltaNotification, t as makeServerQueueMetrics, tn as V2ItemCompletedNotification, tt as checkCodexProviderStatus, un as V2ThreadGoalClearedNotification, vn as V2ThreadStartedNotification, wn as V2TurnStartParams, wt as ProviderAdapterValidationError, xn as V2TurnCompletedNotification, xt as ProviderAdapterRequestError, yn as V2ThreadStatusChangedNotification, yt as createProcessDeviceToolBinding, zt as ServerRequest__ApplyPatchApprovalParams } from "./bin.mjs";
|
|
6
|
+
import { a as formatAttachmentPathLines, i as appendAttachmentPathLines, n as requireRuntimeSessionId, r as stampRuntimeEvent, t as makeManagedServerProvider } from "./makeManagedServerProvider-GZcpSLrW.mjs";
|
|
6
7
|
import { t as formatSourceControlContextsForAgent } from "./sourceControlContextFormatter-DEwpnVAH.mjs";
|
|
7
8
|
import { t as appendProjectCustomSystemPrompt } from "./ProjectCustomSystemPrompt-CS1nulhL.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { Deferred, Effect, Exit, Fiber, FileSystem, Layer, Option, Queue, Redacted, Ref, Schema, Scope, Stream } from "effect";
|
|
9
|
+
import { t as makeCodexTextGeneration } from "./CodexTextGeneration-BikHow8k.mjs";
|
|
10
|
+
import { Cause, 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";
|
|
13
13
|
import * as SchemaIssue$1 from "effect/SchemaIssue";
|
|
@@ -177,13 +177,6 @@ const PROVIDER$1 = ProviderDriverKind.make("codex");
|
|
|
177
177
|
const ANSI_ESCAPE_REGEX = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g");
|
|
178
178
|
const CODEX_STDERR_LOG_REGEX = /^\d{4}-\d{2}-\d{2}T\S+\s+(TRACE|DEBUG|INFO|WARN|ERROR)\s+\S+:\s+(.*)$/;
|
|
179
179
|
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"];
|
|
180
|
-
const RECOVERABLE_THREAD_RESUME_ERROR_SNIPPETS = [
|
|
181
|
-
"not found",
|
|
182
|
-
"missing thread",
|
|
183
|
-
"no such thread",
|
|
184
|
-
"unknown thread",
|
|
185
|
-
"does not exist"
|
|
186
|
-
];
|
|
187
180
|
const CodexResumeCursorSchema = Schema.Struct({ threadId: Schema.String });
|
|
188
181
|
const CodexUserInputAnswerObject = Schema.Struct({ answers: Schema.Array(Schema.String) });
|
|
189
182
|
const CodexTurnStartParamsWithCollaborationMode = V2TurnStartParams.pipe(Schema.fieldsAssign({ collaborationMode: Schema.optionalKey(V2TurnStartParams__CollaborationMode) }));
|
|
@@ -276,7 +269,10 @@ function buildThreadStartParams(input) {
|
|
|
276
269
|
approvalPolicy: config.approvalPolicy,
|
|
277
270
|
sandbox: config.sandbox,
|
|
278
271
|
approvalsReviewer: config.approvalsReviewer,
|
|
279
|
-
|
|
272
|
+
config: {
|
|
273
|
+
"features.goals": true,
|
|
274
|
+
...Object.keys(mcpServers).length > 0 ? { mcp_servers: mcpServers } : {}
|
|
275
|
+
},
|
|
280
276
|
...input.model ? { model: input.model } : {},
|
|
281
277
|
...input.serviceTier ? { serviceTier: input.serviceTier } : {}
|
|
282
278
|
};
|
|
@@ -357,11 +353,6 @@ function classifyCodexStderrLine(rawLine) {
|
|
|
357
353
|
}
|
|
358
354
|
return { message: line };
|
|
359
355
|
}
|
|
360
|
-
function isRecoverableThreadResumeError(error) {
|
|
361
|
-
const message = (error instanceof Error ? error.message : String(error)).toLowerCase();
|
|
362
|
-
if (!message.includes("thread")) return false;
|
|
363
|
-
return RECOVERABLE_THREAD_RESUME_ERROR_SNIPPETS.some((snippet) => message.includes(snippet));
|
|
364
|
-
}
|
|
365
356
|
const openCodexThread = (input) => {
|
|
366
357
|
const resumeThreadId = input.resumeThreadId;
|
|
367
358
|
const startParams = buildThreadStartParams({
|
|
@@ -376,13 +367,10 @@ const openCodexThread = (input) => {
|
|
|
376
367
|
return input.client.request("thread/resume", {
|
|
377
368
|
threadId: resumeThreadId,
|
|
378
369
|
...startParams
|
|
379
|
-
}).pipe(Effect.
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
recoverable: true,
|
|
384
|
-
cause: error.message
|
|
385
|
-
}).pipe(Effect.andThen(input.client.request("thread/start", startParams)))));
|
|
370
|
+
}).pipe(Effect.mapError((error) => error.message.includes("already has an active writer") ? new CodexAppServerRequestError({
|
|
371
|
+
code: -32600,
|
|
372
|
+
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."
|
|
373
|
+
}) : error));
|
|
386
374
|
};
|
|
387
375
|
function readNotificationThreadId(notification) {
|
|
388
376
|
switch (notification.method) {
|
|
@@ -569,10 +557,31 @@ function parseThreadSnapshot(response) {
|
|
|
569
557
|
threadId: response.thread.id,
|
|
570
558
|
turns: response.thread.turns.map((turn) => ({
|
|
571
559
|
id: TurnId.make(turn.id),
|
|
572
|
-
items: turn.items
|
|
560
|
+
items: turn.items,
|
|
561
|
+
status: turn.status,
|
|
562
|
+
...turn.startedAt !== void 0 ? { startedAt: turn.startedAt } : {}
|
|
573
563
|
}))
|
|
574
564
|
};
|
|
575
565
|
}
|
|
566
|
+
const readStoredCodexThread = (input) => Effect.scoped(Effect.gen(function* () {
|
|
567
|
+
const context = yield* Layer.build(layerCommand({
|
|
568
|
+
command: input.binaryPath,
|
|
569
|
+
args: ["app-server"],
|
|
570
|
+
cwd: input.cwd,
|
|
571
|
+
env: {
|
|
572
|
+
...input.environment ?? process.env,
|
|
573
|
+
...input.homePath ? { CODEX_HOME: expandHomePath(input.homePath) } : {}
|
|
574
|
+
},
|
|
575
|
+
requestTimeoutMs: 2e4
|
|
576
|
+
}));
|
|
577
|
+
const client = yield* Effect.service(CodexAppServerClient).pipe(Effect.provide(context));
|
|
578
|
+
yield* client.request("initialize", buildCodexInitializeParams());
|
|
579
|
+
yield* client.notify("initialized", void 0);
|
|
580
|
+
return parseThreadSnapshot(yield* client.request("thread/read", {
|
|
581
|
+
threadId: input.providerThreadId,
|
|
582
|
+
includeTurns: true
|
|
583
|
+
}));
|
|
584
|
+
}));
|
|
576
585
|
const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
577
586
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
578
587
|
const runtimeScope = yield* Scope.Scope;
|
|
@@ -604,7 +613,8 @@ const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
|
604
613
|
command: `${options.binaryPath} app-server`,
|
|
605
614
|
cause
|
|
606
615
|
})));
|
|
607
|
-
const
|
|
616
|
+
const transportFailure = yield* Deferred.make();
|
|
617
|
+
const clientContext = yield* layerChildProcess(child, { onTermination: (error) => Deferred.succeed(transportFailure, error).pipe(Effect.asVoid) }).pipe(Layer.build, Effect.provideService(Scope.Scope, runtimeScope));
|
|
608
618
|
const client = yield* Effect.service(CodexAppServerClient).pipe(Effect.provide(clientContext));
|
|
609
619
|
const serverNotifications = yield* Queue.bounded(512);
|
|
610
620
|
const initialSession = {
|
|
@@ -636,6 +646,16 @@ const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
|
636
646
|
method,
|
|
637
647
|
message
|
|
638
648
|
});
|
|
649
|
+
yield* Deferred.await(transportFailure).pipe(Effect.flatMap((error) => Ref.get(closedRef).pipe(Effect.flatMap((closed) => closed ? Effect.void : Effect.gen(function* () {
|
|
650
|
+
deviceTurnActive = false;
|
|
651
|
+
yield* updateSession(sessionRef, {
|
|
652
|
+
status: "error",
|
|
653
|
+
activeTurnId: void 0,
|
|
654
|
+
lastError: "Codex connection was lost. Reopen the chat to recover its history."
|
|
655
|
+
});
|
|
656
|
+
yield* emitSessionEvent("session/exited", `Codex connection lost (${error._tag}).`);
|
|
657
|
+
yield* child.kill().pipe(Effect.ignore);
|
|
658
|
+
})))), Effect.forkIn(runtimeScope));
|
|
639
659
|
const settlePendingApprovals = (decision) => Ref.get(pendingApprovalsRef).pipe(Effect.flatMap((pendingApprovals) => Effect.forEach(Array.from(pendingApprovals.values()), (pendingApproval) => Deferred.succeed(pendingApproval.decision, decision).pipe(Effect.ignore), { discard: true })));
|
|
640
660
|
const settlePendingUserInputs = (answers) => Ref.get(pendingUserInputsRef).pipe(Effect.flatMap((pendingUserInputs) => Effect.forEach(Array.from(pendingUserInputs.values()), (pendingUserInput) => Deferred.succeed(pendingUserInput.answers, answers).pipe(Effect.ignore), { discard: true })));
|
|
641
661
|
/**
|
|
@@ -792,7 +812,8 @@ const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
|
792
812
|
method: "collabAgent/item",
|
|
793
813
|
payload: {
|
|
794
814
|
...childIdentity,
|
|
795
|
-
item: notification.params.item
|
|
815
|
+
item: notification.params.item,
|
|
816
|
+
lifecycle: notification.method
|
|
796
817
|
}
|
|
797
818
|
});
|
|
798
819
|
return true;
|
|
@@ -1095,9 +1116,12 @@ const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
|
1095
1116
|
...options.agentControl ? { agentControl: options.agentControl } : {}
|
|
1096
1117
|
});
|
|
1097
1118
|
const providerThreadId = opened.thread.id;
|
|
1119
|
+
const activeTurn = opened.thread.turns.findLast((turn) => turn.status === "inProgress");
|
|
1120
|
+
deviceTurnActive = activeTurn !== void 0;
|
|
1098
1121
|
const session = {
|
|
1099
1122
|
...yield* Ref.get(sessionRef),
|
|
1100
|
-
status: "ready",
|
|
1123
|
+
status: activeTurn ? "running" : "ready",
|
|
1124
|
+
activeTurnId: activeTurn ? TurnId.make(activeTurn.id) : void 0,
|
|
1101
1125
|
cwd: opened.cwd,
|
|
1102
1126
|
model: opened.model,
|
|
1103
1127
|
resumeCursor: { threadId: providerThreadId },
|
|
@@ -1197,10 +1221,19 @@ const makeCodexSessionRuntime = (options) => Effect.gen(function* () {
|
|
|
1197
1221
|
}),
|
|
1198
1222
|
readThread: Effect.gen(function* () {
|
|
1199
1223
|
const providerThreadId = yield* readProviderThreadId;
|
|
1200
|
-
|
|
1224
|
+
const response = yield* client.request("thread/read", {
|
|
1201
1225
|
threadId: providerThreadId,
|
|
1202
1226
|
includeTurns: true
|
|
1203
|
-
})
|
|
1227
|
+
});
|
|
1228
|
+
const session = yield* Ref.get(sessionRef);
|
|
1229
|
+
if (session.activeTurnId && response.thread.turns.some((turn) => turn.id === session.activeTurnId && turn.status !== "inProgress")) {
|
|
1230
|
+
deviceTurnActive = false;
|
|
1231
|
+
yield* updateSession(sessionRef, {
|
|
1232
|
+
status: "ready",
|
|
1233
|
+
activeTurnId: void 0
|
|
1234
|
+
});
|
|
1235
|
+
}
|
|
1236
|
+
return parseThreadSnapshot(response);
|
|
1204
1237
|
}),
|
|
1205
1238
|
rollbackThread: (numTurns) => Effect.gen(function* () {
|
|
1206
1239
|
const providerThreadId = yield* readProviderThreadId;
|
|
@@ -1362,7 +1395,7 @@ function readTokenReductionInstructions(tokenMode) {
|
|
|
1362
1395
|
function normalizeCodexTokenUsage(usage) {
|
|
1363
1396
|
const totalProcessedTokens = usage.total.totalTokens;
|
|
1364
1397
|
const usedTokens = usage.last.totalTokens;
|
|
1365
|
-
if (usedTokens === void 0 || usedTokens
|
|
1398
|
+
if (usedTokens === void 0 || usedTokens < 0) return;
|
|
1366
1399
|
const maxTokens = usage.modelContextWindow ?? void 0;
|
|
1367
1400
|
const inputTokens = usage.last.inputTokens;
|
|
1368
1401
|
const cachedInputTokens = usage.last.cachedInputTokens;
|
|
@@ -1732,7 +1765,35 @@ function mapCollabAgentEvent(event, canonicalThreadId) {
|
|
|
1732
1765
|
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);
|
|
1733
1766
|
const canonical = toCanonicalItemType(itemTypeRaw);
|
|
1734
1767
|
const summary = looseSummary ?? canonical.replaceAll("_", " ");
|
|
1735
|
-
return [{
|
|
1768
|
+
if (canonical === "assistant_message" && payload.lifecycle === "item/completed" && typeof item?.text === "string" && typeof item.id === "string") return [{
|
|
1769
|
+
...base,
|
|
1770
|
+
type: "subagent.message.delta",
|
|
1771
|
+
payload: {
|
|
1772
|
+
subagentId: RuntimeSubagentId.make(agentThreadId),
|
|
1773
|
+
providerThreadId: agentThreadId,
|
|
1774
|
+
providerMessageId: item.id,
|
|
1775
|
+
delta: item.text,
|
|
1776
|
+
role: "assistant"
|
|
1777
|
+
}
|
|
1778
|
+
}];
|
|
1779
|
+
const toolEvents = [];
|
|
1780
|
+
if (isToolLifecycleItemType(canonical) && typeof item?.id === "string") {
|
|
1781
|
+
const completed = payload.lifecycle === "item/completed" || item.status === "completed" || item.status === "failed";
|
|
1782
|
+
toolEvents.push({
|
|
1783
|
+
...base,
|
|
1784
|
+
eventId: EventId.make(`${base.eventId}:tool`),
|
|
1785
|
+
itemId: RuntimeItemId.make(`${agentThreadId}:${item.id}`),
|
|
1786
|
+
type: completed ? "item.completed" : "item.updated",
|
|
1787
|
+
payload: {
|
|
1788
|
+
itemType: canonical,
|
|
1789
|
+
status: item.status === "failed" ? "failed" : completed ? "completed" : "inProgress",
|
|
1790
|
+
title: summary,
|
|
1791
|
+
agentId: agentThreadId,
|
|
1792
|
+
data: { item }
|
|
1793
|
+
}
|
|
1794
|
+
});
|
|
1795
|
+
}
|
|
1796
|
+
return [...toolEvents, {
|
|
1736
1797
|
...base,
|
|
1737
1798
|
type: "task.progress",
|
|
1738
1799
|
payload: {
|
|
@@ -2290,6 +2351,7 @@ function mapToRuntimeEvents(event, canonicalThreadId) {
|
|
|
2290
2351
|
*/
|
|
2291
2352
|
const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, options) {
|
|
2292
2353
|
const boundInstanceId = options?.instanceId ?? ProviderInstanceId.make("codex");
|
|
2354
|
+
const adapterScope = yield* Scope.Scope;
|
|
2293
2355
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
2294
2356
|
const childProcessSpawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
2295
2357
|
const serverConfig = yield* Effect.service(ServerConfig);
|
|
@@ -2369,6 +2431,11 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2369
2431
|
detail: formatCodexRuntimeErrorDetail(cause),
|
|
2370
2432
|
cause
|
|
2371
2433
|
})));
|
|
2434
|
+
let runtimeExited = false;
|
|
2435
|
+
const retireRuntime = Effect.gen(function* () {
|
|
2436
|
+
const current = sessions.get(input.threadId);
|
|
2437
|
+
if (current?.runtime === runtime) yield* stopSessionInternal(current);
|
|
2438
|
+
});
|
|
2372
2439
|
const eventFiber = yield* Stream.runForEach(runtime.events, (event) => Effect.gen(function* () {
|
|
2373
2440
|
yield* writeNativeEvent(event);
|
|
2374
2441
|
const runtimeEvents = mapToRuntimeEvents(event, event.threadId).map((runtimeEvent) => stampRuntimeEvent(runtimeEvent, {
|
|
@@ -2391,19 +2458,43 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2391
2458
|
}
|
|
2392
2459
|
yield* Queue.offerAll(runtimeEventQueue, runtimeEvents);
|
|
2393
2460
|
yield* runtimeEventQueueMetrics.recordEnqueued(runtimeEvents.length);
|
|
2394
|
-
|
|
2461
|
+
if (runtimeEvents.some((runtimeEvent) => runtimeEvent.type === "session.exited")) {
|
|
2462
|
+
runtimeExited = true;
|
|
2463
|
+
yield* retireRuntime.pipe(Effect.forkIn(adapterScope));
|
|
2464
|
+
}
|
|
2465
|
+
})).pipe(Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.interrupt : Effect.gen(function* () {
|
|
2466
|
+
runtimeExited = true;
|
|
2467
|
+
if (agentControl) yield* agentControl.revoke("runtime-teardown");
|
|
2468
|
+
yield* Effect.logWarning("Codex event consumer failed; retiring its runtime", { threadId: input.threadId });
|
|
2469
|
+
yield* Queue.offer(runtimeEventQueue, {
|
|
2470
|
+
eventId: EventId.make(crypto.randomUUID()),
|
|
2471
|
+
provider: PROVIDER,
|
|
2472
|
+
providerInstanceId: boundInstanceId,
|
|
2473
|
+
runtimeSessionId,
|
|
2474
|
+
threadId: input.threadId,
|
|
2475
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2476
|
+
type: "session.exited",
|
|
2477
|
+
payload: {
|
|
2478
|
+
reason: "Codex event stream failed. Reopen the chat to recover.",
|
|
2479
|
+
recoverable: true,
|
|
2480
|
+
exitKind: "error"
|
|
2481
|
+
}
|
|
2482
|
+
});
|
|
2483
|
+
yield* runtimeEventQueueMetrics.recordEnqueued(1);
|
|
2484
|
+
yield* retireRuntime.pipe(Effect.forkIn(adapterScope));
|
|
2485
|
+
})), Effect.forkIn(sessionScope));
|
|
2395
2486
|
const started = yield* runtime.start().pipe(Effect.mapError((cause) => new ProviderAdapterProcessError({
|
|
2396
2487
|
provider: PROVIDER,
|
|
2397
2488
|
threadId: input.threadId,
|
|
2398
2489
|
detail: formatCodexRuntimeErrorDetail(cause),
|
|
2399
2490
|
cause
|
|
2400
2491
|
})), Effect.onError(() => runtime.close.pipe(Effect.andThen(Effect.ignore(Scope.close(sessionScope, Exit.void))), Effect.andThen(Fiber.interrupt(eventFiber)), Effect.ignore)));
|
|
2401
|
-
if (started.runtimeSessionId !== void 0 && started.runtimeSessionId !== runtimeSessionId) {
|
|
2492
|
+
if (runtimeExited || started.runtimeSessionId !== void 0 && started.runtimeSessionId !== runtimeSessionId) {
|
|
2402
2493
|
yield* runtime.close.pipe(Effect.andThen(Fiber.interrupt(eventFiber)), Effect.andThen(Scope.close(sessionScope, Exit.void)), Effect.ignore);
|
|
2403
2494
|
return yield* new ProviderAdapterValidationError({
|
|
2404
2495
|
provider: PROVIDER,
|
|
2405
2496
|
operation: "startSession",
|
|
2406
|
-
issue: `Codex runtime returned epoch '${started.runtimeSessionId}' for requested epoch '${runtimeSessionId}'.`
|
|
2497
|
+
issue: runtimeExited ? "Codex runtime exited while the session was starting." : `Codex runtime returned epoch '${started.runtimeSessionId}' for requested epoch '${runtimeSessionId}'.`
|
|
2407
2498
|
});
|
|
2408
2499
|
}
|
|
2409
2500
|
sessions.set(input.threadId, {
|
|
@@ -2467,13 +2558,21 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2467
2558
|
method,
|
|
2468
2559
|
detail: `Turn has ${attachments.length} attachments; limit is 8.`
|
|
2469
2560
|
});
|
|
2470
|
-
const
|
|
2561
|
+
const native = attachments.filter((attachment) => attachment.type === "image");
|
|
2562
|
+
const resolved = yield* Effect.forEach(native, (attachment) => resolveAttachmentForPreflight(attachment, method), { concurrency: 1 });
|
|
2471
2563
|
const totalBytes = resolved.reduce((total, entry) => total + entry.sizeBytes, 0);
|
|
2472
2564
|
if (totalBytes > PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES) return yield* new ProviderAdapterRequestError({
|
|
2473
2565
|
provider: PROVIDER,
|
|
2474
2566
|
method,
|
|
2475
2567
|
detail: `Turn attachments total ${totalBytes} bytes; limit is ${PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES} bytes.`
|
|
2476
2568
|
});
|
|
2569
|
+
const pathLineEntries = attachments.filter((attachment) => attachment.type !== "image").map((attachment) => ({
|
|
2570
|
+
attachment,
|
|
2571
|
+
...attachment.id === void 0 ? {} : { resolvedPath: resolveAttachmentPath({
|
|
2572
|
+
attachmentsDir: serverConfig.attachmentsDir,
|
|
2573
|
+
attachment
|
|
2574
|
+
}) ?? void 0 }
|
|
2575
|
+
}));
|
|
2477
2576
|
if (resolved.length > 0) {
|
|
2478
2577
|
yield* Effect.annotateCurrentSpan({
|
|
2479
2578
|
"provider.attachment_count": resolved.length,
|
|
@@ -2490,7 +2589,10 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2490
2589
|
}))
|
|
2491
2590
|
});
|
|
2492
2591
|
}
|
|
2493
|
-
return
|
|
2592
|
+
return {
|
|
2593
|
+
native: resolved,
|
|
2594
|
+
pathLines: formatAttachmentPathLines(pathLineEntries)
|
|
2595
|
+
};
|
|
2494
2596
|
});
|
|
2495
2597
|
const toCodexAttachment = Effect.fn("toCodexAttachment")(function* (resolved, method) {
|
|
2496
2598
|
const bytes = yield* fileSystem.readFile(resolved.path).pipe(Effect.mapError((cause) => new ProviderAdapterRequestError({
|
|
@@ -2505,13 +2607,13 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2505
2607
|
};
|
|
2506
2608
|
});
|
|
2507
2609
|
const sendTurn = Effect.fn("sendTurn")(function* (input) {
|
|
2508
|
-
const
|
|
2509
|
-
const codexAttachments = yield* Effect.forEach(
|
|
2610
|
+
const { native, pathLines } = yield* preflightAttachments(input, "turn/start");
|
|
2611
|
+
const codexAttachments = yield* Effect.forEach(native, (attachment) => toCodexAttachment(attachment, "turn/start"), { concurrency: 1 });
|
|
2510
2612
|
const session = yield* requireSession(input.threadId);
|
|
2511
2613
|
const reasoningEffort = input.modelSelection?.instanceId === boundInstanceId ? getModelSelectionStringOptionValue(input.modelSelection, "reasoningEffort") : void 0;
|
|
2512
2614
|
const fastMode = input.modelSelection?.instanceId === boundInstanceId ? getModelSelectionBooleanOptionValue(input.modelSelection, "fastMode") : void 0;
|
|
2513
2615
|
const formatted = formatSourceControlContextsForAgent(input.sourceControlContexts ?? []);
|
|
2514
|
-
const codexInput = formatted ? formatted + "\n\n" + (input.input ?? "") : input.input;
|
|
2616
|
+
const codexInput = appendAttachmentPathLines(formatted ? formatted + "\n\n" + (input.input ?? "") : input.input, pathLines);
|
|
2515
2617
|
const result = yield* session.runtime.sendTurn({
|
|
2516
2618
|
...codexInput !== void 0 ? { input: codexInput } : {},
|
|
2517
2619
|
...input.modelSelection?.instanceId === boundInstanceId ? { model: input.modelSelection.model } : {},
|
|
@@ -2529,12 +2631,14 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2529
2631
|
return result;
|
|
2530
2632
|
});
|
|
2531
2633
|
const steerTurn = Effect.fn("steerTurn")(function* (input) {
|
|
2532
|
-
const
|
|
2533
|
-
const codexAttachments = yield* Effect.forEach(
|
|
2534
|
-
|
|
2634
|
+
const { native, pathLines } = yield* preflightAttachments(input, "turn/steer");
|
|
2635
|
+
const codexAttachments = yield* Effect.forEach(native, (attachment) => toCodexAttachment(attachment, "turn/steer"), { concurrency: 1 });
|
|
2636
|
+
const session = yield* requireSession(input.threadId);
|
|
2637
|
+
const steerInput = appendAttachmentPathLines(input.input, pathLines);
|
|
2638
|
+
return yield* session.runtime.steerTurn({
|
|
2535
2639
|
expectedTurnId: input.expectedTurnId,
|
|
2536
2640
|
messageId: input.messageId,
|
|
2537
|
-
...
|
|
2641
|
+
...steerInput !== void 0 ? { input: steerInput } : {},
|
|
2538
2642
|
...codexAttachments.length > 0 ? { attachments: codexAttachments } : {}
|
|
2539
2643
|
}).pipe(Effect.mapError((cause) => mapCodexRuntimeError(input.threadId, "turn/steer", cause)));
|
|
2540
2644
|
});
|
|
@@ -2565,6 +2669,64 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2565
2669
|
threadId,
|
|
2566
2670
|
turns: snapshot.turns
|
|
2567
2671
|
})));
|
|
2672
|
+
const readThreadHistory = (input) => Effect.gen(function* () {
|
|
2673
|
+
if (!Schema.is(CodexResumeCursorSchema)(input.resumeCursor)) return yield* new ProviderAdapterValidationError({
|
|
2674
|
+
provider: PROVIDER,
|
|
2675
|
+
operation: "readThreadHistory",
|
|
2676
|
+
issue: "Missing Codex thread identity."
|
|
2677
|
+
});
|
|
2678
|
+
const existing = sessions.get(input.threadId);
|
|
2679
|
+
const liveSession = existing && !existing.stopped ? yield* existing.runtime.getSession : void 0;
|
|
2680
|
+
const liveSnapshot = existing && liveSession && (liveSession.status === "ready" || liveSession.status === "running") && Schema.is(CodexResumeCursorSchema)(liveSession.resumeCursor) && liveSession.resumeCursor.threadId === input.resumeCursor.threadId ? yield* existing.runtime.readThread.pipe(Effect.timeoutOption("2 seconds"), Effect.orElseSucceed(() => Option.none())) : Option.none();
|
|
2681
|
+
const snapshot = Option.isSome(liveSnapshot) ? liveSnapshot.value : yield* readStoredCodexThread({
|
|
2682
|
+
binaryPath: codexConfig.binaryPath,
|
|
2683
|
+
cwd: input.cwd ?? process.cwd(),
|
|
2684
|
+
providerThreadId: input.resumeCursor.threadId,
|
|
2685
|
+
...codexConfig.homePath ? { homePath: codexConfig.homePath } : {},
|
|
2686
|
+
...options?.environment ? { environment: options.environment } : {}
|
|
2687
|
+
}).pipe(Effect.provideService(ChildProcessSpawner.ChildProcessSpawner, childProcessSpawner), Effect.mapError((cause) => mapCodexRuntimeError(input.threadId, "thread/read", cause)));
|
|
2688
|
+
const messages = [];
|
|
2689
|
+
const items = [];
|
|
2690
|
+
const completedTurnIds = [];
|
|
2691
|
+
const failedTurnIds = [];
|
|
2692
|
+
for (const turn of snapshot.turns) {
|
|
2693
|
+
if (!turn.status || turn.status === "inProgress") continue;
|
|
2694
|
+
completedTurnIds.push(turn.id);
|
|
2695
|
+
if (turn.status === "failed") failedTurnIds.push(turn.id);
|
|
2696
|
+
const createdAt = (/* @__PURE__ */ new Date((turn.startedAt ?? 0) * 1e3)).toISOString();
|
|
2697
|
+
for (const item of turn.items) if (item.type === "agentMessage" || item.type === "userMessage") messages.push({
|
|
2698
|
+
id: MessageId.make(item.type === "agentMessage" ? `assistant:${item.id}` : item.clientId ?? `user:${item.id}`),
|
|
2699
|
+
turnId: turn.id,
|
|
2700
|
+
role: item.type === "agentMessage" ? "assistant" : "user",
|
|
2701
|
+
text: item.type === "agentMessage" ? item.text : item.content.flatMap((part) => part.type === "text" ? [part.text] : []).join("\n"),
|
|
2702
|
+
createdAt
|
|
2703
|
+
});
|
|
2704
|
+
else {
|
|
2705
|
+
const event = mapItemLifecycle({
|
|
2706
|
+
id: EventId.make(`history:${input.threadId}:${snapshot.threadId}:${turn.id}:${item.id}`),
|
|
2707
|
+
provider: PROVIDER,
|
|
2708
|
+
threadId: input.threadId,
|
|
2709
|
+
kind: "notification",
|
|
2710
|
+
method: "item/completed",
|
|
2711
|
+
turnId: turn.id,
|
|
2712
|
+
itemId: ProviderItemId.make(item.id),
|
|
2713
|
+
createdAt,
|
|
2714
|
+
payload: {
|
|
2715
|
+
threadId: snapshot.threadId,
|
|
2716
|
+
turnId: turn.id,
|
|
2717
|
+
item
|
|
2718
|
+
}
|
|
2719
|
+
}, input.threadId, "item.completed");
|
|
2720
|
+
if (event) items.push(event);
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
return {
|
|
2724
|
+
messages,
|
|
2725
|
+
items,
|
|
2726
|
+
completedTurnIds,
|
|
2727
|
+
failedTurnIds
|
|
2728
|
+
};
|
|
2729
|
+
});
|
|
2568
2730
|
const rollbackThread = (threadId, numTurns) => {
|
|
2569
2731
|
if (!Number.isInteger(numTurns) || numTurns < 1) return Effect.fail(new ProviderAdapterValidationError({
|
|
2570
2732
|
provider: PROVIDER,
|
|
@@ -2576,11 +2738,34 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2576
2738
|
turns: snapshot.turns
|
|
2577
2739
|
})));
|
|
2578
2740
|
};
|
|
2579
|
-
const setThreadGoal = (threadId, goal) => requireSession(threadId).pipe(Effect.flatMap((session) =>
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2741
|
+
const setThreadGoal = (threadId, goal) => requireSession(threadId).pipe(Effect.flatMap((session) => {
|
|
2742
|
+
const fields = goal.synchronization?.fields ?? [
|
|
2743
|
+
"objective",
|
|
2744
|
+
"status",
|
|
2745
|
+
"tokenBudget"
|
|
2746
|
+
];
|
|
2747
|
+
return session.runtime.setGoal({
|
|
2748
|
+
...fields.includes("objective") ? { objective: goal.objective } : {},
|
|
2749
|
+
...fields.includes("status") ? { status: goal.status } : {},
|
|
2750
|
+
...fields.includes("tokenBudget") ? { tokenBudget: goal.tokenBudget } : {}
|
|
2751
|
+
});
|
|
2752
|
+
}), Effect.flatMap((response) => {
|
|
2753
|
+
const goal = normalizeCodexThreadGoal(response.goal);
|
|
2754
|
+
return goal ? Effect.succeed(goal) : Effect.fail(new ProviderAdapterRequestError({
|
|
2755
|
+
provider: "codex",
|
|
2756
|
+
method: "thread/goal/set",
|
|
2757
|
+
detail: "Codex returned an invalid goal."
|
|
2758
|
+
}));
|
|
2759
|
+
}), Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" || cause._tag === "ProviderAdapterRequestError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/set", cause)));
|
|
2760
|
+
const getThreadGoal = (threadId) => requireSession(threadId).pipe(Effect.flatMap((session) => session.runtime.getGoal), Effect.flatMap((response) => {
|
|
2761
|
+
if (!response.goal) return Effect.succeed(null);
|
|
2762
|
+
const goal = normalizeCodexThreadGoal(response.goal);
|
|
2763
|
+
return goal ? Effect.succeed(goal) : Effect.fail(new ProviderAdapterRequestError({
|
|
2764
|
+
provider: "codex",
|
|
2765
|
+
method: "thread/goal/get",
|
|
2766
|
+
detail: "Codex returned an invalid goal."
|
|
2767
|
+
}));
|
|
2768
|
+
}), Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" || cause._tag === "ProviderAdapterRequestError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/get", cause)));
|
|
2584
2769
|
const clearThreadGoal = (threadId) => requireSession(threadId).pipe(Effect.flatMap((session) => session.runtime.clearGoal), Effect.asVoid, Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "thread/goal/clear", cause)));
|
|
2585
2770
|
const respondToRequest = (threadId, requestId, decision) => requireSession(threadId).pipe(Effect.flatMap((session) => session.runtime.respondToRequest(requestId, decision)), Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "item/requestApproval/decision", cause)));
|
|
2586
2771
|
const respondToUserInput = (threadId, requestId, answers) => requireSession(threadId).pipe(Effect.flatMap((session) => session.runtime.respondToUserInput(requestId, answers)), Effect.mapError((cause) => cause._tag === "ProviderAdapterSessionNotFoundError" ? cause : mapCodexRuntimeError(threadId, "item/tool/requestUserInput", cause)));
|
|
@@ -2611,8 +2796,10 @@ const makeCodexAdapter = Effect.fn("makeCodexAdapter")(function* (codexConfig, o
|
|
|
2611
2796
|
steerTurn,
|
|
2612
2797
|
interruptTurn,
|
|
2613
2798
|
readThread,
|
|
2799
|
+
readThreadHistory,
|
|
2614
2800
|
rollbackThread,
|
|
2615
2801
|
setThreadGoal,
|
|
2802
|
+
getThreadGoal,
|
|
2616
2803
|
clearThreadGoal,
|
|
2617
2804
|
respondToRequest,
|
|
2618
2805
|
respondToUserInput,
|