@qwen-code/qwen-code 0.23.0 → 0.23.1-preview.1
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/new-app/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/auth.md +84 -12
- package/bundled/qc-helper/docs/configuration/settings.md +76 -74
- package/bundled/qc-helper/docs/features/arena.md +15 -20
- package/bundled/qc-helper/docs/features/channels/overview.md +7 -2
- package/bundled/qc-helper/docs/features/code-review.md +22 -19
- package/bundled/qc-helper/docs/features/commands.md +51 -10
- package/bundled/qc-helper/docs/features/followup-suggestions.md +1 -1
- package/bundled/qc-helper/docs/features/goals.md +8 -0
- package/bundled/qc-helper/docs/features/headless.md +2 -2
- package/bundled/qc-helper/docs/features/hooks.md +19 -19
- package/bundled/qc-helper/docs/features/output-styles.md +35 -2
- package/bundled/qc-helper/docs/qwen-serve.md +67 -52
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +3 -1
- package/bundled/qc-helper/docs/support/troubleshooting.md +3 -3
- package/bundled/review/SKILL.md +45 -41
- package/bundled/review/references/aone.md +1 -1
- package/bundled/review/references/posting.md +1 -1
- package/bundled/workflow-creator/SKILL.md +48 -0
- package/bundled/zvec-grep-install/SKILL.md +57 -0
- package/chunks/MaxSizedBox-5ARLO5PR.js +116 -0
- package/chunks/{StandaloneSessionPicker-QUMO4LLQ.js → StandaloneSessionPicker-T6B322CB.js} +87 -82
- package/chunks/{acp-startup-profiler-M4X5F3VK.js → acp-startup-profiler-6ULXXQMS.js} +2 -2
- package/chunks/{acpAgent-2GTFCIEP.js → acpAgent-WTDEY5KD.js} +1041 -364
- package/chunks/{agent-XKF5SZWU.js → agent-NXPUXEVZ.js} +46 -43
- package/chunks/agent-headless-QQZTWOKO.js +88 -0
- package/chunks/{anthropicContentGenerator-L76MR5OR.js → anthropicContentGenerator-6XDHXIII.js} +16 -9
- package/chunks/{artifact-tool-MYCL2QCS.js → artifact-tool-DFVVJXL2.js} +3 -3
- package/chunks/askUserQuestion-GF7VQ44M.js +14 -0
- package/chunks/bridge-OHY5OGOZ.js +123 -0
- package/chunks/{ca-BNU7YNDE.js → ca-KC2AISNS.js} +1 -0
- package/chunks/{channel-management-service-4MTCEGJB.js → channel-management-service-ZDDG3G5S.js} +4 -4
- package/chunks/channel-settings-store-7BJAS2SU.js +126 -0
- package/chunks/{channel-worker-group-47F4ISUZ.js → channel-worker-group-2ISMRENV.js} +6 -6
- package/chunks/{channel-worker-manager-I5Y44GYR.js → channel-worker-manager-VSRPVPRH.js} +6 -6
- package/chunks/{channel-worker-supervisor-6VCLUXFE.js → channel-worker-supervisor-SRJBK72Z.js} +4 -4
- package/chunks/{chunk-5RTTI4GE.js → chunk-2RYWGYB3.js} +4 -3
- package/chunks/{chunk-FUO5V5KI.js → chunk-2UWQX4FP.js} +2 -2
- package/chunks/{chunk-L26ONV2Y.js → chunk-2WGJG2KW.js} +9 -8
- package/chunks/{chunk-JHN7UIDW.js → chunk-2XRE4KE4.js} +1 -1
- package/chunks/chunk-32CM56LO.js +20 -0
- package/chunks/{chunk-SI7WDR3U.js → chunk-32YDNYXP.js} +129 -14
- package/chunks/{chunk-ZHO2CW6D.js → chunk-3CZ2BQV6.js} +1 -1
- package/chunks/{chunk-FD5SJOWT.js → chunk-3K456UJF.js} +9 -4
- package/chunks/{chunk-5M6IDOMF.js → chunk-3K65MUKD.js} +105 -0
- package/chunks/chunk-3UMWOKJC.js +78 -0
- package/chunks/{chunk-UM2FFKXN.js → chunk-43JNQAHO.js} +3 -3
- package/chunks/{chunk-KM3XVTMO.js → chunk-43NOB5NM.js} +112 -12
- package/chunks/{chunk-G5PBOQWI.js → chunk-47BZVBTE.js} +3 -3
- package/chunks/{chunk-32LU3APX.js → chunk-4F2QRVW6.js} +1 -1
- package/chunks/{chunk-KMU3ZHH4.js → chunk-4HC4DYKN.js} +2 -2
- package/chunks/{chunk-22UH7VTP.js → chunk-4HOEU2OR.js} +1 -1
- package/chunks/{chunk-NXKOVOM5.js → chunk-4IQKBLTQ.js} +15 -9
- package/chunks/{chunk-M4KFODIP.js → chunk-4JAGXZR3.js} +1 -1
- package/chunks/{chunk-PDAKFU7M.js → chunk-4LIPOIXS.js} +1 -1
- package/chunks/{chunk-LEPCWS5A.js → chunk-4MCY33Y2.js} +3 -3
- package/chunks/{chunk-U6D2PPMN.js → chunk-4VUVBN3Y.js} +1 -1
- package/chunks/{chunk-37JFWFCD.js → chunk-4VZCORNT.js} +1 -1
- package/chunks/{daemon-RKDGBFLK.js → chunk-537SQ2AI.js} +2216 -1721
- package/chunks/{chunk-VNAYZAFX.js → chunk-54TF2ZIQ.js} +4 -4
- package/chunks/{chunk-OKTNXDVO.js → chunk-565U2ANU.js} +1 -1
- package/chunks/chunk-5ETULJLP.js +74 -0
- package/chunks/{chunk-ADYN7P2Y.js → chunk-5JLQWQK6.js} +8 -6
- package/chunks/{chunk-BFY33IB4.js → chunk-5MTARK4Y.js} +7 -7
- package/chunks/{chunk-BJXCYUGM.js → chunk-5YY5MZT6.js} +1 -1
- package/chunks/{chunk-4PSDSCW3.js → chunk-64MQTIX7.js} +3 -3
- package/chunks/{chunk-54C6PIGT.js → chunk-6UIACMGH.js} +3 -3
- package/chunks/{chunk-ALUYNJPM.js → chunk-7BZS4ZDV.js} +1362 -1140
- package/chunks/{chunk-LB3WQQJK.js → chunk-7OCIQNKX.js} +2 -2
- package/chunks/{chunk-QKDNS6FU.js → chunk-7VEYUF3N.js} +13 -2
- package/chunks/{chunk-AZJLY2XZ.js → chunk-AHBLRVD5.js} +5 -5
- package/chunks/{chunk-VWTSRH6C.js → chunk-AQ5NAGWI.js} +89 -17
- package/chunks/{chunk-MOF6VZN2.js → chunk-AXPOOQAW.js} +2 -2
- package/chunks/{chunk-CVX63TFJ.js → chunk-B44JBZBB.js} +3 -3
- package/chunks/{chunk-AI35S34R.js → chunk-B54PFQS5.js} +3 -3
- package/chunks/{chunk-373DQUVA.js → chunk-BF3RUIVP.js} +5 -4
- package/chunks/{chunk-RJUVTJEZ.js → chunk-BKNY7PDI.js} +1 -1
- package/chunks/{chunk-UKYXYWI2.js → chunk-BUQN5LTI.js} +2 -2
- package/chunks/{chunk-O5CD7T4T.js → chunk-BW4333PP.js} +0 -95
- package/chunks/{chunk-UPFRILIL.js → chunk-CWNC7M73.js} +2 -2
- package/chunks/{chunk-3L724BJ5.js → chunk-CZACBHAW.js} +6 -6
- package/chunks/{chunk-EBDGRBZX.js → chunk-D4CU6DKR.js} +6 -6
- package/chunks/{chunk-G7HBEEX7.js → chunk-D6PIMKY3.js} +9 -9
- package/chunks/{chunk-ENYUKMFK.js → chunk-DJXSOEFB.js} +1 -1
- package/chunks/{chunk-C2VWOXHS.js → chunk-DNPHKA72.js} +8 -8
- package/chunks/{chunk-UUASLXHW.js → chunk-E4L5BM2B.js} +5 -5
- package/chunks/{chunk-HT5S5TRQ.js → chunk-EDIDYZBT.js} +4 -11
- package/chunks/{chunk-5H5S4UY5.js → chunk-EFT7OMDN.js} +1 -1
- package/chunks/{chunk-GB4UKWY5.js → chunk-EJNYBDYC.js} +2 -2
- package/chunks/{chunk-NQ4L2CMD.js → chunk-ER273QE6.js} +53 -9
- package/chunks/{chunk-RKW36UWC.js → chunk-EWNKP4V4.js} +1 -1
- package/chunks/{chunk-UJ4DUYIH.js → chunk-F53KKZUD.js} +2 -2
- package/chunks/{chunk-EFTPIZIC.js → chunk-FDOGGKAA.js} +21 -0
- package/chunks/{chunk-AQ37AY7B.js → chunk-FKJM6JKY.js} +5 -0
- package/chunks/{chunk-KEVYJSI4.js → chunk-G34YLYCS.js} +13 -13
- package/chunks/{chunk-P6UIF2OW.js → chunk-GCFZ2LAX.js} +195 -10
- package/chunks/{chunk-VGHZT6JR.js → chunk-GELRJXE2.js} +1 -1
- package/chunks/{chunk-ZDFQGHZH.js → chunk-GMNLYQOS.js} +1 -1
- package/chunks/{chunk-KOGW3YWJ.js → chunk-GVVCLL2P.js} +12 -12
- package/chunks/{chunk-OSSTATJF.js → chunk-GXZHYPHZ.js} +428 -30
- package/chunks/{chunk-IPATA3T2.js → chunk-GZWW2QWR.js} +2 -2
- package/chunks/{chunk-C4TIXFDZ.js → chunk-H3UDNQLO.js} +6 -4
- package/chunks/chunk-HD7O6WLV.js +18 -0
- package/chunks/{chunk-4UANMABT.js → chunk-HFTB354P.js} +259 -49
- package/chunks/{chunk-LOBDDFYK.js → chunk-HJ34U5J4.js} +5 -5
- package/chunks/{chunk-M4LBBSVP.js → chunk-HY3DXYZK.js} +2 -2
- package/chunks/{chunk-4F7GQGXB.js → chunk-I72PHOKL.js} +1451 -415
- package/chunks/{chunk-YPWZTR7F.js → chunk-IFD3BTEA.js} +3 -3
- package/chunks/{chunk-EWRW2WQC.js → chunk-IKLFS6SC.js} +5 -5
- package/chunks/{chunk-VPSIC437.js → chunk-IQN2CCIE.js} +66 -6
- package/chunks/{chunk-F7NF2IOE.js → chunk-IXSGOSEG.js} +7 -7
- package/chunks/{chunk-ODZF64DM.js → chunk-IZ2U57NY.js} +1 -1
- package/chunks/{chunk-4BGDFKQE.js → chunk-J3O5I5ZD.js} +24 -7
- package/chunks/{chunk-DYTW3QVG.js → chunk-J6MB5ZHZ.js} +1 -1
- package/chunks/{chunk-HJBHMANB.js → chunk-JBTZUFR4.js} +11 -8
- package/chunks/{chunk-SRF4KTAG.js → chunk-JLWFGYXU.js} +4 -4
- package/chunks/{chunk-SX2QIMJV.js → chunk-JOPC3FND.js} +5 -5
- package/chunks/chunk-JPEAQJNS.js +2142 -0
- package/chunks/{chunk-ZTPGUFQV.js → chunk-JRYL3T2O.js} +24 -5
- package/chunks/{chunk-GXUTFQXK.js → chunk-KE3Q4JMY.js} +4 -4
- package/chunks/{chunk-LKODFJRD.js → chunk-KFFCDLKV.js} +1 -1
- package/chunks/{chunk-4M24B5J5.js → chunk-KJJPJYHI.js} +79 -30
- package/chunks/chunk-KK2GZGBK.js +21080 -0
- package/chunks/{chunk-64QH2UC6.js → chunk-KPXRFTT7.js} +12 -1
- package/chunks/{chunk-JZWOCUZ3.js → chunk-L4R7BCVV.js} +1 -1
- package/chunks/{chunk-IG4W5SJR.js → chunk-LDS57224.js} +3 -3
- package/chunks/{chunk-UAKRDON5.js → chunk-LK7S2D6V.js} +4 -4
- package/chunks/{chunk-4HVH57J3.js → chunk-LMJQSPWB.js} +21 -6
- package/chunks/{chunk-ANVG3BVV.js → chunk-LNYV4GXX.js} +13 -3
- package/chunks/{chunk-RM4WT2XB.js → chunk-LPBQODMR.js} +4 -4
- package/chunks/{chunk-XEAAO654.js → chunk-M3JGHRMQ.js} +1 -1
- package/chunks/{chunk-AMDSOFFV.js → chunk-MATEIJZF.js} +1 -0
- package/chunks/{chunk-LHBNR6EU.js → chunk-MNEYUNOE.js} +2 -2
- package/chunks/{chunk-I4NRYS6A.js → chunk-MUZCSTOO.js} +11 -11
- package/chunks/{chunk-I5N4EAS6.js → chunk-MWHY26G3.js} +1 -1
- package/chunks/{chunk-7XL4WRXM.js → chunk-N6VQ37ZZ.js} +2 -2
- package/chunks/{chunk-AHYTURFB.js → chunk-N7EYO2E7.js} +1 -1
- package/chunks/{chunk-LU77UT4D.js → chunk-N7VURC4O.js} +24 -26
- package/chunks/{chunk-DSX7KQPM.js → chunk-NAKALAL4.js} +227 -29
- package/chunks/{chunk-QQD2GART.js → chunk-NGX4NUNP.js} +3 -3
- package/chunks/{chunk-2M3EWQNG.js → chunk-NUQFUXOG.js} +17 -1
- package/chunks/{chunk-E4JNFXNI.js → chunk-NXWYCSPL.js} +3 -3
- package/chunks/{chunk-6A2D4QSO.js → chunk-O2GG7H4C.js} +4 -4
- package/chunks/{chunk-ZKFTS3OV.js → chunk-O45WBTNS.js} +6 -6
- package/chunks/{chunk-KGV55H53.js → chunk-OECNP26L.js} +1 -1
- package/chunks/{chunk-S6H3ELPG.js → chunk-P4RUUG64.js} +1 -1
- package/chunks/{chunk-GH2S4GD5.js → chunk-P5LDR7FI.js} +21 -68
- package/chunks/{chunk-RN3YGDCA.js → chunk-P6LATTDG.js} +4 -4
- package/chunks/{chunk-WP4AX3XD.js → chunk-PTFFWTTO.js} +3 -3
- package/chunks/{chunk-DTVQSSNM.js → chunk-PZUOHCWI.js} +3 -3
- package/chunks/{chunk-VYIUNFEA.js → chunk-PZV2FASB.js} +3 -3
- package/chunks/{chunk-XLXAZLDR.js → chunk-Q2SAQTEJ.js} +1 -1
- package/chunks/{chunk-47RYEQW5.js → chunk-QMFOYPGV.js} +2 -2
- package/chunks/{chunk-SULZPKTA.js → chunk-QSC5YOEC.js} +3 -3
- package/chunks/{chunk-F33GFWPR.js → chunk-QWZOOIR3.js} +58 -18
- package/chunks/{chunk-H43PSPYS.js → chunk-R355CUNQ.js} +4 -4
- package/chunks/{chunk-DQCKVAF5.js → chunk-RDKXZ2LS.js} +3 -3
- package/chunks/{chunk-7JMGTOH7.js → chunk-RPBMP6BN.js} +21 -1
- package/chunks/{chunk-5Q5RC2WE.js → chunk-RVNS7NWN.js} +2 -2
- package/chunks/{chunk-7RB56BRJ.js → chunk-SAZS4IWW.js} +6 -4
- package/chunks/{chunk-5EIOJGCR.js → chunk-SFMCYMVF.js} +4 -4
- package/chunks/{chunk-TMKTOTMQ.js → chunk-SN5FV4FY.js} +5 -5
- package/chunks/{chunk-QJGYU5PG.js → chunk-TDP7UULF.js} +1 -1
- package/chunks/{chunk-EIJT2PQ6.js → chunk-TIGXX4PA.js} +2 -2
- package/chunks/{chunk-PCRBLMIN.js → chunk-TMWB67LS.js} +21 -3
- package/chunks/{chunk-JUARRUMA.js → chunk-UEZOXZNI.js} +1358 -646
- package/chunks/{chunk-KFN2IZYR.js → chunk-UKADFFL2.js} +3 -3
- package/chunks/{chunk-TJYRTS4S.js → chunk-UKKYOIVT.js} +2 -2
- package/chunks/{chunk-EVFDRBUM.js → chunk-URSCX7S7.js} +12 -7
- package/chunks/{chunk-U4DJ5XB3.js → chunk-VDXYYVCD.js} +269 -70
- package/chunks/{chunk-4LIFGNI4.js → chunk-VEFRT7NX.js} +1 -1
- package/chunks/chunk-VFFQAOPR.js +18 -0
- package/chunks/{chunk-3AKCBZVW.js → chunk-VU7O7CGQ.js} +3 -3
- package/chunks/{chunk-RAFQIHN2.js → chunk-VUSSAGKI.js} +76 -5
- package/chunks/{chunk-TQHPVKO6.js → chunk-VY6UVU7G.js} +6 -6
- package/chunks/{chunk-S2T7H5MI.js → chunk-W4LL5RZO.js} +1 -1
- package/chunks/{chunk-ZGCKTAL5.js → chunk-WEXA2DNG.js} +2 -0
- package/chunks/{chunk-NVVJTUSL.js → chunk-WR3SH3EY.js} +136 -85
- package/chunks/{chunk-JR42V4UY.js → chunk-WTW36TJ3.js} +1 -1
- package/chunks/{chunk-TSZSGQ3N.js → chunk-WXC6OAWD.js} +1 -1
- package/chunks/{chunk-ZVP4PWBU.js → chunk-X35VIWWJ.js} +1 -1
- package/chunks/{chunk-KHP66DFN.js → chunk-XFFRI3WM.js} +1 -1
- package/chunks/{chunk-EIY7SUPZ.js → chunk-XHGGYCTA.js} +1 -1
- package/chunks/{chunk-BA4WJC4L.js → chunk-XOVVCGZX.js} +1 -1
- package/chunks/{chunk-VBWD6C27.js → chunk-XUSOYE2I.js} +1 -1
- package/chunks/{chunk-NUHOLAQ6.js → chunk-XWJFDJZK.js} +1 -1
- package/chunks/{chunk-65HWLGA7.js → chunk-XY3USGFE.js} +3 -3
- package/chunks/{chunk-STCVJXQB.js → chunk-Y3ZKI4RQ.js} +56 -26
- package/chunks/{chunk-QAK5475D.js → chunk-Y53DG2HA.js} +1 -1
- package/chunks/{chunk-3JQZVCBI.js → chunk-YCDL2SAS.js} +2 -2
- package/chunks/{chunk-NSUKQ4DN.js → chunk-YHDGABDC.js} +3 -3
- package/chunks/{chunk-FRICLXCZ.js → chunk-Z6WZPXQH.js} +3 -3
- package/chunks/{chunk-EAHOJF6V.js → chunk-ZAFYHRVY.js} +12 -0
- package/chunks/{chunk-MP6YZ4RK.js → chunk-ZAZ3NFL6.js} +852 -309
- package/chunks/{chunk-7TBU7PU2.js → chunk-ZSTCM3MX.js} +1 -1
- package/chunks/{chunk-NRL5CUZT.js → chunk-ZTAVGFKA.js} +1 -1
- package/chunks/config-utils-QXDOTXEQ.js +119 -0
- package/chunks/contextCommand-RN4KARWC.js +112 -0
- package/chunks/{core-runtime-B4UKKIAQ.js → core-runtime-NAZCOKHB.js} +63 -58
- package/chunks/{create-sub-session-NJ24B4US.js → create-sub-session-BCSM4WKB.js} +61 -56
- package/chunks/{create-sub-session-LUPWEUHR.js → create-sub-session-BQ3SE4TX.js} +3 -3
- package/chunks/{cron-create-CRSPET3H.js → cron-create-D6HQ7I7I.js} +4 -4
- package/chunks/{cron-delete-DB77SZTU.js → cron-delete-KK3D2SQV.js} +4 -4
- package/chunks/{cron-list-U2JNYWV6.js → cron-list-VBF3IZMF.js} +4 -4
- package/chunks/daemon-LCUELM6E.js +191 -0
- package/chunks/{daemon-git-worktree-guard-O2HPOBAB.js → daemon-git-worktree-guard-3K5CAU36.js} +62 -57
- package/chunks/daemon-status-provider-4X3ZZQTZ.js +122 -0
- package/chunks/daemon-trust-policy-R45CFUJA.js +118 -0
- package/chunks/{daemon-trust-policy-monitor-JL7F4Y4Q.js → daemon-trust-policy-monitor-DSSFCO3K.js} +69 -64
- package/chunks/{de-T4BLOKEC.js → de-UU2YTO37.js} +1 -0
- package/chunks/deferred-core-runtime-UO2M6WYI.js +120 -0
- package/chunks/{display-image-73C7XNRK.js → display-image-EVVTBVYE.js} +6 -6
- package/chunks/{dist-EDHQIBYD.js → dist-3T5MDUHP.js} +62 -20
- package/chunks/{dist-ZCJLKQSP.js → dist-AFH3BMZZ.js} +18 -10
- package/chunks/{dist-LXFYIJNG.js → dist-MK5PPBRF.js} +40 -9
- package/chunks/{dist-GT64AAUR.js → dist-PH5RSTEA.js} +56 -20
- package/chunks/{dist-62OZ7QXB.js → dist-QUU7TVE3.js} +35 -12
- package/chunks/{dist-JVXT4VUJ.js → dist-R5Y34V6T.js} +11 -2
- package/chunks/{dist-L6URO6CK.js → dist-SB2XRXZA.js} +5 -1
- package/chunks/{dist-QAF5DO3Y.js → dist-SIHF5MU2.js} +326 -131
- package/chunks/{dist-PDGNRVPY.js → dist-UVHW2U56.js} +20 -1
- package/chunks/earlyInputCapture-BXP7V2P3.js +22 -0
- package/chunks/{edit-SUGXY63Y.js → edit-VNBCTRWP.js} +48 -44
- package/chunks/{en-2RATMNX7.js → en-JMR535HP.js} +3 -1
- package/chunks/{enter-worktree-B6USKSIK.js → enter-worktree-CEVK7MQ2.js} +7 -7
- package/chunks/{enterPlanMode-MDX4RVVL.js → enterPlanMode-4KMZMUIA.js} +48 -45
- package/chunks/environment-S2HYQDON.js +135 -0
- package/chunks/errors-DAAN5TL7.js +119 -0
- package/chunks/{exit-worktree-DLQ73SJH.js → exit-worktree-D3YE6MUN.js} +7 -7
- package/chunks/exitPlanMode-HR36HG3D.js +86 -0
- package/chunks/{fast-path-Y73R42LV.js → fast-path-4IWSW3UV.js} +3 -3
- package/chunks/{fast-path-settings-MFUR3IWK.js → fast-path-settings-ISEJPRYE.js} +6 -4
- package/chunks/{fr-BGHGYX6A.js → fr-HKNWVXRJ.js} +1 -0
- package/chunks/{glob-DMGH7EZN.js → glob-IZYB2XH2.js} +46 -43
- package/chunks/{goal-tools-3RF3PXCL.js → goal-tools-VGUPKQDJ.js} +46 -43
- package/chunks/{grep-AJVLCVXC.js → grep-OUVLNXG7.js} +9 -8
- package/chunks/handleAutoUpdate-D56FMDTW.js +115 -0
- package/chunks/i18n-BKE5WO6T.js +130 -0
- package/chunks/{image-gen-VOIDOHOB.js → image-gen-SHVQ3XID.js} +8 -8
- package/chunks/initializer-MS4SGEHF.js +119 -0
- package/chunks/installationInfo-542MGC4S.js +113 -0
- package/chunks/{ja-G3FTD5XE.js → ja-GJS5RZGU.js} +1 -0
- package/chunks/{keychain-token-storage-REZVMJA6.js → keychain-token-storage-NQ5XWIPX.js} +2 -2
- package/chunks/list-H6XTKUWL.js +122 -0
- package/chunks/{list-agents-SBMONIUK.js → list-agents-ULYBGJXC.js} +6 -6
- package/chunks/{llm-K26SUDVK.js → llm-3NUC4EJY.js} +132 -113
- package/chunks/{llm-content-generator-TT6EAUD4.js → llm-content-generator-R4NL3OQN.js} +40 -13
- package/chunks/loadedSettingsAdapter-3XLKYDVT.js +116 -0
- package/chunks/{loggingContentGenerator-EYQBA4M4.js → loggingContentGenerator-ZYSWVNEO.js} +55 -52
- package/chunks/{loop-wakeup-QA6SHCZT.js → loop-wakeup-B27BEYRL.js} +5 -5
- package/chunks/{lowlight-J2OZNPCA.js → lowlight-BTE423KL.js} +3 -6
- package/chunks/{ls-HEJNCEYO.js → ls-3IIMMVKF.js} +5 -4
- package/chunks/{lsp-WOQKNZP6.js → lsp-VJAT7XKS.js} +2 -2
- package/chunks/{managed-npm-update-HIJTODQT.js → managed-npm-update-L2I53ZAI.js} +62 -57
- package/chunks/mcp-4PIXQASW.js +116 -0
- package/chunks/{monitor-DKNZQAB2.js → monitor-O2YQTOZZ.js} +50 -46
- package/chunks/{node-UETAYMMO.js → node-ISQAFKIS.js} +2 -2
- package/chunks/nonInteractiveCli-LV7CDBA2.js +198 -0
- package/chunks/{notebook-edit-MGHTRL2D.js → notebook-edit-4RE2ALH4.js} +48 -44
- package/chunks/{openaiContentGenerator-ZJIEQ3ZJ.js → openaiContentGenerator-7ND7K5CP.js} +30 -25
- package/chunks/pidfile-UFTLQ7NP.js +117 -0
- package/chunks/{processUtils-UY3SAJJZ.js → processUtils-3XBB4FYV.js} +2 -2
- package/chunks/prompt-terminal-ledger-2QASOGMM.js +111 -0
- package/chunks/{pt-D73IFYT7.js → pt-FXMYXEUV.js} +1 -0
- package/chunks/{qwenContentGenerator-VI4KATRY.js → qwenContentGenerator-AELTUTH6.js} +52 -49
- package/chunks/{qwenOAuth2-7AOCKSOQ.js → qwenOAuth2-BS5D2LYV.js} +7 -7
- package/chunks/{read-file-P7F4P7LV.js → read-file-PDWHZPHX.js} +13 -11
- package/chunks/{read-mcp-resource-GLAGB6R7.js → read-mcp-resource-YXJZ75UB.js} +2 -2
- package/chunks/{record-artifact-SWVR7NSU.js → record-artifact-WJDOV6XU.js} +4 -4
- package/chunks/{report-findings-AL5YW3KI.js → report-findings-Q4UACKWR.js} +5 -5
- package/chunks/{request-shutdown-5YK4IZ54.js → request-shutdown-2YZ3E3GH.js} +8 -8
- package/chunks/resumeHistoryUtils-QRXZEEBA.js +124 -0
- package/chunks/ripGrep-KSOOLE6H.js +39 -0
- package/chunks/{ru-QMISLKRH.js → ru-RMHURE5U.js} +1 -0
- package/chunks/{run-qwen-serve-OGTEEUR2.js → run-qwen-serve-RTAREPT6.js} +84 -70
- package/chunks/runtime-ESFSCJRZ.js +154 -0
- package/chunks/scheduled-tasks-6ZHRNBH6.js +133 -0
- package/chunks/{scheduler-73YXGUGW.js → scheduler-DQI6KV7T.js} +63 -58
- package/chunks/{sdk-exporters-http-3JO5TJNU.js → sdk-exporters-http-7R2ARBPV.js} +2 -2
- package/chunks/{sdk-impl-HZAUUTHJ.js → sdk-impl-YOLO7LV4.js} +4 -4
- package/chunks/{send-message-JC7NJTY6.js → send-message-PQCVSVMN.js} +24 -24
- package/chunks/serve-FY7ZEW52.js +124 -0
- package/chunks/{server-AOYZVVOM.js → server-KNDY6K5F.js} +1594 -273
- package/chunks/{session-UAWFNFGI.js → session-MCEPXAZP.js} +113 -105
- package/chunks/session-attachments-root-OLNAE6GF.js +109 -0
- package/chunks/{session-pr-refresh-CT2INROL.js → session-pr-refresh-HKJHQQQK.js} +67 -62
- package/chunks/{settings-BHRGDASJ.js → settings-VXO4WBMK.js} +68 -63
- package/chunks/shell-U263OTES.js +96 -0
- package/chunks/{skill-ZGBKNCHQ.js → skill-SDODGBKL.js} +19 -17
- package/chunks/skill-settings-YEIA22QJ.js +124 -0
- package/chunks/spawnChannel-4WJZVFPP.js +117 -0
- package/chunks/standalone-update-ZWVQUO64.js +124 -0
- package/chunks/{start-opentui-ui-FZ4USOU7.js → start-opentui-ui-BFYCJQRZ.js} +1199 -190
- package/chunks/{startInteractiveUI-E2WQJUOA.js → startInteractiveUI-JYAFCMHL.js} +2977 -2319
- package/chunks/{syntheticOutput-HJNZSEHN.js → syntheticOutput-AUAJBNXR.js} +3 -3
- package/chunks/{task-create-6RSD54S5.js → task-create-LD5ISM3E.js} +12 -12
- package/chunks/{task-list-IQSACPOM.js → task-list-YISJ4RJA.js} +5 -5
- package/chunks/{task-stop-HE2LRQNW.js → task-stop-65ZOVATJ.js} +2 -2
- package/chunks/{task-update-XAJ2NYOA.js → task-update-AAN4ZVEY.js} +15 -15
- package/chunks/{team-create-SOKMYSQU.js → team-create-KU7MABNO.js} +47 -44
- package/chunks/{team-delete-NGNNKGMG.js → team-delete-XFRRTJTT.js} +5 -5
- package/chunks/{team-plan-approval-U7ZWXYAY.js → team-plan-approval-DPB377A3.js} +46 -43
- package/chunks/terminal-image-renderer-WGWRENOF.js +124 -0
- package/chunks/theme-manager-GBUFULSO.js +108 -0
- package/chunks/{todoWrite-5UTVUXHA.js → todoWrite-G7NT4IFP.js} +5 -5
- package/chunks/{tool-search-IAI2RVWT.js → tool-search-6YUXHBPT.js} +19 -17
- package/chunks/total-session-admission-54R2JQ5L.js +118 -0
- package/chunks/trustedFolders-KAJIDJTH.js +128 -0
- package/chunks/{update-relaunch-5RWKZAL3.js → update-relaunch-XM4IWBFD.js} +5 -5
- package/chunks/updateCheck-W6UZFURI.js +124 -0
- package/chunks/useAutoAcceptIndicator-LAWYHY3U.js +126 -0
- package/chunks/{validateNonInterActiveAuth-QPFEKATS.js → validateNonInterActiveAuth-7WCKHRN2.js} +109 -101
- package/chunks/{version-JKNG7YDH.js → version-3ZU43RJ6.js} +1 -1
- package/chunks/{web-fetch-X3AHIIHW.js → web-fetch-QHI2SQL4.js} +16 -14
- package/chunks/{web-search-K2FMOGS5.js → web-search-3KZZKWNY.js} +9 -8
- package/chunks/{workflow-TOLPAK5G.js → workflow-HRW7Y2X4.js} +330 -1667
- package/chunks/workspace-providers-status-KTGCWCPC.js +120 -0
- package/chunks/{workspace-registration-store-KQWVVW4Y.js → workspace-registration-store-LHLPPWNE.js} +1 -1
- package/chunks/workspace-registry-X34MLN52.js +127 -0
- package/chunks/workspace-runtime-coordinator-U4PW4P7K.js +128 -0
- package/chunks/workspace-service-KD7BCGYL.js +132 -0
- package/chunks/workspace-skills-status-YJGO6Y3T.js +119 -0
- package/chunks/{workspace-trust-reconciler-IBDFQBQS.js → workspace-trust-reconciler-EUYHISCH.js} +74 -69
- package/chunks/write-file-EBSB34NJ.js +91 -0
- package/chunks/{zh-25DF7OGK.js → zh-DVFYHRK5.js} +3 -1
- package/chunks/{zh-TW-5EDMZVGK.js → zh-TW-W2GNP2IU.js} +3 -1
- package/chunks/{zoom-image-IFXSN74N.js → zoom-image-UJ5VKWKP.js} +13 -11
- package/cli.js +13 -13
- package/export-transcript-document.js +617 -0
- package/locales/ca.js +1 -0
- package/locales/de.js +1 -0
- package/locales/en.js +5 -2
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +5 -2
- package/locales/zh.js +5 -2
- package/package.json +5 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-Cxf7xE_Z.js → abnfDiagram-VCTEODGH-Dur--luQ.js} +1 -1
- package/web-shell/assets/{arc-ESi1eNkE.js → arc-tYLobxFi.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-D9l7-bDo.js → architectureDiagram-5GKGNRK7-IG6aXD03.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bc8DEasw.js → blockDiagram-NRAW4CY4-C6eBSkfA.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-Dimb2Hmh.js → c4Diagram-UCG6FXSJ-BrX3HJqB.js} +1 -1
- package/web-shell/assets/channel-uEkvKckd.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-jVDmOpAQ.js → chunk-2Q5K7J3B-B3fcJ8ee.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DbG_SwdB.js → chunk-5VM5RSS4-CeC90yKM.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-QEc4cY1v.js → chunk-F27PBJKO-CW44RVki.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-iJ36lQ3X.js → chunk-G27WJ6UU-D1PAMukD.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DuArnVtF.js → chunk-JWPE2WC7-Dt3Y2Fvx.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DxOf1zwL.js → chunk-LCL6LL3I-CZHw2lLI.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-lVLu9Ild.js → chunk-POPQ4Y6H-ysNAdTGx.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-C6XYlIer.js → chunk-SVP7TREG-BdNXW6YQ.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CiG2j2Ji.js → chunk-XXDRQBXY-DgqQ9UA8.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DuPsnhWS.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DuPsnhWS.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DGVHMMVm.js → cose-bilkent-JH36ORCC-BILImXzJ.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6cgpCnH.js → cynefin-OW5HDTMX-DR88Pund.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js → cynefinDiagram-5FMLGOSQ-BYFbfkA6.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-B4ABMIG-.js → dagre-3AP2YEHR-rfpyc6sX.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DgCkp_Lm.js → diagram-S7CK7UJ4-BJxLmEwH.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-FG0FNokz.js → diagram-UQ7AKVKN-H34xm7k3.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-JgkP9qg-.js → diagram-VSXAHHWV-HYxhwNLx.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-ADh2x83l.js → diagram-VX7I27RA-BJazso8F.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-yXqoYF1J.js → diagram-Z3DM3KII-Clje1aNy.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Duk83Ek_.js → ebnfDiagram-PWID7BFC-M93YBkFh.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-DMdvxySG.js → erDiagram-SSCWMZ5O-DY8XzSHU.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-DHjVgSji.js → flowDiagram-A5DVABFB-CE6Aylcq.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DMM9DkCE.js → ganttDiagram-EL5Y4UJY-DI-5LL22.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-t_ug9vO8.js → gitGraphDiagram-WWUBYQGX-C7BZWElk.js} +1 -1
- package/web-shell/assets/index-CVyqwW7y.js +2142 -0
- package/web-shell/assets/{index-zqvnpGHv.js → index-DclFHns9.js} +1 -1
- package/web-shell/assets/index-FO7JXPnH.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-eT1fANNm.js → infoDiagram-RXCK75RN-CGUSy4Pc.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-k3evzZNn.js → ishikawaDiagram-5VMMS53U-B5BVks9q.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CGim3EAi.js → journeyDiagram-EYS64GPL-CFh6Tf7h.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-WHfJo-22.js → kanban-definition-3QL26DDD-B7TlxP7c.js} +1 -1
- package/web-shell/assets/{layout-DkqIaFlJ.js → layout-Br_pZq2Q.js} +1 -1
- package/web-shell/assets/{linear-Bdkd3mCz.js → linear-BVlP6fte.js} +1 -1
- package/web-shell/assets/{mermaid.core-CGw0LkT_.js → mermaid.core-TrcYWoiF.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-C9V4rBvo.js → mindmap-definition-FBJOCRG2-BJ4LzqjZ.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CwoI2T5G.js → pegDiagram-XKGWAZYB-1b_MxlOl.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-DaTmBmPG.js → pieDiagram-E7YTZNPT-B8zl0YhY.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-plh6MyGI.js → quadrantDiagram-AXDQQJYC-CIZO8ukl.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-D_b-S0iK.js → railroadDiagram-O6MQD6OU-CepHSbCj.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-zUzTN7VE.js → requirementDiagram-EFPCY7ZU-BCgxkcSW.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-m6AhoD0l.js → sankeyDiagram-P5KCCOFB-CE5CcoMM.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-Cwhzsine.js → sequenceDiagram-WJ2MYXX4-DvgHi-d5.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CcZuKIae.js → sizeCapture-X5ZJPWSS-T-fAsCPX.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-CFoiJwD_.js → stateDiagram-HBIQ2CUA-DYHaul-5.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BcYho9a4.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CgS9hcaV.js → swimlanes-XN3QIQJK-Dbz3Qiej.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6HsOIgX.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-Dzzc05t9.js → timeline-definition-24CTP7MA-9NVRts3N.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DemK0f7Y.js → vennDiagram-4TSXK5OY-C7cb7vnH.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CquLxtMr.js → wardleyDiagram-VM6X3IG4-CG-8Ddjm.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BTBKTM5g.js → xychartDiagram-S5SC5T6Z-iGeYAcP4.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-B3D7545A.js +0 -111
- package/chunks/agent-headless-OC2IB55D.js +0 -85
- package/chunks/askUserQuestion-THQZMG44.js +0 -322
- package/chunks/bridge-IHSBI2YJ.js +0 -118
- package/chunks/channel-settings-store-BVKWAI2T.js +0 -121
- package/chunks/chunk-I2TMJPCV.js +0 -448
- package/chunks/chunk-QI27MKNQ.js +0 -4008
- package/chunks/config-utils-LVSYDLHZ.js +0 -114
- package/chunks/contextCommand-TZD7UAJK.js +0 -107
- package/chunks/daemon-status-provider-GRRVCJFW.js +0 -117
- package/chunks/daemon-trust-policy-YJL442BK.js +0 -113
- package/chunks/deferred-core-runtime-S32AYVZI.js +0 -115
- package/chunks/earlyInputCapture-BBPCIVZG.js +0 -108
- package/chunks/environment-VN6RXDVN.js +0 -130
- package/chunks/errors-UEY36PIT.js +0 -114
- package/chunks/exitPlanMode-EPHIEDAA.js +0 -83
- package/chunks/handleAutoUpdate-HVWQT2AU.js +0 -110
- package/chunks/i18n-5OR7NTRZ.js +0 -125
- package/chunks/initializer-JE5RQSOE.js +0 -114
- package/chunks/installationInfo-KO3CCSCK.js +0 -108
- package/chunks/list-3IORSFIY.js +0 -117
- package/chunks/loadedSettingsAdapter-KLLFZF3M.js +0 -111
- package/chunks/mcp-A2UEHETW.js +0 -111
- package/chunks/nonInteractiveCli-YA47F2F4.js +0 -190
- package/chunks/pidfile-ETHAZNMY.js +0 -112
- package/chunks/prompt-terminal-ledger-GZ747VYE.js +0 -106
- package/chunks/resumeHistoryUtils-DPZKFW24.js +0 -119
- package/chunks/ripGrep-C7LJKUPZ.js +0 -37
- package/chunks/runtime-LNBLEMZS.js +0 -149
- package/chunks/scheduled-tasks-FLDYZQOF.js +0 -128
- package/chunks/serve-3UR2H4CV.js +0 -119
- package/chunks/session-attachments-root-ZCGXQQTR.js +0 -104
- package/chunks/shell-YHOGC7TO.js +0 -93
- package/chunks/skill-settings-AKSP665O.js +0 -119
- package/chunks/spawnChannel-N25MBB6F.js +0 -112
- package/chunks/standalone-update-XGPWJDRN.js +0 -119
- package/chunks/terminal-image-renderer-KKM4OBLO.js +0 -117
- package/chunks/theme-manager-GQHF3A7T.js +0 -103
- package/chunks/total-session-admission-G4CGCSTG.js +0 -113
- package/chunks/trustedFolders-D2I3FDPB.js +0 -123
- package/chunks/updateCheck-ZXOQDFEI.js +0 -119
- package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +0 -121
- package/chunks/workspace-providers-status-PCJK3RC7.js +0 -115
- package/chunks/workspace-registry-YNIOB6HJ.js +0 -122
- package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +0 -123
- package/chunks/workspace-service-G4ZNBOFH.js +0 -127
- package/chunks/workspace-skills-status-FMTPPMWC.js +0 -114
- package/chunks/write-file-YTLFY2S5.js +0 -88
- package/web-shell/assets/channel-B7ohGDil.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +0 -1
- package/web-shell/assets/index-BGZRqbRo.css +0 -36
- package/web-shell/assets/index-DRri_6_x.js +0 -2067
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +0 -8
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isGitRepository
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3CZ2BQV6.js";
|
|
6
6
|
import {
|
|
7
|
+
BaseDeclarativeTool,
|
|
8
|
+
BaseToolInvocation,
|
|
9
|
+
ToolDisplayNames,
|
|
7
10
|
ToolNames
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RPBMP6BN.js";
|
|
9
12
|
import {
|
|
10
13
|
QWEN_DIR,
|
|
11
14
|
createDebugLogger
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZAFYHRVY.js";
|
|
13
16
|
import {
|
|
14
17
|
init_esbuild_shims
|
|
15
18
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -17,7 +20,7 @@ import {
|
|
|
17
20
|
__name
|
|
18
21
|
} from "./chunk-J2S4EL5Y.js";
|
|
19
22
|
|
|
20
|
-
// packages/core/src/
|
|
23
|
+
// packages/core/src/tools/askUserQuestion.ts
|
|
21
24
|
init_esbuild_shims();
|
|
22
25
|
|
|
23
26
|
// packages/core/src/core/prompts.ts
|
|
@@ -27,6 +30,9 @@ import fs from "node:fs";
|
|
|
27
30
|
import os from "node:os";
|
|
28
31
|
import process from "node:process";
|
|
29
32
|
|
|
33
|
+
// packages/core/src/output/types.ts
|
|
34
|
+
init_esbuild_shims();
|
|
35
|
+
|
|
30
36
|
// packages/core/src/core/output-styles.ts
|
|
31
37
|
init_esbuild_shims();
|
|
32
38
|
var DEFAULT_OUTPUT_STYLE_TURN_REMINDER = "Remember to follow the specific guidelines for this style.";
|
|
@@ -119,7 +125,7 @@ function resolveEffectiveOutputStyle(style, interactionMode) {
|
|
|
119
125
|
if (!style) {
|
|
120
126
|
return void 0;
|
|
121
127
|
}
|
|
122
|
-
if (interactionMode === "headless" && style.name === "Learning") {
|
|
128
|
+
if (interactionMode === "headless" && style.source === "built-in" && style.name === "Learning") {
|
|
123
129
|
return void 0;
|
|
124
130
|
}
|
|
125
131
|
return style;
|
|
@@ -268,12 +274,14 @@ function getCustomSystemPrompt(customInstruction, userMemory, appendInstruction)
|
|
|
268
274
|
});
|
|
269
275
|
}
|
|
270
276
|
__name(getCustomSystemPrompt, "getCustomSystemPrompt");
|
|
271
|
-
function getSoftwareEngineeringTasksSection() {
|
|
277
|
+
function getSoftwareEngineeringTasksSection(todoWriteEnabled) {
|
|
278
|
+
const planGuidance = todoWriteEnabled ? `Use '${ToolNames.TODO_WRITE}' for complex, ambiguous, or multi-step work when visible progress tracking adds value. Keep the plan short and outcome-oriented; skip it for simple tasks unless the user explicitly requests a plan.` : "For complex, ambiguous, or multi-step work, form a concise, outcome-oriented approach and revise it as you learn. Skip formal planning for simple tasks unless the user explicitly requests a plan.";
|
|
279
|
+
const todoAdaptationGuidance = todoWriteEnabled ? " If a todo list exists, keep it current as the scope or approach changes." : "";
|
|
272
280
|
return `## Software Engineering Tasks
|
|
273
281
|
When requested to perform tasks like fixing bugs, adding features, refactoring, or explaining code, follow this iterative approach:
|
|
274
|
-
- **Plan:**
|
|
282
|
+
- **Plan:** ${planGuidance}
|
|
275
283
|
- **Implement:** Begin implementing while gathering context as needed. Use available search and editing tools strategically, adhering to project conventions (see 'Core Mandates'). Do not add features, refactor code, or make "improvements" beyond what was asked. Don't add error handling, fallbacks, or validation for scenarios that can't happen\u2014only validate at system boundaries (user input, external APIs). Don't create helpers, utilities, or abstractions for one-time operations. Three similar lines of code is better than a premature abstraction. Prefer editing existing files over creating new ones.
|
|
276
|
-
- **Adapt:** Refine your approach as you discover new information or encounter obstacles
|
|
284
|
+
- **Adapt:** Refine your approach as you discover new information or encounter obstacles.${todoAdaptationGuidance} If an approach fails, diagnose why before switching tactics\u2014read the error, check your assumptions, and try a focused fix. Don't retry blindly, but don't abandon a viable approach after a single failure.
|
|
277
285
|
- **Verify (Tests):** If applicable and feasible, verify the changes using the project's testing procedures. Identify the correct test commands and frameworks by examining 'README' files, build/package configuration (e.g., 'package.json'), or existing test execution patterns. NEVER assume standard test commands. Before reporting a task complete, verify it actually works. If you can't verify (no test exists, can't run the code), say so explicitly rather than claiming success.
|
|
278
286
|
- **Verify (Standards):** When your task involves a code or system change, execute the project-specific build, linting and type-checking commands (e.g., 'tsc', 'npm run lint', 'ruff check .') that you have identified for this project (or obtained from the user). This ensures code quality and adherence to standards. Read-only or explanatory turns do not require verification.
|
|
279
287
|
- **Report outcomes faithfully:** If tests fail, say so with the relevant output. If you did not run a verification step, say that rather than implying it succeeded. Never claim "all tests pass" when output shows failures, never suppress failing checks to manufacture a green result, and never characterize incomplete or broken work as done.
|
|
@@ -283,8 +291,20 @@ When requested to perform tasks like fixing bugs, adding features, refactoring,
|
|
|
283
291
|
`;
|
|
284
292
|
}
|
|
285
293
|
__name(getSoftwareEngineeringTasksSection, "getSoftwareEngineeringTasksSection");
|
|
286
|
-
function buildDefaultBasePrompt(interaction, model, outputStyle) {
|
|
287
|
-
const softwareEngineeringTasks = outputStyle?.keepCodingInstructions === false ? "" : getSoftwareEngineeringTasksSection();
|
|
294
|
+
function buildDefaultBasePrompt(interaction, model, outputStyle, todoWriteEnabled = false) {
|
|
295
|
+
const softwareEngineeringTasks = outputStyle?.keepCodingInstructions === false ? "" : getSoftwareEngineeringTasksSection(todoWriteEnabled);
|
|
296
|
+
const taskManagementSection = todoWriteEnabled ? `# Task Management
|
|
297
|
+
You have access to the ${ToolNames.TODO_WRITE} tool to keep user-visible progress for work that benefits from explicit tracking. Use it for complex, ambiguous, or multi-phase tasks or requests with multiple independent outcomes. Do not use it for simple or single-step queries that you can answer or complete immediately unless the user explicitly asks for a plan.
|
|
298
|
+
|
|
299
|
+
When you create a todo list:
|
|
300
|
+
- Keep it short and outcome-oriented. Use a few meaningful, logically ordered, verifiable steps rather than one item per error, file, command, or minor edit.
|
|
301
|
+
- When an active Todo plan covers work delegated through top-level Agent calls, pass the matching Todo ID as \`todo_id\` so the execution can be associated with that plan node. Do not create a Todo solely to wrap a delegation that does not otherwise need task tracking.
|
|
302
|
+
- Keep at most one item in_progress. Keep the list current, mark finished work completed, and revise it when the scope or approach changes. When work completes together, update multiple statuses in one tool call rather than making bookkeeping-only calls.
|
|
303
|
+
- Do not repeat the full todo list in prose after calling the tool; briefly communicate only important context or the next step.
|
|
304
|
+
|
|
305
|
+
` : "";
|
|
306
|
+
const taskManagementToolGuidance = todoWriteEnabled ? `- **Task Management:** Use '${ToolNames.TODO_WRITE}' only when explicit tracking adds value. Keep plans concise, outcome-oriented, and current; do not create a todo list for simple or single-step work unless the user explicitly requests one.
|
|
307
|
+
` : "";
|
|
288
308
|
const coreIdentity = resolveCoreIdentityOverride() ?? getDefaultCoreIdentitySentence(interaction.role, Boolean(outputStyle));
|
|
289
309
|
return `
|
|
290
310
|
${coreIdentity}
|
|
@@ -305,16 +325,7 @@ ${coreIdentity}
|
|
|
305
325
|
- **Plan before uncertain work:** If the task is not yet clear enough to safely execute, do not make small speculative edits. Continue read-only investigation, make a plan in the current mode, or follow the active interaction mode's question guidance. Do not enter plan mode or call ${ToolNames.ENTER_PLAN_MODE} on your own just because the task involves planning or complexity. Use plan mode only when the user explicitly asks you to switch to plan mode, has already enabled it, or confirms they want it.
|
|
306
326
|
|
|
307
327
|
|
|
308
|
-
#
|
|
309
|
-
You have access to the ${ToolNames.TODO_WRITE} tool to keep user-visible progress for work that benefits from explicit tracking. Use it for complex, ambiguous, or multi-phase tasks or requests with multiple independent outcomes. Do not use it for simple or single-step queries that you can answer or complete immediately unless the user explicitly asks for a plan.
|
|
310
|
-
|
|
311
|
-
When you create a todo list:
|
|
312
|
-
- Keep it short and outcome-oriented. Use a few meaningful, logically ordered, verifiable steps rather than one item per error, file, command, or minor edit.
|
|
313
|
-
- When an active Todo plan covers work delegated through top-level Agent calls, pass the matching Todo ID as \`todo_id\` so the execution can be associated with that plan node. Do not create a Todo solely to wrap a delegation that does not otherwise need task tracking.
|
|
314
|
-
- Keep at most one item in_progress. Keep the list current, mark finished work completed, and revise it when the scope or approach changes. When work completes together, update multiple statuses in one tool call rather than making bookkeeping-only calls.
|
|
315
|
-
- Do not repeat the full todo list in prose after calling the tool; briefly communicate only important context or the next step.
|
|
316
|
-
|
|
317
|
-
# Primary Workflows
|
|
328
|
+
${taskManagementSection}# Primary Workflows
|
|
318
329
|
|
|
319
330
|
${softwareEngineeringTasks}- Tool results and user messages may include <system-reminder> tags. <system-reminder> tags contain useful information and reminders. They are NOT part of the user's provided input or the tool result.
|
|
320
331
|
- When you see a <persisted-output> tag in a tool result, the full output was saved to disk because it was too large. Use the read_file tool to access the complete content if the preview is insufficient.
|
|
@@ -353,8 +364,7 @@ Final responses should be concise by default, but their shape and depth must mat
|
|
|
353
364
|
- To search the content of files, use '${ToolNames.GREP}' instead of grep or rg
|
|
354
365
|
- Reserve using the '${ToolNames.SHELL}' exclusively for system commands and terminal operations that require shell execution. If you are unsure and there is a relevant dedicated tool, default to using the dedicated tool and only fallback on using the '${ToolNames.SHELL}' tool for these if it is absolutely necessary.
|
|
355
366
|
- **Tool Fallback:** If a tool returns empty, unhelpful, or unexpected results, try an alternative tool that can accomplish the same goal before telling the user it cannot be done. Never give up after a single tool failure.
|
|
356
|
-
- **
|
|
357
|
-
- **Parallel Tool Calls:** You can call multiple tools in a single response. If you intend to call multiple tools and there are no dependencies between them, make all independent tool calls in parallel. Maximize use of parallel tool calls where possible to increase efficiency. However, if some tool calls depend on previous calls to inform dependent values, do NOT call these tools in parallel and instead call them sequentially. For instance, if one operation must complete before another starts, run these operations sequentially instead.
|
|
367
|
+
${taskManagementToolGuidance}- **Parallel Tool Calls:** You can call multiple tools in a single response. If you intend to call multiple tools and there are no dependencies between them, make all independent tool calls in parallel. Maximize use of parallel tool calls where possible to increase efficiency. However, if some tool calls depend on previous calls to inform dependent values, do NOT call these tools in parallel and instead call them sequentially. For instance, if one operation must complete before another starts, run these operations sequentially instead.
|
|
358
368
|
- **File Paths:** Always use absolute paths when referring to files with tools like '${ToolNames.READ_FILE}' or '${ToolNames.WRITE_FILE}'. Relative paths are not supported. You must provide an absolute path.
|
|
359
369
|
- **Background Processes:** Use background execution with \`is_background: true\` for commands that are unlikely to stop on their own, e.g. \`node server.js\`. Do not append a trailing \`&\` when using the shell tool's managed background mode. If unsure, follow the active interaction mode's question guidance.
|
|
360
370
|
- **Interactive Commands:** Try to avoid shell commands that are likely to require user interaction (e.g. \`git rebase -i\`). Use non-interactive versions of commands (e.g. \`npm init -y\` instead of \`npm init\`) when available, and otherwise remind the user that interactive shell commands are not supported and may cause hangs until canceled by the user.
|
|
@@ -431,13 +441,14 @@ function resolveMainSessionOutputStyle(config) {
|
|
|
431
441
|
if (config.getSystemPrompt() || isSystemMdActive()) {
|
|
432
442
|
return void 0;
|
|
433
443
|
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
444
|
+
const style = config.getOutputStyle();
|
|
445
|
+
if (style?.source === "project" && config.isTrustedFolder?.() === false) {
|
|
446
|
+
return void 0;
|
|
447
|
+
}
|
|
448
|
+
return resolveEffectiveOutputStyle(style, resolveInteractionMode(config));
|
|
438
449
|
}
|
|
439
450
|
__name(resolveMainSessionOutputStyle, "resolveMainSessionOutputStyle");
|
|
440
|
-
function getCoreSystemPrompt(userMemory, model, appendInstruction, interactionMode = "interactive", outputStyle) {
|
|
451
|
+
function getCoreSystemPrompt(userMemory, model, appendInstruction, interactionMode = "interactive", outputStyle, todoWriteEnabled = false) {
|
|
441
452
|
const effectiveOutputStyle = resolveEffectiveOutputStyle(
|
|
442
453
|
outputStyle,
|
|
443
454
|
interactionMode
|
|
@@ -456,7 +467,12 @@ function getCoreSystemPrompt(userMemory, model, appendInstruction, interactionMo
|
|
|
456
467
|
}
|
|
457
468
|
}
|
|
458
469
|
const interaction = getInteractionModePrompt(interactionMode);
|
|
459
|
-
const basePrompt = systemMdEnabled ? fs.readFileSync(systemMdPath, "utf8") : buildDefaultBasePrompt(
|
|
470
|
+
const basePrompt = systemMdEnabled ? fs.readFileSync(systemMdPath, "utf8") : buildDefaultBasePrompt(
|
|
471
|
+
interaction,
|
|
472
|
+
model,
|
|
473
|
+
effectiveOutputStyle,
|
|
474
|
+
todoWriteEnabled
|
|
475
|
+
);
|
|
460
476
|
const writeSystemMdResolution = resolvePathFromEnv(
|
|
461
477
|
process.env["QWEN_WRITE_SYSTEM_MD"]
|
|
462
478
|
);
|
|
@@ -465,7 +481,12 @@ function getCoreSystemPrompt(userMemory, model, appendInstruction, interactionMo
|
|
|
465
481
|
fs.mkdirSync(path.dirname(writePath), { recursive: true });
|
|
466
482
|
fs.writeFileSync(
|
|
467
483
|
writePath,
|
|
468
|
-
systemMdEnabled ? basePrompt : buildDefaultBasePrompt(
|
|
484
|
+
systemMdEnabled ? basePrompt : buildDefaultBasePrompt(
|
|
485
|
+
interaction,
|
|
486
|
+
model,
|
|
487
|
+
void 0,
|
|
488
|
+
todoWriteEnabled
|
|
489
|
+
)
|
|
469
490
|
);
|
|
470
491
|
}
|
|
471
492
|
return assembleSystemPrompt({
|
|
@@ -1281,9 +1302,374 @@ function getInsightPrompt(type) {
|
|
|
1281
1302
|
}
|
|
1282
1303
|
__name(getInsightPrompt, "getInsightPrompt");
|
|
1283
1304
|
|
|
1305
|
+
// packages/core/src/permissions/trusted-user-answers.ts
|
|
1306
|
+
init_esbuild_shims();
|
|
1307
|
+
var MAX_TRUSTED_USER_ANSWER_CALLS = 8;
|
|
1308
|
+
var MAX_TRUSTED_USER_ANSWERS_TOTAL_CHARS = 32e3;
|
|
1309
|
+
var MAX_TRUSTED_USER_ANSWER_QUESTION_CHARS = 200;
|
|
1310
|
+
var MAX_TRUSTED_USER_ANSWER_RECORD_CHARS = 8e3;
|
|
1311
|
+
function parseAnswerQuestionIndex(key, questionCount) {
|
|
1312
|
+
const index = Number(key);
|
|
1313
|
+
if (!Number.isSafeInteger(index) || index < 0 || index >= questionCount || String(index) !== key) {
|
|
1314
|
+
return void 0;
|
|
1315
|
+
}
|
|
1316
|
+
return index;
|
|
1317
|
+
}
|
|
1318
|
+
__name(parseAnswerQuestionIndex, "parseAnswerQuestionIndex");
|
|
1319
|
+
function normalizeTrustedUserAnswers(questions, rawAnswers) {
|
|
1320
|
+
if (!rawAnswers || typeof rawAnswers !== "object" || Array.isArray(rawAnswers)) {
|
|
1321
|
+
return [];
|
|
1322
|
+
}
|
|
1323
|
+
const answers = [];
|
|
1324
|
+
for (const [key, value] of Object.entries(rawAnswers)) {
|
|
1325
|
+
if (typeof value !== "string" || value.trim().length === 0) continue;
|
|
1326
|
+
const questionIndex = parseAnswerQuestionIndex(key, questions.length);
|
|
1327
|
+
if (questionIndex === void 0) continue;
|
|
1328
|
+
const question = questions[questionIndex].question;
|
|
1329
|
+
answers.push({
|
|
1330
|
+
question: question.length > MAX_TRUSTED_USER_ANSWER_QUESTION_CHARS ? question.slice(0, MAX_TRUSTED_USER_ANSWER_QUESTION_CHARS) + "\u2026" : question,
|
|
1331
|
+
answer: value
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1334
|
+
return answers;
|
|
1335
|
+
}
|
|
1336
|
+
__name(normalizeTrustedUserAnswers, "normalizeTrustedUserAnswers");
|
|
1337
|
+
var TrustedUserAnswers = class {
|
|
1338
|
+
static {
|
|
1339
|
+
__name(this, "TrustedUserAnswers");
|
|
1340
|
+
}
|
|
1341
|
+
records = /* @__PURE__ */ new Map();
|
|
1342
|
+
totalChars = 0;
|
|
1343
|
+
record(callId, questions, rawAnswers) {
|
|
1344
|
+
if (callId.length === 0) return false;
|
|
1345
|
+
if (this.records.has(callId)) return false;
|
|
1346
|
+
const answers = normalizeTrustedUserAnswers(questions, rawAnswers);
|
|
1347
|
+
if (answers.length === 0) return false;
|
|
1348
|
+
let record = { callId, answers, omitted: false };
|
|
1349
|
+
let chars = JSON.stringify(record).length;
|
|
1350
|
+
if (chars > MAX_TRUSTED_USER_ANSWER_RECORD_CHARS) {
|
|
1351
|
+
record = { callId, answers: [], omitted: true };
|
|
1352
|
+
chars = JSON.stringify(record).length;
|
|
1353
|
+
if (chars > MAX_TRUSTED_USER_ANSWER_RECORD_CHARS) return false;
|
|
1354
|
+
}
|
|
1355
|
+
this.records.set(callId, {
|
|
1356
|
+
chars,
|
|
1357
|
+
record: Object.freeze({
|
|
1358
|
+
...record,
|
|
1359
|
+
answers: Object.freeze(
|
|
1360
|
+
record.answers.map((answer) => Object.freeze(answer))
|
|
1361
|
+
)
|
|
1362
|
+
})
|
|
1363
|
+
});
|
|
1364
|
+
this.totalChars += chars;
|
|
1365
|
+
this.enforceLimits();
|
|
1366
|
+
return this.records.has(callId);
|
|
1367
|
+
}
|
|
1368
|
+
snapshot() {
|
|
1369
|
+
return Object.freeze(
|
|
1370
|
+
[...this.records.values()].map(({ record }) => record)
|
|
1371
|
+
);
|
|
1372
|
+
}
|
|
1373
|
+
clear() {
|
|
1374
|
+
this.records.clear();
|
|
1375
|
+
this.totalChars = 0;
|
|
1376
|
+
}
|
|
1377
|
+
enforceLimits() {
|
|
1378
|
+
while (this.records.size > MAX_TRUSTED_USER_ANSWER_CALLS || this.totalChars > MAX_TRUSTED_USER_ANSWERS_TOTAL_CHARS) {
|
|
1379
|
+
const oldest = this.records.keys().next().value;
|
|
1380
|
+
this.totalChars -= this.records.get(oldest).chars;
|
|
1381
|
+
this.records.delete(oldest);
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
};
|
|
1385
|
+
|
|
1386
|
+
// packages/core/src/tools/askUserQuestion.ts
|
|
1387
|
+
var debugLogger2 = createDebugLogger("ASK_USER_QUESTION");
|
|
1388
|
+
var askUserQuestionToolDescription = `Use this tool when you need to ask the user questions during execution. This allows you to:
|
|
1389
|
+
1. Gather user preferences or requirements
|
|
1390
|
+
2. Clarify ambiguous instructions
|
|
1391
|
+
3. Get decisions on implementation choices as you work
|
|
1392
|
+
4. Offer choices to the user about what direction to take.
|
|
1393
|
+
|
|
1394
|
+
Usage notes:
|
|
1395
|
+
- Users will always be able to select "Other" to provide custom text input
|
|
1396
|
+
- Use multiSelect: true to allow multiple answers to be selected for a question
|
|
1397
|
+
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
|
1398
|
+
|
|
1399
|
+
Plan mode note: In plan mode, use this tool to clarify requirements or choose between approaches BEFORE finalizing your plan. Do NOT use this tool to ask "Is this plan ready?" or "Should I proceed?" - use ExitPlanMode for plan approval.
|
|
1400
|
+
`;
|
|
1401
|
+
var askUserQuestionToolSchemaData = {
|
|
1402
|
+
name: "ask_user_question",
|
|
1403
|
+
description: askUserQuestionToolDescription,
|
|
1404
|
+
parametersJsonSchema: {
|
|
1405
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
1406
|
+
type: "object",
|
|
1407
|
+
properties: {
|
|
1408
|
+
questions: {
|
|
1409
|
+
description: "Questions to ask the user (1-4 questions)",
|
|
1410
|
+
minItems: 1,
|
|
1411
|
+
maxItems: 4,
|
|
1412
|
+
type: "array",
|
|
1413
|
+
items: {
|
|
1414
|
+
type: "object",
|
|
1415
|
+
properties: {
|
|
1416
|
+
question: {
|
|
1417
|
+
description: 'The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"',
|
|
1418
|
+
type: "string"
|
|
1419
|
+
},
|
|
1420
|
+
header: {
|
|
1421
|
+
description: 'Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".',
|
|
1422
|
+
type: "string"
|
|
1423
|
+
},
|
|
1424
|
+
options: {
|
|
1425
|
+
description: "The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.",
|
|
1426
|
+
minItems: 2,
|
|
1427
|
+
maxItems: 4,
|
|
1428
|
+
type: "array",
|
|
1429
|
+
items: {
|
|
1430
|
+
type: "object",
|
|
1431
|
+
properties: {
|
|
1432
|
+
label: {
|
|
1433
|
+
description: "The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.",
|
|
1434
|
+
type: "string"
|
|
1435
|
+
},
|
|
1436
|
+
description: {
|
|
1437
|
+
description: "Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.",
|
|
1438
|
+
type: "string"
|
|
1439
|
+
}
|
|
1440
|
+
},
|
|
1441
|
+
required: ["label", "description"],
|
|
1442
|
+
additionalProperties: false
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1445
|
+
multiSelect: {
|
|
1446
|
+
description: "Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.",
|
|
1447
|
+
default: false,
|
|
1448
|
+
type: "boolean"
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
required: ["question", "header", "options"],
|
|
1452
|
+
additionalProperties: false
|
|
1453
|
+
}
|
|
1454
|
+
},
|
|
1455
|
+
metadata: {
|
|
1456
|
+
description: "Optional metadata for tracking and analytics purposes. Not displayed to user.",
|
|
1457
|
+
type: "object",
|
|
1458
|
+
properties: {
|
|
1459
|
+
source: {
|
|
1460
|
+
description: 'Optional identifier for the source of this question (e.g., "remember" for /remember command). Used for analytics tracking.',
|
|
1461
|
+
type: "string"
|
|
1462
|
+
}
|
|
1463
|
+
},
|
|
1464
|
+
additionalProperties: false
|
|
1465
|
+
}
|
|
1466
|
+
},
|
|
1467
|
+
required: ["questions"],
|
|
1468
|
+
additionalProperties: false
|
|
1469
|
+
}
|
|
1470
|
+
};
|
|
1471
|
+
var AskUserQuestionToolInvocation = class extends BaseToolInvocation {
|
|
1472
|
+
constructor(_config, params) {
|
|
1473
|
+
super(params);
|
|
1474
|
+
this._config = _config;
|
|
1475
|
+
}
|
|
1476
|
+
static {
|
|
1477
|
+
__name(this, "AskUserQuestionToolInvocation");
|
|
1478
|
+
}
|
|
1479
|
+
userAnswers = {};
|
|
1480
|
+
wasAnswered = false;
|
|
1481
|
+
getDescription() {
|
|
1482
|
+
const questionCount = this.params.questions.length;
|
|
1483
|
+
return `Ask user ${questionCount} question${questionCount > 1 ? "s" : ""}`;
|
|
1484
|
+
}
|
|
1485
|
+
/**
|
|
1486
|
+
* Whether a host is present that can put the questions in front of the
|
|
1487
|
+
* user *and* answer them. ACP hosts (VSCode extension, Zed, stream-json
|
|
1488
|
+
* clients) run in non-interactive mode but still collect answers through
|
|
1489
|
+
* the confirmation channel.
|
|
1490
|
+
*
|
|
1491
|
+
* The modality half is `resolveInteractionMode()`. The responder half is
|
|
1492
|
+
* what that helper cannot know: a stream-json session only has something
|
|
1493
|
+
* to answer a confirmation round once the SDK control system is up. In
|
|
1494
|
+
* stream-json *direct* mode the first stdin frame is a plain user message,
|
|
1495
|
+
* so `Session.handleFirstMessage()` leaves the control system off, no
|
|
1496
|
+
* `PermissionController` is built and `onToolCallsUpdate` is never wired
|
|
1497
|
+
* (`nonInteractiveCli.ts`, gated on `options.controlService`). Claiming a
|
|
1498
|
+
* host there parks the call in `awaiting_approval` forever: the scheduler's
|
|
1499
|
+
* non-interactive auto-deny carries `getInputFormat() !== STREAM_JSON` as a
|
|
1500
|
+
* required conjunct, so it does not fire either.
|
|
1501
|
+
*/
|
|
1502
|
+
canCollectAnswers() {
|
|
1503
|
+
if (resolveInteractionMode(this._config) === "headless") {
|
|
1504
|
+
return false;
|
|
1505
|
+
}
|
|
1506
|
+
return this._config.isInteractive() || this._config.getExperimentalZedIntegration() || this._config.getInputFormat() !== "stream-json" /* STREAM_JSON */ || this._config.getSdkMode();
|
|
1507
|
+
}
|
|
1508
|
+
/**
|
|
1509
|
+
* ask_user_question always requires user confirmation so the user can
|
|
1510
|
+
* provide answers. In non-interactive mode without ACP support, we skip
|
|
1511
|
+
* confirmation (and subsequently skip execution).
|
|
1512
|
+
*/
|
|
1513
|
+
async getDefaultPermission() {
|
|
1514
|
+
if (!this.canCollectAnswers()) {
|
|
1515
|
+
return "allow";
|
|
1516
|
+
}
|
|
1517
|
+
return "ask";
|
|
1518
|
+
}
|
|
1519
|
+
/**
|
|
1520
|
+
* The confirmation dialog IS this tool: the answers are collected through
|
|
1521
|
+
* `onConfirm`, so an approval that skips the dialog does not "allow" the
|
|
1522
|
+
* tool, it silently answers "declined" on the user's behalf. Permission
|
|
1523
|
+
* rules and automatic approval modes must therefore never satisfy it —
|
|
1524
|
+
* a bare `ask_user_question` allow rule (a skill's `allowedTools` grant,
|
|
1525
|
+
* `permissions.allow`, an "always allow" answer) would otherwise override
|
|
1526
|
+
* the 'ask' default at L4 and the scheduler would run the tool with no
|
|
1527
|
+
* dialog ever shown. Headless runs stay as they were: nothing can prompt
|
|
1528
|
+
* there, and `execute()` reports that instead.
|
|
1529
|
+
*/
|
|
1530
|
+
requiresUserInteraction() {
|
|
1531
|
+
return this.canCollectAnswers();
|
|
1532
|
+
}
|
|
1533
|
+
async getConfirmationDetails(_abortSignal) {
|
|
1534
|
+
const details = {
|
|
1535
|
+
type: "ask_user_question",
|
|
1536
|
+
title: "Please answer the following question(s):",
|
|
1537
|
+
questions: this.params.questions,
|
|
1538
|
+
metadata: this.params.metadata,
|
|
1539
|
+
onConfirm: /* @__PURE__ */ __name(async (outcome, payload) => {
|
|
1540
|
+
switch (outcome) {
|
|
1541
|
+
case "proceed_once" /* ProceedOnce */:
|
|
1542
|
+
case "proceed_always" /* ProceedAlways */:
|
|
1543
|
+
this.wasAnswered = true;
|
|
1544
|
+
this.userAnswers = payload?.answers ?? {};
|
|
1545
|
+
break;
|
|
1546
|
+
case "cancel" /* Cancel */:
|
|
1547
|
+
this.wasAnswered = false;
|
|
1548
|
+
break;
|
|
1549
|
+
default:
|
|
1550
|
+
this.wasAnswered = true;
|
|
1551
|
+
this.userAnswers = payload?.answers ?? {};
|
|
1552
|
+
break;
|
|
1553
|
+
}
|
|
1554
|
+
}, "onConfirm")
|
|
1555
|
+
};
|
|
1556
|
+
return details;
|
|
1557
|
+
}
|
|
1558
|
+
async execute(_signal) {
|
|
1559
|
+
try {
|
|
1560
|
+
if (!this.canCollectAnswers()) {
|
|
1561
|
+
const errorMessage = "Cannot ask user questions in non-interactive mode without ACP support. Please run in interactive mode or enable ACP mode to use this tool.";
|
|
1562
|
+
return {
|
|
1563
|
+
llmContent: errorMessage,
|
|
1564
|
+
returnDisplay: errorMessage
|
|
1565
|
+
};
|
|
1566
|
+
}
|
|
1567
|
+
if (!this.wasAnswered) {
|
|
1568
|
+
const cancellationMessage = "User declined to answer the questions.";
|
|
1569
|
+
return {
|
|
1570
|
+
llmContent: cancellationMessage,
|
|
1571
|
+
returnDisplay: cancellationMessage
|
|
1572
|
+
};
|
|
1573
|
+
}
|
|
1574
|
+
const answersContent = Object.entries(this.userAnswers).flatMap(([key, value]) => {
|
|
1575
|
+
const questionIndex = parseAnswerQuestionIndex(
|
|
1576
|
+
key,
|
|
1577
|
+
this.params.questions.length
|
|
1578
|
+
);
|
|
1579
|
+
if (questionIndex === void 0) return [];
|
|
1580
|
+
const question = this.params.questions[questionIndex];
|
|
1581
|
+
return `**${question.header || `Question ${questionIndex + 1}`}**: ${value}`;
|
|
1582
|
+
}).join("\n");
|
|
1583
|
+
const messageBody = answersContent.length > 0 ? answersContent : "No valid answers were provided.";
|
|
1584
|
+
const llmMessage = `User has provided the following answers:
|
|
1585
|
+
|
|
1586
|
+
${messageBody}`;
|
|
1587
|
+
const displayMessage = `User has provided the following answers:
|
|
1588
|
+
|
|
1589
|
+
${messageBody}`;
|
|
1590
|
+
return {
|
|
1591
|
+
llmContent: llmMessage,
|
|
1592
|
+
returnDisplay: displayMessage
|
|
1593
|
+
};
|
|
1594
|
+
} catch (error) {
|
|
1595
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
1596
|
+
debugLogger2.error(
|
|
1597
|
+
`[AskUserQuestionTool] Error executing ask_user_question: ${errorMessage}`
|
|
1598
|
+
);
|
|
1599
|
+
const errorLlmContent = `Failed to process user answers: ${errorMessage}`;
|
|
1600
|
+
return {
|
|
1601
|
+
llmContent: errorLlmContent,
|
|
1602
|
+
returnDisplay: `Error processing answers: ${errorMessage}`
|
|
1603
|
+
};
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
};
|
|
1607
|
+
var AskUserQuestionTool = class _AskUserQuestionTool extends BaseDeclarativeTool {
|
|
1608
|
+
constructor(config) {
|
|
1609
|
+
super(
|
|
1610
|
+
_AskUserQuestionTool.Name,
|
|
1611
|
+
ToolDisplayNames.ASK_USER_QUESTION,
|
|
1612
|
+
askUserQuestionToolDescription,
|
|
1613
|
+
"think" /* Think */,
|
|
1614
|
+
askUserQuestionToolSchemaData.parametersJsonSchema,
|
|
1615
|
+
true,
|
|
1616
|
+
// isOutputMarkdown
|
|
1617
|
+
false,
|
|
1618
|
+
// canUpdateOutput
|
|
1619
|
+
false
|
|
1620
|
+
// shouldDefer — kept always-visible so the model reaches for the structured clarification UX instead of asking in plain prose
|
|
1621
|
+
);
|
|
1622
|
+
this.config = config;
|
|
1623
|
+
}
|
|
1624
|
+
static {
|
|
1625
|
+
__name(this, "AskUserQuestionTool");
|
|
1626
|
+
}
|
|
1627
|
+
static Name = ToolNames.ASK_USER_QUESTION;
|
|
1628
|
+
validateToolParams(params) {
|
|
1629
|
+
if (!Array.isArray(params.questions)) {
|
|
1630
|
+
return 'Parameter "questions" must be an array.';
|
|
1631
|
+
}
|
|
1632
|
+
if (params.questions.length < 1 || params.questions.length > 4) {
|
|
1633
|
+
return 'Parameter "questions" must contain between 1 and 4 questions.';
|
|
1634
|
+
}
|
|
1635
|
+
for (let i = 0; i < params.questions.length; i++) {
|
|
1636
|
+
const question = params.questions[i];
|
|
1637
|
+
if (!question.question || typeof question.question !== "string" || question.question.trim() === "") {
|
|
1638
|
+
return `Question ${i + 1}: "question" must be a non-empty string.`;
|
|
1639
|
+
}
|
|
1640
|
+
if (!question.header || typeof question.header !== "string" || question.header.trim() === "") {
|
|
1641
|
+
return `Question ${i + 1}: "header" must be a non-empty string.`;
|
|
1642
|
+
}
|
|
1643
|
+
if (!Array.isArray(question.options)) {
|
|
1644
|
+
return `Question ${i + 1}: "options" must be an array.`;
|
|
1645
|
+
}
|
|
1646
|
+
if (question.options.length < 2 || question.options.length > 4) {
|
|
1647
|
+
return `Question ${i + 1}: "options" must contain between 2 and 4 options.`;
|
|
1648
|
+
}
|
|
1649
|
+
for (let j = 0; j < question.options.length; j++) {
|
|
1650
|
+
const option = question.options[j];
|
|
1651
|
+
if (!option.label || typeof option.label !== "string" || option.label.trim() === "") {
|
|
1652
|
+
return `Question ${i + 1}, Option ${j + 1}: "label" must be a non-empty string.`;
|
|
1653
|
+
}
|
|
1654
|
+
if (!option.description || typeof option.description !== "string" || option.description.trim() === "") {
|
|
1655
|
+
return `Question ${i + 1}, Option ${j + 1}: "description" must be a non-empty string.`;
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1658
|
+
if (question.multiSelect !== void 0 && typeof question.multiSelect !== "boolean") {
|
|
1659
|
+
return `Question ${i + 1}: "multiSelect" must be a boolean.`;
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
return null;
|
|
1663
|
+
}
|
|
1664
|
+
createInvocation(params) {
|
|
1665
|
+
return new AskUserQuestionToolInvocation(this.config, params);
|
|
1666
|
+
}
|
|
1667
|
+
};
|
|
1668
|
+
|
|
1284
1669
|
export {
|
|
1285
1670
|
BUILT_IN_OUTPUT_STYLES,
|
|
1286
1671
|
getBuiltInOutputStyle,
|
|
1672
|
+
resolveEffectiveOutputStyle,
|
|
1287
1673
|
getOutputStyleTurnReminder,
|
|
1288
1674
|
resolveInteractionMode,
|
|
1289
1675
|
isSystemMdActive,
|
|
@@ -1296,7 +1682,9 @@ export {
|
|
|
1296
1682
|
getPlanModeSystemReminder,
|
|
1297
1683
|
getManualPlanExitSystemReminder,
|
|
1298
1684
|
getArenaSystemReminder,
|
|
1299
|
-
getInsightPrompt
|
|
1685
|
+
getInsightPrompt,
|
|
1686
|
+
TrustedUserAnswers,
|
|
1687
|
+
AskUserQuestionTool
|
|
1300
1688
|
};
|
|
1301
1689
|
/**
|
|
1302
1690
|
* @license
|
|
@@ -1308,3 +1696,13 @@ export {
|
|
|
1308
1696
|
* Copyright 2026 Qwen Team
|
|
1309
1697
|
* SPDX-License-Identifier: Apache-2.0
|
|
1310
1698
|
*/
|
|
1699
|
+
/**
|
|
1700
|
+
* @license
|
|
1701
|
+
* Copyright 2025 Qwen Team
|
|
1702
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
1703
|
+
*/
|
|
1704
|
+
/**
|
|
1705
|
+
* @license
|
|
1706
|
+
* Copyright 2025 Qwen
|
|
1707
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
1708
|
+
*/
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
useKeypress
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-Z6WZPXQH.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-MUZCSTOO.js";
|
|
12
12
|
import {
|
|
13
13
|
APPROVAL_MODES
|
|
14
14
|
} from "./chunk-JX6XHPTX.js";
|
|
@@ -6,21 +6,22 @@ import {
|
|
|
6
6
|
PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
7
7
|
isHardcodedProjectEnvExclusion,
|
|
8
8
|
isLoaderEnvKey,
|
|
9
|
+
isPrivateProvenanceEnvKey,
|
|
9
10
|
publishPendingCompileCache,
|
|
10
11
|
reportRejectedLoaderKeys,
|
|
11
12
|
resetLoaderKeyRejectionReportingForTesting
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-NUQFUXOG.js";
|
|
13
14
|
import {
|
|
14
15
|
isWorkspaceTrusted
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XY3USGFE.js";
|
|
16
17
|
import {
|
|
17
18
|
require_main
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3K65MUKD.js";
|
|
19
20
|
import {
|
|
20
21
|
QWEN_DIR,
|
|
21
22
|
Storage,
|
|
22
23
|
getErrorMessage
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-ZAFYHRVY.js";
|
|
24
25
|
import {
|
|
25
26
|
init_esbuild_shims
|
|
26
27
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -303,6 +304,7 @@ __name(parseEnvFiles, "parseEnvFiles");
|
|
|
303
304
|
function canApplyParsedEnvKey(envFile, key, excludedVars, options = {}) {
|
|
304
305
|
if (!Object.hasOwn(envFile.parsedEnv, key)) return false;
|
|
305
306
|
if (isLoaderEnvKey(key)) return false;
|
|
307
|
+
if (isPrivateProvenanceEnvKey(key)) return false;
|
|
306
308
|
if (options.reload && isReloadExcludedKey(key)) return false;
|
|
307
309
|
if (!envFile.isHomeScopedEnvFile && isHardcodedProjectEnvExclusion(key)) {
|
|
308
310
|
return false;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
|
+
|
|
7
|
+
// packages/core/src/memory/scopes.ts
|
|
8
|
+
init_esbuild_shims();
|
|
9
|
+
var MEMORY_PROJECT_SCOPES = ["git-root", "workspace"];
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
MEMORY_PROJECT_SCOPES
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2025 Qwen Team
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|