@qwen-code/qwen-code 0.21.2-nightly.20260801.bc382c3ff → 0.21.3
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 +34 -32
- package/bundled/qc-helper/docs/features/code-review.md +78 -23
- package/bundled/qc-helper/docs/features/commands.md +1 -0
- package/bundled/qc-helper/docs/features/skills.md +32 -1
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +12 -12
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
- package/bundled/review/DESIGN.md +167 -32
- package/bundled/review/SKILL.md +156 -32
- package/chunks/{MaxSizedBox-CDHTDITS.js → MaxSizedBox-OJR636GP.js} +14 -13
- package/chunks/{StandaloneSessionPicker-L63HUAHP.js → StandaloneSessionPicker-AMMBF5UY.js} +34 -32
- package/chunks/{acpAgent-6WVVT2P3.js → acpAgent-M57LVIQA.js} +80 -78
- package/chunks/{agent-KDM4CBOU.js → agent-PE37ARLM.js} +13 -12
- package/chunks/{agent-headless-AS7K2K57.js → agent-headless-45ASME4R.js} +13 -12
- package/chunks/{artifact-tool-ANV4CFCR.js → artifact-tool-TBOYEKTY.js} +1 -1
- package/chunks/{askUserQuestion-MALEB47H.js → askUserQuestion-23Y5WZFJ.js} +1 -1
- package/chunks/{bridge-JNEW6FES.js → bridge-K3ZRPO4D.js} +14 -13
- package/chunks/{channel-management-service-QOO7TD3T.js → channel-management-service-IXJ2MZTS.js} +6 -6
- package/chunks/{channel-settings-store-4CSMTR4L.js → channel-settings-store-PEAR3IME.js} +19 -18
- package/chunks/{channel-worker-group-ERSUOPIR.js → channel-worker-group-NDG4WOOZ.js} +4 -4
- package/chunks/{channel-worker-manager-X247YDQ7.js → channel-worker-manager-ZCW6UW34.js} +4 -4
- package/chunks/{channel-worker-supervisor-ORJIEEPP.js → channel-worker-supervisor-ATGFTZRN.js} +3 -3
- package/chunks/{chunk-LAPK3GLC.js → chunk-22YFMJBW.js} +24 -6
- package/chunks/{chunk-UHTJC7O3.js → chunk-24ER7UV4.js} +1 -1
- package/chunks/{chunk-3WXMXT7C.js → chunk-2LZCLQIS.js} +5 -5
- package/chunks/{chunk-NZB4NDJL.js → chunk-2MI7ZTRT.js} +4 -4
- package/chunks/{chunk-C4L2MEIT.js → chunk-3MWNROHB.js} +3 -3
- package/chunks/{chunk-2PNQQ4UR.js → chunk-3XF4WT3B.js} +1 -1
- package/chunks/{chunk-TNVKFQXQ.js → chunk-4AGGSHCH.js} +383 -153
- package/chunks/{chunk-M2F5PLOW.js → chunk-4K3RV3OA.js} +3 -3
- package/chunks/{chunk-5UJ6A3CH.js → chunk-5JPVOYWA.js} +5 -5
- package/chunks/{chunk-AYB4HSBI.js → chunk-5VYFXHY2.js} +3 -3
- package/chunks/{chunk-AQEWCKX4.js → chunk-6NE5NTHJ.js} +1 -1
- package/chunks/{chunk-XSA5EKTJ.js → chunk-BKGA75MU.js} +1 -1
- package/chunks/{chunk-MBKPUM5Y.js → chunk-BKXTHMOZ.js} +1 -1
- package/chunks/{chunk-LL4U3BSH.js → chunk-BSKUTHLO.js} +3 -3
- package/chunks/{chunk-I5GNT6ZS.js → chunk-CFDR3GNL.js} +11 -2
- package/chunks/{chunk-DVGTU5TC.js → chunk-CIUUYB23.js} +2 -2
- package/chunks/{chunk-BKUN5QHP.js → chunk-D2GPKXCQ.js} +4 -4
- package/chunks/{chunk-GB3AB7TR.js → chunk-DIEFUBV6.js} +1 -0
- package/chunks/{chunk-KXSYDCP2.js → chunk-DSGJLHM3.js} +3 -3
- package/chunks/{chunk-PHODQP2V.js → chunk-EGYJRIDF.js} +2 -2
- package/chunks/{chunk-XCLLRKY5.js → chunk-EIMKVOSF.js} +1 -1
- package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
- package/chunks/{chunk-42IKVPST.js → chunk-FF75UUB2.js} +1 -1
- package/chunks/{chunk-FJHA23GM.js → chunk-FG63DZQA.js} +9 -9
- package/chunks/{chunk-5UZITEHA.js → chunk-FHPKHXHT.js} +2 -2
- package/chunks/{chunk-25QQVOCG.js → chunk-FXVHVCNA.js} +1 -1
- package/chunks/{chunk-7MY2AR5A.js → chunk-GMSBXEH4.js} +9 -9
- package/chunks/{chunk-TFFMATHX.js → chunk-H35Q5CEG.js} +5 -5
- package/chunks/{chunk-WISQLM4Q.js → chunk-H6FIBBXK.js} +1177 -1806
- package/chunks/{chunk-DUIJ2IXG.js → chunk-H6ZYP74A.js} +1 -1
- package/chunks/{chunk-XFDPIC4P.js → chunk-HEBW74ZW.js} +3 -3
- package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
- package/chunks/{chunk-3MHPWQ2M.js → chunk-HIXVWF7I.js} +37 -8
- package/chunks/{chunk-GVISB2OH.js → chunk-HUIQ4FYC.js} +2 -2
- package/chunks/{chunk-K5Q62CGR.js → chunk-IF6K42YJ.js} +1 -1
- package/chunks/{chunk-VWF42XC6.js → chunk-IWGTGH4G.js} +4 -4
- package/chunks/{chunk-SWEBEXPI.js → chunk-K2J5JZ6B.js} +1 -1
- package/chunks/{chunk-CHCLO3M7.js → chunk-KXWERR6P.js} +4 -4
- package/chunks/{chunk-OCRM53TT.js → chunk-L7FTDKCD.js} +3 -3
- package/chunks/{chunk-2CTKGIFR.js → chunk-LGT3YMLN.js} +4 -4
- package/chunks/{chunk-7IYLHTTM.js → chunk-LZV2BZPL.js} +2 -2
- package/chunks/{chunk-434YCHSV.js → chunk-M5LIY7Y6.js} +1 -1
- package/chunks/{chunk-JRIDA5HF.js → chunk-MCXMWLFT.js} +5 -5
- package/chunks/{chunk-433VD3HX.js → chunk-MTR4JWQJ.js} +4 -4
- package/chunks/{chunk-WP4HGHFG.js → chunk-MUEJ4R3E.js} +3 -3
- package/chunks/{chunk-UHQ3L6GC.js → chunk-N42C2FU3.js} +1 -1
- package/chunks/{chunk-KG22G46Y.js → chunk-NW57GHNL.js} +69 -5
- package/chunks/chunk-PWCQRLM5.js +1170 -0
- package/chunks/{chunk-H4DSRWAS.js → chunk-Q3G5L5KF.js} +4 -4
- package/chunks/{chunk-SK2UKB45.js → chunk-QDWLUXKP.js} +1 -1
- package/chunks/{chunk-VS3GXRNZ.js → chunk-QPSYIV2O.js} +3114 -512
- package/chunks/{chunk-GHJM2C2T.js → chunk-QWDVZH24.js} +3 -3
- package/chunks/{chunk-UWLG4UCE.js → chunk-QWW6I2UO.js} +13 -13
- package/chunks/{chunk-W7XZ3KP5.js → chunk-R7XNRHYD.js} +1 -1
- package/chunks/{chunk-PGP7Y3RQ.js → chunk-RCXCGZG6.js} +4 -4
- package/chunks/{chunk-MSIVKDRC.js → chunk-RL6J3BPE.js} +3 -3
- package/chunks/{chunk-H6MC6VQX.js → chunk-RR224BUP.js} +4 -3
- package/chunks/{chunk-7K2WTPQO.js → chunk-SKSF3LGQ.js} +4 -4
- package/chunks/{chunk-II6WPWHY.js → chunk-SQ3YD5MI.js} +1 -1
- package/chunks/{chunk-PGEGUNH5.js → chunk-SRY26X4H.js} +22 -199
- package/chunks/{chunk-OBAIHYFT.js → chunk-TXABHVZD.js} +1 -1
- package/chunks/chunk-TZTBZ25J.js +222 -0
- package/chunks/{chunk-BV4QX43X.js → chunk-UEJESCS7.js} +1 -1
- package/chunks/{chunk-NGWYUZZO.js → chunk-UQDFEU47.js} +318 -125
- package/chunks/{chunk-CWEIMFFW.js → chunk-VA5NLVPT.js} +1 -1
- package/chunks/{chunk-UOFFZNXV.js → chunk-VUNRNRN6.js} +65 -37
- package/chunks/{chunk-K4CGQN4Q.js → chunk-VWOVHOTT.js} +1 -1
- package/chunks/{chunk-I6FAHB4N.js → chunk-WUC6ZFXO.js} +1 -1
- package/chunks/{chunk-2A6MHYIA.js → chunk-WY2ENRDN.js} +1 -1
- package/chunks/{chunk-MYT7N6QH.js → chunk-X6QNZOTC.js} +1 -1
- package/chunks/{chunk-ZTN6OA5J.js → chunk-X6WUYMOV.js} +8 -8
- package/chunks/{chunk-RGJ4JWSU.js → chunk-XMJO6C44.js} +3 -3
- package/chunks/{chunk-PXA5AWHY.js → chunk-XUMAD5IT.js} +1 -1
- package/chunks/{chunk-GALUTA2C.js → chunk-YPUHMQXV.js} +1 -1
- package/chunks/{chunk-A2A34TSB.js → chunk-YU6TBRTA.js} +2 -2
- package/chunks/{chunk-ZRFJ75D7.js → chunk-YWMDTMAU.js} +2 -2
- package/chunks/{chunk-LRJWFR6L.js → chunk-ZGSUFIL5.js} +1 -1
- package/chunks/{chunk-H4346YW5.js → chunk-ZJES4C3I.js} +5 -5
- package/chunks/{computer-use-Z4NCIIJN.js → computer-use-UJMK6JQU.js} +13 -12
- package/chunks/{config-utils-64LM6OEQ.js → config-utils-7COTJMWK.js} +4 -4
- package/chunks/{contextCommand-HVM7XFCB.js → contextCommand-4YABGF4S.js} +16 -15
- package/chunks/{core-runtime-NL3ZBHBU.js → core-runtime-7M4VM3DA.js} +13 -12
- package/chunks/{create-sub-session-XHSCDYFU.js → create-sub-session-HOFDW4N7.js} +13 -12
- package/chunks/{create-sub-session-AM32K2HD.js → create-sub-session-J32WC64U.js} +1 -1
- package/chunks/{cron-create-HPXYE6C5.js → cron-create-HMFSHIAR.js} +1 -1
- package/chunks/{cron-delete-FPVNTKPK.js → cron-delete-ZJFHOX57.js} +1 -1
- package/chunks/{cron-list-ZEI6PAAV.js → cron-list-ZEX2NBMN.js} +1 -1
- package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
- package/chunks/{daemon-status-provider-XD23SNAM.js → daemon-status-provider-W2U5Q3J5.js} +18 -17
- package/chunks/{daemon-trust-policy-NOHK7IW5.js → daemon-trust-policy-IFICWPXP.js} +18 -17
- package/chunks/{daemon-trust-policy-monitor-ZBTSR333.js → daemon-trust-policy-monitor-GX7EO6FW.js} +18 -17
- package/chunks/{deferred-core-runtime-JJBHKM2C.js → deferred-core-runtime-U36OOOKE.js} +13 -12
- package/chunks/display-image-VS3TXYQH.js +184 -0
- package/chunks/{dist-BH76AT7N.js → dist-3BMEUGTG.js} +1 -1
- package/chunks/{dist-BXA3JXVQ.js → dist-4KAX7CCL.js} +1 -1
- package/chunks/{dist-4T4NCJFL.js → dist-7JGAAQSC.js} +2 -2
- package/chunks/{dist-4LAMY2SK.js → dist-A7H2KKUC.js} +1 -1
- package/chunks/{dist-OEEFI6UU.js → dist-DPPHJAVL.js} +3 -3
- package/chunks/{dist-SMLVOWKV.js → dist-HVBMEYWK.js} +1 -1
- package/chunks/{dist-7KOL6OMD.js → dist-NEBRI7WO.js} +1 -1
- package/chunks/{dist-V2RK6S6Q.js → dist-SFQ34F4M.js} +24 -6
- package/chunks/{earlyInputCapture-KLAZDAIP.js → earlyInputCapture-5ZWDH3SB.js} +13 -12
- package/chunks/{edit-YQZWCISX.js → edit-J7SW6UP6.js} +13 -12
- package/chunks/{en-RESOFG55.js → en-L4UQDLWW.js} +11 -1
- package/chunks/{enter-worktree-WLVWI3FP.js → enter-worktree-NRLOHRB6.js} +13 -12
- package/chunks/{enterPlanMode-6RYXFQUD.js → enterPlanMode-GDSTEFSM.js} +13 -12
- package/chunks/{environment-DXJTXSVT.js → environment-KHYEKG5W.js} +15 -14
- package/chunks/{errors-XGAGG2S2.js → errors-VNLAJV3O.js} +15 -14
- package/chunks/{exit-worktree-C4276VPP.js → exit-worktree-ARVID7DF.js} +13 -12
- package/chunks/{exitPlanMode-MM5HIRUF.js → exitPlanMode-4ZFY7KUH.js} +13 -12
- package/chunks/{fast-path-PIXYOHCH.js → fast-path-KA65VREJ.js} +5 -5
- package/chunks/{gemini-43RLVUNP.js → gemini-5PMCNPF7.js} +56 -55
- package/chunks/{geminiContentGenerator-PNQ4TSID.js → geminiContentGenerator-NFSYJ4HA.js} +1 -1
- package/chunks/{glob-ZMBQKAU5.js → glob-F3EAUDAX.js} +13 -12
- package/chunks/{goal-tools-Y767F7LZ.js → goal-tools-SPQ5M6D3.js} +2 -2
- package/chunks/{grep-HSV37W2Q.js → grep-UJMPVZER.js} +13 -12
- package/chunks/{handleAutoUpdate-QDHZPBAY.js → handleAutoUpdate-MG4FRZPN.js} +18 -17
- package/chunks/{i18n-ME22A6RN.js → i18n-EVHV4ZF3.js} +14 -13
- package/chunks/{image-gen-IFC7ZWSB.js → image-gen-UC7XVHI7.js} +2 -2
- package/chunks/{initializer-J7H2CHVB.js → initializer-O5B6HUBI.js} +18 -17
- package/chunks/{installationInfo-R7FXPQN5.js → installationInfo-2LIKCNVX.js} +14 -13
- package/chunks/{list-OYDIBA4N.js → list-BPKIE3Z4.js} +21 -20
- package/chunks/{list-agents-GATIBBQQ.js → list-agents-TWEGRJWO.js} +1 -1
- package/chunks/{loadedSettingsAdapter-OK6GK2GE.js → loadedSettingsAdapter-NGLFF4V4.js} +18 -17
- package/chunks/{loggingContentGenerator-U4ZEG4GL.js → loggingContentGenerator-7TFESRG5.js} +5 -5
- package/chunks/{loop-wakeup-3DZMQQQQ.js → loop-wakeup-6LLEOQYV.js} +2 -2
- package/chunks/{ls-7F4GHXIH.js → ls-H5WX22VK.js} +1 -1
- package/chunks/{lsp-6FEHVBWI.js → lsp-G6FXYEIS.js} +1 -1
- package/chunks/{managed-npm-update-PGKAJLLO.js → managed-npm-update-CLZGGV7F.js} +14 -13
- package/chunks/{mcp-S4DXJD2G.js → mcp-X5OZOOXX.js} +18 -17
- package/chunks/{monitor-E5ZFMT74.js → monitor-TGSVSAZZ.js} +13 -12
- package/chunks/{nonInteractiveCli-HNOHKEPE.js → nonInteractiveCli-GUMJ5JLG.js} +54 -53
- package/chunks/{notebook-edit-6QDN6VZJ.js → notebook-edit-EZISE7IC.js} +13 -12
- package/chunks/{openaiContentGenerator-3NLB2C5O.js → openaiContentGenerator-ZAKS5A6P.js} +5 -5
- package/chunks/{pidfile-ZMOIUGG6.js → pidfile-PCMBX4LR.js} +13 -12
- package/chunks/{processUtils-E4QGQVWW.js → processUtils-2CSVE5BW.js} +2 -2
- package/chunks/{qwenContentGenerator-2LFRWJTM.js → qwenContentGenerator-S3H6PIC4.js} +14 -13
- package/chunks/{qwenOAuth2-N32BUQDC.js → qwenOAuth2-MNU425VE.js} +1 -1
- package/chunks/{read-file-GLDCWZBG.js → read-file-HXJXHBI6.js} +4 -4
- package/chunks/{read-mcp-resource-AFS3UKZO.js → read-mcp-resource-DRZSI3HE.js} +1 -1
- package/chunks/{record-artifact-ECZSCEG5.js → record-artifact-IPIRWMFY.js} +2 -2
- package/chunks/{resumeHistoryUtils-F5BE5QDW.js → resumeHistoryUtils-4QAMC2S6.js} +18 -17
- package/chunks/{ripGrep-T23Y4AGY.js → ripGrep-MCETPF2E.js} +13 -12
- package/chunks/{run-qwen-serve-TI2HGLLU.js → run-qwen-serve-3NMODTXV.js} +43 -43
- package/chunks/{runtime-WCWM3DO7.js → runtime-AQOV7DVP.js} +23 -22
- package/chunks/{scheduler-2QZO5AV5.js → scheduler-DN7SZ6ZE.js} +13 -12
- package/chunks/{send-message-X7G2JSII.js → send-message-HGCVVDTZ.js} +3 -2
- package/chunks/{serve-DZOMYUFU.js → serve-WZB45HVT.js} +18 -17
- package/chunks/{server-N4AJRKIQ.js → server-GOTZFEEZ.js} +86 -54
- package/chunks/{session-GS6AKMN7.js → session-23LOFLWN.js} +55 -54
- package/chunks/{settings-CUN3SELH.js → settings-LI2ORVXC.js} +17 -16
- package/chunks/{shell-NGBFVXC5.js → shell-GLC6OP3C.js} +13 -12
- package/chunks/{skill-SC2BSO75.js → skill-C7W6M4GO.js} +4 -4
- package/chunks/{skill-settings-XVPCPW5K.js → skill-settings-W25NCK5I.js} +17 -16
- package/chunks/{spawnChannel-RILO4YY3.js → spawnChannel-OHJLEBLD.js} +13 -12
- package/chunks/{standalone-update-TMLT6LVJ.js → standalone-update-E4V5V7WT.js} +15 -14
- package/chunks/{startInteractiveUI-J45WOEOU.js → startInteractiveUI-FKILLW7Q.js} +1419 -414
- package/chunks/{syntheticOutput-FHRY3BPQ.js → syntheticOutput-EYL7DWO7.js} +2 -2
- package/chunks/{task-create-LAQXBIHC.js → task-create-CSCEG4SM.js} +4 -3
- package/chunks/{task-list-V6K5DRDH.js → task-list-6CVQPORX.js} +1 -1
- package/chunks/{task-stop-LQXE52L6.js → task-stop-Y5ZTFVRX.js} +1 -1
- package/chunks/{task-update-NXRCXSPB.js → task-update-C52LNFU5.js} +4 -3
- package/chunks/{team-create-W3EVWCTA.js → team-create-HBIJ7NHT.js} +13 -12
- package/chunks/{team-delete-Z4KGO7RC.js → team-delete-CE7DC53R.js} +1 -1
- package/chunks/{team-plan-approval-URYVKJF4.js → team-plan-approval-IBJOKS4J.js} +13 -12
- package/chunks/terminal-image-renderer-BOQJPVLB.js +89 -0
- package/chunks/{theme-manager-CUAMS2NI.js → theme-manager-NSS7VLUD.js} +13 -12
- package/chunks/{todoWrite-OFIZDI7P.js → todoWrite-YKAA57W2.js} +104 -33
- package/chunks/{tool-search-DCICFL32.js → tool-search-DEAS54VG.js} +6 -5
- package/chunks/{total-session-admission-3ZTAXVUK.js → total-session-admission-4LWTX3WD.js} +14 -13
- package/chunks/{trustedFolders-EVCN36O5.js → trustedFolders-NF3J2TA7.js} +14 -13
- package/chunks/{update-relaunch-XLW46RHQ.js → update-relaunch-WUHRH5V3.js} +5 -5
- package/chunks/{updateCheck-ZHVXDAIH.js → updateCheck-7EG4BLBH.js} +17 -16
- package/chunks/{useAutoAcceptIndicator-ZGD6BJSP.js → useAutoAcceptIndicator-ZRV56GVP.js} +21 -20
- package/chunks/{validateNonInterActiveAuth-R3BAQFDY.js → validateNonInterActiveAuth-WC2FPE3I.js} +51 -50
- package/chunks/{version-PMWREGCG.js → version-6SS7KCUP.js} +1 -1
- package/chunks/{web-fetch-PGN27SGF.js → web-fetch-Y5QQMPKA.js} +4 -4
- package/chunks/{web-search-KW4UNMRE.js → web-search-QKKEU723.js} +3 -3
- package/chunks/{workflow-SN3TJBTJ.js → workflow-PWIU6Q2M.js} +102 -37
- package/chunks/{workspace-providers-status-O3HUZGGR.js → workspace-providers-status-B2DM6FNK.js} +20 -19
- package/chunks/{workspace-registration-store-M3FJ74RS.js → workspace-registration-store-7Y33TTHJ.js} +1 -1
- package/chunks/{workspace-registry-U7ISW23N.js → workspace-registry-TSNJKLPC.js} +14 -13
- package/chunks/{workspace-service-VH6IWADT.js → workspace-service-4I2QHDX4.js} +22 -21
- package/chunks/{workspace-skills-status-XANARSZS.js → workspace-skills-status-HVXNWVGR.js} +19 -18
- package/chunks/{workspace-trust-reconciler-35EFR4GC.js → workspace-trust-reconciler-RDBBGMWP.js} +19 -18
- package/chunks/{write-file-NCRSGUDT.js → write-file-RQ4DG5RY.js} +13 -12
- package/chunks/{zh-OHX23Q44.js → zh-72XPUG5P.js} +11 -1
- package/chunks/{zh-TW-4G7YKDAQ.js → zh-TW-LTB4SRH3.js} +11 -1
- package/chunks/{zoom-image-X7CIADYC.js → zoom-image-O5YCB7WN.js} +4 -4
- package/cli.js +26 -15
- package/locales/en.js +17 -2
- package/locales/zh-TW.js +15 -2
- package/locales/zh.js +15 -2
- package/package.json +3 -3
- package/web-shell/assets/{arc-CaMTqKio.js → arc-Bd7d781i.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-Bjxztij2.js → architectureDiagram-3BPJPVTR-CpnOJqNE.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BYJzeHi9.js → blockDiagram-GPEHLZMM-NxVTiWnk.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-fYAa-Eil.js → c4Diagram-AAUBKEIU-BWT75l82.js} +1 -1
- package/web-shell/assets/channel-A434sWK5.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-B1OTlTml.js → chunk-2J33WTMH-Dzz03hk6.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DNj4uy6k.js → chunk-4BX2VUAB-DRF-egfm.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DAqNmg3c.js → chunk-55IACEB6-Co15vq5x.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BwB4ddxE.js → chunk-727SXJPM-DHSUk1J7.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DmHR_UZs.js → chunk-AQP2D5EJ-Br8u_E2R.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BlfOXumo.js → chunk-FMBD7UC4-DXbPTnqF.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BKogiSy7.js → chunk-ND2GUHAM-BleQdi4d.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DEclVrOF.js → chunk-QZHKN3VN-CqgBf-95.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CwtS21WT.js → cose-bilkent-S5V4N54A-WS7b13Yg.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BAAIlB4p.js → dagre-BM42HDAG-v_55ki8o.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-ChljtF_V.js → diagram-2AECGRRQ-DaYAjbdK.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BIXVd31-.js → diagram-5GNKFQAL-D_Hy-L64.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BEiBaS15.js → diagram-KO2AKTUF-dB06cZyD.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-C-g4tWKM.js → diagram-LMA3HP47-DzSluD4F.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CNCCbNQG.js → diagram-OG6HWLK6-Cvb6CeXQ.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-v8ysnsdI.js → erDiagram-TEJ5UH35-7eB2Hmov.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-LKVlLjwA.js → flowDiagram-I6XJVG4X-B08iGCw_.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DA5MrKYG.js → ganttDiagram-6RSMTGT7-BgsrCHq-.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Cyg5fe6d.js → gitGraphDiagram-PVQCEYII-DQLurQ2i.js} +1 -1
- package/web-shell/assets/{index-CKdUkVVS.js → index-B_1Z0Mgr.js} +1 -1
- package/web-shell/assets/index-Bi1dP2mU.css +5 -0
- package/web-shell/assets/index-DJ-z1Oba.js +1756 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-SLsfu3Qd.js → infoDiagram-5YYISTIA-DXZGO8qB.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CmHOmTNx.js → ishikawaDiagram-YF4QCWOH-g7gbuH2w.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-C3gM_HFQ.js → journeyDiagram-JHISSGLW-euefICGn.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BbHD7duM.js → kanban-definition-UN3LZRKU-Dws8-mjG.js} +1 -1
- package/web-shell/assets/{linear-CSBvm435.js → linear-C63F0tyh.js} +1 -1
- package/web-shell/assets/{mermaid.core-CPMw15lU.js → mermaid.core-fLrhp_4-.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C_tNqXQW.js → mindmap-definition-RKZ34NQL-qRkydfT-.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DH_N-8yY.js → pieDiagram-4H26LBE5-BZ0wQaKN.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CRbS8UkN.js → quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DJgdZPZn.js → requirementDiagram-4Y6WPE33-CqWvjLHU.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-vhL1y5zx.js → sankeyDiagram-5OEKKPKP-VcXX6PVZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-UQthhFwd.js → sequenceDiagram-3UESZ5HK-BJSRtxFr.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CAywEm20.js → stateDiagram-AJRCARHV-Dt9zUwmZ.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-CLO8b3FD.js → timeline-definition-PNZ67QCA-DQwlNRws.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BNAAh0Mu.js → vennDiagram-CIIHVFJN-DwxjUEtQ.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CUY7bLpN.js → wardley-L42UT6IY-D3QdMSpJ.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CSg_ORdW.js → wardleyDiagram-YWT4CUSO-BddN8oK8.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BjffV208.js → xychartDiagram-2RQKCTM6-BUNuBrRJ.js} +1 -1
- package/web-shell/index.html +2 -2
- package/web-shell/assets/channel-LEZei0-5.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BiaRhfvf.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BiaRhfvf.js +0 -1
- package/web-shell/assets/index-BgOcEaVt.js +0 -1756
- package/web-shell/assets/index-DA5Lvscv.css +0 -5
- package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-lfJQHw-7.js +0 -1
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
contextCommand
|
|
5
|
-
} from "./chunk-7K2WTPQO.js";
|
|
6
3
|
import {
|
|
7
4
|
ExtensionRefreshState,
|
|
8
5
|
clearSkillArgs,
|
|
@@ -12,7 +9,13 @@ import {
|
|
|
12
9
|
staleArgsWarning,
|
|
13
10
|
validateAuthMethod,
|
|
14
11
|
writeSkillArgs
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QPSYIV2O.js";
|
|
13
|
+
import {
|
|
14
|
+
isKittyProtocolEnabled
|
|
15
|
+
} from "./chunk-NYX53SV4.js";
|
|
16
|
+
import {
|
|
17
|
+
contextCommand
|
|
18
|
+
} from "./chunk-SKSF3LGQ.js";
|
|
16
19
|
import {
|
|
17
20
|
calculateCost,
|
|
18
21
|
computeSessionStats,
|
|
@@ -21,23 +24,20 @@ import {
|
|
|
21
24
|
findInlineMathExpressions,
|
|
22
25
|
getSystemInfoFields,
|
|
23
26
|
levelLabel
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import {
|
|
26
|
-
isKittyProtocolEnabled
|
|
27
|
-
} from "./chunk-NYX53SV4.js";
|
|
27
|
+
} from "./chunk-LZV2BZPL.js";
|
|
28
28
|
import {
|
|
29
29
|
VSCODE_SHIFT_ENTER_SEQUENCE,
|
|
30
30
|
writeOsc52
|
|
31
31
|
} from "./chunk-3LGZEYOF.js";
|
|
32
|
+
import {
|
|
33
|
+
rollbackStandaloneUpdate
|
|
34
|
+
} from "./chunk-YWMDTMAU.js";
|
|
32
35
|
import {
|
|
33
36
|
themeManager
|
|
34
37
|
} from "./chunk-KKN2IE7Q.js";
|
|
35
38
|
import {
|
|
36
39
|
getErrorMessage as getErrorMessage2
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import {
|
|
39
|
-
rollbackStandaloneUpdate
|
|
40
|
-
} from "./chunk-ZRFJ75D7.js";
|
|
40
|
+
} from "./chunk-EGYJRIDF.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-VUNRNRN6.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-BKGA75MU.js";
|
|
67
67
|
import {
|
|
68
68
|
getExtendedSystemInfo,
|
|
69
69
|
getGitVersion,
|
|
70
70
|
getNpmVersion
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-QWDVZH24.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-5VYFXHY2.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-22YFMJBW.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-KXWERR6P.js";
|
|
100
100
|
import {
|
|
101
101
|
getInstallationInfo
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-FXVHVCNA.js";
|
|
103
103
|
import {
|
|
104
104
|
isFolderTrustEnabled,
|
|
105
105
|
loadTrustedFolders
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-M5LIY7Y6.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-UQDFEU47.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-XUMAD5IT.js";
|
|
184
184
|
import {
|
|
185
185
|
getAutoSkillCuratorStatus,
|
|
186
186
|
parse,
|
|
@@ -194,10 +194,12 @@ import {
|
|
|
194
194
|
sanitizeUserPromptExpansionAdditionalContext
|
|
195
195
|
} from "./chunk-A5YZ3FA2.js";
|
|
196
196
|
import {
|
|
197
|
-
APPROVAL_MODES
|
|
197
|
+
APPROVAL_MODES
|
|
198
|
+
} from "./chunk-TZTBZ25J.js";
|
|
199
|
+
import {
|
|
198
200
|
FORK_SUBAGENT_TYPE,
|
|
199
201
|
stripStartupContext
|
|
200
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-SRY26X4H.js";
|
|
201
203
|
import {
|
|
202
204
|
applySkillAllowedTools,
|
|
203
205
|
buildSkillLlmContent
|
|
@@ -211,7 +213,7 @@ import {
|
|
|
211
213
|
} from "./chunk-DGEIYUC3.js";
|
|
212
214
|
import {
|
|
213
215
|
resolveOpenAILogDir
|
|
214
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-EIMKVOSF.js";
|
|
215
217
|
import {
|
|
216
218
|
IdeConnectionEvent,
|
|
217
219
|
formatTokenUsageSummaryAsCsv,
|
|
@@ -225,14 +227,14 @@ import {
|
|
|
225
227
|
recordSkillInvocation,
|
|
226
228
|
runSideQuery,
|
|
227
229
|
uiTelemetryService
|
|
228
|
-
} from "./chunk-
|
|
230
|
+
} from "./chunk-4K3RV3OA.js";
|
|
229
231
|
import {
|
|
230
232
|
getAutoMemoryRoot
|
|
231
233
|
} from "./chunk-E4WHKETF.js";
|
|
232
234
|
import {
|
|
233
235
|
ToolNames,
|
|
234
236
|
isShellProgressData
|
|
235
|
-
} from "./chunk-
|
|
237
|
+
} from "./chunk-CFDR3GNL.js";
|
|
236
238
|
import {
|
|
237
239
|
Storage,
|
|
238
240
|
createDebugLogger,
|
|
@@ -246,7 +248,7 @@ import {
|
|
|
246
248
|
isCpuProfileRecording,
|
|
247
249
|
startCpuProfile,
|
|
248
250
|
stopCpuProfile
|
|
249
|
-
} from "./chunk-
|
|
251
|
+
} from "./chunk-R7XNRHYD.js";
|
|
250
252
|
import {
|
|
251
253
|
init_esbuild_shims
|
|
252
254
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1943,7 +1945,7 @@ var approvalModeCommand = {
|
|
|
1943
1945
|
};
|
|
1944
1946
|
}
|
|
1945
1947
|
}
|
|
1946
|
-
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-ZRV56GVP.js") : void 0;
|
|
1947
1949
|
if (config) {
|
|
1948
1950
|
try {
|
|
1949
1951
|
config.setApprovalMode(mode);
|
|
@@ -3228,7 +3230,8 @@ var compressCommand = {
|
|
|
3228
3230
|
}
|
|
3229
3231
|
yield {
|
|
3230
3232
|
messageType: "info",
|
|
3231
|
-
content: `Context compressed (${compressed.originalTokenCount} -> ${compressed.newTokenCount}).`
|
|
3233
|
+
content: `Context compressed (${compressed.originalTokenCount} -> ${compressed.newTokenCount}).` + (compressed.warning ? `
|
|
3234
|
+
\u26A0\uFE0F ${compressed.warning}` : "")
|
|
3232
3235
|
};
|
|
3233
3236
|
} catch (e) {
|
|
3234
3237
|
yield {
|
|
@@ -3285,12 +3288,19 @@ var compressCommand = {
|
|
|
3285
3288
|
},
|
|
3286
3289
|
Date.now()
|
|
3287
3290
|
);
|
|
3291
|
+
if (compressed.warning) {
|
|
3292
|
+
ui.addItem(
|
|
3293
|
+
{ type: "info" /* INFO */, text: `\u26A0\uFE0F ${compressed.warning}` },
|
|
3294
|
+
Date.now()
|
|
3295
|
+
);
|
|
3296
|
+
}
|
|
3288
3297
|
return;
|
|
3289
3298
|
}
|
|
3290
3299
|
return {
|
|
3291
3300
|
type: "message",
|
|
3292
3301
|
messageType: "info",
|
|
3293
|
-
content: `${truncationNotice ? `${truncationNotice} ` : ""}Context compressed (${compressed.originalTokenCount} -> ${compressed.newTokenCount}).`
|
|
3302
|
+
content: `${truncationNotice ? `${truncationNotice} ` : ""}Context compressed (${compressed.originalTokenCount} -> ${compressed.newTokenCount}).` + (compressed.warning ? `
|
|
3303
|
+
\u26A0\uFE0F ${compressed.warning}` : "")
|
|
3294
3304
|
};
|
|
3295
3305
|
} catch (e) {
|
|
3296
3306
|
if (abortSignal?.aborted) {
|
|
@@ -6343,147 +6353,256 @@ var CLEAR_KEYWORDS = /* @__PURE__ */ new Set([
|
|
|
6343
6353
|
"none",
|
|
6344
6354
|
"cancel"
|
|
6345
6355
|
]);
|
|
6346
|
-
function
|
|
6347
|
-
return
|
|
6348
|
-
}
|
|
6349
|
-
__name(
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
switch (kind) {
|
|
6356
|
+
function formatLegacyTurns(count) {
|
|
6357
|
+
return `${count} ${count === 1 ? "turn" : "turns"}`;
|
|
6358
|
+
}
|
|
6359
|
+
__name(formatLegacyTurns, "formatLegacyTurns");
|
|
6360
|
+
function assertNeverTerminalKind(kind) {
|
|
6361
|
+
throw new Error(`Unexpected GoalTerminalKind: ${kind}`);
|
|
6362
|
+
}
|
|
6363
|
+
__name(assertNeverTerminalKind, "assertNeverTerminalKind");
|
|
6364
|
+
function formatLegacyTerminalSummary(event) {
|
|
6365
|
+
let title;
|
|
6366
|
+
switch (event.kind) {
|
|
6358
6367
|
case "achieved":
|
|
6359
|
-
|
|
6368
|
+
title = "Goal achieved";
|
|
6369
|
+
break;
|
|
6360
6370
|
case "failed":
|
|
6361
|
-
|
|
6371
|
+
title = "Goal could not be achieved";
|
|
6372
|
+
break;
|
|
6362
6373
|
case "aborted":
|
|
6363
|
-
|
|
6374
|
+
title = "Goal aborted";
|
|
6375
|
+
break;
|
|
6364
6376
|
default:
|
|
6365
|
-
|
|
6377
|
+
title = assertNeverTerminalKind(event.kind);
|
|
6366
6378
|
}
|
|
6367
|
-
}
|
|
6368
|
-
__name(terminalGoalTitle, "terminalGoalTitle");
|
|
6369
|
-
function formatTerminalSummary(event) {
|
|
6370
|
-
const title = terminalGoalTitle(event.kind);
|
|
6371
6379
|
const stats = [];
|
|
6372
|
-
if (event.iterations > 0) stats.push(
|
|
6373
|
-
if (typeof event.durationMs === "number")
|
|
6380
|
+
if (event.iterations > 0) stats.push(formatLegacyTurns(event.iterations));
|
|
6381
|
+
if (typeof event.durationMs === "number") {
|
|
6374
6382
|
stats.push(formatDuration(event.durationMs, { hideTrailingZeros: true }));
|
|
6383
|
+
}
|
|
6375
6384
|
const subtitle = stats.length > 0 ? ` \xB7 ${stats.join(" \xB7 ")}` : "";
|
|
6376
6385
|
const reason = event.lastReason?.trim();
|
|
6377
|
-
const reasonLine = reason ? `
|
|
6378
|
-
Last check: ${reason}` : "";
|
|
6379
6386
|
return `${title}${subtitle}
|
|
6380
|
-
Goal: ${event.condition}${
|
|
6387
|
+
Goal: ${event.condition}${reason ? `
|
|
6388
|
+
Last check: ${reason}` : ""}`;
|
|
6389
|
+
}
|
|
6390
|
+
__name(formatLegacyTerminalSummary, "formatLegacyTerminalSummary");
|
|
6391
|
+
async function runLegacyGoalCommand(context, args, explicitSet = false) {
|
|
6392
|
+
const { config } = context.services;
|
|
6393
|
+
if (!config) return errorMessage("Configuration is not available.");
|
|
6394
|
+
const sessionId = config.getSessionId();
|
|
6395
|
+
const objective = args.trim();
|
|
6396
|
+
if (!objective) {
|
|
6397
|
+
const active = getActiveGoal(sessionId);
|
|
6398
|
+
if (active) {
|
|
6399
|
+
const turns = active.iterations === 0 ? "not yet evaluated" : formatLegacyTurns(active.iterations);
|
|
6400
|
+
return {
|
|
6401
|
+
type: "message",
|
|
6402
|
+
messageType: "info",
|
|
6403
|
+
content: `Goal active: ${active.condition} (${turns})${active.lastReason ? `
|
|
6404
|
+
Last check: ${active.lastReason}` : ""}`
|
|
6405
|
+
};
|
|
6406
|
+
}
|
|
6407
|
+
const terminal = getLastGoalTerminal(sessionId);
|
|
6408
|
+
return {
|
|
6409
|
+
type: "message",
|
|
6410
|
+
messageType: "info",
|
|
6411
|
+
content: terminal ? formatLegacyTerminalSummary(terminal) : "No goal set. Usage: `/goal <condition>` (or `/goal clear`)."
|
|
6412
|
+
};
|
|
6413
|
+
}
|
|
6414
|
+
if (!explicitSet && CLEAR_KEYWORDS.has(objective.toLowerCase())) {
|
|
6415
|
+
const cleared = unregisterGoalHook(config, sessionId);
|
|
6416
|
+
if (!cleared) {
|
|
6417
|
+
return {
|
|
6418
|
+
type: "message",
|
|
6419
|
+
messageType: "info",
|
|
6420
|
+
content: "No goal set."
|
|
6421
|
+
};
|
|
6422
|
+
}
|
|
6423
|
+
const item = {
|
|
6424
|
+
type: "goal_status" /* GOAL_STATUS */,
|
|
6425
|
+
kind: "cleared",
|
|
6426
|
+
condition: cleared.condition,
|
|
6427
|
+
iterations: cleared.iterations,
|
|
6428
|
+
durationMs: Date.now() - cleared.setAt
|
|
6429
|
+
};
|
|
6430
|
+
context.ui.addItem(item, Date.now());
|
|
6431
|
+
return {
|
|
6432
|
+
type: "message",
|
|
6433
|
+
messageType: "info",
|
|
6434
|
+
content: `Goal cleared: ${cleared.condition}`
|
|
6435
|
+
};
|
|
6436
|
+
}
|
|
6437
|
+
if (!config.isTrustedFolder()) {
|
|
6438
|
+
return errorMessage(
|
|
6439
|
+
"/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
|
|
6440
|
+
);
|
|
6441
|
+
}
|
|
6442
|
+
if (config.getDisableAllHooks()) {
|
|
6443
|
+
return errorMessage(
|
|
6444
|
+
"/goal is disabled because hooks are turned off in this session (`disableAllHooks` or bare mode)."
|
|
6445
|
+
);
|
|
6446
|
+
}
|
|
6447
|
+
if (!config.getHookSystem()) {
|
|
6448
|
+
return errorMessage(
|
|
6449
|
+
"Hook system is not initialized; cannot set a /goal in this session."
|
|
6450
|
+
);
|
|
6451
|
+
}
|
|
6452
|
+
let registered;
|
|
6453
|
+
try {
|
|
6454
|
+
registered = registerGoalHook({
|
|
6455
|
+
config,
|
|
6456
|
+
sessionId,
|
|
6457
|
+
condition: objective,
|
|
6458
|
+
tokensAtStart: 0
|
|
6459
|
+
});
|
|
6460
|
+
} catch (error) {
|
|
6461
|
+
return errorMessage(
|
|
6462
|
+
`Failed to set goal: ${error instanceof Error ? error.message : String(error)}`
|
|
6463
|
+
);
|
|
6464
|
+
}
|
|
6465
|
+
context.ui.addItem(
|
|
6466
|
+
{
|
|
6467
|
+
type: "goal_status" /* GOAL_STATUS */,
|
|
6468
|
+
kind: "set",
|
|
6469
|
+
condition: registered.condition,
|
|
6470
|
+
setAt: registered.setAt
|
|
6471
|
+
},
|
|
6472
|
+
Date.now()
|
|
6473
|
+
);
|
|
6474
|
+
installGoalTerminalObserver({
|
|
6475
|
+
sessionId,
|
|
6476
|
+
config,
|
|
6477
|
+
addItem: context.ui.addItem
|
|
6478
|
+
});
|
|
6479
|
+
const result = {
|
|
6480
|
+
type: "submit_prompt",
|
|
6481
|
+
content: [
|
|
6482
|
+
{
|
|
6483
|
+
text: `A session-scoped Stop hook is now active with condition: "${objective.replace(/[\r\n]+/g, " ").replace(/"/g, "'")}". Briefly acknowledge the goal, then immediately start (or continue) working toward it \u2014 treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met \u2014 do not tell the user to run \`/goal clear\` after success; that is only for clearing a goal early.`
|
|
6484
|
+
}
|
|
6485
|
+
]
|
|
6486
|
+
};
|
|
6487
|
+
return result;
|
|
6381
6488
|
}
|
|
6382
|
-
__name(
|
|
6383
|
-
function
|
|
6384
|
-
|
|
6489
|
+
__name(runLegacyGoalCommand, "runLegacyGoalCommand");
|
|
6490
|
+
function parseGoalCommand(args) {
|
|
6491
|
+
let input = args.trim();
|
|
6492
|
+
if (/^\/goal(?:\s|$)/i.test(input)) {
|
|
6493
|
+
input = input.slice("/goal".length).trim();
|
|
6494
|
+
}
|
|
6495
|
+
if (!input) return { kind: "status" };
|
|
6496
|
+
const [head = "", ...tail] = input.split(/\s+/);
|
|
6497
|
+
const keyword = head.toLowerCase();
|
|
6498
|
+
const objective = tail.join(" ").trim();
|
|
6499
|
+
if (keyword === "set") {
|
|
6500
|
+
return objective ? { kind: "set", objective } : { kind: "error", message: "`/goal set` requires an objective." };
|
|
6501
|
+
}
|
|
6502
|
+
if (keyword === "edit") {
|
|
6503
|
+
return objective ? { kind: "edit", objective } : { kind: "error", message: "`/goal edit` requires an objective." };
|
|
6504
|
+
}
|
|
6505
|
+
if (tail.length === 0) {
|
|
6506
|
+
if (keyword === "pause") return { kind: "pause" };
|
|
6507
|
+
if (keyword === "resume") return { kind: "resume" };
|
|
6508
|
+
if (CLEAR_KEYWORDS.has(keyword)) return { kind: "clear" };
|
|
6509
|
+
}
|
|
6510
|
+
return { kind: "set", objective: input };
|
|
6385
6511
|
}
|
|
6386
|
-
__name(
|
|
6512
|
+
__name(parseGoalCommand, "parseGoalCommand");
|
|
6387
6513
|
function errorMessage(content) {
|
|
6388
6514
|
return { type: "message", messageType: "error", content };
|
|
6389
6515
|
}
|
|
6390
6516
|
__name(errorMessage, "errorMessage");
|
|
6517
|
+
function goalControl(operation, response, cause) {
|
|
6518
|
+
return {
|
|
6519
|
+
type: "goal_control",
|
|
6520
|
+
operation,
|
|
6521
|
+
response,
|
|
6522
|
+
...cause ? { cause } : {}
|
|
6523
|
+
};
|
|
6524
|
+
}
|
|
6525
|
+
__name(goalControl, "goalControl");
|
|
6391
6526
|
var goalCommand = {
|
|
6392
6527
|
name: "goal",
|
|
6393
6528
|
get description() {
|
|
6394
|
-
return t("Set
|
|
6529
|
+
return t("Set or control a session goal");
|
|
6395
6530
|
},
|
|
6396
|
-
argumentHint: "[<
|
|
6531
|
+
argumentHint: "[<objective> | set <objective> | edit <objective> | pause | resume | clear]",
|
|
6397
6532
|
kind: "built-in" /* BUILT_IN */,
|
|
6398
6533
|
supportedModes: ["interactive", "non_interactive", "acp"],
|
|
6399
6534
|
action: /* @__PURE__ */ __name(async (context, args) => {
|
|
6400
|
-
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
if (q === "") {
|
|
6407
|
-
const active = getActiveGoal(sessionId);
|
|
6408
|
-
if (active) {
|
|
6409
|
-
const turns = active.iterations === 0 ? "not yet evaluated" : formatTurns(active.iterations);
|
|
6410
|
-
const lastReason = active.lastReason ? `
|
|
6411
|
-
Last check: ${active.lastReason}` : "";
|
|
6412
|
-
return infoMessage(
|
|
6413
|
-
`Goal active: ${active.condition} (${turns})${lastReason}`
|
|
6535
|
+
if (context.executionMode !== "interactive") {
|
|
6536
|
+
const operation2 = parseGoalCommand(args);
|
|
6537
|
+
if (operation2.kind === "error") return errorMessage(operation2.message);
|
|
6538
|
+
if (operation2.kind !== "status" && operation2.kind !== "clear" && operation2.kind !== "set") {
|
|
6539
|
+
return errorMessage(
|
|
6540
|
+
`'/goal ${operation2.kind}' is only available in interactive mode.`
|
|
6414
6541
|
);
|
|
6415
6542
|
}
|
|
6416
|
-
const
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
);
|
|
6423
|
-
}
|
|
6424
|
-
if (CLEAR_KEYWORDS.has(q.toLowerCase())) {
|
|
6425
|
-
const cleared = unregisterGoalHook(config, sessionId);
|
|
6426
|
-
if (!cleared) {
|
|
6427
|
-
return infoMessage("No goal set.");
|
|
6428
|
-
}
|
|
6429
|
-
const clearedItem = {
|
|
6430
|
-
type: "goal_status" /* GOAL_STATUS */,
|
|
6431
|
-
kind: "cleared",
|
|
6432
|
-
condition: cleared.condition,
|
|
6433
|
-
iterations: cleared.iterations,
|
|
6434
|
-
durationMs: Date.now() - cleared.setAt
|
|
6543
|
+
const explicitSet = operation2.kind === "set";
|
|
6544
|
+
const legacyArgs = explicitSet ? operation2.objective : args;
|
|
6545
|
+
return await runLegacyGoalCommand(context, legacyArgs, explicitSet) ?? {
|
|
6546
|
+
type: "message",
|
|
6547
|
+
messageType: "info",
|
|
6548
|
+
content: "Command executed successfully."
|
|
6435
6549
|
};
|
|
6436
|
-
context.ui.addItem(clearedItem, Date.now());
|
|
6437
|
-
if (context.executionMode !== "interactive") {
|
|
6438
|
-
return infoMessage(`Goal cleared: ${cleared.condition}`);
|
|
6439
|
-
}
|
|
6440
|
-
return;
|
|
6441
6550
|
}
|
|
6442
|
-
|
|
6551
|
+
const { config } = context.services;
|
|
6552
|
+
if (!config) return errorMessage("Configuration is not available.");
|
|
6553
|
+
const operation = parseGoalCommand(args);
|
|
6554
|
+
if (operation.kind === "error") return errorMessage(operation.message);
|
|
6555
|
+
const requiresTrustedFolder = operation.kind === "set" || operation.kind === "edit" || operation.kind === "resume";
|
|
6556
|
+
if (requiresTrustedFolder && !config.isTrustedFolder()) {
|
|
6443
6557
|
return errorMessage(
|
|
6444
6558
|
"/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
|
|
6445
6559
|
);
|
|
6446
6560
|
}
|
|
6447
|
-
if (config.getDisableAllHooks()) {
|
|
6448
|
-
return errorMessage(
|
|
6449
|
-
"/goal is disabled because hooks are turned off in this session (`disableAllHooks` or bare mode)."
|
|
6450
|
-
);
|
|
6451
|
-
}
|
|
6452
|
-
if (!config.getHookSystem()) {
|
|
6453
|
-
return errorMessage(
|
|
6454
|
-
"Hook system is not initialized; cannot set a /goal in this session."
|
|
6455
|
-
);
|
|
6456
|
-
}
|
|
6457
|
-
let registered;
|
|
6458
6561
|
try {
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6562
|
+
const runtime = await config.getGoalRuntimeReady();
|
|
6563
|
+
const snapshot = runtime.getSnapshot();
|
|
6564
|
+
if (operation.kind === "status") {
|
|
6565
|
+
return goalControl(operation, { snapshot });
|
|
6566
|
+
}
|
|
6567
|
+
const current = snapshot.goal;
|
|
6568
|
+
if (operation.kind === "set") {
|
|
6569
|
+
const request2 = current ? {
|
|
6570
|
+
action: "replace",
|
|
6571
|
+
objective: operation.objective,
|
|
6572
|
+
expectedGoalId: current.goalId,
|
|
6573
|
+
expectedRevision: current.revision
|
|
6574
|
+
} : { action: "create", objective: operation.objective };
|
|
6575
|
+
return goalControl(
|
|
6576
|
+
operation,
|
|
6577
|
+
await runtime.dispatch(request2),
|
|
6578
|
+
request2.action
|
|
6579
|
+
);
|
|
6580
|
+
}
|
|
6581
|
+
if (!current) {
|
|
6582
|
+
if (operation.kind === "clear") {
|
|
6583
|
+
return goalControl(operation, { snapshot });
|
|
6584
|
+
}
|
|
6585
|
+
return errorMessage(`Cannot ${operation.kind}: no Goal is active.`);
|
|
6586
|
+
}
|
|
6587
|
+
const version = {
|
|
6588
|
+
expectedGoalId: current.goalId,
|
|
6589
|
+
expectedRevision: current.revision
|
|
6590
|
+
};
|
|
6591
|
+
const request = operation.kind === "edit" ? {
|
|
6592
|
+
action: "edit",
|
|
6593
|
+
objective: operation.objective,
|
|
6594
|
+
...version
|
|
6595
|
+
} : { action: operation.kind, ...version };
|
|
6596
|
+
return goalControl(
|
|
6597
|
+
operation,
|
|
6598
|
+
await runtime.dispatch(request),
|
|
6599
|
+
request.action
|
|
6600
|
+
);
|
|
6601
|
+
} catch (error) {
|
|
6466
6602
|
return errorMessage(
|
|
6467
|
-
|
|
6603
|
+
error instanceof Error ? error.message : String(error)
|
|
6468
6604
|
);
|
|
6469
6605
|
}
|
|
6470
|
-
const setItem = {
|
|
6471
|
-
type: "goal_status" /* GOAL_STATUS */,
|
|
6472
|
-
kind: "set",
|
|
6473
|
-
condition: registered.condition,
|
|
6474
|
-
setAt: registered.setAt
|
|
6475
|
-
};
|
|
6476
|
-
context.ui.addItem(setItem, Date.now());
|
|
6477
|
-
installGoalTerminalObserver({
|
|
6478
|
-
sessionId,
|
|
6479
|
-
config,
|
|
6480
|
-
addItem: context.ui.addItem
|
|
6481
|
-
});
|
|
6482
|
-
const result = {
|
|
6483
|
-
type: "submit_prompt",
|
|
6484
|
-
content: [{ text: goalInstructionPrompt(q) }]
|
|
6485
|
-
};
|
|
6486
|
-
return result;
|
|
6487
6606
|
}, "action")
|
|
6488
6607
|
};
|
|
6489
6608
|
|
|
@@ -6563,7 +6682,7 @@ var expandNowCommand = {
|
|
|
6563
6682
|
content: t("History is already expanded in this session.")
|
|
6564
6683
|
};
|
|
6565
6684
|
}
|
|
6566
|
-
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-
|
|
6685
|
+
const { expandCollapsedHistory } = await import("./resumeHistoryUtils-4QAMC2S6.js");
|
|
6567
6686
|
const updated = expandCollapsedHistory(history);
|
|
6568
6687
|
loadHistory(updated);
|
|
6569
6688
|
refreshStatic();
|
|
@@ -7117,13 +7236,13 @@ function formatFileList(openFiles) {
|
|
|
7117
7236
|
const displayName2 = isDuplicate ? `${basename3} (/${parentDir})` : basename3;
|
|
7118
7237
|
return ` - ${displayName2}${file.isActive ? " (active)" : ""}`;
|
|
7119
7238
|
}).join("\n");
|
|
7120
|
-
const
|
|
7239
|
+
const infoMessage = `
|
|
7121
7240
|
(Note: The file list is limited to a number of recently accessed files within your workspace and only includes local files on disk)`;
|
|
7122
7241
|
return `
|
|
7123
7242
|
|
|
7124
7243
|
Open files:
|
|
7125
7244
|
${fileList}
|
|
7126
|
-
${
|
|
7245
|
+
${infoMessage}`;
|
|
7127
7246
|
}
|
|
7128
7247
|
__name(formatFileList, "formatFileList");
|
|
7129
7248
|
async function getIdeStatusMessageWithFiles(ideClient) {
|
|
@@ -8544,6 +8663,7 @@ init_esbuild_shims();
|
|
|
8544
8663
|
var MAIN_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders and ensure the required environment variables are set. In interactive mode, run /auth to configure or switch providers, or run /model without arguments to choose from configured models.";
|
|
8545
8664
|
var FAST_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders and ensure the required environment variables are set. In interactive mode, run /auth to configure or switch providers, or run /model --fast without a model to choose from configured models.";
|
|
8546
8665
|
var VISION_MODEL_CONFIGURATION_HINT = "Configure an image-capable model in settings.modelProviders and ensure the required environment variables are set. Run /model --vision <model-id> to set it, or leave it unset to auto-pick a same-provider vision model.";
|
|
8666
|
+
var COMPACTION_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders and ensure the required environment variables are set. In interactive mode, run /auth to configure or switch providers, or run /model --compaction without a model to choose from configured models.";
|
|
8547
8667
|
var IMAGE_MODEL_CONFIGURATION_HINT = "Configure a model with imageOnly: true, baseUrl, and envKey in settings.modelProviders. Run /model --image <model-id> to select it.";
|
|
8548
8668
|
function parseScopeFlags(args) {
|
|
8549
8669
|
let scopeOverride;
|
|
@@ -8611,7 +8731,7 @@ function formatUnavailableModelMessage(kind, modelName, authType, availableModel
|
|
|
8611
8731
|
new Set(availableModels.map((model) => model.id))
|
|
8612
8732
|
);
|
|
8613
8733
|
const availableModelsLine = availableModelIds.length === 0 ? `No models are configured for auth type '${authType}'.` : `Available models for '${authType}': ${availableModelIds.join(", ")}.`;
|
|
8614
|
-
const hint = kind === "Fast model" ? FAST_MODEL_CONFIGURATION_HINT : kind === "Vision model" ? VISION_MODEL_CONFIGURATION_HINT : kind === "Image model" ? IMAGE_MODEL_CONFIGURATION_HINT : MAIN_MODEL_CONFIGURATION_HINT;
|
|
8734
|
+
const hint = kind === "Fast model" ? FAST_MODEL_CONFIGURATION_HINT : kind === "Vision model" ? VISION_MODEL_CONFIGURATION_HINT : kind === "Compaction model" ? COMPACTION_MODEL_CONFIGURATION_HINT : kind === "Image model" ? IMAGE_MODEL_CONFIGURATION_HINT : MAIN_MODEL_CONFIGURATION_HINT;
|
|
8615
8735
|
return `${kind} '${modelName}' is not available for auth type '${authType}'.
|
|
8616
8736
|
${availableModelsLine}
|
|
8617
8737
|
` + hint;
|
|
@@ -8645,6 +8765,15 @@ function formatUnavailableVisionModelMessage(modelName, availableModels) {
|
|
|
8645
8765
|
);
|
|
8646
8766
|
}
|
|
8647
8767
|
__name(formatUnavailableVisionModelMessage, "formatUnavailableVisionModelMessage");
|
|
8768
|
+
function formatUnavailableCompactionModelMessage(modelName, availableModels) {
|
|
8769
|
+
return formatUnavailableAuxModelMessage(
|
|
8770
|
+
"Compaction model",
|
|
8771
|
+
modelName,
|
|
8772
|
+
availableModels,
|
|
8773
|
+
COMPACTION_MODEL_CONFIGURATION_HINT
|
|
8774
|
+
);
|
|
8775
|
+
}
|
|
8776
|
+
__name(formatUnavailableCompactionModelMessage, "formatUnavailableCompactionModelMessage");
|
|
8648
8777
|
function formatUnavailableImageModelMessage(modelName, availableModels) {
|
|
8649
8778
|
return formatUnavailableAuxModelMessage(
|
|
8650
8779
|
"Image model",
|
|
@@ -8708,9 +8837,10 @@ function getAvailableModelIds(context, mode = "main") {
|
|
|
8708
8837
|
const availableModels = models.filter((m) => {
|
|
8709
8838
|
if (mode === "image")
|
|
8710
8839
|
return m.imageOnly === true && !m.fastOnly && !m.voiceOnly;
|
|
8711
|
-
if (mode === "
|
|
8712
|
-
if (mode === "
|
|
8713
|
-
return !m.fastOnly && !m.
|
|
8840
|
+
if (mode === "vision") return !m.fastOnly && !m.voiceOnly && !m.imageOnly;
|
|
8841
|
+
if (mode === "fast") return !m.voiceOnly && !m.imageOnly && !m.visionOnly;
|
|
8842
|
+
if (mode === "voice") return !m.fastOnly && !m.imageOnly && !m.visionOnly;
|
|
8843
|
+
return !m.fastOnly && !m.voiceOnly && !m.imageOnly && !m.visionOnly;
|
|
8714
8844
|
});
|
|
8715
8845
|
return availableModels.map((model) => model.id);
|
|
8716
8846
|
}
|
|
@@ -8720,10 +8850,10 @@ var modelCommand = {
|
|
|
8720
8850
|
completionPriority: 100,
|
|
8721
8851
|
get description() {
|
|
8722
8852
|
return t(
|
|
8723
|
-
"Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, --image for the image generation model, --project to persist to project settings, --global to persist to user settings, [model-id] to switch immediately, or [model-id] [prompt] to run a one-off prompt on another model; the inline prompt is sent verbatim without @file expansion)."
|
|
8853
|
+
"Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, --compaction for chat compression model, --image for the image generation model, --project to persist to project settings, --global to persist to user settings, [model-id] to switch immediately, or [model-id] [prompt] to run a one-off prompt on another model; the inline prompt is sent verbatim without @file expansion)."
|
|
8724
8854
|
);
|
|
8725
8855
|
},
|
|
8726
|
-
argumentHint: "[--fast|--voice|--vision|--image] [--project|--global] [<model-id>] | <model-id> <prompt>",
|
|
8856
|
+
argumentHint: "[--fast|--voice|--vision|--compaction|--image] [--project|--global] [<model-id>] | <model-id> <prompt>",
|
|
8727
8857
|
kind: "built-in" /* BUILT_IN */,
|
|
8728
8858
|
supportedModes: ["interactive", "non_interactive", "acp"],
|
|
8729
8859
|
completion: /* @__PURE__ */ __name(async (context, partialArg) => {
|
|
@@ -8745,6 +8875,12 @@ var modelCommand = {
|
|
|
8745
8875
|
"Set the image-capable model used to transcribe images for a text-only main model"
|
|
8746
8876
|
)
|
|
8747
8877
|
},
|
|
8878
|
+
{
|
|
8879
|
+
value: "--compaction",
|
|
8880
|
+
description: t(
|
|
8881
|
+
"Set the model used for chat compression (auto-compaction)"
|
|
8882
|
+
)
|
|
8883
|
+
},
|
|
8748
8884
|
{
|
|
8749
8885
|
value: "--image",
|
|
8750
8886
|
description: t("Set the model used to generate images")
|
|
@@ -8768,10 +8904,12 @@ var modelCommand = {
|
|
|
8768
8904
|
const trimmed = partialArg.trim();
|
|
8769
8905
|
if (trimmed) {
|
|
8770
8906
|
let mode = "main";
|
|
8771
|
-
const modelPrefix = trimmed.replace(/(?:^|\s)--fast(?:\s|$)/, " ").replace(/(?:^|\s)--voice(?:\s|$)/, " ").replace(/(?:^|\s)--vision(?:\s|$)/, " ").replace(/(?:^|\s)--image(?:\s|$)/, " ").replace(/(?:^|\s)--project(?:\s|$)/, " ").replace(/(?:^|\s)--global(?:\s|$)/, " ").trim();
|
|
8907
|
+
const modelPrefix = trimmed.replace(/(?:^|\s)--fast(?:\s|$)/, " ").replace(/(?:^|\s)--voice(?:\s|$)/, " ").replace(/(?:^|\s)--vision(?:\s|$)/, " ").replace(/(?:^|\s)--compaction(?:\s|$)/, " ").replace(/(?:^|\s)--image(?:\s|$)/, " ").replace(/(?:^|\s)--project(?:\s|$)/, " ").replace(/(?:^|\s)--global(?:\s|$)/, " ").trim();
|
|
8772
8908
|
if (/(?:^|\s)--fast(?:\s|$)/.test(trimmed)) mode = "fast";
|
|
8773
8909
|
else if (/(?:^|\s)--voice(?:\s|$)/.test(trimmed)) mode = "voice";
|
|
8774
8910
|
else if (/(?:^|\s)--vision(?:\s|$)/.test(trimmed)) mode = "vision";
|
|
8911
|
+
else if (/(?:^|\s)--compaction(?:\s|$)/.test(trimmed))
|
|
8912
|
+
mode = "compaction";
|
|
8775
8913
|
else if (/(?:^|\s)--image(?:\s|$)/.test(trimmed)) mode = "image";
|
|
8776
8914
|
return getAvailableModelIds(context, mode).filter(
|
|
8777
8915
|
(id) => id.startsWith(modelPrefix)
|
|
@@ -8844,7 +8982,7 @@ var modelCommand = {
|
|
|
8844
8982
|
content: t("Settings service not available.")
|
|
8845
8983
|
};
|
|
8846
8984
|
}
|
|
8847
|
-
const availableModels = config.getAllConfiguredModels().filter((m) => !m.fastOnly && !m.imageOnly);
|
|
8985
|
+
const availableModels = config.getAllConfiguredModels().filter((m) => !m.fastOnly && !m.imageOnly && !m.visionOnly);
|
|
8848
8986
|
const matches = availableModels.filter((model) => model.id === modelName2);
|
|
8849
8987
|
if (matches.length === 0) {
|
|
8850
8988
|
return {
|
|
@@ -8929,7 +9067,7 @@ Use "/model --fast <model-id>" to set fast model.`
|
|
|
8929
9067
|
content: formatUnavailableFastModelMessage(modelName2, [])
|
|
8930
9068
|
};
|
|
8931
9069
|
}
|
|
8932
|
-
const availableModels = (selector.authType ? config.getAvailableModelsForAuthType(selector.authType) : config.getAllConfiguredModels()).filter((m) => !m.voiceOnly && !m.imageOnly);
|
|
9070
|
+
const availableModels = (selector.authType ? config.getAvailableModelsForAuthType(selector.authType) : config.getAllConfiguredModels()).filter((m) => !m.voiceOnly && !m.imageOnly && !m.visionOnly);
|
|
8933
9071
|
if (!availableModels.some((model) => model.id === selector.modelId)) {
|
|
8934
9072
|
return {
|
|
8935
9073
|
type: "message",
|
|
@@ -9040,6 +9178,90 @@ ${formatNonVisionModelWarning(modelName2)}`;
|
|
|
9040
9178
|
content: t("Vision Model") + ": " + modelName2 + scopeSuffix + visionWarning
|
|
9041
9179
|
};
|
|
9042
9180
|
}
|
|
9181
|
+
const isCompactionModelCommand = args === "--compaction" || args.startsWith("--compaction ");
|
|
9182
|
+
if (isCompactionModelCommand) {
|
|
9183
|
+
const modelName2 = args.replace("--compaction", "").trim();
|
|
9184
|
+
if (!modelName2 || modelName2 === "clear") {
|
|
9185
|
+
if (modelName2 === "clear") {
|
|
9186
|
+
if (!settings) {
|
|
9187
|
+
return {
|
|
9188
|
+
type: "message",
|
|
9189
|
+
messageType: "error",
|
|
9190
|
+
content: t("Settings service not available.")
|
|
9191
|
+
};
|
|
9192
|
+
}
|
|
9193
|
+
persistSetting(settings, "compactionModel", void 0, scopeOverride);
|
|
9194
|
+
config.setCompactionModel(void 0);
|
|
9195
|
+
return {
|
|
9196
|
+
type: "message",
|
|
9197
|
+
messageType: "info",
|
|
9198
|
+
content: t("Compaction model override cleared") + scopeSuffix
|
|
9199
|
+
};
|
|
9200
|
+
}
|
|
9201
|
+
if (context.executionMode !== "interactive") {
|
|
9202
|
+
const compactionModel = context.services.settings?.merged?.compactionModel?.trim() || t("not set (falls back to the main model)");
|
|
9203
|
+
return {
|
|
9204
|
+
type: "message",
|
|
9205
|
+
messageType: "info",
|
|
9206
|
+
content: t(
|
|
9207
|
+
'Current compaction model: {{compactionModel}}\nUse "/model --compaction <model-id>" to set compaction model, or "/model --compaction clear" to clear the override.',
|
|
9208
|
+
{ compactionModel }
|
|
9209
|
+
)
|
|
9210
|
+
};
|
|
9211
|
+
}
|
|
9212
|
+
return {
|
|
9213
|
+
type: "dialog",
|
|
9214
|
+
dialog: "compaction-model",
|
|
9215
|
+
...persistScopeSpread(scopeOverride)
|
|
9216
|
+
};
|
|
9217
|
+
}
|
|
9218
|
+
if (!settings) {
|
|
9219
|
+
return {
|
|
9220
|
+
type: "message",
|
|
9221
|
+
messageType: "error",
|
|
9222
|
+
content: t("Settings service not available.")
|
|
9223
|
+
};
|
|
9224
|
+
}
|
|
9225
|
+
const selector = (() => {
|
|
9226
|
+
try {
|
|
9227
|
+
return resolveModelId(modelName2);
|
|
9228
|
+
} catch {
|
|
9229
|
+
return void 0;
|
|
9230
|
+
}
|
|
9231
|
+
})();
|
|
9232
|
+
if (!selector) {
|
|
9233
|
+
return {
|
|
9234
|
+
type: "message",
|
|
9235
|
+
messageType: "error",
|
|
9236
|
+
content: formatUnavailableCompactionModelMessage(modelName2, [])
|
|
9237
|
+
};
|
|
9238
|
+
}
|
|
9239
|
+
const availableModels = (selector.authType ? config.getAvailableModelsForAuthType(selector.authType) : config.getAllConfiguredModels()).filter(
|
|
9240
|
+
(m) => !m.fastOnly && !m.voiceOnly && !m.imageOnly && !m.visionOnly
|
|
9241
|
+
);
|
|
9242
|
+
if (!availableModels.some((model) => model.id === selector.modelId)) {
|
|
9243
|
+
return {
|
|
9244
|
+
type: "message",
|
|
9245
|
+
messageType: "error",
|
|
9246
|
+
content: selector.authType ? formatUnavailableModelMessage(
|
|
9247
|
+
"Compaction model",
|
|
9248
|
+
selector.modelId,
|
|
9249
|
+
selector.authType,
|
|
9250
|
+
availableModels
|
|
9251
|
+
) : formatUnavailableCompactionModelMessage(
|
|
9252
|
+
modelName2,
|
|
9253
|
+
availableModels
|
|
9254
|
+
)
|
|
9255
|
+
};
|
|
9256
|
+
}
|
|
9257
|
+
persistSetting(settings, "compactionModel", modelName2, scopeOverride);
|
|
9258
|
+
config.setCompactionModel(modelName2);
|
|
9259
|
+
return {
|
|
9260
|
+
type: "message",
|
|
9261
|
+
messageType: "info",
|
|
9262
|
+
content: t("Compaction Model") + ": " + modelName2 + scopeSuffix
|
|
9263
|
+
};
|
|
9264
|
+
}
|
|
9043
9265
|
const isImageModelCommand = args === "--image" || args.startsWith("--image ");
|
|
9044
9266
|
if (isImageModelCommand) {
|
|
9045
9267
|
const modelName2 = args.replace("--image", "").trim();
|
|
@@ -13528,10 +13750,10 @@ var updateCommand = {
|
|
|
13528
13750
|
{ performStandaloneUpdate },
|
|
13529
13751
|
installationInfo
|
|
13530
13752
|
] = await Promise.all([
|
|
13531
|
-
import("./updateCheck-
|
|
13532
|
-
import("./processUtils-
|
|
13533
|
-
import("./standalone-update-
|
|
13534
|
-
import("./installationInfo-
|
|
13753
|
+
import("./updateCheck-7EG4BLBH.js"),
|
|
13754
|
+
import("./processUtils-2CSVE5BW.js"),
|
|
13755
|
+
import("./standalone-update-E4V5V7WT.js"),
|
|
13756
|
+
import("./installationInfo-2LIKCNVX.js")
|
|
13535
13757
|
]);
|
|
13536
13758
|
const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
|
|
13537
13759
|
const settings = context.services.settings;
|
|
@@ -13824,6 +14046,8 @@ var BundledSkillLoader = class {
|
|
|
13824
14046
|
);
|
|
13825
14047
|
let body = skill.body;
|
|
13826
14048
|
const modelId = this.config?.getModel()?.trim() || "";
|
|
14049
|
+
const cliVersion = this.config?.getCliVersion()?.trim() || "unknown";
|
|
14050
|
+
body = body.replaceAll("{{cliVersion}}", cliVersion);
|
|
13827
14051
|
if (body.includes("{{model}}") || body.includes("YOUR_MODEL_ID")) {
|
|
13828
14052
|
body = body.replaceAll("{{model}}", modelId);
|
|
13829
14053
|
body = body.replaceAll("YOUR_MODEL_ID", modelId);
|
|
@@ -15124,6 +15348,12 @@ function handleCommandResult(result, outputHistoryItems) {
|
|
|
15124
15348
|
reason: "Action confirmation is not supported in non-interactive mode. Commands requiring confirmation cannot be executed.",
|
|
15125
15349
|
originalType: "confirm_action"
|
|
15126
15350
|
};
|
|
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
|
+
};
|
|
15127
15357
|
default: {
|
|
15128
15358
|
const _exhaustive = result;
|
|
15129
15359
|
return {
|