@qwen-code/qwen-code 0.22.1 → 0.22.2-nightly.20260828.7357136dd1
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/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/settings.md +13 -13
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
- package/bundled/qc-helper/docs/features/code-review.md +3 -3
- package/bundled/qc-helper/docs/features/commands.md +2 -1
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/review/SKILL.md +70 -22
- package/bundled/review/references/persistence.md +7 -3
- package/bundled/review/references/posting.md +2 -0
- package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
- package/chunks/{StandaloneSessionPicker-XF2TVJFK.js → StandaloneSessionPicker-W3F7U3JL.js} +79 -81
- package/chunks/{acpAgent-GY53MJIW.js → acpAgent-EYZ6EEHD.js} +1132 -339
- package/chunks/{agent-7U6CC5KF.js → agent-RBLGBY65.js} +44 -46
- package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
- package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-GMHML35Q.js} +10 -11
- package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
- package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-5LR2F2ND.js +119 -0
- package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-KHR3N6CH.js} +6 -6
- package/chunks/channel-settings-store-4FOAZW72.js +120 -0
- package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
- package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
- package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
- package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/chunk-335CJSNF.js +2320 -0
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-ICWGPK23.js → chunk-3K6TUZHS.js} +7 -7
- package/chunks/{chunk-43C2II2G.js → chunk-3OOXT6CR.js} +5 -5
- package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-2YDYDDE2.js → chunk-3XOKEVII.js} +3 -3
- package/chunks/chunk-3Y34Q3JV.js +1584 -0
- package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/{chunk-5MK32KJV.js → chunk-454XFGH4.js} +3 -3
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
- package/chunks/{chunk-I6YW3T3W.js → chunk-6JCGO55P.js} +723 -3399
- package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-5Y2JCJAH.js → chunk-6W2IK5KC.js} +956 -17
- package/chunks/{chunk-A7X32SCT.js → chunk-6ZZBRRKQ.js} +5 -5
- package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-4DCP3362.js → chunk-7GWQW5ID.js} +4 -4
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-CITGRGCM.js → chunk-7TUBJBBJ.js} +4 -1
- package/chunks/{chunk-L436XFLJ.js → chunk-7VD6IPQM.js} +1 -1
- package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
- package/chunks/{chunk-2ZV3CZKI.js → chunk-AJGR6E6Z.js} +49 -32
- package/chunks/{chunk-HJOWQUE2.js → chunk-AU3MMVJF.js} +31 -14
- package/chunks/{chunk-I32QCIK7.js → chunk-AXC26UCQ.js} +1 -1
- package/chunks/{chunk-7AS7QX72.js → chunk-AY3BNYEQ.js} +1 -1
- package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-OI2DR6QB.js → chunk-B5OUL5EL.js} +2 -2
- package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
- package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
- package/chunks/{chunk-73WFGVIZ.js → chunk-BOWFGCEU.js} +3 -3
- package/chunks/{chunk-EMGAVCBZ.js → chunk-BPAKYXQ3.js} +2 -2
- package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
- package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
- package/chunks/{chunk-T2HMXHYA.js → chunk-C3KURPP7.js} +6 -6
- package/chunks/{chunk-JUIJ3FXC.js → chunk-CAJTKR6W.js} +5 -5
- package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-DP7LABIB.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
- package/chunks/{chunk-J7MLXFC5.js → chunk-CRKKHXTI.js} +185 -174
- package/chunks/{chunk-XNXWEGKB.js → chunk-CYAUBK46.js} +3 -3
- package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
- package/chunks/{chunk-SRGENTPF.js → chunk-DFDWJE6Z.js} +48 -31
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-2CRNTW2B.js → chunk-DP4MWIM3.js} +2 -2
- package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-ODXCSIH5.js → chunk-E3XVSVKK.js} +26 -4
- package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
- package/chunks/{chunk-GNRVKN76.js → chunk-EKNBU2X7.js} +4 -4
- package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/chunk-EW5VVLJT.js +3525 -0
- package/chunks/{chunk-XYX474JQ.js → chunk-EWIQ3NAE.js} +2522 -2030
- package/chunks/{chunk-O5YGAEQS.js → chunk-FALBWZF4.js} +6 -6
- package/chunks/{chunk-GZJUCMH4.js → chunk-FEHMA4RO.js} +542 -654
- package/chunks/{chunk-2YEZNBSD.js → chunk-FMFBLTLY.js} +320 -86
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
- package/chunks/{chunk-6KS24S3X.js → chunk-GGNE3JAW.js} +1 -1
- package/chunks/{chunk-BQBUZDDH.js → chunk-H33EQVMG.js} +4 -4
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-5ZYZPDDF.js → chunk-HGIMWQVT.js} +30 -25
- package/chunks/{chunk-DCSAVGDJ.js → chunk-HOCJDUFY.js} +2 -2
- package/chunks/{chunk-MDZO5V2O.js → chunk-HPXV655A.js} +9 -7
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-2MHGD7EE.js → chunk-HYDJDQGJ.js} +1 -1
- package/chunks/{chunk-BDHLBR46.js → chunk-IB7FQJRY.js} +34 -11
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
- package/chunks/{chunk-3B5DCAQU.js → chunk-J6S24ZJE.js} +34 -34
- package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
- package/chunks/{chunk-C4WBKZJT.js → chunk-JN4IWWMN.js} +4 -4
- package/chunks/{chunk-6HTMIKXZ.js → chunk-JUUBLSZU.js} +4 -4
- package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
- package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-IRIX323G.js → chunk-KTJFDCX4.js} +2 -2
- package/chunks/{chunk-FK4H3V6S.js → chunk-LEFCFTEX.js} +6 -6
- package/chunks/{chunk-OQ6LTSX3.js → chunk-LEGTMYAE.js} +1 -1
- package/chunks/{chunk-NY3IJYAV.js → chunk-LLZA2IK3.js} +15 -9
- package/chunks/{chunk-5CI4AXDD.js → chunk-LNETQKBE.js} +4 -4
- package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-62PXFOK4.js → chunk-LVPZO674.js} +4 -4
- package/chunks/{chunk-EEQYTWGU.js → chunk-M4ORUPYI.js} +5 -5
- package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-MYLXL7F6.js → chunk-MAYHGRP4.js} +9 -9
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-SM7ZVKTF.js → chunk-MTJN7FOT.js} +7 -7
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-R2ZJH3FV.js → chunk-NXMBRVMQ.js} +3 -3
- package/chunks/{chunk-JLGFGPZJ.js → chunk-OI4NY7RA.js} +2 -2
- package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
- package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-MW5AHWOZ.js → chunk-PWIGAMA4.js} +93 -14
- package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/{chunk-EAV3TENS.js → chunk-QPTRRPZU.js} +44 -7
- package/chunks/{chunk-SQPOJ4ZI.js → chunk-RFI4YGMR.js} +21 -266
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/chunk-RNVFRIOO.js +275 -0
- package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-OT26ITEY.js → chunk-RVXDXY6I.js} +3 -3
- package/chunks/{chunk-W2WRNJKX.js → chunk-RWZB422L.js} +5 -5
- package/chunks/{chunk-6YAR6ZU3.js → chunk-RYNZQGXN.js} +19 -2
- package/chunks/{chunk-EKP3M4RF.js → chunk-SJ5ERAW3.js} +1 -1
- package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-3BV7TZNQ.js → chunk-SRZZY4IY.js} +3 -3
- package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
- package/chunks/{chunk-TKO4TLT6.js → chunk-SUX7HDNA.js} +3 -3
- package/chunks/{chunk-76WGY6LW.js → chunk-SVNO44PF.js} +3 -3
- package/chunks/{chunk-UX3IFLJM.js → chunk-SZLBBZH4.js} +150 -23
- package/chunks/{chunk-K63NK3KL.js → chunk-T2NKRHZZ.js} +13 -13
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-2NCVUT3C.js → chunk-TLHUNMO7.js} +4 -4
- package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-ZXDM7DYV.js → chunk-TQHGJYR3.js} +2029 -616
- package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-OX44MOAN.js → chunk-TW3E6YNO.js} +3 -3
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
- package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
- package/chunks/{chunk-KCOXDRQL.js → chunk-UY3PBNY3.js} +17 -29
- package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-47SIHHPL.js → chunk-V2QDDC5J.js} +19 -9
- package/chunks/{chunk-BVE5EMIG.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-VMDURMFY.js → chunk-W6DUQ5GA.js} +11307 -10424
- package/chunks/{chunk-BX2BZPFJ.js → chunk-WALC5VJH.js} +4 -4
- package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-LI2HEMKO.js → chunk-WBHKK3CU.js} +4 -4
- package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-NER3H7PI.js → chunk-X3ZRTCJD.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-FN5C6C7G.js → chunk-XLLQJRAH.js} +190 -478
- package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-IKN3IUJP.js → chunk-Y4TPOUEV.js} +17 -9
- package/chunks/{chunk-NVK4HJYQ.js → chunk-YRZX2PHA.js} +1 -1
- package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-KWFP3WV6.js → chunk-YWQ237GX.js} +4 -193
- package/chunks/{chunk-6E4WHQJV.js → chunk-ZTP35P4B.js} +1 -1
- package/chunks/{chunk-E6FGMDFQ.js → chunk-ZU4UDIWX.js} +19 -1
- package/chunks/config-utils-JVGAP34H.js +113 -0
- package/chunks/contextCommand-XDB7OSO7.js +106 -0
- package/chunks/{core-runtime-PKNQ63VL.js → core-runtime-XHYA2RH7.js} +59 -61
- package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
- package/chunks/{create-sub-session-PLGPY6TV.js → create-sub-session-MHYCFNCM.js} +163 -84
- package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-NAYK4XXU.js → daemon-K5XS42ID.js} +516 -3
- package/chunks/{daemon-git-worktree-guard-LDBJXH2U.js → daemon-git-worktree-guard-V3P5XLHB.js} +56 -58
- package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
- package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-IGEJPHQ4.js → daemon-trust-policy-monitor-F23DD2M4.js} +62 -64
- package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
- package/chunks/{display-image-DR55LL6M.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
- package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
- package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
- package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
- package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
- package/chunks/{dist-4Q7NTUNB.js → dist-QDLFKWOL.js} +2 -2
- package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
- package/chunks/{edit-KSPVUEAS.js → edit-ACCATIXB.js} +45 -47
- package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
- package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
- package/chunks/{enterPlanMode-DZTABSKN.js → enterPlanMode-NEN6EPVM.js} +44 -46
- package/chunks/{environment-JXOSW25V.js → environment-CKWHBC5T.js} +58 -60
- package/chunks/errors-XTZPNQ77.js +113 -0
- package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
- package/chunks/exitPlanMode-CY344X5J.js +83 -0
- package/chunks/{fast-path-EBS7NAVL.js → fast-path-YSOX4PAM.js} +5 -5
- package/chunks/{gemini-JELEKOVS.js → gemini-VQY2YCPH.js} +110 -108
- package/chunks/{geminiContentGenerator-I2CKP7XI.js → geminiContentGenerator-PAPXNIGU.js} +8 -8
- package/chunks/{glob-TDVEVPQZ.js → glob-GVCUSBBF.js} +44 -46
- package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-5STK6OXW.js} +10 -8
- package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
- package/chunks/i18n-BZYKOST7.js +124 -0
- package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
- package/chunks/initializer-GO2C5HE3.js +113 -0
- package/chunks/installationInfo-WM2GXQZ6.js +107 -0
- package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-ERDJB7PQ.js +116 -0
- package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
- package/chunks/{loggingContentGenerator-CZWUAHAI.js → loggingContentGenerator-3ONLU3BS.js} +321 -30
- package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-54W23SP5.js → managed-npm-update-TLRCC2GE.js} +57 -59
- package/chunks/mcp-2LH3QXR2.js +110 -0
- package/chunks/{monitor-A4J5QRGJ.js → monitor-P7LDAL4W.js} +44 -46
- package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
- package/chunks/{notebook-edit-4ANFZON5.js → notebook-edit-F7KSG4WQ.js} +45 -47
- package/chunks/{openaiContentGenerator-JCCJJQZC.js → openaiContentGenerator-2EXCZUGN.js} +26 -28
- package/chunks/pidfile-P25DWA5Q.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-JJAR56SO.js → processUtils-PVDKBL35.js} +2 -2
- package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
- package/chunks/{qwenContentGenerator-5JM44ZSA.js → qwenContentGenerator-TBBRLWIT.js} +49 -51
- package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
- package/chunks/{read-file-N3E5DY7N.js → read-file-6IIY4RLJ.js} +13 -13
- package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
- package/chunks/{report-findings-VFM5DENC.js → report-findings-XA3FJG3N.js} +5 -5
- package/chunks/{request-shutdown-AXVOFN5C.js → request-shutdown-BCLA3JV2.js} +7 -7
- package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
- package/chunks/ripGrep-E7ESZ7SS.js +39 -0
- package/chunks/{run-qwen-serve-IWGPZADI.js → run-qwen-serve-DXBCYW7V.js} +356 -331
- package/chunks/{runtime-I76HPFUE.js → runtime-RUSPD35D.js} +67 -69
- package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
- package/chunks/{scheduler-M6YL4K4I.js → scheduler-TDRB2NSY.js} +58 -60
- package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
- package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
- package/chunks/{send-message-A2GXDX3B.js → send-message-AJ4OCUBV.js} +25 -9
- package/chunks/serve-KITOM7OR.js +118 -0
- package/chunks/{server-TWXRRREO.js → server-THCOMUC2.js} +5476 -4771
- package/chunks/{session-IT5ZXU7A.js → session-XKR5MPXE.js} +105 -106
- package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
- package/chunks/{settings-IX5HOOCG.js → settings-YXZ4XBKK.js} +61 -63
- package/chunks/{shell-LZ55AAJB.js → shell-5FJ2DZ3W.js} +44 -46
- package/chunks/{skill-WSZ53D2R.js → skill-VMMJZ6CJ.js} +71 -26
- package/chunks/skill-settings-7SG4YA2W.js +118 -0
- package/chunks/spawnChannel-BPMIXRBI.js +112 -0
- package/chunks/standalone-update-QN5HFRIC.js +118 -0
- package/chunks/{startInteractiveUI-O6BI2OSA.js → startInteractiveUI-5A7RQFRP.js} +2902 -2289
- package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-CDJSOEQD.js → task-create-QN4LYRSE.js} +11 -11
- package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
- package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-77VCFDDZ.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-UF4TMQEH.js → team-create-HVGVUL2L.js} +44 -46
- package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-U57NSR6C.js → team-plan-approval-S5A5FQWU.js} +44 -46
- package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
- package/chunks/theme-manager-TA33UZZX.js +102 -0
- package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-SV35UV72.js → tool-search-NX7IPDKP.js} +18 -18
- package/chunks/total-session-admission-PWXZBOVX.js +114 -0
- package/chunks/{trustedFolders-YKK67IP3.js → trustedFolders-V6Y4CU3F.js} +57 -59
- package/chunks/{update-relaunch-DX7LVA4P.js → update-relaunch-CGSX3R37.js} +5 -5
- package/chunks/updateCheck-T5O2WGIB.js +118 -0
- package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
- package/chunks/{validateNonInterActiveAuth-B26O4YJP.js → validateNonInterActiveAuth-E5S2JSRC.js} +101 -102
- package/chunks/{version-K5D7VJ4B.js → version-LS5JPU36.js} +1 -1
- package/chunks/{web-fetch-VFHZLLNZ.js → web-fetch-RLMFZTS3.js} +16 -18
- package/chunks/{web-search-AQE5A4J5.js → web-search-LMCIC4N5.js} +9 -11
- package/chunks/{workflow-XL6AEUZ7.js → workflow-JBXU3IGA.js} +128 -94
- package/chunks/workspace-providers-status-525ORQBH.js +114 -0
- package/chunks/{workspace-registration-store-I4U3V5LL.js → workspace-registration-store-7Y44R4LV.js} +1 -1
- package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
- package/chunks/workspace-service-7PXDM6EB.js +129 -0
- package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
- package/chunks/{workspace-trust-reconciler-GJ466KCE.js → workspace-trust-reconciler-3YTWSQBY.js} +70 -70
- package/chunks/write-file-BVQRYQQO.js +88 -0
- package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
- package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
- package/chunks/{zoom-image-NYJPC3NI.js → zoom-image-FGCELNS4.js} +13 -13
- package/cli.js +14 -14
- package/locales/en.js +2 -0
- package/locales/zh-TW.js +2 -0
- package/locales/zh.js +2 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-yq7z7Anb.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
- package/web-shell/assets/{arc-CbJO0xnT.js → arc-B6UgMh90.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-CRh89421.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C75KAhKv.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BzlMveFB.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
- package/web-shell/assets/channel-D_TyfiTx.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DA8QDX3a.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-Bgu7gQ7Y.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BOew7pIK.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DHx1I-hO.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-SarFW0WU.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-BLzP083Z.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Bmkv_iKm.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-MPx9r1N2.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-Ck-09rKG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DWm6lfOG.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DcBUyr5R.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Df8qmd_p.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DDmGspD7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-BK_qFvbi.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Uw3AP_bi.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-CJOQKxY7.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DhdvZna5.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-edQU0nlP.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-4kugBEsO.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-BMkFivWO.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BM1ea8g-.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CXj_cKRf.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D0nEqwqu.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
- package/web-shell/assets/index-BjUg3vPr.css +5 -0
- package/web-shell/assets/index-CFwYYVFU.js +1873 -0
- package/web-shell/assets/{index-B6JN54Pd.js → index-MQs7l15A.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DF7aGGbQ.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CZYNX1lL.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CvrqMUz1.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-BZNJQZBj.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
- package/web-shell/assets/{layout-Bf83x7D6.js → layout-DEpMwb4u.js} +1 -1
- package/web-shell/assets/{linear-Bkc3ES2f.js → linear-DSQsLh53.js} +1 -1
- package/web-shell/assets/{mermaid.core-C6xuovwz.js → mermaid.core-DIZuPBQT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzH6gVRg.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DCvLh2fa.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BtjVlx_6.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-IbroqxFe.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BvMykiWW.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D-HHMyrh.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C0XXhB6d.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DseAXj5d.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Cek2EweK.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-yLv8wafW.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-Cwz-opvE.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BJuFD7OG.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CNAavdoV.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-DaIjAidq.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DkcQXjTy.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/MaxSizedBox-UUTUE42J.js +0 -112
- package/chunks/agent-headless-32O4L2CT.js +0 -87
- package/chunks/bridge-DFX2FFH4.js +0 -119
- package/chunks/channel-settings-store-ELLH2M4M.js +0 -117
- package/chunks/chunk-I6VVOZDK.js +0 -202
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-K2OJUPOE.js +0 -78
- package/chunks/chunk-P3QQPMQA.js +0 -19
- package/chunks/chunk-SDVF6A42.js +0 -945
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/config-utils-7M6PCTLT.js +0 -113
- package/chunks/contextCommand-G4QG3TW6.js +0 -108
- package/chunks/daemon-status-provider-F5FEHVVG.js +0 -118
- package/chunks/daemon-trust-policy-C6YTU5CQ.js +0 -114
- package/chunks/deferred-core-runtime-GHT3GDOR.js +0 -116
- package/chunks/earlyInputCapture-HOSJTLWP.js +0 -109
- package/chunks/errors-IOXFDE4J.js +0 -115
- package/chunks/exitPlanMode-PZG4FXRB.js +0 -85
- package/chunks/handleAutoUpdate-AWAGHKOX.js +0 -111
- package/chunks/i18n-CYA25C5F.js +0 -126
- package/chunks/initializer-JD2FLNLO.js +0 -115
- package/chunks/installationInfo-N3DCWVWR.js +0 -109
- package/chunks/list-XDQAUET5.js +0 -118
- package/chunks/loadedSettingsAdapter-IK7H5JRK.js +0 -112
- package/chunks/mcp-2E7ZLMEE.js +0 -112
- package/chunks/nonInteractiveCli-ZNDXB62Y.js +0 -185
- package/chunks/pidfile-DHV2Y7UD.js +0 -113
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +0 -107
- package/chunks/resumeHistoryUtils-YQRITQAG.js +0 -120
- package/chunks/ripGrep-NEIHKBKB.js +0 -39
- package/chunks/serve-XY5S63GN.js +0 -120
- package/chunks/skill-settings-5U7FTJIK.js +0 -120
- package/chunks/spawnChannel-TMC6VXGN.js +0 -113
- package/chunks/standalone-update-CUYGWTR4.js +0 -120
- package/chunks/terminal-image-renderer-DRL3BROJ.js +0 -116
- package/chunks/theme-manager-HHJPUDRN.js +0 -104
- package/chunks/total-session-admission-TQI7TCTL.js +0 -114
- package/chunks/updateCheck-6JRTKTUF.js +0 -120
- package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +0 -122
- package/chunks/workspace-providers-status-H6TG34YV.js +0 -116
- package/chunks/workspace-registry-2PWNIYNI.js +0 -123
- package/chunks/workspace-service-4FGTUJLA.js +0 -131
- package/chunks/workspace-skills-status-7VOLUDT6.js +0 -115
- package/chunks/write-file-PWOYCT2K.js +0 -90
- package/web-shell/assets/channel-B3sGR79J.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +0 -1
- package/web-shell/assets/index-C-XlQn24.css +0 -5
- package/web-shell/assets/index-DLjXM0dn.js +0 -1860
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +0 -8
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getRateLimitErrorDetails
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DYXFD5RO.js";
|
|
6
6
|
import {
|
|
7
7
|
isInternalPromptId
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-SZLBBZH4.js";
|
|
9
9
|
import {
|
|
10
10
|
createDebugLogger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UHQFIS7N.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/cli/src/utils/conversation-directory-identity.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
13
|
+
import { lstat, mkdir, realpath } from "node:fs/promises";
|
|
14
|
+
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
15
|
+
function hasVerifiableInode(ino) {
|
|
16
|
+
return Number(ino) !== 0;
|
|
17
|
+
}
|
|
18
|
+
__name(hasVerifiableInode, "hasVerifiableInode");
|
|
19
|
+
var ConversationDirectoryIdentityError = class extends Error {
|
|
20
|
+
constructor(scope, reason, cause) {
|
|
21
|
+
super(
|
|
22
|
+
`Conversation ${scope} identity validation failed: ${reason}`,
|
|
23
|
+
cause !== void 0 ? { cause } : void 0
|
|
24
|
+
);
|
|
25
|
+
this.scope = scope;
|
|
26
|
+
this.reason = reason;
|
|
27
|
+
}
|
|
28
|
+
static {
|
|
29
|
+
__name(this, "ConversationDirectoryIdentityError");
|
|
30
|
+
}
|
|
31
|
+
name = "ConversationDirectoryIdentityError";
|
|
32
|
+
};
|
|
33
|
+
function throwIdentityIoError(scope, cause) {
|
|
34
|
+
throw new ConversationDirectoryIdentityError(scope, "io_error", cause);
|
|
35
|
+
}
|
|
36
|
+
__name(throwIdentityIoError, "throwIdentityIoError");
|
|
37
|
+
var isSameConversationPath = /* @__PURE__ */ __name((left, right) => process.platform === "win32" ? left.toLowerCase() === right.toLowerCase() : left === right, "isSameConversationPath");
|
|
38
|
+
function getConversationDirectoryName(storageSessionId) {
|
|
39
|
+
if (storageSessionId.length === 0 || storageSessionId.length > 256) {
|
|
40
|
+
throw new ConversationDirectoryIdentityError("child", "invalid_session_id");
|
|
41
|
+
}
|
|
42
|
+
return `conversation-${createHash("sha256").update(storageSessionId).digest("hex")}`;
|
|
43
|
+
}
|
|
44
|
+
__name(getConversationDirectoryName, "getConversationDirectoryName");
|
|
45
|
+
function getConversationStagedDirectoryName(storageSessionId) {
|
|
46
|
+
return `${getConversationDirectoryName(storageSessionId)}.deleting`;
|
|
47
|
+
}
|
|
48
|
+
__name(getConversationStagedDirectoryName, "getConversationStagedDirectoryName");
|
|
49
|
+
function validateDirectoryStats(stats, scope) {
|
|
50
|
+
if (stats.isSymbolicLink() || !stats.isDirectory()) {
|
|
51
|
+
throw new ConversationDirectoryIdentityError(scope, "not_directory");
|
|
52
|
+
}
|
|
53
|
+
if (process.platform !== "win32" && typeof process.getuid === "function" && stats.uid !== process.getuid()) {
|
|
54
|
+
throw new ConversationDirectoryIdentityError(scope, "wrong_owner");
|
|
55
|
+
}
|
|
56
|
+
if (process.platform !== "win32" && (stats.mode & 63) !== 0) {
|
|
57
|
+
throw new ConversationDirectoryIdentityError(scope, "wrong_mode");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
__name(validateDirectoryStats, "validateDirectoryStats");
|
|
61
|
+
function hasRootIdentity(stats, root) {
|
|
62
|
+
if (!root.inodeVerifiable) return stats.dev === root.device;
|
|
63
|
+
return hasVerifiableInode(stats.ino) && stats.dev === root.device && stats.ino === root.inode;
|
|
64
|
+
}
|
|
65
|
+
__name(hasRootIdentity, "hasRootIdentity");
|
|
66
|
+
function isSameDirectoryIdentity(before, after) {
|
|
67
|
+
if (!hasVerifiableInode(before.ino) || !hasVerifiableInode(after.ino)) {
|
|
68
|
+
return before.dev === after.dev;
|
|
69
|
+
}
|
|
70
|
+
return before.dev === after.dev && before.ino === after.ino;
|
|
71
|
+
}
|
|
72
|
+
__name(isSameDirectoryIdentity, "isSameDirectoryIdentity");
|
|
73
|
+
function hasExpectedDirectoryIdentity(identity, expected) {
|
|
74
|
+
const identityInodeVerifiable = hasVerifiableInode(identity.inode);
|
|
75
|
+
const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
|
|
76
|
+
return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
|
|
77
|
+
identity.root.configuredRoot,
|
|
78
|
+
expected.root.configuredRoot
|
|
79
|
+
) && isSameConversationPath(
|
|
80
|
+
identity.root.canonicalRoot,
|
|
81
|
+
expected.root.canonicalRoot
|
|
82
|
+
) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
|
|
83
|
+
}
|
|
84
|
+
__name(hasExpectedDirectoryIdentity, "hasExpectedDirectoryIdentity");
|
|
85
|
+
async function createConversationRootIdentity(configuredRoot) {
|
|
86
|
+
try {
|
|
87
|
+
await mkdir(configuredRoot, { recursive: true, mode: 448 });
|
|
88
|
+
} catch (error) {
|
|
89
|
+
let existing;
|
|
90
|
+
try {
|
|
91
|
+
existing = await lstat(configuredRoot);
|
|
92
|
+
} catch {
|
|
93
|
+
throwIdentityIoError("root", error);
|
|
94
|
+
}
|
|
95
|
+
validateDirectoryStats(existing, "root");
|
|
96
|
+
throwIdentityIoError("root", error);
|
|
97
|
+
}
|
|
98
|
+
let before;
|
|
99
|
+
try {
|
|
100
|
+
before = await lstat(configuredRoot);
|
|
101
|
+
} catch (error) {
|
|
102
|
+
throwIdentityIoError("root", error);
|
|
103
|
+
}
|
|
104
|
+
validateDirectoryStats(before, "root");
|
|
105
|
+
let canonicalRoot;
|
|
106
|
+
let after;
|
|
107
|
+
try {
|
|
108
|
+
canonicalRoot = await realpath(configuredRoot);
|
|
109
|
+
after = await lstat(canonicalRoot);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
throwIdentityIoError("root", error);
|
|
112
|
+
}
|
|
113
|
+
validateDirectoryStats(after, "root");
|
|
114
|
+
if (!isSameDirectoryIdentity(before, after)) {
|
|
115
|
+
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
configuredRoot,
|
|
119
|
+
canonicalRoot,
|
|
120
|
+
device: after.dev,
|
|
121
|
+
inode: after.ino,
|
|
122
|
+
inodeVerifiable: hasVerifiableInode(after.ino)
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
__name(createConversationRootIdentity, "createConversationRootIdentity");
|
|
126
|
+
async function revalidateConversationRootIdentity(root) {
|
|
127
|
+
let configuredStats;
|
|
128
|
+
try {
|
|
129
|
+
configuredStats = await lstat(root.configuredRoot);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
throwIdentityIoError("root", error);
|
|
132
|
+
}
|
|
133
|
+
validateDirectoryStats(configuredStats, "root");
|
|
134
|
+
if (!hasRootIdentity(configuredStats, root)) {
|
|
135
|
+
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
136
|
+
}
|
|
137
|
+
let canonical;
|
|
138
|
+
try {
|
|
139
|
+
canonical = await realpath(root.configuredRoot);
|
|
140
|
+
} catch (error) {
|
|
141
|
+
throwIdentityIoError("root", error);
|
|
142
|
+
}
|
|
143
|
+
if (!isSameConversationPath(canonical, root.canonicalRoot)) {
|
|
144
|
+
throw new ConversationDirectoryIdentityError(
|
|
145
|
+
"root",
|
|
146
|
+
"canonical_path_changed"
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
let canonicalStats;
|
|
150
|
+
try {
|
|
151
|
+
canonicalStats = await lstat(root.canonicalRoot);
|
|
152
|
+
} catch (error) {
|
|
153
|
+
throwIdentityIoError("root", error);
|
|
154
|
+
}
|
|
155
|
+
validateDirectoryStats(canonicalStats, "root");
|
|
156
|
+
if (!hasRootIdentity(canonicalStats, root)) {
|
|
157
|
+
throw new ConversationDirectoryIdentityError("root", "identity_changed");
|
|
158
|
+
}
|
|
159
|
+
return root;
|
|
160
|
+
}
|
|
161
|
+
__name(revalidateConversationRootIdentity, "revalidateConversationRootIdentity");
|
|
162
|
+
async function assertExactConversationRootIdentity(root, candidate) {
|
|
163
|
+
await revalidateConversationRootIdentity(root);
|
|
164
|
+
const resolvedCandidate = resolve(candidate);
|
|
165
|
+
if (!isSameConversationPath(resolvedCandidate, root.configuredRoot) && !isSameConversationPath(resolvedCandidate, root.canonicalRoot)) {
|
|
166
|
+
throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
|
|
167
|
+
}
|
|
168
|
+
let stats;
|
|
169
|
+
let canonical;
|
|
170
|
+
try {
|
|
171
|
+
stats = await lstat(resolvedCandidate);
|
|
172
|
+
validateDirectoryStats(stats, "root");
|
|
173
|
+
canonical = await realpath(resolvedCandidate);
|
|
174
|
+
} catch (error) {
|
|
175
|
+
if (error instanceof ConversationDirectoryIdentityError) throw error;
|
|
176
|
+
throwIdentityIoError("root", error);
|
|
177
|
+
}
|
|
178
|
+
if (!isSameConversationPath(canonical, root.canonicalRoot) || !hasRootIdentity(stats, root)) {
|
|
179
|
+
throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
|
|
180
|
+
}
|
|
181
|
+
return root;
|
|
182
|
+
}
|
|
183
|
+
__name(assertExactConversationRootIdentity, "assertExactConversationRootIdentity");
|
|
184
|
+
async function inspectConversationNamedDirectoryIdentity(root, storageSessionId, name, expected) {
|
|
185
|
+
await revalidateConversationRootIdentity(root);
|
|
186
|
+
const candidate = join(root.canonicalRoot, name);
|
|
187
|
+
let before;
|
|
188
|
+
try {
|
|
189
|
+
before = await lstat(candidate);
|
|
190
|
+
} catch (error) {
|
|
191
|
+
if (error.code === "ENOENT") return void 0;
|
|
192
|
+
throwIdentityIoError("child", error);
|
|
193
|
+
}
|
|
194
|
+
validateDirectoryStats(before, "child");
|
|
195
|
+
let canonical;
|
|
196
|
+
let after;
|
|
197
|
+
try {
|
|
198
|
+
canonical = await realpath(candidate);
|
|
199
|
+
after = await lstat(canonical);
|
|
200
|
+
} catch (error) {
|
|
201
|
+
if (error.code === "ENOENT") return void 0;
|
|
202
|
+
throwIdentityIoError("child", error);
|
|
203
|
+
}
|
|
204
|
+
validateDirectoryStats(after, "child");
|
|
205
|
+
const child = relative(root.canonicalRoot, canonical);
|
|
206
|
+
if (child !== name || child.includes(sep) || child.startsWith("..") || isAbsolute(child)) {
|
|
207
|
+
throw new ConversationDirectoryIdentityError("child", "not_direct_child");
|
|
208
|
+
}
|
|
209
|
+
if (!isSameDirectoryIdentity(before, after)) {
|
|
210
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
211
|
+
}
|
|
212
|
+
await revalidateConversationRootIdentity(root);
|
|
213
|
+
const identity = {
|
|
214
|
+
root,
|
|
215
|
+
storageSessionId,
|
|
216
|
+
name,
|
|
217
|
+
canonicalPath: canonical,
|
|
218
|
+
device: after.dev,
|
|
219
|
+
inode: after.ino
|
|
220
|
+
};
|
|
221
|
+
if (expected && !hasExpectedDirectoryIdentity(identity, expected)) {
|
|
222
|
+
throw new ConversationDirectoryIdentityError(
|
|
223
|
+
"child",
|
|
224
|
+
"unexpected_identity"
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
return identity;
|
|
228
|
+
}
|
|
229
|
+
__name(inspectConversationNamedDirectoryIdentity, "inspectConversationNamedDirectoryIdentity");
|
|
230
|
+
async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
|
|
231
|
+
return inspectConversationNamedDirectoryIdentity(
|
|
232
|
+
root,
|
|
233
|
+
storageSessionId,
|
|
234
|
+
getConversationDirectoryName(storageSessionId),
|
|
235
|
+
expected
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
__name(inspectConversationDirectoryIdentity, "inspectConversationDirectoryIdentity");
|
|
239
|
+
async function inspectConversationStagedDirectoryIdentity(root, storageSessionId) {
|
|
240
|
+
return inspectConversationNamedDirectoryIdentity(
|
|
241
|
+
root,
|
|
242
|
+
storageSessionId,
|
|
243
|
+
getConversationStagedDirectoryName(storageSessionId)
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
__name(inspectConversationStagedDirectoryIdentity, "inspectConversationStagedDirectoryIdentity");
|
|
247
|
+
function isSameConversationDirectoryObject(identity, expected) {
|
|
248
|
+
const identityInodeVerifiable = hasVerifiableInode(identity.inode);
|
|
249
|
+
const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
|
|
250
|
+
return identity.storageSessionId === expected.storageSessionId && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
|
|
251
|
+
identity.root.canonicalRoot,
|
|
252
|
+
expected.root.canonicalRoot
|
|
253
|
+
) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
|
|
254
|
+
}
|
|
255
|
+
__name(isSameConversationDirectoryObject, "isSameConversationDirectoryObject");
|
|
256
|
+
async function materializeConversationDirectoryIdentity(root, storageSessionId) {
|
|
257
|
+
await revalidateConversationRootIdentity(root);
|
|
258
|
+
const name = getConversationDirectoryName(storageSessionId);
|
|
259
|
+
const candidate = join(root.canonicalRoot, name);
|
|
260
|
+
let created = false;
|
|
261
|
+
try {
|
|
262
|
+
await mkdir(candidate, { mode: 448 });
|
|
263
|
+
created = true;
|
|
264
|
+
} catch (error) {
|
|
265
|
+
if (error.code !== "EEXIST") {
|
|
266
|
+
throwIdentityIoError("child", error);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const identity = await inspectConversationDirectoryIdentity(
|
|
270
|
+
root,
|
|
271
|
+
storageSessionId
|
|
272
|
+
);
|
|
273
|
+
if (!identity) {
|
|
274
|
+
throw new ConversationDirectoryIdentityError("child", "identity_changed");
|
|
275
|
+
}
|
|
276
|
+
return { identity, created };
|
|
277
|
+
}
|
|
278
|
+
__name(materializeConversationDirectoryIdentity, "materializeConversationDirectoryIdentity");
|
|
279
|
+
|
|
280
|
+
// packages/core/dist/src/services/tool-write-origin.js
|
|
281
|
+
init_esbuild_shims();
|
|
282
|
+
var TOOL_WRITE_ORIGIN_META_KEY = "qwen-code/tool-write-origin";
|
|
283
|
+
var TOOL_WRITE_ORIGINS = [
|
|
284
|
+
"write_file",
|
|
285
|
+
"edit",
|
|
286
|
+
"notebook_edit",
|
|
287
|
+
"shell_sed_edit"
|
|
288
|
+
];
|
|
289
|
+
var TOOL_WRITE_ORIGIN_SET = new Set(TOOL_WRITE_ORIGINS);
|
|
290
|
+
function buildToolWriteOriginMeta(meta, source) {
|
|
291
|
+
const sanitized = { ...meta };
|
|
292
|
+
delete sanitized[TOOL_WRITE_ORIGIN_META_KEY];
|
|
293
|
+
if (source !== void 0) {
|
|
294
|
+
sanitized[TOOL_WRITE_ORIGIN_META_KEY] = { version: 1, source };
|
|
295
|
+
}
|
|
296
|
+
return Object.keys(sanitized).length > 0 ? sanitized : void 0;
|
|
297
|
+
}
|
|
298
|
+
__name(buildToolWriteOriginMeta, "buildToolWriteOriginMeta");
|
|
299
|
+
function parseToolWriteOriginMeta(meta) {
|
|
300
|
+
const marker = meta?.[TOOL_WRITE_ORIGIN_META_KEY];
|
|
301
|
+
if (typeof marker !== "object" || marker === null || Array.isArray(marker)) {
|
|
302
|
+
return void 0;
|
|
303
|
+
}
|
|
304
|
+
const keys = Object.keys(marker);
|
|
305
|
+
if (keys.length !== 2 || !Object.hasOwn(marker, "version") || !Object.hasOwn(marker, "source")) {
|
|
306
|
+
return void 0;
|
|
307
|
+
}
|
|
308
|
+
const record = marker;
|
|
309
|
+
return record["version"] === 1 && typeof record["source"] === "string" && TOOL_WRITE_ORIGIN_SET.has(record["source"]) ? record["source"] : void 0;
|
|
310
|
+
}
|
|
311
|
+
__name(parseToolWriteOriginMeta, "parseToolWriteOriginMeta");
|
|
312
|
+
|
|
313
|
+
export {
|
|
314
|
+
buildToolWriteOriginMeta,
|
|
315
|
+
parseToolWriteOriginMeta,
|
|
316
|
+
ConversationDirectoryIdentityError,
|
|
317
|
+
isSameConversationPath,
|
|
318
|
+
getConversationDirectoryName,
|
|
319
|
+
getConversationStagedDirectoryName,
|
|
320
|
+
createConversationRootIdentity,
|
|
321
|
+
revalidateConversationRootIdentity,
|
|
322
|
+
assertExactConversationRootIdentity,
|
|
323
|
+
inspectConversationDirectoryIdentity,
|
|
324
|
+
inspectConversationStagedDirectoryIdentity,
|
|
325
|
+
isSameConversationDirectoryObject,
|
|
326
|
+
materializeConversationDirectoryIdentity
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* @license
|
|
330
|
+
* Copyright 2026 Qwen Team
|
|
331
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
332
|
+
*/
|
|
333
|
+
/**
|
|
334
|
+
* @license
|
|
335
|
+
* Copyright 2025 Google LLC
|
|
336
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
337
|
+
*/
|
|
@@ -1108,6 +1108,21 @@ var Storage = class _Storage {
|
|
|
1108
1108
|
getWorkflowRunsDir() {
|
|
1109
1109
|
return path2.join(this.getProjectDir(), "workflows");
|
|
1110
1110
|
}
|
|
1111
|
+
/**
|
|
1112
|
+
* Generated-workflow scripts directory: `<projectDir>/workflows/generated`.
|
|
1113
|
+
* A trusted root for `Workflow({scriptPath})` / `workflow({scriptPath})`
|
|
1114
|
+
* that is NOT a saved-workflow scope: scripts here are never listed as
|
|
1115
|
+
* `/<name>` slash commands and cannot be reached by `workflow('<name>')`.
|
|
1116
|
+
* It exists for tooling that emits a script for one run (a CLI subcommand
|
|
1117
|
+
* generating a fan-out for the model to dispatch) — such a script has no
|
|
1118
|
+
* business in the user's command namespace, and the runtime dir keeps it
|
|
1119
|
+
* out of the project tree. Layout below the root is the writer's; the
|
|
1120
|
+
* loader trusts the whole subtree. A subprocess reaches it as
|
|
1121
|
+
* `$QWEN_CODE_PROJECT_DIR/workflows/generated`.
|
|
1122
|
+
*/
|
|
1123
|
+
getGeneratedWorkflowsDir() {
|
|
1124
|
+
return path2.join(this.getWorkflowRunsDir(), "generated");
|
|
1125
|
+
}
|
|
1111
1126
|
/**
|
|
1112
1127
|
* Path to the persisted snapshot of a completed workflow run.
|
|
1113
1128
|
*/
|
|
@@ -2,25 +2,26 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RWZB422L.js";
|
|
6
6
|
import {
|
|
7
7
|
computeThresholds,
|
|
8
|
+
estimateContextTextTokens,
|
|
8
9
|
formatContextFileDisplayPath,
|
|
9
10
|
getMainSessionBaseSystemPrompt
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-EWIQ3NAE.js";
|
|
11
12
|
import {
|
|
12
13
|
DiscoveredMCPTool,
|
|
13
14
|
uiTelemetryService
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SZLBBZH4.js";
|
|
15
16
|
import {
|
|
16
17
|
DEFAULT_TOKEN_LIMIT
|
|
17
18
|
} from "./chunk-FPGTNKCP.js";
|
|
18
19
|
import {
|
|
19
20
|
buildSkillLlmContent
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ZU4UDIWX.js";
|
|
21
22
|
import {
|
|
22
23
|
ToolNames
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-UTLCH2FK.js";
|
|
24
25
|
import {
|
|
25
26
|
init_esbuild_shims
|
|
26
27
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -38,21 +39,6 @@ function currentTier(tokens, thresholds) {
|
|
|
38
39
|
return "safe";
|
|
39
40
|
}
|
|
40
41
|
__name(currentTier, "currentTier");
|
|
41
|
-
function estimateTokens(text) {
|
|
42
|
-
if (!text || text.length === 0) return 0;
|
|
43
|
-
let asciiChars = 0;
|
|
44
|
-
let nonAsciiChars = 0;
|
|
45
|
-
for (let i = 0; i < text.length; i++) {
|
|
46
|
-
const charCode = text.charCodeAt(i);
|
|
47
|
-
if (charCode < 128) {
|
|
48
|
-
asciiChars++;
|
|
49
|
-
} else {
|
|
50
|
-
nonAsciiChars++;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return Math.ceil(asciiChars / 4 + nonAsciiChars * 1.5);
|
|
54
|
-
}
|
|
55
|
-
__name(estimateTokens, "estimateTokens");
|
|
56
42
|
function parseMemoryFiles(memoryContent, workingDir) {
|
|
57
43
|
if (!memoryContent || memoryContent.trim().length === 0) return [];
|
|
58
44
|
const results = [];
|
|
@@ -70,13 +56,13 @@ function parseMemoryFiles(memoryContent, workingDir) {
|
|
|
70
56
|
path.resolve(workingDir, filePath),
|
|
71
57
|
workingDir
|
|
72
58
|
),
|
|
73
|
-
tokens:
|
|
59
|
+
tokens: estimateContextTextTokens(content)
|
|
74
60
|
});
|
|
75
61
|
}
|
|
76
62
|
if (results.length === 0 && memoryContent.trim().length > 0) {
|
|
77
63
|
results.push({
|
|
78
64
|
path: t("memory"),
|
|
79
|
-
tokens:
|
|
65
|
+
tokens: estimateContextTextTokens(memoryContent)
|
|
80
66
|
});
|
|
81
67
|
}
|
|
82
68
|
return results;
|
|
@@ -91,12 +77,12 @@ async function collectContextData(config, showDetails) {
|
|
|
91
77
|
const apiTotalTokens = activeChat ? activeChat.getLastPromptTokenCount() : uiTelemetryService.getLastPromptTokenCount();
|
|
92
78
|
const apiCachedTokens = uiTelemetryService.getLastCachedContentTokenCount();
|
|
93
79
|
const systemPromptText = getMainSessionBaseSystemPrompt(config);
|
|
94
|
-
const systemPromptTokens =
|
|
80
|
+
const systemPromptTokens = estimateContextTextTokens(systemPromptText);
|
|
95
81
|
const toolRegistry = config.getToolRegistry();
|
|
96
82
|
const allTools = toolRegistry ? toolRegistry.getAllTools() : [];
|
|
97
83
|
const toolDeclarations = toolRegistry ? toolRegistry.getFunctionDeclarations() : [];
|
|
98
84
|
const toolsJsonStr = JSON.stringify(toolDeclarations);
|
|
99
|
-
const allToolsTokens =
|
|
85
|
+
const allToolsTokens = estimateContextTextTokens(toolsJsonStr);
|
|
100
86
|
const builtinTools = [];
|
|
101
87
|
const mcpTools = [];
|
|
102
88
|
for (const tool of allTools) {
|
|
@@ -104,7 +90,7 @@ async function collectContextData(config, showDetails) {
|
|
|
104
90
|
continue;
|
|
105
91
|
}
|
|
106
92
|
const toolJsonStr = JSON.stringify(tool.schema);
|
|
107
|
-
const tokens =
|
|
93
|
+
const tokens = estimateContextTextTokens(toolJsonStr);
|
|
108
94
|
if (tool instanceof DiscoveredMCPTool) {
|
|
109
95
|
mcpTools.push({
|
|
110
96
|
name: `${tool.serverName}__${tool.serverToolName || tool.name}`,
|
|
@@ -123,19 +109,19 @@ async function collectContextData(config, showDetails) {
|
|
|
123
109
|
if (autoMemoryPrompt) {
|
|
124
110
|
memoryFiles.push({
|
|
125
111
|
path: t("auto memory"),
|
|
126
|
-
tokens:
|
|
112
|
+
tokens: estimateContextTextTokens(autoMemoryPrompt)
|
|
127
113
|
});
|
|
128
114
|
}
|
|
129
115
|
const memoryFilesTokens = memoryFiles.reduce((sum, f) => sum + f.tokens, 0);
|
|
130
116
|
const skillTool = allTools.find((tool) => tool.name === ToolNames.SKILL);
|
|
131
|
-
const skillToolDefinitionTokens = skillTool ?
|
|
117
|
+
const skillToolDefinitionTokens = skillTool ? estimateContextTextTokens(JSON.stringify(skillTool.schema)) : 0;
|
|
132
118
|
const loadedSkillNames = skillTool && "getLoadedSkillNames" in skillTool ? skillTool.getLoadedSkillNames() : /* @__PURE__ */ new Set();
|
|
133
119
|
const skillManager = config.getSkillManager();
|
|
134
120
|
const skillConfigs = skillManager ? await skillManager.listSkills() : [];
|
|
135
121
|
const disabledSkillNames = config.getDisabledSkillNames();
|
|
136
122
|
let loadedBodiesTokens = 0;
|
|
137
123
|
const skills = skillConfigs.map((skill) => {
|
|
138
|
-
const listingTokens =
|
|
124
|
+
const listingTokens = estimateContextTextTokens(
|
|
139
125
|
`<skill>
|
|
140
126
|
<name>
|
|
141
127
|
${skill.name}
|
|
@@ -152,7 +138,9 @@ ${skill.level}
|
|
|
152
138
|
let bodyTokens;
|
|
153
139
|
if (isLoaded && skill.body) {
|
|
154
140
|
const baseDir = skill.filePath ? skill.filePath.replace(/\/[^/]+$/, "") : "";
|
|
155
|
-
bodyTokens =
|
|
141
|
+
bodyTokens = estimateContextTextTokens(
|
|
142
|
+
buildSkillLlmContent(baseDir, skill.body)
|
|
143
|
+
);
|
|
156
144
|
loadedBodiesTokens += bodyTokens;
|
|
157
145
|
}
|
|
158
146
|
return {
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isGitRepository
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SMPR7SPO.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UHQFIS7N.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -6,11 +6,12 @@ import {
|
|
|
6
6
|
OFFICE_DOCUMENT_EXTENSIONS,
|
|
7
7
|
hasControlCharacter,
|
|
8
8
|
hasUnsafeDisplayPayload,
|
|
9
|
+
pathHasSkippedDirectoryComponent,
|
|
9
10
|
toCanonicalWorkspaceArtifactPath
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-K5KXUXWC.js";
|
|
11
12
|
import {
|
|
12
13
|
checkTeamMemorySecrets
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VTHREBQM.js";
|
|
14
15
|
import {
|
|
15
16
|
CommitAttributionService,
|
|
16
17
|
FileEncoding,
|
|
@@ -19,27 +20,27 @@ import {
|
|
|
19
20
|
detectLineEnding,
|
|
20
21
|
getDiffStat,
|
|
21
22
|
needsUtf8Bom
|
|
22
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-EWIQ3NAE.js";
|
|
23
24
|
import {
|
|
24
25
|
FileOperationEvent,
|
|
25
26
|
getLanguageFromFilePath,
|
|
26
27
|
logFileOperation
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-SZLBBZH4.js";
|
|
28
29
|
import {
|
|
29
30
|
fileExists,
|
|
30
31
|
getSpecificMimeType
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-BKWNKLZB.js";
|
|
32
33
|
import {
|
|
33
34
|
isAnyAutoMemPath,
|
|
34
35
|
isTeamAutoMemPath
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-6PJOTWAN.js";
|
|
36
37
|
import {
|
|
37
38
|
BaseDeclarativeTool,
|
|
38
39
|
BaseToolInvocation,
|
|
39
40
|
StructuredToolError,
|
|
40
41
|
ToolDisplayNames,
|
|
41
42
|
ToolNames
|
|
42
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-UTLCH2FK.js";
|
|
43
44
|
import {
|
|
44
45
|
createDebugLogger,
|
|
45
46
|
getErrorMessage,
|
|
@@ -47,7 +48,7 @@ import {
|
|
|
47
48
|
makeRelative,
|
|
48
49
|
shortenPath,
|
|
49
50
|
unescapePath
|
|
50
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-UHQFIS7N.js";
|
|
51
52
|
import {
|
|
52
53
|
init_esbuild_shims
|
|
53
54
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -376,7 +377,7 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
|
|
|
376
377
|
`User modified the \`content\` to be: ${content}`
|
|
377
378
|
);
|
|
378
379
|
}
|
|
379
|
-
const artifact = buildWorkspaceArtifactMetadata(
|
|
380
|
+
const artifact = this.params.record_as_artifact === false ? null : buildWorkspaceArtifactMetadata(
|
|
380
381
|
this.config,
|
|
381
382
|
file_path,
|
|
382
383
|
postWriteSizeBytes
|
|
@@ -498,6 +499,9 @@ function resolveRecordedWorkspaceFile(config, filePath) {
|
|
|
498
499
|
if (!workspacePath) {
|
|
499
500
|
return null;
|
|
500
501
|
}
|
|
502
|
+
if (pathHasSkippedDirectoryComponent(workspacePath)) {
|
|
503
|
+
return null;
|
|
504
|
+
}
|
|
501
505
|
return { filePath: resolvedFile, workspacePath };
|
|
502
506
|
}
|
|
503
507
|
__name(resolveRecordedWorkspaceFile, "resolveRecordedWorkspaceFile");
|
|
@@ -512,6 +516,8 @@ var WriteFileTool = class _WriteFileTool extends BaseDeclarativeTool {
|
|
|
512
516
|
ToolDisplayNames.WRITE_FILE,
|
|
513
517
|
`Writes content to a specified file in the local filesystem. A request to create or generate a file does not establish that the target path is new. Unless the target's absence or current text contents have already been established in this session, you MUST use the ${ToolNames.READ_FILE} tool first; if the file does not exist, then create it. With prior-read enforcement enabled, blind overwrites are rejected. The file_path argument MUST be an absolute path. Always construct it by combining the project root with the file's relative path (e.g. project root '/path/to/project/' + relative 'foo/bar.txt' = '/path/to/project/foo/bar.txt'). If the user provides a relative path, resolve it against the project root first.
|
|
514
518
|
|
|
519
|
+
Artifact-like files such as HTML, PDF, images, notebooks, and office documents are automatically registered as session artifacts. Intermediate files that exist only to produce another artifact \u2014 for example HTML written solely to print a PDF \u2014 must set record_as_artifact=false, or be written under .qwen/tmp/ so they are not registered. Delete those intermediates when done.
|
|
520
|
+
|
|
515
521
|
The user has the ability to modify \`content\`. If modified, this will be stated in the response.`,
|
|
516
522
|
"edit" /* Edit */,
|
|
517
523
|
{
|
|
@@ -523,6 +529,10 @@ The user has the ability to modify \`content\`. If modified, this will be stated
|
|
|
523
529
|
content: {
|
|
524
530
|
description: "The content to write to the file.",
|
|
525
531
|
type: "string"
|
|
532
|
+
},
|
|
533
|
+
record_as_artifact: {
|
|
534
|
+
description: "Set false for intermediate files that should not appear as session artifacts, such as HTML used only to print a PDF. Defaults to true for artifact-like extensions.",
|
|
535
|
+
type: "boolean"
|
|
526
536
|
}
|
|
527
537
|
},
|
|
528
538
|
required: ["file_path", "content"],
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getCurrentAgentId
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CMHFCLBU.js";
|
|
6
6
|
import {
|
|
7
7
|
getTeammateContext,
|
|
8
8
|
isTeammate
|
|
9
9
|
} from "./chunk-S6LOFUVP.js";
|
|
10
10
|
import {
|
|
11
11
|
ToolNames
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UTLCH2FK.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isTeamAutoMemPath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6PJOTWAN.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UHQFIS7N.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|