pybao-cli 1.5.43 → 1.5.45
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/dist/REPL-FPYYTXYI.js +53 -0
- package/dist/{acp-LVHAM3WT.js → acp-Y3YRP7PX.js} +32 -30
- package/dist/{acp-LVHAM3WT.js.map → acp-Y3YRP7PX.js.map} +1 -1
- package/dist/{agentsValidate-BIL7UNX5.js → agentsValidate-LYQDYON6.js} +7 -7
- package/dist/{ask-QYJE6B5E.js → ask-BH7SPGEV.js} +32 -30
- package/dist/{ask-QYJE6B5E.js.map → ask-BH7SPGEV.js.map} +1 -1
- package/dist/{autoUpdater-LAJDPNSA.js → autoUpdater-WQ7NSMS6.js} +3 -3
- package/dist/{chunk-IMTSYQJ5.js → chunk-2CFC3PYO.js} +1 -1
- package/dist/chunk-2RXKUCFS.js +56 -0
- package/dist/chunk-2RXKUCFS.js.map +7 -0
- package/dist/{chunk-BY5NKQMC.js → chunk-3V35SGQ7.js} +1 -1
- package/dist/{chunk-6CJP4KDE.js → chunk-6TJCSOV3.js} +3 -3
- package/dist/{chunk-O5YZTB5G.js → chunk-7BDU4UKY.js} +1 -1
- package/dist/{chunk-UL4MJNFE.js → chunk-7XHORF4S.js} +1 -1
- package/dist/{chunk-2TSFRYBQ.js → chunk-A3E3KOP5.js} +8 -5
- package/dist/{chunk-2TSFRYBQ.js.map → chunk-A3E3KOP5.js.map} +2 -2
- package/dist/{chunk-XRYS53BQ.js → chunk-B4DLSHE7.js} +3 -3
- package/dist/{chunk-HL57BCKA.js → chunk-BGT7XDPE.js} +3 -3
- package/dist/{chunk-5HEO7RAF.js → chunk-BIRC5MFX.js} +1 -1
- package/dist/{chunk-3PDQTTHC.js → chunk-F6A7OSLF.js} +3 -3
- package/dist/{chunk-QWWHPWOT.js → chunk-FDU3LJPV.js} +3 -3
- package/dist/{chunk-2QGZFE6O.js → chunk-FGYA5FY5.js} +2 -2
- package/dist/{chunk-2XIK7WIG.js → chunk-FS2I7CEG.js} +4 -4
- package/dist/{chunk-GC32L3BW.js → chunk-FSHVF7L6.js} +1 -1
- package/dist/{chunk-MES7PKDS.js → chunk-FZDJSTSK.js} +3 -3
- package/dist/{chunk-3CEAIULU.js → chunk-G57Q2LMI.js} +4 -4
- package/dist/{chunk-WFZABDD5.js → chunk-HFEWWAXY.js} +1 -1
- package/dist/{chunk-FROHRXK3.js → chunk-HPEY66LP.js} +3 -3
- package/dist/{chunk-UGK22Z7U.js → chunk-HPLKXHZG.js} +4 -4
- package/dist/{chunk-AY6XGM2V.js → chunk-ILSNA4QO.js} +1 -1
- package/dist/{chunk-YQZ36RXO.js → chunk-K4GZU7WR.js} +3 -3
- package/dist/{chunk-ODMS5WD2.js → chunk-LFTLSBFK.js} +2 -2
- package/dist/{chunk-4WBXCBNQ.js → chunk-LO7D5L6Q.js} +2 -2
- package/dist/{chunk-P576YHXH.js → chunk-PZ3WTDXV.js} +2 -2
- package/dist/{chunk-64D4RTUL.js → chunk-QYZADXNT.js} +2 -2
- package/dist/{chunk-WGO4I32J.js → chunk-RHUSN5MT.js} +5 -14
- package/dist/chunk-RHUSN5MT.js.map +7 -0
- package/dist/{chunk-2UVNJF72.js → chunk-SD2KLYSK.js} +162 -57
- package/dist/{chunk-2UVNJF72.js.map → chunk-SD2KLYSK.js.map} +3 -3
- package/dist/{chunk-XRJ6MMNI.js → chunk-SRWWGIOO.js} +2 -2
- package/dist/{chunk-R473IZUI.js → chunk-T2V55G3O.js} +2 -1
- package/dist/chunk-T2V55G3O.js.map +7 -0
- package/dist/chunk-TFHFYID3.js +18 -0
- package/dist/chunk-TFHFYID3.js.map +7 -0
- package/dist/{chunk-UV4CROSJ.js → chunk-VHDLVHEI.js} +1 -1
- package/dist/{chunk-N22YCAOH.js → chunk-ZJJR2GKA.js} +1 -1
- package/dist/{cli-EMF2LNWT.js → cli-SPB5RXN4.js} +92 -90
- package/dist/{cli-EMF2LNWT.js.map → cli-SPB5RXN4.js.map} +1 -1
- package/dist/commands-SWWMSOJY.js +57 -0
- package/dist/{config-QWOKTE4Z.js → config-BMWR2IR4.js} +4 -4
- package/dist/{context-CR4OHAW3.js → context-SNWJ6H3N.js} +6 -6
- package/dist/{conversationPersistence-2ZTLQGE5.js → conversationPersistence-L6KNQU6J.js} +3 -3
- package/dist/{conversationTracker-DTMFBXF2.js → conversationTracker-LE56DVAC.js} +4 -4
- package/dist/{customCommands-X2WOVBVA.js → customCommands-4X76E7O3.js} +4 -4
- package/dist/{env-LL3E6GKF.js → env-FP3P46RT.js} +2 -2
- package/dist/{file-A757K2PX.js → file-KV52REUC.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-UC6Z6IP4.js → llm-OTA3UYTD.js} +35 -32
- package/dist/{llm-UC6Z6IP4.js.map → llm-OTA3UYTD.js.map} +1 -1
- package/dist/{llmLazy-EG3IM7LV.js → llmLazy-6C5RDNID.js} +1 -1
- package/dist/{loader-6I2QGDJO.js → loader-OQK52QDI.js} +4 -4
- package/dist/{lsp-UZCTF63W.js → lsp-EIMYRWRU.js} +6 -6
- package/dist/{lspAnchor-FPVASO3V.js → lspAnchor-5TJ5JKEJ.js} +20 -6
- package/dist/lspAnchor-5TJ5JKEJ.js.map +7 -0
- package/dist/{mcp-WQJDBKMI.js → mcp-ESHTAOQ2.js} +7 -7
- package/dist/{mentionProcessor-ENFGCIDA.js → mentionProcessor-SVY2HFAN.js} +5 -5
- package/dist/{messages-OY5FPDQM.js → messages-WTIERLAV.js} +2 -1
- package/dist/{model-TNO4KLC5.js → model-XIQ6J7WO.js} +5 -5
- package/dist/{openai-CMZMQBHT.js → openai-MHDKXTKR.js} +5 -5
- package/dist/{outputStyles-JGXWSFHW.js → outputStyles-AOELRVFL.js} +4 -4
- package/dist/{pluginRuntime-G3GOMV5D.js → pluginRuntime-3CCOPRUZ.js} +6 -6
- package/dist/{pluginValidation-H6YPRL33.js → pluginValidation-L3NUKGCQ.js} +6 -6
- package/dist/prompts-LCARBCSA.js +59 -0
- package/dist/{pybAgentSessionLoad-CKBQWEHL.js → pybAgentSessionLoad-DS67RJAJ.js} +4 -4
- package/dist/{pybAgentSessionResume-5JHOPPQ4.js → pybAgentSessionResume-UGQCQVNW.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-KWVXQUVD.js → pybAgentStreamJsonSession-YFYCFTMO.js} +2 -1
- package/dist/{pybAgentStreamJsonSession-KWVXQUVD.js.map → pybAgentStreamJsonSession-YFYCFTMO.js.map} +1 -1
- package/dist/{pybHooks-GGKEH2FR.js → pybHooks-XUN2UYB2.js} +4 -4
- package/dist/query-63DINS6E.js +57 -0
- package/dist/{registry-GQQQTCFQ.js → registry-XAPOPN44.js} +5 -5
- package/dist/{ripgrep-AVZW7VVL.js → ripgrep-DQDBRTBS.js} +3 -3
- package/dist/{skillMarketplace-D2A5XXKV.js → skillMarketplace-SUMGVSYS.js} +3 -3
- package/dist/{state-RTSSAAIG.js → state-QUWQKTQZ.js} +2 -2
- package/dist/{theme-V4OGMWPI.js → theme-GZSN2BNR.js} +5 -5
- package/dist/{toolPermissionSettings-6VJOURZH.js → toolPermissionSettings-G5JQX7I2.js} +6 -6
- package/dist/tools-PPRXMRLD.js +57 -0
- package/dist/{userInput-EMH7S76R.js → userInput-PKPNFQMN.js} +34 -32
- package/dist/{userInput-EMH7S76R.js.map → userInput-PKPNFQMN.js.map} +1 -1
- package/package.json +2 -1
- package/dist/REPL-DB574DFH.js +0 -51
- package/dist/chunk-R473IZUI.js.map +0 -7
- package/dist/chunk-WGO4I32J.js.map +0 -7
- package/dist/commands-H755ZYPB.js +0 -55
- package/dist/lspAnchor-FPVASO3V.js.map +0 -7
- package/dist/prompts-DOBVYFHP.js +0 -57
- package/dist/query-B5JGYOT4.js +0 -55
- package/dist/tools-P4FXYKF4.js +0 -55
- /package/dist/{REPL-DB574DFH.js.map → REPL-FPYYTXYI.js.map} +0 -0
- /package/dist/{agentsValidate-BIL7UNX5.js.map → agentsValidate-LYQDYON6.js.map} +0 -0
- /package/dist/{autoUpdater-LAJDPNSA.js.map → autoUpdater-WQ7NSMS6.js.map} +0 -0
- /package/dist/{chunk-IMTSYQJ5.js.map → chunk-2CFC3PYO.js.map} +0 -0
- /package/dist/{chunk-BY5NKQMC.js.map → chunk-3V35SGQ7.js.map} +0 -0
- /package/dist/{chunk-6CJP4KDE.js.map → chunk-6TJCSOV3.js.map} +0 -0
- /package/dist/{chunk-O5YZTB5G.js.map → chunk-7BDU4UKY.js.map} +0 -0
- /package/dist/{chunk-UL4MJNFE.js.map → chunk-7XHORF4S.js.map} +0 -0
- /package/dist/{chunk-XRYS53BQ.js.map → chunk-B4DLSHE7.js.map} +0 -0
- /package/dist/{chunk-HL57BCKA.js.map → chunk-BGT7XDPE.js.map} +0 -0
- /package/dist/{chunk-5HEO7RAF.js.map → chunk-BIRC5MFX.js.map} +0 -0
- /package/dist/{chunk-3PDQTTHC.js.map → chunk-F6A7OSLF.js.map} +0 -0
- /package/dist/{chunk-QWWHPWOT.js.map → chunk-FDU3LJPV.js.map} +0 -0
- /package/dist/{chunk-2QGZFE6O.js.map → chunk-FGYA5FY5.js.map} +0 -0
- /package/dist/{chunk-2XIK7WIG.js.map → chunk-FS2I7CEG.js.map} +0 -0
- /package/dist/{chunk-GC32L3BW.js.map → chunk-FSHVF7L6.js.map} +0 -0
- /package/dist/{chunk-MES7PKDS.js.map → chunk-FZDJSTSK.js.map} +0 -0
- /package/dist/{chunk-3CEAIULU.js.map → chunk-G57Q2LMI.js.map} +0 -0
- /package/dist/{chunk-WFZABDD5.js.map → chunk-HFEWWAXY.js.map} +0 -0
- /package/dist/{chunk-FROHRXK3.js.map → chunk-HPEY66LP.js.map} +0 -0
- /package/dist/{chunk-UGK22Z7U.js.map → chunk-HPLKXHZG.js.map} +0 -0
- /package/dist/{chunk-AY6XGM2V.js.map → chunk-ILSNA4QO.js.map} +0 -0
- /package/dist/{chunk-YQZ36RXO.js.map → chunk-K4GZU7WR.js.map} +0 -0
- /package/dist/{chunk-ODMS5WD2.js.map → chunk-LFTLSBFK.js.map} +0 -0
- /package/dist/{chunk-4WBXCBNQ.js.map → chunk-LO7D5L6Q.js.map} +0 -0
- /package/dist/{chunk-P576YHXH.js.map → chunk-PZ3WTDXV.js.map} +0 -0
- /package/dist/{chunk-64D4RTUL.js.map → chunk-QYZADXNT.js.map} +0 -0
- /package/dist/{chunk-XRJ6MMNI.js.map → chunk-SRWWGIOO.js.map} +0 -0
- /package/dist/{chunk-UV4CROSJ.js.map → chunk-VHDLVHEI.js.map} +0 -0
- /package/dist/{chunk-N22YCAOH.js.map → chunk-ZJJR2GKA.js.map} +0 -0
- /package/dist/{commands-H755ZYPB.js.map → commands-SWWMSOJY.js.map} +0 -0
- /package/dist/{config-QWOKTE4Z.js.map → config-BMWR2IR4.js.map} +0 -0
- /package/dist/{context-CR4OHAW3.js.map → context-SNWJ6H3N.js.map} +0 -0
- /package/dist/{conversationPersistence-2ZTLQGE5.js.map → conversationPersistence-L6KNQU6J.js.map} +0 -0
- /package/dist/{conversationTracker-DTMFBXF2.js.map → conversationTracker-LE56DVAC.js.map} +0 -0
- /package/dist/{customCommands-X2WOVBVA.js.map → customCommands-4X76E7O3.js.map} +0 -0
- /package/dist/{env-LL3E6GKF.js.map → env-FP3P46RT.js.map} +0 -0
- /package/dist/{file-A757K2PX.js.map → file-KV52REUC.js.map} +0 -0
- /package/dist/{llmLazy-EG3IM7LV.js.map → llmLazy-6C5RDNID.js.map} +0 -0
- /package/dist/{loader-6I2QGDJO.js.map → loader-OQK52QDI.js.map} +0 -0
- /package/dist/{lsp-UZCTF63W.js.map → lsp-EIMYRWRU.js.map} +0 -0
- /package/dist/{mcp-WQJDBKMI.js.map → mcp-ESHTAOQ2.js.map} +0 -0
- /package/dist/{mentionProcessor-ENFGCIDA.js.map → mentionProcessor-SVY2HFAN.js.map} +0 -0
- /package/dist/{messages-OY5FPDQM.js.map → messages-WTIERLAV.js.map} +0 -0
- /package/dist/{model-TNO4KLC5.js.map → model-XIQ6J7WO.js.map} +0 -0
- /package/dist/{openai-CMZMQBHT.js.map → openai-MHDKXTKR.js.map} +0 -0
- /package/dist/{outputStyles-JGXWSFHW.js.map → outputStyles-AOELRVFL.js.map} +0 -0
- /package/dist/{pluginRuntime-G3GOMV5D.js.map → pluginRuntime-3CCOPRUZ.js.map} +0 -0
- /package/dist/{pluginValidation-H6YPRL33.js.map → pluginValidation-L3NUKGCQ.js.map} +0 -0
- /package/dist/{prompts-DOBVYFHP.js.map → prompts-LCARBCSA.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-CKBQWEHL.js.map → pybAgentSessionLoad-DS67RJAJ.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-5JHOPPQ4.js.map → pybAgentSessionResume-UGQCQVNW.js.map} +0 -0
- /package/dist/{pybHooks-GGKEH2FR.js.map → pybHooks-XUN2UYB2.js.map} +0 -0
- /package/dist/{query-B5JGYOT4.js.map → query-63DINS6E.js.map} +0 -0
- /package/dist/{registry-GQQQTCFQ.js.map → registry-XAPOPN44.js.map} +0 -0
- /package/dist/{ripgrep-AVZW7VVL.js.map → ripgrep-DQDBRTBS.js.map} +0 -0
- /package/dist/{skillMarketplace-D2A5XXKV.js.map → skillMarketplace-SUMGVSYS.js.map} +0 -0
- /package/dist/{state-RTSSAAIG.js.map → state-QUWQKTQZ.js.map} +0 -0
- /package/dist/{theme-V4OGMWPI.js.map → theme-GZSN2BNR.js.map} +0 -0
- /package/dist/{toolPermissionSettings-6VJOURZH.js.map → toolPermissionSettings-G5JQX7I2.js.map} +0 -0
- /package/dist/{tools-P4FXYKF4.js.map → tools-PPRXMRLD.js.map} +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createRequire as __pybCreateRequire } from "node:module";
|
|
2
|
+
const require = __pybCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
getAllTools,
|
|
5
|
+
getReadOnlyTools,
|
|
6
|
+
getTools
|
|
7
|
+
} from "./chunk-SD2KLYSK.js";
|
|
8
|
+
import "./chunk-FSHVF7L6.js";
|
|
9
|
+
import "./chunk-B4DLSHE7.js";
|
|
10
|
+
import "./chunk-2CFC3PYO.js";
|
|
11
|
+
import "./chunk-5P7HBXTD.js";
|
|
12
|
+
import "./chunk-HPEY66LP.js";
|
|
13
|
+
import "./chunk-7XHORF4S.js";
|
|
14
|
+
import "./chunk-VHDLVHEI.js";
|
|
15
|
+
import "./chunk-F4AXICO7.js";
|
|
16
|
+
import "./chunk-6TJCSOV3.js";
|
|
17
|
+
import "./chunk-FGYA5FY5.js";
|
|
18
|
+
import "./chunk-PZ3WTDXV.js";
|
|
19
|
+
import "./chunk-XKYHFZEC.js";
|
|
20
|
+
import "./chunk-HPLKXHZG.js";
|
|
21
|
+
import "./chunk-FS2I7CEG.js";
|
|
22
|
+
import "./chunk-ILSNA4QO.js";
|
|
23
|
+
import "./chunk-K4GZU7WR.js";
|
|
24
|
+
import "./chunk-UNNVICVU.js";
|
|
25
|
+
import "./chunk-SRWWGIOO.js";
|
|
26
|
+
import "./chunk-QYZADXNT.js";
|
|
27
|
+
import "./chunk-A3BVXXA3.js";
|
|
28
|
+
import "./chunk-RHUSN5MT.js";
|
|
29
|
+
import "./chunk-3DFBSQIT.js";
|
|
30
|
+
import "./chunk-B6IMQJZM.js";
|
|
31
|
+
import "./chunk-OUXHGDLH.js";
|
|
32
|
+
import "./chunk-LO7D5L6Q.js";
|
|
33
|
+
import "./chunk-QWIBSCDN.js";
|
|
34
|
+
import "./chunk-2RXKUCFS.js";
|
|
35
|
+
import "./chunk-TFHFYID3.js";
|
|
36
|
+
import "./chunk-A3E3KOP5.js";
|
|
37
|
+
import "./chunk-BGT7XDPE.js";
|
|
38
|
+
import "./chunk-BIRC5MFX.js";
|
|
39
|
+
import "./chunk-UZ34JEUK.js";
|
|
40
|
+
import "./chunk-LFTLSBFK.js";
|
|
41
|
+
import "./chunk-BJSWTHRM.js";
|
|
42
|
+
import "./chunk-FZDJSTSK.js";
|
|
43
|
+
import "./chunk-G57Q2LMI.js";
|
|
44
|
+
import "./chunk-KFEHHKZ2.js";
|
|
45
|
+
import "./chunk-3V35SGQ7.js";
|
|
46
|
+
import "./chunk-7BDU4UKY.js";
|
|
47
|
+
import "./chunk-F6A7OSLF.js";
|
|
48
|
+
import "./chunk-RQVLBMP7.js";
|
|
49
|
+
import "./chunk-ZJJR2GKA.js";
|
|
50
|
+
import "./chunk-HFEWWAXY.js";
|
|
51
|
+
import "./chunk-T2V55G3O.js";
|
|
52
|
+
import "./chunk-I3J4JYES.js";
|
|
53
|
+
export {
|
|
54
|
+
getAllTools,
|
|
55
|
+
getReadOnlyTools,
|
|
56
|
+
getTools
|
|
57
|
+
};
|
|
@@ -9,26 +9,26 @@ import {
|
|
|
9
9
|
UserBashInputMessage,
|
|
10
10
|
getCommand,
|
|
11
11
|
hasCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-SD2KLYSK.js";
|
|
13
|
+
import "./chunk-FSHVF7L6.js";
|
|
14
|
+
import "./chunk-B4DLSHE7.js";
|
|
15
|
+
import "./chunk-2CFC3PYO.js";
|
|
16
16
|
import "./chunk-5P7HBXTD.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-HPEY66LP.js";
|
|
18
|
+
import "./chunk-7XHORF4S.js";
|
|
19
|
+
import "./chunk-VHDLVHEI.js";
|
|
20
20
|
import "./chunk-F4AXICO7.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-6TJCSOV3.js";
|
|
22
|
+
import "./chunk-FGYA5FY5.js";
|
|
23
|
+
import "./chunk-PZ3WTDXV.js";
|
|
24
24
|
import "./chunk-XKYHFZEC.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-HPLKXHZG.js";
|
|
26
|
+
import "./chunk-FS2I7CEG.js";
|
|
27
|
+
import "./chunk-ILSNA4QO.js";
|
|
28
|
+
import "./chunk-K4GZU7WR.js";
|
|
29
29
|
import "./chunk-UNNVICVU.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-SRWWGIOO.js";
|
|
31
|
+
import "./chunk-QYZADXNT.js";
|
|
32
32
|
import "./chunk-A3BVXXA3.js";
|
|
33
33
|
import {
|
|
34
34
|
NO_RESPONSE_REQUESTED,
|
|
@@ -37,34 +37,36 @@ import {
|
|
|
37
37
|
createUserMessageFromText,
|
|
38
38
|
createUserTurnMessageFromBlocks,
|
|
39
39
|
createUserTurnMessageFromText
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-RHUSN5MT.js";
|
|
41
41
|
import "./chunk-3DFBSQIT.js";
|
|
42
42
|
import "./chunk-B6IMQJZM.js";
|
|
43
43
|
import "./chunk-OUXHGDLH.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-LO7D5L6Q.js";
|
|
45
45
|
import "./chunk-QWIBSCDN.js";
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-2RXKUCFS.js";
|
|
47
|
+
import "./chunk-TFHFYID3.js";
|
|
48
|
+
import "./chunk-A3E3KOP5.js";
|
|
49
|
+
import "./chunk-BGT7XDPE.js";
|
|
50
|
+
import "./chunk-BIRC5MFX.js";
|
|
49
51
|
import "./chunk-UZ34JEUK.js";
|
|
50
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-LFTLSBFK.js";
|
|
51
53
|
import "./chunk-BJSWTHRM.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-FZDJSTSK.js";
|
|
55
|
+
import "./chunk-G57Q2LMI.js";
|
|
54
56
|
import "./chunk-KFEHHKZ2.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-3V35SGQ7.js";
|
|
58
|
+
import "./chunk-7BDU4UKY.js";
|
|
59
|
+
import "./chunk-F6A7OSLF.js";
|
|
58
60
|
import {
|
|
59
61
|
MalformedCommandError
|
|
60
62
|
} from "./chunk-RQVLBMP7.js";
|
|
61
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-ZJJR2GKA.js";
|
|
62
64
|
import {
|
|
63
65
|
getCwd,
|
|
64
66
|
logError,
|
|
65
67
|
setCwd
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
+
} from "./chunk-HFEWWAXY.js";
|
|
69
|
+
import "./chunk-T2V55G3O.js";
|
|
68
70
|
import "./chunk-I3J4JYES.js";
|
|
69
71
|
|
|
70
72
|
// src/utils/messages/userInput.tsx
|
|
@@ -195,12 +197,12 @@ async function processUserInput(input, mode, setToolJSX, context, pastedImages)
|
|
|
195
197
|
${input}` : input;
|
|
196
198
|
if (processedInput.includes("!`") || processedInput.includes("@")) {
|
|
197
199
|
try {
|
|
198
|
-
const { executeBashCommands } = await import("./customCommands-
|
|
200
|
+
const { executeBashCommands } = await import("./customCommands-4X76E7O3.js");
|
|
199
201
|
if (processedInput.includes("!`")) {
|
|
200
202
|
processedInput = await executeBashCommands(processedInput);
|
|
201
203
|
}
|
|
202
204
|
if (processedInput.includes("@")) {
|
|
203
|
-
const { processMentions } = await import("./mentionProcessor-
|
|
205
|
+
const { processMentions } = await import("./mentionProcessor-SVY2HFAN.js");
|
|
204
206
|
await processMentions(processedInput);
|
|
205
207
|
}
|
|
206
208
|
} catch (error) {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utils/messages/userInput.tsx"],
|
|
4
4
|
"sourcesContent": ["import { Box } from 'ink'\nimport { getCommand, hasCommand } from '@commands'\nimport { MalformedCommandError } from '@utils/text/errors'\nimport { logError } from '@utils/log'\nimport { resolve } from 'path'\nimport { lastX } from '@utils/text/generators'\nimport type { SetToolJSXFn, ToolUseContext } from '@tool'\nimport type { ContentBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'\nimport { setCwd } from '@utils/state'\nimport { getCwd } from '@utils/state'\nimport chalk from 'chalk'\nimport * as React from 'react'\nimport { UserBashInputMessage } from '@components/messages/UserBashInputMessage'\nimport { Spinner } from '@components/Spinner'\nimport { BashTool } from '@tools/BashTool/BashTool'\nimport type { Message, UserMessage } from '@query'\nimport {\n NO_RESPONSE_REQUESTED,\n createAssistantMessage,\n createUserMessageFromText,\n createUserMessageFromBlocks,\n createUserTurnMessageFromText,\n createUserTurnMessageFromBlocks,\n} from './core'\n\nconst LOCAL_COMMAND_STDOUT_OPEN_TAG = ['<local-command-', 'stdout>'].join('')\nconst LOCAL_COMMAND_STDOUT_CLOSE_TAG = ['</local-command-', 'stdout>'].join('')\nconst LOCAL_COMMAND_STDERR_OPEN_TAG = ['<local-command-', 'stderr>'].join('')\nconst LOCAL_COMMAND_STDERR_CLOSE_TAG = ['</local-command-', 'stderr>'].join('')\n\n\nexport async function processUserInput(\n input: string,\n mode: 'bash' | 'prompt' | 'pyb',\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n options?: {\n isPybRequest?: boolean\n pybContext?: string\n }\n },\n pastedImages: Array<{\n placeholder: string\n data: string\n mediaType: string\n }> | null,\n): Promise<Message[]> {\n if (mode === 'bash') {\n const userMessage = createUserTurnMessageFromBlocks([\n { type: 'text', text: `<bash-input>${input}</bash-input>` },\n ])\n\n if (input.startsWith('cd ')) {\n const oldCwd = getCwd()\n const newCwd = resolve(getCwd(), input.slice(3).trim())\n try {\n await setCwd(newCwd)\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stdout>Changed directory to ${chalk.bold(`${newCwd}/`)}</bash-stdout>`,\n ),\n ]\n } catch (e) {\n logError(e)\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stderr>cwd error: ${e instanceof Error ? e.message : String(e)}</bash-stderr>`,\n ),\n ]\n }\n }\n\n setToolJSX({\n jsx: (\n <Box flexDirection=\"column\" marginTop={1}>\n <UserBashInputMessage\n addMargin={false}\n param={{ text: `<bash-input>${input}</bash-input>`, type: 'text' }}\n />\n <Spinner />\n </Box>\n ),\n shouldHidePromptInput: false,\n })\n try {\n const validationResult = await BashTool.validateInput(\n { command: input },\n { commandSource: 'user_bash_mode' } as any,\n )\n if (!validationResult.result) {\n return [userMessage, createAssistantMessage(validationResult.message)]\n }\n const { data } = await lastX(\n BashTool.call({ command: input }, {\n ...(context as any),\n commandSource: 'user_bash_mode',\n } as any),\n )\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stdout>${data.stdout}</bash-stdout><bash-stderr>${data.stderr}</bash-stderr>`,\n ),\n ]\n } catch (e) {\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stderr>Command failed: ${e instanceof Error ? e.message : String(e)}</bash-stderr>`,\n ),\n ]\n } finally {\n setToolJSX(null)\n }\n }\n else if (mode === 'pyb') {\n const userMessage = createUserTurnMessageFromBlocks([\n {\n type: 'text',\n text: `<pyb-input>${input}</pyb-input>`,\n },\n ])\n userMessage.options = {\n ...userMessage.options,\n isPybRequest: true,\n }\n\n return [userMessage]\n }\n\n if (context.options?.disableSlashCommands !== true && input.startsWith('/')) {\n const words = input.slice(1).split(' ')\n let commandName = words[0]\n if (words.length > 1 && words[1] === '(MCP)') {\n commandName = commandName + ' (MCP)'\n }\n if (!commandName) {\n return [\n createAssistantMessage('Commands are in the form `/command [args]`'),\n ]\n }\n\n if (!hasCommand(commandName, context.options.commands)) {\n\n return [createUserTurnMessageFromText(input)]\n }\n\n const args = input.slice(commandName.length + 2)\n const newMessages = await getMessagesForSlashCommand(\n commandName,\n args,\n setToolJSX,\n context,\n )\n\n if (newMessages.length === 0) {\n return []\n }\n\n if (\n newMessages.length === 2 &&\n newMessages[0]!.type === 'user' &&\n newMessages[1]!.type === 'assistant' &&\n typeof newMessages[1]!.message.content === 'string' &&\n newMessages[1]!.message.content.startsWith('Unknown command:')\n ) {\n return newMessages\n }\n\n if (newMessages.length === 2) {\n return newMessages\n }\n\n\n return newMessages\n }\n\n\n const isPybRequest = context.options?.isPybRequest === true\n const pybContextInfo = context.options?.pybContext\n\n let userMessage: UserMessage\n\n let processedInput =\n isPybRequest && pybContextInfo\n ? `${pybContextInfo}\\n\\n${input}`\n : input\n\n if (processedInput.includes('!`') || processedInput.includes('@')) {\n try {\n const { executeBashCommands } = await import('@services/customCommands')\n\n if (processedInput.includes('!`')) {\n processedInput = await executeBashCommands(processedInput)\n }\n\n if (processedInput.includes('@')) {\n const { processMentions } = await import('@services/mentionProcessor')\n await processMentions(processedInput)\n }\n } catch (error) {\n logError(error)\n }\n }\n\n if (pastedImages && pastedImages.length > 0) {\n const occurrences = pastedImages\n .map(img => ({ img, index: processedInput.indexOf(img.placeholder) }))\n .filter(o => o.index >= 0)\n .sort((a, b) => a.index - b.index)\n\n const blocks: ContentBlockParam[] = []\n let cursor = 0\n\n for (const { img, index } of occurrences) {\n const before = processedInput.slice(cursor, index)\n if (before) {\n blocks.push({ type: 'text', text: before })\n }\n blocks.push({\n type: 'image',\n source: {\n type: 'base64',\n media_type: img.mediaType,\n data: img.data,\n },\n } as any)\n cursor = index + img.placeholder.length\n }\n\n const after = processedInput.slice(cursor)\n if (after) {\n blocks.push({ type: 'text', text: after })\n }\n\n if (!blocks.some(b => b.type === 'text')) {\n blocks.push({ type: 'text', text: '' })\n }\n\n userMessage = createUserTurnMessageFromBlocks(blocks)\n } else {\n userMessage = createUserTurnMessageFromText(processedInput)\n }\n\n if (isPybRequest) {\n userMessage.options = {\n ...userMessage.options,\n isPybRequest: true,\n }\n }\n\n return [userMessage]\n}\n\nasync function getMessagesForSlashCommand(\n commandName: string,\n args: string,\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n },\n): Promise<Message[]> {\n try {\n const command = getCommand(commandName, context.options.commands)\n switch (command.type) {\n case 'local-jsx': {\n return new Promise(resolve => {\n command\n .call(\n r => {\n setToolJSX(null)\n resolve([\n createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`,\n },\n ]),\n r\n ? createAssistantMessage(r)\n : createAssistantMessage(NO_RESPONSE_REQUESTED),\n ])\n },\n context,\n args,\n )\n .then(jsx => {\n if (!jsx) return\n setToolJSX({ jsx, shouldHidePromptInput: true })\n })\n })\n }\n case 'local': {\n const userMessage = createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`,\n },\n ])\n\n try {\n const result = await command.call(args, {\n ...context,\n options: {\n commands: context.options.commands || [],\n tools: context.options.tools || [],\n slowAndCapableModel:\n context.options.slowAndCapableModel || 'main',\n },\n })\n\n return [\n userMessage,\n createAssistantMessage(\n `${LOCAL_COMMAND_STDOUT_OPEN_TAG}${result}${LOCAL_COMMAND_STDOUT_CLOSE_TAG}`,\n ),\n ]\n } catch (e) {\n logError(e)\n return [\n userMessage,\n createAssistantMessage(\n `${LOCAL_COMMAND_STDERR_OPEN_TAG}${String(e)}${LOCAL_COMMAND_STDERR_CLOSE_TAG}`,\n ),\n ]\n }\n }\n case 'prompt': {\n const commandName = command.userFacingName()\n const progressMessage = (command as any).progressMessage || 'running'\n const metaMessage = createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${commandName}</command-name>\n <command-message>${commandName} is ${progressMessage}\u2026</command-message>\n <command-args>${args}</command-args>`,\n },\n ])\n\n const prompt = await command.getPromptForCommand(args)\n const expandedMessages = prompt.map(msg => {\n const userMessage = createUserMessageFromText(\n typeof msg.content === 'string'\n ? msg.content\n : msg.content\n .map(block => (block.type === 'text' ? block.text : ''))\n .join('\\n'),\n )\n\n userMessage.options = {\n ...userMessage.options,\n isCustomCommand: true,\n commandName: command.userFacingName(),\n commandArgs: args,\n }\n\n return userMessage\n })\n\n return [metaMessage, ...expandedMessages]\n }\n }\n } catch (e) {\n if (e instanceof MalformedCommandError) {\n return [createAssistantMessage(e.message)]\n }\n throw e\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["userMessage", "resolve", "commandName"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pybao-cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.45",
|
|
4
4
|
"bin": {
|
|
5
5
|
"pyb": "cli.js",
|
|
6
6
|
"pyb-acp": "cli-acp.js"
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"gate:session-behavior-invariant": "node scripts/session-behavior-invariant-gate.mjs",
|
|
96
96
|
"gate:session-project": "node scripts/session-project-gate.mjs",
|
|
97
97
|
"gate:protected-tool-names": "node scripts/protected-tool-names-gate.mjs",
|
|
98
|
+
"gate:lsp-semantic-unknown-ratio": "node scripts/lsp-semantic-unknown-ratio-gate.mjs",
|
|
98
99
|
"plan:typed-compat-retirement": "node scripts/typed-compat-retirement-plan.mjs",
|
|
99
100
|
"enforce:typed-compat-retirement": "node scripts/typed-compat-retirement-enforce.mjs",
|
|
100
101
|
"gate:typed-sql-release": "node scripts/typed-sql-release-gate.mjs",
|
package/dist/REPL-DB574DFH.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { createRequire as __pybCreateRequire } from "node:module";
|
|
2
|
-
const require = __pybCreateRequire(import.meta.url);
|
|
3
|
-
import {
|
|
4
|
-
REPL
|
|
5
|
-
} from "./chunk-2UVNJF72.js";
|
|
6
|
-
import "./chunk-GC32L3BW.js";
|
|
7
|
-
import "./chunk-XRYS53BQ.js";
|
|
8
|
-
import "./chunk-IMTSYQJ5.js";
|
|
9
|
-
import "./chunk-5P7HBXTD.js";
|
|
10
|
-
import "./chunk-FROHRXK3.js";
|
|
11
|
-
import "./chunk-UL4MJNFE.js";
|
|
12
|
-
import "./chunk-UV4CROSJ.js";
|
|
13
|
-
import "./chunk-F4AXICO7.js";
|
|
14
|
-
import "./chunk-6CJP4KDE.js";
|
|
15
|
-
import "./chunk-2QGZFE6O.js";
|
|
16
|
-
import "./chunk-P576YHXH.js";
|
|
17
|
-
import "./chunk-XKYHFZEC.js";
|
|
18
|
-
import "./chunk-UGK22Z7U.js";
|
|
19
|
-
import "./chunk-2XIK7WIG.js";
|
|
20
|
-
import "./chunk-AY6XGM2V.js";
|
|
21
|
-
import "./chunk-YQZ36RXO.js";
|
|
22
|
-
import "./chunk-UNNVICVU.js";
|
|
23
|
-
import "./chunk-XRJ6MMNI.js";
|
|
24
|
-
import "./chunk-64D4RTUL.js";
|
|
25
|
-
import "./chunk-A3BVXXA3.js";
|
|
26
|
-
import "./chunk-WGO4I32J.js";
|
|
27
|
-
import "./chunk-3DFBSQIT.js";
|
|
28
|
-
import "./chunk-B6IMQJZM.js";
|
|
29
|
-
import "./chunk-OUXHGDLH.js";
|
|
30
|
-
import "./chunk-4WBXCBNQ.js";
|
|
31
|
-
import "./chunk-QWIBSCDN.js";
|
|
32
|
-
import "./chunk-2TSFRYBQ.js";
|
|
33
|
-
import "./chunk-HL57BCKA.js";
|
|
34
|
-
import "./chunk-5HEO7RAF.js";
|
|
35
|
-
import "./chunk-UZ34JEUK.js";
|
|
36
|
-
import "./chunk-ODMS5WD2.js";
|
|
37
|
-
import "./chunk-BJSWTHRM.js";
|
|
38
|
-
import "./chunk-MES7PKDS.js";
|
|
39
|
-
import "./chunk-3CEAIULU.js";
|
|
40
|
-
import "./chunk-KFEHHKZ2.js";
|
|
41
|
-
import "./chunk-BY5NKQMC.js";
|
|
42
|
-
import "./chunk-O5YZTB5G.js";
|
|
43
|
-
import "./chunk-3PDQTTHC.js";
|
|
44
|
-
import "./chunk-RQVLBMP7.js";
|
|
45
|
-
import "./chunk-N22YCAOH.js";
|
|
46
|
-
import "./chunk-WFZABDD5.js";
|
|
47
|
-
import "./chunk-R473IZUI.js";
|
|
48
|
-
import "./chunk-I3J4JYES.js";
|
|
49
|
-
export {
|
|
50
|
-
REPL
|
|
51
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../package.json", "../src/constants/macros.ts"],
|
|
4
|
-
"sourcesContent": ["{\n \"name\": \"pybao-cli\",\n \"version\": \"1.5.43\",\n \"bin\": {\n \"pyb\": \"cli.js\",\n \"pyb-acp\": \"cli-acp.js\"\n },\n \"engines\": {\n \"node\": \">=20.18.1\"\n },\n \"main\": \"cli.js\",\n \"author\": \"PYB-XC\",\n \"license\": \"MIT\",\n \"description\": \"PYB-CLI - Minimal AI Agent with multi-model support and CLI interface\",\n \"keywords\": [\n \"ai\",\n \"agent\",\n \"minimal\",\n \"claude\"\n ],\n \"homepage\": \"https://github.com/pyb-xc/pyb-ts\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/pyb-xc/pyb-ts.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/pyb-xc/pyb-ts/issues\"\n },\n \"files\": [\n \"cli.js\",\n \"cli-acp.js\",\n \"yoga.wasm\",\n \"dist/**/*\",\n \"scripts/binary-utils.cjs\",\n \"scripts/cli-wrapper.cjs\",\n \"scripts/cli-acp-wrapper.cjs\",\n \"scripts/postinstall.js\",\n \"scripts/typed-sql-release-gate.mjs\",\n \"scripts/typed-sql-schema-guard.mjs\",\n \"scripts/typed-sql-install-smoke.mjs\",\n \"scripts/typed-sql-no-fallback-gate.mjs\",\n \"scripts/typed-part-baseline-benchmark.mjs\",\n \"scripts/typed-part-performance-gate.mjs\",\n \"scripts/session-contract-gate.mjs\",\n \"scripts/session-behavior-invariant-gate.mjs\",\n \"scripts/session-project-gate.mjs\",\n \"scripts/protected-tool-names-gate.mjs\",\n \".npmrc\",\n \"resources/**/*\"\n ],\n \"scripts\": {\n \"dev\": \"bun run ./src/entrypoints/cli.tsx --verbose\",\n \"dev:server\": \"bun run ./src/entrypoints/cli.tsx serve --port 4096\",\n \"build:npm\": \"bun scripts/build.mjs\",\n \"build\": \"npm run build:npm\",\n \"build:sdk\": \"npm --prefix ./packages/sdk run build\",\n \"generate:sdk\": \"node scripts/sdk-generate.mjs\",\n \"check:sdk-generated\": \"node scripts/sdk-check-generated.mjs\",\n \"check:compat-window\": \"node scripts/sdk-compat-window-gate.mjs\",\n \"generate:legacy-mapping\": \"node scripts/sdk-legacy-mapping-report.mjs\",\n \"check:legacy-usage\": \"node scripts/sdk-legacy-usage-gate.mjs\",\n \"report:legacy-usage-trend\": \"node scripts/sdk-legacy-usage-trend-report.mjs\",\n \"check:legacy-window\": \"node scripts/sdk-legacy-window-gate.mjs\",\n \"check:docs-consistency\": \"node scripts/sdk-docs-consistency-gate.mjs\",\n \"check:major-cutover\": \"node scripts/sdk-major-cutover-gate.mjs\",\n \"check:facade-closeout\": \"node scripts/sdk-facade-closeout-gate.mjs\",\n \"check:sdk-consistency\": \"node scripts/sdk-consistency-gate.mjs\",\n \"check:sdk-contract-consistency\": \"node scripts/sdk-contract-consistency-gate.mjs\",\n \"check:sdk-legacy-semantics\": \"node scripts/sdk-legacy-semantics-gate.mjs\",\n \"build:binary\": \"node scripts/build-binary.mjs\",\n \"build:native-lock\": \"node scripts/build-native-lock.mjs\",\n \"clean\": \"node scripts/clean.mjs\",\n \"prepublishOnly\": \"npm run build:npm && node scripts/prepublish-check.js\",\n \"postinstall\": \"node scripts/postinstall.js || true\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"lint\": \"eslint . --ext .ts,.tsx,.js --max-warnings 0\",\n \"lint:fix\": \"eslint . --ext .ts,.tsx,.js --fix\",\n \"test\": \"bun test\",\n \"test:unit\": \"bun test --preload ./tests/setup/native-lock-test-setup.ts tests/unit\",\n \"test:integration\": \"bun test tests/integration\",\n \"test:e2e\": \"bun test tests/e2e\",\n \"test:server\": \"bun test tests/unit/sdk-batch-a-closure.test.ts tests/unit/sdk-batch-b-queryrunner.test.ts tests/unit/sdk-batch-c-sse.test.ts tests/unit/sdk-batch-d-openapi.test.ts tests/unit/sdk-batch-e-capability.test.ts tests/unit/sdk-batch-f-release.test.ts tests/unit/sdk-batch-g-generation.test.ts tests/unit/sdk-batch-h-facade.test.ts tests/unit/sdk-batch-i-lifecycle.test.ts tests/unit/sdk-batch-j-sse-first-class.test.ts tests/unit/sdk-batch-k-release-gate.test.ts tests/unit/sdk-batch-l-mapping-baseline.test.ts tests/unit/sdk-batch-m-docs-deprecate.test.ts tests/unit/sdk-batch-n-window-block.test.ts tests/unit/sdk-batch-o-major-cutover.test.ts tests/unit/sdk-batch-p-governance-closeout.test.ts tests/unit/sdk-batch-q1-runtime-guard.test.ts tests/unit/sdk-batch-q2-contract-capability.test.ts tests/unit/sdk-batch-q3-legacy-semantics.test.ts\",\n \"gate:runtime-assets\": \"bun run scripts/runtime-assets-gate-check.mjs\",\n \"preflight:runtime-assets\": \"node scripts/runtime-assets-preflight.mjs\",\n \"verify:runtime-assets\": \"node scripts/runtime-assets-verify.mjs\",\n \"validate:runtime-assets-contract\": \"node scripts/runtime-assets-schema-validate.mjs\",\n \"gate:runtime-assets-threshold\": \"node scripts/runtime-assets-threshold-gate.mjs\",\n \"gate:runtime-assets-trend-store\": \"node scripts/runtime-assets-trend-store.mjs\",\n \"gate:runtime-assets-trend\": \"node scripts/runtime-assets-trend-gate.mjs\",\n \"report:runtime-assets-trend\": \"node scripts/runtime-assets-trend-report.mjs\",\n \"gate:typed-compat-retirement\": \"node scripts/typed-compat-retirement-gate.mjs\",\n \"gate:query-adapter-boundary\": \"node scripts/query-adapter-boundary-gate.mjs\",\n \"gate:session-contract\": \"node scripts/session-contract-gate.mjs\",\n \"gate:session-behavior-invariant\": \"node scripts/session-behavior-invariant-gate.mjs\",\n \"gate:session-project\": \"node scripts/session-project-gate.mjs\",\n \"gate:protected-tool-names\": \"node scripts/protected-tool-names-gate.mjs\",\n \"plan:typed-compat-retirement\": \"node scripts/typed-compat-retirement-plan.mjs\",\n \"enforce:typed-compat-retirement\": \"node scripts/typed-compat-retirement-enforce.mjs\",\n \"gate:typed-sql-release\": \"node scripts/typed-sql-release-gate.mjs\",\n \"gate:typed-sql-schema\": \"node scripts/typed-sql-schema-guard.mjs\",\n \"smoke:typed-sql-install\": \"node scripts/typed-sql-install-smoke.mjs\",\n \"gate:typed-sql-no-fallback\": \"node scripts/typed-sql-no-fallback-gate.mjs\",\n \"benchmark:typed-part-baseline\": \"bun scripts/typed-part-baseline-benchmark.mjs\",\n \"gate:typed-part-performance\": \"node scripts/typed-part-performance-gate.mjs\",\n \"typecheck\": \"tsc --noEmit\",\n \"release:gate\": \"npm run generate:sdk && npm run check:sdk-generated && npm run generate:legacy-mapping && npm run check:legacy-usage && npm run report:legacy-usage-trend && npm run check:legacy-window && npm run check:docs-consistency && npm run check:major-cutover && npm run check:facade-closeout && npm run check:sdk-consistency && npm run check:sdk-contract-consistency && npm run check:sdk-legacy-semantics && npm run check:compat-window && npm run build:sdk && npm run test:server && npm run lint && npm run typecheck\",\n \"prepare\": \"bun run scripts/install-hooks.mjs\",\n \"sync:native-lock\": \"node scripts/sync-native-lock-versions.mjs\",\n \"publish:native-lock\": \"node scripts/publish-native-lock.mjs\",\n \"verify:native-lock\": \"node scripts/verify-native-lock.mjs\",\n \"publish:dev\": \"bun run scripts/publish-dev.js\",\n \"publish:release\": \"bun run scripts/publish-release.js\"\n },\n \"dependencies\": {\n \"@anthropic-ai/bedrock-sdk\": \"^0.12.6\",\n \"@anthropic-ai/sdk\": \"^0.39.0\",\n \"@anthropic-ai/vertex-sdk\": \"^0.7.0\",\n \"@astrojs/language-server\": \"2.16.2\",\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@commander-js/extra-typings\": \"^13.1.0\",\n \"@inkjs/ui\": \"^2.0.0\",\n \"@modelcontextprotocol/sdk\": \"^1.15.1\",\n \"@prisma/language-server\": \"31.3.4\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/react\": \"^19.1.8\",\n \"@vscode/ripgrep\": \"^1.17.0\",\n \"@vue/language-server\": \"3.2.2\",\n \"ajv\": \"^8.17.1\",\n \"ansi-escapes\": \"^7.0.0\",\n \"bash-language-server\": \"5.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-highlight\": \"^2.1.11\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^13.1.0\",\n \"debug\": \"^4.4.1\",\n \"diff\": \"^7.0.0\",\n \"dockerfile-language-server-nodejs\": \"0.15.0\",\n \"dotenv\": \"^16.6.1\",\n \"env-paths\": \"^3.0.0\",\n \"fflate\": \"^0.8.2\",\n \"figures\": \"^6.1.0\",\n \"glob\": \"^11.0.3\",\n \"graphql-language-service-cli\": \"3.5.0\",\n \"gray-matter\": \"^4.0.3\",\n \"highlight.js\": \"^11.11.1\",\n \"ignore\": \"^7.0.5\",\n \"ink\": \"5.2.1\",\n \"ink-link\": \"^4.1.0\",\n \"ink-select-input\": \"^6.2.0\",\n \"ink-text-input\": \"^6.0.0\",\n \"intelephense\": \"1.16.3\",\n \"js-yaml\": \"^4.1.1\",\n \"lodash-es\": \"^4.17.21\",\n \"lru-cache\": \"^11.1.0\",\n \"marked\": \"^15.0.12\",\n \"minimatch\": \"^10.1.1\",\n \"nanoid\": \"^5.1.5\",\n \"node-html-parser\": \"^7.0.1\",\n \"openai\": \"4.104.0\",\n \"pyright\": \"1.1.408\",\n \"react\": \"18.3.1\",\n \"semver\": \"^7.7.2\",\n \"shell-quote\": \"1.8.3\",\n \"spawn-rx\": \"^5.1.2\",\n \"string-width\": \"^7.2.0\",\n \"strip-ansi\": \"^7.1.0\",\n \"svelte-language-server\": \"0.17.23\",\n \"tsx\": \"^4.20.3\",\n \"typescript-language-server\": \"5.1.3\",\n \"undici\": \"^7.11.0\",\n \"vscode-jsonrpc\": \"8.2.1\",\n \"vscode-langservers-extracted\": \"4.10.0\",\n \"web-tree-sitter\": \"0.25.10\",\n \"which\": \"^6.0.0\",\n \"wrap-ansi\": \"^9.0.0\",\n \"yaml-language-server\": \"1.19.2\",\n \"zod\": \"^3.25.76\",\n \"zod-to-json-schema\": \"^3.24.6\"\n },\n \"devDependencies\": {\n \"@types/bun\": \"latest\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^24.1.0\",\n \"@types/which\": \"^3.0.4\",\n \"@typescript-eslint/eslint-plugin\": \"^8.50.1\",\n \"@typescript-eslint/parser\": \"^8.50.1\",\n \"abort-controller\": \"3.0.0\",\n \"bun-types\": \"latest\",\n \"cheerio\": \"1.1.2\",\n \"esbuild\": \"^0.25.9\",\n \"eslint\": \"8.57.0\",\n \"eslint-plugin-react-hooks\": \"^7.0.1\",\n \"ink-testing-library\": \"4.0.0\",\n \"node-fetch\": \"3.3.2\",\n \"prettier\": \"^3.6.2\",\n \"react-devtools-core\": \"^7.0.1\",\n \"tree-sitter-bash\": \"0.25.1\",\n \"tree-sitter-c-sharp\": \"0.23.1\",\n \"tree-sitter-clojure\": \"0.4.0\",\n \"tree-sitter-cpp\": \"0.23.4\",\n \"tree-sitter-go\": \"0.25.0\",\n \"tree-sitter-haskell\": \"0.23.1\",\n \"tree-sitter-java\": \"0.23.5\",\n \"tree-sitter-julia\": \"0.23.1\",\n \"tree-sitter-nix\": \"0.0.2\",\n \"tree-sitter-ocaml\": \"0.24.2\",\n \"tree-sitter-python\": \"0.25.0\",\n \"tree-sitter-rust\": \"0.24.0\",\n \"tree-sitter-scala\": \"0.24.0\",\n \"tree-sitter-swift\": \"0.7.1\",\n \"tree-sitter-typescript\": \"0.23.2\",\n \"turndown\": \"7.2.2\",\n \"typescript\": \"^5.9.2\"\n },\n \"overrides\": {\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@smithy/smithy-client\": \"2.5.1\",\n \"parse5-htmlparser2-tree-adapter\": \"6.0.1\"\n },\n \"optionalDependencies\": {\n \"@puyib-cli/lock-win32-x64-msvc\": \"1.4.55\",\n \"@puyib-cli/lock-win32-arm64-msvc\": \"1.4.56\",\n \"@puyib-cli/lock-linux-x64-gnu\": \"1.4.56\",\n \"@puyib-cli/lock-linux-x64-musl\": \"1.4.56\",\n \"@puyib-cli/lock-linux-arm64-gnu\": \"1.4.56\",\n \"@puyib-cli/lock-linux-armv7-gnueabihf\": \"1.4.56\",\n \"@puyib-cli/lock-darwin-x64\": \"1.4.56\",\n \"@puyib-cli/lock-darwin-arm64\": \"1.4.56\"\n },\n \"pybNativeLockPlatforms\": [\n \"win32-x64-msvc\",\n \"win32-arm64-msvc\",\n \"linux-x64-gnu\",\n \"linux-x64-musl\",\n \"linux-arm64-gnu\",\n \"linux-armv7-gnueabihf\",\n \"darwin-x64\",\n \"darwin-arm64\"\n ]\n}\n", "import pkg from '../../package.json'\n\nexport const MACRO = {\n VERSION: pkg.version,\n README_URL: 'https://github.com/pyb-xc/pyb-ts#readme',\n PACKAGE_URL: 'pybao-cli',\n ISSUES_EXPLAINER:\n 'report the issue at https://github.com/pyb-xc/pyb-ts/issues',\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/utils/messages/core.ts", "../src/services/ai/llmConstants.ts", "../src/services/telemetry/eventBus.ts", "../src/utils/session/autoCompactMetrics.ts", "../src/utils/session/autoCompactMetricsSink.ts", "../src/services/telemetry/autoCompactTelemetry.ts", "../src/utils/messages/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { createHash, randomUUID, UUID } from 'crypto'\nimport { AssistantMessage, Message, ProgressMessage, UserMessage } from '@query'\nimport { last, memoize } from 'lodash-es'\nimport type { Tool } from '@tool'\nimport { NO_CONTENT_MESSAGE } from '@services/llmConstants'\nimport {\n ImageBlockParam,\n TextBlockParam,\n ToolResultBlockParam,\n ToolUseBlockParam,\n Message as APIMessage,\n ContentBlockParam,\n ContentBlock,\n} from '@anthropic-ai/sdk/resources/index.mjs'\nimport { emitAutoCompactTelemetryEvent } from '@services/telemetry/autoCompactTelemetry'\n\nexport const INTERRUPT_MESSAGE = '[Request interrupted by user]'\nexport const INTERRUPT_MESSAGE_FOR_TOOL_USE =\n '[Request interrupted by user for tool use]'\nexport const CANCEL_MESSAGE =\n \"The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.\"\nexport const REJECT_MESSAGE =\n \"The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.\"\nexport const REJECT_MESSAGE_WITH_FEEDBACK_PREFIX = `The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). To tell you how to proceed, the user said:\\n`\nexport const REJECTED_PLAN_PREFIX = `The agent proposed a plan that was rejected by the user. The user chose to stay in plan mode rather than proceed with implementation.\\n\\nRejected plan:\\n`\nexport const NO_RESPONSE_REQUESTED = 'No response requested.'\n\nexport const SYNTHETIC_ASSISTANT_MESSAGES = new Set([\n INTERRUPT_MESSAGE,\n INTERRUPT_MESSAGE_FOR_TOOL_USE,\n CANCEL_MESSAGE,\n REJECT_MESSAGE,\n NO_RESPONSE_REQUESTED,\n])\n\nfunction stableUuidFromSeed(seed: string): UUID {\n const hex = createHash('sha256').update(seed).digest('hex').slice(0, 32)\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}` as UUID\n}\n\nfunction baseCreateAssistantMessage(\n content: ContentBlock[],\n extra?: Partial<AssistantMessage>,\n): AssistantMessage {\n return {\n type: 'assistant',\n costUSD: 0,\n durationMs: 0,\n uuid: randomUUID(),\n message: {\n id: randomUUID(),\n model: '<synthetic>',\n role: 'assistant',\n stop_reason: 'stop_sequence',\n stop_sequence: '',\n type: 'message',\n usage: {\n input_tokens: 0,\n output_tokens: 0,\n cache_creation_input_tokens: 0,\n cache_read_input_tokens: 0,\n },\n content,\n },\n ...extra,\n }\n}\n\nexport function createAssistantMessage(content: string): AssistantMessage {\n return baseCreateAssistantMessage([\n {\n type: 'text' as const,\n text: content === '' ? NO_CONTENT_MESSAGE : content,\n citations: [],\n },\n ])\n}\n\nexport function createAssistantAPIErrorMessage(\n content: string,\n): AssistantMessage {\n return baseCreateAssistantMessage(\n [\n {\n type: 'text' as const,\n text: content === '' ? NO_CONTENT_MESSAGE : content,\n citations: [],\n },\n ],\n { isApiErrorMessage: true },\n )\n}\n\nexport type FullToolUseResult = {\n data: unknown\n resultForAssistant: ToolResultBlockParam['content']\n newMessages?: Message[]\n contextModifier?: { modifyContext: (ctx: any) => any }\n}\n\nfunction createUserTextBlocks(content: string): ContentBlockParam[] {\n return [{ type: 'text', text: content }]\n}\n\nexport function createUserMessageFromBlocks(\n content: ContentBlockParam[],\n toolUseResult?: FullToolUseResult,\n): UserMessage {\n const m: UserMessage = {\n type: 'user',\n message: {\n role: 'user',\n content,\n },\n uuid: randomUUID(),\n toolUseResult,\n options: {\n contentInputPath: 'blocks',\n },\n }\n return m\n}\n\nexport function createUserMessageFromText(\n content: string,\n toolUseResult?: FullToolUseResult,\n): UserMessage {\n const m: UserMessage = {\n type: 'user',\n message: {\n role: 'user',\n content: createUserTextBlocks(content),\n },\n uuid: randomUUID(),\n toolUseResult,\n options: {\n contentInputPath: 'blocks',\n },\n }\n return m\n}\n\nexport function generateQueryId(): string {\n return randomUUID()\n}\n\nexport function createUserTurnMessageFromBlocks(\n content: ContentBlockParam[],\n toolUseResult?: FullToolUseResult,\n): UserMessage {\n const m = createUserMessageFromBlocks(content, toolUseResult)\n m.queryId = generateQueryId()\n return m\n}\n\nexport function createUserTurnMessageFromText(\n content: string,\n toolUseResult?: FullToolUseResult,\n): UserMessage {\n const m = createUserMessageFromText(content, toolUseResult)\n m.queryId = generateQueryId()\n return m\n}\n\nexport function createProgressMessage(\n toolUseID: string,\n siblingToolUseIDs: Set<string>,\n content: AssistantMessage,\n normalizedMessages: NormalizedMessage[],\n tools: Tool[],\n meta?: {\n progressState?: 'queued_waiting' | 'running' | 'unknown'\n },\n): ProgressMessage {\n return {\n type: 'progress',\n content,\n normalizedMessages,\n siblingToolUseIDs,\n tools,\n toolUseID,\n progressState: meta?.progressState ?? 'unknown',\n uuid: randomUUID(),\n }\n}\n\nexport function filterProgressMessagesForTools(\n messages: NormalizedMessage[],\n toolNames: Set<string>,\n): NormalizedMessage[] {\n const toolUseIds = new Set<string>()\n for (const message of messages) {\n if (message.type !== 'assistant') continue\n const block = message.message.content[0]\n if (!isToolUseLikeBlockParam(block)) continue\n if (toolNames.has(block.name)) {\n toolUseIds.add(block.id)\n }\n }\n if (toolUseIds.size === 0) return messages\n return messages.filter(\n message => message.type !== 'progress' || !toolUseIds.has(message.toolUseID),\n )\n}\n\nexport function createToolResultStopMessage(\n toolUseID: string,\n): ToolResultBlockParam {\n return {\n type: 'tool_result',\n content: CANCEL_MESSAGE,\n is_error: true,\n tool_use_id: toolUseID,\n }\n}\n\nexport function extractTagFromMessage(\n message: Message,\n tagName: string,\n): string | null {\n if (message.type === 'progress') {\n return null\n }\n if (typeof message.message.content !== 'string') {\n return null\n }\n return extractTag(message.message.content, tagName)\n}\n\nexport function extractTag(html: string, tagName: string): string | null {\n if (!html.trim() || !tagName.trim()) {\n return null\n }\n\n const escapedTag = tagName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n const pattern = new RegExp(\n `<${escapedTag}(?:\\\\s+[^>]*)?>` + '([\\\\s\\\\S]*?)' + `<\\\\/${escapedTag}>`,\n 'gi',\n )\n\n let match\n let depth = 0\n let lastIndex = 0\n const openingTag = new RegExp(`<${escapedTag}(?:\\\\s+[^>]*?)?>`, 'gi')\n const closingTag = new RegExp(`<\\\\/${escapedTag}>`, 'gi')\n\n while ((match = pattern.exec(html)) !== null) {\n const content = match[1]\n const beforeMatch = html.slice(lastIndex, match.index)\n\n depth = 0\n\n openingTag.lastIndex = 0\n while (openingTag.exec(beforeMatch) !== null) {\n depth++\n }\n\n closingTag.lastIndex = 0\n while (closingTag.exec(beforeMatch) !== null) {\n depth--\n }\n\n if (depth === 0 && content) {\n return content\n }\n\n lastIndex = match.index + match[0].length\n }\n\n return null\n}\n\nexport function isNotEmptyMessage(message: Message): boolean {\n if (message.type === 'progress') {\n return true\n }\n\n if (typeof message.message.content === 'string') {\n return message.message.content.trim().length > 0\n }\n\n if (message.message.content.length === 0) {\n return false\n }\n\n if (message.message.content.length > 1) {\n return true\n }\n\n if (message.message.content[0]!.type !== 'text') {\n return true\n }\n\n return (\n message.message.content[0]!.text.trim().length > 0 &&\n message.message.content[0]!.text !== NO_CONTENT_MESSAGE &&\n message.message.content[0]!.text !== INTERRUPT_MESSAGE_FOR_TOOL_USE\n )\n}\n\ntype NormalizedUserMessage = {\n message: {\n content: [\n | TextBlockParam\n | ImageBlockParam\n | ToolUseBlockParam\n | ToolResultBlockParam,\n ]\n role: 'user'\n }\n type: 'user'\n uuid: UUID\n}\n\nexport type NormalizedMessage =\n | NormalizedUserMessage\n | AssistantMessage\n | ProgressMessage\n\nexport function normalizeMessages(messages: Message[]): NormalizedMessage[] {\n return messages.flatMap(message => {\n if (message.type === 'progress') {\n return [message] as NormalizedMessage[]\n }\n if (typeof message.message.content === 'string') {\n return [message] as NormalizedMessage[]\n }\n const contentBlocks = message.message.content.filter(\n block =>\n !(\n block.type === 'thinking' &&\n (typeof (block as any).thinking !== 'string' ||\n (block as any).thinking.trim().length === 0)\n ),\n )\n\n return contentBlocks.map((block, blockIndex) => {\n switch (message.type) {\n case 'assistant':\n const baseSeed = String(\n (message as any).uuid ??\n (message as any).message?.id ??\n randomUUID(),\n )\n return {\n type: 'assistant',\n uuid: stableUuidFromSeed(`${baseSeed}:${blockIndex}`),\n message: {\n ...message.message,\n content: [block],\n },\n costUSD:\n (message as AssistantMessage).costUSD / contentBlocks.length,\n durationMs: (message as AssistantMessage).durationMs,\n } as NormalizedMessage\n case 'user':\n return message as NormalizedUserMessage\n }\n })\n })\n}\n\ntype ToolUseRequestMessage = AssistantMessage & {\n message: { content: any[] }\n}\n\ntype ToolUseLikeBlockParam = ToolUseBlockParam & {\n type: 'tool_use' | 'server_tool_use' | 'mcp_tool_use'\n}\n\nfunction isToolUseLikeBlockParam(block: any): block is ToolUseLikeBlockParam {\n return (\n block &&\n typeof block === 'object' &&\n (block.type === 'tool_use' ||\n block.type === 'server_tool_use' ||\n block.type === 'mcp_tool_use') &&\n typeof block.id === 'string'\n )\n}\n\nfunction isToolUseRequestMessage(\n message: Message,\n): message is ToolUseRequestMessage {\n return (\n message.type === 'assistant' &&\n 'costUSD' in message &&\n message.message.content.some(isToolUseLikeBlockParam)\n )\n}\n\nexport function reorderMessages(\n messages: NormalizedMessage[],\n): NormalizedMessage[] {\n const ms: NormalizedMessage[] = []\n const toolUseMessages: ToolUseRequestMessage[] = []\n\n for (const message of messages) {\n if (isToolUseRequestMessage(message)) {\n toolUseMessages.push(message)\n }\n\n if (message.type === 'progress') {\n const existingProgressMessage = ms.find(\n _ => _.type === 'progress' && _.toolUseID === message.toolUseID,\n )\n if (existingProgressMessage) {\n ms[ms.indexOf(existingProgressMessage)] = message\n continue\n }\n const toolUseMessage = toolUseMessages.find(\n _ => _.message.content[0]?.id === message.toolUseID,\n )\n if (toolUseMessage) {\n ms.splice(ms.indexOf(toolUseMessage) + 1, 0, message)\n continue\n }\n }\n\n if (\n message.type === 'user' &&\n Array.isArray(message.message.content) &&\n message.message.content[0]?.type === 'tool_result'\n ) {\n const toolUseID = (message.message.content[0] as ToolResultBlockParam)\n ?.tool_use_id\n\n const lastProgressMessage = ms.find(\n _ => _.type === 'progress' && _.toolUseID === toolUseID,\n )\n if (lastProgressMessage) {\n ms.splice(ms.indexOf(lastProgressMessage) + 1, 0, message)\n continue\n }\n\n const toolUseMessage = toolUseMessages.find(\n _ => _.message.content[0]?.id === toolUseID,\n )\n if (toolUseMessage) {\n ms.splice(ms.indexOf(toolUseMessage) + 1, 0, message)\n continue\n }\n }\n\n else {\n ms.push(message)\n }\n }\n\n return ms\n}\n\nconst getToolResultIDs = memoize(\n (normalizedMessages: NormalizedMessage[]): { [toolUseID: string]: boolean } =>\n Object.fromEntries(\n normalizedMessages.flatMap(_ =>\n _.type === 'user' && _.message.content[0]?.type === 'tool_result'\n ? [\n [\n _.message.content[0]!.tool_use_id,\n _.message.content[0]!.is_error ?? false,\n ],\n ]\n : ([] as [string, boolean][]),\n ),\n ),\n)\n\nexport function getUnresolvedToolUseIDs(\n normalizedMessages: NormalizedMessage[],\n): Set<string> {\n const toolResults = getToolResultIDs(normalizedMessages)\n return new Set(\n normalizedMessages\n .filter(\n (\n _,\n ): _ is AssistantMessage & {\n message: { content: [ToolUseLikeBlockParam] }\n } =>\n _.type === 'assistant' &&\n Array.isArray(_.message.content) &&\n isToolUseLikeBlockParam(_.message.content[0]) &&\n !(_.message.content[0].id in toolResults),\n )\n .map(_ => _.message.content[0].id),\n )\n}\n\nexport function getInProgressToolUseIDs(\n normalizedMessages: NormalizedMessage[],\n): Set<string> {\n const unresolvedToolUseIDs = getUnresolvedToolUseIDs(normalizedMessages)\n\n function isQueuedWaitingProgressMessage(message: NormalizedMessage): boolean {\n if (message.type !== 'progress') return false\n if (message.progressState === 'queued_waiting') return true\n return false\n }\n\n const toolUseIDsThatHaveProgressMessages = new Set(\n normalizedMessages\n .filter(\n (_): _ is ProgressMessage =>\n _.type === 'progress' && !isQueuedWaitingProgressMessage(_),\n )\n .map(_ => _.toolUseID),\n )\n return new Set(\n (\n normalizedMessages.filter(_ => {\n if (_.type !== 'assistant') {\n return false\n }\n const firstBlock = _.message.content[0]\n if (!isToolUseLikeBlockParam(firstBlock)) return false\n const toolUseID = firstBlock.id\n if (toolUseID === unresolvedToolUseIDs.values().next().value) {\n return true\n }\n\n if (\n toolUseIDsThatHaveProgressMessages.has(toolUseID) &&\n unresolvedToolUseIDs.has(toolUseID)\n ) {\n return true\n }\n\n return false\n }) as AssistantMessage[]\n ).map(_ => (_.message.content[0]! as ToolUseBlockParam).id),\n )\n}\n\nexport function getErroredToolUseMessages(\n normalizedMessages: NormalizedMessage[],\n): AssistantMessage[] {\n const toolResults = getToolResultIDs(normalizedMessages)\n return normalizedMessages.filter(\n _ =>\n _.type === 'assistant' &&\n Array.isArray(_.message.content) &&\n isToolUseLikeBlockParam(_.message.content[0]) &&\n _.message.content[0].id in toolResults &&\n toolResults[_.message.content[0].id],\n ) as AssistantMessage[]\n}\n\nexport function normalizeMessagesForAPI(\n messages: Message[],\n): (UserMessage | AssistantMessage)[] {\n let partPreserveCount = 0\n const partDowngradeCount = 0\n const partClearCount = 0\n const partTrimOrderValid = true\n\n function isSyntheticApiErrorMessage(message: Message): boolean {\n return (\n message.type === 'assistant' &&\n message.isApiErrorMessage === true &&\n message.message.model === '<synthetic>'\n )\n }\n\n function normalizeUserContent(\n content: UserMessage['message']['content'],\n ): ContentBlockParam[] {\n function preservePartFields(part: ContentBlockParam): ContentBlockParam {\n if ((part as any)?.type !== 'tool_result') {\n return part\n }\n partPreserveCount += 1\n const toolResult = part as any\n return {\n ...toolResult,\n tool_use_id: toolResult.tool_use_id,\n status: toolResult.status,\n errors: toolResult.errors,\n }\n }\n\n const applyPartLevelPipeline = (part: ContentBlockParam): ContentBlockParam => {\n const preserved = preservePartFields(part)\n return preserved\n }\n\n if (typeof content === 'string') {\n return [{ type: 'text', text: content }].map(applyPartLevelPipeline)\n }\n return content.map(applyPartLevelPipeline)\n }\n\n function toolResultsFirst(content: ContentBlockParam[]): ContentBlockParam[] {\n const toolResults: ContentBlockParam[] = []\n const rest: ContentBlockParam[] = []\n for (const block of content) {\n if (block.type === 'tool_result') {\n toolResults.push(block)\n } else {\n rest.push(block)\n }\n }\n return [...toolResults, ...rest]\n }\n\n function mergeUserMessages(\n base: UserMessage,\n next: UserMessage,\n ): UserMessage {\n const baseBlocks = normalizeUserContent(base.message.content)\n const nextBlocks = normalizeUserContent(next.message.content)\n return {\n ...base,\n message: {\n ...base.message,\n content: toolResultsFirst([...baseBlocks, ...nextBlocks]),\n },\n }\n }\n\n function isUserToolResultMessage(message: Message): message is UserMessage {\n if (message.type !== 'user') return false\n if (!Array.isArray(message.message.content)) return false\n return message.message.content.some(block => block.type === 'tool_result')\n }\n\n const result: (UserMessage | AssistantMessage)[] = []\n let userStringContentCount = 0\n let totalUserContentCount = 0\n let userMergeCount = 0\n let toolResultMergeCount = 0\n let boundaryGuardHitCount = 0\n let crossTurnUserMergeBlockCount = 0\n for (const message of messages) {\n if (message.type === 'progress') continue\n if (isSyntheticApiErrorMessage(message)) continue\n\n switch (message.type) {\n case 'user': {\n totalUserContentCount += 1\n if (typeof message.message.content === 'string') {\n userStringContentCount += 1\n }\n const prev = last(result)\n if (\n prev?.type === 'user' &&\n isUserToolResultMessage(prev) &&\n isUserToolResultMessage(message)\n ) {\n toolResultMergeCount += 1\n result[result.indexOf(prev)] = mergeUserMessages(prev, message)\n } else {\n if (prev?.type === 'user') {\n boundaryGuardHitCount += 1\n crossTurnUserMergeBlockCount += 1\n }\n result.push({\n ...message,\n message: {\n ...message.message,\n content: normalizeUserContent(message.message.content),\n },\n })\n }\n break\n }\n case 'assistant': {\n let merged = false\n for (let i = result.length - 1; i >= 0; i--) {\n const prev = result[i]\n if (prev.type !== 'assistant' && !isUserToolResultMessage(prev)) {\n break\n }\n if (prev.type === 'assistant') {\n if (prev.message.id === message.message.id) {\n result[i] = {\n ...prev,\n message: {\n ...prev.message,\n content: [\n ...(Array.isArray(prev.message.content)\n ? prev.message.content\n : []),\n ...(Array.isArray(message.message.content)\n ? message.message.content\n : []),\n ],\n },\n }\n merged = true\n }\n break\n }\n }\n if (!merged) {\n result.push(message)\n }\n break\n }\n }\n }\n\n emitAutoCompactTelemetryEvent('MESSAGE_USER_CONTENT_ADAPTED', {\n totalUserContentCount,\n userStringContentCount,\n user_merge_count: userMergeCount,\n tool_result_merge_count: toolResultMergeCount,\n part_preserve_count: partPreserveCount,\n part_downgrade_count: partDowngradeCount,\n part_clear_count: partClearCount,\n part_trim_order_valid: partTrimOrderValid,\n string_input_path_usage_rate:\n totalUserContentCount > 0 ? userStringContentCount / totalUserContentCount : 0,\n })\n emitAutoCompactTelemetryEvent('BOUNDARY_NORMALIZE_GUARD_APPLIED', {\n applied: boundaryGuardHitCount > 0,\n boundary_guard_hit_count: boundaryGuardHitCount,\n cross_turn_user_merge_block_count: crossTurnUserMergeBlockCount,\n })\n\n return result\n}\n\nexport function normalizeContentFromAPI(\n content: APIMessage['content'],\n): APIMessage['content'] {\n const filteredContent = content.filter(\n _ => _.type !== 'text' || _.text.trim().length > 0,\n )\n\n if (filteredContent.length === 0) {\n return [{ type: 'text', text: NO_CONTENT_MESSAGE, citations: [] }]\n }\n\n return filteredContent\n}\n\nexport function isEmptyMessageText(text: string): boolean {\n return (\n stripSystemMessages(text).trim() === '' ||\n text.trim() === NO_CONTENT_MESSAGE\n )\n}\nconst STRIPPED_TAGS = [\n 'commit_analysis',\n 'context',\n 'function_analysis',\n 'pr_analysis',\n]\n\nexport function stripSystemMessages(content: string): string {\n const regex = new RegExp(`<(${STRIPPED_TAGS.join('|')})>.*?</\\\\1>\\n?`, 'gs')\n return content.replace(regex, '').trim()\n}\n\nexport function getToolUseID(message: NormalizedMessage): string | null {\n switch (message.type) {\n case 'assistant':\n return isToolUseLikeBlockParam(message.message.content[0])\n ? message.message.content[0].id\n : null\n case 'user':\n if (message.message.content[0]?.type !== 'tool_result') {\n return null\n }\n return message.message.content[0].tool_use_id\n case 'progress':\n return message.toolUseID\n }\n}\n\nexport function getLastAssistantMessageId(\n messages: Message[],\n): string | undefined {\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i]\n if (message && message.type === 'assistant') {\n return message.message.id\n }\n }\n return undefined\n}\n", "export const API_ERROR_MESSAGE_PREFIX = 'API Error'\nexport const PROMPT_TOO_LONG_ERROR_MESSAGE = 'Prompt is too long'\nexport const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low'\nexport const INVALID_API_KEY_ERROR_MESSAGE =\n 'Invalid API key \u00B7 Please run /login'\nexport const NO_CONTENT_MESSAGE = '(no content)'\n\nexport const MAIN_QUERY_TEMPERATURE = 1\n", "export type TelemetryEvent = {\n channel: string\n phase: string\n data?: Record<string, any>\n timestamp: number\n}\n\ntype TelemetryListener = (event: TelemetryEvent) => void\n\nconst listeners = new Map<string, TelemetryListener>()\n\nexport function registerTelemetryListener(\n listenerId: string,\n listener: TelemetryListener,\n) {\n listeners.set(listenerId, listener)\n}\n\nexport function unregisterTelemetryListener(listenerId: string) {\n listeners.delete(listenerId)\n}\n\nexport function emitTelemetryEvent(event: TelemetryEvent) {\n for (const listener of listeners.values()) {\n listener(event)\n }\n}\n\nexport function clearTelemetryListeners() {\n listeners.clear()\n}\n\n", "type EventRecord = {\n phase: string\n data?: Record<string, any>\n}\n\nexport type AutoCompactMetrics = {\n compact_invalid_shape_rate: number\n compact_retry_success_rate: number\n thinking_first_ratio: number\n cross_model_replay_error_rate: number\n structured_primary_path_rate?: number\n structured_semantic_coverage_rate?: number\n typed_primary_path_rate?: number\n typed_contract_fail_rate?: number\n recoverable_failure_rate?: number\n retry_exhausted_rate?: number\n status_compensation_failure_rate?: number\n compaction_boundary_hit_rate?: number\n boundary_pair_match_rate?: number\n boundary_false_cut_rate?: number\n post_cut_goal_adherence_rate?: number\n noise_ratio_after_compaction?: number\n task_goal_retention_rate?: number\n result_fidelity_rate?: number\n error_fidelity_rate?: number\n first_turn_drift_rate?: number\n turn_drift_rate?: number\n stale_instruction_revisit_rate?: number\n latest_user_goal_adherence_rate?: number\n tracker_restore_integrity_issue_rate?: number\n string_input_path_usage_rate?: number\n prune_marker_coverage_rate?: number\n compacted_index_integrity_rate?: number\n post_prune_noise_ratio?: number\n tool_output_aging_hit_rate?: number\n tool_output_placeholder_hit_rate?: number\n tool_output_token_reduction_rate?: number\n dangling_tool_closure_rate?: number\n w11_sample_pass_rate?: number\n w14_sample_pass_rate?: number\n cache_chain_trace_rate?: number\n continuation_injected_rate?: number\n replay_hit_rate?: number\n replay_dedup_skip_rate?: number\n post_compaction_first_turn_drift_rate?: number\n}\n\nfunction safeDivide(numerator: number, denominator: number): number {\n if (denominator <= 0) return 0\n return numerator / denominator\n}\n\nexport function computeAutoCompactMetrics(events: EventRecord[]): AutoCompactMetrics {\n const failedEvents = events.filter(event => event.phase === 'AUTO_COMPACT_FAILED')\n const retryEvents = events.filter(event => event.phase === 'AUTO_COMPACT_RETRY')\n const fallbackEvents = events.filter(event => event.phase === 'AUTO_COMPACT_FALLBACK')\n\n const invalidShapeFailures = failedEvents.filter(\n event => event.data?.failureType === 'invalid_content_shape',\n ).length\n const compact_invalid_shape_rate = safeDivide(\n invalidShapeFailures,\n failedEvents.length,\n )\n\n const retrySuccessSignals = fallbackEvents.length\n const compact_retry_success_rate = safeDivide(\n retrySuccessSignals,\n retryEvents.length + fallbackEvents.length,\n )\n\n const transformAppliedEvents = events.filter(\n event => event.phase === 'MESSAGE_TRANSFORM_APPLIED',\n )\n const thinkingFirstCount = transformAppliedEvents.filter(event => {\n const stats = event.data?.outputBlockStats || {}\n const thinking = Number(stats.thinking ?? 0)\n const text = Number(stats.text ?? 0)\n return thinking > 0 && text > 0\n }).length\n const thinking_first_ratio = safeDivide(\n thinkingFirstCount,\n transformAppliedEvents.length,\n )\n\n const crossReplayTagged = events.filter(\n event =>\n event.phase === 'AUTO_COMPACT_FAILED' ||\n event.phase === 'AUTO_COMPACT_RETRY' ||\n event.phase === 'AUTO_COMPACT_FALLBACK',\n )\n const crossReplayErrors = crossReplayTagged.filter(\n event =>\n event.data?.crossModelReplay === true &&\n event.phase === 'AUTO_COMPACT_FAILED',\n ).length\n const crossReplayTotal = crossReplayTagged.filter(\n event => event.data?.crossModelReplay === true,\n ).length\n const cross_model_replay_error_rate = safeDivide(\n crossReplayErrors,\n crossReplayTotal,\n )\n const sessionTypedPathEvents = events.filter(\n event => event.phase === 'SESSION_TYPED_PATH_APPLIED',\n )\n const sessionTypedConsistencyFailedEvents = events.filter(\n event => event.phase === 'SESSION_TYPED_PATH_CONSISTENCY_FAILED',\n )\n const typedPathDecisionEventsCount =\n sessionTypedPathEvents.length + sessionTypedConsistencyFailedEvents.length\n const typed_primary_path_rate =\n sessionTypedPathEvents.length > 0\n ? safeDivide(\n sessionTypedPathEvents.length,\n sessionTypedPathEvents.length,\n )\n : undefined\n const typed_contract_fail_rate =\n typedPathDecisionEventsCount > 0\n ? safeDivide(\n sessionTypedConsistencyFailedEvents.length,\n typedPathDecisionEventsCount,\n )\n : undefined\n const recoverable_failure_rate =\n failedEvents.length + retryEvents.length > 0\n ? safeDivide(retryEvents.length, failedEvents.length + retryEvents.length)\n : undefined\n const retry_exhausted_rate =\n failedEvents.length > 0\n ? safeDivide(\n failedEvents.filter(\n event =>\n Number.isFinite(Number(event.data?.attempts)) &&\n Number(event.data?.attempts) >= 2,\n ).length,\n failedEvents.length,\n )\n : undefined\n const boundaryEvents = events.filter(\n event => event.phase === 'COMPACTION_BOUNDARY_APPLIED',\n )\n const compaction_boundary_hit_rate =\n boundaryEvents.length > 0\n ? safeDivide(\n boundaryEvents.filter(event => event.data?.applied === true).length,\n boundaryEvents.length,\n )\n : undefined\n const boundaryCandidateEvents = boundaryEvents.filter(event => {\n const index = Number(event.data?.lastCompactionIndex ?? -1)\n if (Number.isFinite(index) && index >= 0) return true\n const resolution = String(event.data?.boundaryResolution ?? '')\n return (\n resolution === 'hard_cut_applied' || resolution === 'missing_valid_pair'\n )\n })\n const boundary_pair_match_rate =\n boundaryCandidateEvents.length > 0\n ? safeDivide(\n boundaryCandidateEvents.filter(\n event => event.data?.boundaryPairMatched === true,\n ).length,\n boundaryCandidateEvents.length,\n )\n : undefined\n const boundaryHardCutEvents = boundaryEvents.filter(\n event => event.data?.applied === true,\n )\n const boundary_false_cut_rate =\n boundaryHardCutEvents.length > 0\n ? safeDivide(\n boundaryHardCutEvents.filter(\n event => event.data?.boundaryPairMatched !== true,\n ).length,\n boundaryHardCutEvents.length,\n )\n : undefined\n const pruneCoverageSamples = boundaryEvents.filter(\n event => typeof event.data?.pruneMarkerConsumed === 'boolean',\n )\n const prune_marker_coverage_rate =\n pruneCoverageSamples.length > 0\n ? safeDivide(\n pruneCoverageSamples.filter(\n event => event.data?.pruneMarkerConsumed === true,\n ).length,\n pruneCoverageSamples.length,\n )\n : undefined\n const indexIntegritySamples = boundaryEvents.filter(\n event => event.data?.indexValidationKnown === true,\n )\n const compacted_index_integrity_rate =\n indexIntegritySamples.length > 0\n ? safeDivide(\n indexIntegritySamples.filter(\n event => event.data?.indexValidationValid === true,\n ).length,\n indexIntegritySamples.length,\n )\n : undefined\n const lifecycleEvents = events.filter(\n event => event.phase === 'TOOL_OUTPUT_LIFECYCLE_APPLIED',\n )\n const lifecycleAppliedEvents = lifecycleEvents.filter(\n event => event.data?.applied !== false,\n )\n const lifecycleAgedTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.agedBlocks ?? 0),\n 0,\n )\n const lifecycleToolResultBeforeTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.totalToolResultBlocksBefore ?? 0),\n 0,\n )\n const lifecyclePlaceholderTotal = lifecycleAppliedEvents.reduce(\n (sum, event) =>\n sum +\n Number(event.data?.l2Blocks ?? 0) +\n Number(event.data?.l3Blocks ?? 0),\n 0,\n )\n const lifecycleBeforeTokensTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.beforeTokens ?? 0),\n 0,\n )\n const lifecycleTokenDeltaTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.tokenDelta ?? 0),\n 0,\n )\n const danglingDetectedTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.danglingDetected ?? 0),\n 0,\n )\n const danglingClosedTotal = lifecycleAppliedEvents.reduce(\n (sum, event) => sum + Number(event.data?.danglingClosed ?? 0),\n 0,\n )\n const tool_output_aging_hit_rate =\n lifecycleToolResultBeforeTotal > 0\n ? safeDivide(lifecycleAgedTotal, lifecycleToolResultBeforeTotal)\n : undefined\n const tool_output_placeholder_hit_rate =\n lifecycleAgedTotal > 0\n ? safeDivide(lifecyclePlaceholderTotal, lifecycleAgedTotal)\n : undefined\n const tool_output_token_reduction_rate =\n lifecycleBeforeTokensTotal > 0\n ? safeDivide(lifecycleTokenDeltaTotal, lifecycleBeforeTokensTotal)\n : undefined\n const dangling_tool_closure_rate =\n danglingDetectedTotal > 0\n ? safeDivide(danglingClosedTotal, danglingDetectedTotal)\n : undefined\n const status_compensation_failure_rate =\n danglingDetectedTotal > 0\n ? safeDivide(\n Math.max(0, danglingDetectedTotal - danglingClosedTotal),\n danglingDetectedTotal,\n )\n : undefined\n const lifecycleDraftEvents = events.filter(\n event => event.phase === 'TOOL_OUTPUT_LIFECYCLE_PRE_GATE_METRICS_DRAFT',\n )\n const latestLifecycleDraft =\n lifecycleDraftEvents.length > 0\n ? lifecycleDraftEvents[lifecycleDraftEvents.length - 1]\n : undefined\n const w11_sample_pass_rate = Number.isFinite(\n Number(latestLifecycleDraft?.data?.w11_sample_pass_rate),\n )\n ? Number(latestLifecycleDraft?.data?.w11_sample_pass_rate)\n : undefined\n const w14_sample_pass_rate = Number.isFinite(\n Number(latestLifecycleDraft?.data?.w14_sample_pass_rate),\n )\n ? Number(latestLifecycleDraft?.data?.w14_sample_pass_rate)\n : undefined\n const postPruneNoiseSamples = lifecycleEvents.filter(\n event =>\n Number.isFinite(Number(event.data?.beforeTokens)) &&\n Number(event.data?.beforeTokens) > 0 &&\n Number.isFinite(Number(event.data?.afterTokens)),\n )\n const post_prune_noise_ratio =\n postPruneNoiseSamples.length > 0\n ? postPruneNoiseSamples.reduce((sum, event) => {\n const before = Number(event.data?.beforeTokens)\n const after = Number(event.data?.afterTokens)\n return sum + Math.max(0, Math.min(1, safeDivide(after, before)))\n }, 0) / postPruneNoiseSamples.length\n : undefined\n\n const sanitizerEvents = events.filter(\n event => event.phase === 'AUTO_COMPACT_SANITIZER_APPLIED',\n )\n const removedNoiseTotal = sanitizerEvents.reduce(\n (sum, event) =>\n sum +\n Number(event.data?.removedReminderTags ?? 0) +\n Number(event.data?.removedToolProgressTags ?? 0),\n 0,\n )\n const changedMessagesTotal = sanitizerEvents.reduce(\n (sum, event) => sum + Number(event.data?.changedMessages ?? 0),\n 0,\n )\n const noise_ratio_after_compaction =\n changedMessagesTotal > 0\n ? Math.max(\n 0,\n Math.min(1, 1 - safeDivide(removedNoiseTotal, changedMessagesTotal * 2)),\n )\n : undefined\n const summaryInputPathEvents = events.filter(\n event => event.phase === 'AUTO_COMPACT_SUMMARY_INPUT_PATH_APPLIED',\n )\n const structuredPrimaryPathEvents = summaryInputPathEvents.filter(\n event => event.data?.mode === 'structured_primary',\n )\n const structured_primary_path_rate =\n summaryInputPathEvents.length > 0\n ? safeDivide(structuredPrimaryPathEvents.length, summaryInputPathEvents.length)\n : undefined\n const structured_semantic_coverage_rate = structured_primary_path_rate\n\n const qualityEvents = events.filter(\n event => event.phase === 'AUTO_COMPACT_SUMMARY_QUALITY',\n )\n const goalSamples = qualityEvents.filter(\n event => typeof event.data?.taskGoalRetained === 'boolean',\n )\n const resultSamples = qualityEvents.filter(\n event => typeof event.data?.hasResultInput === 'boolean',\n )\n const errorSamples = qualityEvents.filter(\n event => typeof event.data?.hasErrorInput === 'boolean',\n )\n const task_goal_retention_rate =\n goalSamples.length > 0\n ? safeDivide(\n goalSamples.filter(event => event.data?.taskGoalRetained === true).length,\n goalSamples.length,\n )\n : undefined\n const result_fidelity_rate =\n resultSamples.length > 0\n ? safeDivide(\n resultSamples.filter(event => {\n if (event.data?.hasResultInput !== true) return true\n return event.data?.hasResultSummary === true\n }).length,\n resultSamples.length,\n )\n : undefined\n const error_fidelity_rate =\n errorSamples.length > 0\n ? safeDivide(\n errorSamples.filter(event => {\n if (event.data?.hasErrorInput !== true) return true\n return event.data?.hasErrorSummary === true\n }).length,\n errorSamples.length,\n )\n : undefined\n const first_turn_drift_rate =\n task_goal_retention_rate === undefined ? undefined : 1 - task_goal_retention_rate\n const latest_user_goal_adherence_rate = task_goal_retention_rate\n const post_cut_goal_adherence_rate = latest_user_goal_adherence_rate\n const turn_drift_rate = first_turn_drift_rate\n const restoreIntegrityEvents = events.filter(\n event => event.phase === 'TRACKER_RESTORE_INTEGRITY_CHECK',\n )\n const restoreIntegrityIssueCount = restoreIntegrityEvents.filter(event => {\n const isConsistent = event.data?.isConsistent\n if (typeof isConsistent === 'boolean') return isConsistent === false\n return Number(event.data?.droppedCount ?? 0) > 0\n }).length\n const tracker_restore_integrity_issue_rate =\n restoreIntegrityEvents.length > 0\n ? safeDivide(restoreIntegrityIssueCount, restoreIntegrityEvents.length)\n : undefined\n const userContentAdaptedEvents = events.filter(\n event => event.phase === 'MESSAGE_USER_CONTENT_ADAPTED',\n )\n const normalizeGuardEvents = events.filter(\n event => event.phase === 'BOUNDARY_NORMALIZE_GUARD_APPLIED',\n )\n const staleInstructionBlockedTotal = normalizeGuardEvents.reduce(\n (sum, event) => sum + Number(event.data?.cross_turn_user_merge_block_count ?? 0),\n 0,\n )\n const cacheChainEvents = events.filter(\n event => event.phase === 'CACHE_CONTROL_CHAIN',\n )\n const cacheChainTraceSamples = cacheChainEvents.filter(\n event =>\n Number.isFinite(Number(event.data?.cached_block_count)) &&\n Number.isFinite(Number(event.data?.response_chain_depth)),\n )\n const cache_chain_trace_rate =\n cacheChainEvents.length > 0\n ? safeDivide(cacheChainTraceSamples.length, cacheChainEvents.length)\n : undefined\n const continuationDecisionEvents = events.filter(\n event => event.phase === 'AUTO_COMPACT_CONTINUATION_DECISION',\n )\n const continuationInjectedCount = continuationDecisionEvents.filter(\n event => event.data?.injected === true,\n ).length\n const continuationReplayHitCount = continuationDecisionEvents.filter(\n event => event.data?.mode === 'replay',\n ).length\n const continuationDedupSkipCount = continuationDecisionEvents.filter(\n event => event.data?.replaySkippedReason === 'dedup_marker',\n ).length\n const continuation_injected_rate =\n continuationDecisionEvents.length > 0\n ? safeDivide(continuationInjectedCount, continuationDecisionEvents.length)\n : undefined\n const replay_hit_rate =\n continuationInjectedCount > 0\n ? safeDivide(continuationReplayHitCount, continuationInjectedCount)\n : undefined\n const replay_dedup_skip_rate =\n continuationDecisionEvents.length > 0\n ? safeDivide(continuationDedupSkipCount, continuationDecisionEvents.length)\n : undefined\n const post_compaction_first_turn_drift_rate = first_turn_drift_rate\n const stringInputPathNumerator = userContentAdaptedEvents.reduce((sum, event) => {\n const eventTotal = Number(event.data?.totalUserContentCount ?? 0)\n const eventString = Number(event.data?.userStringContentCount ?? 0)\n if (!Number.isFinite(eventTotal) || eventTotal <= 0) return sum\n if (!Number.isFinite(eventString) || eventString < 0) return sum\n return sum + Math.min(eventTotal, eventString)\n }, 0)\n const stringInputPathDenominator = userContentAdaptedEvents.reduce((sum, event) => {\n const eventTotal = Number(event.data?.totalUserContentCount ?? 0)\n if (!Number.isFinite(eventTotal) || eventTotal <= 0) return sum\n return sum + eventTotal\n }, 0)\n const string_input_path_usage_rate =\n stringInputPathDenominator > 0\n ? safeDivide(stringInputPathNumerator, stringInputPathDenominator)\n : undefined\n const stale_instruction_revisit_rate =\n stringInputPathDenominator > 0\n ? safeDivide(staleInstructionBlockedTotal, stringInputPathDenominator)\n : undefined\n\n return {\n compact_invalid_shape_rate,\n compact_retry_success_rate,\n thinking_first_ratio,\n cross_model_replay_error_rate,\n structured_primary_path_rate,\n structured_semantic_coverage_rate,\n typed_primary_path_rate,\n typed_contract_fail_rate,\n recoverable_failure_rate,\n retry_exhausted_rate,\n status_compensation_failure_rate,\n compaction_boundary_hit_rate,\n boundary_pair_match_rate,\n boundary_false_cut_rate,\n post_cut_goal_adherence_rate,\n noise_ratio_after_compaction,\n task_goal_retention_rate,\n result_fidelity_rate,\n error_fidelity_rate,\n first_turn_drift_rate,\n turn_drift_rate,\n stale_instruction_revisit_rate,\n latest_user_goal_adherence_rate,\n tracker_restore_integrity_issue_rate,\n string_input_path_usage_rate,\n prune_marker_coverage_rate,\n compacted_index_integrity_rate,\n post_prune_noise_ratio,\n tool_output_aging_hit_rate,\n tool_output_placeholder_hit_rate,\n tool_output_token_reduction_rate,\n dangling_tool_closure_rate,\n w11_sample_pass_rate,\n w14_sample_pass_rate,\n cache_chain_trace_rate,\n continuation_injected_rate,\n replay_hit_rate,\n replay_dedup_skip_rate,\n post_compaction_first_turn_drift_rate,\n }\n}\n", "import {\n computeAutoCompactMetrics,\n type AutoCompactMetrics,\n} from './autoCompactMetrics'\n\ntype SinkEvent = {\n phase: string\n data?: Record<string, any>\n}\n\nexport function createAutoCompactMetricsSink() {\n const events: SinkEvent[] = []\n return {\n push(event: SinkEvent) {\n events.push(event)\n },\n snapshot(): { eventCount: number; metrics: AutoCompactMetrics } {\n return {\n eventCount: events.length,\n metrics: computeAutoCompactMetrics(events),\n }\n },\n clear() {\n events.length = 0\n },\n }\n}\n\n", "import {\n registerTelemetryListener,\n emitTelemetryEvent,\n type TelemetryEvent,\n} from './eventBus'\nimport { createAutoCompactMetricsSink } from '@utils/session/autoCompactMetricsSink'\n\nconst AUTO_COMPACT_TELEMETRY_PHASES = new Set([\n 'AUTO_COMPACT_FAILED',\n 'AUTO_COMPACT_RETRY',\n 'AUTO_COMPACT_FALLBACK',\n 'MESSAGE_TRANSFORM_APPLIED',\n 'AUTO_COMPACT_SUMMARY_INPUT_PATH_APPLIED',\n 'AUTO_COMPACT_SUMMARY_QUALITY',\n 'AUTO_COMPACT_BUDGET_APPLIED',\n 'AUTO_COMPACT_POST_PERSIST_CHECK',\n 'TRACKER_RESTORE_INTEGRITY_CHECK',\n 'COMPACTION_BOUNDARY_APPLIED',\n 'COMPACTION_HOOK_TURN_END',\n 'COMPACTION_HOOK_OVERFLOW_DETECTED',\n 'COMPACTION_HOOK_PRE_NEXT_TURN',\n 'TOOL_OUTPUT_LIFECYCLE_APPLIED',\n 'SESSION_TYPED_PATH_APPLIED',\n 'SESSION_TYPED_PATH_CONSISTENCY_FAILED',\n 'SESSION_TYPED_PATH_POLICY_APPLIED',\n 'SESSION_TYPED_PATH_AUTO_DEGRADED',\n 'MESSAGE_USER_CONTENT_ADAPTED',\n 'AUTO_COMPACT_TASK_NODE_CREATED',\n 'AUTO_COMPACT_TASK_NODE_TRANSITION',\n 'AUTO_COMPACT_TASK_NODE_FAILED',\n 'AUTO_COMPACT_OVERFLOW_JOINT_DECISION_DRAFT',\n 'AUTO_COMPACT_CONTINUATION_DECISION',\n])\n\nconst AUTO_COMPACT_SINK_LISTENER_ID = 'auto-compact-metrics-sink'\nconst autoCompactSink = createAutoCompactMetricsSink()\nlet sinkRegistered = false\n\nexport function ensureAutoCompactTelemetryRegistered() {\n if (sinkRegistered) return\n registerTelemetryListener(AUTO_COMPACT_SINK_LISTENER_ID, event => {\n if (!AUTO_COMPACT_TELEMETRY_PHASES.has(event.phase)) return\n autoCompactSink.push({\n phase: event.phase,\n data: event.data,\n })\n })\n sinkRegistered = true\n}\n\nexport function emitAutoCompactTelemetryEvent(\n phase: string,\n data?: Record<string, any>,\n) {\n ensureAutoCompactTelemetryRegistered()\n emitTelemetryEvent({\n channel: 'auto_compact',\n phase,\n data,\n timestamp: Date.now(),\n })\n}\n\nexport function getAutoCompactMetricsSnapshot() {\n ensureAutoCompactTelemetryRegistered()\n return autoCompactSink.snapshot()\n}\n\nexport function resetAutoCompactTelemetry() {\n autoCompactSink.clear()\n}\n\nexport function mapDebugEventToTelemetryEvent(\n phase: string,\n data?: Record<string, any>,\n): TelemetryEvent {\n return {\n channel: 'auto_compact',\n phase,\n data,\n timestamp: Date.now(),\n }\n}\n\nensureAutoCompactTelemetryRegistered()\n", "export * from './core'\n\nimport type { SetToolJSXFn, ToolUseContext } from '@tool'\nimport type { Message } from '@query'\n\nexport async function processUserInput(\n input: string,\n mode: 'bash' | 'prompt' | 'pyb',\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n options?: {\n isPybRequest?: boolean\n pybContext?: string\n }\n },\n pastedImages: Array<{\n placeholder: string\n data: string\n mediaType: string\n }> | null,\n): Promise<Message[]> {\n const impl = await import('./userInput')\n return impl.processUserInput(input, mode, setToolJSX, context, pastedImages)\n}\n\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { createRequire as __pybCreateRequire } from "node:module";
|
|
2
|
-
const require = __pybCreateRequire(import.meta.url);
|
|
3
|
-
import {
|
|
4
|
-
getCommand,
|
|
5
|
-
getCommands,
|
|
6
|
-
hasCommand
|
|
7
|
-
} from "./chunk-2UVNJF72.js";
|
|
8
|
-
import "./chunk-GC32L3BW.js";
|
|
9
|
-
import "./chunk-XRYS53BQ.js";
|
|
10
|
-
import "./chunk-IMTSYQJ5.js";
|
|
11
|
-
import "./chunk-5P7HBXTD.js";
|
|
12
|
-
import "./chunk-FROHRXK3.js";
|
|
13
|
-
import "./chunk-UL4MJNFE.js";
|
|
14
|
-
import "./chunk-UV4CROSJ.js";
|
|
15
|
-
import "./chunk-F4AXICO7.js";
|
|
16
|
-
import "./chunk-6CJP4KDE.js";
|
|
17
|
-
import "./chunk-2QGZFE6O.js";
|
|
18
|
-
import "./chunk-P576YHXH.js";
|
|
19
|
-
import "./chunk-XKYHFZEC.js";
|
|
20
|
-
import "./chunk-UGK22Z7U.js";
|
|
21
|
-
import "./chunk-2XIK7WIG.js";
|
|
22
|
-
import "./chunk-AY6XGM2V.js";
|
|
23
|
-
import "./chunk-YQZ36RXO.js";
|
|
24
|
-
import "./chunk-UNNVICVU.js";
|
|
25
|
-
import "./chunk-XRJ6MMNI.js";
|
|
26
|
-
import "./chunk-64D4RTUL.js";
|
|
27
|
-
import "./chunk-A3BVXXA3.js";
|
|
28
|
-
import "./chunk-WGO4I32J.js";
|
|
29
|
-
import "./chunk-3DFBSQIT.js";
|
|
30
|
-
import "./chunk-B6IMQJZM.js";
|
|
31
|
-
import "./chunk-OUXHGDLH.js";
|
|
32
|
-
import "./chunk-4WBXCBNQ.js";
|
|
33
|
-
import "./chunk-QWIBSCDN.js";
|
|
34
|
-
import "./chunk-2TSFRYBQ.js";
|
|
35
|
-
import "./chunk-HL57BCKA.js";
|
|
36
|
-
import "./chunk-5HEO7RAF.js";
|
|
37
|
-
import "./chunk-UZ34JEUK.js";
|
|
38
|
-
import "./chunk-ODMS5WD2.js";
|
|
39
|
-
import "./chunk-BJSWTHRM.js";
|
|
40
|
-
import "./chunk-MES7PKDS.js";
|
|
41
|
-
import "./chunk-3CEAIULU.js";
|
|
42
|
-
import "./chunk-KFEHHKZ2.js";
|
|
43
|
-
import "./chunk-BY5NKQMC.js";
|
|
44
|
-
import "./chunk-O5YZTB5G.js";
|
|
45
|
-
import "./chunk-3PDQTTHC.js";
|
|
46
|
-
import "./chunk-RQVLBMP7.js";
|
|
47
|
-
import "./chunk-N22YCAOH.js";
|
|
48
|
-
import "./chunk-WFZABDD5.js";
|
|
49
|
-
import "./chunk-R473IZUI.js";
|
|
50
|
-
import "./chunk-I3J4JYES.js";
|
|
51
|
-
export {
|
|
52
|
-
getCommand,
|
|
53
|
-
getCommands,
|
|
54
|
-
hasCommand
|
|
55
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/tools/filesystem/FileEditTool/lspAnchor.ts"],
|
|
4
|
-
"sourcesContent": ["import { getSessionRoot } from '@utils/state'\nimport { LspFacade } from '../../../lsp/index'\n\nexport async function findLspAnchor(filePath: string, searchBlock: string): Promise<{ startLine: number, endLine: number } | null> {\n try {\n const symbols = await LspFacade.documentSymbolRaw(filePath, getSessionRoot())\n if (!symbols || !Array.isArray(symbols)) {\n return null\n }\n\n // 1. Extract potential symbol names from search block\n const names = extractSymbolNames(searchBlock)\n if (names.length === 0) {\n return null\n }\n\n // 2. Find matching symbol in document symbols\n const matchingSymbol = findSymbolByName(symbols, names)\n \n if (matchingSymbol) {\n // Found a symbol!\n // The range is 0-based. Return it.\n // Note: DocumentSymbol has 'range' and 'selectionRange'. 'range' covers the whole symbol.\n if (matchingSymbol.range) {\n return {\n startLine: matchingSymbol.range.start.line,\n endLine: matchingSymbol.range.end.line\n }\n } else if (matchingSymbol.location && matchingSymbol.location.range) {\n // SymbolInformation has 'location'\n return {\n startLine: matchingSymbol.location.range.start.line,\n endLine: matchingSymbol.location.range.end.line\n }\n }\n }\n } catch (e) {\n // console.error(\"LSP Anchor failed\", e)\n }\n \n return null\n}\n\nfunction extractSymbolNames(block: string): string[] {\n const names: Set<string> = new Set()\n const lines = block.split('\\n')\n for (const line of lines) {\n // Simple regexes for common languages (TS/JS/Python/etc)\n const functionMatch = line.match(/function\\s+([a-zA-Z0-9_]+)/)\n if (functionMatch) names.add(functionMatch[1])\n\n const classMatch = line.match(/class\\s+([a-zA-Z0-9_]+)/)\n if (classMatch) names.add(classMatch[1])\n\n const constMatch = line.match(/(?:const|let|var)\\s+([a-zA-Z0-9_]+)\\s*=/)\n if (constMatch) names.add(constMatch[1])\n \n // Method definition in class/object: \" methodName(\" or \" methodName: \"\n const methodMatch = line.match(/^\\s*([a-zA-Z0-9_]+)\\s*[\\(:=]/)\n if (methodMatch) names.add(methodMatch[1])\n \n // Python def\n const defMatch = line.match(/def\\s+([a-zA-Z0-9_]+)/)\n if (defMatch) names.add(defMatch[1])\n }\n return Array.from(names)\n}\n\nfunction findSymbolByName(symbols: any[], names: string[]): any | null {\n for (const symbol of symbols) {\n if (names.includes(symbol.name)) {\n return symbol\n }\n if (symbol.children) {\n const childMatch = findSymbolByName(symbol.children, names)\n if (childMatch) return childMatch\n }\n }\n return null\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAGA,eAAsB,cAAc,UAAkB,aAA6E;AAC/H,MAAI;AACA,UAAM,UAAU,MAAM,UAAU,kBAAkB,UAAU,eAAe,CAAC;AAC5E,QAAI,CAAC,WAAW,CAAC,MAAM,QAAQ,OAAO,GAAG;AACrC,aAAO;AAAA,IACX;AAGA,UAAM,QAAQ,mBAAmB,WAAW;AAC5C,QAAI,MAAM,WAAW,GAAG;AACpB,aAAO;AAAA,IACX;AAGA,UAAM,iBAAiB,iBAAiB,SAAS,KAAK;AAEtD,QAAI,gBAAgB;AAIhB,UAAI,eAAe,OAAO;AACtB,eAAO;AAAA,UACH,WAAW,eAAe,MAAM,MAAM;AAAA,UACtC,SAAS,eAAe,MAAM,IAAI;AAAA,QACtC;AAAA,MACJ,WAAW,eAAe,YAAY,eAAe,SAAS,OAAO;AAEjE,eAAO;AAAA,UACH,WAAW,eAAe,SAAS,MAAM,MAAM;AAAA,UAC/C,SAAS,eAAe,SAAS,MAAM,IAAI;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAG;AAAA,EAEZ;AAEA,SAAO;AACX;AAEA,SAAS,mBAAmB,OAAyB;AACjD,QAAM,QAAqB,oBAAI,IAAI;AACnC,QAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,aAAW,QAAQ,OAAO;AAEtB,UAAM,gBAAgB,KAAK,MAAM,4BAA4B;AAC7D,QAAI,cAAe,OAAM,IAAI,cAAc,CAAC,CAAC;AAE7C,UAAM,aAAa,KAAK,MAAM,yBAAyB;AACvD,QAAI,WAAY,OAAM,IAAI,WAAW,CAAC,CAAC;AAEvC,UAAM,aAAa,KAAK,MAAM,yCAAyC;AACvE,QAAI,WAAY,OAAM,IAAI,WAAW,CAAC,CAAC;AAGvC,UAAM,cAAc,KAAK,MAAM,8BAA8B;AAC7D,QAAI,YAAa,OAAM,IAAI,YAAY,CAAC,CAAC;AAGzC,UAAM,WAAW,KAAK,MAAM,uBAAuB;AACnD,QAAI,SAAU,OAAM,IAAI,SAAS,CAAC,CAAC;AAAA,EACvC;AACA,SAAO,MAAM,KAAK,KAAK;AAC3B;AAEA,SAAS,iBAAiB,SAAgB,OAA6B;AACnE,aAAW,UAAU,SAAS;AAC1B,QAAI,MAAM,SAAS,OAAO,IAAI,GAAG;AAC7B,aAAO;AAAA,IACX;AACA,QAAI,OAAO,UAAU;AACjB,YAAM,aAAa,iBAAiB,OAAO,UAAU,KAAK;AAC1D,UAAI,WAAY,QAAO;AAAA,IAC3B;AAAA,EACJ;AACA,SAAO;AACX;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|