agent-tower 0.7.4-beta.1 → 0.7.4-beta.2
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/executors/__tests__/codex-mcp-windows.test.d.ts +2 -0
- package/dist/executors/__tests__/codex-mcp-windows.test.d.ts.map +1 -0
- package/dist/executors/__tests__/codex-mcp-windows.test.js +128 -0
- package/dist/executors/__tests__/codex-mcp-windows.test.js.map +1 -0
- package/dist/executors/__tests__/codex.executor.test.js +394 -1
- package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
- package/dist/executors/codex.executor.d.ts +6 -6
- package/dist/executors/codex.executor.d.ts.map +1 -1
- package/dist/executors/codex.executor.js +118 -32
- package/dist/executors/codex.executor.js.map +1 -1
- package/dist/mcp/tools/tasks.js +1 -1
- package/dist/mcp/tools/tasks.js.map +1 -1
- package/dist/mcp/types.js +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/runtime/__tests__/acp-process-manager.test.js +65 -0
- package/dist/runtime/__tests__/acp-process-manager.test.js.map +1 -1
- package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
- package/dist/runtime/acp/agents/pi-coding-agent.js +3 -0
- package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
- package/dist/services/__tests__/task.service.test.js +69 -7
- package/dist/services/__tests__/task.service.test.js.map +1 -1
- package/dist/services/__tests__/workspace.service.test.js +31 -0
- package/dist/services/__tests__/workspace.service.test.js.map +1 -1
- package/dist/services/task-display-state.d.ts +10 -0
- package/dist/services/task-display-state.d.ts.map +1 -0
- package/dist/services/task-display-state.js +45 -0
- package/dist/services/task-display-state.js.map +1 -0
- package/dist/services/task.service.d.ts +14 -6
- package/dist/services/task.service.d.ts.map +1 -1
- package/dist/services/task.service.js +70 -83
- package/dist/services/task.service.js.map +1 -1
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/services/workspace.service.js +2 -1
- package/dist/services/workspace.service.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-DiHEh1iv.js → AgentDemoPage-CrkoVCOZ.js} +1 -1
- package/dist/web/assets/{AgentEnvironmentSettingsPage-B_Xk7Bef.js → AgentEnvironmentSettingsPage-BRihy3_Q.js} +1 -1
- package/dist/web/assets/{AttachmentPreview-BngGSahV.js → AttachmentPreview-B9z1Mxb-.js} +1 -1
- package/dist/web/assets/{BranchSelect-BgVKUnxj.js → BranchSelect-Bo5uhKCt.js} +1 -1
- package/dist/web/assets/{BrandLogo-CBahjTd7.js → BrandLogo-DEL42B23.js} +1 -1
- package/dist/web/assets/{ConversationPage-kgJIlyS5.js → ConversationPage-C46RuN9U.js} +1 -1
- package/dist/web/assets/{CreateTaskInput-Cllw4abW.js → CreateTaskInput-4aHJpsfL.js} +1 -1
- package/dist/web/assets/{DemoPage-CkS__9CE.js → DemoPage-CAZqNag-.js} +1 -1
- package/dist/web/assets/{DesignSystemPage-BklN99GA.js → DesignSystemPage-CjCYC24B.js} +1 -1
- package/dist/web/assets/{ExecutionPermissionSelector-Bsi1aa7q.js → ExecutionPermissionSelector-CJgc_EVo.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-BC9TUWiu.js → GeneralSettingsPage-DFT7Cubi.js} +1 -1
- package/dist/web/assets/{LoadingPreviewPage-Dx8Si6-g.js → LoadingPreviewPage-CB4VDPAZ.js} +1 -1
- package/dist/web/assets/{McpSettingsPage-fqXRGtFu.js → McpSettingsPage-CgiyGvkH.js} +1 -1
- package/dist/web/assets/{MemberAvatar-CZ3F53Ep.js → MemberAvatar-Cfz8LU6k.js} +1 -1
- package/dist/web/assets/MobileTaskDetail-yZNyZMQt.js +3 -0
- package/dist/web/assets/{NotificationSettingsPage-D9KGIFVA.js → NotificationSettingsPage-BSMJ45yx.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-D_Hw5lpd.js → ProfileSettingsPage-BwNThOnH.js} +1 -1
- package/dist/web/assets/ProjectKanbanPage-DtZW0bOh.js +14 -0
- package/dist/web/assets/{ProjectSettingsPage-CJANCPJX.js → ProjectSettingsPage-CMBMkbgI.js} +1 -1
- package/dist/web/assets/{ProviderSettingsPage-B6Ro5PQa.js → ProviderSettingsPage-D759BSRa.js} +1 -1
- package/dist/web/assets/{SettingsMasterDetail-Q-049Dvh.js → SettingsMasterDetail-DpYUTM-Q.js} +1 -1
- package/dist/web/assets/TaskDetail-rRHGOvSw.js +1 -0
- package/dist/web/assets/{TaskHandoffPanel-BpGiZ5eT.js → TaskHandoffPanel-DBcC1xQW.js} +24 -24
- package/dist/web/assets/{TeamSettingsPage-DbKgqEO_.js → TeamSettingsPage-BszQfKp0.js} +1 -1
- package/dist/web/assets/{TranslationSettingsPage-Ba-iypOV.js → TranslationSettingsPage-lLaxWCy3.js} +1 -1
- package/dist/web/assets/{arc-SOqs3Svk.js → arc-DtgXFw4D.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-BH25ukq_.js → architectureDiagram-3BPJPVTR-B3p3EMX1.js} +1 -1
- package/dist/web/assets/{at-sign-CEsum1vJ.js → at-sign-B8rXgKEE.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-CKA17iNP.js → blockDiagram-GPEHLZMM-BmekCfr0.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-DnZ_8oOf.js → c4Diagram-AAUBKEIU-CF6hJhuL.js} +1 -1
- package/dist/web/assets/channel-BdK_fAel.js +1 -0
- package/dist/web/assets/check-DwK55QS2.js +1 -0
- package/dist/web/assets/{chevron-down-Bmwy-nvS.js → chevron-down-Dftc5hr4.js} +1 -1
- package/dist/web/assets/{chevron-up-CClL6-SF.js → chevron-up-CKRxN6zX.js} +1 -1
- package/dist/web/assets/{chip-BSMT2uT1.js → chip-ZTBHcXU2.js} +1 -1
- package/dist/web/assets/{chunk-2J33WTMH-BrtUyBDF.js → chunk-2J33WTMH-Bjelop4M.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-DZDNetDC.js → chunk-4BX2VUAB-B1rJPbL6.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-xVa3bJqv.js → chunk-55IACEB6-B5qfH7Gj.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-B7n9vxY4.js → chunk-727SXJPM-ClFMbgrH.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-DQd4G76y.js → chunk-AQP2D5EJ-BMFjTO7B.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-CXyP08kl.js → chunk-FMBD7UC4-Pr1oOFfR.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-BtnIS-HK.js → chunk-ND2GUHAM-BPm4TRpO.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-D4D-V_ex.js → chunk-QZHKN3VN-DCPA_U0M.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-CFzCq0ml.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CFzCq0ml.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-DfERo9L1.js → code-block-OCS4YCEC-Cx53F4d7.js} +1 -1
- package/dist/web/assets/{confirm-dialog-8ItnHBi0.js → confirm-dialog-C_j-w4TS.js} +1 -1
- package/dist/web/assets/{content-DrW8KnXu.js → content-DeIfej_n.js} +1 -1
- package/dist/web/assets/{copy-prrQrInw.js → copy-B-BaLIlh.js} +1 -1
- package/dist/web/assets/{cose-bilkent-S5V4N54A-CXdH8Idq.js → cose-bilkent-S5V4N54A-gIys-0yu.js} +1 -1
- package/dist/web/assets/{cssMode-CJ6_f10q.js → cssMode-xF0bjbbU.js} +1 -1
- package/dist/web/assets/{dagre-BM42HDAG-XZydDwXe.js → dagre-BM42HDAG-Bwc3Ntc-.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-CofEe0Fr.js → diagram-2AECGRRQ-zkydBsMT.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-BbTtW5WH.js → diagram-5GNKFQAL-p9As3QtI.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-BJHZXpUM.js → diagram-KO2AKTUF-N_pUU-iU.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-DN7A27YU.js → diagram-LMA3HP47-CA2rl4Gq.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-4IdYadiw.js → diagram-OG6HWLK6-BoXxBlUC.js} +1 -1
- package/dist/web/assets/{dialog-BUsI4h2U.js → dialog-CnjWIdWp.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-BFijhCWv.js → erDiagram-TEJ5UH35-CVBHQTCN.js} +1 -1
- package/dist/web/assets/{file-C6QMUr5_.js → file-jMLGlXos.js} +1 -1
- package/dist/web/assets/{flowDiagram-I6XJVG4X-D9MxC-El.js → flowDiagram-I6XJVG4X-kK7iKiAv.js} +1 -1
- package/dist/web/assets/{folder-picker-CBdw-4v3.js → folder-picker-CR8LiSQf.js} +1 -1
- package/dist/web/assets/{freemarker2-CJVobC22.js → freemarker2-CTMcTiBd.js} +1 -1
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-BijCAyPQ.js → ganttDiagram-6RSMTGT7-CJVvLTkW.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-AvI5QqxQ.js → gitGraphDiagram-PVQCEYII-D8uj_SCw.js} +1 -1
- package/dist/web/assets/{globe-BOfcTsvL.js → globe-FFVKce9-.js} +1 -1
- package/dist/web/assets/{handlebars-DTqWmI25.js → handlebars-NHxbmOs3.js} +1 -1
- package/dist/web/assets/{html-Bx7L8DX_.js → html-oFqzz32q.js} +1 -1
- package/dist/web/assets/{htmlMode-D_S0NjZc.js → htmlMode-sgeetciK.js} +1 -1
- package/dist/web/assets/index-408ws6FY.css +1 -0
- package/dist/web/assets/index-9KNEuwGB.js +122 -0
- package/dist/web/assets/{index-Bg8TlDo_.js → index-BzqyZD7L.js} +1 -1
- package/dist/web/assets/{index-BFcDmhr0.js → index-C5lNOKJb.js} +1 -1
- package/dist/web/assets/{index-BClyhWqz.js → index-C9vIrQ3Q.js} +1 -1
- package/dist/web/assets/{index-Cdmj8aPv.js → index-Cm_7q6ju.js} +1 -1
- package/dist/web/assets/{index-DUmVscrR.js → index-CwfWGzxi.js} +4 -4
- package/dist/web/assets/{index-COigMgrJ.js → index-D8TNxwWk.js} +1 -1
- package/dist/web/assets/{index-JXcQeorP.js → index-biTPUXAe.js} +1 -1
- package/dist/web/assets/{index-CtOu4p9B.js → index-gqrRO6ZJ.js} +1 -1
- package/dist/web/assets/{infoDiagram-5YYISTIA-76JLqjJ0.js → infoDiagram-5YYISTIA-CExRZE3Y.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CXHFTVly.js → ishikawaDiagram-YF4QCWOH-CsqM2X33.js} +1 -1
- package/dist/web/assets/javascript-COt-61wn.js +1 -0
- package/dist/web/assets/{journeyDiagram-JHISSGLW-6SDJs9C5.js → journeyDiagram-JHISSGLW-DX9OMhPD.js} +1 -1
- package/dist/web/assets/{jsonMode-BGg9MhFR.js → jsonMode-VQg5cpLV.js} +1 -1
- package/dist/web/assets/{kanban-definition-UN3LZRKU-C0Y3zy1P.js → kanban-definition-UN3LZRKU-CWHMx6vc.js} +1 -1
- package/dist/web/assets/{kbd-D4KIW7lm.js → kbd-GGofKfKu.js} +1 -1
- package/dist/web/assets/{key-round-C4vhwqUu.js → key-round-p-Fpykfj.js} +1 -1
- package/dist/web/assets/{layers-BBHgMnhN.js → layers-pbPa_eZq.js} +1 -1
- package/dist/web/assets/{linear-CjeIgBwO.js → linear-9VwGhaEA.js} +1 -1
- package/dist/web/assets/{link-C-Jq7dnc.js → link-CG4UwIS1.js} +1 -1
- package/dist/web/assets/{liquid-guocpCJB.js → liquid-SJInUaiB.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-CPXERxVW.js → lspLanguageFeatures-DJOdVyBc.js} +1 -1
- package/dist/web/assets/{mdx-DA4ymd3l.js → mdx-CToYr-3b.js} +1 -1
- package/dist/web/assets/{menu-BgtmXAzT.js → menu-BFQ1mKU7.js} +1 -1
- package/dist/web/assets/{mermaid-NOHMQCX5-XQbfQDGS.js → mermaid-NOHMQCX5-BOViobLk.js} +58 -58
- package/dist/web/assets/{message-square-DIFv9yrO.js → message-square-BYZsUsLz.js} +1 -1
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-6ucD61UV.js → mindmap-definition-RKZ34NQL-BTcDnn6X.js} +1 -1
- package/dist/web/assets/{modal-Dx4N46s5.js → modal-BT_7Lhtw.js} +1 -1
- package/dist/web/assets/{monaco-Mn1xgio_.js → monaco-DUftz48_.js} +3 -3
- package/dist/web/assets/{nav-row-DwEkbw3N.js → nav-row-BjDckaPC.js} +1 -1
- package/dist/web/assets/{paperclip-CdQvl5ee.js → paperclip-CFAH5neE.js} +1 -1
- package/dist/web/assets/{pencil-ChX7G9j9.js → pencil-Bg9TWm_-.js} +1 -1
- package/dist/web/assets/{people-D_VwidfV.js → people-BIQwajM2.js} +1 -1
- package/dist/web/assets/{pieDiagram-4H26LBE5-KVvAyrIn.js → pieDiagram-4H26LBE5-CRjqdnP8.js} +1 -1
- package/dist/web/assets/{popover-CGEFZKuu.js → popover-DpYhrrCE.js} +1 -1
- package/dist/web/assets/{python-BzNNRn8W.js → python-DbmUucgH.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-ClVzvpE7.js → quadrantDiagram-W4KKPZXB-uvA8TYC6.js} +1 -1
- package/dist/web/assets/{razor-DF2ZxqCE.js → razor-B0AJhw7W.js} +1 -1
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-uXN6Uoln.js → requirementDiagram-4Y6WPE33-BWLugaKX.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-Bi3Tc0wR.js → sankeyDiagram-5OEKKPKP-DHrbZZv8.js} +1 -1
- package/dist/web/assets/{search--FRFbCre.js → search-BH8nze-X.js} +1 -1
- package/dist/web/assets/{select-c5IIpQj0.js → select-BegY9RkP.js} +1 -1
- package/dist/web/assets/{select-D0sHgfcU.js → select-EcEr5QSS.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-CLdrO2PY.js → sequenceDiagram-3UESZ5HK-CKwEKcTn.js} +1 -1
- package/dist/web/assets/{server-Dr_6KJFM.js → server-BxEUjx0l.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-BGInldGc.js → stateDiagram-AJRCARHV-vhgmSpa9.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-C0z5OTY4.js +1 -0
- package/dist/web/assets/{textarea-W-xQPto3.js → textarea-CvoGGROs.js} +1 -1
- package/dist/web/assets/{timeline-definition-PNZ67QCA-BUp6Qykc.js → timeline-definition-PNZ67QCA-bSDKcwDZ.js} +1 -1
- package/dist/web/assets/{toggles-Bgp7vdwg.js → toggles-CEDUD08u.js} +1 -1
- package/dist/web/assets/{tooltip-DZcaSN1F.js → tooltip-CKaUbVZ7.js} +1 -1
- package/dist/web/assets/{track-Cj1Ogapu.js → track-1qw2cvTy.js} +1 -1
- package/dist/web/assets/{trash-2-DmFXzIhh.js → trash-2-ChiXon87.js} +1 -1
- package/dist/web/assets/{tsMode-CSHMQttX.js → tsMode-bnV8W2Ru.js} +1 -1
- package/dist/web/assets/{typescript-CyQKmnN-.js → typescript-d1MHIeEx.js} +1 -1
- package/dist/web/assets/{upload-C-4QDrwN.js → upload-CQ-cQaOz.js} +1 -1
- package/dist/web/assets/{use-profiles-D5mIgeQU.js → use-profiles-CJzoqarX.js} +1 -1
- package/dist/web/assets/{use-providers-BViTes-6.js → use-providers-S29TCag2.js} +1 -1
- package/dist/web/assets/{use-translation-settings-Dgw0oKP1.js → use-translation-settings-DifNJaCu.js} +1 -1
- package/dist/web/assets/{useNormalizedLogs-BX7pMg0-.js → useNormalizedLogs-BVdY8qDk.js} +1 -1
- package/dist/web/assets/{useTokenUsage-T03faPfn.js → useTokenUsage-nh_KDA3q.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-iQYnP9Ux.js → vennDiagram-CIIHVFJN-D7QbDYzC.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-J7vXwA5J.js → wardley-L42UT6IY-C9aHlNVa.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-CdtM5GJv.js → wardleyDiagram-YWT4CUSO-CZhubDRC.js} +1 -1
- package/dist/web/assets/{xml-C79KdvcD.js → xml-DAKKxHAr.js} +1 -1
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-B3gcBChQ.js → xychartDiagram-2RQKCTM6-BgDlpFBh.js} +1 -1
- package/dist/web/assets/{yaml-C1WLpuVe.js → yaml-D_hSVVz0.js} +1 -1
- package/dist/web/index.html +2 -2
- package/node_modules/@agent-tower/shared/dist/types.d.ts +12 -2
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/assets/MobileTaskDetail-B68iYPOI.js +0 -3
- package/dist/web/assets/ProjectKanbanPage-CUX0Kh-t.js +0 -12
- package/dist/web/assets/TaskDetail-DBtWf0YV.js +0 -1
- package/dist/web/assets/channel-xU45IQlP.js +0 -1
- package/dist/web/assets/check-DUA2DjGH.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-pvRulc6s.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-pvRulc6s.js +0 -1
- package/dist/web/assets/index-BDON669P.css +0 -1
- package/dist/web/assets/index-BRu1Yhrx.js +0 -122
- package/dist/web/assets/javascript-80FDzX3y.js +0 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D44x8SXb.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as Re,r as n,ai as _t,j as e,B as oe,aj as Kt,a5 as Js,a6 as qt,ak as Vt,al as Gt,am as Ht,an as Qt,ao as $t,ap as F,aq as Xt,ar as Yt,o as Jt,p as Zt,q as Ie,as as ms,at as en,af as Zs,ag as U,au as sn,av as tn,s as nn,aw as et,ax as rn,a3 as on,ay as an,az as W,a0 as ln,aA as cn}from"./index-9KNEuwGB.js";import{u as dn,r as un,c as mn,g as _e,a as pn,b as fn,d as xn,e as gn,f as hn,h as bn,W as vn,E as jn,i as yn,C as kn,S as Cn,T as st,R as wn,j as Nn,k as In,l as Sn,m as Rn,n as Tn,o as An,p as En}from"./TaskHandoffPanel-DBcC1xQW.js";import{r as Wn,a as tt,Q as Pn,s as Dn}from"./mermaid-NOHMQCX5-BOViobLk.js";import{t as Mn,g as nt,a as rt,D as On}from"./ProjectKanbanPage-DtZW0bOh.js";import{u as Ln,a as Bn,R as zn,P as Fn,T as Un}from"./useTokenUsage-nh_KDA3q.js";import{u as _n,a as Kn,L as ot,T as at}from"./useNormalizedLogs-BVdY8qDk.js";import{g as qn}from"./ExecutionPermissionSelector-CJgc_EVo.js";import{u as Vn,A as Gn}from"./AttachmentPreview-B9z1Mxb-.js";import{T as Hn,u as Qn,a as $n,b as Xn,c as Yn,d as Jn,e as Zn,S as it}from"./CreateTaskInput-4aHJpsfL.js";import{u as er,a as sr,b as tr,c as nr,d as rr,e as or}from"./BranchSelect-Bo5uhKCt.js";import{u as ar}from"./use-providers-S29TCag2.js";import{i as ir}from"./provider-selection-DSu7SCI7.js";import{M as lr}from"./modal-BT_7Lhtw.js";import{C as cr}from"./confirm-dialog-C_j-w4TS.js";import{C as dr,P as ps}from"./content-DeIfej_n.js";import{P as fs,T as ur}from"./trash-2-ChiXon87.js";import{P as mr}from"./paperclip-CFAH5neE.js";import"./use-translation-settings-DifNJaCu.js";import"./MemberAvatar-Cfz8LU6k.js";import"./people-BIQwajM2.js";import"./chevron-down-Dftc5hr4.js";import"./chevron-up-CKRxN6zX.js";import"./at-sign-B8rXgKEE.js";import"./check-DwK55QS2.js";import"./tooltip-CKaUbVZ7.js";import"./kbd-GGofKfKu.js";import"./index-C5lNOKJb.js";import"./index-C9vIrQ3Q.js";import"./index-Cm_7q6ju.js";import"./BrandLogo-DEL42B23.js";import"./popover-DpYhrrCE.js";import"./search-BH8nze-X.js";import"./index-D8TNxwWk.js";import"./index-BzqyZD7L.js";import"./index-gqrRO6ZJ.js";import"./select-BegY9RkP.js";import"./select-EcEr5QSS.js";import"./menu-styles-DWynpVVz.js";import"./index-biTPUXAe.js";import"./layers-pbPa_eZq.js";import"./message-square-BYZsUsLz.js";import"./textarea-CvoGGROs.js";import"./menu-BFQ1mKU7.js";import"./server-BxEUjx0l.js";import"./upload-CQ-cQaOz.js";import"./globe-FFVKce9-.js";import"./pencil-Bg9TWm_-.js";import"./copy-B-BaLIlh.js";import"./chip-ZTBHcXU2.js";import"./folder-picker-CR8LiSQf.js";import"./track-1qw2cvTy.js";import"./dialog-CnjWIdWp.js";import"./file-jMLGlXos.js";function pr({isOpen:t,onClose:x,taskId:R}){const{t:c}=Re(),[C,w]=n.useState("AUTO"),[N,g]=n.useState(null),[T,o]=n.useState([]),[h,P]=n.useState(null),Te=_t();n.useEffect(()=>{t&&(w("AUTO"),g(null),o([]),P(null))},[t]);const D=Te.isPending,Ke=!!N||T.length>0,ae=async()=>{if(!D){if(!N&&T.length===0){P(c("请选择至少一个团队模板或成员预设。"));return}P(null);try{await Te.mutateAsync({taskId:R,mode:C,...N?{teamTemplateId:N}:{},...T.length>0?{memberPresetIds:T}:{}}),x()}catch(G){P(G instanceof Error?G.message:c("创建 TeamRun 失败"))}}},qe=D||!Ke;return e.jsxs(lr,{isOpen:t,onClose:D?()=>{}:x,title:c("创建 TeamRun"),className:"max-w-5xl",action:e.jsxs(e.Fragment,{children:[e.jsx(oe,{type:"button",variant:"outline",onClick:x,disabled:D,children:c("取消")}),e.jsx(oe,{type:"button",onClick:ae,disabled:qe,children:c(D?"处理中...":"创建 TeamRun")})]}),children:[e.jsx(Hn,{mode:C,setMode:w,selectedTemplateId:N,setSelectedTemplateId:g,selectedMemberPresetIds:T,setSelectedMemberPresetIds:o,disabled:D}),h&&e.jsx("div",{role:"alert",className:"rounded-lg border border-destructive/25 bg-destructive/10 px-4 py-3 text-sm text-destructive-ink",children:h})]})}function fr({workspaceId:t,gitStatus:x,onResolve:R}){const{t:c}=Re(),C=er();if(x.operation==="idle"||x.conflictedFiles.length===0)return null;const w=x.operation==="rebase"?"Rebase":"Merge";return e.jsx(Kt,{tone:"warning",className:"mx-6 mt-3 items-center",title:e.jsxs("span",{className:"flex items-center gap-2",children:[w," ",c("冲突"),e.jsxs(qt,{tone:"warning",className:"tabular-nums",children:[x.conflictedFiles.length," ",c("个文件")]})]}),action:e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Js,{variant:"ghost",onClick:()=>C.mutate(t),loading:C.isPending,children:c("中止操作")}),e.jsx(Js,{variant:"primary",onClick:R,children:c("解决冲突")})]})})}const xr=ln(),gr=t=>t.includes("://")||t.startsWith("/api/")?t:t.startsWith("/")?`${xr}/attachments/by-path?path=${encodeURIComponent(t)}`:t,re=520,xs=48,hr=4,br=420;function vr(){const{t}=Re();return e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center bg-background text-muted-foreground select-none",children:[e.jsx("div",{className:"w-16 h-16 bg-muted/50 rounded-xl border border-border/60 flex items-center justify-center mb-6",children:e.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"text-muted-foreground",children:[e.jsx("path",{d:"M12 2L2 7L12 12L22 7L12 2Z",fill:"currentColor"}),e.jsx("path",{d:"M2 17L12 22L22 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M2 12L12 17L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})}),e.jsx("h3",{className:"text-foreground font-medium mb-2 text-[15px]",children:"Agent Tower"}),e.jsx("p",{className:"text-sm max-w-sm text-center text-muted-foreground leading-relaxed",children:t("Select a task from the sidebar to view logs, monitor execution, or interact with an agent.")})]})}function Se(t){const x=cn[t].icon;return e.jsx(x,{className:"size-3"})}const lt=[{status:W.Review,className:"bg-warning/10 text-warning-ink",hoverClass:"hover:bg-warning/15",icon:Se(W.Review)},{status:W.Running,className:"bg-info/10 text-info-ink",hoverClass:"hover:bg-info/15",icon:Se(W.Running)},{status:W.Pending,className:"bg-muted/50 text-muted-foreground",hoverClass:"hover:bg-muted",icon:Se(W.Pending)},{status:W.Done,className:"bg-success/10 text-success-ink",hoverClass:"hover:bg-success/15",icon:Se(W.Done)},{status:W.Cancelled,className:"bg-muted/50 text-muted-foreground",hoverClass:"hover:bg-border",icon:Se(W.Cancelled)}];function jr({status:t,ownStatus:x=t,summary:R,onChangeStatus:c}){const{t:C}=Re(),[w,N]=n.useState(!1),g=n.useRef(null);n.useEffect(()=>{if(!w)return;const o=h=>{g.current&&!g.current.contains(h.target)&&N(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[w]);const T=lt.find(o=>o.status===t);return e.jsxs("div",{className:"relative",ref:g,children:[e.jsxs("button",{title:R,onClick:()=>c&&N(o=>!o),className:`flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium transition-colors ${T.className} ${c?"cursor-pointer hover:opacity-80":""}`,children:[T.icon,e.jsx("span",{children:C(t)}),c&&e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"currentColor",className:`ml-0.5 transition-transform ${w?"rotate-180":""}`,children:e.jsx("path",{d:"M2 3.5L5 6.5L8 3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})]}),w&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-40 bg-background rounded-lg border border-border shadow-popover z-50 py-1 animate-in fade-in zoom-in-95 duration-100",children:[x!==t&&e.jsx("div",{className:"px-3 py-1 text-xs text-muted-foreground",children:C("Own status: {status}",{status:C(x)})}),lt.filter(o=>o.status!==x).map(o=>e.jsxs("button",{onClick:()=>{c?.(o.status),N(!1)},className:`w-full flex items-center gap-2 px-3 py-2 text-xs font-medium transition-colors ${o.hoverClass}`,children:[e.jsx("span",{className:o.className.split(" ").find(h=>h.startsWith("text-")),children:o.icon}),e.jsx("span",{className:"text-foreground/80",children:C(o.status)})]},o.status))]})]})}function yo({task:t,onSelectTask:x,onCreateSubtask:R,onDeleteTask:c,isDeleting:C,onTaskStatusChange:w,onTaskPriorityChange:N,autoStartState:g,onAutoStartRecovered:T}){const{t:o}=Re(),[h,P]=n.useState(""),[Te,D]=n.useState(!1),[Ke,ae]=n.useState(!1),[qe,G]=n.useState(!1),[ct,Ve]=n.useState(!1),[dt,gs]=n.useState(!1),Ae=n.useRef(null),[Ge,H]=n.useState(!1),[A,He]=n.useState(null),[ie,Q]=n.useState(void 0),[$,Ee]=n.useState(!1),Qe=n.useRef(null),$e=n.useRef(null),le=n.useRef(null),hs=n.useRef(null),{scrollRef:_,contentRef:bs,isAtBottom:vs,scrollToBottom:We,stopScroll:js}=Ln({resize:"smooth",initial:"instant"}),[M,ys]=n.useState(!1),[Xe,ce]=n.useState(re),[Pe,ks]=n.useState(!1),Cs=n.useRef(0),ws=n.useRef(re),Ns=n.useRef(null),Ye=n.useCallback((s,r,i)=>{Ae.current?.openFile(s,r,i)},[]),{data:a,isLoading:ut}=sr(t?.id??""),de=dn(t?.id),Is=de?.status==="completed"&&g?.status!=="failed"?null:g,Je=!!(Is||de&&de.status!=="completed"),{data:ue}=Vt(t?.id??""),{data:mt}=Gt(ue?.id??""),Ss=Ht(ue?.id??""),d=ue??null,me=!!d,X=t?.isGitRepo!==!1&&t?.worktreeReady!==!1,De=ue===null&&X,pt=!!(t?.id&&ue===null),{data:Y,isLoading:Rs}=Qt(t?.id??"",pt);n.useEffect(()=>{Ee(!1),He(null),Q(void 0)},[t?.id]);const K=n.useMemo(()=>un(a,d,ie),[ie,d,a]);n.useEffect(()=>{ie&&!a?.some(s=>s.id===ie)&&Q(void 0)},[ie,a]);const p=n.useMemo(()=>a?.find(s=>s.id===K),[K,a]),k=p?.status===$t.ACTIVE?p.id:void 0,pe=X&&mn(p,d);n.useEffect(()=>{if(!$||!a)return;a.some(r=>r.status==="ACTIVE"&&r.sessions&&r.sessions.length>0)&&Ee(!1)},[a,$]);const f=n.useMemo(()=>{if($||!a)return null;const s=l=>{const us=l.createdAt,Ne=l.endedAt??l.startedAt??us;if(!Ne)return 0;const ne=Date.parse(Ne);return Number.isNaN(ne)?0:ne},r=(l,us)=>{const Ne=l.filter(ne=>us.includes(ne.status));return Ne.length===0?null:Ne.sort((ne,Ut)=>s(Ut)-s(ne))[0]??null},i=a.filter(l=>l.status==="ACTIVE"&&Array.isArray(l.sessions)).flatMap(l=>l.sessions??[]),m=r(i,[F.RUNNING])??r(i,[F.PENDING])??r(i,[F.COMPLETED,F.FAILED,F.CANCELLED]);if(m)return m;const S=a.filter(l=>(l.status==="MERGED"||l.status==="ABANDONED"||l.status==="HIBERNATED")&&Array.isArray(l.sessions)).flatMap(l=>l.sessions??[]);return r(S,[F.COMPLETED,F.FAILED,F.CANCELLED])},[a,$]),J=f?.id??"",b=me?A??"":J,ft=n.useMemo(()=>{if(!A||!a)return null;for(const s of a){const r=s.sessions?.find(i=>i.id===A);if(r)return r}return null},[A,a]),Ze=n.useMemo(()=>{if(!A||!d?.invocations)return null;const s=d.invocations.filter(r=>r.sessionId===A);return s.length===0?null:s.sort((r,i)=>{const m=Date.parse(r.updatedAt??r.createdAt??""),S=Date.parse(i.updatedAt??i.createdAt??"");return(Number.isNaN(S)?0:S)-(Number.isNaN(m)?0:m)})[0]??null},[A,d?.invocations]),xt=n.useMemo(()=>!Ze?.memberId||!d?.members?null:d.members.find(s=>s.id===Ze.memberId)??null,[Ze?.memberId,d?.members]),v=A?ft:f??null,L=v?.id,Z=n.useMemo(()=>{if(v?.workspaceId)return v.workspaceId;if(!(!v||!a))return a.find(s=>s.sessions?.some(r=>r.id===v.id))?.id},[v,a]),Me=n.useCallback((s,r)=>{const m=(r&&a?.some(S=>S.id===r)?r:void 0)??Z??K??void 0;m&&Q(m),Ae.current?.openPreview(s,m)},[Z,K,a]),es=n.useCallback((s,r)=>{Me({kind:"web",url:s},r)},[Me]),ss=n.useCallback((s,r,i)=>{Me({kind:"visualization",sessionId:s,file:r},i)},[Me]),Ts=n.useCallback(s=>{es(s,Z)},[Z,es]),As=n.useCallback(s=>{L&&ss(L,s,Z)},[L,Z,ss]),{isActive:fe,isCancelling:xe}=Qn(L??"",v?.status),u=!!t?.projectArchivedAt,Es=!!t?.projectRepoDeletedAt,ts=o(Es?"项目已删除,本地仓库文件也已清理。恢复项目并重新绑定仓库后才能继续操作。":"项目已删除。恢复项目后才能继续创建会话或修改任务。"),{data:ee}=ar(),[Oe,Ws]=n.useState(null),Le=f?qn(ee,Oe??f.providerId):void 0;n.useEffect(()=>{Ws(f?.providerId??null)},[f?.providerId]);const gt=n.useMemo(()=>!f||!a?!1:!a.some(r=>r.status==="ACTIVE"&&r.sessions?.some(i=>i.id===f.id)),[f,a]),I=n.useMemo(()=>{if(!(!a||$)){if(p)return _e(p);for(const s of a)if(s.status==="ACTIVE"&&_e(s))return _e(s);return _e(a[0])}},[$,p,a]),q=$n({agentType:f?.agentType,workingDir:I,input:h,setInput:P,textareaRef:le,minHeight:60,maxHeight:300}),V=pn({agentType:f?.agentType,workingDir:I,input:h,setInput:P,textareaRef:le,minHeight:60,maxHeight:300}),ns=Xt(s=>s.setVisibleContext),ge=!!(pe&&k&&I&&!u),{data:E,isLoading:ht}=tr(k??"",{enabled:ge}),{data:bt}=fn(I,{enabled:ge});n.useEffect(()=>{if(!(M||!ge||!k||!I))return ns({workspaceId:k,workingDir:I,tab:"changes"}),()=>{ns(null)}},[M,k,ns,ge,I]);const vt=p?.sessions??[],he=xn(p),Ps=p?.commitMessage,be=n.useMemo(()=>gn(p,a,t?.mainBranch??""),[p,t?.mainBranch,a]),ve=hn((a??[]).map(s=>s.id),!me),{pendingConflictDetails:je}=ve,Ds=!!je,j=n.useMemo(()=>je||(E?.conflictOp&&E.conflictedFiles.length>0?Yt({conflictOp:E.conflictOp,conflictedFiles:E.conflictedFiles,resolutionContextToken:E.resolutionContextToken,sourceWorkspaceId:k,sourceWorktreePath:p?.worktreePath,sourceBranch:he,targetBranch:be}):je),[E,je,k,p?.worktreePath,he,be]),Ms=j?.targetWorkspaceId??k,jt=j?.targetWorktreePath??p?.worktreePath,yt=j?.sourceBranch??he,kt=j?.targetBranch??be,y=Jt(),Be=n.useCallback(async()=>t?.id?y.fetchQuery({queryKey:Ie.tasks.body(t.id),queryFn:()=>Zt.get(`/tasks/${t.id}/body`)}):null,[y,t?.id]),Os=n.useCallback(()=>t?.id?y.invalidateQueries({queryKey:Ie.workspaces.list(t.id)}):Promise.resolve(),[t?.id,y]);n.useEffect(()=>{if(!Ge)return;const s=r=>{$e.current&&!$e.current.contains(r.target)&&H(!1)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[Ge]);const B=Xn(),Ls=nr(),Bs=rr(t?.id??""),zs=Yn(),rs=or(),ye=n.useMemo(()=>!a||a.some(r=>r.status==="ACTIVE")?null:a.find(r=>r.status==="HIBERNATED")??null,[a]),os=n.useRef(null);n.useEffect(()=>{ye&&os.current!==ye.id&&(rs.isPending||(os.current=ye.id,rs.mutate(ye.id,{onSettled:()=>{os.current=null}})))},[ye,rs]);const Ct=n.useCallback(async()=>{if(!t?.id)return;const s=f?.providerId??ee?.find(r=>ir(r)&&r.availability.type!=="NOT_FOUND")?.provider.id;if(s){Ve(!1),gs(!0);try{const i=(await Be())?.prompt??t.title;Ee(!0),await Mn(t.id,{providerId:s,prompt:i,retryTask:!0,workspaceKind:X?ms.WORKTREE:ms.MAIN_DIRECTORY},{createWorkspace:m=>Bs.mutateAsync({clientSubmissionId:m,workspaceKind:X?void 0:ms.MAIN_DIRECTORY}),startSession:m=>zs.mutateAsync(m)}),await y.invalidateQueries({queryKey:Ie.workspaces.list(t.id)})}catch(r){console.error("[retry] failed:",r),Ee(!1)}finally{gs(!1)}}},[t?.id,t?.title,X,f?.providerId,ee,Be,Bs,zs,y]),as=n.useCallback(async()=>{t?.id&&(await Be(),D(!0))},[Be,t?.id]),wt=n.useCallback(()=>{p?.id&&Ls.mutate({workspaceId:p.id})},[Ls,p?.id]),Nt=n.useCallback(s=>{!t?.id||!c||(c(t.id,s),G(!1))},[t?.id,c]),Fs=n.useCallback(s=>{He(s),requestAnimationFrame(()=>{We()})},[We]),It=n.useCallback(()=>{He(null)},[]),ke=n.useCallback(s=>{const r=s??j;r&&ve.openDialog(r)},[j,ve]),St=n.useCallback(s=>Ss.mutateAsync(s),[Ss]),se=n.useCallback(()=>{y.invalidateQueries({queryKey:en.all})},[y]),{isConnected:Us,isLoadingSnapshot:_s,isOutputActive:Ks,lastExitAt:qs,logs:Ce,entries:Rt,attach:ze}=_n({sessionId:b,sessionStatus:v?.status,sessionStartedAt:v?.startedAt??v?.createdAt,sessionEndedAt:v?.endedAt??(fe?null:v?.updatedAt),onExit:n.useCallback(()=>{y.invalidateQueries({queryKey:["workspaces"]})},[y])});n.useEffect(()=>{if(!t?.id)return;const s=Zs.connect(),r=Wn(t.id),i=l=>{l.taskId===t.id&&(y.invalidateQueries({queryKey:["tasks"]}),se())},m=l=>{l.taskId===t.id&&(y.invalidateQueries({queryKey:Ie.workspaces.list(t.id)}),se())},S=l=>{l.taskId===t.id&&(y.invalidateQueries({queryKey:Ie.workspaces.list(t.id)}),se())};return s.on(U.TASK_UPDATED,i),s.on(U.WORKSPACE_COMMIT_MESSAGE_UPDATED,m),s.on(U.WORKSPACE_HIBERNATED,S),()=>{s.off(U.TASK_UPDATED,i),s.off(U.WORKSPACE_COMMIT_MESSAGE_UPDATED,m),s.off(U.WORKSPACE_HIBERNATED,S),r()}},[t?.id,y,se]),n.useEffect(()=>{if(!b)return;const s=Zs.connect(),r=i=>{i.sessionId===b&&(y.invalidateQueries({queryKey:["workspaces"]}),se())};return s.on(U.SESSION_COMPLETED,r),()=>{s.off(U.SESSION_COMPLETED,r)}},[b,y,se]);const{todos:Fe}=Kn(Rt),{files:Tt,addFiles:te,removeFile:At,clear:Vs,getDoneAttachments:Gs,hasFiles:we,isUploading:Ue}=Vn(),Et=n.useMemo(()=>bn(v),[v?.tokenUsage]),Hs=Bn(Ce,Et);n.useEffect(()=>{b&&Us&&ze()},[b,Us,ze]);const Qs=n.useRef(t?.id);n.useEffect(()=>{if(Qs.current!==t?.id&&_.current){const s=_.current;requestAnimationFrame(()=>{s.scrollTop=s.scrollHeight})}Qs.current=t?.id},[t?.id,_]);const z=Jn(),is=n.useRef(!1),$s=n.useCallback(async()=>{if(!h.trim()&&!we||!b||is.current||z.isPending||xe||Ue||Le)return;is.current=!0;const s=Gs().map(i=>i.id),r=h.trim()||(s.length?" ":"");P(""),Vs(),le.current&&(le.current.style.height="60px"),B.mutate({id:b,message:r,attachmentIds:s,providerId:Oe??void 0},{onSuccess:()=>{ze()},onSettled:()=>{is.current=!1}})},[h,b,B,ze,we,Ue,Gs,Vs,Oe,Le,z.isPending,xe]),Wt=n.useCallback(()=>{!b||z.isPending||z.mutate(b)},[b,z]),Pt=n.useCallback(s=>{const r=s.target.files;r&&r.length>0&&te(Array.from(r)),s.target.value=""},[te]),Dt=n.useCallback(s=>{const r=s.clipboardData.items,i=[];for(const m of r)if(m.kind==="file"){const S=m.getAsFile();S&&i.push(S)}i.length>0&&(s.preventDefault(),te(i))},[te]),[Xs,ls]=n.useState(!1),Mt=n.useCallback(s=>{s.preventDefault(),ls(!0)},[]),Ot=n.useCallback(s=>{s.preventDefault(),ls(!1)},[]),Lt=n.useCallback(s=>{s.preventDefault(),ls(!1);const r=s.dataTransfer.files;r.length>0&&te(Array.from(r))},[te]),O=n.useCallback(s=>{const r=Ns.current?.getBoundingClientRect().width??(typeof window<"u"?window.innerWidth:void 0),i=r?Math.max(re,r-xs-hr-br):re;return Math.max(re,Math.min(Math.round(s),i))},[]),cs=n.useCallback(s=>{const r=s.clientX-Cs.current;ce(O(ws.current-r))},[O]),ds=n.useCallback(()=>{ks(!1),document.body.style.cursor="",document.body.style.userSelect=""},[]);n.useEffect(()=>{if(Pe)return document.addEventListener("mousemove",cs),document.addEventListener("mouseup",ds),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",cs),document.removeEventListener("mouseup",ds),document.body.style.cursor="",document.body.style.userSelect=""}},[ds,cs,Pe]);const Bt=n.useCallback(s=>{s.preventDefault(),Cs.current=s.clientX,ws.current=Xe,ks(!0)},[Xe]);n.useEffect(()=>{!M||Pe||ce(s=>O(s))},[O,M,Pe]),n.useEffect(()=>{if(!M)return;const s=()=>{ce(r=>O(r))};return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[O,M]);const zt=n.useCallback(()=>{ce(s=>O(s)),ys(!0),requestAnimationFrame(()=>{Ae.current?.setTab("review")})},[O]),Ft=n.useCallback(s=>{P(s.target.value);const r=s.target;r.style.height="auto";const i=r.scrollHeight;r.style.height=`${Math.max(60,Math.min(i,300))}px`},[]),Ys=ge&&k?e.jsx(vn,{projectId:t?.projectId??"",workspaceId:k,branchName:he,targetBranch:be,commitMessage:Ps,changes:bt,gitStatus:E,isGitStatusLoading:ht,canRunGitOperations:pe,onOpenChanges:zt,onRefreshCommitMessage:Os,onConflict:ke,className:"mb-1.5"}):null;return t?e.jsxs("div",{className:"flex-1 flex flex-col h-full bg-background relative overflow-hidden",children:[e.jsxs("div",{className:"px-6 py-3 flex items-center justify-between border-b border-border/60 bg-background z-20 flex-shrink-0",children:[e.jsxs("div",{className:"flex flex-col min-w-0 flex-1 mr-4",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-0.5",children:[e.jsx("span",{className:`w-2 h-2 rounded-full shrink-0 ${t.projectColor.replace("text-","bg-")}`}),e.jsx("span",{className:"text-xs text-muted-foreground truncate",children:t.projectName}),t.projectArchivedAt&&e.jsx("span",{className:"rounded-full bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground shrink-0",children:t.projectRepoDeletedAt?o("源码已删除"):o("已删除")}),e.jsx("span",{className:"text-muted-foreground text-xs",children:"/"}),e.jsx("span",{className:"text-xs text-muted-foreground font-mono truncate",children:t.branch})]}),e.jsx(jn,{taskId:t.id,title:t.title,readOnly:u})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[nt(t,o)&&e.jsx("span",{className:"max-w-56 truncate text-xs text-muted-foreground",title:rt(t,o),children:nt(t,o)}),e.jsx(jr,{status:t.status,ownStatus:t.ownStatus,summary:rt(t,o),onChangeStatus:!u&&w?s=>w(t.id,s):void 0}),e.jsx(Zn,{value:t.priority,onChange:!u&&N?s=>N(t.id,s):void 0}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:wt,disabled:!I||u,className:"w-8 h-8 flex items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-30 disabled:cursor-not-allowed",title:o("Open in IDE"),children:e.jsx(dr,{size:16})}),(c||R||De)&&!u&&e.jsxs("div",{className:"relative",ref:$e,children:[e.jsx("button",{onClick:()=>H(s=>!s),className:"w-8 h-8 flex items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:o("More actions"),children:e.jsx(yn,{size:16})}),Ge&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-44 bg-background rounded-lg border border-border shadow-popover z-50 py-1",children:[R&&sn(t)&&e.jsxs("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground/80 hover:bg-muted/50",onClick:()=>{H(!1),R(t.id)},children:[e.jsx(fs,{size:15}),e.jsx("span",{children:o("Create subtask")})]}),De&&e.jsxs("button",{onClick:()=>{ae(!0),H(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground/80 hover:bg-muted/50 transition-colors",children:[e.jsx(fs,{size:15}),e.jsx("span",{children:o("创建 TeamRun")})]}),e.jsxs("button",{onClick:()=>{Ve(!0),H(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground/80 hover:bg-muted/50 transition-colors",children:[e.jsx(tn,{size:15}),e.jsx("span",{children:o("重新开始")})]}),c&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"my-1 border-t border-border/60"}),e.jsxs("button",{onClick:()=>{G(!0),H(!1)},className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-destructive-ink hover:bg-destructive/10 transition-colors",children:[e.jsx(ur,{size:15}),e.jsx("span",{children:o("删除任务")})]})]})]})]})]})]})]}),!me&&e.jsx(kn,{recovery:ve,onRecover:s=>{Q(s.sourceWorkspaceId),ke(s)}}),pe&&k&&E&&e.jsx(fr,{workspaceId:k,gitStatus:E,onResolve:()=>ke()}),e.jsxs("div",{ref:Ns,className:"flex-1 flex overflow-hidden",children:[e.jsx("div",{className:"flex min-w-0 flex-1 flex-col bg-background relative",children:me&&d?A?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative z-20 flex shrink-0 items-center justify-between gap-3 overflow-visible border-b border-border px-4 py-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-xs font-semibold text-foreground",children:o("Invocation details")}),e.jsx("div",{className:"truncate text-[11px] text-muted-foreground",children:A})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(Cn,{session:v,providers:ee,usage:Hs,providerIdFallback:xt?.providerId,agentTypeFallback:v?.agentType,tokenTooltipSide:"bottom"}),e.jsxs(oe,{type:"button",size:"sm",variant:"ghost",className:"h-7 gap-1 rounded-lg border border-border/70 bg-background/60 px-2 text-xs font-medium text-muted-foreground hover:border-muted-foreground/40 hover:bg-muted hover:text-foreground",onClick:It,children:[e.jsx(nn,{size:13}),e.jsx("span",{children:o("Team room")})]})]})]}),e.jsxs("div",{className:"relative flex-1 min-h-0",children:[e.jsx("div",{ref:_,className:"h-full overflow-y-auto scrollbar-app-thin px-6 pt-6 pb-4",children:e.jsxs("div",{ref:bs,className:"w-full max-w-4xl mx-auto",children:[!d&&t&&e.jsx(st,{taskId:t.id}),_s?e.jsxs("div",{className:"flex items-center justify-center py-12 gap-3 text-muted-foreground",children:[e.jsxs("svg",{className:"animate-spin motion-reduce:[animation-duration:2.4s] h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),e.jsx("span",{className:"text-sm",children:o("Loading logs...")})]}):Ce.length===0&&!b?e.jsx("div",{className:"text-muted-foreground text-center py-8",children:o(fe?"Waiting for agent output...":"No logs recorded for this session.")}):e.jsx(ot,{children:e.jsx(tt,{logs:Ce,sessionId:L,downloadSessionId:L,isOutputActive:Ks,lastExitAt:qs,onUserToggleDetails:js,workingDir:I,scrollElementRef:_,onOpenWorkspaceFile:Ye,onOpenPreviewUrl:Ts,onOpenVisualization:As})})]})}),!vs&&e.jsxs("button",{onClick:()=>We(),className:"absolute bottom-3 left-1/2 -translate-x-1/2 z-10 flex items-center gap-1.5 px-3 py-1.5 bg-background/90 backdrop-blur-sm border border-border rounded-full shadow-raised text-xs text-muted-foreground hover:bg-background hover:text-foreground transition-all","aria-label":o("Scroll to bottom"),children:[e.jsx(et,{size:14}),e.jsx("span",{children:o("回到底部")})]})]}),Fe.length>0&&e.jsx("div",{className:"px-6 pt-2 pb-1 bg-background flex-shrink-0 border-t border-border/60",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx(at,{todos:Fe})})})]}):e.jsx(wn,{teamRun:d,messages:mt??d.messages??[],readOnly:u,readOnlyMessage:ts,onSendMessage:St,onViewInvocationSession:Fs,changeSummaryBar:Ys,centered:!0,workingDir:I,onOpenWorkspaceFile:Ye,onOpenPreviewUrl:es,onOpenVisualization:ss}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex-1 min-h-0",children:[e.jsx("div",{ref:_,className:"h-full overflow-y-auto scrollbar-app-thin px-6 pt-6 pb-4",children:e.jsxs("div",{ref:bs,className:"w-full min-w-0 max-w-4xl mx-auto",children:[!d&&t&&e.jsx(st,{taskId:t.id}),(Rs||Y?.body)&&e.jsx("div",{className:"mb-4 pb-4 border-b border-border/60 min-w-0",children:Rs?e.jsx("p",{className:"text-sm text-muted-foreground italic",children:o("Loading...")}):Y?.body?e.jsx("div",{className:"text-sm text-muted-foreground leading-relaxed prose prose-sm max-w-none break-words overflow-hidden",children:e.jsx(Pn,{urlTransform:gr,components:Dn,children:Y.body})}):null}),!u&&e.jsx(Nn,{state:Is,setupProgress:de,sessionStarted:!!f?.startedAt,onRetry:J&&g?.status==="failed"?as:void 0},t.id),ut?(!Je||u)&&e.jsxs("div",{className:"flex items-center justify-center py-12 gap-3 text-muted-foreground",children:[e.jsxs("svg",{className:"animate-spin motion-reduce:[animation-duration:2.4s] h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),e.jsx("span",{className:"text-sm",children:o("Loading...")})]}):J?_s?e.jsxs("div",{className:"flex items-center justify-center py-12 gap-3 text-muted-foreground",children:[e.jsxs("svg",{className:"animate-spin motion-reduce:[animation-duration:2.4s] h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),e.jsx("span",{className:"text-sm",children:o("Loading logs...")})]}):Ce.length===0&&!b?e.jsx("div",{className:"text-muted-foreground text-center py-8",children:o(fe?"Waiting for agent output...":"No logs recorded for this session.")}):e.jsx(ot,{children:e.jsx(tt,{logs:Ce,sessionId:L,downloadSessionId:L,isOutputActive:Ks,lastExitAt:qs,onUserToggleDetails:js,workingDir:I,scrollElementRef:_,onOpenWorkspaceFile:Ye,onOpenPreviewUrl:Ts,onOpenVisualization:As})}):!Je||g?.status==="failed"||de?.status==="failed"||u?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(!Je||u)&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-14 h-14 bg-muted/50 rounded-xl border border-border/60 flex items-center justify-center mb-5",children:e.jsx(ps,{size:24,className:"text-muted-foreground/70 ml-0.5"})}),e.jsx("h3",{className:"text-base font-medium text-foreground mb-1.5",children:o(u?"项目为只读历史":"尚未启动 Agent")}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6 max-w-xs",children:u?ts:o("选择一个 Agent 来执行此任务,Agent 将自动创建工作空间并开始工作。")})]}),!u&&(!g||g.status==="failed")&&e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3",children:[e.jsxs(oe,{onClick:as,disabled:!!(g&&g.status!=="failed"),children:[e.jsx(ps,{size:16,className:"mr-1.5"}),g?.status==="failed"?o("重试启动 Agent"):o("启动 Agent")]}),De&&e.jsxs(oe,{variant:"outline",onClick:()=>ae(!0),children:[e.jsx(fs,{size:16,className:"mr-1.5"}),o("创建 TeamRun")]})]})]}):null]})}),!vs&&e.jsxs("button",{onClick:()=>We(),className:"absolute bottom-3 left-1/2 -translate-x-1/2 z-10 flex items-center gap-1.5 px-3 py-1.5 bg-background/90 backdrop-blur-sm border border-border rounded-full shadow-raised text-xs text-muted-foreground hover:bg-background hover:text-foreground transition-all","aria-label":o("Scroll to bottom"),children:[e.jsx(et,{size:14}),e.jsx("span",{children:o("回到底部")})]})]}),Fe.length>0&&e.jsx("div",{className:"px-6 pt-2 pb-1 bg-background flex-shrink-0 border-t border-border/60",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx(at,{todos:Fe})})}),u?e.jsx("div",{className:"p-6 pt-3 bg-background flex-shrink-0 w-full z-10 pb-6 border-t border-border/60",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx("div",{className:"bg-muted/50 rounded-xl border border-border px-4 py-3 text-sm text-muted-foreground",children:ts})})}):gt?e.jsx("div",{className:"p-6 pt-3 bg-background flex-shrink-0 w-full z-10 pb-6 border-t border-border/60",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"flex items-center justify-between bg-muted/50 rounded-xl border border-border px-4 py-3",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:o("代码已合并,以上为历史沟通记录")}),e.jsxs(oe,{size:"sm",onClick:as,children:[e.jsx(ps,{size:14,className:"mr-1.5"}),o("启动新 Agent")]})]})})}):e.jsxs("div",{className:"p-6 pt-2 bg-background flex-shrink-0 w-full z-10 pb-6 border-t border-transparent",onDragOver:Mt,onDragLeave:Ot,onDrop:Lt,children:[e.jsxs("div",{className:"max-w-4xl mx-auto",children:[Ys,b?e.jsx(zn,{sessionId:b}):null,e.jsxs("div",{ref:Qe,className:`relative bg-background rounded-xl border hover:border-ring/40 focus-within:border-ring/60 transition-colors duration-200 ${Xs?"border-foreground/40 bg-foreground/[0.02]":"border-border"}`,children:[e.jsx(Gn,{files:Tt,onRemove:At}),e.jsx("textarea",{ref:le,value:h,onChange:Ft,onPaste:Dt,onKeyDown:s=>{V.handleKeyDown(s)||q.handleKeyDown(s)||s.key==="Enter"&&!s.shiftKey&&!s.repeat&&!s.nativeEvent.isComposing&&s.nativeEvent.keyCode!==229&&(s.preventDefault(),$s())},rows:1,placeholder:o(Xs?"Drop files here...":J&&!fe?"Continue conversation...":"Message Agent..."),className:"w-full px-4 pt-4 pb-2 bg-transparent border-none focus:outline-none resize-none text-sm text-foreground placeholder-muted-foreground/70 leading-relaxed",style:{minHeight:"60px",maxHeight:"300px"}}),e.jsx("input",{ref:hs,type:"file",multiple:!0,className:"hidden",onChange:Pt}),e.jsxs("div",{className:"flex items-center justify-between px-2 pb-2 pt-1",children:[e.jsx("div",{className:"flex items-center gap-1",children:e.jsx("button",{onClick:()=>hs.current?.click(),className:"p-2 text-muted-foreground hover:text-muted-foreground hover:bg-muted rounded-lg transition-colors",title:o("Upload file"),children:e.jsx(mr,{size:18})})}),e.jsxs("div",{className:"flex items-center gap-2",children:[f&&ee&&e.jsx(Fn,{providers:ee,currentProviderId:Oe,agentType:f.agentType,runtimeType:f.runtimeType,onSelect:Ws}),e.jsx(Un,{usage:Hs}),fe&&!B.isPending&&!h.trim()&&!we?e.jsx("button",{onClick:Wt,disabled:z.isPending||xe,"aria-label":o("Stop"),title:o("Stop"),className:"p-2 rounded-lg transition-all duration-200 bg-destructive-ink text-white hover:bg-destructive-ink/90 disabled:opacity-50",children:e.jsx(rn,{size:14})}):e.jsx("button",{onClick:$s,"aria-label":o(B.isPending?"发送中...":"Send"),"aria-busy":B.isPending,disabled:!h.trim()&&!we||Ue||B.isPending||z.isPending||xe||!!Le,className:`p-2 rounded-lg transition-all duration-200 ${(h.trim()||we)&&!Ue&&!B.isPending&&!z.isPending&&!xe&&!Le?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-transparent text-muted-foreground cursor-not-allowed"}`,children:B.isPending?e.jsx(on,{size:18,className:"animate-spin"}):e.jsx(an,{size:18})})]})]})]})]}),e.jsx(it,{open:q.query!==null,anchorRef:Qe,commands:q.filteredCommands,selectedIndex:q.selectedIndex,query:q.query??"",hasCatalog:q.allCommands.length>0,onSelect:q.applyCommand}),e.jsx(it,{open:V.query!==null,anchorRef:Qe,commands:V.filteredSkills,selectedIndex:V.selectedIndex,query:V.query??"",hasCatalog:V.allSkills.length>0,title:"Skills",queryPrefix:"$",emptyCatalogMessage:"No skills catalog for this agent yet.",onSelect:V.applySkill})]})]})}),M&&e.jsx("div",{className:"w-1 cursor-col-resize hover:bg-border active:bg-ring/40 transition-colors z-50 -ml-[2px] flex-shrink-0 h-full",onMouseDown:Bt,role:"separator","aria-orientation":"vertical","aria-label":o("调整工作区宽度")}),e.jsx("div",{className:"flex h-full flex-shrink-0 bg-background",style:{width:M?xs+Xe:xs},children:e.jsx(In,{handoff:e.jsx(Tn,{taskId:t.id,readOnly:u},t.id),subtasks:e.jsx(Rn,{task:t,onSelectTask:x,onCreateSubtask:R},t.id),sessionId:J||void 0,workspaceId:K,workingDir:I,projectId:t.projectId,readOnly:u,repoDeleted:Es,teamRun:d,teamStatus:d?e.jsx(Sn,{teamRun:d,workspaces:a,selectedWorkspaceId:K,onSelectWorkspace:Q,onViewInvocationSession:Fs}):void 0,workspaces:a,selectedWorkspaceId:K,onSelectWorkspace:Q,variant:"rail",expanded:M,onExpandedChange:s=>{s&&ce(r=>O(r)),ys(s)},minContentWidth:re,tabRef:Ae,gitAvailable:X,gitProps:pe&&k?{branchName:he,targetBranch:be,commitMessage:Ps,canRunGitOperations:!0,onRefreshCommitMessage:Os,onConflict:ke,onResolveConflicts:()=>ke()}:void 0})})]}),!u&&e.jsx(An,{isOpen:Te,onClose:()=>D(!1),taskId:t.id,projectId:t.projectId,taskTitle:Y?.title??t.title,taskDescription:Y?.body??"",taskPrompt:Y?.prompt,projectIsGitRepo:t.isGitRepo,projectWorktreeReady:t.worktreeReady,projectGitReason:t.reason,onStarted:()=>T?.(t.id)}),De&&!u&&e.jsx(pr,{isOpen:Ke,onClose:()=>ae(!1),taskId:t.id}),Ds&&pe&&Ms&&j&&e.jsx(En,{open:Ds,onOpenChange:s=>{s||ve.closeDialog()},workspaceId:Ms,conflictOp:j.conflictOp,conflictedFiles:j.conflictedFiles,resolutionContextToken:j.resolutionContextToken,sourceBranch:yt,targetBranch:kt,operation:E?.operation,worktreePath:jt,mergeAborted:j.mergeAborted,mergeStrategy:j.mergeStrategy,sourceWorkspaceId:j.sourceWorkspaceId,targetWorkspaceId:j.targetWorkspaceId,sourceWorktreePath:j.sourceWorktreePath,targetWorktreePath:j.targetWorktreePath,sessions:vt,currentSessionId:me?void 0:J,teamRunId:d?.id}),e.jsx(cr,{isOpen:ct,onClose:()=>Ve(!1),onConfirm:Ct,title:o("重新开始任务"),description:e.jsx("p",{children:o("将归档当前工作区并自动在新 Worktree 中重新启动 Agent,旧工作区内容保留供参考。")}),confirmText:o("确认重试"),variant:"default",isLoading:dt}),e.jsx(On,{isOpen:qe,onClose:()=>G(!1),onConfirm:Nt,taskId:t.id,taskTitle:t.title,workspaces:a,isLoading:C})]}):e.jsx(vr,{})}export{yo as TaskDetail};
|