@qwen-code/qwen-code 0.21.3 → 0.21.4
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/qc-helper/docs/configuration/settings.md +13 -0
- package/bundled/qc-helper/docs/features/channels/github.md +12 -8
- package/bundled/qc-helper/docs/features/code-review.md +14 -1
- package/bundled/qc-helper/docs/features/commands.md +46 -40
- package/bundled/qc-helper/docs/qwen-serve.md +27 -26
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -19
- package/bundled/review/SKILL.md +67 -22
- package/chunks/{MaxSizedBox-OJR636GP.js → MaxSizedBox-5XDFQHTQ.js} +8 -7
- package/chunks/{StandaloneSessionPicker-AMMBF5UY.js → StandaloneSessionPicker-DLADA54K.js} +21 -20
- package/chunks/{acpAgent-M57LVIQA.js → acpAgent-MVEFZSBS.js} +48 -42
- package/chunks/{agent-PE37ARLM.js → agent-RB6LCRZX.js} +8 -7
- package/chunks/{agent-headless-45ASME4R.js → agent-headless-272ZACJV.js} +8 -7
- package/chunks/{anthropicContentGenerator-WCBYB6JG.js → anthropicContentGenerator-3CAHEZBM.js} +4 -2
- package/chunks/{bridge-K3ZRPO4D.js → bridge-GXUXFSHK.js} +9 -8
- package/chunks/{ca-4OJN75WT.js → ca-NYKNH222.js} +4 -0
- package/chunks/{channel-management-service-IXJ2MZTS.js → channel-management-service-UHX56NBO.js} +1 -1
- package/chunks/{channel-settings-store-PEAR3IME.js → channel-settings-store-5UA2SABE.js} +14 -13
- package/chunks/{chunk-IWGTGH4G.js → chunk-2CCUHZP5.js} +2 -2
- package/chunks/{chunk-HUIQ4FYC.js → chunk-2JN5V3I7.js} +3 -3
- package/chunks/{chunk-BSKUTHLO.js → chunk-2ON2O4MD.js} +16 -3
- package/chunks/{chunk-QPSYIV2O.js → chunk-2T3RYG4L.js} +2039 -563
- package/chunks/{chunk-ZGSUFIL5.js → chunk-3PHUGFPH.js} +1 -1
- package/chunks/{chunk-QWW6I2UO.js → chunk-4CTV3FZH.js} +400 -33
- package/chunks/{chunk-6NE5NTHJ.js → chunk-4PZ7SPD5.js} +1 -1
- package/chunks/{chunk-2LZCLQIS.js → chunk-5XGI4IPK.js} +4 -4
- package/chunks/{chunk-GMSBXEH4.js → chunk-6KQUOXT5.js} +6 -6
- package/chunks/{chunk-2MI7ZTRT.js → chunk-6ME3PVMM.js} +4 -4
- package/chunks/{chunk-SRY26X4H.js → chunk-7UXI6P72.js} +11 -2
- package/chunks/{chunk-YU6TBRTA.js → chunk-A7PONO5G.js} +1 -1
- package/chunks/{chunk-N42C2FU3.js → chunk-AFJSRJTO.js} +1 -1
- package/chunks/{chunk-H6FIBBXK.js → chunk-AWTLFUVN.js} +11 -11
- package/chunks/{chunk-HIXVWF7I.js → chunk-B3EBXISV.js} +2 -2
- package/chunks/{chunk-3XF4WT3B.js → chunk-BC4LTKEG.js} +1 -1
- package/chunks/{chunk-ZJES4C3I.js → chunk-BOWKLLWA.js} +2 -2
- package/chunks/{chunk-SKSF3LGQ.js → chunk-C5YFS6VR.js} +3 -3
- package/chunks/{chunk-IF6K42YJ.js → chunk-C6FU76AA.js} +1 -1
- package/chunks/{chunk-VUNRNRN6.js → chunk-DHNFB7NC.js} +4 -4
- package/chunks/{chunk-LZV2BZPL.js → chunk-DJA7YBLJ.js} +2 -2
- package/chunks/{chunk-K2J5JZ6B.js → chunk-DOCBJIBL.js} +1 -1
- package/chunks/{chunk-X6WUYMOV.js → chunk-DTAPI453.js} +2 -2
- package/chunks/{chunk-XUMAD5IT.js → chunk-DZPOYHBT.js} +1 -1
- package/chunks/{chunk-UQDFEU47.js → chunk-E2SYUEIA.js} +463 -114
- package/chunks/{chunk-DSGJLHM3.js → chunk-EIAPOG76.js} +3 -3
- package/chunks/{chunk-EGYJRIDF.js → chunk-EJXATV5R.js} +2 -2
- package/chunks/{chunk-BKGA75MU.js → chunk-FPPVCCAH.js} +1 -1
- package/chunks/{chunk-KXWERR6P.js → chunk-FV4TUUDE.js} +10 -10
- package/chunks/{chunk-WY2ENRDN.js → chunk-G6KI6B5L.js} +1 -1
- package/chunks/{chunk-H6ZYP74A.js → chunk-GDREW3U5.js} +1 -1
- package/chunks/{chunk-BKXTHMOZ.js → chunk-HBCKZF2A.js} +1 -1
- package/chunks/chunk-HGCQ5SE7.js +136 -0
- package/chunks/{chunk-HEBW74ZW.js → chunk-HI4YGRJD.js} +3 -3
- package/chunks/{chunk-5JPVOYWA.js → chunk-I32URQI7.js} +4 -4
- package/chunks/{chunk-5VYFXHY2.js → chunk-IMGNGOGC.js} +3 -3
- package/chunks/{chunk-4K3RV3OA.js → chunk-JDJ7SC4E.js} +7 -3
- package/chunks/{chunk-22YFMJBW.js → chunk-KB6VSG2U.js} +58 -6
- package/chunks/{chunk-R7XNRHYD.js → chunk-KHSJSMFS.js} +1 -1
- package/chunks/{chunk-LGT3YMLN.js → chunk-LEZFUYPM.js} +1 -1
- package/chunks/{chunk-TZTBZ25J.js → chunk-LLMGP5IC.js} +1 -1
- package/chunks/{chunk-NW57GHNL.js → chunk-LPLMUGIM.js} +3 -3
- package/chunks/{chunk-L7FTDKCD.js → chunk-M2L4TMH3.js} +21 -3
- package/chunks/{chunk-RCXCGZG6.js → chunk-M6RNMBUO.js} +3 -3
- package/chunks/{chunk-D2GPKXCQ.js → chunk-O4IWFYUW.js} +4 -4
- package/chunks/{chunk-Q3G5L5KF.js → chunk-OOPFAIWP.js} +1 -1
- package/chunks/{chunk-MTR4JWQJ.js → chunk-P5UJMCVS.js} +4 -4
- package/chunks/{chunk-FF75UUB2.js → chunk-PCVMRBLN.js} +1 -1
- package/chunks/{chunk-XMJO6C44.js → chunk-PQ5JFCNL.js} +3 -3
- package/chunks/{chunk-SQ3YD5MI.js → chunk-PQEIKQXN.js} +1 -1
- package/chunks/{chunk-3MWNROHB.js → chunk-QXTGHZCX.js} +3 -3
- package/chunks/{chunk-TXABHVZD.js → chunk-QZQ72YF6.js} +1 -1
- package/chunks/{chunk-YPUHMQXV.js → chunk-RL2NPV5E.js} +1 -1
- package/chunks/{chunk-FXVHVCNA.js → chunk-RNKGMZEW.js} +1 -1
- package/chunks/{chunk-EIMKVOSF.js → chunk-SBBHZ3YT.js} +1 -1
- package/chunks/{chunk-QDWLUXKP.js → chunk-SV5X2EUV.js} +1 -1
- package/chunks/{chunk-YWMDTMAU.js → chunk-THLV7YGY.js} +2 -2
- package/chunks/{chunk-H35Q5CEG.js → chunk-TXZDRD36.js} +6 -6
- package/chunks/{chunk-MUEJ4R3E.js → chunk-UATJZOAJ.js} +3 -3
- package/chunks/{chunk-M5LIY7Y6.js → chunk-URVJ4AZC.js} +1 -1
- package/chunks/{chunk-4AGGSHCH.js → chunk-WDLQGFWP.js} +196 -52
- package/chunks/{chunk-RL6J3BPE.js → chunk-XGA6XHH3.js} +3 -3
- package/chunks/{chunk-QWDVZH24.js → chunk-XPAY4EMH.js} +3 -3
- package/chunks/{chunk-MCXMWLFT.js → chunk-XSOAW7FC.js} +5 -5
- package/chunks/{chunk-RR224BUP.js → chunk-ZLJQIGCH.js} +45 -1
- package/chunks/{chunk-FG63DZQA.js → chunk-ZRQY5BBS.js} +9 -9
- package/chunks/{computer-use-UJMK6JQU.js → computer-use-MDOMIVTL.js} +8 -7
- package/chunks/{config-utils-7COTJMWK.js → config-utils-E3ZQTHGM.js} +2 -2
- package/chunks/{contextCommand-4YABGF4S.js → contextCommand-FCK3CB37.js} +10 -9
- package/chunks/{core-runtime-7M4VM3DA.js → core-runtime-UHRHHU2O.js} +8 -7
- package/chunks/{create-sub-session-HOFDW4N7.js → create-sub-session-MIXUVLWW.js} +20 -13
- package/chunks/{daemon-status-provider-W2U5Q3J5.js → daemon-status-provider-6LC7LUNR.js} +13 -12
- package/chunks/{daemon-trust-policy-IFICWPXP.js → daemon-trust-policy-Y36HGRAM.js} +13 -12
- package/chunks/{daemon-trust-policy-monitor-GX7EO6FW.js → daemon-trust-policy-monitor-ROTBBDOH.js} +13 -12
- package/chunks/{de-A6TI4LBB.js → de-VL76CPLV.js} +4 -0
- package/chunks/{deferred-core-runtime-U36OOOKE.js → deferred-core-runtime-ZQ4JIAJD.js} +8 -7
- package/chunks/{display-image-VS3TXYQH.js → display-image-2WOG27DY.js} +1 -1
- package/chunks/{dist-NEBRI7WO.js → dist-C5U4LJKW.js} +95 -0
- package/chunks/{dist-4KAX7CCL.js → dist-IKGVITP3.js} +401 -24
- package/chunks/{earlyInputCapture-5ZWDH3SB.js → earlyInputCapture-GPRUNXTP.js} +8 -7
- package/chunks/{edit-J7SW6UP6.js → edit-YK3UP6D2.js} +8 -7
- package/chunks/{en-L4UQDLWW.js → en-IRJ2WN5T.js} +4 -0
- package/chunks/{enter-worktree-NRLOHRB6.js → enter-worktree-QMVQW7UG.js} +8 -7
- package/chunks/{enterPlanMode-GDSTEFSM.js → enterPlanMode-TZAYQ5MP.js} +8 -7
- package/chunks/{environment-KHYEKG5W.js → environment-3UQURCZG.js} +10 -9
- package/chunks/{errors-VNLAJV3O.js → errors-VBIMTNNI.js} +10 -9
- package/chunks/{exit-worktree-ARVID7DF.js → exit-worktree-4EC7LBBC.js} +8 -7
- package/chunks/{exitPlanMode-4ZFY7KUH.js → exitPlanMode-K5Y3REU2.js} +8 -7
- package/chunks/{fast-path-KA65VREJ.js → fast-path-KS6IE7YR.js} +11 -2
- package/chunks/{fr-QF7RI5ZE.js → fr-GK3HQYVB.js} +4 -0
- package/chunks/{gemini-5PMCNPF7.js → gemini-LTUCUOJH.js} +42 -40
- package/chunks/{geminiContentGenerator-NFSYJ4HA.js → geminiContentGenerator-M3HJTHKR.js} +1 -1
- package/chunks/{glob-F3EAUDAX.js → glob-SKUYGTF2.js} +8 -7
- package/chunks/{grep-UJMPVZER.js → grep-SQ7RD7SV.js} +8 -7
- package/chunks/{handleAutoUpdate-MG4FRZPN.js → handleAutoUpdate-OK7OX23A.js} +12 -11
- package/chunks/{i18n-EVHV4ZF3.js → i18n-P77YBKY4.js} +9 -8
- package/chunks/{image-gen-UC7XVHI7.js → image-gen-2ZWPS42A.js} +1 -1
- package/chunks/{initializer-O5B6HUBI.js → initializer-PIOYXVW7.js} +13 -12
- package/chunks/{installationInfo-2LIKCNVX.js → installationInfo-IWMM6DPV.js} +9 -8
- package/chunks/{ja-URQESVGW.js → ja-3FA46IKD.js} +4 -0
- package/chunks/{list-BPKIE3Z4.js → list-3DCR4TRI.js} +16 -15
- package/chunks/{loadedSettingsAdapter-NGLFF4V4.js → loadedSettingsAdapter-EJC6CU5N.js} +13 -12
- package/chunks/{loggingContentGenerator-7TFESRG5.js → loggingContentGenerator-2JEFU25T.js} +3 -3
- package/chunks/{managed-npm-update-CLZGGV7F.js → managed-npm-update-EGVQPSBR.js} +9 -8
- package/chunks/{mcp-X5OZOOXX.js → mcp-KFFH2MBV.js} +13 -12
- package/chunks/{monitor-TGSVSAZZ.js → monitor-6Y3NDMTI.js} +8 -7
- package/chunks/{nonInteractiveCli-GUMJ5JLG.js → nonInteractiveCli-426IQDPE.js} +40 -38
- package/chunks/{notebook-edit-EZISE7IC.js → notebook-edit-373IQQLE.js} +8 -7
- package/chunks/{openaiContentGenerator-ZAKS5A6P.js → openaiContentGenerator-PGFSOMIQ.js} +3 -3
- package/chunks/{pidfile-PCMBX4LR.js → pidfile-Y4INDMHG.js} +8 -7
- package/chunks/{processUtils-2CSVE5BW.js → processUtils-6BCPCJZW.js} +2 -2
- package/chunks/{pt-EEEQXRUI.js → pt-3AOBKPIJ.js} +4 -0
- package/chunks/{qwenContentGenerator-S3H6PIC4.js → qwenContentGenerator-QC3KSHSX.js} +8 -8
- package/chunks/{qwenOAuth2-MNU425VE.js → qwenOAuth2-IOAXKJ3L.js} +1 -1
- package/chunks/{read-file-HXJXHBI6.js → read-file-2T54FYZV.js} +2 -2
- package/chunks/{resumeHistoryUtils-4QAMC2S6.js → resumeHistoryUtils-O62RDCZ3.js} +11 -10
- package/chunks/{ripGrep-MCETPF2E.js → ripGrep-3H72KY7S.js} +8 -7
- package/chunks/{ru-WGZDYQAB.js → ru-VJRAMC4W.js} +4 -0
- package/chunks/{run-qwen-serve-3NMODTXV.js → run-qwen-serve-3AIDNNHO.js} +82 -35
- package/chunks/{runtime-AQOV7DVP.js → runtime-AZ4EHHFV.js} +16 -15
- package/chunks/{scheduler-DN7SZ6ZE.js → scheduler-L4UUCU4Z.js} +8 -7
- package/chunks/{send-message-HGCVVDTZ.js → send-message-LHJLVWFD.js} +2 -2
- package/chunks/{serve-WZB45HVT.js → serve-CLXGSYOE.js} +14 -12
- package/chunks/{server-GOTZFEEZ.js → server-MEAE3WMM.js} +36 -34
- package/chunks/{session-23LOFLWN.js → session-OSLD2LT5.js} +41 -39
- package/chunks/{settings-LI2ORVXC.js → settings-ILWAOKA4.js} +12 -11
- package/chunks/{shell-GLC6OP3C.js → shell-RT5DBH6B.js} +8 -7
- package/chunks/{skill-C7W6M4GO.js → skill-LVGA3ATZ.js} +2 -2
- package/chunks/{skill-settings-W25NCK5I.js → skill-settings-WTZE7EPE.js} +12 -11
- package/chunks/{spawnChannel-OHJLEBLD.js → spawnChannel-BOBS7DVM.js} +8 -7
- package/chunks/{standalone-update-E4V5V7WT.js → standalone-update-Y5JB4S2K.js} +10 -9
- package/chunks/{startInteractiveUI-FKILLW7Q.js → startInteractiveUI-ZV25CD2S.js} +62 -50
- package/chunks/{task-create-CSCEG4SM.js → task-create-4ALZMGP5.js} +3 -3
- package/chunks/{task-update-C52LNFU5.js → task-update-IKCEEWJ6.js} +3 -3
- package/chunks/{team-create-HBIJ7NHT.js → team-create-ZVPQIXCP.js} +8 -7
- package/chunks/{team-plan-approval-IBJOKS4J.js → team-plan-approval-5UHUBY3W.js} +8 -7
- package/chunks/{terminal-image-renderer-BOQJPVLB.js → terminal-image-renderer-NWC2RALG.js} +8 -7
- package/chunks/{theme-manager-NSS7VLUD.js → theme-manager-5KICSBOB.js} +8 -7
- package/chunks/{todoWrite-YKAA57W2.js → todoWrite-FTZWQRZH.js} +2 -1
- package/chunks/{tool-search-DEAS54VG.js → tool-search-2AOU77H4.js} +4 -4
- package/chunks/{total-session-admission-4LWTX3WD.js → total-session-admission-FR7RMHVL.js} +9 -8
- package/chunks/{trustedFolders-NF3J2TA7.js → trustedFolders-V7UUPQXO.js} +9 -8
- package/chunks/{update-relaunch-WUHRH5V3.js → update-relaunch-TBWRMQD6.js} +5 -5
- package/chunks/{updateCheck-7EG4BLBH.js → updateCheck-42SPCLH7.js} +11 -10
- package/chunks/{useAutoAcceptIndicator-ZRV56GVP.js → useAutoAcceptIndicator-4C2KM345.js} +14 -13
- package/chunks/{validateNonInterActiveAuth-WC2FPE3I.js → validateNonInterActiveAuth-UVFRXV3Z.js} +37 -35
- package/chunks/{version-6SS7KCUP.js → version-HKTV6TPN.js} +1 -1
- package/chunks/{web-fetch-Y5QQMPKA.js → web-fetch-ZRXSV5AN.js} +2 -2
- package/chunks/{web-search-QKKEU723.js → web-search-WOLV3L6T.js} +2 -2
- package/chunks/{workflow-PWIU6Q2M.js → workflow-F63ES3OB.js} +9 -8
- package/chunks/{workspace-providers-status-B2DM6FNK.js → workspace-providers-status-PJMGMYMC.js} +15 -14
- package/chunks/{workspace-registration-store-7Y33TTHJ.js → workspace-registration-store-LNBOX5TJ.js} +1 -1
- package/chunks/{workspace-registry-TSNJKLPC.js → workspace-registry-4PR7VDQ3.js} +9 -8
- package/chunks/{workspace-service-4I2QHDX4.js → workspace-service-PVI3VUNQ.js} +16 -15
- package/chunks/{workspace-skills-status-HVXNWVGR.js → workspace-skills-status-2Q5ZISO6.js} +13 -12
- package/chunks/{workspace-trust-reconciler-RDBBGMWP.js → workspace-trust-reconciler-NOILUH3C.js} +14 -13
- package/chunks/{write-file-RQ4DG5RY.js → write-file-MOM4JDHG.js} +8 -7
- package/chunks/{zh-72XPUG5P.js → zh-ARWDLDLR.js} +4 -0
- package/chunks/{zh-TW-LTB4SRH3.js → zh-TW-Y4RGI3P7.js} +4 -0
- package/chunks/{zoom-image-O5YCB7WN.js → zoom-image-E3VHRCFU.js} +2 -2
- package/cli.js +12 -12
- package/locales/ca.js +8 -0
- package/locales/de.js +8 -0
- package/locales/en.js +8 -0
- package/locales/fr.js +8 -0
- package/locales/ja.js +8 -0
- package/locales/pt.js +8 -0
- package/locales/ru.js +8 -0
- package/locales/zh-TW.js +7 -0
- package/locales/zh.js +7 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-Bd7d781i.js → arc-GpdmhIxr.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CpnOJqNE.js → architectureDiagram-3BPJPVTR-C-LhCgH_.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-NxVTiWnk.js → blockDiagram-GPEHLZMM-CzNdTCm-.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BWT75l82.js → c4Diagram-AAUBKEIU-Ce7hbrRM.js} +1 -1
- package/web-shell/assets/channel-95y6Rcp3.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Dzz03hk6.js → chunk-2J33WTMH-BBSEn1PK.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DRF-egfm.js → chunk-4BX2VUAB-_llgjfe5.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-Co15vq5x.js → chunk-55IACEB6-9fJZ_oZE.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DHSUk1J7.js → chunk-727SXJPM-DgEzQWOu.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Br8u_E2R.js → chunk-AQP2D5EJ-B4RthUTc.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DXbPTnqF.js → chunk-FMBD7UC4-CDI-emMW.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BleQdi4d.js → chunk-ND2GUHAM-jM2-yOd8.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CqgBf-95.js → chunk-QZHKN3VN-XGZHlKPF.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-pfzVkmjQ.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-pfzVkmjQ.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-WS7b13Yg.js → cose-bilkent-S5V4N54A-90nbW1xQ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-v_55ki8o.js → dagre-BM42HDAG-BtzlyqZ9.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-DaYAjbdK.js → diagram-2AECGRRQ-DAaqGWaH.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-D_Hy-L64.js → diagram-5GNKFQAL-CxlzSIFa.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-dB06cZyD.js → diagram-KO2AKTUF-8kj-1H6u.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DzSluD4F.js → diagram-LMA3HP47-6NhjFwRF.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-Cvb6CeXQ.js → diagram-OG6HWLK6-Bn9kvInz.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-7eB2Hmov.js → erDiagram-TEJ5UH35-CaRoGsAt.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-B08iGCw_.js → flowDiagram-I6XJVG4X-TkLweHdf.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgsrCHq-.js → ganttDiagram-6RSMTGT7-ruwhCKBl.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DQLurQ2i.js → gitGraphDiagram-PVQCEYII-DNI_PxoU.js} +1 -1
- package/web-shell/assets/{index-DJ-z1Oba.js → index-T4KluHvu.js} +336 -336
- package/web-shell/assets/{index-Bi1dP2mU.css → index-WxSvj2tI.css} +2 -2
- package/web-shell/assets/{index-B_1Z0Mgr.js → index-p1gz-sxE.js} +1 -1
- package/web-shell/assets/{infoDiagram-5YYISTIA-DXZGO8qB.js → infoDiagram-5YYISTIA-DarXq1-A.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-g7gbuH2w.js → ishikawaDiagram-YF4QCWOH-GxDaDlT0.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-euefICGn.js → journeyDiagram-JHISSGLW-mDEoGBzY.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Dws8-mjG.js → kanban-definition-UN3LZRKU-Ds0t-Mup.js} +1 -1
- package/web-shell/assets/{linear-C63F0tyh.js → linear-05nJ0xZ7.js} +1 -1
- package/web-shell/assets/{mermaid.core-fLrhp_4-.js → mermaid.core-Bua24ThM.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-qRkydfT-.js → mindmap-definition-RKZ34NQL-D_zRdvUS.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BZ0wQaKN.js → pieDiagram-4H26LBE5-DZHr1x16.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js → quadrantDiagram-W4KKPZXB-HA06Wf0h.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CqWvjLHU.js → requirementDiagram-4Y6WPE33-DH3urmJf.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-VcXX6PVZ.js → sankeyDiagram-5OEKKPKP-C4xgz0TT.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BJSRtxFr.js → sequenceDiagram-3UESZ5HK-DAUoZWgv.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-Dt9zUwmZ.js → stateDiagram-AJRCARHV-v7NzXy4l.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CtdFexEf.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DQwlNRws.js → timeline-definition-PNZ67QCA-B3GTYR2W.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DwxjUEtQ.js → vennDiagram-CIIHVFJN-BWHjSPAq.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-D3QdMSpJ.js → wardley-L42UT6IY-m9r6IUBC.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BddN8oK8.js → wardleyDiagram-YWT4CUSO-kT0FkVfK.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BUNuBrRJ.js → xychartDiagram-2RQKCTM6-CYRm10z5.js} +1 -1
- package/web-shell/index.html +2 -2
- package/web-shell/assets/channel-A434sWK5.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +0 -1
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FV4TUUDE.js";
|
|
6
6
|
import {
|
|
7
7
|
SessionReferenceService,
|
|
8
8
|
SessionService,
|
|
9
9
|
readManyFiles,
|
|
10
10
|
stripTerminalControlSequences
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-E2SYUEIA.js";
|
|
12
12
|
import {
|
|
13
13
|
emptyMcpResourceText,
|
|
14
14
|
formatMcpResourceContents,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-ZPJWUGCS.js";
|
|
17
17
|
import {
|
|
18
18
|
shouldRunVisionBridge
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JDJ7SC4E.js";
|
|
20
20
|
import {
|
|
21
21
|
Storage,
|
|
22
22
|
getErrorMessage,
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
performStandaloneUpdate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-THLV7YGY.js";
|
|
6
6
|
import {
|
|
7
7
|
updateEventEmitter
|
|
8
8
|
} from "./chunk-YAF2MQZ6.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FV4TUUDE.js";
|
|
12
12
|
import {
|
|
13
13
|
getInstallationInfo,
|
|
14
14
|
resolveUpdateCommand
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RNKGMZEW.js";
|
|
16
16
|
import {
|
|
17
17
|
createDebugLogger
|
|
18
18
|
} from "./chunk-3RXUYQJI.js";
|
|
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
|
|
|
64
64
|
}
|
|
65
65
|
__name(runExitCleanup, "runExitCleanup");
|
|
66
66
|
async function cleanupCheckpoints() {
|
|
67
|
-
const { Storage } = await import("./deferred-core-runtime-
|
|
67
|
+
const { Storage } = await import("./deferred-core-runtime-ZQ4JIAJD.js");
|
|
68
68
|
const storage = new Storage(process.cwd());
|
|
69
69
|
const tempDir = storage.getProjectTempDir();
|
|
70
70
|
const checkpointsDir = join(tempDir, "checkpoints");
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-3Z43GZUQ.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FV4TUUDE.js";
|
|
12
12
|
import {
|
|
13
13
|
So
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-E2SYUEIA.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger
|
|
17
17
|
} from "./chunk-3RXUYQJI.js";
|
|
@@ -407,18 +407,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
407
407
|
try {
|
|
408
408
|
if (authType === "openai" /* USE_OPENAI */) {
|
|
409
409
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
410
|
-
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-
|
|
410
|
+
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-PGFSOMIQ.js");
|
|
411
411
|
return createOpenAIContentGenerator(generatorConfig, config);
|
|
412
412
|
}, "loadBaseGenerator");
|
|
413
413
|
} else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
414
|
-
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-
|
|
414
|
+
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-IOAXKJ3L.js");
|
|
415
415
|
try {
|
|
416
416
|
const qwenClient = await getQwenOauthClient(
|
|
417
417
|
config,
|
|
418
418
|
isInitialAuth ? { requireCachedCredentials: true } : void 0
|
|
419
419
|
);
|
|
420
420
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
421
|
-
const { QwenContentGenerator } = await import("./qwenContentGenerator-
|
|
421
|
+
const { QwenContentGenerator } = await import("./qwenContentGenerator-QC3KSHSX.js");
|
|
422
422
|
return new QwenContentGenerator(qwenClient, generatorConfig, config);
|
|
423
423
|
}, "loadBaseGenerator");
|
|
424
424
|
} catch (error) {
|
|
@@ -429,12 +429,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
429
429
|
}
|
|
430
430
|
} else if (authType === "anthropic" /* USE_ANTHROPIC */) {
|
|
431
431
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
432
|
-
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-
|
|
432
|
+
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-3CAHEZBM.js");
|
|
433
433
|
return createAnthropicContentGenerator(generatorConfig, config);
|
|
434
434
|
}, "loadBaseGenerator");
|
|
435
435
|
} else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
|
|
436
436
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
437
|
-
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-
|
|
437
|
+
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-M3HJTHKR.js");
|
|
438
438
|
return createGeminiContentGenerator(generatorConfig, config);
|
|
439
439
|
}, "loadBaseGenerator");
|
|
440
440
|
} else {
|
|
@@ -450,7 +450,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
450
450
|
try {
|
|
451
451
|
const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
|
|
452
452
|
loadBaseGenerator(),
|
|
453
|
-
import("./loggingContentGenerator-
|
|
453
|
+
import("./loggingContentGenerator-2JEFU25T.js")
|
|
454
454
|
]);
|
|
455
455
|
return new LoggingContentGenerator(
|
|
456
456
|
baseGenerator,
|
|
@@ -8,16 +8,16 @@ import {
|
|
|
8
8
|
initializeI18n,
|
|
9
9
|
resolveLanguageSetting,
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FV4TUUDE.js";
|
|
12
12
|
import {
|
|
13
13
|
IdeClient
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-E2SYUEIA.js";
|
|
15
15
|
import {
|
|
16
16
|
AuthEvent,
|
|
17
17
|
IdeConnectionEvent,
|
|
18
18
|
logAuth,
|
|
19
19
|
logIdeConnection
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JDJ7SC4E.js";
|
|
21
21
|
import {
|
|
22
22
|
getErrorMessage
|
|
23
23
|
} from "./chunk-3RXUYQJI.js";
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
staleArgsWarning,
|
|
10
10
|
validateAuthMethod,
|
|
11
11
|
writeSkillArgs
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2T3RYG4L.js";
|
|
13
13
|
import {
|
|
14
14
|
isKittyProtocolEnabled
|
|
15
15
|
} from "./chunk-NYX53SV4.js";
|
|
16
16
|
import {
|
|
17
17
|
contextCommand
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-C5YFS6VR.js";
|
|
19
19
|
import {
|
|
20
20
|
calculateCost,
|
|
21
21
|
computeSessionStats,
|
|
@@ -24,20 +24,20 @@ import {
|
|
|
24
24
|
findInlineMathExpressions,
|
|
25
25
|
getSystemInfoFields,
|
|
26
26
|
levelLabel
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-DJA7YBLJ.js";
|
|
28
28
|
import {
|
|
29
29
|
VSCODE_SHIFT_ENTER_SEQUENCE,
|
|
30
30
|
writeOsc52
|
|
31
31
|
} from "./chunk-3LGZEYOF.js";
|
|
32
32
|
import {
|
|
33
33
|
rollbackStandaloneUpdate
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-THLV7YGY.js";
|
|
35
35
|
import {
|
|
36
36
|
themeManager
|
|
37
37
|
} from "./chunk-KKN2IE7Q.js";
|
|
38
38
|
import {
|
|
39
39
|
getErrorMessage as getErrorMessage2
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-EJXATV5R.js";
|
|
41
41
|
import {
|
|
42
42
|
GITHUB_WORKFLOW_PATHS,
|
|
43
43
|
INSIGHT_CSS,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
toJson,
|
|
52
52
|
toJsonl,
|
|
53
53
|
toMarkdown
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-DHNFB7NC.js";
|
|
55
55
|
import {
|
|
56
56
|
stripUnsafeCharacters,
|
|
57
57
|
toCodePoints
|
|
@@ -63,12 +63,12 @@ import {
|
|
|
63
63
|
isVoiceEnabled,
|
|
64
64
|
readVoiceMode,
|
|
65
65
|
readVoiceModel
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-FPPVCCAH.js";
|
|
67
67
|
import {
|
|
68
68
|
getExtendedSystemInfo,
|
|
69
69
|
getGitVersion,
|
|
70
70
|
getNpmVersion
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-XPAY4EMH.js";
|
|
72
72
|
import {
|
|
73
73
|
formatDuration,
|
|
74
74
|
formatTokenCount
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
import {
|
|
77
77
|
isInlineModelOverrideAllowed,
|
|
78
78
|
parseAcpModelOption
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-IMGNGOGC.js";
|
|
80
80
|
import {
|
|
81
81
|
OUTPUT_LANGUAGE_AUTO,
|
|
82
82
|
getAllSettingKeys,
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
resolveOutputLanguageOrPreserveAuto,
|
|
89
89
|
validateSettingValue,
|
|
90
90
|
writeOutputLanguageAndRegisterPath
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-KB6VSG2U.js";
|
|
92
92
|
import {
|
|
93
93
|
SUPPORTED_LANGUAGES,
|
|
94
94
|
getCurrentLanguage,
|
|
@@ -96,14 +96,14 @@ import {
|
|
|
96
96
|
resolveSupportedLanguage,
|
|
97
97
|
setLanguageAsync,
|
|
98
98
|
t
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-FV4TUUDE.js";
|
|
100
100
|
import {
|
|
101
101
|
getInstallationInfo
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-RNKGMZEW.js";
|
|
103
103
|
import {
|
|
104
104
|
isFolderTrustEnabled,
|
|
105
105
|
loadTrustedFolders
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-URVJ4AZC.js";
|
|
107
107
|
import {
|
|
108
108
|
require_strip_json_comments
|
|
109
109
|
} from "./chunk-ALGGS7UH.js";
|
|
@@ -174,13 +174,13 @@ import {
|
|
|
174
174
|
runForkedAgent,
|
|
175
175
|
tryGenerateSessionTitle,
|
|
176
176
|
unregisterGoalHook
|
|
177
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-E2SYUEIA.js";
|
|
178
178
|
import {
|
|
179
179
|
external_exports
|
|
180
180
|
} from "./chunk-H6XPXXMH.js";
|
|
181
181
|
import {
|
|
182
182
|
resolveModelId
|
|
183
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-DZPOYHBT.js";
|
|
184
184
|
import {
|
|
185
185
|
getAutoSkillCuratorStatus,
|
|
186
186
|
parse,
|
|
@@ -195,11 +195,11 @@ import {
|
|
|
195
195
|
} from "./chunk-A5YZ3FA2.js";
|
|
196
196
|
import {
|
|
197
197
|
APPROVAL_MODES
|
|
198
|
-
} from "./chunk-
|
|
198
|
+
} from "./chunk-LLMGP5IC.js";
|
|
199
199
|
import {
|
|
200
200
|
FORK_SUBAGENT_TYPE,
|
|
201
201
|
stripStartupContext
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-7UXI6P72.js";
|
|
203
203
|
import {
|
|
204
204
|
applySkillAllowedTools,
|
|
205
205
|
buildSkillLlmContent
|
|
@@ -213,7 +213,7 @@ import {
|
|
|
213
213
|
} from "./chunk-DGEIYUC3.js";
|
|
214
214
|
import {
|
|
215
215
|
resolveOpenAILogDir
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-SBBHZ3YT.js";
|
|
217
217
|
import {
|
|
218
218
|
IdeConnectionEvent,
|
|
219
219
|
formatTokenUsageSummaryAsCsv,
|
|
@@ -227,7 +227,7 @@ import {
|
|
|
227
227
|
recordSkillInvocation,
|
|
228
228
|
runSideQuery,
|
|
229
229
|
uiTelemetryService
|
|
230
|
-
} from "./chunk-
|
|
230
|
+
} from "./chunk-JDJ7SC4E.js";
|
|
231
231
|
import {
|
|
232
232
|
getAutoMemoryRoot
|
|
233
233
|
} from "./chunk-E4WHKETF.js";
|
|
@@ -248,7 +248,7 @@ import {
|
|
|
248
248
|
isCpuProfileRecording,
|
|
249
249
|
startCpuProfile,
|
|
250
250
|
stopCpuProfile
|
|
251
|
-
} from "./chunk-
|
|
251
|
+
} from "./chunk-KHSJSMFS.js";
|
|
252
252
|
import {
|
|
253
253
|
init_esbuild_shims
|
|
254
254
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1945,7 +1945,7 @@ var approvalModeCommand = {
|
|
|
1945
1945
|
};
|
|
1946
1946
|
}
|
|
1947
1947
|
}
|
|
1948
|
-
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-
|
|
1948
|
+
const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-4C2KM345.js") : void 0;
|
|
1949
1949
|
if (config) {
|
|
1950
1950
|
try {
|
|
1951
1951
|
config.setApprovalMode(mode);
|
|
@@ -6532,12 +6532,12 @@ var goalCommand = {
|
|
|
6532
6532
|
kind: "built-in" /* BUILT_IN */,
|
|
6533
6533
|
supportedModes: ["interactive", "non_interactive", "acp"],
|
|
6534
6534
|
action: /* @__PURE__ */ __name(async (context, args) => {
|
|
6535
|
-
if (context.executionMode
|
|
6535
|
+
if (context.executionMode === "acp") {
|
|
6536
6536
|
const operation2 = parseGoalCommand(args);
|
|
6537
6537
|
if (operation2.kind === "error") return errorMessage(operation2.message);
|
|
6538
6538
|
if (operation2.kind !== "status" && operation2.kind !== "clear" && operation2.kind !== "set") {
|
|
6539
6539
|
return errorMessage(
|
|
6540
|
-
`'/goal ${operation2.kind}' is
|
|
6540
|
+
`'/goal ${operation2.kind}' is not available in ACP mode.`
|
|
6541
6541
|
);
|
|
6542
6542
|
}
|
|
6543
6543
|
const explicitSet = operation2.kind === "set";
|
|
@@ -6682,7 +6682,7 @@ var expandNowCommand = {
|
|
|
6682
6682
|
content: t("History is already expanded in this session.")
|
|
6683
6683
|
};
|
|
6684
6684
|
}
|
|
6685
|
-
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-
|
|
6685
|
+
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-O62RDCZ3.js");
|
|
6686
6686
|
const updated = expandCollapsedHistory(history);
|
|
6687
6687
|
loadHistory(updated);
|
|
6688
6688
|
refreshStatic();
|
|
@@ -11143,6 +11143,59 @@ var statsCommand = {
|
|
|
11143
11143
|
init_esbuild_shims();
|
|
11144
11144
|
import * as fsPromises from "fs/promises";
|
|
11145
11145
|
import path12 from "path";
|
|
11146
|
+
var realpathNearestExisting3 = /* @__PURE__ */ __name(async (targetPath) => {
|
|
11147
|
+
let currentPath = targetPath;
|
|
11148
|
+
for (; ; ) {
|
|
11149
|
+
try {
|
|
11150
|
+
return await fsPromises.realpath(currentPath);
|
|
11151
|
+
} catch (error) {
|
|
11152
|
+
if (error.code !== "ENOENT") {
|
|
11153
|
+
throw error;
|
|
11154
|
+
}
|
|
11155
|
+
const parentPath = path12.dirname(currentPath);
|
|
11156
|
+
if (parentPath === currentPath) {
|
|
11157
|
+
return currentPath;
|
|
11158
|
+
}
|
|
11159
|
+
currentPath = parentPath;
|
|
11160
|
+
}
|
|
11161
|
+
}
|
|
11162
|
+
}, "realpathNearestExisting");
|
|
11163
|
+
var assertLeafNotSymlinkEscape = /* @__PURE__ */ __name(async (filePath, realProjectRoot) => {
|
|
11164
|
+
let current = filePath;
|
|
11165
|
+
const seen = /* @__PURE__ */ new Set();
|
|
11166
|
+
for (; ; ) {
|
|
11167
|
+
const linkStat = await fsPromises.lstat(current).catch(() => null);
|
|
11168
|
+
if (!linkStat?.isSymbolicLink()) break;
|
|
11169
|
+
if (seen.has(current)) {
|
|
11170
|
+
throw new Error(t("Summary path must be within the project root."));
|
|
11171
|
+
}
|
|
11172
|
+
seen.add(current);
|
|
11173
|
+
const linkTarget = await fsPromises.readlink(current);
|
|
11174
|
+
current = path12.isAbsolute(linkTarget) ? linkTarget : path12.resolve(path12.dirname(current), linkTarget);
|
|
11175
|
+
}
|
|
11176
|
+
const realTarget = await realpathNearestExisting3(current);
|
|
11177
|
+
if (!isSubpath(realProjectRoot, realTarget)) {
|
|
11178
|
+
throw new Error(t("Summary path must be within the project root."));
|
|
11179
|
+
}
|
|
11180
|
+
}, "assertLeafNotSymlinkEscape");
|
|
11181
|
+
var SUMMARY_FOOTER_PREFIX = "\n---\n\n## Summary Metadata\n**Update time**: ";
|
|
11182
|
+
var buildSummaryFooter = /* @__PURE__ */ __name((timestamp) => `${SUMMARY_FOOTER_PREFIX}${timestamp}
|
|
11183
|
+
`, "buildSummaryFooter");
|
|
11184
|
+
var readSummaryTail = /* @__PURE__ */ __name(async (p, bytes = 4096) => {
|
|
11185
|
+
const handle = await fsPromises.open(p, "r");
|
|
11186
|
+
try {
|
|
11187
|
+
const { size } = await handle.stat();
|
|
11188
|
+
const length = Math.min(size, bytes);
|
|
11189
|
+
const buffer = Buffer.alloc(length);
|
|
11190
|
+
await handle.read(buffer, 0, length, Math.max(0, size - length));
|
|
11191
|
+
return buffer.toString("utf8");
|
|
11192
|
+
} finally {
|
|
11193
|
+
await handle.close();
|
|
11194
|
+
}
|
|
11195
|
+
}, "readSummaryTail");
|
|
11196
|
+
var isGeneratedSummary = /* @__PURE__ */ __name((content) => new RegExp(
|
|
11197
|
+
`${SUMMARY_FOOTER_PREFIX.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}[^\\n]*\\n?$`
|
|
11198
|
+
).test(content.replace(/\r\n/g, "\n")), "isGeneratedSummary");
|
|
11146
11199
|
var summaryCommand = {
|
|
11147
11200
|
name: "summary",
|
|
11148
11201
|
get description() {
|
|
@@ -11150,9 +11203,10 @@ var summaryCommand = {
|
|
|
11150
11203
|
"Generate a project summary and save it to .qwen/PROJECT_SUMMARY.md"
|
|
11151
11204
|
);
|
|
11152
11205
|
},
|
|
11206
|
+
argumentHint: "[path]",
|
|
11153
11207
|
kind: "built-in" /* BUILT_IN */,
|
|
11154
11208
|
supportedModes: ["interactive", "non_interactive", "acp"],
|
|
11155
|
-
action: /* @__PURE__ */ __name(async (context) => {
|
|
11209
|
+
action: /* @__PURE__ */ __name(async (context, args) => {
|
|
11156
11210
|
const { config } = context.services;
|
|
11157
11211
|
const { ui } = context;
|
|
11158
11212
|
const executionMode = context.executionMode ?? "interactive";
|
|
@@ -11233,25 +11287,111 @@ var summaryCommand = {
|
|
|
11233
11287
|
}
|
|
11234
11288
|
return result.text;
|
|
11235
11289
|
}, "generateSummaryMarkdown");
|
|
11236
|
-
const
|
|
11290
|
+
const resolveSummaryTarget = /* @__PURE__ */ __name(async () => {
|
|
11237
11291
|
const projectRoot = config.getProjectRoot();
|
|
11238
|
-
const
|
|
11239
|
-
|
|
11240
|
-
|
|
11241
|
-
|
|
11292
|
+
const defaultSummaryPath = path12.join(
|
|
11293
|
+
projectRoot,
|
|
11294
|
+
".qwen",
|
|
11295
|
+
"PROJECT_SUMMARY.md"
|
|
11296
|
+
);
|
|
11297
|
+
const customPath = args?.trim();
|
|
11298
|
+
if (!customPath) {
|
|
11299
|
+
return {
|
|
11300
|
+
summaryPath: defaultSummaryPath,
|
|
11301
|
+
filePathForDisplay: ".qwen/PROJECT_SUMMARY.md",
|
|
11302
|
+
isDefaultTarget: true,
|
|
11303
|
+
realProjectRoot: await fsPromises.realpath(projectRoot)
|
|
11304
|
+
};
|
|
11305
|
+
}
|
|
11306
|
+
const resolved = resolvePath(projectRoot, customPath);
|
|
11307
|
+
if (!isSubpath(projectRoot, resolved)) {
|
|
11308
|
+
throw new Error(t("Summary path must be within the project root."));
|
|
11309
|
+
}
|
|
11310
|
+
const realProjectRoot = await fsPromises.realpath(projectRoot);
|
|
11311
|
+
await assertLeafNotSymlinkEscape(resolved, realProjectRoot);
|
|
11312
|
+
const realResolved = await realpathNearestExisting3(resolved);
|
|
11313
|
+
if (!isSubpath(realProjectRoot, realResolved)) {
|
|
11314
|
+
throw new Error(t("Summary path must be within the project root."));
|
|
11315
|
+
}
|
|
11316
|
+
const hasTrailingSep = customPath.endsWith("/") || customPath.endsWith(path12.sep);
|
|
11317
|
+
const resolvedStat = await fsPromises.stat(resolved).catch(() => null);
|
|
11318
|
+
if (hasTrailingSep && resolvedStat?.isFile()) {
|
|
11319
|
+
throw new Error(
|
|
11320
|
+
t(
|
|
11321
|
+
"Summary path ends with a separator but is an existing file: {{path}}",
|
|
11322
|
+
{ path: customPath }
|
|
11323
|
+
)
|
|
11324
|
+
);
|
|
11242
11325
|
}
|
|
11243
|
-
const
|
|
11326
|
+
const isDir = hasTrailingSep || (resolvedStat?.isDirectory() ?? false);
|
|
11327
|
+
const summaryPath = isDir ? path12.join(resolved, "PROJECT_SUMMARY.md") : resolved;
|
|
11328
|
+
if (isDir) {
|
|
11329
|
+
await assertLeafNotSymlinkEscape(summaryPath, realProjectRoot);
|
|
11330
|
+
}
|
|
11331
|
+
const filePathForDisplay = (path12.isAbsolute(customPath) ? summaryPath : path12.relative(projectRoot, summaryPath)).replaceAll(path12.sep, "/");
|
|
11332
|
+
const isDefaultTarget = summaryPath === defaultSummaryPath;
|
|
11333
|
+
const existingStat = await fsPromises.stat(summaryPath).catch(() => null);
|
|
11334
|
+
if (existingStat?.isDirectory()) {
|
|
11335
|
+
throw new Error(
|
|
11336
|
+
t("Summary path resolves to an existing directory: {{path}}", {
|
|
11337
|
+
path: filePathForDisplay
|
|
11338
|
+
})
|
|
11339
|
+
);
|
|
11340
|
+
}
|
|
11341
|
+
if (!isDefaultTarget && existingStat?.isFile() && existingStat.size > 0) {
|
|
11342
|
+
const existing = await readSummaryTail(summaryPath).catch(() => "");
|
|
11343
|
+
if (!isGeneratedSummary(existing)) {
|
|
11344
|
+
throw new Error(
|
|
11345
|
+
t(
|
|
11346
|
+
"Summary path already exists and is not a generated summary: {{path}}",
|
|
11347
|
+
{ path: filePathForDisplay }
|
|
11348
|
+
)
|
|
11349
|
+
);
|
|
11350
|
+
}
|
|
11351
|
+
}
|
|
11352
|
+
return {
|
|
11353
|
+
summaryPath,
|
|
11354
|
+
filePathForDisplay,
|
|
11355
|
+
isDefaultTarget,
|
|
11356
|
+
realProjectRoot
|
|
11357
|
+
};
|
|
11358
|
+
}, "resolveSummaryTarget");
|
|
11359
|
+
const saveSummaryToDisk = /* @__PURE__ */ __name(async (markdownSummary, target) => {
|
|
11244
11360
|
const summaryContent = `${markdownSummary}
|
|
11245
|
-
|
|
11246
|
-
|
|
11247
|
-
|
|
11248
|
-
|
|
11249
|
-
|
|
11250
|
-
|
|
11251
|
-
|
|
11361
|
+
${buildSummaryFooter(
|
|
11362
|
+
(/* @__PURE__ */ new Date()).toISOString()
|
|
11363
|
+
)}`;
|
|
11364
|
+
if (!target.isDefaultTarget) {
|
|
11365
|
+
await assertLeafNotSymlinkEscape(
|
|
11366
|
+
target.summaryPath,
|
|
11367
|
+
target.realProjectRoot
|
|
11368
|
+
);
|
|
11369
|
+
}
|
|
11370
|
+
const preWriteStat = await fsPromises.stat(target.summaryPath).catch(() => null);
|
|
11371
|
+
if (!target.isDefaultTarget && preWriteStat?.isFile() && preWriteStat.size > 0) {
|
|
11372
|
+
const existing = await readSummaryTail(target.summaryPath).catch(
|
|
11373
|
+
() => ""
|
|
11374
|
+
);
|
|
11375
|
+
if (!isGeneratedSummary(existing)) {
|
|
11376
|
+
throw new Error(
|
|
11377
|
+
t(
|
|
11378
|
+
"Summary path already exists and is not a generated summary: {{path}}",
|
|
11379
|
+
{ path: target.filePathForDisplay }
|
|
11380
|
+
)
|
|
11381
|
+
);
|
|
11382
|
+
}
|
|
11383
|
+
}
|
|
11384
|
+
await fsPromises.mkdir(path12.dirname(target.summaryPath), {
|
|
11385
|
+
recursive: true,
|
|
11386
|
+
...target.isDefaultTarget ? { mode: 448 } : {}
|
|
11387
|
+
});
|
|
11388
|
+
await fsPromises.writeFile(target.summaryPath, summaryContent, {
|
|
11389
|
+
encoding: "utf8",
|
|
11390
|
+
mode: 384
|
|
11391
|
+
});
|
|
11252
11392
|
return {
|
|
11253
|
-
filePathForDisplay:
|
|
11254
|
-
fullPath: summaryPath
|
|
11393
|
+
filePathForDisplay: target.filePathForDisplay,
|
|
11394
|
+
fullPath: target.summaryPath
|
|
11255
11395
|
};
|
|
11256
11396
|
}, "saveSummaryToDisk");
|
|
11257
11397
|
const emitInteractivePending = /* @__PURE__ */ __name((stage) => {
|
|
@@ -11325,13 +11465,17 @@ var summaryCommand = {
|
|
|
11325
11465
|
};
|
|
11326
11466
|
}, "returnNoConversationMessage");
|
|
11327
11467
|
const executeSummaryGeneration = /* @__PURE__ */ __name(async (history2) => {
|
|
11468
|
+
const target = await resolveSummaryTarget();
|
|
11328
11469
|
emitInteractivePending("generating");
|
|
11329
11470
|
const markdownSummary = await generateSummaryMarkdown(history2);
|
|
11330
11471
|
if (abortSignal?.aborted) {
|
|
11331
11472
|
throw new DOMException("Summary generation cancelled.", "AbortError");
|
|
11332
11473
|
}
|
|
11333
11474
|
emitInteractivePending("saving");
|
|
11334
|
-
const { filePathForDisplay } = await saveSummaryToDisk(
|
|
11475
|
+
const { filePathForDisplay } = await saveSummaryToDisk(
|
|
11476
|
+
markdownSummary,
|
|
11477
|
+
target
|
|
11478
|
+
);
|
|
11335
11479
|
completeInteractive(filePathForDisplay);
|
|
11336
11480
|
return { markdownSummary, filePathForDisplay };
|
|
11337
11481
|
}, "executeSummaryGeneration");
|
|
@@ -11385,7 +11529,7 @@ var summaryCommand = {
|
|
|
11385
11529
|
return {
|
|
11386
11530
|
type: "message",
|
|
11387
11531
|
messageType: "error",
|
|
11388
|
-
content: formatErrorMessage3(error)
|
|
11532
|
+
content: executionMode === "interactive" ? "" : formatErrorMessage3(error)
|
|
11389
11533
|
};
|
|
11390
11534
|
}
|
|
11391
11535
|
}, "action")
|
|
@@ -13750,10 +13894,10 @@ var updateCommand = {
|
|
|
13750
13894
|
{ performStandaloneUpdate },
|
|
13751
13895
|
installationInfo
|
|
13752
13896
|
] = await Promise.all([
|
|
13753
|
-
import("./updateCheck-
|
|
13754
|
-
import("./processUtils-
|
|
13755
|
-
import("./standalone-update-
|
|
13756
|
-
import("./installationInfo-
|
|
13897
|
+
import("./updateCheck-42SPCLH7.js"),
|
|
13898
|
+
import("./processUtils-6BCPCJZW.js"),
|
|
13899
|
+
import("./standalone-update-Y5JB4S2K.js"),
|
|
13900
|
+
import("./installationInfo-IWMM6DPV.js")
|
|
13757
13901
|
]);
|
|
13758
13902
|
const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
|
|
13759
13903
|
const settings = context.services.settings;
|
|
@@ -15307,6 +15451,12 @@ function handleCommandResult(result, outputHistoryItems) {
|
|
|
15307
15451
|
type: "stream_messages",
|
|
15308
15452
|
messages: result.messages
|
|
15309
15453
|
};
|
|
15454
|
+
case "goal_control":
|
|
15455
|
+
return {
|
|
15456
|
+
type: "goal_control",
|
|
15457
|
+
operation: result.operation,
|
|
15458
|
+
response: result.response
|
|
15459
|
+
};
|
|
15310
15460
|
/**
|
|
15311
15461
|
* Currently return types below are never generated due to the
|
|
15312
15462
|
* whitelist of allowed slash commands in ACP and non-interactive mode.
|
|
@@ -15348,12 +15498,6 @@ function handleCommandResult(result, outputHistoryItems) {
|
|
|
15348
15498
|
reason: "Action confirmation is not supported in non-interactive mode. Commands requiring confirmation cannot be executed.",
|
|
15349
15499
|
originalType: "confirm_action"
|
|
15350
15500
|
};
|
|
15351
|
-
case "goal_control":
|
|
15352
|
-
return {
|
|
15353
|
-
type: "unsupported",
|
|
15354
|
-
reason: "Goal control is not supported in non-interactive mode yet.",
|
|
15355
|
-
originalType: "goal_control"
|
|
15356
|
-
};
|
|
15357
15501
|
default: {
|
|
15358
15502
|
const _exhaustive = result;
|
|
15359
15503
|
return {
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
useKeypress
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OOPFAIWP.js";
|
|
6
6
|
import {
|
|
7
7
|
require_react
|
|
8
8
|
} from "./chunk-5QWWOFGG.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-FV4TUUDE.js";
|
|
12
12
|
import {
|
|
13
13
|
APPROVAL_MODES
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-LLMGP5IC.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esbuild_shims
|
|
17
17
|
} from "./chunk-5O2XNYP6.js";
|