@qwen-code/qwen-code 0.23.5-dev.codemode-responses.20260915.f024b37689 → 0.23.5-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +24 -3
- package/bundled/qc-helper/docs/configuration/model-providers.md +43 -0
- package/bundled/qc-helper/docs/configuration/settings.md +10 -9
- package/bundled/qc-helper/docs/extension/agent-plugins.md +1 -0
- package/bundled/qc-helper/docs/extension/introduction.md +49 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +39 -4
- package/bundled/qc-helper/docs/features/channels/overview.md +12 -0
- package/bundled/qc-helper/docs/features/commands.md +57 -52
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/goals.md +8 -0
- package/bundled/qc-helper/docs/features/hooks.md +16 -0
- package/bundled/qc-helper/docs/qwen-serve.md +3 -1
- package/bundled/workflow-authoring/SKILL.md +48 -22
- package/chunks/{MaxSizedBox-BFMIFJWT.js → MaxSizedBox-FCF6M53W.js} +40 -43
- package/chunks/{StandaloneSessionPicker-4ZH7MOVG.js → StandaloneSessionPicker-V635V72I.js} +60 -63
- package/chunks/{acp-startup-profiler-RUQNTNU5.js → acp-startup-profiler-MOOU37VM.js} +2 -2
- package/chunks/{acp-subagent-executor-AHMVA4P3.js → acp-subagent-executor-TND6W2O5.js} +46 -47
- package/chunks/{acpAgent-UMAJ3XR3.js → acpAgent-3DPWZTNC.js} +954 -322
- package/chunks/{agent-CXB2CCQN.js → agent-KIHGINKN.js} +27 -30
- package/chunks/{agent-headless-7D5ZC736.js → agent-headless-EJ4QOUSM.js} +27 -30
- package/chunks/{anthropicContentGenerator-H5YPXIDE.js → anthropicContentGenerator-4FGOM5LK.js} +46 -64
- package/chunks/{artifact-tool-MFGORTWZ.js → artifact-tool-MUTNH4NI.js} +1 -1
- package/chunks/{askUserQuestion-WS4GUT7C.js → askUserQuestion-AKIRLVB5.js} +1 -1
- package/chunks/bareMode-QWKZPLPX.js +14 -0
- package/chunks/{bridge-A2WKX6IK.js → bridge-MUX5YJZT.js} +46 -49
- package/chunks/{ca-GZ4FDJU2.js → ca-WC3A5B3Q.js} +12 -1
- package/chunks/{channel-management-service-AFVIT4VH.js → channel-management-service-RRILWSXX.js} +4 -4
- package/chunks/{channel-settings-store-AXJIN7HG.js → channel-settings-store-7CBIRZER.js} +51 -54
- package/chunks/{channel-worker-group-JR6JOELM.js → channel-worker-group-3DUJFZJR.js} +8 -8
- package/chunks/{channel-worker-manager-AVKJEZFL.js → channel-worker-manager-E5UW2VLA.js} +8 -8
- package/chunks/{channel-worker-supervisor-OOYY7BAQ.js → channel-worker-supervisor-VN33GSEC.js} +5 -5
- package/chunks/{chunk-2YMRRI2C.js → chunk-2C5TR6HN.js} +82 -9
- package/chunks/{chunk-YDFOHRS5.js → chunk-2GP6BQ2J.js} +1 -1
- package/chunks/{chunk-RN6BU77T.js → chunk-347O2YZJ.js} +158 -290
- package/chunks/{chunk-LTINUI3O.js → chunk-36NRLIR6.js} +10 -8
- package/chunks/{chunk-AXZMWAJV.js → chunk-36SDZ2Q4.js} +8 -0
- package/chunks/{chunk-QR4Q425T.js → chunk-3BZI5GDP.js} +1 -1
- package/chunks/{chunk-C3YMBSLR.js → chunk-3HTUE6ZR.js} +3 -3
- package/chunks/{chunk-QS5Q5F42.js → chunk-3LLEB5CU.js} +2 -2
- package/chunks/{chunk-FPPG5Y3W.js → chunk-3UGMLA4V.js} +10 -8
- package/chunks/{chunk-66N6C4EH.js → chunk-3WILPKTJ.js} +2 -2
- package/chunks/{chunk-SROLVJFY.js → chunk-3WWPEFMX.js} +1 -1
- package/chunks/{chunk-ZKIAGIGH.js → chunk-3XBUCOWS.js} +1 -1
- package/chunks/{chunk-6RQFMGN2.js → chunk-43Y26NPF.js} +3 -3
- package/chunks/{chunk-INGBUYL6.js → chunk-4FLUQWJ4.js} +1 -1
- package/chunks/{chunk-S77FFY67.js → chunk-4JFLRHNE.js} +1 -1
- package/chunks/{chunk-MJHLKWGJ.js → chunk-4QPVZA5J.js} +70 -23
- package/chunks/{chunk-XX5HQLCZ.js → chunk-6OTF7TTE.js} +32 -1
- package/chunks/{chunk-4Y2I3CI3.js → chunk-6USYH3EU.js} +99 -6
- package/chunks/{chunk-Q3TFRP5G.js → chunk-7D4CV7JH.js} +102 -9
- package/chunks/{chunk-EWJTAP3Y.js → chunk-7O5PYQ3M.js} +20 -1
- package/chunks/chunk-ADN5KESB.js +28 -0
- package/chunks/chunk-AKRSSKUT.js +229 -0
- package/chunks/{chunk-54YUXX7X.js → chunk-AQP3H22J.js} +1 -1
- package/chunks/{chunk-EQWKIA72.js → chunk-AUX2FL5T.js} +24 -7
- package/chunks/{chunk-YGFJ6BRT.js → chunk-AZCTY64Z.js} +1 -1
- package/chunks/{chunk-QLX4D55R.js → chunk-B5TJK7B3.js} +1 -1
- package/chunks/{chunk-HXMDDII6.js → chunk-B6RMK4ED.js} +4 -4
- package/chunks/{chunk-UCKM6KCJ.js → chunk-BHG3H6OZ.js} +1 -1
- package/chunks/{chunk-JLF2AQAL.js → chunk-BHVF3R6B.js} +7 -5
- package/chunks/{chunk-HFJSQ4GL.js → chunk-BTICBRPL.js} +1 -1
- package/chunks/{chunk-KZCK5JUN.js → chunk-C3T6HPNM.js} +1 -1
- package/chunks/{chunk-FCLMJS6N.js → chunk-CDDP4ONL.js} +164 -27
- package/chunks/{chunk-Y3ZXDBUL.js → chunk-CQPM66MG.js} +4 -4
- package/chunks/{chunk-WKVZES7O.js → chunk-CXONOVBN.js} +1 -1
- package/chunks/{chunk-TYBRGFYL.js → chunk-CXY6BICQ.js} +501 -479
- package/chunks/{chunk-W23HOFDK.js → chunk-D3KVGQUV.js} +1 -1
- package/chunks/{chunk-LMJSPC55.js → chunk-D7JMO2GP.js} +3 -7
- package/chunks/{chunk-CXXAZ2LZ.js → chunk-DC4ZNGH4.js} +1 -1
- package/chunks/{chunk-FMLBBXHB.js → chunk-DRAX5YAI.js} +2 -2
- package/chunks/{chunk-DOTF2PF2.js → chunk-DRD6VBNH.js} +1 -1
- package/chunks/chunk-DX6JTDMR.js +105 -0
- package/chunks/{chunk-MNRK6MIH.js → chunk-E2VSBAFA.js} +53 -11
- package/chunks/{chunk-QJKR2P2K.js → chunk-EIBECN2J.js} +3 -3
- package/chunks/{chunk-LWWRJRCD.js → chunk-ESBYWATJ.js} +1 -1
- package/chunks/{chunk-3544ZEGZ.js → chunk-FASYATAZ.js} +5 -7
- package/chunks/{chunk-6YUS5JCV.js → chunk-FBY32737.js} +4 -4
- package/chunks/{chunk-LBWIJ5T7.js → chunk-FCPJXKDG.js} +10 -7
- package/chunks/{chunk-FX6GJIPZ.js → chunk-FEDFZBGR.js} +3 -3
- package/chunks/{chunk-DQ4LBRZN.js → chunk-FIJODK52.js} +3 -3
- package/chunks/{chunk-HVSRWLOW.js → chunk-FX6PZBOV.js} +3 -3
- package/chunks/{chunk-L6DIANLD.js → chunk-G45B3INR.js} +1 -1
- package/chunks/{chunk-EYLUKEYW.js → chunk-GI7SLDOI.js} +2 -2
- package/chunks/chunk-GJKP6XOB.js +1092 -0
- package/chunks/{chunk-I6YJZGHS.js → chunk-GSAOVDTH.js} +9 -9
- package/chunks/{chunk-XK4UQSIR.js → chunk-H6L4NEAT.js} +1 -1
- package/chunks/{chunk-GMCEFKNR.js → chunk-HNFKYKHH.js} +103 -22
- package/chunks/{chunk-6XDB3FR4.js → chunk-HX4WXX3H.js} +301 -138
- package/chunks/{chunk-HG46TTAG.js → chunk-HXUI5D4H.js} +1 -1
- package/chunks/{chunk-QI4WBHPF.js → chunk-HYHSMTRA.js} +4 -4
- package/chunks/{chunk-ZUKC5J6Q.js → chunk-IKBEIDOH.js} +14 -14
- package/chunks/{chunk-LCAJ63TF.js → chunk-INN5ORKX.js} +1 -1
- package/chunks/{chunk-GNV2SFO7.js → chunk-IVFTLUZD.js} +26 -1
- package/chunks/{chunk-GNKSR3FU.js → chunk-IXO2OCIP.js} +2 -2
- package/chunks/{chunk-SNT634Q6.js → chunk-K4XMAIRX.js} +30 -33
- package/chunks/{chunk-WBP64MZR.js → chunk-KAYC5FBN.js} +5269 -2785
- package/chunks/chunk-KEM7MWS7.js +3541 -0
- package/chunks/{chunk-ADQUK6WA.js → chunk-KVC7HZWK.js} +1 -1
- package/chunks/{chunk-UQXURNLM.js → chunk-KVQ3QL4K.js} +3 -3
- package/chunks/{chunk-7U5G6JXI.js → chunk-KWYTSSTJ.js} +105 -6
- package/chunks/{chunk-Q4G2YPI4.js → chunk-L2A5VBDL.js} +3019 -2352
- package/chunks/{chunk-WD6YQI5M.js → chunk-L3SNMEDW.js} +1 -1
- package/chunks/{chunk-BYUAT5OC.js → chunk-L7TJUPNR.js} +19 -3
- package/chunks/{chunk-ABNX6E6K.js → chunk-LFKXIOGC.js} +1 -1
- package/chunks/{chunk-GFAK6DYU.js → chunk-LO2UWNO5.js} +2 -2
- package/chunks/{chunk-67ZDP7UX.js → chunk-M22WLKLI.js} +5 -5
- package/chunks/{chunk-54B2LTKP.js → chunk-M23GFJ5B.js} +24 -5
- package/chunks/{chunk-VGY2RGXL.js → chunk-M4U2LTD2.js} +1 -1
- package/chunks/{chunk-ZNI3YJHS.js → chunk-MFDKHGTD.js} +1 -1
- package/chunks/{chunk-R7OO56VZ.js → chunk-MMRGG6R4.js} +1 -1
- package/chunks/{chunk-E6IR653O.js → chunk-MO4XID7S.js} +1 -1
- package/chunks/{chunk-NJ4ZNDVP.js → chunk-NKTMUPHJ.js} +3 -6
- package/chunks/{chunk-4DTFTPTU.js → chunk-NQ272MQG.js} +1 -1
- package/chunks/{chunk-DWKFTUGI.js → chunk-OALXNGUA.js} +6 -6
- package/chunks/{chunk-FBDHP23D.js → chunk-OSG23MR3.js} +1 -1
- package/chunks/{chunk-NJ2OFVUX.js → chunk-P42KMMU6.js} +860 -1
- package/chunks/{chunk-5KJ54DY3.js → chunk-PF7GAP6K.js} +60 -58
- package/chunks/{chunk-MQRLLBMQ.js → chunk-PPJSG2PU.js} +2 -2
- package/chunks/{chunk-EPVEPTI3.js → chunk-PZRXWQUA.js} +753 -18
- package/chunks/{chunk-VI5UVPOB.js → chunk-Q54O3EIA.js} +30 -28
- package/chunks/{chunk-QTUQV33C.js → chunk-QGEISOJ2.js} +4 -4
- package/chunks/{chunk-XKRYQOHS.js → chunk-QHSOINX6.js} +2 -2
- package/chunks/{chunk-Z6Q7I37O.js → chunk-QIPLWW6Q.js} +1 -1
- package/chunks/chunk-QMENOK5T.js +1246 -0
- package/chunks/chunk-QT6Z2IBF.js +347 -0
- package/chunks/{chunk-TBSCTWKF.js → chunk-RN6A53UJ.js} +25 -0
- package/chunks/{chunk-E7ZTAOJZ.js → chunk-RRI764F7.js} +21 -19
- package/chunks/{chunk-YI2YCNSP.js → chunk-SENYKRII.js} +1 -1
- package/chunks/chunk-SFHX5G2S.js +2796 -0
- package/chunks/chunk-SK3RZOPS.js +34 -0
- package/chunks/{chunk-SKYOAH4Z.js → chunk-SOLRBF7L.js} +13 -9
- package/chunks/{chunk-5WLF44DS.js → chunk-SSWTA7CH.js} +12 -12
- package/chunks/{chunk-IAS753HG.js → chunk-SYMXYRM5.js} +11 -2
- package/chunks/{chunk-FGROOEKM.js → chunk-TDKUXSJO.js} +34 -6
- package/chunks/{chunk-ZJ7JQUGY.js → chunk-TKF4JINY.js} +1 -1
- package/chunks/{chunk-ZOQ6HC7U.js → chunk-TPY6HW55.js} +4 -4
- package/chunks/{chunk-EDB556X7.js → chunk-TRZ22SG5.js} +1 -1
- package/chunks/{chunk-FHSOZSBO.js → chunk-TXTCM3TC.js} +4 -4
- package/chunks/{chunk-5ODRE7E5.js → chunk-U4AASWUQ.js} +28 -12
- package/chunks/{chunk-PPE7VUMD.js → chunk-UQGRJTDK.js} +2 -2
- package/chunks/{chunk-JO67LVXW.js → chunk-UZSB57EV.js} +6 -8
- package/chunks/{chunk-UY4OCBX4.js → chunk-V4JJAVHQ.js} +2 -2
- package/chunks/chunk-VEXUA6DX.js +1026 -0
- package/chunks/{chunk-ME4JBHSB.js → chunk-VQDWCQOE.js} +2 -0
- package/chunks/{chunk-ZC75SULX.js → chunk-VU3XMZ5I.js} +23 -4
- package/chunks/{chunk-A2UYI473.js → chunk-WL36KHUQ.js} +6 -6
- package/chunks/{chunk-IWOJ2FHG.js → chunk-WNQIJTOP.js} +8 -8
- package/chunks/{chunk-IANIY25T.js → chunk-WSJI6ODG.js} +99 -30
- package/chunks/{chunk-3CKAOJ4L.js → chunk-WZWTY7SG.js} +6 -6
- package/chunks/{chunk-EKMJR7M3.js → chunk-X7AYIXC7.js} +1 -1
- package/chunks/{chunk-IBRQG2MP.js → chunk-XAJZFGD2.js} +11 -11
- package/chunks/{chunk-VRQZESKP.js → chunk-XICCGDWF.js} +2 -2
- package/chunks/{chunk-L5R4D5T4.js → chunk-Y2KJC55Y.js} +12 -7
- package/chunks/{chunk-2S2WIGCM.js → chunk-Y4NNIGYO.js} +1 -1
- package/chunks/{chunk-J7LBAKDH.js → chunk-YL3UJML3.js} +7 -7
- package/chunks/{chunk-GSS4SZNG.js → chunk-YP2K3WOS.js} +40 -56
- package/chunks/{chunk-ZZUXUBEB.js → chunk-YQQ2U7AS.js} +8 -5
- package/chunks/{chunk-FAWTMDX7.js → chunk-YXHY6BKS.js} +15 -0
- package/chunks/{chunk-FIP5QS2U.js → chunk-YZXSDPOQ.js} +140 -39
- package/chunks/{chunk-WATHOB6X.js → chunk-ZFHKUQZ4.js} +3 -3
- package/chunks/{chunk-R5OA3ONY.js → chunk-ZMYKNKET.js} +6 -6
- package/chunks/{codex-subagent-executor-LANZAZPH.js → codex-subagent-executor-AEAIQZDC.js} +48 -49
- package/chunks/{config-utils-CRK2LQPA.js → config-utils-KX2YS725.js} +43 -46
- package/chunks/{contextCommand-GY5X3LIY.js → contextCommand-RV6Y5LNJ.js} +41 -44
- package/chunks/{core-runtime-IJIV2LHP.js → core-runtime-ZI4RTOJQ.js} +45 -48
- package/chunks/{create-sub-session-MNIVRHGB.js → create-sub-session-BBWFQARJ.js} +46 -48
- package/chunks/{daemon-NJB4PWZ7.js → daemon-INCM4VBX.js} +3 -1
- package/chunks/{daemon-git-worktree-guard-W6Z2BGDH.js → daemon-git-worktree-guard-KECEMV6A.js} +39 -42
- package/chunks/{daemon-status-provider-TJF3APU3.js → daemon-status-provider-NULJNAEV.js} +53 -56
- package/chunks/{daemon-trust-policy-6INCISDU.js → daemon-trust-policy-S4KWGPV3.js} +47 -50
- package/chunks/{daemon-trust-policy-monitor-JRTAQG54.js → daemon-trust-policy-monitor-546N5ZVL.js} +47 -50
- package/chunks/{de-VGY3VNBU.js → de-6AVKPTXQ.js} +11 -0
- package/chunks/{deferred-core-runtime-2JRTPTNM.js → deferred-core-runtime-T23ZT443.js} +39 -42
- package/chunks/{dist-NIOJXMGY.js → dist-4P3ZJYGI.js} +1 -1
- package/chunks/{dist-VDLSBCLM.js → dist-7MGRENQ5.js} +1 -1
- package/chunks/{dist-SE4J6Z4O.js → dist-BNW423XT.js} +326 -77
- package/chunks/{dist-TFGETXFN.js → dist-CESMUYGN.js} +4 -4
- package/chunks/{dist-MPUZZOG5.js → dist-DBBOFWSC.js} +1 -1
- package/chunks/{dist-T6DDPDLQ.js → dist-G5UMXIGF.js} +1 -1
- package/chunks/{dist-PA7WPFVE.js → dist-UXVNLQHG.js} +3 -3
- package/chunks/{dist-GUB7QRYA.js → dist-VA4LREAQ.js} +2 -2
- package/chunks/{dist-2QYIVNS6.js → dist-XDRTR4QP.js} +1 -1
- package/chunks/{edit-JDIXXCYB.js → edit-CMSQB7NP.js} +27 -30
- package/chunks/{en-E5ZO5TZW.js → en-56QLKXS2.js} +23 -1
- package/chunks/{enter-worktree-CAARFWBI.js → enter-worktree-DA6A4XC5.js} +3 -3
- package/chunks/{enterPlanMode-YTNTBZBN.js → enterPlanMode-UDPMNESD.js} +27 -30
- package/chunks/{environment-UAI5L52V.js → environment-TSQJUTPV.js} +42 -45
- package/chunks/{errors-J4UCDCW5.js → errors-RIVYJS6T.js} +41 -44
- package/chunks/{exit-worktree-JXGGUOBP.js → exit-worktree-4H6Z2VQI.js} +3 -3
- package/chunks/{exitPlanMode-YMWJ2EO7.js → exitPlanMode-BYBBFN2T.js} +27 -30
- package/chunks/{fast-path-MBAN7TK3.js → fast-path-F2CYDDZ4.js} +4 -4
- package/chunks/{fast-path-settings-XDYX7X5Z.js → fast-path-settings-N2VGRGDJ.js} +2 -2
- package/chunks/{fr-UAZJJH5N.js → fr-EBUDHJL3.js} +11 -0
- package/chunks/{glob-YEM24E3Z.js → glob-Z2JMJKKN.js} +27 -30
- package/chunks/{goal-tools-LJIVH5T6.js → goal-tools-HXVVLGCV.js} +27 -30
- package/chunks/{handleAutoUpdate-DYCSYDYL.js → handleAutoUpdate-FZP45KOR.js} +43 -46
- package/chunks/{i18n-PTAV7SN3.js → i18n-OTB62AKW.js} +40 -43
- package/chunks/{image-gen-5G2TQ3DY.js → image-gen-HIAZCB5T.js} +6 -7
- package/chunks/{initializer-MPXTKQA4.js → initializer-4JXZEC4B.js} +47 -50
- package/chunks/{installationInfo-U5EFA3OL.js → installationInfo-2IJV5QKC.js} +39 -42
- package/chunks/{ja-2RITCMAJ.js → ja-NCDT4CGV.js} +11 -0
- package/chunks/{list-YOE25QUI.js → list-KQSQ4A5G.js} +50 -53
- package/chunks/{llm-ZZ2WNQMC.js → llm-LSUBOJAR.js} +154 -974
- package/chunks/{llm-content-generator-CG2HRJZC.js → llm-content-generator-MLIONRXE.js} +17 -12
- package/chunks/{loadedSettingsAdapter-NPGWGURF.js → loadedSettingsAdapter-TZTTNRHI.js} +47 -50
- package/chunks/{loggingContentGenerator-TUL6SJVL.js → loggingContentGenerator-TUPEXFMM.js} +31 -34
- package/chunks/{loop-wakeup-VG6CGBQA.js → loop-wakeup-ZBVRI6VH.js} +1 -1
- package/chunks/{managed-npm-update-YUDSCJP3.js → managed-npm-update-WEA5XMFZ.js} +40 -43
- package/chunks/{mcp-EX3GDQVO.js → mcp-TFDTUPIA.js} +47 -50
- package/chunks/{model-configuration-6DEKTXJI.js → model-configuration-ZCAKKIOF.js} +48 -51
- package/chunks/{modelConfigUtils-4NA2MHEE.js → modelConfigUtils-J3ZPW7ZK.js} +41 -44
- package/chunks/{monitor-PPUGNAWR.js → monitor-CI7YE7MT.js} +29 -32
- package/chunks/{nonInteractiveCli-6TW2XYP5.js → nonInteractiveCli-GPT3TVOK.js} +96 -98
- package/chunks/{notebook-edit-4MUXHZHT.js → notebook-edit-3WCVRNGL.js} +27 -30
- package/chunks/{openaiContentGenerator-5J73W5XZ.js → openaiContentGenerator-OGILGUZE.js} +12 -17
- package/chunks/{openaiResponsesContentGenerator-AWRYZLJU.js → openaiResponsesContentGenerator-NXOXUPFM.js} +45 -13
- package/chunks/{pidfile-M7WELKBB.js → pidfile-GBTBIGHF.js} +39 -42
- package/chunks/{process-registry-X6ZCASEN.js → process-registry-7LAPI3ZB.js} +1 -1
- package/chunks/{processUtils-SPRINFNY.js → processUtils-O4II3RYH.js} +2 -2
- package/chunks/{prompt-terminal-ledger-25BRD7FX.js → prompt-terminal-ledger-ILIXZI3E.js} +40 -43
- package/chunks/{pt-5ZF7ZQUV.js → pt-FYYFWYUC.js} +11 -0
- package/chunks/{qwenContentGenerator-H5AAKXPC.js → qwenContentGenerator-I4LRYADV.js} +33 -36
- package/chunks/{qwenOAuth2-WIEUEFEY.js → qwenOAuth2-3J66TOT5.js} +6 -7
- package/chunks/{read-file-ILGEFPB3.js → read-file-G4XKW2CS.js} +5 -9
- package/chunks/{record-artifact-PXMNP7GZ.js → record-artifact-L3CFJOMA.js} +2 -2
- package/chunks/{report-findings-W6GR7SYZ.js → report-findings-LY5HQY4K.js} +3 -3
- package/chunks/{resumeHistoryUtils-RB52QOCH.js → resumeHistoryUtils-YPJU4XFE.js} +44 -47
- package/chunks/{ripGrep-O6QAFHQK.js → ripGrep-AAKMALLM.js} +7 -11
- package/chunks/{ru-7BNZFQKG.js → ru-RHEB3RNS.js} +11 -0
- package/chunks/{run-qwen-serve-5NO3TKUL.js → run-qwen-serve-ZVEKGS7Y.js} +177 -98
- package/chunks/{runtime-G2YUYMSZ.js → runtime-SJCRYNPA.js} +52 -55
- package/chunks/safe-mode-KLGUG54M.js +11 -0
- package/chunks/sandbox-UIXL423Z.js +146 -0
- package/chunks/sandboxConfig-CY343YNJ.js +114 -0
- package/chunks/{scheduled-tasks-HDHV3URA.js → scheduled-tasks-5UGBEVNZ.js} +50 -53
- package/chunks/{scheduler-6MDJX2ZK.js → scheduler-GCZYLZ2P.js} +41 -44
- package/chunks/{sdk-exporters-http-3R2TRQHE.js → sdk-exporters-http-DR4G663K.js} +1 -1
- package/chunks/{sdk-impl-4WF3VZ2F.js → sdk-impl-SJR26MQF.js} +3 -3
- package/chunks/{send-message-UMJKN27Q.js → send-message-DN76MXDX.js} +6 -6
- package/chunks/{serve-Z2EJQYKB.js → serve-2XXQLVK2.js} +48 -51
- package/chunks/{server-JTNBK3LH.js → server-UHMKPCAZ.js} +408 -211
- package/chunks/{session-5YK2BXH4.js → session-ZLUK7E4P.js} +108 -108
- package/chunks/{session-attachments-root-QO3VFJS6.js → session-attachments-root-DHQM5IEZ.js} +39 -42
- package/chunks/{session-pr-refresh-OTK3HCJZ.js → session-pr-refresh-3OMTQWCZ.js} +48 -51
- package/chunks/{settings-2VKLACYV.js → settings-P4DHIIUP.js} +50 -53
- package/chunks/{shell-64NAVGMS.js → shell-IMFUVQQ5.js} +27 -30
- package/chunks/{skill-R3ALMLLM.js → skill-NB5RJGZW.js} +7 -11
- package/chunks/{skill-settings-HZ34TUMP.js → skill-settings-IXG5CTQO.js} +47 -50
- package/chunks/{spawnChannel-XGFWHEIK.js → spawnChannel-Q3YALTCJ.js} +44 -45
- package/chunks/{standalone-update-R32Y3XRR.js → standalone-update-H5OJ7MM7.js} +41 -44
- package/chunks/{start-opentui-ui-YGJOUE2H.js → start-opentui-ui-JKAIWGF7.js} +733 -386
- package/chunks/{startInteractiveUI-5ZEVKSFF.js → startInteractiveUI-YRPOT6GH.js} +370 -337
- package/chunks/task-create-75HVPEAH.js +1 -1
- package/chunks/{team-create-GCVUXJLE.js → team-create-2XTBYRJF.js} +31 -34
- package/chunks/{team-plan-approval-NOL62FJD.js → team-plan-approval-CFNWW7ZQ.js} +27 -30
- package/chunks/{terminal-image-renderer-WG5TLPGC.js → terminal-image-renderer-UDPJPGPQ.js} +39 -42
- package/chunks/{theme-manager-HDS4YFPW.js → theme-manager-SK57EKMO.js} +39 -42
- package/chunks/{tool-search-HMT5GYUR.js → tool-search-ZHTJU2MV.js} +5 -9
- package/chunks/{total-session-admission-Y5RCHEXO.js → total-session-admission-UUZBDQCG.js} +47 -50
- package/chunks/{tree-sitter-LSORDVZ3.js → tree-sitter-4D7QS7F6.js} +1 -1
- package/chunks/{tree-sitter-bash-UARELQ6C.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
- package/chunks/{trustedFolders-3Y2WCXMR.js → trustedFolders-4LDBLNTS.js} +40 -43
- package/chunks/{update-relaunch-MTJ32SLF.js → update-relaunch-LI7GRP36.js} +5 -5
- package/chunks/{updateCheck-YFX3VY6O.js → updateCheck-PKSSORPO.js} +43 -46
- package/chunks/{useAutoAcceptIndicator-FCHNQPMD.js → useAutoAcceptIndicator-I32UEQPI.js} +50 -53
- package/chunks/{validateNonInterActiveAuth-HUFQKCGG.js → validateNonInterActiveAuth-YFPCYYNL.js} +93 -95
- package/chunks/{version-S5TGWCA3.js → version-4MTL4JVU.js} +1 -1
- package/chunks/{web-fetch-23M7BYHB.js → web-fetch-O6RG6ISB.js} +9 -13
- package/chunks/{web-search-F5PNIQUA.js → web-search-JHAXVEMD.js} +9 -14
- package/chunks/{web-shell-static-T7UGLVE4.js → web-shell-static-FFWCUUZS.js} +8 -4
- package/chunks/{workflow-BLJLID2C.js → workflow-O7L6VDYU.js} +396 -113
- package/chunks/{workspace-providers-status-UH7KLZDT.js → workspace-providers-status-WRX6CJM4.js} +53 -56
- package/chunks/{workspace-registration-store-3SA3V7BA.js → workspace-registration-store-7G4E7YPY.js} +1 -1
- package/chunks/{workspace-registry-C6C6EKQ5.js → workspace-registry-SXIMGT4D.js} +47 -50
- package/chunks/{workspace-runtime-coordinator-RAI6XDJB.js → workspace-runtime-coordinator-7DOEHXYT.js} +47 -50
- package/chunks/{workspace-service-H7UTJYJU.js → workspace-service-HDXOZMYC.js} +53 -56
- package/chunks/{workspace-skills-status-FPVC7XXK.js → workspace-skills-status-VN4L37CA.js} +50 -53
- package/chunks/{workspace-trust-reconciler-JS7A6UIF.js → workspace-trust-reconciler-XEBW5FUL.js} +57 -60
- package/chunks/{write-file-GQGG7NBQ.js → write-file-LKX4ETIO.js} +29 -32
- package/chunks/{zh-V2EYTYJP.js → zh-F76MZTL3.js} +23 -1
- package/chunks/{zh-TW-7PRVUGLW.js → zh-TW-S3YTQ4DS.js} +23 -1
- package/chunks/{zoom-image-EC43KL4H.js → zoom-image-RDPRTP4B.js} +5 -9
- package/cli.js +19 -15
- package/export-transcript-document.css +1 -1
- package/export-transcript-document.js +151 -150
- package/locales/ca.js +19 -2
- package/locales/de.js +18 -0
- package/locales/en.js +33 -2
- package/locales/fr.js +18 -0
- package/locales/ja.js +18 -0
- package/locales/pt.js +18 -0
- package/locales/ru.js +18 -0
- package/locales/zh-TW.js +33 -2
- package/locales/zh.js +33 -2
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-BtpzKw3A.js → abnfDiagram-VCTEODGH-RxykUDmi.js} +1 -1
- package/web-shell/assets/{arc-CQiVKZJP.js → arc-CZpgGCJC.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-ekIPBb2d.js → architectureDiagram-5GKGNRK7-BHSMzNDT.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-BrRWkWri.js → blockDiagram-NRAW4CY4-Bn4mF9SZ.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-qYS8CYZ3.js → c4Diagram-UCG6FXSJ-CBM-Bj6t.js} +1 -1
- package/web-shell/assets/channel-DFYs_LlK.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-ZasyyEZm.js → chunk-2Q5K7J3B-D5Fin58O.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-C_IzCGeA.js → chunk-5VM5RSS4-CY05weF7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-C25NZOyD.js → chunk-F27PBJKO-3neZnj5Y.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-XPOHNSGX.js → chunk-G27WJ6UU-Cd7EU4BE.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BQBh0Xni.js → chunk-JWPE2WC7-DwK1mqFw.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-CoShjpX7.js → chunk-LCL6LL3I-Sl7vY22C.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-BwRmCDSz.js → chunk-POPQ4Y6H-BXNzpbVg.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DSzE5-Mw.js → chunk-SVP7TREG-DjjButcp.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BQSQv30h.js → chunk-XXDRQBXY-DNOiCjOJ.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-XVUVTHVo.js → cose-bilkent-JH36ORCC-BUnker7a.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-CrsKx4lQ.js → cynefin-OW5HDTMX-DcUgdWE5.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BPeZEuHw.js → cynefinDiagram-5FMLGOSQ-CvDKsZsL.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D31cQ2Qs.js → dagre-3AP2YEHR-jpCmUbr1.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-zyiG097Q.js → diagram-S7CK7UJ4-DBe_bKE5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Br3vtfsy.js → diagram-UQ7AKVKN-oXvPpDgs.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-Bxkhjx4u.js → diagram-VSXAHHWV-BD7-_SGh.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-BQH8QiDk.js → diagram-VX7I27RA-DOJL0wub.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B_aQ1cw0.js → diagram-Z3DM3KII-DRIiodDD.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-B9N7BRQE.js → ebnfDiagram-PWID7BFC-Db31Ulmb.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-Cx6Hb1Re.js → erDiagram-SSCWMZ5O-CVHhwI2_.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-DTuLP7GU.js → flowDiagram-A5DVABFB-DWOFy1FK.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DYS3d-sL.js → ganttDiagram-EL5Y4UJY-C0sxQtPd.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Cp0EGx04.js → gitGraphDiagram-WWUBYQGX-CNituBYC.js} +1 -1
- package/web-shell/assets/index-B15NlwB8.js +2213 -0
- package/web-shell/assets/index-BSrS0tQ6.css +36 -0
- package/web-shell/assets/{index-45-LkPDB.js → index-gm9tLk7h.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-9--kukiT.js → infoDiagram-RXCK75RN-CxhJYtIR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CGBdsDLD.js → ishikawaDiagram-5VMMS53U-By2mchUy.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DeXhcscd.js → journeyDiagram-EYS64GPL-CVH-OweI.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CFdvsU3b.js → kanban-definition-3QL26DDD-Cc9dQXLy.js} +1 -1
- package/web-shell/assets/knowledge-Dg9788h4.svg +1 -0
- package/web-shell/assets/{layout-DAnwQ3KB.js → layout-C_60ysHw.js} +1 -1
- package/web-shell/assets/{linear-CTo7v7Nh.js → linear-BvAVfqwu.js} +1 -1
- package/web-shell/assets/{mermaid.core-jggSxF1i.js → mermaid.core-C3CoBKAc.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzIepvlJ.js → mindmap-definition-FBJOCRG2-Cuu8Q8LM.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BFGS9GJv.js → pegDiagram-XKGWAZYB-DmAeyDO2.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-B2UUcNIT.js → pieDiagram-E7YTZNPT-B7vbB_xv.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BgM6htrX.js → quadrantDiagram-AXDQQJYC-BqOBkRR7.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dk9cS7N-.js → railroadDiagram-O6MQD6OU-sI06lZIu.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C9oRg7xi.js → requirementDiagram-EFPCY7ZU-Bg13d10S.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-B-_c7GzI.js → sankeyDiagram-P5KCCOFB-WFOzZHrR.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-R0M-347u.js → sequenceDiagram-WJ2MYXX4-CCdRbA4E.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Df0f8UAW.js → sizeCapture-X5ZJPWSS-BH5F3bGg.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-CsUEfAA-.js → stateDiagram-HBIQ2CUA-NwS2X3QB.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-9OGHVSrx.js → swimlanes-XN3QIQJK-Bm38pM28.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DAfGqS2B.js → timeline-definition-24CTP7MA-Do-agLSo.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CKATpwHi.js → vennDiagram-4TSXK5OY-aggLfZzl.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CQHdhTrm.js → wardleyDiagram-VM6X3IG4-D5JR3mXX.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-5k9NLqlY.js → xychartDiagram-S5SC5T6Z-DhtLDuXs.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-4OQSG35W.js +0 -1416
- package/chunks/chunk-7MIBD3LG.js +0 -137
- package/chunks/chunk-ARDHE6MM.js +0 -235
- package/chunks/chunk-C75BXMPM.js +0 -169
- package/chunks/chunk-ERU3SDXT.js +0 -27
- package/chunks/chunk-FPGTNKCP.js +0 -251
- package/chunks/chunk-JIJ65YKA.js +0 -2812
- package/chunks/chunk-JL6APGBX.js +0 -43
- package/chunks/chunk-SGXJQP5Q.js +0 -4172
- package/chunks/chunk-TPEV2QHG.js +0 -514
- package/chunks/chunk-YVWS4SLL.js +0 -137
- package/web-shell/assets/channel-DSQQnOZj.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +0 -1
- package/web-shell/assets/index-H8um-iEl.js +0 -2207
- package/web-shell/assets/index-n6N-2a3v.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +0 -8
- package/chunks/{chunk-QZW6WRB7.js → chunk-5NUKK2DT.js} +2 -2
- package/chunks/{chunk-JS73NNWF.js → chunk-FUSEMYFX.js} +0 -0
- package/chunks/{chunk-SVWWF5TZ.js → chunk-WVURIAEE.js} +3 -3
- package/chunks/{task-update-RI7QNVDP.js → task-update-3LSYQDRW.js} +4 -4
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
scanForSecrets
|
|
5
|
-
} from "./chunk-BUQN5LTI.js";
|
|
6
3
|
import {
|
|
7
4
|
MAX_DROPPED_MSG_IDS,
|
|
8
5
|
MAX_FRAME_BYTES,
|
|
@@ -17,6 +14,9 @@ import {
|
|
|
17
14
|
probePeerSocketVerdict,
|
|
18
15
|
resolvePeerSocketCandidates
|
|
19
16
|
} from "./chunk-YM6KUQ2S.js";
|
|
17
|
+
import {
|
|
18
|
+
scanForSecrets
|
|
19
|
+
} from "./chunk-BUQN5LTI.js";
|
|
20
20
|
import {
|
|
21
21
|
BudgetExhaustedError,
|
|
22
22
|
CoreToolScheduler,
|
|
@@ -30,8 +30,9 @@ import {
|
|
|
30
30
|
SessionService,
|
|
31
31
|
StandardFileSystemService,
|
|
32
32
|
aggregateUsage,
|
|
33
|
-
buildApiHistoryFromConversation,
|
|
34
33
|
buildManagedAutoMemoryPrompt,
|
|
34
|
+
buildSessionHistoryFromConversation,
|
|
35
|
+
buildSyntheticToolResponseParts,
|
|
35
36
|
classifyShellCommandSafety,
|
|
36
37
|
classifyShellCommandSafetyInDirectory,
|
|
37
38
|
coerceMcpFilterEntries,
|
|
@@ -41,6 +42,7 @@ import {
|
|
|
41
42
|
createForkedChat,
|
|
42
43
|
createMemoryScopedAgentConfig,
|
|
43
44
|
deriveConfig,
|
|
45
|
+
detectTurnInterruption,
|
|
44
46
|
discoveryTimeoutFor,
|
|
45
47
|
disposeConoutWorker,
|
|
46
48
|
ensureAutoMemoryScaffold,
|
|
@@ -50,13 +52,13 @@ import {
|
|
|
50
52
|
finalizeToolResponses,
|
|
51
53
|
getCacheSafeParams,
|
|
52
54
|
getCacheSafeParamsSessionId,
|
|
53
|
-
getPty,
|
|
54
55
|
getTimeRangeBounds,
|
|
55
56
|
isAllowedMemoryPath,
|
|
56
57
|
isClearedMediaPlaceholder,
|
|
57
58
|
isPoolable,
|
|
58
59
|
listDescendantPids,
|
|
59
60
|
listExistingSkillDirNames,
|
|
61
|
+
loadPty,
|
|
60
62
|
loadUsageHistoryWithLive,
|
|
61
63
|
loadXtermHeadless,
|
|
62
64
|
mcpSessionMetadataKey,
|
|
@@ -80,7 +82,7 @@ import {
|
|
|
80
82
|
stripToolResultImages,
|
|
81
83
|
toolResultBoundaryArtifact,
|
|
82
84
|
toolResultPartDiagnosticValues
|
|
83
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-KAYC5FBN.js";
|
|
84
86
|
import {
|
|
85
87
|
hasVerifiableInode,
|
|
86
88
|
openNoFollow
|
|
@@ -90,34 +92,34 @@ import {
|
|
|
90
92
|
} from "./chunk-TWPJO254.js";
|
|
91
93
|
import {
|
|
92
94
|
projectUserTranscriptForDisplay
|
|
93
|
-
} from "./chunk-
|
|
94
|
-
import {
|
|
95
|
-
getProjectSkillsRoot,
|
|
96
|
-
parse
|
|
97
|
-
} from "./chunk-NJ2OFVUX.js";
|
|
95
|
+
} from "./chunk-VQDWCQOE.js";
|
|
98
96
|
import {
|
|
99
97
|
glob,
|
|
100
98
|
globSync
|
|
101
99
|
} from "./chunk-QJNDUTOL.js";
|
|
102
|
-
import {
|
|
103
|
-
resolveBundleDir
|
|
104
|
-
} from "./chunk-ACHCT36C.js";
|
|
105
|
-
import {
|
|
106
|
-
escapeJsonTagCharacters
|
|
107
|
-
} from "./chunk-CHEIIBT3.js";
|
|
108
100
|
import {
|
|
109
101
|
flattenPeerLabel
|
|
110
102
|
} from "./chunk-OWUAZXXN.js";
|
|
111
103
|
import {
|
|
112
104
|
isPidAlive
|
|
113
105
|
} from "./chunk-CH2YDT6X.js";
|
|
106
|
+
import {
|
|
107
|
+
getProjectSkillsRoot,
|
|
108
|
+
parse
|
|
109
|
+
} from "./chunk-P42KMMU6.js";
|
|
110
|
+
import {
|
|
111
|
+
resolveBundleDir
|
|
112
|
+
} from "./chunk-ACHCT36C.js";
|
|
113
|
+
import {
|
|
114
|
+
escapeJsonTagCharacters
|
|
115
|
+
} from "./chunk-CHEIIBT3.js";
|
|
114
116
|
import {
|
|
115
117
|
require_proper_lockfile
|
|
116
118
|
} from "./chunk-MLXTMF7H.js";
|
|
117
119
|
import {
|
|
118
120
|
BUILT_IN_OUTPUT_STYLES,
|
|
119
121
|
getBuiltInOutputStyle
|
|
120
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-36SDZ2Q4.js";
|
|
121
123
|
import {
|
|
122
124
|
getFolderStructure,
|
|
123
125
|
getStartupContextLength,
|
|
@@ -134,7 +136,7 @@ import {
|
|
|
134
136
|
} from "./chunk-NUQ4GK5I.js";
|
|
135
137
|
import {
|
|
136
138
|
fetchWithPolicy
|
|
137
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-3WILPKTJ.js";
|
|
138
140
|
import {
|
|
139
141
|
COMBINED_PASS_TOLERANCE_FACTOR,
|
|
140
142
|
TOOL_OUTPUT_TRUNCATED_PREFIX,
|
|
@@ -143,7 +145,7 @@ import {
|
|
|
143
145
|
removeMCPStatusChangeListener,
|
|
144
146
|
runSideQuery,
|
|
145
147
|
updateMCPServerStatus
|
|
146
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-CDDP4ONL.js";
|
|
147
149
|
import {
|
|
148
150
|
getInvocationContext
|
|
149
151
|
} from "./chunk-5ETULJLP.js";
|
|
@@ -161,7 +163,7 @@ import {
|
|
|
161
163
|
isCacheableReadResult,
|
|
162
164
|
isWithinRoot,
|
|
163
165
|
processSingleFileContent
|
|
164
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-5NUKK2DT.js";
|
|
165
167
|
import {
|
|
166
168
|
getAutoMemoryRoot,
|
|
167
169
|
getUserAutoMemoryRoot
|
|
@@ -175,7 +177,7 @@ import {
|
|
|
175
177
|
normalizeContent,
|
|
176
178
|
stripAnsiAndControl,
|
|
177
179
|
stripHtmlComments
|
|
178
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-6USYH3EU.js";
|
|
179
181
|
import {
|
|
180
182
|
ToolNames,
|
|
181
183
|
canonicalToolName
|
|
@@ -1105,58 +1107,6 @@ async function executeToolCall(config, toolCallRequest, abortSignal, options = {
|
|
|
1105
1107
|
}
|
|
1106
1108
|
__name(executeToolCall, "executeToolCall");
|
|
1107
1109
|
|
|
1108
|
-
// packages/core/src/core/turn-interruption.ts
|
|
1109
|
-
init_esbuild_shims();
|
|
1110
|
-
var TURN_INTERRUPTION_HISTORY_TAIL_COUNT = 50;
|
|
1111
|
-
function detectTurnInterruption(history) {
|
|
1112
|
-
const last = history[history.length - 1];
|
|
1113
|
-
if (!last) {
|
|
1114
|
-
return { kind: "none" };
|
|
1115
|
-
}
|
|
1116
|
-
if (last.role === "user") {
|
|
1117
|
-
const trailingUserEntries = [];
|
|
1118
|
-
for (let i = history.length - 1; i >= 0; i--) {
|
|
1119
|
-
const entry = history[i];
|
|
1120
|
-
if (!entry || entry.role !== "user") {
|
|
1121
|
-
break;
|
|
1122
|
-
}
|
|
1123
|
-
if (isSystemReminderContent(entry)) {
|
|
1124
|
-
break;
|
|
1125
|
-
}
|
|
1126
|
-
trailingUserEntries.unshift(entry);
|
|
1127
|
-
}
|
|
1128
|
-
const allParts = trailingUserEntries.flatMap((entry) => entry.parts ?? []);
|
|
1129
|
-
const parts = [
|
|
1130
|
-
...allParts.filter((part) => part.functionResponse),
|
|
1131
|
-
...allParts.filter((part) => !part.functionResponse)
|
|
1132
|
-
];
|
|
1133
|
-
if (parts.length === 0) {
|
|
1134
|
-
return { kind: "none" };
|
|
1135
|
-
}
|
|
1136
|
-
return { kind: "interrupted_prompt", parts: structuredClone(parts) };
|
|
1137
|
-
}
|
|
1138
|
-
if (last.role === "model") {
|
|
1139
|
-
const danglingCalls = [];
|
|
1140
|
-
for (const part of last.parts ?? []) {
|
|
1141
|
-
const fc = part.functionCall;
|
|
1142
|
-
if (fc?.id) {
|
|
1143
|
-
danglingCalls.push({ callId: fc.id, name: fc.name ?? "unknown" });
|
|
1144
|
-
}
|
|
1145
|
-
}
|
|
1146
|
-
if (danglingCalls.length > 0) {
|
|
1147
|
-
return { kind: "interrupted_turn", danglingCalls };
|
|
1148
|
-
}
|
|
1149
|
-
}
|
|
1150
|
-
return { kind: "none" };
|
|
1151
|
-
}
|
|
1152
|
-
__name(detectTurnInterruption, "detectTurnInterruption");
|
|
1153
|
-
function buildSyntheticToolResponseParts(danglingCalls, reason) {
|
|
1154
|
-
return danglingCalls.map(({ callId, name }) => ({
|
|
1155
|
-
functionResponse: { id: callId, name, response: { error: reason } }
|
|
1156
|
-
}));
|
|
1157
|
-
}
|
|
1158
|
-
__name(buildSyntheticToolResponseParts, "buildSyntheticToolResponseParts");
|
|
1159
|
-
|
|
1160
1110
|
// packages/core/src/core/session-recovery.ts
|
|
1161
1111
|
init_esbuild_shims();
|
|
1162
1112
|
function createPlanId(sessionId, historyLength) {
|
|
@@ -1190,7 +1140,7 @@ function buildSessionRecoveryPlan({
|
|
|
1190
1140
|
}) {
|
|
1191
1141
|
return buildSessionRecoveryPlanFromApiHistory({
|
|
1192
1142
|
sessionId,
|
|
1193
|
-
|
|
1143
|
+
...buildSessionHistoryFromConversation(conversation),
|
|
1194
1144
|
historyGaps,
|
|
1195
1145
|
options
|
|
1196
1146
|
});
|
|
@@ -1199,6 +1149,7 @@ __name(buildSessionRecoveryPlan, "buildSessionRecoveryPlan");
|
|
|
1199
1149
|
function buildSessionRecoveryPlanFromApiHistory({
|
|
1200
1150
|
sessionId,
|
|
1201
1151
|
apiHistory: inputApiHistory,
|
|
1152
|
+
completedToolCallIds,
|
|
1202
1153
|
historyGaps,
|
|
1203
1154
|
options
|
|
1204
1155
|
}) {
|
|
@@ -1238,7 +1189,10 @@ function buildSessionRecoveryPlanFromApiHistory({
|
|
|
1238
1189
|
visibleNotice: buildVisibleNotice("degraded_history", repairs, gaps)
|
|
1239
1190
|
};
|
|
1240
1191
|
}
|
|
1241
|
-
const interruption = detectTurnInterruption(
|
|
1192
|
+
const interruption = detectTurnInterruption(
|
|
1193
|
+
originalApiHistory,
|
|
1194
|
+
completedToolCallIds
|
|
1195
|
+
);
|
|
1242
1196
|
if (interruption.kind === "none") {
|
|
1243
1197
|
return {
|
|
1244
1198
|
planId,
|
|
@@ -4136,12 +4090,14 @@ var WebTerminalRegistry = class {
|
|
|
4136
4090
|
return { error: "Web terminal limit reached", retryable: true };
|
|
4137
4091
|
}
|
|
4138
4092
|
this.creating.set(terminalId, options.workspaceCwd);
|
|
4139
|
-
let
|
|
4093
|
+
let ptyLoad;
|
|
4140
4094
|
try {
|
|
4141
|
-
|
|
4142
|
-
} catch {
|
|
4095
|
+
ptyLoad = await loadPty();
|
|
4096
|
+
} catch (error) {
|
|
4143
4097
|
this.finishCreating(terminalId);
|
|
4144
|
-
return {
|
|
4098
|
+
return {
|
|
4099
|
+
error: `PTY not available: PTY support failed to load on ${os.platform()}/${os.arch()}: ${getErrorMessage(error)}`
|
|
4100
|
+
};
|
|
4145
4101
|
}
|
|
4146
4102
|
if (this.cancelledCreations.has(terminalId)) {
|
|
4147
4103
|
this.finishCreating(terminalId);
|
|
@@ -4151,10 +4107,14 @@ var WebTerminalRegistry = class {
|
|
|
4151
4107
|
this.finishCreating(terminalId);
|
|
4152
4108
|
return { error: "Web terminal registry disposed" };
|
|
4153
4109
|
}
|
|
4154
|
-
if (!
|
|
4110
|
+
if (!ptyLoad.impl) {
|
|
4155
4111
|
this.finishCreating(terminalId);
|
|
4156
|
-
|
|
4112
|
+
const loadError = ptyLoad.loadError;
|
|
4113
|
+
return {
|
|
4114
|
+
error: `PTY not available: no loadable PTY backend (@lydell/node-pty or node-pty) for ${os.platform()}/${os.arch()}${loadError ? `: ${loadError}` : ""}`
|
|
4115
|
+
};
|
|
4157
4116
|
}
|
|
4117
|
+
const ptyImpl = ptyLoad.impl;
|
|
4158
4118
|
const env2 = { ...options.env ?? process.env };
|
|
4159
4119
|
const { file, args } = resolveWebTerminalShell(process.platform, env2);
|
|
4160
4120
|
delete env2["NO_COLOR"];
|
|
@@ -5592,94 +5552,6 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
|
|
|
5592
5552
|
// packages/core/src/goals/index.ts
|
|
5593
5553
|
init_esbuild_shims();
|
|
5594
5554
|
|
|
5595
|
-
// packages/core/src/goals/activeGoalStore.ts
|
|
5596
|
-
init_esbuild_shims();
|
|
5597
|
-
var store = /* @__PURE__ */ new Map();
|
|
5598
|
-
function getActiveGoal(sessionId) {
|
|
5599
|
-
return store.get(sessionId);
|
|
5600
|
-
}
|
|
5601
|
-
__name(getActiveGoal, "getActiveGoal");
|
|
5602
|
-
function clearActiveGoal(sessionId) {
|
|
5603
|
-
const previous = store.get(sessionId);
|
|
5604
|
-
store.delete(sessionId);
|
|
5605
|
-
return previous;
|
|
5606
|
-
}
|
|
5607
|
-
__name(clearActiveGoal, "clearActiveGoal");
|
|
5608
|
-
var observers = /* @__PURE__ */ new Map();
|
|
5609
|
-
function clearGoalTerminalObserver(sessionId) {
|
|
5610
|
-
observers.delete(sessionId);
|
|
5611
|
-
}
|
|
5612
|
-
__name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
|
|
5613
|
-
function notifyGoalTerminal(sessionId, event) {
|
|
5614
|
-
recordLastTerminalEvent(sessionId, event);
|
|
5615
|
-
const observer = observers.get(sessionId);
|
|
5616
|
-
if (!observer) return;
|
|
5617
|
-
try {
|
|
5618
|
-
observer(event);
|
|
5619
|
-
} catch {
|
|
5620
|
-
}
|
|
5621
|
-
}
|
|
5622
|
-
__name(notifyGoalTerminal, "notifyGoalTerminal");
|
|
5623
|
-
var lastTerminal = /* @__PURE__ */ new Map();
|
|
5624
|
-
function recordLastTerminalEvent(sessionId, event) {
|
|
5625
|
-
lastTerminal.set(sessionId, event);
|
|
5626
|
-
}
|
|
5627
|
-
__name(recordLastTerminalEvent, "recordLastTerminalEvent");
|
|
5628
|
-
|
|
5629
|
-
// packages/core/src/goals/goalHook.ts
|
|
5630
|
-
init_esbuild_shims();
|
|
5631
|
-
|
|
5632
|
-
// packages/core/src/goals/goalJudge.ts
|
|
5633
|
-
init_esbuild_shims();
|
|
5634
|
-
var debugLogger9 = createDebugLogger("GOAL_JUDGE");
|
|
5635
|
-
|
|
5636
|
-
// packages/core/src/goals/goalHook.ts
|
|
5637
|
-
var debugLogger10 = createDebugLogger("GOAL_HOOK");
|
|
5638
|
-
var GOAL_HOOK_TIMEOUT_SECONDS = 30;
|
|
5639
|
-
var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
|
|
5640
|
-
var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
|
|
5641
|
-
function getStopHookContinuationReason(output) {
|
|
5642
|
-
const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
|
|
5643
|
-
if (!hasGoalOutput) {
|
|
5644
|
-
return output.stopReason || output.reason || "No reason provided";
|
|
5645
|
-
}
|
|
5646
|
-
return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
|
|
5647
|
-
}
|
|
5648
|
-
__name(getStopHookContinuationReason, "getStopHookContinuationReason");
|
|
5649
|
-
function removeGoalFunctionHook(config, sessionId, goal) {
|
|
5650
|
-
const system = config.getHookSystem?.();
|
|
5651
|
-
if (!system) return;
|
|
5652
|
-
try {
|
|
5653
|
-
system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
|
|
5654
|
-
} catch (err) {
|
|
5655
|
-
debugLogger10.debug(
|
|
5656
|
-
`Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
|
|
5657
|
-
);
|
|
5658
|
-
}
|
|
5659
|
-
}
|
|
5660
|
-
__name(removeGoalFunctionHook, "removeGoalFunctionHook");
|
|
5661
|
-
function finishGoal(config, sessionId, goal, event) {
|
|
5662
|
-
clearActiveGoal(sessionId);
|
|
5663
|
-
removeGoalFunctionHook(config, sessionId, goal);
|
|
5664
|
-
notifyGoalTerminal(sessionId, event);
|
|
5665
|
-
clearGoalTerminalObserver(sessionId);
|
|
5666
|
-
}
|
|
5667
|
-
__name(finishGoal, "finishGoal");
|
|
5668
|
-
function abortGoalForStopHookCap(config, sessionId, systemMessage) {
|
|
5669
|
-
const goal = getActiveGoal(sessionId);
|
|
5670
|
-
if (!goal) return false;
|
|
5671
|
-
finishGoal(config, sessionId, goal, {
|
|
5672
|
-
kind: "aborted",
|
|
5673
|
-
condition: goal.condition,
|
|
5674
|
-
iterations: goal.iterations,
|
|
5675
|
-
durationMs: Date.now() - goal.setAt,
|
|
5676
|
-
lastReason: goal.lastReason,
|
|
5677
|
-
systemMessage
|
|
5678
|
-
});
|
|
5679
|
-
return true;
|
|
5680
|
-
}
|
|
5681
|
-
__name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
|
|
5682
|
-
|
|
5683
5555
|
// packages/core/src/index.ts
|
|
5684
5556
|
init_esbuild_shims();
|
|
5685
5557
|
|
|
@@ -6197,7 +6069,7 @@ init_esbuild_shims();
|
|
|
6197
6069
|
import * as fs4 from "fs/promises";
|
|
6198
6070
|
import * as os2 from "os";
|
|
6199
6071
|
import * as path6 from "path";
|
|
6200
|
-
var
|
|
6072
|
+
var debugLogger9 = createDebugLogger("OUTPUT_STYLE_FILES");
|
|
6201
6073
|
var OUTPUT_STYLES_DIR_NAME = "output-styles";
|
|
6202
6074
|
var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
|
|
6203
6075
|
var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
|
|
@@ -6256,7 +6128,7 @@ function parseOutputStyleFile(content, filePath, source) {
|
|
|
6256
6128
|
(key) => !KNOWN_FRONTMATTER_KEYS.has(key)
|
|
6257
6129
|
);
|
|
6258
6130
|
if (unknownKeys.length > 0) {
|
|
6259
|
-
|
|
6131
|
+
debugLogger9.warn(
|
|
6260
6132
|
`Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
|
|
6261
6133
|
);
|
|
6262
6134
|
}
|
|
@@ -6273,7 +6145,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
|
|
|
6273
6145
|
return true;
|
|
6274
6146
|
}
|
|
6275
6147
|
if (spelling !== false && spelling !== "false") {
|
|
6276
|
-
|
|
6148
|
+
debugLogger9.warn(
|
|
6277
6149
|
`Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
|
|
6278
6150
|
);
|
|
6279
6151
|
}
|
|
@@ -6326,20 +6198,20 @@ __name(deriveDescription, "deriveDescription");
|
|
|
6326
6198
|
async function resolveStyleFileToRead(filePath, source, confineTo) {
|
|
6327
6199
|
const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
|
|
6328
6200
|
if (source === "project" && stat5.isSymbolicLink()) {
|
|
6329
|
-
|
|
6201
|
+
debugLogger9.warn(`Skipping output style ${filePath}: it is a symlink`);
|
|
6330
6202
|
return null;
|
|
6331
6203
|
}
|
|
6332
6204
|
if (!stat5.isFile()) {
|
|
6333
6205
|
return null;
|
|
6334
6206
|
}
|
|
6335
6207
|
if (stat5.nlink > 1) {
|
|
6336
|
-
|
|
6208
|
+
debugLogger9.warn(`Skipping output style ${filePath}: it is a hard link`);
|
|
6337
6209
|
return null;
|
|
6338
6210
|
}
|
|
6339
6211
|
const realPath = await fs4.realpath(filePath);
|
|
6340
6212
|
const realRoot = await fs4.realpath(confineTo);
|
|
6341
6213
|
if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
|
|
6342
|
-
|
|
6214
|
+
debugLogger9.warn(
|
|
6343
6215
|
`Skipping output style ${filePath}: it resolves outside ${realRoot}`
|
|
6344
6216
|
);
|
|
6345
6217
|
return null;
|
|
@@ -6377,7 +6249,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6377
6249
|
entries = await fs4.readdir(dir);
|
|
6378
6250
|
} catch (error) {
|
|
6379
6251
|
if (error.code !== "ENOENT") {
|
|
6380
|
-
|
|
6252
|
+
debugLogger9.warn(`Cannot read output styles directory ${dir}:`, error);
|
|
6381
6253
|
}
|
|
6382
6254
|
return [];
|
|
6383
6255
|
}
|
|
@@ -6396,13 +6268,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6396
6268
|
}
|
|
6397
6269
|
const buffer = await readBoundedStyleFile(readPath);
|
|
6398
6270
|
if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
|
|
6399
|
-
|
|
6271
|
+
debugLogger9.warn(
|
|
6400
6272
|
`Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
|
|
6401
6273
|
);
|
|
6402
6274
|
continue;
|
|
6403
6275
|
}
|
|
6404
6276
|
if (isBinary(buffer)) {
|
|
6405
|
-
|
|
6277
|
+
debugLogger9.warn(
|
|
6406
6278
|
`Skipping output style ${filePath}: it is not UTF-8 text`
|
|
6407
6279
|
);
|
|
6408
6280
|
continue;
|
|
@@ -6414,7 +6286,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6414
6286
|
);
|
|
6415
6287
|
const key = style.name.toLowerCase();
|
|
6416
6288
|
if (seen.has(key)) {
|
|
6417
|
-
|
|
6289
|
+
debugLogger9.warn(
|
|
6418
6290
|
`Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
|
|
6419
6291
|
);
|
|
6420
6292
|
continue;
|
|
@@ -6422,7 +6294,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6422
6294
|
seen.add(key);
|
|
6423
6295
|
styles.push(style);
|
|
6424
6296
|
} catch (error) {
|
|
6425
|
-
|
|
6297
|
+
debugLogger9.warn(
|
|
6426
6298
|
`Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
|
|
6427
6299
|
);
|
|
6428
6300
|
}
|
|
@@ -6470,7 +6342,7 @@ async function loadOutputStyleCatalog(options = {}) {
|
|
|
6470
6342
|
const key = style.name.toLowerCase();
|
|
6471
6343
|
const winner = winners.get(key);
|
|
6472
6344
|
if (winner) {
|
|
6473
|
-
|
|
6345
|
+
debugLogger9.debug(
|
|
6474
6346
|
`Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
|
|
6475
6347
|
);
|
|
6476
6348
|
continue;
|
|
@@ -6490,7 +6362,7 @@ __name(findOutputStyle, "findOutputStyle");
|
|
|
6490
6362
|
|
|
6491
6363
|
// packages/core/src/tools/client-mcp-registrar.ts
|
|
6492
6364
|
init_esbuild_shims();
|
|
6493
|
-
var
|
|
6365
|
+
var debugLogger10 = createDebugLogger("CLIENT_MCP_REGISTRAR");
|
|
6494
6366
|
var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
|
|
6495
6367
|
var ClientMcpRegistrar = class {
|
|
6496
6368
|
static {
|
|
@@ -6513,7 +6385,7 @@ var ClientMcpRegistrar = class {
|
|
|
6513
6385
|
*/
|
|
6514
6386
|
registerServer(serverName) {
|
|
6515
6387
|
this.servers.add(serverName);
|
|
6516
|
-
|
|
6388
|
+
debugLogger10.debug(`Registered client MCP server '${serverName}'`);
|
|
6517
6389
|
}
|
|
6518
6390
|
/**
|
|
6519
6391
|
* Drop a server name and reject any in-flight requests targeting it. Returns
|
|
@@ -6526,7 +6398,7 @@ var ClientMcpRegistrar = class {
|
|
|
6526
6398
|
new Error(`client MCP server '${serverName}' was unregistered`)
|
|
6527
6399
|
);
|
|
6528
6400
|
if (existed) {
|
|
6529
|
-
|
|
6401
|
+
debugLogger10.debug(`Unregistered client MCP server '${serverName}'`);
|
|
6530
6402
|
}
|
|
6531
6403
|
return existed;
|
|
6532
6404
|
}
|
|
@@ -6626,7 +6498,7 @@ var ClientMcpRegistrar = class {
|
|
|
6626
6498
|
resolveMessage(id, payload) {
|
|
6627
6499
|
const pending = this.pending.get(id);
|
|
6628
6500
|
if (!pending) {
|
|
6629
|
-
|
|
6501
|
+
debugLogger10.debug(`Dropping mcp_message with unknown id '${id}'`);
|
|
6630
6502
|
return false;
|
|
6631
6503
|
}
|
|
6632
6504
|
this.pending.delete(id);
|
|
@@ -6848,7 +6720,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
|
|
|
6848
6720
|
import * as fsSync2 from "node:fs";
|
|
6849
6721
|
import * as fs5 from "node:fs/promises";
|
|
6850
6722
|
import * as path7 from "node:path";
|
|
6851
|
-
var
|
|
6723
|
+
var debugLogger11 = createDebugLogger("PEER_CONTROLLERS");
|
|
6852
6724
|
var PEER_CONTROLLER_SCHEMA_VERSION = 1;
|
|
6853
6725
|
var CONTROLLER_TOKEN_PREFIX = "qpc_";
|
|
6854
6726
|
var CONTROLLER_TOKEN_BYTES = 32;
|
|
@@ -6869,7 +6741,7 @@ var LOCK_OPTIONS = {
|
|
|
6869
6741
|
randomize: true
|
|
6870
6742
|
},
|
|
6871
6743
|
onCompromised: /* @__PURE__ */ __name((error) => {
|
|
6872
|
-
|
|
6744
|
+
debugLogger11.debug(
|
|
6873
6745
|
`controller registry lock compromised: ${describe2(error)}`
|
|
6874
6746
|
);
|
|
6875
6747
|
}, "onCompromised")
|
|
@@ -6936,13 +6808,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6936
6808
|
try {
|
|
6937
6809
|
const stats = fsSync2.lstatSync(filePath);
|
|
6938
6810
|
if (!stats.isFile()) {
|
|
6939
|
-
|
|
6811
|
+
debugLogger11.debug(
|
|
6940
6812
|
`ignoring the controller registry at ${filePath}: not a regular file`
|
|
6941
6813
|
);
|
|
6942
6814
|
return emptyRegistry();
|
|
6943
6815
|
}
|
|
6944
6816
|
if (stats.size > MAX_REGISTRY_BYTES) {
|
|
6945
|
-
|
|
6817
|
+
debugLogger11.debug(
|
|
6946
6818
|
`ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
|
|
6947
6819
|
);
|
|
6948
6820
|
return emptyRegistry();
|
|
@@ -6950,7 +6822,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6950
6822
|
raw = fsSync2.readFileSync(filePath, "utf8");
|
|
6951
6823
|
} catch (error) {
|
|
6952
6824
|
if (!isNodeError(error) || error.code !== "ENOENT") {
|
|
6953
|
-
|
|
6825
|
+
debugLogger11.debug(
|
|
6954
6826
|
`could not read the controller registry at ${filePath}: ${describe2(error)}`
|
|
6955
6827
|
);
|
|
6956
6828
|
}
|
|
@@ -6960,14 +6832,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6960
6832
|
try {
|
|
6961
6833
|
parsed = JSON.parse(raw);
|
|
6962
6834
|
} catch (error) {
|
|
6963
|
-
|
|
6835
|
+
debugLogger11.debug(
|
|
6964
6836
|
`the controller registry at ${filePath} is not JSON: ${describe2(error)}`
|
|
6965
6837
|
);
|
|
6966
6838
|
return emptyRegistry();
|
|
6967
6839
|
}
|
|
6968
6840
|
if (!isRecord(parsed)) return emptyRegistry();
|
|
6969
6841
|
if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
|
|
6970
|
-
|
|
6842
|
+
debugLogger11.debug(
|
|
6971
6843
|
`ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
|
|
6972
6844
|
parsed["schemaVersion"]
|
|
6973
6845
|
)}`
|
|
@@ -6980,7 +6852,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
6980
6852
|
for (const entry of controllers) {
|
|
6981
6853
|
const record = toValidRecord(entry);
|
|
6982
6854
|
if (record === null) {
|
|
6983
|
-
|
|
6855
|
+
debugLogger11.debug(
|
|
6984
6856
|
`skipping a malformed entry in the controller registry at ${filePath}`
|
|
6985
6857
|
);
|
|
6986
6858
|
continue;
|
|
@@ -7208,7 +7080,7 @@ __name(removePeerController, "removePeerController");
|
|
|
7208
7080
|
|
|
7209
7081
|
// packages/core/src/ipc/peer-drop-reports.ts
|
|
7210
7082
|
init_esbuild_shims();
|
|
7211
|
-
var
|
|
7083
|
+
var debugLogger12 = createDebugLogger("PEER_DROP_REPORTS");
|
|
7212
7084
|
var DROP_REPORT_WINDOW_MS = 6e4;
|
|
7213
7085
|
var DROP_RECEIPT_TRAIL_MS = 5e3;
|
|
7214
7086
|
var DROP_FLUSH_BOUND_MS = 500;
|
|
@@ -7350,7 +7222,7 @@ var DropReceiptCoalescer = class {
|
|
|
7350
7222
|
const now = this.now();
|
|
7351
7223
|
const age = now - batch.firstNotedAt;
|
|
7352
7224
|
if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
|
|
7353
|
-
|
|
7225
|
+
debugLogger12.debug(
|
|
7354
7226
|
`abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
|
|
7355
7227
|
);
|
|
7356
7228
|
this.clearBatch(batch);
|
|
@@ -7388,7 +7260,7 @@ var DropReceiptCoalescer = class {
|
|
|
7388
7260
|
try {
|
|
7389
7261
|
result = this.send(receipt);
|
|
7390
7262
|
} catch (error) {
|
|
7391
|
-
|
|
7263
|
+
debugLogger12.debug(`sending a dropped receipt threw: ${describe3(error)}`);
|
|
7392
7264
|
return;
|
|
7393
7265
|
}
|
|
7394
7266
|
if (!(result instanceof Promise)) return result;
|
|
@@ -7489,7 +7361,7 @@ var DropNoticeThrottle = class {
|
|
|
7489
7361
|
suppressed
|
|
7490
7362
|
});
|
|
7491
7363
|
} catch (error) {
|
|
7492
|
-
|
|
7364
|
+
debugLogger12.debug(`drop-notice listener threw: ${describe3(error)}`);
|
|
7493
7365
|
}
|
|
7494
7366
|
}
|
|
7495
7367
|
touch(key) {
|
|
@@ -7679,7 +7551,7 @@ var DroppedNotificationTally = class {
|
|
|
7679
7551
|
|
|
7680
7552
|
// packages/core/src/services/toolUseSummary.ts
|
|
7681
7553
|
init_esbuild_shims();
|
|
7682
|
-
var
|
|
7554
|
+
var debugLogger13 = createDebugLogger("TOOL_USE_SUMMARY");
|
|
7683
7555
|
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.
|
|
7684
7556
|
|
|
7685
7557
|
Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
|
|
@@ -7700,7 +7572,7 @@ async function generateToolUseSummary(params) {
|
|
|
7700
7572
|
}
|
|
7701
7573
|
const model = config.getFastModel();
|
|
7702
7574
|
if (!model) {
|
|
7703
|
-
|
|
7575
|
+
debugLogger13.debug("No fast model configured \u2014 skipping summary generation");
|
|
7704
7576
|
return null;
|
|
7705
7577
|
}
|
|
7706
7578
|
if (signal.aborted) {
|
|
@@ -7723,7 +7595,7 @@ ${toolSummaries}
|
|
|
7723
7595
|
|
|
7724
7596
|
Label:`;
|
|
7725
7597
|
if (!config.getLlmClient()) {
|
|
7726
|
-
|
|
7598
|
+
debugLogger13.debug("No gemini client available \u2014 skipping");
|
|
7727
7599
|
return null;
|
|
7728
7600
|
}
|
|
7729
7601
|
const result = await runSideQuery(config, {
|
|
@@ -7742,19 +7614,19 @@ Label:`;
|
|
|
7742
7614
|
});
|
|
7743
7615
|
if (signal.aborted) return null;
|
|
7744
7616
|
if (!result.text) {
|
|
7745
|
-
|
|
7617
|
+
debugLogger13.debug("Summary generation returned empty result");
|
|
7746
7618
|
return null;
|
|
7747
7619
|
}
|
|
7748
7620
|
const cleaned = cleanSummary(result.text);
|
|
7749
7621
|
if (!cleaned) {
|
|
7750
|
-
|
|
7622
|
+
debugLogger13.debug(`Summary cleaned to empty: raw="${result.text}"`);
|
|
7751
7623
|
return null;
|
|
7752
7624
|
}
|
|
7753
|
-
|
|
7625
|
+
debugLogger13.debug(`Summary generated: "${cleaned}"`);
|
|
7754
7626
|
return cleaned;
|
|
7755
7627
|
} catch (err) {
|
|
7756
7628
|
if (signal.aborted) return null;
|
|
7757
|
-
|
|
7629
|
+
debugLogger13.warn(
|
|
7758
7630
|
`Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
|
|
7759
7631
|
);
|
|
7760
7632
|
return null;
|
|
@@ -7828,7 +7700,7 @@ __name(cleanSummary, "cleanSummary");
|
|
|
7828
7700
|
|
|
7829
7701
|
// packages/core/src/services/usage-dashboard-service.ts
|
|
7830
7702
|
init_esbuild_shims();
|
|
7831
|
-
var
|
|
7703
|
+
var debugLogger14 = createDebugLogger("USAGE_DASHBOARD");
|
|
7832
7704
|
var DEFAULT_HEATMAP_DAYS = 183;
|
|
7833
7705
|
var MAX_DAILY_DAYS = 92;
|
|
7834
7706
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
@@ -7953,7 +7825,7 @@ function buildUsageDashboard(records, options = {}) {
|
|
|
7953
7825
|
);
|
|
7954
7826
|
const daily = buildDaily(records, dailyStart, now);
|
|
7955
7827
|
const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
|
|
7956
|
-
|
|
7828
|
+
debugLogger14.debug(
|
|
7957
7829
|
`built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
|
|
7958
7830
|
);
|
|
7959
7831
|
return {
|
|
@@ -8289,7 +8161,7 @@ import * as path8 from "node:path";
|
|
|
8289
8161
|
var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
|
|
8290
8162
|
var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
|
|
8291
8163
|
var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
|
|
8292
|
-
var
|
|
8164
|
+
var debugLogger15 = createDebugLogger("CHANNEL_MEMORY");
|
|
8293
8165
|
var pendingMutations = /* @__PURE__ */ new Map();
|
|
8294
8166
|
var LOCK_OPTIONS2 = {
|
|
8295
8167
|
realpath: false,
|
|
@@ -8302,7 +8174,7 @@ var LOCK_OPTIONS2 = {
|
|
|
8302
8174
|
},
|
|
8303
8175
|
stale: 5e3,
|
|
8304
8176
|
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
8305
|
-
|
|
8177
|
+
debugLogger15.warn("channel memory lock compromised:", err);
|
|
8306
8178
|
}, "onCompromised")
|
|
8307
8179
|
};
|
|
8308
8180
|
function isMissingFile(error) {
|
|
@@ -9289,7 +9161,7 @@ init_esbuild_shims();
|
|
|
9289
9161
|
import * as fs9 from "node:fs";
|
|
9290
9162
|
import * as path11 from "path";
|
|
9291
9163
|
import { pathToFileURL } from "url";
|
|
9292
|
-
var
|
|
9164
|
+
var debugLogger16 = createDebugLogger("LSP");
|
|
9293
9165
|
var MAX_TCP_PORT = 65535;
|
|
9294
9166
|
var LspConfigLoader = class {
|
|
9295
9167
|
constructor(workspaceRoot) {
|
|
@@ -9314,7 +9186,7 @@ var LspConfigLoader = class {
|
|
|
9314
9186
|
forceTrustRequired: true
|
|
9315
9187
|
});
|
|
9316
9188
|
} catch (error) {
|
|
9317
|
-
|
|
9189
|
+
debugLogger16.warn("Failed to load user .lsp.json config:", error);
|
|
9318
9190
|
return [];
|
|
9319
9191
|
}
|
|
9320
9192
|
}
|
|
@@ -9351,7 +9223,7 @@ var LspConfigLoader = class {
|
|
|
9351
9223
|
lspServers
|
|
9352
9224
|
);
|
|
9353
9225
|
if (!fs9.existsSync(configPath)) {
|
|
9354
|
-
|
|
9226
|
+
debugLogger16.warn(
|
|
9355
9227
|
`LSP config not found for ${originBase}: ${configPath}`
|
|
9356
9228
|
);
|
|
9357
9229
|
continue;
|
|
@@ -9367,7 +9239,7 @@ var LspConfigLoader = class {
|
|
|
9367
9239
|
)
|
|
9368
9240
|
);
|
|
9369
9241
|
} catch (error) {
|
|
9370
|
-
|
|
9242
|
+
debugLogger16.warn(
|
|
9371
9243
|
`Failed to load extension LSP config from ${configPath}:`,
|
|
9372
9244
|
error
|
|
9373
9245
|
);
|
|
@@ -9381,7 +9253,7 @@ var LspConfigLoader = class {
|
|
|
9381
9253
|
...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
|
|
9382
9254
|
);
|
|
9383
9255
|
} else {
|
|
9384
|
-
|
|
9256
|
+
debugLogger16.warn(
|
|
9385
9257
|
`LSP config for ${originBase} must be an object or a JSON file path.`
|
|
9386
9258
|
);
|
|
9387
9259
|
}
|
|
@@ -9519,13 +9391,13 @@ var LspConfigLoader = class {
|
|
|
9519
9391
|
const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
|
|
9520
9392
|
const socket = this.normalizeSocketOptions(spec);
|
|
9521
9393
|
if (transport === "stdio" && !command) {
|
|
9522
|
-
|
|
9394
|
+
debugLogger16.warn(
|
|
9523
9395
|
`LSP config error in ${origin}: ${name} missing command`
|
|
9524
9396
|
);
|
|
9525
9397
|
return null;
|
|
9526
9398
|
}
|
|
9527
9399
|
if (transport !== "stdio" && !socket) {
|
|
9528
|
-
|
|
9400
|
+
debugLogger16.warn(
|
|
9529
9401
|
`LSP config error in ${origin}: ${name} missing socket info`
|
|
9530
9402
|
);
|
|
9531
9403
|
return null;
|
|
@@ -9667,7 +9539,7 @@ var LspConfigLoader = class {
|
|
|
9667
9539
|
if (resolved === root || resolved.startsWith(root + path11.sep)) {
|
|
9668
9540
|
return resolved;
|
|
9669
9541
|
}
|
|
9670
|
-
|
|
9542
|
+
debugLogger16.warn(
|
|
9671
9543
|
`LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
|
|
9672
9544
|
);
|
|
9673
9545
|
return this.workspaceRoot;
|
|
@@ -9679,7 +9551,7 @@ init_esbuild_shims();
|
|
|
9679
9551
|
import * as cp from "node:child_process";
|
|
9680
9552
|
import * as net2 from "node:net";
|
|
9681
9553
|
import { StringDecoder } from "node:string_decoder";
|
|
9682
|
-
var
|
|
9554
|
+
var debugLogger17 = createDebugLogger("LSP");
|
|
9683
9555
|
var MAX_STDERR_TAIL_BYTES = 8192;
|
|
9684
9556
|
function trimTail(value, maxBytes) {
|
|
9685
9557
|
const buffer = Buffer.from(value, "utf8");
|
|
@@ -9744,7 +9616,7 @@ var JsonRpcConnection = class {
|
|
|
9744
9616
|
try {
|
|
9745
9617
|
this.disposer?.();
|
|
9746
9618
|
} catch (error) {
|
|
9747
|
-
|
|
9619
|
+
debugLogger17.warn("LSP disposer failed:", error);
|
|
9748
9620
|
}
|
|
9749
9621
|
}
|
|
9750
9622
|
sendRequest(method, params) {
|
|
@@ -9871,7 +9743,7 @@ var JsonRpcConnection = class {
|
|
|
9871
9743
|
try {
|
|
9872
9744
|
this.writer(header + json);
|
|
9873
9745
|
} catch (error) {
|
|
9874
|
-
|
|
9746
|
+
debugLogger17.warn("LSP write failed:", error);
|
|
9875
9747
|
this.end();
|
|
9876
9748
|
}
|
|
9877
9749
|
}
|
|
@@ -9930,14 +9802,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
9930
9802
|
);
|
|
9931
9803
|
});
|
|
9932
9804
|
processInstance.stderr?.on("error", (err) => {
|
|
9933
|
-
|
|
9805
|
+
debugLogger17.warn(`LSP stderr stream error for ${command}:`, err);
|
|
9934
9806
|
});
|
|
9935
9807
|
const connection = new JsonRpcConnection(
|
|
9936
9808
|
(payload) => processInstance.stdin?.write(payload),
|
|
9937
9809
|
() => processInstance.stdin?.end()
|
|
9938
9810
|
);
|
|
9939
9811
|
processInstance.stdin.on("error", (err) => {
|
|
9940
|
-
|
|
9812
|
+
debugLogger17.warn(`LSP stdin stream error for ${command}:`, err);
|
|
9941
9813
|
connection.end();
|
|
9942
9814
|
});
|
|
9943
9815
|
connection.listen(processInstance.stdout);
|
|
@@ -10020,7 +9892,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
10020
9892
|
try {
|
|
10021
9893
|
await lspConnection.connection.shutdown();
|
|
10022
9894
|
} catch (e) {
|
|
10023
|
-
|
|
9895
|
+
debugLogger17.warn("LSP shutdown failed:", e);
|
|
10024
9896
|
} finally {
|
|
10025
9897
|
lspConnection.connection.end();
|
|
10026
9898
|
}
|
|
@@ -10708,7 +10580,7 @@ function resolveTextDocumentSync(sync) {
|
|
|
10708
10580
|
__name(resolveTextDocumentSync, "resolveTextDocumentSync");
|
|
10709
10581
|
|
|
10710
10582
|
// packages/core/src/lsp/lsp-server-manager.ts
|
|
10711
|
-
var
|
|
10583
|
+
var debugLogger18 = createDebugLogger("LSP");
|
|
10712
10584
|
var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
10713
10585
|
"DYLD_INSERT_LIBRARIES",
|
|
10714
10586
|
"DYLD_LIBRARY_PATH",
|
|
@@ -10745,7 +10617,7 @@ var LspServerManager = class {
|
|
|
10745
10617
|
});
|
|
10746
10618
|
this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
|
|
10747
10619
|
}
|
|
10748
|
-
|
|
10620
|
+
debugLogger18.info(
|
|
10749
10621
|
`Prepared ${configs.length} LSP server config(s): ${formatServerNames(
|
|
10750
10622
|
configs.map((config) => config.name)
|
|
10751
10623
|
)}`
|
|
@@ -10754,7 +10626,7 @@ var LspServerManager = class {
|
|
|
10754
10626
|
/** Drops all prepared handles without attempting process shutdown. */
|
|
10755
10627
|
clearServerHandles() {
|
|
10756
10628
|
if (this.serverHandles.size > 0) {
|
|
10757
|
-
|
|
10629
|
+
debugLogger18.info(
|
|
10758
10630
|
`Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
|
|
10759
10631
|
Array.from(this.serverHandles.keys())
|
|
10760
10632
|
)}`
|
|
@@ -10815,7 +10687,7 @@ var LspServerManager = class {
|
|
|
10815
10687
|
* before their handles are deleted or replaced.
|
|
10816
10688
|
*/
|
|
10817
10689
|
async doReconcileServerConfigs(configs) {
|
|
10818
|
-
|
|
10690
|
+
debugLogger18.info(
|
|
10819
10691
|
`Reconciling LSP server configs: desired=${formatServerNames(
|
|
10820
10692
|
configs.map((config) => config.name)
|
|
10821
10693
|
)}`
|
|
@@ -10887,7 +10759,7 @@ var LspServerManager = class {
|
|
|
10887
10759
|
result.added.push(name);
|
|
10888
10760
|
}
|
|
10889
10761
|
}
|
|
10890
|
-
|
|
10762
|
+
debugLogger18.info(
|
|
10891
10763
|
`LSP reconcile result: added=${formatServerNames(
|
|
10892
10764
|
result.added
|
|
10893
10765
|
)}, removed=${formatServerNames(
|
|
@@ -10929,7 +10801,7 @@ var LspServerManager = class {
|
|
|
10929
10801
|
handle.textDocumentSync
|
|
10930
10802
|
);
|
|
10931
10803
|
if (!sent && (!openClose || force && change !== 1 && change !== 2)) {
|
|
10932
|
-
|
|
10804
|
+
debugLogger18.warn(
|
|
10933
10805
|
`TypeScript server ${handle.config.name} warm-up delivered no notification (textDocumentSync=${JSON.stringify(handle.textDocumentSync)})`
|
|
10934
10806
|
);
|
|
10935
10807
|
handle.warmedUp = true;
|
|
@@ -10940,7 +10812,7 @@ var LspServerManager = class {
|
|
|
10940
10812
|
);
|
|
10941
10813
|
if (handle.connection === connection) handle.warmedUp = true;
|
|
10942
10814
|
} catch (error) {
|
|
10943
|
-
|
|
10815
|
+
debugLogger18.warn("TypeScript server warm-up failed:", error);
|
|
10944
10816
|
return;
|
|
10945
10817
|
}
|
|
10946
10818
|
}
|
|
@@ -10987,7 +10859,7 @@ var LspServerManager = class {
|
|
|
10987
10859
|
async doStartServer(name, handle) {
|
|
10988
10860
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
10989
10861
|
if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
|
|
10990
|
-
|
|
10862
|
+
debugLogger18.warn(
|
|
10991
10863
|
`LSP server ${name} requires trusted workspace, skipping startup`
|
|
10992
10864
|
);
|
|
10993
10865
|
handle.status = "FAILED";
|
|
@@ -11000,7 +10872,7 @@ var LspServerManager = class {
|
|
|
11000
10872
|
workspaceTrusted
|
|
11001
10873
|
);
|
|
11002
10874
|
if (!trusted) {
|
|
11003
|
-
|
|
10875
|
+
debugLogger18.warn(
|
|
11004
10876
|
`Workspace trust check failed, not starting LSP server ${name}`
|
|
11005
10877
|
);
|
|
11006
10878
|
handle.status = "FAILED";
|
|
@@ -11010,7 +10882,7 @@ var LspServerManager = class {
|
|
|
11010
10882
|
if (handle.config.command) {
|
|
11011
10883
|
const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
|
|
11012
10884
|
if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
|
|
11013
|
-
|
|
10885
|
+
debugLogger18.warn(
|
|
11014
10886
|
`LSP server ${name} command path is unsafe: ${handle.config.command}`
|
|
11015
10887
|
);
|
|
11016
10888
|
handle.status = "FAILED";
|
|
@@ -11022,7 +10894,7 @@ var LspServerManager = class {
|
|
|
11022
10894
|
handle.config.env,
|
|
11023
10895
|
commandCwd
|
|
11024
10896
|
)) {
|
|
11025
|
-
|
|
10897
|
+
debugLogger18.warn(
|
|
11026
10898
|
`LSP server ${name} command not found: ${handle.config.command}`
|
|
11027
10899
|
);
|
|
11028
10900
|
handle.status = "FAILED";
|
|
@@ -11038,7 +10910,7 @@ var LspServerManager = class {
|
|
|
11038
10910
|
handle.warmedUp = false;
|
|
11039
10911
|
handle.textDocumentSync = void 0;
|
|
11040
10912
|
handle.status = "IN_PROGRESS";
|
|
11041
|
-
|
|
10913
|
+
debugLogger18.info(
|
|
11042
10914
|
`Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
|
|
11043
10915
|
handle.config.languages
|
|
11044
10916
|
)}`
|
|
@@ -11063,7 +10935,7 @@ var LspServerManager = class {
|
|
|
11063
10935
|
}
|
|
11064
10936
|
handle.status = "READY";
|
|
11065
10937
|
this.attachRestartHandler(name, handle);
|
|
11066
|
-
|
|
10938
|
+
debugLogger18.info(`LSP server ${name} started successfully`);
|
|
11067
10939
|
} catch (error) {
|
|
11068
10940
|
handle.status = "FAILED";
|
|
11069
10941
|
handle.error = error;
|
|
@@ -11077,21 +10949,21 @@ var LspServerManager = class {
|
|
|
11077
10949
|
}
|
|
11078
10950
|
await this.releaseServerResources(name, handle, false);
|
|
11079
10951
|
if (handle.processDiagnostics) {
|
|
11080
|
-
|
|
10952
|
+
debugLogger18.error(
|
|
11081
10953
|
`LSP server ${name} process diagnostics:`,
|
|
11082
10954
|
handle.processDiagnostics
|
|
11083
10955
|
);
|
|
11084
10956
|
}
|
|
11085
10957
|
handle.connection = void 0;
|
|
11086
10958
|
handle.process = void 0;
|
|
11087
|
-
|
|
10959
|
+
debugLogger18.error(`LSP server ${name} failed to start:`, error);
|
|
11088
10960
|
}
|
|
11089
10961
|
}
|
|
11090
10962
|
/**
|
|
11091
10963
|
* Stops a server and resets runtime-only handle state.
|
|
11092
10964
|
*/
|
|
11093
10965
|
async stopServer(name, handle) {
|
|
11094
|
-
|
|
10966
|
+
debugLogger18.info(`Stopping LSP server ${name}`);
|
|
11095
10967
|
handle.stopRequested = true;
|
|
11096
10968
|
handle.startupAbortController?.abort();
|
|
11097
10969
|
if (handle.startingPromise) {
|
|
@@ -11104,7 +10976,7 @@ var LspServerManager = class {
|
|
|
11104
10976
|
handle.status = "NOT_STARTED";
|
|
11105
10977
|
handle.warmedUp = false;
|
|
11106
10978
|
handle.restartAttempts = 0;
|
|
11107
|
-
|
|
10979
|
+
debugLogger18.info(`LSP server ${name} stopped`);
|
|
11108
10980
|
}
|
|
11109
10981
|
async abortAndWaitForStartup(handle) {
|
|
11110
10982
|
if (!handle.startingPromise) {
|
|
@@ -11128,14 +11000,14 @@ var LspServerManager = class {
|
|
|
11128
11000
|
handle.connection.end();
|
|
11129
11001
|
}
|
|
11130
11002
|
} catch (error) {
|
|
11131
|
-
|
|
11003
|
+
debugLogger18.error(`Error closing LSP server ${name}:`, error);
|
|
11132
11004
|
}
|
|
11133
11005
|
}
|
|
11134
11006
|
if (handle.process && handle.process.exitCode === null) {
|
|
11135
11007
|
try {
|
|
11136
11008
|
handle.process.kill();
|
|
11137
11009
|
} catch (error) {
|
|
11138
|
-
|
|
11010
|
+
debugLogger18.warn(`Error killing LSP server ${name} process:`, error);
|
|
11139
11011
|
}
|
|
11140
11012
|
}
|
|
11141
11013
|
}
|
|
@@ -11181,7 +11053,7 @@ var LspServerManager = class {
|
|
|
11181
11053
|
}
|
|
11182
11054
|
handle.processExitedUnexpectedly = true;
|
|
11183
11055
|
if (!handle.config.restartOnCrash) {
|
|
11184
|
-
|
|
11056
|
+
debugLogger18.warn(
|
|
11185
11057
|
`LSP server ${name} exited but restartOnCrash is disabled`
|
|
11186
11058
|
);
|
|
11187
11059
|
handle.status = "FAILED";
|
|
@@ -11190,7 +11062,7 @@ var LspServerManager = class {
|
|
|
11190
11062
|
}
|
|
11191
11063
|
const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
|
|
11192
11064
|
if (maxRestarts <= 0) {
|
|
11193
|
-
|
|
11065
|
+
debugLogger18.warn(
|
|
11194
11066
|
`LSP server ${name} exited but maxRestarts is ${maxRestarts}`
|
|
11195
11067
|
);
|
|
11196
11068
|
handle.status = "FAILED";
|
|
@@ -11199,7 +11071,7 @@ var LspServerManager = class {
|
|
|
11199
11071
|
}
|
|
11200
11072
|
const attempts = handle.restartAttempts ?? 0;
|
|
11201
11073
|
if (attempts >= maxRestarts) {
|
|
11202
|
-
|
|
11074
|
+
debugLogger18.warn(
|
|
11203
11075
|
`LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
|
|
11204
11076
|
);
|
|
11205
11077
|
handle.status = "FAILED";
|
|
@@ -11207,7 +11079,7 @@ var LspServerManager = class {
|
|
|
11207
11079
|
return;
|
|
11208
11080
|
}
|
|
11209
11081
|
handle.restartAttempts = attempts + 1;
|
|
11210
|
-
|
|
11082
|
+
debugLogger18.warn(
|
|
11211
11083
|
`LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
|
|
11212
11084
|
);
|
|
11213
11085
|
this.enqueueCrashRestart(name, handle);
|
|
@@ -11255,7 +11127,7 @@ var LspServerManager = class {
|
|
|
11255
11127
|
const next = this.reconcileQueue.then(restart, restart);
|
|
11256
11128
|
this.reconcileQueue = next.catch(() => void 0);
|
|
11257
11129
|
void next.catch((error) => {
|
|
11258
|
-
|
|
11130
|
+
debugLogger18.warn(`LSP server ${name} crash restart failed:`, error);
|
|
11259
11131
|
});
|
|
11260
11132
|
}
|
|
11261
11133
|
resetHandle(handle) {
|
|
@@ -11263,14 +11135,14 @@ var LspServerManager = class {
|
|
|
11263
11135
|
try {
|
|
11264
11136
|
handle.connection.end();
|
|
11265
11137
|
} catch (error) {
|
|
11266
|
-
|
|
11138
|
+
debugLogger18.warn("Error closing LSP connection during reset:", error);
|
|
11267
11139
|
}
|
|
11268
11140
|
}
|
|
11269
11141
|
if (handle.process && handle.process.exitCode === null) {
|
|
11270
11142
|
try {
|
|
11271
11143
|
handle.process.kill();
|
|
11272
11144
|
} catch (error) {
|
|
11273
|
-
|
|
11145
|
+
debugLogger18.warn("Error killing LSP process during reset:", error);
|
|
11274
11146
|
}
|
|
11275
11147
|
}
|
|
11276
11148
|
handle.connection = void 0;
|
|
@@ -11289,7 +11161,7 @@ var LspServerManager = class {
|
|
|
11289
11161
|
const filteredEnv = {};
|
|
11290
11162
|
for (const [key, value] of Object.entries(env2)) {
|
|
11291
11163
|
if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
|
|
11292
|
-
|
|
11164
|
+
debugLogger18.warn(
|
|
11293
11165
|
`Ignoring security-sensitive LSP server env override: ${key}`
|
|
11294
11166
|
);
|
|
11295
11167
|
continue;
|
|
@@ -11315,7 +11187,7 @@ var LspServerManager = class {
|
|
|
11315
11187
|
for (const [key, value] of Object.entries(env2)) {
|
|
11316
11188
|
const normalizedKey = key.toUpperCase();
|
|
11317
11189
|
if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
|
|
11318
|
-
|
|
11190
|
+
debugLogger18.warn(
|
|
11319
11191
|
`Ignoring security-sensitive LSP command probe env override: ${key}`
|
|
11320
11192
|
);
|
|
11321
11193
|
continue;
|
|
@@ -11564,7 +11436,7 @@ var LspServerManager = class {
|
|
|
11564
11436
|
try {
|
|
11565
11437
|
process3.kill();
|
|
11566
11438
|
} catch (error) {
|
|
11567
|
-
|
|
11439
|
+
debugLogger18.warn(
|
|
11568
11440
|
"Error killing aborted LSP socket process:",
|
|
11569
11441
|
error
|
|
11570
11442
|
);
|
|
@@ -11738,12 +11610,12 @@ var LspServerManager = class {
|
|
|
11738
11610
|
return true;
|
|
11739
11611
|
}
|
|
11740
11612
|
if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
|
|
11741
|
-
|
|
11613
|
+
debugLogger18.warn(
|
|
11742
11614
|
`Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
|
|
11743
11615
|
);
|
|
11744
11616
|
return false;
|
|
11745
11617
|
}
|
|
11746
|
-
|
|
11618
|
+
debugLogger18.info(
|
|
11747
11619
|
`Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
|
|
11748
11620
|
);
|
|
11749
11621
|
return true;
|
|
@@ -11989,7 +11861,7 @@ import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
|
|
|
11989
11861
|
import * as fs10 from "node:fs";
|
|
11990
11862
|
import { createHash as createHash5, createHmac, randomBytes as randomBytes4 } from "node:crypto";
|
|
11991
11863
|
import { promises as fsp } from "node:fs";
|
|
11992
|
-
var
|
|
11864
|
+
var debugLogger19 = createDebugLogger("LSP");
|
|
11993
11865
|
var LANGUAGE_ID_TO_EXTENSIONS = {
|
|
11994
11866
|
typescript: ["ts", "tsx"],
|
|
11995
11867
|
typescriptreact: ["tsx"],
|
|
@@ -12065,7 +11937,7 @@ var NativeLspService = class {
|
|
|
12065
11937
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12066
11938
|
this.serverManager.clearServerHandles();
|
|
12067
11939
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
12068
|
-
|
|
11940
|
+
debugLogger19.warn(
|
|
12069
11941
|
"Workspace is not trusted, skipping LSP server discovery"
|
|
12070
11942
|
);
|
|
12071
11943
|
return;
|
|
@@ -12083,7 +11955,7 @@ var NativeLspService = class {
|
|
|
12083
11955
|
serverConfigs,
|
|
12084
11956
|
workspaceTrusted
|
|
12085
11957
|
);
|
|
12086
|
-
|
|
11958
|
+
debugLogger19.info(
|
|
12087
11959
|
`Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
|
|
12088
11960
|
admitted.map((config) => config.name)
|
|
12089
11961
|
)}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
|
|
@@ -12118,7 +11990,7 @@ var NativeLspService = class {
|
|
|
12118
11990
|
async doReinitialize(signal) {
|
|
12119
11991
|
this.throwIfReinitializeAborted(signal);
|
|
12120
11992
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12121
|
-
|
|
11993
|
+
debugLogger19.info(
|
|
12122
11994
|
`Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
|
|
12123
11995
|
);
|
|
12124
11996
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
@@ -12137,7 +12009,7 @@ var NativeLspService = class {
|
|
|
12137
12009
|
},
|
|
12138
12010
|
skipped: []
|
|
12139
12011
|
};
|
|
12140
|
-
|
|
12012
|
+
debugLogger19.info(
|
|
12141
12013
|
`LSP reinitialize result: added=<none>, removed=${formatServerNames2(
|
|
12142
12014
|
removed
|
|
12143
12015
|
)}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
|
|
@@ -12179,7 +12051,7 @@ var NativeLspService = class {
|
|
|
12179
12051
|
signal
|
|
12180
12052
|
);
|
|
12181
12053
|
this.throwIfReinitializeAborted(signal);
|
|
12182
|
-
|
|
12054
|
+
debugLogger19.info(
|
|
12183
12055
|
`LSP reinitialize result: added=${formatServerNames2(
|
|
12184
12056
|
reconcile.added
|
|
12185
12057
|
)}, removed=${formatServerNames2(
|
|
@@ -12199,7 +12071,7 @@ var NativeLspService = class {
|
|
|
12199
12071
|
const skipped = [];
|
|
12200
12072
|
for (const config of configs) {
|
|
12201
12073
|
if (!workspaceTrusted && config.trustRequired) {
|
|
12202
|
-
|
|
12074
|
+
debugLogger19.warn(
|
|
12203
12075
|
`LSP server ${config.name} requires trusted workspace, skipping`
|
|
12204
12076
|
);
|
|
12205
12077
|
skipped.push({ name: config.name, reason: "server_trust_required" });
|
|
@@ -12268,7 +12140,7 @@ var NativeLspService = class {
|
|
|
12268
12140
|
try {
|
|
12269
12141
|
openedAny = this.synchronizeDocument(name, handle, uri).sent || openedAny;
|
|
12270
12142
|
} catch (error) {
|
|
12271
|
-
|
|
12143
|
+
debugLogger19.warn(
|
|
12272
12144
|
`Failed to replay document ${uri} for LSP server ${name}:`,
|
|
12273
12145
|
error
|
|
12274
12146
|
);
|
|
@@ -12554,7 +12426,7 @@ var NativeLspService = class {
|
|
|
12554
12426
|
uri
|
|
12555
12427
|
);
|
|
12556
12428
|
} catch (error) {
|
|
12557
|
-
|
|
12429
|
+
debugLogger19.warn(
|
|
12558
12430
|
`LSP workspace symbol warmup skipped for ${uri}:`,
|
|
12559
12431
|
error
|
|
12560
12432
|
);
|
|
@@ -12740,7 +12612,7 @@ var NativeLspService = class {
|
|
|
12740
12612
|
}
|
|
12741
12613
|
}
|
|
12742
12614
|
} catch (error) {
|
|
12743
|
-
|
|
12615
|
+
debugLogger19.warn(
|
|
12744
12616
|
`LSP workspace/symbol failed for ${serverName}:`,
|
|
12745
12617
|
error
|
|
12746
12618
|
);
|
|
@@ -12791,7 +12663,7 @@ var NativeLspService = class {
|
|
|
12791
12663
|
return definitions.slice(0, limit);
|
|
12792
12664
|
}
|
|
12793
12665
|
} catch (error) {
|
|
12794
|
-
|
|
12666
|
+
debugLogger19.warn(
|
|
12795
12667
|
`LSP textDocument/definition failed for ${name}:`,
|
|
12796
12668
|
error
|
|
12797
12669
|
);
|
|
@@ -12845,7 +12717,7 @@ var NativeLspService = class {
|
|
|
12845
12717
|
return refs.slice(0, limit);
|
|
12846
12718
|
}
|
|
12847
12719
|
} catch (error) {
|
|
12848
|
-
|
|
12720
|
+
debugLogger19.warn(
|
|
12849
12721
|
`LSP textDocument/references failed for ${name}:`,
|
|
12850
12722
|
error
|
|
12851
12723
|
);
|
|
@@ -12886,7 +12758,7 @@ var NativeLspService = class {
|
|
|
12886
12758
|
return normalized2;
|
|
12887
12759
|
}
|
|
12888
12760
|
} catch (error) {
|
|
12889
|
-
|
|
12761
|
+
debugLogger19.warn(`LSP textDocument/hover failed for ${name}:`, error);
|
|
12890
12762
|
}
|
|
12891
12763
|
}
|
|
12892
12764
|
return null;
|
|
@@ -12950,7 +12822,7 @@ var NativeLspService = class {
|
|
|
12950
12822
|
return symbols.slice(0, limit);
|
|
12951
12823
|
}
|
|
12952
12824
|
} catch (error) {
|
|
12953
|
-
|
|
12825
|
+
debugLogger19.warn(
|
|
12954
12826
|
`LSP textDocument/documentSymbol failed for ${name}:`,
|
|
12955
12827
|
error
|
|
12956
12828
|
);
|
|
@@ -13004,7 +12876,7 @@ var NativeLspService = class {
|
|
|
13004
12876
|
return implementations.slice(0, limit);
|
|
13005
12877
|
}
|
|
13006
12878
|
} catch (error) {
|
|
13007
|
-
|
|
12879
|
+
debugLogger19.warn(
|
|
13008
12880
|
`LSP textDocument/implementation failed for ${name}:`,
|
|
13009
12881
|
error
|
|
13010
12882
|
);
|
|
@@ -13186,7 +13058,7 @@ var NativeLspService = class {
|
|
|
13186
13058
|
} catch (error) {
|
|
13187
13059
|
revision?.checkpoint();
|
|
13188
13060
|
if (error instanceof StaleCallHierarchyItemError) throw error;
|
|
13189
|
-
|
|
13061
|
+
debugLogger19.warn(
|
|
13190
13062
|
`LSP textDocument/prepareCallHierarchy failed for ${name}:`,
|
|
13191
13063
|
error
|
|
13192
13064
|
);
|
|
@@ -13241,7 +13113,7 @@ var NativeLspService = class {
|
|
|
13241
13113
|
revision.checkpoint();
|
|
13242
13114
|
this.validateCallHierarchyItem(item, revision);
|
|
13243
13115
|
if (error instanceof StaleCallHierarchyItemError) throw error;
|
|
13244
|
-
|
|
13116
|
+
debugLogger19.warn(
|
|
13245
13117
|
`LSP callHierarchy/incomingCalls failed for ${name}:`,
|
|
13246
13118
|
error
|
|
13247
13119
|
);
|
|
@@ -13296,7 +13168,7 @@ var NativeLspService = class {
|
|
|
13296
13168
|
revision.checkpoint();
|
|
13297
13169
|
this.validateCallHierarchyItem(item, revision);
|
|
13298
13170
|
if (error instanceof StaleCallHierarchyItemError) throw error;
|
|
13299
|
-
|
|
13171
|
+
debugLogger19.warn(
|
|
13300
13172
|
`LSP callHierarchy/outgoingCalls failed for ${name}:`,
|
|
13301
13173
|
error
|
|
13302
13174
|
);
|
|
@@ -13336,7 +13208,7 @@ var NativeLspService = class {
|
|
|
13336
13208
|
}
|
|
13337
13209
|
}
|
|
13338
13210
|
} catch (error) {
|
|
13339
|
-
|
|
13211
|
+
debugLogger19.warn(
|
|
13340
13212
|
`LSP textDocument/diagnostic failed for ${name}:`,
|
|
13341
13213
|
error
|
|
13342
13214
|
);
|
|
@@ -13414,7 +13286,7 @@ var NativeLspService = class {
|
|
|
13414
13286
|
}
|
|
13415
13287
|
}
|
|
13416
13288
|
} catch (error) {
|
|
13417
|
-
|
|
13289
|
+
debugLogger19.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
|
|
13418
13290
|
}
|
|
13419
13291
|
if (results.length >= limit) {
|
|
13420
13292
|
break;
|
|
@@ -13464,7 +13336,7 @@ var NativeLspService = class {
|
|
|
13464
13336
|
return actions.slice(0, limit);
|
|
13465
13337
|
}
|
|
13466
13338
|
} catch (error) {
|
|
13467
|
-
|
|
13339
|
+
debugLogger19.warn(
|
|
13468
13340
|
`LSP textDocument/codeAction failed for ${name}:`,
|
|
13469
13341
|
error
|
|
13470
13342
|
);
|
|
@@ -13492,7 +13364,7 @@ var NativeLspService = class {
|
|
|
13492
13364
|
}
|
|
13493
13365
|
return true;
|
|
13494
13366
|
} catch (error) {
|
|
13495
|
-
|
|
13367
|
+
debugLogger19.error("Failed to apply workspace edit:", error);
|
|
13496
13368
|
return false;
|
|
13497
13369
|
}
|
|
13498
13370
|
}
|
|
@@ -13752,7 +13624,7 @@ __name(createFollowupController, "createFollowupController");
|
|
|
13752
13624
|
|
|
13753
13625
|
// packages/core/src/followup/suggestionGenerator.ts
|
|
13754
13626
|
init_esbuild_shims();
|
|
13755
|
-
var
|
|
13627
|
+
var debugLogger20 = createDebugLogger("FOLLOWUP");
|
|
13756
13628
|
var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
|
|
13757
13629
|
|
|
13758
13630
|
FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
|
|
@@ -13814,7 +13686,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13814
13686
|
const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
|
|
13815
13687
|
const modelOverride = options?.model;
|
|
13816
13688
|
const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
|
|
13817
|
-
|
|
13689
|
+
debugLogger20.debug(
|
|
13818
13690
|
`Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
|
|
13819
13691
|
);
|
|
13820
13692
|
const raw = cacheSafe ? await generateViaForkedQuery(
|
|
@@ -13830,23 +13702,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13830
13702
|
);
|
|
13831
13703
|
const suggestion = typeof raw === "string" ? raw.trim() : null;
|
|
13832
13704
|
if (!suggestion) {
|
|
13833
|
-
|
|
13705
|
+
debugLogger20.debug("Suggestion generation returned empty result");
|
|
13834
13706
|
return { suggestion: null, filterReason: "empty" };
|
|
13835
13707
|
}
|
|
13836
13708
|
const filterReason = getFilterReason(suggestion);
|
|
13837
13709
|
if (filterReason) {
|
|
13838
|
-
|
|
13710
|
+
debugLogger20.debug(
|
|
13839
13711
|
`Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
|
|
13840
13712
|
);
|
|
13841
13713
|
return { suggestion: null, filterReason };
|
|
13842
13714
|
}
|
|
13843
|
-
|
|
13715
|
+
debugLogger20.debug(`Suggestion accepted: "${suggestion}"`);
|
|
13844
13716
|
return { suggestion };
|
|
13845
13717
|
} catch (error) {
|
|
13846
13718
|
if (abortSignal.aborted) {
|
|
13847
13719
|
return { suggestion: null };
|
|
13848
13720
|
}
|
|
13849
|
-
|
|
13721
|
+
debugLogger20.warn("Suggestion generation failed:", error);
|
|
13850
13722
|
return { suggestion: null, filterReason: "error" };
|
|
13851
13723
|
}
|
|
13852
13724
|
}
|
|
@@ -14185,7 +14057,7 @@ __name(rewritePathArgs, "rewritePathArgs");
|
|
|
14185
14057
|
|
|
14186
14058
|
// packages/core/src/followup/speculation.ts
|
|
14187
14059
|
init_esbuild_shims();
|
|
14188
|
-
var
|
|
14060
|
+
var debugLogger21 = createDebugLogger("SPECULATION");
|
|
14189
14061
|
var MAX_SPECULATION_TURNS = 20;
|
|
14190
14062
|
var MAX_SPECULATION_MESSAGES = 100;
|
|
14191
14063
|
function observeSpeculationProducer(params) {
|
|
@@ -14433,7 +14305,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
|
|
|
14433
14305
|
break;
|
|
14434
14306
|
}
|
|
14435
14307
|
if (!guardDecision.allowed) {
|
|
14436
|
-
|
|
14308
|
+
debugLogger21.debug(
|
|
14437
14309
|
`Speculative guard denial: ${guardDecision.reason}`
|
|
14438
14310
|
);
|
|
14439
14311
|
hitBoundary = true;
|
|
@@ -14680,7 +14552,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
|
|
|
14680
14552
|
import fs11 from "node:fs";
|
|
14681
14553
|
import path14 from "node:path";
|
|
14682
14554
|
var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
|
|
14683
|
-
var
|
|
14555
|
+
var debugLogger22 = createDebugLogger("FILE_SEARCH_IGNORE");
|
|
14684
14556
|
function loadIgnoreRules(options) {
|
|
14685
14557
|
const ignorer = new Ignore();
|
|
14686
14558
|
if (options.useGitignore) {
|
|
@@ -14719,7 +14591,7 @@ function readIgnoreFile(filePath) {
|
|
|
14719
14591
|
} catch (_error) {
|
|
14720
14592
|
const error = _error;
|
|
14721
14593
|
if (error.code !== "ENOENT") {
|
|
14722
|
-
|
|
14594
|
+
debugLogger22.warn(`Failed to read ${filePath}: ${error.message}`);
|
|
14723
14595
|
}
|
|
14724
14596
|
return void 0;
|
|
14725
14597
|
}
|
|
@@ -18187,8 +18059,6 @@ export {
|
|
|
18187
18059
|
executeToolCall,
|
|
18188
18060
|
loadOutputStyleCatalog,
|
|
18189
18061
|
findOutputStyle,
|
|
18190
|
-
TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
|
|
18191
|
-
detectTurnInterruption,
|
|
18192
18062
|
buildSessionRecoveryPlan,
|
|
18193
18063
|
buildSessionRecoveryPlanFromApiHistory,
|
|
18194
18064
|
McpTransportPool,
|
|
@@ -18269,8 +18139,6 @@ export {
|
|
|
18269
18139
|
BTW_MAX_INPUT_LENGTH,
|
|
18270
18140
|
buildBtwPrompt,
|
|
18271
18141
|
buildBtwCacheSafeParams,
|
|
18272
|
-
getStopHookContinuationReason,
|
|
18273
|
-
abortGoalForStopHookCap,
|
|
18274
18142
|
projectGoalStateToLegacy,
|
|
18275
18143
|
isGoalCheckpointBookkeepingRecord,
|
|
18276
18144
|
renderGoalContinuationTurn,
|