@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260911.aaa6a32aae
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/goal-draft/SKILL.md +10 -10
- package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
- package/bundled/qc-helper/docs/configuration/settings.md +8 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
- package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
- package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
- package/bundled/qc-helper/docs/features/commands.md +62 -9
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +338 -0
- package/bundled/qc-helper/docs/features/goals.md +22 -18
- package/bundled/qc-helper/docs/features/hooks.md +28 -22
- package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
- package/bundled/qc-helper/docs/qwen-serve.md +23 -6
- package/bundled/review/SKILL.md +93 -80
- package/bundled/review/references/persistence.md +2 -0
- package/bundled/review/references/posting.md +31 -14
- package/bundled/workflow-authoring/SKILL.md +410 -0
- package/bundled/workflow-creator/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-7C5XTBZI.js} +64 -53
- package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IGTT3ZRX.js} +88 -76
- package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
- package/chunks/acp-subagent-executor-IUHVNVVO.js +140 -0
- package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-W43WM2K4.js} +957 -243
- package/chunks/{agent-T5LEFJIU.js → agent-2XMXC5JW.js} +48 -38
- package/chunks/{agent-headless-VZKSRH36.js → agent-headless-2HHBVCP6.js} +48 -38
- package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-7RI3MPIW.js} +69 -36
- package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-HHVHCPNG.js} +59 -109
- package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-RFMXTD3B.js} +2 -2
- package/chunks/{bridge-AOX5IY44.js → bridge-ID6N4IH5.js} +69 -58
- package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
- package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-ASCXI7FR.js} +6 -6
- package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-TPJFQAZY.js} +76 -65
- package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-JR6JOELM.js} +9 -9
- package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-AVKJEZFL.js} +19 -10
- package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-OOYY7BAQ.js} +7 -7
- package/chunks/{chunk-4WMGYG3F.js → chunk-22FWWGSM.js} +2 -2
- package/chunks/{chunk-LWX4WDFF.js → chunk-2S5RIGZJ.js} +43 -15
- package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
- package/chunks/{chunk-HJ5UJQQL.js → chunk-2UKKQGRA.js} +3639 -1804
- package/chunks/{chunk-MWIO7MF6.js → chunk-2WSLXP3W.js} +4 -0
- package/chunks/{chunk-HNLMYDQE.js → chunk-33LYAC4R.js} +10 -6
- package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
- package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
- package/chunks/{chunk-WXFCI3O5.js → chunk-3MAUPOZ4.js} +2 -2
- package/chunks/{chunk-CRZBDVP2.js → chunk-432JQKIO.js} +10 -10
- package/chunks/{chunk-IRGDIDGJ.js → chunk-43RQ552L.js} +364 -84
- package/chunks/{chunk-PFKGV6PO.js → chunk-465USTVK.js} +9 -15
- package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
- package/chunks/{chunk-J3VZF2AL.js → chunk-4O2AXZXU.js} +2 -2
- package/chunks/{chunk-N6S3NUYJ.js → chunk-55VOWZ4C.js} +1 -1
- package/chunks/{chunk-OWCFKIFQ.js → chunk-5CZMWDJI.js} +2 -2
- package/chunks/{chunk-7NDZKE2M.js → chunk-5MUIHID6.js} +5 -5
- package/chunks/{chunk-RM244SCQ.js → chunk-5Z74GE4N.js} +1 -1
- package/chunks/{chunk-G5VOXCRX.js → chunk-6375QMAO.js} +2 -2
- package/chunks/{chunk-3LPJ776W.js → chunk-63GQZKXL.js} +164 -31
- package/chunks/{chunk-O2FEO2CB.js → chunk-6GDELAVL.js} +18 -2
- package/chunks/{chunk-7PD7ZMX5.js → chunk-6HI2I3OM.js} +168 -6
- package/chunks/{chunk-CALNF3Z3.js → chunk-7C57HCOR.js} +1 -1
- package/chunks/{chunk-UYDQYDW2.js → chunk-7IBS746B.js} +1 -1
- package/chunks/{chunk-AUTUFD5X.js → chunk-ABNX6E6K.js} +1 -1
- package/chunks/chunk-ACHCT36C.js +28 -0
- package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
- package/chunks/{chunk-AO2VMS72.js → chunk-AQFRRH73.js} +3 -3
- package/chunks/{chunk-PDN7FJZV.js → chunk-ASWEMQIZ.js} +4 -4
- package/chunks/chunk-AYEJOTIU.js +43 -0
- package/chunks/{chunk-QFJZAY7W.js → chunk-BKFRA4F5.js} +5 -5
- package/chunks/{chunk-KCF2436G.js → chunk-BNLW5N6U.js} +4 -4
- package/chunks/{chunk-GOKAOSCN.js → chunk-BRFOZEPA.js} +2 -2
- package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
- package/chunks/chunk-C5CECJ46.js +340 -0
- package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
- package/chunks/chunk-CAAMI77K.js +937 -0
- package/chunks/{chunk-QTB4VP4K.js → chunk-CBGHRAWM.js} +304 -23
- package/chunks/chunk-CF5KXZZX.js +150 -0
- package/chunks/chunk-CFMZLE3L.js +75 -0
- package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
- package/chunks/{chunk-ERXNTINK.js → chunk-CQZJYGRX.js} +1 -1
- package/chunks/{chunk-WBU2PIZ5.js → chunk-CSDKDHWV.js} +23 -16
- package/chunks/{chunk-2EKVPSIJ.js → chunk-D754KKNZ.js} +9 -2
- package/chunks/{chunk-E6TI726I.js → chunk-DGC7BKEZ.js} +1 -1
- package/chunks/{chunk-7SVM3RP2.js → chunk-DMMOQWRF.js} +4 -6
- package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
- package/chunks/{chunk-2BMXHB6N.js → chunk-DWBNQR53.js} +7 -7
- package/chunks/{chunk-ZN5TKAVR.js → chunk-E5LTUWKZ.js} +3 -3
- package/chunks/chunk-EGW3ZP6Y.js +32 -0
- package/chunks/chunk-ELRMZTPF.js +374 -0
- package/chunks/{chunk-RNAJVXUG.js → chunk-ENAUXRPG.js} +6 -6
- package/chunks/{chunk-WXD7INFV.js → chunk-EO4U2X47.js} +10 -8
- package/chunks/{chunk-WDVV3LRM.js → chunk-EPVEPTI3.js} +45 -152
- package/chunks/chunk-ERU3SDXT.js +27 -0
- package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
- package/chunks/{chunk-GSFV5RQW.js → chunk-EYN3G5XD.js} +328 -4
- package/chunks/{chunk-QB3KS3N3.js → chunk-FGROOEKM.js} +5 -40
- package/chunks/{chunk-TOOOLHVS.js → chunk-FH5AVEWJ.js} +3 -3
- package/chunks/{chunk-DAI65CMX.js → chunk-FJZWRNEW.js} +1 -1
- package/chunks/{chunk-GNY7B3CA.js → chunk-FUQK5ZNL.js} +1 -1
- package/chunks/{chunk-GOEVQADN.js → chunk-GDIPPCW6.js} +330 -175
- package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
- package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
- package/chunks/{chunk-ELD3OBPU.js → chunk-GWOVD63C.js} +3 -3
- package/chunks/{chunk-IWABUX6T.js → chunk-GX5FF2IE.js} +6 -6
- package/chunks/{chunk-22GORRNY.js → chunk-GZMNHAYC.js} +1 -1
- package/chunks/{chunk-YZTGGCEE.js → chunk-H3TFIFX3.js} +1 -1
- package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
- package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
- package/chunks/{chunk-KEPC5BOL.js → chunk-IBRQG2MP.js} +12 -15
- package/chunks/{chunk-OXR34GCD.js → chunk-IILWL3KY.js} +2054 -146
- package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
- package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
- package/chunks/{chunk-CMWU6P4D.js → chunk-IRJRB3OD.js} +1 -1
- package/chunks/{chunk-QHLHE2OT.js → chunk-IUN5ZMFY.js} +1 -1
- package/chunks/{chunk-LYT2OU7D.js → chunk-IXXV6BVB.js} +172 -6
- package/chunks/{chunk-R3JIDRUL.js → chunk-J6H4JP25.js} +4 -4
- package/chunks/{chunk-NB3NDQQK.js → chunk-J6SBP5G2.js} +1 -1
- package/chunks/{chunk-TRQNRP2H.js → chunk-J7LBAKDH.js} +46 -3
- package/chunks/{chunk-67XTVRVB.js → chunk-JJFHISXU.js} +30 -25
- package/chunks/chunk-JL6APGBX.js +43 -0
- package/chunks/{chunk-NX7ZTXFF.js → chunk-JSKEW4E7.js} +2 -1
- package/chunks/{chunk-BK7D2JR6.js → chunk-JVTXAA35.js} +3 -3
- package/chunks/chunk-K2OJUPOE.js +78 -0
- package/chunks/{chunk-G3ZUMSFS.js → chunk-K3U6VB3O.js} +6 -6
- package/chunks/{chunk-4I3WFI3U.js → chunk-K4KWLF7Q.js} +12 -12
- package/chunks/{chunk-WXPPUPHM.js → chunk-KWFFJ6AK.js} +1 -1
- package/chunks/{chunk-46MMBZHI.js → chunk-KZYOFJ6V.js} +4 -4
- package/chunks/{chunk-ULZECEIP.js → chunk-LDQHA6L4.js} +2 -20
- package/chunks/{chunk-7LTCFO6T.js → chunk-LQBAFO5D.js} +6 -5
- package/chunks/{chunk-SOA4HKRJ.js → chunk-LT2XFADM.js} +2 -2
- package/chunks/{chunk-JYGIJA4W.js → chunk-LWWRJRCD.js} +1 -1
- package/chunks/{chunk-YQGW3M6Z.js → chunk-MFQWRBFB.js} +5 -5
- package/chunks/{chunk-TODNHE76.js → chunk-MUFGTWQH.js} +5 -5
- package/chunks/{chunk-5DQ4YTIZ.js → chunk-MV5XRRML.js} +3 -3
- package/chunks/{chunk-IR6JKBAP.js → chunk-NOUK63IR.js} +2 -2
- package/chunks/{chunk-XQ4RDO5B.js → chunk-NV77SEX3.js} +1 -1
- package/chunks/{chunk-OFVAS4AR.js → chunk-NWDPOFJI.js} +2 -2
- package/chunks/chunk-NY6OPAPS.js +820 -0
- package/chunks/{chunk-WDN64MVT.js → chunk-O5VX66FB.js} +127 -18
- package/chunks/{chunk-MV5DTLJV.js → chunk-OHCR4O3U.js} +1 -1
- package/chunks/{chunk-LEAOJ43M.js → chunk-OKOPKQ2X.js} +1310 -2107
- package/chunks/{chunk-B25JYXZE.js → chunk-ONLJBOI2.js} +971 -17
- package/chunks/{chunk-QQK4L3UU.js → chunk-OWUAZXXN.js} +132 -26
- package/chunks/{chunk-R457KFV7.js → chunk-P42IUOAO.js} +3 -3
- package/chunks/{chunk-LUNC5KCL.js → chunk-PRELUGCQ.js} +214 -39
- package/chunks/{chunk-5OZUKLL7.js → chunk-QSMQKTXV.js} +4 -4
- package/chunks/{chunk-FAJPLSYF.js → chunk-QTQYLQ5A.js} +85 -81
- package/chunks/{chunk-CALTQWTZ.js → chunk-QVZDV4ZS.js} +2 -2
- package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
- package/chunks/{chunk-KFECPHLV.js → chunk-RBWAGV73.js} +3 -3
- package/chunks/{chunk-4VY3ITHR.js → chunk-RF5RQRTD.js} +3 -3
- package/chunks/{chunk-HIXUUCGY.js → chunk-RPMXMR6U.js} +2 -2
- package/chunks/{chunk-3OAXF3UK.js → chunk-RRQEZBL2.js} +3756 -1343
- package/chunks/{chunk-4ALNJDHL.js → chunk-RSGEAWFJ.js} +19 -1
- package/chunks/{chunk-5BH2AIEY.js → chunk-RUE62UH6.js} +2 -2
- package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
- package/chunks/{chunk-A7EFXK7P.js → chunk-SAOJHRWY.js} +2 -2
- package/chunks/{chunk-JO77FGNZ.js → chunk-SDUIETBG.js} +19 -7
- package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
- package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
- package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
- package/chunks/{chunk-XDNFODER.js → chunk-TUIW5LLK.js} +1 -1
- package/chunks/{chunk-APXIW2TF.js → chunk-TVV5FA3G.js} +4 -4
- package/chunks/chunk-U6H3XTFA.js +95 -0
- package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
- package/chunks/{chunk-U6REWGVR.js → chunk-VG2BRSEK.js} +2 -2
- package/chunks/chunk-VGBOJH2D.js +127 -0
- package/chunks/chunk-VGY2RGXL.js +100 -0
- package/chunks/{chunk-ZP5XDLSA.js → chunk-VLWG3EHY.js} +12 -12
- package/chunks/{chunk-4JNHNVAZ.js → chunk-W547PYQ7.js} +9 -4
- package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
- package/chunks/{chunk-QAZ2MGYT.js → chunk-W7JJLUSB.js} +2 -2
- package/chunks/{chunk-CCBTNJB4.js → chunk-W7Q7XDQI.js} +39 -27
- package/chunks/{chunk-DARWOZY6.js → chunk-WD6YQI5M.js} +1 -1
- package/chunks/{chunk-F2NYVASI.js → chunk-WXAWG3JS.js} +30 -13
- package/chunks/{chunk-NPKCVSXX.js → chunk-XB5JRCAM.js} +11 -9
- package/chunks/{chunk-XSOXPG2L.js → chunk-XE46RQFI.js} +136 -8
- package/chunks/{chunk-QTNCGZHQ.js → chunk-XX5HQLCZ.js} +16 -0
- package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
- package/chunks/chunk-YC6XOB5N.js +691 -0
- package/chunks/{chunk-CWVZBIZJ.js → chunk-YDW4ERSS.js} +1 -1
- package/chunks/{chunk-TRWQQBVH.js → chunk-YGCTOXUT.js} +10 -24
- package/chunks/{chunk-WK7P62DV.js → chunk-YKC67ZEF.js} +6 -6
- package/chunks/{chunk-KA5HR3G2.js → chunk-YKM6MITI.js} +5 -5
- package/chunks/{chunk-X7LFJF5D.js → chunk-YM6KUQ2S.js} +36 -84
- package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
- package/chunks/{chunk-G37O7YO6.js → chunk-ZAWM6KRF.js} +3 -3
- package/chunks/{chunk-H3Q3RSKZ.js → chunk-ZFIWHBJ3.js} +1 -1
- package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
- package/chunks/{chunk-YLOHCA6I.js → chunk-ZKWO4CF4.js} +2 -2
- package/chunks/{chunk-VJJXG73H.js → chunk-ZMQL5BL5.js} +21 -6
- package/chunks/{chunk-FGHPZGOP.js → chunk-ZMUYBOYB.js} +39 -55
- package/chunks/{chunk-FV4DM2M4.js → chunk-ZNI3YJHS.js} +26 -6
- package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
- package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
- package/chunks/codex-subagent-executor-26XOHVKH.js +585 -0
- package/chunks/{config-utils-GPLIABL2.js → config-utils-JUG3MOYN.js} +68 -57
- package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-6K3POZFA.js} +65 -54
- package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-XQFZLA2V.js} +66 -55
- package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-4UJ6RM6W.js} +5 -2
- package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-T4IYIOC7.js} +178 -91
- package/chunks/{cron-create-GTPVMJCF.js → cron-create-6466RWSO.js} +2 -2
- package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-W4QUWHOA.js} +2 -2
- package/chunks/{cron-list-KTFKFDKC.js → cron-list-Q5LJ5PZE.js} +2 -2
- package/chunks/{daemon-2CKIAO3I.js → daemon-PHPJUXDZ.js} +4 -2
- package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-5WEMZ64U.js} +65 -54
- package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-GMD7QD4T.js} +74 -63
- package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-IPBZES2Z.js} +71 -60
- package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-MHYEN7X7.js} +71 -60
- package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
- package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-CY43FZNZ.js} +63 -52
- package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
- package/chunks/{display-image-CTNHJRZC.js → display-image-6AZIHP3J.js} +3 -3
- package/chunks/{dist-F34J4FZX.js → dist-2QYIVNS6.js} +2 -5
- package/chunks/{dist-6YDUH3BB.js → dist-GIMQXYLI.js} +10 -631
- package/chunks/{dist-NP7QKLVG.js → dist-GUB7QRYA.js} +3 -6
- package/chunks/{dist-Y5KC3IHW.js → dist-L45UB6DG.js} +233 -35
- package/chunks/{dist-XLV33CLY.js → dist-MPUZZOG5.js} +5 -18
- package/chunks/{dist-ZDNJK74R.js → dist-PA7WPFVE.js} +6 -37
- package/chunks/{dist-F6JLAJLE.js → dist-T6DDPDLQ.js} +16 -36
- package/chunks/{dist-BNQVF565.js → dist-TFGETXFN.js} +14 -37
- package/chunks/{dist-UFTFGI6I.js → dist-VDLSBCLM.js} +2 -6
- package/chunks/{edit-YJD6IETK.js → edit-6NUP5IPX.js} +48 -38
- package/chunks/{en-YJNRUQG4.js → en-ZSZW3PZX.js} +4 -1
- package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-EETDMJRF.js} +5 -5
- package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-AZHYHEII.js} +48 -38
- package/chunks/{environment-HP3AXFTB.js → environment-ON6GIQ4F.js} +66 -55
- package/chunks/{errors-22ON46G7.js → errors-DQE63SCC.js} +65 -54
- package/chunks/exec-66WQIVYU.js +505 -0
- package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-DIPJ6S55.js} +5 -5
- package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-NHBV6LAI.js} +48 -38
- package/chunks/{fast-path-2X7BPMXX.js → fast-path-EPJSUZZC.js} +7 -7
- package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-XDYX7X5Z.js} +2 -2
- package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
- package/chunks/{glob-Y7ACIB3P.js → glob-MNEXQ2NV.js} +51 -41
- package/chunks/{goal-tools-DABMICUC.js → goal-tools-D2A4QBCJ.js} +54 -40
- package/chunks/{grep-BLHF2S5D.js → grep-EFWPV3MM.js} +2 -2
- package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-2RY3OQA6.js} +67 -56
- package/chunks/{i18n-C3GDCALP.js → i18n-HTHDB3I7.js} +64 -53
- package/chunks/{image-gen-XP4NNIYG.js → image-gen-2PHED3P4.js} +8 -6
- package/chunks/{initializer-4URDQL2G.js → initializer-JEVLJCQA.js} +71 -60
- package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-ITRB6J4L.js} +63 -52
- package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
- package/chunks/list-KOUIMHT5.js +133 -0
- package/chunks/{list-agents-2CXPGJUE.js → list-agents-IY4NEWLP.js} +17 -7
- package/chunks/{llm-2KPNSAVY.js → llm-F7WHGESY.js} +132 -120
- package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-NYQ2NAVA.js} +6 -5
- package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-HZUAX5CX.js} +71 -60
- package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-WMNU7C5J.js} +70 -59
- package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-ANX25YW2.js} +3 -3
- package/chunks/{ls-YV7RKLKY.js → ls-4XCMJNZF.js} +4 -4
- package/chunks/{lsp-NO3AMRZT.js → lsp-K5E2Y64R.js} +1 -1
- package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-EJJB65QI.js} +63 -52
- package/chunks/mcp-I73R6HS3.js +127 -0
- package/chunks/{monitor-A255TNZR.js → monitor-T56GJNA4.js} +50 -40
- package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-CKHHJ423.js} +120 -109
- package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-W5TU3EZ3.js} +48 -38
- package/chunks/openai-WX26N5OJ.js +47 -0
- package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-TH6YAWAH.js} +33 -25
- package/chunks/openaiResponsesContentGenerator-EWLWQPKS.js +1738 -0
- package/chunks/{pidfile-B7DZC4TP.js → pidfile-RCC6TCEM.js} +63 -52
- package/chunks/process-registry-X6ZCASEN.js +10 -0
- package/chunks/{processUtils-BPZ2MCZS.js → processUtils-DQDQBRMC.js} +2 -2
- package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-2LXWAGWU.js} +64 -53
- package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
- package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-LG65Z2YV.js} +61 -49
- package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-PJ63CCFD.js} +7 -5
- package/chunks/{read-file-A4H4O3VQ.js → read-file-72HMRUT4.js} +12 -9
- package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-NPF44YSC.js} +1 -1
- package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-MDXCCW2J.js} +3 -3
- package/chunks/record-source-VJLKDGGR.js +22 -0
- package/chunks/{report-findings-TJ34R7QK.js → report-findings-CZTYMZTC.js} +4 -4
- package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-KOZHPVZU.js} +5 -5
- package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-S2Q3M3EH.js} +69 -58
- package/chunks/{ripGrep-W32NWFTA.js → ripGrep-B2I3L5CO.js} +17 -13
- package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
- package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-AOPYFCVP.js} +305 -132
- package/chunks/{runtime-VRVBX2E5.js → runtime-TZMHKZAP.js} +77 -66
- package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-7RL6ZOYT.js} +72 -60
- package/chunks/{scheduler-M2YPN7Z7.js → scheduler-D6RLOFNU.js} +65 -54
- 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-MMZVSS7P.js} +12 -9
- package/chunks/{serve-BE3H2P6P.js → serve-HWWDYI37.js} +72 -61
- package/chunks/{server-FLY5JERG.js → server-MD2X5U5L.js} +3156 -564
- package/chunks/{session-JVN62R5K.js → session-AFUMFNN7.js} +124 -113
- package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-QPN3YWTY.js} +63 -52
- package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-4Y2ANMJX.js} +72 -60
- package/chunks/{settings-D44YMZFT.js → settings-QQRQ2LR7.js} +74 -63
- package/chunks/{shell-3VE6I4V5.js → shell-NUYUYMVI.js} +48 -38
- package/chunks/{skill-FHEGRRZU.js → skill-KHLDVOXW.js} +68 -30
- package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-INLEGDEZ.js} +70 -59
- package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-KBGZHW2G.js} +67 -56
- package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-3QP5NDVJ.js} +65 -54
- package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-VBT3XDWN.js} +2682 -2153
- package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-AZHKCHMR.js} +1562 -2317
- package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-KRASPDE3.js} +2 -2
- package/chunks/{task-create-MWXJFRRM.js → task-create-TNXNT7ZD.js} +8 -8
- package/chunks/{task-list-EYO3FE57.js → task-list-FHNIJDKT.js} +1 -1
- package/chunks/{task-stop-BFSKRTGV.js → task-stop-MG4ZMTEI.js} +1 -1
- package/chunks/{task-update-2JJJRHMT.js → task-update-4HU62CJT.js} +8 -8
- package/chunks/{team-create-GY3VFY47.js → team-create-K5DNSJXR.js} +50 -40
- package/chunks/{team-delete-IQZ6XGFI.js → team-delete-2T44GUNN.js} +1 -1
- package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-2ZNAQT2A.js} +48 -38
- package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-23CW4A6Q.js} +65 -54
- package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-G2333AMH.js} +63 -52
- package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-BO2GR5MN.js} +4 -4
- package/chunks/{tool-search-XI3QWD5I.js → tool-search-MKQCKXN5.js} +22 -15
- package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-ENKTM2KX.js} +69 -58
- package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-2ETDL7OD.js} +64 -53
- package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-FMVNN5KA.js} +5 -5
- package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-KWRV5KLJ.js} +66 -55
- package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-7AUXAIQF.js} +73 -62
- package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NETKLLDV.js} +117 -106
- package/chunks/{version-EK7VAGSI.js → version-DACNN2ZM.js} +1 -1
- package/chunks/{web-fetch-24KZO763.js → web-fetch-CIVCRET4.js} +16 -12
- package/chunks/{web-search-CRNXKZ2X.js → web-search-GOHZRGMM.js} +389 -327
- package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-T7UGLVE4.js} +2 -7
- package/chunks/workflow-IL2FOALZ.js +1324 -0
- package/chunks/workspace-providers-status-YGXL6N5U.js +131 -0
- package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-E4IAOFFZ.js} +3 -1
- package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-KX6BIBYK.js} +69 -58
- package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-2KYYGDDR.js} +72 -59
- package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-5Q6LWBYR.js} +76 -65
- package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-PJZTFPVV.js} +72 -61
- package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-HS6PWNEA.js} +77 -66
- package/chunks/{write-file-ERG67ZFX.js → write-file-JB3DRM7O.js} +50 -40
- package/chunks/{zh-VBFCRQBL.js → zh-7UJA4ICT.js} +4 -1
- package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-RV24PWUI.js} +4 -1
- package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-AVHQFOOQ.js} +12 -9
- package/cli.js +16 -16
- package/codeModeHost.js +4425 -0
- package/export-transcript-document.css +1 -0
- package/export-transcript-document.js +164 -165
- package/locales/ca.js +2 -2
- package/locales/de.js +2 -2
- package/locales/en.js +5 -2
- package/locales/fr.js +2 -2
- package/locales/ja.js +2 -2
- package/locales/pt.js +2 -2
- package/locales/ru.js +2 -2
- package/locales/zh-TW.js +5 -2
- package/locales/zh.js +5 -2
- package/package.json +6 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-BH2nK5Z_.js} +1 -1
- package/web-shell/assets/{arc-qAF9_XsR.js → arc-CUUQ6krv.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-CJjiRuGx.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-GCDyU9ZX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-C68MiN6h.js} +1 -1
- package/web-shell/assets/channel-DauVlmdF.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-_8B6frXZ.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CroSinX7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CGn4Z0Fx.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-BI5nLQcf.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-CYJH0FuH.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-DjWZUqA1.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcTkIHm8.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-E8sZT5uK.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CurjPKw_.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-BuIh7bj1.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-BuIh7bj1.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-CJEnNhth.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-jwEkm0yw.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-B-OVQ6AO.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CKKK9WNR.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-D486veFQ.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-C3GujqHv.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-BrOTDwuU.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-C4D9kWE3.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-7rAManT0.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-CqVzKOdr.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D2s08fc_.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-CrKtBxB2.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CD1CKdlt.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-CHDXdVNn.js} +1 -1
- package/web-shell/assets/index-D8tzgUOC.css +36 -0
- package/web-shell/assets/{index-DWoFMu5x.js → index-DWz95m74.js} +1 -1
- package/web-shell/assets/index-cDFf68Wd.js +2204 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Cr1oLCwe.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U--RghV1mm.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-MN1ZkGW8.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-DL05VTn0.js} +1 -1
- package/web-shell/assets/{layout-Dvdh5jRH.js → layout-D_TvQzvn.js} +1 -1
- package/web-shell/assets/{linear-Dvc6KIW2.js → linear-B_0OH6XF.js} +1 -1
- package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-B9Nklh9I.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-CevIQ0LR.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-DQ8PIv0d.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BVTV1pPe.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-DHN6nhpe.js} +1 -1
- package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-8HOyX0u-.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-9W4_14i8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-DSUBB2XP.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-DD3jH6Jn.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-RAFTU3Cz.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-Drk-oZ2x.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-QzYteVIm.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-Cy2nlOGx.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-xTr-HG26.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-B7outYof.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-Di_u1Ic6.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-DYocuCAM.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-AADDse54.js} +1 -1
- package/web-shell/index.html +29 -5
- package/chunks/chunk-V7RNNPGC.js +0 -44
- package/chunks/list-JOGBAC2R.js +0 -122
- package/chunks/mcp-6YYNSYLK.js +0 -116
- package/chunks/workflow-HD5NYMW5.js +0 -2907
- package/chunks/workspace-providers-status-MAM42IZS.js +0 -120
- 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
- package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
|
@@ -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-YM6KUQ2S.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,7 +79,7 @@ import {
|
|
|
79
79
|
stripToolResultImages,
|
|
80
80
|
toolResultBoundaryArtifact,
|
|
81
81
|
toolResultPartDiagnosticValues
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-2UKKQGRA.js";
|
|
83
83
|
import {
|
|
84
84
|
hasVerifiableInode,
|
|
85
85
|
openNoFollow
|
|
@@ -89,34 +89,51 @@ import {
|
|
|
89
89
|
} from "./chunk-TWPJO254.js";
|
|
90
90
|
import {
|
|
91
91
|
projectUserTranscriptForDisplay
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-EYN3G5XD.js";
|
|
93
93
|
import {
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
getProjectSkillsRoot,
|
|
95
|
+
parse
|
|
96
|
+
} from "./chunk-2SZH22YO.js";
|
|
96
97
|
import {
|
|
97
98
|
glob,
|
|
98
99
|
globSync
|
|
99
100
|
} from "./chunk-QJNDUTOL.js";
|
|
101
|
+
import {
|
|
102
|
+
resolveBundleDir
|
|
103
|
+
} from "./chunk-ACHCT36C.js";
|
|
100
104
|
import {
|
|
101
105
|
escapeJsonTagCharacters
|
|
102
106
|
} from "./chunk-CHEIIBT3.js";
|
|
107
|
+
import {
|
|
108
|
+
flattenPeerLabel
|
|
109
|
+
} from "./chunk-OWUAZXXN.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-63GQZKXL.js";
|
|
120
|
+
import {
|
|
121
|
+
getFolderStructure,
|
|
122
|
+
getStartupContextLength,
|
|
123
|
+
isSystemReminderContent,
|
|
124
|
+
stripSystemReminderBlocks
|
|
125
|
+
} from "./chunk-RF5RQRTD.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-C5CECJ46.js";
|
|
117
134
|
import {
|
|
118
135
|
fetchWithPolicy
|
|
119
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-NWDPOFJI.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-WXAWG3JS.js";
|
|
129
146
|
import {
|
|
130
147
|
getInvocationContext
|
|
131
148
|
} from "./chunk-5ETULJLP.js";
|
|
@@ -143,7 +160,7 @@ import {
|
|
|
143
160
|
isCacheableReadResult,
|
|
144
161
|
isWithinRoot,
|
|
145
162
|
processSingleFileContent
|
|
146
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-QZW6WRB7.js";
|
|
147
164
|
import {
|
|
148
165
|
getAutoMemoryRoot,
|
|
149
166
|
getUserAutoMemoryRoot
|
|
@@ -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-2WSLXP3W.js";
|
|
175
182
|
import {
|
|
176
183
|
PATH_ARG_KEYS,
|
|
177
184
|
QWEN_DIR,
|
|
@@ -1194,7 +1201,7 @@ function buildSessionRecoveryPlanFromApiHistory({
|
|
|
1194
1201
|
historyGaps,
|
|
1195
1202
|
options
|
|
1196
1203
|
}) {
|
|
1197
|
-
const originalApiHistory =
|
|
1204
|
+
const originalApiHistory = inputApiHistory;
|
|
1198
1205
|
const gaps = historyGaps ?? [];
|
|
1199
1206
|
const planId = createPlanId(sessionId, originalApiHistory.length);
|
|
1200
1207
|
const apiHistory = structuredClone(originalApiHistory);
|
|
@@ -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
|
}
|
|
@@ -4391,6 +4404,7 @@ var WebTerminalRegistry = class {
|
|
|
4391
4404
|
session2.exited = true;
|
|
4392
4405
|
session2.exitCode = e.exitCode;
|
|
4393
4406
|
for (const listener of [...session2.exitListeners]) listener(e);
|
|
4407
|
+
setImmediate(() => this.releasePtyResources(session2));
|
|
4394
4408
|
}, "handleExit");
|
|
4395
4409
|
let dataDisposable;
|
|
4396
4410
|
let exitDisposable;
|
|
@@ -4414,7 +4428,19 @@ var WebTerminalRegistry = class {
|
|
|
4414
4428
|
pid: spawned.pid,
|
|
4415
4429
|
write: /* @__PURE__ */ __name((data) => spawned.write(data), "write"),
|
|
4416
4430
|
resize: /* @__PURE__ */ __name((cols, rows) => spawned.resize(cols, rows), "resize"),
|
|
4417
|
-
kill: /* @__PURE__ */ __name(() =>
|
|
4431
|
+
kill: /* @__PURE__ */ __name(() => {
|
|
4432
|
+
spawned.kill();
|
|
4433
|
+
if (spawned._isReady !== false) {
|
|
4434
|
+
noteConPtyHostReleased(spawned);
|
|
4435
|
+
}
|
|
4436
|
+
}, "kill"),
|
|
4437
|
+
releaseHost: /* @__PURE__ */ __name(() => {
|
|
4438
|
+
if (spawned._isReady === false) {
|
|
4439
|
+
disposeConoutWorker(spawned);
|
|
4440
|
+
return;
|
|
4441
|
+
}
|
|
4442
|
+
releaseConPtyHost(spawned);
|
|
4443
|
+
}, "releaseHost")
|
|
4418
4444
|
};
|
|
4419
4445
|
} catch {
|
|
4420
4446
|
this.finishCreating(terminalId);
|
|
@@ -4430,7 +4456,8 @@ var WebTerminalRegistry = class {
|
|
|
4430
4456
|
outputListeners: /* @__PURE__ */ new Set(),
|
|
4431
4457
|
exitListeners: /* @__PURE__ */ new Set(),
|
|
4432
4458
|
dataDisposable,
|
|
4433
|
-
exitDisposable
|
|
4459
|
+
exitDisposable,
|
|
4460
|
+
ptyResourcesReleased: false
|
|
4434
4461
|
};
|
|
4435
4462
|
sessionRef.current = session;
|
|
4436
4463
|
this.sessions.set(terminalId, session);
|
|
@@ -4520,13 +4547,12 @@ var WebTerminalRegistry = class {
|
|
|
4520
4547
|
listener({ exitCode: 143, signal: 15 });
|
|
4521
4548
|
}
|
|
4522
4549
|
}
|
|
4523
|
-
session.dataDisposable?.dispose();
|
|
4524
|
-
session.exitDisposable?.dispose();
|
|
4525
4550
|
session.outputListeners.clear();
|
|
4526
4551
|
session.exitListeners.clear();
|
|
4527
4552
|
if (!session.exited) {
|
|
4528
4553
|
killPtyTree(session.pty);
|
|
4529
4554
|
}
|
|
4555
|
+
this.releasePtyResources(session);
|
|
4530
4556
|
return true;
|
|
4531
4557
|
}
|
|
4532
4558
|
releaseWorkspace(workspaceCwd) {
|
|
@@ -4545,6 +4571,32 @@ var WebTerminalRegistry = class {
|
|
|
4545
4571
|
this.creating.delete(terminalId);
|
|
4546
4572
|
this.cancelledCreations.delete(terminalId);
|
|
4547
4573
|
}
|
|
4574
|
+
/**
|
|
4575
|
+
* Free a session's PTY-side resources exactly once: detach the data/exit
|
|
4576
|
+
* listeners, then release the ConPTY host / conout worker that node-pty
|
|
4577
|
+
* strands on a natural exit. Without the second half every terminal the user
|
|
4578
|
+
* exits leaks a worker for the life of the CLI — the same defect the
|
|
4579
|
+
* shell-tool path has. The conhost.exe half is not freed on that path (the
|
|
4580
|
+
* native baton is already gone); see releaseConPtyHost. See #11303.
|
|
4581
|
+
*
|
|
4582
|
+
* Deliberately leaves the session's map entry and its `buffer` alone, and
|
|
4583
|
+
* never signals the pid: on the exited path the shell is gone and its pid may
|
|
4584
|
+
* be recycled, which is why #11313 added `releaseHost` instead of reusing
|
|
4585
|
+
* `kill()`. Keeping the entry is what lets `readSnapshot()` still replay the
|
|
4586
|
+
* scrollback after an exit-time release.
|
|
4587
|
+
*
|
|
4588
|
+
* Called from `handleExit` (deferred one turn, so an exited web terminal
|
|
4589
|
+
* stops holding the worker for the whole idle-reclaim window — #11353) and
|
|
4590
|
+
* from `release()` on both of its arms, where the flag keeps a release that
|
|
4591
|
+
* follows an exit-time release from disposing anything twice.
|
|
4592
|
+
*/
|
|
4593
|
+
releasePtyResources(session) {
|
|
4594
|
+
if (session.ptyResourcesReleased) return;
|
|
4595
|
+
session.ptyResourcesReleased = true;
|
|
4596
|
+
session.dataDisposable?.dispose();
|
|
4597
|
+
session.exitDisposable?.dispose();
|
|
4598
|
+
session.pty.releaseHost?.();
|
|
4599
|
+
}
|
|
4548
4600
|
clearReclaim(session) {
|
|
4549
4601
|
if (session.reclaimTimer) {
|
|
4550
4602
|
clearTimeout(session.reclaimTimer);
|
|
@@ -5593,20 +5645,33 @@ var AUTHORITATIVE_OBJECTIVE_LINE = "The objective in that data block is the curr
|
|
|
5593
5645
|
var OBJECTIVE_UPDATED_LINE = "The Goal objective changed since your last turn: the objective above replaces the one you were working on. Stop work that only served the previous objective, and carry over only what also serves this one.";
|
|
5594
5646
|
function renderBudgetLine(usage) {
|
|
5595
5647
|
const used = usage.tokensUsed.toLocaleString("en-US");
|
|
5596
|
-
const
|
|
5597
|
-
0,
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5648
|
+
const segments = [
|
|
5649
|
+
usage.tokenBudget === void 0 ? `${used} tokens used, with no token budget on this Goal` : `${used} of ${usage.tokenBudget.toLocaleString("en-US")} tokens used, ${Math.max(
|
|
5650
|
+
0,
|
|
5651
|
+
usage.tokenBudget - usage.tokensUsed
|
|
5652
|
+
).toLocaleString("en-US")} remaining`,
|
|
5653
|
+
usage.turnBudget === void 0 ? `${usage.turnCount} Goal ${usage.turnCount === 1 ? "turn" : "turns"} finished` : `${usage.turnCount} of ${usage.turnBudget.toLocaleString("en-US")} Goal turns finished`
|
|
5654
|
+
];
|
|
5655
|
+
if (usage.activeTimeBudgetMs !== void 0 && usage.activeTimeMs !== void 0) {
|
|
5656
|
+
segments.push(
|
|
5657
|
+
`${renderActiveMinutes(usage.activeTimeMs)} of ${renderActiveMinutes(
|
|
5658
|
+
usage.activeTimeBudgetMs
|
|
5659
|
+
)} active minutes used`
|
|
5660
|
+
);
|
|
5661
|
+
}
|
|
5662
|
+
return `Budget: ${segments.join("; ")}.`;
|
|
5602
5663
|
}
|
|
5603
5664
|
__name(renderBudgetLine, "renderBudgetLine");
|
|
5665
|
+
function renderActiveMinutes(ms) {
|
|
5666
|
+
return (ms / 6e4).toLocaleString("en-US", { maximumFractionDigits: 1 });
|
|
5667
|
+
}
|
|
5668
|
+
__name(renderActiveMinutes, "renderActiveMinutes");
|
|
5604
5669
|
var EVIDENCE_LINE = "Treat the workspace and this turn's tool results as authoritative. Re-inspect state rather than relying on what earlier turns in this conversation reported.";
|
|
5605
5670
|
var FIDELITY_LINE = "Work toward the end state the objective asks for. Do not substitute a narrower or more easily reached result, and do not redefine success around what already exists.";
|
|
5606
5671
|
var NO_PROGRESS_LINE = "Judge your previous Goal turn before acting: it made progress only if it changed the workspace or produced evidence that changes what to do next. If it did not, take a different concrete action now instead of restating status; if the same blocker still stands, cite it through update_goal rather than repeating it.";
|
|
5607
5672
|
var COMPLETION_AUDIT_LINE = "Before proposing that the Goal is complete, check every explicit requirement in the objective against evidence you can cite. Missing, indirect, or self-reported evidence means not done: keep working.";
|
|
5608
5673
|
var WIND_DOWN_LINES = [
|
|
5609
|
-
"
|
|
5674
|
+
"An autonomous budget for this Goal window is spent -- the budget line above says which. This is the final turn before the Goal stops and waits for the user; do not start new work.",
|
|
5610
5675
|
"Deliver a concise hand-off: what was accomplished, citing evidence references from get_goal; what remains; and the one concrete next step. Call update_goal only if the objective is already complete or genuinely blocked on the evidence you have. Then end the turn."
|
|
5611
5676
|
];
|
|
5612
5677
|
function serializeGoalData(input) {
|
|
@@ -5669,6 +5734,94 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
|
|
|
5669
5734
|
// packages/core/src/goals/index.ts
|
|
5670
5735
|
init_esbuild_shims();
|
|
5671
5736
|
|
|
5737
|
+
// packages/core/src/goals/activeGoalStore.ts
|
|
5738
|
+
init_esbuild_shims();
|
|
5739
|
+
var store = /* @__PURE__ */ new Map();
|
|
5740
|
+
function getActiveGoal(sessionId) {
|
|
5741
|
+
return store.get(sessionId);
|
|
5742
|
+
}
|
|
5743
|
+
__name(getActiveGoal, "getActiveGoal");
|
|
5744
|
+
function clearActiveGoal(sessionId) {
|
|
5745
|
+
const previous = store.get(sessionId);
|
|
5746
|
+
store.delete(sessionId);
|
|
5747
|
+
return previous;
|
|
5748
|
+
}
|
|
5749
|
+
__name(clearActiveGoal, "clearActiveGoal");
|
|
5750
|
+
var observers = /* @__PURE__ */ new Map();
|
|
5751
|
+
function clearGoalTerminalObserver(sessionId) {
|
|
5752
|
+
observers.delete(sessionId);
|
|
5753
|
+
}
|
|
5754
|
+
__name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
|
|
5755
|
+
function notifyGoalTerminal(sessionId, event) {
|
|
5756
|
+
recordLastTerminalEvent(sessionId, event);
|
|
5757
|
+
const observer = observers.get(sessionId);
|
|
5758
|
+
if (!observer) return;
|
|
5759
|
+
try {
|
|
5760
|
+
observer(event);
|
|
5761
|
+
} catch {
|
|
5762
|
+
}
|
|
5763
|
+
}
|
|
5764
|
+
__name(notifyGoalTerminal, "notifyGoalTerminal");
|
|
5765
|
+
var lastTerminal = /* @__PURE__ */ new Map();
|
|
5766
|
+
function recordLastTerminalEvent(sessionId, event) {
|
|
5767
|
+
lastTerminal.set(sessionId, event);
|
|
5768
|
+
}
|
|
5769
|
+
__name(recordLastTerminalEvent, "recordLastTerminalEvent");
|
|
5770
|
+
|
|
5771
|
+
// packages/core/src/goals/goalHook.ts
|
|
5772
|
+
init_esbuild_shims();
|
|
5773
|
+
|
|
5774
|
+
// packages/core/src/goals/goalJudge.ts
|
|
5775
|
+
init_esbuild_shims();
|
|
5776
|
+
var debugLogger9 = createDebugLogger("GOAL_JUDGE");
|
|
5777
|
+
|
|
5778
|
+
// packages/core/src/goals/goalHook.ts
|
|
5779
|
+
var debugLogger10 = createDebugLogger("GOAL_HOOK");
|
|
5780
|
+
var GOAL_HOOK_TIMEOUT_SECONDS = 30;
|
|
5781
|
+
var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
|
|
5782
|
+
var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
|
|
5783
|
+
function getStopHookContinuationReason(output) {
|
|
5784
|
+
const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
|
|
5785
|
+
if (!hasGoalOutput) {
|
|
5786
|
+
return output.stopReason || output.reason || "No reason provided";
|
|
5787
|
+
}
|
|
5788
|
+
return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
|
|
5789
|
+
}
|
|
5790
|
+
__name(getStopHookContinuationReason, "getStopHookContinuationReason");
|
|
5791
|
+
function removeGoalFunctionHook(config, sessionId, goal) {
|
|
5792
|
+
const system = config.getHookSystem?.();
|
|
5793
|
+
if (!system) return;
|
|
5794
|
+
try {
|
|
5795
|
+
system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
|
|
5796
|
+
} catch (err) {
|
|
5797
|
+
debugLogger10.debug(
|
|
5798
|
+
`Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
|
|
5799
|
+
);
|
|
5800
|
+
}
|
|
5801
|
+
}
|
|
5802
|
+
__name(removeGoalFunctionHook, "removeGoalFunctionHook");
|
|
5803
|
+
function finishGoal(config, sessionId, goal, event) {
|
|
5804
|
+
clearActiveGoal(sessionId);
|
|
5805
|
+
removeGoalFunctionHook(config, sessionId, goal);
|
|
5806
|
+
notifyGoalTerminal(sessionId, event);
|
|
5807
|
+
clearGoalTerminalObserver(sessionId);
|
|
5808
|
+
}
|
|
5809
|
+
__name(finishGoal, "finishGoal");
|
|
5810
|
+
function abortGoalForStopHookCap(config, sessionId, systemMessage) {
|
|
5811
|
+
const goal = getActiveGoal(sessionId);
|
|
5812
|
+
if (!goal) return false;
|
|
5813
|
+
finishGoal(config, sessionId, goal, {
|
|
5814
|
+
kind: "aborted",
|
|
5815
|
+
condition: goal.condition,
|
|
5816
|
+
iterations: goal.iterations,
|
|
5817
|
+
durationMs: Date.now() - goal.setAt,
|
|
5818
|
+
lastReason: goal.lastReason,
|
|
5819
|
+
systemMessage
|
|
5820
|
+
});
|
|
5821
|
+
return true;
|
|
5822
|
+
}
|
|
5823
|
+
__name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
|
|
5824
|
+
|
|
5672
5825
|
// packages/core/src/index.ts
|
|
5673
5826
|
init_esbuild_shims();
|
|
5674
5827
|
|
|
@@ -6186,7 +6339,7 @@ init_esbuild_shims();
|
|
|
6186
6339
|
import * as fs4 from "fs/promises";
|
|
6187
6340
|
import * as os from "os";
|
|
6188
6341
|
import * as path6 from "path";
|
|
6189
|
-
var
|
|
6342
|
+
var debugLogger11 = createDebugLogger("OUTPUT_STYLE_FILES");
|
|
6190
6343
|
var OUTPUT_STYLES_DIR_NAME = "output-styles";
|
|
6191
6344
|
var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
|
|
6192
6345
|
var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
|
|
@@ -6245,7 +6398,7 @@ function parseOutputStyleFile(content, filePath, source) {
|
|
|
6245
6398
|
(key) => !KNOWN_FRONTMATTER_KEYS.has(key)
|
|
6246
6399
|
);
|
|
6247
6400
|
if (unknownKeys.length > 0) {
|
|
6248
|
-
|
|
6401
|
+
debugLogger11.warn(
|
|
6249
6402
|
`Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
|
|
6250
6403
|
);
|
|
6251
6404
|
}
|
|
@@ -6262,7 +6415,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
|
|
|
6262
6415
|
return true;
|
|
6263
6416
|
}
|
|
6264
6417
|
if (spelling !== false && spelling !== "false") {
|
|
6265
|
-
|
|
6418
|
+
debugLogger11.warn(
|
|
6266
6419
|
`Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
|
|
6267
6420
|
);
|
|
6268
6421
|
}
|
|
@@ -6315,20 +6468,20 @@ __name(deriveDescription, "deriveDescription");
|
|
|
6315
6468
|
async function resolveStyleFileToRead(filePath, source, confineTo) {
|
|
6316
6469
|
const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
|
|
6317
6470
|
if (source === "project" && stat5.isSymbolicLink()) {
|
|
6318
|
-
|
|
6471
|
+
debugLogger11.warn(`Skipping output style ${filePath}: it is a symlink`);
|
|
6319
6472
|
return null;
|
|
6320
6473
|
}
|
|
6321
6474
|
if (!stat5.isFile()) {
|
|
6322
6475
|
return null;
|
|
6323
6476
|
}
|
|
6324
6477
|
if (stat5.nlink > 1) {
|
|
6325
|
-
|
|
6478
|
+
debugLogger11.warn(`Skipping output style ${filePath}: it is a hard link`);
|
|
6326
6479
|
return null;
|
|
6327
6480
|
}
|
|
6328
6481
|
const realPath = await fs4.realpath(filePath);
|
|
6329
6482
|
const realRoot = await fs4.realpath(confineTo);
|
|
6330
6483
|
if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
|
|
6331
|
-
|
|
6484
|
+
debugLogger11.warn(
|
|
6332
6485
|
`Skipping output style ${filePath}: it resolves outside ${realRoot}`
|
|
6333
6486
|
);
|
|
6334
6487
|
return null;
|
|
@@ -6366,7 +6519,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6366
6519
|
entries = await fs4.readdir(dir);
|
|
6367
6520
|
} catch (error) {
|
|
6368
6521
|
if (error.code !== "ENOENT") {
|
|
6369
|
-
|
|
6522
|
+
debugLogger11.warn(`Cannot read output styles directory ${dir}:`, error);
|
|
6370
6523
|
}
|
|
6371
6524
|
return [];
|
|
6372
6525
|
}
|
|
@@ -6385,13 +6538,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6385
6538
|
}
|
|
6386
6539
|
const buffer = await readBoundedStyleFile(readPath);
|
|
6387
6540
|
if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
|
|
6388
|
-
|
|
6541
|
+
debugLogger11.warn(
|
|
6389
6542
|
`Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
|
|
6390
6543
|
);
|
|
6391
6544
|
continue;
|
|
6392
6545
|
}
|
|
6393
6546
|
if (isBinary(buffer)) {
|
|
6394
|
-
|
|
6547
|
+
debugLogger11.warn(
|
|
6395
6548
|
`Skipping output style ${filePath}: it is not UTF-8 text`
|
|
6396
6549
|
);
|
|
6397
6550
|
continue;
|
|
@@ -6403,7 +6556,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6403
6556
|
);
|
|
6404
6557
|
const key = style.name.toLowerCase();
|
|
6405
6558
|
if (seen.has(key)) {
|
|
6406
|
-
|
|
6559
|
+
debugLogger11.warn(
|
|
6407
6560
|
`Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
|
|
6408
6561
|
);
|
|
6409
6562
|
continue;
|
|
@@ -6411,7 +6564,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6411
6564
|
seen.add(key);
|
|
6412
6565
|
styles.push(style);
|
|
6413
6566
|
} catch (error) {
|
|
6414
|
-
|
|
6567
|
+
debugLogger11.warn(
|
|
6415
6568
|
`Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
|
|
6416
6569
|
);
|
|
6417
6570
|
}
|
|
@@ -6459,7 +6612,7 @@ async function loadOutputStyleCatalog(options = {}) {
|
|
|
6459
6612
|
const key = style.name.toLowerCase();
|
|
6460
6613
|
const winner = winners.get(key);
|
|
6461
6614
|
if (winner) {
|
|
6462
|
-
|
|
6615
|
+
debugLogger11.debug(
|
|
6463
6616
|
`Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
|
|
6464
6617
|
);
|
|
6465
6618
|
continue;
|
|
@@ -6479,7 +6632,7 @@ __name(findOutputStyle, "findOutputStyle");
|
|
|
6479
6632
|
|
|
6480
6633
|
// packages/core/src/tools/client-mcp-registrar.ts
|
|
6481
6634
|
init_esbuild_shims();
|
|
6482
|
-
var
|
|
6635
|
+
var debugLogger12 = createDebugLogger("CLIENT_MCP_REGISTRAR");
|
|
6483
6636
|
var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
|
|
6484
6637
|
var ClientMcpRegistrar = class {
|
|
6485
6638
|
static {
|
|
@@ -6502,7 +6655,7 @@ var ClientMcpRegistrar = class {
|
|
|
6502
6655
|
*/
|
|
6503
6656
|
registerServer(serverName) {
|
|
6504
6657
|
this.servers.add(serverName);
|
|
6505
|
-
|
|
6658
|
+
debugLogger12.debug(`Registered client MCP server '${serverName}'`);
|
|
6506
6659
|
}
|
|
6507
6660
|
/**
|
|
6508
6661
|
* Drop a server name and reject any in-flight requests targeting it. Returns
|
|
@@ -6515,7 +6668,7 @@ var ClientMcpRegistrar = class {
|
|
|
6515
6668
|
new Error(`client MCP server '${serverName}' was unregistered`)
|
|
6516
6669
|
);
|
|
6517
6670
|
if (existed) {
|
|
6518
|
-
|
|
6671
|
+
debugLogger12.debug(`Unregistered client MCP server '${serverName}'`);
|
|
6519
6672
|
}
|
|
6520
6673
|
return existed;
|
|
6521
6674
|
}
|
|
@@ -6615,7 +6768,7 @@ var ClientMcpRegistrar = class {
|
|
|
6615
6768
|
resolveMessage(id, payload) {
|
|
6616
6769
|
const pending = this.pending.get(id);
|
|
6617
6770
|
if (!pending) {
|
|
6618
|
-
|
|
6771
|
+
debugLogger12.debug(`Dropping mcp_message with unknown id '${id}'`);
|
|
6619
6772
|
return false;
|
|
6620
6773
|
}
|
|
6621
6774
|
this.pending.delete(id);
|
|
@@ -6837,7 +6990,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
|
|
|
6837
6990
|
import * as fsSync2 from "node:fs";
|
|
6838
6991
|
import * as fs5 from "node:fs/promises";
|
|
6839
6992
|
import * as path7 from "node:path";
|
|
6840
|
-
var
|
|
6993
|
+
var debugLogger13 = createDebugLogger("PEER_CONTROLLERS");
|
|
6841
6994
|
var PEER_CONTROLLER_SCHEMA_VERSION = 1;
|
|
6842
6995
|
var CONTROLLER_TOKEN_PREFIX = "qpc_";
|
|
6843
6996
|
var CONTROLLER_TOKEN_BYTES = 32;
|
|
@@ -6858,7 +7011,7 @@ var LOCK_OPTIONS = {
|
|
|
6858
7011
|
randomize: true
|
|
6859
7012
|
},
|
|
6860
7013
|
onCompromised: /* @__PURE__ */ __name((error) => {
|
|
6861
|
-
|
|
7014
|
+
debugLogger13.debug(
|
|
6862
7015
|
`controller registry lock compromised: ${describe2(error)}`
|
|
6863
7016
|
);
|
|
6864
7017
|
}, "onCompromised")
|
|
@@ -6925,13 +7078,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6925
7078
|
try {
|
|
6926
7079
|
const stats = fsSync2.lstatSync(filePath);
|
|
6927
7080
|
if (!stats.isFile()) {
|
|
6928
|
-
|
|
7081
|
+
debugLogger13.debug(
|
|
6929
7082
|
`ignoring the controller registry at ${filePath}: not a regular file`
|
|
6930
7083
|
);
|
|
6931
7084
|
return emptyRegistry();
|
|
6932
7085
|
}
|
|
6933
7086
|
if (stats.size > MAX_REGISTRY_BYTES) {
|
|
6934
|
-
|
|
7087
|
+
debugLogger13.debug(
|
|
6935
7088
|
`ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
|
|
6936
7089
|
);
|
|
6937
7090
|
return emptyRegistry();
|
|
@@ -6939,7 +7092,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6939
7092
|
raw = fsSync2.readFileSync(filePath, "utf8");
|
|
6940
7093
|
} catch (error) {
|
|
6941
7094
|
if (!isNodeError(error) || error.code !== "ENOENT") {
|
|
6942
|
-
|
|
7095
|
+
debugLogger13.debug(
|
|
6943
7096
|
`could not read the controller registry at ${filePath}: ${describe2(error)}`
|
|
6944
7097
|
);
|
|
6945
7098
|
}
|
|
@@ -6949,14 +7102,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6949
7102
|
try {
|
|
6950
7103
|
parsed = JSON.parse(raw);
|
|
6951
7104
|
} catch (error) {
|
|
6952
|
-
|
|
7105
|
+
debugLogger13.debug(
|
|
6953
7106
|
`the controller registry at ${filePath} is not JSON: ${describe2(error)}`
|
|
6954
7107
|
);
|
|
6955
7108
|
return emptyRegistry();
|
|
6956
7109
|
}
|
|
6957
7110
|
if (!isRecord(parsed)) return emptyRegistry();
|
|
6958
7111
|
if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
|
|
6959
|
-
|
|
7112
|
+
debugLogger13.debug(
|
|
6960
7113
|
`ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
|
|
6961
7114
|
parsed["schemaVersion"]
|
|
6962
7115
|
)}`
|
|
@@ -6969,7 +7122,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6969
7122
|
for (const entry of controllers) {
|
|
6970
7123
|
const record = toValidRecord(entry);
|
|
6971
7124
|
if (record === null) {
|
|
6972
|
-
|
|
7125
|
+
debugLogger13.debug(
|
|
6973
7126
|
`skipping a malformed entry in the controller registry at ${filePath}`
|
|
6974
7127
|
);
|
|
6975
7128
|
continue;
|
|
@@ -7197,7 +7350,7 @@ __name(removePeerController, "removePeerController");
|
|
|
7197
7350
|
|
|
7198
7351
|
// packages/core/src/ipc/peer-drop-reports.ts
|
|
7199
7352
|
init_esbuild_shims();
|
|
7200
|
-
var
|
|
7353
|
+
var debugLogger14 = createDebugLogger("PEER_DROP_REPORTS");
|
|
7201
7354
|
var DROP_REPORT_WINDOW_MS = 6e4;
|
|
7202
7355
|
var DROP_RECEIPT_TRAIL_MS = 5e3;
|
|
7203
7356
|
var DROP_FLUSH_BOUND_MS = 500;
|
|
@@ -7339,7 +7492,7 @@ var DropReceiptCoalescer = class {
|
|
|
7339
7492
|
const now = this.now();
|
|
7340
7493
|
const age = now - batch.firstNotedAt;
|
|
7341
7494
|
if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
|
|
7342
|
-
|
|
7495
|
+
debugLogger14.debug(
|
|
7343
7496
|
`abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
|
|
7344
7497
|
);
|
|
7345
7498
|
this.clearBatch(batch);
|
|
@@ -7377,7 +7530,7 @@ var DropReceiptCoalescer = class {
|
|
|
7377
7530
|
try {
|
|
7378
7531
|
result = this.send(receipt);
|
|
7379
7532
|
} catch (error) {
|
|
7380
|
-
|
|
7533
|
+
debugLogger14.debug(`sending a dropped receipt threw: ${describe3(error)}`);
|
|
7381
7534
|
return;
|
|
7382
7535
|
}
|
|
7383
7536
|
if (!(result instanceof Promise)) return result;
|
|
@@ -7478,7 +7631,7 @@ var DropNoticeThrottle = class {
|
|
|
7478
7631
|
suppressed
|
|
7479
7632
|
});
|
|
7480
7633
|
} catch (error) {
|
|
7481
|
-
|
|
7634
|
+
debugLogger14.debug(`drop-notice listener threw: ${describe3(error)}`);
|
|
7482
7635
|
}
|
|
7483
7636
|
}
|
|
7484
7637
|
touch(key) {
|
|
@@ -7668,7 +7821,7 @@ var DroppedNotificationTally = class {
|
|
|
7668
7821
|
|
|
7669
7822
|
// packages/core/src/services/toolUseSummary.ts
|
|
7670
7823
|
init_esbuild_shims();
|
|
7671
|
-
var
|
|
7824
|
+
var debugLogger15 = createDebugLogger("TOOL_USE_SUMMARY");
|
|
7672
7825
|
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
7826
|
|
|
7674
7827
|
Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
|
|
@@ -7689,7 +7842,7 @@ async function generateToolUseSummary(params) {
|
|
|
7689
7842
|
}
|
|
7690
7843
|
const model = config.getFastModel();
|
|
7691
7844
|
if (!model) {
|
|
7692
|
-
|
|
7845
|
+
debugLogger15.debug("No fast model configured \u2014 skipping summary generation");
|
|
7693
7846
|
return null;
|
|
7694
7847
|
}
|
|
7695
7848
|
if (signal.aborted) {
|
|
@@ -7712,7 +7865,7 @@ ${toolSummaries}
|
|
|
7712
7865
|
|
|
7713
7866
|
Label:`;
|
|
7714
7867
|
if (!config.getLlmClient()) {
|
|
7715
|
-
|
|
7868
|
+
debugLogger15.debug("No gemini client available \u2014 skipping");
|
|
7716
7869
|
return null;
|
|
7717
7870
|
}
|
|
7718
7871
|
const result = await runSideQuery(config, {
|
|
@@ -7731,19 +7884,19 @@ Label:`;
|
|
|
7731
7884
|
});
|
|
7732
7885
|
if (signal.aborted) return null;
|
|
7733
7886
|
if (!result.text) {
|
|
7734
|
-
|
|
7887
|
+
debugLogger15.debug("Summary generation returned empty result");
|
|
7735
7888
|
return null;
|
|
7736
7889
|
}
|
|
7737
7890
|
const cleaned = cleanSummary(result.text);
|
|
7738
7891
|
if (!cleaned) {
|
|
7739
|
-
|
|
7892
|
+
debugLogger15.debug(`Summary cleaned to empty: raw="${result.text}"`);
|
|
7740
7893
|
return null;
|
|
7741
7894
|
}
|
|
7742
|
-
|
|
7895
|
+
debugLogger15.debug(`Summary generated: "${cleaned}"`);
|
|
7743
7896
|
return cleaned;
|
|
7744
7897
|
} catch (err) {
|
|
7745
7898
|
if (signal.aborted) return null;
|
|
7746
|
-
|
|
7899
|
+
debugLogger15.warn(
|
|
7747
7900
|
`Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
|
|
7748
7901
|
);
|
|
7749
7902
|
return null;
|
|
@@ -7817,7 +7970,7 @@ __name(cleanSummary, "cleanSummary");
|
|
|
7817
7970
|
|
|
7818
7971
|
// packages/core/src/services/usage-dashboard-service.ts
|
|
7819
7972
|
init_esbuild_shims();
|
|
7820
|
-
var
|
|
7973
|
+
var debugLogger16 = createDebugLogger("USAGE_DASHBOARD");
|
|
7821
7974
|
var DEFAULT_HEATMAP_DAYS = 183;
|
|
7822
7975
|
var MAX_DAILY_DAYS = 92;
|
|
7823
7976
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
@@ -7942,7 +8095,7 @@ function buildUsageDashboard(records, options = {}) {
|
|
|
7942
8095
|
);
|
|
7943
8096
|
const daily = buildDaily(records, dailyStart, now);
|
|
7944
8097
|
const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
|
|
7945
|
-
|
|
8098
|
+
debugLogger16.debug(
|
|
7946
8099
|
`built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
|
|
7947
8100
|
);
|
|
7948
8101
|
return {
|
|
@@ -8278,7 +8431,7 @@ import * as path8 from "node:path";
|
|
|
8278
8431
|
var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
|
|
8279
8432
|
var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
|
|
8280
8433
|
var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
|
|
8281
|
-
var
|
|
8434
|
+
var debugLogger17 = createDebugLogger("CHANNEL_MEMORY");
|
|
8282
8435
|
var pendingMutations = /* @__PURE__ */ new Map();
|
|
8283
8436
|
var LOCK_OPTIONS2 = {
|
|
8284
8437
|
realpath: false,
|
|
@@ -8291,7 +8444,7 @@ var LOCK_OPTIONS2 = {
|
|
|
8291
8444
|
},
|
|
8292
8445
|
stale: 5e3,
|
|
8293
8446
|
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
8294
|
-
|
|
8447
|
+
debugLogger17.warn("channel memory lock compromised:", err);
|
|
8295
8448
|
}, "onCompromised")
|
|
8296
8449
|
};
|
|
8297
8450
|
function isMissingFile(error) {
|
|
@@ -9273,7 +9426,7 @@ init_esbuild_shims();
|
|
|
9273
9426
|
import * as fs9 from "node:fs";
|
|
9274
9427
|
import * as path11 from "path";
|
|
9275
9428
|
import { pathToFileURL } from "url";
|
|
9276
|
-
var
|
|
9429
|
+
var debugLogger18 = createDebugLogger("LSP");
|
|
9277
9430
|
var MAX_TCP_PORT = 65535;
|
|
9278
9431
|
var LspConfigLoader = class {
|
|
9279
9432
|
constructor(workspaceRoot) {
|
|
@@ -9298,7 +9451,7 @@ var LspConfigLoader = class {
|
|
|
9298
9451
|
forceTrustRequired: true
|
|
9299
9452
|
});
|
|
9300
9453
|
} catch (error) {
|
|
9301
|
-
|
|
9454
|
+
debugLogger18.warn("Failed to load user .lsp.json config:", error);
|
|
9302
9455
|
return [];
|
|
9303
9456
|
}
|
|
9304
9457
|
}
|
|
@@ -9335,7 +9488,7 @@ var LspConfigLoader = class {
|
|
|
9335
9488
|
lspServers
|
|
9336
9489
|
);
|
|
9337
9490
|
if (!fs9.existsSync(configPath)) {
|
|
9338
|
-
|
|
9491
|
+
debugLogger18.warn(
|
|
9339
9492
|
`LSP config not found for ${originBase}: ${configPath}`
|
|
9340
9493
|
);
|
|
9341
9494
|
continue;
|
|
@@ -9351,7 +9504,7 @@ var LspConfigLoader = class {
|
|
|
9351
9504
|
)
|
|
9352
9505
|
);
|
|
9353
9506
|
} catch (error) {
|
|
9354
|
-
|
|
9507
|
+
debugLogger18.warn(
|
|
9355
9508
|
`Failed to load extension LSP config from ${configPath}:`,
|
|
9356
9509
|
error
|
|
9357
9510
|
);
|
|
@@ -9365,7 +9518,7 @@ var LspConfigLoader = class {
|
|
|
9365
9518
|
...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
|
|
9366
9519
|
);
|
|
9367
9520
|
} else {
|
|
9368
|
-
|
|
9521
|
+
debugLogger18.warn(
|
|
9369
9522
|
`LSP config for ${originBase} must be an object or a JSON file path.`
|
|
9370
9523
|
);
|
|
9371
9524
|
}
|
|
@@ -9503,13 +9656,13 @@ var LspConfigLoader = class {
|
|
|
9503
9656
|
const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
|
|
9504
9657
|
const socket = this.normalizeSocketOptions(spec);
|
|
9505
9658
|
if (transport === "stdio" && !command) {
|
|
9506
|
-
|
|
9659
|
+
debugLogger18.warn(
|
|
9507
9660
|
`LSP config error in ${origin}: ${name} missing command`
|
|
9508
9661
|
);
|
|
9509
9662
|
return null;
|
|
9510
9663
|
}
|
|
9511
9664
|
if (transport !== "stdio" && !socket) {
|
|
9512
|
-
|
|
9665
|
+
debugLogger18.warn(
|
|
9513
9666
|
`LSP config error in ${origin}: ${name} missing socket info`
|
|
9514
9667
|
);
|
|
9515
9668
|
return null;
|
|
@@ -9651,7 +9804,7 @@ var LspConfigLoader = class {
|
|
|
9651
9804
|
if (resolved === root || resolved.startsWith(root + path11.sep)) {
|
|
9652
9805
|
return resolved;
|
|
9653
9806
|
}
|
|
9654
|
-
|
|
9807
|
+
debugLogger18.warn(
|
|
9655
9808
|
`LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
|
|
9656
9809
|
);
|
|
9657
9810
|
return this.workspaceRoot;
|
|
@@ -9663,7 +9816,7 @@ init_esbuild_shims();
|
|
|
9663
9816
|
import * as cp from "node:child_process";
|
|
9664
9817
|
import * as net2 from "node:net";
|
|
9665
9818
|
import { StringDecoder } from "node:string_decoder";
|
|
9666
|
-
var
|
|
9819
|
+
var debugLogger19 = createDebugLogger("LSP");
|
|
9667
9820
|
var MAX_STDERR_TAIL_BYTES = 8192;
|
|
9668
9821
|
function trimTail(value, maxBytes) {
|
|
9669
9822
|
const buffer = Buffer.from(value, "utf8");
|
|
@@ -9728,7 +9881,7 @@ var JsonRpcConnection = class {
|
|
|
9728
9881
|
try {
|
|
9729
9882
|
this.disposer?.();
|
|
9730
9883
|
} catch (error) {
|
|
9731
|
-
|
|
9884
|
+
debugLogger19.warn("LSP disposer failed:", error);
|
|
9732
9885
|
}
|
|
9733
9886
|
}
|
|
9734
9887
|
sendRequest(method, params) {
|
|
@@ -9855,7 +10008,7 @@ var JsonRpcConnection = class {
|
|
|
9855
10008
|
try {
|
|
9856
10009
|
this.writer(header + json);
|
|
9857
10010
|
} catch (error) {
|
|
9858
|
-
|
|
10011
|
+
debugLogger19.warn("LSP write failed:", error);
|
|
9859
10012
|
this.end();
|
|
9860
10013
|
}
|
|
9861
10014
|
}
|
|
@@ -9914,14 +10067,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
9914
10067
|
);
|
|
9915
10068
|
});
|
|
9916
10069
|
processInstance.stderr?.on("error", (err) => {
|
|
9917
|
-
|
|
10070
|
+
debugLogger19.warn(`LSP stderr stream error for ${command}:`, err);
|
|
9918
10071
|
});
|
|
9919
10072
|
const connection = new JsonRpcConnection(
|
|
9920
10073
|
(payload) => processInstance.stdin?.write(payload),
|
|
9921
10074
|
() => processInstance.stdin?.end()
|
|
9922
10075
|
);
|
|
9923
10076
|
processInstance.stdin.on("error", (err) => {
|
|
9924
|
-
|
|
10077
|
+
debugLogger19.warn(`LSP stdin stream error for ${command}:`, err);
|
|
9925
10078
|
connection.end();
|
|
9926
10079
|
});
|
|
9927
10080
|
connection.listen(processInstance.stdout);
|
|
@@ -10004,7 +10157,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
10004
10157
|
try {
|
|
10005
10158
|
await lspConnection.connection.shutdown();
|
|
10006
10159
|
} catch (e) {
|
|
10007
|
-
|
|
10160
|
+
debugLogger19.warn("LSP shutdown failed:", e);
|
|
10008
10161
|
} finally {
|
|
10009
10162
|
lspConnection.connection.end();
|
|
10010
10163
|
}
|
|
@@ -10682,7 +10835,7 @@ import { spawn as spawn2 } from "node:child_process";
|
|
|
10682
10835
|
import * as fs10 from "node:fs";
|
|
10683
10836
|
import * as path12 from "path";
|
|
10684
10837
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
10685
|
-
var
|
|
10838
|
+
var debugLogger20 = createDebugLogger("LSP");
|
|
10686
10839
|
var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
10687
10840
|
"DYLD_INSERT_LIBRARIES",
|
|
10688
10841
|
"DYLD_LIBRARY_PATH",
|
|
@@ -10719,7 +10872,7 @@ var LspServerManager = class {
|
|
|
10719
10872
|
});
|
|
10720
10873
|
this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
|
|
10721
10874
|
}
|
|
10722
|
-
|
|
10875
|
+
debugLogger20.info(
|
|
10723
10876
|
`Prepared ${configs.length} LSP server config(s): ${formatServerNames(
|
|
10724
10877
|
configs.map((config) => config.name)
|
|
10725
10878
|
)}`
|
|
@@ -10728,7 +10881,7 @@ var LspServerManager = class {
|
|
|
10728
10881
|
/** Drops all prepared handles without attempting process shutdown. */
|
|
10729
10882
|
clearServerHandles() {
|
|
10730
10883
|
if (this.serverHandles.size > 0) {
|
|
10731
|
-
|
|
10884
|
+
debugLogger20.info(
|
|
10732
10885
|
`Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
|
|
10733
10886
|
Array.from(this.serverHandles.keys())
|
|
10734
10887
|
)}`
|
|
@@ -10789,7 +10942,7 @@ var LspServerManager = class {
|
|
|
10789
10942
|
* before their handles are deleted or replaced.
|
|
10790
10943
|
*/
|
|
10791
10944
|
async doReconcileServerConfigs(configs) {
|
|
10792
|
-
|
|
10945
|
+
debugLogger20.info(
|
|
10793
10946
|
`Reconciling LSP server configs: desired=${formatServerNames(
|
|
10794
10947
|
configs.map((config) => config.name)
|
|
10795
10948
|
)}`
|
|
@@ -10861,7 +11014,7 @@ var LspServerManager = class {
|
|
|
10861
11014
|
result.added.push(name);
|
|
10862
11015
|
}
|
|
10863
11016
|
}
|
|
10864
|
-
|
|
11017
|
+
debugLogger20.info(
|
|
10865
11018
|
`LSP reconcile result: added=${formatServerNames(
|
|
10866
11019
|
result.added
|
|
10867
11020
|
)}, removed=${formatServerNames(
|
|
@@ -10915,7 +11068,7 @@ var LspServerManager = class {
|
|
|
10915
11068
|
handle.warmedUp = true;
|
|
10916
11069
|
return uri;
|
|
10917
11070
|
} catch (error) {
|
|
10918
|
-
|
|
11071
|
+
debugLogger20.warn("TypeScript server warm-up failed:", error);
|
|
10919
11072
|
return void 0;
|
|
10920
11073
|
}
|
|
10921
11074
|
}
|
|
@@ -10962,7 +11115,7 @@ var LspServerManager = class {
|
|
|
10962
11115
|
async doStartServer(name, handle) {
|
|
10963
11116
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
10964
11117
|
if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
|
|
10965
|
-
|
|
11118
|
+
debugLogger20.warn(
|
|
10966
11119
|
`LSP server ${name} requires trusted workspace, skipping startup`
|
|
10967
11120
|
);
|
|
10968
11121
|
handle.status = "FAILED";
|
|
@@ -10975,7 +11128,7 @@ var LspServerManager = class {
|
|
|
10975
11128
|
workspaceTrusted
|
|
10976
11129
|
);
|
|
10977
11130
|
if (!trusted) {
|
|
10978
|
-
|
|
11131
|
+
debugLogger20.warn(
|
|
10979
11132
|
`Workspace trust check failed, not starting LSP server ${name}`
|
|
10980
11133
|
);
|
|
10981
11134
|
handle.status = "FAILED";
|
|
@@ -10985,7 +11138,7 @@ var LspServerManager = class {
|
|
|
10985
11138
|
if (handle.config.command) {
|
|
10986
11139
|
const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
|
|
10987
11140
|
if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
|
|
10988
|
-
|
|
11141
|
+
debugLogger20.warn(
|
|
10989
11142
|
`LSP server ${name} command path is unsafe: ${handle.config.command}`
|
|
10990
11143
|
);
|
|
10991
11144
|
handle.status = "FAILED";
|
|
@@ -10997,7 +11150,7 @@ var LspServerManager = class {
|
|
|
10997
11150
|
handle.config.env,
|
|
10998
11151
|
commandCwd
|
|
10999
11152
|
)) {
|
|
11000
|
-
|
|
11153
|
+
debugLogger20.warn(
|
|
11001
11154
|
`LSP server ${name} command not found: ${handle.config.command}`
|
|
11002
11155
|
);
|
|
11003
11156
|
handle.status = "FAILED";
|
|
@@ -11012,7 +11165,7 @@ var LspServerManager = class {
|
|
|
11012
11165
|
handle.processDiagnostics = void 0;
|
|
11013
11166
|
handle.warmedUp = false;
|
|
11014
11167
|
handle.status = "IN_PROGRESS";
|
|
11015
|
-
|
|
11168
|
+
debugLogger20.info(
|
|
11016
11169
|
`Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
|
|
11017
11170
|
handle.config.languages
|
|
11018
11171
|
)}`
|
|
@@ -11037,7 +11190,7 @@ var LspServerManager = class {
|
|
|
11037
11190
|
}
|
|
11038
11191
|
handle.status = "READY";
|
|
11039
11192
|
this.attachRestartHandler(name, handle);
|
|
11040
|
-
|
|
11193
|
+
debugLogger20.info(`LSP server ${name} started successfully`);
|
|
11041
11194
|
} catch (error) {
|
|
11042
11195
|
handle.status = "FAILED";
|
|
11043
11196
|
handle.error = error;
|
|
@@ -11051,21 +11204,21 @@ var LspServerManager = class {
|
|
|
11051
11204
|
}
|
|
11052
11205
|
await this.releaseServerResources(name, handle, false);
|
|
11053
11206
|
if (handle.processDiagnostics) {
|
|
11054
|
-
|
|
11207
|
+
debugLogger20.error(
|
|
11055
11208
|
`LSP server ${name} process diagnostics:`,
|
|
11056
11209
|
handle.processDiagnostics
|
|
11057
11210
|
);
|
|
11058
11211
|
}
|
|
11059
11212
|
handle.connection = void 0;
|
|
11060
11213
|
handle.process = void 0;
|
|
11061
|
-
|
|
11214
|
+
debugLogger20.error(`LSP server ${name} failed to start:`, error);
|
|
11062
11215
|
}
|
|
11063
11216
|
}
|
|
11064
11217
|
/**
|
|
11065
11218
|
* Stops a server and resets runtime-only handle state.
|
|
11066
11219
|
*/
|
|
11067
11220
|
async stopServer(name, handle) {
|
|
11068
|
-
|
|
11221
|
+
debugLogger20.info(`Stopping LSP server ${name}`);
|
|
11069
11222
|
handle.stopRequested = true;
|
|
11070
11223
|
handle.startupAbortController?.abort();
|
|
11071
11224
|
if (handle.startingPromise) {
|
|
@@ -11078,7 +11231,7 @@ var LspServerManager = class {
|
|
|
11078
11231
|
handle.status = "NOT_STARTED";
|
|
11079
11232
|
handle.warmedUp = false;
|
|
11080
11233
|
handle.restartAttempts = 0;
|
|
11081
|
-
|
|
11234
|
+
debugLogger20.info(`LSP server ${name} stopped`);
|
|
11082
11235
|
}
|
|
11083
11236
|
async abortAndWaitForStartup(handle) {
|
|
11084
11237
|
if (!handle.startingPromise) {
|
|
@@ -11102,14 +11255,14 @@ var LspServerManager = class {
|
|
|
11102
11255
|
handle.connection.end();
|
|
11103
11256
|
}
|
|
11104
11257
|
} catch (error) {
|
|
11105
|
-
|
|
11258
|
+
debugLogger20.error(`Error closing LSP server ${name}:`, error);
|
|
11106
11259
|
}
|
|
11107
11260
|
}
|
|
11108
11261
|
if (handle.process && handle.process.exitCode === null) {
|
|
11109
11262
|
try {
|
|
11110
11263
|
handle.process.kill();
|
|
11111
11264
|
} catch (error) {
|
|
11112
|
-
|
|
11265
|
+
debugLogger20.warn(`Error killing LSP server ${name} process:`, error);
|
|
11113
11266
|
}
|
|
11114
11267
|
}
|
|
11115
11268
|
}
|
|
@@ -11155,7 +11308,7 @@ var LspServerManager = class {
|
|
|
11155
11308
|
}
|
|
11156
11309
|
handle.processExitedUnexpectedly = true;
|
|
11157
11310
|
if (!handle.config.restartOnCrash) {
|
|
11158
|
-
|
|
11311
|
+
debugLogger20.warn(
|
|
11159
11312
|
`LSP server ${name} exited but restartOnCrash is disabled`
|
|
11160
11313
|
);
|
|
11161
11314
|
handle.status = "FAILED";
|
|
@@ -11164,7 +11317,7 @@ var LspServerManager = class {
|
|
|
11164
11317
|
}
|
|
11165
11318
|
const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
|
|
11166
11319
|
if (maxRestarts <= 0) {
|
|
11167
|
-
|
|
11320
|
+
debugLogger20.warn(
|
|
11168
11321
|
`LSP server ${name} exited but maxRestarts is ${maxRestarts}`
|
|
11169
11322
|
);
|
|
11170
11323
|
handle.status = "FAILED";
|
|
@@ -11173,7 +11326,7 @@ var LspServerManager = class {
|
|
|
11173
11326
|
}
|
|
11174
11327
|
const attempts = handle.restartAttempts ?? 0;
|
|
11175
11328
|
if (attempts >= maxRestarts) {
|
|
11176
|
-
|
|
11329
|
+
debugLogger20.warn(
|
|
11177
11330
|
`LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
|
|
11178
11331
|
);
|
|
11179
11332
|
handle.status = "FAILED";
|
|
@@ -11181,7 +11334,7 @@ var LspServerManager = class {
|
|
|
11181
11334
|
return;
|
|
11182
11335
|
}
|
|
11183
11336
|
handle.restartAttempts = attempts + 1;
|
|
11184
|
-
|
|
11337
|
+
debugLogger20.warn(
|
|
11185
11338
|
`LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
|
|
11186
11339
|
);
|
|
11187
11340
|
this.enqueueCrashRestart(name, handle);
|
|
@@ -11229,7 +11382,7 @@ var LspServerManager = class {
|
|
|
11229
11382
|
const next = this.reconcileQueue.then(restart, restart);
|
|
11230
11383
|
this.reconcileQueue = next.catch(() => void 0);
|
|
11231
11384
|
void next.catch((error) => {
|
|
11232
|
-
|
|
11385
|
+
debugLogger20.warn(`LSP server ${name} crash restart failed:`, error);
|
|
11233
11386
|
});
|
|
11234
11387
|
}
|
|
11235
11388
|
resetHandle(handle) {
|
|
@@ -11237,14 +11390,14 @@ var LspServerManager = class {
|
|
|
11237
11390
|
try {
|
|
11238
11391
|
handle.connection.end();
|
|
11239
11392
|
} catch (error) {
|
|
11240
|
-
|
|
11393
|
+
debugLogger20.warn("Error closing LSP connection during reset:", error);
|
|
11241
11394
|
}
|
|
11242
11395
|
}
|
|
11243
11396
|
if (handle.process && handle.process.exitCode === null) {
|
|
11244
11397
|
try {
|
|
11245
11398
|
handle.process.kill();
|
|
11246
11399
|
} catch (error) {
|
|
11247
|
-
|
|
11400
|
+
debugLogger20.warn("Error killing LSP process during reset:", error);
|
|
11248
11401
|
}
|
|
11249
11402
|
}
|
|
11250
11403
|
handle.connection = void 0;
|
|
@@ -11263,7 +11416,7 @@ var LspServerManager = class {
|
|
|
11263
11416
|
const filteredEnv = {};
|
|
11264
11417
|
for (const [key, value] of Object.entries(env2)) {
|
|
11265
11418
|
if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
|
|
11266
|
-
|
|
11419
|
+
debugLogger20.warn(
|
|
11267
11420
|
`Ignoring security-sensitive LSP server env override: ${key}`
|
|
11268
11421
|
);
|
|
11269
11422
|
continue;
|
|
@@ -11289,7 +11442,7 @@ var LspServerManager = class {
|
|
|
11289
11442
|
for (const [key, value] of Object.entries(env2)) {
|
|
11290
11443
|
const normalizedKey = key.toUpperCase();
|
|
11291
11444
|
if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
|
|
11292
|
-
|
|
11445
|
+
debugLogger20.warn(
|
|
11293
11446
|
`Ignoring security-sensitive LSP command probe env override: ${key}`
|
|
11294
11447
|
);
|
|
11295
11448
|
continue;
|
|
@@ -11538,7 +11691,7 @@ var LspServerManager = class {
|
|
|
11538
11691
|
try {
|
|
11539
11692
|
process3.kill();
|
|
11540
11693
|
} catch (error) {
|
|
11541
|
-
|
|
11694
|
+
debugLogger20.warn(
|
|
11542
11695
|
"Error killing aborted LSP socket process:",
|
|
11543
11696
|
error
|
|
11544
11697
|
);
|
|
@@ -11711,12 +11864,12 @@ var LspServerManager = class {
|
|
|
11711
11864
|
return true;
|
|
11712
11865
|
}
|
|
11713
11866
|
if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
|
|
11714
|
-
|
|
11867
|
+
debugLogger20.warn(
|
|
11715
11868
|
`Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
|
|
11716
11869
|
);
|
|
11717
11870
|
return false;
|
|
11718
11871
|
}
|
|
11719
|
-
|
|
11872
|
+
debugLogger20.info(
|
|
11720
11873
|
`Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
|
|
11721
11874
|
);
|
|
11722
11875
|
return true;
|
|
@@ -11961,7 +12114,7 @@ import * as path13 from "path";
|
|
|
11961
12114
|
import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
|
|
11962
12115
|
import * as fs11 from "node:fs";
|
|
11963
12116
|
import { promises as fsp } from "node:fs";
|
|
11964
|
-
var
|
|
12117
|
+
var debugLogger21 = createDebugLogger("LSP");
|
|
11965
12118
|
var LANGUAGE_ID_TO_EXTENSIONS = {
|
|
11966
12119
|
typescript: ["ts", "tsx"],
|
|
11967
12120
|
typescriptreact: ["tsx"],
|
|
@@ -12019,7 +12172,7 @@ var NativeLspService = class {
|
|
|
12019
12172
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12020
12173
|
this.serverManager.clearServerHandles();
|
|
12021
12174
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
12022
|
-
|
|
12175
|
+
debugLogger21.warn(
|
|
12023
12176
|
"Workspace is not trusted, skipping LSP server discovery"
|
|
12024
12177
|
);
|
|
12025
12178
|
return;
|
|
@@ -12037,7 +12190,7 @@ var NativeLspService = class {
|
|
|
12037
12190
|
serverConfigs,
|
|
12038
12191
|
workspaceTrusted
|
|
12039
12192
|
);
|
|
12040
|
-
|
|
12193
|
+
debugLogger21.info(
|
|
12041
12194
|
`Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
|
|
12042
12195
|
admitted.map((config) => config.name)
|
|
12043
12196
|
)}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
|
|
@@ -12072,7 +12225,7 @@ var NativeLspService = class {
|
|
|
12072
12225
|
async doReinitialize(signal) {
|
|
12073
12226
|
this.throwIfReinitializeAborted(signal);
|
|
12074
12227
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12075
|
-
|
|
12228
|
+
debugLogger21.info(
|
|
12076
12229
|
`Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
|
|
12077
12230
|
);
|
|
12078
12231
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
@@ -12091,7 +12244,7 @@ var NativeLspService = class {
|
|
|
12091
12244
|
},
|
|
12092
12245
|
skipped: []
|
|
12093
12246
|
};
|
|
12094
|
-
|
|
12247
|
+
debugLogger21.info(
|
|
12095
12248
|
`LSP reinitialize result: added=<none>, removed=${formatServerNames2(
|
|
12096
12249
|
removed
|
|
12097
12250
|
)}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
|
|
@@ -12133,7 +12286,7 @@ var NativeLspService = class {
|
|
|
12133
12286
|
signal
|
|
12134
12287
|
);
|
|
12135
12288
|
this.throwIfReinitializeAborted(signal);
|
|
12136
|
-
|
|
12289
|
+
debugLogger21.info(
|
|
12137
12290
|
`LSP reinitialize result: added=${formatServerNames2(
|
|
12138
12291
|
reconcile.added
|
|
12139
12292
|
)}, removed=${formatServerNames2(
|
|
@@ -12153,7 +12306,7 @@ var NativeLspService = class {
|
|
|
12153
12306
|
const skipped = [];
|
|
12154
12307
|
for (const config of configs) {
|
|
12155
12308
|
if (!workspaceTrusted && config.trustRequired) {
|
|
12156
|
-
|
|
12309
|
+
debugLogger21.warn(
|
|
12157
12310
|
`LSP server ${config.name} requires trusted workspace, skipping`
|
|
12158
12311
|
);
|
|
12159
12312
|
skipped.push({ name: config.name, reason: "server_trust_required" });
|
|
@@ -12198,7 +12351,7 @@ var NativeLspService = class {
|
|
|
12198
12351
|
try {
|
|
12199
12352
|
openedAny = this.sendDocumentOpen(name, handle, uri) || openedAny;
|
|
12200
12353
|
} catch (error) {
|
|
12201
|
-
|
|
12354
|
+
debugLogger21.warn(
|
|
12202
12355
|
`Failed to replay document ${uri} for LSP server ${name}:`,
|
|
12203
12356
|
error
|
|
12204
12357
|
);
|
|
@@ -12327,14 +12480,14 @@ var NativeLspService = class {
|
|
|
12327
12480
|
try {
|
|
12328
12481
|
filePath = fileURLToPath(uri);
|
|
12329
12482
|
} catch (error) {
|
|
12330
|
-
|
|
12483
|
+
debugLogger21.warn(`Failed to resolve file path for ${uri}:`, error);
|
|
12331
12484
|
return false;
|
|
12332
12485
|
}
|
|
12333
12486
|
let text;
|
|
12334
12487
|
try {
|
|
12335
12488
|
text = fs11.readFileSync(filePath, "utf-8");
|
|
12336
12489
|
} catch (error) {
|
|
12337
|
-
|
|
12490
|
+
debugLogger21.warn(
|
|
12338
12491
|
`Failed to read file for LSP didOpen: ${filePath}`,
|
|
12339
12492
|
error
|
|
12340
12493
|
);
|
|
@@ -12562,7 +12715,7 @@ var NativeLspService = class {
|
|
|
12562
12715
|
}
|
|
12563
12716
|
}
|
|
12564
12717
|
} catch (error) {
|
|
12565
|
-
|
|
12718
|
+
debugLogger21.warn(
|
|
12566
12719
|
`LSP workspace/symbol failed for ${serverName}:`,
|
|
12567
12720
|
error
|
|
12568
12721
|
);
|
|
@@ -12613,7 +12766,7 @@ var NativeLspService = class {
|
|
|
12613
12766
|
return definitions.slice(0, limit);
|
|
12614
12767
|
}
|
|
12615
12768
|
} catch (error) {
|
|
12616
|
-
|
|
12769
|
+
debugLogger21.warn(
|
|
12617
12770
|
`LSP textDocument/definition failed for ${name}:`,
|
|
12618
12771
|
error
|
|
12619
12772
|
);
|
|
@@ -12667,7 +12820,7 @@ var NativeLspService = class {
|
|
|
12667
12820
|
return refs.slice(0, limit);
|
|
12668
12821
|
}
|
|
12669
12822
|
} catch (error) {
|
|
12670
|
-
|
|
12823
|
+
debugLogger21.warn(
|
|
12671
12824
|
`LSP textDocument/references failed for ${name}:`,
|
|
12672
12825
|
error
|
|
12673
12826
|
);
|
|
@@ -12708,7 +12861,7 @@ var NativeLspService = class {
|
|
|
12708
12861
|
return normalized2;
|
|
12709
12862
|
}
|
|
12710
12863
|
} catch (error) {
|
|
12711
|
-
|
|
12864
|
+
debugLogger21.warn(`LSP textDocument/hover failed for ${name}:`, error);
|
|
12712
12865
|
}
|
|
12713
12866
|
}
|
|
12714
12867
|
return null;
|
|
@@ -12768,7 +12921,7 @@ var NativeLspService = class {
|
|
|
12768
12921
|
return symbols.slice(0, limit);
|
|
12769
12922
|
}
|
|
12770
12923
|
} catch (error) {
|
|
12771
|
-
|
|
12924
|
+
debugLogger21.warn(
|
|
12772
12925
|
`LSP textDocument/documentSymbol failed for ${name}:`,
|
|
12773
12926
|
error
|
|
12774
12927
|
);
|
|
@@ -12822,7 +12975,7 @@ var NativeLspService = class {
|
|
|
12822
12975
|
return implementations.slice(0, limit);
|
|
12823
12976
|
}
|
|
12824
12977
|
} catch (error) {
|
|
12825
|
-
|
|
12978
|
+
debugLogger21.warn(
|
|
12826
12979
|
`LSP textDocument/implementation failed for ${name}:`,
|
|
12827
12980
|
error
|
|
12828
12981
|
);
|
|
@@ -12876,7 +13029,7 @@ var NativeLspService = class {
|
|
|
12876
13029
|
return items.slice(0, limit);
|
|
12877
13030
|
}
|
|
12878
13031
|
} catch (error) {
|
|
12879
|
-
|
|
13032
|
+
debugLogger21.warn(
|
|
12880
13033
|
`LSP textDocument/prepareCallHierarchy failed for ${name}:`,
|
|
12881
13034
|
error
|
|
12882
13035
|
);
|
|
@@ -12916,7 +13069,7 @@ var NativeLspService = class {
|
|
|
12916
13069
|
return calls.slice(0, limit);
|
|
12917
13070
|
}
|
|
12918
13071
|
} catch (error) {
|
|
12919
|
-
|
|
13072
|
+
debugLogger21.warn(
|
|
12920
13073
|
`LSP callHierarchy/incomingCalls failed for ${name}:`,
|
|
12921
13074
|
error
|
|
12922
13075
|
);
|
|
@@ -12956,7 +13109,7 @@ var NativeLspService = class {
|
|
|
12956
13109
|
return calls.slice(0, limit);
|
|
12957
13110
|
}
|
|
12958
13111
|
} catch (error) {
|
|
12959
|
-
|
|
13112
|
+
debugLogger21.warn(
|
|
12960
13113
|
`LSP callHierarchy/outgoingCalls failed for ${name}:`,
|
|
12961
13114
|
error
|
|
12962
13115
|
);
|
|
@@ -12996,7 +13149,7 @@ var NativeLspService = class {
|
|
|
12996
13149
|
}
|
|
12997
13150
|
}
|
|
12998
13151
|
} catch (error) {
|
|
12999
|
-
|
|
13152
|
+
debugLogger21.warn(
|
|
13000
13153
|
`LSP textDocument/diagnostic failed for ${name}:`,
|
|
13001
13154
|
error
|
|
13002
13155
|
);
|
|
@@ -13038,7 +13191,7 @@ var NativeLspService = class {
|
|
|
13038
13191
|
}
|
|
13039
13192
|
}
|
|
13040
13193
|
} catch (error) {
|
|
13041
|
-
|
|
13194
|
+
debugLogger21.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
|
|
13042
13195
|
}
|
|
13043
13196
|
if (results.length >= limit) {
|
|
13044
13197
|
break;
|
|
@@ -13088,7 +13241,7 @@ var NativeLspService = class {
|
|
|
13088
13241
|
return actions.slice(0, limit);
|
|
13089
13242
|
}
|
|
13090
13243
|
} catch (error) {
|
|
13091
|
-
|
|
13244
|
+
debugLogger21.warn(
|
|
13092
13245
|
`LSP textDocument/codeAction failed for ${name}:`,
|
|
13093
13246
|
error
|
|
13094
13247
|
);
|
|
@@ -13116,7 +13269,7 @@ var NativeLspService = class {
|
|
|
13116
13269
|
}
|
|
13117
13270
|
return true;
|
|
13118
13271
|
} catch (error) {
|
|
13119
|
-
|
|
13272
|
+
debugLogger21.error("Failed to apply workspace edit:", error);
|
|
13120
13273
|
return false;
|
|
13121
13274
|
}
|
|
13122
13275
|
}
|
|
@@ -13379,7 +13532,7 @@ __name(createFollowupController, "createFollowupController");
|
|
|
13379
13532
|
|
|
13380
13533
|
// packages/core/src/followup/suggestionGenerator.ts
|
|
13381
13534
|
init_esbuild_shims();
|
|
13382
|
-
var
|
|
13535
|
+
var debugLogger22 = createDebugLogger("FOLLOWUP");
|
|
13383
13536
|
var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
|
|
13384
13537
|
|
|
13385
13538
|
FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
|
|
@@ -13441,7 +13594,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13441
13594
|
const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
|
|
13442
13595
|
const modelOverride = options?.model;
|
|
13443
13596
|
const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
|
|
13444
|
-
|
|
13597
|
+
debugLogger22.debug(
|
|
13445
13598
|
`Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
|
|
13446
13599
|
);
|
|
13447
13600
|
const raw = cacheSafe ? await generateViaForkedQuery(
|
|
@@ -13457,23 +13610,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13457
13610
|
);
|
|
13458
13611
|
const suggestion = typeof raw === "string" ? raw.trim() : null;
|
|
13459
13612
|
if (!suggestion) {
|
|
13460
|
-
|
|
13613
|
+
debugLogger22.debug("Suggestion generation returned empty result");
|
|
13461
13614
|
return { suggestion: null, filterReason: "empty" };
|
|
13462
13615
|
}
|
|
13463
13616
|
const filterReason = getFilterReason(suggestion);
|
|
13464
13617
|
if (filterReason) {
|
|
13465
|
-
|
|
13618
|
+
debugLogger22.debug(
|
|
13466
13619
|
`Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
|
|
13467
13620
|
);
|
|
13468
13621
|
return { suggestion: null, filterReason };
|
|
13469
13622
|
}
|
|
13470
|
-
|
|
13623
|
+
debugLogger22.debug(`Suggestion accepted: "${suggestion}"`);
|
|
13471
13624
|
return { suggestion };
|
|
13472
13625
|
} catch (error) {
|
|
13473
13626
|
if (abortSignal.aborted) {
|
|
13474
13627
|
return { suggestion: null };
|
|
13475
13628
|
}
|
|
13476
|
-
|
|
13629
|
+
debugLogger22.warn("Suggestion generation failed:", error);
|
|
13477
13630
|
return { suggestion: null, filterReason: "error" };
|
|
13478
13631
|
}
|
|
13479
13632
|
}
|
|
@@ -13812,7 +13965,7 @@ __name(rewritePathArgs, "rewritePathArgs");
|
|
|
13812
13965
|
|
|
13813
13966
|
// packages/core/src/followup/speculation.ts
|
|
13814
13967
|
init_esbuild_shims();
|
|
13815
|
-
var
|
|
13968
|
+
var debugLogger23 = createDebugLogger("SPECULATION");
|
|
13816
13969
|
var MAX_SPECULATION_TURNS = 20;
|
|
13817
13970
|
var MAX_SPECULATION_MESSAGES = 100;
|
|
13818
13971
|
function observeSpeculationProducer(params) {
|
|
@@ -14060,7 +14213,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
|
|
|
14060
14213
|
break;
|
|
14061
14214
|
}
|
|
14062
14215
|
if (!guardDecision.allowed) {
|
|
14063
|
-
|
|
14216
|
+
debugLogger23.debug(
|
|
14064
14217
|
`Speculative guard denial: ${guardDecision.reason}`
|
|
14065
14218
|
);
|
|
14066
14219
|
hitBoundary = true;
|
|
@@ -14307,7 +14460,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
|
|
|
14307
14460
|
import fs12 from "node:fs";
|
|
14308
14461
|
import path14 from "node:path";
|
|
14309
14462
|
var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
|
|
14310
|
-
var
|
|
14463
|
+
var debugLogger24 = createDebugLogger("FILE_SEARCH_IGNORE");
|
|
14311
14464
|
function loadIgnoreRules(options) {
|
|
14312
14465
|
const ignorer = new Ignore();
|
|
14313
14466
|
if (options.useGitignore) {
|
|
@@ -14346,7 +14499,7 @@ function readIgnoreFile(filePath) {
|
|
|
14346
14499
|
} catch (_error) {
|
|
14347
14500
|
const error = _error;
|
|
14348
14501
|
if (error.code !== "ENOENT") {
|
|
14349
|
-
|
|
14502
|
+
debugLogger24.warn(`Failed to read ${filePath}: ${error.message}`);
|
|
14350
14503
|
}
|
|
14351
14504
|
return void 0;
|
|
14352
14505
|
}
|
|
@@ -17897,6 +18050,8 @@ export {
|
|
|
17897
18050
|
BTW_MAX_INPUT_LENGTH,
|
|
17898
18051
|
buildBtwPrompt,
|
|
17899
18052
|
buildBtwCacheSafeParams,
|
|
18053
|
+
getStopHookContinuationReason,
|
|
18054
|
+
abortGoalForStopHookCap,
|
|
17900
18055
|
projectGoalStateToLegacy,
|
|
17901
18056
|
isGoalCheckpointBookkeepingRecord,
|
|
17902
18057
|
renderGoalContinuationTurn,
|