@qwen-code/qwen-code 0.23.2-nightly.20260909.2e212144d3 → 0.23.2
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 +15 -35
- package/bundled/computer-use/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +1 -1
- package/bundled/qc-helper/docs/features/_meta.ts +0 -1
- package/bundled/qc-helper/docs/features/commands.md +8 -31
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/goals.md +1 -1
- package/chunks/{MaxSizedBox-ZBGWYJZW.js → MaxSizedBox-4C3BKKKY.js} +16 -16
- package/chunks/{StandaloneSessionPicker-NR5ACIJZ.js → StandaloneSessionPicker-TXVF65YW.js} +30 -30
- package/chunks/{acpAgent-DM6XRCDQ.js → acpAgent-H5XBKGB4.js} +70 -59
- package/chunks/{agent-EF3IIYE3.js → agent-T5LEFJIU.js} +9 -9
- package/chunks/{agent-headless-5J2KFYR4.js → agent-headless-VZKSRH36.js} +9 -9
- package/chunks/{anthropicContentGenerator-VIW2FG7G.js → anthropicContentGenerator-PRJWWVYJ.js} +4 -4
- package/chunks/{askUserQuestion-R3TXY77M.js → askUserQuestion-I5W5S3D6.js} +1 -1
- package/chunks/{bridge-LEMQM6QE.js → bridge-AOX5IY44.js} +17 -17
- package/chunks/{channel-management-service-TGF6XFXT.js → channel-management-service-MWQGHPAS.js} +1 -1
- package/chunks/{channel-settings-store-FV365JSF.js → channel-settings-store-XZCGDGHW.js} +23 -23
- package/chunks/{chunk-DGNRLJ6S.js → chunk-2BMXHB6N.js} +3 -3
- package/chunks/{chunk-PLEBBGHL.js → chunk-2WC3Y7YY.js} +19 -387
- package/chunks/{chunk-2HYOOFDS.js → chunk-3LPJ776W.js} +6 -9
- package/chunks/{chunk-3O77M472.js → chunk-3OAXF3UK.js} +33 -43
- package/chunks/{chunk-QA2B26PL.js → chunk-46MMBZHI.js} +3 -3
- package/chunks/{chunk-7WCJEY3A.js → chunk-4I3WFI3U.js} +4 -4
- package/chunks/{chunk-76I36BEM.js → chunk-4JNHNVAZ.js} +3 -3
- package/chunks/{chunk-LOBKNYPR.js → chunk-4WMGYG3F.js} +2 -2
- package/chunks/{chunk-43EUMPKQ.js → chunk-5BH2AIEY.js} +1 -1
- package/chunks/{chunk-O6BFERWN.js → chunk-5OZUKLL7.js} +3 -3
- package/chunks/{chunk-7KZVXJ4U.js → chunk-67XTVRVB.js} +1 -1
- package/chunks/{chunk-SNMUO5Z7.js → chunk-6G4V7SE4.js} +1 -1
- package/chunks/{chunk-6GAYNM3F.js → chunk-7LTCFO6T.js} +3 -3
- package/chunks/{chunk-MUF4UGPB.js → chunk-7NDZKE2M.js} +2 -2
- package/chunks/{chunk-KECCLCXM.js → chunk-7PD7ZMX5.js} +4 -25
- package/chunks/{chunk-UQOP2APG.js → chunk-7SVM3RP2.js} +3 -3
- package/chunks/{chunk-VR6Y23FW.js → chunk-A7EFXK7P.js} +1 -1
- package/chunks/{chunk-34VPADLG.js → chunk-AO2VMS72.js} +2 -2
- package/chunks/{chunk-BDP3NTWD.js → chunk-APXIW2TF.js} +3 -3
- package/chunks/{chunk-WEU6O6VN.js → chunk-B25JYXZE.js} +2 -2
- package/chunks/{chunk-FEEVHJOR.js → chunk-BK7D2JR6.js} +3 -3
- package/chunks/{chunk-EATP5QCN.js → chunk-CCBTNJB4.js} +11 -11
- package/chunks/{chunk-6VIATHL7.js → chunk-CMWU6P4D.js} +1 -1
- package/chunks/{chunk-5HV2HPO7.js → chunk-CWVZBIZJ.js} +1 -1
- package/chunks/{chunk-C24ZDDNY.js → chunk-DAI65CMX.js} +1 -1
- package/chunks/{chunk-ZM2TCZZ7.js → chunk-ELD3OBPU.js} +3 -3
- package/chunks/{chunk-FRS3P7MQ.js → chunk-F2NYVASI.js} +2 -2
- package/chunks/{chunk-4DIMJKWU.js → chunk-FAJPLSYF.js} +34 -36
- package/chunks/{chunk-IKK6NNS6.js → chunk-FGHPZGOP.js} +11 -9
- package/chunks/{chunk-F3M6P6IQ.js → chunk-FPGTNKCP.js} +1 -199
- package/chunks/{chunk-VJWJOKOQ.js → chunk-G37O7YO6.js} +2 -2
- package/chunks/{chunk-EDSU3VUG.js → chunk-G3ZUMSFS.js} +4 -4
- package/chunks/{chunk-HW4MRP4V.js → chunk-G5VOXCRX.js} +1 -1
- package/chunks/{chunk-ZEFWBG2C.js → chunk-GOEVQADN.js} +121 -213
- package/chunks/{chunk-SM66GFKJ.js → chunk-GOKAOSCN.js} +1 -1
- package/chunks/{chunk-BDAVT6K2.js → chunk-HJ5UJQQL.js} +1586 -1524
- package/chunks/{chunk-NV4YYXFT.js → chunk-IR6JKBAP.js} +1 -1
- package/chunks/{chunk-SK6VACCM.js → chunk-IRGDIDGJ.js} +8 -8
- package/chunks/{chunk-JGTMTJSQ.js → chunk-IWABUX6T.js} +1 -1
- package/chunks/{chunk-EOLGAQ25.js → chunk-JO77FGNZ.js} +5 -5
- package/chunks/{chunk-E4LXNQAK.js → chunk-KCF2436G.js} +1 -1
- package/chunks/{chunk-EE5ZD4XU.js → chunk-KFECPHLV.js} +3 -3
- package/chunks/{chunk-YIE6REQ5.js → chunk-LEAOJ43M.js} +14 -17
- package/chunks/{chunk-EN3Q2S3J.js → chunk-LUNC5KCL.js} +3 -3
- package/chunks/{chunk-AXWTG6R7.js → chunk-LWX4WDFF.js} +1 -1
- package/chunks/{chunk-ATBLEXXV.js → chunk-MV5DTLJV.js} +1 -1
- package/chunks/{chunk-D6AGS266.js → chunk-NX7ZTXFF.js} +1 -1
- package/chunks/{chunk-3A2IMUDH.js → chunk-OXR34GCD.js} +1 -1
- package/chunks/{chunk-VAWM3A5N.js → chunk-PDN7FJZV.js} +1 -1
- package/chunks/{chunk-7IDZFJAV.js → chunk-PFKGV6PO.js} +1 -1
- package/chunks/{chunk-EYCW6UF2.js → chunk-QFJZAY7W.js} +3 -3
- package/chunks/{chunk-DVOCOIS5.js → chunk-QHLHE2OT.js} +1 -1
- package/chunks/{chunk-F4SAL7WM.js → chunk-QQK4L3UU.js} +2 -90
- package/chunks/{chunk-ZZ7RVOTU.js → chunk-QTB4VP4K.js} +1 -1
- package/chunks/{chunk-PWR6BQ3U.js → chunk-R3JIDRUL.js} +4 -4
- package/chunks/{chunk-SYKPMH2X.js → chunk-R457KFV7.js} +3 -3
- package/chunks/{chunk-5WBA3DEF.js → chunk-RM244SCQ.js} +1 -1
- package/chunks/{chunk-OVTPETDL.js → chunk-RNAJVXUG.js} +5 -5
- package/chunks/{chunk-HSO6D4KX.js → chunk-S5QR6CB5.js} +23 -34
- package/chunks/{chunk-6S7YYUUH.js → chunk-TODNHE76.js} +3 -3
- package/chunks/{chunk-A7QZIGRB.js → chunk-TOOOLHVS.js} +2 -2
- package/chunks/{chunk-BZUHZCUO.js → chunk-U6REWGVR.js} +2 -2
- package/chunks/{chunk-JFAGT5YG.js → chunk-ULZECEIP.js} +1 -1
- package/chunks/chunk-VBLAI2HA.js +243 -0
- package/chunks/{chunk-Y7YHAY32.js → chunk-WBU2PIZ5.js} +3 -3
- package/chunks/{chunk-HWLLUDIA.js → chunk-WDN64MVT.js} +9 -42
- package/chunks/{chunk-D7DFZAK2.js → chunk-WK7P62DV.js} +5 -5
- package/chunks/{chunk-VX2NR3SD.js → chunk-WXD7INFV.js} +2 -2
- package/chunks/{chunk-FN4KHWCL.js → chunk-WXPPUPHM.js} +1 -1
- package/chunks/{chunk-7K4GGN3D.js → chunk-X7LFJF5D.js} +64 -7
- package/chunks/{chunk-GSYD7MYP.js → chunk-XBVNNDPK.js} +3 -8
- package/chunks/{chunk-LOVGQ3HZ.js → chunk-XSOXPG2L.js} +3 -3
- package/chunks/{chunk-L5VHJYHH.js → chunk-YLOHCA6I.js} +2 -2
- package/chunks/{chunk-LKBOBUA2.js → chunk-YQGW3M6Z.js} +2 -2
- package/chunks/{chunk-N3Z6Q7KC.js → chunk-ZN5TKAVR.js} +3 -3
- package/chunks/{chunk-HUJJFSMO.js → chunk-ZP5XDLSA.js} +10 -10
- package/chunks/{config-utils-SXFK3G4X.js → config-utils-GPLIABL2.js} +18 -18
- package/chunks/{contextCommand-QFPD26QO.js → contextCommand-NCUQUDBY.js} +17 -17
- package/chunks/{core-runtime-VXKNBODM.js → core-runtime-WKYKWVYU.js} +16 -16
- package/chunks/{create-sub-session-7WSQETFR.js → create-sub-session-PPLXB3JJ.js} +16 -16
- package/chunks/{daemon-U2456K5H.js → daemon-2CKIAO3I.js} +1 -1
- package/chunks/{daemon-git-worktree-guard-I4DCSDUS.js → daemon-git-worktree-guard-73ZWOLKL.js} +16 -16
- package/chunks/{daemon-status-provider-5UV56RI4.js → daemon-status-provider-OK7VONJG.js} +21 -21
- package/chunks/{daemon-trust-policy-DKIBWTKU.js → daemon-trust-policy-CAUCREG2.js} +21 -21
- package/chunks/{daemon-trust-policy-monitor-CPSD7UKT.js → daemon-trust-policy-monitor-3Y36OOEQ.js} +21 -21
- package/chunks/{deferred-core-runtime-D2RF35BL.js → deferred-core-runtime-Q7WFWYD3.js} +16 -16
- package/chunks/{dist-K5GHMXIG.js → dist-Y5KC3IHW.js} +0 -1
- package/chunks/{edit-4IBADZ3O.js → edit-YJD6IETK.js} +9 -9
- package/chunks/{enterPlanMode-YN3GPQU5.js → enterPlanMode-EFPVTWIH.js} +9 -9
- package/chunks/{environment-E272IJMF.js → environment-HP3AXFTB.js} +18 -18
- package/chunks/{errors-CVAH3RWQ.js → errors-22ON46G7.js} +18 -18
- package/chunks/{exitPlanMode-24J5IHGC.js → exitPlanMode-MOQUNCBH.js} +9 -9
- package/chunks/{fast-path-M5IDBMXF.js → fast-path-2X7BPMXX.js} +2 -2
- package/chunks/{glob-ERBD7JYP.js → glob-Y7ACIB3P.js} +9 -9
- package/chunks/{goal-tools-245ULLQT.js → goal-tools-DABMICUC.js} +9 -9
- package/chunks/{handleAutoUpdate-JDZHHZKK.js → handleAutoUpdate-MCAMHYDI.js} +18 -18
- package/chunks/{i18n-LA4D5IXM.js → i18n-C3GDCALP.js} +16 -16
- package/chunks/{initializer-SHPTSWUZ.js → initializer-4URDQL2G.js} +21 -21
- package/chunks/{installationInfo-QEQEPB3G.js → installationInfo-LBOL6SBV.js} +16 -16
- package/chunks/{list-IBHCQWTF.js → list-JOGBAC2R.js} +24 -24
- package/chunks/{list-agents-EDPZCGKN.js → list-agents-2CXPGJUE.js} +3 -4
- package/chunks/{llm-JAWCQLA4.js → llm-2KPNSAVY.js} +50 -50
- package/chunks/{llm-content-generator-GOV3A23T.js → llm-content-generator-GR3FOHLB.js} +2 -2
- package/chunks/{loadedSettingsAdapter-RVE2GNVU.js → loadedSettingsAdapter-DVKROEJD.js} +21 -21
- package/chunks/{loggingContentGenerator-SSHNN5YW.js → loggingContentGenerator-P4K6K5W4.js} +10 -10
- package/chunks/{managed-npm-update-BHSTITQO.js → managed-npm-update-VWBKHNIN.js} +16 -16
- package/chunks/{mcp-6ZZ7P2HU.js → mcp-6YYNSYLK.js} +21 -21
- package/chunks/{monitor-RKK6GSHG.js → monitor-A255TNZR.js} +9 -9
- package/chunks/{nonInteractiveCli-UQHP3G6P.js → nonInteractiveCli-LXGIKQAT.js} +47 -47
- package/chunks/{notebook-edit-YM47A7WO.js → notebook-edit-5UYHS2DM.js} +9 -9
- package/chunks/{openaiContentGenerator-FHKDWNI2.js → openaiContentGenerator-A6MAMEO5.js} +8 -8
- package/chunks/{pidfile-SIIEJEEH.js → pidfile-B7DZC4TP.js} +16 -16
- package/chunks/{processUtils-JF7CWBJC.js → processUtils-BPZ2MCZS.js} +2 -2
- package/chunks/{prompt-terminal-ledger-FXXHAEQU.js → prompt-terminal-ledger-FYYTAOXS.js} +17 -17
- package/chunks/{qwenContentGenerator-KFJ77JP6.js → qwenContentGenerator-4IOJFD4S.js} +11 -11
- package/chunks/{read-file-S2NOCBIL.js → read-file-A4H4O3VQ.js} +4 -4
- package/chunks/{resumeHistoryUtils-QHHPSQWU.js → resumeHistoryUtils-YQQ43E4N.js} +17 -17
- package/chunks/{ripGrep-F6TNOJUO.js → ripGrep-W32NWFTA.js} +5 -5
- package/chunks/{run-qwen-serve-KYBDQRDD.js → run-qwen-serve-WBSWWIRV.js} +36 -36
- package/chunks/{runtime-3WNOFLCR.js → runtime-VRVBX2E5.js} +24 -24
- package/chunks/{scheduled-tasks-RNBH56DJ.js → scheduled-tasks-D65KJDA3.js} +19 -19
- package/chunks/{scheduler-ERMW7Q7B.js → scheduler-M2YPN7Z7.js} +18 -18
- package/chunks/{send-message-V5T3NMFM.js → send-message-76BKWKFZ.js} +2 -2
- package/chunks/{serve-7NV46RMP.js → serve-BE3H2P6P.js} +21 -21
- package/chunks/{server-6RZJR5QF.js → server-FLY5JERG.js} +48 -64
- package/chunks/{session-Z4EV7NVV.js → session-JVN62R5K.js} +51 -51
- package/chunks/{session-attachments-root-SG5FC52X.js → session-attachments-root-7ACGLHXA.js} +16 -16
- package/chunks/{session-pr-refresh-ILC4Z3ZM.js → session-pr-refresh-TQS57SDK.js} +18 -18
- package/chunks/{settings-Y47SPE3X.js → settings-D44YMZFT.js} +20 -20
- package/chunks/{shell-YBVCOPVO.js → shell-3VE6I4V5.js} +9 -9
- package/chunks/{skill-AXC63EBA.js → skill-FHEGRRZU.js} +4 -4
- package/chunks/{skill-settings-AFPAYGLO.js → skill-settings-VHEJMBFL.js} +20 -20
- package/chunks/{spawnChannel-ZFL4J2V3.js → spawnChannel-T6MX2ZDN.js} +16 -16
- package/chunks/{standalone-update-Y2OZPLNJ.js → standalone-update-QUGHFMCS.js} +17 -17
- package/chunks/{start-opentui-ui-G6TKT4LI.js → start-opentui-ui-IHIIZ2LE.js} +56 -60
- package/chunks/{startInteractiveUI-YTNDPW7J.js → startInteractiveUI-LR7K2ARZ.js} +64 -64
- package/chunks/{team-create-BUFLGGSH.js → team-create-GY3VFY47.js} +9 -9
- package/chunks/{team-plan-approval-OUWWM42U.js → team-plan-approval-BQPGZOT5.js} +9 -9
- package/chunks/{terminal-image-renderer-WH2WV5ES.js → terminal-image-renderer-YNYW5CQG.js} +16 -16
- package/chunks/{theme-manager-5UDRARM2.js → theme-manager-U6CIK3GM.js} +16 -16
- package/chunks/{tool-search-MCDIRPHN.js → tool-search-XI3QWD5I.js} +4 -4
- package/chunks/{total-session-admission-VL27U74Z.js → total-session-admission-3SNSJJ32.js} +17 -17
- package/chunks/{trustedFolders-MSXT4VDD.js → trustedFolders-OVAQKNV5.js} +17 -17
- package/chunks/{update-relaunch-JKLEWVCB.js → update-relaunch-XV5O74E3.js} +5 -5
- package/chunks/{updateCheck-ARTHAJT2.js → updateCheck-CHUYWD6L.js} +16 -16
- package/chunks/{useAutoAcceptIndicator-YEAAGYVU.js → useAutoAcceptIndicator-VKSVIXZC.js} +22 -22
- package/chunks/{validateNonInterActiveAuth-EMRQKH5S.js → validateNonInterActiveAuth-ZNUTD3E5.js} +45 -45
- package/chunks/{version-HFQU35WD.js → version-EK7VAGSI.js} +1 -1
- package/chunks/{web-fetch-QBXAO6VF.js → web-fetch-24KZO763.js} +4 -4
- package/chunks/{web-search-2URQXA3A.js → web-search-CRNXKZ2X.js} +6 -6
- package/chunks/{workflow-JDD6WDAH.js → workflow-HD5NYMW5.js} +11 -11
- package/chunks/{workspace-providers-status-B4IKR6YJ.js → workspace-providers-status-MAM42IZS.js} +23 -23
- package/chunks/{workspace-registration-store-PJ3YHR45.js → workspace-registration-store-HKLJEDQX.js} +1 -1
- package/chunks/{workspace-registry-WVYJ5UGB.js → workspace-registry-7RDDOBLN.js} +17 -17
- package/chunks/{workspace-runtime-coordinator-DXL5YVAG.js → workspace-runtime-coordinator-LEPDPXJO.js} +17 -17
- package/chunks/{workspace-service-QNGAMVH7.js → workspace-service-5IFDCNN3.js} +22 -22
- package/chunks/{workspace-skills-status-BEISJIII.js → workspace-skills-status-FJ3HNH4H.js} +21 -21
- package/chunks/{workspace-trust-reconciler-ORYJF5L4.js → workspace-trust-reconciler-PQFHIWLR.js} +22 -22
- package/chunks/{write-file-DWLKFBTJ.js → write-file-ERG67ZFX.js} +10 -10
- package/chunks/{zoom-image-BYVIXSNQ.js → zoom-image-WQYEC3SR.js} +4 -4
- package/cli.js +12 -12
- package/export-transcript-document.js +101 -101
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-C_8kzsly.js → abnfDiagram-VCTEODGH-BRLgQbnT.js} +1 -1
- package/web-shell/assets/{arc-CDg7Zfpm.js → arc-qAF9_XsR.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DZzdCWyF.js → architectureDiagram-5GKGNRK7-BorUttEz.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DI3B4gyR.js → blockDiagram-NRAW4CY4-Bj0qZVxu.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-CfOgwHZW.js → c4Diagram-UCG6FXSJ-BTqJis32.js} +1 -1
- package/web-shell/assets/channel-COIuCrVH.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-B_PUth0g.js → chunk-2Q5K7J3B-RrQ5X8m-.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-CrKtvBIL.js → chunk-5VM5RSS4-uUjDl8wO.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-B4z2n8Py.js → chunk-F27PBJKO-C3JhpyzI.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-BUtrFEO8.js → chunk-G27WJ6UU-C8ZNFs7F.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-Cqw3aXW0.js → chunk-JWPE2WC7-DNpXtEOs.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-CZolnvls.js → chunk-LCL6LL3I-DagA2ZLw.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DivgasCa.js → chunk-POPQ4Y6H-R23uH7Xm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG--seyb1B6.js → chunk-SVP7TREG-Qz9RN_BR.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-D7pHtuVM.js → chunk-XXDRQBXY-jYb1_hni.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-4MWaRF_3.js → cose-bilkent-JH36ORCC-Cv2OunpE.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-nhJhAjgD.js → cynefin-OW5HDTMX-LH42KFJx.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-NF-PwXlq.js → cynefinDiagram-5FMLGOSQ-Dha4_OoR.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-Bu0ncdWP.js → dagre-3AP2YEHR-Br5lnUKD.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CsvhFHZC.js → diagram-S7CK7UJ4-dpKq2bBX.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Ck61sIB3.js → diagram-UQ7AKVKN-BAgHWpXr.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-D0171zrb.js → diagram-VSXAHHWV-GRRzpyE2.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DvdxY4UL.js → diagram-VX7I27RA-BNFiaYpG.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-CGGpseiB.js → diagram-Z3DM3KII-BisZzB_h.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-K8-QMvY8.js → ebnfDiagram-PWID7BFC-B1xbwycf.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-D316nAem.js → erDiagram-SSCWMZ5O-CQMzbGE5.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-B7siy_mn.js → flowDiagram-A5DVABFB-CZ_Zondl.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BZQDxzTu.js → ganttDiagram-EL5Y4UJY-BTh2ShxS.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DZynLCSV.js → gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js} +1 -1
- package/web-shell/assets/{index-DirkXQEg.js → index-CI1ysIEv.js} +440 -450
- package/web-shell/assets/index-CpxXGH-8.css +36 -0
- package/web-shell/assets/{index-9ie6xLTM.js → index-DWoFMu5x.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-B0gr769A.js → infoDiagram-RXCK75RN-C0QpudbG.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-0pQFfjvX.js → ishikawaDiagram-5VMMS53U-a6B741uT.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DEGtClWb.js → journeyDiagram-EYS64GPL-Dbht9ICp.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CnN8gPzw.js → kanban-definition-3QL26DDD-D4OFR8-h.js} +1 -1
- package/web-shell/assets/{layout-C_70RhaT.js → layout-Dvdh5jRH.js} +1 -1
- package/web-shell/assets/{linear-BJ2ZLmcq.js → linear-Dvc6KIW2.js} +1 -1
- package/web-shell/assets/{mermaid.core-RlY0zPNC.js → mermaid.core-CB36RfIb.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpVAxTNl.js → mindmap-definition-FBJOCRG2-Fmqo1CjP.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DmrSv3hD.js → pegDiagram-XKGWAZYB-CCxYBoA4.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-CJmgp8KJ.js → pieDiagram-E7YTZNPT-BVHKQFzt.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-UsgOyNco.js → quadrantDiagram-AXDQQJYC-l95IznwR.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-DQ6gMs_W.js → railroadDiagram-O6MQD6OU-BlLdRdXp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DhqadamF.js → requirementDiagram-EFPCY7ZU-BkDLBR5w.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-R4WnURaE.js → sankeyDiagram-P5KCCOFB-jAIqRp65.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D7BwMi_D.js → sequenceDiagram-WJ2MYXX4-f-soZYPr.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Bqngz088.js → sizeCapture-X5ZJPWSS-BzOuAfB2.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-DwaXPGqn.js → stateDiagram-HBIQ2CUA-BPLSs12r.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-BsaLeRDY.js → swimlanes-XN3QIQJK-D-9E_RIR.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-NJ9G-NUU.js → timeline-definition-24CTP7MA-CT56K-gV.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-Ca3W4rSq.js → vennDiagram-4TSXK5OY-B-vi4IyO.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-OabvjC-6.js → wardleyDiagram-VM6X3IG4-C9O7Ju98.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-C7rbjvpc.js → xychartDiagram-S5SC5T6Z-6d8w3jg2.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +0 -291
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/web-shell/assets/channel-e4xwS72w.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CzXfUUOt.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CzXfUUOt.js +0 -1
- package/web-shell/assets/index-DzdST_7L.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-8GCQZAvv.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BoRBF2Yw.js +0 -8
|
@@ -7,13 +7,14 @@ import {
|
|
|
7
7
|
MAX_SENDER_KEY_CHARS,
|
|
8
8
|
MAX_SOCKET_PATH_BYTES,
|
|
9
9
|
SOCKET_DIR_NAME,
|
|
10
|
+
flattenPeerLabel,
|
|
10
11
|
isLocalIpcPath,
|
|
11
12
|
parsePeerAuthLine,
|
|
12
13
|
parsePeerFrame,
|
|
13
14
|
peerSenderKey,
|
|
14
15
|
probePeerSocketVerdict,
|
|
15
16
|
resolvePeerSocketCandidates
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-X7LFJF5D.js";
|
|
17
18
|
import {
|
|
18
19
|
scanForSecrets
|
|
19
20
|
} from "./chunk-BUQN5LTI.js";
|
|
@@ -78,7 +79,7 @@ import {
|
|
|
78
79
|
stripToolResultImages,
|
|
79
80
|
toolResultBoundaryArtifact,
|
|
80
81
|
toolResultPartDiagnosticValues
|
|
81
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-HJ5UJQQL.js";
|
|
82
83
|
import {
|
|
83
84
|
hasVerifiableInode,
|
|
84
85
|
openNoFollow
|
|
@@ -99,9 +100,6 @@ import {
|
|
|
99
100
|
import {
|
|
100
101
|
escapeJsonTagCharacters
|
|
101
102
|
} from "./chunk-CHEIIBT3.js";
|
|
102
|
-
import {
|
|
103
|
-
flattenPeerLabel
|
|
104
|
-
} from "./chunk-F4SAL7WM.js";
|
|
105
103
|
import {
|
|
106
104
|
isPidAlive
|
|
107
105
|
} from "./chunk-CH2YDT6X.js";
|
|
@@ -115,7 +113,7 @@ import {
|
|
|
115
113
|
import {
|
|
116
114
|
BUILT_IN_OUTPUT_STYLES,
|
|
117
115
|
getBuiltInOutputStyle
|
|
118
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-3LPJ776W.js";
|
|
119
117
|
import {
|
|
120
118
|
fetchWithPolicy
|
|
121
119
|
} from "./chunk-OFVAS4AR.js";
|
|
@@ -127,7 +125,7 @@ import {
|
|
|
127
125
|
removeMCPStatusChangeListener,
|
|
128
126
|
runSideQuery,
|
|
129
127
|
updateMCPServerStatus
|
|
130
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-F2NYVASI.js";
|
|
131
129
|
import {
|
|
132
130
|
getInvocationContext
|
|
133
131
|
} from "./chunk-5ETULJLP.js";
|
|
@@ -5671,94 +5669,6 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
|
|
|
5671
5669
|
// packages/core/src/goals/index.ts
|
|
5672
5670
|
init_esbuild_shims();
|
|
5673
5671
|
|
|
5674
|
-
// packages/core/src/goals/activeGoalStore.ts
|
|
5675
|
-
init_esbuild_shims();
|
|
5676
|
-
var store = /* @__PURE__ */ new Map();
|
|
5677
|
-
function getActiveGoal(sessionId) {
|
|
5678
|
-
return store.get(sessionId);
|
|
5679
|
-
}
|
|
5680
|
-
__name(getActiveGoal, "getActiveGoal");
|
|
5681
|
-
function clearActiveGoal(sessionId) {
|
|
5682
|
-
const previous = store.get(sessionId);
|
|
5683
|
-
store.delete(sessionId);
|
|
5684
|
-
return previous;
|
|
5685
|
-
}
|
|
5686
|
-
__name(clearActiveGoal, "clearActiveGoal");
|
|
5687
|
-
var observers = /* @__PURE__ */ new Map();
|
|
5688
|
-
function clearGoalTerminalObserver(sessionId) {
|
|
5689
|
-
observers.delete(sessionId);
|
|
5690
|
-
}
|
|
5691
|
-
__name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
|
|
5692
|
-
function notifyGoalTerminal(sessionId, event) {
|
|
5693
|
-
recordLastTerminalEvent(sessionId, event);
|
|
5694
|
-
const observer = observers.get(sessionId);
|
|
5695
|
-
if (!observer) return;
|
|
5696
|
-
try {
|
|
5697
|
-
observer(event);
|
|
5698
|
-
} catch {
|
|
5699
|
-
}
|
|
5700
|
-
}
|
|
5701
|
-
__name(notifyGoalTerminal, "notifyGoalTerminal");
|
|
5702
|
-
var lastTerminal = /* @__PURE__ */ new Map();
|
|
5703
|
-
function recordLastTerminalEvent(sessionId, event) {
|
|
5704
|
-
lastTerminal.set(sessionId, event);
|
|
5705
|
-
}
|
|
5706
|
-
__name(recordLastTerminalEvent, "recordLastTerminalEvent");
|
|
5707
|
-
|
|
5708
|
-
// packages/core/src/goals/goalHook.ts
|
|
5709
|
-
init_esbuild_shims();
|
|
5710
|
-
|
|
5711
|
-
// packages/core/src/goals/goalJudge.ts
|
|
5712
|
-
init_esbuild_shims();
|
|
5713
|
-
var debugLogger9 = createDebugLogger("GOAL_JUDGE");
|
|
5714
|
-
|
|
5715
|
-
// packages/core/src/goals/goalHook.ts
|
|
5716
|
-
var debugLogger10 = createDebugLogger("GOAL_HOOK");
|
|
5717
|
-
var GOAL_HOOK_TIMEOUT_SECONDS = 30;
|
|
5718
|
-
var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
|
|
5719
|
-
var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
|
|
5720
|
-
function getStopHookContinuationReason(output) {
|
|
5721
|
-
const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
|
|
5722
|
-
if (!hasGoalOutput) {
|
|
5723
|
-
return output.stopReason || output.reason || "No reason provided";
|
|
5724
|
-
}
|
|
5725
|
-
return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
|
|
5726
|
-
}
|
|
5727
|
-
__name(getStopHookContinuationReason, "getStopHookContinuationReason");
|
|
5728
|
-
function removeGoalFunctionHook(config, sessionId, goal) {
|
|
5729
|
-
const system = config.getHookSystem?.();
|
|
5730
|
-
if (!system) return;
|
|
5731
|
-
try {
|
|
5732
|
-
system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
|
|
5733
|
-
} catch (err) {
|
|
5734
|
-
debugLogger10.debug(
|
|
5735
|
-
`Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
|
|
5736
|
-
);
|
|
5737
|
-
}
|
|
5738
|
-
}
|
|
5739
|
-
__name(removeGoalFunctionHook, "removeGoalFunctionHook");
|
|
5740
|
-
function finishGoal(config, sessionId, goal, event) {
|
|
5741
|
-
clearActiveGoal(sessionId);
|
|
5742
|
-
removeGoalFunctionHook(config, sessionId, goal);
|
|
5743
|
-
notifyGoalTerminal(sessionId, event);
|
|
5744
|
-
clearGoalTerminalObserver(sessionId);
|
|
5745
|
-
}
|
|
5746
|
-
__name(finishGoal, "finishGoal");
|
|
5747
|
-
function abortGoalForStopHookCap(config, sessionId, systemMessage) {
|
|
5748
|
-
const goal = getActiveGoal(sessionId);
|
|
5749
|
-
if (!goal) return false;
|
|
5750
|
-
finishGoal(config, sessionId, goal, {
|
|
5751
|
-
kind: "aborted",
|
|
5752
|
-
condition: goal.condition,
|
|
5753
|
-
iterations: goal.iterations,
|
|
5754
|
-
durationMs: Date.now() - goal.setAt,
|
|
5755
|
-
lastReason: goal.lastReason,
|
|
5756
|
-
systemMessage
|
|
5757
|
-
});
|
|
5758
|
-
return true;
|
|
5759
|
-
}
|
|
5760
|
-
__name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
|
|
5761
|
-
|
|
5762
5672
|
// packages/core/src/index.ts
|
|
5763
5673
|
init_esbuild_shims();
|
|
5764
5674
|
|
|
@@ -6276,7 +6186,7 @@ init_esbuild_shims();
|
|
|
6276
6186
|
import * as fs4 from "fs/promises";
|
|
6277
6187
|
import * as os from "os";
|
|
6278
6188
|
import * as path6 from "path";
|
|
6279
|
-
var
|
|
6189
|
+
var debugLogger9 = createDebugLogger("OUTPUT_STYLE_FILES");
|
|
6280
6190
|
var OUTPUT_STYLES_DIR_NAME = "output-styles";
|
|
6281
6191
|
var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
|
|
6282
6192
|
var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
|
|
@@ -6335,7 +6245,7 @@ function parseOutputStyleFile(content, filePath, source) {
|
|
|
6335
6245
|
(key) => !KNOWN_FRONTMATTER_KEYS.has(key)
|
|
6336
6246
|
);
|
|
6337
6247
|
if (unknownKeys.length > 0) {
|
|
6338
|
-
|
|
6248
|
+
debugLogger9.warn(
|
|
6339
6249
|
`Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
|
|
6340
6250
|
);
|
|
6341
6251
|
}
|
|
@@ -6352,7 +6262,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
|
|
|
6352
6262
|
return true;
|
|
6353
6263
|
}
|
|
6354
6264
|
if (spelling !== false && spelling !== "false") {
|
|
6355
|
-
|
|
6265
|
+
debugLogger9.warn(
|
|
6356
6266
|
`Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
|
|
6357
6267
|
);
|
|
6358
6268
|
}
|
|
@@ -6405,20 +6315,20 @@ __name(deriveDescription, "deriveDescription");
|
|
|
6405
6315
|
async function resolveStyleFileToRead(filePath, source, confineTo) {
|
|
6406
6316
|
const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
|
|
6407
6317
|
if (source === "project" && stat5.isSymbolicLink()) {
|
|
6408
|
-
|
|
6318
|
+
debugLogger9.warn(`Skipping output style ${filePath}: it is a symlink`);
|
|
6409
6319
|
return null;
|
|
6410
6320
|
}
|
|
6411
6321
|
if (!stat5.isFile()) {
|
|
6412
6322
|
return null;
|
|
6413
6323
|
}
|
|
6414
6324
|
if (stat5.nlink > 1) {
|
|
6415
|
-
|
|
6325
|
+
debugLogger9.warn(`Skipping output style ${filePath}: it is a hard link`);
|
|
6416
6326
|
return null;
|
|
6417
6327
|
}
|
|
6418
6328
|
const realPath = await fs4.realpath(filePath);
|
|
6419
6329
|
const realRoot = await fs4.realpath(confineTo);
|
|
6420
6330
|
if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
|
|
6421
|
-
|
|
6331
|
+
debugLogger9.warn(
|
|
6422
6332
|
`Skipping output style ${filePath}: it resolves outside ${realRoot}`
|
|
6423
6333
|
);
|
|
6424
6334
|
return null;
|
|
@@ -6456,7 +6366,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6456
6366
|
entries = await fs4.readdir(dir);
|
|
6457
6367
|
} catch (error) {
|
|
6458
6368
|
if (error.code !== "ENOENT") {
|
|
6459
|
-
|
|
6369
|
+
debugLogger9.warn(`Cannot read output styles directory ${dir}:`, error);
|
|
6460
6370
|
}
|
|
6461
6371
|
return [];
|
|
6462
6372
|
}
|
|
@@ -6475,13 +6385,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6475
6385
|
}
|
|
6476
6386
|
const buffer = await readBoundedStyleFile(readPath);
|
|
6477
6387
|
if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
|
|
6478
|
-
|
|
6388
|
+
debugLogger9.warn(
|
|
6479
6389
|
`Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
|
|
6480
6390
|
);
|
|
6481
6391
|
continue;
|
|
6482
6392
|
}
|
|
6483
6393
|
if (isBinary(buffer)) {
|
|
6484
|
-
|
|
6394
|
+
debugLogger9.warn(
|
|
6485
6395
|
`Skipping output style ${filePath}: it is not UTF-8 text`
|
|
6486
6396
|
);
|
|
6487
6397
|
continue;
|
|
@@ -6493,7 +6403,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6493
6403
|
);
|
|
6494
6404
|
const key = style.name.toLowerCase();
|
|
6495
6405
|
if (seen.has(key)) {
|
|
6496
|
-
|
|
6406
|
+
debugLogger9.warn(
|
|
6497
6407
|
`Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
|
|
6498
6408
|
);
|
|
6499
6409
|
continue;
|
|
@@ -6501,7 +6411,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
|
|
|
6501
6411
|
seen.add(key);
|
|
6502
6412
|
styles.push(style);
|
|
6503
6413
|
} catch (error) {
|
|
6504
|
-
|
|
6414
|
+
debugLogger9.warn(
|
|
6505
6415
|
`Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
|
|
6506
6416
|
);
|
|
6507
6417
|
}
|
|
@@ -6549,7 +6459,7 @@ async function loadOutputStyleCatalog(options = {}) {
|
|
|
6549
6459
|
const key = style.name.toLowerCase();
|
|
6550
6460
|
const winner = winners.get(key);
|
|
6551
6461
|
if (winner) {
|
|
6552
|
-
|
|
6462
|
+
debugLogger9.debug(
|
|
6553
6463
|
`Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
|
|
6554
6464
|
);
|
|
6555
6465
|
continue;
|
|
@@ -6569,7 +6479,7 @@ __name(findOutputStyle, "findOutputStyle");
|
|
|
6569
6479
|
|
|
6570
6480
|
// packages/core/src/tools/client-mcp-registrar.ts
|
|
6571
6481
|
init_esbuild_shims();
|
|
6572
|
-
var
|
|
6482
|
+
var debugLogger10 = createDebugLogger("CLIENT_MCP_REGISTRAR");
|
|
6573
6483
|
var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
|
|
6574
6484
|
var ClientMcpRegistrar = class {
|
|
6575
6485
|
static {
|
|
@@ -6592,7 +6502,7 @@ var ClientMcpRegistrar = class {
|
|
|
6592
6502
|
*/
|
|
6593
6503
|
registerServer(serverName) {
|
|
6594
6504
|
this.servers.add(serverName);
|
|
6595
|
-
|
|
6505
|
+
debugLogger10.debug(`Registered client MCP server '${serverName}'`);
|
|
6596
6506
|
}
|
|
6597
6507
|
/**
|
|
6598
6508
|
* Drop a server name and reject any in-flight requests targeting it. Returns
|
|
@@ -6605,7 +6515,7 @@ var ClientMcpRegistrar = class {
|
|
|
6605
6515
|
new Error(`client MCP server '${serverName}' was unregistered`)
|
|
6606
6516
|
);
|
|
6607
6517
|
if (existed) {
|
|
6608
|
-
|
|
6518
|
+
debugLogger10.debug(`Unregistered client MCP server '${serverName}'`);
|
|
6609
6519
|
}
|
|
6610
6520
|
return existed;
|
|
6611
6521
|
}
|
|
@@ -6705,7 +6615,7 @@ var ClientMcpRegistrar = class {
|
|
|
6705
6615
|
resolveMessage(id, payload) {
|
|
6706
6616
|
const pending = this.pending.get(id);
|
|
6707
6617
|
if (!pending) {
|
|
6708
|
-
|
|
6618
|
+
debugLogger10.debug(`Dropping mcp_message with unknown id '${id}'`);
|
|
6709
6619
|
return false;
|
|
6710
6620
|
}
|
|
6711
6621
|
this.pending.delete(id);
|
|
@@ -6927,7 +6837,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
|
|
|
6927
6837
|
import * as fsSync2 from "node:fs";
|
|
6928
6838
|
import * as fs5 from "node:fs/promises";
|
|
6929
6839
|
import * as path7 from "node:path";
|
|
6930
|
-
var
|
|
6840
|
+
var debugLogger11 = createDebugLogger("PEER_CONTROLLERS");
|
|
6931
6841
|
var PEER_CONTROLLER_SCHEMA_VERSION = 1;
|
|
6932
6842
|
var CONTROLLER_TOKEN_PREFIX = "qpc_";
|
|
6933
6843
|
var CONTROLLER_TOKEN_BYTES = 32;
|
|
@@ -6948,7 +6858,7 @@ var LOCK_OPTIONS = {
|
|
|
6948
6858
|
randomize: true
|
|
6949
6859
|
},
|
|
6950
6860
|
onCompromised: /* @__PURE__ */ __name((error) => {
|
|
6951
|
-
|
|
6861
|
+
debugLogger11.debug(
|
|
6952
6862
|
`controller registry lock compromised: ${describe2(error)}`
|
|
6953
6863
|
);
|
|
6954
6864
|
}, "onCompromised")
|
|
@@ -7015,13 +6925,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
7015
6925
|
try {
|
|
7016
6926
|
const stats = fsSync2.lstatSync(filePath);
|
|
7017
6927
|
if (!stats.isFile()) {
|
|
7018
|
-
|
|
6928
|
+
debugLogger11.debug(
|
|
7019
6929
|
`ignoring the controller registry at ${filePath}: not a regular file`
|
|
7020
6930
|
);
|
|
7021
6931
|
return emptyRegistry();
|
|
7022
6932
|
}
|
|
7023
6933
|
if (stats.size > MAX_REGISTRY_BYTES) {
|
|
7024
|
-
|
|
6934
|
+
debugLogger11.debug(
|
|
7025
6935
|
`ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
|
|
7026
6936
|
);
|
|
7027
6937
|
return emptyRegistry();
|
|
@@ -7029,7 +6939,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
7029
6939
|
raw = fsSync2.readFileSync(filePath, "utf8");
|
|
7030
6940
|
} catch (error) {
|
|
7031
6941
|
if (!isNodeError(error) || error.code !== "ENOENT") {
|
|
7032
|
-
|
|
6942
|
+
debugLogger11.debug(
|
|
7033
6943
|
`could not read the controller registry at ${filePath}: ${describe2(error)}`
|
|
7034
6944
|
);
|
|
7035
6945
|
}
|
|
@@ -7039,14 +6949,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
7039
6949
|
try {
|
|
7040
6950
|
parsed = JSON.parse(raw);
|
|
7041
6951
|
} catch (error) {
|
|
7042
|
-
|
|
6952
|
+
debugLogger11.debug(
|
|
7043
6953
|
`the controller registry at ${filePath} is not JSON: ${describe2(error)}`
|
|
7044
6954
|
);
|
|
7045
6955
|
return emptyRegistry();
|
|
7046
6956
|
}
|
|
7047
6957
|
if (!isRecord(parsed)) return emptyRegistry();
|
|
7048
6958
|
if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
|
|
7049
|
-
|
|
6959
|
+
debugLogger11.debug(
|
|
7050
6960
|
`ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
|
|
7051
6961
|
parsed["schemaVersion"]
|
|
7052
6962
|
)}`
|
|
@@ -7059,7 +6969,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
|
|
|
7059
6969
|
for (const entry of controllers) {
|
|
7060
6970
|
const record = toValidRecord(entry);
|
|
7061
6971
|
if (record === null) {
|
|
7062
|
-
|
|
6972
|
+
debugLogger11.debug(
|
|
7063
6973
|
`skipping a malformed entry in the controller registry at ${filePath}`
|
|
7064
6974
|
);
|
|
7065
6975
|
continue;
|
|
@@ -7287,7 +7197,7 @@ __name(removePeerController, "removePeerController");
|
|
|
7287
7197
|
|
|
7288
7198
|
// packages/core/src/ipc/peer-drop-reports.ts
|
|
7289
7199
|
init_esbuild_shims();
|
|
7290
|
-
var
|
|
7200
|
+
var debugLogger12 = createDebugLogger("PEER_DROP_REPORTS");
|
|
7291
7201
|
var DROP_REPORT_WINDOW_MS = 6e4;
|
|
7292
7202
|
var DROP_RECEIPT_TRAIL_MS = 5e3;
|
|
7293
7203
|
var DROP_FLUSH_BOUND_MS = 500;
|
|
@@ -7429,7 +7339,7 @@ var DropReceiptCoalescer = class {
|
|
|
7429
7339
|
const now = this.now();
|
|
7430
7340
|
const age = now - batch.firstNotedAt;
|
|
7431
7341
|
if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
|
|
7432
|
-
|
|
7342
|
+
debugLogger12.debug(
|
|
7433
7343
|
`abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
|
|
7434
7344
|
);
|
|
7435
7345
|
this.clearBatch(batch);
|
|
@@ -7467,7 +7377,7 @@ var DropReceiptCoalescer = class {
|
|
|
7467
7377
|
try {
|
|
7468
7378
|
result = this.send(receipt);
|
|
7469
7379
|
} catch (error) {
|
|
7470
|
-
|
|
7380
|
+
debugLogger12.debug(`sending a dropped receipt threw: ${describe3(error)}`);
|
|
7471
7381
|
return;
|
|
7472
7382
|
}
|
|
7473
7383
|
if (!(result instanceof Promise)) return result;
|
|
@@ -7568,7 +7478,7 @@ var DropNoticeThrottle = class {
|
|
|
7568
7478
|
suppressed
|
|
7569
7479
|
});
|
|
7570
7480
|
} catch (error) {
|
|
7571
|
-
|
|
7481
|
+
debugLogger12.debug(`drop-notice listener threw: ${describe3(error)}`);
|
|
7572
7482
|
}
|
|
7573
7483
|
}
|
|
7574
7484
|
touch(key) {
|
|
@@ -7758,7 +7668,7 @@ var DroppedNotificationTally = class {
|
|
|
7758
7668
|
|
|
7759
7669
|
// packages/core/src/services/toolUseSummary.ts
|
|
7760
7670
|
init_esbuild_shims();
|
|
7761
|
-
var
|
|
7671
|
+
var debugLogger13 = createDebugLogger("TOOL_USE_SUMMARY");
|
|
7762
7672
|
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.
|
|
7763
7673
|
|
|
7764
7674
|
Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
|
|
@@ -7779,7 +7689,7 @@ async function generateToolUseSummary(params) {
|
|
|
7779
7689
|
}
|
|
7780
7690
|
const model = config.getFastModel();
|
|
7781
7691
|
if (!model) {
|
|
7782
|
-
|
|
7692
|
+
debugLogger13.debug("No fast model configured \u2014 skipping summary generation");
|
|
7783
7693
|
return null;
|
|
7784
7694
|
}
|
|
7785
7695
|
if (signal.aborted) {
|
|
@@ -7802,7 +7712,7 @@ ${toolSummaries}
|
|
|
7802
7712
|
|
|
7803
7713
|
Label:`;
|
|
7804
7714
|
if (!config.getLlmClient()) {
|
|
7805
|
-
|
|
7715
|
+
debugLogger13.debug("No gemini client available \u2014 skipping");
|
|
7806
7716
|
return null;
|
|
7807
7717
|
}
|
|
7808
7718
|
const result = await runSideQuery(config, {
|
|
@@ -7821,19 +7731,19 @@ Label:`;
|
|
|
7821
7731
|
});
|
|
7822
7732
|
if (signal.aborted) return null;
|
|
7823
7733
|
if (!result.text) {
|
|
7824
|
-
|
|
7734
|
+
debugLogger13.debug("Summary generation returned empty result");
|
|
7825
7735
|
return null;
|
|
7826
7736
|
}
|
|
7827
7737
|
const cleaned = cleanSummary(result.text);
|
|
7828
7738
|
if (!cleaned) {
|
|
7829
|
-
|
|
7739
|
+
debugLogger13.debug(`Summary cleaned to empty: raw="${result.text}"`);
|
|
7830
7740
|
return null;
|
|
7831
7741
|
}
|
|
7832
|
-
|
|
7742
|
+
debugLogger13.debug(`Summary generated: "${cleaned}"`);
|
|
7833
7743
|
return cleaned;
|
|
7834
7744
|
} catch (err) {
|
|
7835
7745
|
if (signal.aborted) return null;
|
|
7836
|
-
|
|
7746
|
+
debugLogger13.warn(
|
|
7837
7747
|
`Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
|
|
7838
7748
|
);
|
|
7839
7749
|
return null;
|
|
@@ -7907,7 +7817,7 @@ __name(cleanSummary, "cleanSummary");
|
|
|
7907
7817
|
|
|
7908
7818
|
// packages/core/src/services/usage-dashboard-service.ts
|
|
7909
7819
|
init_esbuild_shims();
|
|
7910
|
-
var
|
|
7820
|
+
var debugLogger14 = createDebugLogger("USAGE_DASHBOARD");
|
|
7911
7821
|
var DEFAULT_HEATMAP_DAYS = 183;
|
|
7912
7822
|
var MAX_DAILY_DAYS = 92;
|
|
7913
7823
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
@@ -8032,7 +7942,7 @@ function buildUsageDashboard(records, options = {}) {
|
|
|
8032
7942
|
);
|
|
8033
7943
|
const daily = buildDaily(records, dailyStart, now);
|
|
8034
7944
|
const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
|
|
8035
|
-
|
|
7945
|
+
debugLogger14.debug(
|
|
8036
7946
|
`built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
|
|
8037
7947
|
);
|
|
8038
7948
|
return {
|
|
@@ -8368,7 +8278,7 @@ import * as path8 from "node:path";
|
|
|
8368
8278
|
var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
|
|
8369
8279
|
var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
|
|
8370
8280
|
var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
|
|
8371
|
-
var
|
|
8281
|
+
var debugLogger15 = createDebugLogger("CHANNEL_MEMORY");
|
|
8372
8282
|
var pendingMutations = /* @__PURE__ */ new Map();
|
|
8373
8283
|
var LOCK_OPTIONS2 = {
|
|
8374
8284
|
realpath: false,
|
|
@@ -8381,7 +8291,7 @@ var LOCK_OPTIONS2 = {
|
|
|
8381
8291
|
},
|
|
8382
8292
|
stale: 5e3,
|
|
8383
8293
|
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
8384
|
-
|
|
8294
|
+
debugLogger15.warn("channel memory lock compromised:", err);
|
|
8385
8295
|
}, "onCompromised")
|
|
8386
8296
|
};
|
|
8387
8297
|
function isMissingFile(error) {
|
|
@@ -9363,7 +9273,7 @@ init_esbuild_shims();
|
|
|
9363
9273
|
import * as fs9 from "node:fs";
|
|
9364
9274
|
import * as path11 from "path";
|
|
9365
9275
|
import { pathToFileURL } from "url";
|
|
9366
|
-
var
|
|
9276
|
+
var debugLogger16 = createDebugLogger("LSP");
|
|
9367
9277
|
var MAX_TCP_PORT = 65535;
|
|
9368
9278
|
var LspConfigLoader = class {
|
|
9369
9279
|
constructor(workspaceRoot) {
|
|
@@ -9388,7 +9298,7 @@ var LspConfigLoader = class {
|
|
|
9388
9298
|
forceTrustRequired: true
|
|
9389
9299
|
});
|
|
9390
9300
|
} catch (error) {
|
|
9391
|
-
|
|
9301
|
+
debugLogger16.warn("Failed to load user .lsp.json config:", error);
|
|
9392
9302
|
return [];
|
|
9393
9303
|
}
|
|
9394
9304
|
}
|
|
@@ -9425,7 +9335,7 @@ var LspConfigLoader = class {
|
|
|
9425
9335
|
lspServers
|
|
9426
9336
|
);
|
|
9427
9337
|
if (!fs9.existsSync(configPath)) {
|
|
9428
|
-
|
|
9338
|
+
debugLogger16.warn(
|
|
9429
9339
|
`LSP config not found for ${originBase}: ${configPath}`
|
|
9430
9340
|
);
|
|
9431
9341
|
continue;
|
|
@@ -9441,7 +9351,7 @@ var LspConfigLoader = class {
|
|
|
9441
9351
|
)
|
|
9442
9352
|
);
|
|
9443
9353
|
} catch (error) {
|
|
9444
|
-
|
|
9354
|
+
debugLogger16.warn(
|
|
9445
9355
|
`Failed to load extension LSP config from ${configPath}:`,
|
|
9446
9356
|
error
|
|
9447
9357
|
);
|
|
@@ -9455,7 +9365,7 @@ var LspConfigLoader = class {
|
|
|
9455
9365
|
...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
|
|
9456
9366
|
);
|
|
9457
9367
|
} else {
|
|
9458
|
-
|
|
9368
|
+
debugLogger16.warn(
|
|
9459
9369
|
`LSP config for ${originBase} must be an object or a JSON file path.`
|
|
9460
9370
|
);
|
|
9461
9371
|
}
|
|
@@ -9593,13 +9503,13 @@ var LspConfigLoader = class {
|
|
|
9593
9503
|
const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
|
|
9594
9504
|
const socket = this.normalizeSocketOptions(spec);
|
|
9595
9505
|
if (transport === "stdio" && !command) {
|
|
9596
|
-
|
|
9506
|
+
debugLogger16.warn(
|
|
9597
9507
|
`LSP config error in ${origin}: ${name} missing command`
|
|
9598
9508
|
);
|
|
9599
9509
|
return null;
|
|
9600
9510
|
}
|
|
9601
9511
|
if (transport !== "stdio" && !socket) {
|
|
9602
|
-
|
|
9512
|
+
debugLogger16.warn(
|
|
9603
9513
|
`LSP config error in ${origin}: ${name} missing socket info`
|
|
9604
9514
|
);
|
|
9605
9515
|
return null;
|
|
@@ -9741,7 +9651,7 @@ var LspConfigLoader = class {
|
|
|
9741
9651
|
if (resolved === root || resolved.startsWith(root + path11.sep)) {
|
|
9742
9652
|
return resolved;
|
|
9743
9653
|
}
|
|
9744
|
-
|
|
9654
|
+
debugLogger16.warn(
|
|
9745
9655
|
`LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
|
|
9746
9656
|
);
|
|
9747
9657
|
return this.workspaceRoot;
|
|
@@ -9753,7 +9663,7 @@ init_esbuild_shims();
|
|
|
9753
9663
|
import * as cp from "node:child_process";
|
|
9754
9664
|
import * as net2 from "node:net";
|
|
9755
9665
|
import { StringDecoder } from "node:string_decoder";
|
|
9756
|
-
var
|
|
9666
|
+
var debugLogger17 = createDebugLogger("LSP");
|
|
9757
9667
|
var MAX_STDERR_TAIL_BYTES = 8192;
|
|
9758
9668
|
function trimTail(value, maxBytes) {
|
|
9759
9669
|
const buffer = Buffer.from(value, "utf8");
|
|
@@ -9818,7 +9728,7 @@ var JsonRpcConnection = class {
|
|
|
9818
9728
|
try {
|
|
9819
9729
|
this.disposer?.();
|
|
9820
9730
|
} catch (error) {
|
|
9821
|
-
|
|
9731
|
+
debugLogger17.warn("LSP disposer failed:", error);
|
|
9822
9732
|
}
|
|
9823
9733
|
}
|
|
9824
9734
|
sendRequest(method, params) {
|
|
@@ -9945,7 +9855,7 @@ var JsonRpcConnection = class {
|
|
|
9945
9855
|
try {
|
|
9946
9856
|
this.writer(header + json);
|
|
9947
9857
|
} catch (error) {
|
|
9948
|
-
|
|
9858
|
+
debugLogger17.warn("LSP write failed:", error);
|
|
9949
9859
|
this.end();
|
|
9950
9860
|
}
|
|
9951
9861
|
}
|
|
@@ -10004,14 +9914,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
10004
9914
|
);
|
|
10005
9915
|
});
|
|
10006
9916
|
processInstance.stderr?.on("error", (err) => {
|
|
10007
|
-
|
|
9917
|
+
debugLogger17.warn(`LSP stderr stream error for ${command}:`, err);
|
|
10008
9918
|
});
|
|
10009
9919
|
const connection = new JsonRpcConnection(
|
|
10010
9920
|
(payload) => processInstance.stdin?.write(payload),
|
|
10011
9921
|
() => processInstance.stdin?.end()
|
|
10012
9922
|
);
|
|
10013
9923
|
processInstance.stdin.on("error", (err) => {
|
|
10014
|
-
|
|
9924
|
+
debugLogger17.warn(`LSP stdin stream error for ${command}:`, err);
|
|
10015
9925
|
connection.end();
|
|
10016
9926
|
});
|
|
10017
9927
|
connection.listen(processInstance.stdout);
|
|
@@ -10094,7 +10004,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
|
|
|
10094
10004
|
try {
|
|
10095
10005
|
await lspConnection.connection.shutdown();
|
|
10096
10006
|
} catch (e) {
|
|
10097
|
-
|
|
10007
|
+
debugLogger17.warn("LSP shutdown failed:", e);
|
|
10098
10008
|
} finally {
|
|
10099
10009
|
lspConnection.connection.end();
|
|
10100
10010
|
}
|
|
@@ -10772,7 +10682,7 @@ import { spawn as spawn2 } from "node:child_process";
|
|
|
10772
10682
|
import * as fs10 from "node:fs";
|
|
10773
10683
|
import * as path12 from "path";
|
|
10774
10684
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
10775
|
-
var
|
|
10685
|
+
var debugLogger18 = createDebugLogger("LSP");
|
|
10776
10686
|
var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
10777
10687
|
"DYLD_INSERT_LIBRARIES",
|
|
10778
10688
|
"DYLD_LIBRARY_PATH",
|
|
@@ -10809,7 +10719,7 @@ var LspServerManager = class {
|
|
|
10809
10719
|
});
|
|
10810
10720
|
this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
|
|
10811
10721
|
}
|
|
10812
|
-
|
|
10722
|
+
debugLogger18.info(
|
|
10813
10723
|
`Prepared ${configs.length} LSP server config(s): ${formatServerNames(
|
|
10814
10724
|
configs.map((config) => config.name)
|
|
10815
10725
|
)}`
|
|
@@ -10818,7 +10728,7 @@ var LspServerManager = class {
|
|
|
10818
10728
|
/** Drops all prepared handles without attempting process shutdown. */
|
|
10819
10729
|
clearServerHandles() {
|
|
10820
10730
|
if (this.serverHandles.size > 0) {
|
|
10821
|
-
|
|
10731
|
+
debugLogger18.info(
|
|
10822
10732
|
`Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
|
|
10823
10733
|
Array.from(this.serverHandles.keys())
|
|
10824
10734
|
)}`
|
|
@@ -10879,7 +10789,7 @@ var LspServerManager = class {
|
|
|
10879
10789
|
* before their handles are deleted or replaced.
|
|
10880
10790
|
*/
|
|
10881
10791
|
async doReconcileServerConfigs(configs) {
|
|
10882
|
-
|
|
10792
|
+
debugLogger18.info(
|
|
10883
10793
|
`Reconciling LSP server configs: desired=${formatServerNames(
|
|
10884
10794
|
configs.map((config) => config.name)
|
|
10885
10795
|
)}`
|
|
@@ -10951,7 +10861,7 @@ var LspServerManager = class {
|
|
|
10951
10861
|
result.added.push(name);
|
|
10952
10862
|
}
|
|
10953
10863
|
}
|
|
10954
|
-
|
|
10864
|
+
debugLogger18.info(
|
|
10955
10865
|
`LSP reconcile result: added=${formatServerNames(
|
|
10956
10866
|
result.added
|
|
10957
10867
|
)}, removed=${formatServerNames(
|
|
@@ -11005,7 +10915,7 @@ var LspServerManager = class {
|
|
|
11005
10915
|
handle.warmedUp = true;
|
|
11006
10916
|
return uri;
|
|
11007
10917
|
} catch (error) {
|
|
11008
|
-
|
|
10918
|
+
debugLogger18.warn("TypeScript server warm-up failed:", error);
|
|
11009
10919
|
return void 0;
|
|
11010
10920
|
}
|
|
11011
10921
|
}
|
|
@@ -11052,7 +10962,7 @@ var LspServerManager = class {
|
|
|
11052
10962
|
async doStartServer(name, handle) {
|
|
11053
10963
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
11054
10964
|
if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
|
|
11055
|
-
|
|
10965
|
+
debugLogger18.warn(
|
|
11056
10966
|
`LSP server ${name} requires trusted workspace, skipping startup`
|
|
11057
10967
|
);
|
|
11058
10968
|
handle.status = "FAILED";
|
|
@@ -11065,7 +10975,7 @@ var LspServerManager = class {
|
|
|
11065
10975
|
workspaceTrusted
|
|
11066
10976
|
);
|
|
11067
10977
|
if (!trusted) {
|
|
11068
|
-
|
|
10978
|
+
debugLogger18.warn(
|
|
11069
10979
|
`Workspace trust check failed, not starting LSP server ${name}`
|
|
11070
10980
|
);
|
|
11071
10981
|
handle.status = "FAILED";
|
|
@@ -11075,7 +10985,7 @@ var LspServerManager = class {
|
|
|
11075
10985
|
if (handle.config.command) {
|
|
11076
10986
|
const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
|
|
11077
10987
|
if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
|
|
11078
|
-
|
|
10988
|
+
debugLogger18.warn(
|
|
11079
10989
|
`LSP server ${name} command path is unsafe: ${handle.config.command}`
|
|
11080
10990
|
);
|
|
11081
10991
|
handle.status = "FAILED";
|
|
@@ -11087,7 +10997,7 @@ var LspServerManager = class {
|
|
|
11087
10997
|
handle.config.env,
|
|
11088
10998
|
commandCwd
|
|
11089
10999
|
)) {
|
|
11090
|
-
|
|
11000
|
+
debugLogger18.warn(
|
|
11091
11001
|
`LSP server ${name} command not found: ${handle.config.command}`
|
|
11092
11002
|
);
|
|
11093
11003
|
handle.status = "FAILED";
|
|
@@ -11102,7 +11012,7 @@ var LspServerManager = class {
|
|
|
11102
11012
|
handle.processDiagnostics = void 0;
|
|
11103
11013
|
handle.warmedUp = false;
|
|
11104
11014
|
handle.status = "IN_PROGRESS";
|
|
11105
|
-
|
|
11015
|
+
debugLogger18.info(
|
|
11106
11016
|
`Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
|
|
11107
11017
|
handle.config.languages
|
|
11108
11018
|
)}`
|
|
@@ -11127,7 +11037,7 @@ var LspServerManager = class {
|
|
|
11127
11037
|
}
|
|
11128
11038
|
handle.status = "READY";
|
|
11129
11039
|
this.attachRestartHandler(name, handle);
|
|
11130
|
-
|
|
11040
|
+
debugLogger18.info(`LSP server ${name} started successfully`);
|
|
11131
11041
|
} catch (error) {
|
|
11132
11042
|
handle.status = "FAILED";
|
|
11133
11043
|
handle.error = error;
|
|
@@ -11141,21 +11051,21 @@ var LspServerManager = class {
|
|
|
11141
11051
|
}
|
|
11142
11052
|
await this.releaseServerResources(name, handle, false);
|
|
11143
11053
|
if (handle.processDiagnostics) {
|
|
11144
|
-
|
|
11054
|
+
debugLogger18.error(
|
|
11145
11055
|
`LSP server ${name} process diagnostics:`,
|
|
11146
11056
|
handle.processDiagnostics
|
|
11147
11057
|
);
|
|
11148
11058
|
}
|
|
11149
11059
|
handle.connection = void 0;
|
|
11150
11060
|
handle.process = void 0;
|
|
11151
|
-
|
|
11061
|
+
debugLogger18.error(`LSP server ${name} failed to start:`, error);
|
|
11152
11062
|
}
|
|
11153
11063
|
}
|
|
11154
11064
|
/**
|
|
11155
11065
|
* Stops a server and resets runtime-only handle state.
|
|
11156
11066
|
*/
|
|
11157
11067
|
async stopServer(name, handle) {
|
|
11158
|
-
|
|
11068
|
+
debugLogger18.info(`Stopping LSP server ${name}`);
|
|
11159
11069
|
handle.stopRequested = true;
|
|
11160
11070
|
handle.startupAbortController?.abort();
|
|
11161
11071
|
if (handle.startingPromise) {
|
|
@@ -11168,7 +11078,7 @@ var LspServerManager = class {
|
|
|
11168
11078
|
handle.status = "NOT_STARTED";
|
|
11169
11079
|
handle.warmedUp = false;
|
|
11170
11080
|
handle.restartAttempts = 0;
|
|
11171
|
-
|
|
11081
|
+
debugLogger18.info(`LSP server ${name} stopped`);
|
|
11172
11082
|
}
|
|
11173
11083
|
async abortAndWaitForStartup(handle) {
|
|
11174
11084
|
if (!handle.startingPromise) {
|
|
@@ -11192,14 +11102,14 @@ var LspServerManager = class {
|
|
|
11192
11102
|
handle.connection.end();
|
|
11193
11103
|
}
|
|
11194
11104
|
} catch (error) {
|
|
11195
|
-
|
|
11105
|
+
debugLogger18.error(`Error closing LSP server ${name}:`, error);
|
|
11196
11106
|
}
|
|
11197
11107
|
}
|
|
11198
11108
|
if (handle.process && handle.process.exitCode === null) {
|
|
11199
11109
|
try {
|
|
11200
11110
|
handle.process.kill();
|
|
11201
11111
|
} catch (error) {
|
|
11202
|
-
|
|
11112
|
+
debugLogger18.warn(`Error killing LSP server ${name} process:`, error);
|
|
11203
11113
|
}
|
|
11204
11114
|
}
|
|
11205
11115
|
}
|
|
@@ -11245,7 +11155,7 @@ var LspServerManager = class {
|
|
|
11245
11155
|
}
|
|
11246
11156
|
handle.processExitedUnexpectedly = true;
|
|
11247
11157
|
if (!handle.config.restartOnCrash) {
|
|
11248
|
-
|
|
11158
|
+
debugLogger18.warn(
|
|
11249
11159
|
`LSP server ${name} exited but restartOnCrash is disabled`
|
|
11250
11160
|
);
|
|
11251
11161
|
handle.status = "FAILED";
|
|
@@ -11254,7 +11164,7 @@ var LspServerManager = class {
|
|
|
11254
11164
|
}
|
|
11255
11165
|
const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
|
|
11256
11166
|
if (maxRestarts <= 0) {
|
|
11257
|
-
|
|
11167
|
+
debugLogger18.warn(
|
|
11258
11168
|
`LSP server ${name} exited but maxRestarts is ${maxRestarts}`
|
|
11259
11169
|
);
|
|
11260
11170
|
handle.status = "FAILED";
|
|
@@ -11263,7 +11173,7 @@ var LspServerManager = class {
|
|
|
11263
11173
|
}
|
|
11264
11174
|
const attempts = handle.restartAttempts ?? 0;
|
|
11265
11175
|
if (attempts >= maxRestarts) {
|
|
11266
|
-
|
|
11176
|
+
debugLogger18.warn(
|
|
11267
11177
|
`LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
|
|
11268
11178
|
);
|
|
11269
11179
|
handle.status = "FAILED";
|
|
@@ -11271,7 +11181,7 @@ var LspServerManager = class {
|
|
|
11271
11181
|
return;
|
|
11272
11182
|
}
|
|
11273
11183
|
handle.restartAttempts = attempts + 1;
|
|
11274
|
-
|
|
11184
|
+
debugLogger18.warn(
|
|
11275
11185
|
`LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
|
|
11276
11186
|
);
|
|
11277
11187
|
this.enqueueCrashRestart(name, handle);
|
|
@@ -11319,7 +11229,7 @@ var LspServerManager = class {
|
|
|
11319
11229
|
const next = this.reconcileQueue.then(restart, restart);
|
|
11320
11230
|
this.reconcileQueue = next.catch(() => void 0);
|
|
11321
11231
|
void next.catch((error) => {
|
|
11322
|
-
|
|
11232
|
+
debugLogger18.warn(`LSP server ${name} crash restart failed:`, error);
|
|
11323
11233
|
});
|
|
11324
11234
|
}
|
|
11325
11235
|
resetHandle(handle) {
|
|
@@ -11327,14 +11237,14 @@ var LspServerManager = class {
|
|
|
11327
11237
|
try {
|
|
11328
11238
|
handle.connection.end();
|
|
11329
11239
|
} catch (error) {
|
|
11330
|
-
|
|
11240
|
+
debugLogger18.warn("Error closing LSP connection during reset:", error);
|
|
11331
11241
|
}
|
|
11332
11242
|
}
|
|
11333
11243
|
if (handle.process && handle.process.exitCode === null) {
|
|
11334
11244
|
try {
|
|
11335
11245
|
handle.process.kill();
|
|
11336
11246
|
} catch (error) {
|
|
11337
|
-
|
|
11247
|
+
debugLogger18.warn("Error killing LSP process during reset:", error);
|
|
11338
11248
|
}
|
|
11339
11249
|
}
|
|
11340
11250
|
handle.connection = void 0;
|
|
@@ -11353,7 +11263,7 @@ var LspServerManager = class {
|
|
|
11353
11263
|
const filteredEnv = {};
|
|
11354
11264
|
for (const [key, value] of Object.entries(env2)) {
|
|
11355
11265
|
if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
|
|
11356
|
-
|
|
11266
|
+
debugLogger18.warn(
|
|
11357
11267
|
`Ignoring security-sensitive LSP server env override: ${key}`
|
|
11358
11268
|
);
|
|
11359
11269
|
continue;
|
|
@@ -11379,7 +11289,7 @@ var LspServerManager = class {
|
|
|
11379
11289
|
for (const [key, value] of Object.entries(env2)) {
|
|
11380
11290
|
const normalizedKey = key.toUpperCase();
|
|
11381
11291
|
if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
|
|
11382
|
-
|
|
11292
|
+
debugLogger18.warn(
|
|
11383
11293
|
`Ignoring security-sensitive LSP command probe env override: ${key}`
|
|
11384
11294
|
);
|
|
11385
11295
|
continue;
|
|
@@ -11628,7 +11538,7 @@ var LspServerManager = class {
|
|
|
11628
11538
|
try {
|
|
11629
11539
|
process3.kill();
|
|
11630
11540
|
} catch (error) {
|
|
11631
|
-
|
|
11541
|
+
debugLogger18.warn(
|
|
11632
11542
|
"Error killing aborted LSP socket process:",
|
|
11633
11543
|
error
|
|
11634
11544
|
);
|
|
@@ -11801,12 +11711,12 @@ var LspServerManager = class {
|
|
|
11801
11711
|
return true;
|
|
11802
11712
|
}
|
|
11803
11713
|
if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
|
|
11804
|
-
|
|
11714
|
+
debugLogger18.warn(
|
|
11805
11715
|
`Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
|
|
11806
11716
|
);
|
|
11807
11717
|
return false;
|
|
11808
11718
|
}
|
|
11809
|
-
|
|
11719
|
+
debugLogger18.info(
|
|
11810
11720
|
`Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
|
|
11811
11721
|
);
|
|
11812
11722
|
return true;
|
|
@@ -12051,7 +11961,7 @@ import * as path13 from "path";
|
|
|
12051
11961
|
import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
|
|
12052
11962
|
import * as fs11 from "node:fs";
|
|
12053
11963
|
import { promises as fsp } from "node:fs";
|
|
12054
|
-
var
|
|
11964
|
+
var debugLogger19 = createDebugLogger("LSP");
|
|
12055
11965
|
var LANGUAGE_ID_TO_EXTENSIONS = {
|
|
12056
11966
|
typescript: ["ts", "tsx"],
|
|
12057
11967
|
typescriptreact: ["tsx"],
|
|
@@ -12109,7 +12019,7 @@ var NativeLspService = class {
|
|
|
12109
12019
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12110
12020
|
this.serverManager.clearServerHandles();
|
|
12111
12021
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
12112
|
-
|
|
12022
|
+
debugLogger19.warn(
|
|
12113
12023
|
"Workspace is not trusted, skipping LSP server discovery"
|
|
12114
12024
|
);
|
|
12115
12025
|
return;
|
|
@@ -12127,7 +12037,7 @@ var NativeLspService = class {
|
|
|
12127
12037
|
serverConfigs,
|
|
12128
12038
|
workspaceTrusted
|
|
12129
12039
|
);
|
|
12130
|
-
|
|
12040
|
+
debugLogger19.info(
|
|
12131
12041
|
`Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
|
|
12132
12042
|
admitted.map((config) => config.name)
|
|
12133
12043
|
)}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
|
|
@@ -12162,7 +12072,7 @@ var NativeLspService = class {
|
|
|
12162
12072
|
async doReinitialize(signal) {
|
|
12163
12073
|
this.throwIfReinitializeAborted(signal);
|
|
12164
12074
|
const workspaceTrusted = this.config.isTrustedFolder();
|
|
12165
|
-
|
|
12075
|
+
debugLogger19.info(
|
|
12166
12076
|
`Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
|
|
12167
12077
|
);
|
|
12168
12078
|
if (this.requireTrustedWorkspace && !workspaceTrusted) {
|
|
@@ -12181,7 +12091,7 @@ var NativeLspService = class {
|
|
|
12181
12091
|
},
|
|
12182
12092
|
skipped: []
|
|
12183
12093
|
};
|
|
12184
|
-
|
|
12094
|
+
debugLogger19.info(
|
|
12185
12095
|
`LSP reinitialize result: added=<none>, removed=${formatServerNames2(
|
|
12186
12096
|
removed
|
|
12187
12097
|
)}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
|
|
@@ -12223,7 +12133,7 @@ var NativeLspService = class {
|
|
|
12223
12133
|
signal
|
|
12224
12134
|
);
|
|
12225
12135
|
this.throwIfReinitializeAborted(signal);
|
|
12226
|
-
|
|
12136
|
+
debugLogger19.info(
|
|
12227
12137
|
`LSP reinitialize result: added=${formatServerNames2(
|
|
12228
12138
|
reconcile.added
|
|
12229
12139
|
)}, removed=${formatServerNames2(
|
|
@@ -12243,7 +12153,7 @@ var NativeLspService = class {
|
|
|
12243
12153
|
const skipped = [];
|
|
12244
12154
|
for (const config of configs) {
|
|
12245
12155
|
if (!workspaceTrusted && config.trustRequired) {
|
|
12246
|
-
|
|
12156
|
+
debugLogger19.warn(
|
|
12247
12157
|
`LSP server ${config.name} requires trusted workspace, skipping`
|
|
12248
12158
|
);
|
|
12249
12159
|
skipped.push({ name: config.name, reason: "server_trust_required" });
|
|
@@ -12288,7 +12198,7 @@ var NativeLspService = class {
|
|
|
12288
12198
|
try {
|
|
12289
12199
|
openedAny = this.sendDocumentOpen(name, handle, uri) || openedAny;
|
|
12290
12200
|
} catch (error) {
|
|
12291
|
-
|
|
12201
|
+
debugLogger19.warn(
|
|
12292
12202
|
`Failed to replay document ${uri} for LSP server ${name}:`,
|
|
12293
12203
|
error
|
|
12294
12204
|
);
|
|
@@ -12417,14 +12327,14 @@ var NativeLspService = class {
|
|
|
12417
12327
|
try {
|
|
12418
12328
|
filePath = fileURLToPath(uri);
|
|
12419
12329
|
} catch (error) {
|
|
12420
|
-
|
|
12330
|
+
debugLogger19.warn(`Failed to resolve file path for ${uri}:`, error);
|
|
12421
12331
|
return false;
|
|
12422
12332
|
}
|
|
12423
12333
|
let text;
|
|
12424
12334
|
try {
|
|
12425
12335
|
text = fs11.readFileSync(filePath, "utf-8");
|
|
12426
12336
|
} catch (error) {
|
|
12427
|
-
|
|
12337
|
+
debugLogger19.warn(
|
|
12428
12338
|
`Failed to read file for LSP didOpen: ${filePath}`,
|
|
12429
12339
|
error
|
|
12430
12340
|
);
|
|
@@ -12652,7 +12562,7 @@ var NativeLspService = class {
|
|
|
12652
12562
|
}
|
|
12653
12563
|
}
|
|
12654
12564
|
} catch (error) {
|
|
12655
|
-
|
|
12565
|
+
debugLogger19.warn(
|
|
12656
12566
|
`LSP workspace/symbol failed for ${serverName}:`,
|
|
12657
12567
|
error
|
|
12658
12568
|
);
|
|
@@ -12703,7 +12613,7 @@ var NativeLspService = class {
|
|
|
12703
12613
|
return definitions.slice(0, limit);
|
|
12704
12614
|
}
|
|
12705
12615
|
} catch (error) {
|
|
12706
|
-
|
|
12616
|
+
debugLogger19.warn(
|
|
12707
12617
|
`LSP textDocument/definition failed for ${name}:`,
|
|
12708
12618
|
error
|
|
12709
12619
|
);
|
|
@@ -12757,7 +12667,7 @@ var NativeLspService = class {
|
|
|
12757
12667
|
return refs.slice(0, limit);
|
|
12758
12668
|
}
|
|
12759
12669
|
} catch (error) {
|
|
12760
|
-
|
|
12670
|
+
debugLogger19.warn(
|
|
12761
12671
|
`LSP textDocument/references failed for ${name}:`,
|
|
12762
12672
|
error
|
|
12763
12673
|
);
|
|
@@ -12798,7 +12708,7 @@ var NativeLspService = class {
|
|
|
12798
12708
|
return normalized2;
|
|
12799
12709
|
}
|
|
12800
12710
|
} catch (error) {
|
|
12801
|
-
|
|
12711
|
+
debugLogger19.warn(`LSP textDocument/hover failed for ${name}:`, error);
|
|
12802
12712
|
}
|
|
12803
12713
|
}
|
|
12804
12714
|
return null;
|
|
@@ -12858,7 +12768,7 @@ var NativeLspService = class {
|
|
|
12858
12768
|
return symbols.slice(0, limit);
|
|
12859
12769
|
}
|
|
12860
12770
|
} catch (error) {
|
|
12861
|
-
|
|
12771
|
+
debugLogger19.warn(
|
|
12862
12772
|
`LSP textDocument/documentSymbol failed for ${name}:`,
|
|
12863
12773
|
error
|
|
12864
12774
|
);
|
|
@@ -12912,7 +12822,7 @@ var NativeLspService = class {
|
|
|
12912
12822
|
return implementations.slice(0, limit);
|
|
12913
12823
|
}
|
|
12914
12824
|
} catch (error) {
|
|
12915
|
-
|
|
12825
|
+
debugLogger19.warn(
|
|
12916
12826
|
`LSP textDocument/implementation failed for ${name}:`,
|
|
12917
12827
|
error
|
|
12918
12828
|
);
|
|
@@ -12966,7 +12876,7 @@ var NativeLspService = class {
|
|
|
12966
12876
|
return items.slice(0, limit);
|
|
12967
12877
|
}
|
|
12968
12878
|
} catch (error) {
|
|
12969
|
-
|
|
12879
|
+
debugLogger19.warn(
|
|
12970
12880
|
`LSP textDocument/prepareCallHierarchy failed for ${name}:`,
|
|
12971
12881
|
error
|
|
12972
12882
|
);
|
|
@@ -13006,7 +12916,7 @@ var NativeLspService = class {
|
|
|
13006
12916
|
return calls.slice(0, limit);
|
|
13007
12917
|
}
|
|
13008
12918
|
} catch (error) {
|
|
13009
|
-
|
|
12919
|
+
debugLogger19.warn(
|
|
13010
12920
|
`LSP callHierarchy/incomingCalls failed for ${name}:`,
|
|
13011
12921
|
error
|
|
13012
12922
|
);
|
|
@@ -13046,7 +12956,7 @@ var NativeLspService = class {
|
|
|
13046
12956
|
return calls.slice(0, limit);
|
|
13047
12957
|
}
|
|
13048
12958
|
} catch (error) {
|
|
13049
|
-
|
|
12959
|
+
debugLogger19.warn(
|
|
13050
12960
|
`LSP callHierarchy/outgoingCalls failed for ${name}:`,
|
|
13051
12961
|
error
|
|
13052
12962
|
);
|
|
@@ -13086,7 +12996,7 @@ var NativeLspService = class {
|
|
|
13086
12996
|
}
|
|
13087
12997
|
}
|
|
13088
12998
|
} catch (error) {
|
|
13089
|
-
|
|
12999
|
+
debugLogger19.warn(
|
|
13090
13000
|
`LSP textDocument/diagnostic failed for ${name}:`,
|
|
13091
13001
|
error
|
|
13092
13002
|
);
|
|
@@ -13128,7 +13038,7 @@ var NativeLspService = class {
|
|
|
13128
13038
|
}
|
|
13129
13039
|
}
|
|
13130
13040
|
} catch (error) {
|
|
13131
|
-
|
|
13041
|
+
debugLogger19.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
|
|
13132
13042
|
}
|
|
13133
13043
|
if (results.length >= limit) {
|
|
13134
13044
|
break;
|
|
@@ -13178,7 +13088,7 @@ var NativeLspService = class {
|
|
|
13178
13088
|
return actions.slice(0, limit);
|
|
13179
13089
|
}
|
|
13180
13090
|
} catch (error) {
|
|
13181
|
-
|
|
13091
|
+
debugLogger19.warn(
|
|
13182
13092
|
`LSP textDocument/codeAction failed for ${name}:`,
|
|
13183
13093
|
error
|
|
13184
13094
|
);
|
|
@@ -13206,7 +13116,7 @@ var NativeLspService = class {
|
|
|
13206
13116
|
}
|
|
13207
13117
|
return true;
|
|
13208
13118
|
} catch (error) {
|
|
13209
|
-
|
|
13119
|
+
debugLogger19.error("Failed to apply workspace edit:", error);
|
|
13210
13120
|
return false;
|
|
13211
13121
|
}
|
|
13212
13122
|
}
|
|
@@ -13469,7 +13379,7 @@ __name(createFollowupController, "createFollowupController");
|
|
|
13469
13379
|
|
|
13470
13380
|
// packages/core/src/followup/suggestionGenerator.ts
|
|
13471
13381
|
init_esbuild_shims();
|
|
13472
|
-
var
|
|
13382
|
+
var debugLogger20 = createDebugLogger("FOLLOWUP");
|
|
13473
13383
|
var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
|
|
13474
13384
|
|
|
13475
13385
|
FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
|
|
@@ -13531,7 +13441,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13531
13441
|
const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
|
|
13532
13442
|
const modelOverride = options?.model;
|
|
13533
13443
|
const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
|
|
13534
|
-
|
|
13444
|
+
debugLogger20.debug(
|
|
13535
13445
|
`Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
|
|
13536
13446
|
);
|
|
13537
13447
|
const raw = cacheSafe ? await generateViaForkedQuery(
|
|
@@ -13547,23 +13457,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
|
|
|
13547
13457
|
);
|
|
13548
13458
|
const suggestion = typeof raw === "string" ? raw.trim() : null;
|
|
13549
13459
|
if (!suggestion) {
|
|
13550
|
-
|
|
13460
|
+
debugLogger20.debug("Suggestion generation returned empty result");
|
|
13551
13461
|
return { suggestion: null, filterReason: "empty" };
|
|
13552
13462
|
}
|
|
13553
13463
|
const filterReason = getFilterReason(suggestion);
|
|
13554
13464
|
if (filterReason) {
|
|
13555
|
-
|
|
13465
|
+
debugLogger20.debug(
|
|
13556
13466
|
`Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
|
|
13557
13467
|
);
|
|
13558
13468
|
return { suggestion: null, filterReason };
|
|
13559
13469
|
}
|
|
13560
|
-
|
|
13470
|
+
debugLogger20.debug(`Suggestion accepted: "${suggestion}"`);
|
|
13561
13471
|
return { suggestion };
|
|
13562
13472
|
} catch (error) {
|
|
13563
13473
|
if (abortSignal.aborted) {
|
|
13564
13474
|
return { suggestion: null };
|
|
13565
13475
|
}
|
|
13566
|
-
|
|
13476
|
+
debugLogger20.warn("Suggestion generation failed:", error);
|
|
13567
13477
|
return { suggestion: null, filterReason: "error" };
|
|
13568
13478
|
}
|
|
13569
13479
|
}
|
|
@@ -13902,7 +13812,7 @@ __name(rewritePathArgs, "rewritePathArgs");
|
|
|
13902
13812
|
|
|
13903
13813
|
// packages/core/src/followup/speculation.ts
|
|
13904
13814
|
init_esbuild_shims();
|
|
13905
|
-
var
|
|
13815
|
+
var debugLogger21 = createDebugLogger("SPECULATION");
|
|
13906
13816
|
var MAX_SPECULATION_TURNS = 20;
|
|
13907
13817
|
var MAX_SPECULATION_MESSAGES = 100;
|
|
13908
13818
|
function observeSpeculationProducer(params) {
|
|
@@ -14150,7 +14060,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
|
|
|
14150
14060
|
break;
|
|
14151
14061
|
}
|
|
14152
14062
|
if (!guardDecision.allowed) {
|
|
14153
|
-
|
|
14063
|
+
debugLogger21.debug(
|
|
14154
14064
|
`Speculative guard denial: ${guardDecision.reason}`
|
|
14155
14065
|
);
|
|
14156
14066
|
hitBoundary = true;
|
|
@@ -14397,7 +14307,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
|
|
|
14397
14307
|
import fs12 from "node:fs";
|
|
14398
14308
|
import path14 from "node:path";
|
|
14399
14309
|
var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
|
|
14400
|
-
var
|
|
14310
|
+
var debugLogger22 = createDebugLogger("FILE_SEARCH_IGNORE");
|
|
14401
14311
|
function loadIgnoreRules(options) {
|
|
14402
14312
|
const ignorer = new Ignore();
|
|
14403
14313
|
if (options.useGitignore) {
|
|
@@ -14436,7 +14346,7 @@ function readIgnoreFile(filePath) {
|
|
|
14436
14346
|
} catch (_error) {
|
|
14437
14347
|
const error = _error;
|
|
14438
14348
|
if (error.code !== "ENOENT") {
|
|
14439
|
-
|
|
14349
|
+
debugLogger22.warn(`Failed to read ${filePath}: ${error.message}`);
|
|
14440
14350
|
}
|
|
14441
14351
|
return void 0;
|
|
14442
14352
|
}
|
|
@@ -17987,8 +17897,6 @@ export {
|
|
|
17987
17897
|
BTW_MAX_INPUT_LENGTH,
|
|
17988
17898
|
buildBtwPrompt,
|
|
17989
17899
|
buildBtwCacheSafeParams,
|
|
17990
|
-
getStopHookContinuationReason,
|
|
17991
|
-
abortGoalForStopHookCap,
|
|
17992
17900
|
projectGoalStateToLegacy,
|
|
17993
17901
|
isGoalCheckpointBookkeepingRecord,
|
|
17994
17902
|
renderGoalContinuationTurn,
|