dorkos 0.131.0 → 0.133.0
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/bin/cli.js +499 -314
- package/dist/browser/fresh-verifier.mjs +13 -13
- package/dist/browser/native/darwin-supervisor-worker.mjs +3 -3
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-BZ2LLJ0k.js → AboutPage-D-EHHVPa.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-BnqAwUiy.js → ActivityErrorState-BTHnE1vP.js} +1 -1
- package/dist/client/assets/{ActivityPage-BlZKrSVo.js → ActivityPage-BfSLPIdR.js} +1 -1
- package/dist/client/assets/{ActivityRow-Ch8HxQ2m.js → ActivityRow-PwUBjQw8.js} +1 -1
- package/dist/client/assets/{AdapterIcon-CfocFMw-.js → AdapterIcon-DgkNN6bi.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-Dtjx1Oad.js → AdapterSetupWizard-DX0dzp7q.js} +2 -2
- package/dist/client/assets/{AgentOptionRow-BGRvUeF7.js → AgentOptionRow-ApuDEKqq.js} +1 -1
- package/dist/client/assets/{AgentPicker-BcURPZQp.js → AgentPicker-BDci-9aL.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-kNq5A_IN.js → AgentRequestCard-B2gxCMGi.js} +3 -3
- package/dist/client/assets/{AppearancePage-Cd-k7dcc.js → AppearancePage-8SVnFe0k.js} +1 -1
- package/dist/client/assets/ApplyToOverridesDialog-CnL1ubxL.js +1 -0
- package/dist/client/assets/{AttentionSignalRow-QY8AIjf9.js → AttentionSignalRow-CCKhUtil.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-Cgkvajbw.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-B7wFPzG4.js} +3 -3
- package/dist/client/assets/BindingDialog-C4BHVXno.js +1 -0
- package/dist/client/assets/{BlintzCanvas-CMzZnmWK.js → BlintzCanvas-7E5uwVms.js} +3 -3
- package/dist/client/assets/{CanvasCsvContent-uxMaHePf.js → CanvasCsvContent-l7lfyDGn.js} +4 -4
- package/dist/client/assets/CanvasFileContent-Bqd0IEfK.js +2 -0
- package/dist/client/assets/CanvasModel3dContent-DqL0Sy4r.js +2 -0
- package/dist/client/assets/{ChannelComposer-BAg0a29Q.js → ChannelComposer-CAYvz_ZB.js} +12 -17
- package/dist/client/assets/{ChatAppsOff-DD28V0vX.js → ChatAppsOff-CNeKBVNz.js} +2 -2
- package/dist/client/assets/{CodeMirrorDiff-CyoduBgM.js → CodeMirrorDiff-BZRcNFsS.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-DGccoZ8Q.js → CodeMirrorEditor-DD5tArRn.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-Dk98shko.js → ComputerResourceView-BUmsVssG.js} +1 -1
- package/dist/client/assets/{ComputerViewer-Broprz4q.js → ComputerViewer-BKMR5LkF.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-C_qLz8GJ.js → ConnectionAccessLists-DYUiFmPY.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-CmGgGmDO.js → ConnectionsPage-DR2Kfm9Q.js} +2 -2
- package/dist/client/assets/{ConventionPage-BxWLIUUC.js → ConventionPage-Do6q8873.js} +2 -2
- package/dist/client/assets/{ExtensionPageRoute-CyfIRaGs.js → ExtensionPageRoute-CP7NM7fw.js} +2 -2
- package/dist/client/assets/{FeatureDisabledState-By2dhVpu.js → FeatureDisabledState-Bi23k3rg.js} +1 -1
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-B6wKQpLR.js → FloatingTanStackRouterDevtools-CqogiFob-lRlmDXYz.js} +1 -1
- package/dist/client/assets/{ForwardConsentHost-kDdpyBgA.js → ForwardConsentHost-DSR1pEEK.js} +1 -1
- package/dist/client/assets/HandlePage-aHId3bYX.js +1 -0
- package/dist/client/assets/HeartbeatPage-BTNVcHOI.js +1 -0
- package/dist/client/assets/{KeyEntry-Ctc1zp2J.js → KeyEntry-67acsEG2.js} +1 -1
- package/dist/client/assets/{LexicalField-7zd4B8f1.js → LexicalField-Cb68LIar.js} +2 -2
- package/dist/client/assets/{ManagesPage-BG1TIMP3.js → ManagesPage-ChPlBF42.js} +1 -1
- package/dist/client/assets/{Marketplace-C9r4jRJf.js → Marketplace-CzPhJEE1.js} +4 -4
- package/dist/client/assets/{MarketplaceSourcesView-C01Cdrge.js → MarketplaceSourcesView-CmQgxQmU.js} +1 -1
- package/dist/client/assets/{McpAppFrame-Dm7MqOhc.js → McpAppFrame-z5JUaCSA.js} +2 -2
- package/dist/client/assets/{McpSigninBody-CsXP_7lE.js → McpSigninBody-ZrnzwrOH.js} +1 -1
- package/dist/client/assets/{Model3dViewer-DOl8ZkrU.js → Model3dViewer-HJpWK-JI.js} +1 -1
- package/dist/client/assets/NamePage-C7F-SotG.js +1 -0
- package/dist/client/assets/{NewDirectMessageMenu-Dj-Qw8zA.js → NewDirectMessageMenu-CjBjzsDe.js} +1 -1
- package/dist/client/assets/{NotificationsPage-UExs4YE2.js → NotificationsPage-DwNUI0Z3.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-Dx3M3wwS.js → OpenMeshSwitch-RNAZY1vn.js} +2 -2
- package/dist/client/assets/{OperatorIdentityForm-Bz5570RF.js → OperatorIdentityForm-B7S2C_eT.js} +1 -1
- package/dist/client/assets/PermissionHistory-D0chstxf.js +1 -0
- package/dist/client/assets/PermissionsPage-ToK0DZVV.js +1 -0
- package/dist/client/assets/{PersonalityPopover-Do-k_Hhw.js → PersonalityPopover-BvMtUQRM.js} +1 -1
- package/dist/client/assets/PhotoPage-Cqo3PNO_.js +1 -0
- package/dist/client/assets/{PreviewRefusedNotice-B-yyzQZP.js → PreviewRefusedNotice-DzbkMrUo.js} +1 -1
- package/dist/client/assets/{ProfileFields-DiarOK2y.js → ProfileFields-DU8dTGHT.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-33Xkwoc3.js → ProfilePanelContainer-BfT-ufV7.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-BI6T4hj8.js → ProfileRolePicker-DrOtV-0N.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-v5MScpZF.js → PromptSuggestionChips-CEnhme_V.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-BALADuTO.js → ReportsToPopover-CwjpR1Tw.js} +1 -1
- package/dist/client/assets/{RoomSurface-BatV7gf5.js → RoomSurface-CChzNJKw.js} +1 -1
- package/dist/client/assets/{RoomsPage-DCCC3Dst.js → RoomsPage-Dbf6ijKr.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-C7hMPyrb.js → RunsOnPopover-Bh5sSsSC.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow-Dc5a8dlJ.js → RuntimeConnectFlow-BYQnY5vv.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-w90VGjJ4.js → RuntimeSetupDialog-DTO5v0dP.js} +1 -1
- package/dist/client/assets/{SeenDevices-BIMmbMWC.js → SeenDevices-cuY7ASEy.js} +3 -3
- package/dist/client/assets/{SessionsPage-0lwvSYHB.js → SessionsPage-BrqpVx-t.js} +1 -1
- package/dist/client/assets/{SettingsDialog-CrP6JzPg.js → SettingsDialog-DCAZX_1d.js} +4 -4
- package/dist/client/assets/{SkillsPage-BDgKWTfe.js → SkillsPage-D5who_ZH.js} +1 -1
- package/dist/client/assets/TaskDialogWrapper-BJ6XtOC5.js +1 -0
- package/dist/client/assets/TasksEmptyState-B3SjsxQa.js +3 -0
- package/dist/client/assets/{TasksPage-DjGbMGvn.js → TasksPage-B72w7J87.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-B_sM9Fik.js → TeamComputerEntry-B9ma5j-X.js} +1 -1
- package/dist/client/assets/TodoPromiseList-DDKWAfmv.js +1 -0
- package/dist/client/assets/TodoPromisesPage-BNXpvXzS.js +1 -0
- package/dist/client/assets/{ToolsPage-CeETRCd8.js → ToolsPage-DbJykCG3.js} +2 -2
- package/dist/client/assets/{TopologyGraph-CnpH2NjE.js → TopologyGraph-DKZS3nlr.js} +3 -3
- package/dist/client/assets/{TourHost-BQHrS47S.js → TourHost-Bw3Uoea5.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-DOQLeNx4.js → UnlinkDialog-B-XCFNSd.js} +1 -1
- package/dist/client/assets/{UnreadDivider-DhyK6uGG.js → UnreadDivider-1aPVzwd7.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-Bwlfu514.js → WidgetErrorCard-C5ieVv_9.js} +6 -6
- package/dist/client/assets/{WithheldExtensionsNotice-BDc-CM2t.js → WithheldExtensionsNotice-CCO4ClRZ.js} +1 -1
- package/dist/client/assets/{WorkQueuePage-iO_DO1YK.js → WorkQueuePage-BbPKNwDg.js} +1 -1
- package/dist/client/assets/WorkView-BRcytACJ.js +51 -0
- package/dist/client/assets/_shell-EwFeSIGp.js +80 -0
- package/dist/client/assets/{_shell._home-BWi5YPaR.js → _shell._home-DD2mg-iK.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-BU1NIGb7.js → _shell._home.activity-Z1QuU2M4.js} +1 -1
- package/dist/client/assets/_shell._home.index-BzTYr8Bw.js +3 -0
- package/dist/client/assets/_shell._home.tasks-BtC85Iut.js +1 -0
- package/dist/client/assets/{_shell._home.workspaces-wbnqJ58w.js → _shell._home.workspaces-qMG5OJYR.js} +1 -1
- package/dist/client/assets/{_shell.channels-D1KdvWZF.js → _shell.channels-BE4EK-iM.js} +2 -2
- package/dist/client/assets/_shell.connections-CBx0ogzx.js +1 -0
- package/dist/client/assets/{_shell.feedback-requests-DzHWC1fJ.js → _shell.feedback-requests-CwKSkkuD.js} +2 -2
- package/dist/client/assets/_shell.marketplace-CgWBUKSA.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-8HZpKFDI.js +1 -0
- package/dist/client/assets/_shell.session-D6HcVbnm.js +1 -0
- package/dist/client/assets/{_shell.team-BMNSUpQQ.js → _shell.team-Dm5a4f8_.js} +4 -4
- package/dist/client/assets/_shell.threads-BavVtQOE.js +1 -0
- package/dist/client/assets/_shell.todos-B6uWr0zA.js +6 -0
- package/dist/client/assets/_shell.x._extensionId-DaELdkCH.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-DaELdkCH.js +1 -0
- package/dist/client/assets/{abnfDiagram-WEYOIA3C-Co2k29JX.js → abnfDiagram-WEYOIA3C-Bu2T3jVw.js} +1 -1
- package/dist/client/assets/{access-copy-D6BUySpp.js → access-copy-tkiFMhRf.js} +1 -1
- package/dist/client/assets/{arc-DLZZpkuJ.js → arc-5q4SfXO9.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-ClS9xqK5.js → architectureDiagram-ZHVYKT53-BnDMOBhV.js} +1 -1
- package/dist/client/assets/{banner-B8iMuXCP.js → banner-CSKUrrI0.js} +2 -2
- package/dist/client/assets/{blockDiagram-RJAE7QA3-DheoOELu.js → blockDiagram-RJAE7QA3-CtushlEs.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-VWWZJ5x4.js → c4Diagram-XDPPPE54-7L-qYwKH.js} +1 -1
- package/dist/client/assets/channel-A3XT7_2L.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-BqPLJVkv.js → chunk-2E7WHVMD-ksBVyqQ3.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-DZn6OnKe.js → chunk-2Q5K7J3B-Bfqdkihb.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-Dl9Poajp.js → chunk-4EMNKR2T-Brf2dH9x.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-RoKuZPUc.js → chunk-55XCU76K-BlE7Cq40.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-DV_1XHtU.js → chunk-5VM5RSS4-Bkgg3j7L.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-B_IuS45y.js → chunk-JWPE2WC7-B9TRpN4O.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-DkLNi45x.js → chunk-VQ5W62QI-ZoILnIYi.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-ISM-1Dpw.js → chunk-XXDRQBXY-r2xNhaKz.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-MKaLMW8o.js → chunk-ZCHMQSOR-DfV3cF7d.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-CIWuu4ht.js → classDiagram-v2-4MYWR3UA-VOVqMNNP.js} +1 -1
- package/dist/client/assets/{command-CxGYZKco.js → command-CaUEAy3b.js} +1 -1
- package/dist/client/assets/{copy-button-DjAoGwds.js → copy-button-BOznikwM.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-HiCifRyi.js → cose-bilkent-JH36ORCC-CAdBvyLz.js} +1 -1
- package/dist/client/assets/{cpu-DHHTTvp_.js → cpu-j9vX9Wfk.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-DjJGZrPz.js → cynefin-EF2NZ3EQ-DcH1A9Oo.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-DE2NdiJ2.js → cynefinDiagram-WF24UDRP-DJuKBXHi.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-C6gDOD26.js → dagre-NK4GIZVX-D099H_0S.js} +1 -1
- package/dist/client/assets/{detail-row-CjwI1iuc.js → detail-row-Crl89jnh.js} +1 -1
- package/dist/client/assets/{diagram-CBK3MWTC-38LckcsL.js → diagram-CBK3MWTC-Cd_4W9XO.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D--8L6D9Ra.js → diagram-I5XIIV2D-Bc7aQKt3.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-DGC2Inhd.js → diagram-ODIL2UCW-awVJZ4Bg.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-BDHp0AyR.js → diagram-PFBEJUXE-dhsj9aeU.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-uBatJYPi.js → diagram-RJA3I4VV-Dm59CbiV.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-C8e1EH9X.js → diagram-TYUNFSNR-BhvcIjA9.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-DimRzU5B.js → ebnfDiagram-V4P3TTPT-C4wT_MTC.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-Dz6_Y2-G.js → elk-QONTBCTQ-CPI0zjmW.js} +1 -1
- package/dist/client/assets/{empty-state-saV209Il.js → empty-state-BHcmkSzu.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-JeuTF8w6.js → erDiagram-KYQIGQAA-C_vGcbOB.js} +1 -1
- package/dist/client/assets/{execution-config-ClQZyDs9.js → execution-config-BS5rtvTZ.js} +1 -1
- package/dist/client/assets/{file-BIF-4ARS.js → file-CQGljfDT.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-DxadH2b-.js → file-exclamation-point-B0a55VME.js} +1 -1
- package/dist/client/assets/{file-text-C_NPIQr4.js → file-text-Cycq_S0e.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-CXai_zs0.js → find-latest-widget-fence-B6sJdG3Q.js} +4 -4
- package/dist/client/assets/{flowDiagram-IUGLLWBU-9FHDdK4j.js → flowDiagram-IUGLLWBU-_VNfmnxx.js} +1 -1
- package/dist/client/assets/{form-D3VdAYl4.js → form-BL14vwyB.js} +1 -1
- package/dist/client/assets/{format-cron-BqRDcFZM.js → format-cron-meJMgYNe.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-CLMuXlHt.js → ganttDiagram-R7GPNTJY-o0gGU7X_.js} +1 -1
- package/dist/client/assets/{git-branch-Df7a5_fb.js → git-branch-CsLE6G0Y.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-sE7Rlpr6.js → gitGraphDiagram-PDYL7XHY-DjXjUpJo.js} +1 -1
- package/dist/client/assets/{graph-iNVyFhBQ.js → graph-BMYee_VK.js} +1 -1
- package/dist/client/assets/{heart-BHMhDZ0K.js → heart-Cn3a-UQI.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-VvvsrJbu.js → highlighted-body-KPVGNVTW-DsX5yCC0.js} +1 -1
- package/dist/client/assets/{image-lightbox-CGEIRguA.js → image-lightbox-BZ_eBZgA.js} +1 -1
- package/dist/client/assets/{image-off-C5-TmSq8.js → image-off-DjR7LI5G.js} +1 -1
- package/dist/client/assets/{index-C3zS0ghJ.js → index-1MwES_vb.js} +1 -1
- package/dist/client/assets/{index-ClyRhxV_.js → index-47--OGKJ.js} +1 -1
- package/dist/client/assets/{index-CTgUh4p3.js → index-4rSR8lau.js} +1 -1
- package/dist/client/assets/{index-D9bEy8X-.js → index-B4TxpTKD.js} +1 -1
- package/dist/client/assets/{index-Dw-4S640.js → index-B8LqLhq7.js} +1 -1
- package/dist/client/assets/index-BJRgbiEd.js +1 -0
- package/dist/client/assets/{index-DWZ5M321.js → index-BOCclWF3.js} +1 -1
- package/dist/client/assets/index-BR1m9FON.js +1066 -0
- package/dist/client/assets/index-BcFn_S6b.js +1 -0
- package/dist/client/assets/{index-DRtg_sGG.js → index-BcnwvTnt.js} +1 -1
- package/dist/client/assets/index-BdVQOlVQ.css +1 -0
- package/dist/client/assets/{index-DEvpdTo6.js → index-BmKHO-FD.js} +1 -1
- package/dist/client/assets/{index-Bd0PAkxf.js → index-BsZkXHsH.js} +1 -1
- package/dist/client/assets/{index-Cudi8rs6.js → index-BxWr8Mrf.js} +1 -1
- package/dist/client/assets/index-C5EvpXcq.js +1 -0
- package/dist/client/assets/{index-CExh9cKN.js → index-Cb_p_ynP.js} +1 -1
- package/dist/client/assets/{index-YZbu9tke.js → index-CczLBUKI.js} +1 -1
- package/dist/client/assets/{index-264YDu-W.js → index-Cf4Gtxf9.js} +1 -1
- package/dist/client/assets/{index-Dpu2CORc.js → index-CfKSlYjb.js} +1 -1
- package/dist/client/assets/{index-Bzm9YMbr.js → index-Cgjq7a-8.js} +1 -1
- package/dist/client/assets/{index-Ci_J5Q-6.js → index-CpWxcN5D.js} +1 -1
- package/dist/client/assets/{index-BK5QrGfQ.js → index-Cv67OXfk.js} +1 -1
- package/dist/client/assets/{index-Di-MIFQG.js → index-D5Qmx1JR.js} +3 -3
- package/dist/client/assets/{index-LPrq0pOA.js → index-DARchye_.js} +1 -1
- package/dist/client/assets/{index-DMwivStD.js → index-DFb4kOjm.js} +2 -2
- package/dist/client/assets/{index-WeLoaNzW.js → index-DLN0kcME.js} +1 -1
- package/dist/client/assets/{index-BMLCfTba.js → index-DMSSN08i.js} +1 -1
- package/dist/client/assets/{index-Y6BDhuGt.js → index-DQ8uADJF.js} +1 -1
- package/dist/client/assets/index-DZhMvc9m.js +1 -0
- package/dist/client/assets/{index-CLsoFUml.js → index-Dfko0tSp.js} +1 -1
- package/dist/client/assets/{index-BgdYXP8E.js → index-DiM3QX-4.js} +3 -3
- package/dist/client/assets/{index-BxFLHNLg.js → index-DlvUENo4.js} +1 -1
- package/dist/client/assets/{index-BLUUshO9.js → index-DqZmnJED.js} +1 -1
- package/dist/client/assets/{index-D_bAtIJZ.js → index-DrlB9RSk.js} +1 -1
- package/dist/client/assets/{index-CgWzzIbx.js → index-H4e5Wpmi.js} +1 -1
- package/dist/client/assets/{index-k67dvyau.js → index-Joav7LQU.js} +1 -1
- package/dist/client/assets/{index-B0FHRkHM.js → index-KganLhU1.js} +2 -2
- package/dist/client/assets/{index-DFkofTx1.js → index-Kt6r3DQg.js} +1 -1
- package/dist/client/assets/{index-B8I1k-z9.js → index-Z2ApBQt4.js} +1 -1
- package/dist/client/assets/index-dY7IFpet.js +1 -0
- package/dist/client/assets/{index-DYVNSRDk.js → index-faSyUc2q.js} +1 -1
- package/dist/client/assets/{index-BgRYuqWs.js → index-gmyiXkmr.js} +1 -1
- package/dist/client/assets/{index-BZTLFzJp.js → index-o6kGmVGx.js} +1 -1
- package/dist/client/assets/{index-C_0JoCV6.js → index-vHKVYcH7.js} +1 -1
- package/dist/client/assets/{index.esm-CYmalBux.js → index.esm-CJIDYBqd.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-0aR9wjgO.js → infoDiagram-MVDRKAX5-B1mMyUlp.js} +1 -1
- package/dist/client/assets/{inline-code-DyTKSC5b.js → inline-code-mh48Uhbi.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-D1lN8x2t.js → ishikawaDiagram-HPEHV2GE-efEMQ0_X.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-CkXITXiJ.js → journeyDiagram-BOSHW7O7-DSAywiVk.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-ge33IiSq.js → kanban-definition-FNSA4HC5-B9pbU4zK.js} +1 -1
- package/dist/client/assets/{layers-Bx3K7OUm.js → layers-B0Z5Od3N.js} +1 -1
- package/dist/client/assets/{lightbulb-C5LvXkvM.js → lightbulb-Cfb5ecEd.js} +1 -1
- package/dist/client/assets/{link-2-Bj0_Zkvr.js → link-2-Dzy5BUL3.js} +1 -1
- package/dist/client/assets/{list-runtime-types-VNj1C8TB.js → list-runtime-types-DLmjtBMq.js} +1 -1
- package/dist/client/assets/{markdown-content-BRaPEOC7.js → markdown-content-DhAtZOfj.js} +1 -1
- package/dist/client/assets/{mention-pill-B_MiJWfo.js → mention-pill-DmA8FxL4.js} +1 -1
- package/dist/client/assets/{mermaid.core-B2hil_4a.js → mermaid.core-DUIkdbeL.js} +4 -4
- package/dist/client/assets/{message-square-off-T33FHpr7.js → message-square-off-BowIzJUV.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-Bu_Ia4Xz.js → mindmap-definition-6OY57UG3-Dz7ZOR4C.js} +1 -1
- package/dist/client/assets/{more-details-oDazWBxm.js → more-details-DV7LmY0E.js} +1 -1
- package/dist/client/assets/{owner-notice-VepbAQhj.js → owner-notice-DdFc2P8z.js} +1 -1
- package/dist/client/assets/{package-DBsl3ao5.js → package-BhKXbvU_.js} +1 -1
- package/dist/client/assets/{page-container-Bkarym6m.js → page-container-0sWZ3xh9.js} +1 -1
- package/dist/client/assets/{pane-resize-handle-gBlb5k1v.js → pane-resize-handle-Bjy4udre.js} +1 -1
- package/dist/client/assets/{paperclip-BeFttiUK.js → paperclip-C-7LhBfl.js} +1 -1
- package/dist/client/assets/{path-input-NY_yCBHb.js → path-input-BPVyI72G.js} +1 -1
- package/dist/client/assets/{pegDiagram-ECIUJNBX-0KmJlW0E.js → pegDiagram-ECIUJNBX-C4EOP-Fa.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-IjeZXicv.js → pieDiagram-GNMPY74T-CQ1OxRkv.js} +1 -1
- package/dist/client/assets/{plug-CTqOZ7cA.js → plug-CIZ-wWL8.js} +1 -1
- package/dist/client/assets/{primer-trigger-CjaGrT2u.js → primer-trigger-XA5fLzR5.js} +2 -2
- package/dist/client/assets/{profile-errors-B8XkL2Rp.js → profile-errors-C1XACbc9.js} +1 -1
- package/dist/client/assets/{progress-Cr-4myw6.js → progress-BA2JPtb6.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-CP6kLJKa.js → quadrantDiagram-D57K4MC3-Cw4BdkpS.js} +1 -1
- package/dist/client/assets/{query-error-state-DvhY-YKM.js → query-error-state-Cm-Lozlb.js} +1 -1
- package/dist/client/assets/{radio-CmDmmJy6.js → radio-DQ29H26H.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-Bcto__oE.js → railroadDiagram-Y72NRBL7-CSKtYLmm.js} +1 -1
- package/dist/client/assets/registry-Tbt9pcZl.js +39 -0
- package/dist/client/assets/registry-jD9zw538.js +1 -0
- package/dist/client/assets/{relay-trace-schemas-ZLR1S8ft.js → relay-trace-schemas-4AAUf-Zl.js} +2 -2
- package/dist/client/assets/{repeat-DVTM8et8.js → repeat-B8g-x-Sc.js} +1 -1
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-DNJrds3m.js → requirementDiagram-EQYSW5RA-BPSBZr7X.js} +1 -1
- package/dist/client/assets/{room-files-source-9Wdtc-bG.js → room-files-source-BkiK4-ZI.js} +2 -2
- package/dist/client/assets/{rotate-ccw-clock-qJSWqifh.js → rotate-ccw-clock-DRtL-2nr.js} +1 -1
- package/dist/client/assets/{rotate-cw-uoeBxIeM.js → rotate-cw-BbHkWN-J.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-DNlU7xGI.js → sankeyDiagram-SY24JHO5-DVlHablQ.js} +1 -1
- package/dist/client/assets/{scroll-area-B1d3NfEn.js → scroll-area-DAC7NrVU.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU-CRk71coF.js → sequenceDiagram-BLEHNHQU--wZkN8xk.js} +1 -1
- package/dist/client/assets/{shield-x-BpQmg1qz.js → shield-x-CEWfkzDN.js} +1 -1
- package/dist/client/assets/{signed-in-CTmJ3OqM.js → signed-in-CMhCR-m8.js} +1 -1
- package/dist/client/assets/{sizeCapture-INFHLROL-cihX3QNq.js → sizeCapture-INFHLROL-CLXc7d3S.js} +1 -1
- package/dist/client/assets/{soul-file-BwiyiI5v.js → soul-file-CbX7rNqz.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-BAwwRsnH.js → stateDiagram-v2-A6IESKWZ-5xa1FM_X.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-CpDB6CUC.js → swimlanes-B3ENRKFQ-DKgxJxjE.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-f6MOc3pl.js +8 -0
- package/dist/client/assets/{table-dWrfPeX-.js → table-D0EJT0uP.js} +1 -1
- package/dist/client/assets/{tabs-D4txthOi.js → tabs-Ctjzrm8t.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-RDrKgCoU.js → timeline-definition-JXYKGLGB-B9P7ituI.js} +1 -1
- package/dist/client/assets/trust-dial-D__tIhzt.js +11 -0
- package/dist/client/assets/{trust-posture-atZIh8tf.js → trust-posture-DaHHtOZn.js} +1 -1
- package/dist/client/assets/{unplug-CnevV4yX.js → unplug-B-ipHefz.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-BQwT36FA.js → unverified-catalog-notice-C8swqaTn.js} +1 -1
- package/dist/client/assets/{use-bindings-CltfjAWW.js → use-bindings-gLHRNAFU.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-D-Zlt6z2.js → use-composer-prefs-CjpxcBIe.js} +1 -1
- package/dist/client/assets/{use-connector-management-C3CLnOOt.js → use-connector-management-BLiCJMgU.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-DQlz-scx.js → use-deep-link-scroll-r2nKjzA-.js} +1 -1
- package/dist/client/assets/{use-delete-binding-D73CLm_7.js → use-delete-binding-BSiOik_K.js} +1 -1
- package/dist/client/assets/{use-dev-links-BqVFsMKU.js → use-dev-links-DXcIlMf-.js} +1 -1
- package/dist/client/assets/use-direct-message-panel-BbH8N4mE.js +1 -0
- package/dist/client/assets/{use-external-adapter-catalog-DrnksH0t.js → use-external-adapter-catalog-mmKni5ui.js} +1 -1
- package/dist/client/assets/{use-filter-state-D4i-hDOk.js → use-filter-state-CiPZ0AIH.js} +2 -2
- package/dist/client/assets/{use-full-activity-feed-DdDsRg8s.js → use-full-activity-feed-DXroUzfN.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-LUZL5z5t.js +1 -0
- package/dist/client/assets/{use-mesh-topology-B7aLtPkZ.js → use-mesh-topology-upehQ5Cv.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-DSSTCJfY.js → use-mounted-ref-IHwyriaF.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-DaF3kwmq.js → use-notification-prefs-BHOK2P2l.js} +1 -1
- package/dist/client/assets/use-pending-read-mVsOBTzn.js +1 -0
- package/dist/client/assets/{use-personality-commit-D5b90JPX.js → use-personality-commit-Chf3UX8P.js} +1 -1
- package/dist/client/assets/{use-promo-activation-CPAOQpfe.js → use-promo-activation-Dlw6bg7G.js} +2 -2
- package/dist/client/assets/{use-promo-dismissals-Bx1gz1R1.js → use-promo-dismissals-Dx_fli7I.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-DeulB37O.js → use-pulse-freshness-CG_I6a-O.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-Dwke6RFQ.js → use-room-follow-claim-Bgrpr3bO.js} +1 -1
- package/dist/client/assets/{use-room-sessions-iepVrIMm.js → use-room-sessions-DecGrP3E.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-pCPKNQKv.js → use-roving-tab-list-CDkh-Ujm.js} +1 -1
- package/dist/client/assets/{use-session-canvas-BvvO-_V1.js → use-session-canvas-tvLLPQcm.js} +6 -6
- package/dist/client/assets/{use-status-budget-Bs7MMriS.js → use-status-budget-BBl2yxLR.js} +2 -2
- package/dist/client/assets/{use-todos-C-eREuDS.js → use-todos-BzRauzdQ.js} +1 -1
- package/dist/client/assets/{use-transform-lj3TkjYO.js → use-transform-DzJeHpxm.js} +1 -1
- package/dist/client/assets/{use-unclaimed-chats-BF3-0jHC.js → use-unclaimed-chats--HZdmq4F.js} +1 -1
- package/dist/client/assets/use-update-config-DjL7-nUR.js +1 -0
- package/dist/client/assets/{useMutationState-B_x_4f2K.js → useMutationState-DIywUTDG.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-DBsRYa4J.js → usecaseDiagram-WPOLBNNX-C9aLJ03F.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-rFAXvcQI.js → vennDiagram-Q3Y3IDCW-ChBIWbL0.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-bI0JZkO3.js → wardleyDiagram-IVAIDKWA-DvQDOaTm.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-DZUd8iln.js → xychartDiagram-4URNHDU4-8FxLPP2c.js} +1 -1
- package/dist/client/assets/zap-DSllMMHe.js +6 -0
- package/dist/client/index.html +2 -2
- package/dist/drizzle/20261104060919_package_approval_request.sql +1 -0
- package/dist/drizzle/20261104081935_hook_decline_review.sql +3 -0
- package/dist/drizzle/20261107183323_dor3933_todos_rename.sql +64 -0
- package/dist/drizzle/20261108014418_dor3938_cross_agent_writer.sql +4 -0
- package/dist/drizzle/meta/20261104060919_snapshot.json +14889 -0
- package/dist/drizzle/meta/20261104081935_snapshot.json +14910 -0
- package/dist/drizzle/meta/20261107183323_snapshot.json +14910 -0
- package/dist/drizzle/meta/20261108014418_snapshot.json +14938 -0
- package/dist/drizzle/meta/_journal.json +28 -0
- package/dist/server/index.js +24875 -21931
- package/dist/server/index.js.map +2 -2
- package/package.json +5 -5
- package/dist/client/assets/ApplyToOverridesDialog-DE9VVQCA.js +0 -1
- package/dist/client/assets/BindingDialog-C_yflKOE.js +0 -1
- package/dist/client/assets/CanvasFileContent-C3ZKszxn.js +0 -2
- package/dist/client/assets/CanvasModel3dContent-CsNUuaj6.js +0 -2
- package/dist/client/assets/CommitmentList-DOvfnyDA.js +0 -1
- package/dist/client/assets/CommitmentsPage-D81vxHUk.js +0 -1
- package/dist/client/assets/HandlePage-vsG04kBg.js +0 -1
- package/dist/client/assets/HeartbeatPage-CMj1SS30.js +0 -1
- package/dist/client/assets/NamePage-DdX2yQ5f.js +0 -1
- package/dist/client/assets/PermissionHistory-Bhl2kr1R.js +0 -1
- package/dist/client/assets/PermissionsPage-DUbenFkt.js +0 -1
- package/dist/client/assets/PhotoPage-CExABoHA.js +0 -1
- package/dist/client/assets/TaskDialogWrapper-BVb8gAr0.js +0 -1
- package/dist/client/assets/TasksEmptyState-RkUEEU2r.js +0 -3
- package/dist/client/assets/WorkView-BDk_vwu3.js +0 -51
- package/dist/client/assets/_shell-CMNFxZKJ.js +0 -80
- package/dist/client/assets/_shell._home.index-BjR-d3_s.js +0 -3
- package/dist/client/assets/_shell._home.tasks-CqURPMQD.js +0 -1
- package/dist/client/assets/_shell.connections-D3gJrBTQ.js +0 -1
- package/dist/client/assets/_shell.marketplace-HdefWdN_.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-wAZKfDQF.js +0 -1
- package/dist/client/assets/_shell.session-C0utZeSI.js +0 -1
- package/dist/client/assets/_shell.threads-TvzYRNMt.js +0 -1
- package/dist/client/assets/_shell.todos-sOFmsIPE.js +0 -6
- package/dist/client/assets/_shell.x._extensionId-DiEQZIvl.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-DiEQZIvl.js +0 -1
- package/dist/client/assets/channel-B0WiEIVe.js +0 -1
- package/dist/client/assets/index-BwTGkJbK.js +0 -1071
- package/dist/client/assets/index-CCHGVclj.js +0 -1
- package/dist/client/assets/index-CiUmx-i3.js +0 -1
- package/dist/client/assets/index-Dd4JoHFP.js +0 -1
- package/dist/client/assets/index-DlmGvYpy.js +0 -1
- package/dist/client/assets/index-EXJsA5kw.js +0 -1
- package/dist/client/assets/index-MpS13vhQ.css +0 -1
- package/dist/client/assets/registry-BQTcAm5U.js +0 -39
- package/dist/client/assets/registry-HencHRXy.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-nJfOIWYW.js +0 -8
- package/dist/client/assets/use-direct-message-panel-B3qfpDjY.js +0 -1
- package/dist/client/assets/use-is-below-desktop-BXHT3oPL.js +0 -1
- package/dist/client/assets/use-local-browser-DDWknHZE.js +0 -1
- package/dist/client/assets/use-pending-read-uvmEJ7H9.js +0 -1
- package/dist/client/assets/use-update-config-D-OGlXGR.js +0 -1
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
var _a=Object.defineProperty;var Ma=(e,t,n)=>t in e?_a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ye=(e,t,n)=>Ma(e,typeof t!="symbol"?t+"":t,n);import{O as it,r as l,ek as Le,j as r,_ as Q,Z as me,iS as Un,a5 as be,rq as _r,q as rt,k$ as Ia,cy as Oa,rr as Mr,rs as Da,rt as Pa,gf as $a,B as ue,dS as Ie,fQ as Fa,G as W,J as Kt,X as ot,bb as ft,ru as kt,rv as Ir,a_ as ie,rw as La,rx as Tn,fR as Ua,iP as qa,aO as qn,dV as za,ar as Ba,jF as Wa,ak as lt,ab as zn,ry as Ha,jG as Ga,rz as Ka,be as Qa,x as Ue,dn as Bn,U as vt,iU as Be,iV as We,al as Wn,rA as Qt,ev as Vt,kU as Va,cA as Qe,s as ct,g_ as Ya,gW as Ss,i$ as Or,h2 as Xa,C as zt,rB as Ja,l as Za,nG as Dr,aY as ei,rC as ti,rD as Fe,oH as Ce,oQ as ni,oI as Yt,aR as si,i9 as ri,cG as oi,c0 as ai,Y as ii,rE as tt,a4 as Hn,f8 as js,dX as Pr,f as $r,rF as ws,eu as Ns,aa as at,ql as li,rG as ci,qs as gt,rH as Bt,a6 as ut,kq as Gn,a8 as xt,hp as St,et as Kn,cs as jt,d3 as ui,d4 as di,d6 as mi,d7 as fi,d8 as pi,eT as hi,e as Cs,lY as gi,e0 as xi,lZ as yi,qn as Qn,iN as bi,rI as ki,rJ as vi,m8 as Vn,rK as Fr,rL as Lr,rM as Si,rN as ji,a7 as Yn,cV as wt,es as Xt,eq as Xn,er as wi,rO as Ni,ky as Ur,rP as Ci,qp as Ti,ik as Ri,hS as qr,j4 as zr,i2 as yt,kz as Br,f5 as Ei,rQ as Ai,rR as _i,o as Wr,y as Jt,aX as Hr,rS as Gr,rT as Mi,oe as an,rU as Wt,kf as Ii,m1 as Oi,bg as Kr,rV as Jn,rW as Di,rX as Pi,rY as $i,ou as Fi,rZ as Qr,r_ as Li,r$ as Ui,s0 as Vr,s1 as Yr,fD as qi,s2 as zi,fT as Bi,fB as Wi,dB as Hi,bP as Gi,bQ as Ki,bR as Qi,bS as Vi,bT as Yi,bU as Xi,bV as Ji,bX as Zi,s3 as el,pG as Xr,s4 as tl,s5 as nl,n4 as sl,k9 as rl,ka as ol,kb as al,kc as ln,nA as il,kd as Ts,kT as ll,c5 as cl,kV as ul,c7 as dl,s6 as Rs,cJ as ml,g5 as Jr,cN as Zr,cE as fl,j2 as pl,cU as eo,s7 as to,cC as no,cR as hl,s8 as Zn,cS as gl,s9 as xl,au as yl,cF as bl,sa as kl,mO as re,sb as vl,sc as Sl,cQ as jl,a2 as wl,aW as Ge,nV as Es,sd as Nl,ju as He,se as cn,ea as pt,sf as As,sg as _s,sh as Ms,cB as un,si as et,f9 as ht,sj as Cl,cX as so,sk as ro,sl as Tl,sm as Rl,sn as El,cY as oo,so as Al,sp as _l,sq as Xe,sr as ao,ss as Ml,c4 as Il,st as Ol,su as Dl,fS as io,sv as Is,sw as Pl,cc as Rn,jW as lo,eC as $l,c$ as Fl,sx as Ll,gC as Ul,gB as ql,jY as zl,ct as Bl,c_ as Wl,cq as Hl,am as Zt,sy as Gl,sz as Kl,gw as co,gt as es,lk as Ql,sA as Vl,sB as Yl,sC as Xl,jx as Jl,sD as uo,pf as Zl,ke as ec,sE as mt,sF as tc,cW as nc,ht as sc,sG as rc,fN as oc,sH as ac,ei as ic,kr as lc,a0 as cc}from"./index-BwTGkJbK.js";import{P as uc}from"./PromptSuggestionChips-v5MScpZF.js";import{u as dc,a as mc,L as fc,f as pc,b as hc,c as gc,B as xc,d as yc}from"./primer-trigger-CjaGrT2u.js";import{a as bc,u as kc,i as vc}from"./use-notification-prefs-DaF3kwmq.js";import{e as Sc,h as jc,q as mo,f as wc,P as Nc,g as Cc,d as Tc,r as Rc,l as Ec,j as Ac,b as _c,G as Mc,W as fo,B as Ic,z as Oc,D as Dc,v as Pc,w as $c,y as Fc,p as Lc,m as Uc,t as qc,M as zc,i as Bc,S as Wc,k as Hc,A as Gc,x as Kc,R as Qc,u as Vc}from"./use-status-budget-Bs7MMriS.js";import{B as Yc}from"./banner-B8iMuXCP.js";import{t as Et,S as ts,f as Ht,n as po,O as ho,o as Xc,p as Jc,V as go,q as Zc,s as eu,v as tu,w as nu,x as Os,y as Ds,z as su,A as ru,L as Ps,B as xo,D as ou,G as yo,H as au,I as bo,J as En,N as $s,d as iu,K as ko,Q as lu,u as cu,C as bt,R as vo,c as Je,k as uu,h as du,T as mu,F as fu}from"./registry-BQTcAm5U.js";import{u as pu,b as hu}from"./WidgetErrorCard-Bwlfu514.js";import{u as gu,D as xu,U as yu}from"./UnreadDivider-DhyK6uGG.js";import{a as bu,c as ku}from"./composer-insert-BpyATrmR.js";import{u as vu}from"./use-composer-prefs-D-Zlt6z2.js";import{A as An,M as Su}from"./McpAppFrame-Dm7MqOhc.js";import{P as ju,C as wu,b as Nu}from"./find-latest-widget-fence-CXai_zs0.js";import{F as So}from"./file-BIF-4ARS.js";import{F as Cu,j as Tu}from"./use-session-canvas-BvvO-_V1.js";import{F as Ru}from"./file-text-C_NPIQr4.js";import{b as jo,e as Eu,R as Au,K as _u,a as Mu,g as Iu}from"./RuntimeConnectFlow-Dc5a8dlJ.js";import{S as Ou}from"./shield-x-BpQmg1qz.js";import{u as Du,M as Pu}from"./McpSigninBody-CsXP_7lE.js";import{I as $u}from"./image-off-C5-TmSq8.js";import{f as Fu}from"./format-duration-BCr6uzby.js";import{l as Lu}from"./use-connector-management-C3CLnOOt.js";import{A as Uu}from"./AgentRequestCard-kNq5A_IN.js";/**
|
|
2
|
-
* @license lucide-react v1.48.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const wo={name:"brain",size:24,node:[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]};wo.node;const qu=it(wo);/**
|
|
7
|
-
* @license lucide-react v1.48.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const No={name:"corner-up-left",size:24,node:[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]};No.node;const zu=it(No);/**
|
|
12
|
-
* @license lucide-react v1.48.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const Co={name:"file-image",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]};Co.node;const Bu=it(Co);/**
|
|
17
|
-
* @license lucide-react v1.48.0 - ISC
|
|
18
|
-
*
|
|
19
|
-
* This source code is licensed under the ISC license.
|
|
20
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/const To={name:"file-spreadsheet",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]};To.node;const Wu=it(To);/**
|
|
22
|
-
* @license lucide-react v1.48.0 - ISC
|
|
23
|
-
*
|
|
24
|
-
* This source code is licensed under the ISC license.
|
|
25
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/const Ro={name:"git-branch-plus",size:24,node:[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]};Ro.node;const Hu=it(Ro);/**
|
|
27
|
-
* @license lucide-react v1.48.0 - ISC
|
|
28
|
-
*
|
|
29
|
-
* This source code is licensed under the ISC license.
|
|
30
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/const Eo={name:"mouse-pointer-click",size:24,node:[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]};Eo.node;const Gu=it(Eo);function Ku(e){const t=Math.floor(e/1e3);if(t<3600){const o=Math.floor(t/60),a=t%60;return`${o}m ${String(a).padStart(2,"0")}s`}const n=Math.floor(t/3600),s=Math.floor(t%3600/60);return`${n}h ${String(s).padStart(2,"0")}m`}function Ao(e){const[t,n]=l.useState(()=>Date.now()),s=l.useRef(null);if(l.useEffect(()=>{if(e===null){s.current&&(clearInterval(s.current),s.current=null);return}return n(Date.now()),s.current=setInterval(()=>n(Date.now()),1e3),()=>{s.current&&(clearInterval(s.current),s.current=null)}},[e]),e===null)return{formatted:"0m 00s",ms:0};const o=Math.max(0,t-e);return{formatted:Ku(o),ms:o}}function Qu(e={}){const{timeoutMs:t=3e4,onIdle:n,onReturn:s}=e,o=l.useRef(!1),a=l.useRef(null),i=l.useCallback(()=>{o.current||(o.current=!0,n==null||n())},[n]),c=l.useCallback(()=>{o.current&&(o.current=!1,s==null||s())},[s]),u=l.useCallback(()=>{a.current&&clearTimeout(a.current),a.current=setTimeout(i,t),c()},[t,i,c]);return l.useEffect(()=>{a.current=setTimeout(i,t);const d=["mousemove","keydown","scroll","touchstart"];d.forEach(p=>document.addEventListener(p,u,{passive:!0}));const m=()=>{document.hidden?i():u()};return document.addEventListener("visibilitychange",m),()=>{a.current&&clearTimeout(a.current),d.forEach(p=>document.removeEventListener(p,u)),document.removeEventListener("visibilitychange",m)}},[t,i,u]),{isIdle:o.current}}function Vu({activeInteraction:e,onApprove:t,onAlwaysAllow:n,onDeny:s,onToggleOption:o,onNavigateOption:a,onNavigateQuestion:i,onSubmit:c,optionCount:u=0,focusedIndex:d=0}){const m=l.useRef(!1);l.useEffect(()=>{m.current=!1},[e==null?void 0:e.toolCallId]),l.useEffect(()=>{if(!e)return;function p(h){const f=h.target,g=(f.tagName==="TEXTAREA"||f.tagName==="INPUT")&&!f.disabled;if(!m.current&&!(h.metaKey||h.ctrlKey||h.altKey)){if(e.type==="approval"){if(h.key==="Enter"&&g&&f.closest("[data-approval-field]")!==null)return;h.key==="Enter"&&h.shiftKey?(h.preventDefault(),m.current=!0,n==null||n()):h.key==="Enter"?(h.preventDefault(),m.current=!0,t==null||t()):h.key==="Escape"&&(h.preventDefault(),m.current=!0,s==null||s());return}if(e.type==="question"){if(g){if(h.key==="Enter"&&!h.shiftKey){h.preventDefault(),c==null||c();return}if(h.key==="ArrowUp"){h.preventDefault(),a==null||a("up");return}if(h.key==="ArrowDown"){h.preventDefault(),a==null||a("down");return}return}const x=parseInt(h.key,10);if(x>=1&&x<=9){h.preventDefault(),x-1<u&&(o==null||o(x-1));return}switch(h.key){case"ArrowUp":h.preventDefault(),a==null||a("up");break;case"ArrowDown":h.preventDefault(),a==null||a("down");break;case" ":h.preventDefault(),o==null||o(d);break;case"ArrowLeft":case"[":h.preventDefault(),i==null||i("prev");break;case"ArrowRight":case"]":h.preventDefault(),i==null||i("next");break;case"Enter":h.preventDefault(),c==null||c();break}}}}return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[e,t,n,s,o,a,i,c,u,d])}function _o(){const[e,t]=l.useState(()=>!document.hidden);return l.useEffect(()=>{const n=()=>t(!document.hidden);return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}function Yu({color:e,isTextStreaming:t,fadeEdges:n=!0,edge:s="bottom"}){const o=Le()===!0,a=t?1.8:2.5,i=n?"linear-gradient(to right, transparent, black 15%, black 85%, transparent)":void 0,c=s==="top"?"pointer-events-none absolute right-0 top-0 left-0":"pointer-events-none absolute right-0 bottom-0 left-0",u="[--scan-highlight:hsl(var(--background))] dark:[--scan-highlight:hsl(var(--foreground))]",d=s==="top"?"top":"bottom";return r.jsxs(Q.div,{"aria-hidden":!0,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.4},className:`${c} ${u}`,style:{height:n?10:0,overflow:n?"hidden":"visible",maskImage:i,WebkitMaskImage:i},children:[r.jsx("div",{className:"absolute right-0 left-0",style:{[d]:0,height:6,backgroundColor:e,opacity:.6,filter:"blur(3px)"}}),!o&&r.jsx(Q.div,{initial:{x:"-100%"},animate:{x:"433%"},transition:{x:{duration:a,repeat:1/0,ease:"linear"}},className:"absolute",style:{[d]:0,width:"30%",height:2,background:`linear-gradient(to right, transparent, ${e}, var(--scan-highlight), transparent)`,willChange:"transform"}}),r.jsx(me,{children:t&&!o&&r.jsx(Q.div,{initial:{opacity:0,x:"-100%"},animate:{opacity:.9,x:"1525%"},exit:{opacity:0},transition:{x:{duration:1.1,repeat:1/0,ease:"linear"},opacity:{duration:.2}},className:"absolute",style:{[d]:0,width:"8%",height:1,background:"linear-gradient(to right, transparent, var(--scan-highlight) 40%, var(--scan-highlight) 60%, transparent)",willChange:"transform"}})})]})}const dn={"word-boundary":3,substring:2,subsequence:1},Xu=new Set(["/",":","-","_","."," "]);function Ju(e,t){if(t===0)return!0;const n=e[t-1];if(Xu.has(n))return!0;const s=e[t];return n===n.toLowerCase()&&s!==s.toLowerCase()&&s===s.toUpperCase()}function At(e,t){return Array.from({length:t},(n,s)=>e+s)}function _t(e,t,n){const s=1/(1+t),o=n/e.length;return(s*.6+o*.4)*.999}function Zu(e,t){let n=0,s=0,o=0;const a=[];for(let i=0;i<t.length&&n<e.length;i++)t[i]===e[n]?(n++,s++,s>o&&(o=s),a.push(i)):s=0;return n===e.length?{indices:a,maxRun:o}:null}function ed(e,t){const n=t.indices[t.indices.length-1]-t.indices[0]+1,s=t.maxRun/t.indices.length,o=t.indices.length/n,a=t.indices.length/e.length;return(s*.4+o*.3+a*.3)*.999}function Lt(e,t){if(!e)return{match:!0,tier:null,score:0,indices:[]};const n=e.toLowerCase(),s=t.toLowerCase();if(s===n)return{match:!0,tier:"exact",score:5+_t(t,0,n.length),indices:At(0,n.length)};if(s.startsWith(n))return{match:!0,tier:"prefix",score:4+_t(t,0,n.length),indices:At(0,n.length)};for(let i=1;i<=s.length-n.length;i++)if(Ju(t,i)&&s.startsWith(n,i))return{match:!0,tier:"word-boundary",score:dn["word-boundary"]+_t(t,i,n.length),indices:At(i,n.length)};const o=s.indexOf(n);if(o>=0)return{match:!0,tier:"substring",score:dn.substring+_t(t,o,n.length),indices:At(o,n.length)};const a=Zu(n,s);return a?{match:!0,tier:"subsequence",score:dn.subsequence+ed(t,a),indices:a.indices}:{match:!1,tier:null,score:0,indices:[]}}class td{constructor(t){Ye(this,"config");Ye(this,"recentCompletions",[]);Ye(this,"queue",[]);Ye(this,"isIdle",!1);Ye(this,"debounceTimer",null);this.config=t}onTaskCompleted(t,n){if(!this.config.enabled)return;const s=Date.now();this.recentCompletions.push(s),this.recentCompletions=this.recentCompletions.filter(c=>s-c<this.config.debounceWindowMs);const o=n.length,a=n.filter(c=>c.status==="completed").length;if(o>=this.config.minTasksForMajor&&a===o){this.cancelDebounce();const c={level:"major",taskId:t,timestamp:s};this.emitOrQueue(c);return}if(this.recentCompletions.length>=this.config.debounceThreshold){this.cancelDebounce(),this.debounceTimer=setTimeout(()=>{const c={level:"mini",taskId:t,timestamp:Date.now()};this.emitOrQueue(c),this.recentCompletions=[]},this.config.debounceWindowMs);return}if(Math.random()<this.config.miniProbability){const c={level:"mini",taskId:t,timestamp:s};this.emitOrQueue(c)}}setIdle(t){this.isIdle=t}onUserReturn(){if(this.queue.length>0){const n=this.queue.some(s=>s.level==="major")?this.queue.find(s=>s.level==="major"):this.queue[this.queue.length-1];this.config.onCelebrate(n),this.queue=[]}}destroy(){this.cancelDebounce(),this.queue=[],this.recentCompletions=[]}emitOrQueue(t){this.isIdle?this.queue.push(t):this.config.onCelebrate(t)}cancelDebounce(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null)}}const nd={background:"radial-gradient(circle, rgba(255,215,0,0.15) 0%, transparent 70%)"};function sd(e,t=40){if(e.length<=t)return e;const n=e.split("/").pop()??e,s=n.length+2,o=Math.max(6,t-s);return`${e.slice(0,o)}…/${n}`}function en(e){var n;const{sessions:t}=Un();if(e)return(n=t.find(s=>s.id===e))==null?void 0:n.runtime}const rd=typeof window<"u"&&window.location.pathname===Oa;let mn=null,Fs=!rd;function od(e){return Fs?mn===e?!0:(mn=null,!1):(Fs=!0,mn=e,!0)}function ad(e){var s;const t=be(),n=((s=_r(e))==null?void 0:s.draft)===!0;l.useEffect(()=>{if(!e||n)return;let o=!1;const a=()=>{o||document.visibilityState!=="visible"||(o=!0,document.removeEventListener("visibilitychange",a),od(e)||rt.getState().recordOpened("session",e),t.markSessionOpened(e).catch(i=>{Ia(t,i)}))};if(a(),!o)return document.addEventListener("visibilitychange",a),()=>document.removeEventListener("visibilitychange",a)},[e,n,t])}function Mo(){const e=Mr(),t=_r(e.session);return{cwd:(t==null?void 0:t.cwd)??e.dir??null}}function Io({agentId:e,agentName:t,onResumed:n}){const s=Da(),{data:o,dataUpdatedAt:a,refetch:i}=Pa(),[c]=l.useState(()=>Date.now());l.useEffect(()=>{i()},[e,i]);const u=t??"This agent";return o!=null&&a>=c&&!o.pauses.some(m=>m.agentId===e)?null:r.jsxs("div",{"data-testid":"agent-paused-notice",role:"status",className:"border-border bg-muted/50 my-2 flex items-center gap-3 rounded-lg border px-4 py-3",children:[r.jsx($a,{className:"text-muted-foreground size-4 shrink-0","aria-hidden":!0}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("p",{className:"text-sm font-medium",children:[u," is paused"]}),r.jsx("p",{className:"text-muted-foreground text-xs",children:"Resume it, then send your message again."})]}),r.jsx(ue,{size:"sm",variant:"outline",disabled:s.isPending,onClick:()=>s.mutate(e,{onSuccess:()=>{Ie(`${u} resumed`),n==null||n()}}),children:"Resume"})]})}function id(e){if(!e)return[];const t=e.properties??{};return Object.entries(t).map(([n,s])=>({key:n,label:s.description??n,type:s.type??"string",options:s.enum,defaultValue:s.default}))}function ld({sessionId:e,interactionId:t,serverName:n,message:s,mode:o="form",url:a,requestedSchema:i,status:c,action:u}){const d=be(),[m,p]=l.useState(!1),[h,f]=l.useState(null),[g,x]=l.useState(null),[y,b]=l.useState({}),[v,j]=l.useState(!1),S=l.useMemo(()=>id(i),[i]),T=c!=="pending",R=l.useCallback(async(N,k)=>{if(!(m||T)){p(!0),f(null),x(null);try{await d.submitElicitation(e,t,N,k)}catch(C){if(C.code!=="INTERACTION_ALREADY_RESOLVED"){f("Couldn’t send your answer. Try again."),x(C instanceof Error?C.message:null),p(!1);return}}p(!1)}},[d,e,t,m,T]),E=l.useCallback(()=>{const N={};for(const k of S)N[k.key]=y[k.key]??k.defaultValue??"";R("accept",N)},[S,y,R]),I=l.useCallback(()=>{R("accept")},[R]),A=l.useCallback(()=>{R("decline")},[R]),O=l.useCallback((N,k)=>{b(C=>({...C,[N]:k}))},[]),F=l.useCallback(()=>{if(a){if(!Fa(a)){f(`Couldn’t open ${a}. Nothing has been authorized.`),x(null);return}f(null),x(null),j(!0)}},[a]);return T?r.jsxs("div",{className:"text-muted-foreground flex items-center gap-2 py-1 text-xs",children:[r.jsx("span",{className:"font-mono",children:n}),r.jsx("span",{children:"·"}),r.jsx("span",{children:u==="accept"?"Authorized":u==="decline"?"Declined":"Cancelled"})]}):r.jsxs(Q.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.15},className:W("border-border bg-card my-2 rounded-xl border p-4","shadow-soft"),children:[r.jsxs("div",{className:"text-muted-foreground mb-2 flex items-center gap-2 text-xs",children:[r.jsx("span",{className:"bg-muted text-3xs inline-flex items-center rounded-md px-2 py-0.5 font-mono",children:n}),r.jsx("span",{children:"needs something from you"})]}),r.jsx("p",{className:"mb-3 text-sm",children:s}),h&&r.jsxs("div",{className:"mb-2",children:[r.jsx("p",{className:"text-destructive text-xs break-words",children:h}),g&&r.jsx("p",{className:"text-muted-foreground/70 mt-1 text-xs break-words",children:g})]}),o==="url"&&a&&r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ue,{size:"sm",variant:"outline",onClick:F,disabled:m,children:"Open authorization page"}),v&&r.jsx(ue,{size:"sm",onClick:I,disabled:m,children:m?"Sending…":"Done"}),r.jsx(ue,{size:"sm",variant:"ghost",onClick:A,disabled:m,children:"Decline"})]}),o==="form"&&r.jsxs(r.Fragment,{children:[S.length>0?r.jsx("div",{className:"mb-3 space-y-2",children:S.map(N=>r.jsxs("div",{children:[r.jsx("label",{htmlFor:`elicitation-${t}-${N.key}`,className:"text-muted-foreground mb-1 block text-xs font-medium",children:N.label}),N.options?r.jsxs("select",{id:`elicitation-${t}-${N.key}`,className:"border-input bg-background w-full rounded-md border px-3 py-1.5 text-sm",value:y[N.key]??String(N.defaultValue??""),onChange:k=>O(N.key,k.target.value),disabled:m,children:[r.jsx("option",{value:"",children:"Select…"}),N.options.map(k=>r.jsx("option",{value:k,children:k},k))]}):r.jsx("input",{id:`elicitation-${t}-${N.key}`,type:N.type==="number"?"number":"text",className:"border-input bg-background w-full rounded-md border px-3 py-1.5 text-sm",placeholder:String(N.defaultValue??""),value:y[N.key]??"",onChange:k=>O(N.key,k.target.value),disabled:m})]},N.key))}):r.jsx("p",{className:"text-muted-foreground mb-3 text-xs",children:"No additional input required."}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ue,{size:"sm",onClick:E,disabled:m,children:m?"Sending…":"Accept"}),r.jsx(ue,{size:"sm",variant:"ghost",onClick:A,disabled:m,children:"Decline"})]})]})]})}const cd=8,ud={duration:.3,ease:[.16,1,.3,1]},dd={duration:0};function md(e){const t=Math.round(e/1e3),n=Math.floor(t/60),s=t%60;return n>0?`${n}:${String(s).padStart(2,"0")}`:`${s}s`}function fd(e){return new Date(e).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function pd(e){return`${e} action${e===1?"":"s"}`}function hd({outcome:e,items:t,resolvedAt:n,startedAt:s,reasonGiven:o,className:a}){var x;const i=Le(),[c,u]=l.useState(!1),d=t.length,m=d>1,p=m?pd(d):(x=t[0])==null?void 0:x.label,h=n!==void 0&&s!==void 0?Math.max(0,n-s):null,f=e==="allowed"?Kt:e==="denied"?ot:ft,g=e==="allowed"?"text-status-success":e==="denied"?"text-status-error":"text-muted-foreground";return r.jsxs(Q.div,{"data-testid":"approval-receipt","data-outcome":e,"data-count":d,initial:i?!1:{opacity:0,y:cd},animate:{opacity:1,y:0},transition:i?dd:ud,className:W("text-muted-foreground my-1 text-xs",a),children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(f,{className:W("size-(--size-icon-xs) shrink-0",g),"aria-hidden":"true"}),r.jsx("span",{className:"min-w-0 truncate",children:e==="expired"?r.jsxs(r.Fragment,{children:["Expired · ",m?`${p} `:"","denied",h!==null&&` after ${md(h)}`]}):r.jsxs(r.Fragment,{children:["You ",e==="allowed"?"allowed":"denied"," ",m?p:r.jsx("span",{className:"font-mono",children:p}),e==="denied"&&o===!0&&r.jsx(r.Fragment,{children:" · agent was told why"})]})}),n!==void 0&&r.jsx("time",{dateTime:new Date(n).toISOString(),className:"ml-auto shrink-0 tabular-nums opacity-70",children:fd(n)}),m&&r.jsx("button",{type:"button",onClick:()=>u(y=>!y),"aria-expanded":c,className:W("hover:text-foreground focus-visible:ring-ring shrink-0 rounded underline","underline-offset-2 focus-visible:ring-2 focus-visible:outline-none"),children:c?"Hide":"Show"})]}),m&&c&&r.jsx("ul",{"data-testid":"approval-receipt-items",className:"mt-1 ml-6 space-y-0.5",children:t.map(y=>r.jsx("li",{className:"truncate font-mono",children:y.label},y.toolCallId))})]})}function gd({outcome:e,reasonGiven:t,members:n,lead:s,children:o}){return r.jsxs("div",{className:"flex flex-col",children:[r.jsx(hd,{outcome:e,items:n.map(a=>({toolCallId:a.toolCallId,label:a.approvalDisplayName||kt(a.toolName,a.input??"")})),resolvedAt:s.approvalResolvedAt,startedAt:s.approvalStartedAt,reasonGiven:t}),e!=="allowed"&&s.result&&r.jsx(Ir,{"data-testid":"approval-receipt-result",content:s.result,className:"text-muted-foreground mt-0.5 ml-6"}),e==="allowed"&&o]})}function ns(e){return e.endsWith("connectors.request_connection")||e.endsWith("connectors_request_connection")}function Oo(e){if(e)try{return JSON.parse(e)}catch{return}}function Ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xd(e){const t=Oo(e);if(!Ut(t))return;const{serviceSlug:n,reason:s}=t;if(!(typeof n!="string"||typeof s!="string"))return{serviceSlug:n,reason:s}}function Do(e){const t=Oo(e);if(Ut(t)&&typeof t.requestId=="string")return t.requestId;if(Ut(t)&&Array.isArray(t.content)){const n=t.content.map(s=>Ut(s)&&typeof s.text=="string"?s.text:"").join("");return Do(n)}}function yd(e,t){const n=Do(t.result);if(n)return e.find(o=>o.requestId===n);const s=xd(t.input);if(s)return e.filter(o=>o.serviceSlug===s.serviceSlug).sort((o,a)=>a.createdAt.localeCompare(o.createdAt))[0]}function bd({sessionId:e,input:t,result:n,fallback:s}){const o=Lu(e),a=o.data?yd(o.data,{input:t,result:n}):void 0;return a?r.jsx("div",{className:"my-3","data-testid":"chat-agent-request",children:r.jsx(Uu,{request:a})}):r.jsx(r.Fragment,{children:s})}const fn={name:{exact:0,prefix:1,"word-boundary":2,substring:6,subsequence:8},alias:{exact:3,prefix:4,"word-boundary":5,substring:7,subsequence:9},description:{exact:10,prefix:11,"word-boundary":12,substring:13,subsequence:14}},kd={match:!1,bucket:Number.POSITIVE_INFINITY,score:0};function Ls(e){return e.startsWith("/")?e.slice(1):e}function Us(e,t){return e.bucket<t.bucket||e.bucket===t.bucket&&e.score>t.score}function vd(e,t){let n=kd;const s=Lt(e,Ls(t.fullCommand));s.match&&s.tier&&(n={match:!0,bucket:fn.name[s.tier],score:s.score});for(const o of t.aliases??[]){const a=Lt(e,Ls(o));if(!a.match||!a.tier)continue;const i={bucket:fn.alias[a.tier],score:a.score};Us(i,n)&&(n={match:!0,...i,matchedAlias:o})}if(t.description){const o=Lt(e,t.description);if(o.match&&o.tier){const a={bucket:fn.description[o.tier],score:o.score};Us(a,n)&&(n={match:!0,...a})}}return n}const Po="dorkos:mcp-app-consent:";function $o(e){return`${Po}${e}`}function Sd(e){try{return localStorage.getItem($o(e))==="granted"}catch{return!1}}function jd(e){try{localStorage.setItem($o(e),"granted")}catch{}wd()}const _n=new Set;function wd(){for(const e of _n)e()}function Nd(e){_n.add(e);const t=n=>{var s;(s=n.key)!=null&&s.startsWith(Po)&&e()};return window.addEventListener("storage",t),()=>{_n.delete(e),window.removeEventListener("storage",t)}}function Cd(e){const t=l.useSyncExternalStore(Nd,()=>Sd(e),()=>!1),n=l.useCallback(()=>jd(e),[e]);return{consented:t,grant:n}}const Td="h-80";function Rd({sessionId:e,serverName:t,uri:n,title:s}){const{consented:o,grant:a}=Cd(t),i=ie(d=>d.openPip),c=()=>{const d=ie.getState(),m={type:"mcp_app",serverName:t,uri:n,title:s};d.openCanvasDocument(m),Tn(d,"user",m)},u=()=>{i({kind:"mcp_app",sessionId:e,serverName:t,uri:n,title:s??`App · ${t}`})};return o?r.jsxs("div",{className:"overflow-hidden rounded-lg border",children:[r.jsxs("div",{className:"bg-muted/40 flex items-center justify-between border-b px-3 py-1.5",children:[r.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium",children:[r.jsx(An,{className:"text-muted-foreground size-3.5 shrink-0"}),r.jsx("span",{className:"truncate",children:s??`App · ${t}`})]}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx("button",{type:"button",onClick:u,"aria-label":"Pop out into a floating window",title:"Pop out",className:"text-muted-foreground hover:bg-muted hover:text-foreground rounded-md p-1 transition-colors",children:r.jsx(ju,{className:"size-3.5"})}),r.jsx("button",{type:"button",onClick:c,title:"Open in canvas",className:"text-muted-foreground hover:bg-muted hover:text-foreground rounded-md p-1 transition-colors",children:r.jsx(La,{className:"size-3.5"})})]})]}),r.jsx(Su,{sessionId:e,serverName:t,uri:n,title:s,onRequestFullscreen:c,onRequestPip:u,className:Td})]}):r.jsxs("div",{className:"bg-muted/40 flex flex-col gap-3 rounded-lg border p-4",children:[r.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[r.jsx(An,{className:"text-muted-foreground size-4 shrink-0"}),r.jsxs("span",{children:["Interactive app from ",t]})]}),r.jsxs("div",{className:"text-muted-foreground space-y-1 text-xs",children:[r.jsxs("p",{children:["It runs code from ",t," in a sealed-off frame."]}),r.jsx("p",{children:"It can’t see your chat, files or credentials."})]}),r.jsx("div",{children:r.jsx("button",{type:"button",onClick:a,className:"bg-foreground text-background hover:bg-foreground/90 rounded-lg px-3 py-1.5 text-sm font-medium transition-colors",children:"Show app"})})]})}function Ed(e){return e.replace(/[-_]+/g," ").trim()}function Ad({action:e}){const t=pu(),n=Ed(e.actionId),s=`Widget interaction${e.title?`, ${e.title}`:""}: ${n}`;return r.jsxs(Q.span,{"data-testid":"ui-action-chip",title:e.payload?JSON.stringify(e.payload):void 0,className:W("ml-auto inline-flex w-fit items-center gap-2 rounded-full border py-1 pr-3 pl-1.5","bg-muted/40 shadow-soft text-xs"),initial:t?{opacity:0,y:4,scale:.9}:!1,animate:t?{opacity:1,y:0,scale:1}:!1,transition:t?hu:void 0,children:[r.jsx("span",{className:"sr-only",children:s}),r.jsx("span",{"aria-hidden":!0,className:"bg-primary/10 text-primary flex size-5 shrink-0 items-center justify-center rounded-full",children:r.jsx(Gu,{className:"size-3"})}),r.jsxs("span",{"aria-hidden":!0,className:"text-muted-foreground truncate",children:[e.title&&r.jsx("span",{className:"text-foreground font-medium",children:e.title}),e.title&&r.jsx("span",{className:"px-1 opacity-50",children:"·"}),r.jsx("span",{className:"text-foreground font-medium",children:n})]})]})}const _d=/<ui_action>([\s\S]*?)<\/ui_action>/;function qs(e){try{const t=JSON.parse(e);return t!==null&&typeof t=="object"?t:null}catch{return null}}function Md(e){const t=e.match(_d);if(!t)return null;const n=t[1].split(`
|
|
32
|
-
`);let s=null,o=null,a=null,i=null;for(let c=0;c<n.length;c++){const u=n[c],d=u.match(/^\s*Widget:\s*(.*)$/);if(d){const f=d[1].trim();s=f&&f!=="(untitled)"?f:null;continue}const m=u.match(/^\s*Action:\s*(.*)$/);if(m){o=m[1].trim();continue}const p=u.match(/^\s*Widget ID:\s*(.*)$/);if(p){a=p[1].trim()||null;continue}const h=u.match(/^\s*Payload:\s*(.*)$/);if(h){const f=h[1].trim();if(f&&f!=="(none)")i=qs(f);else if(!f){let g="";for(let x=c+1;x<n.length;x++){g+=(g?`
|
|
33
|
-
`:"")+n[x];const y=qs(g.trim());if(y){i=y;break}}}break}}return o?{title:s,actionId:o,widgetId:a,payload:i}:null}function Id({onAllow:e,onNotNow:t}){return r.jsxs(Ua,{"data-slot":"notification-permission-primer",gap:"none",className:"flex-row flex-wrap items-center gap-x-3 gap-y-2 px-3 py-2",children:[r.jsx(qa,{className:"text-muted-foreground size-4 shrink-0","aria-hidden":!0}),r.jsx("p",{className:"text-muted-foreground min-w-0 flex-1 text-xs",children:"Get notified when this needs you, even in another tab."}),r.jsxs("div",{className:"flex w-full shrink-0 flex-wrap items-center justify-end gap-1.5 sm:w-auto",children:[r.jsx(ue,{variant:"ghost",size:"sm",responsive:!1,className:"h-7 px-2 text-xs",onClick:t,children:"Not now"}),r.jsx(ue,{variant:"outline",size:"sm",responsive:!1,className:"h-7 px-2 text-xs",onClick:e,children:"Turn on notifications"})]})]})}function Od(e){const t=dc(),{permission:n,request:s}=bc(),{prefs:o,setPrefs:a}=kc(),{data:i}=qn(),c=i!==void 0,[u,d]=l.useState(!1),m=za()||n==="unsupported";l.useEffect(()=>{if(m||!e)return;const g=setTimeout(mc,fc);return()=>clearTimeout(g)},[m,e]);const p=l.useCallback(()=>{d(!0),s().then(()=>{a({browserPermissionPrimerDismissed:!0})})},[s,a]),h=l.useCallback(()=>{d(!0),a({browserPermissionPrimerDismissed:!0})},[a]);return{eligible:!m&&c&&t&&!u&&n==="default"&&!o.browserPermissionPrimerDismissed,allow:p,notNow:h}}const Dd="dorkos:chat:last-seen:";function Pd(){try{const e=[];for(let t=0;t<window.localStorage.length;t++){const n=window.localStorage.key(t);n!=null&&n.startsWith(Dd)&&e.push(n)}for(const t of e)window.localStorage.removeItem(t)}catch{}}function $d(e){let t=0;for(const n of e)n._streaming!==!0&&t++;return t}function Fd(e){if(typeof e!="object"||e===null)return!1;const{userId:t,threadKind:n,threadId:s,lastReadSeq:o}=e;return typeof t=="string"&&typeof n=="string"&&typeof s=="string"&&typeof o=="number"&&Number.isInteger(o)}function Ld(e,t,n=0){const s=be(),[o,a]=l.useState(()=>({sessionId:e,lastReadSeq:null,hydrated:!1}));o.sessionId!==e&&a({sessionId:e,lastReadSeq:null,hydrated:!1});const i=l.useRef(0),c=l.useRef(null),u=l.useRef(!1),d=l.useRef(!1),m=l.useRef(e),p=l.useRef(null),h=n+$d(t);l.useEffect(()=>{Pd();let v=!1;return m.current=e,i.current=0,c.current=null,u.current=!1,d.current=!1,(async()=>{let j=null;try{j=await s.getReadCursor("session",e)}catch{}v||(j&&(i.current=j.lastReadSeq,p.current=j.userId),a({sessionId:e,lastReadSeq:(j==null?void 0:j.lastReadSeq)??null,hydrated:!0}))})(),()=>{v=!0}},[s,e]);const f=l.useCallback(async()=>{if(!u.current){u.current=!0;try{for(;;){const v=c.current;if(v===null)break;if(c.current=null,v.sessionId!==m.current)continue;if(d.current)break;const j=i.current;i.current=Math.max(j,v.seq);try{const S=await s.setReadCursor("session",v.sessionId,v.seq);p.current=S.userId??p.current}catch{i.current=j,v.sessionId===m.current&&(d.current=!0);break}}}finally{u.current=!1}}},[s]),g=l.useCallback(()=>{!o.hydrated||d.current||h<=i.current||(c.current={sessionId:e,seq:h},f())},[o.hydrated,e,h,f]);Ba("read_cursor",v=>{if(!Fd(v)||v.threadKind!=="session"||v.threadId!==e)return;const j=p.current;j!==null&&v.userId!==j||v.lastReadSeq<=i.current||(i.current=v.lastReadSeq,a({sessionId:e,lastReadSeq:v.lastReadSeq,hydrated:!0}))});const x=l.useMemo(()=>t.filter(v=>v._streaming!==!0).map((v,j)=>({id:v.id,seq:n+j+1})),[t,n]),y=o.lastReadSeq,b=Wa(x,y===null?null:Math.min(y,h));return{lastSeenMessageId:b.lastSeenId,unreadFromStart:b.fromStart,markSeen:g,isHydrated:o.hydrated}}const Ud="You",qd="human",zd="system",Bd="System",Wd="agent",Hd="Agent",Gd="chat-sender:",zs="room-author:",Kd="Room member",Qd="prompt-source:",Vd="runtime:";function Yd(e){return e.messageType==="local_command_output"||e.messageType==="compaction"}function Xd(e,t){var i,c,u,d,m,p;if(Yd(e)||e._chatStop)return{kind:"system",id:zd,displayName:Bd};const n=e.role==="user"?(c=(i=e.chatMessages)==null?void 0:i[0])==null?void 0:c.from:void 0;if(n){const h=n.agentId??n.chatId,f=((u=t.senderAgent)==null?void 0:u.call(t,n))??lt({id:h});return{kind:"agent",id:`${Gd}${h}`,displayName:n.agentName,emoji:f.emoji,color:f.color}}const s=e.role==="user"?e.roomMessage:void 0;if(s&&!((d=s.author)!=null&&d.you))return Zd(s,t);const o=e.role==="user"?e.promptSource:void 0;if(o){const h=Jd(o);return{kind:o.kind==="channel"?"human":"system",id:`${Qd}${o.kind}:${o.label??""}`,displayName:h}}if(e.role==="user")return{kind:"human",id:qd,displayName:((m=t.humanName)==null?void 0:m.trim())||Ud,isSelf:!0};if(t.agent){const{id:h,displayName:f,emoji:g,color:x,imageUrl:y}=t.agent;return{kind:"agent",id:h,displayName:f,emoji:g,color:x,imageUrl:y}}const a=(p=t.runtime)==null?void 0:p.trim();return a?{kind:"agent",id:`${Vd}${a}`,displayName:zn(a),runtime:a}:{kind:"agent",id:Wd,displayName:Hd}}function Jd(e){switch(e.kind){case"heartbeat":return"Heartbeat";case"schedule":return e.label?`Schedule: ${e.label}`:"Schedule";case"agent":return e.label??"Another agent";case"channel":return e.label??"Connection";case"external":return e.label??"Outside DorkOS"}}function Zd(e,t){var o;const{author:n}=e;if(!n)return{kind:"human",id:`${zs}entry:${e.entryId}`,displayName:Kd};const s=`${zs}${n.id}`;if(n.kind==="agent"){const a=n.agentId??n.id,i=((o=t.senderAgent)==null?void 0:o.call(t,{agentId:a,chatId:a}))??lt({id:a,...n.emoji?{icon:n.emoji}:{},...n.color?{color:n.color}:{}});return{kind:"agent",id:s,displayName:n.displayName,...i}}return{kind:n.kind,id:s,displayName:n.displayName}}function Fo(e){return`msg-${e}`}function em(){return{last:null}}function tm(e,t){const{resolveAuthor:n,now:s,cache:o}=t,a=t.lastSeenMessageId??null,i=t.unreadFromStart??!1,c=o==null?void 0:o.last,u=c&&c.resolveAuthor===n&&c.now===s&&c.lastSeenMessageId===a&&c.unreadFromStart===i?c:null;let d=0;if(u){const y=Math.min(e.length,u.messages.length);for(;d<y&&e[d]===u.messages[d];)d++}const m=u?u.authors.slice(0,d):[],p=u?u.items.slice(0,d):[];for(let y=m.length;y<e.length;y++){const b=e[y],v=n(b,y);m.push(v),p.push({id:b.id,authorId:v.id,timestamp:b.timestamp})}const h={now:s,lastSeenId:a,unreadFromStart:i},{rows:f,kept:g}=u?Ha(p,h,u.timeline,d):{rows:Ga(p,h),kept:0},x=u?u.rows.slice(0,g):[];for(let y=g;y<f.length;y++){const b=f[y];x.push(b.kind!=="item"?b:{kind:"message",key:Fo(e[b.index].id),messageIndex:b.index,message:e[b.index],grouping:b.grouping,author:m[b.index]})}return o&&(o.last={messages:e,authors:m,items:p,resolveAuthor:n,now:s,lastSeenMessageId:a,unreadFromStart:i,timeline:f,rows:x}),x}function nm(e){const t=[],n=new Set;for(const s of e){const o=s.lastIndexOf("/"),a=o>=0?s.slice(0,o+1):"",i=o>=0?s.slice(o+1):s;t.push({path:s,filename:i,directory:a,isDirectory:!1});const c=s.split("/");for(let u=1;u<c.length;u++){const d=c.slice(0,u).join("/")+"/";n.has(d)||(n.add(d),t.push({path:d,filename:c[u-1]+"/",directory:u>1?c.slice(0,u-1).join("/")+"/":"",isDirectory:!0}))}}return t}function sm(e,t){const n=[...e].reverse().find(s=>s.role==="user");if(n!=null&&n.content)return n.content;if((t==null?void 0:t.kind)==="first-message"&&t.kickoffMessage)return t.kickoffMessage}const Lo=Symbol("no-error-part");function rm(e){for(let t=e.length-1;t>=0;t--){const n=e[t].parts;for(let s=n.length-1;s>=0;s--){const o=n[s];if(o.type==="error")return o.category}}return Lo}function om(e){const{messages:t,status:n,lastErrorCategory:s,queuedCount:o,draft:a}=e;if(a.trim().length>0||n==="streaming"||o>0)return null;let i=-1;for(let d=t.length-1;d>=0;d--)if(t[d].role==="user"){i=d;break}const c=i===-1?"":t[i].content.trim();if(!c)return null;const u=rm(t.slice(i+1));return u!==Lo?u==="auth_error"?c:null:n==="error"&&s==="auth_error"?c:null}const am="dorkos:signin-resume",im=1e4;function lm(){const e=l.useRef(new Map),t=l.useRef(null);return l.useEffect(()=>{const n=Ka(am);t.current=n;const s=e.current,o=n.onMessage(a=>{s.set(a.sessionId,Date.now())});return()=>{o(),n.close(),t.current=null}},[]),l.useMemo(()=>({claimedElsewhere:n=>{const s=e.current.get(n);return s!==void 0&&Date.now()-s<im},claim:n=>{var s;return(s=t.current)==null?void 0:s.postMessage({sessionId:n})}}),[])}function Uo(e){switch(e){case"pending":case"running":return r.jsx(Ue,{size:"xs",className:Et({status:e})});case"complete":return r.jsx(Kt,{className:W("size-(--size-icon-xs)",Et({status:e}))});case"error":return r.jsx(ot,{className:W("size-(--size-icon-xs)",Et({status:e}))});case"neutral":return r.jsx(Qa,{className:W("size-(--size-icon-xs)",Et({status:e}))})}}function Bs({type:e,toolName:t,toolInput:n,...s}){const o=e==="approval"?"Waiting for approval":"Answering questions",a=t?kt(t,n??""):null,i=a?`${o} · ${a}`:`${o}…`;return r.jsx("div",{className:"bg-muted/50 rounded-msg-tool text-muted-foreground shadow-msg-tool border px-3 py-1 text-sm transition-colors duration-150",...s,children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Ue,{className:"shrink-0"}),r.jsx("span",{className:"truncate text-xs",children:i})]})})}function Nt({expanded:e,onToggle:t,header:n,children:s,variant:o="default",dimmed:a=!1,disabled:i=!1,hideChevron:c=!1,extraContent:u,ariaLabel:d,className:m,...p}){const h=c?void 0:e;return r.jsxs("div",{className:W("bg-muted/40 mt-px rounded-md border-l-2 text-sm transition-[opacity,background-color,border-color,box-shadow] duration-200 first:mt-1","hover:bg-muted/60 hover:border-l-muted-foreground/60 hover:shadow-soft",o==="default"&&"border-l-muted-foreground/30",o==="thinking"&&"border-l-muted-foreground/20",o==="memory"&&"border-l-muted-foreground/20",a&&!e&&"opacity-50 hover:opacity-100",m),...p,children:[r.jsxs("button",{onClick:()=>!i&&t(),disabled:i,className:W("focus-ring flex w-full items-center gap-2 rounded-md px-3 py-1",i&&"cursor-default"),"aria-expanded":h,"aria-label":d,children:[n,!c&&!i&&r.jsx(Q.div,{animate:{rotate:e?180:0},transition:Bn.fold,className:"ml-auto",children:r.jsx(vt,{className:"text-muted-foreground size-(--size-icon-xs)"})})]}),u,r.jsx(me,{initial:!1,children:e&&r.jsx(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"overflow-hidden",children:r.jsx("div",{className:"border-border/50 border-t px-3 pt-1 pb-3",children:s})})})]})}const cm=[0,.2,.4];function qo({className:e}){return r.jsx("div",{className:W("flex gap-1",e),"data-testid":"typing-dots","aria-hidden":"true",children:cm.map(t=>r.jsx("span",{className:"bg-muted-foreground h-2 w-2 rounded-full",style:{animation:"typing-dot 1.4s ease-in-out infinite",animationDelay:`${t}s`}},t))})}function um({record:e}){const t=Le(),{color:n,emoji:s}=lt({id:e.agentId,icon:e.icon,color:e.color}),o=e.displayName.trim()||"Your agent";return r.jsxs("div",{className:"flex flex-col items-center gap-5 text-center","data-testid":"first-light",children:[r.jsx(Q.div,{animate:t?void 0:{scale:[1,1.05,1],opacity:[.9,1,.9]},transition:t?void 0:{duration:3,repeat:1/0,ease:"easeInOut"},children:r.jsx(Wn,{color:n,emoji:s,size:"lg"})}),r.jsxs("div",{className:"flex flex-col items-center gap-3",children:[r.jsxs("p",{className:"text-muted-foreground text-base","aria-live":"polite",children:[o," is waking up…"]}),r.jsx(qo,{})]})]})}function dm({birthRecord:e,firstLightRecord:t}){return(e==null?void 0:e.greetingFailed)===!0?r.jsxs("div",{className:"text-center","data-testid":"greeting-failed-empty",children:[r.jsxs("p",{className:"text-muted-foreground text-base",children:[e.displayName," couldn’t say hello just now"]}),r.jsx("p",{className:"text-muted-foreground/60 mt-2 text-sm",children:"Send a message to get started."})]}):t?r.jsx(um,{record:t}):r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-muted-foreground text-base",children:"Start a chat"}),r.jsx("p",{className:"text-muted-foreground/60 mt-2 text-sm",children:"Type a message below to begin."})]})}function mm(e){const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function fm({sessionId:e}){const t=Qt(e),n=Le();if(!t||t.kind==="first-message")return null;const s=mm(t.bornAt),o=Vt(t.runtime).label;return r.jsxs(Q.div,{initial:n?!1:{opacity:0,y:-4},animate:{opacity:1,y:0},transition:{duration:.3},"data-testid":"birth-certificate",className:"text-muted-foreground flex items-center justify-center gap-1.5 px-4 pt-3 pb-1 text-xs",children:[r.jsx(Va,{className:"text-primary size-3.5 shrink-0 fill-current","aria-hidden":"true"}),r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx("span",{className:"text-foreground font-medium",children:t.displayName}),s&&r.jsxs(r.Fragment,{children:[r.jsx(pn,{}),r.jsxs("span",{children:["born ",s]})]}),r.jsx(pn,{}),r.jsxs("span",{className:"min-w-0 truncate",children:["lives in ",r.jsx("code",{className:"text-2xs",children:t.path})]}),r.jsx(pn,{}),r.jsxs("span",{className:"shrink-0",children:["runs on ",o]})]})]})}function pn(){return r.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/50 shrink-0",children:"·"})}const pm="another chat";function hm(e,t){const n=t==null?void 0:t.find(s=>s.id===e);return n?Ya(n)?Ss("autonomy"):n.label:Or(e)?Ss("autonomy"):Xa(e)}function gm({startedBy:e,modes:t}){var a;const n=Qe();if(!e)return null;const s=((a=e.reason)==null?void 0:a.trim())||null,o=e.kind==="chat"?e.permission:null;return r.jsxs(r.Fragment,{children:[r.jsx(xm,{startedBy:e,reason:s,navigate:n}),o&&r.jsxs("p",{"data-testid":"started-level-line",className:"text-muted-foreground mx-auto max-w-prose px-4 pb-1 text-center text-xs",children:["Started at ",hm(o.mode,t),","," ",o.sameAsStarter?"same as":"lower than"," the chat that started it."]})]})}function xm({startedBy:e,reason:t,navigate:n}){return r.jsxs("p",{"data-testid":"started-by-line",className:"text-muted-foreground mx-auto max-w-prose px-4 pt-3 pb-1 text-center text-xs",children:[e.kind==="extension"?r.jsxs(r.Fragment,{children:["Started by the"," ",r.jsx("span",{className:"text-foreground font-medium",children:e.extensionName})," extension"]}):r.jsxs(r.Fragment,{children:["Started from"," ",r.jsx("button",{type:"button",onClick:()=>void n(ct({session:e.sessionId})),className:"text-foreground focus-visible:ring-ring rounded-sm font-medium underline-offset-2 hover:underline focus-visible:ring-2 focus-visible:outline-none",children:e.title??pm})]}),t&&r.jsxs(r.Fragment,{children:[": ",t]})]})}function ym({content:e}){const[t,n]=l.useState(!1);return r.jsxs("div",{"data-testid":"started-prompt",className:"px-4 py-1",children:[r.jsxs("button",{type:"button","aria-expanded":t,onClick:()=>n(s=>!s),className:"text-muted-foreground hover:text-foreground focus-visible:ring-ring mx-auto flex items-center gap-1 rounded-sm text-xs focus-visible:ring-2 focus-visible:outline-none",children:["What it was asked",r.jsx(zt,{"aria-hidden":"true",className:W("size-3 transition-transform duration-200",t&&"rotate-90")})]}),t&&r.jsx("div",{className:"bg-muted/40 text-foreground mx-auto mt-2 max-w-prose rounded-md px-3 py-2 text-sm break-words whitespace-pre-wrap",children:e})]})}function Mn(e){if(e)try{const t=JSON.parse(e);return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:void 0}catch{return}}function pe(e,t){const n=e==null?void 0:e[t];return typeof n=="string"&&n.length>0?n:void 0}function bm(e){const t=Mn(e);if(t){if(Array.isArray(t.content))for(const n of t.content){const s=typeof(n==null?void 0:n.text)=="string"?Mn(n.text):void 0;if(s)return s}return t}}function zo(e){const t=Ja(e.toolName);if(t!=="chat_send"&&t!=="session_start"&&t!=="chat_stop")return null;const n=Mn(e.input),s=bm(e.result),o=km(e,s),a=o===void 0&&(s==null?void 0:s.status)==="approval_required",i=pe(n,"delivery");return{tool:t,...pe(n,t==="chat_stop"?"chat":"to")!==void 0?{to:pe(n,t==="chat_stop"?"chat":"to")}:{},...pe(n,t==="session_start"?"prompt":"message")!==void 0?{message:pe(n,t==="session_start"?"prompt":"message")}:{},...pe(n,"summary")!==void 0?{summary:pe(n,"summary")}:{},...i==="queue"||i==="steer"||i==="interrupt"?{delivery:i}:{},...pe(n,"reason")!==void 0?{reason:pe(n,"reason")}:{},...pe(s,"messageId")!==void 0?{messageId:pe(s,"messageId")}:{},...(pe(s,"chatId")??pe(s,"sessionId"))!==void 0?{chatId:pe(s,"chatId")??pe(s,"sessionId")}:{},...o!==void 0?{error:o}:{},...a?{waiting:a}:{},...t==="chat_stop"&&o===void 0&&(s==null?void 0:s.stopped)===!1?{notRunning:!0}:{},...pe(s,"note")!==void 0?{note:pe(s,"note")}:{}}}const Mt="It could not be sent.";function km(e,t){var n;if((t==null?void 0:t.status)==="denied")return pe(t,"message")??Mt;if((t==null?void 0:t.ok)===!1||typeof(t==null?void 0:t.error)=="string")return pe(t,"error")??pe(t,"message")??Mt;if(e.status==="error")return t?pe(t,"error")??pe(t,"message")??Mt:((n=e.result)==null?void 0:n.trim())||Mt}function vm(e,t=60){const n=e.trim().split(new RegExp("(?<=[.!?])\\s"))[0]??"";if(n.length<=t)return n;const s=n.slice(0,t),o=s.lastIndexOf(" ");return`${(o>t/2?s.slice(0,o):s).replace(/[\s,;:.]+$/,"")}…`}function Sm(e,t){if(e){for(let n=t.length-1;n>=0;n--)if(t[n].to.chatId===e)return t[n].to}}function jm(e,t){if(e.messageId)return t.find(n=>n.id===e.messageId);if(e.tool==="session_start"&&e.chatId)return t.find(n=>n.kind==="start"&&n.to.chatId===e.chatId)}function wm(e,t){if(e&&e.trim())return e.trim();const s=((t??"").split(`
|
|
34
|
-
`).find(o=>o.trim()!=="")??"").replace(/^#+\s*/,"").trim();return s.length>72?`${s.slice(0,71)}…`:s}function Nm(e,t){if(t.error)return{label:"Failed",tone:"error"};if(t.waiting)return{label:"Waiting for approval",tone:"muted"};if(!e)return{label:t.pending?"Sending":"Sent",tone:"muted"};switch(e.status){case"queued":return{label:e.position?`Queued · #${e.position}`:"Queued",tone:"muted"};case"steered":return{label:"Steered in",tone:"done"};case"working":return{label:e.delivery==="interrupt"?"Interrupted, working":"Working",tone:"active"};case"delivered":return{label:e.delivery==="interrupt"?"Interrupted, then delivered":"Delivered",tone:"done"};case"replied":return{label:"Replied",tone:"done"};case"failed":return{label:"Failed",tone:"error"};default:return{label:"Sent",tone:"muted"}}}function Cm(e){const t=[];return e.kind==="report"&&t.push("Report"),e.kind==="start"&&t.push("Started this chat"),e.delivery==="steer"&&t.push("Steered in"),e.delivery==="interrupt"&&t.push("Interrupted"),t}function Bo(e,t){var n,s;for(const o of e){if((n=o.chatMessages)!=null&&n.some(i=>i.id===t))return o.id;const a=[...o.toolCalls??[],...(o.parts??[]).filter(i=>i.type==="tool_call")];for(const i of a)if(((s=zo(i))==null?void 0:s.messageId)===t)return o.id}}const Ws=new WeakMap;function Tm(e,t){if(t.length===0)return e;const n=[];let s=0;const o=a=>{let i=Ws.get(a);return i||(i={id:`chat-stop-${a.id}`,role:"user",content:"",parts:[],timestamp:a.at,_chatStop:a},Ws.set(a,i)),i};for(const a of e){const i=a.timestamp==="",c=i?Number.NaN:Date.parse(a.timestamp),u=d=>i||!Number.isNaN(c)&&Date.parse(d.at)<c;for(;s<t.length&&u(t[s]);)n.push(o(t[s])),s+=1;n.push(a)}for(;s<t.length;)n.push(o(t[s])),s+=1;return n}function Rm({stamp:e}){const t=Cm(e);return t.length===0?null:r.jsx(r.Fragment,{children:t.map(n=>r.jsx("span",{"data-testid":"chat-message-tag",className:"bg-muted text-muted-foreground text-2xs rounded px-1.5 py-px leading-4 font-medium",children:n},n))})}function Wo({stamp:e}){const t=Qe(),n=e.from.chatTitle??"another chat";return r.jsxs("span",{"data-testid":"chat-from-mark",className:"inline-flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[r.jsxs("span",{className:"text-muted-foreground inline-flex min-w-0 items-center gap-1",children:[r.jsx("span",{"aria-hidden":!0,children:"·"}),r.jsx("span",{children:"from"}),r.jsx("button",{type:"button",onClick:()=>void t(ct({session:e.from.chatId,message:e.id})),className:"focus-ring text-foreground/80 hover:text-foreground max-w-48 truncate underline-offset-4 hover:underline",children:n})]}),r.jsx(Rm,{stamp:e})]})}function Em({sessionId:e,messageId:t}){const n=Qe();return r.jsxs("button",{type:"button","data-testid":"chat-reply-to",onClick:()=>void n(ct({session:e,message:t})),className:"focus-ring text-muted-foreground hover:text-foreground focus-visible:text-foreground mb-1 inline-flex items-center gap-1 text-xs underline-offset-4 hover:underline",children:[r.jsx(zu,{"aria-hidden":!0,className:"size-3"}),"Reply to your message"]})}function Am({stamps:e,sessionId:t}){return r.jsx("div",{className:"space-y-2","data-testid":"received-chat-messages",children:e.map((n,s)=>r.jsxs("div",{"data-testid":"received-chat-message","data-kind":n.kind,className:"border-status-info-border bg-status-info-bg rounded-r-md border-l-2 py-1.5 pr-2 pl-3",children:[n.replyToId&&t&&r.jsx(Em,{sessionId:t,messageId:n.replyToId}),s>0&&r.jsxs("div",{className:"text-muted-foreground mb-1 flex flex-wrap items-center gap-1.5 text-xs",children:[r.jsx("span",{className:"text-foreground/80 font-medium",children:n.from.agentName}),r.jsx(Wo,{stamp:n})]}),r.jsx("div",{className:"msg-prose",children:r.jsx(ts,{content:n.text,isStreaming:!1,...t?{sessionId:t}:{}})})]},n.id))})}function _m({stamp:e}){const t=Qe(),n=e.roomLabel??"a room";return r.jsxs("span",{"data-testid":"room-post-mark",className:"text-muted-foreground inline-flex min-w-0 items-center gap-1 text-xs",children:[r.jsx("span",{"aria-hidden":!0,children:"·"}),r.jsx("span",{children:"in"}),r.jsx("button",{type:"button","aria-label":`Open ${n}`,onClick:()=>void t({...Za.channels(),search:{id:e.roomId}}),className:"focus-ring text-foreground/80 hover:text-foreground max-w-48 truncate underline-offset-4 hover:underline",children:n})]})}const Mm={muted:"text-muted-foreground",active:"text-foreground",done:"text-muted-foreground",error:"text-destructive"};function Im(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Om(e,t,n){if(e.error)return e.error;if(e.waiting)return"Waiting for a person to approve it.";if(e.tool==="chat_stop")return e.note??(e.notRunning?"Nothing was running there.":"Asked it to stop.");if(!t)return e.note??"Sent.";const s=Im(n);switch(t.status){case"queued":return t.position?`Waiting for ${n} to finish its turn. Number ${t.position} in line.`:`Waiting for ${n} to finish its turn.`;case"steered":return`Joined ${n}’s running turn.`;case"working":return t.delivery==="interrupt"?`Stopped ${n}’s turn. ${s} is on this now.`:`${s} is working on it.`;case"delivered":return`${s} read it and finished its turn.`;case"replied":return`${s} replied.`;case"failed":return t.failureReason??"It was not delivered.";default:return"Sent."}}function Dm(e,t){return e.error?{label:"Failed",tone:"error"}:e.waiting?{label:"Waiting for approval",tone:"muted"}:t?{label:"Stopping",tone:"muted"}:e.notRunning?{label:"Not running",tone:"muted"}:{label:"Stopped",tone:"done"}}function Pm({part:e,sent:t,at:n,sessionId:s}){const[o,a]=l.useState(!1),i=l.useId(),c=Qe(),u=zo(e);if(!u)return null;const d=e.status==="pending"||e.status==="running",m=jm(u,t),p=(m==null?void 0:m.to.chatId)??u.chatId??(u.tool==="chat_stop"?u.to:void 0),h=(m==null?void 0:m.to)??Sm(p,t),f=(h==null?void 0:h.agentName)??"the agent",g=h==null?void 0:h.chatTitle,x=lt({id:(h==null?void 0:h.agentId)??u.to??p??"chat"}),y=u.tool==="chat_stop"?Dm(u,d):Nm(m,{...u,pending:d}),b=wm((m==null?void 0:m.summary)??u.summary,(m==null?void 0:m.text)??u.message),v=n?Ht(n):m?Ht(m.sentAt):"",j=u.error??((m==null?void 0:m.status)==="failed"?m.failureReason:void 0),S=j?vm(j):u.tool==="chat_stop"?u.reason:b!==g?b:"",T=u.tool==="session_start"?Hu:u.tool==="chat_stop"?Dr:ei,R=u.tool==="session_start"?"Started spin-off chat":u.tool==="chat_stop"?u.error||u.notRunning?"Tried to stop":"Stopped":"To",E=u.tool==="session_start"?g??(b||"a new chat"):u.tool==="chat_stop"?g??"a chat":(h==null?void 0:h.agentName)??g??"a chat",I=()=>{p&&c(ct({session:p,...m?{message:m.id}:{}}))};return r.jsxs("div",{"data-testid":"sent-chat-card","data-tool":u.tool,"data-state":y.label,className:"border-border/70 bg-background my-1.5 rounded-lg border text-sm",children:[r.jsxs("button",{type:"button",onClick:()=>a(A=>!A),"aria-expanded":o,...o?{"aria-controls":i}:{},className:"focus-ring hover:bg-muted/40 flex w-full min-w-0 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors duration-150",children:[r.jsx(Wn,{size:"xs",emoji:x.emoji,color:x.color}),r.jsx(T,{"aria-hidden":!0,className:"text-muted-foreground hidden size-3.5 shrink-0 sm:block"}),r.jsxs("span",{className:"min-w-0 flex-1 truncate",children:[r.jsxs("span",{className:"text-muted-foreground",children:[R," "]}),r.jsx("span",{className:"font-medium",children:E}),u.tool==="chat_send"&&g&&(h==null?void 0:h.agentName)&&r.jsxs("span",{className:"text-muted-foreground",children:[" · ",g]}),S&&(u.tool!=="session_start"||j)&&r.jsxs("span",{"data-testid":"sent-chat-aside",className:W("text-muted-foreground",!j&&"hidden sm:inline"),children:[" ","· ",S]})]}),r.jsxs("span",{className:"flex shrink-0 items-center gap-2",children:[r.jsx("span",{className:W("text-xs",Mm[y.tone]),"data-testid":"sent-chat-state",children:y.label}),v&&r.jsx("time",{className:"text-muted-foreground hidden text-xs tabular-nums sm:inline",children:v}),r.jsx(vt,{"aria-hidden":!0,className:W("text-muted-foreground size-3.5 transition-transform duration-200",o&&"rotate-180")})]})]}),o&&r.jsxs("div",{id:i,className:"border-border/60 space-y-2 border-t px-3 py-2",children:[((m==null?void 0:m.text)??u.message??u.reason)&&r.jsx("div",{className:"msg-prose",children:r.jsx(ts,{content:(m==null?void 0:m.text)??u.message??u.reason??"",isStreaming:!1,...s?{sessionId:s}:{}})}),r.jsxs("p",{className:"text-muted-foreground text-xs",children:[Om(u,m,f),u.note&&u.tool!=="chat_stop"&&m?` ${u.note}`:""]}),p&&!u.error&&!u.waiting&&r.jsx("button",{type:"button",onClick:I,className:"focus-ring text-foreground text-xs font-medium underline-offset-4 hover:underline",children:"Open chat →"})]})]})}function $m({notice:e}){const t=Qe();return r.jsxs("div",{"data-testid":"chat-stop-line",className:"text-muted-foreground flex flex-wrap items-center gap-1.5 text-xs",children:[r.jsx(Dr,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),r.jsxs("span",{children:["Stopped by ",r.jsx("span",{className:"text-foreground/80 font-medium",children:e.by.agentName})," · ",r.jsx("button",{type:"button",onClick:()=>void t(ct({session:e.by.chatId})),className:"focus-ring hover:text-foreground underline-offset-4 hover:underline",children:e.by.chatTitle??"another chat"}),e.reason?`: ${e.reason}`:""]})]})}function ss(e){const t=[],n=[];for(const s of e)s.type==="text"?t.push(s.text):s.type==="tool_call"&&n.push({toolCallId:s.toolCallId,toolName:s.toolName,input:s.input||"",result:s.result,progressOutput:s.progressOutput,status:s.status,interactiveType:s.interactiveType,questions:s.questions,answers:s.answers,timeoutMs:s.timeoutMs,hooks:s.hooks,startedAt:s.startedAt,completedAt:s.completedAt,approvalStartedAt:s.approvalStartedAt,approvalRemainingMs:s.approvalRemainingMs,approvalParked:s.approvalParked,approvalTitle:s.approvalTitle,approvalDisplayName:s.approvalDisplayName,approvalDescription:s.approvalDescription,approvalBlockedPath:s.approvalBlockedPath,approvalDecisionReason:s.approvalDecisionReason,approvalHasSuggestions:s.approvalHasSuggestions,approvalAlwaysAllowScope:s.approvalAlwaysAllowScope});return{content:t.join(`
|
|
35
|
-
`),toolCalls:n}}const Hs=new WeakMap;function Fm(e){let t=Hs.get(e);return t||(t=e.map(nt),Hs.set(e,t)),t}function nt(e){const t=e.parts?[...e.parts]:[];if(t.length===0&&(e.content&&t.push({type:"text",text:e.content}),e.toolCalls))for(const s of e.toolCalls)t.push({type:"tool_call",toolCallId:s.toolCallId,toolName:s.toolName,input:s.input,result:s.result,status:s.status,...s.questions||s.questionOutcome?{interactiveType:"question",questions:s.questions,answers:s.answers,questionOutcome:s.questionOutcome}:{},...s.approvalOutcome?{interactiveType:"approval",approvalOutcome:s.approvalOutcome,approvalResolvedAt:s.approvalResolvedAt,approvalStartedAt:s.approvalStartedAt,approvalReasonGiven:s.approvalReasonGiven}:{}});const n=ss(t);return{id:e.id,role:e.role,content:n.content,toolCalls:n.toolCalls.length>0?n.toolCalls:void 0,parts:t,timestamp:e.timestamp||"",messageType:e.messageType,compactMetadata:e.compactMetadata,commandName:e.commandName,commandArgs:e.commandArgs,...e.chatMessages&&e.chatMessages.length>0?{chatMessages:e.chatMessages}:{},...e.roomMessage?{roomMessage:e.roomMessage}:{},...e.promptSource?{promptSource:e.promptSource}:{}}}function Lm(e,t,n){const s=new Set(e.map(d=>d.id)),o=e.filter(d=>d._streaming),a=o.find(d=>d.role==="user"),i=o.find(d=>d.role==="assistant"),c=[];let u=-1;for(let d=0;d<t.length;d++){const m=t[d];if(!s.has(m.id)){if(a&&m.role==="user"&&m.content===a.content){u=d,n(p=>p.map(h=>h.id===a.id?{...nt(m),_streaming:!1}:h));continue}if(i&&u>=0&&d===u+1&&m.role==="assistant"){const p=nt(m),h=new Set(p.parts.filter(x=>x.type==="background_task").map(x=>x.taskId)),f=i.parts.filter(x=>x.type==="background_task"&&!h.has(x.taskId)),g=f.length>0?[...p.parts,...f]:p.parts;n(x=>x.map(y=>y.id===i.id?{...p,parts:g,_streaming:!1}:y));continue}c.push(m)}}c.length>0&&n(d=>[...d,...c.map(nt)])}const Um=20;function qm(e,t){var b;const n=be(),s=ti(e),o=Fe(v=>v.seeks[e]),[a,i]=l.useState(null),c=l.useRef(null),u=a===e,d=l.useRef({key:"",count:0}),m=s.windowStartId!==null&&((b=t[0])==null?void 0:b.id)===s.windowStartId,p=l.useMemo(()=>m?s.earlier.map(nt):[],[m,s.earlier]),h=l.useMemo(()=>p.length>0?[...p,...t]:t,[p,t]),f=m&&s.remaining>0,g=m?s.remaining:0,x=l.useCallback(()=>{var S;if(c.current===e||!f)return;const{generation:v}=s,j=((S=s.earlier[0])==null?void 0:S.id)??s.windowStartId;j&&(c.current=e,i(e),n.getMessages(e,void 0,{before:j}).then(T=>{Fe.getState().prependPage(e,v,T.messages,T.earlierMessages??0)}).catch(T=>{console.warn("[chat] could not read earlier messages",T),Fe.getState().endSeek(e)}).finally(()=>{c.current===e&&(c.current=null,i(null))}))},[f,e,n,s]),y=o!==void 0&&(h.some(v=>v.id===o)||Bo([...s.earlier,...Ce.getState().getSession(e).messages],o)!==void 0);return l.useEffect(()=>{if(o===void 0){d.current={key:"",count:0};return}const v=`${e}:${o}`;if(d.current.key!==v&&(d.current={key:v,count:0}),!(s.generation===0||u)){if(y||!f||d.current.count>=Um){Fe.getState().endSeek(e);return}d.current.count+=1,x()}},[o,y,f,u,x,e,s.generation]),{messages:h,earlierCount:p.length,messagesBefore:g,canLoadEarlier:f,isLoadingEarlier:u,isSeeking:o!==void 0,loadEarlier:x}}function zm({celebration:e,onComplete:t}){const n=l.useRef(null),s=(e==null?void 0:e.level)==="major",o=l.useCallback(()=>{t()},[t]);return l.useEffect(()=>{if(!s)return;let a=!1;ni({kind:"burst"}).then(c=>{if(a){c();return}n.current=c});const i=setTimeout(()=>{o()},Yt.CELEBRATION_DISPLAY_MS);return()=>{var c;a=!0,(c=n.current)==null||c.call(n),n.current=null,clearTimeout(i)}},[s,o]),r.jsx(me,{children:s&&r.jsx(Q.div,{"aria-hidden":"true",className:"pointer-events-none fixed inset-0 z-50",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:1.1},transition:{duration:.6,ease:"easeOut"},style:nd})})}function Bm(e){if(e<1e3)return"<1s";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const n=Math.floor(t/60),s=t%60;return`${n}m ${s}s`}function Wm({text:e,isStreaming:t,elapsedMs:n}){const[s,o]=l.useState(t),a=l.useRef(t),i=l.useRef(null);l.useEffect(()=>{a.current&&!t&&o(!1),a.current=t},[t]),l.useEffect(()=>{t&&s&&i.current&&(i.current.scrollTop=i.current.scrollHeight)},[e,t,s]);const c=n?`Thought for ${Bm(n)}`:"Thinking…";return r.jsx(Nt,{expanded:s,onToggle:()=>o(!s),variant:"thinking",dimmed:!t,disabled:t,ariaLabel:c,"data-testid":"thinking-block","data-streaming":t?"true":void 0,header:r.jsxs(r.Fragment,{children:[r.jsx(qu,{className:W("text-muted-foreground size-(--size-icon-xs)",t&&"animate-breath")}),r.jsx("span",{className:W("text-3xs text-muted-foreground font-mono",t&&"animate-breath"),children:c})]}),children:r.jsx("div",{ref:i,className:"max-h-32 overflow-y-auto",children:r.jsx("pre",{className:"text-muted-foreground text-xs break-words whitespace-pre-wrap",children:e})})})}function Hm({mode:e,memories:t,isStreaming:n}){const[s,o]=l.useState(n),a=l.useRef(n);if(l.useEffect(()=>{a.current&&!n&&o(!1),a.current=n},[n]),t.length===0)return null;const i=t.length,c=n?i<=1?"Consulting memory…":`Consulting ${i} memories…`:i===1?"Recalled 1 memory":`Recalled ${i} memories`,u=e==="synthesize"?si:ri,d=e==="synthesize"?"sparkles":"bookopen";return r.jsx(Nt,{expanded:s,onToggle:()=>o(!s),variant:"memory",dimmed:!n,disabled:n,ariaLabel:c,"data-testid":"memory-recall-block","data-streaming":n?"true":void 0,header:r.jsxs(r.Fragment,{children:[r.jsx(u,{"aria-hidden":"true","data-testid":"memory-recall-header-icon","data-icon":d,className:W("text-muted-foreground size-(--size-icon-xs)",n&&"animate-breath")}),r.jsx("span",{className:W("text-3xs text-muted-foreground font-mono",n&&"animate-breath"),children:c})]}),children:r.jsx(Gm,{memories:t})})}function Gm({memories:e}){return r.jsx("ul",{className:"flex flex-col gap-1 px-3 py-2",children:e.map(t=>r.jsx(Km,{memory:t},t.path))})}function Km({memory:e}){const t=e.path.startsWith("<synthesis:"),n=e.scope==="team"?oi:ai,s=e.scope==="team"?"team":"personal",{copy:o}=ii({toastOnSettle:!0}),a=()=>{const i=t&&e.content?e.content:e.path;o(i)};if(t&&e.content){const i=e.path.replace(/^<synthesis:/,"synthesis:").replace(/>$/,"");return r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:a,"aria-label":`Copy synthesized ${s} memory content`,"data-scope":e.scope,className:"focus-ring hover:bg-muted/50 flex min-h-[44px] w-full flex-col items-start gap-1 rounded-md px-2 py-1 text-left transition-colors duration-150",children:[r.jsx("span",{className:"text-sm",children:e.content}),r.jsxs("span",{className:"text-3xs text-muted-foreground flex items-center gap-1 font-mono",children:[r.jsx(n,{"aria-hidden":"true",className:"size-(--size-icon-xs)"}),i]})]})})}return r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:a,"aria-label":`Copy ${s} memory path ${e.path}`,"data-scope":e.scope,className:"focus-ring hover:bg-muted/50 flex min-h-[44px] w-full items-center gap-2 rounded-md px-2 py-1 text-left transition-colors duration-150",children:[r.jsx("span",{className:"flex-1 truncate font-mono text-sm",children:sd(e.path,40)}),r.jsx(n,{"aria-hidden":"true",className:"text-muted-foreground size-(--size-icon-xs)"})]})})}function qt(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function Ho(e){return e===void 0?"Summarized (asked by the agent)":`Summarized at ${e}% (asked by the agent)`}function Qm(e){if((e==null?void 0:e.requestedBy)==="agent")return Ho(e.contextPercent);const t=["Context compacted"];return(e==null?void 0:e.preTokens)!==void 0&&t.push(`${qt(e.preTokens)} tokens`),e!=null&&e.trigger&&t.push(e.trigger),t.join(" · ")}function Vm(e,t){return e===void 0?"Compacted context":t===void 0?`Compacted context · ${qt(e)} tokens summarized`:`Compacted context · ${qt(e)} → ${qt(t)} tokens`}function Ym({trigger:e,preTokens:t,postTokens:n,failed:s,error:o,requestedBy:a,contextPercent:i}){return s?r.jsx(tt,{"data-testid":"compact-boundary-row","data-failed":"true",icon:r.jsx(Hn,{"aria-hidden":"true",className:"text-status-warning-dot size-3 shrink-0"}),label:r.jsx("span",{className:"text-status-warning-fg",children:a==="agent"?"Couldn’t compact (asked by the agent)":"Couldn’t compact"}),children:o?r.jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:o}):null}):a==="agent"?r.jsx(tt,{"data-testid":"compact-boundary-row","data-requested-by":"agent",icon:r.jsx(js,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:Ho(i)})}):r.jsx(tt,{"data-testid":"compact-boundary-row",icon:r.jsx(js,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:Vm(t,n)}),trailing:e?r.jsx("span",{"data-testid":"compact-boundary-trigger",className:"text-3xs text-muted-foreground/70 ml-auto font-mono uppercase",children:e}):void 0})}function Xm({part:e}){const[t,n]=l.useState(!1);return t?r.jsxs("div",{"data-testid":"message-image-missing",className:W("my-3 flex items-center gap-2 rounded-md border px-3 py-2","text-muted-foreground border-border/60 bg-muted/30 text-sm"),children:[r.jsx($u,{"aria-hidden":"true",className:"size-4 shrink-0"}),r.jsx("span",{children:e.alt?`${e.alt}, not available`:"This image is not available."})]}):r.jsx("figure",{className:"my-3","data-testid":"message-image",children:r.jsx(Pr,{image:{src:e.url,alt:e.alt??"Image produced by the agent"},className:"block",children:r.jsx("img",{src:e.url,alt:e.alt??"Image produced by the agent",loading:"lazy",decoding:"async",onError:()=>n(!0),className:"border-border/60 bg-muted/20 max-h-[32rem] max-w-full rounded-md border object-contain"})})})}function Jm({content:e}){return r.jsx(tt,{"data-testid":"staged-context-note",icon:r.jsx($r,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:"Added context for the next reply"}),children:r.jsx("p",{className:"text-muted-foreground/80 mt-1 text-xs whitespace-pre-wrap",children:e})})}function Zm(e){if(e<1e3)return"<1s";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const n=Math.floor(t/60),s=t%60;return`${n}m ${s}s`}function ef(e){return e==="untracked"?"neutral":e==="stopped"?"complete":e}function tf(e){const t=[];return e.toolUses&&t.push(`${e.toolUses} tool ${e.toolUses===1?"call":"calls"}`),e.durationMs&&t.push(Zm(e.durationMs)),t.length>0?t.join(" · "):null}function nf({part:e}){const[t,n]=l.useState(!1),s=l.useRef(null),o=tf(e),a=e.subagentText,i=e.status==="untracked",c=!!(o||e.summary||e.lastToolName||a||i);return l.useEffect(()=>{const u=s.current;u&&(u.scrollTop=u.scrollHeight)},[a]),r.jsx(Nt,{expanded:t,onToggle:()=>c&&n(!t),hideChevron:!c,ariaLabel:`Background task: ${e.description}`,"data-testid":"subagent-block","data-task-id":e.taskId,"data-status":e.status,header:r.jsxs(r.Fragment,{children:[Uo(ef(e.status)),r.jsx("span",{className:"text-3xs truncate font-mono",children:e.description}),o&&r.jsx("span",{className:"text-3xs text-muted-foreground ml-1 shrink-0",children:o})]}),children:r.jsxs("div",{className:"space-y-1.5",children:[a&&r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-3xs text-muted-foreground/70 tracking-wide uppercase",children:"Helper output"}),r.jsx("pre",{ref:s,className:"text-foreground/90 bg-muted/50 max-h-64 overflow-y-auto rounded-md p-2 text-xs break-words whitespace-pre-wrap","data-testid":"subagent-text",children:a})]}),e.lastToolName&&e.status==="running"&&r.jsxs("p",{className:"text-3xs text-muted-foreground",children:["Last tool: ",r.jsx("span",{className:"font-mono",children:e.lastToolName})]}),e.summary&&r.jsx("pre",{className:"overflow-x-auto text-xs whitespace-pre-wrap",children:e.summary}),i&&r.jsx("p",{className:"text-3xs text-muted-foreground","data-testid":"subagent-untracked",children:"No longer tracked. It may still be running."})]})})}function sf(e){try{const t=JSON.parse(e);if(!t||typeof t!="object")return e;const n=t;if(n.error&&typeof n.error=="object"){const s=n.error;if(typeof s.message=="string")return s.message}return typeof n.message=="string"?n.message:e}catch{return e}}function rf(e){const t=sf(e),n=t.match(/The ['"`]([^'"`]+)['"`] model requires a newer version of Codex\b/i);if(n)return{message:`The Codex version DorkOS is using is too old for ${n[1]}. Update DorkOS (or your custom Codex installation), then try again. You can also choose another model.`,category:"runtime_update_required",details:e};const s=t.match(/The ['"`]([^'"`]+)['"`] model is not supported when using Codex with a ChatGPT account\b/i);return s?{message:`${s[1]} isn’t available with a ChatGPT account. Choose another model from the model menu.`,category:"model_unavailable",details:e}:null}function Ke(e){return e.notAllowed!==!0&&e.usage.state!=="limited"}function of(e,t){if(e.id===at||!e.eligible)return e.reason;const n=li(e.usage,"seven_day");if(!n||n.usedPct===null)return"usage unknown";const s=Math.min(100,Math.max(0,Math.round(100-n.usedPct))),o=ci(n.resetsAt,t);return o?`${s}% left · resets ${o}`:`${s}% left`}function tn(e,t){return e.runtime!==void 0&&e.runtime!==t}function af(e,t){const n=[],s=[];for(const o of e)(tn(o,t)?s:n).push(o);return{same:n,other:s}}function Gt(e,t){return`${e.runtime??t}:${e.id}`}function lf(e,t,n){if(tn(e,t)){const s=e.runtime;return!e.label&&e.id===gt?`${Bt({runtime:s,accountLabel:null,identityGate:!1})} (this computer's sign-in)`:Bt({runtime:s,accountLabel:e.label,identityGate:!0})}return e.label?e.label:e.id===gt&&e.usage.label?e.usage.label:e.usage.path?n(e.usage.path):e.id}function cf(e,t){const n=e.accounts.find(o=>o.id===e.recommendedId);if(n&&Ke(n))return Gt(n,t);const s=e.accounts.find(Ke);return s?Gt(s,t):null}function uf(e){return e.length===0?null:e.length===1?`${e[0]} is kept out, so it isn’t listed.`:`${`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`} are kept out, so they aren’t listed.`}function df(e,t){if(e&&t)return{subtitle:"Picks up in the same folder and branch, from the last checkpoint.",carries:"Carries over: files, branch, checkpoint, task",doesnt:"Doesn’t: the chat itself"};const n="Starts a new chat in the same folder, with a summary of this one.";return{subtitle:e?n:`${n} Sorted by most usage left.`,carries:"Carries over: the folder and a summary of this chat",doesnt:"Doesn’t: the chat itself"}}function mf(e){return e.carryOver===!1}function ff(e,t,n){return e?!0:(t==null?void 0:t.accounts.some(s=>tn(s,n)))??!1}function pf(e){return{id:at,runtime:e,label:Ns,color:ws,eligible:!0,reason:"paid from your DorkOS account",usage:{runtime:"claude-code",accountId:at,path:"",label:Ns,color:ws,subscriptionType:null,plan:null,credits:null,spend:null,windows:[],state:"unknown",limit:null,updatedAt:null}}}function Go(e,t){const n=be();return ut({queryKey:Gn.continueOptions(e),queryFn:()=>n.getContinueOptions(e),enabled:t,staleTime:0,retry:!1})}function hf(e){const t=be();return xt({mutationFn:n=>t.continueSession(e,n),retry:!1})}function gf(e){const t=be();return xt({mutationFn:()=>t.cancelAutoContinue(e),retry:!1})}const Gs="claude-code",xf="No other account can take this work right now.";function yf(e){return e instanceof Error&&e.message?e.message:"Couldn’t continue on that account. Try again."}function bf({row:e,value:t,name:n,status:s,selected:o}){const a=Ke(e);return r.jsxs("label",{"data-slot":"continue-account-row","data-eligible":e.eligible,className:W("flex min-h-11 min-w-0 items-center gap-1.5 rounded-lg border px-2.5 py-2 text-sm transition-colors duration-150","has-[:focus-visible]:ring-ring has-[:focus-visible]:ring-[3px]",o?"border-foreground ring-foreground ring-1 ring-inset":"border-border",a?"hover:bg-muted/50 cursor-pointer":"cursor-not-allowed",!e.eligible&&"opacity-60"),children:[r.jsx(yi,{value:t,disabled:!a,className:"sr-only"}),r.jsx("span",{"aria-hidden":!0,className:"inline-flex",children:r.jsx(Qn,{color:e.color,name:n})}),r.jsx("span",{className:"max-w-[55%] shrink-0 truncate font-medium",children:n}),e.badge==="recommended"&&r.jsx("span",{className:W(bi.success,"border-status-success-border text-2xs shrink-0 rounded-full border px-1.5"),children:"recommended"}),r.jsx("span",{className:"text-muted-foreground ml-auto min-w-0 pl-1 text-right text-xs",children:s})]})}function Ko({open:e,onOpenChange:t,sessionId:n,account:s,cancelAutoFirst:o=!1,now:a,onCloseAutoFocus:i}){var te;const c=St(),u=a??new Date(c),d=l.useId(),m=s.runtime??Gs,{accounts:p,nameFor:h}=Kn(),[,f]=jt(),g=gf(n),x=l.useRef(!1),{mutate:y,reset:b}=g;l.useEffect(()=>{if(!e){x.current=!1,b();return}!o||x.current||(x.current=!0,y())},[e,o,y,b]);const v=e&&(!o||g.isSuccess),j=Go(n,v),S=hf(n),[T,R]=l.useState(null),E=()=>{S.isPending||(R(null),S.reset(),t(!1))},I=$=>$?t(!0):E(),A=v?j.data:void 0,O=A==null?void 0:A.ranking,F=A&&!mf(A.plan)?[...A.ranking.accounts,...A.credits?[pf(m)]:[]]:[],N=F.some(Ke),k=T??(O?cf(O,m):null),C=F.find($=>Gt($,m)===k)??null,w=C!==null&&Ke(C),D=$=>lf($,m,h),{same:M,other:P}=af(F,m),H=df((A==null?void 0:A.advised)===!0,s.trackerItems.some($=>$.via==="this-chat")),G=s.accountId??((te=s.limit)==null?void 0:te.accountId)??null,V=(A==null?void 0:A.advised)===!0&&m===Gs&&G!==null?uf(p.filter($=>$.id&&$.id!==G&&!M.some(J=>J.id===$.id)).map($=>h($.path))):null,B=()=>{!C||!Ke(C)||S.mutate(tn(C,m)?{account:C.id,runtime:C.runtime}:{account:C.id},{onSuccess:$=>{E(),$.sessionId&&f($.sessionId)}})},L=$=>{const J=Gt($,m);return r.jsx(bf,{row:$,value:J,name:D($),status:of($,u),selected:J===k},J)},X=g.isError?g.error:j.isError&&v?j.error:S.isError?S.error:null,_=e&&!X&&(!v||j.isPending),q=!_&&A!==void 0;return r.jsx(ui,{open:e,onOpenChange:I,children:r.jsxs(di,{className:"max-h-[85vh] !min-h-0",desktopProps:{className:"sm:max-w-[380px]"},onCloseAutoFocus:i,"aria-labelledby":d,children:[r.jsxs(mi,{className:"shrink-0 text-left",children:[r.jsx(fi,{id:d,className:"text-left",children:"Continue on another account"}),r.jsx(pi,{className:"text-left",children:H.subtitle})]}),r.jsxs(hi,{className:"flex flex-col gap-3",children:[_&&r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsx(Cs,{className:"h-11 rounded-lg"}),r.jsx(Cs,{className:"h-11 rounded-lg"})]}),q&&(N?r.jsxs(gi,{"aria-labelledby":d,value:k??"",onValueChange:R,className:"min-w-0 grid-cols-1 gap-1.5",children:[M.map(L),P.length>0&&r.jsx("div",{className:"text-muted-foreground mt-2 text-xs font-semibold tracking-wide uppercase",children:"Other runtimes"}),P.map(L)]}):r.jsx("p",{className:"text-muted-foreground text-sm",children:xf})),q&&V&&r.jsx("p",{className:"text-muted-foreground text-xs",children:V}),q&&r.jsxs("ul",{className:"text-muted-foreground list-disc pl-4 text-xs",children:[r.jsx("li",{children:H.carries}),r.jsx("li",{children:H.doesnt})]}),X!==null&&r.jsx("p",{role:"alert",className:"text-destructive text-sm",children:yf(X)})]}),r.jsxs(xi,{className:"shrink-0",children:[r.jsx(ue,{variant:"outline",onClick:E,disabled:S.isPending,children:"Cancel"}),r.jsxs(ue,{onClick:B,disabled:!q||!N||!w||S.isPending,"aria-busy":S.isPending||void 0,children:[S.isPending&&r.jsx(Ue,{}),C&&q&&N?`Continue on ${D(C)}`:"Continue"]})]})]})})}const kf=1440*60*1e3,vf="Paused until you continue or the account resets",Sf="Paused until the task moves or the account resets",jf=new Set(["limited","handing-off","wait-only","all-accounts-out","model-limited"]);function wf(e){return jf.has(e)?"critical":"neutral"}function Qo(e){return e.carryOver===!1}function st(e,t){return e!==null&&Date.parse(e)<=t.getTime()}function rs(e){return`${e} should have reset by now.`}function Nf(e,t,n,s){if(st(n,s))return rs(e);const o=ki(t,n,s);return o==="out"?`${e} is out of usage.`:o.startsWith("back in ")?`${e} is out of usage · ${o}.`:`${e} is out of usage ${o.slice(4)}.`}function Vo(e){return e.plan.mode==="waiting"&&e.plan.resumeAt?e.plan.resumeAt:e.resetsAt}function Ks(e,t,n){if(t===null)return`Waiting for ${e}`;if(st(t,n))return rs(e);const s=Date.parse(t)-n.getTime();return s<kf?`Waiting for ${e} · back in ${vi(s)}`:`Waiting for ${e} · back ${Vn(t,n)}`}function Cf(e,t){return Math.max(0,Math.ceil((Date.parse(e)-t.getTime())/1e3))}const Tf=new Set(["continue-on","move-now","keep-going","resume","open-moved"]);function Rf(e,t){return(()=>{switch(e){case"limited":return[t.canPick&&"continue-on","wait"];case"handing-off":return["move-now",t.canPick&&"choose","wait"];case"model-limited":return[t.hasFallback&&"keep-going",t.canPick&&"continue-on","wait"];case"wait-only":case"all-accounts-out":return["wait"];case"reset-ready":return["resume"];case"moved":return["open-moved",!t.continuedHere&&"continue-here"];default:return[]}})().filter(s=>s!==!1)}const Ef=new Set(["limited","handing-off","wait-only","all-accounts-out","model-limited","waiting-reset"]),hn={canSubmit:!0,placeholder:null};function Af(e,t,n){if(!e)return hn;const s=Fr(e);if(s==="moved")return{canSubmit:t,placeholder:null};if(!Ef.has(s))return hn;const o=i=>i!==null&&!st(i,n);return o(Vo(e))||e.plan.mode==="auto"&&o(e.plan.fireAt)?{canSubmit:!1,placeholder:s==="handing-off"?Sf:vf}:hn}const _f=300*1e3;function Yo(e,t){const n=Date.parse(e)-Date.parse(t);return Number.isFinite(n)&&n>=0&&n<=_f}function Mf(e,t){let n=null;for(const s of e)Yo(s.since,t)&&(n===null||Date.parse(s.since)<Date.parse(n.since))&&(n=s);return n}function In(e,t){var n;return e?((n=t.find(s=>s.value===e))==null?void 0:n.displayName)??e:null}function If(e,t){return{from:In(e.modelFrom,t)??(e.scope==="model"?Lr(e.window,t):null),to:In(e.modelTo,t)}}function Xo(){const{accounts:e,nameFor:t,colorFor:n}=Kn(),s=Si("claude-code",{accountId:gt,path:null});return o=>{const a=ji({accountId:o,path:null,accounts:e,usage:o===gt?s:null,nameFor:t,colorFor:n});return{name:a.name??o,color:a.color}}}const Qs="claude-code",Of=new Set(["limited","handing-off","model-limited"]),Df=new Set(["limited","model-limited","all-accounts-out"]);function Pf(e){return(e==null?void 0:e.runsOn)==="own-sign-in"&&e.chosenBy==="user"}function $f(e){return e instanceof Error&&e.message?e.message:"Couldn’t do that. Try again."}function Ff(e,t){var G,V,B;const n=be(),s=Yn(),[,o]=jt(),a=wt(e,{fetchUsage:!1}),i=t??a,c=i.limit,u=c?Fr(c):null,d=i.runtime??Qs,m=i.visible,p=Xo(),h=d===Qs&&(c!=null&&c.accountId)?p(c.accountId).name:i.name,f=Bt({runtime:d,accountLabel:h,identityGate:m}),g=Xt({sessionId:e||void 0,runtime:d}).data??[],x=c?Qo(c.plan):!0,y=u!==null&&Of.has(u)&&!x,{isLoaded:b}=Kn(),{data:v}=Xn(),j=b&&v!==void 0,S=u==="model-limited",T=Go(e,y&&j&&(S?m:!m)),R=y&&(S?m&&(((G=T.data)==null?void 0:G.ranking.accounts.some(Ke))??!1):ff(m,(V=T.data)==null?void 0:V.ranking,d)),{continuedHere:E,continueHere:I}=po(e,(c==null?void 0:c.since)??null),{data:A}=wi(),O=u!==null&&Df.has(u)&&!x&&(c==null?void 0:c.accountId)!==at&&Ni(A,d)&&!Pf((B=A==null?void 0:A.defaults)==null?void 0:B[d]),F=(c==null?void 0:c.since)??null,N=`${F}:${u}`,[k,C]=l.useState(null),w=L=>C(L===null?null:{key:N,message:L}),D=L=>w($f(L)),M=xt({mutationFn:L=>n.waitForReset(e,L),retry:!1,onError:D}),P=xt({mutationFn:L=>n.continueSession(e,L),retry:!1,onError:D,onSuccess:L=>{L.sessionId&&L.sessionId!==e&&o(L.sessionId)}}),H=l.useRef(F);return l.useEffect(()=>{H.current!==null&&F===null&&s.invalidateQueries({queryKey:Gn.limitHistory(e)}),H.current=F},[F,e,s]),{account:i,limit:c,state:u,runtime:d,subject:f,identityGate:m,canPick:R,creditsOffered:O,nameOf:p,models:g,continuedHere:E,continueHere:I,wait:L=>{w(null),M.mutate(L===void 0?{}:{autoResume:L})},continueOn:L=>{w(null),P.mutate(L)},openSession:L=>o(L),pending:M.isPending||P.isPending,failure:(k==null?void 0:k.key)===N?k.message:null}}function gn({visible:e,spoken:t,spokenKey:n}){const[s,o]=l.useState({key:n,text:t});return s.key!==n&&o({key:n,text:t}),r.jsxs(r.Fragment,{children:[r.jsx("span",{"aria-hidden":!0,children:e}),r.jsx("span",{className:"sr-only",children:s.key===n?s.text:t})]})}function xn({account:e,showDot:t}){return r.jsxs(r.Fragment,{children:[t&&e.color&&r.jsx("span",{"aria-hidden":!0,className:"mr-1 inline-flex align-middle",children:r.jsx(Qn,{color:e.color,name:e.name,tooltip:!1})}),e.name]})}function Lf(e,t){switch(e){case"continue-on":return"Continue on another account…";case"move-now":return"Move now";case"choose":return"Choose account…";case"keep-going":return`Keep going on ${t}, same account`;case"resume":return"Continue";case"open-moved":return"Open it →";case"continue-here":return"Continue here anyway";case"wait":return"Wait for reset"}}function Uf({sessionId:e,onSend:t,account:n,now:s}){const o=Ff(e,n),a=Ur(),{limit:i,state:c,subject:u,identityGate:d}=o,m=St(c==="handing-off"?1e3:6e4),p=s??new Date(m),h=i?i.since:null,[f,g]=l.useState(null),x=o.canPick&&h!==null&&f===h,y=N=>g(N?h:null),b=l.useId();if(!i||!c)return null;const v=o.creditsOffered&&a!==null,j=i.plan,S=In(i.modelFallback,o.models),T=Rf(c,{canPick:o.canPick,hasFallback:S!==null,continuedHere:o.continuedHere}),R=`${c}:${i.since}:${u}`;let E,I=null,A=!1;switch(c){case"all-accounts-out":{E="All accounts are out.";const N=i.allOut;if(N!=null&&N.resetsAt){const k=o.nameOf(N.accountId);I=st(N.resetsAt,p)?rs(k.name):r.jsxs(r.Fragment,{children:["Soonest back: ",r.jsx(xn,{account:k,showDot:d}),","," ",Vn(N.resetsAt,p)]})}break}case"model-limited":E=`${Lr(i.window,o.models)} is out on ${u} for this week.`;break;case"waiting-reset":{const N=Vo(i);E=r.jsx(gn,{visible:Ks(u,N,p),spoken:Ks(u,N,p),spokenKey:`${R}:${st(N,p)}`});break}case"reset-ready":E=j.mode==="waiting"&&j.unconfirmed?`${u} should have reset by now.`:`${u} has reset.`;break;case"moved":{if(j.mode!=="continued")return null;const N=o.nameOf(j.accountId);E=r.jsxs(r.Fragment,{children:["This task continued on ",r.jsx(xn,{account:N,showDot:d}),"."]});break}default:{const N=Nf(u,i.window,i.resetsAt,p);if(E=r.jsx(gn,{visible:N,spoken:N,spokenKey:`${R}:${st(i.resetsAt,p)}`}),c==="handing-off"&&j.mode==="auto"){const k=o.nameOf(j.target),C=Cf(j.fireAt,p);A=C===0,I=r.jsx(gn,{visible:r.jsxs(r.Fragment,{children:["Moving this task to ",r.jsx(xn,{account:k,showDot:d}),A?"…":` in ${C}s…`]}),spoken:A?`Moving this task to ${k.name}.`:`Moving this task to ${k.name} in ${C} seconds.`,spokenKey:`${R}:${j.fireAt}:${k.name}:${A}`})}}}const O=N=>{switch(N){case"continue-on":case"choose":y(!0);return;case"move-now":j.mode==="auto"&&o.continueOn({account:j.target});return;case"keep-going":i.modelFallback&&o.continueOn({model:i.modelFallback});return;case"resume":t(Ci);return;case"open-moved":j.mode==="continued"&&o.openSession(j.sessionId);return;case"continue-here":o.continueHere();return;case"wait":o.wait();return}},F=c==="waiting-reset"&&j.mode==="waiting"&&!Qo(j);return r.jsxs(r.Fragment,{children:[r.jsxs(Yc,{variant:wf(c),role:"status",icon:null,"data-slot":"account-limit-banner","data-state":c,className:"mx-4 mb-2 rounded-lg border px-3 py-2",children:[r.jsxs("p",{children:[r.jsx("strong",{className:"font-semibold",children:E}),I&&r.jsxs(r.Fragment,{children:[" ",I]})]}),F&&r.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[r.jsx("input",{id:b,type:"checkbox",className:"size-3.5",checked:j.autoResume,disabled:o.pending,onChange:N=>o.wait(N.target.checked)}),r.jsx("label",{htmlFor:b,children:"Continue automatically when it resets"})]}),v&&a&&r.jsx("div",{className:"mt-1.5",children:a({runtime:o.runtime,origin:`limit:${e}`,intent:"keep-going",confirmAfterLink:{prompt:"Linked. Continue on DorkOS credits?",action:"Continue"},onChoose:()=>o.continueOn({account:at})})}),T.length>0&&r.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:T.map(N=>r.jsx(ue,{size:"sm",variant:Tf.has(N)&&!v?"default":N==="continue-here"?"ghost":"outline",className:"h-auto min-h-11 max-w-full py-1 whitespace-normal md:min-h-8",disabled:o.pending||N==="move-now"&&A,onClick:()=>O(N),children:Lf(N,S)},N))}),o.failure&&r.jsx("p",{role:"alert",className:"text-destructive mt-1.5",children:o.failure})]}),o.canPick&&r.jsx(Ko,{open:x,onOpenChange:y,sessionId:e,account:{runtime:o.runtime,accountId:o.account.accountId,limit:i,trackerItems:o.account.trackerItems},cancelAutoFirst:c==="handing-off",now:s})]})}function qf(e){const t=be();return ut({queryKey:Gn.limitHistory(e),queryFn:()=>t.getLimitHistory(e),enabled:e!=="",retry:!1})}const zf={moved:Ri,"resumed-reset":ft,"resumed-model":ft,"resumed-early":ft};function Bf({entry:e,now:t}){const n=St(),s=t??new Date(n),o=Xo(),a=Ti(e.runtime),i=Xt({runtime:e.runtime}).data??[],[,c]=jt(),u=e.runtime==="claude-code"&&e.accountId?o(e.accountId).name:null,d=Bt({runtime:e.runtime,accountLabel:u,identityGate:a}),m=`at ${Vn(e.resolvedAt,s)}`,p=zf[e.resolution];let h;switch(e.resolution){case"moved":{const f=e.toAccountId?o(e.toAccountId):null,g=f?r.jsxs(r.Fragment,{children:[a&&f.color&&r.jsx("span",{"aria-hidden":!0,className:"mr-0.5 inline-flex align-middle",children:r.jsx(Qn,{color:f.color,name:f.name,tooltip:!1})}),f.name]}):null;h=r.jsxs(r.Fragment,{children:[d," ran out · moved",g&&r.jsxs(r.Fragment,{children:[" to ",e.toSessionId?r.jsx("button",{type:"button",className:"hover:text-foreground focus-visible:ring-ring rounded-sm underline underline-offset-2 outline-none focus-visible:ring-2",onClick:()=>c(e.toSessionId),children:g}):g]})," ",m]});break}case"resumed-reset":h=`Resumed after reset ${m}`;break;case"resumed-model":{const{from:f,to:g}=If(e,i);h=g?`${f??d} ran out · continued on ${g} ${m}`:`${d} ran out · continued here ${m}`;break}case"resumed-early":h=`${d} ran out · continued here ${m}`;break}return r.jsxs("p",{"data-slot":"account-limit-marker","data-resolution":e.resolution,className:"text-muted-foreground text-2xs my-2 flex items-center gap-1.5",children:[r.jsx(p,{"aria-hidden":!0,className:"size-3 shrink-0"}),r.jsx("span",{className:"min-w-0",children:h})]})}function Wf({sessionId:e,at:t,fallback:n,now:s}){const{limit:o}=wt(e,{fetchUsage:!1}),a=qf(e),[i,c]=l.useState(null),u=o!==null&&(t===""||Yo(o.since,t));if(u&&((i==null?void 0:i.data)!==a.dataUpdatedAt||i.error!==a.errorUpdatedAt)&&c({data:a.dataUpdatedAt,error:a.errorUpdatedAt}),u||a.isPending)return null;const d=a.data&&t?Mf(a.data.entries,t):null;return d?r.jsx(Bf,{entry:d,now:s}):o===null&&i!==null&&a.dataUpdatedAt===i.data&&a.errorUpdatedAt===i.error?null:r.jsx(r.Fragment,{children:n})}function Hf(e){const{limit:t}=wt(e,{fetchUsage:!1}),{continuedHere:n}=po(e,(t==null?void 0:t.since)??null),s=St();return Af(t,n,new Date(s))}function Gf(e){return wt(e,{fetchUsage:!1}).limit!==null}const Jo="runtimes";function Kf({label:e}){const{open:t}=qr();return r.jsx("button",{type:"button",onClick:()=>t(Jo),className:"text-muted-foreground hover:text-foreground mt-2 block text-xs underline decoration-dotted underline-offset-2 transition-colors",children:e})}function Qf({runtime:e,sessionId:t,onRetry:n,onSigninComplete:s}){const[o,a]=l.useState(!1),i=Mu(e,{sessionId:t,onCompleted:()=>a((s==null?void 0:s())??!1)}),c=Iu(e);return i.isSuccess?r.jsxs("div",{className:"mt-3","data-testid":"auth-error-signin-success",children:[r.jsxs("p",{className:"text-status-success-fg flex items-center gap-2 text-sm",role:"status",children:[r.jsx(Kt,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),o?"Signed in. Sending your message again…":"Signed in."]}),!o&&n&&r.jsxs(ue,{size:"sm",onClick:n,className:"mt-2 gap-1.5",children:[r.jsx(yt,{className:"size-3"}),"Retry"]})]}):r.jsxs("div",{className:"mt-3","data-testid":"auth-error-signin",children:[r.jsx("p",{className:"text-muted-foreground mb-2 flex items-center gap-2 text-sm",role:"status",children:i.isPending&&r.jsxs(r.Fragment,{children:[r.jsx(Ue,{size:"xs",className:"shrink-0"}),c.signInPending]})}),i.isError&&r.jsx("p",{className:"text-destructive mb-2 text-sm",role:"alert",children:i.errorMessage}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsxs(ue,{size:"sm",onClick:i.login,disabled:i.isPending,className:"gap-1.5","data-testid":"auth-error-signin-button",children:[r.jsx(zr,{className:"size-3"}),i.isError?"Try again":c.signInLabel]}),n&&r.jsxs(ue,{variant:"outline",size:"sm",onClick:n,className:"gap-1.5",children:[r.jsx(yt,{className:"size-3"}),"Retry"]})]}),r.jsx(Kf,{label:"Use an API key instead"})]})}function Vs({onRetry:e}){return r.jsx("div",{className:"mt-3","data-testid":"auth-error-remote-guidance",children:r.jsx(Au,{...e?{onRetry:e}:{}})})}function Zo({onRetry:e}){const{open:t}=qr();return r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[r.jsxs(ue,{size:"sm",onClick:()=>t(Jo),className:"gap-1.5",children:[r.jsx(zr,{className:"size-3"}),"Fix sign-in"]}),e&&r.jsxs(ue,{variant:"outline",size:"sm",onClick:e,className:"gap-1.5",children:[r.jsx(yt,{className:"size-3"}),"Retry"]})]})}function Vf({runtime:e,sessionId:t,onRetry:n,renderOffer:s,lead:o,children:a}){const i=!jo(),c=Br(),u=ie(h=>h.setRetryAccount),d=Vt(e).label,m=s({runtime:e,origin:`auth-error:${t}`,note:`This makes new ${d} work on this computer run on your DorkOS credits.`,chosen:n?`New ${d} work on this computer now runs on your DorkOS credits. Sending your message again…`:`New ${d} work on this computer now runs on your DorkOS credits.`,...n?{confirmAfterLink:{prompt:"Linked. Send again on DorkOS credits?",action:"Send again"}}:{},onChoose:async()=>{await c.mutateAsync({runtime:e,useCredits:!0}),n&&(u({id:at,sessionId:t}),n())}}),p=h=>r.jsxs("section",{"aria-label":"Other ways",children:[r.jsx("p",{className:"text-muted-foreground text-2xs font-medium tracking-wide uppercase",children:"Other ways"}),h]});return o?r.jsxs("div",{className:"mt-3 space-y-3","data-testid":"auth-error-credits-first",children:[m,p(a),r.jsx(_u,{ollama:Ei(e)==="provider-picker",remote:i})]}):r.jsxs("div",{"data-testid":"auth-error-credits-other-way",children:[a,r.jsx("div",{className:"mt-3",children:p(m)})]})}function Yf({sessionId:e,onRetry:t,onSigninComplete:n}){var p;const{sessions:s,isLoading:o}=Un(),a=jo(),i=(p=s.find(h=>h.id===e))==null?void 0:p.runtime,c=Eu(i),u=Ur(),d=i!==void 0&&u!==null&&(c==="lead"||c==="other-way");if(!a&&!d)return r.jsx(Vs,{onRetry:t});if(o)return null;const m=a?!i||!Ai(i)?r.jsx(Zo,{onRetry:t}):r.jsx(Qf,{runtime:i,sessionId:e,onRetry:t,onSigninComplete:n}):r.jsx(Vs,{onRetry:t});return d&&i&&u?r.jsx(Vf,{runtime:i,sessionId:e,onRetry:t,renderOffer:u,lead:c==="lead",children:m}):m}function Xf({sessionId:e,onRetry:t,onSigninComplete:n}){return e?r.jsx(Yf,{sessionId:e,onRetry:t,onSigninComplete:n}):r.jsx(Zo,{onRetry:t})}const Jf="credits_unavailable",Zf="folder-sign-in";function ep({onRetry:e,sessionId:t,runtimeLabel:n,reason:s}){const o=ie(g=>g.setRetryAccount),a=_i(),i=Br(),c=Wr(),u=en(t),d=Jt(u??null);if(!e)return null;const m=tp(d),p=n?`your ${n}`:"your own",h=()=>{if(d!==void 0){if(m==="pick-for-send"){t&&o({id:gt,sessionId:t}),e();return}i.mutate({runtime:d.type,useCredits:!1},{onSuccess:()=>m==="new-conversation"?c(void 0,{runtime:d.type}):e()})}},f=()=>{t&&a.mutate(t,{onSuccess:({launch:g})=>{g!=null&&g.ok&&o({id:g.accountId,sessionId:t}),e()}})};return r.jsxs("div",{className:"mt-2 flex flex-col gap-2","data-testid":"credits-error-actions",children:[r.jsxs("div",{className:"flex flex-wrap gap-2",children:[r.jsxs(ue,{size:"sm",variant:"outline",onClick:e,className:"gap-1.5",children:[r.jsx(yt,{className:"size-3"}),"Retry"]}),t&&r.jsx(ue,{size:"sm",variant:"outline",onClick:h,disabled:d===void 0||i.isPending,children:m==="new-conversation"?`Start a new chat on ${p} sign-in`:`Use ${p} sign-in`}),t&&s===Zf&&r.jsx(ue,{size:"sm",variant:"outline",onClick:f,disabled:a.isPending,children:"Don’t use credits in this project"})]}),t&&m==="whole-runtime"&&r.jsxs("p",{className:"text-muted-foreground text-xs","data-testid":"credits-own-sign-in-reach",children:["This moves all ",n??"its"," chats to ",p," sign-in, not just this one."]}),a.error&&r.jsx("p",{className:"text-muted-foreground text-xs",role:"status",children:a.error.message}),i.isError&&r.jsx("p",{className:"text-muted-foreground text-xs",role:"status",children:"Couldn’t switch to your own sign-in. Try again in a moment."})]})}function tp(e){var t;return e===void 0||e.supportsAccounts?"pick-for-send":((t=e.credits)==null?void 0:t.scope)==="conversation"?"new-conversation":"whole-runtime"}function np({category:e,onChooseModel:t}){return t?r.jsxs(ue,{size:"sm",onClick:t,className:"mt-3 gap-1.5",children:[r.jsx(Hr,{className:"size-3"}),e==="runtime_update_required"?"Choose another model":"Choose model"]}):null}const sp="your agent",rp="agent",Ys={max_turns:{heading:"Turn limit reached",subtext:"The agent ran for its maximum number of turns.",retryable:!1},execution_error:{heading:"Agent stopped unexpectedly",subtext:"Something went wrong before it finished.",retryable:!0},budget_exceeded:{heading:"Cost limit reached",subtext:"This chat hit its spending limit.",retryable:!1},output_format_error:{heading:"Output format error",subtext:"The agent couldn’t produce the required output format.",retryable:!1},auth_error:{heading:"Sign in again",subtext:"Your login stopped working. Sign in again to continue.",retryable:!0},model_unavailable:{heading:"Model unavailable",subtext:"Choose another model from the model menu.",retryable:!1},runtime_update_required:{heading:"Codex update required",subtext:"Update DorkOS or your Codex install, then try again. Or choose another model.",retryable:!1}},op=new Set(["max_turns","budget_exceeded","output_format_error","auth_error"]);function ap(e){return`Sign in to ${e??sp} again`}function ip(e){return`Your ${e??rp} login stopped working. Sign in again to continue.`}const lp="rate_limit";function nn(e){const{code:t,at:n,sessionId:s,reason:o}=e;return t===Gr&&o?r.jsx(Io,{agentId:o}):t===lp&&s?r.jsx(Wf,{sessionId:s,at:n??"",fallback:r.jsx(Xs,{...e})}):r.jsx(Xs,{...e})}function Xs({message:e,category:t,details:n,onRetry:s,heading:o,subtext:a,runtimeLabel:i,sessionId:c,onSigninComplete:u,onChooseModel:d,code:m,reason:p}){const[h,f]=l.useState(!1),g=m===Jf,x=l.useMemo(()=>rf(e),[e]),y=(x==null?void 0:x.category)??t,b=(x==null?void 0:x.message)??e,v=x?n!=null&&n.includes(x.details??"")?n:[n,x.details].filter(Boolean).join(`
|
|
36
|
-
`):n,j=y==="auth_error",S=y?Ys[y]??Ys.execution_error:null,T=j?ap(i):y==="runtime_update_required"&&i?`${i} update required`:(y==="execution_error"||y==="model_unavailable")&&i?`${i} didn’t answer this turn`:S==null?void 0:S.heading,R=j?ip(i):S==null?void 0:S.subtext,E=g?"Couldn’t reach DorkOS credits":x?T??"Error":o??T??"Error",I=b.trim(),A=y!==void 0&&op.has(y),O=g?I:(x&&(a==null?void 0:a.trim())===e.trim()?void 0:a)??(A?R:I||R)??I,F=O.trim(),N=y==="execution_error"&&F===I,k=l.useMemo(()=>Mi(I),[I]),C=!I||I===F||I===E,w=!C&&(!A||k)?I:null,D=C||w!==null||v!=null&&v.includes(I)?v:[v,I].filter(Boolean).join(`
|
|
37
|
-
`),M=(S==null?void 0:S.retryable)??!!s;return r.jsx("div",{"data-testid":"error-message-block",className:W("my-2 rounded-lg border px-4 py-3","border-destructive/30 bg-destructive/5 text-foreground"),children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(Hn,{className:"text-destructive mt-0.5 size-4 shrink-0"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"text-sm font-medium",children:E}),r.jsx("p",{className:W("text-muted-foreground mt-0.5 wrap-anywhere whitespace-pre-wrap",N?"font-mono text-xs":"text-sm"),children:r.jsx(an,{text:O})}),w&&r.jsx("p",{className:"text-muted-foreground mt-1 text-sm wrap-anywhere whitespace-pre-wrap",children:r.jsx(an,{text:w})}),D&&r.jsxs("button",{type:"button",onClick:()=>f(!h),className:"text-muted-foreground hover:text-foreground mt-2 flex items-center gap-1 text-xs","aria-expanded":h,children:[r.jsx(Q.div,{animate:{rotate:h?0:-90},transition:Bn.fold,children:r.jsx(vt,{className:"size-3"})}),"Details"]}),r.jsx(me,{initial:!1,children:h&&D&&r.jsx(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"overflow-hidden",children:r.jsx("pre",{className:"bg-muted/50 mt-1 max-h-40 overflow-auto rounded p-2 text-xs whitespace-pre-wrap",children:r.jsx(an,{text:D})})})}),g&&r.jsx(ep,{onRetry:s,sessionId:c,runtimeLabel:i,reason:p}),j&&r.jsx(Xf,{sessionId:c,onRetry:s,onSigninComplete:u}),(y==="model_unavailable"||y==="runtime_update_required")&&r.jsx(np,{category:y,onChooseModel:d})]}),!j&&!g&&M&&s&&r.jsxs(ue,{variant:"outline",size:"sm",onClick:s,className:"shrink-0 gap-1.5",children:[r.jsx(yt,{className:"size-3"}),"Retry"]})]})})}const cp=8;function up({toolName:e,reasonType:t,reason:n,message:s,agentId:o}){const a=n||s,i=t==="classifier",c=t==="asyncAgent",u=o!==void 0?`Helper ${o.slice(0,cp)}`:c?"A background helper":null,m=u!==null?`${u} was blocked from using ${e}${i?" by auto mode":""}: ${a}`:i?`Blocked by auto mode: ${a}`:`Blocked: ${a}`;return r.jsxs("div",{"data-testid":"permission-denied-chip","data-reason-type":t,"data-agent-id":o,className:W("my-2 flex items-start gap-2 rounded-md border px-3 py-2","text-foreground border-amber-500/30 bg-amber-500/5"),children:[r.jsx(Ou,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-500"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"text-sm",children:m}),c?r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"text-muted-foreground mt-0.5 text-xs",children:"Background helpers can’t ask for approval, so this was blocked."}),r.jsx("p",{className:"text-muted-foreground mt-0.5 text-xs",children:"Do it yourself, or ask the agent to run it in the foreground."})]}):null,r.jsx("p",{className:"text-muted-foreground mt-0.5 font-mono text-xs",children:e})]})]})}const dp=50;function mp(e){return e.type==="tool_call"&&e.interactiveType==="approval"&&e.approvalOutcome!==void 0}function fp(e,t){return e.approvalOutcome!==t.approvalOutcome||(e.approvalReasonGiven??!1)!==(t.approvalReasonGiven??!1)||e.approvalResolvedAt===void 0||t.approvalResolvedAt===void 0?!1:Math.abs(e.approvalResolvedAt-t.approvalResolvedAt)<=dp}function pp(e){const t=new Map;let n=null;for(let s=0;s<e.length;s++){const o=e[s];if(!mp(o)){n=null;continue}if(n&&fp(n.part,o)){n.group.indices.push(s),t.set(s,n.group);continue}const a={leadIndex:s,indices:[s],outcome:o.approvalOutcome,reasonGiven:o.approvalReasonGiven??!1};t.set(s,a),n={group:a,part:o}}return t}function os(e){return e.type==="thinking"||e.type==="memory_recall"||e.type==="background_task"?!0:e.type==="tool_call"&&!e.interactiveType&&!e.ui&&!ns(e.toolName)&&!Wt(e.toolName)}function hp(e){let t=0;for(const n of e)(n.type==="background_task"||n.type==="tool_call"&&os(n))&&t++;return t}function ea(e){return e.some(os)}function gp(e){return e.questionOutcome!==void 0?e.questionOutcome==="answered":e.status!=="pending"}function xp(e){return e.status==="pending"?void 0:e.questionOutcome}function yp({message:e}){return r.jsx(tt,{"data-testid":"unreadable-entry-note",icon:r.jsx(Ii,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:e})})}function bp({title:e}){return r.jsxs("div",{"data-testid":"capability-approval-timed-out",className:W("my-2 flex items-start gap-2 rounded-md border px-3 py-2","text-foreground border-border bg-muted/40"),children:[r.jsx(ft,{"aria-hidden":"true",className:"text-muted-foreground mt-0.5 size-4 shrink-0"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"text-sm",children:"The agent stopped waiting for your answer."}),r.jsxs("p",{className:"text-muted-foreground mt-0.5 text-xs",children:["“",e,"” is still in Approvals. Answer it, then ask the agent to retry."]})]})]})}function On({testId:e,icon:t,children:n}){return r.jsxs("div",{"data-testid":e,className:W("my-2 flex items-start gap-2 rounded-md border px-3 py-2","text-foreground border-border bg-muted/40"),children:[t,r.jsx("div",{className:"min-w-0 flex-1",children:n})]})}function kp({part:e}){return e.outcome==="failed"?r.jsx(On,{testId:"mcp-signin-failed",icon:r.jsx(Hn,{"aria-hidden":"true",className:"text-status-warning-dot mt-0.5 size-4 shrink-0"}),children:r.jsxs("p",{className:"text-sm",children:["Sign-in to “",e.serverName,"” didn’t finish. Ask your agent to retry."]})}):r.jsx(On,{testId:"mcp-signin-receipt",icon:r.jsx(Kr,{"aria-hidden":"true",className:"text-status-success mt-0.5 size-4 shrink-0"}),children:r.jsxs("p",{className:"text-sm",children:["Connected to ",e.serverName,e.toolCount===void 0?"":` · ${e.toolCount} tool${e.toolCount===1?"":"s"}`,"."]})})}function vp({part:e}){const t=Du(e.agentId,e.serverName),{adopt:n}=t,s=e.outcome!==void 0;return l.useEffect(()=>{s||n({flowId:e.flowId,authorizeUrl:e.authorizeUrl,disclosure:e.disclosure})},[s,n,e.flowId,e.authorizeUrl,e.disclosure]),e.outcome!==void 0?r.jsx(kp,{part:e}):r.jsxs(On,{testId:"mcp-signin-card",icon:r.jsx(Oi,{"aria-hidden":"true",className:"text-muted-foreground mt-0.5 size-4 shrink-0"}),children:[r.jsxs("p",{className:"text-sm",children:["Sign in to ",e.serverName]}),r.jsx(Pu,{flow:t,serverName:e.serverName,failedActions:r.jsx(ue,{variant:"secondary",size:"sm",onClick:()=>t.start(),className:"focus-visible:ring-2",children:"Try again"})})]})}function Sp({fromName:e,toName:t}){return r.jsx(tt,{"data-testid":"model-substituted-row",icon:r.jsx(Hr,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsxs("span",{className:"text-muted-foreground",children:["DorkOS credits don’t cover ",e,", so this ran on ",t,". Switch in the model menu."]})})}const jp=60;function wp(e,t=jp){if(e.length<=t)return e;const n=t-1,s=Math.ceil(n/2);return`${e.slice(0,s)}…${e.slice(e.length-(n-s))}`}function Js({command:e}){return r.jsx("code",{title:e,className:"min-w-0 truncate font-mono text-xs",children:wp(e)||"A background command"})}function Zs({state:e,label:t,onStop:n}){return e==="failed"?r.jsx("span",{className:"text-status-warning-fg text-xs",role:"status",children:"Couldn’t stop it, and it may keep running after DorkOS quits."}):r.jsx(ue,{type:"button",variant:"outline",size:"xs",className:"h-11 w-full shrink-0 sm:h-6 sm:w-auto",disabled:e==="stopping",onClick:n,children:t})}function Np({sessionId:e,part:t}){const n=be(),[s,o]=l.useState({}),a=l.useCallback(async d=>{o(p=>({...p,[d]:"stopping"}));let m="failed";try{const{receipt:p}=await n.stopTask(e,d);Jn(p)&&(m="stopped")}catch{}o(p=>({...p,[d]:m}))},[e,n]),i=(d,m)=>{const p=s[d];return m??(p==="stopping"||p==="failed"?void 0:p)},c=t.tasks.filter(d=>!i(d.taskId,d.ended)),u=Di(t);if(c.length===0)return r.jsx("div",{id:u,"data-testid":"work-left-running-row",className:"text-muted-foreground py-1 text-xs",children:"Stopped. Everything has ended."});if(c.length===1){const d=c[0];return r.jsxs("div",{id:u,"data-testid":"work-left-running-row",className:"text-status-warning-fg py-1 text-xs",children:[r.jsx("p",{children:"Stopped. 1 command is still running:"}),r.jsxs("div",{className:"mt-1 flex flex-col gap-1.5 sm:flex-row sm:items-center sm:gap-2",children:[r.jsx(Js,{command:d.command}),r.jsx(Zs,{state:s[d.taskId],label:"Stop command",onStop:()=>void a(d.taskId)})]})]})}return r.jsxs("div",{id:u,"data-testid":"work-left-running-row",className:"text-status-warning-fg py-1 text-xs",children:[r.jsxs("p",{children:["Stopped. ",c.length," commands are still running."]}),r.jsx("ul",{className:"mt-1 flex flex-col gap-1.5",children:c.map(d=>r.jsxs("li",{className:"flex flex-col gap-1.5 sm:flex-row sm:items-center sm:gap-2",children:[r.jsx(Js,{command:d.command}),r.jsx(Zs,{state:s[d.taskId],label:"Stop",onStop:()=>void a(d.taskId)})]},d.taskId))})]})}const Cp={running:r.jsx(Ue,{size:"xs",className:"text-muted-foreground"}),success:r.jsx(Kt,{className:"text-muted-foreground size-(--size-icon-xs)"}),error:r.jsx(ot,{className:"text-destructive size-(--size-icon-xs)"}),cancelled:r.jsx(ot,{className:"text-muted-foreground size-(--size-icon-xs)"})};function Tp({hook:e}){const t=!!(e.stdout||e.stderr),[n,s]=l.useState(e.status==="error"),o=e.stderr||e.stdout;return r.jsxs("div",{children:[r.jsxs("button",{onClick:()=>t&&s(a=>!a),className:W("flex w-full items-center gap-1.5 py-0.5",!t&&"cursor-default"),"aria-expanded":t?n:void 0,disabled:!t,children:[Cp[e.status],r.jsx("span",{className:W("text-3xs font-mono",e.status==="error"?"text-destructive":"text-muted-foreground"),children:e.hookName}),e.status==="error"&&r.jsx("span",{className:"text-3xs text-destructive",children:"Error"}),e.exitCode!==void 0&&r.jsxs("span",{className:"text-3xs text-muted-foreground ml-auto",children:["exit ",e.exitCode]})]}),r.jsx(me,{initial:!1,children:n&&t&&o&&r.jsx(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"overflow-hidden",children:r.jsx("pre",{className:"text-muted-foreground max-h-32 overflow-y-auto py-1 text-xs whitespace-pre-wrap",children:o})})})]})}function Rp({toolCall:e,defaultExpanded:t=!1}){const[n,s]=l.useState(t),o=!!e.progressOutput;l.useEffect(()=>{o&&!n&&s(!0)},[o]);const a=e.hooks&&e.hooks.length>0?r.jsx("div",{className:"border-border/50 space-y-0.5 border-t px-3 py-1",children:e.hooks.map(u=>r.jsx(Tp,{hook:u},u.hookId))}):void 0,i=e.startedAt&&e.completedAt?e.completedAt-e.startedAt:void 0,c=Pi(e.toolName);return r.jsxs(Nt,{expanded:n,onToggle:()=>s(!n),dimmed:e.status==="complete",extraContent:a,"data-testid":"tool-call-card","data-tool-name":e.toolName,"data-status":e.status,header:r.jsxs(r.Fragment,{children:[Uo(e.status),c&&r.jsx("span",{className:"bg-muted text-muted-foreground text-3xs rounded px-1 py-0.5 font-medium",children:c}),r.jsx("span",{className:"text-3xs flex-1 text-left font-mono",children:kt(e.toolName,e.input)}),i!==void 0&&r.jsx("span",{className:"text-muted-foreground text-3xs tabular-nums",children:Fu(i)})]}),children:[e.status==="running"&&!e.input?r.jsxs("div",{className:"text-muted-foreground flex items-center gap-1.5 py-1 text-xs",children:[r.jsx(Ue,{size:"xs"}),r.jsx("span",{children:"Preparing…"})]}):e.input!==void 0&&e.input!==""?r.jsx($i,{toolName:e.toolName,input:e.input,isStreaming:e.status==="running"}):null,e.progressOutput&&!e.result&&r.jsx(Ir,{content:e.progressOutput,className:"mt-2 border-t pt-2"}),e.result&&r.jsx("div",{className:"mt-2 border-t pt-2",children:r.jsx(ho,{content:e.result,toolName:e.toolName,input:e.input})})]})}function Ep(e){if(e.startsWith("mcp__"))return e.split("__")[1]||void 0}function ta(e,t,n){const s=l.useRef(e),[o,a]=l.useState(!(t&&s.current==="complete"));return l.useEffect(()=>{if(t&&e==="complete"&&s.current!=="complete"&&!n){const i=setTimeout(()=>a(!1),Yt.TOOL_CALL_AUTO_HIDE_MS);return()=>clearTimeout(i)}},[e,t,n]),!t||n?!0:o}function Ap({part:e,autoHide:t,expandToolCalls:n}){var a;const s=((a=e.hooks)==null?void 0:a.some(i=>i.status==="error"))??!1,o=ta(e.status,t,s);return r.jsx(me,{children:o&&r.jsx(Q.div,{exit:{height:0,opacity:0},transition:{duration:.3,ease:[.4,0,.2,1]},className:"overflow-hidden",children:r.jsx(Rp,{toolCall:{toolCallId:e.toolCallId,toolName:e.toolName,input:e.input||"",result:e.result,progressOutput:e.progressOutput,status:e.status,hooks:e.hooks,startedAt:e.startedAt,completedAt:e.completedAt},defaultExpanded:n})},e.toolCallId)})}function yn({part:e,sessionId:t,autoHide:n,expandToolCalls:s}){const o=e.ui?Ep(e.toolName):void 0,a=r.jsx(Ap,{part:e,autoHide:n,expandToolCalls:s});return!e.ui||e.status!=="complete"||!o?a:r.jsxs("div",{className:"flex flex-col gap-2",children:[a,r.jsx(Rd,{sessionId:t,serverName:o,uri:e.ui.resourceUri})]})}function _p({part:e,autoHide:t,index:n}){const s=e.isStreaming?"running":"complete",o=ta(s,t,!1);return r.jsx(me,{children:o&&r.jsx(Q.div,{exit:{height:0,opacity:0},transition:{duration:.3,ease:[.4,0,.2,1]},className:"overflow-hidden",children:r.jsx(Wm,{text:e.text,isStreaming:e.isStreaming??!1,elapsedMs:e.elapsedMs})},`thinking-${n}`)})}const Mp=4,er=2;function Ip({children:e}){const[t,n]=l.useState(!1);if(e.length<=Mp||t)return r.jsx(r.Fragment,{children:e});const s=e.length-er;return r.jsxs(r.Fragment,{children:[e.slice(0,er),r.jsx(Nt,{expanded:!1,onToggle:()=>n(!0),ariaLabel:`Show ${s} more steps`,className:"border-l-muted-foreground/15",header:r.jsxs("span",{className:"text-3xs text-muted-foreground font-mono",children:["and ",s," more steps…"]}),children:r.jsx(r.Fragment,{})})]})}const Op=["z-30","-ml-2 z-20 opacity-70","-ml-2 z-10 opacity-45"];function Dp({chips:e,expanded:t,controls:n,onExpand:s}){const o=Le()??!1,a=e.slice(-3).reverse();return r.jsxs("button",{type:"button","data-testid":"chip-pile","aria-expanded":t,"aria-controls":n,"aria-label":`Show everything this turn touched (${e.length} more)`,onClick:s,className:W("flex shrink-0 items-center gap-1.5 rounded-full py-0.5 pr-1.5 pl-0.5","hover:bg-accent focus-visible:ring-ring outline-none focus-visible:ring-2"),children:[r.jsx(Q.span,{animate:o?{rotate:0,scale:1}:Jc,transition:Xc,className:"flex origin-bottom items-center",children:a.map((i,c)=>r.jsx("span",{"aria-hidden":"true",className:W("bg-card border-border text-3xs flex size-5 items-center justify-center rounded-full border leading-none",Op[c]),children:go[i.verb]},i.key))},e.length),r.jsx(Fi,{"data-testid":"chip-pile-count",count:e.length,tone:"neutral",solid:!0})]})}const Pp=new Set;function $p(){const[e,t]=l.useState(Pp),n=l.useCallback((o,a)=>a===!0&&!e.has(o),[e]),s=l.useCallback(o=>{t(a=>a.has(o)?a:new Set(a).add(o))},[]);return{shouldPulse:n,acknowledge:s}}function Fp(e){const t=[...e].sort((n,s)=>n.lastSeq-s.lastSeq);return{visible:t.slice(-Ps),absorbed:t.slice(0,Math.max(0,t.length-Ps))}}function Lp(e){return e.map(t=>{const n=[`${t.chips.length} ${xo[t.verb].toLowerCase()}`];return t.additions!==void 0&&n.push(`${t.additions} added`),t.deletions!==void 0&&n.push(`${t.deletions} removed`),n.join(", ")}).join("; ")}function Up({verb:e,count:t,additions:n,deletions:s}){return r.jsxs("span",{"data-testid":`chip-summary-${e}`,className:"inline-flex items-center gap-1",children:[r.jsx("span",{"aria-hidden":"true",children:go[e]}),r.jsx("span",{className:"sr-only",children:xo[e]}),r.jsx("span",{className:"tabular-nums",children:t}),(n!==void 0||s!==void 0)&&r.jsxs("span",{className:"tabular-nums",children:[n!==void 0&&r.jsxs("span",{className:"text-status-success-fg",children:["+",n]}),n!==void 0&&s!==void 0&&" ",s!==void 0&&r.jsxs("span",{className:"text-destructive",children:["−",s]})]})]})}function qp({parts:e,sessionId:t,turnActive:n=!1}){const s=Le()??!1,o=l.useMemo(()=>Zc(e),[e]),a=$p(),i=l.useId(),c=eu(l.useMemo(()=>tu(t,e),[t,e])),u=l.useCallback(f=>{if(f.pattern===!0)return;const g=ie.getState();if(f.kind==="url"){const x={type:"url",url:f.fullTarget};g.openCanvasDocument(x),Tn(g,"user",x);return}if(f.kind==="file"){const x={type:"file",sourcePath:f.fullTarget};g.openCanvasDocument(x),Tn(g,"user",x)}},[]),d=l.useMemo(()=>nu(o),[o]),m=n||o.some(f=>f.live),{visible:p,absorbed:h}=l.useMemo(()=>Fp(o),[o]);return o.length===0?null:r.jsxs("div",{"data-testid":"touch-chip-strip",className:"mt-2 flex flex-col gap-2",children:[r.jsx(me,{initial:!1,mode:"wait",children:m?r.jsxs(Q.div,{"data-testid":"chip-live-row",role:"group","aria-label":"Latest activity",exit:s?{opacity:0}:{opacity:0,height:0},transition:s?Os:Ds,className:"flex min-w-0 items-center gap-1.5 overflow-hidden",children:[h.length>0&&r.jsx(Dp,{chips:h,expanded:c.expanded,controls:i,onExpand:c.toggleExpanded}),r.jsx(me,{initial:!1,children:p.map(f=>r.jsx(su,{chip:f,onOpen:u,animated:!0,pulseUpgrade:a.shouldPulse(f.key,f.upgraded),onUpgradeSeen:a.acknowledge},f.key))})]},"live"):r.jsxs(Q.div,{"data-testid":"chip-summary-line",role:"group","aria-label":Lp(d),initial:{opacity:0},animate:{opacity:1},transition:s?Os:Ds,className:"text-muted-foreground flex flex-wrap items-center gap-x-1.5 gap-y-1 text-xs",children:[d.map((f,g)=>r.jsxs(l.Fragment,{children:[g>0&&r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx(Up,{verb:f.verb,count:f.chips.length,additions:f.additions,deletions:f.deletions})]},f.verb)),r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx("button",{type:"button","aria-expanded":c.expanded,"aria-controls":i,onClick:c.toggleExpanded,className:W("hover:text-foreground rounded-sm underline underline-offset-2","focus-visible:ring-ring outline-none focus-visible:ring-2"),children:c.expanded?"hide":"show all"})]},"settled")}),c.expanded&&r.jsx(ru,{id:i,chips:o,onOpen:u,verbFilter:c.verbFilter,onVerbFilterChange:c.setVerbFilter,order:c.order,onOrderChange:c.setOrder})]})}function tr(e){return e.type==="thinking"?!0:e.type==="tool_call"&&!e.interactiveType&&!ns(e.toolName)&&!Wt(e.toolName)}function as({message:e,show:t="all"}){const{sessionId:n,isStreaming:s,isLatestWidgetMessage:o,isFinalMessage:a,activeToolCallId:i,onToolRef:c,focusedOptionIndex:u,onToolDecided:d,onRetry:m,onSigninComplete:p,onChooseModel:h,inputZoneToolCallId:f,textEffect:g,runtimeLabel:x,allowsDenyReason:y}=ou(),b=ie(k=>k.expandToolCalls),v=ie(k=>k.autoHideToolCalls)&&t!=="work",j=e.parts,S=l.useMemo(()=>{const k=j??[];return t==="all"?k:k.filter(C=>os(C)===(t==="work"))},[j,t]),{sent:T}=yo(n),R=l.useCallback(k=>{c==null||c(k)},[c]),E=l.useCallback(k=>{c==null||c(k)},[c]),I=pp(S.map(k=>k.type==="tool_call"&&Wt(k.toolName)?{...k,interactiveType:void 0}:k));let A=-1;for(let k=S.length-1;k>=0;k--)if(S[k].type==="text"){A=k;break}function O(k,C){if(k.type==="text")return r.jsx("div",{className:"msg-prose",children:r.jsx(ts,{content:k.text,isStreaming:s&&C===A,textEffect:g,sessionId:n,isLatestWidgetMessage:o})},`text-${C}`);if(k.type==="background_task")return r.jsx(nf,{part:k},k.taskId);if(k.type==="error"&&k.code===Qr)return r.jsx(yp,{message:k.message},`unreadable-${C}`);if(k.type==="error")return r.jsx(nn,{message:k.message,category:k.category,details:k.details,code:k.code,reason:k.reason,at:e.timestamp,onRetry:a&&k.category!==void 0?m:void 0,onSigninComplete:p,onChooseModel:h,runtimeLabel:x,sessionId:n},`error-${C}`);if(k.type==="thinking")return r.jsx(_p,{part:k,autoHide:v,index:C},`thinking-${C}`);if(k.type==="elicitation")return r.jsx(ld,{sessionId:n,interactionId:k.interactionId,serverName:k.serverName,message:k.message,mode:k.mode,url:k.url,requestedSchema:k.requestedSchema,status:k.status,action:k.action},`elicitation-${k.interactionId}`);if(k.type==="memory_recall")return r.jsx(Hm,{mode:k.mode,memories:k.memories,isStreaming:k.isStreaming??!1},`memory-recall-${C}`);if(k.type==="permission_denied")return r.jsx(up,{toolName:k.toolName,reasonType:k.reasonType,reason:k.reason,message:k.message,agentId:k.agentId},`permission-denied-${k.toolCallId}-${C}`);if(k.type==="model_substituted")return r.jsx(Sp,{fromName:k.fromName,toName:k.toName},`model-substituted-${C}`);if(k.type==="work_left_running")return r.jsx(Np,{sessionId:n,part:k},`work-left-${C}`);if(k.type==="compact_boundary")return r.jsx(Ym,{trigger:k.trigger,preTokens:k.preTokens,postTokens:k.postTokens,failed:k.failed,error:k.error,requestedBy:k.requestedBy,contextPercent:k.contextPercent},`compact-boundary-${C}`);if(k.type==="capability_approval")return k.outcome==="timeout"?r.jsx(bp,{title:Li(k.approval)},`capability-approval-${k.approval.approvalId}`):r.jsx(Ui,{approval:k.approval},`capability-approval-${k.approval.approvalId}`);if(k.type==="mcp_signin")return r.jsx(vp,{part:k},`mcp-signin-${k.agentId}-${k.flowId}`);if(k.type==="image")return r.jsx(Xm,{part:k},`image-${k.attachmentId}-${C}`);if(k.type!=="tool_call")return null;const w=k;if(w.interactiveType==="approval"&&w.status==="pending"){if(w.toolCallId===f)return r.jsx(Bs,{type:"approval",toolName:w.toolName,toolInput:w.input},w.toolCallId);const M=w.toolCallId===i;return r.jsx(Vr,{ref:M?R:void 0,sessionId:n,toolCallId:w.toolCallId,toolName:w.toolName,input:w.input||"",timeoutMs:w.timeoutMs,approvalStartedAt:w.approvalStartedAt,approvalRemainingMs:w.approvalRemainingMs,approvalParked:w.approvalParked,approvalTitle:w.approvalTitle,approvalDisplayName:w.approvalDisplayName,approvalDescription:w.approvalDescription,approvalBlockedPath:w.approvalBlockedPath,approvalDecisionReason:w.approvalDecisionReason,approvalHasSuggestions:w.approvalHasSuggestions,approvalAlwaysAllowScope:w.approvalAlwaysAllowScope,isActive:M,onDecided:d?()=>d(w.toolCallId):void 0,allowsDenyReason:y},w.toolCallId)}const D=I.get(C);if(D){if(D.leadIndex!==C)return null;const M=D.indices.map(P=>S[P]).filter(P=>P.type==="tool_call");return r.jsx(gd,{outcome:D.outcome,reasonGiven:D.reasonGiven,members:M,lead:w,children:M.map(P=>r.jsx(yn,{part:P,sessionId:n,autoHide:v,expandToolCalls:b},P.toolCallId))},`approval-receipt-${w.toolCallId}`)}if(w.interactiveType==="question"){if(w.toolCallId===f)return r.jsx(Bs,{type:"question",toolName:w.toolName,toolInput:w.input},w.toolCallId);const M=w.toolCallId===i;return r.jsx(Yr,{ref:M?E:void 0,sessionId:n,toolCallId:w.toolCallId,questions:w.questions??[],answers:w.answers??(gp(w)?{}:void 0),outcome:xp(w),result:w.result,isActive:M,focusedOptionIndex:M?u:-1,onDecided:d?P=>d(w.toolCallId,P):void 0},w.toolCallId)}return Wt(w.toolName)?r.jsx(Pm,{part:w,sent:T,...e.timestamp?{at:e.timestamp}:{},...n?{sessionId:n}:{}},w.toolCallId):ns(w.toolName)?r.jsx(bd,{sessionId:n,input:w.input,result:w.result,fallback:r.jsx(yn,{part:w,sessionId:n,autoHide:v,expandToolCalls:b})},w.toolCallId):r.jsx(yn,{part:w,sessionId:n,autoHide:v,expandToolCalls:b},w.toolCallId)}const F=[];let N=[];for(let k=0;k<S.length;k++){const C=S[k];tr(C)?N.push(k):(N.length>0&&(F.push(N.length===1?{type:"single",index:N[0]}:{type:"run",indices:[...N]}),N=[]),F.push({type:"single",index:k}))}return N.length>0&&F.push(N.length===1?{type:"single",index:N[0]}:{type:"run",indices:[...N]}),r.jsxs(r.Fragment,{children:[F.map(k=>{if(k.type==="single"){const w=S[k.index];return tr(w)?r.jsx("div",{className:"my-3",children:O(w,k.index)},`spacer-${k.index}`):O(w,k.index)}const C=k.indices.map(w=>O(S[w],w));return r.jsx("div",{className:"my-3",children:t==="work"?C:r.jsx(Ip,{children:C})},`run-${k.indices[0]}`)}),t==="all"&&r.jsx(qp,{parts:S,sessionId:n,turnActive:e._streaming===!0})]})}const zp=/^Please read the following uploaded file\(s\):\n((?:- .+\n)+)\n?/,Bp=/^[a-f0-9]{8}-/,Wp=new Set(["png","jpg","jpeg","gif","webp","svg"]);function Hp(e){const t=e.match(zp);if(!t)return{files:[],textContent:e};const s=t[1].split(`
|
|
38
|
-
`).filter(a=>a.startsWith("- ")).map(a=>{var m;const i=a.slice(2).trim(),u=(i.split("/").pop()??i).replace(Bp,""),d=((m=u.split(".").pop())==null?void 0:m.toLowerCase())??"";return{path:i,displayName:u,isImage:Wp.has(d)}}),o=e.slice(t[0].length).trim();return{files:s,textContent:o}}function Gp(e){var n;switch(((n=e.split(".").pop())==null?void 0:n.toLowerCase())??""){case"txt":case"md":case"log":return Ru;case"ts":case"tsx":case"js":case"jsx":case"json":case"py":case"rs":case"go":return Cu;case"csv":case"xls":case"xlsx":return Wu;case"png":case"jpg":case"jpeg":case"gif":case"webp":case"svg":return Bu;default:return So}}function Kp({files:e}){const t=ie(n=>n.selectedCwd);return e.length===0?null:r.jsx("div",{className:"flex flex-wrap gap-1.5 pb-1.5",children:e.map(n=>{const s=n.path.split("/").pop()??n.path;if(n.isImage){const a=`/api/uploads/${encodeURIComponent(s)}?cwd=${encodeURIComponent(t??"")}`;return r.jsx(Q.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.15},children:r.jsx(Pr,{image:{src:a,alt:n.displayName,downloadName:n.displayName},className:"block rounded-lg",children:r.jsx("img",{src:a,alt:n.displayName,loading:"lazy",className:"border-border/50 max-h-[120px] max-w-[200px] rounded-lg border object-contain"})})},n.path)}const o=Gp(n.displayName);return r.jsxs(Q.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.15},className:"bg-muted flex items-center gap-1 rounded-md px-2 py-1 text-xs",children:[r.jsx(o,{className:"text-muted-foreground size-3 shrink-0"}),r.jsx("span",{className:"max-w-40 truncate",children:n.displayName})]},n.path)})})}function Qp({message:e}){var u;const t=(u=au())==null?void 0:u.sessionId,[n,s]=l.useState(!1),[o,a]=l.useState(!1),i=l.useMemo(()=>Hp(e.content),[e.content]),c=l.useMemo(()=>Md(e.content),[e.content]);if(c)return r.jsx(Ad,{action:c});if(e.chatMessages&&e.chatMessages.length>0)return r.jsx(Am,{stamps:e.chatMessages,...t?{sessionId:t}:{}});if(e.promptSource&&e.promptSource.kind!=="channel")return r.jsxs("div",{"data-testid":"prompt-source-note",children:[r.jsxs("button",{type:"button","aria-expanded":o,onClick:()=>a(!o),className:"text-muted-foreground flex items-center gap-1 text-xs",children:[r.jsx(zt,{className:W("size-3 transition-transform duration-200",o&&"rotate-90")}),r.jsx("span",{children:o?"Hide message":"Show message"})]}),r.jsx("div",{className:W(o?"text-muted-foreground mt-2 text-xs break-words whitespace-pre-wrap":"sr-only"),children:e.content})]});if(e.messageType==="command")return r.jsx("div",{className:"text-msg-command-fg font-mono text-sm break-words",children:e.content});if(e.messageType==="local_command_output")return r.jsx(ho,{content:e.content,toolName:""});if(e.messageType==="compaction"){const d=Qm(e.compactMetadata),m=e.content.trim(),p=r.jsx("div",{className:"bg-border/40 h-px flex-1"});return m.length===0?r.jsxs("div",{"data-testid":"compaction-row",className:"text-msg-compaction-fg flex w-full items-center gap-2 text-xs",children:[p,r.jsx("span",{children:d}),p]}):r.jsxs("div",{className:"w-full","data-testid":"compaction-row",children:[r.jsxs("button",{onClick:()=>s(!n),className:"text-msg-compaction-fg flex w-full items-center gap-2 text-xs",children:[p,r.jsx(zt,{className:W("size-3 transition-transform duration-200",n&&"rotate-90")}),r.jsx("span",{children:d}),p]}),n&&r.jsx("div",{className:"text-msg-compaction-fg mt-2 text-xs whitespace-pre-wrap",children:e.content})]})}return r.jsxs("div",{children:[i.files.length>0&&r.jsx(Kp,{files:i.files}),i.textContent&&r.jsx("div",{className:"max-w-[var(--msg-content-max-width)] break-words whitespace-pre-wrap",children:i.textContent})]})}function Vp({tasks:e,isCollapsed:t,onToggleCollapse:n}){const s=e.length,o=e.filter(c=>c.status==="completed").length,a=o===s&&s>0,i=s>0?o/s*100:0;return r.jsxs("button",{onClick:n,className:"text-muted-foreground hover:text-foreground flex w-full items-center gap-2 text-xs",children:[t?r.jsx(zt,{className:"size-(--size-icon-xs) shrink-0"}):r.jsx(vt,{className:"size-(--size-icon-xs) shrink-0"}),r.jsx("div",{className:"bg-muted h-0.5 flex-1 overflow-hidden rounded-full",children:r.jsx("div",{"data-slot":"progress-fill",className:`h-full rounded-full transition-[width,background-color] duration-300 ease-out ${a?"bg-green-500":"bg-blue-500"}`,style:{width:`${i}%`}})}),r.jsxs("span",{className:"shrink-0 tabular-nums",children:[o,"/",s," ",s===1?"task":"tasks"]})]})}function Yp({activeForm:e,isCollapsed:t}){return r.jsx(me,{children:e&&!t&&r.jsxs(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"mb-1 flex items-center gap-2 text-xs text-blue-400",children:[r.jsx(Ue,{size:"xs",className:"shrink-0"}),r.jsx("span",{className:"truncate",children:e})]})})}const Xp={in_progress:"",pending:"waiting ",completed:"done "};function nr({tasks:e,onScrollToTask:t}){return r.jsx(r.Fragment,{children:e.map((n,s)=>r.jsxs("span",{children:[r.jsx("button",{onClick:o=>{o.stopPropagation(),t(n.id)},className:"hover:text-foreground underline decoration-dotted",children:n.subject}),s<e.length-1&&", "]},n.id))})}function Jp({task:e,taskMap:t,statusSince:n,onScrollToTask:s}){var d,m;const o=Ao(n),a=Xp[e.status]??"",i=((d=e.blockedBy)==null?void 0:d.map(p=>t.get(p)).filter(p=>p!=null))??[],c=((m=e.blocks)==null?void 0:m.map(p=>t.get(p)).filter(p=>p!=null))??[],u=[];return n!==null&&u.push(r.jsxs("span",{children:[a,o.formatted]},"time")),e.owner&&u.push(r.jsx("span",{children:e.owner},"owner")),i.length>0&&u.push(r.jsxs("span",{className:"inline-flex items-center gap-1",children:["← ",r.jsx(nr,{tasks:i,onScrollToTask:s})]},"blocked-by")),c.length>0&&u.push(r.jsxs("span",{className:"inline-flex items-center gap-1",children:["→ ",r.jsx(nr,{tasks:c,onScrollToTask:s})]},"blocks")),r.jsxs(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"mt-0.5 ml-6 space-y-1",children:[e.description&&r.jsx("p",{className:"text-muted-foreground text-xs whitespace-pre-wrap",children:e.description}),u.length>0&&r.jsx("div",{className:"text-muted-foreground text-2xs flex flex-wrap items-center gap-1",children:u.map((p,h)=>r.jsxs("span",{className:"flex items-center gap-1",children:[h>0&&r.jsx("span",{className:"text-muted-foreground/50",children:"·"}),p]},h))})]})}const sr={in_progress:r.jsx(Ue,{size:"xs",className:"text-status-info shrink-0"}),pending:r.jsx(qi,{className:"text-muted-foreground size-(--size-icon-xs) shrink-0"}),completed:r.jsx(Kr,{className:"text-status-success size-(--size-icon-xs) shrink-0"})};function Zp({task:e,isBlocked:t,isExpanded:n,onToggleExpand:s,onHover:o,isHighlightedAsDep:a,isHighlightedAsDependent:i,taskMap:c,statusSince:u,isCelebrating:d,onCelebrationComplete:m,onScrollToTask:p}){const h=f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),s())};return r.jsxs(Q.li,{"data-task-id":e.id,children:[r.jsxs("div",{role:"button",tabIndex:0,"aria-expanded":n,"data-task-id":e.id,onClick:s,onKeyDown:h,onMouseEnter:()=>o(e.id),onMouseLeave:()=>o(null),className:W("hover:bg-muted/40 focus-visible:bg-muted/40 relative flex items-center gap-2 rounded py-0.5 text-xs transition-colors",e.status==="completed"&&"text-muted-foreground/50 line-through",e.status==="in_progress"&&"text-foreground font-medium",e.status==="pending"&&!t&&"text-muted-foreground",e.status==="pending"&&t&&"text-muted-foreground/50",a&&"border-l-2 border-blue-400 pl-1.5",i&&"border-l-2 border-amber-400 pl-1.5",!a&&!i&&"border-l-2 border-transparent pl-1.5"),children:[d&&r.jsx(Q.div,{"aria-hidden":"true",className:"absolute inset-0 rounded",initial:{backgroundPosition:"-200% 0"},animate:{backgroundPosition:"200% 0"},transition:{duration:.4,ease:"easeOut"},style:{backgroundImage:"linear-gradient(90deg, transparent 0%, rgba(255,215,0,0.2) 50%, transparent 100%)",backgroundSize:"200% 100%"}}),d?r.jsx(Q.span,{initial:{scale:1},animate:{scale:[1,1.4,1]},transition:{type:"spring",stiffness:400,damping:10},onAnimationComplete:()=>m==null?void 0:m(),children:sr[e.status]}):sr[e.status],r.jsx("span",{className:"truncate",children:e.subject})]}),r.jsx(me,{children:n&&r.jsx(Jp,{task:e,taskMap:c,statusSince:u,onScrollToTask:p})})]})}function eh(e,t){var n;return(n=e.blockedBy)!=null&&n.length?e.blockedBy.some(s=>{const o=t.get(s);return o&&o.status!=="completed"}):!1}const th=10,nh="max-h-[30svh] sm:max-h-[40svh]";function sh({tasks:e,taskMap:t,activeForm:n,isCollapsed:s,onToggleCollapse:o,celebratingTaskId:a,onCelebrationComplete:i,statusTimestamps:c}){const[u,d]=l.useState(null),[m,p]=l.useState(null),h=l.useCallback(y=>{d(b=>b===y?null:y)},[]),f=l.useCallback(y=>{const b=document.querySelector(`[data-task-id="${y}"]`);b&&(b.scrollIntoView({behavior:"smooth",block:"nearest"}),b.classList.add("bg-blue-500/10"),setTimeout(()=>b.classList.remove("bg-blue-500/10"),1e3))},[]);if(e.length===0)return null;const g=e.slice(0,th),x=m?t.get(m):null;return r.jsxs("div",{className:"border-t px-4 py-2",children:[r.jsx(Yp,{activeForm:n,isCollapsed:s}),r.jsx(Vp,{tasks:e,isCollapsed:s,onToggleCollapse:o}),r.jsx(me,{children:!s&&r.jsx(Q.ul,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:W("mt-1 space-y-0.5 overflow-y-auto",nh),children:g.map(y=>{var R,E;const b=y.id===a&&y.status==="completed",v=eh(y,t),j=c.get(y.id),S=((R=x==null?void 0:x.blockedBy)==null?void 0:R.includes(y.id))??!1,T=((E=x==null?void 0:x.blocks)==null?void 0:E.includes(y.id))??!1;return r.jsx(Zp,{task:y,isBlocked:v,isExpanded:u===y.id,onToggleExpand:()=>h(y.id),onHover:p,isHighlightedAsDep:S,isHighlightedAsDependent:T,taskMap:t,statusSince:(j==null?void 0:j.since)??null,isCelebrating:b,onCelebrationComplete:i,onScrollToTask:f},y.id)})})})]})}function rh({color:e}){const t=[{bx:"-8px",by:"-10px",delay:"0s"},{bx:"8px",by:"-8px",delay:"0.03s"},{bx:"-6px",by:"6px",delay:"0.06s"},{bx:"10px",by:"4px",delay:"0.09s"},{bx:"0px",by:"-12px",delay:"0.04s"},{bx:"-10px",by:"0px",delay:"0.07s"},{bx:"6px",by:"10px",delay:"0.05s"},{bx:"-4px",by:"-6px",delay:"0.08s"}];return r.jsx("div",{className:"pointer-events-none absolute inset-0",children:t.map((n,s)=>r.jsx("span",{className:"absolute top-1/2 left-1/2 size-[3px] rounded-full",style:{backgroundColor:e,"--bx":n.bx,"--by":n.by,animation:`burst-particle 0.5s ease-out ${n.delay} forwards`}},s))})}const oh=350;function ah({status:e,color:t}){return r.jsxs("svg",{className:"check-appear h-6 w-[22px]",viewBox:"0 0 22 24","data-status":e,children:[r.jsx("circle",{cx:"11",cy:"12",r:"7",fill:"none",stroke:t,strokeWidth:"1.5",opacity:"0.3"}),e==="error"&&r.jsxs(r.Fragment,{children:[r.jsx("line",{x1:"8",y1:"9",x2:"14",y2:"15",stroke:t,strokeWidth:"2",strokeLinecap:"round"}),r.jsx("line",{x1:"14",y1:"9",x2:"8",y2:"15",stroke:t,strokeWidth:"2",strokeLinecap:"round"})]}),e==="untracked"&&r.jsx("line",{x1:"8",y1:"12",x2:"14",y2:"12",stroke:t,strokeWidth:"2",strokeLinecap:"round",opacity:"0.5"}),e!=="error"&&e!=="untracked"&&r.jsx("polyline",{points:"7,12 10,15 15,9",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function ih({agent:e,index:t}){const n=l.useMemo(()=>({animationDelay:`${t*.09}s`}),[t]),[s,o]=l.useState(e.status==="running"?"running":"done"),a=l.useRef(e.status),i=l.useRef(null);return l.useEffect(()=>{const c=a.current;if(a.current=e.status,c==="running"&&e.status!=="running"){o("celebrating"),i.current=setTimeout(()=>o("done"),oh);return}c!=="running"&&e.status==="running"&&(i.current&&clearTimeout(i.current),i.current=null,o("running"))},[e.status]),l.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]),s==="done"?r.jsx("div",{className:"relative inline-flex",children:r.jsx(ah,{status:e.status,color:e.color})}):r.jsxs("div",{className:"group relative inline-flex",children:[r.jsx("svg",{className:"h-6 w-[22px] shrink-0",style:{"--c":e.color},viewBox:"0 0 22 24","aria-label":e.description,children:r.jsxs("g",{className:"r-all",style:n,children:[r.jsx("circle",{cx:"11",cy:"4.5",r:"2.8",fill:"var(--c)"}),r.jsx("circle",{cx:"12.3",cy:"3.7",r:"0.6",fill:"hsl(0 0% 100% / 0.7)"}),r.jsx("ellipse",{cx:"11",cy:"10.5",rx:"2.5",ry:"3.5",fill:"var(--c)"}),r.jsxs("g",{className:"r-rua",style:n,children:[r.jsx("line",{x1:"12",y1:"9",x2:"14",y2:"11",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("g",{className:"r-rfa",style:n,children:r.jsx("line",{x1:"14",y1:"11",x2:"14.5",y2:"13",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"})})]}),r.jsxs("g",{className:"r-lua",style:n,children:[r.jsx("line",{x1:"10",y1:"9",x2:"8",y2:"11",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("g",{className:"r-lfa",style:n,children:r.jsx("line",{x1:"8",y1:"11",x2:"7.5",y2:"13",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"})})]}),r.jsxs("g",{className:"r-rt",style:n,children:[r.jsx("line",{x1:"11",y1:"14",x2:"13",y2:"17",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("g",{className:"r-rs",style:n,children:r.jsx("line",{x1:"13",y1:"17",x2:"13.5",y2:"21",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"})})]}),r.jsxs("g",{className:"r-lt",style:n,children:[r.jsx("line",{x1:"11",y1:"14",x2:"9",y2:"17",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("g",{className:"r-ls",style:n,children:r.jsx("line",{x1:"9",y1:"17",x2:"8.5",y2:"21",stroke:"var(--c)",strokeWidth:"1.8",strokeLinecap:"round"})})]})]})}),s==="celebrating"&&r.jsx(rh,{color:e.color}),s==="running"&&r.jsxs("div",{"data-testid":"agent-runner-tooltip",className:W("pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 hidden","-translate-x-1/2 translate-y-1 opacity-0 transition-[opacity,translate] duration-150","group-hover:translate-y-0 group-hover:opacity-100","border-border bg-popover z-10 rounded-lg border px-3 py-2 whitespace-nowrap","text-foreground text-2xs shadow-lg md:block"),children:[r.jsxs("div",{className:"mb-0.5 flex items-center gap-1.5 font-semibold",children:[r.jsx("div",{className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:e.color}}),e.description]}),r.jsxs("div",{className:"text-muted-foreground text-3xs font-mono",children:[e.toolUses??0," tool calls · ",Math.round((e.durationMs??0)/1e3),"s"]}),e.lastToolName&&r.jsxs("div",{className:"text-muted-foreground/60 text-3xs mt-0.5 font-mono",children:["Last: ",e.lastToolName]}),r.jsx("div",{className:"border-t-border absolute top-full left-1/2 -translate-x-1/2 border-5 border-transparent"})]})]})}function lh({bashTasks:e}){const t=Le(),n=e.filter(o=>o.taskType==="bash"),s=n.length;return s===0?null:r.jsxs("div",{role:"status","aria-live":"polite","aria-label":`${s} bash task${s!==1?"s":""} running`,className:"flex items-center gap-1.5",children:[r.jsx(me,{mode:"popLayout",children:n.map(o=>r.jsxs(Q.div,{initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},exit:{scale:0,opacity:0},transition:{duration:.25},className:"relative flex size-3 items-center justify-center",children:[o.status==="running"&&!t&&r.jsx("span",{className:"task-dot-tasks absolute inset-0 rounded-full opacity-40",style:{backgroundColor:o.color,animation:"task-dot-tasks 2s ease-in-out infinite"}}),r.jsx("span",{className:"relative size-1.5 rounded-full",style:{backgroundColor:o.color}})]},o.taskId))}),r.jsxs("span",{className:"text-muted-foreground text-xs whitespace-nowrap",children:[s," task",s!==1?"s":""]})]})}const ch=3e3;function uh({taskType:e,onConfirm:t}){const[n,s]=l.useState(!1),o=l.useRef(null);l.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),l.useEffect(()=>{if(n)return o.current=setTimeout(()=>{s(!1)},ch),()=>{o.current&&clearTimeout(o.current)}},[n]);const a=l.useCallback(()=>{if(e==="bash"){t();return}n?(o.current&&clearTimeout(o.current),s(!1),t()):s(!0)},[e,n,t]),i=l.useCallback(c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),a())},[a]);return r.jsx("button",{onClick:a,onKeyDown:i,className:W("flex shrink-0 items-center justify-center rounded transition-colors duration-150","focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-1",n?"bg-destructive/5 text-destructive hover:bg-destructive/10 text-3xs px-1.5 py-0.5 font-medium":"text-muted-foreground/40 hover:text-destructive size-4"),"aria-label":n?"Press again to stop task":"Stop task",tabIndex:0,children:n?"Stop?":r.jsx(ot,{className:"size-3"})})}function rr({task:e,onStop:t}){const n=e.taskType==="agent"?e.description??"Background agent":e.command??"Background task",s=e.durationMs?Math.round(e.durationMs/1e3):0,o=e.status==="running";return r.jsxs("div",{className:W("flex items-center gap-2 rounded-md px-2 py-1 text-xs",o?"bg-muted":"bg-muted/50 opacity-60"),children:[r.jsx("span",{className:"size-2 shrink-0 rounded-full",style:{backgroundColor:e.color}}),r.jsx("span",{className:"text-muted-foreground/60 text-3xs shrink-0 tracking-wider uppercase",children:e.taskType}),r.jsx("span",{className:"text-foreground min-w-0 flex-1 truncate",children:n}),e.taskType==="agent"&&e.toolUses!==void 0&&e.toolUses>0&&r.jsxs("span",{className:"text-muted-foreground/60 text-3xs shrink-0 font-mono",children:[e.toolUses," tools"]}),e.taskType==="agent"&&e.lastToolName&&r.jsxs("span",{className:"text-muted-foreground/60 text-3xs hidden max-w-24 shrink-0 truncate font-mono md:inline",children:["Last: ",e.lastToolName]}),s>0&&r.jsxs("span",{className:"text-muted-foreground/60 text-3xs shrink-0 font-mono",children:[s,"s"]}),o&&r.jsx(uh,{taskType:e.taskType,onConfirm:t})]})}function dh({tasks:e,ambientTasks:t=[],onStopTask:n}){return r.jsx(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"border-border overflow-hidden border-t px-2 py-1.5",children:r.jsxs("div",{className:"flex flex-col gap-1",children:[e.map(s=>r.jsx(rr,{task:s,onStop:()=>n(s.taskId)},s.taskId)),t.length>0&&r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"text-muted-foreground/60 text-3xs mt-1 px-2",children:[t.length," housekeeping task",t.length!==1?"s":""," the agent runs for itself"]}),t.map(s=>r.jsx(rr,{task:s,onStop:()=>n(s.taskId)},s.taskId))]})]})})}const Dn=4;function mh(e){return e==="stopped"?"complete":e}const fh="relative after:absolute after:-inset-x-1 after:-inset-y-2.5 md:after:hidden",na=[.16,1,.3,1],ph={width:{duration:.4,ease:na},opacity:{duration:.25}};function hh({tasks:e,onStopTask:t}){const[n,s]=l.useState(!1),o=Le(),{shown:a,ambient:i}=zi(e),c=a.filter(y=>y.taskType==="agent"),u=a.filter(y=>y.taskType==="bash"),d=a.length,m=c.slice(0,Dn),p=c.length-Dn,h=c.reduce((y,b)=>y+(b.toolUses??0),0),f=Math.max(0,...a.map(y=>Math.round((y.durationMs??0)/1e3))),g=o?{duration:0}:{duration:.35,ease:na},x=d>0;return r.jsx(me,{children:(d>0||i.length>0)&&r.jsxs(Q.div,{...x?{role:"status","aria-live":"polite","aria-label":`${d} background task${d!==1?"s":""} running`}:{role:"group","aria-label":"Background tasks"},initial:{opacity:0,y:6,maxHeight:0},animate:{opacity:1,y:0,maxHeight:n?400:44},exit:{opacity:0,maxHeight:0},transition:g,className:"border-border bg-card overflow-hidden rounded-lg border",children:[r.jsxs("div",{className:"flex min-h-9 items-center gap-2 px-2 py-1.5",children:[c.length>0&&r.jsx(gh,{visibleAgents:m,overflowAgentCount:p,allAgentTasks:c}),c.length>0&&u.length>0&&r.jsx("div",{className:"bg-border h-4 w-px shrink-0"}),u.length>0&&r.jsx(lh,{bashTasks:u}),d>0&&r.jsxs(r.Fragment,{children:[r.jsxs("span",{className:"text-muted-foreground text-xs whitespace-nowrap",children:[r.jsx("strong",{className:"text-foreground font-semibold",children:d})," task",d!==1?"s":""," running"]}),r.jsxs("span",{className:"text-muted-foreground/60 text-2xs ml-auto font-mono whitespace-nowrap",children:[h>0&&r.jsxs(r.Fragment,{children:[h," tools · "]}),f,"s"]})]}),r.jsxs("button",{type:"button",onClick:()=>s(y=>!y),className:W("text-muted-foreground hover:text-foreground flex shrink-0 items-center gap-1 transition-colors duration-150",d>0?"ml-1":"ml-auto",fh),"aria-label":n?"Collapse task details":"Expand task details","aria-expanded":n,children:[d>0&&r.jsx("span",{className:"text-3xs tabular-nums",children:d}),r.jsx(vt,{className:W("size-3.5 transition-transform duration-200",n&&"rotate-180")})]})]}),r.jsx(me,{children:n&&r.jsx(dh,{tasks:a,ambientTasks:i,onStopTask:t})})]},"background-task-bar")})}function gh({visibleAgents:e,overflowAgentCount:t,allAgentTasks:n}){return r.jsxs("div",{className:"flex items-center gap-0",children:[r.jsx(me,{mode:"popLayout",children:e.map((s,o)=>r.jsx(Q.div,{initial:{width:0,opacity:0},animate:{width:22,opacity:1},exit:{width:0,opacity:0},transition:ph,className:"shrink-0",children:r.jsx(ih,{agent:{taskId:s.taskId,description:s.description??"",status:mh(s.status),color:s.color,toolUses:s.toolUses,lastToolName:s.lastToolName,durationMs:s.durationMs,summary:s.summary},index:o})},s.taskId))}),t>0&&r.jsx(xh,{count:t,overflowTasks:n.slice(Dn)})]})}function xh({count:e,overflowTasks:t}){return r.jsxs("div",{className:"group relative",children:[r.jsxs("div",{className:"text-muted-foreground bg-muted text-3xs flex size-6 shrink-0 items-center justify-center rounded-full font-semibold","aria-label":`${e} more helper${e===1?"":"s"} running`,children:["+",e]}),r.jsxs("div",{"data-testid":"overflow-badge-tooltip",className:W("pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 hidden","-translate-x-1/2 translate-y-1 opacity-0 transition-[opacity,translate] duration-150","group-hover:translate-y-0 group-hover:opacity-100","border-border bg-popover z-10 rounded-lg border px-3 py-2 whitespace-nowrap","text-foreground text-2xs shadow-lg md:block"),children:[t.map(n=>r.jsxs("div",{className:"flex items-center gap-1.5 py-0.5",children:[r.jsx("div",{className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:n.color}}),r.jsx("span",{className:"text-3xs",children:n.description})]},n.taskId)),r.jsx("div",{className:"border-t-border absolute top-full left-1/2 -translate-x-1/2 border-5 border-transparent"})]})]})}const is="Another chat";function yh(e){const t=e==null?void 0:e[0];if(!t||t.legacy)return null;const{agentName:n,agentId:s,chatId:o,chatTitle:a}=t.from;return{agentName:n,chatId:o,...s?{agentId:s}:{},...a?{chatTitle:a}:{}}}function bh(e){var u;const t=e.filter(d=>d.fromChat);if(t.length===0)return`Queued (${e.length})`;const n=new Map;for(const d of t){const m=((u=d.sender)==null?void 0:u.agentName)??is;n.set(m,(n.get(m)??0)+1)}const[s,o]=[...n].sort((d,m)=>m[1]-d[1])[0],a=n.size-1,i=`${o} from ${s}${a>0?` and ${a} other${a===1?"":"s"}`:""}`,c=e.length-t.length;return c===0?i:`${e.length} queued · ${c} yours, ${i}`}function kh({sender:e}){const t=Qe();if(e===null)return r.jsxs("span",{className:"text-muted-foreground flex min-w-0 items-center gap-1 text-xs",children:[r.jsx(Bi,{className:"size-3 shrink-0","aria-hidden":"true"}),r.jsx("span",{className:"min-w-0 truncate",children:is})]});const{color:n,emoji:s}=lt({id:e.agentId??e.agentName});return r.jsxs("span",{className:"text-muted-foreground flex min-w-0 flex-wrap items-center gap-x-1 text-xs",children:[r.jsxs("span",{className:"flex max-w-full shrink-0 items-center gap-1",children:[r.jsx(Wn,{color:n,emoji:s,size:"xs",className:"shrink-0"}),r.jsx("span",{className:"text-foreground truncate font-semibold",children:e.agentName})]}),r.jsxs("span",{className:"max-w-full min-w-0 truncate",children:["from"," ",e.chatTitle?r.jsx("a",{href:Wi({session:e.chatId}),onClick:o=>{o.preventDefault(),o.stopPropagation(),t(ct({session:e.chatId}))},className:"focus-ring rounded-sm underline-offset-4 hover:underline",children:e.chatTitle}):"another chat · can’t open"]})]})}const bn="after:absolute after:-inset-1 md:after:hidden";function vh({queue:e,editingId:t,onEdit:n,onRemove:s,onSend:o,onMoveUp:a,statusNote:i,onSwitchNow:c}){return e.length===0?null:r.jsxs(Q.div,{variants:We,initial:"initial",animate:"animate",exit:"exit",transition:Be,className:"mb-1.5 overflow-hidden",children:[r.jsxs("div",{className:"text-muted-foreground mb-1 flex items-baseline gap-1 text-xs",children:[r.jsx("span",{className:"font-medium",children:bh(e)}),r.jsxs("span",{className:"truncate",children:["· ",i]})]}),r.jsx("div",{className:"space-y-0.5",children:r.jsx(me,{mode:"popLayout",children:e.map((u,d)=>{var m;return r.jsx(Q.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0,transition:Bn.glide},exit:{opacity:0,scale:.95,transition:{duration:.15}},layout:!0,children:r.jsxs("div",{className:W("group flex w-full items-center gap-2 rounded-md border-l-2 border-l-transparent pr-2 transition-colors md:gap-1",t===u.id?"border-l-primary bg-muted":"hover:bg-muted/50"),children:[u.fromChat?r.jsxs("div",{role:"group","aria-label":`From ${((m=u.sender)==null?void 0:m.agentName)??is}: ${u.content}`,className:"flex min-w-0 flex-1 items-center gap-2 py-1.5 pl-3",children:[r.jsxs("span",{className:"text-muted-foreground shrink-0 text-xs font-medium",children:[d+1,"."]}),r.jsxs("span",{className:"min-w-0 flex-1",children:[r.jsx(kh,{sender:u.sender??null}),r.jsx("span",{className:"text-muted-foreground line-clamp-1 text-sm",children:u.content}),u.notice!==null&&r.jsx("span",{className:"text-muted-foreground/70 line-clamp-1 text-xs",children:u.notice}),u.waiting!==void 0&&r.jsx("span",{className:"text-muted-foreground/70 line-clamp-1 text-xs",children:u.waiting.line})]})]}):r.jsxs("button",{type:"button",onClick:()=>n(u.id),"aria-current":t===u.id?!0:void 0,className:"focus-ring flex min-w-0 flex-1 items-center gap-2 rounded-md py-1.5 pl-3 text-left",children:[r.jsxs("span",{className:"text-muted-foreground shrink-0 text-xs font-medium",children:[d+1,"."]}),r.jsxs("span",{className:"min-w-0 flex-1",children:[r.jsx("span",{className:"text-muted-foreground line-clamp-1 text-sm",children:u.content}),u.notice!==null&&r.jsx("span",{className:"text-muted-foreground/70 line-clamp-1 text-xs",children:u.notice}),u.waiting!==void 0&&r.jsx("span",{className:"text-muted-foreground/70 line-clamp-1 text-xs",children:u.waiting.line})]}),!u.mine&&r.jsxs("span",{className:"text-muted-foreground/60 flex shrink-0 items-center",title:"Queued from another window",children:[r.jsx(An,{className:"size-3","aria-hidden":"true"}),r.jsx("span",{className:"sr-only",children:"Queued from another window"})]})]}),u.waiting!==void 0&&c!==void 0&&r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",onClick:c,title:u.waiting.switchHint,"aria-describedby":`switch-now-${u.id}`,className:"focus-ring text-muted-foreground hover:text-foreground shrink-0 rounded-sm px-1.5 py-1 text-xs font-medium transition-colors",children:"Switch now"}),r.jsx("span",{id:`switch-now-${u.id}`,className:"sr-only",children:u.waiting.switchHint})]}),d>0&&r.jsx("button",{type:"button",onClick:()=>a(u.id),className:W("focus-ring text-muted-foreground hover:text-foreground relative flex size-6 shrink-0 items-center justify-center rounded-sm opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:focus-visible:opacity-100",bn),"aria-label":`Move queued message ${d+1} earlier`,children:r.jsx(Hi,{className:"size-3"})}),d>0&&r.jsx("button",{type:"button",onClick:()=>o(u.id),"aria-label":`Send queued message ${d+1} next`,className:W("focus-ring text-muted-foreground hover:text-foreground relative flex size-6 shrink-0 items-center justify-center rounded-sm transition-colors",bn),children:r.jsx(wu,{className:"size-3"})}),r.jsx("button",{type:"button",onClick:()=>s(u.id),className:W("focus-ring text-muted-foreground hover:text-foreground relative flex size-6 shrink-0 items-center justify-center rounded-sm opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:focus-visible:opacity-100",bn),"aria-label":`Remove queued message ${d+1}`,children:r.jsx(ot,{className:"size-3"})})]})},u.id)})})})]})}function Sh({open:e,onOpenChange:t,queuedCount:n,fromChatCount:s=0,onConfirm:o}){const a=n===1?"message":"messages",i=s===1?"message":"messages";return r.jsx(Gi,{open:e,onOpenChange:t,children:r.jsxs(Ki,{children:[r.jsxs(Qi,{children:[r.jsx(Vi,{children:n>0?`Stop, and put ${n} queued ${a} back?`:`Stop, and cancel ${s} ${i} from other chats?`}),r.jsxs(Yi,{children:[n>0?`The agent stops. Your ${a} ${n===1?"goes":"go"} back to the composer.`:"The agent stops. Those messages are not delivered.",n>0&&s>0?r.jsx("span",{className:"block",children:`${s} from other chats ${s===1?"is":"are"} cancelled.`}):null]})]}),r.jsxs(Xi,{children:[r.jsx(Ji,{children:"Keep going"}),r.jsx(Zi,{onClick:o,children:"Stop"})]})]})})}const jh={initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4}},wh={duration:.3,ease:"easeInOut"};function Nh({text:e,animationKey:t}){return r.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-start overflow-hidden py-0.5",children:r.jsx(me,{mode:"wait",children:r.jsx(Q.span,{variants:jh,initial:"initial",animate:"animate",exit:"exit",transition:wh,className:"text-muted-foreground truncate text-sm",children:e},t)})})}function Ch(e){const t=be();return ut({queryKey:["workspace-for-session",e??null],queryFn:()=>t.resolveWorkspace(e),enabled:!!e}).data??null}async function sa(e,t,n){try{return await e.runCommandIntent(t,"compact",n),!0}catch(s){const o=s.code==="SESSION_LOCKED";return Ie.error(o?"Your agent is busy. Try again in a moment.":"Couldn’t compact the chat."),!1}}function ra(e){const t=/^\/(\S+)([\s\S]*)$/.exec(e.trim());return t?{token:t[1],rest:t[2].trim()}:null}function Th(e){const t=ra(e);return t?Xr(t.token)?!0:bo(e.trim())!==null:!1}function Rh(e,t,n={}){const{mutateAsync:s}=el(e),o=be(),{startFreshSession:a,compact:i}=n,[c,u]=l.useState(0),d=l.useCallback(p=>{u(f=>f+1);const h=()=>u(f=>Math.max(0,f-1));p.then(h,h)},[]);return{tryRun:l.useCallback(p=>{const h=ra(p),f=h?Xr(h.token):null;if(h&&(f==null?void 0:f.fulfillment)==="runtime"&&i){if(!i.supported)return Ie.error(`Compact isn’t available on ${i.runtimeLabel||"this agent"}`),{handled:!0,ran:!1};if(!t)return Ie.error("No open chat to compact"),{handled:!0,ran:!1};const b=sa(o,t,h.rest||void 0);return d(b),{handled:!0,ran:!0,confirmed:b}}const g=bo(p);if(!g)return{handled:!1};let x;return{handled:!0,ran:g.command.run(g.args,{sessionId:t,renameSession:b=>{t&&(x=s({sessionId:t,title:b}).then(()=>(Ie.success(`Renamed chat to “${b}”`),!0),()=>!1),d(x))},notify:(b,v)=>v==="error"?Ie.error(b):Ie.success(b),startFreshSession:b=>a==null?void 0:a(b),focusUsageSurface:()=>En.getState().reveal()}),...x?{confirmed:x}:{}}},[s,o,t,a,i,d]),commandPending:c>0}}function oa(e,t){return{supported:(e==null?void 0:e.compact.supported)!==!1,runtimeLabel:t}}function or(e){const t=e.trim().toLowerCase();return t.startsWith("/")?t:`/${t}`}function Eh(e){return nl.map(t=>{var s,o;const n=t.fulfillment==="runtime"&&((o=(s=e==null?void 0:e.commandIntents)==null?void 0:s[t.id])==null?void 0:o.supported)===!1;return{command:t.id,fullCommand:t.canonical,description:t.description,argumentHint:t.argumentHint,aliases:[...t.aliases],...n?{disabled:!0,disabledReason:`Not available on ${e.runtimeLabel}`}:{}}})}function Ah(e,t){const n=tl(),s=Eh(t),o=$s.filter(c=>!(c.command!==void 0&&n.has(`/${c.command}`))),a=new Set($s.map(c=>c.command)),i=e.filter(c=>{if(c.command!==void 0&&a.has(c.command))return!1;const u=[c.fullCommand,...c.aliases??[]].map(or);return c.command!==void 0&&u.push(or(c.command)),!u.some(d=>n.has(d))});return[...s,...o,...i]}const _h=3e4;function Mh({percent:e,compactSupported:t,isStreaming:n}){return!(e===null||e<sl||!t||n)}function Ih({sessionId:e,percent:t,compactSupported:n,isStreaming:s}){const o=be(),[a,i]=l.useState(!1),c=l.useRef(!1),u=l.useRef(null),d=l.useCallback(()=>{c.current=!1,i(!1),u.current!==null&&(clearTimeout(u.current),u.current=null)},[]);l.useEffect(()=>{s&&c.current&&d()},[s,d]),l.useEffect(()=>()=>{u.current!==null&&clearTimeout(u.current)},[]);const m=l.useCallback(()=>{c.current||!e||(c.current=!0,i(!0),u.current=setTimeout(()=>{u.current=null,c.current=!1,i(!1)},_h),sa(o,e).then(p=>{p||d()}))},[e,o,d]);return{visible:Mh({percent:t,compactSupported:n,isStreaming:s}),percent:t??0,pending:a,onCompact:m}}function Oh({children:e,onSwitchAgent:t,onViewProfile:n,onNewSession:s}){return r.jsxs(rl,{children:[r.jsx(ol,{className:"min-w-0",children:e}),r.jsxs(al,{className:"w-48",children:[r.jsxs(ln,{onClick:t,children:[r.jsx(il,{className:"mr-2 size-4"}),"Switch agent"]}),r.jsx(Ts,{}),r.jsxs(ln,{onClick:n,children:[r.jsx(ll,{className:"mr-2 size-4"}),"View profile"]}),r.jsx(Ts,{}),r.jsxs(ln,{onClick:s,children:[r.jsx($r,{className:"mr-2 size-4"}),"New chat"]})]})]})}function Dh({agentName:e,agentColor:t,agentEmoji:n,agentPath:s,nameHidden:o}){const a=cl(s),{open:i}=ul(),c=l.useCallback(()=>{s&&dl.getState().openProfileDocked(s)},[s]),u=l.useCallback(()=>{if(a===void 0)return c();i(a)},[a,i,c]),d=l.useCallback(()=>{ie.getState().openGlobalPaletteWithSearch("@")},[]),m=Wr(),p=l.useCallback(()=>{m(s??void 0)},[m,s]);return!e||!t||!n?null:r.jsx("span",{className:"inline-flex min-w-0 items-center",children:s?r.jsx(Oh,{onSwitchAgent:d,onViewProfile:u,onNewSession:p,children:r.jsx(Rs,{size:"xs",name:e,color:t,emoji:n,nameHidden:o,onClick:u,className:"max-w-full"})}):r.jsx(Rs,{size:"xs",name:e,color:t,emoji:n,nameHidden:o,className:"max-w-full"})})}function Ph({sessionId:e,account:t}){const[n,s]=l.useState(!1),[o,a]=l.useState(!1),i=l.useRef(null);return r.jsxs(r.Fragment,{children:[r.jsx("span",{ref:i,className:"contents",children:r.jsx(ml,{sessionId:e,account:t,open:n,onOpenChange:s,onContinue:()=>{s(!1),a(!0)}})}),r.jsx(Ko,{open:o,onOpenChange:a,sessionId:e,account:t,onCloseAutoFocus:c=>{var d;const u=(d=i.current)==null?void 0:d.querySelector("button");u&&(c.preventDefault(),u.focus())}})]})}function $h({ctx:e,items:t}){return r.jsx("span",{className:"inline-flex min-w-0 items-center gap-2",children:t.map((n,s)=>{const o=n.component;return r.jsxs(l.Fragment,{children:[s>0&&r.jsx("span",{className:"text-muted-foreground/30 shrink-0","aria-hidden":"true",children:"·"}),r.jsx("span",{role:"group","aria-label":n.label,"data-testid":`extension-status-item-${n.id}`,className:"inline-flex min-w-0 items-center",children:r.jsx(Jr,{fallback:null,onError:a=>aa(n,a),children:r.jsx(o,{...e})})})]},n.id)})})}function aa(e,t){console.warn(`[extensions] ${e.extensionId}'s status-bar item "${e.id}" failed to draw and is hidden.`,t)}function Fh({ctx:e,items:t}){return r.jsx(r.Fragment,{children:t.map(n=>{const s=n.component;return r.jsxs("div",{role:"group","aria-label":n.label,"data-testid":`session-row-extension-${n.id}`,className:"flex items-center gap-2 px-1 py-1 text-sm",children:[r.jsx("span",{className:"shrink-0",children:n.label}),r.jsx("span",{className:"min-w-0 flex-1"}),r.jsx("span",{className:"text-muted-foreground inline-flex min-w-0 items-center text-xs",children:r.jsx(Jr,{fallback:null,onError:o=>aa(n,o),children:r.jsx(s,{...e})})})]},n.id)})})}function Lh(e){const{costUsd:t,costBasis:n,...s}=e;return s}function Uh(e){var m;const{sessionId:t,agent:n,status:s,runtimeChip:o,onUpdateSession:a}=e,i={},c=e.density!=="full";n.name&&n.color&&n.emoji&&(i.agent=r.jsx(Dh,{agentName:n.name,agentColor:n.color,agentEmoji:n.emoji,agentPath:n.path,nameHidden:e.density==="avatar"})),s.cwd&&(i.cwd=r.jsx(Sc,{cwd:s.cwd})),e.gitStatus&&(i.git=r.jsx(Mc,{data:e.gitStatus,workspace:e.workspace,compact:c})),o.runtime!==null&&(i.runtime=r.jsx(jc,{runtime:o.runtime,model:o.model,onChangeRuntime:o.onChangeRuntime,canSelect:o.canSelect,account:o.account,compact:!0,iconOnly:mo(e.density)}));const u=Zr(e.account);u!==null&&(i.account=r.jsx(Ph,{sessionId:t,account:e.account})),e.extensions.items.length>0&&(i.extensions=r.jsx($h,{ctx:e.extensions.ctx,items:e.extensions.items})),i.model=r.jsx(wc,{model:s.model,onChangeModel:p=>a({model:p}),effort:s.effort,onChangeEffort:p=>a({effort:p??void 0}),fastMode:s.fastMode,onChangeFastMode:p=>a({fastMode:p}),disabled:!t,sessionId:t||void 0,runtime:o.runtime,onCredits:e.account.onCredits,compact:c}),(m=e.plan)!=null&&m.active||(i.permission=r.jsx(Nc,{mode:s.permissionMode,onChangeMode:e.onChangeMode,disabled:!t,pending:!s.permissionModeKnown,runtime:o.runtime,modelSupportsAutoMode:e.modelSupportsAutoMode,compact:c,makeDefault:e.makeDefault,onOpenChange:e.onPermissionPickerOpenChange})),e.plan&&(i.plan=r.jsx(Cc,{descriptor:e.plan.descriptor,active:e.plan.active,onToggle:e.plan.onToggle,disabled:!t})),e.contextPercent!==null&&(i.context=r.jsx(Tc,{percent:e.contextPercent,contextUsage:e.contextUsage,compact:e.compact,reading:e.contextReading}));const d=e.usage&&e.usageSource==="account"&&!e.supportsCostTracking?Lh(e.usage):e.usage;return d&&fl(d)&&(e.supportsCostTracking||e.usageSource==="account")&&!Rc({account:u})&&(i.usage=r.jsx(Ec,{usage:d,observedAt:e.usageObservedAt,now:e.now})),e.liveSubagentCount>0&&(i.subagents=r.jsx(Ac,{count:e.liveSubagentCount,running:e.runningSubagents,waiting:e.waitingOnSubagents})),i.connection=r.jsx(_c,{connectionState:e.connectionState,compact:c}),i}function qh({compaction:e}){return r.jsxs("div",{"data-testid":"dm-safety-line",className:"text-muted-foreground flex items-center gap-2 pt-2 text-xs empty:hidden empty:p-0",children:[r.jsx(fo,{compact:!1}),e.visible&&r.jsxs("span",{className:"flex items-center gap-1.5","data-testid":"dm-compact-warning",children:[r.jsxs("span",{className:"text-status-warning-fg",children:["Context ",e.percent,"% full"]}),r.jsx("button",{type:"button",onClick:e.onCompact,disabled:e.pending,className:"focus-ring text-foreground/80 hover:text-foreground rounded-sm underline-offset-4 hover:underline disabled:opacity-50",children:e.pending?"Compacting…":"Compact chat"})]})]})}const zh=[],Bh="(max-width: 639px)";function Wh({sessionId:e,sessionStatus:t,isStreaming:n,syncConnectionState:s,agentName:o,agentColor:a,agentEmoji:i,agentPath:c,lineHidden:u=!1}){var ze,Y;const{ref:d,budget:m}=Ic(),p=pl(),h=eo(e),f=to(e,t,n,h.runtime),g=wt(e||null),{pins:x}=Oc(),y=no(e),b=Dc(e,g,y.usage),v=b.usage,j=St(),S=new Date(j),T=hl(v,b.observedAt,S),R=y.contextUsage,E=((ze=Zn(e))==null?void 0:ze.contextUsage)??null,I=En(U=>U.open),A=En(U=>U.setOpen),{data:O}=gl(f.cwd),F=Ch(f.cwd),{project:N}=xl(f.cwd),k=yl(Bh),C=l.useMemo(()=>({sessionId:e,cwd:f.cwd,project:N,trackerItems:g.trackerItems,compact:k}),[e,f.cwd,N,g.trackerItems,k]),w=Pc(C),{data:D}=Xn(),M=bl(y.activeSubagents).running,P=y.runningSubagentCount??M.length,{data:H}=Xt({sessionId:e||void 0,runtime:h.runtime??void 0}),G=((Y=H==null?void 0:H.find(U=>U.value===f.model))==null?void 0:Y.supportsAutoMode)??!1,V=Jt(h.runtime),B=(V==null?void 0:V.permissionModes.values)??zh,L=V==null?void 0:V.permissionModes.default,X=kl(e),_=re(U=>U.recordAutoConfirmed),[q,te]=l.useState(!1),$=$c({sessionId:e,runtime:h.runtime,declaredModes:B,runtimeDefaultMode:L}),[J,oe]=l.useState(!1),ne=l.useCallback(U=>f.updateSession({permissionMode:U}),[f]),de=l.useCallback(U=>{if(U==="auto"&&!X){te(!0);return}ne(U).then(ce=>{ce&&$.offerFor(U)})},[X,ne,$,te]),K=l.useCallback(()=>{_(e),ne("auto"),te(!1)},[_,e,ne,te]),Z=vl(B),je=Z!==void 0&&f.permissionMode===Z.id,ke=Sl(e),ee=re(U=>U.recordModeBeforePlan),we=l.useCallback(U=>{if(!Z)return;if(U){ee(e,f.permissionMode),ne(Z.id);return}const ce=ke,Re=ce!==void 0&&B.some(se=>se.id===ce)&&(ce!=="auto"||G)?ce:L;Re&&ne(Re)},[Z,ee,e,f,ne,ke,B,G,L]),ve=h.runtime?Vt(h.runtime).label:"",qe=oa(V==null?void 0:V.commandIntents,ve),ge=y.contextPercent,xe=Ih({sessionId:e,percent:ge,compactSupported:qe.supported,isStreaming:n}),[Te,le]=l.useState(!1);Fc(()=>!u&&le(U=>!U));const _e={cwd:f.cwd,git:jl(O)?Lc(O.branch,O.clean,O.detached):null,contextPercent:ge,connectionState:s,permissionMode:f.permissionMode,permissionDescriptor:(V==null?void 0:V.permissionModes.values.find(U=>U.id===f.permissionMode))??null,permissionPickerOpen:J,onWifi:p,plan:Z?{active:je}:null,runtime:h.runtime===null||D===void 0?null:{type:h.runtime,isDefault:h.runtime===D.defaultRuntime,canSelect:h.canSelect},account:Zr(g),usage:v,usageStale:T,subagentsInFlight:P,extensionItems:w.promotion},he=xe.visible&&m.density==="full",Se=xe.visible&&!he,ye=Uh({sessionId:e,agent:{name:o,color:a,emoji:i,path:c},status:f,onUpdateSession:f.updateSession,onChangeMode:de,makeDefault:J?$.line:null,onPermissionPickerOpenChange:oe,modelSupportsAutoMode:G,plan:Z?{descriptor:Z,active:je,onToggle:we}:null,gitStatus:O,workspace:F,runtimeChip:h,account:g,contextPercent:ge,contextUsage:R,contextReading:E,compact:he?{pending:xe.pending,onCompact:xe.onCompact}:null,usage:v,usageSource:b.source,usageObservedAt:b.observedAt,now:S,supportsCostTracking:(V==null?void 0:V.supportsCostTracking)??!0,runningSubagents:M,liveSubagentCount:P,waitingOnSubagents:y.lifecycle==="idle",connectionState:s,density:m.density,extensions:{ctx:C,items:w.visible}}),{items:Me,overflow:$e}=Uc(qc({ctx:_e,pins:x,nodes:ye,density:m.density}),m);return r.jsxs("div",{ref:d,className:u?"relative":"relative pt-2",children:[!u&&!J&&$.line&&r.jsx(zc,{...$.line,placement:"overlay"}),u&&r.jsx(qh,{compaction:xe}),!u&&r.jsx(Bc,{items:Me,nameFirst:mo(m.density),trailing:r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(fo,{compact:m.density!=="full"}),r.jsx(Wc,{open:Te,onOpenChange:le,diagnostics:y,controls:{plan:Z?{active:je,onToggle:we}:null},promotionContext:_e,overflowCount:$e,addOns:w.visible.length>0?r.jsx(Fh,{ctx:C,items:w.visible}):void 0,urgentAction:Se?{label:`Compact chat · ${xe.percent}% full`,onAction:xe.onCompact,pending:xe.pending}:null})]})}),r.jsx(Hc,{usage:v??null,accountUsage:b.accountUsage,observedAt:b.observedAt,open:I,onOpenChange:A}),r.jsx(Gc,{open:q,onOpenChange:te,onConfirm:K})]})}const Hh=Object.freeze({completed:"Completed",aborted_tools:"Tool stopped",aborted_streaming:"Reply stopped",max_turns:"Turn limit reached",blocking_limit:"Blocking limit",rapid_refill_breaker:"Rate limit",prompt_too_long:"Prompt too long",image_error:"Image error",model_error:"Model error",stop_hook_prevented:"Stopped by hook",hook_stopped:"Hook stopped",tool_deferred:"Tool deferred"});function Gh(e){return e!==void 0&&e!=="completed"}function Kh(e){const t=Hh[e];return t!==void 0?t:Qh(e)}function Qh(e){if(e.length===0)return"Ended";const t=e.replace(/[_-]+/g," ").trim().split(/\s+/);if(t.length===0)return"Ended";const[n,...s]=t;return[n.charAt(0).toUpperCase()+n.slice(1).toLowerCase(),...s.map(a=>a.toLowerCase())].join(" ")}function Vh({terminalReason:e}){const t=Gh(e),n=t?Kh(e):"";return r.jsx(me,{children:t&&r.jsx(Q.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.2,ease:"easeOut"},className:"flex px-4 py-1","data-testid":"terminal-reason-chip",children:r.jsx(wl,{variant:"secondary","aria-label":`Chat ended: ${n}`,children:n})},e)})}const Yh="The turn ended before completing.";function Xh({sessionId:e,onRetry:t,onSigninComplete:n,onChooseModel:s}){var p;const o=en(e),a=((p=Zn(e))==null?void 0:p.lastError)??null,i=(a==null?void 0:a.category)==="auth_error"||(a==null?void 0:a.category)==="model_unavailable"||(a==null?void 0:a.category)==="runtime_update_required",c=(a==null?void 0:a.message)??"",u=i?void 0:c||Yh,d=o?zn(o):void 0,m=a?[a.code,a.details].filter(Boolean).join(`
|
|
39
|
-
`):void 0;return r.jsx(Q.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{delay:.3,duration:.2,ease:"easeOut"},className:"mx-4 mb-2","data-testid":"turn-failed-notice",children:r.jsx(nn,{category:(a==null?void 0:a.category)??"execution_error",message:c,subtext:u,details:m||void 0,onRetry:t,onSigninComplete:n,onChooseModel:s,runtimeLabel:d,sessionId:e,...a!=null&&a.code?{code:a.code}:{},...a!=null&&a.reason?{reason:a.reason}:{}})})}const Jh=["Type @ to mention a file","Type / to browse commands","End a line with \\ to keep typing","Drop or paste files to attach"];function Zh(e,t,n){const s=l.useCallback(g=>{var v;if(!e||!t.current)return;const x=re.getState(),y=(v=n.current)==null?void 0:v.get(e);if(y!==void 0&&x.getSession(e).mountGeneration!==y)return;const b=typeof g=="function"?g(x.getSession(e).messages):g;x.updateSession(e,{messages:b})},[e,t,n]),o=l.useCallback(g=>{e&&re.getState().updateSession(e,{input:g})},[e]),a=l.useCallback(g=>{e&&re.getState().updateSession(e,{status:g})},[e]),i=l.useCallback(g=>{e&&re.getState().updateSession(e,{error:g})},[e]),c=l.useCallback(g=>{e&&re.getState().updateSession(e,{sessionStatus:g})},[e]),u=l.useCallback(g=>{e&&re.getState().updateSession(e,{estimatedTokens:g})},[e]),d=l.useCallback(g=>{e&&re.getState().updateSession(e,{streamStartTime:g})},[e]),m=l.useCallback(g=>{e&&re.getState().updateSession(e,{isTextStreaming:g})},[e]),p=l.useCallback(g=>{e&&re.getState().updateSession(e,{systemStatus:g})},[e]),h=l.useCallback(g=>{e&&re.getState().updateSession(e,{operationProgress:g})},[e]),f=l.useCallback(g=>{e&&re.getState().updateSession(e,{promptSuggestions:g})},[e]);return{setMessages:s,setInput:o,setStatus:a,setError:i,setSessionStatus:c,setEstimatedTokens:u,setStreamStartTime:d,setIsTextStreaming:m,setSystemStatus:p,setOperationProgress:h,setPromptSuggestions:f}}function eg({sessionId:e,sid:t,transport:n,sessionCwd:s,enableMessagePolling:o,isStreaming:a,streamHydrated:i,setMessages:c}){const u=_o(),d=s.cwd,m=l.useRef(d);l.useEffect(()=>{m.current=d},[d]);const p=l.useRef(i);l.useEffect(()=>{p.current=i},[i]);const h=ut({queryKey:["messages",e,d],queryFn:()=>n.getMessages(e,d??void 0,{newest:!0}),staleTime:Ge.MESSAGE_STALE_TIME_MS,refetchOnWindowFocus:!1,enabled:e!==null&&!i,refetchInterval:()=>a||!o?!1:u?Ge.ACTIVE_TAB_REFETCH_MS:Ge.BACKGROUND_TAB_REFETCH_MS});return l.useEffect(()=>{const f=re.getState();t&&f.updateSession(t,{historySeeded:!1}),f.getSession(e??"").status!=="streaming"&&c([])},[e,d,t,c]),l.useEffect(()=>{if(!h.data)return;const f=h.data.messages,g=re.getState().getSession(t).historySeeded;if(!g&&f.length>0){if(a)return;if(t&&re.getState().updateSession(t,{historySeeded:!0}),e&&!p.current){const x=h.data.earlierMessages??0;Fe.getState().noteSnapshot(e,f[0].id,x)}c(f.map(nt));return}g&&!a&&Lm(re.getState().getSession(t).messages,f,c)},[h.data,a,e,t,c]),{historyQuery:h}}function ia(e,t){if(e===t)return;const{opened:n,counts:s,mergeUsage:o}=rt.getState(),a=Es("session",e),i=Date.parse(n[a]??"");Number.isNaN(i)||o([{key:Es("session",t),lastUsedAt:i,useCount:s[a]??1}])}function Pn(e,t,n){e&&n.then(s=>{if(!s)return;const o=re.getState();o.getSession(e).input.trim()===t.trim()&&o.updateSession(e,{input:""})},()=>{})}const It=new Map;function tg(e,t){const s=(It.get(e)??Promise.resolve()).then(t),o=s.then(()=>{},()=>{});return It.set(e,o),o.then(()=>{It.get(e)===o&&It.delete(e)}),s}const Ze=new Set;function ar(e){var o;const t=e,n=typeof(t==null?void 0:t.code)=="string"?t.code:void 0,s=(o=t==null?void 0:t.body)==null?void 0:o.agentId;return{...n?{code:n}:{},...typeof s=="string"?{agentId:s}:{}}}function ng({sessionId:e,input:t,status:n,transport:s,queryClient:o,selectedCwd:a,onSessionIdChangeReplace:i,transformContent:c,launchRuntime:u,agentPath:d,agentLookupPending:m,agentLookupFailed:p,launchAccount:h,takeSeedContext:f,setInput:g,setError:x,tryNativeCommand:y}){const b=l.useRef(a);l.useEffect(()=>{b.current=a},[a]);const v=l.useRef(u);l.useEffect(()=>{v.current=u},[u]);const j=l.useRef(h);l.useEffect(()=>{j.current=h},[h]);const{data:S}=Xn(),T=l.useRef(S==null?void 0:S.defaultRuntime);l.useEffect(()=>{T.current=S==null?void 0:S.defaultRuntime},[S==null?void 0:S.defaultRuntime]);const R=Nl(e,u),E=l.useRef(R.mode);l.useEffect(()=>{E.current=R.mode},[R.mode]);const I=l.useRef(c);l.useEffect(()=>{I.current=c});const A=l.useRef(f);l.useEffect(()=>{A.current=f});const O=l.useRef(i);l.useEffect(()=>{O.current=i});const F=l.useCallback(async(B,L,X={})=>{var Z,je,ke;if(!X.kickoff){const ee=y(B);if(ee.handled){L&&ee.ran&&(ee.confirmed?Pn(e,B,ee.confirmed):g(""));return}}const _=e,q=X.cwd??b.current;x(null);const te=o.getQueryData(He.list(q))??[],$=cn(_),J=($==null?void 0:$.draft)??!te.some(ee=>ee.id===_),oe=($==null?void 0:$.draft)===!1?!1:J||Ze.has(_);if(oe&&(m||p))return;oe&&Ze.add(_),X.kickoff||(rt.getState().recordOpened("session",_),q&&rt.getState().recordOpened("agent",q)),pt.attachSession(_,q);let ne;try{ne=!X.kickoff&&I.current?await I.current(B):B}catch(ee){if(X.kickoff)throw ee;x({heading:"Couldn’t send message",message:ee.message||"The attachment didn’t upload. Try again.",retryable:!1});return}const de=Ce.getState();if(J){const ee=new Date().toISOString();As(o,q,{id:_,title:`Chat ${_.slice(0,8)}`,createdAt:ee,updatedAt:ee,permissionMode:((Z=o.getQueryData(He.detail(_,q)))==null?void 0:Z.permissionMode)??E.current??"default",runtime:v.current??T.current??"claude-code"})}const K=crypto.randomUUID();X.kickoff||de.setOptimisticUserMessage(_,{id:K,content:B}),de.setTriggerPending(_,!0),L&&g("");try{const ee=_s(ie.getState(),q??null),{uiState:we,commit:ve}=Ms(_,ee),ge={clientMessageId:K,context:we?{uiState:we}:void 0};oe&&(ge.create=!0),oe&&v.current&&(ge.runtime=v.current),oe&&d&&(ge.agentPath=d),oe&&j.current&&(ge.account=j.current);const xe=ie.getState().retryAccount;(xe==null?void 0:xe.sessionId)===_&&(ge.account=xe.id,ie.getState().setRetryAccount(null));const Te=(je=A.current)==null?void 0:je.call(A);Te&&(ge.seedContext=Te);const{sessionId:le}=await s.postMessage(_,ne,q??void 0,ge);if(Ze.delete(_),$){const he={...$,draft:!1};un(_,he),un(le,he)}if(ve(le),le!==_){Ce.getState().migrateSessionContinuity(_,le),ie.getState().carryCanvasWritesAcross(_,le),pt.attachSession(le,q),ia(_,le),et.getState().migrate(_,le);const he=o.getQueryData(He.list(q))??[],Se=he.find(ye=>ye.id===_);Se&&!he.some(ye=>ye.id===le)&&As(o,q,{...Se,id:le}),o.setQueryData(He.list(q),ye=>ye==null?void 0:ye.filter(Me=>Me.id!==_))}(ke=O.current)==null||ke.call(O,le);const _e=le;setTimeout(()=>{var ye;const he=ht.getState().rekeys[_e]??_e,Se=Ce.getState().getSession(he);Se.triggerPending&&((ye=Se.status)==null?void 0:ye.lifecycle)!=="streaming"&&Ce.getState().setTriggerPending(he,!1)},Yt.TRIGGER_PENDING_TIMEOUT_MS)}catch(ee){if(Ce.getState().setOptimisticUserMessage(_,null),Ce.getState().setTriggerPending(_,!1),X.kickoff)throw ee;x({heading:"Couldn’t send message",message:ee.message||"Couldn’t reach DorkOS. Try again.",retryable:!0,...ar(ee)})}},[e,s,o,g,x,y,d,m,p]),N=l.useCallback(async(B,L)=>{!B.trim()||n==="streaming"||await F(B.trim(),(L==null?void 0:L.clearInput)===!0,{...L!=null&&L.cwd?{cwd:L.cwd}:{}})},[n,F]),k=l.useCallback(()=>N(t,{clearInput:!0}),[t,N]),C=l.useCallback(async(B,L,X)=>{if(!e)return!1;const _=e,q=b.current;x(null);const te=(o.getQueryData(He.list(q))??[]).some(J=>J.id===_),$=cn(_);return(($==null?void 0:$.draft)??!te)&&Ze.add(_),tg(_,async()=>{var oe;let J;try{J=I.current?await I.current(B):B}catch(ne){return x({heading:X,message:ne.message||"The attachment didn’t upload. Try again.",retryable:!1}),!1}try{const ne=_s(ie.getState(),q??null),{uiState:de,commit:K}=Ms(_,ne),Z={...de?{uiState:de}:{},...L==="queue"?{queued:!0}:{}},je=Object.keys(Z).length>0?Z:void 0,ke=((oe=cn(_))==null?void 0:oe.draft)===!1?!1:Ze.has(_);if(ke&&(m||p))return!1;const{sessionId:ee}=await s.postMessage(_,J,q??void 0,{context:je,disposition:L,...ke?{create:!0,...v.current&&{runtime:v.current},...j.current&&{account:j.current},...d&&{agentPath:d}}:{}});return ke&&Ze.delete(_),$&&un(ee,{...$,draft:!1}),K(ee),!0}catch(ne){return x({heading:X,message:ne.message||"Couldn’t reach DorkOS. Try again.",retryable:!1,...ar(ne)}),!1}})},[e,s,o,x,d,m,p]),w=l.useCallback(B=>C(B,"queue","Couldn’t queue message"),[C]),D=l.useCallback(B=>C(B,"steer","Couldn’t steer the agent"),[C]),M=l.useCallback(B=>C(B,"stage","Couldn’t add context"),[C]),P=l.useCallback(async()=>{if(!e)return{receipt:{outcome:"not-running",reason:"no-open-turn",runtime:"unknown"},cancelled:[]};try{const{receipt:B,cancelledQueued:L}=await s.interruptSession(e);return{receipt:B,cancelled:L??[]}}catch{return{receipt:{outcome:"failed",reason:"delivery-failed",runtime:"unknown"},cancelled:[]}}},[e,s]),H=l.useCallback(async B=>{x(null),await F(B,!1)},[F,x]),G=l.useCallback(async(B,L)=>{await F(B,!1,{kickoff:!0,...L?{cwd:L}:{}})},[F]),V=l.useCallback((B,L)=>{},[]);return{handleSubmit:k,submitContent:N,enqueueContent:w,steerContent:D,addContextContent:M,stop:P,retryMessage:H,submitKickoff:G,markToolCallResponded:V}}const Ot=new Set,ir=new Set,Dt=new Set;function sg(e){var t;return e.role==="user"||e.content.trim().length>0||(((t=e.toolCalls)==null?void 0:t.length)??0)>0?!0:e.parts.some(n=>n.type==="tool_call")}function rg({sessionId:e,cwd:t,status:n,messages:s,hydrated:o,canStart:a=!0,submitKickoff:i,submitContent:c}){const u=Qt(e),d=s.length,m=s.some(sg);l.useEffect(()=>{if(!e)return;if(!u){t&&d===0&&n==="idle"&&et.getState().claimByPath(t,e);return}if(u.fired||Ot.has(e)||!a||d>0||n!=="idle")return;Ot.add(e),et.getState().markFired(e);const p=u.kind==="first-message";(p?c:i)(u.kickoffMessage,u.path||void 0).catch(f=>{console.warn("[chat] first-turn trigger failed for newborn session",e,f),ir.has(e)?p||et.getState().markGreetingFailed(e):(ir.add(e),Ot.delete(e),et.getState().resetFired(e))})},[e,t,u,n,d,a,i,c]),l.useEffect(()=>{if(!(!e||!u)&&u.kind!=="first-message"&&!(!u.fired&&!Ot.has(e))&&!u.greetingFailed){if(m){Dt.delete(e);return}if(n==="streaming"){Dt.add(e);return}o&&Dt.has(e)&&(Dt.delete(e),et.getState().markGreetingFailed(e))}},[e,u,n,m,o])}function og(e,t){return l.useEffect(()=>{Cl(),pt.connectList(),e&&pt.attachSession(e,t)},[e,t]),l.useEffect(()=>()=>pt.releaseSession(),[]),so(e??"")}function ag(e,t){const n=ro(e),s=l.useRef(t);l.useEffect(()=>{s.current=t}),l.useEffect(()=>{var o;!n||!e||(ia(e,n),(o=s.current)==null||o.call(s,n))},[n,e])}const ig=500;function lg(e,t,n){const s=l.useRef(new Map),[o,a]=l.useState(null),i=t.length>0?t[0].seq:-1;l.useEffect(()=>{const p=s.current;if(!e||!n){e&&p.delete(e),a(null);return}let h=p.get(e);(!h||h.turnSeq!==i)&&(h={turnSeq:i,anchor:Date.now()},p.set(e,h)),a(h.anchor)},[e,n,i]);const c=l.useMemo(()=>{let p=0;for(const h of t)h.type==="text_delta"&&(p+=h.text.length);return p/4},[t]),[u,d]=l.useState(!1),m=l.useRef({sid:null,tokens:0});return l.useEffect(()=>{const p=m.current,h=e===p.sid&&c>p.tokens;if(m.current={sid:e,tokens:c},h&&!u&&d(!0),!h&&!u)return;const f=setTimeout(()=>d(!1),ig);return()=>clearTimeout(f)},[e,c,u]),{streamStartTime:o,estimatedTokens:c,isTextStreaming:u}}function cg(e,t,n,s){const o=l.useRef(new Map),a=l.useRef(s);l.useEffect(()=>{a.current=s}),l.useEffect(()=>{var d;if(!e)return;const i=o.current,c=n??0;let u=i.get(e);(!u||u.floor!==c)&&(u={floor:c,seen:c},i.set(e,u));for(const m of t)m.seq<=u.seen||(m.type==="todo_update"&&((d=a.current)==null||d.call(a,{action:m.action,task:m.task,tasks:m.tasks,previousId:m.previousId})),u.seen=m.seq)},[e,t,n])}function ug(e){let t=null,n=null;for(const s of e){if(s.type==="operation_progress"){t=s.state==="started"?{operation:s.operation,determinate:s.determinate,...s.percent!==void 0?{percent:s.percent}:{},...s.message!==void 0?{message:s.message}:{}}:null;continue}if(s.type==="system_status"){(!s.status||s.status===Tl)&&(n={message:s.message});continue}n=null}return{operationProgress:t,systemStatus:n}}function dg(e,t){return e===null||t===null?e===t:e.operation===t.operation&&e.determinate===t.determinate&&e.percent===t.percent&&e.message===t.message}function mg(e,t){return((e==null?void 0:e.message)??null)===((t==null?void 0:t.message)??null)}function fg(e,t,n,s){const o=l.useRef(new Map),a=l.useRef(new Map),i=l.useRef(n),c=l.useRef(s);l.useEffect(()=>{i.current=n,c.current=s}),l.useEffect(()=>{if(!e)return;const{operationProgress:u,systemStatus:d}=ug(t),m=o.current.get(e)??null;dg(m,u)||(i.current(u),o.current.set(e,u));const p=a.current.get(e)??null;mg(p,d)||(c.current(d),a.current.set(e,d))},[e,t])}function pg(e,t){for(let n=e.length-1;n>=0;n--){const s=e[n];if(s.type==="capability_approval"&&s.approval.approvalId===t)return s}}function hg(e,t){const n=pg(e,t.approval.approvalId);n?n.approval=t.approval:e.push({type:"capability_approval",approval:t.approval})}function gg(e,t){const n=e.findIndex(o=>o.type==="capability_approval"&&o.approval.approvalId===t.approvalId);if(n===-1)return;if(t.outcome!=="timeout"){e.splice(n,1);return}const s=e[n];s.outcome="timeout"}function xg(e,t,n){return e.findIndex(s=>s.type==="mcp_signin"&&s.agentId===t&&s.serverName===n&&s.outcome===void 0)}function yg(e,t){const n={type:"mcp_signin",serverName:t.serverName,agentId:t.agentId,flowId:t.flowId,authorizeUrl:t.authorizeUrl,disclosure:t.disclosure},s=xg(e,t.agentId,t.serverName);s===-1?e.push(n):e[s]=n}function bg(e,t){const n=e.findIndex(o=>o.type==="mcp_signin"&&o.flowId===t.flowId);if(n===-1)return;const s=e[n];s.outcome=t.outcome,t.toolCount!==void 0&&(s.toolCount=t.toolCount)}function kg(e){return e.type==="interaction_resolved"||e.type==="capability_approval_resolved"||e.type==="mcp_signin_resolved"}function vg(e){const t=new Set;for(const n of e)n.type==="interaction_resolved"&&t.add(n.id);return t}function Sg(e){return e.type==="work_left_running"?{type:"work_left_running",tasks:e.tasks.map(t=>({taskId:t.taskId,command:t.command}))}:{type:"model_substituted",from:e.from,fromName:e.fromName,to:e.to,toName:e.toName,reason:e.reason}}function lr(e){return e.tasks.map(t=>t.taskId).join("\0")}function kn(e){return e.type==="work_left_running"}function jg(e,t){const n=new Map;for(const i of t)i.type==="work_left_ended"&&n.set(i.taskId,i.status);const s=new Set;for(const i of e)if(!i._streaming)for(const c of i.parts)kn(c)&&s.add(lr(c));if(n.size===0&&s.size===0)return e;let o=!1;const a=[];for(const i of e){if(!i.parts.some(kn)){a.push(i);continue}const c=i.parts.flatMap(u=>kn(u)?i._streaming&&s.has(lr(u))?[]:u.tasks.some(d=>!d.ended&&n.has(d.taskId))?[{...u,tasks:u.tasks.map(d=>{const m=d.ended??n.get(d.taskId);return m?{...d,ended:m}:d})}]:[u]:[u]);if(c.length===i.parts.length&&c.every((u,d)=>u===i.parts[d])){a.push(i);continue}o=!0,c.length>0&&a.push({...i,parts:c})}return o?a:e}const cr="__in_progress_turn__",wg="__optimistic_user__";function Ng(e){return{id:wg,role:"user",content:e,parts:[{type:"text",text:e}],timestamp:"",_streaming:!0}}function Cg(e){return{id:`steer-${e.messageId}`,role:"user",content:e.content,parts:[{type:"text",text:e.content}],timestamp:"",_streaming:!0,...e.chatMessages&&e.chatMessages.length>0?{chatMessages:e.chatMessages}:{}}}function Tg(e){return{id:`staged-${e.messageId}`,role:"user",content:e.content,parts:[{type:"text",text:e.content}],timestamp:"",_streaming:!0,_stagedContext:!0}}function Pe(e,t){for(let n=e.length-1;n>=0;n--){const s=e[n];if(s.type==="tool_call"&&s.toolCallId===t)return s}}function sn(e,t){for(let n=e.length-1;n>=0;n--){const s=e[n];if(s.type==="elicitation"&&s.interactionId===t)return s}}function Rg(e,t){for(let n=e.length-1;n>=0;n--){const s=e[n];if(s.type==="background_task"&&s.taskId===t)return s}}function Eg(e,t){la(e);const n=e[e.length-1];n&&n.type==="text"?n.text+=t.text:e.push({type:"text",text:t.text})}function Ag(e,t){const n=e[e.length-1];n&&n.type==="thinking"&&n.isStreaming?n.text+=t.text:e.push({type:"thinking",text:t.text,isStreaming:!0})}function la(e){for(const t of e)t.type==="thinking"&&t.isStreaming&&(t.isStreaming=!1)}function _g(e,t,n){const s=Pe(e,t.toolCallId);if(s){t.input!==void 0&&(s.input=(s.input??"")+t.input);return}const o=n.get(t.toolCallId);n.delete(t.toolCallId),e.push({type:"tool_call",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input??"",status:t.status,...o&&o.length>0?{hooks:o}:{}})}function Mg(e,t){const n=Pe(e,t.toolCallId);n?(n.result=t.result,n.status=t.status,t.ui!==void 0&&(n.ui=t.ui),t.result!==void 0&&(n.progressOutput=void 0)):e.push({type:"tool_call",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input??"",result:t.result,status:t.status,...t.ui!==void 0?{ui:t.ui}:{}})}function Ig(e,t){const n=Pe(e,t.toolCallId);n&&(n.progressOutput=(n.progressOutput??"")+t.content)}function ca(e,t){const n={interactiveType:"approval",input:t.input,status:"pending",timeoutMs:t.timeoutMs,approvalStartedAt:t.startedAt,approvalRemainingMs:t.remainingMs,approvalTitle:t.title,approvalDisplayName:t.displayName,approvalDescription:t.description,approvalBlockedPath:t.blockedPath,approvalDecisionReason:t.decisionReason,approvalHasSuggestions:t.hasSuggestions,approvalAlwaysAllowScope:t.alwaysAllowScope},s=Pe(e,t.id);s?Object.assign(s,n):e.push({type:"tool_call",toolCallId:t.id,toolName:t.toolName,...n})}function ua(e,t){const n=Pe(e,t.id),s={timeoutMs:t.timeoutMs,approvalStartedAt:t.startedAt,approvalRemainingMs:t.remainingMs};n?(n.interactiveType="question",n.questions=t.questions,n.status="pending",Object.assign(n,s)):e.push({type:"tool_call",toolCallId:t.id,toolName:"AskUserQuestion",input:"",status:"pending",interactiveType:"question",questions:t.questions,...s})}function da(e,t){const n={serverName:t.serverName,message:t.message,mode:t.mode,url:t.url,elicitationId:t.elicitationId,requestedSchema:t.requestedSchema,status:"pending",startedAt:t.startedAt,remainingMs:t.remainingMs,timeoutMs:t.timeoutMs},s=sn(e,t.id);s?Object.assign(s,n):e.push({type:"elicitation",interactionId:t.id,...n})}function Og(e){return e==="denied"||e==="expired"||e==="cancelled"?"error":e==="answered"?"complete":"running"}function Dg(e,t){const n=Pe(e,t.id);if(n){n.status==="pending"&&(n.status=Og(t.resolution),n.approvalRemainingMs=void 0);const o=Rl(t);o&&(n.interactiveType="approval",n.approvalOutcome=o,n.approvalResolvedAt=t.at,t.reasonGiven===!0&&(n.approvalReasonGiven=!0),n.approvalStartedAt=t.startedAt??n.approvalStartedAt);const a=El(t);a&&(n.questionOutcome=a)}const s=sn(e,t.id);s&&s.status==="pending"&&(s.status="submitted",s.remainingMs=void 0)}function Pg(e,t){for(let n=e.length-1;n>=0;n--){const s=e[n];if(s.type==="tool_call"&&s.hooks){const o=s.hooks.find(a=>a.hookId===t);if(o)return o}}}function $g(e,t){for(const n of e.values()){const s=n.find(o=>o.hookId===t);if(s)return s}}function Fg(e,t,n){const s=Pg(e,t.hookId)??$g(n,t.hookId);if(s){s.status=t.status,t.hookName!==void 0&&(s.hookName=t.hookName),t.stdout!==void 0&&(s.stdout=t.stdout),t.stderr!==void 0&&(s.stderr=t.stderr),t.exitCode!==void 0&&(s.exitCode=t.exitCode);return}if(!t.toolCallId)return;const o={hookId:t.hookId,hookName:t.hookName??"",hookEvent:t.hookEvent??"",status:t.status,stdout:t.stdout??"",stderr:t.stderr??"",...t.exitCode!==void 0?{exitCode:t.exitCode}:{}},a=Pe(e,t.toolCallId);a?a.hooks=[...a.hooks??[],o]:n.set(t.toolCallId,[...n.get(t.toolCallId)??[],o])}function Lg(e,t){const n=e[0];if(n&&n.type==="memory_recall"){const a=new Set(n.memories.map(c=>c.path)),i=t.memories.filter(c=>!a.has(c.path));i.length>0&&(n.memories=[...n.memories,...i]);return}const s=new Set,o=t.memories.filter(a=>s.has(a.path)?!1:(s.add(a.path),!0));e.unshift({type:"memory_recall",mode:t.mode,memories:o,isStreaming:!0})}function Ug(e,t){e.push({type:"image",attachmentId:t.attachmentId,url:t.url,mediaType:t.mediaType,size:t.size,...t.alt!==void 0?{alt:t.alt}:{}})}function qg(e,t){e.push({type:"compact_boundary",...t.trigger!==void 0?{trigger:t.trigger}:{},...t.preTokens!==void 0?{preTokens:t.preTokens}:{},...t.postTokens!==void 0?{postTokens:t.postTokens}:{},...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.requestedBy!==void 0?{requestedBy:t.requestedBy}:{},...t.contextPercent!==void 0?{contextPercent:t.contextPercent}:{}})}function zg(e,t){e.push({type:"permission_denied",toolCallId:t.toolCallId,toolName:t.toolName,message:t.message,...t.reasonType!==void 0?{reasonType:t.reasonType}:{},...t.reason!==void 0?{reason:t.reason}:{},...t.agentId!==void 0?{agentId:t.agentId}:{}})}function Bg(e,t){t.operation!=="compaction"||t.state!=="failed"||e.push({type:"compact_boundary",failed:!0,...t.error!==void 0?{error:t.error}:{},...t.requestedBy!==void 0?{requestedBy:t.requestedBy}:{}})}function Wg(e,t){la(e);const n=t.code!==void 0?t.details!==void 0?`[${t.code}] ${t.details}`:`[${t.code}]`:t.details;e.push({type:"error",message:t.message,...t.category!==void 0?{category:t.category}:{},...n!==void 0?{details:n}:{},...t.code!==void 0?{code:t.code}:{},...t.reason!==void 0?{reason:t.reason}:{}})}function Hg(e,t){const n=Rg(e,t.taskId);n?(n.status=t.status,t.description!==void 0&&(n.description=t.description),t.toolUses!==void 0&&(n.toolUses=t.toolUses),t.lastToolName!==void 0&&(n.lastToolName=t.lastToolName),t.summary!==void 0&&(n.summary=t.summary),t.ambient!==void 0&&(n.ambient=t.ambient)):e.push({type:"background_task",taskId:t.taskId,taskType:"agent",status:t.status,startedAt:0,description:t.description,toolUses:t.toolUses,lastToolName:t.lastToolName,summary:t.summary,ambient:t.ambient})}const Gg={approval:"approval_required",question:"question_prompt",elicitation:"elicitation_prompt"};function Kg(e){const{type:t,...n}=e;return{...n,seq:0,type:Gg[t]}}function Qg(e,t){const n=Pe(e,t);return(n==null?void 0:n.interactiveType)!==void 0?!0:sn(e,t)!==void 0}function Vg(e,t){switch(t.type){case"approval_required":ca(e,t);break;case"question_prompt":ua(e,t);break;case"elicitation_prompt":da(e,t);break}}function Yg(e,t,n){const s=Pe(e,t.id);if(s){!n&&s.result===void 0&&(s.status="pending"),s.approvalStartedAt=t.startedAt,s.approvalRemainingMs=t.remainingMs,t.timeoutMs!==void 0&&(s.timeoutMs=t.timeoutMs),s.approvalParked=t.parked===!0?!0:void 0;return}const o=sn(e,t.id);o&&(o.startedAt=t.startedAt,o.remainingMs=t.remainingMs,t.timeoutMs!==void 0&&(o.timeoutMs=t.timeoutMs))}function Xg(e,t,n){for(const s of t){if(Qg(e,s.id)){Yg(e,s,n.has(s.id));continue}Vg(e,Kg(s)),Jg(e,s)}}function Jg(e,t){if(t.parked!==!0)return;const n=Pe(e,t.id);n&&(n.approvalParked=!0)}function $n(e){const t=[],n=new Map;for(const s of e)switch(s.type){case"text_delta":Eg(t,s);break;case"thinking_delta":Ag(t,s);break;case"tool_call":_g(t,s,n);break;case"tool_result":Mg(t,s);break;case"tool_progress":Ig(t,s);break;case"approval_required":ca(t,s);break;case"question_prompt":ua(t,s);break;case"elicitation_prompt":da(t,s);break;case"capability_approval_required":hg(t,s);break;case"capability_approval_resolved":gg(t,s);break;case"mcp_signin_required":yg(t,s);break;case"mcp_signin_resolved":bg(t,s);break;case"interaction_resolved":Dg(t,s);break;case"subagent_update":Hg(t,s);break;case"hook_update":Fg(t,s,n);break;case"memory_recall":Lg(t,s);break;case"image_attachment":Ug(t,s);break;case"compact_boundary":qg(t,s);break;case"permission_denied":zg(t,s);break;case"model_substituted":case"work_left_running":t.push(Sg(s));break;case"operation_progress":Bg(t,s);break;case"error":Wg(t,s);break}return t}function ur(e,t){if(e.length===0)return null;const n=ss(e);return{id:t,role:"assistant",content:n.content,toolCalls:n.toolCalls.length>0?n.toolCalls:[],parts:e,timestamp:"",_streaming:!0}}function Zg(e,t){const n=[];let s=[],o=0;for(const[c,u]of e.entries()){if(u.type!=="turn_input"&&u.type!=="context_staged"){s.push(u);continue}const d=$n([...s,...e.slice(c+1).filter(kg)]),m=ur(d,`${cr}-${o}`);m&&n.push(m),o+=1,n.push(u.type==="turn_input"?Cg(u):Tg(u)),s=[]}const a=$n(s);Xg(a,t,vg(e));const i=ur(a,cr);return i&&n.push(i),n}function ex(e){const t=new Set;for(const n of e)for(const s of n.parts)s.type==="tool_call"&&t.add(s.toolCallId);return t}function tx(e){return e.type==="tool_call"&&e.result===void 0&&e.answers===void 0&&e.approvalOutcome===void 0&&(e.questionOutcome===void 0||e.questionOutcome==="unresolved")}function nx(e,t){const n=e.parts.filter(o=>o.type!=="tool_call"||!t.has(o.toolCallId)||!tx(o));if(n.length===e.parts.length)return e;if(n.length===0)return null;const s=ss(n);return{...e,parts:n,content:s.content,toolCalls:s.toolCalls.length>0?s.toolCalls:void 0}}function sx(e){let t=e.length;for(;t>0&&e[t-1].role==="assistant";)t-=1;return t}function rx(e,t,n=[],s=null){const o=Zg(t,n),a=ex(o),i=Fm(e),c=a.size===0?i.length:sx(i),u=[];for(const[d,m]of i.entries()){const p=d<c?m:nx(m,a);p&&u.push(p)}return s&&u.push(Ng(s.content)),u.push(...o),jg(u,t)}function dr(e){const t=new Map;for(const n of e)n.type!=="tool_call"||n.approvalOutcome===void 0||t.set(n.toolCallId,{outcome:n.approvalOutcome,resolvedAt:n.approvalResolvedAt,startedAt:n.approvalStartedAt,displayName:n.approvalDisplayName,reasonGiven:n.approvalReasonGiven});return t}function ox(e,t){return e.interactiveType==="approval"&&e.approvalOutcome===t.outcome&&e.approvalResolvedAt===t.resolvedAt&&e.approvalStartedAt===t.startedAt&&e.approvalReasonGiven===t.reasonGiven}function ax(e,t){return t.size===0?e:e.map(n=>{if(!n.parts)return n;let s=!1;const o=n.parts.map(a=>{if(a.type!=="tool_call")return a;const i=t.get(a.toolCallId);return!i||ox(a,i)?a:(s=!0,{...a,interactiveType:"approval",approvalOutcome:i.outcome,approvalResolvedAt:i.resolvedAt,approvalStartedAt:i.startedAt,approvalReasonGiven:i.reasonGiven,...i.displayName!==void 0?{approvalDisplayName:i.displayName}:{}})});return s?{...n,parts:o}:n})}function ix(e,t){var o;if(!t.tail)return t.messages;const n=(o=t.messages[0])==null?void 0:o.id,s=n===void 0?-1:e.findIndex(a=>a.id===n);return s===-1?null:[...e.slice(0,s),...t.messages]}async function lx(e,t,n,s){const o=cx(s());if(o!==void 0){const a=await e.getMessages(t,n,{since:o}),i=ix(s(),a);if(i)return i}return(await e.getMessages(t,n)).messages}function cx(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="user")return e[t].id}function ux({sessionId:e,transport:t,sessionCwd:n,streamState:s,queryClient:o,onStreamingDone:a}){var v;const i=n.cwd,c=l.useRef(e),u=l.useRef(i),d=l.useRef(a);l.useEffect(()=>{c.current=e,u.current=i,d.current=a});const m=l.useRef(new Map),p=l.useRef(new Map),h=l.useRef(new Map),f=l.useRef(new Map),g=l.useRef(new Map),x=((v=s.status)==null?void 0:v.lifecycle)??null,y=s.hydrationGeneration,b=s.userTurnCount;l.useEffect(()=>{var O,F,N;if(!e)return;const j=g.current.get(e);g.current.set(e,b),j!==void 0&&b!==j&&f.current.set(e,!1);const S=p.current.get(e);if(p.current.set(e,y),S!==y){m.current.set(e,x),x==="streaming"&&h.current.set(e,((O=Ce.getState().getSession(e).optimisticUserMessage)==null?void 0:O.id)??null);return}const T=m.current.get(e)??null;if(m.current.set(e,x),x==="streaming"&&T!=="streaming"&&h.current.set(e,((F=Ce.getState().getSession(e).optimisticUserMessage)==null?void 0:F.id)??null),!(T==="streaming"&&x!=="streaming"&&x!==null))return;const E=e,I=h.current.get(E)??null,A=dr($n(Ce.getState().getSession(E).inProgressTurn));lx(t,E,u.current??void 0,()=>Ce.getState().getSession(E).messages).then(k=>{var H;const C=Ce.getState(),w=C.getSession(E),D=((H=w.status)==null?void 0:H.lifecycle)==="streaming",M=new Map([...dr(w.messages.flatMap(G=>G.parts??[])),...A]);C.setHistoryMessages(E,ax(k,M),{preserveInProgressTurn:D});const P=w.optimisticUserMessage;(P===null||P.id===I)&&C.setOptimisticUserMessage(E,null)}).catch(k=>{console.warn("[turn-end-reconcile] history reload failed",{sessionId:E,error:k instanceof Error?k.message:String(k)})}),o.invalidateQueries({queryKey:["tasks",E]}),f.current.get(E)!==!0&&(f.current.set(E,!0),(N=d.current)==null||N.call(d))},[e,x,y,b,t,o])}function dx(e){return e.streamReadyCursor!==null||e.messages.length>0||e.inProgressTurn.length>0||e.optimisticUserMessage!==null}function ma(e,t){const n=dx(e),s=n?e.messages:t,o=mr.get(s);if(o&&o.hydrated===n&&o.inProgressTurn===e.inProgressTurn&&o.pendingInteractions===e.pendingInteractions&&o.optimisticUserMessage===e.optimisticUserMessage&&o.legacyMessages===t)return o.result;const a=n?rx(e.messages,e.inProgressTurn,e.pendingInteractions,e.optimisticUserMessage):t,i=pc(a);return mr.set(s,{hydrated:n,inProgressTurn:e.inProgressTurn,pendingInteractions:e.pendingInteractions,optimisticUserMessage:e.optimisticUserMessage,legacyMessages:t,result:i}),i}const mr=new WeakMap;function mx(e,t={}){const n=be(),s=Yn(),o=ie(K=>K.selectedCwd),a=ie(K=>K.enableMessagePolling),i=ie(K=>K.pendingAccount),c=Mo(),u=e??"",{messages:d,input:m,status:p,error:h,sessionStatus:f,systemStatus:g,operationProgress:x,promptSuggestions:y}=oo(u),b=og(e,c.cwd);ag(e,t.onSessionIdChangeReplace);const v=Al(u),j=l.useMemo(()=>ma(b,d),[b,d]),S=_l(b,p),{streamStartTime:T,estimatedTokens:R,isTextStreaming:E}=lg(e,b.inProgressTurn,S==="streaming");cg(e,b.inProgressTurn,b.streamReadyCursor,t.onTaskEvent);const I=l.useRef(!0);l.useEffect(()=>(I.current=!0,()=>{I.current=!1}),[]);const A=l.useRef(new Map);l.useLayoutEffect(()=>{u&&(A.current.has(u)||A.current.set(u,re.getState().getSession(u).mountGeneration))},[u]);const{setMessages:O,setInput:F,setError:N,setSystemStatus:k,setOperationProgress:C}=Zh(u,I,A);fg(e,b.inProgressTurn,C,k),u&&re.getState().initSession(u),l.useEffect(()=>{e&&(re.getState().initSession(e),re.getState().touchSession(e),A.current.set(e,re.getState().getSession(e).mountGeneration))},[e]),l.useEffect(()=>{if(e)return ht.getState().clearUnseen(e),ht.subscribe(K=>{K.unseen[e]!==void 0&&ht.getState().clearUnseen(e)})},[e]);const{historyQuery:w}=eg({sessionId:e,sid:u,transport:n,sessionCwd:c,enableMessagePolling:a,isStreaming:S==="streaming",streamHydrated:b.streamReadyCursor!==null,setMessages:O}),D=Rh(o,e,{startFreshSession:t.startFreshSession,compact:t.compactIntent}),{handleSubmit:M,submitContent:P,enqueueContent:H,steerContent:G,addContextContent:V,stop:B,retryMessage:L,submitKickoff:X,markToolCallResponded:_}=ng({sessionId:e,input:m,status:S,transport:n,queryClient:s,selectedCwd:o,onSessionIdChangeReplace:t.onSessionIdChangeReplace,transformContent:t.transformContent,launchRuntime:t.launchRuntime,agentPath:t.agentPath,agentLookupPending:t.agentLookupPending,agentLookupFailed:t.agentLookupFailed,launchAccount:(i==null?void 0:i.sessionId)===u?i.id:null,takeSeedContext:t.takeSeedContext,setInput:F,setError:N,tryNativeCommand:D.tryRun}),q=b.streamReadyCursor!==null,te=l.useCallback((K,Z)=>P(K,Z?{cwd:Z}:void 0),[P]);rg({sessionId:e,cwd:o,status:S,messages:j,hydrated:q,canStart:!t.agentLookupPending&&!t.agentLookupFailed,submitKickoff:X,submitContent:te}),ux({sessionId:e,transport:n,sessionCwd:c,streamState:b,queryClient:s,onStreamingDone:t.onStreamingDone});const $=w.isLoading&&j.length===0,J=l.useMemo(()=>j.flatMap(K=>K.toolCalls||[]).filter(K=>K.interactiveType&&K.status==="pending"),[j]),oe=J[0]||null,ne=oe!==null,de=(oe==null?void 0:oe.interactiveType)||null;return{messages:j,input:m,setInput:F,handleSubmit:M,submitContent:P,enqueueContent:H,steerContent:G,addContextContent:V,status:S,error:h,stop:B,retryMessage:L,isLoadingHistory:$,hydrated:q,sessionStatus:f,streamStartTime:T,estimatedTokens:R,isTextStreaming:E,isWaitingForUser:ne,waitingType:de,activeInteraction:oe,pendingInteractions:J,markToolCallResponded:_,systemStatus:g,operationProgress:x,promptSuggestions:y,syncConnectionState:v,tryNativeCommand:D.tryRun,commandPending:D.commandPending}}function fx(e){switch(e.outcome){case"acked":return{message:"You stopped this reply.",isFailure:!1};case"closed":return{message:"Stopped. Your agent didn’t answer, so DorkOS ended it.",isFailure:!1};case"not-running":return{message:null,isFailure:!1};case"unconfirmed":return{message:`Stop requested. ${hx(e.runtime)} didn’t confirm, so it may still be working.`,isFailure:!1};case"failed":return{message:"Couldn’t stop it. Try again.",isFailure:!0}}}function px(e,t){return!Jn(e)||e.outcome==="not-running"&&t}function hx(e){switch(e){case"claude-code":return"Claude Code";case"codex":return"Codex";case"opencode":return"OpenCode";case"doe":return"DorkOS";default:return"Your agent"}}function gx(){const e=ie(d=>d.showTaskCelebrations),[t,n]=l.useState(null),[s,o]=l.useState(null),a=l.useRef(null),i=l.useRef(!1);l.useEffect(()=>{const d=window.matchMedia("(prefers-reduced-motion: reduce)");i.current=d.matches;const m=p=>{i.current=p.matches};return d.addEventListener("change",m),()=>d.removeEventListener("change",m)},[]),Qu({timeoutMs:Xe.IDLE_TIMEOUT_MS,onIdle:l.useCallback(()=>{var d;(d=a.current)==null||d.setIdle(!0)},[]),onReturn:l.useCallback(()=>{var d,m;(d=a.current)==null||d.setIdle(!1),(m=a.current)==null||m.onUserReturn()},[])}),l.useEffect(()=>{const d=new td({enabled:e,miniProbability:Xe.MINI_PROBABILITY,debounceWindowMs:Xe.DEBOUNCE_WINDOW_MS,debounceThreshold:Xe.DEBOUNCE_THRESHOLD,minTasksForMajor:Xe.MIN_TASKS_FOR_MAJOR,idleTimeoutMs:Xe.IDLE_TIMEOUT_MS,onCelebrate:m=>{i.current&&m.level==="major"?n({...m,level:"mini"}):n(m),m.level==="mini"&&o(m.taskId)}});return a.current=d,()=>d.destroy()},[e]);const c=l.useCallback((d,m)=>{var p;d.action==="update"&&d.task.status==="completed"&&d.task.id&&((p=a.current)==null||p.onTaskCompleted(d.task.id,m))},[]),u=l.useCallback(()=>{n(null),o(null)},[]);return{handleTaskEvent:c,activeCelebration:t,celebratingTaskId:s,clearCelebration:u}}function vn(){return{tasks:new Map,statusTimestamps:new Map,legacyCreateCount:0}}function xx(e){const t={};for(const[n,s]of Object.entries(e))s!==void 0&&s!==""&&(t[n]=s);return t}function Sn(e,t,n){switch(t.action){case"snapshot":{e.tasks.clear(),e.statusTimestamps.clear();const s=t.tasks??[t.task];for(const o of s)e.tasks.set(o.id,o),e.statusTimestamps.set(o.id,{status:o.status,since:n});return}case"create":{const s=t.task.id||`legacy:${e.legacyCreateCount++}`,o=s===t.task.id?t.task:{...t.task,id:s};e.tasks.set(s,o),e.statusTimestamps.set(s,{status:o.status,since:n});return}case"id_assigned":{const s=t.previousId;if(!s)return;const o=e.tasks.get(s);if(!o)return;const a=t.task.id;e.tasks.delete(s),e.tasks.set(a,{...o,id:a});const i=e.statusTimestamps.get(s);e.statusTimestamps.delete(s),e.statusTimestamps.set(a,i??{status:o.status,since:n});return}case"remove":{e.tasks.delete(t.task.id),e.statusTimestamps.delete(t.task.id);return}case"update":{if(!t.task.id)return;const s=e.tasks.get(t.task.id);if(!s)return;e.tasks.set(t.task.id,{...s,...xx(t.task)}),t.task.status&&t.task.status!==s.status&&e.statusTimestamps.set(t.task.id,{status:t.task.status,since:n});return}}}function fr(e,t){var n;return(n=e.blockedBy)!=null&&n.length?e.blockedBy.some(s=>{const o=t.get(s);return o&&o.status!=="completed"}):!1}function yx(e,t){return[...e].sort((n,s)=>{const o=n.status==="in_progress"?0:n.status==="pending"&&!fr(n,t)?1:n.status==="pending"?2:3,a=s.status==="in_progress"?0:s.status==="pending"&&!fr(s,t)?1:s.status==="pending"?2:3;return o-a})}const bx=10;let pr=0;function Pt(e){return e==="streaming"||e==="blocked"}function kx(e,t=!1){const n=be(),o=Mo().cwd,a=ie(A=>A.enableMessagePolling),i=_o(),[c,u]=l.useState(vn()),d=ao(e??""),[m,p]=l.useState(()=>!Pt(d)),h=l.useRef([]),f=l.useRef(0),{data:g}=ut({queryKey:["tasks",e,o],queryFn:async()=>{const A=++pr;return{...await n.getTasks(e,o??void 0),fetchOrder:A}},staleTime:3e4,refetchOnWindowFocus:!1,enabled:e!==null,refetchInterval:()=>!a||t?!1:i?Ge.ACTIVE_TAB_REFETCH_MS:Ge.BACKGROUND_TAB_REFETCH_MS}),x=l.useRef(null);l.useEffect(()=>{const A=`${e??""}::${o??""}`,O=x.current!==A;if(x.current=A,O&&(h.current=[],f.current=0,u(vn())),!g||g.fetchOrder<=f.current)return;f.current=g.fetchOrder;const F=vn();g.tasks.length>0&&Sn(F,{action:"snapshot",task:g.tasks[0],tasks:g.tasks},Date.now()),h.current=h.current.filter(({order:N})=>N>g.fetchOrder);for(const{event:N,receivedAt:k}of h.current)Sn(F,N,k);u(F)},[g,e,o]);const y=l.useCallback(A=>{const O=Date.now();A.action==="snapshot"&&(h.current=[]),h.current.push({order:++pr,event:A,receivedAt:O}),u(F=>{const N={tasks:new Map(F.tasks),statusTimestamps:new Map(F.statusTimestamps),legacyCreateCount:F.legacyCreateCount};return Sn(N,A,O),N})},[]),b=l.useRef(!1),v=l.useCallback(()=>{p(A=>(b.current=!A,!A))},[]),j=l.useRef(Pt(d));l.useEffect(()=>{const A=Pt(d);A!==j.current&&(j.current=A,A?b.current||p(!1):p(!0))},[d]);const S=l.useRef(null);l.useEffect(()=>{const A=`${e??""}::${o??""}`;if(S.current===A)return;S.current=A;const O=Pt(d);j.current=O,b.current=!1,p(!O)},[e,o,d]);const T=Array.from(c.tasks.values()),R=yx(T,c.tasks),E=T.find(A=>A.status==="in_progress"),I=(E==null?void 0:E.activeForm)??null;return{tasks:R.slice(0,bx),taskMap:c.tasks,activeForm:I,isCollapsed:m,toggleCollapse:v,handleTaskEvent:y,statusTimestamps:c.statusTimestamps}}function vx(e){const t=l.useRef(null),[n,s]=l.useState(0),[o,a]=l.useState(!1),[i,c]=l.useState(0),u=l.useCallback(b=>{t.current=b,c(b&&"getOptionCount"in b?b.getOptionCount():0)},[]);l.useEffect(()=>{s(0),c(0),a(!1)},[e==null?void 0:e.toolCallId]);const d=l.useMemo(()=>e!=null&&e.interactiveType?{type:e.interactiveType,toolCallId:e.toolCallId}:null,[e]),m=l.useCallback(()=>{const b=t.current;b&&"approve"in b&&b.approve()},[]),p=l.useCallback(()=>{const b=t.current;b&&"alwaysAllow"in b&&b.alwaysAllow()},[]),h=l.useCallback(()=>{const b=t.current;b&&"deny"in b&&b.deny()},[]),f=l.useCallback(b=>{const v=t.current;v&&"toggleOption"in v&&(v.toggleOption(b),s(b),a(!0))},[]),g=l.useCallback(b=>{if(!o){a(!0);return}s(v=>{const j=t.current,S=j&&"getOptionCount"in j?j.getOptionCount():0;return S===0?v:b==="up"?v<=0?S-1:v-1:v>=S-1?0:v+1})},[o]),x=l.useCallback(b=>{const v=t.current;v&&"navigateQuestion"in v&&(v.navigateQuestion(b),s(0),a(!0),c(v.getOptionCount()))},[]),y=l.useCallback(()=>{const b=t.current;b&&"submit"in b&&b.submit()},[]);return Vu({activeInteraction:d,onApprove:m,onAlwaysAllow:p,onDeny:h,onToggleOption:f,onNavigateOption:g,onNavigateQuestion:x,onSubmit:y,optionCount:i,focusedIndex:n}),{handleToolRef:u,focusedOptionIndex:o?n:-1}}function $t(e,t,n){var a;const s=e.length;if(s===0)return 0;let o=(t%s+s)%s;for(let i=0;i<s;i++){if(!((a=e[o])!=null&&a.disabled))return o;o=(o+n+s)%s}return t}function Sx({commands:e,input:t,cursorPos:n}){const[s,o]=l.useState(!1),[a,i]=l.useState(""),[c,u]=l.useState(-1),d=l.useMemo(()=>a?e.map(T=>({cmd:T,rank:vd(a,T)})).filter(T=>T.rank.match).sort((T,R)=>T.rank.bucket-R.rank.bucket||R.rank.score-T.rank.score).map(({cmd:T,rank:R})=>({...T,matchedAlias:R.matchedAlias})):e,[e,a]),[m,p]=l.useState(null),h=m!==null&&m.query===a&&m.open===s?m.index:$t(d,0,1),f=d[h],g=d.length===0||f!==void 0&&!f.disabled?h:$t(d,0,1),x=l.useCallback((T,R)=>{const I=T.slice(0,R).match(/(^|\s)\/([\w:-]*)$/);return I?(o(!0),i(I[2]),u((I.index??0)+I[1].length),!0):(o(!1),!1)},[]),y=l.useCallback(T=>{const R=t.slice(0,c),E=t.slice(c+1+a.length);return o(!1),R+T.fullCommand+(E.startsWith(" ")?"":" ")+E},[t,a,c]),b=l.useCallback(()=>{p({query:a,open:s,index:$t(d,g+1,1)})},[d,g,a,s]),v=l.useCallback(()=>{p({query:a,open:s,index:$t(d,g-1,-1)})},[d,g,a,s]),j=l.useCallback(()=>{const T=d[g];return T&&!T.disabled?y(T):(T||o(!1),null)},[d,g,y]),S=l.useCallback(()=>{o(!1),i("")},[]);return{showCommands:s,setShowCommands:o,commandQuery:a,selectedIndex:g,filteredCommands:d,slashTriggerPos:c,detectCommandTrigger:x,handleCommandSelect:y,handleArrowUp:v,handleArrowDown:b,handleKeyboardSelect:j,resetCommand:S}}function jx({fileEntries:e,input:t,cursorPos:n}){const[s,o]=l.useState(!1),[a,i]=l.useState(""),[c,u]=l.useState(0),[d,m]=l.useState(-1),p=l.useMemo(()=>s?a?e.map(v=>({...v,...Lt(a,v.path)})).filter(v=>v.match).sort((v,j)=>j.score-v.score).slice(0,50):e.slice(0,50).map(v=>({...v,indices:[]})):[],[e,a,s]);l.useEffect(()=>{u(0)},[a,s]),l.useEffect(()=>{p.length>0&&c>=p.length&&u(p.length-1)},[p.length,c]);const h=l.useCallback((v,j)=>{const T=v.slice(0,j).match(/(^|\s)@([\w./:-]*)$/);return T?(o(!0),i(T[2]),m((T.index??0)+T[1].length),!0):(o(!1),!1)},[]),f=l.useCallback(v=>{const j=t.slice(0,d),S=t.slice(d+1+a.length);if(v.isDirectory){const R=j+"@"+v.path+S,E=j.length+1+v.path.length;return i(v.path),u(0),{newValue:R,newCursorPos:E,keepOpen:!0}}const T=j+"@"+v.path+" "+S;return o(!1),{newValue:T,keepOpen:!1}},[t,d,a]),g=l.useCallback(()=>{u(v=>p.length===0?0:(v+1)%p.length)},[p.length]),x=l.useCallback(()=>{u(v=>p.length===0?0:(v-1+p.length)%p.length)},[p.length]),y=l.useCallback(()=>p.length>0&&c<p.length?f(p[c]):(o(!1),null),[p,c,f]),b=l.useCallback(()=>{o(!1),i("")},[]);return{showFiles:s,setShowFiles:o,fileQuery:a,fileSelectedIndex:c,filteredFiles:p,fileTriggerPos:d,detectFileTrigger:h,handleFileSelect:f,handleArrowUp:x,handleArrowDown:g,handleKeyboardSelect:y,resetFiles:b}}function wx({input:e,setInput:t,commands:n,fileEntries:s}){const[o,a]=l.useState(0),i=Sx({commands:n,input:e,cursorPos:o}),c=jx({fileEntries:s,input:e,cursorPos:o}),u=l.useCallback((R,E)=>{if(c.detectFileTrigger(R,E)){i.setShowCommands(!1);return}if(i.detectCommandTrigger(R,E)){c.setShowFiles(!1);return}c.setShowFiles(!1),i.setShowCommands(!1)},[c,i]),d=l.useRef({value:e,cursor:0});l.useEffect(()=>{d.current.value=e},[e]);const m=l.useCallback(R=>{t(R),d.current={value:R,cursor:d.current.cursor||R.length},u(R,d.current.cursor)},[t,u]),p=l.useCallback(R=>{a(R),d.current={value:d.current.value,cursor:R},u(d.current.value,R)},[u]),h=l.useCallback(R=>{const E=i.handleCommandSelect(R);t(E)},[i,t]),f=l.useCallback(R=>{const E=c.handleFileSelect(R);t(E.newValue),E.newCursorPos!==void 0&&a(E.newCursorPos)},[c,t]),g=l.useCallback(()=>{c.showFiles?c.handleArrowDown():i.handleArrowDown()},[c,i]),x=l.useCallback(()=>{c.showFiles?c.handleArrowUp():i.handleArrowUp()},[c,i]),y=l.useCallback(()=>{if(c.showFiles){const R=c.handleKeyboardSelect();R&&(t(R.newValue),R.newCursorPos!==void 0&&a(R.newCursorPos))}else if(i.showCommands){const R=i.handleKeyboardSelect();R&&t(R)}},[c,i,t]),b=l.useCallback(()=>{i.setShowCommands(!1),c.setShowFiles(!1)},[i,c]),v=i.showCommands||c.showFiles,j=c.showFiles&&c.filteredFiles.length>0||i.showCommands&&i.filteredCommands.length>0,S=c.showFiles?"file-palette-listbox":i.showCommands?"command-palette-listbox":void 0,T=c.showFiles&&c.filteredFiles.length>0?`file-item-${c.fileSelectedIndex}`:i.showCommands&&i.filteredCommands.length>0?`command-item-${i.selectedIndex}`:void 0;return{commands:{show:i.showCommands,filtered:i.filteredCommands,selectedIndex:i.selectedIndex},files:{show:c.showFiles,filtered:c.filteredFiles,selectedIndex:c.fileSelectedIndex},isPaletteOpen:v,paletteHasResults:j,activeDescendantId:T,paletteListboxId:S,handleInputChange:m,handleCursorChange:p,handleArrowUp:x,handleArrowDown:g,handleKeyboardSelect:y,handleCommandSelect:h,handleFileSelect:f,dismissPalettes:b}}function Nx(e,t,n){const s=ie(i=>i.setIsStreaming),o=ie(i=>i.setIsWaitingForUser),a=ie(i=>i.setIsTextStreaming);l.useEffect(()=>(s(e==="streaming"),()=>s(!1)),[e,s]),l.useEffect(()=>(o(t),()=>o(!1)),[t,o]),l.useEffect(()=>(a(n),()=>a(!1)),[n,a])}function Cx(){const e=be(),t=ie(h=>h.selectedCwd),[n,s]=l.useState([]),o=l.useCallback(h=>{const f=h.map(g=>({id:crypto.randomUUID(),file:g,status:"pending",progress:0}));s(g=>[...g,...f])},[]),a=l.useCallback(h=>{s(f=>f.filter(g=>g.id!==h))},[]),i=l.useCallback(()=>{s([])},[]),c=l.useCallback(h=>{s(f=>f.map(g=>g.id===h&&g.status==="error"?{...g,status:"pending",progress:0,error:void 0}:g))},[]),u=l.useRef(null),d=xt({meta:{suppressErrorToast:!0},mutationFn:async h=>{if(!t)throw new Error("No working directory selected");s(y=>y.map(b=>h.some(v=>v.id===b.id)?{...b,status:"uploading"}:b));const f=y=>{s(b=>b.map(v=>v.status==="uploading"?{...v,progress:y.percentage}:v))},g=new AbortController;u.current=g;const x=h.map(y=>y.file);return e.uploadFiles(x,t,f,g.signal)},onSettled:()=>{u.current=null},onSuccess:(h,f)=>{s(g=>g.map(x=>{const y=f.findIndex(b=>b.id===x.id);return y===-1?x:{...x,status:"uploaded",progress:100,result:h[y]}}))},onError:h=>{s(f=>f.map(g=>g.status==="uploading"?{...g,status:"error",error:h.message}:g))}}),m=l.useCallback(()=>{var h;(h=u.current)==null||h.abort()},[]),p=l.useCallback(async()=>{const h=n.filter(y=>y.status==="error");if(h.length>0)throw new Error(h.length===1?`${h[0].file.name} did not upload. Retry it or remove it, then send again.`:`${h.length} attachments did not upload. Retry them or remove them, then send again.`);const f=n.filter(y=>y.status==="uploaded"&&y.result).map(y=>y.result.savedPath),g=n.filter(y=>y.status==="pending");if(g.length===0)return f;const x=await d.mutateAsync(g);return[...f,...x.map(y=>y.savedPath)]},[n,d]);return{pendingFiles:n,addFiles:o,removeFile:a,retryFile:c,clearFiles:i,cancelUpload:m,uploadAndGetPaths:p,hasPendingFiles:n.length>0,hasFailedUpload:n.some(h=>h.status==="error"),isUploading:d.isPending}}const jn=new Set,wn=new Set;function Tx(e,t){return`${e}\0${t}`}function Rx({sessionId:e,prompt:t,autoSend:n,input:s,setInput:o,messageCount:a,hydrated:i,status:c,submitBlocked:u=!1,submit:d,onSeeded:m,onConsumed:p}){const h=t!=null&&t.trim()?t:void 0,f=e&&h?Tx(e,h):null;l.useEffect(()=>{if(!(!f||!h)&&!jn.has(f)&&i){if(jn.add(f),s.length>0||a>0){wn.add(f),p==null||p();return}o(h),m==null||m(),n||p==null||p()}},[f,h,n,s,i,a,o,m,p]),l.useEffect(()=>{!f||!h||!n||wn.has(f)||jn.has(f)&&s===h&&(!i||a>0||c==="streaming"||u||(wn.add(f),p==null||p(),d()))},[f,h,n,s,i,a,c,u,d,p])}const hr=Ml-256,gr=`
|
|
40
|
-
…(context truncated)`,xr={"/":"the home team room","/activity":"the activity feed","/team":"the team page","/session":"a chat session","/tasks":"the scheduled-work page","/channels":"a channel","/workspaces":"the workspaces page","/connections":"the connections page","/marketplace":"the marketplace","/feedback-requests":"the feedback requests page","/threads":"the threads page","/todos":"the to-dos page"};function Ex(e){const t=`/${e.split("/").filter(Boolean)[0]??""}`;return xr[e]??xr[t]??`the ${e} page`}function Ax(e){const t=['The person opened this conversation by pressing "Ask DorkBot" in the DorkOS sidebar, so they are asking for help with DorkOS itself. Greet them with what you can see below and offer the next step; do not repeat this back to them.'];e.originPath!==null&&t.push(`They were on ${Ex(e.originPath)} (${e.originPath}).`),t.push(e.agentNames.length===1?"They have 1 agent registered.":`They have ${e.agentNames.length} agents registered.`),e.agentNames.length>0&&t.push(`Their agents: ${e.agentNames.join(", ")}.`),e.version!==null&&t.push(e.updateReady?`They are running DorkOS v${e.version}, and a newer version is ready to install.`:`They are running DorkOS v${e.version}.`),e.erroredSessionIds.length>0&&t.push(`These conversations ended in an error and may be what they want help with: ${e.erroredSessionIds.join(", ")}.`);const n=t.join(`
|
|
41
|
-
`);return n.length<=hr?n:n.slice(0,hr-gr.length)+gr}const _x="dorkbot-help",Ft=new Set;function Mx({sessionId:e,seed:t,messageCount:n,hydrated:s,onConsumed:o}){const a=t===_x&&e!==null,{data:i}=Il({enabled:a}),{data:c}=qn(),u=ht(Ol(h=>Object.entries(h.statuses).filter(([,f])=>f.lifecycle==="error").map(([f])=>f))),d=l.useRef({agentNames:[],version:null,updateReady:!1,erroredSessionIds:[]}),m=l.useRef({armed:a,sessionId:e,messageCount:n}),p=l.useRef(o);return l.useEffect(()=>{const h=(c==null?void 0:c.latestVersion)??null,f=(c==null?void 0:c.version)??null;d.current={agentNames:((i==null?void 0:i.agents)??[]).map(g=>g.displayName??g.name),version:f,updateReady:h!==null&&f!==null&&vc(h,f),erroredSessionIds:u}},[i,c,u]),l.useEffect(()=>{m.current={armed:a,sessionId:e,messageCount:n},p.current=o},[a,e,n,o]),l.useEffect(()=>{!a||e===null||!s||n===0||Ft.has(e)||(Ft.add(e),o==null||o())},[a,e,s,n,o]),l.useCallback(()=>{var f;const h=m.current;if(!(!h.armed||h.sessionId===null)&&!(h.messageCount>0)&&!Ft.has(h.sessionId))return Ft.add(h.sessionId),(f=p.current)==null||f.call(p),Ax({...d.current,originPath:Dl()})},[])}function Ix(e,t,n,s=!1){if(e!=="error"||t||s)return!1;let o=-1;for(let i=n.length-1;i>=0;i--)if(n[i].role==="user"){o=i;break}return!n.slice(o+1).some(i=>i.parts.some(c=>c.type==="error"&&c.code!==Qr))}const Ox=4e3;function Dx(e){const t=e.approvalDisplayName||kt(e.toolName,e.input??"");return e.approvalOutcome==="allowed"?`Allowed ${t}. Recorded in the chat.`:e.approvalOutcome==="denied"?`Didn’t allow ${t}. Recorded in the chat.`:`${t} wasn’t answered in time, so it didn’t run. Recorded in the chat.`}function Px(e,t){const n=l.useRef(null),s=l.useRef(null),[o,a]=l.useState({text:"",nonce:0});return l.useEffect(()=>{s.current!==t&&(s.current=t,n.current=null);const i=e.filter(d=>d.type==="tool_call"&&d.approvalOutcome!==void 0);if(n.current===null){n.current=new Set(i.map(d=>d.toolCallId));return}const c=i.filter(d=>!n.current.has(d.toolCallId));if(c.length===0)return;for(const d of c)n.current.add(d.toolCallId);const u=c.length===1?Dx(c[0]):`Answered ${c.length} permission requests. Recorded in the chat.`;a(d=>({text:u,nonce:d.nonce+1}))},[e,t]),l.useEffect(()=>{if(o.text==="")return;const i=setTimeout(()=>a(c=>({text:"",nonce:c.nonce})),Ox);return()=>clearTimeout(i)},[o]),o.text===""?"":o.nonce%2===0?o.text:`${o.text}`}const yr=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],br=5e3,$x=1e3,Fx=1500,Lx=new Set;function Ux(e){const t=l.useRef(new Map),n=io({byTask:new Map,assigned:0}),[s,o]=l.useState(Lx),[,a]=l.useState(0),i=l.useMemo(()=>{const u=new Map;for(const d of e)for(const m of d.parts)m.type==="background_task"&&u.set(m.taskId,m);return u},[e]);l.useEffect(()=>{if(!Array.from(i.values()).some(m=>m.taskType==="bash"&&m.status==="running"&&Date.now()-m.startedAt<br))return;const d=setInterval(()=>{a(m=>m+1)},$x);return()=>clearInterval(d)},[i]);const c=l.useRef(new Set);return l.useLayoutEffect(()=>{for(const[u,d]of i)t.current.get(u)==="running"&&d.status!=="running"&&!Is(d)&&o(p=>p.has(u)?p:new Set(p).add(u)),t.current.set(u,d.status)},[i]),l.useEffect(()=>{for(const u of s)c.current.has(u)||(c.current.add(u),setTimeout(()=>{c.current.delete(u),o(d=>{if(!d.has(u))return d;const m=new Set(d);return m.delete(u),m})},Fx))},[s]),l.useMemo(()=>{const u=Date.now(),d=[],m=n.read();let p=m.assigned;for(const[h,f]of i){const g=f.status==="running",x=s.has(h);if(!g&&!x||f.taskType==="bash"&&g&&u-f.startedAt<br)continue;let y=m.byTask.get(h);y===void 0&&(y=yr[p%yr.length],p+=1,m.byTask.set(h,y),n.write({byTask:m.byTask,assigned:p})),d.push({taskId:f.taskId,taskType:f.taskType,status:f.status,color:y,startedAt:f.startedAt,description:f.description,toolUses:f.toolUses,lastToolName:f.lastToolName,durationMs:f.durationMs,summary:f.summary,command:f.command,ambient:Is(f)})}return d},[i,s,n])}const qx=new Set(["streaming","blocked"]);function zx(e,t){return e.length===0||e[0].waitingOn!==void 0||t&&qx.has(t)?e:e.slice(1)}function Nn(e,t,n){return`${e} ${e===1?t:n}`}const kr={"delivery-owed":"a helper’s report","waiting-on-person":"your answer","timer-pending":"a reminder the agent set"},Bx={"timer-pending":"Switching now cancels the reminder."};function Wx(e){const{agents:t,shells:n,other:s}=e.holding,o=[t>0?Nn(t,"helper","helpers"):void 0,n>0?Nn(n,"command","commands"):void 0,s>0?Nn(s,"background job","background jobs"):void 0].filter(d=>d!==void 0),a=o.length===0?void 0:o.length===1?o[0]:`${o.slice(0,-1).join(", ")} and ${o.at(-1)}`,i=e.pins,c=i.includes("cwd")&&e.targetFolderName?`moves to ${e.targetFolderName}`:i.includes("agentIdentity")?"switches agents":i.includes("systemPromptAppend")?"loads new instructions":"applies new settings";return{line:`${a!==void 0?`Held for ${a}.`:e.because!==void 0&&kr[e.because]!==void 0?`Held for ${kr[e.because]}.`:"Held until the agent is free."} Sending it ${c}.`,switchHint:a!==void 0?`Switching now stops ${a}.`:(e.because!==void 0?Bx[e.because]:void 0)??"Switching now stops what the agent is doing."}}const Hx={"session-idle":null,unsupported:"Queued. This agent can’t take a message mid-task.","not-steerable":"Couldn’t cut in. It’s waiting in line.","not-stageable":null,"turn-owned-elsewhere":"Couldn’t cut in: something else is running it. It’s waiting in line.","pending-interaction":"Queued. The agent needs your answer first."};function Gx(e){return e!=null&&e.degradedBecause?Hx[e.degradedBecause]:null}function vr(e){return(e==null?void 0:e.code)==="QUEUED_MESSAGE_NOT_FOUND"}function Kx({sessionId:e,waiting:t,onEnqueue:n}){const s=be(),o=Pl(e??""),[a,i]=l.useState(null),c=l.useMemo(()=>t.map(S=>({id:S.id,content:S.content,mine:s.clientId===void 0||S.enqueuedBy===s.clientId,fromChat:S.fromChats!==void 0||S.enqueuedBy.startsWith("chat:"),...S.fromChats!==void 0||S.enqueuedBy.startsWith("chat:")?{sender:yh(S.fromChats)}:{},notice:Gx(o[S.id]),...S.waitingOn?{waiting:Wx(S.waitingOn)}:{}})),[t,o,s.clientId]),u=l.useMemo(()=>{if(a===null)return null;const S=c.findIndex(T=>T.id===a);return S===-1?null:S},[a,c]),d=l.useCallback(()=>{var S;if(e)return(S=Ce.getState().getSession(e).queuedMessages[0])==null?void 0:S.id},[e]),m=l.useCallback((S,T)=>{S().catch(R=>{vr(R)||Ie.error(T)})},[]),p=l.useCallback(async S=>{const T=S.trim();return!T||!e?!1:n(T)},[e,n]),h=l.useCallback((S,T)=>{e&&m(()=>s.updateQueuedMessage(e,S,{content:T}),"Couldn’t save that change")},[e,s,m]),f=l.useCallback(S=>{i(T=>T===S?null:T),e&&m(()=>s.removeQueuedMessage(e,S),"Couldn’t take that message off the queue")},[e,s,m]),g=l.useCallback((S,T)=>{if(!e)return;const R=E=>s.updateQueuedMessage(e,S,{move:{before:E}});m(async()=>{try{await R(T)}catch(E){if(!vr(E))throw E;const I=d();if(I===void 0||I===S)return;await R(I)}},"Couldn’t move that message")},[e,s,m,d]),x=l.useCallback(S=>c.findIndex(R=>R.id===S)<=0?!1:(i(R=>R===S?null:R),g(S,c[0].id),!0),[c,g]),y=l.useCallback(S=>{const T=c.findIndex(R=>R.id===S);T<=0||g(S,c[T-1].id)},[c,g]),b=l.useCallback(S=>{const T=c.find(R=>R.id===S);return!T||T.fromChat?null:(i(S),T.content)},[c]),v=l.useCallback(()=>{i(null)},[]),j=l.useCallback(S=>{a!==null&&(h(a,S),i(null))},[a,h]);return{queue:c,editingId:a,editingIndex:u,addToQueue:p,removeFromQueue:f,sendNow:x,moveUp:y,startEditing:b,cancelEditing:v,saveEditing:j,updateQueued:h}}function fa(e,t){return e===null?null:`${e} ${t??""}`}function Sr(e,t,n){for(let s=t;s>=0&&s<e.length;s+=n)if(!e[s].fromChat)return s;return-1}function Qx({input:e,setInput:t,sessionId:n,selectedCwd:s,waiting:o,onEnqueue:a,onSteer:i,onStage:c,tryNativeCommand:u,chatInputRef:d}){const m=l.useRef(""),p=l.useRef(null),h=fa(n,s);l.useEffect(()=>{m.current="",p.current=null},[h]);const f=Kx({sessionId:n,waiting:o,onEnqueue:a}),g=f.cancelEditing;l.useEffect(()=>{g()},[h,g]);const x=l.useCallback(()=>{const D=f.editingId;if(D===null)return;const M=e.trim();M&&(f.updateQueued(D,M),Th(M)&&Ie.warning("Saved as a command. It runs instead of sending."))},[e,f]),y=Rn(f.editingId),b=Rn(f.updateQueued);l.useEffect(()=>{const D=n;return()=>{const M=y.read();if(M===null||!D)return;const P=re.getState(),H=P.getSession(D).input.trim();H&&b.read()(M,H),P.updateSession(D,{input:m.current})}},[h]);const v=l.useCallback(D=>{const M=e.trim();if(!M)return;const P=u(M);if(P.handled){if(!P.ran)return;P.confirmed?Pn(n,M,P.confirmed):t("");return}if(p.current===M)return;p.current=M,rt.getState().recordOpened("session",n),s&&rt.getState().recordOpened("agent",s);const H=D(M);H.finally(()=>{p.current===M&&(p.current=null)}),Pn(n,M,H)},[e,s,n,t,u]),j=l.useCallback(()=>v(D=>f.addToQueue(D)),[v,f]),S=l.useCallback(()=>{i&&v(i)},[v,i]),T=l.useCallback(()=>{c&&v(c)},[v,c]),R=l.useCallback(D=>{var H,G;if(f.editingId===D){(H=d.current)==null||H.focus();return}const M=f.editingId!==null;M&&x();const P=f.startEditing(D);P!==null&&(M||(m.current=e),t(P),(G=d.current)==null||G.focus())},[e,f,x,t,d]),E=l.useCallback(()=>{if(f.editingId===null)return;const D=e.trim();if(!D)return;const M=u(D);if(M.handled){M.ran&&(f.cancelEditing(),t(m.current));return}f.saveEditing(D),t(m.current)},[e,f,t,u]),I=l.useCallback(()=>{f.cancelEditing(),t(m.current)},[f,t]),A=l.useCallback(D=>{f.editingId===D&&t(m.current),f.removeFromQueue(D)},[f,t]),O=l.useCallback(D=>{const M=f.editingId===D;M&&x(),f.sendNow(D)&&M&&t(m.current)},[f,x,t]),F=l.useCallback(D=>{f.moveUp(D)},[f]),N=l.useCallback(D=>{var H;const M=(H=f.queue[D])==null?void 0:H.id;if(M!==void 0&&M===f.editingId)return;x();const P=M===void 0?null:f.startEditing(M);if(P===null){f.cancelEditing(),t(m.current);return}t(P)},[f,x,t]),k=l.useCallback(()=>{x(),f.cancelEditing(),t(m.current)},[x,f,t]),C=l.useCallback(()=>{const{editingIndex:D,queue:M}=f,P=Sr(M,(D??M.length)-1,-1);if(D===null){if(P===-1)return;m.current=e,N(P)}else P!==-1?N(P):k()},[N,e,k,f]),w=l.useCallback(()=>{const{editingIndex:D,queue:M}=f;if(D===null)return;const P=Sr(M,D+1,1);P!==-1?N(P):k()},[N,k,f]);return{queue:f.queue,editingId:f.editingId,editingIndex:f.editingIndex,handleQueue:j,handleSteer:S,handleStage:T,handleQueueEdit:R,handleQueueSaveEdit:E,handleQueueCancelEdit:I,handleQueueRemove:A,handleQueueSend:O,handleQueueMoveUp:F,handleQueueNavigateUp:C,handleQueueNavigateDown:w,leaveQueueForStop:k}}const Vx=5e3,jr=3;function pa(){try{const e=Number(localStorage.getItem(lo.PLACEHOLDER_HINT_CYCLES));return Number.isFinite(e)&&e>0?e:0}catch{return 0}}function Yx(){const e=pa()+1;try{localStorage.setItem(lo.PLACEHOLDER_HINT_CYCLES,String(e))}catch{}return e}function Xx(e){const t=[...e];for(let n=t.length-1;n>0;n--){const s=Math.floor(Math.random()*(n+1));[t[n],t[s]]=[t[s],t[n]]}return t}function Jx({defaultText:e,hints:t,enabled:n,intervalMs:s=Vx}){const[o]=l.useState(()=>t.length>0?Xx(t):[]),[a,i]=l.useState(()=>pa()>=jr),[c,u]=l.useState({key:0,hintIndex:-1}),d=l.useRef(0),m=l.useRef(0),p=l.useRef(!1);return l.useEffect(()=>{if(a||!n||t.length===0){p.current&&(p.current=!1,d.current+=1,u({key:d.current,hintIndex:-1}));return}const f=setInterval(()=>{if(d.current+=1,p.current=!p.current,!p.current){u({key:d.current,hintIndex:-1});return}const g=m.current%t.length;m.current+=1,m.current%t.length===0&&Yx()>=jr&&i(!0),u({key:d.current,hintIndex:g})},s);return()=>clearInterval(f)},[n,t.length,s,a]),{text:c.hintIndex>=0?o[c.hintIndex]??e:e,key:c.key}}const Cn=/[.!?…:](?=\s|$)|\n/g;function wr(e,t,n){const s=e.startsWith(t)?t.length:0,o=e.slice(0,s),a=e.slice(s);if(a.trim()==="")return{chunk:"",announced:o};if(n)return{chunk:a.trim(),announced:e};Cn.lastIndex=0;let i=-1;for(let c=Cn.exec(a);c!==null;c=Cn.exec(a))i=c.index+c[0].length;return i===-1?{chunk:"",announced:o}:{chunk:a.slice(0,i).trim(),announced:e.slice(0,s+i)}}const Zx=1500,ey=4e3,ty=400;function ny({messageId:e,text:t,isStreaming:n}){const s=l.useRef(new Map),[o,a]=l.useState({text:"",nonce:0});return l.useEffect(()=>{if(e===void 0)return;if(s.current.get(e)===void 0){if(!n)return;s.current.clear(),s.current.set(e,{announced:t.length<=ty?"":t})}const c=s.current.get(e),{chunk:u,announced:d}=wr(t,c.announced,!1);c.announced=d,u!==""&&a(p=>({text:u,nonce:p.nonce+1}));const m=setTimeout(()=>{const p=wr(t,c.announced,!0);c.announced=p.announced,p.chunk!==""&&a(h=>({text:p.chunk,nonce:h.nonce+1}))},Zx);return()=>clearTimeout(m)},[e,t,n]),l.useEffect(()=>{if(o.text==="")return;const i=setTimeout(()=>a(c=>({text:"",nonce:c.nonce})),ey);return()=>clearTimeout(i)},[o]),o.text===""?"":o.nonce%2===0?o.text:`${o.text}`}function sy({text:e,indices:t,startOffset:n=0}){const s=new Set(t.map(o=>o-n));return r.jsx(r.Fragment,{children:e.split("").map((o,a)=>s.has(a)?r.jsx("span",{className:"text-foreground font-semibold",children:o},a):r.jsx("span",{children:o},a))})}function ry({filteredFiles:e,selectedIndex:t,onSelect:n}){return l.useEffect(()=>{const s=document.getElementById(`file-item-${t}`);s&&s.scrollIntoView({block:"nearest"})},[t]),r.jsx(Q.div,{initial:{opacity:0,scale:.98,y:4},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:4},transition:{duration:.15,ease:[0,0,.2,1]},className:"bg-popover max-h-80 overflow-hidden rounded-lg border shadow-lg",onMouseDown:s=>s.preventDefault(),children:r.jsx("div",{id:"file-palette-listbox",role:"listbox",className:"max-h-72 overflow-y-auto p-1.5",children:e.length===0?r.jsx("div",{className:"text-muted-foreground px-2 py-4 text-center text-sm",children:"No files found."}):e.map((s,o)=>{const a=o===t,i=s.isDirectory?$l:So;return r.jsxs("div",{id:`file-item-${o}`,role:"option","aria-selected":a,"data-selected":a,tabIndex:a?0:-1,onClick:()=>n(s),onKeyDown:c=>{c.key==="Enter"&&n(s)},className:"data-[selected=true]:bg-accent hover:bg-muted flex cursor-pointer items-start gap-2 rounded-md px-2 py-1.5 transition-colors duration-100",children:[r.jsx(i,{className:"text-muted-foreground mt-0.5 size-4 shrink-0"}),r.jsxs("div",{className:"min-w-0",children:[r.jsx("span",{className:"text-foreground truncate text-sm font-medium",children:r.jsx(sy,{text:s.filename,indices:s.indices,startOffset:s.directory.length})}),s.directory&&r.jsx("p",{className:"text-muted-foreground/70 truncate text-xs leading-normal",children:s.directory})]})]},s.path)})})})}function oy(e){const t=be();return ut({queryKey:["files",{cwd:e??null}],queryFn:()=>t.listFiles(e),enabled:!!e,staleTime:Ge.FILES_STALE_TIME_MS,gcTime:Ge.FILES_GC_TIME_MS})}const ha={reactions:!1,threads:!1,runWith:!0,attachments:!0,mentions:!1,streamHealth:!1,presence:!1,turnStatus:!0,asks:!0},ga='[data-testid="model-config-trigger"]',ay=3e3;function iy(e){var t;(t=e==null?void 0:e.querySelector(ga))==null||t.click()}function ly(e,t=ay){const n=Date.now()+t,s=()=>{var a;const o=(a=e())==null?void 0:a.querySelector(ga);if(o)return o.click();Date.now()<n&&setTimeout(s,50)};s()}function cy(e,t){const{openSessionView:n}=Fl();return l.useCallback(()=>{if(!t)return iy(e.current);n(),ly(()=>e.current)},[t,n,e])}const Nr=new WeakMap;function uy(e,t,n,s,o=!0,a){const i=new Set(t),c=new Set(n.flatMap(p=>p.roomMessage?[p.roomMessage.entryId]:[]));let u;const d=o?null:py(n),m=[];for(const p of e){if(p.kind!=="post"||p.threadRootEntryId||p.sessionId!==null&&i.has(p.sessionId)&&(u??(u=my(n)),u.has(p.body.text)||!o&&(d===null||Date.parse(p.createdAt)<d))||c.has(p.id))continue;const h=p.body.todo!==void 0&&a!==void 0&&!a.has(p.authorId);let f=Nr.get(p);if(!f||f._todoCard!==void 0!==h){const g=p.body.text;f={id:`direct-note-${p.id}`,role:s.has(p.authorId)?"assistant":"user",content:g,parts:[{type:"text",text:g}],timestamp:p.createdAt,_directNote:{roomId:p.roomId,entryId:p.id,seq:p.seq},...h&&p.body.todo?{_todoCard:{todoId:p.body.todo.todoId}}:{}},Nr.set(p,f)}m.push(f)}return m}const dy=/(?:^|[_.])(?:post_to_room|relay_notify_user)$/;function my(e){const t=new Set;for(const n of e){if(n.role!=="assistant")continue;const s=[];for(const o of n.parts??[])if(o.type==="text")t.add(o.text),t.add(o.text.trim()),s.push(o.text.trim());else if(o.type==="tool_call"&&o.input&&dy.test(o.toolName))for(const a of fy(o.input))t.add(a);s.length>1&&t.add(s.filter(Boolean).join(`
|
|
42
|
-
|
|
43
|
-
`).trim())}return t}function fy(e){try{const t=JSON.parse(e);return t===null||typeof t!="object"?[]:Object.values(t).filter(n=>typeof n=="string")}catch{return[]}}function py(e){let t=null;for(const n of e){const s=Date.parse(n.timestamp);!Number.isNaN(s)&&(t===null||s<t)&&(t=s)}return t}function hy(e,t){if(t.length===0)return e;const n=[];let s=0;for(const o of e){const a=o.timestamp==="",i=Date.parse(o.timestamp);for(;s<t.length&&(a||!Number.isNaN(i)&&Date.parse(t[s].timestamp)<i);)n.push(t[s]),s+=1;n.push(o)}for(;s<t.length;)n.push(t[s++]);return n}function gy(e,t,n=!0){if(!t||t.entries.length===0)return{messages:e,lastSeenBeforeUnread:null,unreadFromStart:!1};const s=uy(t.entries,t.sessionIds,e,t.agentAuthorIds,n,t.rosterAuthorIds),o=hy(e,s),{readSeq:a}=t,i=a===null?-1:o.findIndex(c=>c._directNote!==void 0&&c.role==="assistant"&&c._directNote.seq>a);return{messages:o,lastSeenBeforeUnread:i>0?o[i-1].id:null,unreadFromStart:i===0}}function xy(e){var m,p,h;const t=Ll(e),n=((m=t.data)==null?void 0:m.roomId)??null,s=Ul(n),o=ql(n),a=s.data,i=o.data;gu(n,i!==void 0),zl(a,i??Cr);const c=((p=a==null?void 0:a.members.find(f=>f.author.id===a.viewerAuthorId))==null?void 0:p.lastReadSeq)??null,u=by(n,c),d=((h=t.data)==null?void 0:h.sessionIds)??yy;return l.useMemo(()=>{const f=s.isError||o.isError,g=n===null||f||i!==void 0&&u!==null;return{roomId:n,entries:i??Cr,sessionIds:d,agentAuthorIds:new Set(((a==null?void 0:a.members)??[]).filter(x=>x.author.kind==="agent").map(x=>x.author.id)),...a?{rosterAuthorIds:new Set([...a.members.map(x=>x.author.id),...(a.formerAuthors??[]).map(x=>x.author.id)])}:{},readSeq:u,ready:e===null||t.isError||t.isFetched&&g}},[e,t.isError,t.isFetched,n,a,i,d,u,s.isError,o.isError])}const yy=[],Cr=[];function by(e,t){const[n,s]=l.useState({key:null,value:null});return n.key===e&&n.value!==null?n.value:e===null||t===null?null:(s({key:e,value:t}),t)}function Tr(e){return e>=1e3?`~${(e/1e3).toFixed(1)}k tokens`:`~${Math.round(e)} tokens`}function ky(e){const{formatted:t}=Ao(e.status==="streaming"?e.streamStartTime:null),n=Or(e.permissionMode),s=l.useRef(e.status),o=l.useRef(t),a=l.useRef(e.estimatedTokens),[i,c]=l.useState(!1);l.useEffect(()=>{e.status==="streaming"&&(o.current=t,a.current=e.estimatedTokens,s.current!=="streaming"&&c(!1))},[e.status,t,e.estimatedTokens]),l.useEffect(()=>{s.current==="streaming"&&e.status==="idle"&&a.current>0&&c(!0),s.current=e.status},[e.status]),l.useEffect(()=>{if(!i)return;const d=setTimeout(()=>c(!1),Yt.TURN_COMPLETE_DISMISS_MS);return()=>clearTimeout(d)},[i]);const u=iu({capabilities:ha,asks:e.asks??ko,stalled:!1,presence:lu,turn:{status:e.status,isWaitingForUser:e.isWaitingForUser,waitingType:e.waitingType,operationProgress:e.operationProgress==null?null:{message:e.operationProgress.message??null,determinate:e.operationProgress.determinate,percent:e.operationProgress.percent??null},systemStatus:e.systemStatus??null,elapsed:t,activity:e.activity,tokens:Tr(e.estimatedTokens),isBypass:n,showComplete:i,lastElapsed:o.current,lastTokens:Tr(a.current)}});return e.quietNumbers?Sy(u):u}const vy={kind:"empty"};function Sy(e){return e.kind==="turn-streaming"?{...e,elapsed:"",tokens:""}:e.kind==="turn-complete"?vy:e}function jy(e,t){var y,b,v,j;const n=Bl(e),s=n.mode==="dm"&&n.chat!==null,o=n.mode==="pending",a=Wl(s?n.chat.agentPath:null),{data:i}=qn(),c=Hl(),u=((b=(y=i==null?void 0:i.profile)==null?void 0:y.displayName)==null?void 0:b.trim())||null,d=t?Zt(t):null,{id:m,name:p}=a,h=((v=a.visual)==null?void 0:v.emoji)??null,f=((j=a.visual)==null?void 0:j.color)??null,g=l.useMemo(()=>o?{agent:null,humanName:null,settled:!1}:s?{agent:m!==null&&p!==null&&h!==null&&f!==null?{id:m,displayName:p,emoji:h,color:f}:null,humanName:u,settled:!0}:null,[o,s,m,p,h,f,u]);if(g===null)return{directMessage:null,humanName:u,transcriptNames:{directMessage:null,humanName:u},placeholder:d?`Message ${d}…`:"Send a message…",quietTurnNumbers:!1};const x=p??d;return{directMessage:g,humanName:u,transcriptNames:{directMessage:g,humanName:u},placeholder:x?`Message ${x}`:"Send a message",quietTurnNumbers:!c}}function wy(e){const{sessionId:t,placeholder:n,files:s}=e,o=l.useRef(e);l.useEffect(()=>{o.current=e});const a=l.useCallback(x=>o.current.files.addFiles(x),[]),i=l.useCallback(x=>o.current.files.removeFile(x),[]),c=l.useCallback(x=>o.current.files.retryFile(x),[]),u=l.useCallback(()=>o.current.files.cancelUpload(),[]),{pendingFiles:d,hasFailedUpload:m,isUploading:p}=s,h=l.useMemo(()=>({staged:d,add:a,remove:i,retry:c,cancel:u,hasFailed:m,isUploading:p,holdsSendWhileUploading:!0}),[d,m,p,a,i,c,u]),f=l.useCallback(async x=>{await o.current.submit(x.text)},[]),g=l.useCallback(async x=>{if(!await o.current.enqueue(x.text))throw new Error("Couldn’t queue that message. Try again.")},[]);return l.useMemo(()=>({kind:"session",id:t,placeholder:n,canSend:t!=="",...t===""?{canSendReason:"Pick a chat, or start a new one."}:{},send:f,queue:g,attachments:h}),[t,n,h,f,g])}function Ny({error:e,composerAgent:t,onRetry:n}){return e.code===Gr&&e.agentId?r.jsx("div",{className:"mx-4 mb-2",children:r.jsx(Io,{agentId:e.agentId,...(t==null?void 0:t.id)===e.agentId?{agentName:Zt(t,"This agent")}:{}})}):r.jsx("div",{className:"mx-4 mb-2",children:r.jsx(nn,{message:e.message,heading:e.heading,subtext:e.message,onRetry:e.retryable?n:void 0})})}const Cy={duration:.16,delay:.08,ease:[.16,1,.3,1]},Ty={duration:0};function Ry({sessionId:e,activeInteraction:t,pendingApprovals:n,focusedOptionIndex:s,onToolRef:o,onToolDecided:a,queueDepth:i=0,allowsDenyReason:c=!0}){const u=g=>a(t.toolCallId,g),d=Le(),{answerAll:m,isAnswering:p,error:h}=Gl(),f=l.useMemo(()=>n.map(g=>({sessionId:e,cwd:"",interaction:{type:"approval",id:g.toolCallId,startedAt:g.approvalStartedAt??0,remainingMs:g.timeoutMs??0,toolName:g.toolName,input:g.input??"",hasSuggestions:g.approvalHasSuggestions??!1}})),[n,e]);return r.jsxs(r.Fragment,{children:[n.length>=2&&r.jsx(Kl,{className:"mb-1.5",headline:`${n.length} tools are waiting on you`,items:n.map(g=>({id:g.toolCallId,line:kt(g.toolName,g.input??"")})),onAllowAll:()=>void m(f,"allow"),onDenyAll:()=>void m(f,"deny"),isAnswering:p,error:h}),r.jsx(me,{mode:"wait",initial:!1,children:r.jsx(Q.div,{initial:d?!1:{opacity:0,y:6},animate:{opacity:1,y:0},transition:d?Ty:Cy,children:t.interactiveType==="approval"?r.jsx(Vr,{ref:o,sessionId:e,toolCallId:t.toolCallId,toolName:t.toolName,input:t.input||"",isActive:!0,onDecided:u,timeoutMs:t.timeoutMs,approvalStartedAt:t.approvalStartedAt,approvalRemainingMs:t.approvalRemainingMs,approvalParked:t.approvalParked,approvalTitle:t.approvalTitle,approvalDisplayName:t.approvalDisplayName,approvalDescription:t.approvalDescription,approvalBlockedPath:t.approvalBlockedPath,approvalDecisionReason:t.approvalDecisionReason,approvalHasSuggestions:t.approvalHasSuggestions,approvalAlwaysAllowScope:t.approvalAlwaysAllowScope,allowsDenyReason:c}):t.interactiveType==="question"&&t.questions?r.jsx(Yr,{ref:o,sessionId:e,toolCallId:t.toolCallId,questions:t.questions,answers:t.answers,isActive:!0,focusedOptionIndex:s,onDecided:u}):null},t.toolCallId)}),i>0&&r.jsx("p",{className:"text-muted-foreground px-1 pt-2 text-xs",children:i===1?"1 message sends once you answer.":`${i} messages send once you answer.`})]})}function Ey({filteredCommands:e,selectedIndex:t,onSelect:n}){const s=l.useMemo(()=>{const o=[],a=new Map;let i=0;for(const c of e){const u=c.namespace??"built-in";a.has(u)||a.set(u,[]),a.get(u).push({cmd:c,index:i++})}for(const[c,u]of a)o.push({namespace:c,items:u});return o},[e]);return l.useEffect(()=>{const o=document.getElementById(`command-item-${t}`);o&&o.scrollIntoView({block:"nearest"})},[t]),r.jsx(Q.div,{initial:{opacity:0,scale:.98,y:4},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:4},transition:{duration:.15,ease:[0,0,.2,1]},className:"bg-popover max-h-80 overflow-hidden rounded-lg border shadow-lg",onMouseDown:o=>o.preventDefault(),children:r.jsx("div",{id:"command-palette-listbox",role:"listbox",className:"max-h-72 overflow-y-auto p-1.5",children:e.length===0?r.jsx("div",{className:"text-muted-foreground px-2 py-4 text-center text-sm",children:"No commands found."}):s.map(({namespace:o,items:a},i)=>r.jsxs("div",{children:[i>0&&r.jsx("div",{className:"bg-border mx-2 my-1.5 h-px"}),r.jsx("div",{className:"text-muted-foreground/70 text-2xs px-2 pt-1.5 pb-1 font-medium tracking-wide uppercase",children:o}),a.map(({cmd:c,index:u})=>{const d=u===t,m=c.disabled===!0;return r.jsxs("div",{id:`command-item-${u}`,role:"option","aria-selected":d,"aria-disabled":m,"data-selected":d,"data-disabled":m,tabIndex:d?0:-1,onClick:()=>{m||n(c)},onKeyDown:p=>{p.key==="Enter"&&!m&&n(c)},className:m?"cursor-not-allowed rounded-md px-2 py-1.5 opacity-45":"data-[selected=true]:bg-accent hover:bg-muted cursor-pointer rounded-md px-2 py-1.5 transition-colors duration-100",children:[r.jsxs("div",{className:"flex min-w-0 items-baseline gap-2",children:[r.jsx("span",{className:"text-foreground text-control shrink-0 font-mono font-medium",children:c.fullCommand}),c.argumentHint&&r.jsx("span",{className:"text-muted-foreground/50 shrink-0 font-mono text-xs",children:c.argumentHint}),m&&c.disabledReason?r.jsx("span",{className:"text-muted-foreground/70 text-2xs ml-auto shrink-0",children:c.disabledReason}):c.matchedAlias&&r.jsxs("span",{className:"text-muted-foreground/60 text-2xs ml-auto shrink-0 font-mono italic",children:["matched /",c.matchedAlias.replace(/^\//,"")]})]}),c.description&&r.jsx("p",{className:"text-muted-foreground mt-0.5 truncate text-xs leading-normal",children:c.description})]},c.fullCommand)})]},o))})})}function Ay(e,t,n,s){return e!==null?`Edit queued message ${e+1} of ${n}. Press Enter to save`:t&&n>0?`Compose another (${n} queued)`:t?"Compose next. It sends when ready":s}function _y({asDirectMessage:e=!1,chatInputRef:t,input:n,autocomplete:s,steerContent:o,addContextContent:a,tryNativeCommand:i,commandPending:c,agentLookupPending:u=!1,agentLookupError:d=!1,status:m,stop:p,setInput:h,sessionId:f,sessionStatus:g,waiting:x,interaction:y,sync:b}){var Oe,Re;const{active:v,pendingApprovals:j,focusedOptionIndex:S,onToolRef:T,onToolDecided:R}=y,E=m==="streaming",I=ie(se=>se.isTextStreaming),[A]=co(),O=be(),{data:F}=es(A),N=Ql(F??null,A??""),k=F?Zt(F):void 0,{target:C}=cu(),w=(C==null?void 0:C.placeholder)??"Send a message…",D=Vl(f),M=Hf(f),P=en(f),H=Jt(P),G=Yl(f),V=((H==null?void 0:H.supportsSteer)??!1)&&(G??!0),B=(H==null?void 0:H.supportsContextStaging)??!1,L=((Oe=H==null?void 0:H.permissionModes)==null?void 0:Oe.denyReason)??!0,X=l.useCallback(async se=>{if((C==null?void 0:C.queue)===void 0)return!1;try{return await C.queue({text:se}),!0}catch{return!1}},[C]),_=Qx({input:n,setInput:h,sessionId:f,selectedCwd:A,waiting:x,onEnqueue:X,onSteer:o,onStage:a,tryNativeCommand:i,chatInputRef:t}),[q,te]=l.useState(null),$=l.useRef(null),J=l.useCallback(se=>{const ae=$.current;if($.current=null,se.length===0)return;const Ee=se.map(De=>ae&&De.id===ae.id?ae.content:De.content).join(`
|
|
44
|
-
|
|
45
|
-
`),Ne=re.getState().getSession(f).input.trim();h(Ne?`${Ne}
|
|
46
|
-
|
|
47
|
-
${Ee}`:Ee)},[f,h]),[oe,ne]=l.useState(null),de=oe===f&&E,K=l.useRef(null),Z=l.useCallback(()=>{K.current=null,ne(null)},[]);l.useEffect(()=>{E||Z()},[E,f,Z]);const je=l.useRef(E);l.useEffect(()=>{je.current=E},[E]);const ke=_.leaveQueueForStop,ee=l.useRef(_.editingId);l.useEffect(()=>{ee.current=_.editingId},[_.editingId]);const we=l.useCallback(()=>{const se=ee.current;if(se!==null){const ae=re.getState().getSession(f).input.trim();ae&&($.current={id:se,content:ae}),ke()}K.current=f,ne(f),p().then(ae=>{J(ae.cancelled),px(ae.receipt,je.current)&&Z();const Ee=fx(ae.receipt);Ee.message!==null&&!Jn(ae.receipt)&&(Ee.isFailure?Ie.error(Ee.message):Ie.warning(Ee.message))}).catch(()=>{Z()})},[f,p,J,Z,ke]),ve=l.useCallback(()=>{if(K.current===f||de)return;if(x.length===0){we();return}const se=x.filter(ae=>ae.enqueuedBy.startsWith("chat:")).length;te({sessionId:f,queuedCount:x.length-se,fromChatCount:se})},[f,de,x.length,we]),qe=l.useCallback(()=>{K.current===f||de||(te(null),we())},[f,de,we]);l.useEffect(()=>{(q==null?void 0:q.sessionId)===f&&x.length===0&&te(null)},[q,f,x.length]);const{messages:ge}=oo(f),xe=so(f),Te=l.useMemo(()=>ma(xe,ge),[xe,ge]),le=Ux(Te),_e=l.useCallback(async se=>{if(f)try{await O.stopTask(f,se)}catch(ae){console.error("[chat] Failed to stop task:",ae)}},[f,O]),he=l.useCallback(()=>{f&&O.switchSessionProcess(f).catch(()=>{Ie.error("Couldn’t switch. Try again.")})},[f,O]),Se=l.useRef(n);l.useEffect(()=>{Se.current=n});const ye=l.useCallback(se=>{var De;const ae=Se.current,Ee=ae.length>0&&!/\s$/.test(ae)?" ":"",Ne=`${ae}${Ee}${se}`;h(Ne),(De=t.current)==null||De.focusAt(Ne.length)},[h,t]);l.useEffect(()=>bu(ye),[ye]);const Me=!E&&_.editingIndex===null,$e=Jx({defaultText:w,hints:Jh,enabled:!e&&Me&&n===""}),ze=vu(),Y=l.useCallback(()=>{s.dismissPalettes(),!(C===null||!C.canSend)&&C.send({text:n})},[s,C,n]),U=l.useCallback(()=>{s.dismissPalettes(),_.handleQueue()},[s,_]),ce=l.useCallback(()=>{s.dismissPalettes(),_.handleSteer()},[s,_]),fe=l.useCallback(()=>{s.dismissPalettes(),_.handleStage()},[s,_]);return r.jsx(bt.Composer,{className:"chat-input-container",onPathDropped:se=>ye(ku(se)),inputRef:t,value:n,onChange:s.handleInputChange,onSubmit:Y,head:r.jsx(me,{children:E&&r.jsx(Yu,{color:N.color,isTextStreaming:I,edge:"top"})}),asks:v?r.jsx(Ry,{sessionId:f,activeInteraction:v,pendingApprovals:j,focusedOptionIndex:S,onToolRef:T,onToolDecided:R,queueDepth:_.queue.length,allowsDenyReason:L}):null,overlays:r.jsx(r.Fragment,{children:r.jsxs(me,{children:[s.commands.show&&r.jsx(Ey,{filteredCommands:s.commands.filtered,selectedIndex:s.commands.selectedIndex,onSelect:s.handleCommandSelect}),s.files.show&&r.jsx(ry,{filteredFiles:s.files.filtered,selectedIndex:s.files.selectedIndex,onSelect:s.handleFileSelect})]})}),queue:r.jsx(me,{children:_.queue.length>0&&r.jsx(vh,{queue:_.queue,editingId:_.editingId,onEdit:_.handleQueueEdit,onRemove:_.handleQueueRemove,onSend:_.handleQueueSend,onMoveUp:_.handleQueueMoveUp,onSwitchNow:he,statusNote:D?"Waiting for your answer above":((Re=_.queue[0])==null?void 0:Re.waiting)!==void 0?"Sending when the agent is free":"Sending one at a time as the agent finishes"})}),aboveInput:r.jsx(hh,{tasks:le,onStopTask:_e}),footer:r.jsx(bt.Footer,{asChild:!0,children:r.jsx(Wh,{sessionId:f,sessionStatus:g,isStreaming:E,syncConnectionState:b.connectionState,agentName:k,agentColor:N.color,agentEmoji:N.emoji,agentPath:A??void 0,lineHidden:e})}),input:{isStreaming:E,commandPending:c,...u||d?{canSubmit:!1,canSubmitReason:d?"Check this folder again before you start.":"Checking this folder…"}:{},...M.canSubmit?{}:{canSubmit:!1},onStop:ve,stopPending:de,onEscape:s.dismissPalettes,onClear:()=>{h(""),s.dismissPalettes()},isPaletteOpen:s.isPaletteOpen,paletteHasResults:s.paletteHasResults,onArrowUp:s.handleArrowUp,onArrowDown:s.handleArrowDown,onCommandSelect:s.handleKeyboardSelect,activeDescendantId:s.activeDescendantId,paletteListboxId:s.paletteListboxId,onCursorChange:s.handleCursorChange,richText:ze,editingQueueItem:_.editingIndex!==null,..._.editingIndex===null?{}:{editingPosition:_.editingIndex+1},queueDepth:_.queue.length,onQueue:U,...V?{onSteer:ce}:{},...B?{onStage:fe}:{},onSaveEdit:_.handleQueueSaveEdit,onCancelEdit:_.handleQueueCancelEdit,onQueueNavigateUp:_.handleQueueNavigateUp,onQueueNavigateDown:_.handleQueueNavigateDown,queueHasItems:_.queue.length>0,contextKey:fa(f,A)??void 0,placeholder:M.placeholder??Ay(_.editingIndex,E,_.queue.length,w),placeholderOverlay:!e&&Me&&M.canSubmit?r.jsx(Nh,{text:$e.text,animationKey:$e.key}):null},children:r.jsx(Sh,{open:(q==null?void 0:q.sessionId)===f,onOpenChange:se=>{se||te(null)},queuedCount:(q==null?void 0:q.queuedCount)??0,fromChatCount:(q==null?void 0:q.fromChatCount)??0,onConfirm:qe})})}const My=e=>{const t=e;return t.role==="user"?r.jsx(Qp,{message:t}):r.jsx(as,{message:t})};function Iy(e){return r.jsx(as,{message:e,show:"reply"})}function xa(e){return e.role==="user"&&!e._stagedContext&&!e._chatStop&&!e._directNote&&e.messageType!=="compaction"&&e.messageType!=="local_command_output"}function Oy(e){const t=[];let n=null,s=null,o=null;for(const a of e){if(xa(a)){n=a.content.trim()||null,s=a.timestamp||null,o=null;continue}a.role!=="assistant"||!ea(a.parts??[])||(o===null&&(o={key:a.id,prompt:n,startedAt:s,replies:[],live:!1},t.push(o)),o.replies.push(a),a._streaming&&(o.live=!0))}return t}function Dy(e){const t=new Map;let n=null;for(const s of e)xa(s)?n=s.timestamp||null:s.role==="assistant"&&n&&t.set(s.id,n);return t}function Py(e,t){if(!e||!t)return null;const n=Date.parse(t)-Date.parse(e);if(!Number.isFinite(n)||n<1e3)return null;const s=Math.floor(n/1e3);if(s<60)return`${s}s`;const o=s%60;return o===0?`${s/60}m`:`${Math.floor(s/60)}m ${o}s`}function $y(e){for(let t=e.length-1;t>=0;t--){const n=e[t];if(!n._streaming)return null;if(n.role==="assistant")return n.id}return null}const Fn=Jl()(e=>({request:null,ask:t=>e({request:{...t}}),consume:()=>e({request:null})}));function ya(e,t){const n=ie.getState();n.setActiveRightPanelTab(Xl),n.setRightPanelOpen(!0),Fn.getState().ask({sessionId:e,turn:t})}const ba="text-muted-foreground mt-1 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs",ka="focus-ring hover:text-foreground inline-flex items-center gap-1 rounded-sm font-medium transition-colors";function Fy({sessionId:e,messageId:t,steps:n,duration:s,describedBy:o}){const a=["Worked"];return n>0&&a.push(`${n} ${n===1?"step":"steps"}`),s&&a.push(s),r.jsxs("div",{className:ba,"data-testid":"dm-worked-line",children:[r.jsx("span",{children:a.join(" · ")}),r.jsxs("button",{type:"button",className:ka,"aria-describedby":o,onClick:()=>ya(e,t),children:[r.jsx(ec,{className:"size-3.5","aria-hidden":!0}),"Show work"]})]})}function Ly({sessionId:e}){const t=uo(e);return r.jsxs("div",{className:ba,"data-testid":"dm-working-line",children:[r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"bg-primary size-1.5 shrink-0 rounded-full motion-safe:animate-pulse"}),Zl("streaming",t)]}),r.jsx("button",{type:"button",className:ka,onClick:()=>ya(e,"live"),children:"Watch"})]})}function Uy(e,t){for(const n of Object.keys({...e,...t}))if(!(n==="grouping"||n==="author"||n==="feedPosition")&&!Object.is(e[n],t[n]))return!1;return e.grouping.position===t.grouping.position&&Rr(e.author,t.author)&&Rr(e.feedPosition,t.feedPosition)}function Rr(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(s=>Object.is(e[s],t[s]))}const qy=l.memo(zy,Uy);function zy({message:e,grouping:t,author:n,sessionId:s,isNew:o=!1,isStreaming:a=!1,isLatestWidgetMessage:i=!0,isFinalMessage:c=!0,activeToolCallId:u=null,onToolRef:d,focusedOptionIndex:m=-1,onToolDecided:p,onRetry:h,onSigninComplete:f,onChooseModel:g,inputZoneToolCallId:x=null,textEffect:y,runtimeLabel:b,allowsDenyReason:v,directRoomId:j,fallbackAt:S,foldWork:T=!1,turnStartedAt:R,liveReply:E=!1,feedPosition:I}){var q,te;const A=l.useId(),O=`${A}-author`,F=`${A}-content`,N=l.useRef(null),k=t.position==="first"||t.position==="only",C=e.role==="user",w=C&&!!e.promptSource&&e.promptSource.kind!=="channel",D=C&&e.messageType!=="local_command_output"&&!w,M=C?(q=e.chatMessages)==null?void 0:q[0]:void 0,P=C&&M===void 0?e.roomMessage:void 0,H=D&&M===void 0&&e.promptSource===void 0&&(P===void 0||((te=P.author)==null?void 0:te.you)===!0)&&e.messageType!=="command"&&e.messageType!=="compaction"&&e.content.trim().length>0,G=e.timestamp||S||"",V=G?Ht(G):"",B=V.length>0,L=B?G:void 0,X=l.useCallback(()=>{var $;return($=N.current)==null?void 0:$.focus()},[]),_=T&&e.role==="assistant";return r.jsx(vo,{value:{sessionId:s,isStreaming:a,isLatestWidgetMessage:i,isFinalMessage:c,activeToolCallId:u,onToolRef:d,focusedOptionIndex:m,onToolDecided:p,onRetry:h,onSigninComplete:f,onChooseModel:g,inputZoneToolCallId:x,textEffect:y,runtimeLabel:b,allowsDenyReason:v},children:r.jsxs(Je.Root,{ref:N,role:D?"user":"assistant",position:t.position,isNew:o,"data-testid":"message-item","data-role":e.role,...k?{"aria-labelledby":O}:{"aria-label":B?`${n.displayName}, ${V}`:n.displayName},"aria-describedby":F,...du(I),children:[r.jsx(Je.Gutter,{author:n,at:L}),r.jsxs(Je.Body,{children:[r.jsx(Je.Author,{id:O,author:n,at:L,...M?{mark:r.jsx(Wo,{stamp:M}),className:"flex-wrap gap-y-0.5"}:P&&P.roomId!==j?{mark:r.jsx(_m,{stamp:P}),className:"flex-wrap gap-y-0.5"}:e.promptSource?{className:"flex-wrap gap-y-0.5"}:{}}),(P==null?void 0:P.via)&&r.jsx(uu,{via:P.via}),r.jsx(Je.Content,{id:F,children:_?Iy(e):My(e,{rowId:e.id})}),_&&E&&r.jsx(Ly,{sessionId:s}),_&&!E&&ea(e.parts??[])&&r.jsx(Fy,{sessionId:s,messageId:e.id,steps:hp(e.parts??[]),duration:Py(R,e.timestamp),describedBy:F}),H&&r.jsx(Je.Actions,{runWith:{prompt:e.content,sessionId:s},onExit:X})]})]})})}function By({loading:e,onLoad:t}){return r.jsx("div",{className:"flex justify-center px-4 py-3",children:r.jsxs(ue,{type:"button",variant:"ghost",size:"sm",onClick:t,disabled:e,"data-testid":"session-load-earlier",className:"text-muted-foreground hover:text-foreground h-7 gap-2 text-xs",children:[e&&r.jsx(Ue,{size:"xs"}),e?"Loading earlier messages…":"Earlier messages"]})})}const Er="Conversation",Wy={kind:"notice",id:"session-load-earlier",at:"",body:null},Hy=[];function Gy(e){for(let t=e.length-1;t>=0;t--)if(e[t].content.includes(Nu))return t;return-1}function Ky({messages:e,sessionId:t,isLoadingHistory:n=!1,hydrated:s=!1,isTextStreaming:o=!1,activeToolCallId:a=null,onToolRef:i,focusedOptionIndex:c=-1,onToolDecided:u,onRetry:d,onSigninComplete:m,onChooseModel:p,inputZoneToolCallId:h=null,textEffect:f,runtimeLabel:g,allowsDenyReason:x,landOnRow:y,foldFirstPrompt:b=!1,directLog:v,directMessage:j=null,humanName:S=null}){const T=mt(i),R=mt(u),E=mt(d),I=mt(m),A=mt(p),O=qm(t,e),F=O.messages,{stops:N}=yo(t),k=!O.canLoadEarlier,C=l.useMemo(()=>gy(F,v,k),[F,v,k]),w=l.useMemo(()=>Tm(C.messages,N),[C.messages,N]),D=l.useMemo(()=>{let Y=0;return w.map(U=>U._chatStop||U._directNote?-1:Y++)},[w]),M=io(null);M.read()===null&&F.length>0&&M.write(O.messagesBefore+F.length);const P=l.useMemo(()=>Gy(w),[w]),H=l.useMemo(()=>b&&!O.canLoadEarlier?w.findIndex(Y=>Y.role==="user"&&Y.messageType===void 0&&!Y._stagedContext&&!Y._chatStop&&!Y._directNote):-1,[b,O.canLoadEarlier,w]),G=Qt(t),V=ie(Y=>Y.selectedCwd),B=en(t),{data:L}=es(V),X=(j==null?void 0:j.agent)??null,_=(j==null?void 0:j.settled)===!0,[q]=l.useState(()=>new Map),te=l.useCallback(Y=>{if(!_||Y.timestamp||!Y._streaming)return;const U=q.get(Y.id);if(U)return U;const ce=new Date().toISOString();return q.set(Y.id,ce),ce},[_,q]);l.useEffect(()=>{const Y=new Set(w.map(U=>U.id));for(const U of q.keys())Y.has(U)||q.delete(U)},[w,q]);const $=(j==null?void 0:j.humanName)??S,J=(j==null?void 0:j.settled)===!0,oe=l.useMemo(()=>J?Dy(w):null,[J,w]),ne=l.useMemo(()=>J?$y(w):null,[J,w]),de=l.useMemo(()=>({agent:X??(L?{id:L.id,displayName:Zt(L),...lt(L)}:null),runtime:B,...$?{humanName:$}:{}}),[L,B,X,$]),K=F[F.length-1],Z=(K==null?void 0:K.role)==="assistant"?K:void 0,je=ny({messageId:Z==null?void 0:Z.id,text:(Z==null?void 0:Z.content)??"",isStreaming:Z!==void 0&&o}),ke=Px((K==null?void 0:K.parts)??Hy,t),{lastSeenMessageId:ee,unreadFromStart:we,markSeen:ve,isHydrated:qe}=Ld(t,F,O.messagesBefore),[ge,xe]=l.useState(()=>Date.now()),Te=l.useRef(null);l.useLayoutEffect(()=>{const Y=Date.now(),U=new Date(Y).toDateString();if(Te.current===null){Te.current=U;return}Te.current!==U&&(Te.current=U,xe(Y))},[w]);const le=l.useCallback(Y=>Xd(Y,de),[de]),[_e]=l.useState(em),he=l.useMemo(()=>tm(w,{resolveAuthor:le,now:ge,lastSeenMessageId:C.lastSeenBeforeUnread??ee,unreadFromStart:C.unreadFromStart||we,cache:_e}),[w,le,ge,ee,we,C,_e]),[Se]=l.useState(()=>new WeakMap),ye=l.useMemo(()=>{const Y=he.map(U=>{const ce=Se.get(U);if(ce)return ce;const fe=U.kind==="day-divider"?{kind:"day-divider",id:U.key,label:U.label}:U.kind==="unread-divider"?{kind:"unread-divider",id:U.key}:{kind:"message",id:U.key,payload:U.message,grouping:U.grouping,author:U.author,at:U.message.timestamp};return Se.set(U,fe),fe});return O.canLoadEarlier?[Wy,...Y]:Y},[he,Se,O.canLoadEarlier]),Me=O.canLoadEarlier?1:0,$e=l.useCallback((Y,U)=>{var De,Ct;if(Me===1&&U.index===0)return r.jsx(By,{loading:O.isLoadingEarlier,onLoad:O.loadEarlier});const ce=he[U.index-Me];if(ce.kind==="day-divider")return r.jsx(xu,{label:ce.label});if(ce.kind==="unread-divider")return r.jsx(yu,{});const{message:fe,messageIndex:Oe}=ce;if(fe._stagedContext)return r.jsx(Jm,{content:fe.content});if(fe._chatStop)return r.jsx("div",{className:"px-4 py-1",children:r.jsx($m,{notice:fe._chatStop})});if(fe._todoCard)return r.jsx("div",{className:"px-4 py-1",children:r.jsx(mu,{todoId:fe._todoCard.todoId,sessionId:t})});if(Oe===H)return r.jsx(ym,{content:((Ct=(De=fe.chatMessages)==null?void 0:De[0])==null?void 0:Ct.text)??fe.content});const Re=D[Oe]??Oe,se=Re>=0&&Re===F.length-1,ae=se&&fe.role==="assistant",Ee=P===-1||Oe>=P,Ne=M.read();return r.jsx(qy,{message:fe,grouping:ce.grouping,author:ce.author,sessionId:t,directRoomId:v==null?void 0:v.roomId,fallbackAt:te(fe),foldWork:J,turnStartedAt:oe==null?void 0:oe.get(fe.id),liveReply:ne===fe.id,isNew:Ne!==null&&O.messagesBefore+Re>=Ne,isStreaming:ae&&o,isLatestWidgetMessage:Ee,isFinalMessage:se,activeToolCallId:a,onToolRef:T,focusedOptionIndex:c,onToolDecided:R,onRetry:E,onSigninComplete:I,onChooseModel:A,inputZoneToolCallId:h,textEffect:f,runtimeLabel:g,allowsDenyReason:x,feedPosition:{index:Re+1,total:F.length}})},[he,Me,O.isLoadingEarlier,O.loadEarlier,O.messagesBefore,F.length,D,P,H,t,v==null?void 0:v.roomId,te,J,oe,ne,M,o,a,T,c,R,E,I,A,h,f,g,x]),ze=G&&G.kind!=="first-message"&&G.fired&&!G.greetingFailed&&s?G:null;return r.jsx(bt.Timeline,{conversationId:t,label:Er,rows:ye,renderRow:$e,landOn:"unread",landingReady:qe&&!O.isSeeking&&((v==null?void 0:v.ready)??!0),...y===void 0?{}:{landOnRow:y},onReachedBottom:ve,transcriptAnnouncement:je,approvalAnnouncement:ke,className:"pt-12 [--conversation-thumb-top:3rem]",loading:n?r.jsx(fu,{label:Er,busy:!0,className:"flex h-full items-center justify-center","data-testid":"transcript-feed-loading",children:r.jsxs("div",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[r.jsx(qo,{}),"Loading chat…"]})}):void 0,empty:r.jsx("div",{className:"flex h-full items-center justify-center",children:r.jsx(dm,{birthRecord:G,firstLightRecord:ze})}),"data-testid":"message-list",feedTestId:"transcript-feed"})}function Qy({sessionId:e,launchRuntime:t,launchPrompt:n,launchSend:s=!1,launchSeed:o,onLaunchConsumed:a,landOnRow:i}){var ys,bs,ks;const[,c]=jt(),u=Yn(),d=l.useRef(null),m=l.useRef(null),p=xy(e),h=kx(e),f=uo(e??""),g=gx(),{play:x}=hc(),[y]=co(),{data:b,isPending:v,isError:j,refetch:S}=es(y),{sessions:T}=Un(),R=e!==null&&!T.some(z=>z.id===e),E=tc(e),I=Cx(),A=l.useCallback(async z=>{let Ae=z;if(I.hasPendingFiles){const Ve=await I.uploadAndGetPaths(),vs=y?Ve.map(Rt=>Rt.startsWith(y)?Rt.slice(y.length).replace(/^\//,""):Rt):Ve;vs.length>0&&(Ae=`Please read the following uploaded file(s):
|
|
48
|
-
${vs.map(Aa=>`- ${Aa}`).join(`
|
|
49
|
-
`)}
|
|
50
|
-
|
|
51
|
-
${Ae}`),I.clearFiles()}return Ae},[I,y]),O=l.useCallback(z=>{h.handleTaskEvent(z);const Ae=h.tasks.map(Ve=>Ve.id===z.task.id?{...Ve,...z.task}:Ve);g.handleTaskEvent(z,Ae)},[h,g]);l.useCallback(z=>{c(z),u.invalidateQueries({queryKey:He.bySession(z)})},[c,u]);const F=l.useCallback(z=>{c(z,{replace:!0}),u.invalidateQueries({queryKey:He.bySession(z)})},[c,u]),N=l.useCallback(z=>{c(crypto.randomUUID(),{continuedFrom:z??void 0,draft:!0})},[c]),k=eo(e??""),C=Jt(k.runtime),w=k.runtime?Vt(k.runtime).label:"",D=((ys=C==null?void 0:C.permissionModes)==null?void 0:ys.denyReason)??!0,M=l.useMemo(()=>oa(C==null?void 0:C.commandIntents,w),[C,w]),P=l.useRef(null),H=l.useCallback(()=>{var z;return(z=P.current)==null?void 0:z.call(P)},[]),{messages:G,input:V,setInput:B,handleSubmit:L,submitContent:X,enqueueContent:_,steerContent:q,addContextContent:te,status:$,error:J,stop:oe,isLoadingHistory:ne,hydrated:de,sessionStatus:K,streamStartTime:Z,estimatedTokens:je,isTextStreaming:ke,isWaitingForUser:ee,waitingType:we,activeInteraction:ve,pendingInteractions:qe,markToolCallResponded:ge,systemStatus:xe,operationProgress:Te,promptSuggestions:le,syncConnectionState:_e,retryMessage:he,tryNativeCommand:Se,commandPending:ye}=mx(e,{transformContent:A,onTaskEvent:O,onSessionIdChangeReplace:F,startFreshSession:N,compactIntent:M,launchRuntime:t,...b&&y?{agentPath:y}:{},agentLookupPending:y!==null&&v,agentLookupFailed:y!==null&&j,takeSeedContext:H,onStreamingDone:l.useCallback(()=>{x("turn-end"),u.invalidateQueries({queryKey:["commands"]})},[x,u])}),Me=l.useCallback(z=>X(z,{clearInput:!0}),[X]),{permissionMode:$e,permissionModeKnown:ze}=to(e,K,$==="streaming"),Y=Kc(e,k.runtime,ze?$e:void 0),U=nc(z=>z.setOpen);l.useEffect(()=>{U(!1)},[e,U]);const{handleToolRef:ce,focusedOptionIndex:fe}=vx(ve);Nx($,ee,ke),l.useEffect(()=>{var z;(z=d.current)==null||z.focusUnlessTouch()},[e]);const Oe=l.useCallback(()=>{var z;(z=d.current)==null||z.focusUnlessTouch()},[]);Rx({sessionId:e,prompt:n,autoSend:s,input:V,setInput:B,messageCount:G.length,hydrated:de,status:$,submitBlocked:R&&y!==null&&(v||j),submit:L,onSeeded:Oe,onConsumed:a});const Re=Mx({sessionId:e,seed:o,messageCount:G.length,hydrated:de,onConsumed:a});l.useEffect(()=>{P.current=Re},[Re]);const se=k.runtime?zn(k.runtime):void 0,{data:ae}=gc(y,e??void 0,k.runtime??void 0),Ee=l.useMemo(()=>Ah((ae==null?void 0:ae.commands)??[],{commandIntents:C==null?void 0:C.commandIntents,runtimeLabel:w}),[ae,C,w]),{data:Ne}=oy(y),De=l.useMemo(()=>Ne!=null&&Ne.files?nm(Ne.files):[],[Ne]),Ct=wx({input:V,setInput:B,commands:Ee,fileEntries:De}),ls=l.useCallback(()=>{const z=[...G].reverse().find(Ae=>Ae.role==="user");z!=null&&z.content&&X(z.content)},[G,X]),cs=Qt(e??""),va=l.useCallback(()=>{const z=sm(G,cs);z&&he(z)},[G,cs,he]),us=$==="idle"&&le.length>0&&V.length===0,Sa=sc("chat.suggestion-chips"),ja=Gf(e??""),wa=Ix($,J,G,ja),Na=l.useMemo(()=>G.some(z=>z.role==="user"),[G]),ds=l.useCallback(z=>{var Ae;B(z),(Ae=d.current)==null||Ae.focus()},[B]),Tt=rc(e??""),rn=ao(e??""),Ca=l.useMemo(()=>zx(Tt,rn),[Tt,rn]),ms=(ks=(bs=Zn(e??""))==null?void 0:bs.lastError)==null?void 0:ks.category,on=lm(),fs=l.useCallback(()=>{const z=e??"";if(on.claimedElsewhere(z))return!1;const Ae=om({messages:G,status:$,lastErrorCategory:ms,queuedCount:Tt.length,draft:re.getState().getSession(z).input});return Ae===null?!1:(on.claim(z),X(Ae),!0)},[G,$,ms,Tt.length,e,X,on]),dt=jy(e,b),ps=cy(m,dt.directMessage!==null),Ta=wy({sessionId:e??"",placeholder:dt.placeholder,submit:Me,enqueue:_,files:I}),{eligible:hs,allow:gs,notNow:xs}=Od($==="streaming"),Ra=l.useMemo(()=>[{id:"prompt-suggestions",show:us,render:()=>r.jsx(uc,{suggestions:le,onChipClick:ds})},{id:"permission-primer",show:hs,render:()=>r.jsx(Id,{onAllow:gs,onNotNow:xs})},{id:"read-only-mode",show:Y.eligible,render:()=>r.jsx(Qc,{runtimeLabel:Y.runtimeLabel,onShown:Y.markShown,onDismiss:Y.dismiss})}],[us,le,ds,hs,gs,xs,Y]),Ea=ky({asks:ko,status:$,streamStartTime:Z,estimatedTokens:je,permissionMode:$e,isWaitingForUser:ee??!1,waitingType:we??"approval",operationProgress:Te,systemStatus:xe,activity:f,quietNumbers:dt.quietTurnNumbers});return r.jsx(bt.Root,{surface:"session",capabilities:ha,target:Ta,children:r.jsxs("div",{ref:m,"data-testid":"chat-panel","data-turn-status":$,"data-turn-lifecycle":rn??void 0,className:"flex h-full w-full flex-col",children:[r.jsx(fm,{sessionId:e}),r.jsx(gm,{startedBy:E,modes:C==null?void 0:C.permissionModes.values}),r.jsx(Ky,{messages:G,sessionId:e,isLoadingHistory:ne,hydrated:de,isTextStreaming:ke,activeToolCallId:(ve==null?void 0:ve.toolCallId)??null,onToolRef:ce,focusedOptionIndex:fe,onToolDecided:ge,onRetry:ls,onSigninComplete:fs,onChooseModel:ps,inputZoneToolCallId:(ve==null?void 0:ve.toolCallId)??null,runtimeLabel:se,allowsDenyReason:D,...i===void 0?{}:{landOnRow:i},foldFirstPrompt:E!==null,directLog:p,...dt.transcriptNames}),r.jsx(Vh,{terminalReason:K==null?void 0:K.terminalReason}),r.jsx(bt.LiveLane,{state:Ea,scope:"session"}),r.jsx(xc,{candidates:Ra,ready:de,name:"session-bottom-slot",className:"px-4 pb-2"}),$==="idle"&&Sa.map(z=>r.jsx(z.component,{},z.id)),r.jsx(zm,{celebration:g.activeCelebration,onComplete:g.clearCelebration}),r.jsx(sh,{tasks:h.tasks,taskMap:h.taskMap,activeForm:h.activeForm,isCollapsed:h.isCollapsed,onToggleCollapse:h.toggleCollapse,celebratingTaskId:g.celebratingTaskId,onCelebrationComplete:g.clearCelebration,statusTimestamps:h.statusTimestamps}),wa&&r.jsx(Xh,{sessionId:e,onRetry:Na?ls:void 0,onSigninComplete:fs,onChooseModel:ps}),J&&r.jsx(Ny,{error:J,composerAgent:b,onRetry:va}),R&&j&&r.jsx("div",{className:"mx-4 mb-2",children:r.jsx(nn,{heading:"Couldn’t check this folder",message:"DorkOS couldn’t tell if an agent owns this folder. Try again.",onRetry:()=>void S()})}),e&&r.jsx(Uf,{sessionId:e,onSend:z=>void X(z)}),r.jsx(_y,{asDirectMessage:dt.directMessage!==null,chatInputRef:d,input:V,autocomplete:Ct,steerContent:q,addContextContent:te,tryNativeCommand:Se,commandPending:ye,agentLookupPending:R&&y!==null&&v,agentLookupError:R&&y!==null&&j,status:$,stop:oe,setInput:B,sessionId:e??"",sessionStatus:K,waiting:Ca,interaction:{active:ve,pendingApprovals:qe.filter(z=>z.interactiveType==="approval"),focusedOptionIndex:fe,onToolRef:ce,onToolDecided:ge},sync:{connectionState:_e}})]})})}function Vy(e,t){const n=e===null||t===void 0?null:`${e}:${t}`,s=l.useRef(null);l.useEffect(()=>{if(!(e===null||t===void 0))return s.current=`${e}:${t}`,Fe.getState().seek(e,t),()=>{const i=Fe.getState();i.seeks[e]===t&&i.endSeek(e)}},[e,t]);const o=l.useRef(null),a=l.useCallback(()=>{var d;if(n===null||o.current===n||t===void 0||e===null)return;const i=Fe.getState().seeks[e]===t;if(s.current!==n||i)return;o.current=n;const c=((d=Fe.getState().sessions[e])==null?void 0:d.earlier)??[],u=Ce.getState().getSession(e).messages;return Fo(Bo([...c,...u],t)??t)},[n,t,e]);return n===null?void 0:a}function Tb(){const[e]=jt();ad(e);const{runtime:t,prompt:n,send:s,seed:o,message:a}=Mr(),i=oc(),c=Vy(e,a),{data:u}=ac(e,{enabled:!1,select:p=>p.title}),d=ro(e);Tu(e,{canonical:d===null}),yc();const m=l.useCallback(()=>{i==null||i({search:p=>({...p,prompt:void 0,send:void 0,seed:void 0}),replace:!0})},[i]);return r.jsxs(r.Fragment,{children:[r.jsx(ic,{children:u!=null&&u.trim()?u:"Chat"}),r.jsx(Qy,{sessionId:e,launchRuntime:t,launchPrompt:n,launchSend:s==="1",launchSeed:o,onLaunchConsumed:m,...c===void 0?{}:{landOnRow:c}})]})}const Yy=48,Xy="[&_[data-testid=tool-call-card]]:opacity-100 [&_[data-testid=tool-call-card]_.font-mono]:text-muted-foreground",Ln="Now · working";function Rb({sessionId:e,messages:t,agentName:n,showSessions:s,onOpenSession:o,working:a=!1,notice:i=null}){const c=l.useMemo(()=>Oy(t),[t]),u=l.useRef(null),d=Fn(b=>b.request),m=Fn(b=>b.consume),p=c.some(b=>b.live),h=Rn(c),f=l.useRef(!0),g=l.useCallback(()=>{const b=u.current;b&&(f.current=b.scrollHeight-b.scrollTop-b.clientHeight<=Yy)},[]),x=l.useRef(e);l.useLayoutEffect(()=>{x.current!==e&&(x.current=e,f.current=!0);const b=u.current;b&&f.current&&(b.scrollTop=b.scrollHeight)});const y=`${c.length}|${p}`;return l.useEffect(()=>{var T,R,E;const b=u.current;if(!b||!d)return;if(d.sessionId!==e){m();return}const v=h.read(),j=d.turn==="live"?((T=v.find(I=>I.live))==null?void 0:T.key)??"live":(R=v.find(I=>I.replies.some(A=>A.id===d.turn)))==null?void 0:R.key,S=Array.from(b.querySelectorAll("[data-work-turn]")).find(I=>I.dataset.workTurn===j);!S&&v.length===0&&d.turn!=="live"||(S?((E=S.scrollIntoView)==null||E.call(S,{block:"start"}),S.focus({preventScroll:!0})):b.focus({preventScroll:!0}),f.current=d.turn==="live"||!S,f.current&&(b.scrollTop=b.scrollHeight),m())},[d,e,y,h,m]),r.jsxs("div",{ref:u,onScroll:g,tabIndex:-1,"data-testid":"work-panel",className:"flex h-full min-w-0 flex-col gap-3 overflow-y-auto p-3 outline-none",children:[r.jsx(Jy,{sessionId:e,agentName:n,showSessions:s,onOpenSession:o}),i!==null?r.jsx(Ar,{children:i}):r.jsxs(r.Fragment,{children:[c.length===0&&!a&&r.jsx(Ar,{children:"No steps yet."}),c.map(b=>r.jsx(eb,{turn:b,sessionId:e},b.key)),a&&!p&&e!==null&&r.jsx(nb,{})]})]})}function Jy({sessionId:e,agentName:t,showSessions:n,onOpenSession:s}){return!n||e===null?r.jsxs("div",{className:"bg-muted/50 text-muted-foreground rounded-md px-3 py-2 text-xs",children:["Every step ",t??"the agent"," took, turn by turn."]}):r.jsx(Zy,{sessionId:e,onOpenSession:s})}function Zy({sessionId:e,onOpenSession:t}){const{model:n,contextPercent:s,runtime:o}=no(e),{data:a}=Xt({sessionId:e,runtime:o??void 0}),i=["Session"];return n&&i.push(Vc(n,a??[])),typeof s=="number"&&i.push(`${Math.round(s)}% context`),r.jsxs("div",{"data-testid":"work-session-line",className:"bg-muted/50 text-muted-foreground flex items-center gap-2 rounded-md px-3 py-2 text-xs",children:[r.jsx(lc,{className:"size-3.5 shrink-0","aria-hidden":!0}),r.jsx("span",{className:"min-w-0 flex-1 truncate font-mono",children:i.join(" · ")}),r.jsxs("button",{type:"button",onClick:t,className:"focus-ring hover:text-foreground inline-flex shrink-0 items-center gap-0.5 rounded-sm font-medium transition-colors",children:["Open session",r.jsx(cc,{className:"size-3.5","aria-hidden":!0})]})]})}function eb({turn:e,sessionId:t}){const n=e.startedAt?Ht(e.startedAt):"",s=e.live?Ln:[n,e.prompt?`“${e.prompt}”`:""].filter(Boolean).join(" · ")||"A turn";return r.jsxs("section",{"data-work-turn":e.key,"data-live":e.live||void 0,"aria-label":s,tabIndex:-1,className:"focus-ring rounded-lg border px-3 py-2",children:[r.jsx("h3",{className:"text-foreground line-clamp-2 text-xs font-medium",children:s}),r.jsx("div",{"data-slot":"work-steps",className:Xy,children:e.replies.map(o=>r.jsx(tb,{reply:o,sessionId:t},o.id))})]})}const tb=l.memo(function({reply:t,sessionId:n}){const s=t._streaming===!0,o=l.useMemo(()=>({sessionId:n,isStreaming:s,isLatestWidgetMessage:!0,isFinalMessage:!1,activeToolCallId:null,onToolRef:void 0,focusedOptionIndex:-1,onToolDecided:void 0,inputZoneToolCallId:null}),[n,s]);return r.jsx(vo,{value:o,children:r.jsx(as,{message:t,show:"work"})})});function nb(){return r.jsxs("section",{"data-work-turn":"live","data-live":!0,"aria-label":Ln,tabIndex:-1,className:"focus-ring rounded-lg border px-3 py-2",children:[r.jsx("h3",{className:"text-foreground text-xs font-medium",children:Ln}),r.jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:"Waiting for the first step"})]})}function Ar({children:e}){return r.jsx("p",{className:"text-muted-foreground px-1 text-xs",children:e})}export{Tb as S,Rb as W,ha as a,_y as b,qy as c,Ky as d,Fm as m,ma as s,wy as u};
|