@qwen-code/qwen-code 0.19.5 → 0.19.6-nightly.20260704.5dc2e1501
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/bundled/dataviz/SKILL.md +50 -0
- package/bundled/dataviz/references/anti-patterns.md +12 -0
- package/bundled/dataviz/references/choosing-a-form.md +16 -0
- package/bundled/dataviz/references/palette.md +57 -0
- package/bundled/dataviz/scripts/validate_palette.js +328 -0
- package/bundled/loop/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +9 -8
- package/bundled/qc-helper/docs/features/headless.md +2 -2
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +4 -2
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +23 -0
- package/bundled/review/SKILL.md +65 -8
- package/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-44K34KSF.js} +14 -14
- package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-6WZYYTZE.js} +25 -25
- package/chunks/{acpAgent-4F36XM3X.js → acpAgent-2CMYPFHV.js} +346 -131
- package/chunks/{agent-IWBUZI6A.js → agent-UOEAYBCX.js} +11 -11
- package/chunks/{agent-headless-JUTICAYO.js → agent-headless-7SCVZZGJ.js} +11 -11
- package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-H5ZOEENQ.js} +2 -2
- package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-SLYPWG3C.js} +15 -2
- package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-OKPTECON.js} +1 -1
- package/chunks/{bridge-DHZHQ4UV.js → bridge-IGX2XPWV.js} +17 -16
- package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
- package/chunks/{chunk-EROWZQN7.js → chunk-2HK52TS2.js} +6 -6
- package/chunks/chunk-3RW4AZJV.js +5063 -0
- package/chunks/chunk-3VJ7MT3N.js +111 -0
- package/chunks/{chunk-JJ6B3ZD3.js → chunk-3ZSJDRNO.js} +2 -2
- package/chunks/{chunk-SJVPSHXU.js → chunk-4OIKNWUQ.js} +4 -4
- package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
- package/chunks/{chunk-MDBNFHIO.js → chunk-4YMVQKCZ.js} +3 -3
- package/chunks/{chunk-2YH27UNF.js → chunk-4YXBDLX7.js} +1 -1
- package/chunks/{chunk-6QVQZAW6.js → chunk-537ZUZEH.js} +1 -1
- package/chunks/{chunk-L7OJ3ZO3.js → chunk-5ES5YPED.js} +1 -1
- package/chunks/{chunk-UJT42DB6.js → chunk-5QC7Y5TJ.js} +5 -5
- package/chunks/{chunk-BC4R5C5R.js → chunk-5WYLPENX.js} +32 -6
- package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
- package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
- package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
- package/chunks/{chunk-CBJE2PLG.js → chunk-777PHAJF.js} +2 -2
- package/chunks/{chunk-NSSVORTQ.js → chunk-7UU2AGR4.js} +16 -12
- package/chunks/{chunk-RNGAT2Y2.js → chunk-AGLMKJH5.js} +1 -1
- package/chunks/{chunk-J3ERRYYI.js → chunk-AWSTZHHZ.js} +2 -2
- package/chunks/{chunk-6QTCOQX7.js → chunk-B5ZACOMA.js} +1967 -1399
- package/chunks/{chunk-R6RI2HIC.js → chunk-CLQPBI4H.js} +40 -13
- package/chunks/{chunk-SJBIFVD2.js → chunk-DMSNJDWG.js} +5 -1
- package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
- package/chunks/{chunk-Z7XNVNPM.js → chunk-EMSRFDBD.js} +1 -1
- package/chunks/{chunk-HISPEX42.js → chunk-G645A66S.js} +7 -7
- package/chunks/{chunk-WALEWZ44.js → chunk-H3GBYW5M.js} +1 -1
- package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
- package/chunks/{chunk-XKZXGIRM.js → chunk-HNGXPBWR.js} +2 -2
- package/chunks/{chunk-QHYITL6P.js → chunk-HXX7S2AE.js} +5 -11
- package/chunks/{chunk-XKSCTXPK.js → chunk-J6ABRKAB.js} +2 -1
- package/chunks/{chunk-DX3TKXNT.js → chunk-JA5KWZTJ.js} +1 -1
- package/chunks/{chunk-4MCC4XHH.js → chunk-KBKWNEPS.js} +38 -37
- package/chunks/{chunk-MNOXKSM2.js → chunk-KEKV2TOO.js} +1 -1
- package/chunks/{chunk-R3UWLLRQ.js → chunk-KP6O77UN.js} +1 -1
- package/chunks/{chunk-YTFBURQD.js → chunk-KYTQOCDE.js} +1 -1
- package/chunks/{chunk-TN6RT6EJ.js → chunk-LJUWNRJH.js} +16 -4
- package/chunks/{chunk-BPFJQGY7.js → chunk-LM3YCCZJ.js} +164 -5
- package/chunks/{chunk-G4M7FPNY.js → chunk-M6IUEDXM.js} +1 -1
- package/chunks/{chunk-MTNTVOJR.js → chunk-MJKMIQMK.js} +5 -2
- package/chunks/{chunk-2CAII5HD.js → chunk-MWGIMAYM.js} +1 -1
- package/chunks/{chunk-NDY7OENU.js → chunk-N3QDCSLP.js} +2 -2
- package/chunks/{chunk-IMAMNLY6.js → chunk-N6AGVKMC.js} +3 -3
- package/chunks/{chunk-WZ724G6K.js → chunk-NGCPNXJC.js} +5 -5
- package/chunks/{chunk-YXK4GPYO.js → chunk-NVFJSIAX.js} +29 -0
- package/chunks/{chunk-6KPZJJ6U.js → chunk-P2OIJOKP.js} +9 -9
- package/chunks/{chunk-RSBQS6M4.js → chunk-P2RRV2UB.js} +1 -1
- package/chunks/{chunk-NNEJEBCF.js → chunk-PGMCFUZS.js} +30 -21
- package/chunks/{chunk-CSPSJU5R.js → chunk-PNGENHT7.js} +16 -16
- package/chunks/{chunk-Y4UQT3PM.js → chunk-QQXG2BL6.js} +1 -1
- package/chunks/{chunk-M5ITDKSM.js → chunk-RUM2UEL3.js} +1 -1
- package/chunks/{chunk-DG573EOO.js → chunk-RZORUN6X.js} +1 -1
- package/chunks/{chunk-LHMZCIKL.js → chunk-SZFYG244.js} +3 -1
- package/chunks/{chunk-CHY5C5T4.js → chunk-TDMIHT6B.js} +171 -79
- package/chunks/{chunk-DRS2HTNT.js → chunk-TE6JTKY5.js} +5 -5
- package/chunks/chunk-U7UXWKGG.js +949 -0
- package/chunks/{chunk-JKGCBO3O.js → chunk-UPYORLKQ.js} +3 -3
- package/chunks/{chunk-UY2TCIZS.js → chunk-V5VTULL5.js} +2 -2
- package/chunks/{chunk-ZISMVA6U.js → chunk-WGCLCXAN.js} +1371 -24
- package/chunks/chunk-WSOGYJMT.js +5630 -0
- package/chunks/{chunk-SBMHB6N5.js → chunk-WWGZJJRG.js} +12 -12
- package/chunks/{chunk-DM4E337C.js → chunk-X3UQVEBR.js} +4 -4
- package/chunks/{chunk-K4I4STSL.js → chunk-XPOO5OMB.js} +2 -2
- package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
- package/chunks/{chunk-OQHLUA2Y.js → chunk-ZLJKZ57K.js} +3 -3
- package/chunks/{chunk-YCU7QV7Q.js → chunk-ZZDAIAA6.js} +32 -0
- package/chunks/{computer-use-ON3JQUHW.js → computer-use-TQWGUBPQ.js} +11 -11
- package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-XDK5RNWI.js} +13 -13
- package/chunks/{cron-create-6YTCOX6P.js → cron-create-7JYUDTUY.js} +20 -5
- package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-YPULQQAK.js} +2 -2
- package/chunks/{cron-list-Q64MNQNE.js → cron-list-HJIW5MHP.js} +2 -2
- package/chunks/{daemon-EEB2RYOL.js → daemon-7XYW4BC3.js} +102 -0
- package/chunks/{daemon-status-provider-P72STMLB.js → daemon-status-provider-6UEN56WN.js} +20 -19
- package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
- package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
- package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
- package/chunks/{dist-Z57Q4YF5.js → dist-BV56HW3W.js} +276 -95
- package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
- package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-7MNFMUJE.js} +11 -11
- package/chunks/{edit-3QFNCSZH.js → edit-HOC63PHG.js} +12 -12
- package/chunks/{en-M4EBUBNU.js → en-XR3S5VWY.js} +1 -0
- package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-THXLMUX2.js} +11 -11
- package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-TW4WQVEI.js} +11 -11
- package/chunks/{errors-PW75PZXE.js → errors-NTNVSC6G.js} +13 -13
- package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-CLL7RGAT.js} +11 -11
- package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-BTZZ3QEL.js} +11 -11
- package/chunks/{fast-path-TFRJRTTR.js → fast-path-RYXBU6AS.js} +3 -3
- package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
- package/chunks/{gemini-XW7ZDUVR.js → gemini-36FE3OHS.js} +69 -64
- package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-JEG2PANG.js} +1 -1
- package/chunks/{glob-WAY2PUWA.js → glob-EYVHOFCY.js} +11 -11
- package/chunks/{grep-W6CBKSYC.js → grep-TZY5TDGH.js} +11 -11
- package/chunks/{initializer-HK2XE6P2.js → initializer-HPF2RBSB.js} +16 -16
- package/chunks/{list-RVLIIKKL.js → list-THUTQ7B5.js} +18 -18
- package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-CUMWJNWJ.js} +16 -16
- package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-34YK7T7O.js} +3 -3
- package/chunks/{ls-IDHUVSAG.js → ls-MPD5OJUX.js} +1 -1
- package/chunks/{lsp-FSRYXGFT.js → lsp-72PWTDW7.js} +1 -1
- package/chunks/{workspace-skills-status-ONEPXJV6.js → mcp-NQD5MT2T.js} +20 -16
- package/chunks/{monitor-FOG36ABM.js → monitor-PB7NVSG2.js} +11 -11
- package/chunks/{nonInteractiveCli-6BYQSJTB.js → nonInteractiveCli-F5FJXYQR.js} +46 -44
- package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-LAK6OHS6.js} +12 -12
- package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-GMMEY5PG.js} +6 -6
- package/chunks/{pidfile-FNZM2DDH.js → pidfile-NQ2YUNKI.js} +11 -11
- package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-7XCBMQBM.js} +13 -13
- package/chunks/{read-file-6JL4ULMY.js → read-file-KUROJDUQ.js} +3 -3
- package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-OWOBJY72.js} +1 -1
- package/chunks/record-artifact-URK3YUDJ.js +343 -0
- package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-USDWBX4L.js} +11 -11
- package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-WKCKS23N.js} +72 -28
- package/chunks/{scheduler-L7F6GDDT.js → scheduler-QR4F5TAH.js} +11 -11
- package/chunks/{send-message-33PYFMCT.js → send-message-L7OLQEKH.js} +2 -2
- package/chunks/{serve-SRCBOJGP.js → serve-2EIPX62G.js} +18 -18
- package/chunks/{server-QSQ45QFR.js → server-UJ7ZF5D7.js} +1184 -490
- package/chunks/{session-5DG6NXHZ.js → session-XB3CFJ6R.js} +48 -46
- package/chunks/{settings-3EEQI4MN.js → settings-DYVJFW5H.js} +15 -15
- package/chunks/{shell-B7FNYF5S.js → shell-IG7KGPLR.js} +11 -11
- package/chunks/{skill-AAOGHD5O.js → skill-RWX646DC.js} +4 -4
- package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-GWIJHDZ5.js} +15 -15
- package/chunks/{src-T5A7P7FS.js → src-IYODJOVK.js} +47 -21
- package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-PLEZAI44.js} +354 -152
- package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-J3MLCQAR.js} +2 -2
- package/chunks/{task-create-NHS2NGB3.js → task-create-ELEBZ7H2.js} +3 -3
- package/chunks/{task-list-5UIB564R.js → task-list-IEUZLF3Y.js} +1 -1
- package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-QEZW3UDY.js} +1 -1
- package/chunks/{task-update-IYYWUILG.js → task-update-DW36J5P5.js} +3 -3
- package/chunks/{team-create-KDF6W6PV.js → team-create-RXRE7FCH.js} +11 -11
- package/chunks/{team-delete-FEKJCU4P.js → team-delete-SVITIMBO.js} +1 -1
- package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-OJDMQXOK.js} +11 -11
- package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-QBK6PZOQ.js} +11 -11
- package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-SFFQHZYY.js} +2 -2
- package/chunks/{tool-search-LFRILZXC.js → tool-search-EZQYPVFF.js} +4 -4
- package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-GZDMSATB.js} +12 -12
- package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-AHXCFAV6.js} +43 -41
- package/chunks/version-KQ5CA4C5.js +10 -0
- package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-SXAXJHIO.js} +2 -2
- package/chunks/{workflow-KUTESS6L.js → workflow-KUBRBYWH.js} +20 -13
- package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-LRMZ4KYI.js} +18 -18
- package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-5UYFHP42.js} +23 -23
- package/chunks/workspace-skills-status-TKLU5O2X.js +68 -0
- package/chunks/{write-file-FJYBZUHP.js → write-file-37LNLFQC.js} +12 -12
- package/chunks/yargs-B64EYTCF.js +10 -0
- package/chunks/{zh-SLZNSSZB.js → zh-FSVJTXA4.js} +1 -0
- package/chunks/{zh-TW-P53C2SL5.js → zh-TW-66MG4LWL.js} +1 -0
- package/cli-entry.js +81 -8
- package/cli.js +348 -55
- package/locales/en.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -0
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-D_rAuMDd.js → arc-CUpe0ibu.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-JvyrY_mK.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-CK3Y_vom.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-DprSnyrf.js} +1 -1
- package/web-shell/assets/channel-BAxQ2-aZ.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-DJtRJPmu.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-ON6Q2-BG.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-c60ou5HZ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-BamtPKxx.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-CsVgpu-T.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-vZrpjAx4.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-qxyNOd5t.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-BvTJSM_S.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-1tXB4pju.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-DglBzme8.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-DEJpqsWz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-CsQ1NrMG.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-Z-3codAi.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-mBuPTA2i.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-tcA3K3s9.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-D9bXFRyZ.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-Ck0Py04s.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-rOevCekE.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-CoPQaLj0.js} +1 -1
- package/web-shell/assets/index-Cr7MYW6T.css +5 -0
- package/web-shell/assets/index-DCHPAUp3.js +730 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-a77CUKoI.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-DlLgUAO-.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-BXR5kVAZ.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-h5CoHZg7.js} +1 -1
- package/web-shell/assets/{linear-BjoycSSY.js → linear-BkaREbyD.js} +1 -1
- package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-Bkagz0ng.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-D7EMKR_5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DAmPOjsL.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-e4WFQkQu.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-v1zo7OiV.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Bstm4aW_.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-DzcZy6xN.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-BEJH6YbH.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-TI1wH-Pm.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-YaH8VDMS.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-B80co7OP.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-4fHNDEMl.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DT3q4Z3J.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/loop/SKILL.test.ts +0 -119
- package/bundled/loop/autonomous-loop.test.ts +0 -59
- package/bundled/loop/loop-task-file.test.ts +0 -1064
- package/bundled/loop/loop-tick-resolver.test.ts +0 -906
- package/chunks/chunk-EJ7BN3EN.js +0 -11396
- package/web-shell/assets/channel-B5ynH0q8.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
- package/web-shell/assets/index-9qfvU0_r.css +0 -5
- package/web-shell/assets/index-CWzDaQT5.js +0 -717
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
- package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
|
@@ -1,8 +1,61 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import "./chunk-4YMVQKCZ.js";
|
|
4
|
+
import {
|
|
5
|
+
DualOutputContext,
|
|
6
|
+
useDualOutput,
|
|
7
|
+
useGeminiStream
|
|
8
|
+
} from "./chunk-P2OIJOKP.js";
|
|
9
|
+
import {
|
|
10
|
+
MAX_SUGGESTIONS_TO_SHOW,
|
|
11
|
+
MAX_WIDTH,
|
|
12
|
+
SuggestionsDisplay,
|
|
13
|
+
buildMcpResourceRef,
|
|
14
|
+
getExtensionSuggestions,
|
|
15
|
+
matchMcpServerPrefix
|
|
16
|
+
} from "./chunk-4OIKNWUQ.js";
|
|
3
17
|
import {
|
|
4
18
|
StreamJsonOutputAdapter
|
|
5
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-AWSTZHHZ.js";
|
|
20
|
+
import {
|
|
21
|
+
BuiltinCommandLoader,
|
|
22
|
+
BundledSkillLoader,
|
|
23
|
+
CommandService,
|
|
24
|
+
DISPLAY_HOOK_EVENTS,
|
|
25
|
+
FileCommandLoader,
|
|
26
|
+
McpPromptLoader,
|
|
27
|
+
SavedWorkflowLoader,
|
|
28
|
+
SkillCommandLoader,
|
|
29
|
+
addConfigToMatcherGroup,
|
|
30
|
+
appendUserPromptExpansionAdditionalContext,
|
|
31
|
+
createEmptyHookEventInfo,
|
|
32
|
+
findMidInputSlashCommand,
|
|
33
|
+
findSlashCommandTokens,
|
|
34
|
+
formatApprovalModeDescription,
|
|
35
|
+
formatApprovalModeName,
|
|
36
|
+
formatUserPromptExpansionBlockedMessage,
|
|
37
|
+
getAllConfigs,
|
|
38
|
+
getBestSlashCommandMatch,
|
|
39
|
+
getInstallationInfo,
|
|
40
|
+
getTranslatedSourceDisplayMap,
|
|
41
|
+
hasBlockingBackgroundWork,
|
|
42
|
+
hasSlashCommandPathSeparator,
|
|
43
|
+
isBtwCommand,
|
|
44
|
+
isMidInputCompletableCommand,
|
|
45
|
+
isSlashCommand,
|
|
46
|
+
parseSlashCommand,
|
|
47
|
+
performStandaloneUpdate,
|
|
48
|
+
resetBackgroundStateForSessionSwitch,
|
|
49
|
+
restoreGoalFromHistory,
|
|
50
|
+
serializeUserPromptExpansionPrompt,
|
|
51
|
+
supportsMatchers,
|
|
52
|
+
useAutoAcceptIndicator
|
|
53
|
+
} from "./chunk-KBKWNEPS.js";
|
|
54
|
+
import {
|
|
55
|
+
appEvents,
|
|
56
|
+
loadHierarchicalGeminiMemory
|
|
57
|
+
} from "./chunk-WSOGYJMT.js";
|
|
58
|
+
import "./chunk-NGCPNXJC.js";
|
|
6
59
|
import {
|
|
7
60
|
AboutBox,
|
|
8
61
|
BaseSelectionList,
|
|
@@ -70,72 +123,16 @@ import {
|
|
|
70
123
|
useTextBuffer,
|
|
71
124
|
useUIActions,
|
|
72
125
|
useUIState
|
|
73
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-PGMCFUZS.js";
|
|
74
127
|
import {
|
|
75
128
|
relaunchApp
|
|
76
|
-
} from "./chunk-
|
|
77
|
-
import {
|
|
78
|
-
stopAndGetCapturedInput
|
|
79
|
-
} from "./chunk-LWGLBVWA.js";
|
|
80
|
-
import "./chunk-MDBNFHIO.js";
|
|
81
|
-
import {
|
|
82
|
-
DualOutputContext,
|
|
83
|
-
useDualOutput,
|
|
84
|
-
useGeminiStream
|
|
85
|
-
} from "./chunk-6KPZJJ6U.js";
|
|
86
|
-
import {
|
|
87
|
-
MAX_SUGGESTIONS_TO_SHOW,
|
|
88
|
-
MAX_WIDTH,
|
|
89
|
-
SuggestionsDisplay,
|
|
90
|
-
buildMcpResourceRef,
|
|
91
|
-
getExtensionSuggestions,
|
|
92
|
-
matchMcpServerPrefix
|
|
93
|
-
} from "./chunk-SJVPSHXU.js";
|
|
94
|
-
import {
|
|
95
|
-
BuiltinCommandLoader,
|
|
96
|
-
BundledSkillLoader,
|
|
97
|
-
CommandService,
|
|
98
|
-
DISPLAY_HOOK_EVENTS,
|
|
99
|
-
FileCommandLoader,
|
|
100
|
-
McpPromptLoader,
|
|
101
|
-
SavedWorkflowLoader,
|
|
102
|
-
SkillCommandLoader,
|
|
103
|
-
addConfigToMatcherGroup,
|
|
104
|
-
appendUserPromptExpansionAdditionalContext,
|
|
105
|
-
createEmptyHookEventInfo,
|
|
106
|
-
findMidInputSlashCommand,
|
|
107
|
-
findSlashCommandTokens,
|
|
108
|
-
formatApprovalModeDescription,
|
|
109
|
-
formatApprovalModeName,
|
|
110
|
-
formatUserPromptExpansionBlockedMessage,
|
|
111
|
-
getAllConfigs,
|
|
112
|
-
getBestSlashCommandMatch,
|
|
113
|
-
getInstallationInfo,
|
|
114
|
-
getTranslatedSourceDisplayMap,
|
|
115
|
-
hasBlockingBackgroundWork,
|
|
116
|
-
hasSlashCommandPathSeparator,
|
|
117
|
-
isBtwCommand,
|
|
118
|
-
isMidInputCompletableCommand,
|
|
119
|
-
isSlashCommand,
|
|
120
|
-
parseSlashCommand,
|
|
121
|
-
performStandaloneUpdate,
|
|
122
|
-
resetBackgroundStateForSessionSwitch,
|
|
123
|
-
restoreGoalFromHistory,
|
|
124
|
-
serializeUserPromptExpansionPrompt,
|
|
125
|
-
supportsMatchers,
|
|
126
|
-
useAutoAcceptIndicator
|
|
127
|
-
} from "./chunk-4MCC4XHH.js";
|
|
128
|
-
import {
|
|
129
|
-
appEvents,
|
|
130
|
-
loadHierarchicalGeminiMemory,
|
|
131
|
-
loadMcpApprovals
|
|
132
|
-
} from "./chunk-EJ7BN3EN.js";
|
|
129
|
+
} from "./chunk-H3GBYW5M.js";
|
|
133
130
|
import {
|
|
134
131
|
SessionStatsProvider,
|
|
135
132
|
getCommandDisplayName,
|
|
136
133
|
getCommandSourceBadge,
|
|
137
134
|
useSessionStats
|
|
138
|
-
} from "./chunk-
|
|
135
|
+
} from "./chunk-N6AGVKMC.js";
|
|
139
136
|
import {
|
|
140
137
|
Colors,
|
|
141
138
|
SettingsContext,
|
|
@@ -144,7 +141,7 @@ import {
|
|
|
144
141
|
useMouseEvents,
|
|
145
142
|
useSettings,
|
|
146
143
|
useTerminalSize
|
|
147
|
-
} from "./chunk-
|
|
144
|
+
} from "./chunk-N3QDCSLP.js";
|
|
148
145
|
import {
|
|
149
146
|
BEL,
|
|
150
147
|
KeypressProvider,
|
|
@@ -167,21 +164,14 @@ import {
|
|
|
167
164
|
useKeypressContext,
|
|
168
165
|
wrapForMultiplexer,
|
|
169
166
|
writeOsc52
|
|
170
|
-
} from "./chunk-
|
|
171
|
-
import {
|
|
172
|
-
disableKittyProtocol,
|
|
173
|
-
isKittyProtocolEnabled,
|
|
174
|
-
isKittyProtocolSupported
|
|
175
|
-
} from "./chunk-JZSY4WP3.js";
|
|
176
|
-
import "./chunk-WZ724G6K.js";
|
|
167
|
+
} from "./chunk-5QC7Y5TJ.js";
|
|
177
168
|
import "./chunk-KSPVDFE4.js";
|
|
178
169
|
import "./chunk-MRO43B25.js";
|
|
179
|
-
import "./chunk-5B2WNM6V.js";
|
|
180
170
|
import {
|
|
181
171
|
MaxSizedBox,
|
|
182
172
|
OverflowProvider,
|
|
183
173
|
useOverflowState
|
|
184
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-777PHAJF.js";
|
|
185
175
|
import {
|
|
186
176
|
theme
|
|
187
177
|
} from "./chunk-VXGPYF7U.js";
|
|
@@ -199,7 +189,7 @@ import {
|
|
|
199
189
|
use_is_screen_reader_enabled_default,
|
|
200
190
|
use_stdin_default,
|
|
201
191
|
use_stdout_default
|
|
202
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-HNGXPBWR.js";
|
|
203
193
|
import {
|
|
204
194
|
require_react
|
|
205
195
|
} from "./chunk-KYMBIKIW.js";
|
|
@@ -208,11 +198,28 @@ import {
|
|
|
208
198
|
DEFAULT_THEME,
|
|
209
199
|
themeManager
|
|
210
200
|
} from "./chunk-HTWHAN44.js";
|
|
201
|
+
import {
|
|
202
|
+
stopAndGetCapturedInput
|
|
203
|
+
} from "./chunk-LWGLBVWA.js";
|
|
204
|
+
import {
|
|
205
|
+
disableKittyProtocol,
|
|
206
|
+
isKittyProtocolEnabled,
|
|
207
|
+
isKittyProtocolSupported
|
|
208
|
+
} from "./chunk-JZSY4WP3.js";
|
|
209
|
+
import {
|
|
210
|
+
requestConsentInteractive,
|
|
211
|
+
requestConsentOrFail
|
|
212
|
+
} from "./chunk-TE6JTKY5.js";
|
|
213
|
+
import "./chunk-3GONHQOA.js";
|
|
214
|
+
import {
|
|
215
|
+
getErrorMessage as getErrorMessage2
|
|
216
|
+
} from "./chunk-3ZSJDRNO.js";
|
|
217
|
+
import "./chunk-ZI4MGBB5.js";
|
|
211
218
|
import {
|
|
212
219
|
openQwenAsrRealtimeStream,
|
|
213
220
|
openVoiceStream,
|
|
214
221
|
openVoiceStreamWithRetry
|
|
215
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-M6IUEDXM.js";
|
|
216
223
|
import "./chunk-L7QPM2YD.js";
|
|
217
224
|
import "./chunk-54YZOP7P.js";
|
|
218
225
|
import {
|
|
@@ -227,50 +234,42 @@ import {
|
|
|
227
234
|
stripUnsafeCharacters,
|
|
228
235
|
toCodePoints,
|
|
229
236
|
wrapToVisualLines
|
|
230
|
-
} from "./chunk-
|
|
237
|
+
} from "./chunk-MWGIMAYM.js";
|
|
238
|
+
import {
|
|
239
|
+
getExtendedSystemInfo
|
|
240
|
+
} from "./chunk-UPYORLKQ.js";
|
|
241
|
+
import {
|
|
242
|
+
formatDuration,
|
|
243
|
+
formatRelativeTime,
|
|
244
|
+
formatTokenCount
|
|
245
|
+
} from "./chunk-KHDZHZMH.js";
|
|
246
|
+
import "./chunk-XPOO5OMB.js";
|
|
231
247
|
import {
|
|
232
248
|
assertVoiceBaseUrlNetworkAllowed,
|
|
233
249
|
isKeytermEcho,
|
|
234
250
|
isStreamingVoiceModel,
|
|
235
251
|
resolveVoiceStreamConfig,
|
|
236
252
|
transcribeVoiceAudio
|
|
237
|
-
} from "./chunk-
|
|
253
|
+
} from "./chunk-KEKV2TOO.js";
|
|
238
254
|
import {
|
|
239
255
|
formatUnsupportedVoiceModelMessage,
|
|
240
256
|
isSelectableVoiceModel
|
|
241
|
-
} from "./chunk-
|
|
257
|
+
} from "./chunk-QQXG2BL6.js";
|
|
242
258
|
import "./chunk-NIOPRZNN.js";
|
|
243
259
|
import "./chunk-AHNXYU4O.js";
|
|
244
260
|
import "./chunk-RNBYOUGV.js";
|
|
245
|
-
import "./chunk-
|
|
261
|
+
import "./chunk-G645A66S.js";
|
|
246
262
|
import "./chunk-BJBWRCSK.js";
|
|
247
263
|
import {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
import "./chunk-
|
|
252
|
-
import
|
|
253
|
-
getErrorMessage as getErrorMessage2
|
|
254
|
-
} from "./chunk-JJ6B3ZD3.js";
|
|
264
|
+
loadMcpApprovals
|
|
265
|
+
} from "./chunk-U7UXWKGG.js";
|
|
266
|
+
import "./chunk-6BEOH4KK.js";
|
|
267
|
+
import "./chunk-S6RLAIUR.js";
|
|
268
|
+
import "./chunk-MX2YXRER.js";
|
|
255
269
|
import "./chunk-YHTNWGRR.js";
|
|
256
270
|
import {
|
|
257
271
|
createLoadedSettingsAdapter
|
|
258
|
-
} from "./chunk-
|
|
259
|
-
import {
|
|
260
|
-
getExtendedSystemInfo
|
|
261
|
-
} from "./chunk-JKGCBO3O.js";
|
|
262
|
-
import {
|
|
263
|
-
formatDuration,
|
|
264
|
-
formatRelativeTime,
|
|
265
|
-
formatTokenCount
|
|
266
|
-
} from "./chunk-KHDZHZMH.js";
|
|
267
|
-
import {
|
|
268
|
-
getCliVersion,
|
|
269
|
-
getPackageJson
|
|
270
|
-
} from "./chunk-RSBQS6M4.js";
|
|
271
|
-
import "./chunk-SEZC2725.js";
|
|
272
|
-
import "./chunk-ALX6BUYW.js";
|
|
273
|
-
import "./chunk-K4I4STSL.js";
|
|
272
|
+
} from "./chunk-KP6O77UN.js";
|
|
274
273
|
import {
|
|
275
274
|
CORRUPTED_SUFFIX,
|
|
276
275
|
SettingScope,
|
|
@@ -292,14 +291,19 @@ import {
|
|
|
292
291
|
settingExistsInScope,
|
|
293
292
|
validateSettingValue,
|
|
294
293
|
writeOutputLanguageAndRegisterPath
|
|
295
|
-
} from "./chunk-
|
|
294
|
+
} from "./chunk-5WYLPENX.js";
|
|
296
295
|
import {
|
|
297
296
|
getCurrentLanguage,
|
|
298
297
|
localizeToolDisplayName,
|
|
299
298
|
t,
|
|
300
299
|
ta
|
|
301
|
-
} from "./chunk-
|
|
300
|
+
} from "./chunk-X3UQVEBR.js";
|
|
302
301
|
import "./chunk-TLRYABYP.js";
|
|
302
|
+
import "./chunk-4RQIB5UZ.js";
|
|
303
|
+
import "./chunk-SEZC2725.js";
|
|
304
|
+
import "./chunk-ALX6BUYW.js";
|
|
305
|
+
import "./chunk-VRDMOSQS.js";
|
|
306
|
+
import "./chunk-3RW4AZJV.js";
|
|
303
307
|
import {
|
|
304
308
|
require_clean,
|
|
305
309
|
require_constants,
|
|
@@ -311,15 +315,14 @@ import {
|
|
|
311
315
|
require_semver,
|
|
312
316
|
require_valid
|
|
313
317
|
} from "./chunk-CJCKDMWO.js";
|
|
314
|
-
import
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
import "./chunk-PPFWEV7G.js";
|
|
318
|
+
import {
|
|
319
|
+
getCliVersion,
|
|
320
|
+
getPackageJson
|
|
321
|
+
} from "./chunk-P2RRV2UB.js";
|
|
319
322
|
import {
|
|
320
323
|
isWorkspaceTrusted,
|
|
321
324
|
loadTrustedFolders
|
|
322
|
-
} from "./chunk-
|
|
325
|
+
} from "./chunk-EMSRFDBD.js";
|
|
323
326
|
import {
|
|
324
327
|
clearScreen,
|
|
325
328
|
writeStderrLine
|
|
@@ -419,10 +422,11 @@ import {
|
|
|
419
422
|
validateWorkflowName,
|
|
420
423
|
watchRepoBranch,
|
|
421
424
|
writeRuntimeStatus
|
|
422
|
-
} from "./chunk-
|
|
425
|
+
} from "./chunk-B5ZACOMA.js";
|
|
423
426
|
import "./chunk-5P5XGNYH.js";
|
|
424
|
-
import "./chunk-K5PGHDBN.js";
|
|
425
427
|
import "./chunk-SKAZWEV5.js";
|
|
428
|
+
import "./chunk-K5PGHDBN.js";
|
|
429
|
+
import "./chunk-CLQPBI4H.js";
|
|
426
430
|
import "./chunk-QOMAHFYI.js";
|
|
427
431
|
import "./chunk-G7OQ3RFJ.js";
|
|
428
432
|
import {
|
|
@@ -430,22 +434,21 @@ import {
|
|
|
430
434
|
} from "./chunk-LKWAVAB5.js";
|
|
431
435
|
import {
|
|
432
436
|
runSideQuery
|
|
433
|
-
} from "./chunk-
|
|
434
|
-
import "./chunk-R6RI2HIC.js";
|
|
437
|
+
} from "./chunk-5ES5YPED.js";
|
|
435
438
|
import "./chunk-2MPVVENX.js";
|
|
436
439
|
import "./chunk-ZTQ26VBE.js";
|
|
437
|
-
import "./chunk-
|
|
440
|
+
import "./chunk-DMSNJDWG.js";
|
|
438
441
|
import "./chunk-MLZQVCF3.js";
|
|
439
442
|
import "./chunk-LQ7TMOCE.js";
|
|
440
443
|
import "./chunk-E5A7LHNN.js";
|
|
441
444
|
import {
|
|
442
445
|
APPROVAL_MODES
|
|
443
|
-
} from "./chunk-
|
|
446
|
+
} from "./chunk-LM3YCCZJ.js";
|
|
444
447
|
import "./chunk-GO6LNQXT.js";
|
|
445
448
|
import "./chunk-B236XPGF.js";
|
|
446
449
|
import {
|
|
447
450
|
HOOKS_CONFIG_FIELDS
|
|
448
|
-
} from "./chunk-
|
|
451
|
+
} from "./chunk-NVFJSIAX.js";
|
|
449
452
|
import {
|
|
450
453
|
isPathWithinRoot
|
|
451
454
|
} from "./chunk-TOAUDIS7.js";
|
|
@@ -473,7 +476,7 @@ import {
|
|
|
473
476
|
recordSkillInvocation,
|
|
474
477
|
removeMCPServerStatus,
|
|
475
478
|
removeMCPStatusChangeListener
|
|
476
|
-
} from "./chunk-
|
|
479
|
+
} from "./chunk-TDMIHT6B.js";
|
|
477
480
|
import "./chunk-E6US47KI.js";
|
|
478
481
|
import "./chunk-UWCTAVOD.js";
|
|
479
482
|
import {
|
|
@@ -485,11 +488,11 @@ import {
|
|
|
485
488
|
getAutoMemoryRoot
|
|
486
489
|
} from "./chunk-MOUXUCXQ.js";
|
|
487
490
|
import "./chunk-BZHLWC6T.js";
|
|
488
|
-
import "./chunk-
|
|
491
|
+
import "./chunk-RZORUN6X.js";
|
|
489
492
|
import {
|
|
490
493
|
ToolDisplayNames,
|
|
491
494
|
ToolNames
|
|
492
|
-
} from "./chunk-
|
|
495
|
+
} from "./chunk-MJKMIQMK.js";
|
|
493
496
|
import {
|
|
494
497
|
qwenOAuth2Events
|
|
495
498
|
} from "./chunk-TENOUWY2.js";
|
|
@@ -503,7 +506,7 @@ import {
|
|
|
503
506
|
} from "./chunk-SIUQ3YYX.js";
|
|
504
507
|
import {
|
|
505
508
|
DEFAULT_TOKEN_LIMIT
|
|
506
|
-
} from "./chunk-
|
|
509
|
+
} from "./chunk-KYTQOCDE.js";
|
|
507
510
|
import "./chunk-YPCPZSZB.js";
|
|
508
511
|
import "./chunk-IRJWHZWU.js";
|
|
509
512
|
import "./chunk-SYCJMSIJ.js";
|
|
@@ -522,16 +525,16 @@ import {
|
|
|
522
525
|
shortenPath,
|
|
523
526
|
tildeifyPath
|
|
524
527
|
} from "./chunk-AVQDCKNF.js";
|
|
525
|
-
import "./chunk-
|
|
528
|
+
import "./chunk-RUM2UEL3.js";
|
|
529
|
+
import {
|
|
530
|
+
registerCleanup,
|
|
531
|
+
runExitCleanup
|
|
532
|
+
} from "./chunk-4YXBDLX7.js";
|
|
526
533
|
import {
|
|
527
534
|
finalizeStartupProfile,
|
|
528
535
|
profileCheckpoint
|
|
529
536
|
} from "./chunk-ITOGNELQ.js";
|
|
530
537
|
import "./chunk-FXGLL2HL.js";
|
|
531
|
-
import {
|
|
532
|
-
registerCleanup,
|
|
533
|
-
runExitCleanup
|
|
534
|
-
} from "./chunk-2YH27UNF.js";
|
|
535
538
|
import "./chunk-ZERZSAZL.js";
|
|
536
539
|
import "./chunk-QN5NZ3UQ.js";
|
|
537
540
|
import "./chunk-BR4QREVK.js";
|
|
@@ -6484,6 +6487,10 @@ function formatAuthDisplayType(authDisplayType) {
|
|
|
6484
6487
|
}
|
|
6485
6488
|
}
|
|
6486
6489
|
__name(formatAuthDisplayType, "formatAuthDisplayType");
|
|
6490
|
+
function formatVersionLabel(version) {
|
|
6491
|
+
return /^\d/.test(version) ? `v${version}` : version;
|
|
6492
|
+
}
|
|
6493
|
+
__name(formatVersionLabel, "formatVersionLabel");
|
|
6487
6494
|
var Header = /* @__PURE__ */ __name(({
|
|
6488
6495
|
customAsciiArt,
|
|
6489
6496
|
customBannerTitle,
|
|
@@ -6495,6 +6502,7 @@ var Header = /* @__PURE__ */ __name(({
|
|
|
6495
6502
|
}) => {
|
|
6496
6503
|
const { columns: terminalWidth } = useTerminalSize();
|
|
6497
6504
|
const formattedAuthType = formatAuthDisplayType(authDisplayType);
|
|
6505
|
+
const versionLabel = formatVersionLabel(version);
|
|
6498
6506
|
const containerMarginX = 2;
|
|
6499
6507
|
const logoGap = 2;
|
|
6500
6508
|
const infoPanelPaddingX = 1;
|
|
@@ -6564,8 +6572,8 @@ var Header = /* @__PURE__ */ __name(({
|
|
|
6564
6572
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Text, { children: [
|
|
6565
6573
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Text, { bold: true, color: theme.text.accent, children: customBannerTitle ? customBannerTitle : ">_ Qwen Code" }),
|
|
6566
6574
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
6567
|
-
" (
|
|
6568
|
-
|
|
6575
|
+
" (",
|
|
6576
|
+
versionLabel,
|
|
6569
6577
|
")"
|
|
6570
6578
|
] })
|
|
6571
6579
|
] }),
|
|
@@ -26422,7 +26430,139 @@ var import_react75 = __toESM(require_react(), 1);
|
|
|
26422
26430
|
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
26423
26431
|
init_esbuild_shims();
|
|
26424
26432
|
var import_react74 = __toESM(require_react(), 1);
|
|
26433
|
+
|
|
26434
|
+
// packages/cli/src/ui/components/background-view/agent-forest.ts
|
|
26435
|
+
init_esbuild_shims();
|
|
26436
|
+
function isAgentNode(e) {
|
|
26437
|
+
return e.kind === "agent" && typeof e.agentId === "string";
|
|
26438
|
+
}
|
|
26439
|
+
__name(isAgentNode, "isAgentNode");
|
|
26440
|
+
function reorderChildrenUnderParents(entries) {
|
|
26441
|
+
const agents = entries.filter(isAgentNode);
|
|
26442
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26443
|
+
for (const agent of agents) byId.set(agent.agentId, agent);
|
|
26444
|
+
const childrenOf = /* @__PURE__ */ new Map();
|
|
26445
|
+
const roots = [];
|
|
26446
|
+
for (const agent of agents) {
|
|
26447
|
+
const pid = agent.parentAgentId;
|
|
26448
|
+
if (pid != null && pid !== agent.agentId && byId.has(pid)) {
|
|
26449
|
+
const siblings = childrenOf.get(pid);
|
|
26450
|
+
if (siblings) siblings.push(agent);
|
|
26451
|
+
else childrenOf.set(pid, [agent]);
|
|
26452
|
+
} else {
|
|
26453
|
+
roots.push(agent);
|
|
26454
|
+
}
|
|
26455
|
+
}
|
|
26456
|
+
if (childrenOf.size === 0) return [...entries];
|
|
26457
|
+
const ordered = [];
|
|
26458
|
+
const visited = /* @__PURE__ */ new Set();
|
|
26459
|
+
const visit = /* @__PURE__ */ __name((node) => {
|
|
26460
|
+
if (visited.has(node.agentId)) return;
|
|
26461
|
+
visited.add(node.agentId);
|
|
26462
|
+
ordered.push(node);
|
|
26463
|
+
for (const child of childrenOf.get(node.agentId) ?? []) visit(child);
|
|
26464
|
+
}, "visit");
|
|
26465
|
+
for (const root of roots) visit(root);
|
|
26466
|
+
for (const agent of agents) {
|
|
26467
|
+
if (!visited.has(agent.agentId)) {
|
|
26468
|
+
visited.add(agent.agentId);
|
|
26469
|
+
ordered.push(agent);
|
|
26470
|
+
}
|
|
26471
|
+
}
|
|
26472
|
+
let next = 0;
|
|
26473
|
+
return entries.map((e) => isAgentNode(e) ? ordered[next++] : e);
|
|
26474
|
+
}
|
|
26475
|
+
__name(reorderChildrenUnderParents, "reorderChildrenUnderParents");
|
|
26476
|
+
function panelDisplayOrder(visibleNewestFirst) {
|
|
26477
|
+
return reorderChildrenUnderParents([...visibleNewestFirst].reverse());
|
|
26478
|
+
}
|
|
26479
|
+
__name(panelDisplayOrder, "panelDisplayOrder");
|
|
26480
|
+
function ancestorChain(node, lookup) {
|
|
26481
|
+
const chain = [];
|
|
26482
|
+
const seen = new Set(node.agentId != null ? [node.agentId] : []);
|
|
26483
|
+
let pid = node.parentAgentId;
|
|
26484
|
+
for (; ; ) {
|
|
26485
|
+
if (pid == null) return { chain, terminatedBy: "root" };
|
|
26486
|
+
if (seen.has(pid)) return { chain, terminatedBy: "cycle" };
|
|
26487
|
+
const parent = lookup(pid);
|
|
26488
|
+
if (!parent) return { chain, terminatedBy: "missing" };
|
|
26489
|
+
seen.add(pid);
|
|
26490
|
+
chain.push(parent);
|
|
26491
|
+
pid = parent.parentAgentId;
|
|
26492
|
+
}
|
|
26493
|
+
}
|
|
26494
|
+
__name(ancestorChain, "ancestorChain");
|
|
26495
|
+
function computeAgentTreeInfo(entries) {
|
|
26496
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26497
|
+
for (const e of entries) if (isAgentNode(e)) byId.set(e.agentId, e);
|
|
26498
|
+
const info = /* @__PURE__ */ new Map();
|
|
26499
|
+
for (const e of byId.values()) {
|
|
26500
|
+
const { chain, terminatedBy } = ancestorChain(e, (id) => byId.get(id));
|
|
26501
|
+
info.set(e.agentId, {
|
|
26502
|
+
// Cycle members are appended flat at root level by
|
|
26503
|
+
// reorderChildrenUnderParents — mirror that here, otherwise the row
|
|
26504
|
+
// would indent under no rendered parent.
|
|
26505
|
+
visibleDepth: terminatedBy === "cycle" ? 0 : chain.length,
|
|
26506
|
+
// Orphaned = claims a parent but its IMMEDIATE parent is gone. A
|
|
26507
|
+
// deeper break (grandparent evicted) still renders indented under
|
|
26508
|
+
// the present parent, so only a zero-length 'missing' chain counts.
|
|
26509
|
+
orphaned: chain.length === 0 && terminatedBy === "missing"
|
|
26510
|
+
});
|
|
26511
|
+
}
|
|
26512
|
+
return info;
|
|
26513
|
+
}
|
|
26514
|
+
__name(computeAgentTreeInfo, "computeAgentTreeInfo");
|
|
26515
|
+
function computeUserBlockingIds(entries) {
|
|
26516
|
+
const byId = /* @__PURE__ */ new Map();
|
|
26517
|
+
for (const e of entries) if (isAgentNode(e)) byId.set(e.agentId, e);
|
|
26518
|
+
const blocking = /* @__PURE__ */ new Set();
|
|
26519
|
+
for (const e of byId.values()) {
|
|
26520
|
+
if (e.isBackgrounded !== false) continue;
|
|
26521
|
+
const { chain, terminatedBy } = ancestorChain(e, (id) => byId.get(id));
|
|
26522
|
+
if (terminatedBy === "root" && chain.every((ancestor) => ancestor.isBackgrounded === false)) {
|
|
26523
|
+
blocking.add(e.agentId);
|
|
26524
|
+
}
|
|
26525
|
+
}
|
|
26526
|
+
return blocking;
|
|
26527
|
+
}
|
|
26528
|
+
__name(computeUserBlockingIds, "computeUserBlockingIds");
|
|
26529
|
+
var TREE_INDENT_PER_LEVEL = " ";
|
|
26530
|
+
var TREE_INDENT_MAX_LEVELS = 3;
|
|
26531
|
+
function treeRowPrefix(entry, tree) {
|
|
26532
|
+
const indent = TREE_INDENT_PER_LEVEL.repeat(
|
|
26533
|
+
Math.min(tree?.visibleDepth ?? 0, TREE_INDENT_MAX_LEVELS)
|
|
26534
|
+
);
|
|
26535
|
+
const marker = entry.parentAgentId != null ? "\u21B3 " : "";
|
|
26536
|
+
return `${indent}${marker}`;
|
|
26537
|
+
}
|
|
26538
|
+
__name(treeRowPrefix, "treeRowPrefix");
|
|
26539
|
+
function statusGlyph(status) {
|
|
26540
|
+
switch (status) {
|
|
26541
|
+
case "running":
|
|
26542
|
+
return "\u25CB";
|
|
26543
|
+
case "paused":
|
|
26544
|
+
return "\u23F8";
|
|
26545
|
+
case "completed":
|
|
26546
|
+
return "\u2714";
|
|
26547
|
+
case "failed":
|
|
26548
|
+
case "cancelled":
|
|
26549
|
+
return "\u2716";
|
|
26550
|
+
default:
|
|
26551
|
+
return "\u25CB";
|
|
26552
|
+
}
|
|
26553
|
+
}
|
|
26554
|
+
__name(statusGlyph, "statusGlyph");
|
|
26555
|
+
|
|
26556
|
+
// packages/cli/src/ui/hooks/useBackgroundTaskView.ts
|
|
26425
26557
|
var MAX_RETAINED_TERMINAL_DREAMS = 3;
|
|
26558
|
+
function compareActiveThenTerminal(a, b) {
|
|
26559
|
+
const aActive = a.status === "running" || a.status === "paused";
|
|
26560
|
+
const bActive = b.status === "running" || b.status === "paused";
|
|
26561
|
+
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
26562
|
+
if (aActive) return b.startTime - a.startTime;
|
|
26563
|
+
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
26564
|
+
}
|
|
26565
|
+
__name(compareActiveThenTerminal, "compareActiveThenTerminal");
|
|
26426
26566
|
function entryId(entry) {
|
|
26427
26567
|
switch (entry.kind) {
|
|
26428
26568
|
case "agent":
|
|
@@ -26488,22 +26628,15 @@ function useBackgroundTaskView(config) {
|
|
|
26488
26628
|
metadataWriteError: typeof metadataWriteError === "string" ? metadataWriteError : void 0
|
|
26489
26629
|
};
|
|
26490
26630
|
});
|
|
26491
|
-
const isActive = /* @__PURE__ */ __name((entry) => entry.status === "running" || entry.status === "paused", "isActive");
|
|
26492
26631
|
const merged = [
|
|
26493
26632
|
...agentEntries,
|
|
26494
26633
|
...shellEntries,
|
|
26495
26634
|
...monitorEntries,
|
|
26496
26635
|
...workflowEntries,
|
|
26497
26636
|
...dreamEntries
|
|
26498
|
-
].sort(
|
|
26499
|
-
const aActive = isActive(a);
|
|
26500
|
-
const bActive = isActive(b);
|
|
26501
|
-
if (aActive !== bActive) return aActive ? -1 : 1;
|
|
26502
|
-
if (aActive) return b.startTime - a.startTime;
|
|
26503
|
-
return (b.endTime ?? b.startTime) - (a.endTime ?? a.startTime);
|
|
26504
|
-
});
|
|
26637
|
+
].sort(compareActiveThenTerminal);
|
|
26505
26638
|
lastDreamSig = computeDreamSig(allDreams);
|
|
26506
|
-
setEntries(merged);
|
|
26639
|
+
setEntries(reorderChildrenUnderParents(merged));
|
|
26507
26640
|
}, "refresh");
|
|
26508
26641
|
const refreshFromRegistry = /* @__PURE__ */ __name(() => refresh(), "refreshFromRegistry");
|
|
26509
26642
|
refresh();
|
|
@@ -26978,11 +27111,11 @@ function terminalStatusPresentation(status) {
|
|
|
26978
27111
|
__name(terminalStatusPresentation, "terminalStatusPresentation");
|
|
26979
27112
|
var FOREGROUND_ROW_PREFIX = "[blocking]";
|
|
26980
27113
|
var SHELL_ROW_PREFIX = "[shell]";
|
|
26981
|
-
function rowLabel(entry) {
|
|
27114
|
+
function rowLabel(entry, userBlocking) {
|
|
26982
27115
|
switch (entry.kind) {
|
|
26983
27116
|
case "agent": {
|
|
26984
27117
|
const label = buildBackgroundEntryLabel(entry, { includePrefix: false });
|
|
26985
|
-
const base =
|
|
27118
|
+
const base = userBlocking ? `${FOREGROUND_ROW_PREFIX} ${label}` : label;
|
|
26986
27119
|
return entry.pendingApprovals?.length ? `${base} \u26A0 ${t("needs approval")}` : base;
|
|
26987
27120
|
}
|
|
26988
27121
|
case "shell":
|
|
@@ -27006,6 +27139,22 @@ function rowLabel(entry) {
|
|
|
27006
27139
|
}
|
|
27007
27140
|
}
|
|
27008
27141
|
__name(rowLabel, "rowLabel");
|
|
27142
|
+
function formatParentBreadcrumb(entry, lookup) {
|
|
27143
|
+
if (entry.parentAgentId == null) return void 0;
|
|
27144
|
+
const { chain, terminatedBy } = ancestorChain(entry, lookup);
|
|
27145
|
+
if (chain.length === 0) {
|
|
27146
|
+
return `${entry.parentName ?? t("unknown agent")} \xB7 ${t("no longer running")}`;
|
|
27147
|
+
}
|
|
27148
|
+
const rootFirst = [...chain].reverse();
|
|
27149
|
+
const crumbs = [
|
|
27150
|
+
terminatedBy === "root" ? "main" : "\u2026",
|
|
27151
|
+
...rootFirst.map((p) => p.subagentType ?? "agent")
|
|
27152
|
+
].join(" \u203A ");
|
|
27153
|
+
const immediateParent = chain[0];
|
|
27154
|
+
const desc = immediateParent.description ? ` \u2014 ${immediateParent.description}` : "";
|
|
27155
|
+
return `${crumbs}${desc}`;
|
|
27156
|
+
}
|
|
27157
|
+
__name(formatParentBreadcrumb, "formatParentBreadcrumb");
|
|
27009
27158
|
function elapsedFor(entry) {
|
|
27010
27159
|
const elapsedMs = Math.max(
|
|
27011
27160
|
0,
|
|
@@ -27055,6 +27204,8 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
27055
27204
|
const hiddenAbove = windowStart;
|
|
27056
27205
|
const hiddenBelow = entries.length - windowEnd;
|
|
27057
27206
|
const visible = entries.slice(windowStart, windowEnd);
|
|
27207
|
+
const treeInfo = computeAgentTreeInfo(entries);
|
|
27208
|
+
const blockingIds = computeUserBlockingIds(entries);
|
|
27058
27209
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27059
27210
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27060
27211
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
@@ -27071,9 +27222,16 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
27071
27222
|
const isSelected = idx === selectedIndex;
|
|
27072
27223
|
const terminal = terminalStatusPresentation(entry.status);
|
|
27073
27224
|
const labelColor = isSelected ? theme.text.accent : terminal ? terminal.labelColor : theme.text.primary;
|
|
27225
|
+
const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
|
|
27074
27226
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
27075
27227
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
27076
|
-
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color:
|
|
27228
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
27229
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
|
|
27230
|
+
rowLabel(
|
|
27231
|
+
entry,
|
|
27232
|
+
entry.kind === "agent" && blockingIds.has(entry.agentId)
|
|
27233
|
+
)
|
|
27234
|
+
) })
|
|
27077
27235
|
] }, entryId(entry));
|
|
27078
27236
|
}),
|
|
27079
27237
|
hiddenBelow > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: ` v ${t("{{count}} more below", { count: String(hiddenBelow) })}` }) })
|
|
@@ -27212,6 +27370,7 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27212
27370
|
);
|
|
27213
27371
|
}, "DreamDetailBody");
|
|
27214
27372
|
var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
27373
|
+
const config = useConfig();
|
|
27215
27374
|
const title = escapeAnsiCtrlCodes(
|
|
27216
27375
|
`${entry.subagentType ?? "Agent"} \u203A ${buildBackgroundEntryLabel(entry, { includePrefix: false })}`
|
|
27217
27376
|
);
|
|
@@ -27227,6 +27386,19 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27227
27386
|
if (entry.stats?.toolUses !== void 0) {
|
|
27228
27387
|
dimSubtitleParts.push(formatToolUseCount(entry.stats.toolUses));
|
|
27229
27388
|
}
|
|
27389
|
+
if ((entry.depth ?? 0) > 0) {
|
|
27390
|
+
dimSubtitleParts.push(
|
|
27391
|
+
t("nested \xB7 level {{level}} of {{max}}", {
|
|
27392
|
+
level: String((entry.depth ?? 0) + 1),
|
|
27393
|
+
max: String(config.getMaxSubagentDepth())
|
|
27394
|
+
})
|
|
27395
|
+
);
|
|
27396
|
+
}
|
|
27397
|
+
const registry = config.getBackgroundTaskRegistry();
|
|
27398
|
+
const parentLine = formatParentBreadcrumb(entry, (id) => registry.get(id));
|
|
27399
|
+
const childAgents = registry.getAll().filter((task) => task.parentAgentId === entry.agentId).sort(compareActiveThenTerminal);
|
|
27400
|
+
const visibleChildAgents = childAgents.slice(0, 5);
|
|
27401
|
+
const hiddenChildCount = childAgents.length - visibleChildAgents.length;
|
|
27230
27402
|
const activities = (entry.recentActivities ?? []).slice(-5);
|
|
27231
27403
|
const blockedReason = entry.resumeBlockedReason;
|
|
27232
27404
|
const hasError = Boolean(entry.error);
|
|
@@ -27250,6 +27422,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27250
27422
|
terminal && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: terminal.color, children: `${terminal.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27251
27423
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27252
27424
|
] }),
|
|
27425
|
+
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27426
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27427
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
|
|
27428
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${escapeAnsiCtrlCodes(parentLine)}` }) })
|
|
27429
|
+
] }),
|
|
27430
|
+
visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27431
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27432
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Text, { bold: true, dimColor: true, children: [
|
|
27433
|
+
t("Sub-agents"),
|
|
27434
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
27435
|
+
Text,
|
|
27436
|
+
{
|
|
27437
|
+
color: theme.text.secondary,
|
|
27438
|
+
children: ` (${childAgents.length})`
|
|
27439
|
+
}
|
|
27440
|
+
)
|
|
27441
|
+
] }) }),
|
|
27442
|
+
visibleChildAgents.map((child) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${statusGlyph(child.status)} ${escapeAnsiCtrlCodes(
|
|
27443
|
+
`${child.subagentType ?? "agent"} \u2014 ${child.description}`
|
|
27444
|
+
)} \xB7 ${elapsedFor(child)}` }) }, child.agentId)),
|
|
27445
|
+
hiddenChildCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { color: theme.text.secondary, children: ` \u2026 ${t("{{count}} more", { count: String(hiddenChildCount) })}` }) })
|
|
27446
|
+
] }),
|
|
27253
27447
|
activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react77.Fragment, { children: [
|
|
27254
27448
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, {}),
|
|
27255
27449
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
@@ -27570,8 +27764,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27570
27764
|
const isAbandonable = selectedEntry.kind === "agent" && selectedEntry.status === "paused";
|
|
27571
27765
|
if (!isCancelable && !isAbandonable) return;
|
|
27572
27766
|
const entryKey = entryId(selectedEntry);
|
|
27573
|
-
const
|
|
27574
|
-
if (
|
|
27767
|
+
const isUserBlockingAgent = selectedEntry.kind === "agent" && computeUserBlockingIds(entries).has(selectedEntry.agentId);
|
|
27768
|
+
if (isUserBlockingAgent && pendingCancelEntryId !== entryKey) {
|
|
27575
27769
|
setPendingCancelEntryId(entryKey);
|
|
27576
27770
|
return;
|
|
27577
27771
|
}
|
|
@@ -30655,6 +30849,7 @@ __name(AgentViewProvider, "AgentViewProvider");
|
|
|
30655
30849
|
// packages/cli/src/ui/components/background-view/liveAgentPanelVisibility.ts
|
|
30656
30850
|
init_esbuild_shims();
|
|
30657
30851
|
var TERMINAL_VISIBLE_MS = 8e3;
|
|
30852
|
+
var LIVE_AGENT_PANEL_MAX_ROWS = 12;
|
|
30658
30853
|
function isLiveAgentPanelVisibleEntry(entry, nowMs) {
|
|
30659
30854
|
if (entry.kind !== "agent") return false;
|
|
30660
30855
|
if (entry.status === "running" || entry.status === "paused") return true;
|
|
@@ -32223,7 +32418,9 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
32223
32418
|
} = useBackgroundTaskViewActions();
|
|
32224
32419
|
const hasAgents = agents.size > 0;
|
|
32225
32420
|
const getVisibleBgAgents = (0, import_react96.useCallback)(
|
|
32226
|
-
() =>
|
|
32421
|
+
() => panelDisplayOrder(
|
|
32422
|
+
bgEntries.filter((e) => isLiveAgentPanelVisibleEntry(e, Date.now()))
|
|
32423
|
+
).slice(-LIVE_AGENT_PANEL_MAX_ROWS),
|
|
32227
32424
|
[bgEntries]
|
|
32228
32425
|
);
|
|
32229
32426
|
const hasActiveToolConfirmation = (0, import_react96.useMemo)(
|
|
@@ -35733,7 +35930,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
35733
35930
|
init_esbuild_shims();
|
|
35734
35931
|
var import_react111 = __toESM(require_react(), 1);
|
|
35735
35932
|
var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
|
|
35736
|
-
var DEFAULT_MAX_ROWS =
|
|
35933
|
+
var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
|
|
35737
35934
|
var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
|
|
35738
35935
|
function isAgentEntry(entry) {
|
|
35739
35936
|
return entry.kind === "agent";
|
|
@@ -35743,19 +35940,18 @@ function statusIcon(entry) {
|
|
|
35743
35940
|
if (entry.synthesized) {
|
|
35744
35941
|
return { glyph: "\xB7", color: theme.text.secondary };
|
|
35745
35942
|
}
|
|
35943
|
+
const glyph = statusGlyph(entry.status);
|
|
35746
35944
|
switch (entry.status) {
|
|
35747
35945
|
case "running":
|
|
35748
|
-
return { glyph: "\u25CB", color: theme.status.warning };
|
|
35749
35946
|
case "paused":
|
|
35750
|
-
|
|
35947
|
+
case "cancelled":
|
|
35948
|
+
return { glyph, color: theme.status.warning };
|
|
35751
35949
|
case "completed":
|
|
35752
|
-
return { glyph
|
|
35950
|
+
return { glyph, color: theme.status.success };
|
|
35753
35951
|
case "failed":
|
|
35754
|
-
return { glyph
|
|
35755
|
-
case "cancelled":
|
|
35756
|
-
return { glyph: "\u2716", color: theme.status.warning };
|
|
35952
|
+
return { glyph, color: theme.status.error };
|
|
35757
35953
|
default:
|
|
35758
|
-
return { glyph
|
|
35954
|
+
return { glyph, color: theme.text.secondary };
|
|
35759
35955
|
}
|
|
35760
35956
|
}
|
|
35761
35957
|
__name(statusIcon, "statusIcon");
|
|
@@ -35875,7 +36071,8 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
35875
36071
|
expired: !isLiveAgentPanelVisibleEntry(entry, now)
|
|
35876
36072
|
})).filter((entry) => !entry.expired);
|
|
35877
36073
|
if (visibleAgents.length === 0) return null;
|
|
35878
|
-
const visibleAgentsAsc =
|
|
36074
|
+
const visibleAgentsAsc = panelDisplayOrder(visibleAgents);
|
|
36075
|
+
const treeInfo = computeAgentTreeInfo(visibleAgentsAsc);
|
|
35879
36076
|
const overflow = Math.max(0, visibleAgentsAsc.length - maxRows);
|
|
35880
36077
|
const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
|
|
35881
36078
|
const totalItems = 1 + visible.length;
|
|
@@ -35897,14 +36094,15 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
35897
36094
|
{
|
|
35898
36095
|
entry,
|
|
35899
36096
|
now,
|
|
35900
|
-
selected: focused && clampedIndex === idx + 1
|
|
36097
|
+
selected: focused && clampedIndex === idx + 1,
|
|
36098
|
+
tree: treeInfo.get(entry.agentId)
|
|
35901
36099
|
},
|
|
35902
36100
|
entry.agentId
|
|
35903
36101
|
)),
|
|
35904
36102
|
focused && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: " \u2191\u2193 navigate \xB7 Enter detail \xB7 Esc back" }) })
|
|
35905
36103
|
] });
|
|
35906
36104
|
}, "LiveAgentPanelBody");
|
|
35907
|
-
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false }) => {
|
|
36105
|
+
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
|
|
35908
36106
|
const { glyph, color } = statusIcon(entry);
|
|
35909
36107
|
const label = escapeAnsiCtrlCodes(descriptionWithoutPrefix(entry));
|
|
35910
36108
|
const activity = escapeAnsiCtrlCodes(activityLabel(entry));
|
|
@@ -35914,16 +36112,20 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false }) => {
|
|
|
35914
36112
|
const tokenSuffix = entry.stats?.outputTokens && entry.stats.outputTokens > 0 ? ` \xB7 ${formatTokenCount(entry.stats.outputTokens)} tokens` : "";
|
|
35915
36113
|
const tail = ` \u25B6 ${elapsed}${tokenSuffix}`;
|
|
35916
36114
|
const prefix = selected ? "\u25B8 " : " ";
|
|
36115
|
+
const treePrefix = treeRowPrefix(entry, tree);
|
|
36116
|
+
const orphanNote = tree?.orphaned ? entry.parentName ? ` \xB7 from ${escapeAnsiCtrlCodes(entry.parentName)}` : " \xB7 nested" : "";
|
|
35917
36117
|
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
35918
36118
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: selected ? theme.text.accent : theme.text.secondary, children: prefix }) }),
|
|
35919
36119
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
36120
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
35920
36121
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color, children: `${glyph} ` }),
|
|
35921
36122
|
showType && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
35922
36123
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { bold: true, children: safeSubagentType }),
|
|
35923
36124
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ": " })
|
|
35924
36125
|
] }),
|
|
35925
36126
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: label }),
|
|
35926
|
-
activity && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` })
|
|
36127
|
+
activity && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
|
|
36128
|
+
orphanNote && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
|
|
35927
36129
|
] }) }),
|
|
35928
36130
|
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.secondary, children: tail }) })
|
|
35929
36131
|
] });
|