@qwen-code/qwen-code 0.23.2 → 0.23.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/README.md +35 -15
- package/bundled/computer-use/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
- package/bundled/qc-helper/docs/configuration/settings.md +5 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
- package/bundled/qc-helper/docs/features/commands.md +57 -9
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
- package/bundled/qc-helper/docs/features/goals.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +16 -3
- package/bundled/review/SKILL.md +82 -79
- package/bundled/review/references/posting.md +31 -14
- package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-D4LW7RZZ.js} +58 -51
- package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-ALTTRWUP.js} +80 -73
- package/chunks/acp-subagent-executor-LEUN3N7N.js +919 -0
- package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-BBSW7XZG.js} +509 -201
- package/chunks/{agent-T5LEFJIU.js → agent-SQ6OY3QD.js} +42 -36
- package/chunks/{agent-headless-VZKSRH36.js → agent-headless-RI2THRQ7.js} +42 -36
- package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-JSKMKS6V.js} +66 -34
- package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-PMYZCYNH.js} +2 -2
- package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
- package/chunks/{bridge-AOX5IY44.js → bridge-DAFMI72L.js} +62 -55
- package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-OWDXVL7R.js} +8 -8
- package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-4I6JONT7.js} +69 -62
- package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-F2ZZMLNS.js} +8 -8
- package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-2SZLJJSJ.js} +18 -9
- package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-ZFNWMG6D.js} +6 -6
- package/chunks/{chunk-GNY7B3CA.js → chunk-2ALXPGB4.js} +1 -1
- package/chunks/{chunk-LUNC5KCL.js → chunk-2PJRI3EH.js} +7 -7
- package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
- package/chunks/{chunk-RNAJVXUG.js → chunk-2ZN3O5FT.js} +6 -6
- package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
- package/chunks/{chunk-FGHPZGOP.js → chunk-3BTSSIJO.js} +38 -54
- package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
- package/chunks/{chunk-QB3KS3N3.js → chunk-3I7W2POO.js} +1 -1
- package/chunks/{chunk-QTB4VP4K.js → chunk-3KQBQ6FM.js} +136 -11
- package/chunks/{chunk-JO77FGNZ.js → chunk-3UXUOFO6.js} +19 -7
- package/chunks/{chunk-WDN64MVT.js → chunk-3XLK2QMY.js} +82 -16
- package/chunks/chunk-532WHF4F.js +127 -0
- package/chunks/{chunk-NX7ZTXFF.js → chunk-53GWJOLP.js} +1 -1
- package/chunks/{chunk-QQK4L3UU.js → chunk-5GLDOLNQ.js} +131 -26
- package/chunks/{chunk-WK7P62DV.js → chunk-5KI7ZDTB.js} +6 -6
- package/chunks/{chunk-ERXNTINK.js → chunk-6JACAGYH.js} +1 -1
- package/chunks/{chunk-CMWU6P4D.js → chunk-6W4HBUA2.js} +1 -1
- package/chunks/{chunk-AUTUFD5X.js → chunk-76RGWKLS.js} +1 -1
- package/chunks/{chunk-PDN7FJZV.js → chunk-7APZIRH3.js} +2 -2
- package/chunks/{chunk-WBU2PIZ5.js → chunk-7BXXIQG4.js} +16 -16
- package/chunks/{chunk-APXIW2TF.js → chunk-7ICHPMBQ.js} +4 -4
- package/chunks/{chunk-CWVZBIZJ.js → chunk-7Q2AXRDJ.js} +1 -1
- package/chunks/{chunk-WDVV3LRM.js → chunk-7QYWGTHB.js} +1 -1
- package/chunks/{chunk-RM244SCQ.js → chunk-AC6KDLH3.js} +1 -1
- package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
- package/chunks/{chunk-XDNFODER.js → chunk-AXTFYDXT.js} +1 -1
- package/chunks/chunk-AYEJOTIU.js +43 -0
- package/chunks/{chunk-ZN5TKAVR.js → chunk-BV6Q5HMY.js} +3 -3
- package/chunks/{chunk-TOOOLHVS.js → chunk-BWAMMKIS.js} +3 -3
- package/chunks/{chunk-IRGDIDGJ.js → chunk-BWQLXU37.js} +26 -19
- package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
- package/chunks/{chunk-GOEVQADN.js → chunk-BZM5U74J.js} +287 -169
- package/chunks/chunk-CF5KXZZX.js +150 -0
- package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
- package/chunks/{chunk-PFKGV6PO.js → chunk-CUEXOHQH.js} +9 -9
- package/chunks/chunk-CXTPVBFA.js +937 -0
- package/chunks/{chunk-LEAOJ43M.js → chunk-DAWWT2ID.js} +62 -59
- package/chunks/{chunk-CALTQWTZ.js → chunk-DLH7YIX6.js} +2 -2
- package/chunks/chunk-DT75RKNH.js +691 -0
- package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
- package/chunks/{chunk-3OAXF3UK.js → chunk-DYFOSJHU.js} +3080 -933
- package/chunks/{chunk-GSFV5RQW.js → chunk-E4UEO3XM.js} +3 -2
- package/chunks/{chunk-A7EFXK7P.js → chunk-E7LB57MB.js} +5 -5
- package/chunks/{chunk-KEPC5BOL.js → chunk-EDMXGXAK.js} +9 -9
- package/chunks/chunk-ELRMZTPF.js +374 -0
- package/chunks/chunk-ERU3SDXT.js +27 -0
- package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
- package/chunks/{chunk-QFJZAY7W.js → chunk-EVTNACMT.js} +3 -3
- package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
- package/chunks/{chunk-YQGW3M6Z.js → chunk-F42YYSCK.js} +8 -8
- package/chunks/{chunk-7PD7ZMX5.js → chunk-FCQJLMA2.js} +98 -5
- package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
- package/chunks/{chunk-R457KFV7.js → chunk-GCDXVPFK.js} +3 -3
- package/chunks/{chunk-IR6JKBAP.js → chunk-GOXQL4YH.js} +2 -2
- package/chunks/{chunk-YLOHCA6I.js → chunk-GSILBZLN.js} +2 -2
- package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
- package/chunks/{chunk-4WMGYG3F.js → chunk-HBQ2NXOU.js} +2 -2
- package/chunks/{chunk-F2NYVASI.js → chunk-HBU7EKY4.js} +14 -12
- package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
- package/chunks/{chunk-G5VOXCRX.js → chunk-HGAELO7B.js} +2 -2
- package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
- package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
- package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
- package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
- package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
- package/chunks/{chunk-WXD7INFV.js → chunk-IL5M5NYD.js} +8 -8
- package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
- package/chunks/{chunk-5DQ4YTIZ.js → chunk-IV7GDNKC.js} +1 -1
- package/chunks/chunk-JL6APGBX.js +43 -0
- package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
- package/chunks/{chunk-DAI65CMX.js → chunk-JYKWOREU.js} +1 -1
- package/chunks/chunk-K2OJUPOE.js +78 -0
- package/chunks/{chunk-KFECPHLV.js → chunk-KFZYGSJN.js} +3 -3
- package/chunks/{chunk-BK7D2JR6.js → chunk-KOKPXIAN.js} +3 -3
- package/chunks/{chunk-4I3WFI3U.js → chunk-LDVNJZGH.js} +12 -12
- package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
- package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
- package/chunks/{chunk-X7LFJF5D.js → chunk-LK2WUCDQ.js} +36 -84
- package/chunks/{chunk-7LTCFO6T.js → chunk-MF6E7FSA.js} +6 -5
- package/chunks/{chunk-ELD3OBPU.js → chunk-MHAADZOZ.js} +3 -3
- package/chunks/{chunk-4JNHNVAZ.js → chunk-MLQNSPRZ.js} +4 -4
- package/chunks/{chunk-NPKCVSXX.js → chunk-MOS5OAOG.js} +10 -8
- package/chunks/{chunk-IWABUX6T.js → chunk-MSNHNAQZ.js} +6 -6
- package/chunks/{chunk-HJ5UJQQL.js → chunk-N7VWZDWW.js} +1699 -1312
- package/chunks/{chunk-NB3NDQQK.js → chunk-NE624IVP.js} +1 -1
- package/chunks/{chunk-SOA4HKRJ.js → chunk-NFYEQRLG.js} +2 -2
- package/chunks/{chunk-G3ZUMSFS.js → chunk-NHCZJQE4.js} +6 -6
- package/chunks/{chunk-B25JYXZE.js → chunk-NHJKAR6E.js} +4 -4
- package/chunks/{chunk-ZP5XDLSA.js → chunk-NJQTG2G3.js} +12 -12
- package/chunks/{chunk-DARWOZY6.js → chunk-NLNQNBZ2.js} +1 -1
- package/chunks/{chunk-CCBTNJB4.js → chunk-NMCDMLHL.js} +27 -27
- package/chunks/{chunk-AO2VMS72.js → chunk-NMRCXKQ5.js} +3 -3
- package/chunks/{chunk-5BH2AIEY.js → chunk-NOAG7N22.js} +2 -2
- package/chunks/{chunk-VJJXG73H.js → chunk-NRXWJXJ4.js} +15 -0
- package/chunks/chunk-NUQ4GK5I.js +315 -0
- package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
- package/chunks/{chunk-U6REWGVR.js → chunk-OLTN767L.js} +2 -2
- package/chunks/{chunk-R3JIDRUL.js → chunk-OX7IZ2G5.js} +4 -4
- package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
- package/chunks/{chunk-KCF2436G.js → chunk-POC3YMHG.js} +4 -4
- package/chunks/{chunk-HZ2HUXX7.js → chunk-Q2LVVIKF.js} +1 -1
- package/chunks/{chunk-7NDZKE2M.js → chunk-Q5BD56BW.js} +3 -3
- package/chunks/{chunk-22GORRNY.js → chunk-QMUYLYT5.js} +1 -1
- package/chunks/{chunk-MV5DTLJV.js → chunk-R4Q2PEFV.js} +1 -1
- package/chunks/{chunk-GOKAOSCN.js → chunk-RLLRJJDR.js} +1 -1
- package/chunks/{chunk-5OZUKLL7.js → chunk-RWVD5RRY.js} +4 -4
- package/chunks/{chunk-ULZECEIP.js → chunk-RZHU3K6M.js} +2 -2
- package/chunks/{chunk-UYDQYDW2.js → chunk-S6Q6Q4P2.js} +1 -1
- package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
- package/chunks/{chunk-LWX4WDFF.js → chunk-SBRX4BDI.js} +43 -15
- package/chunks/{chunk-TODNHE76.js → chunk-SODMFNAR.js} +5 -5
- package/chunks/{chunk-FAJPLSYF.js → chunk-SSGAAWLY.js} +89 -85
- package/chunks/{chunk-46MMBZHI.js → chunk-SYLECP23.js} +4 -4
- package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
- package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
- package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
- package/chunks/{chunk-QHLHE2OT.js → chunk-TWUKBNWM.js} +1 -1
- package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
- package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
- package/chunks/{chunk-OXR34GCD.js → chunk-UKZ45TJL.js} +1851 -34
- package/chunks/{chunk-CALNF3Z3.js → chunk-V2P3DOQR.js} +1 -1
- package/chunks/{chunk-FV4DM2M4.js → chunk-VG3Q2NC4.js} +7 -7
- package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
- package/chunks/{chunk-CRZBDVP2.js → chunk-VZUCTJ2P.js} +4 -4
- package/chunks/{chunk-2BMXHB6N.js → chunk-W5FIP7FC.js} +7 -7
- package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
- package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
- package/chunks/{chunk-JYGIJA4W.js → chunk-X6K77VHC.js} +1 -1
- package/chunks/{chunk-7SVM3RP2.js → chunk-X7UJKOHZ.js} +3 -3
- package/chunks/{chunk-WXPPUPHM.js → chunk-XBZTAGB7.js} +1 -1
- package/chunks/{chunk-TRQNRP2H.js → chunk-XGYHNWL3.js} +45 -2
- package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
- package/chunks/{chunk-OFVAS4AR.js → chunk-YBUMTY7B.js} +1 -1
- package/chunks/{chunk-67XTVRVB.js → chunk-YQHLFCPU.js} +7 -7
- package/chunks/{chunk-G37O7YO6.js → chunk-Z3GF56ME.js} +2 -2
- package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
- package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
- package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
- package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
- package/chunks/{chunk-XSOXPG2L.js → chunk-ZU47FBOC.js} +36 -7
- package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
- package/chunks/{config-utils-GPLIABL2.js → config-utils-L6KLDYIV.js} +62 -55
- package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-UYEH7NIU.js} +59 -52
- package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-NVHT3Z3V.js} +61 -54
- package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
- package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-YWASE5VH.js} +59 -52
- package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
- package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
- package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
- package/chunks/{daemon-2CKIAO3I.js → daemon-G5TYKZD6.js} +2 -2
- package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-FOW4RQSK.js} +60 -53
- package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-O5KQZYMP.js} +67 -60
- package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-3ATXEON7.js} +64 -57
- package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-7MCNDNEC.js} +64 -57
- package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-JK5IXL5K.js} +57 -50
- package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
- package/chunks/{dist-NP7QKLVG.js → dist-AHJYPSJL.js} +3 -3
- package/chunks/{dist-6YDUH3BB.js → dist-AIKC5E5P.js} +2 -2
- package/chunks/{dist-Y5KC3IHW.js → dist-F2DVGTL3.js} +225 -6
- package/chunks/{dist-BNQVF565.js → dist-GWNQVPZT.js} +5 -5
- package/chunks/{dist-F6JLAJLE.js → dist-H6G3K26N.js} +3 -3
- package/chunks/{dist-ZDNJK74R.js → dist-KJGRVIGJ.js} +2 -2
- package/chunks/{dist-F34J4FZX.js → dist-KLZ7XGEQ.js} +2 -2
- package/chunks/{dist-UFTFGI6I.js → dist-ZA52JXAS.js} +2 -2
- package/chunks/{dist-XLV33CLY.js → dist-ZXTZTE54.js} +2 -2
- package/chunks/{edit-YJD6IETK.js → edit-SY35KYIE.js} +45 -39
- package/chunks/{en-YJNRUQG4.js → en-CAJHTIQT.js} +1 -0
- package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
- package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-HXX6KQJR.js} +42 -36
- package/chunks/{environment-HP3AXFTB.js → environment-DKXHG4HB.js} +60 -53
- package/chunks/{errors-22ON46G7.js → errors-ADY7LQJJ.js} +59 -52
- package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
- package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-HSK2CQI6.js} +42 -36
- package/chunks/{fast-path-2X7BPMXX.js → fast-path-U636VWN2.js} +6 -6
- package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-V7MI7EZJ.js} +2 -2
- package/chunks/{glob-Y7ACIB3P.js → glob-GUGGTH5L.js} +45 -39
- package/chunks/{goal-tools-DABMICUC.js → goal-tools-PXYRSQGX.js} +42 -36
- package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
- package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-5KHS4HIN.js} +60 -53
- package/chunks/{i18n-C3GDCALP.js → i18n-KSGKMUPT.js} +58 -51
- package/chunks/{image-gen-XP4NNIYG.js → image-gen-OCCR2WWU.js} +5 -4
- package/chunks/{initializer-4URDQL2G.js → initializer-YYT5XEZF.js} +64 -57
- package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-UNSBPYW2.js} +57 -50
- package/chunks/{list-JOGBAC2R.js → list-YL6LDQKQ.js} +67 -60
- package/chunks/{list-agents-2CXPGJUE.js → list-agents-QLDXS5OD.js} +17 -7
- package/chunks/{llm-2KPNSAVY.js → llm-XGGLBGPH.js} +126 -119
- package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-ZHQQT5W7.js} +5 -4
- package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-3DXLASK7.js} +64 -57
- package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-V72OCCJO.js} +64 -57
- package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
- package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
- package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
- package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-HV5LPZH2.js} +57 -50
- package/chunks/{mcp-6YYNSYLK.js → mcp-IYVSIW6O.js} +64 -57
- package/chunks/{monitor-A255TNZR.js → monitor-TLBNM4MV.js} +44 -38
- package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-LSJSQ2W4.js} +110 -103
- package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-OSPOLZP6.js} +43 -37
- package/chunks/openai-WX26N5OJ.js +47 -0
- package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-BE4S5TRD.js} +29 -23
- package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
- package/chunks/{pidfile-B7DZC4TP.js → pidfile-H32FEPWA.js} +57 -50
- package/chunks/process-registry-X6ZCASEN.js +10 -0
- package/chunks/{processUtils-BPZ2MCZS.js → processUtils-SSLIPDEA.js} +2 -2
- package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-I5SLL6UF.js} +58 -51
- package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-TMQC623Z.js} +55 -47
- package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-3ZRQHHTC.js} +4 -3
- package/chunks/{read-file-A4H4O3VQ.js → read-file-T2QAIZE2.js} +11 -9
- package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
- package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
- package/chunks/record-source-D7R7X3GT.js +22 -0
- package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
- package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
- package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-QLKDH5GY.js} +63 -56
- package/chunks/{ripGrep-W32NWFTA.js → ripGrep-YGWL7KCV.js} +15 -13
- package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-26KZDECC.js} +127 -102
- package/chunks/{runtime-VRVBX2E5.js → runtime-BMEIVDDG.js} +70 -63
- package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-NCFPP6VQ.js} +64 -57
- package/chunks/{scheduler-M2YPN7Z7.js → scheduler-47TVMUVN.js} +59 -52
- package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
- package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
- package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
- package/chunks/{send-message-76BKWKFZ.js → send-message-TWOGWCBG.js} +12 -9
- package/chunks/{serve-BE3H2P6P.js → serve-KL3G6LQQ.js} +64 -57
- package/chunks/{server-FLY5JERG.js → server-LBPYXZ5G.js} +2931 -518
- package/chunks/{session-JVN62R5K.js → session-YG6742LO.js} +118 -111
- package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-OUBQDYC4.js} +57 -50
- package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-EKGMYNAW.js} +64 -57
- package/chunks/{settings-D44YMZFT.js → settings-DDNHJX2L.js} +69 -62
- package/chunks/{shell-3VE6I4V5.js → shell-KUCXWITU.js} +42 -36
- package/chunks/{skill-FHEGRRZU.js → skill-JQLKPNWZ.js} +33 -23
- package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-XERQCUXZ.js} +63 -56
- package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-GQ45QFGB.js} +60 -53
- package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-PRF3ILGZ.js} +59 -52
- package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-JDSOZE3N.js} +174 -157
- package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-RRW3JVHN.js} +533 -1119
- package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
- package/chunks/{task-create-MWXJFRRM.js → task-create-Y623TBHB.js} +8 -8
- package/chunks/{task-list-EYO3FE57.js → task-list-FCPEEGWL.js} +1 -1
- package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
- package/chunks/{task-update-2JJJRHMT.js → task-update-YLSXF25N.js} +8 -8
- package/chunks/{team-create-GY3VFY47.js → team-create-5DRLOLOE.js} +44 -38
- package/chunks/{team-delete-IQZ6XGFI.js → team-delete-S7TLHZCF.js} +1 -1
- package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-MWSGAL5T.js} +42 -36
- package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-H7PD4FQW.js} +59 -52
- package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-7AV73D6R.js} +57 -50
- package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
- package/chunks/{tool-search-XI3QWD5I.js → tool-search-UGYTBLUV.js} +17 -15
- package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-JIHSTJ5S.js} +62 -55
- package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-5VCBXFOP.js} +58 -51
- package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-4LF3APCV.js} +5 -5
- package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-4T3WUE5F.js} +59 -52
- package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-UMGB64Z6.js} +67 -60
- package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-GFJ72U2C.js} +107 -100
- package/chunks/{version-EK7VAGSI.js → version-EAAZN4T2.js} +1 -1
- package/chunks/{web-fetch-24KZO763.js → web-fetch-VRU3A2NI.js} +13 -11
- package/chunks/{web-search-CRNXKZ2X.js → web-search-NEGYQNDJ.js} +14 -10
- package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-CCN4JZEE.js} +1 -1
- package/chunks/workflow-UHPFALVZ.js +1224 -0
- package/chunks/{workspace-providers-status-MAM42IZS.js → workspace-providers-status-AEYISSU2.js} +68 -61
- package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-A7RGKW62.js} +3 -1
- package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-C2NGE6SD.js} +62 -55
- package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-QKMZ24YF.js} +63 -56
- package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-RQTTAGGC.js} +70 -63
- package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-5HWZU3HX.js} +65 -58
- package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-KFWATZUU.js} +69 -62
- package/chunks/{write-file-ERG67ZFX.js → write-file-DPVB2SBQ.js} +44 -38
- package/chunks/{zh-VBFCRQBL.js → zh-S5V3Z5CR.js} +1 -0
- package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-2K2WRFPY.js} +1 -0
- package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-S7AWLAPC.js} +12 -10
- package/cli.js +13 -13
- package/export-transcript-document.css +1 -0
- package/export-transcript-document.js +164 -165
- package/locales/en.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -0
- package/package.json +5 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-nU24rpIE.js} +1 -1
- package/web-shell/assets/{arc-qAF9_XsR.js → arc-D1hTu8QI.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-B_fgkKe7.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-C3pddUNg.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-kEFoC1ei.js} +1 -1
- package/web-shell/assets/channel-Blod4z1X.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-DbT9wS7j.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CNbULt6O.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CbQRy4Tb.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-CVbXTxYk.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-D89c_BXy.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-B7-I_9KB.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcLQFzS4.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-DyBb2Axj.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-BIA0eb5B.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-Db2FYN85.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-i4GwmBVy.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-LENf_IUy.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CF9XVrD9.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-DD5PJfSm.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-CjD_sBMj.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-U5WwMqyA.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-BujpHJJf.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-3ZLtKEXo.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-BGpiquRm.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D0besu_U.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-9DwDuIyr.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CNlsAeNr.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-C_pPFiTR.js} +1 -1
- package/web-shell/assets/{index-DWoFMu5x.js → index-BYWs4JWq.js} +1 -1
- package/web-shell/assets/index-D3YS6KuJ.js +2173 -0
- package/web-shell/assets/index-eBxK3rs2.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Bpai64Ll.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U-ktpJFq4r.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-iz_DKgFX.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-m_gG00Yt.js} +1 -1
- package/web-shell/assets/{layout-Dvdh5jRH.js → layout-qEvKgnvU.js} +1 -1
- package/web-shell/assets/{linear-Dvc6KIW2.js → linear-C6lklGdq.js} +1 -1
- package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-DSCYB_2P.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-DRQbT8w-.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-BhD0q0i6.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BvIGQCSd.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-BDQtfpU-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-E1g2KIFK.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-CuerYJOe.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-CqWyCZGA.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-B-YWb8x4.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-BB7YY4Tl.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-C8LDpNHS.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-D94vOoxZ.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-C9C8uEYm.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-CYzMHbVW.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-G9nhtLES.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-ruD2Wjhg.js} +1 -1
- package/web-shell/index.html +29 -5
- package/chunks/chunk-V7RNNPGC.js +0 -44
- package/chunks/workflow-HD5NYMW5.js +0 -2907
- package/web-shell/assets/channel-COIuCrVH.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
- package/web-shell/assets/index-CI1ysIEv.js +0 -2154
- package/web-shell/assets/index-CpxXGH-8.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
- /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
scanForSecrets
|
|
5
|
+
} from "./chunk-BUQN5LTI.js";
|
|
3
6
|
import {
|
|
4
7
|
MAX_DROPPED_MSG_IDS,
|
|
5
8
|
MAX_FRAME_BYTES,
|
|
@@ -7,21 +10,16 @@ import {
|
|
|
7
10
|
MAX_SENDER_KEY_CHARS,
|
|
8
11
|
MAX_SOCKET_PATH_BYTES,
|
|
9
12
|
SOCKET_DIR_NAME,
|
|
10
|
-
flattenPeerLabel,
|
|
11
13
|
isLocalIpcPath,
|
|
12
14
|
parsePeerAuthLine,
|
|
13
15
|
parsePeerFrame,
|
|
14
16
|
peerSenderKey,
|
|
15
17
|
probePeerSocketVerdict,
|
|
16
18
|
resolvePeerSocketCandidates
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import {
|
|
19
|
-
scanForSecrets
|
|
20
|
-
} from "./chunk-BUQN5LTI.js";
|
|
19
|
+
} from "./chunk-LK2WUCDQ.js";
|
|
21
20
|
import {
|
|
22
21
|
BudgetExhaustedError,
|
|
23
22
|
CoreToolScheduler,
|
|
24
|
-
DEFAULT_IMAGE_TOKEN_ESTIMATE,
|
|
25
23
|
IDE_DEFINITIONS,
|
|
26
24
|
MCP_BUDGET_REARM_FRACTION,
|
|
27
25
|
MCP_BUDGET_WARN_FRACTION,
|
|
@@ -44,10 +42,10 @@ import {
|
|
|
44
42
|
createMemoryScopedAgentConfig,
|
|
45
43
|
deriveConfig,
|
|
46
44
|
discoveryTimeoutFor,
|
|
45
|
+
disposeConoutWorker,
|
|
47
46
|
ensureAutoMemoryScaffold,
|
|
48
47
|
ensureUserAutoMemoryScaffold,
|
|
49
48
|
estimateContentTokens,
|
|
50
|
-
estimatePartChars,
|
|
51
49
|
evaluateToolInvocationGuard,
|
|
52
50
|
finalizeToolResponses,
|
|
53
51
|
getCacheSafeParams,
|
|
@@ -63,6 +61,7 @@ import {
|
|
|
63
61
|
mcpSessionMetadataKey,
|
|
64
62
|
mcpTransportOf,
|
|
65
63
|
normalizeMcpIncludeEntry,
|
|
64
|
+
noteConPtyHostReleased,
|
|
66
65
|
observeToolResultBoundary,
|
|
67
66
|
parseConnectionId,
|
|
68
67
|
readAutoMemoryIndex,
|
|
@@ -70,6 +69,7 @@ import {
|
|
|
70
69
|
rebuildManagedAutoMemoryIndex,
|
|
71
70
|
rebuildUserAutoMemoryIndex,
|
|
72
71
|
recursivelyHydrateStrings,
|
|
72
|
+
releaseConPtyHost,
|
|
73
73
|
repairOrphanedToolUseTurns,
|
|
74
74
|
require_picomatch,
|
|
75
75
|
runForkedAgent,
|
|
@@ -79,20 +79,24 @@ import {
|
|
|
79
79
|
stripToolResultImages,
|
|
80
80
|
toolResultBoundaryArtifact,
|
|
81
81
|
toolResultPartDiagnosticValues
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-N7VWZDWW.js";
|
|
83
|
+
import {
|
|
84
|
+
stripAnsi
|
|
85
|
+
} from "./chunk-TWPJO254.js";
|
|
83
86
|
import {
|
|
84
87
|
hasVerifiableInode,
|
|
85
88
|
openNoFollow
|
|
86
89
|
} from "./chunk-6HUXPLB5.js";
|
|
87
|
-
import {
|
|
88
|
-
stripAnsi
|
|
89
|
-
} from "./chunk-TWPJO254.js";
|
|
90
90
|
import {
|
|
91
91
|
projectUserTranscriptForDisplay
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-E4UEO3XM.js";
|
|
93
|
+
import {
|
|
94
|
+
getProjectSkillsRoot,
|
|
95
|
+
parse
|
|
96
|
+
} from "./chunk-2SZH22YO.js";
|
|
93
97
|
import {
|
|
94
98
|
resolveBundleDir
|
|
95
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-DTNV6UZY.js";
|
|
96
100
|
import {
|
|
97
101
|
glob,
|
|
98
102
|
globSync
|
|
@@ -100,23 +104,36 @@ import {
|
|
|
100
104
|
import {
|
|
101
105
|
escapeJsonTagCharacters
|
|
102
106
|
} from "./chunk-CHEIIBT3.js";
|
|
107
|
+
import {
|
|
108
|
+
flattenPeerLabel
|
|
109
|
+
} from "./chunk-5GLDOLNQ.js";
|
|
103
110
|
import {
|
|
104
111
|
isPidAlive
|
|
105
112
|
} from "./chunk-CH2YDT6X.js";
|
|
106
|
-
import {
|
|
107
|
-
getProjectSkillsRoot,
|
|
108
|
-
parse
|
|
109
|
-
} from "./chunk-CLKE4IY3.js";
|
|
110
113
|
import {
|
|
111
114
|
require_proper_lockfile
|
|
112
115
|
} from "./chunk-MLXTMF7H.js";
|
|
113
116
|
import {
|
|
114
117
|
BUILT_IN_OUTPUT_STYLES,
|
|
115
118
|
getBuiltInOutputStyle
|
|
116
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-LILGKQ4B.js";
|
|
120
|
+
import {
|
|
121
|
+
getFolderStructure,
|
|
122
|
+
getStartupContextLength,
|
|
123
|
+
isSystemReminderContent,
|
|
124
|
+
stripSystemReminderBlocks
|
|
125
|
+
} from "./chunk-FN3JNDRU.js";
|
|
126
|
+
import {
|
|
127
|
+
getQwenIgnoreFileNames,
|
|
128
|
+
require_ignore
|
|
129
|
+
} from "./chunk-IZ2U57NY.js";
|
|
130
|
+
import {
|
|
131
|
+
DEFAULT_IMAGE_TOKEN_ESTIMATE,
|
|
132
|
+
estimatePartChars
|
|
133
|
+
} from "./chunk-NUQ4GK5I.js";
|
|
117
134
|
import {
|
|
118
135
|
fetchWithPolicy
|
|
119
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-YBUMTY7B.js";
|
|
120
137
|
import {
|
|
121
138
|
COMBINED_PASS_TOLERANCE_FACTOR,
|
|
122
139
|
TOOL_OUTPUT_TRUNCATED_PREFIX,
|
|
@@ -125,7 +142,7 @@ import {
|
|
|
125
142
|
removeMCPStatusChangeListener,
|
|
126
143
|
runSideQuery,
|
|
127
144
|
updateMCPServerStatus
|
|
128
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-HBU7EKY4.js";
|
|
129
146
|
import {
|
|
130
147
|
getInvocationContext
|
|
131
148
|
} from "./chunk-5ETULJLP.js";
|
|
@@ -134,6 +151,10 @@ import {
|
|
|
134
151
|
Mutex,
|
|
135
152
|
withTimeout
|
|
136
153
|
} from "./chunk-VGC4I5JJ.js";
|
|
154
|
+
import {
|
|
155
|
+
getAutoMemoryRoot,
|
|
156
|
+
getUserAutoMemoryRoot
|
|
157
|
+
} from "./chunk-EDIDYZBT.js";
|
|
137
158
|
import {
|
|
138
159
|
MEMORY_SECTION_HEADER,
|
|
139
160
|
VISION_BRIDGE_MAX_IMAGES,
|
|
@@ -144,10 +165,6 @@ import {
|
|
|
144
165
|
isWithinRoot,
|
|
145
166
|
processSingleFileContent
|
|
146
167
|
} from "./chunk-J6MB5ZHZ.js";
|
|
147
|
-
import {
|
|
148
|
-
getAutoMemoryRoot,
|
|
149
|
-
getUserAutoMemoryRoot
|
|
150
|
-
} from "./chunk-EDIDYZBT.js";
|
|
151
168
|
import {
|
|
152
169
|
atomicWriteFile,
|
|
153
170
|
atomicWriteJSON
|
|
@@ -157,21 +174,11 @@ import {
|
|
|
157
174
|
normalizeContent,
|
|
158
175
|
stripAnsiAndControl,
|
|
159
176
|
stripHtmlComments
|
|
160
|
-
} from "./chunk-
|
|
161
|
-
import {
|
|
162
|
-
getFolderStructure,
|
|
163
|
-
getStartupContextLength,
|
|
164
|
-
isSystemReminderContent,
|
|
165
|
-
stripSystemReminderBlocks
|
|
166
|
-
} from "./chunk-4VY3ITHR.js";
|
|
167
|
-
import {
|
|
168
|
-
getQwenIgnoreFileNames,
|
|
169
|
-
require_ignore
|
|
170
|
-
} from "./chunk-IZ2U57NY.js";
|
|
177
|
+
} from "./chunk-W5ZQMAEM.js";
|
|
171
178
|
import {
|
|
172
179
|
ToolNames,
|
|
173
180
|
canonicalToolName
|
|
174
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-TP6FYVQT.js";
|
|
175
182
|
import {
|
|
176
183
|
PATH_ARG_KEYS,
|
|
177
184
|
QWEN_DIR,
|
|
@@ -3438,7 +3445,7 @@ var DISCOVERY_TIMEOUT_MS = 5e3;
|
|
|
3438
3445
|
var DISCOVERY_MAX_BYTES = 1024 * 1024;
|
|
3439
3446
|
var MAX_MODEL_ID_LENGTH = 256;
|
|
3440
3447
|
var UNSAFE_MODEL_ID_CHARS = /[,\p{C}\p{Zl}\p{Zp}]/u;
|
|
3441
|
-
function
|
|
3448
|
+
function readModels(value) {
|
|
3442
3449
|
if (!value || typeof value !== "object" || !("data" in value)) {
|
|
3443
3450
|
return null;
|
|
3444
3451
|
}
|
|
@@ -3446,7 +3453,7 @@ function readModelIds(value) {
|
|
|
3446
3453
|
if (!Array.isArray(data)) {
|
|
3447
3454
|
return null;
|
|
3448
3455
|
}
|
|
3449
|
-
const
|
|
3456
|
+
const models = [];
|
|
3450
3457
|
const seen = /* @__PURE__ */ new Set();
|
|
3451
3458
|
for (const item of data) {
|
|
3452
3459
|
if (!item || typeof item !== "object" || !("id" in item)) {
|
|
@@ -3459,22 +3466,28 @@ function readModelIds(value) {
|
|
|
3459
3466
|
const trimmedId = id.trim();
|
|
3460
3467
|
if (trimmedId && trimmedId.length <= MAX_MODEL_ID_LENGTH && !UNSAFE_MODEL_ID_CHARS.test(trimmedId) && !seen.has(trimmedId)) {
|
|
3461
3468
|
seen.add(trimmedId);
|
|
3462
|
-
|
|
3469
|
+
const created = item.created;
|
|
3470
|
+
const creationTime = typeof created === "number" && Number.isFinite(created) && created >= 0 ? created : void 0;
|
|
3471
|
+
models.push({
|
|
3472
|
+
id: trimmedId,
|
|
3473
|
+
...creationTime === void 0 ? {} : { created: creationTime }
|
|
3474
|
+
});
|
|
3463
3475
|
}
|
|
3464
3476
|
}
|
|
3465
|
-
return
|
|
3477
|
+
return models.length > 0 ? models : null;
|
|
3466
3478
|
}
|
|
3467
|
-
__name(
|
|
3468
|
-
function mergeModelSpecs(
|
|
3469
|
-
const
|
|
3470
|
-
|
|
3471
|
-
(model) => discoveredIds.has(model.id)
|
|
3479
|
+
__name(readModels, "readModels");
|
|
3480
|
+
function mergeModelSpecs(discoveredModels, staticModels) {
|
|
3481
|
+
const staticModelsById = new Map(
|
|
3482
|
+
staticModels.map((model) => [model.id, model])
|
|
3472
3483
|
);
|
|
3473
|
-
const
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3484
|
+
const orderedModels = [...discoveredModels];
|
|
3485
|
+
if (orderedModels.every((model) => model.created !== void 0)) {
|
|
3486
|
+
orderedModels.sort(
|
|
3487
|
+
(left, right) => (right.created ?? 0) - (left.created ?? 0)
|
|
3488
|
+
);
|
|
3489
|
+
}
|
|
3490
|
+
return orderedModels.map(({ id }) => staticModelsById.get(id) ?? { id });
|
|
3478
3491
|
}
|
|
3479
3492
|
__name(mergeModelSpecs, "mergeModelSpecs");
|
|
3480
3493
|
async function discoverProviderModels({
|
|
@@ -3503,8 +3516,8 @@ async function discoverProviderModels({
|
|
|
3503
3516
|
if (result.kind !== "response" || result.status < 200 || result.status >= 300) {
|
|
3504
3517
|
return null;
|
|
3505
3518
|
}
|
|
3506
|
-
const
|
|
3507
|
-
return
|
|
3519
|
+
const models = readModels(JSON.parse(result.body.toString("utf8")));
|
|
3520
|
+
return models ? mergeModelSpecs(models, staticModels) : null;
|
|
3508
3521
|
} catch {
|
|
3509
3522
|
return null;
|
|
3510
3523
|
}
|
|
@@ -4414,7 +4427,19 @@ var WebTerminalRegistry = class {
|
|
|
4414
4427
|
pid: spawned.pid,
|
|
4415
4428
|
write: /* @__PURE__ */ __name((data) => spawned.write(data), "write"),
|
|
4416
4429
|
resize: /* @__PURE__ */ __name((cols, rows) => spawned.resize(cols, rows), "resize"),
|
|
4417
|
-
kill: /* @__PURE__ */ __name(() =>
|
|
4430
|
+
kill: /* @__PURE__ */ __name(() => {
|
|
4431
|
+
spawned.kill();
|
|
4432
|
+
if (spawned._isReady !== false) {
|
|
4433
|
+
noteConPtyHostReleased(spawned);
|
|
4434
|
+
}
|
|
4435
|
+
}, "kill"),
|
|
4436
|
+
releaseHost: /* @__PURE__ */ __name(() => {
|
|
4437
|
+
if (spawned._isReady === false) {
|
|
4438
|
+
disposeConoutWorker(spawned);
|
|
4439
|
+
return;
|
|
4440
|
+
}
|
|
4441
|
+
releaseConPtyHost(spawned);
|
|
4442
|
+
}, "releaseHost")
|
|
4418
4443
|
};
|
|
4419
4444
|
} catch {
|
|
4420
4445
|
this.finishCreating(terminalId);
|
|
@@ -4526,6 +4551,9 @@ var WebTerminalRegistry = class {
|
|
|
4526
4551
|
session.exitListeners.clear();
|
|
4527
4552
|
if (!session.exited) {
|
|
4528
4553
|
killPtyTree(session.pty);
|
|
4554
|
+
session.pty.releaseHost?.();
|
|
4555
|
+
} else {
|
|
4556
|
+
session.pty.releaseHost?.();
|
|
4529
4557
|
}
|
|
4530
4558
|
return true;
|
|
4531
4559
|
}
|
|
@@ -5669,6 +5697,94 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
|
|
|
5669
5697
|
// packages/core/src/goals/index.ts
|
|
5670
5698
|
init_esbuild_shims();
|
|
5671
5699
|
|
|
5700
|
+
// packages/core/src/goals/activeGoalStore.ts
|
|
5701
|
+
init_esbuild_shims();
|
|
5702
|
+
var store = /* @__PURE__ */ new Map();
|
|
5703
|
+
function getActiveGoal(sessionId) {
|
|
5704
|
+
return store.get(sessionId);
|
|
5705
|
+
}
|
|
5706
|
+
__name(getActiveGoal, "getActiveGoal");
|
|
5707
|
+
function clearActiveGoal(sessionId) {
|
|
5708
|
+
const previous = store.get(sessionId);
|
|
5709
|
+
store.delete(sessionId);
|
|
5710
|
+
return previous;
|
|
5711
|
+
}
|
|
5712
|
+
__name(clearActiveGoal, "clearActiveGoal");
|
|
5713
|
+
var observers = /* @__PURE__ */ new Map();
|
|
5714
|
+
function clearGoalTerminalObserver(sessionId) {
|
|
5715
|
+
observers.delete(sessionId);
|
|
5716
|
+
}
|
|
5717
|
+
__name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
|
|
5718
|
+
function notifyGoalTerminal(sessionId, event) {
|
|
5719
|
+
recordLastTerminalEvent(sessionId, event);
|
|
5720
|
+
const observer = observers.get(sessionId);
|
|
5721
|
+
if (!observer) return;
|
|
5722
|
+
try {
|
|
5723
|
+
observer(event);
|
|
5724
|
+
} catch {
|
|
5725
|
+
}
|
|
5726
|
+
}
|
|
5727
|
+
__name(notifyGoalTerminal, "notifyGoalTerminal");
|
|
5728
|
+
var lastTerminal = /* @__PURE__ */ new Map();
|
|
5729
|
+
function recordLastTerminalEvent(sessionId, event) {
|
|
5730
|
+
lastTerminal.set(sessionId, event);
|
|
5731
|
+
}
|
|
5732
|
+
__name(recordLastTerminalEvent, "recordLastTerminalEvent");
|
|
5733
|
+
|
|
5734
|
+
// packages/core/src/goals/goalHook.ts
|
|
5735
|
+
init_esbuild_shims();
|
|
5736
|
+
|
|
5737
|
+
// packages/core/src/goals/goalJudge.ts
|
|
5738
|
+
init_esbuild_shims();
|
|
5739
|
+
var debugLogger9 = createDebugLogger("GOAL_JUDGE");
|
|
5740
|
+
|
|
5741
|
+
// packages/core/src/goals/goalHook.ts
|
|
5742
|
+
var debugLogger10 = createDebugLogger("GOAL_HOOK");
|
|
5743
|
+
var GOAL_HOOK_TIMEOUT_SECONDS = 30;
|
|
5744
|
+
var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
|
|
5745
|
+
var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
|
|
5746
|
+
function getStopHookContinuationReason(output) {
|
|
5747
|
+
const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
|
|
5748
|
+
if (!hasGoalOutput) {
|
|
5749
|
+
return output.stopReason || output.reason || "No reason provided";
|
|
5750
|
+
}
|
|
5751
|
+
return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
|
|
5752
|
+
}
|
|
5753
|
+
__name(getStopHookContinuationReason, "getStopHookContinuationReason");
|
|
5754
|
+
function removeGoalFunctionHook(config, sessionId, goal) {
|
|
5755
|
+
const system = config.getHookSystem?.();
|
|
5756
|
+
if (!system) return;
|
|
5757
|
+
try {
|
|
5758
|
+
system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
|
|
5759
|
+
} catch (err) {
|
|
5760
|
+
debugLogger10.debug(
|
|
5761
|
+
`Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
|
|
5762
|
+
);
|
|
5763
|
+
}
|
|
5764
|
+
}
|
|
5765
|
+
__name(removeGoalFunctionHook, "removeGoalFunctionHook");
|
|
5766
|
+
function finishGoal(config, sessionId, goal, event) {
|
|
5767
|
+
clearActiveGoal(sessionId);
|
|
5768
|
+
removeGoalFunctionHook(config, sessionId, goal);
|
|
5769
|
+
notifyGoalTerminal(sessionId, event);
|
|
5770
|
+
clearGoalTerminalObserver(sessionId);
|
|
5771
|
+
}
|
|
5772
|
+
__name(finishGoal, "finishGoal");
|
|
5773
|
+
function abortGoalForStopHookCap(config, sessionId, systemMessage) {
|
|
5774
|
+
const goal = getActiveGoal(sessionId);
|
|
5775
|
+
if (!goal) return false;
|
|
5776
|
+
finishGoal(config, sessionId, goal, {
|
|
5777
|
+
kind: "aborted",
|
|
5778
|
+
condition: goal.condition,
|
|
5779
|
+
iterations: goal.iterations,
|
|
5780
|
+
durationMs: Date.now() - goal.setAt,
|
|
5781
|
+
lastReason: goal.lastReason,
|
|
5782
|
+
systemMessage
|
|
5783
|
+
});
|
|
5784
|
+
return true;
|
|
5785
|
+
}
|
|
5786
|
+
__name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
|
|
5787
|
+
|
|
5672
5788
|
// packages/core/src/index.ts
|
|
5673
5789
|
init_esbuild_shims();
|
|
5674
5790
|
|
|
@@ -6186,7 +6302,7 @@ init_esbuild_shims();
|
|
|
6186
6302
|
import * as fs4 from "fs/promises";
|
|
6187
6303
|
import * as os from "os";
|
|
6188
6304
|
import * as path6 from "path";
|
|
6189
|
-
var
|
|
6305
|
+
var debugLogger11 = createDebugLogger("OUTPUT_STYLE_FILES");
|
|
6190
6306
|
var OUTPUT_STYLES_DIR_NAME = "output-styles";
|
|
6191
6307
|
var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
|
|
6192
6308
|
var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
|
|
@@ -6245,7 +6361,7 @@ function parseOutputStyleFile(content, filePath, source) {
|
|
|
6245
6361
|
(key) => !KNOWN_FRONTMATTER_KEYS.has(key)
|
|
6246
6362
|
);
|
|
6247
6363
|
if (unknownKeys.length > 0) {
|
|
6248
|
-
|
|
6364
|
+
debugLogger11.warn(
|
|
6249
6365
|
`Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
|
|
6250
6366
|
);
|
|
6251
6367
|
}
|
|
@@ -6262,7 +6378,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
|
|
|
6262
6378
|
return true;
|
|
6263
6379
|
}
|
|
6264
6380
|
if (spelling !== false && spelling !== "false") {
|
|
6265
|
-
|
|
6381
|
+
debugLogger11.warn(
|
|
6266
6382
|
`Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
|
|
6267
6383
|
);
|
|
6268
6384
|
}
|
|
@@ -6315,20 +6431,20 @@ __name(deriveDescription, "deriveDescription");
|
|
|
6315
6431
|
async function resolveStyleFileToRead(filePath, source, confineTo) {
|
|
6316
6432
|
const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
|
|
6317
6433
|
if (source === "project" && stat5.isSymbolicLink()) {
|
|
6318
|
-
|
|
6434
|
+
debugLogger11.warn(`Skipping output style ${filePath}: it is a symlink`);
|
|
6319
6435
|
return null;
|
|
6320
6436
|
}
|
|
6321
6437
|
if (!stat5.isFile()) {
|
|
6322
6438
|
return null;
|
|
6323
6439
|
}
|
|
6324
6440
|
if (stat5.nlink > 1) {
|
|
6325
|
-
|
|
6441
|
+
debugLogger11.warn(`Skipping output style ${filePath}: it is a hard link`);
|
|
6326
6442
|
return null;
|
|
6327
6443
|
}
|
|
6328
6444
|
const realPath = await fs4.realpath(filePath);
|
|
6329
6445
|
const realRoot = await fs4.realpath(confineTo);
|
|
6330
6446
|
if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
|
|
6331
|
-
|
|
6447
|
+
debugLogger11.warn(
|
|
6332
6448
|
`Skipping output style ${filePath}: it resolves outside ${realRoot}`
|
|
6333
6449
|
);
|
|
6334
6450
|
return null;
|
|
@@ -6366,7 +6482,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6366
6482
|
entries = await fs4.readdir(dir);
|
|
6367
6483
|
} catch (error) {
|
|
6368
6484
|
if (error.code !== "ENOENT") {
|
|
6369
|
-
|
|
6485
|
+
debugLogger11.warn(`Cannot read output styles directory ${dir}:`, error);
|
|
6370
6486
|
}
|
|
6371
6487
|
return [];
|
|
6372
6488
|
}
|
|
@@ -6385,13 +6501,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6385
6501
|
}
|
|
6386
6502
|
const buffer = await readBoundedStyleFile(readPath);
|
|
6387
6503
|
if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
|
|
6388
|
-
|
|
6504
|
+
debugLogger11.warn(
|
|
6389
6505
|
`Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
|
|
6390
6506
|
);
|
|
6391
6507
|
continue;
|
|
6392
6508
|
}
|
|
6393
6509
|
if (isBinary(buffer)) {
|
|
6394
|
-
|
|
6510
|
+
debugLogger11.warn(
|
|
6395
6511
|
`Skipping output style ${filePath}: it is not UTF-8 text`
|
|
6396
6512
|
);
|
|
6397
6513
|
continue;
|
|
@@ -6403,7 +6519,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6403
6519
|
);
|
|
6404
6520
|
const key = style.name.toLowerCase();
|
|
6405
6521
|
if (seen.has(key)) {
|
|
6406
|
-
|
|
6522
|
+
debugLogger11.warn(
|
|
6407
6523
|
`Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
|
|
6408
6524
|
);
|
|
6409
6525
|
continue;
|
|
@@ -6411,7 +6527,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6411
6527
|
seen.add(key);
|
|
6412
6528
|
styles.push(style);
|
|
6413
6529
|
} catch (error) {
|
|
6414
|
-
|
|
6530
|
+
debugLogger11.warn(
|
|
6415
6531
|
`Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
|
|
6416
6532
|
);
|
|
6417
6533
|
}
|
|
@@ -6459,7 +6575,7 @@ async function loadOutputStyleCatalog(options = {}) {
|
|
|
6459
6575
|
const key = style.name.toLowerCase();
|
|
6460
6576
|
const winner = winners.get(key);
|
|
6461
6577
|
if (winner) {
|
|
6462
|
-
|
|
6578
|
+
debugLogger11.debug(
|
|
6463
6579
|
`Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
|
|
6464
6580
|
);
|
|
6465
6581
|
continue;
|
|
@@ -6479,7 +6595,7 @@ __name(findOutputStyle, "findOutputStyle");
|
|
|
6479
6595
|
|
|
6480
6596
|
// packages/core/src/tools/client-mcp-registrar.ts
|
|
6481
6597
|
init_esbuild_shims();
|
|
6482
|
-
var
|
|
6598
|
+
var debugLogger12 = createDebugLogger("CLIENT_MCP_REGISTRAR");
|
|
6483
6599
|
var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
|
|
6484
6600
|
var ClientMcpRegistrar = class {
|
|
6485
6601
|
static {
|
|
@@ -6502,7 +6618,7 @@ var ClientMcpRegistrar = class {
|
|
|
6502
6618
|
*/
|
|
6503
6619
|
registerServer(serverName) {
|
|
6504
6620
|
this.servers.add(serverName);
|
|
6505
|
-
|
|
6621
|
+
debugLogger12.debug(`Registered client MCP server '${serverName}'`);
|
|
6506
6622
|
}
|
|
6507
6623
|
/**
|
|
6508
6624
|
* Drop a server name and reject any in-flight requests targeting it. Returns
|
|
@@ -6515,7 +6631,7 @@ var ClientMcpRegistrar = class {
|
|
|
6515
6631
|
new Error(`client MCP server '${serverName}' was unregistered`)
|
|
6516
6632
|
);
|
|
6517
6633
|
if (existed) {
|
|
6518
|
-
|
|
6634
|
+
debugLogger12.debug(`Unregistered client MCP server '${serverName}'`);
|
|
6519
6635
|
}
|
|
6520
6636
|
return existed;
|
|
6521
6637
|
}
|
|
@@ -6615,7 +6731,7 @@ var ClientMcpRegistrar = class {
|
|
|
6615
6731
|
resolveMessage(id, payload) {
|
|
6616
6732
|
const pending = this.pending.get(id);
|
|
6617
6733
|
if (!pending) {
|
|
6618
|
-
|
|
6734
|
+
debugLogger12.debug(`Dropping mcp_message with unknown id '${id}'`);
|
|
6619
6735
|
return false;
|
|
6620
6736
|
}
|
|
6621
6737
|
this.pending.delete(id);
|
|
@@ -6837,7 +6953,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
|
|
|
6837
6953
|
import * as fsSync2 from "node:fs";
|
|
6838
6954
|
import * as fs5 from "node:fs/promises";
|
|
6839
6955
|
import * as path7 from "node:path";
|
|
6840
|
-
var
|
|
6956
|
+
var debugLogger13 = createDebugLogger("PEER_CONTROLLERS");
|
|
6841
6957
|
var PEER_CONTROLLER_SCHEMA_VERSION = 1;
|
|
6842
6958
|
var CONTROLLER_TOKEN_PREFIX = "qpc_";
|
|
6843
6959
|
var CONTROLLER_TOKEN_BYTES = 32;
|
|
@@ -6858,7 +6974,7 @@ var LOCK_OPTIONS = {
|
|
|
6858
6974
|
randomize: true
|
|
6859
6975
|
},
|
|
6860
6976
|
onCompromised: /* @__PURE__ */ __name((error) => {
|
|
6861
|
-
|
|
6977
|
+
debugLogger13.debug(
|
|
6862
6978
|
`controller registry lock compromised: ${describe2(error)}`
|
|
6863
6979
|
);
|
|
6864
6980
|
}, "onCompromised")
|
|
@@ -6925,13 +7041,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6925
7041
|
try {
|
|
6926
7042
|
const stats = fsSync2.lstatSync(filePath);
|
|
6927
7043
|
if (!stats.isFile()) {
|
|
6928
|
-
|
|
7044
|
+
debugLogger13.debug(
|
|
6929
7045
|
`ignoring the controller registry at ${filePath}: not a regular file`
|
|
6930
7046
|
);
|
|
6931
7047
|
return emptyRegistry();
|
|
6932
7048
|
}
|
|
6933
7049
|
if (stats.size > MAX_REGISTRY_BYTES) {
|
|
6934
|
-
|
|
7050
|
+
debugLogger13.debug(
|
|
6935
7051
|
`ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
|
|
6936
7052
|
);
|
|
6937
7053
|
return emptyRegistry();
|
|
@@ -6939,7 +7055,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6939
7055
|
raw = fsSync2.readFileSync(filePath, "utf8");
|
|
6940
7056
|
} catch (error) {
|
|
6941
7057
|
if (!isNodeError(error) || error.code !== "ENOENT") {
|
|
6942
|
-
|
|
7058
|
+
debugLogger13.debug(
|
|
6943
7059
|
`could not read the controller registry at ${filePath}: ${describe2(error)}`
|
|
6944
7060
|
);
|
|
6945
7061
|
}
|
|
@@ -6949,14 +7065,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6949
7065
|
try {
|
|
6950
7066
|
parsed = JSON.parse(raw);
|
|
6951
7067
|
} catch (error) {
|
|
6952
|
-
|
|
7068
|
+
debugLogger13.debug(
|
|
6953
7069
|
`the controller registry at ${filePath} is not JSON: ${describe2(error)}`
|
|
6954
7070
|
);
|
|
6955
7071
|
return emptyRegistry();
|
|
6956
7072
|
}
|
|
6957
7073
|
if (!isRecord(parsed)) return emptyRegistry();
|
|
6958
7074
|
if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
|
|
6959
|
-
|
|
7075
|
+
debugLogger13.debug(
|
|
6960
7076
|
`ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
|
|
6961
7077
|
parsed["schemaVersion"]
|
|
6962
7078
|
)}`
|
|
@@ -6969,7 +7085,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6969
7085
|
for (const entry of controllers) {
|
|
6970
7086
|
const record = toValidRecord(entry);
|
|
6971
7087
|
if (record === null) {
|
|
6972
|
-
|
|
7088
|
+
debugLogger13.debug(
|
|
6973
7089
|
`skipping a malformed entry in the controller registry at ${filePath}`
|
|
6974
7090
|
);
|
|
6975
7091
|
continue;
|
|
@@ -7197,7 +7313,7 @@ __name(removePeerController, "removePeerController");
|
|
|
7197
7313
|
|
|
7198
7314
|
// packages/core/src/ipc/peer-drop-reports.ts
|
|
7199
7315
|
init_esbuild_shims();
|
|
7200
|
-
var
|
|
7316
|
+
var debugLogger14 = createDebugLogger("PEER_DROP_REPORTS");
|
|
7201
7317
|
var DROP_REPORT_WINDOW_MS = 6e4;
|
|
7202
7318
|
var DROP_RECEIPT_TRAIL_MS = 5e3;
|
|
7203
7319
|
var DROP_FLUSH_BOUND_MS = 500;
|
|
@@ -7339,7 +7455,7 @@ var DropReceiptCoalescer = class {
|
|
|
7339
7455
|
const now = this.now();
|
|
7340
7456
|
const age = now - batch.firstNotedAt;
|
|
7341
7457
|
if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
|
|
7342
|
-
|
|
7458
|
+
debugLogger14.debug(
|
|
7343
7459
|
`abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
|
|
7344
7460
|
);
|
|
7345
7461
|
this.clearBatch(batch);
|
|
@@ -7377,7 +7493,7 @@ var DropReceiptCoalescer = class {
|
|
|
7377
7493
|
try {
|
|
7378
7494
|
result = this.send(receipt);
|
|
7379
7495
|
} catch (error) {
|
|
7380
|
-
|
|
7496
|
+
debugLogger14.debug(`sending a dropped receipt threw: ${describe3(error)}`);
|
|
7381
7497
|
return;
|
|
7382
7498
|
}
|
|
7383
7499
|
if (!(result instanceof Promise)) return result;
|
|
@@ -7478,7 +7594,7 @@ var DropNoticeThrottle = class {
|
|
|
7478
7594
|
suppressed
|
|
7479
7595
|
});
|
|
7480
7596
|
} catch (error) {
|
|
7481
|
-
|
|
7597
|
+
debugLogger14.debug(`drop-notice listener threw: ${describe3(error)}`);
|
|
7482
7598
|
}
|
|
7483
7599
|
}
|
|
7484
7600
|
touch(key) {
|
|
@@ -7668,7 +7784,7 @@ var DroppedNotificationTally = class {
|
|
|
7668
7784
|
|
|
7669
7785
|
// packages/core/src/services/toolUseSummary.ts
|
|
7670
7786
|
init_esbuild_shims();
|
|
7671
|
-
var
|
|
7787
|
+
var debugLogger15 = createDebugLogger("TOOL_USE_SUMMARY");
|
|
7672
7788
|
var TOOL_USE_SUMMARY_SYSTEM_PROMPT = `Write a short summary label describing what these tool calls accomplished. It appears as a single-line row in a mobile app and truncates around 30 characters, so think git-commit-subject, not sentence.
|
|
7673
7789
|
|
|
7674
7790
|
Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
|
|
@@ -7689,7 +7805,7 @@ async function generateToolUseSummary(params) {
|
|
|
7689
7805
|
}
|
|
7690
7806
|
const model = config.getFastModel();
|
|
7691
7807
|
if (!model) {
|
|
7692
|
-
|
|
7808
|
+
debugLogger15.debug("No fast model configured \u2014 skipping summary generation");
|
|
7693
7809
|
return null;
|
|
7694
7810
|
}
|
|
7695
7811
|
if (signal.aborted) {
|
|
@@ -7712,7 +7828,7 @@ ${toolSummaries}
|
|
|
7712
7828
|
|
|
7713
7829
|
Label:`;
|
|
7714
7830
|
if (!config.getLlmClient()) {
|
|
7715
|
-
|
|
7831
|
+
debugLogger15.debug("No gemini client available \u2014 skipping");
|
|
7716
7832
|
return null;
|
|
7717
7833
|
}
|
|
7718
7834
|
const result = await runSideQuery(config, {
|
|
@@ -7731,19 +7847,19 @@ Label:`;
|
|
|
7731
7847
|
});
|
|
7732
7848
|
if (signal.aborted) return null;
|
|
7733
7849
|
if (!result.text) {
|
|
7734
|
-
|
|
7850
|
+
debugLogger15.debug("Summary generation returned empty result");
|
|
7735
7851
|
return null;
|
|
7736
7852
|
}
|
|
7737
7853
|
const cleaned = cleanSummary(result.text);
|
|
7738
7854
|
if (!cleaned) {
|
|
7739
|
-
|
|
7855
|
+
debugLogger15.debug(`Summary cleaned to empty: raw="${result.text}"`);
|
|
7740
7856
|
return null;
|
|
7741
7857
|
}
|
|
7742
|
-
|
|
7858
|
+
debugLogger15.debug(`Summary generated: "${cleaned}"`);
|
|
7743
7859
|
return cleaned;
|
|
7744
7860
|
} catch (err) {
|
|
7745
7861
|
if (signal.aborted) return null;
|
|
7746
|
-
|
|
7862
|
+
debugLogger15.warn(
|
|
7747
7863
|
`Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
|
|
7748
7864
|
);
|
|
7749
7865
|
return null;
|
|
@@ -7817,7 +7933,7 @@ __name(cleanSummary, "cleanSummary");
|
|
|
7817
7933
|
|
|
7818
7934
|
// packages/core/src/services/usage-dashboard-service.ts
|
|
7819
7935
|
init_esbuild_shims();
|
|
7820
|
-
var
|
|
7936
|
+
var debugLogger16 = createDebugLogger("USAGE_DASHBOARD");
|
|
7821
7937
|
var DEFAULT_HEATMAP_DAYS = 183;
|
|
7822
7938
|
var MAX_DAILY_DAYS = 92;
|
|
7823
7939
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
@@ -7942,7 +8058,7 @@ function buildUsageDashboard(records, options = {}) {
|
|
|
7942
8058
|
);
|
|
7943
8059
|
const daily = buildDaily(records, dailyStart, now);
|
|
7944
8060
|
const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
|
|
7945
|
-
|
|
8061
|
+
debugLogger16.debug(
|
|
7946
8062
|
`built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
|
|
7947
8063
|
);
|
|
7948
8064
|
return {
|
|
@@ -8278,7 +8394,7 @@ import * as path8 from "node:path";
|
|
|
8278
8394
|
var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
|
|
8279
8395
|
var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
|
|
8280
8396
|
var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
|
|
8281
|
-
var
|
|
8397
|
+
var debugLogger17 = createDebugLogger("CHANNEL_MEMORY");
|
|
8282
8398
|
var pendingMutations = /* @__PURE__ */ new Map();
|
|
8283
8399
|
var LOCK_OPTIONS2 = {
|
|
8284
8400
|
realpath: false,
|
|
@@ -8291,7 +8407,7 @@ var LOCK_OPTIONS2 = {
|
|
|
8291
8407
|
},
|
|
8292
8408
|
stale: 5e3,
|
|
8293
8409
|
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
8294
|
-
|
|
8410
|
+
debugLogger17.warn("channel memory lock compromised:", err);
|
|
8295
8411
|
}, "onCompromised")
|
|
8296
8412
|
};
|
|
8297
8413
|
function isMissingFile(error) {
|
|
@@ -9273,7 +9389,7 @@ init_esbuild_shims();
|
|
|
9273
9389
|
import * as fs9 from "node:fs";
|
|
9274
9390
|
import * as path11 from "path";
|
|
9275
9391
|
import { pathToFileURL } from "url";
|
|
9276
|
-
var
|
|
9392
|
+
var debugLogger18 = createDebugLogger("LSP");
|
|
9277
9393
|
var MAX_TCP_PORT = 65535;
|
|
9278
9394
|
var LspConfigLoader = class {
|
|
9279
9395
|
constructor(workspaceRoot) {
|
|
@@ -9298,7 +9414,7 @@ var LspConfigLoader = class {
|
|
|
9298
9414
|
forceTrustRequired: true
|
|
9299
9415
|
});
|
|
9300
9416
|
} catch (error) {
|
|
9301
|
-
|
|
9417
|
+
debugLogger18.warn("Failed to load user .lsp.json config:", error);
|
|
9302
9418
|
return [];
|
|
9303
9419
|
}
|
|
9304
9420
|
}
|
|
@@ -9335,7 +9451,7 @@ var LspConfigLoader = class {
|
|
|
9335
9451
|
lspServers
|
|
9336
9452
|
);
|
|
9337
9453
|
if (!fs9.existsSync(configPath)) {
|
|
9338
|
-
|
|
9454
|
+
debugLogger18.warn(
|
|
9339
9455
|
`LSP config not found for ${originBase}: ${configPath}`
|
|
9340
9456
|
);
|
|
9341
9457
|
continue;
|
|
@@ -9351,7 +9467,7 @@ var LspConfigLoader = class {
|
|
|
9351
9467
|
)
|
|
9352
9468
|
);
|
|
9353
9469
|
} catch (error) {
|
|
9354
|
-
|
|
9470
|
+
debugLogger18.warn(
|
|
9355
9471
|
`Failed to load extension LSP config from ${configPath}:`,
|
|
9356
9472
|
error
|
|
9357
9473
|
);
|
|
@@ -9365,7 +9481,7 @@ var LspConfigLoader = class {
|
|
|
9365
9481
|
...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
|
|
9366
9482
|
);
|
|
9367
9483
|
} else {
|
|
9368
|
-
|
|
9484
|
+
debugLogger18.warn(
|
|
9369
9485
|
`LSP config for ${originBase} must be an object or a JSON file path.`
|
|
9370
9486
|
);
|
|
9371
9487
|
}
|
|
@@ -9503,13 +9619,13 @@ var LspConfigLoader = class {
|
|
|
9503
9619
|
const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
|
|
9504
9620
|
const socket = this.normalizeSocketOptions(spec);
|
|
9505
9621
|
if (transport === "stdio" && !command) {
|
|
9506
|
-
|
|
9622
|
+
debugLogger18.warn(
|
|
9507
9623
|
`LSP config error in ${origin}: ${name} missing command`
|
|
9508
9624
|
);
|
|
9509
9625
|
return null;
|
|
9510
9626
|
}
|
|
9511
9627
|
if (transport !== "stdio" && !socket) {
|
|
9512
|
-
|
|
9628
|
+
debugLogger18.warn(
|
|
9513
9629
|
`LSP config error in ${origin}: ${name} missing socket info`
|
|
9514
9630
|
);
|
|
9515
9631
|
return null;
|
|
@@ -9651,7 +9767,7 @@ var LspConfigLoader = class {
|
|
|
9651
9767
|
if (resolved === root || resolved.startsWith(root + path11.sep)) {
|
|
9652
9768
|
return resolved;
|
|
9653
9769
|
}
|
|
9654
|
-
|
|
9770
|
+
debugLogger18.warn(
|
|
9655
9771
|
`LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
|
|
9656
9772
|
);
|
|
9657
9773
|
return this.workspaceRoot;
|
|
@@ -9663,7 +9779,7 @@ init_esbuild_shims();
|
|
|
9663
9779
|
import * as cp from "node:child_process";
|
|
9664
9780
|
import * as net2 from "node:net";
|
|
9665
9781
|
import { StringDecoder } from "node:string_decoder";
|
|
9666
|
-
var
|
|
9782
|
+
var debugLogger19 = createDebugLogger("LSP");
|
|
9667
9783
|
var MAX_STDERR_TAIL_BYTES = 8192;
|
|
9668
9784
|
function trimTail(value, maxBytes) {
|
|
9669
9785
|
const buffer = Buffer.from(value, "utf8");
|
|
@@ -9728,7 +9844,7 @@ var JsonRpcConnection = class {
|
|
|
9728
9844
|
try {
|
|
9729
9845
|
this.disposer?.();
|
|
9730
9846
|
} catch (error) {
|
|
9731
|
-
|
|
9847
|
+
debugLogger19.warn("LSP disposer failed:", error);
|
|
9732
9848
|
}
|
|
9733
9849
|
}
|
|
9734
9850
|
sendRequest(method, params) {
|
|
@@ -9855,7 +9971,7 @@ var JsonRpcConnection = class {
|
|
|
9855
9971
|
try {
|
|
9856
9972
|
this.writer(header + json);
|
|
9857
9973
|
} catch (error) {
|
|
9858
|
-
|
|
9974
|
+
debugLogger19.warn("LSP write failed:", error);
|
|
9859
9975
|
this.end();
|
|
9860
9976
|
}
|
|
9861
9977
|
}
|
|
@@ -9914,14 +10030,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
9914
10030
|
);
|
|
9915
10031
|
});
|
|
9916
10032
|
processInstance.stderr?.on("error", (err) => {
|
|
9917
|
-
|
|
10033
|
+
debugLogger19.warn(`LSP stderr stream error for ${command}:`, err);
|
|
9918
10034
|
});
|
|
9919
10035
|
const connection = new JsonRpcConnection(
|
|
9920
10036
|
(payload) => processInstance.stdin?.write(payload),
|
|
9921
10037
|
() => processInstance.stdin?.end()
|
|
9922
10038
|
);
|
|
9923
10039
|
processInstance.stdin.on("error", (err) => {
|
|
9924
|
-
|
|
10040
|
+
debugLogger19.warn(`LSP stdin stream error for ${command}:`, err);
|
|
9925
10041
|
connection.end();
|
|
9926
10042
|
});
|
|
9927
10043
|
connection.listen(processInstance.stdout);
|
|
@@ -10004,7 +10120,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
10004
10120
|
try {
|
|
10005
10121
|
await lspConnection.connection.shutdown();
|
|
10006
10122
|
} catch (e) {
|
|
10007
|
-
|
|
10123
|
+
debugLogger19.warn("LSP shutdown failed:", e);
|
|
10008
10124
|
} finally {
|
|
10009
10125
|
lspConnection.connection.end();
|
|
10010
10126
|
}
|
|
@@ -10682,7 +10798,7 @@ import { spawn as spawn2 } from "node:child_process";
|
|
|
10682
10798
|
import * as fs10 from "node:fs";
|
|
10683
10799
|
import * as path12 from "path";
|
|
10684
10800
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
10685
|
-
var
|
|
10801
|
+
var debugLogger20 = createDebugLogger("LSP");
|
|
10686
10802
|
var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
10687
10803
|
"DYLD_INSERT_LIBRARIES",
|
|
10688
10804
|
"DYLD_LIBRARY_PATH",
|
|
@@ -10719,7 +10835,7 @@ var LspServerManager = class {
|
|
|
10719
10835
|
});
|
|
10720
10836
|
this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
|
|
10721
10837
|
}
|
|
10722
|
-
|
|
10838
|
+
debugLogger20.info(
|
|
10723
10839
|
`Prepared ${configs.length} LSP server config(s): ${formatServerNames(
|
|
10724
10840
|
configs.map((config) => config.name)
|
|
10725
10841
|
)}`
|
|
@@ -10728,7 +10844,7 @@ var LspServerManager = class {
|
|
|
10728
10844
|
/** Drops all prepared handles without attempting process shutdown. */
|
|
10729
10845
|
clearServerHandles() {
|
|
10730
10846
|
if (this.serverHandles.size > 0) {
|
|
10731
|
-
|
|
10847
|
+
debugLogger20.info(
|
|
10732
10848
|
`Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
|
|
10733
10849
|
Array.from(this.serverHandles.keys())
|
|
10734
10850
|
)}`
|
|
@@ -10789,7 +10905,7 @@ var LspServerManager = class {
|
|
|
10789
10905
|
* before their handles are deleted or replaced.
|
|
10790
10906
|
*/
|
|
10791
10907
|
async doReconcileServerConfigs(configs) {
|
|
10792
|
-
|
|
10908
|
+
debugLogger20.info(
|
|
10793
10909
|
`Reconciling LSP server configs: desired=${formatServerNames(
|
|
10794
10910
|
configs.map((config) => config.name)
|
|
10795
10911
|
)}`
|
|
@@ -10861,7 +10977,7 @@ var LspServerManager = class {
|
|
|
10861
10977
|
result.added.push(name);
|
|
10862
10978
|
}
|
|
10863
10979
|
}
|
|
10864
|
-
|
|
10980
|
+
debugLogger20.info(
|
|
10865
10981
|
`LSP reconcile result: added=${formatServerNames(
|
|
10866
10982
|
result.added
|
|
10867
10983
|
)}, removed=${formatServerNames(
|
|
@@ -10915,7 +11031,7 @@ var LspServerManager = class {
|
|
|
10915
11031
|
handle.warmedUp = true;
|
|
10916
11032
|
return uri;
|
|
10917
11033
|
} catch (error) {
|
|
10918
|
-
|
|
11034
|
+
debugLogger20.warn("TypeScript server warm-up failed:", error);
|
|
10919
11035
|
return void 0;
|
|
10920
11036
|
}
|
|
10921
11037
|
}
|
|
@@ -10962,7 +11078,7 @@ var LspServerManager = class {
|
|
|
10962
11078
|
async doStartServer(name, handle) {
|
|
10963
11079
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
10964
11080
|
if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
|
|
10965
|
-
|
|
11081
|
+
debugLogger20.warn(
|
|
10966
11082
|
`LSP server ${name} requires trusted workspace, skipping startup`
|
|
10967
11083
|
);
|
|
10968
11084
|
handle.status = "FAILED";
|
|
@@ -10975,7 +11091,7 @@ var LspServerManager = class {
|
|
|
10975
11091
|
workspaceTrusted
|
|
10976
11092
|
);
|
|
10977
11093
|
if (!trusted) {
|
|
10978
|
-
|
|
11094
|
+
debugLogger20.warn(
|
|
10979
11095
|
`Workspace trust check failed, not starting LSP server ${name}`
|
|
10980
11096
|
);
|
|
10981
11097
|
handle.status = "FAILED";
|
|
@@ -10985,7 +11101,7 @@ var LspServerManager = class {
|
|
|
10985
11101
|
if (handle.config.command) {
|
|
10986
11102
|
const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
|
|
10987
11103
|
if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
|
|
10988
|
-
|
|
11104
|
+
debugLogger20.warn(
|
|
10989
11105
|
`LSP server ${name} command path is unsafe: ${handle.config.command}`
|
|
10990
11106
|
);
|
|
10991
11107
|
handle.status = "FAILED";
|
|
@@ -10997,7 +11113,7 @@ var LspServerManager = class {
|
|
|
10997
11113
|
handle.config.env,
|
|
10998
11114
|
commandCwd
|
|
10999
11115
|
)) {
|
|
11000
|
-
|
|
11116
|
+
debugLogger20.warn(
|
|
11001
11117
|
`LSP server ${name} command not found: ${handle.config.command}`
|
|
11002
11118
|
);
|
|
11003
11119
|
handle.status = "FAILED";
|
|
@@ -11012,7 +11128,7 @@ var LspServerManager = class {
|
|
|
11012
11128
|
handle.processDiagnostics = void 0;
|
|
11013
11129
|
handle.warmedUp = false;
|
|
11014
11130
|
handle.status = "IN_PROGRESS";
|
|
11015
|
-
|
|
11131
|
+
debugLogger20.info(
|
|
11016
11132
|
`Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
|
|
11017
11133
|
handle.config.languages
|
|
11018
11134
|
)}`
|
|
@@ -11037,7 +11153,7 @@ var LspServerManager = class {
|
|
|
11037
11153
|
}
|
|
11038
11154
|
handle.status = "READY";
|
|
11039
11155
|
this.attachRestartHandler(name, handle);
|
|
11040
|
-
|
|
11156
|
+
debugLogger20.info(`LSP server ${name} started successfully`);
|
|
11041
11157
|
} catch (error) {
|
|
11042
11158
|
handle.status = "FAILED";
|
|
11043
11159
|
handle.error = error;
|
|
@@ -11051,21 +11167,21 @@ var LspServerManager = class {
|
|
|
11051
11167
|
}
|
|
11052
11168
|
await this.releaseServerResources(name, handle, false);
|
|
11053
11169
|
if (handle.processDiagnostics) {
|
|
11054
|
-
|
|
11170
|
+
debugLogger20.error(
|
|
11055
11171
|
`LSP server ${name} process diagnostics:`,
|
|
11056
11172
|
handle.processDiagnostics
|
|
11057
11173
|
);
|
|
11058
11174
|
}
|
|
11059
11175
|
handle.connection = void 0;
|
|
11060
11176
|
handle.process = void 0;
|
|
11061
|
-
|
|
11177
|
+
debugLogger20.error(`LSP server ${name} failed to start:`, error);
|
|
11062
11178
|
}
|
|
11063
11179
|
}
|
|
11064
11180
|
/**
|
|
11065
11181
|
* Stops a server and resets runtime-only handle state.
|
|
11066
11182
|
*/
|
|
11067
11183
|
async stopServer(name, handle) {
|
|
11068
|
-
|
|
11184
|
+
debugLogger20.info(`Stopping LSP server ${name}`);
|
|
11069
11185
|
handle.stopRequested = true;
|
|
11070
11186
|
handle.startupAbortController?.abort();
|
|
11071
11187
|
if (handle.startingPromise) {
|
|
@@ -11078,7 +11194,7 @@ var LspServerManager = class {
|
|
|
11078
11194
|
handle.status = "NOT_STARTED";
|
|
11079
11195
|
handle.warmedUp = false;
|
|
11080
11196
|
handle.restartAttempts = 0;
|
|
11081
|
-
|
|
11197
|
+
debugLogger20.info(`LSP server ${name} stopped`);
|
|
11082
11198
|
}
|
|
11083
11199
|
async abortAndWaitForStartup(handle) {
|
|
11084
11200
|
if (!handle.startingPromise) {
|
|
@@ -11102,14 +11218,14 @@ var LspServerManager = class {
|
|
|
11102
11218
|
handle.connection.end();
|
|
11103
11219
|
}
|
|
11104
11220
|
} catch (error) {
|
|
11105
|
-
|
|
11221
|
+
debugLogger20.error(`Error closing LSP server ${name}:`, error);
|
|
11106
11222
|
}
|
|
11107
11223
|
}
|
|
11108
11224
|
if (handle.process && handle.process.exitCode === null) {
|
|
11109
11225
|
try {
|
|
11110
11226
|
handle.process.kill();
|
|
11111
11227
|
} catch (error) {
|
|
11112
|
-
|
|
11228
|
+
debugLogger20.warn(`Error killing LSP server ${name} process:`, error);
|
|
11113
11229
|
}
|
|
11114
11230
|
}
|
|
11115
11231
|
}
|
|
@@ -11155,7 +11271,7 @@ var LspServerManager = class {
|
|
|
11155
11271
|
}
|
|
11156
11272
|
handle.processExitedUnexpectedly = true;
|
|
11157
11273
|
if (!handle.config.restartOnCrash) {
|
|
11158
|
-
|
|
11274
|
+
debugLogger20.warn(
|
|
11159
11275
|
`LSP server ${name} exited but restartOnCrash is disabled`
|
|
11160
11276
|
);
|
|
11161
11277
|
handle.status = "FAILED";
|
|
@@ -11164,7 +11280,7 @@ var LspServerManager = class {
|
|
|
11164
11280
|
}
|
|
11165
11281
|
const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
|
|
11166
11282
|
if (maxRestarts <= 0) {
|
|
11167
|
-
|
|
11283
|
+
debugLogger20.warn(
|
|
11168
11284
|
`LSP server ${name} exited but maxRestarts is ${maxRestarts}`
|
|
11169
11285
|
);
|
|
11170
11286
|
handle.status = "FAILED";
|
|
@@ -11173,7 +11289,7 @@ var LspServerManager = class {
|
|
|
11173
11289
|
}
|
|
11174
11290
|
const attempts = handle.restartAttempts ?? 0;
|
|
11175
11291
|
if (attempts >= maxRestarts) {
|
|
11176
|
-
|
|
11292
|
+
debugLogger20.warn(
|
|
11177
11293
|
`LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
|
|
11178
11294
|
);
|
|
11179
11295
|
handle.status = "FAILED";
|
|
@@ -11181,7 +11297,7 @@ var LspServerManager = class {
|
|
|
11181
11297
|
return;
|
|
11182
11298
|
}
|
|
11183
11299
|
handle.restartAttempts = attempts + 1;
|
|
11184
|
-
|
|
11300
|
+
debugLogger20.warn(
|
|
11185
11301
|
`LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
|
|
11186
11302
|
);
|
|
11187
11303
|
this.enqueueCrashRestart(name, handle);
|
|
@@ -11229,7 +11345,7 @@ var LspServerManager = class {
|
|
|
11229
11345
|
const next = this.reconcileQueue.then(restart, restart);
|
|
11230
11346
|
this.reconcileQueue = next.catch(() => void 0);
|
|
11231
11347
|
void next.catch((error) => {
|
|
11232
|
-
|
|
11348
|
+
debugLogger20.warn(`LSP server ${name} crash restart failed:`, error);
|
|
11233
11349
|
});
|
|
11234
11350
|
}
|
|
11235
11351
|
resetHandle(handle) {
|
|
@@ -11237,14 +11353,14 @@ var LspServerManager = class {
|
|
|
11237
11353
|
try {
|
|
11238
11354
|
handle.connection.end();
|
|
11239
11355
|
} catch (error) {
|
|
11240
|
-
|
|
11356
|
+
debugLogger20.warn("Error closing LSP connection during reset:", error);
|
|
11241
11357
|
}
|
|
11242
11358
|
}
|
|
11243
11359
|
if (handle.process && handle.process.exitCode === null) {
|
|
11244
11360
|
try {
|
|
11245
11361
|
handle.process.kill();
|
|
11246
11362
|
} catch (error) {
|
|
11247
|
-
|
|
11363
|
+
debugLogger20.warn("Error killing LSP process during reset:", error);
|
|
11248
11364
|
}
|
|
11249
11365
|
}
|
|
11250
11366
|
handle.connection = void 0;
|
|
@@ -11263,7 +11379,7 @@ var LspServerManager = class {
|
|
|
11263
11379
|
const filteredEnv = {};
|
|
11264
11380
|
for (const [key, value] of Object.entries(env2)) {
|
|
11265
11381
|
if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
|
|
11266
|
-
|
|
11382
|
+
debugLogger20.warn(
|
|
11267
11383
|
`Ignoring security-sensitive LSP server env override: ${key}`
|
|
11268
11384
|
);
|
|
11269
11385
|
continue;
|
|
@@ -11289,7 +11405,7 @@ var LspServerManager = class {
|
|
|
11289
11405
|
for (const [key, value] of Object.entries(env2)) {
|
|
11290
11406
|
const normalizedKey = key.toUpperCase();
|
|
11291
11407
|
if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
|
|
11292
|
-
|
|
11408
|
+
debugLogger20.warn(
|
|
11293
11409
|
`Ignoring security-sensitive LSP command probe env override: ${key}`
|
|
11294
11410
|
);
|
|
11295
11411
|
continue;
|
|
@@ -11538,7 +11654,7 @@ var LspServerManager = class {
|
|
|
11538
11654
|
try {
|
|
11539
11655
|
process3.kill();
|
|
11540
11656
|
} catch (error) {
|
|
11541
|
-
|
|
11657
|
+
debugLogger20.warn(
|
|
11542
11658
|
"Error killing aborted LSP socket process:",
|
|
11543
11659
|
error
|
|
11544
11660
|
);
|
|
@@ -11711,12 +11827,12 @@ var LspServerManager = class {
|
|
|
11711
11827
|
return true;
|
|
11712
11828
|
}
|
|
11713
11829
|
if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
|
|
11714
|
-
|
|
11830
|
+
debugLogger20.warn(
|
|
11715
11831
|
`Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
|
|
11716
11832
|
);
|
|
11717
11833
|
return false;
|
|
11718
11834
|
}
|
|
11719
|
-
|
|
11835
|
+
debugLogger20.info(
|
|
11720
11836
|
`Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
|
|
11721
11837
|
);
|
|
11722
11838
|
return true;
|
|
@@ -11961,7 +12077,7 @@ import * as path13 from "path";
|
|
|
11961
12077
|
import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
|
|
11962
12078
|
import * as fs11 from "node:fs";
|
|
11963
12079
|
import { promises as fsp } from "node:fs";
|
|
11964
|
-
var
|
|
12080
|
+
var debugLogger21 = createDebugLogger("LSP");
|
|
11965
12081
|
var LANGUAGE_ID_TO_EXTENSIONS = {
|
|
11966
12082
|
typescript: ["ts", "tsx"],
|
|
11967
12083
|
typescriptreact: ["tsx"],
|
|
@@ -12019,7 +12135,7 @@ var NativeLspService = class {
|
|
|
12019
12135
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12020
12136
|
this.serverManager.clearServerHandles();
|
|
12021
12137
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
12022
|
-
|
|
12138
|
+
debugLogger21.warn(
|
|
12023
12139
|
"Workspace is not trusted, skipping LSP server discovery"
|
|
12024
12140
|
);
|
|
12025
12141
|
return;
|
|
@@ -12037,7 +12153,7 @@ var NativeLspService = class {
|
|
|
12037
12153
|
serverConfigs,
|
|
12038
12154
|
workspaceTrusted
|
|
12039
12155
|
);
|
|
12040
|
-
|
|
12156
|
+
debugLogger21.info(
|
|
12041
12157
|
`Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
|
|
12042
12158
|
admitted.map((config) => config.name)
|
|
12043
12159
|
)}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
|
|
@@ -12072,7 +12188,7 @@ var NativeLspService = class {
|
|
|
12072
12188
|
async doReinitialize(signal) {
|
|
12073
12189
|
this.throwIfReinitializeAborted(signal);
|
|
12074
12190
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12075
|
-
|
|
12191
|
+
debugLogger21.info(
|
|
12076
12192
|
`Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
|
|
12077
12193
|
);
|
|
12078
12194
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
@@ -12091,7 +12207,7 @@ var NativeLspService = class {
|
|
|
12091
12207
|
},
|
|
12092
12208
|
skipped: []
|
|
12093
12209
|
};
|
|
12094
|
-
|
|
12210
|
+
debugLogger21.info(
|
|
12095
12211
|
`LSP reinitialize result: added=<none>, removed=${formatServerNames2(
|
|
12096
12212
|
removed
|
|
12097
12213
|
)}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
|
|
@@ -12133,7 +12249,7 @@ var NativeLspService = class {
|
|
|
12133
12249
|
signal
|
|
12134
12250
|
);
|
|
12135
12251
|
this.throwIfReinitializeAborted(signal);
|
|
12136
|
-
|
|
12252
|
+
debugLogger21.info(
|
|
12137
12253
|
`LSP reinitialize result: added=${formatServerNames2(
|
|
12138
12254
|
reconcile.added
|
|
12139
12255
|
)}, removed=${formatServerNames2(
|
|
@@ -12153,7 +12269,7 @@ var NativeLspService = class {
|
|
|
12153
12269
|
const skipped = [];
|
|
12154
12270
|
for (const config of configs) {
|
|
12155
12271
|
if (!workspaceTrusted && config.trustRequired) {
|
|
12156
|
-
|
|
12272
|
+
debugLogger21.warn(
|
|
12157
12273
|
`LSP server ${config.name} requires trusted workspace, skipping`
|
|
12158
12274
|
);
|
|
12159
12275
|
skipped.push({ name: config.name, reason: "server_trust_required" });
|
|
@@ -12198,7 +12314,7 @@ var NativeLspService = class {
|
|
|
12198
12314
|
try {
|
|
12199
12315
|
openedAny = this.sendDocumentOpen(name, handle, uri) || openedAny;
|
|
12200
12316
|
} catch (error) {
|
|
12201
|
-
|
|
12317
|
+
debugLogger21.warn(
|
|
12202
12318
|
`Failed to replay document ${uri} for LSP server ${name}:`,
|
|
12203
12319
|
error
|
|
12204
12320
|
);
|
|
@@ -12327,14 +12443,14 @@ var NativeLspService = class {
|
|
|
12327
12443
|
try {
|
|
12328
12444
|
filePath = fileURLToPath(uri);
|
|
12329
12445
|
} catch (error) {
|
|
12330
|
-
|
|
12446
|
+
debugLogger21.warn(`Failed to resolve file path for ${uri}:`, error);
|
|
12331
12447
|
return false;
|
|
12332
12448
|
}
|
|
12333
12449
|
let text;
|
|
12334
12450
|
try {
|
|
12335
12451
|
text = fs11.readFileSync(filePath, "utf-8");
|
|
12336
12452
|
} catch (error) {
|
|
12337
|
-
|
|
12453
|
+
debugLogger21.warn(
|
|
12338
12454
|
`Failed to read file for LSP didOpen: ${filePath}`,
|
|
12339
12455
|
error
|
|
12340
12456
|
);
|
|
@@ -12562,7 +12678,7 @@ var NativeLspService = class {
|
|
|
12562
12678
|
}
|
|
12563
12679
|
}
|
|
12564
12680
|
} catch (error) {
|
|
12565
|
-
|
|
12681
|
+
debugLogger21.warn(
|
|
12566
12682
|
`LSP workspace/symbol failed for ${serverName}:`,
|
|
12567
12683
|
error
|
|
12568
12684
|
);
|
|
@@ -12613,7 +12729,7 @@ var NativeLspService = class {
|
|
|
12613
12729
|
return definitions.slice(0, limit);
|
|
12614
12730
|
}
|
|
12615
12731
|
} catch (error) {
|
|
12616
|
-
|
|
12732
|
+
debugLogger21.warn(
|
|
12617
12733
|
`LSP textDocument/definition failed for ${name}:`,
|
|
12618
12734
|
error
|
|
12619
12735
|
);
|
|
@@ -12667,7 +12783,7 @@ var NativeLspService = class {
|
|
|
12667
12783
|
return refs.slice(0, limit);
|
|
12668
12784
|
}
|
|
12669
12785
|
} catch (error) {
|
|
12670
|
-
|
|
12786
|
+
debugLogger21.warn(
|
|
12671
12787
|
`LSP textDocument/references failed for ${name}:`,
|
|
12672
12788
|
error
|
|
12673
12789
|
);
|
|
@@ -12708,7 +12824,7 @@ var NativeLspService = class {
|
|
|
12708
12824
|
return normalized2;
|
|
12709
12825
|
}
|
|
12710
12826
|
} catch (error) {
|
|
12711
|
-
|
|
12827
|
+
debugLogger21.warn(`LSP textDocument/hover failed for ${name}:`, error);
|
|
12712
12828
|
}
|
|
12713
12829
|
}
|
|
12714
12830
|
return null;
|
|
@@ -12768,7 +12884,7 @@ var NativeLspService = class {
|
|
|
12768
12884
|
return symbols.slice(0, limit);
|
|
12769
12885
|
}
|
|
12770
12886
|
} catch (error) {
|
|
12771
|
-
|
|
12887
|
+
debugLogger21.warn(
|
|
12772
12888
|
`LSP textDocument/documentSymbol failed for ${name}:`,
|
|
12773
12889
|
error
|
|
12774
12890
|
);
|
|
@@ -12822,7 +12938,7 @@ var NativeLspService = class {
|
|
|
12822
12938
|
return implementations.slice(0, limit);
|
|
12823
12939
|
}
|
|
12824
12940
|
} catch (error) {
|
|
12825
|
-
|
|
12941
|
+
debugLogger21.warn(
|
|
12826
12942
|
`LSP textDocument/implementation failed for ${name}:`,
|
|
12827
12943
|
error
|
|
12828
12944
|
);
|
|
@@ -12876,7 +12992,7 @@ var NativeLspService = class {
|
|
|
12876
12992
|
return items.slice(0, limit);
|
|
12877
12993
|
}
|
|
12878
12994
|
} catch (error) {
|
|
12879
|
-
|
|
12995
|
+
debugLogger21.warn(
|
|
12880
12996
|
`LSP textDocument/prepareCallHierarchy failed for ${name}:`,
|
|
12881
12997
|
error
|
|
12882
12998
|
);
|
|
@@ -12916,7 +13032,7 @@ var NativeLspService = class {
|
|
|
12916
13032
|
return calls.slice(0, limit);
|
|
12917
13033
|
}
|
|
12918
13034
|
} catch (error) {
|
|
12919
|
-
|
|
13035
|
+
debugLogger21.warn(
|
|
12920
13036
|
`LSP callHierarchy/incomingCalls failed for ${name}:`,
|
|
12921
13037
|
error
|
|
12922
13038
|
);
|
|
@@ -12956,7 +13072,7 @@ var NativeLspService = class {
|
|
|
12956
13072
|
return calls.slice(0, limit);
|
|
12957
13073
|
}
|
|
12958
13074
|
} catch (error) {
|
|
12959
|
-
|
|
13075
|
+
debugLogger21.warn(
|
|
12960
13076
|
`LSP callHierarchy/outgoingCalls failed for ${name}:`,
|
|
12961
13077
|
error
|
|
12962
13078
|
);
|
|
@@ -12996,7 +13112,7 @@ var NativeLspService = class {
|
|
|
12996
13112
|
}
|
|
12997
13113
|
}
|
|
12998
13114
|
} catch (error) {
|
|
12999
|
-
|
|
13115
|
+
debugLogger21.warn(
|
|
13000
13116
|
`LSP textDocument/diagnostic failed for ${name}:`,
|
|
13001
13117
|
error
|
|
13002
13118
|
);
|
|
@@ -13038,7 +13154,7 @@ var NativeLspService = class {
|
|
|
13038
13154
|
}
|
|
13039
13155
|
}
|
|
13040
13156
|
} catch (error) {
|
|
13041
|
-
|
|
13157
|
+
debugLogger21.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
|
|
13042
13158
|
}
|
|
13043
13159
|
if (results.length >= limit) {
|
|
13044
13160
|
break;
|
|
@@ -13088,7 +13204,7 @@ var NativeLspService = class {
|
|
|
13088
13204
|
return actions.slice(0, limit);
|
|
13089
13205
|
}
|
|
13090
13206
|
} catch (error) {
|
|
13091
|
-
|
|
13207
|
+
debugLogger21.warn(
|
|
13092
13208
|
`LSP textDocument/codeAction failed for ${name}:`,
|
|
13093
13209
|
error
|
|
13094
13210
|
);
|
|
@@ -13116,7 +13232,7 @@ var NativeLspService = class {
|
|
|
13116
13232
|
}
|
|
13117
13233
|
return true;
|
|
13118
13234
|
} catch (error) {
|
|
13119
|
-
|
|
13235
|
+
debugLogger21.error("Failed to apply workspace edit:", error);
|
|
13120
13236
|
return false;
|
|
13121
13237
|
}
|
|
13122
13238
|
}
|
|
@@ -13379,7 +13495,7 @@ __name(createFollowupController, "createFollowupController");
|
|
|
13379
13495
|
|
|
13380
13496
|
// packages/core/src/followup/suggestionGenerator.ts
|
|
13381
13497
|
init_esbuild_shims();
|
|
13382
|
-
var
|
|
13498
|
+
var debugLogger22 = createDebugLogger("FOLLOWUP");
|
|
13383
13499
|
var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
|
|
13384
13500
|
|
|
13385
13501
|
FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
|
|
@@ -13441,7 +13557,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13441
13557
|
const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
|
|
13442
13558
|
const modelOverride = options?.model;
|
|
13443
13559
|
const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
|
|
13444
|
-
|
|
13560
|
+
debugLogger22.debug(
|
|
13445
13561
|
`Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
|
|
13446
13562
|
);
|
|
13447
13563
|
const raw = cacheSafe ? await generateViaForkedQuery(
|
|
@@ -13457,23 +13573,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13457
13573
|
);
|
|
13458
13574
|
const suggestion = typeof raw === "string" ? raw.trim() : null;
|
|
13459
13575
|
if (!suggestion) {
|
|
13460
|
-
|
|
13576
|
+
debugLogger22.debug("Suggestion generation returned empty result");
|
|
13461
13577
|
return { suggestion: null, filterReason: "empty" };
|
|
13462
13578
|
}
|
|
13463
13579
|
const filterReason = getFilterReason(suggestion);
|
|
13464
13580
|
if (filterReason) {
|
|
13465
|
-
|
|
13581
|
+
debugLogger22.debug(
|
|
13466
13582
|
`Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
|
|
13467
13583
|
);
|
|
13468
13584
|
return { suggestion: null, filterReason };
|
|
13469
13585
|
}
|
|
13470
|
-
|
|
13586
|
+
debugLogger22.debug(`Suggestion accepted: "${suggestion}"`);
|
|
13471
13587
|
return { suggestion };
|
|
13472
13588
|
} catch (error) {
|
|
13473
13589
|
if (abortSignal.aborted) {
|
|
13474
13590
|
return { suggestion: null };
|
|
13475
13591
|
}
|
|
13476
|
-
|
|
13592
|
+
debugLogger22.warn("Suggestion generation failed:", error);
|
|
13477
13593
|
return { suggestion: null, filterReason: "error" };
|
|
13478
13594
|
}
|
|
13479
13595
|
}
|
|
@@ -13812,7 +13928,7 @@ __name(rewritePathArgs, "rewritePathArgs");
|
|
|
13812
13928
|
|
|
13813
13929
|
// packages/core/src/followup/speculation.ts
|
|
13814
13930
|
init_esbuild_shims();
|
|
13815
|
-
var
|
|
13931
|
+
var debugLogger23 = createDebugLogger("SPECULATION");
|
|
13816
13932
|
var MAX_SPECULATION_TURNS = 20;
|
|
13817
13933
|
var MAX_SPECULATION_MESSAGES = 100;
|
|
13818
13934
|
function observeSpeculationProducer(params) {
|
|
@@ -14060,7 +14176,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
|
|
|
14060
14176
|
break;
|
|
14061
14177
|
}
|
|
14062
14178
|
if (!guardDecision.allowed) {
|
|
14063
|
-
|
|
14179
|
+
debugLogger23.debug(
|
|
14064
14180
|
`Speculative guard denial: ${guardDecision.reason}`
|
|
14065
14181
|
);
|
|
14066
14182
|
hitBoundary = true;
|
|
@@ -14307,7 +14423,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
|
|
|
14307
14423
|
import fs12 from "node:fs";
|
|
14308
14424
|
import path14 from "node:path";
|
|
14309
14425
|
var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
|
|
14310
|
-
var
|
|
14426
|
+
var debugLogger24 = createDebugLogger("FILE_SEARCH_IGNORE");
|
|
14311
14427
|
function loadIgnoreRules(options) {
|
|
14312
14428
|
const ignorer = new Ignore();
|
|
14313
14429
|
if (options.useGitignore) {
|
|
@@ -14346,7 +14462,7 @@ function readIgnoreFile(filePath) {
|
|
|
14346
14462
|
} catch (_error) {
|
|
14347
14463
|
const error = _error;
|
|
14348
14464
|
if (error.code !== "ENOENT") {
|
|
14349
|
-
|
|
14465
|
+
debugLogger24.warn(`Failed to read ${filePath}: ${error.message}`);
|
|
14350
14466
|
}
|
|
14351
14467
|
return void 0;
|
|
14352
14468
|
}
|
|
@@ -17897,6 +18013,8 @@ export {
|
|
|
17897
18013
|
BTW_MAX_INPUT_LENGTH,
|
|
17898
18014
|
buildBtwPrompt,
|
|
17899
18015
|
buildBtwCacheSafeParams,
|
|
18016
|
+
getStopHookContinuationReason,
|
|
18017
|
+
abortGoalForStopHookCap,
|
|
17900
18018
|
projectGoalStateToLegacy,
|
|
17901
18019
|
isGoalCheckpointBookkeepingRecord,
|
|
17902
18020
|
renderGoalContinuationTurn,
|