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
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var Oa=Object.defineProperty;var Da=(e,t,n)=>t in e?Oa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var at=(e,t,n)=>Da(e,typeof t!="symbol"?t+"":t,n);import{O as xt,r as l,ej as Pe,j as r,_ as Q,Z as fe,is as Yn,a5 as be,rp as Fr,q as pt,l2 as Pa,cx as $a,rq as Lr,rr as Fa,rs as La,gm as Ua,B as me,dR as _e,fX as qa,G as W,J as on,X as ht,ba as wt,rt as _t,ru as Ur,rv as za,rw as Ba,aZ as ie,rx as Wa,ry as $n,fY as Ha,ip as Ga,aO as Xn,dU as Ka,ar as Qa,jI as Va,ak as yt,ab as Jn,rz as Ya,jJ as Xa,rA as Ja,bd as Za,x as ze,dm as Zn,U as Mt,iV as Ke,iW as Qe,al as es,rB as an,eu as ln,kX as ei,cz as Ze,s as bt,eC as ti,j0 as qr,eJ as ni,C as en,rC as si,l as ri,nE as zr,aX as oi,rD as ai,rE as qe,oG as Te,oP as ii,oH as cn,aR as li,i8 as ci,cF as ui,b$ as di,Y as mi,rF as dt,a4 as ts,ff as Es,dW as Br,f as Wr,rG as As,et as _s,aa as gt,qj as fi,rH as pi,qq as Tt,rI as tn,a6 as kt,kt as ns,a8 as Rt,hr as It,es as ss,cr as Ot,d2 as hi,d3 as gi,d5 as xi,d6 as yi,d7 as bi,e_ as ki,e as Ms,l$ as vi,d$ as Si,m0 as ji,ql as rs,im as wi,rJ as Ni,rK as Ci,mb as os,rL as Hr,rM as Gr,rN as Ti,rO as Ri,a7 as as,cU as Dt,er as un,ep as is,eq as Ei,rP as Ai,kB as Kr,rQ as _i,qn as Mi,ij as Ii,hS as Qr,j7 as Vr,i2 as Et,kC as Yr,fc as Oi,rR as Di,rS as Pi,o as Xr,y as dn,aW as Jr,rT as Zr,rU as $i,od as xn,rV as nn,ki as Fi,m4 as Li,bf as eo,rW as ls,rX as Ui,rY as qi,rZ as zi,ot as Bi,r_ as to,r$ as Wi,s0 as Hi,s1 as no,s2 as so,fK as Gi,s3 as Ki,f_ as Qi,fI as Vi,dA as Yi,bO as Xi,bP as Ji,bQ as Zi,bR as el,bS as tl,bT as nl,bU as sl,bW as rl,s4 as ol,pF as ro,s5 as al,s6 as il,n3 as ll,kc as cl,kd as ul,ke as dl,kf as yn,ny as ml,kg as Is,kW as fl,c4 as pl,kY as hl,c6 as gl,s7 as Os,cI as xl,gc as oo,cM as ao,cD as yl,j5 as bl,cT as io,s8 as lo,cB as co,cQ as kl,s9 as cs,cR as vl,sa as Sl,au as jl,cE as wl,sb as Nl,mP as ae,sc as Cl,sd as Tl,cP as Rl,a2 as El,aV as Xe,nU as Ds,se as Al,jx as Ye,sf as bn,e9 as Nt,sg as Ps,sh as $s,si as Fs,cA as kn,sj as ut,fg as Ct,sk as _l,cW as uo,sl as mo,sm as Ml,sn as Il,so as Ol,cX as fo,sp as Dl,sq as Pl,sr as it,ss as po,st as $l,c3 as Fl,su as Ll,sv as Ul,fZ as ho,sw as Ls,sx as ql,cb as Fn,jZ as go,eB as zl,c_ as Bl,sy as Wl,gH as Hl,gG as Gl,j$ as Kl,cs as Ql,cZ as Vl,cp as Yl,sz as Xl,am as mn,sA as Jl,sB as Zl,sC as ec,sD as xo,sE as yo,gA as bo,gB as us,ln as tc,sF as nc,sG as sc,sH as rc,jA as oc,sI as ko,pe as ac,kh as ic,sJ as jt,sK as lc,sL as cc,cV as uc,hv as dc,sM as mc,fU as fc,sN as pc,eh as hc,ku as gc,a0 as xc}from"./index-BR1m9FON.js";import{P as yc}from"./PromptSuggestionChips-CEnhme_V.js";import{u as bc,a as kc,L as vc,f as Sc,b as jc,c as wc,B as Nc,d as Cc}from"./primer-trigger-XA5fLzR5.js";import{a as Tc,u as Rc,i as Ec}from"./use-notification-prefs-BHOK2P2l.js";import{e as Ac,h as _c,q as vo,f as Mc,P as Ic,g as Oc,d as Dc,r as Pc,l as $c,j as Fc,b as Lc,G as Uc,W as So,B as qc,z as zc,D as Bc,v as Wc,w as Hc,y as Gc,p as Kc,m as Qc,t as Vc,M as Yc,i as Xc,S as Jc,k as Zc,A as eu,x as tu,R as nu,u as su}from"./use-status-budget-BBl2yxLR.js";import{B as ru}from"./banner-CSKUrrI0.js";import{t as qt,S as ds,f as sn,n as jo,O as wo,o as ou,p as au,V as No,q as iu,s as lu,v as cu,w as uu,x as Us,y as qs,z as du,A as mu,L as zs,B as Co,D as fu,G as To,H as pu,I as Ro,J as Ln,N as Bs,d as hu,K as Eo,Q as gu,u as xu,C as At,R as Ao,c as lt,k as yu,h as bu,T as ku,F as vu}from"./registry-Tbt9pcZl.js";import{s as Ws}from"./trust-dial-D__tIhzt.js";import{u as Su,b as ju}from"./WidgetErrorCard-C5ieVv_9.js";import{u as wu,D as Nu,U as Cu}from"./UnreadDivider-1aPVzwd7.js";import{a as Tu,c as Ru}from"./composer-insert-BpyATrmR.js";import{u as Eu}from"./use-composer-prefs-CjpxcBIe.js";import{A as Un,M as Au}from"./McpAppFrame-z5JUaCSA.js";import{P as _u,C as Mu,b as Iu}from"./find-latest-widget-fence-B6sJdG3Q.js";import{F as _o}from"./file-CQGljfDT.js";import{F as Ou,j as Du}from"./use-session-canvas-tvLLPQcm.js";import{F as Pu}from"./file-text-Cycq_S0e.js";import{b as Mo,e as $u,R as Fu,K as Lu,a as Uu,g as qu}from"./RuntimeConnectFlow-BYQnY5vv.js";import{S as zu}from"./shield-x-CEWfkzDN.js";import{u as Bu,M as Wu}from"./McpSigninBody-ZrnzwrOH.js";import{I as Hu}from"./image-off-DjR7LI5G.js";import{f as Gu}from"./format-duration-BCr6uzby.js";import{l as Ku}from"./use-connector-management-BLiCJMgU.js";import{A as Qu}from"./AgentRequestCard-B2gxCMGi.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 Io={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"}]]};Io.node;const Vu=xt(Io);/**
|
|
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 Oo={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"}]]};Oo.node;const Yu=xt(Oo);/**
|
|
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 Do={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"}]]};Do.node;const Xu=xt(Do);/**
|
|
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 Po={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"}]]};Po.node;const Ju=xt(Po);/**
|
|
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 $o={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"}]]};$o.node;const Zu=xt($o);/**
|
|
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 Fo={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"}]]};Fo.node;const ed=xt(Fo);function td(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 Lo(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:td(o),ms:o}}function nd(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(f=>document.addEventListener(f,u,{passive:!0}));const m=()=>{document.hidden?i():u()};return document.addEventListener("visibilitychange",m),()=>{a.current&&clearTimeout(a.current),d.forEach(f=>document.removeEventListener(f,u)),document.removeEventListener("visibilitychange",m)}},[t,i,u]),{isIdle:o.current}}function sd({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 f(h){const p=h.target,g=(p.tagName==="TEXTAREA"||p.tagName==="INPUT")&&!p.disabled;if(!m.current&&!(h.metaKey||h.ctrlKey||h.altKey)){if(e.type==="approval"){if(h.key==="Enter"&&g&&p.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 y=parseInt(h.key,10);if(y>=1&&y<=9){h.preventDefault(),y-1<u&&(o==null||o(y-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",f),()=>document.removeEventListener("keydown",f)},[e,t,n,s,o,a,i,c,u,d])}function Uo(){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 rd({color:e,isTextStreaming:t,fadeEdges:n=!0,edge:s="bottom"}){const o=Pe()===!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(fe,{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 vn={"word-boundary":3,substring:2,subsequence:1},od=new Set(["/",":","-","_","."," "]);function ad(e,t){if(t===0)return!0;const n=e[t-1];if(od.has(n))return!0;const s=e[t];return n===n.toLowerCase()&&s!==s.toLowerCase()&&s===s.toUpperCase()}function zt(e,t){return Array.from({length:t},(n,s)=>e+s)}function Bt(e,t,n){const s=1/(1+t),o=n/e.length;return(s*.6+o*.4)*.999}function id(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 ld(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 Xt(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+Bt(t,0,n.length),indices:zt(0,n.length)};if(s.startsWith(n))return{match:!0,tier:"prefix",score:4+Bt(t,0,n.length),indices:zt(0,n.length)};for(let i=1;i<=s.length-n.length;i++)if(ad(t,i)&&s.startsWith(n,i))return{match:!0,tier:"word-boundary",score:vn["word-boundary"]+Bt(t,i,n.length),indices:zt(i,n.length)};const o=s.indexOf(n);if(o>=0)return{match:!0,tier:"substring",score:vn.substring+Bt(t,o,n.length),indices:zt(o,n.length)};const a=id(n,s);return a?{match:!0,tier:"subsequence",score:vn.subsequence+ld(t,a),indices:a.indices}:{match:!1,tier:null,score:0,indices:[]}}class cd{constructor(t){at(this,"config");at(this,"recentCompletions",[]);at(this,"queue",[]);at(this,"isIdle",!1);at(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 ud={background:"radial-gradient(circle, rgba(255,215,0,0.15) 0%, transparent 70%)"};function dd(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 fn(e){var n;const{sessions:t}=Yn();if(e)return(n=t.find(s=>s.id===e))==null?void 0:n.runtime}const md=typeof window<"u"&&window.location.pathname===$a;let Sn=null,Hs=!md;function fd(e){return Hs?Sn===e?!0:(Sn=null,!1):(Hs=!0,Sn=e,!0)}function pd(e){var s;const t=be(),n=((s=Fr(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),fd(e)||pt.getState().recordOpened("session",e),t.markSessionOpened(e).catch(i=>{Pa(t,i)}))};if(a(),!o)return document.addEventListener("visibilitychange",a),()=>document.removeEventListener("visibilitychange",a)},[e,n,t])}function qo(){const e=Lr(),t=Fr(e.session);return{cwd:(t==null?void 0:t.cwd)??e.dir??null}}function zo({agentId:e,agentName:t,onResumed:n}){const s=Fa(),{data:o,dataUpdatedAt:a,refetch:i}=La(),[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(Ua,{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(me,{size:"sm",variant:"outline",disabled:s.isPending,onClick:()=>s.mutate(e,{onSuccess:()=>{_e(`${u} resumed`),n==null||n()}}),children:"Resume"})]})}function hd(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 gd({sessionId:e,interactionId:t,serverName:n,message:s,mode:o="form",url:a,requestedSchema:i,status:c,action:u}){const d=be(),[m,f]=l.useState(!1),[h,p]=l.useState(null),[g,y]=l.useState(null),[x,b]=l.useState({}),[v,j]=l.useState(!1),S=l.useMemo(()=>hd(i),[i]),C=c!=="pending",T=l.useCallback(async(w,k)=>{if(!(m||C)){f(!0),p(null),y(null);try{await d.submitElicitation(e,t,w,k)}catch(R){if(R.code!=="INTERACTION_ALREADY_RESOLVED"){p("Couldn’t send your answer. Try again."),y(R instanceof Error?R.message:null),f(!1);return}}f(!1)}},[d,e,t,m,C]),A=l.useCallback(()=>{const w={};for(const k of S)w[k.key]=x[k.key]??k.defaultValue??"";T("accept",w)},[S,x,T]),_=l.useCallback(()=>{T("accept")},[T]),E=l.useCallback(()=>{T("decline")},[T]),L=l.useCallback((w,k)=>{b(R=>({...R,[w]:k}))},[]),I=l.useCallback(()=>{if(a){if(!qa(a)){p(`Couldn’t open ${a}. Nothing has been authorized.`),y(null);return}p(null),y(null),j(!0)}},[a]);return C?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(me,{size:"sm",variant:"outline",onClick:I,disabled:m,children:"Open authorization page"}),v&&r.jsx(me,{size:"sm",onClick:_,disabled:m,children:m?"Sending…":"Done"}),r.jsx(me,{size:"sm",variant:"ghost",onClick:E,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(w=>r.jsxs("div",{children:[r.jsx("label",{htmlFor:`elicitation-${t}-${w.key}`,className:"text-muted-foreground mb-1 block text-xs font-medium",children:w.label}),w.options?r.jsxs("select",{id:`elicitation-${t}-${w.key}`,className:"border-input bg-background w-full rounded-md border px-3 py-1.5 text-sm",value:x[w.key]??String(w.defaultValue??""),onChange:k=>L(w.key,k.target.value),disabled:m,children:[r.jsx("option",{value:"",children:"Select…"}),w.options.map(k=>r.jsx("option",{value:k,children:k},k))]}):r.jsx("input",{id:`elicitation-${t}-${w.key}`,type:w.type==="number"?"number":"text",className:"border-input bg-background w-full rounded-md border px-3 py-1.5 text-sm",placeholder:String(w.defaultValue??""),value:x[w.key]??"",onChange:k=>L(w.key,k.target.value),disabled:m})]},w.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(me,{size:"sm",onClick:A,disabled:m,children:m?"Sending…":"Accept"}),r.jsx(me,{size:"sm",variant:"ghost",onClick:E,disabled:m,children:"Decline"})]})]})]})}const xd=8,yd={duration:.3,ease:[.16,1,.3,1]},bd={duration:0};function kd(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 vd(e){return new Date(e).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Sd(e){return`${e} action${e===1?"":"s"}`}function jd({outcome:e,items:t,resolvedAt:n,startedAt:s,reasonGiven:o,className:a}){var y;const i=Pe(),[c,u]=l.useState(!1),d=t.length,m=d>1,f=m?Sd(d):(y=t[0])==null?void 0:y.label,h=n!==void 0&&s!==void 0?Math.max(0,n-s):null,p=e==="allowed"?on:e==="denied"?ht:wt,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:xd},animate:{opacity:1,y:0},transition:i?bd:yd,className:W("text-muted-foreground my-1 text-xs",a),children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(p,{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?`${f} `:"","denied",h!==null&&` after ${kd(h)}`]}):r.jsxs(r.Fragment,{children:["You ",e==="allowed"?"allowed":"denied"," ",m?f:r.jsx("span",{className:"font-mono",children:f}),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:vd(n)}),m&&r.jsx("button",{type:"button",onClick:()=>u(x=>!x),"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(x=>r.jsx("li",{className:"truncate font-mono",children:x.label},x.toolCallId))})]})}function wd({outcome:e,reasonGiven:t,members:n,lead:s,children:o}){return r.jsxs("div",{className:"flex flex-col",children:[r.jsx(jd,{outcome:e,items:n.map(a=>({toolCallId:a.toolCallId,label:a.approvalDisplayName||_t(a.toolName,a.input??"")})),resolvedAt:s.approvalResolvedAt,startedAt:s.approvalStartedAt,reasonGiven:t}),e!=="allowed"&&s.result&&r.jsx(Ur,{"data-testid":"approval-receipt-result",content:s.result,className:"text-muted-foreground mt-0.5 ml-6"}),e==="allowed"&&o]})}function Nd({sessionId:e}){const{handoff:t,step:n,canShowWindow:s,movesToOwnWindow:o,sharedProfile:a,busy:i,error:c,continueAgent:u,signIn:d,openWindow:m,showWindow:f,stopTask:h}=za(e),p=Pe();return r.jsx(fe,{children:e&&t&&n&&r.jsx(Q.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0},transition:p?{duration:0}:{duration:.35,ease:[.16,1,.3,1]},children:r.jsx(Ba,{site:t.site,agentName:t.agentName,agentFolder:t.agentFolder,step:n,canShowWindow:s,movesToOwnWindow:o,sharedProfile:a,busy:i,error:c,onContinue:()=>void u(),onSignIn:d,onOpenWindow:m,onShowWindow:f,onStop:()=>void h()})},t.id)})}function ms(e){return e.endsWith("connectors.request_connection")||e.endsWith("connectors_request_connection")}function Bo(e){if(e)try{return JSON.parse(e)}catch{return}}function Jt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Cd(e){const t=Bo(e);if(!Jt(t))return;const{serviceSlug:n,reason:s}=t;if(!(typeof n!="string"||typeof s!="string"))return{serviceSlug:n,reason:s}}function Wo(e){const t=Bo(e);if(Jt(t)&&typeof t.requestId=="string")return t.requestId;if(Jt(t)&&Array.isArray(t.content)){const n=t.content.map(s=>Jt(s)&&typeof s.text=="string"?s.text:"").join("");return Wo(n)}}function Td(e,t){const n=Wo(t.result);if(n)return e.find(o=>o.requestId===n);const s=Cd(t.input);if(s)return e.filter(o=>o.serviceSlug===s.serviceSlug).sort((o,a)=>a.createdAt.localeCompare(o.createdAt))[0]}function Rd({sessionId:e,input:t,result:n,fallback:s}){const o=Ku(e),a=o.data?Td(o.data,{input:t,result:n}):void 0;return a?r.jsx("div",{className:"my-3","data-testid":"chat-agent-request",children:r.jsx(Qu,{request:a})}):r.jsx(r.Fragment,{children:s})}const jn={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}},Ed={match:!1,bucket:Number.POSITIVE_INFINITY,score:0};function Gs(e){return e.startsWith("/")?e.slice(1):e}function Ks(e,t){return e.bucket<t.bucket||e.bucket===t.bucket&&e.score>t.score}function Ad(e,t){let n=Ed;const s=Xt(e,Gs(t.fullCommand));s.match&&s.tier&&(n={match:!0,bucket:jn.name[s.tier],score:s.score});for(const o of t.aliases??[]){const a=Xt(e,Gs(o));if(!a.match||!a.tier)continue;const i={bucket:jn.alias[a.tier],score:a.score};Ks(i,n)&&(n={match:!0,...i,matchedAlias:o})}if(t.description){const o=Xt(e,t.description);if(o.match&&o.tier){const a={bucket:jn.description[o.tier],score:o.score};Ks(a,n)&&(n={match:!0,...a})}}return n}const Ho="dorkos:mcp-app-consent:";function Go(e){return`${Ho}${e}`}function _d(e){try{return localStorage.getItem(Go(e))==="granted"}catch{return!1}}function Md(e){try{localStorage.setItem(Go(e),"granted")}catch{}Id()}const qn=new Set;function Id(){for(const e of qn)e()}function Od(e){qn.add(e);const t=n=>{var s;(s=n.key)!=null&&s.startsWith(Ho)&&e()};return window.addEventListener("storage",t),()=>{qn.delete(e),window.removeEventListener("storage",t)}}function Dd(e){const t=l.useSyncExternalStore(Od,()=>_d(e),()=>!1),n=l.useCallback(()=>Md(e),[e]);return{consented:t,grant:n}}const Pd="h-80";function $d({sessionId:e,serverName:t,uri:n,title:s}){const{consented:o,grant:a}=Dd(t),i=ie(d=>d.openPip),c=()=>{const d=ie.getState(),m={type:"mcp_app",serverName:t,uri:n,title:s};d.openCanvasDocument(m),$n(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(Un,{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(_u,{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(Wa,{className:"size-3.5"})})]})]}),r.jsx(Au,{sessionId:e,serverName:t,uri:n,title:s,onRequestFullscreen:c,onRequestPip:u,className:Pd})]}):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(Un,{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 Fd(e){return e.replace(/[-_]+/g," ").trim()}function Ld({action:e}){const t=Su(),n=Fd(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?ju: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(ed,{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 Ud=/<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 qd(e){const t=e.match(Ud);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 p=d[1].trim();s=p&&p!=="(untitled)"?p:null;continue}const m=u.match(/^\s*Action:\s*(.*)$/);if(m){o=m[1].trim();continue}const f=u.match(/^\s*Widget ID:\s*(.*)$/);if(f){a=f[1].trim()||null;continue}const h=u.match(/^\s*Payload:\s*(.*)$/);if(h){const p=h[1].trim();if(p&&p!=="(none)")i=Qs(p);else if(!p){let g="";for(let y=c+1;y<n.length;y++){g+=(g?`
|
|
33
|
+
`:"")+n[y];const x=Qs(g.trim());if(x){i=x;break}}}break}}return o?{title:s,actionId:o,widgetId:a,payload:i}:null}function zd({onAllow:e,onNotNow:t}){return r.jsxs(Ha,{"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(Ga,{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(me,{variant:"ghost",size:"sm",responsive:!1,className:"h-7 px-2 text-xs",onClick:t,children:"Not now"}),r.jsx(me,{variant:"outline",size:"sm",responsive:!1,className:"h-7 px-2 text-xs",onClick:e,children:"Turn on notifications"})]})]})}function Bd(e){const t=bc(),{permission:n,request:s}=Tc(),{prefs:o,setPrefs:a}=Rc(),{data:i}=Xn(),c=i!==void 0,[u,d]=l.useState(!1),m=Ka()||n==="unsupported";l.useEffect(()=>{if(m||!e)return;const g=setTimeout(kc,vc);return()=>clearTimeout(g)},[m,e]);const f=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:f,notNow:h}}const Wd="dorkos:chat:last-seen:";function Hd(){try{const e=[];for(let t=0;t<window.localStorage.length;t++){const n=window.localStorage.key(t);n!=null&&n.startsWith(Wd)&&e.push(n)}for(const t of e)window.localStorage.removeItem(t)}catch{}}function Gd(e){let t=0;for(const n of e)n._streaming!==!0&&t++;return t}function Kd(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 Qd(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),f=l.useRef(null),h=n+Gd(t);l.useEffect(()=>{Hd();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,f.current=j.userId),a({sessionId:e,lastReadSeq:(j==null?void 0:j.lastReadSeq)??null,hydrated:!0}))})(),()=>{v=!0}},[s,e]);const p=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);f.current=S.userId??f.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},p())},[o.hydrated,e,h,p]);Qa("read_cursor",v=>{if(!Kd(v)||v.threadKind!=="session"||v.threadId!==e)return;const j=f.current;j!==null&&v.userId!==j||v.lastReadSeq<=i.current||(i.current=v.lastReadSeq,a({sessionId:e,lastReadSeq:v.lastReadSeq,hydrated:!0}))});const y=l.useMemo(()=>t.filter(v=>v._streaming!==!0).map((v,j)=>({id:v.id,seq:n+j+1})),[t,n]),x=o.lastReadSeq,b=Va(y,x===null?null:Math.min(x,h));return{lastSeenMessageId:b.lastSeenId,unreadFromStart:b.fromStart,markSeen:g,isHydrated:o.hydrated}}const Vd="You",Yd="human",Xd="system",Jd="System",Zd="agent",em="Agent",tm="chat-sender:",Vs="room-author:",nm="Room member",sm="prompt-source:",rm="runtime:";function om(e){return e.messageType==="local_command_output"||e.messageType==="compaction"}function am(e,t){var i,c,u,d,m,f;if(om(e)||e._chatStop)return{kind:"system",id:Xd,displayName:Jd};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,p=((u=t.senderAgent)==null?void 0:u.call(t,n))??yt({id:h});return{kind:"agent",id:`${tm}${h}`,displayName:n.agentName,emoji:p.emoji,color:p.color}}const s=e.role==="user"?e.roomMessage:void 0;if(s&&!((d=s.author)!=null&&d.you))return lm(s,t);const o=e.role==="user"?e.promptSource:void 0;if(o){const h=im(o);return{kind:o.kind==="channel"?"human":"system",id:`${sm}${o.kind}:${o.label??""}`,displayName:h}}if(e.role==="user")return{kind:"human",id:Yd,displayName:((m=t.humanName)==null?void 0:m.trim())||Vd,isSelf:!0};if(t.agent){const{id:h,displayName:p,emoji:g,color:y,imageUrl:x}=t.agent;return{kind:"agent",id:h,displayName:p,emoji:g,color:y,imageUrl:x}}const a=(f=t.runtime)==null?void 0:f.trim();return a?{kind:"agent",id:`${rm}${a}`,displayName:Jn(a),runtime:a}:{kind:"agent",id:Zd,displayName:em}}function im(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 lm(e,t){var o;const{author:n}=e;if(!n)return{kind:"human",id:`${Vs}entry:${e.entryId}`,displayName:nm};const s=`${Vs}${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}))??yt({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 Ko(e){return`msg-${e}`}function cm(){return{last:null}}function um(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 x=Math.min(e.length,u.messages.length);for(;d<x&&e[d]===u.messages[d];)d++}const m=u?u.authors.slice(0,d):[],f=u?u.items.slice(0,d):[];for(let x=m.length;x<e.length;x++){const b=e[x],v=n(b,x);m.push(v),f.push({id:b.id,authorId:v.id,timestamp:b.timestamp})}const h={now:s,lastSeenId:a,unreadFromStart:i},{rows:p,kept:g}=u?Ya(f,h,u.timeline,d):{rows:Xa(f,h),kept:0},y=u?u.rows.slice(0,g):[];for(let x=g;x<p.length;x++){const b=p[x];y.push(b.kind!=="item"?b:{kind:"message",key:Ko(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:f,resolveAuthor:n,now:s,lastSeenMessageId:a,unreadFromStart:i,timeline:p,rows:y}),y}function dm(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 mm(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 Qo=Symbol("no-error-part");function fm(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 Qo}function pm(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=fm(t.slice(i+1));return u!==Qo?u==="auth_error"?c:null:n==="error"&&s==="auth_error"?c:null}const hm="dorkos:signin-resume",gm=1e4;function xm(){const e=l.useRef(new Map),t=l.useRef(null);return l.useEffect(()=>{const n=Ja(hm);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<gm},claim:n=>{var s;return(s=t.current)==null?void 0:s.postMessage({sessionId:n})}}),[])}function Vo(e){switch(e){case"pending":case"running":return r.jsx(ze,{size:"xs",className:qt({status:e})});case"complete":return r.jsx(on,{className:W("size-(--size-icon-xs)",qt({status:e}))});case"error":return r.jsx(ht,{className:W("size-(--size-icon-xs)",qt({status:e}))});case"neutral":return r.jsx(Za,{className:W("size-(--size-icon-xs)",qt({status:e}))})}}function Ys({type:e,toolName:t,toolInput:n,...s}){const o=e==="approval"?"Waiting for approval":"Answering questions",a=t?_t(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(ze,{className:"shrink-0"}),r.jsx("span",{className:"truncate text-xs",children:i})]})})}function Pt({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,...f}){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),...f,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:Zn.fold,className:"ml-auto",children:r.jsx(Mt,{className:"text-muted-foreground size-(--size-icon-xs)"})})]}),u,r.jsx(fe,{initial:!1,children:e&&r.jsx(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,className:"overflow-hidden",children:r.jsx("div",{className:"border-border/50 border-t px-3 pt-1 pb-3",children:s})})})]})}const ym=[0,.2,.4];function Yo({className:e}){return r.jsx("div",{className:W("flex gap-1",e),"data-testid":"typing-dots","aria-hidden":"true",children:ym.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 bm({record:e}){const t=Pe(),{color:n,emoji:s}=yt({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(es,{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(Yo,{})]})]})}function km({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(bm,{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 vm(e){const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Sm({sessionId:e}){const t=an(e),n=Pe();if(!t||t.kind==="first-message")return null;const s=vm(t.bornAt),o=ln(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(ei,{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(wn,{}),r.jsxs("span",{children:["born ",s]})]}),r.jsx(wn,{}),r.jsxs("span",{className:"min-w-0 truncate",children:["lives in ",r.jsx("code",{className:"text-2xs",children:t.path})]}),r.jsx(wn,{}),r.jsxs("span",{className:"shrink-0",children:["runs on ",o]})]})]})}function wn(){return r.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/50 shrink-0",children:"·"})}const jm="another chat";function wm(e,t){const n=t==null?void 0:t.find(s=>s.id===e);return n?ti(n)?Ws("autonomy"):n.label:qr(e)?Ws("autonomy"):ni(e)}function Nm({startedBy:e,modes:t}){var a;const n=Ze();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(Cm,{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 ",wm(o.mode,t),","," ",o.sameAsStarter?"same as":"lower than"," the chat that started it."]})]})}function Cm({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(bt({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??jm})]}),t&&r.jsxs(r.Fragment,{children:[": ",t]})]})}function Tm({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(en,{"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 zn(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 Rm(e){const t=zn(e);if(t){if(Array.isArray(t.content))for(const n of t.content){const s=typeof(n==null?void 0:n.text)=="string"?zn(n.text):void 0;if(s)return s}return t}}function Xo(e){const t=si(e.toolName);if(t!=="chat_send"&&t!=="session_start"&&t!=="chat_stop")return null;const n=zn(e.input),s=Rm(e.result),o=Em(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 Wt="It could not be sent.";function Em(e,t){var n;if((t==null?void 0:t.status)==="denied")return pe(t,"message")??Wt;if((t==null?void 0:t.ok)===!1||typeof(t==null?void 0:t.error)=="string")return pe(t,"error")??pe(t,"message")??Wt;if(e.status==="error")return t?pe(t,"error")??pe(t,"message")??Wt:((n=e.result)==null?void 0:n.trim())||Wt}function Am(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 _m(e,t){if(e){for(let n=t.length-1;n>=0;n--)if(t[n].to.chatId===e)return t[n].to}}function Mm(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 Im(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 Om(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 Dm(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 Jo(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=Xo(i))==null?void 0:s.messageId)===t)return o.id}}const Xs=new WeakMap;function Pm(e,t){if(t.length===0)return e;const n=[];let s=0;const o=a=>{let i=Xs.get(a);return i||(i={id:`chat-stop-${a.id}`,role:"user",content:"",parts:[],timestamp:a.at,_chatStop:a},Xs.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 $m({stamp:e}){const t=Dm(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 Zo({stamp:e}){const t=Ze(),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(bt({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($m,{stamp:e})]})}function Fm({sessionId:e,messageId:t}){const n=Ze();return r.jsxs("button",{type:"button","data-testid":"chat-reply-to",onClick:()=>void n(bt({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(Yu,{"aria-hidden":!0,className:"size-3"}),"Reply to your message"]})}function Lm({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(Fm,{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(Zo,{stamp:n})]}),r.jsx("div",{className:"msg-prose",children:r.jsx(ds,{content:n.text,isStreaming:!1,...t?{sessionId:t}:{}})})]},n.id))})}function Um({stamp:e}){const t=Ze(),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({...ri.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 qm={muted:"text-muted-foreground",active:"text-foreground",done:"text-muted-foreground",error:"text-destructive"};function zm(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Bm(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=zm(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 Wm(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 Hm({part:e,sent:t,at:n,sessionId:s}){const[o,a]=l.useState(!1),i=l.useId(),c=Ze(),u=Xo(e);if(!u)return null;const d=e.status==="pending"||e.status==="running",m=Mm(u,t),f=(m==null?void 0:m.to.chatId)??u.chatId??(u.tool==="chat_stop"?u.to:void 0),h=(m==null?void 0:m.to)??_m(f,t),p=(h==null?void 0:h.agentName)??"the agent",g=h==null?void 0:h.chatTitle,y=yt({id:(h==null?void 0:h.agentId)??u.to??f??"chat"}),x=u.tool==="chat_stop"?Wm(u,d):Om(m,{...u,pending:d}),b=Im((m==null?void 0:m.summary)??u.summary,(m==null?void 0:m.text)??u.message),v=n?sn(n):m?sn(m.sentAt):"",j=u.error??((m==null?void 0:m.status)==="failed"?m.failureReason:void 0),S=j?Am(j):u.tool==="chat_stop"?u.reason:b!==g?b:"",C=u.tool==="session_start"?Zu:u.tool==="chat_stop"?zr:oi,T=u.tool==="session_start"?"Started spin-off chat":u.tool==="chat_stop"?u.error||u.notRunning?"Tried to stop":"Stopped":"To",A=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",_=()=>{f&&c(bt({session:f,...m?{message:m.id}:{}}))};return r.jsxs("div",{"data-testid":"sent-chat-card","data-tool":u.tool,"data-state":x.label,className:"border-border/70 bg-background my-1.5 rounded-lg border text-sm",children:[r.jsxs("button",{type:"button",onClick:()=>a(E=>!E),"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(es,{size:"xs",emoji:y.emoji,color:y.color}),r.jsx(C,{"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:[T," "]}),r.jsx("span",{className:"font-medium",children:A}),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",qm[x.tone]),"data-testid":"sent-chat-state",children:x.label}),v&&r.jsx("time",{className:"text-muted-foreground hidden text-xs tabular-nums sm:inline",children:v}),r.jsx(Mt,{"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(ds,{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:[Bm(u,m,p),u.note&&u.tool!=="chat_stop"&&m?` ${u.note}`:""]}),f&&!u.error&&!u.waiting&&r.jsx("button",{type:"button",onClick:_,className:"focus-ring text-foreground text-xs font-medium underline-offset-4 hover:underline",children:"Open chat →"})]})]})}function Gm({notice:e}){const t=Ze();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(zr,{"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(bt({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 fs(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 Js=new WeakMap;function Km(e){let t=Js.get(e);return t||(t=e.map(mt),Js.set(e,t)),t}function mt(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=fs(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 Qm(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(f=>f.map(h=>h.id===a.id?{...mt(m),_streaming:!1}:h));continue}if(i&&u>=0&&d===u+1&&m.role==="assistant"){const f=mt(m),h=new Set(f.parts.filter(y=>y.type==="background_task").map(y=>y.taskId)),p=i.parts.filter(y=>y.type==="background_task"&&!h.has(y.taskId)),g=p.length>0?[...f.parts,...p]:f.parts;n(y=>y.map(x=>x.id===i.id?{...f,parts:g,_streaming:!1}:x));continue}c.push(m)}}c.length>0&&n(d=>[...d,...c.map(mt)])}const Vm=20;function Ym(e,t){var b;const n=be(),s=ai(e),o=qe(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,f=l.useMemo(()=>m?s.earlier.map(mt):[],[m,s.earlier]),h=l.useMemo(()=>f.length>0?[...f,...t]:t,[f,t]),p=m&&s.remaining>0,g=m?s.remaining:0,y=l.useCallback(()=>{var S;if(c.current===e||!p)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(C=>{qe.getState().prependPage(e,v,C.messages,C.earlierMessages??0)}).catch(C=>{console.warn("[chat] could not read earlier messages",C),qe.getState().endSeek(e)}).finally(()=>{c.current===e&&(c.current=null,i(null))}))},[p,e,n,s]),x=o!==void 0&&(h.some(v=>v.id===o)||Jo([...s.earlier,...Te.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(x||!p||d.current.count>=Vm){qe.getState().endSeek(e);return}d.current.count+=1,y()}},[o,x,p,u,y,e,s.generation]),{messages:h,earlierCount:f.length,messagesBefore:g,canLoadEarlier:p,isLoadingEarlier:u,isSeeking:o!==void 0,loadEarlier:y}}function Xm({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;ii({kind:"burst"}).then(c=>{if(a){c();return}n.current=c});const i=setTimeout(()=>{o()},cn.CELEBRATION_DISPLAY_MS);return()=>{var c;a=!0,(c=n.current)==null||c.call(n),n.current=null,clearTimeout(i)}},[s,o]),r.jsx(fe,{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:ud})})}function Jm(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 Zm({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 ${Jm(n)}`:"Thinking…";return r.jsx(Pt,{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(Vu,{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 ef({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"?li:ci,d=e==="synthesize"?"sparkles":"bookopen";return r.jsx(Pt,{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(tf,{memories:t})})}function tf({memories:e}){return r.jsx("ul",{className:"flex flex-col gap-1 px-3 py-2",children:e.map(t=>r.jsx(nf,{memory:t},t.path))})}function nf({memory:e}){const t=e.path.startsWith("<synthesis:"),n=e.scope==="team"?ui:di,s=e.scope==="team"?"team":"personal",{copy:o}=mi({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:dd(e.path,40)}),r.jsx(n,{"aria-hidden":"true",className:"text-muted-foreground size-(--size-icon-xs)"})]})})}function Zt(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function ea(e){return e===void 0?"Summarized (asked by the agent)":`Summarized at ${e}% (asked by the agent)`}function sf(e){if((e==null?void 0:e.requestedBy)==="agent")return ea(e.contextPercent);const t=["Context compacted"];return(e==null?void 0:e.preTokens)!==void 0&&t.push(`${Zt(e.preTokens)} tokens`),e!=null&&e.trigger&&t.push(e.trigger),t.join(" · ")}function rf(e,t){return e===void 0?"Compacted context":t===void 0?`Compacted context · ${Zt(e)} tokens summarized`:`Compacted context · ${Zt(e)} → ${Zt(t)} tokens`}function of({trigger:e,preTokens:t,postTokens:n,failed:s,error:o,requestedBy:a,contextPercent:i}){return s?r.jsx(dt,{"data-testid":"compact-boundary-row","data-failed":"true",icon:r.jsx(ts,{"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(dt,{"data-testid":"compact-boundary-row","data-requested-by":"agent",icon:r.jsx(Es,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:ea(i)})}):r.jsx(dt,{"data-testid":"compact-boundary-row",icon:r.jsx(Es,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:rf(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 af({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(Hu,{"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(Br,{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 lf({content:e}){return r.jsx(dt,{"data-testid":"staged-context-note",icon:r.jsx(Wr,{"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 cf(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 uf(e){return e==="untracked"?"neutral":e==="stopped"?"complete":e}function df(e){const t=[];return e.toolUses&&t.push(`${e.toolUses} tool ${e.toolUses===1?"call":"calls"}`),e.durationMs&&t.push(cf(e.durationMs)),t.length>0?t.join(" · "):null}function mf({part:e}){const[t,n]=l.useState(!1),s=l.useRef(null),o=df(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(Pt,{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:[Vo(uf(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 ff(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 pf(e){const t=ff(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 Je(e){return e.notAllowed!==!0&&e.usage.state!=="limited"}function hf(e,t){if(e.id===gt||!e.eligible)return e.reason;const n=fi(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=pi(n.resetsAt,t);return o?`${s}% left · resets ${o}`:`${s}% left`}function pn(e,t){return e.runtime!==void 0&&e.runtime!==t}function gf(e,t){const n=[],s=[];for(const o of e)(pn(o,t)?s:n).push(o);return{same:n,other:s}}function rn(e,t){return`${e.runtime??t}:${e.id}`}function xf(e,t,n){if(pn(e,t)){const s=e.runtime;return!e.label&&e.id===Tt?`${tn({runtime:s,accountLabel:null,identityGate:!1})} (this computer's sign-in)`:tn({runtime:s,accountLabel:e.label,identityGate:!0})}return e.label?e.label:e.id===Tt&&e.usage.label?e.usage.label:e.usage.path?n(e.usage.path):e.id}function yf(e,t){const n=e.accounts.find(o=>o.id===e.recommendedId);if(n&&Je(n))return rn(n,t);const s=e.accounts.find(Je);return s?rn(s,t):null}function bf(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 kf(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 vf(e){return e.carryOver===!1}function Sf(e,t,n){return e?!0:(t==null?void 0:t.accounts.some(s=>pn(s,n)))??!1}function jf(e){return{id:gt,runtime:e,label:_s,color:As,eligible:!0,reason:"paid from your DorkOS account",usage:{runtime:"claude-code",accountId:gt,path:"",label:_s,color:As,subscriptionType:null,plan:null,credits:null,spend:null,windows:[],state:"unknown",limit:null,updatedAt:null}}}function ta(e,t){const n=be();return kt({queryKey:ns.continueOptions(e),queryFn:()=>n.getContinueOptions(e),enabled:t,staleTime:0,retry:!1})}function wf(e){const t=be();return Rt({mutationFn:n=>t.continueSession(e,n),retry:!1})}function Nf(e){const t=be();return Rt({mutationFn:()=>t.cancelAutoContinue(e),retry:!1})}const Zs="claude-code",Cf="No other account can take this work right now.";function Tf(e){return e instanceof Error&&e.message?e.message:"Couldn’t continue on that account. Try again."}function Rf({row:e,value:t,name:n,status:s,selected:o}){const a=Je(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(ji,{value:t,disabled:!a,className:"sr-only"}),r.jsx("span",{"aria-hidden":!0,className:"inline-flex",children:r.jsx(rs,{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(wi.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 na({open:e,onOpenChange:t,sessionId:n,account:s,cancelAutoFirst:o=!1,now:a,onCloseAutoFocus:i}){var ce;const c=It(),u=a??new Date(c),d=l.useId(),m=s.runtime??Zs,{accounts:f,nameFor:h}=ss(),[,p]=Ot(),g=Nf(n),y=l.useRef(!1),{mutate:x,reset:b}=g;l.useEffect(()=>{if(!e){y.current=!1,b();return}!o||y.current||(y.current=!0,x())},[e,o,x,b]);const v=e&&(!o||g.isSuccess),j=ta(n,v),S=wf(n),[C,T]=l.useState(null),A=()=>{S.isPending||(T(null),S.reset(),t(!1))},_=P=>P?t(!0):A(),E=v?j.data:void 0,L=E==null?void 0:E.ranking,I=E&&!vf(E.plan)?[...E.ranking.accounts,...E.credits?[jf(m)]:[]]:[],w=I.some(Je),k=C??(L?yf(L,m):null),R=I.find(P=>rn(P,m)===k)??null,N=R!==null&&Je(R),M=P=>xf(P,m,h),{same:O,other:D}=gf(I,m),V=kf((E==null?void 0:E.advised)===!0,s.trackerItems.some(P=>P.via==="this-chat")),K=s.accountId??((ce=s.limit)==null?void 0:ce.accountId)??null,H=(E==null?void 0:E.advised)===!0&&m===Zs&&K!==null?bf(f.filter(P=>P.id&&P.id!==K&&!O.some(ee=>ee.id===P.id)).map(P=>h(P.path))):null,q=()=>{!R||!Je(R)||S.mutate(pn(R,m)?{account:R.id,runtime:R.runtime}:{account:R.id},{onSuccess:P=>{A(),P.sessionId&&p(P.sessionId)}})},F=P=>{const ee=rn(P,m);return r.jsx(Rf,{row:P,value:ee,name:M(P),status:hf(P,u),selected:ee===k},ee)},Y=g.isError?g.error:j.isError&&v?j.error:S.isError?S.error:null,$=e&&!Y&&(!v||j.isPending),J=!$&&E!==void 0;return r.jsx(hi,{open:e,onOpenChange:_,children:r.jsxs(gi,{className:"max-h-[85vh] !min-h-0",desktopProps:{className:"sm:max-w-[380px]"},onCloseAutoFocus:i,"aria-labelledby":d,children:[r.jsxs(xi,{className:"shrink-0 text-left",children:[r.jsx(yi,{id:d,className:"text-left",children:"Continue on another account"}),r.jsx(bi,{className:"text-left",children:V.subtitle})]}),r.jsxs(ki,{className:"flex flex-col gap-3",children:[$&&r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsx(Ms,{className:"h-11 rounded-lg"}),r.jsx(Ms,{className:"h-11 rounded-lg"})]}),J&&(w?r.jsxs(vi,{"aria-labelledby":d,value:k??"",onValueChange:T,className:"min-w-0 grid-cols-1 gap-1.5",children:[O.map(F),D.length>0&&r.jsx("div",{className:"text-muted-foreground mt-2 text-xs font-semibold tracking-wide uppercase",children:"Other runtimes"}),D.map(F)]}):r.jsx("p",{className:"text-muted-foreground text-sm",children:Cf})),J&&H&&r.jsx("p",{className:"text-muted-foreground text-xs",children:H}),J&&r.jsxs("ul",{className:"text-muted-foreground list-disc pl-4 text-xs",children:[r.jsx("li",{children:V.carries}),r.jsx("li",{children:V.doesnt})]}),Y!==null&&r.jsx("p",{role:"alert",className:"text-destructive text-sm",children:Tf(Y)})]}),r.jsxs(Si,{className:"shrink-0",children:[r.jsx(me,{variant:"outline",onClick:A,disabled:S.isPending,children:"Cancel"}),r.jsxs(me,{onClick:q,disabled:!J||!w||!N||S.isPending,"aria-busy":S.isPending||void 0,children:[S.isPending&&r.jsx(ze,{}),R&&J&&w?`Continue on ${M(R)}`:"Continue"]})]})]})})}const Ef=1440*60*1e3,Af="Paused until you continue or the account resets",_f="Paused until the task moves or the account resets",Mf=new Set(["limited","handing-off","wait-only","all-accounts-out","model-limited"]);function If(e){return Mf.has(e)?"critical":"neutral"}function sa(e){return e.carryOver===!1}function ft(e,t){return e!==null&&Date.parse(e)<=t.getTime()}function ps(e){return`${e} should have reset by now.`}function Of(e,t,n,s){if(ft(n,s))return ps(e);const o=Ni(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 ra(e){return e.plan.mode==="waiting"&&e.plan.resumeAt?e.plan.resumeAt:e.resetsAt}function er(e,t,n){if(t===null)return`Waiting for ${e}`;if(ft(t,n))return ps(e);const s=Date.parse(t)-n.getTime();return s<Ef?`Waiting for ${e} · back in ${Ci(s)}`:`Waiting for ${e} · back ${os(t,n)}`}function Df(e,t){return Math.max(0,Math.ceil((Date.parse(e)-t.getTime())/1e3))}const Pf=new Set(["continue-on","move-now","keep-going","resume","open-moved"]);function $f(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 Ff=new Set(["limited","handing-off","wait-only","all-accounts-out","model-limited","waiting-reset"]),Nn={canSubmit:!0,placeholder:null};function Lf(e,t,n){if(!e)return Nn;const s=Hr(e);if(s==="moved")return{canSubmit:t,placeholder:null};if(!Ff.has(s))return Nn;const o=i=>i!==null&&!ft(i,n);return o(ra(e))||e.plan.mode==="auto"&&o(e.plan.fireAt)?{canSubmit:!1,placeholder:s==="handing-off"?_f:Af}:Nn}const Uf=300*1e3;function oa(e,t){const n=Date.parse(e)-Date.parse(t);return Number.isFinite(n)&&n>=0&&n<=Uf}function qf(e,t){let n=null;for(const s of e)oa(s.since,t)&&(n===null||Date.parse(s.since)<Date.parse(n.since))&&(n=s);return n}function Bn(e,t){var n;return e?((n=t.find(s=>s.value===e))==null?void 0:n.displayName)??e:null}function zf(e,t){return{from:Bn(e.modelFrom,t)??(e.scope==="model"?Gr(e.window,t):null),to:Bn(e.modelTo,t)}}function aa(){const{accounts:e,nameFor:t,colorFor:n}=ss(),s=Ti("claude-code",{accountId:Tt,path:null});return o=>{const a=Ri({accountId:o,path:null,accounts:e,usage:o===Tt?s:null,nameFor:t,colorFor:n});return{name:a.name??o,color:a.color}}}const tr="claude-code",Bf=new Set(["limited","handing-off","model-limited"]),Wf=new Set(["limited","model-limited","all-accounts-out"]);function Hf(e){return(e==null?void 0:e.runsOn)==="own-sign-in"&&e.chosenBy==="user"}function Gf(e){return e instanceof Error&&e.message?e.message:"Couldn’t do that. Try again."}function Kf(e,t){var K,H,q;const n=be(),s=as(),[,o]=Ot(),a=Dt(e,{fetchUsage:!1}),i=t??a,c=i.limit,u=c?Hr(c):null,d=i.runtime??tr,m=i.visible,f=aa(),h=d===tr&&(c!=null&&c.accountId)?f(c.accountId).name:i.name,p=tn({runtime:d,accountLabel:h,identityGate:m}),g=un({sessionId:e||void 0,runtime:d}).data??[],y=c?sa(c.plan):!0,x=u!==null&&Bf.has(u)&&!y,{isLoaded:b}=ss(),{data:v}=is(),j=b&&v!==void 0,S=u==="model-limited",C=ta(e,x&&j&&(S?m:!m)),T=x&&(S?m&&(((K=C.data)==null?void 0:K.ranking.accounts.some(Je))??!1):Sf(m,(H=C.data)==null?void 0:H.ranking,d)),{continuedHere:A,continueHere:_}=jo(e,(c==null?void 0:c.since)??null),{data:E}=Ei(),L=u!==null&&Wf.has(u)&&!y&&(c==null?void 0:c.accountId)!==gt&&Ai(E,d)&&!Hf((q=E==null?void 0:E.defaults)==null?void 0:q[d]),I=(c==null?void 0:c.since)??null,w=`${I}:${u}`,[k,R]=l.useState(null),N=F=>R(F===null?null:{key:w,message:F}),M=F=>N(Gf(F)),O=Rt({mutationFn:F=>n.waitForReset(e,F),retry:!1,onError:M}),D=Rt({mutationFn:F=>n.continueSession(e,F),retry:!1,onError:M,onSuccess:F=>{F.sessionId&&F.sessionId!==e&&o(F.sessionId)}}),V=l.useRef(I);return l.useEffect(()=>{V.current!==null&&I===null&&s.invalidateQueries({queryKey:ns.limitHistory(e)}),V.current=I},[I,e,s]),{account:i,limit:c,state:u,runtime:d,subject:p,identityGate:m,canPick:T,creditsOffered:L,nameOf:f,models:g,continuedHere:A,continueHere:_,wait:F=>{N(null),O.mutate(F===void 0?{}:{autoResume:F})},continueOn:F=>{N(null),D.mutate(F)},openSession:F=>o(F),pending:O.isPending||D.isPending,failure:(k==null?void 0:k.key)===w?k.message:null}}function Cn({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 Tn({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(rs,{color:e.color,name:e.name,tooltip:!1})}),e.name]})}function Qf(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 Vf({sessionId:e,onSend:t,account:n,now:s}){const o=Kf(e,n),a=Kr(),{limit:i,state:c,subject:u,identityGate:d}=o,m=It(c==="handing-off"?1e3:6e4),f=s??new Date(m),h=i?i.since:null,[p,g]=l.useState(null),y=o.canPick&&h!==null&&p===h,x=w=>g(w?h:null),b=l.useId();if(!i||!c)return null;const v=o.creditsOffered&&a!==null,j=i.plan,S=Bn(i.modelFallback,o.models),C=$f(c,{canPick:o.canPick,hasFallback:S!==null,continuedHere:o.continuedHere}),T=`${c}:${i.since}:${u}`;let A,_=null,E=!1;switch(c){case"all-accounts-out":{A="All accounts are out.";const w=i.allOut;if(w!=null&&w.resetsAt){const k=o.nameOf(w.accountId);_=ft(w.resetsAt,f)?ps(k.name):r.jsxs(r.Fragment,{children:["Soonest back: ",r.jsx(Tn,{account:k,showDot:d}),","," ",os(w.resetsAt,f)]})}break}case"model-limited":A=`${Gr(i.window,o.models)} is out on ${u} for this week.`;break;case"waiting-reset":{const w=ra(i);A=r.jsx(Cn,{visible:er(u,w,f),spoken:er(u,w,f),spokenKey:`${T}:${ft(w,f)}`});break}case"reset-ready":A=j.mode==="waiting"&&j.unconfirmed?`${u} should have reset by now.`:`${u} has reset.`;break;case"moved":{if(j.mode!=="continued")return null;const w=o.nameOf(j.accountId);A=r.jsxs(r.Fragment,{children:["This task continued on ",r.jsx(Tn,{account:w,showDot:d}),"."]});break}default:{const w=Of(u,i.window,i.resetsAt,f);if(A=r.jsx(Cn,{visible:w,spoken:w,spokenKey:`${T}:${ft(i.resetsAt,f)}`}),c==="handing-off"&&j.mode==="auto"){const k=o.nameOf(j.target),R=Df(j.fireAt,f);E=R===0,_=r.jsx(Cn,{visible:r.jsxs(r.Fragment,{children:["Moving this task to ",r.jsx(Tn,{account:k,showDot:d}),E?"…":` in ${R}s…`]}),spoken:E?`Moving this task to ${k.name}.`:`Moving this task to ${k.name} in ${R} seconds.`,spokenKey:`${T}:${j.fireAt}:${k.name}:${E}`})}}}const L=w=>{switch(w){case"continue-on":case"choose":x(!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(_i);return;case"open-moved":j.mode==="continued"&&o.openSession(j.sessionId);return;case"continue-here":o.continueHere();return;case"wait":o.wait();return}},I=c==="waiting-reset"&&j.mode==="waiting"&&!sa(j);return r.jsxs(r.Fragment,{children:[r.jsxs(ru,{variant:If(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:A}),_&&r.jsxs(r.Fragment,{children:[" ",_]})]}),I&&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:w=>o.wait(w.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:gt})})}),C.length>0&&r.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:C.map(w=>r.jsx(me,{size:"sm",variant:Pf.has(w)&&!v?"default":w==="continue-here"?"ghost":"outline",className:"h-auto min-h-11 max-w-full py-1 whitespace-normal md:min-h-8",disabled:o.pending||w==="move-now"&&E,onClick:()=>L(w),children:Qf(w,S)},w))}),o.failure&&r.jsx("p",{role:"alert",className:"text-destructive mt-1.5",children:o.failure})]}),o.canPick&&r.jsx(na,{open:y,onOpenChange:x,sessionId:e,account:{runtime:o.runtime,accountId:o.account.accountId,limit:i,trackerItems:o.account.trackerItems},cancelAutoFirst:c==="handing-off",now:s})]})}function Yf(e){const t=be();return kt({queryKey:ns.limitHistory(e),queryFn:()=>t.getLimitHistory(e),enabled:e!=="",retry:!1})}const Xf={moved:Ii,"resumed-reset":wt,"resumed-model":wt,"resumed-early":wt};function Jf({entry:e,now:t}){const n=It(),s=t??new Date(n),o=aa(),a=Mi(e.runtime),i=un({runtime:e.runtime}).data??[],[,c]=Ot(),u=e.runtime==="claude-code"&&e.accountId?o(e.accountId).name:null,d=tn({runtime:e.runtime,accountLabel:u,identityGate:a}),m=`at ${os(e.resolvedAt,s)}`,f=Xf[e.resolution];let h;switch(e.resolution){case"moved":{const p=e.toAccountId?o(e.toAccountId):null,g=p?r.jsxs(r.Fragment,{children:[a&&p.color&&r.jsx("span",{"aria-hidden":!0,className:"mr-0.5 inline-flex align-middle",children:r.jsx(rs,{color:p.color,name:p.name,tooltip:!1})}),p.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:p,to:g}=zf(e,i);h=g?`${p??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(f,{"aria-hidden":!0,className:"size-3 shrink-0"}),r.jsx("span",{className:"min-w-0",children:h})]})}function Zf({sessionId:e,at:t,fallback:n,now:s}){const{limit:o}=Dt(e,{fetchUsage:!1}),a=Yf(e),[i,c]=l.useState(null),u=o!==null&&(t===""||oa(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?qf(a.data.entries,t):null;return d?r.jsx(Jf,{entry:d,now:s}):o===null&&i!==null&&a.dataUpdatedAt===i.data&&a.errorUpdatedAt===i.error?null:r.jsx(r.Fragment,{children:n})}function ep(e){const{limit:t}=Dt(e,{fetchUsage:!1}),{continuedHere:n}=jo(e,(t==null?void 0:t.since)??null),s=It();return Lf(t,n,new Date(s))}function tp(e){return Dt(e,{fetchUsage:!1}).limit!==null}const ia="runtimes";function np({label:e}){const{open:t}=Qr();return r.jsx("button",{type:"button",onClick:()=>t(ia),className:"text-muted-foreground hover:text-foreground mt-2 block text-xs underline decoration-dotted underline-offset-2 transition-colors",children:e})}function sp({runtime:e,sessionId:t,onRetry:n,onSigninComplete:s}){const[o,a]=l.useState(!1),i=Uu(e,{sessionId:t,onCompleted:()=>a((s==null?void 0:s())??!1)}),c=qu(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(on,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),o?"Signed in. Sending your message again…":"Signed in."]}),!o&&n&&r.jsxs(me,{size:"sm",onClick:n,className:"mt-2 gap-1.5",children:[r.jsx(Et,{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(ze,{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(me,{size:"sm",onClick:i.login,disabled:i.isPending,className:"gap-1.5","data-testid":"auth-error-signin-button",children:[r.jsx(Vr,{className:"size-3"}),i.isError?"Try again":c.signInLabel]}),n&&r.jsxs(me,{variant:"outline",size:"sm",onClick:n,className:"gap-1.5",children:[r.jsx(Et,{className:"size-3"}),"Retry"]})]}),r.jsx(np,{label:"Use an API key instead"})]})}function nr({onRetry:e}){return r.jsx("div",{className:"mt-3","data-testid":"auth-error-remote-guidance",children:r.jsx(Fu,{...e?{onRetry:e}:{}})})}function la({onRetry:e}){const{open:t}=Qr();return r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[r.jsxs(me,{size:"sm",onClick:()=>t(ia),className:"gap-1.5",children:[r.jsx(Vr,{className:"size-3"}),"Fix sign-in"]}),e&&r.jsxs(me,{variant:"outline",size:"sm",onClick:e,className:"gap-1.5",children:[r.jsx(Et,{className:"size-3"}),"Retry"]})]})}function rp({runtime:e,sessionId:t,onRetry:n,renderOffer:s,lead:o,children:a}){const i=!Mo(),c=Yr(),u=ie(h=>h.setRetryAccount),d=ln(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:gt,sessionId:t}),n())}}),f=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,f(a),r.jsx(Lu,{ollama:Oi(e)==="provider-picker",remote:i})]}):r.jsxs("div",{"data-testid":"auth-error-credits-other-way",children:[a,r.jsx("div",{className:"mt-3",children:f(m)})]})}function op({sessionId:e,onRetry:t,onSigninComplete:n}){var f;const{sessions:s,isLoading:o}=Yn(),a=Mo(),i=(f=s.find(h=>h.id===e))==null?void 0:f.runtime,c=$u(i),u=Kr(),d=i!==void 0&&u!==null&&(c==="lead"||c==="other-way");if(!a&&!d)return r.jsx(nr,{onRetry:t});if(o)return null;const m=a?!i||!Di(i)?r.jsx(la,{onRetry:t}):r.jsx(sp,{runtime:i,sessionId:e,onRetry:t,onSigninComplete:n}):r.jsx(nr,{onRetry:t});return d&&i&&u?r.jsx(rp,{runtime:i,sessionId:e,onRetry:t,renderOffer:u,lead:c==="lead",children:m}):m}function ap({sessionId:e,onRetry:t,onSigninComplete:n}){return e?r.jsx(op,{sessionId:e,onRetry:t,onSigninComplete:n}):r.jsx(la,{onRetry:t})}const ip="credits_unavailable",lp="folder-sign-in";function cp({onRetry:e,sessionId:t,runtimeLabel:n,reason:s}){const o=ie(g=>g.setRetryAccount),a=Pi(),i=Yr(),c=Xr(),u=fn(t),d=dn(u??null);if(!e)return null;const m=up(d),f=n?`your ${n}`:"your own",h=()=>{if(d!==void 0){if(m==="pick-for-send"){t&&o({id:Tt,sessionId:t}),e();return}i.mutate({runtime:d.type,useCredits:!1},{onSuccess:()=>m==="new-conversation"?c(void 0,{runtime:d.type}):e()})}},p=()=>{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(me,{size:"sm",variant:"outline",onClick:e,className:"gap-1.5",children:[r.jsx(Et,{className:"size-3"}),"Retry"]}),t&&r.jsx(me,{size:"sm",variant:"outline",onClick:h,disabled:d===void 0||i.isPending,children:m==="new-conversation"?`Start a new chat on ${f} sign-in`:`Use ${f} sign-in`}),t&&s===lp&&r.jsx(me,{size:"sm",variant:"outline",onClick:p,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 ",f," 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 up(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 dp({category:e,onChooseModel:t}){return t?r.jsxs(me,{size:"sm",onClick:t,className:"mt-3 gap-1.5",children:[r.jsx(Jr,{className:"size-3"}),e==="runtime_update_required"?"Choose another model":"Choose model"]}):null}const mp="your agent",fp="agent",sr={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}},pp=new Set(["max_turns","budget_exceeded","output_format_error","auth_error"]);function hp(e){return`Sign in to ${e??mp} again`}function gp(e){return`Your ${e??fp} login stopped working. Sign in again to continue.`}const xp="rate_limit";function hs(e){const{code:t,at:n,sessionId:s,reason:o}=e;return t===Zr&&o?r.jsx(zo,{agentId:o}):t===xp&&s?r.jsx(Zf,{sessionId:s,at:n??"",fallback:r.jsx(rr,{...e})}):r.jsx(rr,{...e})}function rr({message:e,category:t,details:n,onRetry:s,heading:o,subtext:a,runtimeLabel:i,sessionId:c,onSigninComplete:u,onChooseModel:d,code:m,reason:f}){const[h,p]=l.useState(!1),g=m===ip,y=l.useMemo(()=>pf(e),[e]),x=(y==null?void 0:y.category)??t,b=(y==null?void 0:y.message)??e,v=y?n!=null&&n.includes(y.details??"")?n:[n,y.details].filter(Boolean).join(`
|
|
36
|
+
`):n,j=x==="auth_error",S=x?sr[x]??sr.execution_error:null,C=j?hp(i):x==="runtime_update_required"&&i?`${i} update required`:(x==="execution_error"||x==="model_unavailable")&&i?`${i} didn’t answer this turn`:S==null?void 0:S.heading,T=j?gp(i):S==null?void 0:S.subtext,A=g?"Couldn’t reach DorkOS credits":y?C??"Error":o??C??"Error",_=b.trim(),E=x!==void 0&&pp.has(x),L=g?_:(y&&(a==null?void 0:a.trim())===e.trim()?void 0:a)??(E?T:_||T)??_,I=L.trim(),w=x==="execution_error"&&I===_,k=l.useMemo(()=>$i(_),[_]),R=!_||_===I||_===A,N=!R&&(!E||k)?_:null,M=R||N!==null||v!=null&&v.includes(_)?v:[v,_].filter(Boolean).join(`
|
|
37
|
+
`),O=(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(ts,{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:A}),r.jsx("p",{className:W("text-muted-foreground mt-0.5 wrap-anywhere whitespace-pre-wrap",w?"font-mono text-xs":"text-sm"),children:r.jsx(xn,{text:L})}),N&&r.jsx("p",{className:"text-muted-foreground mt-1 text-sm wrap-anywhere whitespace-pre-wrap",children:r.jsx(xn,{text:N})}),M&&r.jsxs("button",{type:"button",onClick:()=>p(!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:Zn.fold,children:r.jsx(Mt,{className:"size-3"})}),"Details"]}),r.jsx(fe,{initial:!1,children:h&&M&&r.jsx(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,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(xn,{text:M})})})}),g&&r.jsx(cp,{onRetry:s,sessionId:c,runtimeLabel:i,reason:f}),j&&r.jsx(ap,{sessionId:c,onRetry:s,onSigninComplete:u}),(x==="model_unavailable"||x==="runtime_update_required")&&r.jsx(dp,{category:x,onChooseModel:d})]}),!j&&!g&&O&&s&&r.jsxs(me,{variant:"outline",size:"sm",onClick:s,className:"shrink-0 gap-1.5",children:[r.jsx(Et,{className:"size-3"}),"Retry"]})]})})}const yp=8;function bp({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,yp)}`: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(zu,{"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 kp=50;function vp(e){return e.type==="tool_call"&&e.interactiveType==="approval"&&e.approvalOutcome!==void 0}function Sp(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)<=kp}function jp(e){const t=new Map;let n=null;for(let s=0;s<e.length;s++){const o=e[s];if(!vp(o)){n=null;continue}if(n&&Sp(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 gs(e){return e.type==="thinking"||e.type==="memory_recall"||e.type==="background_task"?!0:e.type==="tool_call"&&!e.interactiveType&&!e.ui&&!ms(e.toolName)&&!nn(e.toolName)}function wp(e){let t=0;for(const n of e)(n.type==="background_task"||n.type==="tool_call"&&gs(n))&&t++;return t}function ca(e){return e.some(gs)}function Np(e){return e.questionOutcome!==void 0?e.questionOutcome==="answered":e.status!=="pending"}function Cp(e){return e.status==="pending"?void 0:e.questionOutcome}function Tp({message:e}){return r.jsx(dt,{"data-testid":"unreadable-entry-note",icon:r.jsx(Fi,{"aria-hidden":"true",className:"text-muted-foreground size-3 shrink-0"}),label:r.jsx("span",{className:"text-muted-foreground",children:e})})}function Rp({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(wt,{"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 Wn({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 Ep({part:e}){return e.outcome==="failed"?r.jsx(Wn,{testId:"mcp-signin-failed",icon:r.jsx(ts,{"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(Wn,{testId:"mcp-signin-receipt",icon:r.jsx(eo,{"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 Ap({part:e}){const t=Bu(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(Ep,{part:e}):r.jsxs(Wn,{testId:"mcp-signin-card",icon:r.jsx(Li,{"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(Wu,{flow:t,serverName:e.serverName,failedActions:r.jsx(me,{variant:"secondary",size:"sm",onClick:()=>t.start(),className:"focus-visible:ring-2",children:"Try again"})})]})}function _p({fromName:e,toName:t}){return r.jsx(dt,{"data-testid":"model-substituted-row",icon:r.jsx(Jr,{"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 Mp=60;function Ip(e,t=Mp){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 or({command:e}){return r.jsx("code",{title:e,className:"min-w-0 truncate font-mono text-xs",children:Ip(e)||"A background command"})}function ar({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(me,{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 Op({sessionId:e,part:t}){const n=be(),[s,o]=l.useState({}),a=l.useCallback(async d=>{o(f=>({...f,[d]:"stopping"}));let m="failed";try{const{receipt:f}=await n.stopTask(e,d);ls(f)&&(m="stopped")}catch{}o(f=>({...f,[d]:m}))},[e,n]),i=(d,m)=>{const f=s[d];return m??(f==="stopping"||f==="failed"?void 0:f)},c=t.tasks.filter(d=>!i(d.taskId,d.ended)),u=Ui(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(or,{command:d.command}),r.jsx(ar,{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(or,{command:d.command}),r.jsx(ar,{state:s[d.taskId],label:"Stop",onStop:()=>void a(d.taskId)})]},d.taskId))})]})}const Dp={running:r.jsx(ze,{size:"xs",className:"text-muted-foreground"}),success:r.jsx(on,{className:"text-muted-foreground size-(--size-icon-xs)"}),error:r.jsx(ht,{className:"text-destructive size-(--size-icon-xs)"}),cancelled:r.jsx(ht,{className:"text-muted-foreground size-(--size-icon-xs)"})};function Pp({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:[Dp[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(fe,{initial:!1,children:n&&t&&o&&r.jsx(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,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 $p({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(Pp,{hook:u},u.hookId))}):void 0,i=e.startedAt&&e.completedAt?e.completedAt-e.startedAt:void 0,c=qi(e.toolName);return r.jsxs(Pt,{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:[Vo(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:_t(e.toolName,e.input)}),i!==void 0&&r.jsx("span",{className:"text-muted-foreground text-3xs tabular-nums",children:Gu(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(ze,{size:"xs"}),r.jsx("span",{children:"Preparing…"})]}):e.input!==void 0&&e.input!==""?r.jsx(zi,{toolName:e.toolName,input:e.input,isStreaming:e.status==="running"}):null,e.progressOutput&&!e.result&&r.jsx(Ur,{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(wo,{content:e.result,toolName:e.toolName,input:e.input})})]})}function Fp(e){if(e.startsWith("mcp__"))return e.split("__")[1]||void 0}function ua(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),cn.TOOL_CALL_AUTO_HIDE_MS);return()=>clearTimeout(i)}},[e,t,n]),!t||n?!0:o}function Lp({part:e,autoHide:t,expandToolCalls:n}){var a;const s=((a=e.hooks)==null?void 0:a.some(i=>i.status==="error"))??!1,o=ua(e.status,t,s);return r.jsx(fe,{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($p,{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 Rn({part:e,sessionId:t,autoHide:n,expandToolCalls:s}){const o=e.ui?Fp(e.toolName):void 0,a=r.jsx(Lp,{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($d,{sessionId:t,serverName:o,uri:e.ui.resourceUri})]})}function Up({part:e,autoHide:t,index:n}){const s=e.isStreaming?"running":"complete",o=ua(s,t,!1);return r.jsx(fe,{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(Zm,{text:e.text,isStreaming:e.isStreaming??!1,elapsedMs:e.elapsedMs})},`thinking-${n}`)})}const qp=4,ir=2;function zp({children:e}){const[t,n]=l.useState(!1);if(e.length<=qp||t)return r.jsx(r.Fragment,{children:e});const s=e.length-ir;return r.jsxs(r.Fragment,{children:[e.slice(0,ir),r.jsx(Pt,{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 Bp=["z-30","-ml-2 z-20 opacity-70","-ml-2 z-10 opacity-45"];function Wp({chips:e,expanded:t,controls:n,onExpand:s}){const o=Pe()??!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}:au,transition:ou,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",Bp[c]),children:No[i.verb]},i.key))},e.length),r.jsx(Bi,{"data-testid":"chip-pile-count",count:e.length,tone:"neutral",solid:!0})]})}const Hp=new Set;function Gp(){const[e,t]=l.useState(Hp),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 Kp(e){const t=[...e].sort((n,s)=>n.lastSeq-s.lastSeq);return{visible:t.slice(-zs),absorbed:t.slice(0,Math.max(0,t.length-zs))}}function Qp(e){return e.map(t=>{const n=[`${t.chips.length} ${Co[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 Vp({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:No[e]}),r.jsx("span",{className:"sr-only",children:Co[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 Yp({parts:e,sessionId:t,turnActive:n=!1}){const s=Pe()??!1,o=l.useMemo(()=>iu(e),[e]),a=Gp(),i=l.useId(),c=lu(l.useMemo(()=>cu(t,e),[t,e])),u=l.useCallback(p=>{if(p.pattern===!0)return;const g=ie.getState();if(p.kind==="url"){const y={type:"url",url:p.fullTarget};g.openCanvasDocument(y),$n(g,"user",y);return}if(p.kind==="file"){const y={type:"file",sourcePath:p.fullTarget};g.openCanvasDocument(y),$n(g,"user",y)}},[]),d=l.useMemo(()=>uu(o),[o]),m=n||o.some(p=>p.live),{visible:f,absorbed:h}=l.useMemo(()=>Kp(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(fe,{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?Us:qs,className:"flex min-w-0 items-center gap-1.5 overflow-hidden",children:[h.length>0&&r.jsx(Wp,{chips:h,expanded:c.expanded,controls:i,onExpand:c.toggleExpanded}),r.jsx(fe,{initial:!1,children:f.map(p=>r.jsx(du,{chip:p,onOpen:u,animated:!0,pulseUpgrade:a.shouldPulse(p.key,p.upgraded),onUpgradeSeen:a.acknowledge},p.key))})]},"live"):r.jsxs(Q.div,{"data-testid":"chip-summary-line",role:"group","aria-label":Qp(d),initial:{opacity:0},animate:{opacity:1},transition:s?Us:qs,className:"text-muted-foreground flex flex-wrap items-center gap-x-1.5 gap-y-1 text-xs",children:[d.map((p,g)=>r.jsxs(l.Fragment,{children:[g>0&&r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx(Vp,{verb:p.verb,count:p.chips.length,additions:p.additions,deletions:p.deletions})]},p.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(mu,{id:i,chips:o,onOpen:u,verbFilter:c.verbFilter,onVerbFilterChange:c.setVerbFilter,order:c.order,onOrderChange:c.setOrder})]})}function lr(e){return e.type==="thinking"?!0:e.type==="tool_call"&&!e.interactiveType&&!ms(e.toolName)&&!nn(e.toolName)}function xs({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:f,onChooseModel:h,inputZoneToolCallId:p,textEffect:g,runtimeLabel:y,allowsDenyReason:x}=fu(),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(R=>gs(R)===(t==="work"))},[j,t]),{sent:C}=To(n),T=l.useCallback(k=>{c==null||c(k)},[c]),A=l.useCallback(k=>{c==null||c(k)},[c]),_=jp(S.map(k=>k.type==="tool_call"&&nn(k.toolName)?{...k,interactiveType:void 0}:k));let E=-1;for(let k=S.length-1;k>=0;k--)if(S[k].type==="text"){E=k;break}function L(k,R){if(k.type==="text")return r.jsx("div",{className:"msg-prose",children:r.jsx(ds,{content:k.text,isStreaming:s&&R===E,textEffect:g,sessionId:n,isLatestWidgetMessage:o})},`text-${R}`);if(k.type==="background_task")return r.jsx(mf,{part:k},k.taskId);if(k.type==="error"&&k.code===to)return r.jsx(Tp,{message:k.message},`unreadable-${R}`);if(k.type==="error")return r.jsx(hs,{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:f,onChooseModel:h,runtimeLabel:y,sessionId:n},`error-${R}`);if(k.type==="thinking")return r.jsx(Up,{part:k,autoHide:v,index:R},`thinking-${R}`);if(k.type==="elicitation")return r.jsx(gd,{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(ef,{mode:k.mode,memories:k.memories,isStreaming:k.isStreaming??!1},`memory-recall-${R}`);if(k.type==="permission_denied")return r.jsx(bp,{toolName:k.toolName,reasonType:k.reasonType,reason:k.reason,message:k.message,agentId:k.agentId},`permission-denied-${k.toolCallId}-${R}`);if(k.type==="model_substituted")return r.jsx(_p,{fromName:k.fromName,toName:k.toName},`model-substituted-${R}`);if(k.type==="work_left_running")return r.jsx(Op,{sessionId:n,part:k},`work-left-${R}`);if(k.type==="compact_boundary")return r.jsx(of,{trigger:k.trigger,preTokens:k.preTokens,postTokens:k.postTokens,failed:k.failed,error:k.error,requestedBy:k.requestedBy,contextPercent:k.contextPercent},`compact-boundary-${R}`);if(k.type==="capability_approval")return k.outcome==="timeout"?r.jsx(Rp,{title:Wi(k.approval)},`capability-approval-${k.approval.approvalId}`):r.jsx(Hi,{approval:k.approval},`capability-approval-${k.approval.approvalId}`);if(k.type==="mcp_signin")return r.jsx(Ap,{part:k},`mcp-signin-${k.agentId}-${k.flowId}`);if(k.type==="image")return r.jsx(af,{part:k},`image-${k.attachmentId}-${R}`);if(k.type!=="tool_call")return null;const N=k;if(N.interactiveType==="approval"&&N.status==="pending"){if(N.toolCallId===p)return r.jsx(Ys,{type:"approval",toolName:N.toolName,toolInput:N.input},N.toolCallId);const O=N.toolCallId===i;return r.jsx(no,{ref:O?T:void 0,sessionId:n,toolCallId:N.toolCallId,toolName:N.toolName,input:N.input||"",timeoutMs:N.timeoutMs,approvalStartedAt:N.approvalStartedAt,approvalRemainingMs:N.approvalRemainingMs,approvalParked:N.approvalParked,approvalTitle:N.approvalTitle,approvalDisplayName:N.approvalDisplayName,approvalDescription:N.approvalDescription,approvalBlockedPath:N.approvalBlockedPath,approvalDecisionReason:N.approvalDecisionReason,approvalHasSuggestions:N.approvalHasSuggestions,approvalAlwaysAllowScope:N.approvalAlwaysAllowScope,isActive:O,onDecided:d?()=>d(N.toolCallId):void 0,allowsDenyReason:x},N.toolCallId)}const M=_.get(R);if(M){if(M.leadIndex!==R)return null;const O=M.indices.map(D=>S[D]).filter(D=>D.type==="tool_call");return r.jsx(wd,{outcome:M.outcome,reasonGiven:M.reasonGiven,members:O,lead:N,children:O.map(D=>r.jsx(Rn,{part:D,sessionId:n,autoHide:v,expandToolCalls:b},D.toolCallId))},`approval-receipt-${N.toolCallId}`)}if(N.interactiveType==="question"){if(N.toolCallId===p)return r.jsx(Ys,{type:"question",toolName:N.toolName,toolInput:N.input},N.toolCallId);const O=N.toolCallId===i;return r.jsx(so,{ref:O?A:void 0,sessionId:n,toolCallId:N.toolCallId,questions:N.questions??[],answers:N.answers??(Np(N)?{}:void 0),outcome:Cp(N),result:N.result,isActive:O,focusedOptionIndex:O?u:-1,onDecided:d?D=>d(N.toolCallId,D):void 0},N.toolCallId)}return nn(N.toolName)?r.jsx(Hm,{part:N,sent:C,...e.timestamp?{at:e.timestamp}:{},...n?{sessionId:n}:{}},N.toolCallId):ms(N.toolName)?r.jsx(Rd,{sessionId:n,input:N.input,result:N.result,fallback:r.jsx(Rn,{part:N,sessionId:n,autoHide:v,expandToolCalls:b})},N.toolCallId):r.jsx(Rn,{part:N,sessionId:n,autoHide:v,expandToolCalls:b},N.toolCallId)}const I=[];let w=[];for(let k=0;k<S.length;k++){const R=S[k];lr(R)?w.push(k):(w.length>0&&(I.push(w.length===1?{type:"single",index:w[0]}:{type:"run",indices:[...w]}),w=[]),I.push({type:"single",index:k}))}return w.length>0&&I.push(w.length===1?{type:"single",index:w[0]}:{type:"run",indices:[...w]}),r.jsxs(r.Fragment,{children:[I.map(k=>{if(k.type==="single"){const N=S[k.index];return lr(N)?r.jsx("div",{className:"my-3",children:L(N,k.index)},`spacer-${k.index}`):L(N,k.index)}const R=k.indices.map(N=>L(S[N],N));return r.jsx("div",{className:"my-3",children:t==="work"?R:r.jsx(zp,{children:R})},`run-${k.indices[0]}`)}),t==="all"&&r.jsx(Yp,{parts:S,sessionId:n,turnActive:e._streaming===!0})]})}const Xp=/^Please read the following uploaded file\(s\):\n((?:- .+\n)+)\n?/,Jp=/^[a-f0-9]{8}-/,Zp=new Set(["png","jpg","jpeg","gif","webp","svg"]);function eh(e){const t=e.match(Xp);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(Jp,""),d=((m=u.split(".").pop())==null?void 0:m.toLowerCase())??"";return{path:i,displayName:u,isImage:Zp.has(d)}}),o=e.slice(t[0].length).trim();return{files:s,textContent:o}}function th(e){var n;switch(((n=e.split(".").pop())==null?void 0:n.toLowerCase())??""){case"txt":case"md":case"log":return Pu;case"ts":case"tsx":case"js":case"jsx":case"json":case"py":case"rs":case"go":return Ou;case"csv":case"xls":case"xlsx":return Ju;case"png":case"jpg":case"jpeg":case"gif":case"webp":case"svg":return Xu;default:return _o}}function nh({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(Br,{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=th(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 sh({message:e}){var u;const t=(u=pu())==null?void 0:u.sessionId,[n,s]=l.useState(!1),[o,a]=l.useState(!1),i=l.useMemo(()=>eh(e.content),[e.content]),c=l.useMemo(()=>qd(e.content),[e.content]);if(c)return r.jsx(Ld,{action:c});if(e.chatMessages&&e.chatMessages.length>0)return r.jsx(Lm,{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(en,{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(wo,{content:e.content,toolName:""});if(e.messageType==="compaction"){const d=sf(e.compactMetadata),m=e.content.trim(),f=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:[f,r.jsx("span",{children:d}),f]}):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:[f,r.jsx(en,{className:W("size-3 transition-transform duration-200",n&&"rotate-90")}),r.jsx("span",{children:d}),f]}),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(nh,{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 rh({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(en,{className:"size-(--size-icon-xs) shrink-0"}):r.jsx(Mt,{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 oh({activeForm:e,isCollapsed:t}){return r.jsx(fe,{children:e&&!t&&r.jsxs(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,className:"mb-1 flex items-center gap-2 text-xs text-blue-400",children:[r.jsx(ze,{size:"xs",className:"shrink-0"}),r.jsx("span",{className:"truncate",children:e})]})})}const ah={in_progress:"",pending:"waiting ",completed:"done "};function cr({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 ih({task:e,taskMap:t,statusSince:n,onScrollToTask:s}){var d,m;const o=Lo(n),a=ah[e.status]??"",i=((d=e.blockedBy)==null?void 0:d.map(f=>t.get(f)).filter(f=>f!=null))??[],c=((m=e.blocks)==null?void 0:m.map(f=>t.get(f)).filter(f=>f!=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(cr,{tasks:i,onScrollToTask:s})]},"blocked-by")),c.length>0&&u.push(r.jsxs("span",{className:"inline-flex items-center gap-1",children:["→ ",r.jsx(cr,{tasks:c,onScrollToTask:s})]},"blocks")),r.jsxs(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,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((f,h)=>r.jsxs("span",{className:"flex items-center gap-1",children:[h>0&&r.jsx("span",{className:"text-muted-foreground/50",children:"·"}),f]},h))})]})}const ur={in_progress:r.jsx(ze,{size:"xs",className:"text-status-info shrink-0"}),pending:r.jsx(Gi,{className:"text-muted-foreground size-(--size-icon-xs) shrink-0"}),completed:r.jsx(eo,{className:"text-status-success size-(--size-icon-xs) shrink-0"})};function lh({task:e,isBlocked:t,isExpanded:n,onToggleExpand:s,onHover:o,isHighlightedAsDep:a,isHighlightedAsDependent:i,taskMap:c,statusSince:u,isCelebrating:d,onCelebrationComplete:m,onScrollToTask:f}){const h=p=>{(p.key==="Enter"||p.key===" ")&&(p.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:ur[e.status]}):ur[e.status],r.jsx("span",{className:"truncate",children:e.subject})]}),r.jsx(fe,{children:n&&r.jsx(ih,{task:e,taskMap:c,statusSince:u,onScrollToTask:f})})]})}function ch(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 uh=10,dh="max-h-[30svh] sm:max-h-[40svh]";function mh({tasks:e,taskMap:t,activeForm:n,isCollapsed:s,onToggleCollapse:o,celebratingTaskId:a,onCelebrationComplete:i,statusTimestamps:c}){const[u,d]=l.useState(null),[m,f]=l.useState(null),h=l.useCallback(x=>{d(b=>b===x?null:x)},[]),p=l.useCallback(x=>{const b=document.querySelector(`[data-task-id="${x}"]`);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,uh),y=m?t.get(m):null;return r.jsxs("div",{className:"border-t px-4 py-2",children:[r.jsx(oh,{activeForm:n,isCollapsed:s}),r.jsx(rh,{tasks:e,isCollapsed:s,onToggleCollapse:o}),r.jsx(fe,{children:!s&&r.jsx(Q.ul,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,className:W("mt-1 space-y-0.5 overflow-y-auto",dh),children:g.map(x=>{var T,A;const b=x.id===a&&x.status==="completed",v=ch(x,t),j=c.get(x.id),S=((T=y==null?void 0:y.blockedBy)==null?void 0:T.includes(x.id))??!1,C=((A=y==null?void 0:y.blocks)==null?void 0:A.includes(x.id))??!1;return r.jsx(lh,{task:x,isBlocked:v,isExpanded:u===x.id,onToggleExpand:()=>h(x.id),onHover:f,isHighlightedAsDep:S,isHighlightedAsDependent:C,taskMap:t,statusSince:(j==null?void 0:j.since)??null,isCelebrating:b,onCelebrationComplete:i,onScrollToTask:p},x.id)})})})]})}function fh({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 ph=350;function hh({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 gh({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"),ph);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(hh,{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(fh,{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 xh({bashTasks:e}){const t=Pe(),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(fe,{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 yh=3e3;function bh({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)},yh),()=>{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(ht,{className:"size-3"})})}function dr({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(bh,{taskType:e.taskType,onConfirm:t})]})}function kh({tasks:e,ambientTasks:t=[],onStopTask:n}){return r.jsx(Q.div,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,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(dr,{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(dr,{task:s,onStop:()=>n(s.taskId)},s.taskId))]})]})})}const Hn=4;function vh(e){return e==="stopped"?"complete":e}const Sh="relative after:absolute after:-inset-x-1 after:-inset-y-2.5 md:after:hidden",da=[.16,1,.3,1],jh={width:{duration:.4,ease:da},opacity:{duration:.25}};function wh({tasks:e,onStopTask:t}){const[n,s]=l.useState(!1),o=Pe(),{shown:a,ambient:i}=Ki(e),c=a.filter(x=>x.taskType==="agent"),u=a.filter(x=>x.taskType==="bash"),d=a.length,m=c.slice(0,Hn),f=c.length-Hn,h=c.reduce((x,b)=>x+(b.toolUses??0),0),p=Math.max(0,...a.map(x=>Math.round((x.durationMs??0)/1e3))),g=o?{duration:0}:{duration:.35,ease:da},y=d>0;return r.jsx(fe,{children:(d>0||i.length>0)&&r.jsxs(Q.div,{...y?{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(Nh,{visibleAgents:m,overflowAgentCount:f,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(xh,{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 · "]}),p,"s"]})]}),r.jsxs("button",{type:"button",onClick:()=>s(x=>!x),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",Sh),"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(Mt,{className:W("size-3.5 transition-transform duration-200",n&&"rotate-180")})]})]}),r.jsx(fe,{children:n&&r.jsx(kh,{tasks:a,ambientTasks:i,onStopTask:t})})]},"background-task-bar")})}function Nh({visibleAgents:e,overflowAgentCount:t,allAgentTasks:n}){return r.jsxs("div",{className:"flex items-center gap-0",children:[r.jsx(fe,{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:jh,className:"shrink-0",children:r.jsx(gh,{agent:{taskId:s.taskId,description:s.description??"",status:vh(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(Ch,{count:t,overflowTasks:n.slice(Hn)})]})}function Ch({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 ys="Another chat";function Th(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 Rh(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)??ys;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 Eh({sender:e}){const t=Ze();if(e===null)return r.jsxs("span",{className:"text-muted-foreground flex min-w-0 items-center gap-1 text-xs",children:[r.jsx(Qi,{className:"size-3 shrink-0","aria-hidden":"true"}),r.jsx("span",{className:"min-w-0 truncate",children:ys})]});const{color:n,emoji:s}=yt({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(es,{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:Vi({session:e.chatId}),onClick:o=>{o.preventDefault(),o.stopPropagation(),t(bt({session:e.chatId}))},className:"focus-ring rounded-sm underline-offset-4 hover:underline",children:e.chatTitle}):"another chat · can’t open"]})]})}const En="after:absolute after:-inset-1 md:after:hidden";function Ah({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:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Ke,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:Rh(e)}),r.jsxs("span",{className:"truncate",children:["· ",i]})]}),r.jsx("div",{className:"space-y-0.5",children:r.jsx(fe,{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:Zn.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)??ys}: ${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(Eh,{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(Un,{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",En),"aria-label":`Move queued message ${d+1} earlier`,children:r.jsx(Yi,{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",En),children:r.jsx(Mu,{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",En),"aria-label":`Remove queued message ${d+1}`,children:r.jsx(ht,{className:"size-3"})})]})},u.id)})})})]})}function _h({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(Xi,{open:e,onOpenChange:t,children:r.jsxs(Ji,{children:[r.jsxs(Zi,{children:[r.jsx(el,{children:n>0?`Stop, and put ${n} queued ${a} back?`:`Stop, and cancel ${s} ${i} from other chats?`}),r.jsxs(tl,{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(nl,{children:[r.jsx(sl,{children:"Keep going"}),r.jsx(rl,{onClick:o,children:"Stop"})]})]})})}const Mh={initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4}},Ih={duration:.3,ease:"easeInOut"};function Oh({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(fe,{mode:"wait",children:r.jsx(Q.span,{variants:Mh,initial:"initial",animate:"animate",exit:"exit",transition:Ih,className:"text-muted-foreground truncate text-sm",children:e},t)})})}function Dh(e){const t=be();return kt({queryKey:["workspace-for-session",e??null],queryFn:()=>t.resolveWorkspace(e),enabled:!!e}).data??null}async function ma(e,t,n){try{return await e.runCommandIntent(t,"compact",n),!0}catch(s){const o=s.code==="SESSION_LOCKED";return _e.error(o?"Your agent is busy. Try again in a moment.":"Couldn’t compact the chat."),!1}}function fa(e){const t=/^\/(\S+)([\s\S]*)$/.exec(e.trim());return t?{token:t[1],rest:t[2].trim()}:null}function Ph(e){const t=fa(e);return t?ro(t.token)?!0:Ro(e.trim())!==null:!1}function $h(e,t,n={}){const{mutateAsync:s}=ol(e),o=be(),{startFreshSession:a,compact:i}=n,[c,u]=l.useState(0),d=l.useCallback(f=>{u(p=>p+1);const h=()=>u(p=>Math.max(0,p-1));f.then(h,h)},[]);return{tryRun:l.useCallback(f=>{const h=fa(f),p=h?ro(h.token):null;if(h&&(p==null?void 0:p.fulfillment)==="runtime"&&i){if(!i.supported)return _e.error(`Compact isn’t available on ${i.runtimeLabel||"this agent"}`),{handled:!0,ran:!1};if(!t)return _e.error("No open chat to compact"),{handled:!0,ran:!1};const b=ma(o,t,h.rest||void 0);return d(b),{handled:!0,ran:!0,confirmed:b}}const g=Ro(f);if(!g)return{handled:!1};let y;return{handled:!0,ran:g.command.run(g.args,{sessionId:t,renameSession:b=>{t&&(y=s({sessionId:t,title:b}).then(()=>(_e.success(`Renamed chat to “${b}”`),!0),()=>!1),d(y))},notify:(b,v)=>v==="error"?_e.error(b):_e.success(b),startFreshSession:b=>a==null?void 0:a(b),focusUsageSurface:()=>Ln.getState().reveal()}),...y?{confirmed:y}:{}}},[s,o,t,a,i,d]),commandPending:c>0}}function pa(e,t){return{supported:(e==null?void 0:e.compact.supported)!==!1,runtimeLabel:t}}function mr(e){const t=e.trim().toLowerCase();return t.startsWith("/")?t:`/${t}`}function Fh(e){return il.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 Lh(e,t){const n=al(),s=Fh(t),o=Bs.filter(c=>!(c.command!==void 0&&n.has(`/${c.command}`))),a=new Set(Bs.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(mr);return c.command!==void 0&&u.push(mr(c.command)),!u.some(d=>n.has(d))});return[...s,...o,...i]}const Uh=3e4;function qh({percent:e,compactSupported:t,isStreaming:n}){return!(e===null||e<ll||!t||n)}function zh({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)},Uh),ma(o,e).then(f=>{f||d()}))},[e,o,d]);return{visible:qh({percent:t,compactSupported:n,isStreaming:s}),percent:t??0,pending:a,onCompact:m}}function Bh({children:e,onSwitchAgent:t,onViewProfile:n,onNewSession:s}){return r.jsxs(cl,{children:[r.jsx(ul,{className:"min-w-0",children:e}),r.jsxs(dl,{className:"w-48",children:[r.jsxs(yn,{onClick:t,children:[r.jsx(ml,{className:"mr-2 size-4"}),"Switch agent"]}),r.jsx(Is,{}),r.jsxs(yn,{onClick:n,children:[r.jsx(fl,{className:"mr-2 size-4"}),"View profile"]}),r.jsx(Is,{}),r.jsxs(yn,{onClick:s,children:[r.jsx(Wr,{className:"mr-2 size-4"}),"New chat"]})]})]})}function Wh({agentName:e,agentColor:t,agentEmoji:n,agentPath:s,nameHidden:o}){const a=pl(s),{open:i}=hl(),c=l.useCallback(()=>{s&&gl.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=Xr(),f=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(Bh,{onSwitchAgent:d,onViewProfile:u,onNewSession:f,children:r.jsx(Os,{size:"xs",name:e,color:t,emoji:n,nameHidden:o,onClick:u,className:"max-w-full"})}):r.jsx(Os,{size:"xs",name:e,color:t,emoji:n,nameHidden:o,className:"max-w-full"})})}function Hh({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(xl,{sessionId:e,account:t,open:n,onOpenChange:s,onContinue:()=>{s(!1),a(!0)}})}),r.jsx(na,{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 Gh({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(oo,{fallback:null,onError:a=>ha(n,a),children:r.jsx(o,{...e})})})]},n.id)})})}function ha(e,t){console.warn(`[extensions] ${e.extensionId}'s status-bar item "${e.id}" failed to draw and is hidden.`,t)}function Kh({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(oo,{fallback:null,onError:o=>ha(n,o),children:r.jsx(s,{...e})})})]},n.id)})})}function Qh(e){const{costUsd:t,costBasis:n,...s}=e;return s}function Vh(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(Wh,{agentName:n.name,agentColor:n.color,agentEmoji:n.emoji,agentPath:n.path,nameHidden:e.density==="avatar"})),s.cwd&&(i.cwd=r.jsx(Ac,{cwd:s.cwd})),e.gitStatus&&(i.git=r.jsx(Uc,{data:e.gitStatus,workspace:e.workspace,compact:c})),o.runtime!==null&&(i.runtime=r.jsx(_c,{runtime:o.runtime,model:o.model,onChangeRuntime:o.onChangeRuntime,canSelect:o.canSelect,account:o.account,compact:!0,iconOnly:vo(e.density)}));const u=ao(e.account);u!==null&&(i.account=r.jsx(Hh,{sessionId:t,account:e.account})),e.extensions.items.length>0&&(i.extensions=r.jsx(Gh,{ctx:e.extensions.ctx,items:e.extensions.items})),i.model=r.jsx(Mc,{model:s.model,onChangeModel:f=>a({model:f}),effort:s.effort,onChangeEffort:f=>a({effort:f??void 0}),fastMode:s.fastMode,onChangeFastMode:f=>a({fastMode:f}),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(Ic,{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(Oc,{descriptor:e.plan.descriptor,active:e.plan.active,onToggle:e.plan.onToggle,disabled:!t})),e.contextPercent!==null&&(i.context=r.jsx(Dc,{percent:e.contextPercent,contextUsage:e.contextUsage,compact:e.compact,reading:e.contextReading}));const d=e.usage&&e.usageSource==="account"&&!e.supportsCostTracking?Qh(e.usage):e.usage;return d&&yl(d)&&(e.supportsCostTracking||e.usageSource==="account")&&!Pc({account:u})&&(i.usage=r.jsx($c,{usage:d,observedAt:e.usageObservedAt,now:e.now})),e.liveSubagentCount>0&&(i.subagents=r.jsx(Fc,{count:e.liveSubagentCount,running:e.runningSubagents,waiting:e.waitingOnSubagents})),i.connection=r.jsx(Lc,{connectionState:e.connectionState,compact:c}),i}function Yh({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(So,{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 Xh=[],Jh="(max-width: 639px)";function Zh({sessionId:e,sessionStatus:t,isStreaming:n,syncConnectionState:s,agentName:o,agentColor:a,agentEmoji:i,agentPath:c,lineHidden:u=!1}){var Le,Re;const{ref:d,budget:m}=qc(),f=bl(),h=io(e),p=lo(e,t,n,h.runtime),g=Dt(e||null),{pins:y}=zc(),x=co(e),b=Bc(e,g,x.usage),v=b.usage,j=It(),S=new Date(j),C=kl(v,b.observedAt,S),T=x.contextUsage,A=((Le=cs(e))==null?void 0:Le.contextUsage)??null,_=Ln(ne=>ne.open),E=Ln(ne=>ne.setOpen),{data:L}=vl(p.cwd),I=Dh(p.cwd),{project:w}=Sl(p.cwd),k=jl(Jh),R=l.useMemo(()=>({sessionId:e,cwd:p.cwd,project:w,trackerItems:g.trackerItems,compact:k}),[e,p.cwd,w,g.trackerItems,k]),N=Wc(R),{data:M}=is(),O=wl(x.activeSubagents).running,D=x.runningSubagentCount??O.length,{data:V}=un({sessionId:e||void 0,runtime:h.runtime??void 0}),K=((Re=V==null?void 0:V.find(ne=>ne.value===p.model))==null?void 0:Re.supportsAutoMode)??!1,H=dn(h.runtime),q=(H==null?void 0:H.permissionModes.values)??Xh,F=H==null?void 0:H.permissionModes.default,Y=Nl(e),$=ae(ne=>ne.recordAutoConfirmed),[J,ce]=l.useState(!1),P=Hc({sessionId:e,runtime:h.runtime,declaredModes:q,runtimeDefaultMode:F}),[ee,ue]=l.useState(!1),U=l.useCallback(ne=>p.updateSession({permissionMode:ne}),[p]),Z=l.useCallback(ne=>{if(ne==="auto"&&!Y){ce(!0);return}U(ne).then(Ne=>{Ne&&P.offerFor(ne)})},[Y,U,P,ce]),X=l.useCallback(()=>{$(e),U("auto"),ce(!1)},[$,e,U,ce]),se=Cl(q),ke=se!==void 0&&p.permissionMode===se.id,ve=Tl(e),te=ae(ne=>ne.recordModeBeforePlan),we=l.useCallback(ne=>{if(!se)return;if(ne){te(e,p.permissionMode),U(se.id);return}const Ne=ve,De=Ne!==void 0&&q.some(He=>He.id===Ne)&&(Ne!=="auto"||K)?Ne:F;De&&U(De)},[se,te,e,p,U,ve,q,K,F]),ge=h.runtime?ln(h.runtime).label:"",Se=pa(H==null?void 0:H.commandIntents,ge),le=x.contextPercent,xe=zh({sessionId:e,percent:le,compactSupported:Se.supported,isStreaming:n}),[Me,re]=l.useState(!1);Gc(()=>!u&&re(ne=>!ne));const Ae={cwd:p.cwd,git:Rl(L)?Kc(L.branch,L.clean,L.detached):null,contextPercent:le,connectionState:s,permissionMode:p.permissionMode,permissionDescriptor:(H==null?void 0:H.permissionModes.values.find(ne=>ne.id===p.permissionMode))??null,permissionPickerOpen:ee,onWifi:f,plan:se?{active:ke}:null,runtime:h.runtime===null||M===void 0?null:{type:h.runtime,isDefault:h.runtime===M.defaultRuntime,canSelect:h.canSelect},account:ao(g),usage:v,usageStale:C,subagentsInFlight:D,extensionItems:N.promotion},je=xe.visible&&m.density==="full",Ce=xe.visible&&!je,ye=Vh({sessionId:e,agent:{name:o,color:a,emoji:i,path:c},status:p,onUpdateSession:p.updateSession,onChangeMode:Z,makeDefault:ee?P.line:null,onPermissionPickerOpenChange:ue,modelSupportsAutoMode:K,plan:se?{descriptor:se,active:ke,onToggle:we}:null,gitStatus:L,workspace:I,runtimeChip:h,account:g,contextPercent:le,contextUsage:T,contextReading:A,compact:je?{pending:xe.pending,onCompact:xe.onCompact}:null,usage:v,usageSource:b.source,usageObservedAt:b.observedAt,now:S,supportsCostTracking:(H==null?void 0:H.supportsCostTracking)??!0,runningSubagents:O,liveSubagentCount:D,waitingOnSubagents:x.lifecycle==="idle",connectionState:s,density:m.density,extensions:{ctx:R,items:N.visible}}),{items:Fe,overflow:Be}=Qc(Vc({ctx:Ae,pins:y,nodes:ye,density:m.density}),m);return r.jsxs("div",{ref:d,className:u?"relative":"relative pt-2",children:[!u&&!ee&&P.line&&r.jsx(Yc,{...P.line,placement:"overlay"}),u&&r.jsx(Yh,{compaction:xe}),!u&&r.jsx(Xc,{items:Fe,nameFirst:vo(m.density),trailing:r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(So,{compact:m.density!=="full"}),r.jsx(Jc,{open:Me,onOpenChange:re,diagnostics:x,controls:{plan:se?{active:ke,onToggle:we}:null},promotionContext:Ae,overflowCount:Be,addOns:N.visible.length>0?r.jsx(Kh,{ctx:R,items:N.visible}):void 0,urgentAction:Ce?{label:`Compact chat · ${xe.percent}% full`,onAction:xe.onCompact,pending:xe.pending}:null})]})}),r.jsx(Zc,{usage:v??null,accountUsage:b.accountUsage,observedAt:b.observedAt,open:_,onOpenChange:E}),r.jsx(eu,{open:J,onOpenChange:ce,onConfirm:X})]})}const eg=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 tg(e){return e!==void 0&&e!=="completed"}function ng(e){const t=eg[e];return t!==void 0?t:sg(e)}function sg(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 rg({terminalReason:e}){const t=tg(e),n=t?ng(e):"";return r.jsx(fe,{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(El,{variant:"secondary","aria-label":`Chat ended: ${n}`,children:n})},e)})}const og="The turn ended before completing.";function ag({sessionId:e,onRetry:t,onSigninComplete:n,onChooseModel:s}){var f;const o=fn(e),a=((f=cs(e))==null?void 0:f.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||og,d=o?Jn(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(hs,{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 ig=["Type @ to mention a file","Type / to browse commands","End a line with \\ to keep typing","Drop or paste files to attach"];function lg(e,t,n){const s=l.useCallback(g=>{var v;if(!e||!t.current)return;const y=ae.getState(),x=(v=n.current)==null?void 0:v.get(e);if(x!==void 0&&y.getSession(e).mountGeneration!==x)return;const b=typeof g=="function"?g(y.getSession(e).messages):g;y.updateSession(e,{messages:b})},[e,t,n]),o=l.useCallback(g=>{e&&ae.getState().updateSession(e,{input:g})},[e]),a=l.useCallback(g=>{e&&ae.getState().updateSession(e,{status:g})},[e]),i=l.useCallback(g=>{e&&ae.getState().updateSession(e,{error:g})},[e]),c=l.useCallback(g=>{e&&ae.getState().updateSession(e,{sessionStatus:g})},[e]),u=l.useCallback(g=>{e&&ae.getState().updateSession(e,{estimatedTokens:g})},[e]),d=l.useCallback(g=>{e&&ae.getState().updateSession(e,{streamStartTime:g})},[e]),m=l.useCallback(g=>{e&&ae.getState().updateSession(e,{isTextStreaming:g})},[e]),f=l.useCallback(g=>{e&&ae.getState().updateSession(e,{systemStatus:g})},[e]),h=l.useCallback(g=>{e&&ae.getState().updateSession(e,{operationProgress:g})},[e]),p=l.useCallback(g=>{e&&ae.getState().updateSession(e,{promptSuggestions:g})},[e]);return{setMessages:s,setInput:o,setStatus:a,setError:i,setSessionStatus:c,setEstimatedTokens:u,setStreamStartTime:d,setIsTextStreaming:m,setSystemStatus:f,setOperationProgress:h,setPromptSuggestions:p}}function cg({sessionId:e,sid:t,transport:n,sessionCwd:s,enableMessagePolling:o,isStreaming:a,streamHydrated:i,setMessages:c}){const u=Uo(),d=s.cwd,m=l.useRef(d);l.useEffect(()=>{m.current=d},[d]);const f=l.useRef(i);l.useEffect(()=>{f.current=i},[i]);const h=kt({queryKey:["messages",e,d],queryFn:()=>n.getMessages(e,d??void 0,{newest:!0}),staleTime:Xe.MESSAGE_STALE_TIME_MS,refetchOnWindowFocus:!1,enabled:e!==null&&!i,refetchInterval:()=>a||!o?!1:u?Xe.ACTIVE_TAB_REFETCH_MS:Xe.BACKGROUND_TAB_REFETCH_MS});return l.useEffect(()=>{const p=ae.getState();t&&p.updateSession(t,{historySeeded:!1}),p.getSession(e??"").status!=="streaming"&&c([])},[e,d,t,c]),l.useEffect(()=>{if(!h.data)return;const p=h.data.messages,g=ae.getState().getSession(t).historySeeded;if(!g&&p.length>0){if(a)return;if(t&&ae.getState().updateSession(t,{historySeeded:!0}),e&&!f.current){const y=h.data.earlierMessages??0;qe.getState().noteSnapshot(e,p[0].id,y)}c(p.map(mt));return}g&&!a&&Qm(ae.getState().getSession(t).messages,p,c)},[h.data,a,e,t,c]),{historyQuery:h}}function ga(e,t){if(e===t)return;const{opened:n,counts:s,mergeUsage:o}=pt.getState(),a=Ds("session",e),i=Date.parse(n[a]??"");Number.isNaN(i)||o([{key:Ds("session",t),lastUsedAt:i,useCount:s[a]??1}])}function Gn(e,t,n){e&&n.then(s=>{if(!s)return;const o=ae.getState();o.getSession(e).input.trim()===t.trim()&&o.updateSession(e,{input:""})},()=>{})}const Ht=new Map;function ug(e,t){const s=(Ht.get(e)??Promise.resolve()).then(t),o=s.then(()=>{},()=>{});return Ht.set(e,o),o.then(()=>{Ht.get(e)===o&&Ht.delete(e)}),s}const ct=new Set;function fr(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 dg({sessionId:e,input:t,status:n,transport:s,queryClient:o,selectedCwd:a,onSessionIdChangeReplace:i,transformContent:c,launchRuntime:u,agentPath:d,agentLookupPending:m,agentLookupFailed:f,launchAccount:h,takeSeedContext:p,setInput:g,setError:y,tryNativeCommand:x}){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}=is(),C=l.useRef(S==null?void 0:S.defaultRuntime);l.useEffect(()=>{C.current=S==null?void 0:S.defaultRuntime},[S==null?void 0:S.defaultRuntime]);const T=Al(e,u),A=l.useRef(T.mode);l.useEffect(()=>{A.current=T.mode},[T.mode]);const _=l.useRef(c);l.useEffect(()=>{_.current=c});const E=l.useRef(p);l.useEffect(()=>{E.current=p});const L=l.useRef(i);l.useEffect(()=>{L.current=i});const I=l.useCallback(async(q,F,Y={})=>{var se,ke,ve;if(!Y.kickoff){const te=x(q);if(te.handled){F&&te.ran&&(te.confirmed?Gn(e,q,te.confirmed):g(""));return}}const $=e,J=Y.cwd??b.current;y(null);const ce=o.getQueryData(Ye.list(J))??[],P=bn($),ee=(P==null?void 0:P.draft)??!ce.some(te=>te.id===$),ue=(P==null?void 0:P.draft)===!1?!1:ee||ct.has($);if(ue&&(m||f))return;ue&&ct.add($),Y.kickoff||(pt.getState().recordOpened("session",$),J&&pt.getState().recordOpened("agent",J)),Nt.attachSession($,J);let U;try{U=!Y.kickoff&&_.current?await _.current(q):q}catch(te){if(Y.kickoff)throw te;y({heading:"Couldn’t send message",message:te.message||"The attachment didn’t upload. Try again.",retryable:!1});return}const Z=Te.getState();if(ee){const te=new Date().toISOString();Ps(o,J,{id:$,title:`Chat ${$.slice(0,8)}`,createdAt:te,updatedAt:te,permissionMode:((se=o.getQueryData(Ye.detail($,J)))==null?void 0:se.permissionMode)??A.current??"default",runtime:v.current??C.current??"claude-code"})}const X=crypto.randomUUID();Y.kickoff||Z.setOptimisticUserMessage($,{id:X,content:q}),Z.setTriggerPending($,!0),F&&g("");try{const te=$s(ie.getState(),J??null),{uiState:we,commit:ge}=Fs($,te),le={clientMessageId:X,context:we?{uiState:we}:void 0};ue&&(le.create=!0),ue&&v.current&&(le.runtime=v.current),ue&&d&&(le.agentPath=d),ue&&j.current&&(le.account=j.current);const xe=ie.getState().retryAccount;(xe==null?void 0:xe.sessionId)===$&&(le.account=xe.id,ie.getState().setRetryAccount(null));const Me=(ke=E.current)==null?void 0:ke.call(E);Me&&(le.seedContext=Me);const{sessionId:re}=await s.postMessage($,U,J??void 0,le);if(ct.delete($),P){const je={...P,draft:!1};kn($,je),kn(re,je)}if(ge(re),re!==$){Te.getState().migrateSessionContinuity($,re),ie.getState().carryCanvasWritesAcross($,re),Nt.attachSession(re,J),ga($,re),ut.getState().migrate($,re);const je=o.getQueryData(Ye.list(J))??[],Ce=je.find(ye=>ye.id===$);Ce&&!je.some(ye=>ye.id===re)&&Ps(o,J,{...Ce,id:re}),o.setQueryData(Ye.list(J),ye=>ye==null?void 0:ye.filter(Fe=>Fe.id!==$))}(ve=L.current)==null||ve.call(L,re);const Ae=re;setTimeout(()=>{var ye;const je=Ct.getState().rekeys[Ae]??Ae,Ce=Te.getState().getSession(je);Ce.triggerPending&&((ye=Ce.status)==null?void 0:ye.lifecycle)!=="streaming"&&Te.getState().setTriggerPending(je,!1)},cn.TRIGGER_PENDING_TIMEOUT_MS)}catch(te){if(Te.getState().setOptimisticUserMessage($,null),Te.getState().setTriggerPending($,!1),Y.kickoff)throw te;y({heading:"Couldn’t send message",message:te.message||"Couldn’t reach DorkOS. Try again.",retryable:!0,...fr(te)})}},[e,s,o,g,y,x,d,m,f]),w=l.useCallback(async(q,F)=>{!q.trim()||n==="streaming"||await I(q.trim(),(F==null?void 0:F.clearInput)===!0,{...F!=null&&F.cwd?{cwd:F.cwd}:{}})},[n,I]),k=l.useCallback(()=>w(t,{clearInput:!0}),[t,w]),R=l.useCallback(async(q,F,Y)=>{if(!e)return!1;const $=e,J=b.current;y(null);const ce=(o.getQueryData(Ye.list(J))??[]).some(ee=>ee.id===$),P=bn($);return((P==null?void 0:P.draft)??!ce)&&ct.add($),ug($,async()=>{var ue;let ee;try{ee=_.current?await _.current(q):q}catch(U){return y({heading:Y,message:U.message||"The attachment didn’t upload. Try again.",retryable:!1}),!1}try{const U=$s(ie.getState(),J??null),{uiState:Z,commit:X}=Fs($,U),se={...Z?{uiState:Z}:{},...F==="queue"?{queued:!0}:{}},ke=Object.keys(se).length>0?se:void 0,ve=((ue=bn($))==null?void 0:ue.draft)===!1?!1:ct.has($);if(ve&&(m||f))return!1;const{sessionId:te}=await s.postMessage($,ee,J??void 0,{context:ke,disposition:F,...ve?{create:!0,...v.current&&{runtime:v.current},...j.current&&{account:j.current},...d&&{agentPath:d}}:{}});return ve&&ct.delete($),P&&kn(te,{...P,draft:!1}),X(te),!0}catch(U){return y({heading:Y,message:U.message||"Couldn’t reach DorkOS. Try again.",retryable:!1,...fr(U)}),!1}})},[e,s,o,y,d,m,f]),N=l.useCallback(q=>R(q,"queue","Couldn’t queue message"),[R]),M=l.useCallback(q=>R(q,"steer","Couldn’t steer the agent"),[R]),O=l.useCallback(q=>R(q,"stage","Couldn’t add context"),[R]),D=l.useCallback(async()=>{if(!e)return{receipt:{outcome:"not-running",reason:"no-open-turn",runtime:"unknown"},cancelled:[]};try{const{receipt:q,cancelledQueued:F}=await s.interruptSession(e);return{receipt:q,cancelled:F??[]}}catch{return{receipt:{outcome:"failed",reason:"delivery-failed",runtime:"unknown"},cancelled:[]}}},[e,s]),V=l.useCallback(async q=>{y(null),await I(q,!1)},[I,y]),K=l.useCallback(async(q,F)=>{await I(q,!1,{kickoff:!0,...F?{cwd:F}:{}})},[I]),H=l.useCallback((q,F)=>{},[]);return{handleSubmit:k,submitContent:w,enqueueContent:N,steerContent:M,addContextContent:O,stop:D,retryMessage:V,submitKickoff:K,markToolCallResponded:H}}const Gt=new Set,pr=new Set,Kt=new Set;function mg(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 fg({sessionId:e,cwd:t,status:n,messages:s,hydrated:o,canStart:a=!0,submitKickoff:i,submitContent:c}){const u=an(e),d=s.length,m=s.some(mg);l.useEffect(()=>{if(!e)return;if(!u){t&&d===0&&n==="idle"&&ut.getState().claimByPath(t,e);return}if(u.fired||Gt.has(e)||!a||d>0||n!=="idle")return;Gt.add(e),ut.getState().markFired(e);const f=u.kind==="first-message";(f?c:i)(u.kickoffMessage,u.path||void 0).catch(p=>{console.warn("[chat] first-turn trigger failed for newborn session",e,p),pr.has(e)?f||ut.getState().markGreetingFailed(e):(pr.add(e),Gt.delete(e),ut.getState().resetFired(e))})},[e,t,u,n,d,a,i,c]),l.useEffect(()=>{if(!(!e||!u)&&u.kind!=="first-message"&&!(!u.fired&&!Gt.has(e))&&!u.greetingFailed){if(m){Kt.delete(e);return}if(n==="streaming"){Kt.add(e);return}o&&Kt.has(e)&&(Kt.delete(e),ut.getState().markGreetingFailed(e))}},[e,u,n,m,o])}function pg(e,t){return l.useEffect(()=>{_l(),Nt.connectList(),e&&Nt.attachSession(e,t)},[e,t]),l.useEffect(()=>()=>Nt.releaseSession(),[]),uo(e??"")}function hg(e,t){const n=mo(e),s=l.useRef(t);l.useEffect(()=>{s.current=t}),l.useEffect(()=>{var o;!n||!e||(ga(e,n),(o=s.current)==null||o.call(s,n))},[n,e])}const gg=500;function xg(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 f=s.current;if(!e||!n){e&&f.delete(e),a(null);return}let h=f.get(e);(!h||h.turnSeq!==i)&&(h={turnSeq:i,anchor:Date.now()},f.set(e,h)),a(h.anchor)},[e,n,i]);const c=l.useMemo(()=>{let f=0;for(const h of t)h.type==="text_delta"&&(f+=h.text.length);return f/4},[t]),[u,d]=l.useState(!1),m=l.useRef({sid:null,tokens:0});return l.useEffect(()=>{const f=m.current,h=e===f.sid&&c>f.tokens;if(m.current={sid:e,tokens:c},h&&!u&&d(!0),!h&&!u)return;const p=setTimeout(()=>d(!1),gg);return()=>clearTimeout(p)},[e,c,u]),{streamStartTime:o,estimatedTokens:c,isTextStreaming:u}}function yg(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 bg(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===Ml)&&(n={message:s.message});continue}n=null}return{operationProgress:t,systemStatus:n}}function kg(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 vg(e,t){return((e==null?void 0:e.message)??null)===((t==null?void 0:t.message)??null)}function Sg(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}=bg(t),m=o.current.get(e)??null;kg(m,u)||(i.current(u),o.current.set(e,u));const f=a.current.get(e)??null;vg(f,d)||(c.current(d),a.current.set(e,d))},[e,t])}function jg(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 wg(e,t){const n=jg(e,t.approval.approvalId);n?n.approval=t.approval:e.push({type:"capability_approval",approval:t.approval})}function Ng(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 Cg(e,t,n){return e.findIndex(s=>s.type==="mcp_signin"&&s.agentId===t&&s.serverName===n&&s.outcome===void 0)}function Tg(e,t){const n={type:"mcp_signin",serverName:t.serverName,agentId:t.agentId,flowId:t.flowId,authorizeUrl:t.authorizeUrl,disclosure:t.disclosure},s=Cg(e,t.agentId,t.serverName);s===-1?e.push(n):e[s]=n}function Rg(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 Eg(e){return e.type==="interaction_resolved"||e.type==="capability_approval_resolved"||e.type==="mcp_signin_resolved"}function Ag(e){const t=new Set;for(const n of e)n.type==="interaction_resolved"&&t.add(n.id);return t}function _g(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 hr(e){return e.tasks.map(t=>t.taskId).join("\0")}function An(e){return e.type==="work_left_running"}function Mg(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)An(c)&&s.add(hr(c));if(n.size===0&&s.size===0)return e;let o=!1;const a=[];for(const i of e){if(!i.parts.some(An)){a.push(i);continue}const c=i.parts.flatMap(u=>An(u)?i._streaming&&s.has(hr(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 gr="__in_progress_turn__",Ig="__optimistic_user__";function Og(e){return{id:Ig,role:"user",content:e,parts:[{type:"text",text:e}],timestamp:"",_streaming:!0}}function Dg(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 Pg(e){return{id:`staged-${e.messageId}`,role:"user",content:e.content,parts:[{type:"text",text:e.content}],timestamp:"",_streaming:!0,_stagedContext:!0}}function $e(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 hn(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 $g(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 Fg(e,t){xa(e);const n=e[e.length-1];n&&n.type==="text"?n.text+=t.text:e.push({type:"text",text:t.text})}function Lg(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 xa(e){for(const t of e)t.type==="thinking"&&t.isStreaming&&(t.isStreaming=!1)}function Ug(e,t,n){const s=$e(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 qg(e,t){const n=$e(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 zg(e,t){const n=$e(e,t.toolCallId);n&&(n.progressOutput=(n.progressOutput??"")+t.content)}function ya(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=$e(e,t.id);s?Object.assign(s,n):e.push({type:"tool_call",toolCallId:t.id,toolName:t.toolName,...n})}function ba(e,t){const n=$e(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 ka(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=hn(e,t.id);s?Object.assign(s,n):e.push({type:"elicitation",interactionId:t.id,...n})}function Bg(e){return e==="denied"||e==="expired"||e==="cancelled"?"error":e==="answered"?"complete":"running"}function Wg(e,t){const n=$e(e,t.id);if(n){n.status==="pending"&&(n.status=Bg(t.resolution),n.approvalRemainingMs=void 0);const o=Il(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=Ol(t);a&&(n.questionOutcome=a)}const s=hn(e,t.id);s&&s.status==="pending"&&(s.status="submitted",s.remainingMs=void 0)}function Hg(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 Gg(e,t){for(const n of e.values()){const s=n.find(o=>o.hookId===t);if(s)return s}}function Kg(e,t,n){const s=Hg(e,t.hookId)??Gg(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=$e(e,t.toolCallId);a?a.hooks=[...a.hooks??[],o]:n.set(t.toolCallId,[...n.get(t.toolCallId)??[],o])}function Qg(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 Vg(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 Yg(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 Xg(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 Jg(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 Zg(e,t){xa(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 ex(e,t){const n=$g(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 tx={approval:"approval_required",question:"question_prompt",elicitation:"elicitation_prompt"};function nx(e){const{type:t,...n}=e;return{...n,seq:0,type:tx[t]}}function sx(e,t){const n=$e(e,t);return(n==null?void 0:n.interactiveType)!==void 0?!0:hn(e,t)!==void 0}function rx(e,t){switch(t.type){case"approval_required":ya(e,t);break;case"question_prompt":ba(e,t);break;case"elicitation_prompt":ka(e,t);break}}function ox(e,t,n){const s=$e(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=hn(e,t.id);o&&(o.startedAt=t.startedAt,o.remainingMs=t.remainingMs,t.timeoutMs!==void 0&&(o.timeoutMs=t.timeoutMs))}function ax(e,t,n){for(const s of t){if(sx(e,s.id)){ox(e,s,n.has(s.id));continue}rx(e,nx(s)),ix(e,s)}}function ix(e,t){if(t.parked!==!0)return;const n=$e(e,t.id);n&&(n.approvalParked=!0)}function Kn(e){const t=[],n=new Map;for(const s of e)switch(s.type){case"text_delta":Fg(t,s);break;case"thinking_delta":Lg(t,s);break;case"tool_call":Ug(t,s,n);break;case"tool_result":qg(t,s);break;case"tool_progress":zg(t,s);break;case"approval_required":ya(t,s);break;case"question_prompt":ba(t,s);break;case"elicitation_prompt":ka(t,s);break;case"capability_approval_required":wg(t,s);break;case"capability_approval_resolved":Ng(t,s);break;case"mcp_signin_required":Tg(t,s);break;case"mcp_signin_resolved":Rg(t,s);break;case"interaction_resolved":Wg(t,s);break;case"subagent_update":ex(t,s);break;case"hook_update":Kg(t,s,n);break;case"memory_recall":Qg(t,s);break;case"image_attachment":Vg(t,s);break;case"compact_boundary":Yg(t,s);break;case"permission_denied":Xg(t,s);break;case"model_substituted":case"work_left_running":t.push(_g(s));break;case"operation_progress":Jg(t,s);break;case"error":Zg(t,s);break}return t}function xr(e,t){if(e.length===0)return null;const n=fs(e);return{id:t,role:"assistant",content:n.content,toolCalls:n.toolCalls.length>0?n.toolCalls:[],parts:e,timestamp:"",_streaming:!0}}function lx(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=Kn([...s,...e.slice(c+1).filter(Eg)]),m=xr(d,`${gr}-${o}`);m&&n.push(m),o+=1,n.push(u.type==="turn_input"?Dg(u):Pg(u)),s=[]}const a=Kn(s);ax(a,t,Ag(e));const i=xr(a,gr);return i&&n.push(i),n}function cx(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 ux(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 dx(e,t){const n=e.parts.filter(o=>o.type!=="tool_call"||!t.has(o.toolCallId)||!ux(o));if(n.length===e.parts.length)return e;if(n.length===0)return null;const s=fs(n);return{...e,parts:n,content:s.content,toolCalls:s.toolCalls.length>0?s.toolCalls:void 0}}function mx(e){let t=e.length;for(;t>0&&e[t-1].role==="assistant";)t-=1;return t}function fx(e,t,n=[],s=null){const o=lx(t,n),a=cx(o),i=Km(e),c=a.size===0?i.length:mx(i),u=[];for(const[d,m]of i.entries()){const f=d<c?m:dx(m,a);f&&u.push(f)}return s&&u.push(Og(s.content)),u.push(...o),Mg(u,t)}function yr(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 px(e,t){return e.interactiveType==="approval"&&e.approvalOutcome===t.outcome&&e.approvalResolvedAt===t.resolvedAt&&e.approvalStartedAt===t.startedAt&&e.approvalReasonGiven===t.reasonGiven}function hx(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||px(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 gx(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 xx(e,t,n,s){const o=yx(s());if(o!==void 0){const a=await e.getMessages(t,n,{since:o}),i=gx(s(),a);if(i)return i}return(await e.getMessages(t,n)).messages}function yx(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="user")return e[t].id}function bx({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),f=l.useRef(new Map),h=l.useRef(new Map),p=l.useRef(new Map),g=l.useRef(new Map),y=((v=s.status)==null?void 0:v.lifecycle)??null,x=s.hydrationGeneration,b=s.userTurnCount;l.useEffect(()=>{var L,I,w;if(!e)return;const j=g.current.get(e);g.current.set(e,b),j!==void 0&&b!==j&&p.current.set(e,!1);const S=f.current.get(e);if(f.current.set(e,x),S!==x){m.current.set(e,y),y==="streaming"&&h.current.set(e,((L=Te.getState().getSession(e).optimisticUserMessage)==null?void 0:L.id)??null);return}const C=m.current.get(e)??null;if(m.current.set(e,y),y==="streaming"&&C!=="streaming"&&h.current.set(e,((I=Te.getState().getSession(e).optimisticUserMessage)==null?void 0:I.id)??null),!(C==="streaming"&&y!=="streaming"&&y!==null))return;const A=e,_=h.current.get(A)??null,E=yr(Kn(Te.getState().getSession(A).inProgressTurn));xx(t,A,u.current??void 0,()=>Te.getState().getSession(A).messages).then(k=>{var V;const R=Te.getState(),N=R.getSession(A),M=((V=N.status)==null?void 0:V.lifecycle)==="streaming",O=new Map([...yr(N.messages.flatMap(K=>K.parts??[])),...E]);R.setHistoryMessages(A,hx(k,O),{preserveInProgressTurn:M});const D=N.optimisticUserMessage;(D===null||D.id===_)&&R.setOptimisticUserMessage(A,null)}).catch(k=>{console.warn("[turn-end-reconcile] history reload failed",{sessionId:A,error:k instanceof Error?k.message:String(k)})}),o.invalidateQueries({queryKey:["tasks",A]}),p.current.get(A)!==!0&&(p.current.set(A,!0),(w=d.current)==null||w.call(d))},[e,y,x,b,t,o])}function kx(e){return e.streamReadyCursor!==null||e.messages.length>0||e.inProgressTurn.length>0||e.optimisticUserMessage!==null}function va(e,t){const n=kx(e),s=n?e.messages:t,o=br.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?fx(e.messages,e.inProgressTurn,e.pendingInteractions,e.optimisticUserMessage):t,i=Sc(a);return br.set(s,{hydrated:n,inProgressTurn:e.inProgressTurn,pendingInteractions:e.pendingInteractions,optimisticUserMessage:e.optimisticUserMessage,legacyMessages:t,result:i}),i}const br=new WeakMap;function vx(e,t={}){const n=be(),s=as(),o=ie(X=>X.selectedCwd),a=ie(X=>X.enableMessagePolling),i=ie(X=>X.pendingAccount),c=qo(),u=e??"",{messages:d,input:m,status:f,error:h,sessionStatus:p,systemStatus:g,operationProgress:y,promptSuggestions:x}=fo(u),b=pg(e,c.cwd);hg(e,t.onSessionIdChangeReplace);const v=Dl(u),j=l.useMemo(()=>va(b,d),[b,d]),S=Pl(b,f),{streamStartTime:C,estimatedTokens:T,isTextStreaming:A}=xg(e,b.inProgressTurn,S==="streaming");yg(e,b.inProgressTurn,b.streamReadyCursor,t.onTaskEvent);const _=l.useRef(!0);l.useEffect(()=>(_.current=!0,()=>{_.current=!1}),[]);const E=l.useRef(new Map);l.useLayoutEffect(()=>{u&&(E.current.has(u)||E.current.set(u,ae.getState().getSession(u).mountGeneration))},[u]);const{setMessages:L,setInput:I,setError:w,setSystemStatus:k,setOperationProgress:R}=lg(u,_,E);Sg(e,b.inProgressTurn,R,k),u&&ae.getState().initSession(u),l.useEffect(()=>{e&&(ae.getState().initSession(e),ae.getState().touchSession(e),E.current.set(e,ae.getState().getSession(e).mountGeneration))},[e]),l.useEffect(()=>{if(e)return Ct.getState().clearUnseen(e),Ct.subscribe(X=>{X.unseen[e]!==void 0&&Ct.getState().clearUnseen(e)})},[e]);const{historyQuery:N}=cg({sessionId:e,sid:u,transport:n,sessionCwd:c,enableMessagePolling:a,isStreaming:S==="streaming",streamHydrated:b.streamReadyCursor!==null,setMessages:L}),M=$h(o,e,{startFreshSession:t.startFreshSession,compact:t.compactIntent}),{handleSubmit:O,submitContent:D,enqueueContent:V,steerContent:K,addContextContent:H,stop:q,retryMessage:F,submitKickoff:Y,markToolCallResponded:$}=dg({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:I,setError:w,tryNativeCommand:M.tryRun}),J=b.streamReadyCursor!==null,ce=l.useCallback((X,se)=>D(X,se?{cwd:se}:void 0),[D]);fg({sessionId:e,cwd:o,status:S,messages:j,hydrated:J,canStart:!t.agentLookupPending&&!t.agentLookupFailed,submitKickoff:Y,submitContent:ce}),bx({sessionId:e,transport:n,sessionCwd:c,streamState:b,queryClient:s,onStreamingDone:t.onStreamingDone});const P=N.isLoading&&j.length===0,ee=l.useMemo(()=>j.flatMap(X=>X.toolCalls||[]).filter(X=>X.interactiveType&&X.status==="pending"),[j]),ue=ee[0]||null,U=ue!==null,Z=(ue==null?void 0:ue.interactiveType)||null;return{messages:j,input:m,setInput:I,handleSubmit:O,submitContent:D,enqueueContent:V,steerContent:K,addContextContent:H,status:S,error:h,stop:q,retryMessage:F,isLoadingHistory:P,hydrated:J,sessionStatus:p,streamStartTime:C,estimatedTokens:T,isTextStreaming:A,isWaitingForUser:U,waitingType:Z,activeInteraction:ue,pendingInteractions:ee,markToolCallResponded:$,systemStatus:g,operationProgress:y,promptSuggestions:x,syncConnectionState:v,tryNativeCommand:M.tryRun,commandPending:M.commandPending}}function Sx(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. ${wx(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 jx(e,t){return!ls(e)||e.outcome==="not-running"&&t}function wx(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 Nx(){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=f=>{i.current=f.matches};return d.addEventListener("change",m),()=>d.removeEventListener("change",m)},[]),nd({timeoutMs:it.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 cd({enabled:e,miniProbability:it.MINI_PROBABILITY,debounceWindowMs:it.DEBOUNCE_WINDOW_MS,debounceThreshold:it.DEBOUNCE_THRESHOLD,minTasksForMajor:it.MIN_TASKS_FOR_MAJOR,idleTimeoutMs:it.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 f;d.action==="update"&&d.task.status==="completed"&&d.task.id&&((f=a.current)==null||f.onTaskCompleted(d.task.id,m))},[]),u=l.useCallback(()=>{n(null),o(null)},[]);return{handleTaskEvent:c,activeCelebration:t,celebratingTaskId:s,clearCelebration:u}}function _n(){return{tasks:new Map,statusTimestamps:new Map,legacyCreateCount:0}}function Cx(e){const t={};for(const[n,s]of Object.entries(e))s!==void 0&&s!==""&&(t[n]=s);return t}function Mn(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,...Cx(t.task)}),t.task.status&&t.task.status!==s.status&&e.statusTimestamps.set(t.task.id,{status:t.task.status,since:n});return}}}function kr(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 Tx(e,t){return[...e].sort((n,s)=>{const o=n.status==="in_progress"?0:n.status==="pending"&&!kr(n,t)?1:n.status==="pending"?2:3,a=s.status==="in_progress"?0:s.status==="pending"&&!kr(s,t)?1:s.status==="pending"?2:3;return o-a})}const Rx=10;let vr=0;function Qt(e){return e==="streaming"||e==="blocked"}function Ex(e,t=!1){const n=be(),o=qo().cwd,a=ie(E=>E.enableMessagePolling),i=Uo(),[c,u]=l.useState(_n()),d=po(e??""),[m,f]=l.useState(()=>!Qt(d)),h=l.useRef([]),p=l.useRef(0),{data:g}=kt({queryKey:["tasks",e,o],queryFn:async()=>{const E=++vr;return{...await n.getTasks(e,o??void 0),fetchOrder:E}},staleTime:3e4,refetchOnWindowFocus:!1,enabled:e!==null,refetchInterval:()=>!a||t?!1:i?Xe.ACTIVE_TAB_REFETCH_MS:Xe.BACKGROUND_TAB_REFETCH_MS}),y=l.useRef(null);l.useEffect(()=>{const E=`${e??""}::${o??""}`,L=y.current!==E;if(y.current=E,L&&(h.current=[],p.current=0,u(_n())),!g||g.fetchOrder<=p.current)return;p.current=g.fetchOrder;const I=_n();g.tasks.length>0&&Mn(I,{action:"snapshot",task:g.tasks[0],tasks:g.tasks},Date.now()),h.current=h.current.filter(({order:w})=>w>g.fetchOrder);for(const{event:w,receivedAt:k}of h.current)Mn(I,w,k);u(I)},[g,e,o]);const x=l.useCallback(E=>{const L=Date.now();E.action==="snapshot"&&(h.current=[]),h.current.push({order:++vr,event:E,receivedAt:L}),u(I=>{const w={tasks:new Map(I.tasks),statusTimestamps:new Map(I.statusTimestamps),legacyCreateCount:I.legacyCreateCount};return Mn(w,E,L),w})},[]),b=l.useRef(!1),v=l.useCallback(()=>{f(E=>(b.current=!E,!E))},[]),j=l.useRef(Qt(d));l.useEffect(()=>{const E=Qt(d);E!==j.current&&(j.current=E,E?b.current||f(!1):f(!0))},[d]);const S=l.useRef(null);l.useEffect(()=>{const E=`${e??""}::${o??""}`;if(S.current===E)return;S.current=E;const L=Qt(d);j.current=L,b.current=!1,f(!L)},[e,o,d]);const C=Array.from(c.tasks.values()),T=Tx(C,c.tasks),A=C.find(E=>E.status==="in_progress"),_=(A==null?void 0:A.activeForm)??null;return{tasks:T.slice(0,Rx),taskMap:c.tasks,activeForm:_,isCollapsed:m,toggleCollapse:v,handleTaskEvent:x,statusTimestamps:c.statusTimestamps}}function Ax(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()},[]),f=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()},[]),p=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]),y=l.useCallback(b=>{const v=t.current;v&&"navigateQuestion"in v&&(v.navigateQuestion(b),s(0),a(!0),c(v.getOptionCount()))},[]),x=l.useCallback(()=>{const b=t.current;b&&"submit"in b&&b.submit()},[]);return sd({activeInteraction:d,onApprove:m,onAlwaysAllow:f,onDeny:h,onToggleOption:p,onNavigateOption:g,onNavigateQuestion:y,onSubmit:x,optionCount:i,focusedIndex:n}),{handleToolRef:u,focusedOptionIndex:o?n:-1}}function Vt(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 _x({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(C=>({cmd:C,rank:Ad(a,C)})).filter(C=>C.rank.match).sort((C,T)=>C.rank.bucket-T.rank.bucket||T.rank.score-C.rank.score).map(({cmd:C,rank:T})=>({...C,matchedAlias:T.matchedAlias})):e,[e,a]),[m,f]=l.useState(null),h=m!==null&&m.query===a&&m.open===s?m.index:Vt(d,0,1),p=d[h],g=d.length===0||p!==void 0&&!p.disabled?h:Vt(d,0,1),y=l.useCallback((C,T)=>{const _=C.slice(0,T).match(/(^|\s)\/([\w:-]*)$/);return _?(o(!0),i(_[2]),u((_.index??0)+_[1].length),!0):(o(!1),!1)},[]),x=l.useCallback(C=>{const T=t.slice(0,c),A=t.slice(c+1+a.length);return o(!1),T+C.fullCommand+(A.startsWith(" ")?"":" ")+A},[t,a,c]),b=l.useCallback(()=>{f({query:a,open:s,index:Vt(d,g+1,1)})},[d,g,a,s]),v=l.useCallback(()=>{f({query:a,open:s,index:Vt(d,g-1,-1)})},[d,g,a,s]),j=l.useCallback(()=>{const C=d[g];return C&&!C.disabled?x(C):(C||o(!1),null)},[d,g,x]),S=l.useCallback(()=>{o(!1),i("")},[]);return{showCommands:s,setShowCommands:o,commandQuery:a,selectedIndex:g,filteredCommands:d,slashTriggerPos:c,detectCommandTrigger:y,handleCommandSelect:x,handleArrowUp:v,handleArrowDown:b,handleKeyboardSelect:j,resetCommand:S}}function Mx({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),f=l.useMemo(()=>s?a?e.map(v=>({...v,...Xt(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(()=>{f.length>0&&c>=f.length&&u(f.length-1)},[f.length,c]);const h=l.useCallback((v,j)=>{const C=v.slice(0,j).match(/(^|\s)@([\w./:-]*)$/);return C?(o(!0),i(C[2]),m((C.index??0)+C[1].length),!0):(o(!1),!1)},[]),p=l.useCallback(v=>{const j=t.slice(0,d),S=t.slice(d+1+a.length);if(v.isDirectory){const T=j+"@"+v.path+S,A=j.length+1+v.path.length;return i(v.path),u(0),{newValue:T,newCursorPos:A,keepOpen:!0}}const C=j+"@"+v.path+" "+S;return o(!1),{newValue:C,keepOpen:!1}},[t,d,a]),g=l.useCallback(()=>{u(v=>f.length===0?0:(v+1)%f.length)},[f.length]),y=l.useCallback(()=>{u(v=>f.length===0?0:(v-1+f.length)%f.length)},[f.length]),x=l.useCallback(()=>f.length>0&&c<f.length?p(f[c]):(o(!1),null),[f,c,p]),b=l.useCallback(()=>{o(!1),i("")},[]);return{showFiles:s,setShowFiles:o,fileQuery:a,fileSelectedIndex:c,filteredFiles:f,fileTriggerPos:d,detectFileTrigger:h,handleFileSelect:p,handleArrowUp:y,handleArrowDown:g,handleKeyboardSelect:x,resetFiles:b}}function Ix({input:e,setInput:t,commands:n,fileEntries:s}){const[o,a]=l.useState(0),i=_x({commands:n,input:e,cursorPos:o}),c=Mx({fileEntries:s,input:e,cursorPos:o}),u=l.useCallback((T,A)=>{if(c.detectFileTrigger(T,A)){i.setShowCommands(!1);return}if(i.detectCommandTrigger(T,A)){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(T=>{t(T),d.current={value:T,cursor:d.current.cursor||T.length},u(T,d.current.cursor)},[t,u]),f=l.useCallback(T=>{a(T),d.current={value:d.current.value,cursor:T},u(d.current.value,T)},[u]),h=l.useCallback(T=>{const A=i.handleCommandSelect(T);t(A)},[i,t]),p=l.useCallback(T=>{const A=c.handleFileSelect(T);t(A.newValue),A.newCursorPos!==void 0&&a(A.newCursorPos)},[c,t]),g=l.useCallback(()=>{c.showFiles?c.handleArrowDown():i.handleArrowDown()},[c,i]),y=l.useCallback(()=>{c.showFiles?c.handleArrowUp():i.handleArrowUp()},[c,i]),x=l.useCallback(()=>{if(c.showFiles){const T=c.handleKeyboardSelect();T&&(t(T.newValue),T.newCursorPos!==void 0&&a(T.newCursorPos))}else if(i.showCommands){const T=i.handleKeyboardSelect();T&&t(T)}},[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,C=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:C,paletteListboxId:S,handleInputChange:m,handleCursorChange:f,handleArrowUp:y,handleArrowDown:g,handleKeyboardSelect:x,handleCommandSelect:h,handleFileSelect:p,dismissPalettes:b}}function Ox(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 Dx(){const e=be(),t=ie(h=>h.selectedCwd),[n,s]=l.useState([]),o=l.useCallback(h=>{const p=h.map(g=>({id:crypto.randomUUID(),file:g,status:"pending",progress:0}));s(g=>[...g,...p])},[]),a=l.useCallback(h=>{s(p=>p.filter(g=>g.id!==h))},[]),i=l.useCallback(()=>{s([])},[]),c=l.useCallback(h=>{s(p=>p.map(g=>g.id===h&&g.status==="error"?{...g,status:"pending",progress:0,error:void 0}:g))},[]),u=l.useRef(null),d=Rt({meta:{suppressErrorToast:!0},mutationFn:async h=>{if(!t)throw new Error("No working directory selected");s(x=>x.map(b=>h.some(v=>v.id===b.id)?{...b,status:"uploading"}:b));const p=x=>{s(b=>b.map(v=>v.status==="uploading"?{...v,progress:x.percentage}:v))},g=new AbortController;u.current=g;const y=h.map(x=>x.file);return e.uploadFiles(y,t,p,g.signal)},onSettled:()=>{u.current=null},onSuccess:(h,p)=>{s(g=>g.map(y=>{const x=p.findIndex(b=>b.id===y.id);return x===-1?y:{...y,status:"uploaded",progress:100,result:h[x]}}))},onError:h=>{s(p=>p.map(g=>g.status==="uploading"?{...g,status:"error",error:h.message}:g))}}),m=l.useCallback(()=>{var h;(h=u.current)==null||h.abort()},[]),f=l.useCallback(async()=>{const h=n.filter(x=>x.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 p=n.filter(x=>x.status==="uploaded"&&x.result).map(x=>x.result.savedPath),g=n.filter(x=>x.status==="pending");if(g.length===0)return p;const y=await d.mutateAsync(g);return[...p,...y.map(x=>x.savedPath)]},[n,d]);return{pendingFiles:n,addFiles:o,removeFile:a,retryFile:c,clearFiles:i,cancelUpload:m,uploadAndGetPaths:f,hasPendingFiles:n.length>0,hasFailedUpload:n.some(h=>h.status==="error"),isUploading:d.isPending}}const In=new Set,On=new Set;function Px(e,t){return`${e}\0${t}`}function $x({sessionId:e,prompt:t,autoSend:n,input:s,setInput:o,messageCount:a,hydrated:i,status:c,submitBlocked:u=!1,submit:d,onSeeded:m,onConsumed:f}){const h=t!=null&&t.trim()?t:void 0,p=e&&h?Px(e,h):null;l.useEffect(()=>{if(!(!p||!h)&&!In.has(p)&&i){if(In.add(p),s.length>0||a>0){On.add(p),f==null||f();return}o(h),m==null||m(),n||f==null||f()}},[p,h,n,s,i,a,o,m,f]),l.useEffect(()=>{!p||!h||!n||On.has(p)||In.has(p)&&s===h&&(!i||a>0||c==="streaming"||u||(On.add(p),f==null||f(),d()))},[p,h,n,s,i,a,c,u,d,f])}const Sr=$l-256,jr=`
|
|
40
|
+
…(context truncated)`,wr={"/":"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 Fx(e){const t=`/${e.split("/").filter(Boolean)[0]??""}`;return wr[e]??wr[t]??`the ${e} page`}function Lx(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 ${Fx(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<=Sr?n:n.slice(0,Sr-jr.length)+jr}const Ux="dorkbot-help",Yt=new Set;function qx({sessionId:e,seed:t,messageCount:n,hydrated:s,onConsumed:o}){const a=t===Ux&&e!==null,{data:i}=Fl({enabled:a}),{data:c}=Xn(),u=Ct(Ll(h=>Object.entries(h.statuses).filter(([,p])=>p.lifecycle==="error").map(([p])=>p))),d=l.useRef({agentNames:[],version:null,updateReady:!1,erroredSessionIds:[]}),m=l.useRef({armed:a,sessionId:e,messageCount:n}),f=l.useRef(o);return l.useEffect(()=>{const h=(c==null?void 0:c.latestVersion)??null,p=(c==null?void 0:c.version)??null;d.current={agentNames:((i==null?void 0:i.agents)??[]).map(g=>g.displayName??g.name),version:p,updateReady:h!==null&&p!==null&&Ec(h,p),erroredSessionIds:u}},[i,c,u]),l.useEffect(()=>{m.current={armed:a,sessionId:e,messageCount:n},f.current=o},[a,e,n,o]),l.useEffect(()=>{!a||e===null||!s||n===0||Yt.has(e)||(Yt.add(e),o==null||o())},[a,e,s,n,o]),l.useCallback(()=>{var p;const h=m.current;if(!(!h.armed||h.sessionId===null)&&!(h.messageCount>0)&&!Yt.has(h.sessionId))return Yt.add(h.sessionId),(p=f.current)==null||p.call(f),Lx({...d.current,originPath:Ul()})},[])}function zx(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!==to))}const Bx=4e3;function Wx(e){const t=e.approvalDisplayName||_t(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 Hx(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?Wx(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})),Bx);return()=>clearTimeout(i)},[o]),o.text===""?"":o.nonce%2===0?o.text:`${o.text}`}const Nr=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Cr=5e3,Gx=1e3,Kx=1500,Qx=new Set;function Vx(e){const t=l.useRef(new Map),n=ho({byTask:new Map,assigned:0}),[s,o]=l.useState(Qx),[,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<Cr))return;const d=setInterval(()=>{a(m=>m+1)},Gx);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"&&!Ls(d)&&o(f=>f.has(u)?f:new Set(f).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})},Kx))},[s]),l.useMemo(()=>{const u=Date.now(),d=[],m=n.read();let f=m.assigned;for(const[h,p]of i){const g=p.status==="running",y=s.has(h);if(!g&&!y||p.taskType==="bash"&&g&&u-p.startedAt<Cr)continue;let x=m.byTask.get(h);x===void 0&&(x=Nr[f%Nr.length],f+=1,m.byTask.set(h,x),n.write({byTask:m.byTask,assigned:f})),d.push({taskId:p.taskId,taskType:p.taskType,status:p.status,color:x,startedAt:p.startedAt,description:p.description,toolUses:p.toolUses,lastToolName:p.lastToolName,durationMs:p.durationMs,summary:p.summary,command:p.command,ambient:Ls(p)})}return d},[i,s,n])}const Yx=new Set(["streaming","blocked"]);function Xx(e,t){return e.length===0||e[0].waitingOn!==void 0||t&&Yx.has(t)?e:e.slice(1)}function Dn(e,t,n){return`${e} ${e===1?t:n}`}const Tr={"delivery-owed":"a helper’s report","waiting-on-person":"your answer","timer-pending":"a reminder the agent set"},Jx={"timer-pending":"Switching now cancels the reminder."};function Zx(e){const{agents:t,shells:n,other:s}=e.holding,o=[t>0?Dn(t,"helper","helpers"):void 0,n>0?Dn(n,"command","commands"):void 0,s>0?Dn(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&&Tr[e.because]!==void 0?`Held for ${Tr[e.because]}.`:"Held until the agent is free."} Sending it ${c}.`,switchHint:a!==void 0?`Switching now stops ${a}.`:(e.because!==void 0?Jx[e.because]:void 0)??"Switching now stops what the agent is doing."}}const ey={"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 ty(e){return e!=null&&e.degradedBecause?ey[e.degradedBecause]:null}function Rr(e){return(e==null?void 0:e.code)==="QUEUED_MESSAGE_NOT_FOUND"}function ny({sessionId:e,waiting:t,onEnqueue:n}){const s=be(),o=ql(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:Th(S.fromChats)}:{},notice:ty(o[S.id]),...S.waitingOn?{waiting:Zx(S.waitingOn)}:{}})),[t,o,s.clientId]),u=l.useMemo(()=>{if(a===null)return null;const S=c.findIndex(C=>C.id===a);return S===-1?null:S},[a,c]),d=l.useCallback(()=>{var S;if(e)return(S=Te.getState().getSession(e).queuedMessages[0])==null?void 0:S.id},[e]),m=l.useCallback((S,C)=>{S().catch(T=>{Rr(T)||_e.error(C)})},[]),f=l.useCallback(async S=>{const C=S.trim();return!C||!e?!1:n(C)},[e,n]),h=l.useCallback((S,C)=>{e&&m(()=>s.updateQueuedMessage(e,S,{content:C}),"Couldn’t save that change")},[e,s,m]),p=l.useCallback(S=>{i(C=>C===S?null:C),e&&m(()=>s.removeQueuedMessage(e,S),"Couldn’t take that message off the queue")},[e,s,m]),g=l.useCallback((S,C)=>{if(!e)return;const T=A=>s.updateQueuedMessage(e,S,{move:{before:A}});m(async()=>{try{await T(C)}catch(A){if(!Rr(A))throw A;const _=d();if(_===void 0||_===S)return;await T(_)}},"Couldn’t move that message")},[e,s,m,d]),y=l.useCallback(S=>c.findIndex(T=>T.id===S)<=0?!1:(i(T=>T===S?null:T),g(S,c[0].id),!0),[c,g]),x=l.useCallback(S=>{const C=c.findIndex(T=>T.id===S);C<=0||g(S,c[C-1].id)},[c,g]),b=l.useCallback(S=>{const C=c.find(T=>T.id===S);return!C||C.fromChat?null:(i(S),C.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:f,removeFromQueue:p,sendNow:y,moveUp:x,startEditing:b,cancelEditing:v,saveEditing:j,updateQueued:h}}function Sa(e,t){return e===null?null:`${e} ${t??""}`}function Er(e,t,n){for(let s=t;s>=0&&s<e.length;s+=n)if(!e[s].fromChat)return s;return-1}function sy({input:e,setInput:t,sessionId:n,selectedCwd:s,waiting:o,onEnqueue:a,onSteer:i,onStage:c,tryNativeCommand:u,chatInputRef:d}){const m=l.useRef(""),f=l.useRef(null),h=Sa(n,s);l.useEffect(()=>{m.current="",f.current=null},[h]);const p=ny({sessionId:n,waiting:o,onEnqueue:a}),g=p.cancelEditing;l.useEffect(()=>{g()},[h,g]);const y=l.useCallback(()=>{const M=p.editingId;if(M===null)return;const O=e.trim();O&&(p.updateQueued(M,O),Ph(O)&&_e.warning("Saved as a command. It runs instead of sending."))},[e,p]),x=Fn(p.editingId),b=Fn(p.updateQueued);l.useEffect(()=>{const M=n;return()=>{const O=x.read();if(O===null||!M)return;const D=ae.getState(),V=D.getSession(M).input.trim();V&&b.read()(O,V),D.updateSession(M,{input:m.current})}},[h]);const v=l.useCallback(M=>{const O=e.trim();if(!O)return;const D=u(O);if(D.handled){if(!D.ran)return;D.confirmed?Gn(n,O,D.confirmed):t("");return}if(f.current===O)return;f.current=O,pt.getState().recordOpened("session",n),s&&pt.getState().recordOpened("agent",s);const V=M(O);V.finally(()=>{f.current===O&&(f.current=null)}),Gn(n,O,V)},[e,s,n,t,u]),j=l.useCallback(()=>v(M=>p.addToQueue(M)),[v,p]),S=l.useCallback(()=>{i&&v(i)},[v,i]),C=l.useCallback(()=>{c&&v(c)},[v,c]),T=l.useCallback(M=>{var V,K;if(p.editingId===M){(V=d.current)==null||V.focus();return}const O=p.editingId!==null;O&&y();const D=p.startEditing(M);D!==null&&(O||(m.current=e),t(D),(K=d.current)==null||K.focus())},[e,p,y,t,d]),A=l.useCallback(()=>{if(p.editingId===null)return;const M=e.trim();if(!M)return;const O=u(M);if(O.handled){O.ran&&(p.cancelEditing(),t(m.current));return}p.saveEditing(M),t(m.current)},[e,p,t,u]),_=l.useCallback(()=>{p.cancelEditing(),t(m.current)},[p,t]),E=l.useCallback(M=>{p.editingId===M&&t(m.current),p.removeFromQueue(M)},[p,t]),L=l.useCallback(M=>{const O=p.editingId===M;O&&y(),p.sendNow(M)&&O&&t(m.current)},[p,y,t]),I=l.useCallback(M=>{p.moveUp(M)},[p]),w=l.useCallback(M=>{var V;const O=(V=p.queue[M])==null?void 0:V.id;if(O!==void 0&&O===p.editingId)return;y();const D=O===void 0?null:p.startEditing(O);if(D===null){p.cancelEditing(),t(m.current);return}t(D)},[p,y,t]),k=l.useCallback(()=>{y(),p.cancelEditing(),t(m.current)},[y,p,t]),R=l.useCallback(()=>{const{editingIndex:M,queue:O}=p,D=Er(O,(M??O.length)-1,-1);if(M===null){if(D===-1)return;m.current=e,w(D)}else D!==-1?w(D):k()},[w,e,k,p]),N=l.useCallback(()=>{const{editingIndex:M,queue:O}=p;if(M===null)return;const D=Er(O,M+1,1);D!==-1?w(D):k()},[w,k,p]);return{queue:p.queue,editingId:p.editingId,editingIndex:p.editingIndex,handleQueue:j,handleSteer:S,handleStage:C,handleQueueEdit:T,handleQueueSaveEdit:A,handleQueueCancelEdit:_,handleQueueRemove:E,handleQueueSend:L,handleQueueMoveUp:I,handleQueueNavigateUp:R,handleQueueNavigateDown:N,leaveQueueForStop:k}}const ry=5e3,Ar=3;function ja(){try{const e=Number(localStorage.getItem(go.PLACEHOLDER_HINT_CYCLES));return Number.isFinite(e)&&e>0?e:0}catch{return 0}}function oy(){const e=ja()+1;try{localStorage.setItem(go.PLACEHOLDER_HINT_CYCLES,String(e))}catch{}return e}function ay(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 iy({defaultText:e,hints:t,enabled:n,intervalMs:s=ry}){const[o]=l.useState(()=>t.length>0?ay(t):[]),[a,i]=l.useState(()=>ja()>=Ar),[c,u]=l.useState({key:0,hintIndex:-1}),d=l.useRef(0),m=l.useRef(0),f=l.useRef(!1);return l.useEffect(()=>{if(a||!n||t.length===0){f.current&&(f.current=!1,d.current+=1,u({key:d.current,hintIndex:-1}));return}const p=setInterval(()=>{if(d.current+=1,f.current=!f.current,!f.current){u({key:d.current,hintIndex:-1});return}const g=m.current%t.length;m.current+=1,m.current%t.length===0&&oy()>=Ar&&i(!0),u({key:d.current,hintIndex:g})},s);return()=>clearInterval(p)},[n,t.length,s,a]),{text:c.hintIndex>=0?o[c.hintIndex]??e:e,key:c.key}}const Pn=/[.!?…:](?=\s|$)|\n/g;function _r(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};Pn.lastIndex=0;let i=-1;for(let c=Pn.exec(a);c!==null;c=Pn.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 ly=1500,cy=4e3,uy=400;function dy({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<=uy?"":t})}const c=s.current.get(e),{chunk:u,announced:d}=_r(t,c.announced,!1);c.announced=d,u!==""&&a(f=>({text:u,nonce:f.nonce+1}));const m=setTimeout(()=>{const f=_r(t,c.announced,!0);c.announced=f.announced,f.chunk!==""&&a(h=>({text:f.chunk,nonce:h.nonce+1}))},ly);return()=>clearTimeout(m)},[e,t,n]),l.useEffect(()=>{if(o.text==="")return;const i=setTimeout(()=>a(c=>({text:"",nonce:c.nonce})),cy);return()=>clearTimeout(i)},[o]),o.text===""?"":o.nonce%2===0?o.text:`${o.text}`}function my({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 fy({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?zl:_o;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(my,{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 py(e){const t=be();return kt({queryKey:["files",{cwd:e??null}],queryFn:()=>t.listFiles(e),enabled:!!e,staleTime:Xe.FILES_STALE_TIME_MS,gcTime:Xe.FILES_GC_TIME_MS})}const wa={reactions:!1,threads:!1,runWith:!0,attachments:!0,mentions:!1,streamHealth:!1,presence:!1,turnStatus:!0,asks:!0},Na='[data-testid="model-config-trigger"]',hy=3e3;function gy(e){var t;(t=e==null?void 0:e.querySelector(Na))==null||t.click()}function xy(e,t=hy){const n=Date.now()+t,s=()=>{var a;const o=(a=e())==null?void 0:a.querySelector(Na);if(o)return o.click();Date.now()<n&&setTimeout(s,50)};s()}function yy(e,t){const{openSessionView:n}=Bl();return l.useCallback(()=>{if(!t)return gy(e.current);n(),xy(()=>e.current)},[t,n,e])}const Mr=new WeakMap;function by(e,t,n,s,o=!0,a){const i=new Set(t),c=new Set(n.flatMap(f=>f.roomMessage?[f.roomMessage.entryId]:[]));let u;const d=o?null:jy(n),m=[];for(const f of e){if(f.kind!=="post"||f.threadRootEntryId||f.sessionId!==null&&i.has(f.sessionId)&&(u??(u=vy(n)),u.has(f.body.text)||!o&&(d===null||Date.parse(f.createdAt)<d))||c.has(f.id))continue;const h=f.body.todo!==void 0&&a!==void 0&&!a.has(f.authorId);let p=Mr.get(f);if(!p||p._todoCard!==void 0!==h){const g=f.body.text;p={id:`direct-note-${f.id}`,role:s.has(f.authorId)?"assistant":"user",content:g,parts:[{type:"text",text:g}],timestamp:f.createdAt,_directNote:{roomId:f.roomId,entryId:f.id,seq:f.seq},...h&&f.body.todo?{_todoCard:{todoId:f.body.todo.todoId}}:{}},Mr.set(f,p)}m.push(p)}return m}const ky=/(?:^|[_.])(?:post_to_room|relay_notify_user)$/;function vy(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&&ky.test(o.toolName))for(const a of Sy(o.input))t.add(a);s.length>1&&t.add(s.filter(Boolean).join(`
|
|
42
|
+
|
|
43
|
+
`).trim())}return t}function Sy(e){try{const t=JSON.parse(e);return t===null||typeof t!="object"?[]:Object.values(t).filter(n=>typeof n=="string")}catch{return[]}}function jy(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 wy(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 Ny(e,t,n=!0){if(!t||t.entries.length===0)return{messages:e,lastSeenBeforeUnread:null,unreadFromStart:!1};const s=by(t.entries,t.sessionIds,e,t.agentAuthorIds,n,t.rosterAuthorIds),o=wy(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 Cy(e){var m,f,h;const t=Wl(e),n=((m=t.data)==null?void 0:m.roomId)??null,s=Hl(n),o=Gl(n),a=s.data,i=o.data;wu(n,i!==void 0),Kl(a,i??Ir);const c=((f=a==null?void 0:a.members.find(p=>p.author.id===a.viewerAuthorId))==null?void 0:f.lastReadSeq)??null,u=Ry(n,c),d=((h=t.data)==null?void 0:h.sessionIds)??Ty;return l.useMemo(()=>{const p=s.isError||o.isError,g=n===null||p||i!==void 0&&u!==null;return{roomId:n,entries:i??Ir,sessionIds:d,agentAuthorIds:new Set(((a==null?void 0:a.members)??[]).filter(y=>y.author.kind==="agent").map(y=>y.author.id)),...a?{rosterAuthorIds:new Set([...a.members.map(y=>y.author.id),...(a.formerAuthors??[]).map(y=>y.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 Ty=[],Ir=[];function Ry(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 Or(e){return e>=1e3?`~${(e/1e3).toFixed(1)}k tokens`:`~${Math.round(e)} tokens`}function Ey(e){const{formatted:t}=Lo(e.status==="streaming"?e.streamStartTime:null),n=qr(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),cn.TURN_COMPLETE_DISMISS_MS);return()=>clearTimeout(d)},[i]);const u=hu({capabilities:wa,asks:e.asks??Eo,stalled:!1,presence:gu,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:Or(e.estimatedTokens),isBypass:n,showComplete:i,lastElapsed:o.current,lastTokens:Or(a.current)}});return e.quietNumbers?_y(u):u}const Ay={kind:"empty"};function _y(e){return e.kind==="turn-streaming"?{...e,elapsed:"",tokens:""}:e.kind==="turn-complete"?Ay:e}function My(e,t){var C,T,A,_;const n=Ql(e),s=n.mode==="dm"&&n.chat!==null,o=n.mode==="pending",a=s?n.chat.agentPath:null,i=Vl(a,s?n.chat.roomId:null),{data:c}=Xn(),u=Yl(),d=((T=(C=c==null?void 0:c.profile)==null?void 0:C.displayName)==null?void 0:T.trim())||null,m=ie(E=>E.selectedCwd),f=Xl(o?m:null),h=(t==null?void 0:t.id)??f.id??`unknown-agent:${m}`,p=t?mn(t):f.name,{id:g,name:y}=i,x=y??i.keptName??null,b=((A=i.visual)==null?void 0:A.emoji)??null,v=((_=i.visual)==null?void 0:_.color)??null,j=l.useMemo(()=>o?{agent:p?{id:h,displayName:p}:null,humanName:null,settled:!1}:s?{agent:x===null?null:{id:g??`unknown-agent:${a}`,displayName:x,...b!==null&&v!==null?{emoji:b,color:v}:{}},humanName:d,settled:!0,agentPending:i.pending}:null,[o,h,p,s,a,g,x,b,v,d,i.pending]);if(j===null)return{directMessage:null,humanName:d,transcriptNames:{directMessage:null,humanName:d},placeholder:p?`Message ${p}…`:"Send a message…",quietTurnNumbers:!1};const S=o?p:i.unknown?null:y;return{directMessage:j,humanName:d,transcriptNames:{directMessage:j,humanName:d,...n.lookupFailed?{lookupFailed:!0}:{}},placeholder:S?`Message ${S}`:"Send a message…",quietTurnNumbers:!u}}function Iy(e){const{sessionId:t,placeholder:n,files:s}=e,o=l.useRef(e);l.useEffect(()=>{o.current=e});const a=l.useCallback(y=>o.current.files.addFiles(y),[]),i=l.useCallback(y=>o.current.files.removeFile(y),[]),c=l.useCallback(y=>o.current.files.retryFile(y),[]),u=l.useCallback(()=>o.current.files.cancelUpload(),[]),{pendingFiles:d,hasFailedUpload:m,isUploading:f}=s,h=l.useMemo(()=>({staged:d,add:a,remove:i,retry:c,cancel:u,hasFailed:m,isUploading:f,holdsSendWhileUploading:!0}),[d,m,f,a,i,c,u]),p=l.useCallback(async y=>{await o.current.submit(y.text)},[]),g=l.useCallback(async y=>{if(!await o.current.enqueue(y.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:p,queue:g,attachments:h}),[t,n,h,p,g])}function Oy({error:e,composerAgent:t,onRetry:n}){return e.code===Zr&&e.agentId?r.jsx("div",{className:"mx-4 mb-2",children:r.jsx(zo,{agentId:e.agentId,...(t==null?void 0:t.id)===e.agentId?{agentName:mn(t,"This agent")}:{}})}):r.jsx("div",{className:"mx-4 mb-2",children:r.jsx(hs,{message:e.message,heading:e.heading,subtext:e.message,onRetry:e.retryable?n:void 0})})}const Dy={duration:.16,delay:.08,ease:[.16,1,.3,1]},Py={duration:0};function $y({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=Pe(),{answerAll:m,isAnswering:f,error:h}=Jl(),p=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(Zl,{className:"mb-1.5",headline:`${n.length} tools are waiting on you`,items:n.map(g=>({id:g.toolCallId,line:_t(g.toolName,g.input??"")})),onAllowAll:()=>void m(p,"allow"),onDenyAll:()=>void m(p,"deny"),isAnswering:f,error:h}),r.jsx(fe,{mode:"wait",initial:!1,children:r.jsx(Q.div,{initial:d?!1:{opacity:0,y:6},animate:{opacity:1,y:0},transition:d?Py:Dy,children:t.interactiveType==="approval"?r.jsx(no,{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(so,{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 Fy({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:f=>{f.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))})})}const Ly=300,Uy=600,qy=3;function zy({conversationId:e,undecided:t,isDirectMessage:n,readyToLand:s,identityPending:o,lookupFailed:a=!1}){const[i,c]=l.useState(null);l.useEffect(()=>{if(!t)return;const y=setTimeout(()=>c(e),a?0:Ly);return()=>clearTimeout(y)},[t,e,a]);const u=i===e,d=ec(o,e,xo),m=!a&&(t&&!u||o&&!d),[f,h]=l.useState(m);l.useEffect(()=>{if(m){h(!0);return}if(!f||!s)return;let y=qy,x=requestAnimationFrame(function b(){y-=1,y===0?h(!1):x=requestAnimationFrame(b)});return()=>cancelAnimationFrame(x)},[m,f,s]);const p=m||f,g=bs(p,e);return{held:m,hidden:p,showLoading:p&&(!s||o)&&g,landingKey:u&&!t&&n?"reflowed-as-dm":void 0}}function bs(e,t){return yo(e,t,Uy)}function By(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 Wy({asDirectMessage:e=!1,chatInputRef:t,input:n,autocomplete:s,steerContent:o,addContextContent:a,tryNativeCommand:i,commandPending:c,agentLookupPending:u=!1,onRetryAgentLookup:d,agentLookupError:m=!1,status:f,stop:h,setInput:p,sessionId:g,sessionStatus:y,waiting:x,interaction:b,sync:v}){var Ge,et;const{active:j,pendingApprovals:S,focusedOptionIndex:C,onToolRef:T,onToolDecided:A}=b,_=f==="streaming",E=ie(oe=>oe.isTextStreaming),[L]=bo(),I=be(),{data:w}=us(L),k=tc(w??null,L??""),R=w?mn(w):void 0,{target:N}=xu(),M=(N==null?void 0:N.placeholder)??"Send a message…",O=nc(g),[D,V]=l.useState(0),K=`${g}:${D}`,H=bs(u,K),q=yo(u,K,xo),F=ep(g),Y=fn(g),$=dn(Y),J=sc(g),ce=(($==null?void 0:$.supportsSteer)??!1)&&(J??!0),P=($==null?void 0:$.supportsContextStaging)??!1,ee=((Ge=$==null?void 0:$.permissionModes)==null?void 0:Ge.denyReason)??!0,ue=l.useCallback(async oe=>{if((N==null?void 0:N.queue)===void 0)return!1;try{return await N.queue({text:oe}),!0}catch{return!1}},[N]),U=sy({input:n,setInput:p,sessionId:g,selectedCwd:L,waiting:x,onEnqueue:ue,onSteer:o,onStage:a,tryNativeCommand:i,chatInputRef:t}),[Z,X]=l.useState(null),se=l.useRef(null),ke=l.useCallback(oe=>{const B=se.current;if(se.current=null,oe.length===0)return;const G=oe.map(de=>B&&de.id===B.id?B.content:de.content).join(`
|
|
44
|
+
|
|
45
|
+
`),he=ae.getState().getSession(g).input.trim();p(he?`${he}
|
|
46
|
+
|
|
47
|
+
${G}`:G)},[g,p]),[ve,te]=l.useState(null),we=ve===g&&_,ge=l.useRef(null),Se=l.useCallback(()=>{ge.current=null,te(null)},[]);l.useEffect(()=>{_||Se()},[_,g,Se]);const le=l.useRef(_);l.useEffect(()=>{le.current=_},[_]);const xe=U.leaveQueueForStop,Me=l.useRef(U.editingId);l.useEffect(()=>{Me.current=U.editingId},[U.editingId]);const re=l.useCallback(()=>{const oe=Me.current;if(oe!==null){const B=ae.getState().getSession(g).input.trim();B&&(se.current={id:oe,content:B}),xe()}ge.current=g,te(g),h().then(B=>{ke(B.cancelled),jx(B.receipt,le.current)&&Se();const G=Sx(B.receipt);G.message!==null&&!ls(B.receipt)&&(G.isFailure?_e.error(G.message):_e.warning(G.message))}).catch(()=>{Se()})},[g,h,ke,Se,xe]),Ae=l.useCallback(()=>{if(ge.current===g||we)return;if(x.length===0){re();return}const oe=x.filter(B=>B.enqueuedBy.startsWith("chat:")).length;X({sessionId:g,queuedCount:x.length-oe,fromChatCount:oe})},[g,we,x.length,re]),je=l.useCallback(()=>{ge.current===g||we||(X(null),re())},[g,we,re]);l.useEffect(()=>{(Z==null?void 0:Z.sessionId)===g&&x.length===0&&X(null)},[Z,g,x.length]);const{messages:Ce}=fo(g),ye=uo(g),Fe=l.useMemo(()=>va(ye,Ce),[ye,Ce]),Be=Vx(Fe),Le=l.useCallback(async oe=>{if(g)try{await I.stopTask(g,oe)}catch(B){console.error("[chat] Failed to stop task:",B)}},[g,I]),Re=l.useCallback(()=>{g&&I.switchSessionProcess(g).catch(()=>{_e.error("Couldn’t switch. Try again.")})},[g,I]),ne=l.useRef(n);l.useEffect(()=>{ne.current=n});const Ne=l.useCallback(oe=>{var de;const B=ne.current,G=B.length>0&&!/\s$/.test(B)?" ":"",he=`${B}${G}${oe}`;p(he),(de=t.current)==null||de.focusAt(he.length)},[p,t]);l.useEffect(()=>Tu(Ne),[Ne]);const We=!_&&U.editingIndex===null,Oe=iy({defaultText:M,hints:ig,enabled:!e&&We&&n===""}),De=Eu(),He=l.useCallback(()=>{s.dismissPalettes(),!(N===null||!N.canSend)&&N.send({text:n})},[s,N,n]),Ie=l.useCallback(()=>{s.dismissPalettes(),U.handleQueue()},[s,U]),Ve=l.useCallback(()=>{s.dismissPalettes(),U.handleSteer()},[s,U]),Ue=l.useCallback(()=>{s.dismissPalettes(),U.handleStage()},[s,U]);return r.jsx(At.Composer,{className:"chat-input-container",onPathDropped:oe=>Ne(Ru(oe)),inputRef:t,value:n,onChange:s.handleInputChange,onSubmit:He,head:r.jsx(fe,{children:_&&r.jsx(rd,{color:k.color,isTextStreaming:E,edge:"top"})}),asks:j?r.jsx($y,{sessionId:g,activeInteraction:j,pendingApprovals:S,focusedOptionIndex:C,onToolRef:T,onToolDecided:A,queueDepth:U.queue.length,allowsDenyReason:ee}):null,overlays:r.jsx(r.Fragment,{children:r.jsxs(fe,{children:[s.commands.show&&r.jsx(Fy,{filteredCommands:s.commands.filtered,selectedIndex:s.commands.selectedIndex,onSelect:s.handleCommandSelect}),s.files.show&&r.jsx(fy,{filteredFiles:s.files.filtered,selectedIndex:s.files.selectedIndex,onSelect:s.handleFileSelect})]})}),queue:r.jsx(fe,{children:U.queue.length>0&&r.jsx(Ah,{queue:U.queue,editingId:U.editingId,onEdit:U.handleQueueEdit,onRemove:U.handleQueueRemove,onSend:U.handleQueueSend,onMoveUp:U.handleQueueMoveUp,onSwitchNow:Re,statusNote:O?"Waiting for your answer above":((et=U.queue[0])==null?void 0:et.waiting)!==void 0?"Sending when the agent is free":"Sending one at a time as the agent finishes"})}),aboveInput:r.jsxs(r.Fragment,{children:[r.jsx(Nd,{sessionId:g}),r.jsx(wh,{tasks:Be,onStopTask:Le})]}),footer:r.jsx(At.Footer,{asChild:!0,children:r.jsx(Zh,{sessionId:g,sessionStatus:y,isStreaming:_,syncConnectionState:v.connectionState,agentName:R,agentColor:k.color,agentEmoji:k.emoji,agentPath:L??void 0,lineHidden:e})}),input:{isStreaming:_,commandPending:c,...u||m?{canSubmit:!1,...m||q?{canSubmitReason:"Couldn’t check this folder.",canSubmitAction:{label:"Check again",onClick:()=>{V(oe=>oe+1),d==null||d()}}}:H||D>0?{canSubmitReason:"Checking this folder…"}:{}}:{},...F.canSubmit?{}:{canSubmit:!1},onStop:Ae,stopPending:we,onEscape:s.dismissPalettes,onClear:()=>{p(""),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:De,editingQueueItem:U.editingIndex!==null,...U.editingIndex===null?{}:{editingPosition:U.editingIndex+1},queueDepth:U.queue.length,onQueue:Ie,...ce?{onSteer:Ve}:{},...P?{onStage:Ue}:{},onSaveEdit:U.handleQueueSaveEdit,onCancelEdit:U.handleQueueCancelEdit,onQueueNavigateUp:U.handleQueueNavigateUp,onQueueNavigateDown:U.handleQueueNavigateDown,queueHasItems:U.queue.length>0,contextKey:Sa(g,L)??void 0,placeholder:F.placeholder??By(U.editingIndex,_,U.queue.length,M),placeholderOverlay:!e&&We&&F.canSubmit?r.jsx(Oh,{text:Oe.text,animationKey:Oe.key}):null},children:r.jsx(_h,{open:(Z==null?void 0:Z.sessionId)===g,onOpenChange:oe=>{oe||X(null)},queuedCount:(Z==null?void 0:Z.queuedCount)??0,fromChatCount:(Z==null?void 0:Z.fromChatCount)??0,onConfirm:je})})}const Hy=e=>{const t=e;return t.role==="user"?r.jsx(sh,{message:t}):r.jsx(xs,{message:t})};function Gy(e){return r.jsx(xs,{message:e,show:"reply"})}function Ca(e){return e.role==="user"&&!e._stagedContext&&!e._chatStop&&!e._directNote&&e.messageType!=="compaction"&&e.messageType!=="local_command_output"}function Ky(e){const t=[];let n=null,s=null,o=null;for(const a of e){if(Ca(a)){n=a.content.trim()||null,s=a.timestamp||null,o=null;continue}a.role!=="assistant"||!ca(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 Qy(e){const t=new Map;let n=null;for(const s of e)Ca(s)?n=s.timestamp||null:s.role==="assistant"&&n&&t.set(s.id,n);return t}function Vy(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 Yy(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 Qn=oc()(e=>({request:null,ask:t=>e({request:{...t}}),consume:()=>e({request:null})}));function Ta(e,t){const n=ie.getState();n.setActiveRightPanelTab(rc),n.setRightPanelOpen(!0),Qn.getState().ask({sessionId:e,turn:t})}const Ra="text-muted-foreground mt-1 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs",Ea="focus-ring hover:text-foreground inline-flex items-center gap-1 rounded-sm font-medium transition-colors";function Xy({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:Ra,"data-testid":"dm-worked-line",children:[r.jsx("span",{children:a.join(" · ")}),r.jsxs("button",{type:"button",className:Ea,"aria-describedby":o,onClick:()=>Ta(e,t),children:[r.jsx(ic,{className:"size-3.5","aria-hidden":!0}),"Show work"]})]})}function Jy({sessionId:e}){const t=ko(e);return r.jsxs("div",{className:Ra,"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"}),ac("streaming",t)]}),r.jsx("button",{type:"button",className:Ea,onClick:()=>Ta(e,"live"),children:"Watch"})]})}function Zy(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&&Dr(e.author,t.author)&&Dr(e.feedPosition,t.feedPosition)}function Dr(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 eb=l.memo(tb,Zy);function tb({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:f,onRetry:h,onSigninComplete:p,onChooseModel:g,inputZoneToolCallId:y=null,textEffect:x,runtimeLabel:b,allowsDenyReason:v,directRoomId:j,fallbackAt:S,foldWork:C=!1,turnStartedAt:T,liveReply:A=!1,feedPosition:_}){var J,ce;const E=l.useId(),L=`${E}-author`,I=`${E}-content`,w=l.useRef(null),k=t.position==="first"||t.position==="only",R=e.role==="user",N=R&&!!e.promptSource&&e.promptSource.kind!=="channel",M=R&&e.messageType!=="local_command_output"&&!N,O=R?(J=e.chatMessages)==null?void 0:J[0]:void 0,D=R&&O===void 0?e.roomMessage:void 0,V=M&&O===void 0&&e.promptSource===void 0&&(D===void 0||((ce=D.author)==null?void 0:ce.you)===!0)&&e.messageType!=="command"&&e.messageType!=="compaction"&&e.content.trim().length>0,K=e.timestamp||S||"",H=K?sn(K):"",q=H.length>0,F=q?K:void 0,Y=l.useCallback(()=>{var P;return(P=w.current)==null?void 0:P.focus()},[]),$=C&&e.role==="assistant";return r.jsx(Ao,{value:{sessionId:s,isStreaming:a,isLatestWidgetMessage:i,isFinalMessage:c,activeToolCallId:u,onToolRef:d,focusedOptionIndex:m,onToolDecided:f,onRetry:h,onSigninComplete:p,onChooseModel:g,inputZoneToolCallId:y,textEffect:x,runtimeLabel:b,allowsDenyReason:v},children:r.jsxs(lt.Root,{ref:w,role:M?"user":"assistant",position:t.position,isNew:o,"data-testid":"message-item","data-role":e.role,...k?{"aria-labelledby":L}:{"aria-label":q?`${n.displayName}, ${H}`:n.displayName},"aria-describedby":I,...bu(_),children:[r.jsx(lt.Gutter,{author:n,at:F}),r.jsxs(lt.Body,{children:[r.jsx(lt.Author,{id:L,author:n,at:F,...O?{mark:r.jsx(Zo,{stamp:O}),className:"flex-wrap gap-y-0.5"}:D&&D.roomId!==j?{mark:r.jsx(Um,{stamp:D}),className:"flex-wrap gap-y-0.5"}:e.promptSource?{className:"flex-wrap gap-y-0.5"}:{}}),(D==null?void 0:D.via)&&r.jsx(yu,{via:D.via}),r.jsx(lt.Content,{id:I,children:$?Gy(e):Hy(e,{rowId:e.id})}),$&&A&&r.jsx(Jy,{sessionId:s}),$&&!A&&ca(e.parts??[])&&r.jsx(Xy,{sessionId:s,messageId:e.id,steps:wp(e.parts??[]),duration:Vy(T,e.timestamp),describedBy:I}),V&&r.jsx(lt.Actions,{runWith:{prompt:e.content,sessionId:s},onExit:Y})]})]})})}function nb({loading:e,onLoad:t}){return r.jsx("div",{className:"flex justify-center px-4 py-3",children:r.jsxs(me,{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(ze,{size:"xs"}),e?"Loading earlier messages…":"Earlier messages"]})})}const Pr="Conversation",sb={kind:"notice",id:"session-load-earlier",at:"",body:null},rb=[];function ob(e){for(let t=e.length-1;t>=0;t--)if(e[t].content.includes(Iu))return t;return-1}function ab({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:f,inputZoneToolCallId:h=null,textEffect:p,runtimeLabel:g,allowsDenyReason:y,landOnRow:x,foldFirstPrompt:b=!1,directLog:v,directMessage:j=null,lookupFailed:S=!1,humanName:C=null}){const T=jt(i),A=jt(u),_=jt(d),E=jt(m),L=jt(f),I=Ym(t,e),w=I.messages,{stops:k}=To(t),R=!I.canLoadEarlier,N=l.useMemo(()=>Ny(w,v,R),[w,v,R]),M=l.useMemo(()=>Pm(N.messages,k),[N.messages,k]),O=l.useMemo(()=>{let B=0;return M.map(G=>G._chatStop||G._directNote?-1:B++)},[M]),D=ho(null);D.read()===null&&w.length>0&&D.write(I.messagesBefore+w.length);const V=l.useMemo(()=>ob(M),[M]),K=l.useMemo(()=>b&&!I.canLoadEarlier?M.findIndex(B=>B.role==="user"&&B.messageType===void 0&&!B._stagedContext&&!B._chatStop&&!B._directNote):-1,[b,I.canLoadEarlier,M]),H=an(t),q=ie(B=>B.selectedCwd),F=fn(t),{data:Y,isPending:$,isError:J}=us(q),ce=(j==null?void 0:j.agent)??null,P=(j==null?void 0:j.settled)===!0,[ee]=l.useState(()=>new Map),ue=l.useCallback(B=>{if(!P||B.timestamp||!B._streaming)return;const G=ee.get(B.id);if(G)return G;const he=new Date().toISOString();return ee.set(B.id,he),he},[P,ee]);l.useEffect(()=>{const B=new Set(M.map(G=>G.id));for(const G of ee.keys())B.has(G)||ee.delete(G)},[M,ee]);const U=(j==null?void 0:j.humanName)??C,Z=(j==null?void 0:j.settled)===!0,X=l.useMemo(()=>Z?Qy(M):null,[Z,M]),se=l.useMemo(()=>Z?Yy(M):null,[Z,M]),ke=(j==null?void 0:j.settled)===!1,ve=(j==null?void 0:j.settled)===!0,te=ve?j.agentPending===!0:ke?!Y:q!==null&&$,we=te||J||ke||S,ge=l.useMemo(()=>({agent:ce??(Y&&!ve?{id:Y.id,displayName:mn(Y),...yt(Y)}:we?{id:`unknown-agent:${q}`,displayName:lc}:null),runtime:F,...U?{humanName:U}:{}}),[Y,ve,we,q,F,ce,U]),Se=w[w.length-1],le=(Se==null?void 0:Se.role)==="assistant"?Se:void 0,xe=dy({messageId:le==null?void 0:le.id,text:(le==null?void 0:le.content)??"",isStreaming:le!==void 0&&o}),Me=Hx((Se==null?void 0:Se.parts)??rb,t),{lastSeenMessageId:re,unreadFromStart:Ae,markSeen:je,isHydrated:Ce}=Qd(t,w,I.messagesBefore),ye=Ce&&!I.isSeeking&&(((v==null?void 0:v.ready)??!0)||ke),{held:Fe,hidden:Be,showLoading:Le,landingKey:Re}=zy({conversationId:t,undecided:ke,isDirectMessage:Z,readyToLand:ye,identityPending:te,lookupFailed:S}),ne=bs(n,t),[Ne,We]=l.useState(()=>Date.now()),Oe=l.useRef(null);l.useLayoutEffect(()=>{const B=Date.now(),G=new Date(B).toDateString();if(Oe.current===null){Oe.current=G;return}Oe.current!==G&&(Oe.current=G,We(B))},[M]);const De=l.useCallback(B=>am(B,ge),[ge]),[He]=l.useState(cm),Ie=l.useMemo(()=>um(M,{resolveAuthor:De,now:Ne,lastSeenMessageId:N.lastSeenBeforeUnread??re,unreadFromStart:N.unreadFromStart||Ae,cache:He}),[M,De,Ne,re,Ae,N,He]),[Ve]=l.useState(()=>new WeakMap),Ue=l.useMemo(()=>{const B=Ie.map(G=>{const he=Ve.get(G);if(he)return he;const de=G.kind==="day-divider"?{kind:"day-divider",id:G.key,label:G.label}:G.kind==="unread-divider"?{kind:"unread-divider",id:G.key}:{kind:"message",id:G.key,payload:G.message,grouping:G.grouping,author:G.author,at:G.message.timestamp};return Ve.set(G,de),de});return I.canLoadEarlier?[sb,...B]:B},[Ie,Ve,I.canLoadEarlier]),Ge=I.canLoadEarlier?1:0,et=l.useCallback((B,G)=>{var Lt,vt;if(Ge===1&&G.index===0)return r.jsx(nb,{loading:I.isLoadingEarlier,onLoad:I.loadEarlier});const he=Ie[G.index-Ge];if(he.kind==="day-divider")return r.jsx(Nu,{label:he.label});if(he.kind==="unread-divider")return r.jsx(Cu,{});const{message:de,messageIndex:tt}=he;if(de._stagedContext)return r.jsx(lf,{content:de.content});if(de._chatStop)return r.jsx("div",{className:"px-4 py-1",children:r.jsx(Gm,{notice:de._chatStop})});if(de._todoCard)return r.jsx("div",{className:"px-4 py-1",children:r.jsx(ku,{todoId:de._todoCard.todoId,sessionId:t})});if(tt===K)return r.jsx(Tm,{content:((vt=(Lt=de.chatMessages)==null?void 0:Lt[0])==null?void 0:vt.text)??de.content});const nt=O[tt]??tt,$t=nt>=0&&nt===w.length-1,Ft=$t&&de.role==="assistant",st=V===-1||tt>=V,rt=D.read();return r.jsx(eb,{message:de,grouping:he.grouping,author:he.author,sessionId:t,directRoomId:v==null?void 0:v.roomId,fallbackAt:ue(de),foldWork:Z,turnStartedAt:X==null?void 0:X.get(de.id),liveReply:se===de.id,isNew:rt!==null&&I.messagesBefore+nt>=rt,isStreaming:Ft&&o,isLatestWidgetMessage:st,isFinalMessage:$t,activeToolCallId:a,onToolRef:T,focusedOptionIndex:c,onToolDecided:A,onRetry:_,onSigninComplete:E,onChooseModel:L,inputZoneToolCallId:h,textEffect:p,runtimeLabel:g,allowsDenyReason:y,feedPosition:{index:nt+1,total:w.length}})},[Ie,Ge,I.isLoadingEarlier,I.loadEarlier,I.messagesBefore,w.length,O,V,K,t,v==null?void 0:v.roomId,ue,Z,X,se,D,o,a,T,c,A,_,E,L,h,p,g,y]),oe=H&&H.kind!=="first-message"&&H.fired&&!H.greetingFailed&&s?H:null;return r.jsx(At.Timeline,{conversationId:t,label:Pr,rows:Ue,renderRow:et,landOn:"unread",landingReady:ye&&!Fe,...Re===void 0?{}:{landingKey:Re},...x===void 0?{}:{landOnRow:x},onReachedBottom:je,transcriptAnnouncement:xe,approvalAnnouncement:Me,className:W("pt-12 [--conversation-thumb-top:3rem]",Be&&"invisible"),loading:n||Le?r.jsx(vu,{label:Pr,busy:!0,className:"flex h-full items-center justify-center","data-testid":"transcript-feed-loading",children:(ne||Le)&&r.jsxs("div",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[r.jsx(Yo,{}),"Loading chat…"]})}):void 0,empty:r.jsx("div",{className:"flex h-full items-center justify-center",children:r.jsx(km,{birthRecord:H,firstLightRecord:oe})}),"data-testid":"message-list",feedTestId:"transcript-feed"})}function ib({sessionId:e,launchRuntime:t,launchPrompt:n,launchSend:s=!1,launchSeed:o,onLaunchConsumed:a,landOnRow:i}){var Ns,Cs,Ts;const[,c]=Ot(),u=as(),d=l.useRef(null),m=l.useRef(null),f=Cy(e),h=Ex(e),p=ko(e??""),g=Nx(),{play:y}=jc(),[x]=bo(),{data:b,isPending:v,isError:j,refetch:S}=us(x),{sessions:C}=Yn(),T=e!==null&&!C.some(z=>z.id===e),A=cc(e),_=Dx(),E=l.useCallback(async z=>{let Ee=z;if(_.hasPendingFiles){const ot=await _.uploadAndGetPaths(),Rs=x?ot.map(Ut=>Ut.startsWith(x)?Ut.slice(x.length).replace(/^\//,""):Ut):ot;Rs.length>0&&(Ee=`Please read the following uploaded file(s):
|
|
48
|
+
${Rs.map(Ia=>`- ${Ia}`).join(`
|
|
49
|
+
`)}
|
|
50
|
+
|
|
51
|
+
${Ee}`),_.clearFiles()}return Ee},[_,x]),L=l.useCallback(z=>{h.handleTaskEvent(z);const Ee=h.tasks.map(ot=>ot.id===z.task.id?{...ot,...z.task}:ot);g.handleTaskEvent(z,Ee)},[h,g]);l.useCallback(z=>{c(z),u.invalidateQueries({queryKey:Ye.bySession(z)})},[c,u]);const I=l.useCallback(z=>{c(z,{replace:!0}),u.invalidateQueries({queryKey:Ye.bySession(z)})},[c,u]),w=l.useCallback(z=>{c(crypto.randomUUID(),{continuedFrom:z??void 0,draft:!0})},[c]),k=io(e??""),R=dn(k.runtime),N=k.runtime?ln(k.runtime).label:"",M=((Ns=R==null?void 0:R.permissionModes)==null?void 0:Ns.denyReason)??!0,O=l.useMemo(()=>pa(R==null?void 0:R.commandIntents,N),[R,N]),D=l.useRef(null),V=l.useCallback(()=>{var z;return(z=D.current)==null?void 0:z.call(D)},[]),{messages:K,input:H,setInput:q,handleSubmit:F,submitContent:Y,enqueueContent:$,steerContent:J,addContextContent:ce,status:P,error:ee,stop:ue,isLoadingHistory:U,hydrated:Z,sessionStatus:X,streamStartTime:se,estimatedTokens:ke,isTextStreaming:ve,isWaitingForUser:te,waitingType:we,activeInteraction:ge,pendingInteractions:Se,markToolCallResponded:le,systemStatus:xe,operationProgress:Me,promptSuggestions:re,syncConnectionState:Ae,retryMessage:je,tryNativeCommand:Ce,commandPending:ye}=vx(e,{transformContent:E,onTaskEvent:L,onSessionIdChangeReplace:I,startFreshSession:w,compactIntent:O,launchRuntime:t,...b&&x?{agentPath:x}:{},agentLookupPending:x!==null&&v,agentLookupFailed:x!==null&&j,takeSeedContext:V,onStreamingDone:l.useCallback(()=>{y("turn-end"),u.invalidateQueries({queryKey:["commands"]})},[y,u])}),Fe=l.useCallback(z=>Y(z,{clearInput:!0}),[Y]),{permissionMode:Be,permissionModeKnown:Le}=lo(e,X,P==="streaming"),Re=tu(e,k.runtime,Le?Be:void 0),ne=uc(z=>z.setOpen);l.useEffect(()=>{ne(!1)},[e,ne]);const{handleToolRef:Ne,focusedOptionIndex:We}=Ax(ge);Ox(P,te,ve),l.useEffect(()=>{var z;(z=d.current)==null||z.focusUnlessTouch()},[e]);const Oe=l.useCallback(()=>{var z;(z=d.current)==null||z.focusUnlessTouch()},[]);$x({sessionId:e,prompt:n,autoSend:s,input:H,setInput:q,messageCount:K.length,hydrated:Z,status:P,submitBlocked:T&&x!==null&&(v||j),submit:F,onSeeded:Oe,onConsumed:a});const De=qx({sessionId:e,seed:o,messageCount:K.length,hydrated:Z,onConsumed:a});l.useEffect(()=>{D.current=De},[De]);const He=k.runtime?Jn(k.runtime):void 0,{data:Ie}=wc(x,e??void 0,k.runtime??void 0),Ve=l.useMemo(()=>Lh((Ie==null?void 0:Ie.commands)??[],{commandIntents:R==null?void 0:R.commandIntents,runtimeLabel:N}),[Ie,R,N]),{data:Ue}=py(x),Ge=l.useMemo(()=>Ue!=null&&Ue.files?dm(Ue.files):[],[Ue]),et=Ix({input:H,setInput:q,commands:Ve,fileEntries:Ge}),oe=l.useCallback(()=>{const z=[...K].reverse().find(Ee=>Ee.role==="user");z!=null&&z.content&&Y(z.content)},[K,Y]),B=an(e??""),G=l.useCallback(()=>{const z=mm(K,B);z&&je(z)},[K,B,je]),he=P==="idle"&&re.length>0&&H.length===0,de=dc("chat.suggestion-chips"),tt=tp(e??""),nt=zx(P,ee,K,tt),$t=l.useMemo(()=>K.some(z=>z.role==="user"),[K]),Ft=l.useCallback(z=>{var Ee;q(z),(Ee=d.current)==null||Ee.focus()},[q]),st=mc(e??""),rt=po(e??""),Lt=l.useMemo(()=>Xx(st,rt),[st,rt]),vt=(Ts=(Cs=cs(e??""))==null?void 0:Cs.lastError)==null?void 0:Ts.category,gn=xm(),ks=l.useCallback(()=>{const z=e??"";if(gn.claimedElsewhere(z))return!1;const Ee=pm({messages:K,status:P,lastErrorCategory:vt,queuedCount:st.length,draft:ae.getState().getSession(z).input});return Ee===null?!1:(gn.claim(z),Y(Ee),!0)},[K,P,vt,st.length,e,Y,gn]),St=My(e,b),vs=yy(m,St.directMessage!==null),Aa=Iy({sessionId:e??"",placeholder:St.placeholder,submit:Fe,enqueue:$,files:_}),{eligible:Ss,allow:js,notNow:ws}=Bd(P==="streaming"),_a=l.useMemo(()=>[{id:"prompt-suggestions",show:he,render:()=>r.jsx(yc,{suggestions:re,onChipClick:Ft})},{id:"permission-primer",show:Ss,render:()=>r.jsx(zd,{onAllow:js,onNotNow:ws})},{id:"read-only-mode",show:Re.eligible,render:()=>r.jsx(nu,{runtimeLabel:Re.runtimeLabel,onShown:Re.markShown,onDismiss:Re.dismiss})}],[he,re,Ft,Ss,js,ws,Re]),Ma=Ey({asks:Eo,status:P,streamStartTime:se,estimatedTokens:ke,permissionMode:Be,isWaitingForUser:te??!1,waitingType:we??"approval",operationProgress:Me,systemStatus:xe,activity:p,quietNumbers:St.quietTurnNumbers});return r.jsx(At.Root,{surface:"session",capabilities:wa,target:Aa,children:r.jsxs("div",{ref:m,"data-testid":"chat-panel","data-turn-status":P,"data-turn-lifecycle":rt??void 0,className:"flex h-full w-full flex-col",children:[r.jsx(Sm,{sessionId:e}),r.jsx(Nm,{startedBy:A,modes:R==null?void 0:R.permissionModes.values}),r.jsx(ab,{messages:K,sessionId:e,isLoadingHistory:U,hydrated:Z,isTextStreaming:ve,activeToolCallId:(ge==null?void 0:ge.toolCallId)??null,onToolRef:Ne,focusedOptionIndex:We,onToolDecided:le,onRetry:oe,onSigninComplete:ks,onChooseModel:vs,inputZoneToolCallId:(ge==null?void 0:ge.toolCallId)??null,runtimeLabel:He,allowsDenyReason:M,...i===void 0?{}:{landOnRow:i},foldFirstPrompt:A!==null,directLog:f,...St.transcriptNames}),r.jsx(rg,{terminalReason:X==null?void 0:X.terminalReason}),r.jsx(At.LiveLane,{state:Ma,scope:"session"}),r.jsx(Nc,{candidates:_a,ready:Z,name:"session-bottom-slot",className:"px-4 pb-2"}),P==="idle"&&de.map(z=>r.jsx(z.component,{},z.id)),r.jsx(Xm,{celebration:g.activeCelebration,onComplete:g.clearCelebration}),r.jsx(mh,{tasks:h.tasks,taskMap:h.taskMap,activeForm:h.activeForm,isCollapsed:h.isCollapsed,onToggleCollapse:h.toggleCollapse,celebratingTaskId:g.celebratingTaskId,onCelebrationComplete:g.clearCelebration,statusTimestamps:h.statusTimestamps}),nt&&r.jsx(ag,{sessionId:e,onRetry:$t?oe:void 0,onSigninComplete:ks,onChooseModel:vs}),ee&&r.jsx(Oy,{error:ee,composerAgent:b,onRetry:G}),e&&r.jsx(Vf,{sessionId:e,onSend:z=>void Y(z)}),r.jsx(Wy,{asDirectMessage:St.directMessage!==null,chatInputRef:d,input:H,autocomplete:et,steerContent:J,addContextContent:ce,tryNativeCommand:Ce,commandPending:ye,agentLookupPending:T&&x!==null&&v,agentLookupError:T&&x!==null&&j,onRetryAgentLookup:()=>void S(),status:P,stop:ue,setInput:q,sessionId:e??"",sessionStatus:X,waiting:Lt,interaction:{active:ge,pendingApprovals:Se.filter(z=>z.interactiveType==="approval"),focusedOptionIndex:We,onToolRef:Ne,onToolDecided:le},sync:{connectionState:Ae}})]})})}function lb(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}`,qe.getState().seek(e,t),()=>{const i=qe.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=qe.getState().seeks[e]===t;if(s.current!==n||i)return;o.current=n;const c=((d=qe.getState().sessions[e])==null?void 0:d.earlier)??[],u=Te.getState().getSession(e).messages;return Ko(Jo([...c,...u],t)??t)},[n,t,e]);return n===null?void 0:a}function qb(){const[e]=Ot();pd(e);const{runtime:t,prompt:n,send:s,seed:o,message:a}=Lr(),i=fc(),c=lb(e,a),{data:u}=pc(e,{enabled:!1,select:f=>f.title}),d=mo(e);Du(e,{canonical:d===null}),Cc();const m=l.useCallback(()=>{i==null||i({search:f=>({...f,prompt:void 0,send:void 0,seed:void 0}),replace:!0})},[i]);return r.jsxs(r.Fragment,{children:[r.jsx(hc,{children:u!=null&&u.trim()?u:"Chat"}),r.jsx(ib,{sessionId:e,launchRuntime:t,launchPrompt:n,launchSend:s==="1",launchSeed:o,onLaunchConsumed:m,...c===void 0?{}:{landOnRow:c}})]})}const cb=48,ub="[&_[data-testid=tool-call-card]]:opacity-100 [&_[data-testid=tool-call-card]_.font-mono]:text-muted-foreground",Vn="Now · working";function zb({sessionId:e,messages:t,agentName:n,showSessions:s,onOpenSession:o,working:a=!1,notice:i=null}){const c=l.useMemo(()=>Ky(t),[t]),u=l.useRef(null),d=Qn(b=>b.request),m=Qn(b=>b.consume),f=c.some(b=>b.live),h=Fn(c),p=l.useRef(!0),g=l.useCallback(()=>{const b=u.current;b&&(p.current=b.scrollHeight-b.scrollTop-b.clientHeight<=cb)},[]),y=l.useRef(e);l.useLayoutEffect(()=>{y.current!==e&&(y.current=e,p.current=!0);const b=u.current;b&&p.current&&(b.scrollTop=b.scrollHeight)});const x=`${c.length}|${f}`;return l.useEffect(()=>{var C,T,A;const b=u.current;if(!b||!d)return;if(d.sessionId!==e){m();return}const v=h.read(),j=d.turn==="live"?((C=v.find(_=>_.live))==null?void 0:C.key)??"live":(T=v.find(_=>_.replies.some(E=>E.id===d.turn)))==null?void 0:T.key,S=Array.from(b.querySelectorAll("[data-work-turn]")).find(_=>_.dataset.workTurn===j);!S&&v.length===0&&d.turn!=="live"||(S?((A=S.scrollIntoView)==null||A.call(S,{block:"start"}),S.focus({preventScroll:!0})):b.focus({preventScroll:!0}),p.current=d.turn==="live"||!S,p.current&&(b.scrollTop=b.scrollHeight),m())},[d,e,x,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(db,{sessionId:e,agentName:n,showSessions:s,onOpenSession:o}),i!==null?r.jsx($r,{children:i}):r.jsxs(r.Fragment,{children:[c.length===0&&!a&&r.jsx($r,{children:"No steps yet."}),c.map(b=>r.jsx(fb,{turn:b,sessionId:e},b.key)),a&&!f&&e!==null&&r.jsx(hb,{})]})]})}function db({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(mb,{sessionId:e,onOpenSession:s})}function mb({sessionId:e,onOpenSession:t}){const{model:n,contextPercent:s,runtime:o}=co(e),{data:a}=un({sessionId:e,runtime:o??void 0}),i=["Session"];return n&&i.push(su(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(gc,{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(xc,{className:"size-3.5","aria-hidden":!0})]})]})}function fb({turn:e,sessionId:t}){const n=e.startedAt?sn(e.startedAt):"",s=e.live?Vn:[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:ub,children:e.replies.map(o=>r.jsx(pb,{reply:o,sessionId:t},o.id))})]})}const pb=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(Ao,{value:o,children:r.jsx(xs,{message:t,show:"work"})})});function hb(){return r.jsxs("section",{"data-work-turn":"live","data-live":!0,"aria-label":Vn,tabIndex:-1,className:"focus-ring rounded-lg border px-3 py-2",children:[r.jsx("h3",{className:"text-foreground text-xs font-medium",children:Vn}),r.jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:"Waiting for the first step"})]})}function $r({children:e}){return r.jsx("p",{className:"text-muted-foreground px-1 text-xs",children:e})}export{qb as S,zb as W,wa as a,Wy as b,eb as c,ab as d,Km as m,va as s,Iy as u};
|