@qwen-code/qwen-code 0.22.2-preview.1 → 0.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +3 -3
- package/bundled/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/settings.md +37 -36
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +2 -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/computer-use.md +2 -2
- 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/qc-helper/docs/features/tool-use-summaries.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +81 -31
- package/bundled/review/references/persistence.md +7 -3
- package/bundled/review/references/posting.md +10 -4
- package/chunks/MaxSizedBox-X42SXBJH.js +110 -0
- package/chunks/{StandaloneSessionPicker-5D2L22SF.js → StandaloneSessionPicker-2FJAOLGG.js} +81 -83
- package/chunks/{acpAgent-4DCKLA32.js → acpAgent-2ZMIJAFV.js} +1153 -357
- package/chunks/{agent-B4AFZL6H.js → agent-X5WX3L2I.js} +44 -46
- package/chunks/agent-headless-IZM25LJA.js +85 -0
- package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-YVTB6QX7.js} +46 -50
- 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-ME6QXZNA.js +119 -0
- package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-HQ6KDS7C.js} +6 -6
- package/chunks/channel-settings-store-PEOI7XCG.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-JLU3FPQR.js → chunk-2HYKTO7V.js} +5 -5
- package/chunks/chunk-2LNNVAUV.js +1584 -0
- package/chunks/{chunk-FJAITR4L.js → chunk-2OBKDPZZ.js} +2 -2
- package/chunks/{chunk-JSY43GMI.js → chunk-2OUD5T67.js} +185 -174
- package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/{chunk-XMSMTU6H.js → chunk-2YOHKHYR.js} +4 -4
- package/chunks/{chunk-MCKJTBZN.js → chunk-36GSQ3MM.js} +2 -2
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-X3XGCJ32.js → chunk-3SZC4VP4.js} +28 -111
- package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-IKN3IUJP.js → chunk-3XKLXHGK.js} +17 -9
- package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-SQPOJ4ZI.js → chunk-4NDLQAY2.js} +27 -270
- package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-VBF4KZRQ.js → chunk-4TT3IVGA.js} +1 -1
- package/chunks/{chunk-IOGKXPL3.js → chunk-4VPCTGH6.js} +6 -6
- package/chunks/chunk-4VQBQLIZ.js +293 -0
- package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
- package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
- package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-WZ3QKPMQ.js → chunk-6X7EU5TI.js} +19 -31
- package/chunks/{chunk-KQYW2GB5.js → chunk-6ZPDLGHN.js} +6 -6
- package/chunks/{chunk-AKQA3WCH.js → chunk-734C6JGI.js} +723 -3399
- package/chunks/{chunk-F7M6ZFGU.js → chunk-73RM4POK.js} +8 -8
- package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-LWLEPXKK.js → chunk-7LOELM2I.js} +19 -2
- package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
- package/chunks/{chunk-AWFZDYSD.js → chunk-7T52W4SW.js} +1 -1
- package/chunks/{chunk-3JKUX4PB.js → chunk-7VMIMAVB.js} +9 -9
- package/chunks/{chunk-2MHGD7EE.js → chunk-A3LWD5MK.js} +1 -1
- package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
- package/chunks/{chunk-TDQBVEPK.js → chunk-AIAOIFY4.js} +10 -8
- package/chunks/{chunk-NEZZHGEI.js → chunk-AYFA7MZV.js} +6 -6
- package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
- package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
- package/chunks/{chunk-T45CL2NT.js → chunk-BOWFGCEU.js} +3 -3
- 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-PTQF7WRA.js → chunk-C3PEFRKD.js} +6 -6
- package/chunks/{chunk-7OBH4AM2.js → chunk-CAJTKR6W.js} +5 -5
- package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-SUE2ZMUH.js → chunk-CIZCL2MW.js} +49 -31
- package/chunks/{chunk-W2WRNJKX.js → chunk-CLWO3B77.js} +6 -6
- package/chunks/{chunk-U45D46O5.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
- package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-BQBUZDDH.js → chunk-DJECZIJX.js} +42 -42
- package/chunks/{chunk-GTUZ3R6I.js → chunk-DJEZ55D4.js} +351 -113
- package/chunks/{chunk-HPECDZ6X.js → chunk-DJPASAUV.js} +3866 -1077
- package/chunks/{chunk-VYWCFWI5.js → chunk-DMLVSW7L.js} +542 -654
- package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
- package/chunks/{chunk-UWICO5KN.js → chunk-EFWRMA2I.js} +3 -3
- package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-ALTQLFEG.js → chunk-EQSBPBZ3.js} +5 -194
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/{chunk-4K44OMLI.js → chunk-FROAFEFB.js} +3 -3
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
- package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
- package/chunks/{chunk-TMGAS5TO.js → chunk-GBJBJ4HX.js} +26 -4
- package/chunks/{chunk-UCQOSV6A.js → chunk-GPGU4S2N.js} +3 -3
- package/chunks/{chunk-BHTJAO36.js → chunk-GVIVASYK.js} +7 -7
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
- package/chunks/{chunk-FCSWZAS3.js → chunk-HP5LR5HL.js} +5 -5
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-OI2DR6QB.js → chunk-I6LYRJPB.js} +3 -3
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
- package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
- package/chunks/{chunk-FN5C6C7G.js → chunk-JHYH6PYQ.js} +192 -478
- package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
- package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-XUX6O2ZT.js → chunk-KID24ZFN.js} +4 -1
- package/chunks/{chunk-I6DY753S.js → chunk-KJO2LBUK.js} +944 -18
- package/chunks/{chunk-5T4LWWNX.js → chunk-KYWTPLBJ.js} +18 -21
- package/chunks/{chunk-CZFQ62RM.js → chunk-LHBUKJG2.js} +4 -4
- package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-2YDYDDE2.js → chunk-M3QRM3DE.js} +3 -3
- package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-ZGWDHSUM.js → chunk-MF7HCQWZ.js} +4 -4
- package/chunks/{chunk-66GIFJ63.js → chunk-MK2GIB46.js} +1 -1
- package/chunks/{chunk-TFV4RXPU.js → chunk-MO3FC2WT.js} +1 -1
- package/chunks/{chunk-TR7G7XFQ.js → chunk-MPNBVAEU.js} +5 -5
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-3WBMPR3S.js → chunk-MSBO7X2W.js} +1 -1
- package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-AP7WZONS.js → chunk-NMOD2FXQ.js} +19 -9
- package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-5URK47RN.js → chunk-NV55WWD6.js} +11595 -10375
- package/chunks/{chunk-HABT2Z7R.js → chunk-OU5APVWO.js} +4 -4
- package/chunks/{chunk-QR4AHMGQ.js → chunk-P2G476QN.js} +13 -13
- package/chunks/{chunk-5SM2AK65.js → chunk-PADPMMYM.js} +5 -5
- 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-XIRDDFRS.js → chunk-PZ66FRIC.js} +2644 -2296
- package/chunks/{chunk-H3HZ4AWW.js → chunk-Q2MSPKIJ.js} +1 -1
- package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/{chunk-OF2DPXUS.js → chunk-QYMAKPY5.js} +119 -24
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/chunk-SEONHUS3.js +275 -0
- package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/chunk-SS4MRMKE.js +3525 -0
- package/chunks/{chunk-BPMVPWBT.js → chunk-SS5SDCD3.js} +6 -6
- package/chunks/{chunk-J3CBIEDS.js → chunk-ST5MDGH3.js} +32 -15
- package/chunks/{chunk-J5352S3S.js → chunk-ST5V3ZOC.js} +3 -3
- package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
- package/chunks/{chunk-5CMWFBML.js → chunk-TEBDFQBZ.js} +1 -1
- package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-VOEMVOM4.js → chunk-TVC6HQ2U.js} +2 -2
- package/chunks/{chunk-WXDZZFH3.js → chunk-TZBSGJ6C.js} +6 -6
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
- package/chunks/{chunk-76WGY6LW.js → chunk-URE3QBBB.js} +3 -3
- package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
- package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-FJWICLG7.js → chunk-V4264FEG.js} +9 -9
- package/chunks/{chunk-XR7OIAQF.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-7UJTY5V3.js → chunk-V7EESTJV.js} +1 -1
- package/chunks/{chunk-Z6L3C4VF.js → chunk-VBCPNIQD.js} +39 -39
- package/chunks/{chunk-ATLGYSYH.js → chunk-VGIFXISB.js} +4 -4
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-AA7VBRBG.js → chunk-W3JH33JE.js} +8 -8
- package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-CDUN63IN.js → chunk-WGY3AVGM.js} +3 -3
- package/chunks/{chunk-JLGFGPZJ.js → chunk-WNPDGUJO.js} +22 -3
- package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-R7G7GKOX.js → chunk-XHF7WQ6B.js} +3 -3
- package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-3D6PDLNJ.js → chunk-XSG6G3G6.js} +49 -32
- package/chunks/{chunk-5JCZ3UKB.js → chunk-Y5S7LBOZ.js} +44 -7
- package/chunks/{chunk-OLS3MAXQ.js → chunk-YLSQLSH7.js} +15 -9
- package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-KPF2K55D.js → chunk-ZEYFMJQA.js} +39 -8
- package/chunks/{chunk-OT4YKUUV.js → chunk-ZU4UDIWX.js} +2 -2
- package/chunks/chunk-ZWJDJ6RU.js +2597 -0
- package/chunks/{chunk-R3T33BG5.js → chunk-ZYMLPEZQ.js} +3 -3
- package/chunks/{chunk-DID6IRGC.js → chunk-ZZMSC3RG.js} +56 -39
- package/chunks/{chunk-L436XFLJ.js → chunk-ZZUKP7HV.js} +1 -1
- package/chunks/config-utils-R6M3TA34.js +113 -0
- package/chunks/contextCommand-ZCAP23J6.js +106 -0
- package/chunks/{core-runtime-CEJRHCRF.js → core-runtime-AXB6SK5D.js} +59 -61
- package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
- package/chunks/{create-sub-session-DFZVIG56.js → create-sub-session-4QNE64MR.js} +164 -85
- 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-3GNHB3M2.js} +523 -8
- package/chunks/{daemon-git-worktree-guard-L6ZUFKF7.js → daemon-git-worktree-guard-IVAJJWYK.js} +56 -58
- package/chunks/daemon-status-provider-K3SJ5C2U.js +117 -0
- package/chunks/daemon-trust-policy-DOR3YG62.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-2G3EKQEU.js → daemon-trust-policy-monitor-KGGROSIV.js} +64 -66
- package/chunks/deferred-core-runtime-WOYLUQQ7.js +114 -0
- package/chunks/{display-image-6KHQNEAE.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-NSV4NBPK.js} +31 -14
- package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-OHBEVO4K.js +107 -0
- package/chunks/{edit-ZERGX3RV.js → edit-LEQLAGPZ.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-W2RP3P5B.js → enterPlanMode-ONQN3WHE.js} +47 -49
- package/chunks/{environment-ZBJ23YVR.js → environment-UANTR7A4.js} +60 -62
- package/chunks/errors-WAK6KFBC.js +113 -0
- package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
- package/chunks/exitPlanMode-UEYBG6P5.js +83 -0
- package/chunks/{fast-path-4MWBCEUF.js → fast-path-WUL7UZ6H.js} +7 -7
- package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
- package/chunks/{glob-DKTNG32L.js → glob-Y54QUWDY.js} +44 -46
- package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-PTD3MBA7.js} +10 -8
- package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-FP3NWNSG.js +109 -0
- package/chunks/i18n-INIU5X7A.js +124 -0
- package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
- package/chunks/initializer-TYODV6GE.js +113 -0
- package/chunks/installationInfo-AAPKYDSZ.js +107 -0
- package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-TUODDN6J.js +116 -0
- package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/{gemini-X5GQHQYF.js → llm-NSAVK5V3.js} +117 -114
- package/chunks/{geminiContentGenerator-UDSWXZXL.js → llm-content-generator-AY2QKXHE.js} +29 -29
- package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +110 -0
- package/chunks/{loggingContentGenerator-73C7TKDK.js → loggingContentGenerator-DSFQHXIF.js} +328 -37
- 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-H2KOLQZU.js → managed-npm-update-TSWENTK5.js} +57 -59
- package/chunks/mcp-MWSAPFOL.js +110 -0
- package/chunks/{monitor-TGCMNJJH.js → monitor-RW4GWJHB.js} +44 -46
- package/chunks/nonInteractiveCli-JXKL343Q.js +185 -0
- package/chunks/{notebook-edit-YEUNZYDX.js → notebook-edit-CQNYS5OR.js} +45 -47
- package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
- package/chunks/{openaiContentGenerator-J7LD4VSL.js → openaiContentGenerator-J6QIF7EX.js} +26 -28
- package/chunks/pidfile-QOIQZFT2.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-ZHFC7CSL.js → processUtils-GPHNANKZ.js} +2 -2
- package/chunks/prompt-terminal-ledger-FOMFTYOM.js +105 -0
- package/chunks/{qwenContentGenerator-YEWWK3JQ.js → qwenContentGenerator-WWDXPYQI.js} +49 -51
- package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
- package/chunks/{read-file-ZQI3WPVK.js → read-file-FQUQHC6N.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-AO5VYFLR.js} +9 -5
- package/chunks/{request-shutdown-6IW46GD7.js → request-shutdown-BCLA3JV2.js} +7 -7
- package/chunks/resumeHistoryUtils-NSGF3UCB.js +118 -0
- package/chunks/ripGrep-4CAT6SKV.js +39 -0
- package/chunks/{run-qwen-serve-WHWU7NZ6.js → run-qwen-serve-5X6IDZER.js} +371 -357
- package/chunks/{runtime-E7BSPWQP.js → runtime-HK27GMPF.js} +69 -71
- package/chunks/scheduled-tasks-MN2ZZ5P6.js +127 -0
- package/chunks/{scheduler-TJPATFOM.js → scheduler-WD4MHMO5.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-OXZK6USO.js → send-message-AJ4OCUBV.js} +25 -9
- package/chunks/serve-2XCHPPGG.js +118 -0
- package/chunks/{server-AXCN7QBJ.js → server-GO2N5DH7.js} +6080 -4964
- package/chunks/{session-HO4US3AG.js → session-IFNHTUBT.js} +112 -112
- package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
- package/chunks/{settings-B2PFJJN4.js → settings-L6N54CU6.js} +63 -65
- package/chunks/{shell-7XMSANI3.js → shell-4Y5LLW6N.js} +44 -46
- package/chunks/{skill-NL3VH562.js → skill-YOWTRAKQ.js} +68 -24
- package/chunks/skill-settings-ZL4JY5UE.js +118 -0
- package/chunks/spawnChannel-ZST6XJVJ.js +112 -0
- package/chunks/standalone-update-THVU3OKY.js +118 -0
- package/chunks/{startInteractiveUI-G2XKSCQ7.js → startInteractiveUI-XDFSHBZD.js} +3076 -2475
- package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
- package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-TY7P6UHG.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-O4IGDPCK.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-IYBUOORE.js → team-create-OOPXCDBA.js} +44 -46
- package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-YKU57LBM.js → team-plan-approval-DSX5EWAT.js} +44 -46
- package/chunks/terminal-image-renderer-KS25G33E.js +114 -0
- package/chunks/theme-manager-YMZNG45F.js +102 -0
- package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-4Q3KASIQ.js → tool-search-J5Q6U7DN.js} +22 -22
- package/chunks/total-session-admission-PVN64JVV.js +114 -0
- package/chunks/trustedFolders-FATSC4YI.js +122 -0
- package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
- package/chunks/{update-relaunch-4DC2KKFS.js → update-relaunch-SIKHLHVR.js} +6 -6
- package/chunks/updateCheck-D3YG2WCD.js +118 -0
- package/chunks/useAutoAcceptIndicator-ILINOSAS.js +120 -0
- package/chunks/{validateNonInterActiveAuth-YAE4YPO3.js → validateNonInterActiveAuth-JUDQP6V4.js} +105 -105
- package/chunks/{version-QFP7OGWX.js → version-C63GDDWN.js} +1 -1
- package/chunks/{web-fetch-6T23IK6Q.js → web-fetch-FOQZMNSC.js} +16 -18
- package/chunks/{web-search-WBWTCZK2.js → web-search-PUJTBFUC.js} +9 -11
- package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
- package/chunks/{workflow-FMAA3D4R.js → workflow-Y5IPINVH.js} +128 -94
- package/chunks/workspace-providers-status-IJ4VHFMB.js +114 -0
- package/chunks/{workspace-registration-store-CMMX7EPX.js → workspace-registration-store-SMJWI2AI.js} +1 -1
- package/chunks/workspace-registry-BTGZIMPK.js +123 -0
- package/chunks/workspace-service-SIN67ITC.js +126 -0
- package/chunks/workspace-skills-status-F3RKCUIX.js +113 -0
- package/chunks/{workspace-trust-reconciler-PJDQUTJL.js → workspace-trust-reconciler-PLIDLJZX.js} +72 -72
- package/chunks/write-file-PAIGB33C.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-WVYVFRXF.js → zoom-image-LYQD7BQA.js} +13 -13
- package/cli.js +16 -16
- 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-d-8xa8uz.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
- package/web-shell/assets/{arc-BhB7CrGK.js → arc-D9Uls5b3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BDCd_IcJ.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C-AHu6mi.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-CFjQt0vl.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
- package/web-shell/assets/channel-CXjVLaBa.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DRjwqaDq.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-eHM9noJE.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CcSWUYn1.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DNr-RF5S.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-rVJHoNF8.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-B2aX0Gzy.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DVp07n32.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-C6QB_KUr.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CLVxDNCy.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-B_aKX3A3.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-BBw2pPUa.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-WWPiBTwk.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-CPtIdka-.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-Dj5og1Xi.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-CC_x70YC.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-rXMfsO4n.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DEmLYQbh.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B0ys6Vxx.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq6y6lKH.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-l69JeBZ4.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-Cm-EzGY4.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BRS9ZOp7.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DAMRKgLk.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
- package/web-shell/assets/{index-Bncx8E8M.js → index-BK_NKxiJ.js} +1 -1
- package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
- package/web-shell/assets/index-LDlXZRHA.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-DasffaZp.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CmRUt3C-.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DzhE_c1Z.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-BH5b6nn3.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
- package/web-shell/assets/{layout-BxoLK-LY.js → layout-B9n81PC9.js} +1 -1
- package/web-shell/assets/{linear-CqDPvVI7.js → linear-Bb6nXZQq.js} +1 -1
- package/web-shell/assets/{mermaid.core-DBoN4plo.js → mermaid.core-Cgrm3JVT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DJJtXPEM.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DmgPXP5l.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-1ezjzcI5.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-ChKARz3k.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-k7mNB_QT.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-B0XFsii0.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-repJ2Ukk.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D0gUSKGu.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CE463F74.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-003zYtJa.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-DBj8MFpu.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-D2aCh4a9.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BHMfWBpl.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-RdHAj66j.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BgJWOvq0.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/MaxSizedBox-BFVLZP2E.js +0 -112
- package/chunks/agent-headless-UCBCS4V4.js +0 -87
- package/chunks/bridge-FRNYLYY7.js +0 -119
- package/chunks/channel-settings-store-IV4KDL7N.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-PMX4QZ5Y.js +0 -113
- package/chunks/contextCommand-NZRLVAFC.js +0 -108
- package/chunks/daemon-status-provider-FTTYZEKN.js +0 -118
- package/chunks/daemon-trust-policy-WMGFPA3Z.js +0 -114
- package/chunks/deferred-core-runtime-BUFEFYNA.js +0 -116
- package/chunks/earlyInputCapture-ROPLMXA7.js +0 -109
- package/chunks/errors-U5KNAADB.js +0 -115
- package/chunks/exitPlanMode-VFJ5R5DD.js +0 -85
- package/chunks/handleAutoUpdate-W4BUYFT7.js +0 -111
- package/chunks/i18n-KX7FEKJJ.js +0 -126
- package/chunks/initializer-SNVVLS7Y.js +0 -115
- package/chunks/installationInfo-D4XGQNHJ.js +0 -109
- package/chunks/list-WYECMLXZ.js +0 -118
- package/chunks/loadedSettingsAdapter-5WZBXBCR.js +0 -112
- package/chunks/mcp-CBWAROY3.js +0 -112
- package/chunks/nonInteractiveCli-O232UUV7.js +0 -185
- package/chunks/pidfile-MSPQ255Y.js +0 -113
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-YPGMNDXT.js +0 -107
- package/chunks/resumeHistoryUtils-35D4KAVT.js +0 -120
- package/chunks/ripGrep-46N4FLOS.js +0 -39
- package/chunks/serve-WQ54UIYG.js +0 -120
- package/chunks/skill-settings-SKMN5YXC.js +0 -120
- package/chunks/spawnChannel-NE43EEO3.js +0 -113
- package/chunks/standalone-update-XOCWGXAH.js +0 -120
- package/chunks/terminal-image-renderer-NREKYTAD.js +0 -116
- package/chunks/theme-manager-IJS6OICX.js +0 -104
- package/chunks/total-session-admission-L5RPEFZ2.js +0 -114
- package/chunks/trustedFolders-OILZCHRD.js +0 -124
- package/chunks/updateCheck-AK4COHNK.js +0 -120
- package/chunks/useAutoAcceptIndicator-O2N2Q6KG.js +0 -122
- package/chunks/workspace-providers-status-OCFEWIPQ.js +0 -116
- package/chunks/workspace-registry-WJLZPRTG.js +0 -123
- package/chunks/workspace-service-5ZOBMMIB.js +0 -131
- package/chunks/workspace-skills-status-B6NJZD4B.js +0 -115
- package/chunks/write-file-B2RNX6SU.js +0 -90
- package/web-shell/assets/channel-CU-Zyv0r.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C0J2_LKs.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C0J2_LKs.js +0 -1
- package/web-shell/assets/index-C-XlQn24.css +0 -5
- package/web-shell/assets/index-gdvMN4J1.js +0 -1860
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-2uACDdJN.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C4JJkavU.js +0 -8
|
@@ -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
|
*/
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
isTranscribableVoiceModel,
|
|
6
6
|
readVoiceLanguage,
|
|
7
7
|
resolveVoiceTransport
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-A3LWD5MK.js";
|
|
9
9
|
import {
|
|
10
10
|
resolvePath
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YTDVNSUQ.js";
|
|
12
12
|
import {
|
|
13
13
|
createDebugLogger,
|
|
14
14
|
isSubpath
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UHQFIS7N.js";
|
|
16
16
|
import {
|
|
17
17
|
init_esbuild_shims
|
|
18
18
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -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";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
createDebugLogger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UHQFIS7N.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -716,7 +716,7 @@ function anthropicTools(value) {
|
|
|
716
716
|
return result;
|
|
717
717
|
}
|
|
718
718
|
__name(anthropicTools, "anthropicTools");
|
|
719
|
-
function
|
|
719
|
+
function llmTools(value) {
|
|
720
720
|
if (!Array.isArray(value)) return void 0;
|
|
721
721
|
const result = [];
|
|
722
722
|
for (const wrapper of value) {
|
|
@@ -734,7 +734,7 @@ function geminiTools(value) {
|
|
|
734
734
|
}
|
|
735
735
|
return result;
|
|
736
736
|
}
|
|
737
|
-
__name(
|
|
737
|
+
__name(llmTools, "llmTools");
|
|
738
738
|
function extractOpenAiContent(request) {
|
|
739
739
|
const value = request;
|
|
740
740
|
return {
|
|
@@ -756,7 +756,7 @@ function extractAnthropicContent(request) {
|
|
|
756
756
|
};
|
|
757
757
|
}
|
|
758
758
|
__name(extractAnthropicContent, "extractAnthropicContent");
|
|
759
|
-
function
|
|
759
|
+
function extractLlmContent(request) {
|
|
760
760
|
const value = request;
|
|
761
761
|
const config = record(value["config"]);
|
|
762
762
|
return {
|
|
@@ -766,10 +766,10 @@ function extractGeminiContent(request) {
|
|
|
766
766
|
(role) => role === "model" ? "assistant" : role
|
|
767
767
|
) : void 0,
|
|
768
768
|
systemInstructions: config && Object.hasOwn(config, "systemInstruction") ? systemParts(config["systemInstruction"], geminiPart) : void 0,
|
|
769
|
-
toolDefinitions: config && Object.hasOwn(config, "tools") ?
|
|
769
|
+
toolDefinitions: config && Object.hasOwn(config, "tools") ? llmTools(config["tools"]) : void 0
|
|
770
770
|
};
|
|
771
771
|
}
|
|
772
|
-
__name(
|
|
772
|
+
__name(extractLlmContent, "extractLlmContent");
|
|
773
773
|
function stringifyGenAiJson(value, maxLength, requireObject = false) {
|
|
774
774
|
const converted = jsonValue(value);
|
|
775
775
|
if (converted === void 0 || requireObject && (converted === null || Array.isArray(converted) || typeof converted !== "object")) {
|
|
@@ -1032,7 +1032,7 @@ var GenAiOutputAccumulator = class {
|
|
|
1032
1032
|
if (finishReason) candidate.finishReason = finishReason;
|
|
1033
1033
|
}
|
|
1034
1034
|
}
|
|
1035
|
-
|
|
1035
|
+
recordLlmResponse(response) {
|
|
1036
1036
|
const candidates = response["candidates"];
|
|
1037
1037
|
if (!Array.isArray(candidates)) return;
|
|
1038
1038
|
this.observedResponse = true;
|
|
@@ -1061,7 +1061,7 @@ var GenAiOutputAccumulator = class {
|
|
|
1061
1061
|
if (finishReason) outputCandidate.finishReason = finishReason;
|
|
1062
1062
|
}
|
|
1063
1063
|
}
|
|
1064
|
-
|
|
1064
|
+
recordLlmChunk(chunk) {
|
|
1065
1065
|
const candidates = chunk["candidates"];
|
|
1066
1066
|
if (!Array.isArray(candidates)) return;
|
|
1067
1067
|
this.observedResponse = true;
|
|
@@ -1241,7 +1241,7 @@ var GenAiOutputAccumulator = class {
|
|
|
1241
1241
|
export {
|
|
1242
1242
|
extractOpenAiContent,
|
|
1243
1243
|
extractAnthropicContent,
|
|
1244
|
-
|
|
1244
|
+
extractLlmContent,
|
|
1245
1245
|
stringifyGenAiJson,
|
|
1246
1246
|
GenAiOutputAccumulator
|
|
1247
1247
|
};
|
|
@@ -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";
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
OpenAIContentConverter,
|
|
8
8
|
TaggedThinkingParser,
|
|
9
9
|
openaiRequestCaptureContext
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DJECZIJX.js";
|
|
11
11
|
import {
|
|
12
12
|
safeJsonParse
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ABS25QER.js";
|
|
14
14
|
import {
|
|
15
15
|
runtimeDiagnostics
|
|
16
16
|
} from "./chunk-VNOVK4I7.js";
|
|
@@ -18,18 +18,22 @@ import {
|
|
|
18
18
|
reportOpenAiChunk,
|
|
19
19
|
reportOpenAiRequest,
|
|
20
20
|
reportOpenAiResponse
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-KYWTPLBJ.js";
|
|
22
22
|
import {
|
|
23
23
|
applyOfficialOpenAIPromptCaching,
|
|
24
24
|
isOfficialOpenAIEndpoint
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-PQEISIKS.js";
|
|
26
26
|
import {
|
|
27
27
|
DashScopeOpenAICompatibleProvider,
|
|
28
28
|
DefaultOpenAICompatibleProvider
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-EB6QRGHM.js";
|
|
30
30
|
import {
|
|
31
31
|
getCurrentAgentId
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-CMHFCLBU.js";
|
|
33
|
+
import {
|
|
34
|
+
InvalidStreamError,
|
|
35
|
+
getToolCallPreparations
|
|
36
|
+
} from "./chunk-CFKIH3D3.js";
|
|
33
37
|
import {
|
|
34
38
|
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
35
39
|
DEFAULT_STREAM_MAX_LIFETIME_MS,
|
|
@@ -42,39 +46,33 @@ import {
|
|
|
42
46
|
createChildAbortController
|
|
43
47
|
} from "./chunk-DJ2GSRLV.js";
|
|
44
48
|
import {
|
|
49
|
+
getRateLimitErrorDetails,
|
|
45
50
|
getTransportCode
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import {
|
|
48
|
-
InvalidStreamError,
|
|
49
|
-
getToolCallPreparations
|
|
50
|
-
} from "./chunk-CFKIH3D3.js";
|
|
51
|
-
import {
|
|
52
|
-
getRateLimitErrorDetails
|
|
53
|
-
} from "./chunk-EB4VDXNI.js";
|
|
51
|
+
} from "./chunk-DYXFD5RO.js";
|
|
54
52
|
import {
|
|
55
53
|
ProtocolTagSanitizedEvent,
|
|
56
54
|
logProtocolTagSanitized
|
|
57
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-QYMAKPY5.js";
|
|
58
56
|
import {
|
|
59
57
|
isQwenFamilyWireModel,
|
|
60
58
|
isTieredEffortWireModel
|
|
61
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-XBVNNDPK.js";
|
|
62
60
|
import {
|
|
63
61
|
reconcileMaxTokens
|
|
64
62
|
} from "./chunk-FPGTNKCP.js";
|
|
65
63
|
import {
|
|
66
64
|
redactProxyError
|
|
67
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-PPKZ7JOE.js";
|
|
68
66
|
import {
|
|
69
67
|
isInForkExecution
|
|
70
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-CAJTKR6W.js";
|
|
71
69
|
import {
|
|
72
70
|
createDebugLogger,
|
|
73
71
|
getErrorMessage,
|
|
74
72
|
getErrorStatus,
|
|
75
73
|
getErrorType,
|
|
76
74
|
isAbortError
|
|
77
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-UHQFIS7N.js";
|
|
78
76
|
import {
|
|
79
77
|
GenerateContentResponse
|
|
80
78
|
} from "./chunk-64REQJJ2.js";
|
|
@@ -190,16 +188,17 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
|
|
|
190
188
|
return isDeepSeekHostname(this.contentGeneratorConfig) ? REASONING_EFFORT_TIERS : super.supportedReasoningEffortsFor(model);
|
|
191
189
|
}
|
|
192
190
|
/**
|
|
193
|
-
* DeepSeek
|
|
194
|
-
* array of content parts. Flatten
|
|
195
|
-
* strings; non-text parts (image_url, audio, …) are replaced with
|
|
196
|
-
* `[Unsupported content type: <type>]` placeholder so the request still
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
191
|
+
* Text-only DeepSeek APIs require message content to be a plain string, not
|
|
192
|
+
* an array of content parts. Flatten text-only request arrays into joined
|
|
193
|
+
* strings; non-text parts (image_url, audio, …) are replaced with an
|
|
194
|
+
* `[Unsupported content type: <type>]` placeholder so the request still goes
|
|
195
|
+
* through with a textual breadcrumb rather than silently dropping the part
|
|
196
|
+
* or raising mid-conversation. Models that explicitly declare image input
|
|
197
|
+
* retain multipart content for compatible gateways. Also translate the
|
|
198
|
+
* standard `reasoning.effort` config into DeepSeek's flat `reasoning_effort`
|
|
199
|
+
* body parameter — but only on actual DeepSeek hostnames, since the model-name
|
|
200
|
+
* fallback above can match self-hosted/strict OpenAI-compat backends that
|
|
201
|
+
* don't accept the DeepSeek extension.
|
|
203
202
|
*/
|
|
204
203
|
buildRequest(request, userPromptId) {
|
|
205
204
|
const baseRequest = super.buildRequest(request, userPromptId);
|
|
@@ -207,10 +206,11 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
|
|
|
207
206
|
if (!reshaped.messages?.length) {
|
|
208
207
|
return reshaped;
|
|
209
208
|
}
|
|
210
|
-
const messages = reshaped.messages.map(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
const messages = reshaped.messages.map(
|
|
210
|
+
(message) => ensureReasoningContentOnAssistantMessage(
|
|
211
|
+
this.contentGeneratorConfig.modalities?.image ? message : flattenContentParts(message)
|
|
212
|
+
)
|
|
213
|
+
);
|
|
214
214
|
return {
|
|
215
215
|
...reshaped,
|
|
216
216
|
messages
|
|
@@ -1061,7 +1061,7 @@ var StreamContentError = class extends Error {
|
|
|
1061
1061
|
var StreamInactivityTimeoutError = class extends Error {
|
|
1062
1062
|
constructor(idleMs, chunksReceived, streamLifetimeMs) {
|
|
1063
1063
|
super(
|
|
1064
|
-
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms).
|
|
1064
|
+
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). For provider-backed models, increase modelProviders[providerId][].generationConfig.streamIdleTimeoutMs; provider configuration takes precedence, so model.generationConfig is ignored for those models. For runtime models, increase model.generationConfig.streamIdleTimeoutMs. Built-in Qwen OAuth models cannot be overridden via settings. Use ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} for them or whenever no explicit value is active. Set the active value to 0 to disable it.`
|
|
1065
1065
|
);
|
|
1066
1066
|
this.idleMs = idleMs;
|
|
1067
1067
|
this.chunksReceived = chunksReceived;
|
|
@@ -1299,11 +1299,11 @@ var ContentGenerationPipeline = class {
|
|
|
1299
1299
|
}
|
|
1300
1300
|
);
|
|
1301
1301
|
reportOpenAiResponse(telemetryAttempt, openaiResponse);
|
|
1302
|
-
const
|
|
1302
|
+
const llmResponse = OpenAIContentConverter.convertOpenAIResponseToLlm(
|
|
1303
1303
|
openaiResponse,
|
|
1304
1304
|
context
|
|
1305
1305
|
);
|
|
1306
|
-
return
|
|
1306
|
+
return llmResponse;
|
|
1307
1307
|
} finally {
|
|
1308
1308
|
perRequestAc?.abort();
|
|
1309
1309
|
}
|
|
@@ -1424,7 +1424,7 @@ var ContentGenerationPipeline = class {
|
|
|
1424
1424
|
const errorContent = chunk.choices?.[0]?.delta?.content?.trim() || "Unknown stream error";
|
|
1425
1425
|
throw new StreamContentError(errorContent);
|
|
1426
1426
|
}
|
|
1427
|
-
const response = OpenAIContentConverter.
|
|
1427
|
+
const response = OpenAIContentConverter.convertOpenAIChunkToLlm(
|
|
1428
1428
|
chunk,
|
|
1429
1429
|
context
|
|
1430
1430
|
);
|
|
@@ -1583,7 +1583,7 @@ var ContentGenerationPipeline = class {
|
|
|
1583
1583
|
return true;
|
|
1584
1584
|
}
|
|
1585
1585
|
async buildRequest(request, userPromptId, context, isStreaming) {
|
|
1586
|
-
const messages = OpenAIContentConverter.
|
|
1586
|
+
const messages = OpenAIContentConverter.convertLlmRequestToOpenAI(
|
|
1587
1587
|
request,
|
|
1588
1588
|
context
|
|
1589
1589
|
);
|
|
@@ -1600,7 +1600,7 @@ var ContentGenerationPipeline = class {
|
|
|
1600
1600
|
baseRequest.stream = false;
|
|
1601
1601
|
}
|
|
1602
1602
|
if (request.config?.tools && request.config.tools.length > 0) {
|
|
1603
|
-
baseRequest.tools = await OpenAIContentConverter.
|
|
1603
|
+
baseRequest.tools = await OpenAIContentConverter.convertLlmToolsToOpenAI(
|
|
1604
1604
|
request.config.tools,
|
|
1605
1605
|
this.contentGeneratorConfig.schemaCompliance ?? "auto"
|
|
1606
1606
|
);
|