@qwen-code/qwen-code 0.22.2 → 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/qc-helper/docs/configuration/settings.md +37 -36
- 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/computer-use.md +2 -2
- 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-X5FZSNAJ.js → MaxSizedBox-X42SXBJH.js} +33 -35
- package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
- package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
- package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
- package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
- package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
- package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
- package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
- package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
- package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
- package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
- package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
- package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
- package/chunks/{chunk-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
- package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
- package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
- package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
- package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
- package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
- package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
- package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
- package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
- package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
- package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
- package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
- package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
- package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
- package/chunks/{chunk-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
- package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
- package/chunks/chunk-4VQBQLIZ.js +293 -0
- package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
- package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
- package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
- package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
- package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
- package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
- package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
- package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
- package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
- package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
- package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
- package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
- package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
- package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
- package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
- package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
- package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
- package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
- package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
- package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
- package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
- package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
- package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
- package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
- package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
- package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
- package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
- package/chunks/{chunk-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
- package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
- package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
- package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
- package/chunks/{chunk-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
- package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
- package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
- package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
- package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
- package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
- package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
- package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
- package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
- package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
- package/chunks/{chunk-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
- package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
- package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
- package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
- package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
- package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
- package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
- package/chunks/{chunk-CSMI4FP5.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-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
- package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
- package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
- package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
- package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
- package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
- package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-SEONHUS3.js +275 -0
- package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
- package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
- package/chunks/{chunk-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
- package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
- package/chunks/{chunk-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
- package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
- package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
- package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
- package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
- package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
- package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
- package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
- package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
- package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
- package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
- package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
- package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
- package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
- package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
- package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
- package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
- package/chunks/chunk-ZWJDJ6RU.js +2597 -0
- package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
- package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
- package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
- package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
- package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
- package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
- package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
- package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
- package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
- package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
- package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
- package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
- package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
- package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
- package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
- package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
- package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
- 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-2JOMMNQ4.js → earlyInputCapture-OHBEVO4K.js} +33 -35
- package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
- package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
- package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
- package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
- package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
- package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
- package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
- package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
- package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
- package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
- package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
- package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
- package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
- package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
- package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
- package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
- package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
- package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
- package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
- package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
- package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
- package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
- package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
- package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
- package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
- package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
- package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
- package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
- package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
- package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
- package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
- package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
- package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.js} +5 -5
- package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
- package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
- package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-NSGF3UCB.js} +37 -39
- package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
- package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
- package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
- package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
- package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
- package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
- package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
- package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
- package/chunks/{serve-MXXCDAQN.js → serve-2XCHPPGG.js} +41 -43
- package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
- package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
- package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
- package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
- package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
- package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
- package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
- package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
- package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
- package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
- package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
- package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
- package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
- package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
- package/chunks/{team-create-QYSWCYCL.js → team-create-OOPXCDBA.js} +24 -26
- package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
- package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
- package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
- package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
- package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
- package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
- package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
- package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
- package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
- package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
- package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
- package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
- package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
- package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
- package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
- package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
- package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
- package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
- package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
- package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
- package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
- package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
- package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
- package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
- package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
- package/cli.js +14 -14
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
- package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
- package/web-shell/assets/channel-CXjVLaBa.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.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-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
- package/web-shell/assets/{index-CBGz4Qjl.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-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
- package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
- package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
- package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.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-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/chunk-7DJCPZE3.js +0 -945
- package/chunks/chunk-J2OSJFP3.js +0 -202
- package/chunks/chunk-K2OJUPOE.js +0 -78
- package/chunks/chunk-P3QQPMQA.js +0 -19
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/web-shell/assets/channel-CENAhErJ.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
- package/web-shell/assets/index-8hXIpvo4.js +0 -1865
- package/web-shell/assets/index-DclEv91i.css +0 -5
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
defaultModalities
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XBVNNDPK.js";
|
|
6
6
|
import {
|
|
7
7
|
Mutex
|
|
8
8
|
} from "./chunk-VGC4I5JJ.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
isCacheableReadResult,
|
|
15
15
|
parsePDFPageRange,
|
|
16
16
|
processSingleFileContent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BKWNKLZB.js";
|
|
18
18
|
import {
|
|
19
19
|
isAnyAutoMemPath
|
|
20
20
|
} from "./chunk-6PJOTWAN.js";
|
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
recordTokenUsageMetrics,
|
|
103
103
|
recordToolCallMetrics,
|
|
104
104
|
recordToolExecutionMetrics
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-B5PHIJGI.js";
|
|
106
106
|
import {
|
|
107
107
|
SemanticAttributes,
|
|
108
108
|
init_esm,
|
|
@@ -2599,7 +2599,7 @@ var QwenLogger = class _QwenLogger {
|
|
|
2599
2599
|
this.flushIfNeeded();
|
|
2600
2600
|
}
|
|
2601
2601
|
// Phase 4b — HTTP-status retry from retryWithBackoff (429/5xx). Distinct from
|
|
2602
|
-
// logContentRetryEvent which is fired by
|
|
2602
|
+
// logContentRetryEvent which is fired by llmChat's content-recovery loop.
|
|
2603
2603
|
logApiRetryEvent(event) {
|
|
2604
2604
|
const rumEvent = this.createActionEvent("misc", "api_retry", {
|
|
2605
2605
|
properties: {
|
|
@@ -2932,7 +2932,7 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2932
2932
|
*
|
|
2933
2933
|
* `outgoingSessionId` is the session the process was on when the replay
|
|
2934
2934
|
* begins — the swap transaction's begin-time `outgoingHint`, falling back
|
|
2935
|
-
* to `
|
|
2935
|
+
* to `LlmClient.initializedSessionId`. An earlier failed swap's abort
|
|
2936
2936
|
* clears `initializedSessionId`, so keying on it alone would capture no
|
|
2937
2937
|
* outgoing session and lose the live bucket (#9844 review). Its bucket and
|
|
2938
2938
|
* closed flag are captured too: the `/branch` rollback re-initializes that
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
normalizeSessionIdForLookup
|
|
5
|
+
} from "./chunk-ZEZKIS2K.js";
|
|
6
|
+
import {
|
|
7
|
+
MAX_WORKSPACE_PATH_LENGTH,
|
|
8
|
+
translateAndCheckAbsoluteWorkspacePath
|
|
9
|
+
} from "./chunk-6PLDPT2C.js";
|
|
10
|
+
import {
|
|
11
|
+
writeStderrLine
|
|
12
|
+
} from "./chunk-7FA2II6K.js";
|
|
13
|
+
import {
|
|
14
|
+
init_esbuild_shims
|
|
15
|
+
} from "./chunk-5O2XNYP6.js";
|
|
16
|
+
import {
|
|
17
|
+
__name
|
|
18
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
19
|
+
|
|
20
|
+
// packages/cli/src/serve/server/request-helpers.ts
|
|
21
|
+
init_esbuild_shims();
|
|
22
|
+
function sendJsonBodyParserError(res, err) {
|
|
23
|
+
if (err instanceof SyntaxError && "status" in err && err.status === 400) {
|
|
24
|
+
res.status(400).json({ error: "Invalid JSON in request body" });
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
if (err && typeof err === "object" && "status" in err && err.status === 413) {
|
|
28
|
+
res.status(413).json({ error: "Request body too large (max 10 MB)" });
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
__name(sendJsonBodyParserError, "sendJsonBodyParserError");
|
|
34
|
+
var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set([
|
|
35
|
+
"__proto__",
|
|
36
|
+
"constructor",
|
|
37
|
+
"prototype"
|
|
38
|
+
]);
|
|
39
|
+
var CLIENT_ID_HEADER = "x-qwen-client-id";
|
|
40
|
+
var MAX_CLIENT_ID_LENGTH = 128;
|
|
41
|
+
var MAX_TOOL_NAME_LENGTH = 256;
|
|
42
|
+
var MAX_SERVER_NAME_LENGTH = 256;
|
|
43
|
+
var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
|
|
44
|
+
var INVALID_PERMISSION_OUTCOME_ERROR = '`outcome` must be `{ outcome: "cancelled" }` or `{ outcome: "selected", optionId: string }`';
|
|
45
|
+
var deferredRuntimeTimingKey = Symbol(
|
|
46
|
+
"deferredRuntimeRequestTiming"
|
|
47
|
+
);
|
|
48
|
+
function setDeferredRuntimeRequestTiming(req, timing) {
|
|
49
|
+
req[deferredRuntimeTimingKey] = timing;
|
|
50
|
+
}
|
|
51
|
+
__name(setDeferredRuntimeRequestTiming, "setDeferredRuntimeRequestTiming");
|
|
52
|
+
function getDeferredRuntimeRequestTiming(req) {
|
|
53
|
+
return req[deferredRuntimeTimingKey];
|
|
54
|
+
}
|
|
55
|
+
__name(getDeferredRuntimeRequestTiming, "getDeferredRuntimeRequestTiming");
|
|
56
|
+
function safeBody(req) {
|
|
57
|
+
const raw = req.body;
|
|
58
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
59
|
+
return /* @__PURE__ */ Object.create(null);
|
|
60
|
+
}
|
|
61
|
+
const out = /* @__PURE__ */ Object.create(null);
|
|
62
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
63
|
+
if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
|
|
64
|
+
out[key] = value;
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
__name(safeBody, "safeBody");
|
|
69
|
+
function parseOptionalWorkspaceCwd(body, boundWorkspace, res) {
|
|
70
|
+
const hasCwd = "cwd" in body;
|
|
71
|
+
if (hasCwd && typeof body["cwd"] !== "string") {
|
|
72
|
+
res.status(400).json({ error: "`cwd` must be a string absolute path when provided" });
|
|
73
|
+
return void 0;
|
|
74
|
+
}
|
|
75
|
+
if (hasCwd && body["cwd"].length > MAX_WORKSPACE_PATH_LENGTH) {
|
|
76
|
+
res.status(400).json({
|
|
77
|
+
error: `\`cwd\` exceeds the ${MAX_WORKSPACE_PATH_LENGTH}-character limit`
|
|
78
|
+
});
|
|
79
|
+
return void 0;
|
|
80
|
+
}
|
|
81
|
+
const cwd = translateAndCheckAbsoluteWorkspacePath(
|
|
82
|
+
hasCwd ? body["cwd"] : boundWorkspace
|
|
83
|
+
);
|
|
84
|
+
if (cwd === null) {
|
|
85
|
+
res.status(400).json({ error: "`cwd` must be an absolute path when provided" });
|
|
86
|
+
return void 0;
|
|
87
|
+
}
|
|
88
|
+
return cwd;
|
|
89
|
+
}
|
|
90
|
+
__name(parseOptionalWorkspaceCwd, "parseOptionalWorkspaceCwd");
|
|
91
|
+
function requireSessionId(req, res) {
|
|
92
|
+
const sessionId = req.params["id"];
|
|
93
|
+
if (!sessionId) {
|
|
94
|
+
res.status(400).json({ error: "`sessionId` route parameter is required" });
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return normalizeSessionIdForLookup(sessionId);
|
|
98
|
+
}
|
|
99
|
+
__name(requireSessionId, "requireSessionId");
|
|
100
|
+
function parseClientIdHeader(req, res) {
|
|
101
|
+
const raw = req.get(CLIENT_ID_HEADER);
|
|
102
|
+
if (raw === void 0 || raw === "") return void 0;
|
|
103
|
+
if (raw.length > MAX_CLIENT_ID_LENGTH || !CLIENT_ID_RE.test(raw)) {
|
|
104
|
+
res.status(400).json({
|
|
105
|
+
error: "`X-Qwen-Client-Id` must be a non-empty token of 128 characters or fewer",
|
|
106
|
+
code: "invalid_client_id"
|
|
107
|
+
});
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return raw;
|
|
111
|
+
}
|
|
112
|
+
__name(parseClientIdHeader, "parseClientIdHeader");
|
|
113
|
+
function detectFromLoopback(req) {
|
|
114
|
+
const addr = req.socket?.remoteAddress;
|
|
115
|
+
if (typeof addr !== "string") return false;
|
|
116
|
+
if (addr === "::1") return true;
|
|
117
|
+
if (addr.startsWith("127.")) return true;
|
|
118
|
+
if (addr.startsWith("::ffff:127.")) return true;
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
__name(detectFromLoopback, "detectFromLoopback");
|
|
122
|
+
function validateMcpRuntimeServerName(name, res) {
|
|
123
|
+
if (typeof name !== "string" || name.length === 0) {
|
|
124
|
+
res.status(400).json({
|
|
125
|
+
error: "Server name is required and must be a non-empty string",
|
|
126
|
+
code: "invalid_server_name"
|
|
127
|
+
});
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (name.length > MAX_SERVER_NAME_LENGTH) {
|
|
131
|
+
res.status(400).json({
|
|
132
|
+
error: `Server name exceeds ${MAX_SERVER_NAME_LENGTH}-character limit`,
|
|
133
|
+
code: "invalid_server_name"
|
|
134
|
+
});
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
if (!/^[A-Za-z0-9_-]+$/.test(name)) {
|
|
138
|
+
res.status(400).json({
|
|
139
|
+
error: "Server name must contain only alphanumeric characters, underscores, and hyphens",
|
|
140
|
+
code: "invalid_server_name"
|
|
141
|
+
});
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
if (name === "__proto__" || name === "constructor" || name === "prototype") {
|
|
145
|
+
res.status(400).json({
|
|
146
|
+
error: "Server name must not be a reserved JS property name",
|
|
147
|
+
code: "invalid_server_name"
|
|
148
|
+
});
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
__name(validateMcpRuntimeServerName, "validateMcpRuntimeServerName");
|
|
154
|
+
function parseAndValidateWorkspaceClientId(req, res, bridge) {
|
|
155
|
+
const raw = parseClientIdHeader(req, res);
|
|
156
|
+
if (raw === null || raw === void 0) return raw;
|
|
157
|
+
const bridges = Array.isArray(bridge) ? bridge : [bridge];
|
|
158
|
+
if (!bridges.some((candidate) => candidate.knownClientIds().has(raw))) {
|
|
159
|
+
res.status(400).json({
|
|
160
|
+
error: `Client id "${raw}" is not registered for this workspace`,
|
|
161
|
+
code: "invalid_client_id",
|
|
162
|
+
clientId: raw
|
|
163
|
+
});
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
return raw;
|
|
167
|
+
}
|
|
168
|
+
__name(parseAndValidateWorkspaceClientId, "parseAndValidateWorkspaceClientId");
|
|
169
|
+
function createBuildWorkspaceCtx(boundWorkspace) {
|
|
170
|
+
return (route, clientId) => ({
|
|
171
|
+
originatorClientId: clientId,
|
|
172
|
+
route,
|
|
173
|
+
workspaceCwd: boundWorkspace
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
__name(createBuildWorkspaceCtx, "createBuildWorkspaceCtx");
|
|
177
|
+
function parsePermissionVoteBody(req, res) {
|
|
178
|
+
const body = safeBody(req);
|
|
179
|
+
const outcome = body["outcome"];
|
|
180
|
+
if (!isValidOutcome(outcome)) {
|
|
181
|
+
res.status(400).json({ error: INVALID_PERMISSION_OUTCOME_ERROR });
|
|
182
|
+
return void 0;
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
...body,
|
|
186
|
+
outcome
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
__name(parsePermissionVoteBody, "parsePermissionVoteBody");
|
|
190
|
+
function isValidOutcome(raw) {
|
|
191
|
+
if (typeof raw !== "object" || raw === null) return false;
|
|
192
|
+
const obj = raw;
|
|
193
|
+
if (obj["outcome"] === "cancelled") return true;
|
|
194
|
+
return obj["outcome"] === "selected" && typeof obj["optionId"] === "string" && obj["optionId"].length > 0;
|
|
195
|
+
}
|
|
196
|
+
__name(isValidOutcome, "isValidOutcome");
|
|
197
|
+
var MIN_QUERY_MAX_QUEUED = 16;
|
|
198
|
+
var MAX_QUERY_MAX_QUEUED = 2048;
|
|
199
|
+
function parseMaxQueuedQuery(raw, res) {
|
|
200
|
+
if (raw === void 0) return void 0;
|
|
201
|
+
if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
|
|
202
|
+
writeStderrLine(
|
|
203
|
+
`qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (not a decimal integer)`
|
|
204
|
+
);
|
|
205
|
+
res.status(400).json({
|
|
206
|
+
error: "`maxQueued` must be a decimal integer",
|
|
207
|
+
code: "invalid_max_queued"
|
|
208
|
+
});
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
const n = Number.parseInt(raw, 10);
|
|
212
|
+
if (!Number.isFinite(n) || n < MIN_QUERY_MAX_QUEUED || n > MAX_QUERY_MAX_QUEUED) {
|
|
213
|
+
writeStderrLine(
|
|
214
|
+
`qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (outside [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}])`
|
|
215
|
+
);
|
|
216
|
+
res.status(400).json({
|
|
217
|
+
error: `\`maxQueued\` must be in [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}]`,
|
|
218
|
+
code: "invalid_max_queued"
|
|
219
|
+
});
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
return n;
|
|
223
|
+
}
|
|
224
|
+
__name(parseMaxQueuedQuery, "parseMaxQueuedQuery");
|
|
225
|
+
function safeLogValue(raw) {
|
|
226
|
+
return JSON.stringify(String(raw)).slice(0, 82);
|
|
227
|
+
}
|
|
228
|
+
__name(safeLogValue, "safeLogValue");
|
|
229
|
+
function parseLastEventId(raw) {
|
|
230
|
+
if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
|
|
231
|
+
if (typeof raw === "string" && raw.length > 0) {
|
|
232
|
+
writeStderrLine(
|
|
233
|
+
`qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (not a decimal integer)`
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
return void 0;
|
|
237
|
+
}
|
|
238
|
+
const n = Number.parseInt(raw, 10);
|
|
239
|
+
if (!Number.isFinite(n) || n > Number.MAX_SAFE_INTEGER) {
|
|
240
|
+
writeStderrLine(
|
|
241
|
+
`qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (exceeds Number.MAX_SAFE_INTEGER)`
|
|
242
|
+
);
|
|
243
|
+
return void 0;
|
|
244
|
+
}
|
|
245
|
+
return n;
|
|
246
|
+
}
|
|
247
|
+
__name(parseLastEventId, "parseLastEventId");
|
|
248
|
+
|
|
249
|
+
export {
|
|
250
|
+
sendJsonBodyParserError,
|
|
251
|
+
CLIENT_ID_HEADER,
|
|
252
|
+
MAX_CLIENT_ID_LENGTH,
|
|
253
|
+
MAX_TOOL_NAME_LENGTH,
|
|
254
|
+
MAX_SERVER_NAME_LENGTH,
|
|
255
|
+
CLIENT_ID_RE,
|
|
256
|
+
setDeferredRuntimeRequestTiming,
|
|
257
|
+
getDeferredRuntimeRequestTiming,
|
|
258
|
+
safeBody,
|
|
259
|
+
parseOptionalWorkspaceCwd,
|
|
260
|
+
requireSessionId,
|
|
261
|
+
parseClientIdHeader,
|
|
262
|
+
detectFromLoopback,
|
|
263
|
+
validateMcpRuntimeServerName,
|
|
264
|
+
parseAndValidateWorkspaceClientId,
|
|
265
|
+
createBuildWorkspaceCtx,
|
|
266
|
+
parsePermissionVoteBody,
|
|
267
|
+
parseMaxQueuedQuery,
|
|
268
|
+
safeLogValue,
|
|
269
|
+
parseLastEventId
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* @license
|
|
273
|
+
* Copyright 2025 Qwen Team
|
|
274
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
275
|
+
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
SERVE_CONTROL_EXT_METHODS
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KID24ZFN.js";
|
|
6
6
|
import {
|
|
7
7
|
ACTIVE_WORK_HEARTBEAT_VERSION,
|
|
8
8
|
ACTIVE_WORK_HOLD_CATEGORIES,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
} from "./chunk-V5J4J5TP.js";
|
|
40
40
|
import {
|
|
41
41
|
getSpecificMimeType
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-BKWNKLZB.js";
|
|
43
43
|
import {
|
|
44
44
|
init_esbuild_shims
|
|
45
45
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -741,8 +741,7 @@ __name(writeStderrLine, "writeStderrLine");
|
|
|
741
741
|
|
|
742
742
|
// packages/acp-bridge/src/sessionAttachments.ts
|
|
743
743
|
init_esbuild_shims();
|
|
744
|
-
import {
|
|
745
|
-
import { promises as fs, statSync } from "node:fs";
|
|
744
|
+
import { constants as fsConstants, promises as fs, statSync } from "node:fs";
|
|
746
745
|
import { tmpdir } from "node:os";
|
|
747
746
|
import * as path from "node:path";
|
|
748
747
|
var SESSION_ATTACHMENT_MAX_ITEM_BYTES = 8 * 1024 * 1024;
|
|
@@ -754,6 +753,74 @@ var SUPPORTED_IMAGE_MIME_TYPES = /* @__PURE__ */ new Set([
|
|
|
754
753
|
"image/png",
|
|
755
754
|
"image/webp"
|
|
756
755
|
]);
|
|
756
|
+
function hasVerifiableInode(ino) {
|
|
757
|
+
return Number.isSafeInteger(ino) && ino > 0;
|
|
758
|
+
}
|
|
759
|
+
__name(hasVerifiableInode, "hasVerifiableInode");
|
|
760
|
+
async function openDurableAttachmentDirectory(directory, openedHandle) {
|
|
761
|
+
const handle = openedHandle ?? await fs.open(
|
|
762
|
+
directory,
|
|
763
|
+
fsConstants.O_RDONLY | (process.platform === "win32" ? 0 : fsConstants.O_NOFOLLOW ?? 0)
|
|
764
|
+
);
|
|
765
|
+
try {
|
|
766
|
+
const opened = await handle.stat();
|
|
767
|
+
const current = await fs.stat(directory);
|
|
768
|
+
const openedInodeVerifiable = hasVerifiableInode(opened.ino);
|
|
769
|
+
const currentInodeVerifiable = hasVerifiableInode(current.ino);
|
|
770
|
+
if (!opened.isDirectory() || !current.isDirectory() || opened.dev !== current.dev || openedInodeVerifiable !== currentInodeVerifiable || openedInodeVerifiable && opened.ino !== current.ino) {
|
|
771
|
+
throw new Error("Session attachment parent directory changed.");
|
|
772
|
+
}
|
|
773
|
+
return {
|
|
774
|
+
path: directory,
|
|
775
|
+
handle,
|
|
776
|
+
dev: opened.dev,
|
|
777
|
+
ino: opened.ino,
|
|
778
|
+
inodeVerifiable: openedInodeVerifiable
|
|
779
|
+
};
|
|
780
|
+
} catch (error) {
|
|
781
|
+
await handle.close().catch(() => void 0);
|
|
782
|
+
throw error;
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
__name(openDurableAttachmentDirectory, "openDurableAttachmentDirectory");
|
|
786
|
+
async function openDurableAttachmentDirectoryIfPresent(directory) {
|
|
787
|
+
let handle;
|
|
788
|
+
try {
|
|
789
|
+
handle = await fs.open(
|
|
790
|
+
directory,
|
|
791
|
+
fsConstants.O_RDONLY | (process.platform === "win32" ? 0 : fsConstants.O_NOFOLLOW ?? 0)
|
|
792
|
+
);
|
|
793
|
+
} catch (error) {
|
|
794
|
+
if (error.code === "ENOENT") return void 0;
|
|
795
|
+
throw error;
|
|
796
|
+
}
|
|
797
|
+
return openDurableAttachmentDirectory(directory, handle);
|
|
798
|
+
}
|
|
799
|
+
__name(openDurableAttachmentDirectoryIfPresent, "openDurableAttachmentDirectoryIfPresent");
|
|
800
|
+
async function syncDurableAttachmentDirectory(expected) {
|
|
801
|
+
const opened = await expected.handle.stat();
|
|
802
|
+
const openedInodeVerifiable = hasVerifiableInode(opened.ino);
|
|
803
|
+
const current = await fs.stat(expected.path);
|
|
804
|
+
const currentInodeVerifiable = hasVerifiableInode(current.ino);
|
|
805
|
+
if (!opened.isDirectory() || !current.isDirectory() || opened.dev !== expected.dev || openedInodeVerifiable !== expected.inodeVerifiable || expected.inodeVerifiable && opened.ino !== expected.ino || current.dev !== expected.dev || currentInodeVerifiable !== expected.inodeVerifiable || expected.inodeVerifiable && current.ino !== expected.ino) {
|
|
806
|
+
throw new Error("Session attachment parent directory changed.");
|
|
807
|
+
}
|
|
808
|
+
try {
|
|
809
|
+
await expected.handle.sync();
|
|
810
|
+
} catch (error) {
|
|
811
|
+
if (process.platform !== "win32" || !["EACCES", "EINVAL", "EPERM"].includes(
|
|
812
|
+
error.code ?? ""
|
|
813
|
+
)) {
|
|
814
|
+
throw error;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
const after = await fs.stat(expected.path);
|
|
818
|
+
const afterInodeVerifiable = hasVerifiableInode(after.ino);
|
|
819
|
+
if (!after.isDirectory() || after.dev !== expected.dev || afterInodeVerifiable !== expected.inodeVerifiable || expected.inodeVerifiable && after.ino !== expected.ino) {
|
|
820
|
+
throw new Error("Session attachment parent directory changed.");
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
__name(syncDurableAttachmentDirectory, "syncDurableAttachmentDirectory");
|
|
757
824
|
var SESSION_ATTACHMENT_UNAVAILABLE_TEXT = "[Attachment is no longer available]";
|
|
758
825
|
var SessionAttachmentReferenceError = class extends Error {
|
|
759
826
|
constructor(message, code) {
|
|
@@ -1169,17 +1236,59 @@ var SessionAttachmentStore = class {
|
|
|
1169
1236
|
const directory = this.persistentDirectory ?? await this.directoryPromise?.catch(() => void 0);
|
|
1170
1237
|
if (directory) {
|
|
1171
1238
|
options.assertCanCommit?.();
|
|
1239
|
+
const parent = await openDurableAttachmentDirectoryIfPresent(
|
|
1240
|
+
path.dirname(directory)
|
|
1241
|
+
);
|
|
1242
|
+
if (!parent) return;
|
|
1172
1243
|
const tombstone = path.join(
|
|
1173
1244
|
path.dirname(directory),
|
|
1174
|
-
`.${path.basename(directory)}.deleting
|
|
1245
|
+
`.${path.basename(directory)}.deleting`
|
|
1175
1246
|
);
|
|
1176
1247
|
try {
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1248
|
+
options.assertCanCommit?.();
|
|
1249
|
+
let tombstoneExists = false;
|
|
1250
|
+
try {
|
|
1251
|
+
const stats = await fs.lstat(tombstone);
|
|
1252
|
+
if (!stats.isDirectory() || stats.isSymbolicLink()) {
|
|
1253
|
+
throw new Error("Session attachment tombstone is not a directory.");
|
|
1254
|
+
}
|
|
1255
|
+
tombstoneExists = true;
|
|
1256
|
+
} catch (error) {
|
|
1257
|
+
if (error.code !== "ENOENT") throw error;
|
|
1258
|
+
}
|
|
1259
|
+
if (tombstoneExists) {
|
|
1260
|
+
options.assertCanCommit?.();
|
|
1261
|
+
await fs.rm(tombstone, { recursive: true, force: true });
|
|
1262
|
+
await syncDurableAttachmentDirectory(parent);
|
|
1263
|
+
return;
|
|
1264
|
+
}
|
|
1265
|
+
options.assertCanCommit?.();
|
|
1266
|
+
try {
|
|
1267
|
+
await fs.rename(directory, tombstone);
|
|
1268
|
+
} catch (error) {
|
|
1269
|
+
if (error.code !== "ENOENT") throw error;
|
|
1270
|
+
try {
|
|
1271
|
+
const stats = await fs.lstat(tombstone);
|
|
1272
|
+
if (!stats.isDirectory() || stats.isSymbolicLink()) {
|
|
1273
|
+
throw new Error(
|
|
1274
|
+
"Session attachment tombstone is not a directory."
|
|
1275
|
+
);
|
|
1276
|
+
}
|
|
1277
|
+
options.assertCanCommit?.();
|
|
1278
|
+
await fs.rm(tombstone, { recursive: true, force: true });
|
|
1279
|
+
} catch (tombstoneError) {
|
|
1280
|
+
if (tombstoneError.code !== "ENOENT") {
|
|
1281
|
+
throw tombstoneError;
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
await syncDurableAttachmentDirectory(parent);
|
|
1285
|
+
return;
|
|
1286
|
+
}
|
|
1287
|
+
await fs.rm(tombstone, { recursive: true, force: true });
|
|
1288
|
+
await syncDurableAttachmentDirectory(parent);
|
|
1289
|
+
} finally {
|
|
1290
|
+
await parent.handle.close().catch(() => void 0);
|
|
1181
1291
|
}
|
|
1182
|
-
await fs.rm(tombstone, { recursive: true, force: true });
|
|
1183
1292
|
}
|
|
1184
1293
|
}
|
|
1185
1294
|
assertStored(reference) {
|
|
@@ -1274,7 +1383,7 @@ var SessionAttachmentStore = class {
|
|
|
1274
1383
|
|
|
1275
1384
|
// packages/acp-bridge/src/bridgeClient.ts
|
|
1276
1385
|
init_esbuild_shims();
|
|
1277
|
-
import { randomUUID
|
|
1386
|
+
import { randomUUID } from "node:crypto";
|
|
1278
1387
|
import { promises as fs2 } from "node:fs";
|
|
1279
1388
|
import * as path2 from "node:path";
|
|
1280
1389
|
|
|
@@ -1643,7 +1752,7 @@ var BridgeClient = class {
|
|
|
1643
1752
|
options.map((o) => String(o.optionId ?? ""))
|
|
1644
1753
|
);
|
|
1645
1754
|
allowedOptionIds.delete("");
|
|
1646
|
-
const requestId =
|
|
1755
|
+
const requestId = randomUUID();
|
|
1647
1756
|
if (allowedOptionIds.has(CANCEL_VOTE_SENTINEL)) {
|
|
1648
1757
|
throw new CancelSentinelCollisionError(requestId, CANCEL_VOTE_SENTINEL);
|
|
1649
1758
|
}
|
|
@@ -3200,7 +3309,7 @@ var BridgeClient = class {
|
|
|
3200
3309
|
} catch {
|
|
3201
3310
|
}
|
|
3202
3311
|
}
|
|
3203
|
-
const tmp = `${realTarget}.${process.pid}.${Date.now()}.${
|
|
3312
|
+
const tmp = `${realTarget}.${process.pid}.${Date.now()}.${randomUUID()}.tmp`;
|
|
3204
3313
|
let preserveMode;
|
|
3205
3314
|
try {
|
|
3206
3315
|
const targetStat = await fs2.stat(realTarget);
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
MODIFIER_SHIFT_BIT,
|
|
17
17
|
MODIFIER_SUPER_BIT,
|
|
18
18
|
clipboardHasImage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-CFJY4DGX.js";
|
|
20
20
|
import {
|
|
21
21
|
require_jsx_runtime
|
|
22
22
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
KittySequenceOverflowEvent,
|
|
35
35
|
logKittySequenceOverflow
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QYMAKPY5.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger
|
|
39
39
|
} from "./chunk-UHQFIS7N.js";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-E7REAOTN.js";
|
|
6
6
|
import {
|
|
7
7
|
formatHistoryGapNotice
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZZUKP7HV.js";
|
|
9
9
|
import {
|
|
10
10
|
loadUndici
|
|
11
11
|
} from "./chunk-TXASDT2M.js";
|
|
@@ -14,20 +14,22 @@ import {
|
|
|
14
14
|
} from "./chunk-OZ6KS6KW.js";
|
|
15
15
|
import {
|
|
16
16
|
projectGoalStateToLegacy
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-NV55WWD6.js";
|
|
18
18
|
import {
|
|
19
19
|
observeToolResultBoundary,
|
|
20
20
|
toolResultBoundaryArtifact
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-PZ66FRIC.js";
|
|
22
22
|
import {
|
|
23
23
|
parseGoalSnapshotV2,
|
|
24
|
-
parseGoalStateCause
|
|
24
|
+
parseGoalStateCause
|
|
25
|
+
} from "./chunk-JHYH6PYQ.js";
|
|
26
|
+
import {
|
|
25
27
|
projectUserTranscriptForDisplay
|
|
26
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-7J6OTNGO.js";
|
|
27
29
|
import {
|
|
28
30
|
formatVisionBridgeNoticeDisplay,
|
|
29
31
|
isVisionBridgeNoticeDisplay
|
|
30
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-QYMAKPY5.js";
|
|
31
33
|
import {
|
|
32
34
|
ToolNames
|
|
33
35
|
} from "./chunk-UTLCH2FK.js";
|
|
@@ -37,7 +39,7 @@ import {
|
|
|
37
39
|
import {
|
|
38
40
|
writeStderrLine,
|
|
39
41
|
writeStderrLineSafe
|
|
40
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-7FA2II6K.js";
|
|
41
43
|
import {
|
|
42
44
|
init_esbuild_shims
|
|
43
45
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -748,12 +750,22 @@ function createTranscriptToolCallResultUpdate(options) {
|
|
|
748
750
|
}
|
|
749
751
|
})
|
|
750
752
|
};
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
}
|
|
753
|
+
const rawOutput = getReplayRawOutput(options.resultDisplay);
|
|
754
|
+
if (rawOutput !== void 0) update["rawOutput"] = rawOutput;
|
|
754
755
|
return update;
|
|
755
756
|
}
|
|
756
757
|
__name(createTranscriptToolCallResultUpdate, "createTranscriptToolCallResultUpdate");
|
|
758
|
+
function getReplayRawOutput(resultDisplay) {
|
|
759
|
+
if (!isTruncatedSessionDiffDisplay(resultDisplay)) return resultDisplay;
|
|
760
|
+
if (resultDisplay["fileDiffTruncated"] === true || typeof resultDisplay["fileDiff"] !== "string") {
|
|
761
|
+
return void 0;
|
|
762
|
+
}
|
|
763
|
+
return {
|
|
764
|
+
fileName: resultDisplay["fileName"],
|
|
765
|
+
fileDiff: resultDisplay["fileDiff"]
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
__name(getReplayRawOutput, "getReplayRawOutput");
|
|
757
769
|
function createTranscriptPlanUpdate(todos, cumulativeUsage, options = {}) {
|
|
758
770
|
const meta = buildUpdateMeta({
|
|
759
771
|
...options,
|
|
@@ -2954,7 +2966,7 @@ async function extractMetadata(conversation, config) {
|
|
|
2954
2966
|
const gitBranch = firstRecord?.gitBranch;
|
|
2955
2967
|
let gitRepo;
|
|
2956
2968
|
if (cwd) {
|
|
2957
|
-
const { getGitRepoName } = await import("./deferred-core-runtime-
|
|
2969
|
+
const { getGitRepoName } = await import("./deferred-core-runtime-WOYLUQQ7.js");
|
|
2958
2970
|
gitRepo = getGitRepoName(cwd);
|
|
2959
2971
|
}
|
|
2960
2972
|
let model;
|
|
@@ -2,10 +2,10 @@
|
|
|
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-QYMAKPY5.js";
|
|
9
9
|
import {
|
|
10
10
|
createDebugLogger
|
|
11
11
|
} from "./chunk-UHQFIS7N.js";
|