pybao-cli 1.5.7 → 1.5.9

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.
Files changed (169) hide show
  1. package/dist/REPL-FDBOFOZN.js +50 -0
  2. package/dist/{acp-2LMTSBAU.js → acp-TKO6ZSSV.js} +54 -36
  3. package/dist/acp-TKO6ZSSV.js.map +7 -0
  4. package/dist/{agentsValidate-YQSHYCYC.js → agentsValidate-RDNLI7GA.js} +7 -7
  5. package/dist/{ask-4Z4LH5IS.js → ask-KTXMYPIA.js} +60 -34
  6. package/dist/ask-KTXMYPIA.js.map +7 -0
  7. package/dist/{autoUpdater-UTX7ZX2N.js → autoUpdater-53BZ6QWD.js} +3 -3
  8. package/dist/{chunk-OY6SB5B3.js → chunk-276RV4DQ.js} +4 -4
  9. package/dist/{chunk-7FFBXWS3.js → chunk-35X2VS4L.js} +3 -3
  10. package/dist/{chunk-VZDDKAL2.js → chunk-4C2CGHBI.js} +2 -2
  11. package/dist/{chunk-Y2RSIF7P.js → chunk-4KPVE4K7.js} +1 -1
  12. package/dist/{chunk-SDKYJZWD.js → chunk-57GJQMFS.js} +2 -2
  13. package/dist/{chunk-3JH34RBY.js → chunk-6PXEXL7C.js} +2 -2
  14. package/dist/{chunk-IKMMFSNJ.js → chunk-AMQ6XZOU.js} +1 -1
  15. package/dist/{chunk-W4PXRGP3.js → chunk-AWRDD6BG.js} +18 -1
  16. package/dist/chunk-AWRDD6BG.js.map +7 -0
  17. package/dist/{chunk-5JKCAVMI.js → chunk-BZGQQ4WZ.js} +3 -3
  18. package/dist/{chunk-4BFEUSKN.js → chunk-CATWZQ3R.js} +2 -2
  19. package/dist/{chunk-EGJRWKZ6.js → chunk-CPLMSZ63.js} +4 -4
  20. package/dist/{chunk-PI5RBPFA.js → chunk-DA6NJEFI.js} +2 -2
  21. package/dist/{chunk-IFC2PLAM.js → chunk-E35YJNX2.js} +4 -4
  22. package/dist/{chunk-TIMEEE5U.js → chunk-G7DKRXDS.js} +1 -4
  23. package/dist/{chunk-5F6IQJHF.js → chunk-HIJYNCCN.js} +1 -1
  24. package/dist/{chunk-F7HYDAWW.js → chunk-JE43CQYI.js} +3 -3
  25. package/dist/{chunk-JEAXJP2E.js → chunk-JLC2I3EY.js} +1 -1
  26. package/dist/chunk-JRMAK4PK.js +926 -0
  27. package/dist/chunk-JRMAK4PK.js.map +7 -0
  28. package/dist/{chunk-KLD4WAB6.js → chunk-KNLP4UO6.js} +4 -4
  29. package/dist/chunk-L3R7MPZU.js +81 -0
  30. package/dist/{chunk-ZD6NMP33.js.map → chunk-L3R7MPZU.js.map} +1 -1
  31. package/dist/{chunk-PMYMUSB4.js → chunk-LEYWQQ7V.js} +3 -3
  32. package/dist/{chunk-EN7L7JWN.js → chunk-LIOZM4KE.js} +1 -1
  33. package/dist/chunk-OC5CZWBQ.js.map +7 -0
  34. package/dist/{chunk-SWNNPHFY.js → chunk-PH6DPTO3.js} +2025 -1321
  35. package/dist/chunk-PH6DPTO3.js.map +7 -0
  36. package/dist/{chunk-CJ2YYIJN.js → chunk-PPFVOBEG.js} +144 -76
  37. package/dist/chunk-PPFVOBEG.js.map +7 -0
  38. package/dist/{chunk-4R7NUADF.js → chunk-Q5EZLUFC.js} +1 -1
  39. package/dist/{chunk-LYMH46VN.js → chunk-QMN64ICT.js} +3 -3
  40. package/dist/{chunk-VBV5RHIK.js → chunk-R4ZEH3KJ.js} +1 -1
  41. package/dist/{chunk-TKEWBSVM.js → chunk-SNASBZ2C.js} +3 -3
  42. package/dist/chunk-T7P3SSAQ.js +78 -0
  43. package/dist/chunk-T7P3SSAQ.js.map +7 -0
  44. package/dist/{chunk-T7UTA73F.js → chunk-TLZS274Y.js} +3 -3
  45. package/dist/{chunk-IOP3VA4X.js → chunk-YSL5H7NJ.js} +2 -2
  46. package/dist/{chunk-HFVRQO2J.js → chunk-YTEQEQ56.js} +48 -40
  47. package/dist/chunk-YTEQEQ56.js.map +7 -0
  48. package/dist/{cli-N3Q4D4BW.js → cli-LYWCNPC6.js} +131 -102
  49. package/dist/cli-LYWCNPC6.js.map +7 -0
  50. package/dist/commands-DYXAWJO6.js +54 -0
  51. package/dist/{config-GZXNPIIG.js → config-66BMMOES.js} +4 -4
  52. package/dist/{context-TUO5CUR3.js → context-PG7YTQCJ.js} +6 -6
  53. package/dist/conversationPersistence-DB6IUU2I.js +13 -0
  54. package/dist/{conversationTracker-APB6PR5Z.js → conversationTracker-WG3J56PX.js} +4 -3
  55. package/dist/{customCommands-J4DV6OI5.js → customCommands-XDKUVT73.js} +4 -4
  56. package/dist/{env-YBYEMHYQ.js → env-FW74XJHK.js} +2 -2
  57. package/dist/{file-KIBY6XZX.js → file-U2NXQ6RC.js} +4 -4
  58. package/dist/index.js +3 -3
  59. package/dist/{llm-T7C6QJWB.js → llm-6VJMMPDO.js} +416 -49
  60. package/dist/llm-6VJMMPDO.js.map +7 -0
  61. package/dist/{llmLazy-FDVUCPDQ.js → llmLazy-LYGZWC7G.js} +1 -1
  62. package/dist/{loader-QCHS455W.js → loader-DMZVU2XJ.js} +4 -4
  63. package/dist/{lsp-TE2SQ6CO.js → lsp-6LNF5DQB.js} +6 -6
  64. package/dist/{lspAnchor-IZ7YQJ64.js → lspAnchor-SF5Y7ZJT.js} +6 -6
  65. package/dist/{mcp-PLAWUZOQ.js → mcp-NLDX3RQE.js} +7 -7
  66. package/dist/{mentionProcessor-2O3AMZHB.js → mentionProcessor-BMX6VGRH.js} +5 -5
  67. package/dist/{messages-ZHFZ2OOG.js → messages-OTQ6IJM5.js} +9 -5
  68. package/dist/{model-GBC2PBVJ.js → model-KWGEASLY.js} +5 -5
  69. package/dist/{openai-2V2J23AE.js → openai-XIRWQY5H.js} +5 -5
  70. package/dist/{outputStyles-WD4VD4GZ.js → outputStyles-HKYM5C76.js} +4 -4
  71. package/dist/{pluginRuntime-WNZS26EV.js → pluginRuntime-25Y2MVIN.js} +6 -6
  72. package/dist/{pluginValidation-YP7MW35I.js → pluginValidation-CIJIQKGB.js} +6 -6
  73. package/dist/prompts-WH3VEHH6.js +56 -0
  74. package/dist/{pybAgentSessionLoad-YABCHELS.js → pybAgentSessionLoad-TF3BFX4S.js} +4 -4
  75. package/dist/{pybAgentSessionResume-C3LNSFQL.js → pybAgentSessionResume-Y5JO4GLH.js} +4 -4
  76. package/dist/{pybAgentStreamJsonSession-DFOGLEOB.js → pybAgentStreamJsonSession-46VLF4QN.js} +4 -3
  77. package/dist/pybAgentStreamJsonSession-46VLF4QN.js.map +7 -0
  78. package/dist/{pybHooks-LGGIB5PJ.js → pybHooks-LZPU4EF6.js} +4 -4
  79. package/dist/query-4B3GTPBN.js +58 -0
  80. package/dist/{registry-EYMCKHRG.js → registry-6LUE7ZWC.js} +5 -5
  81. package/dist/{ripgrep-JZN2MVSK.js → ripgrep-KVB55D22.js} +3 -3
  82. package/dist/{skillMarketplace-ETYXMAXF.js → skillMarketplace-2IVEPC2E.js} +3 -3
  83. package/dist/{state-MAVHRDNE.js → state-OGBESWFS.js} +2 -2
  84. package/dist/{theme-AUEZ6SNA.js → theme-QQ2SCFEK.js} +5 -5
  85. package/dist/{toolPermissionSettings-7JZYBUZC.js → toolPermissionSettings-ZGGPBK6S.js} +6 -6
  86. package/dist/tools-UXPFIHD4.js +55 -0
  87. package/dist/tools-UXPFIHD4.js.map +7 -0
  88. package/dist/{userInput-V6RU4BEQ.js → userInput-75VCTJDE.js} +76 -49
  89. package/dist/userInput-75VCTJDE.js.map +7 -0
  90. package/package.json +18 -1
  91. package/dist/REPL-YW6AH5YU.js +0 -49
  92. package/dist/acp-2LMTSBAU.js.map +0 -7
  93. package/dist/ask-4Z4LH5IS.js.map +0 -7
  94. package/dist/chunk-CJ2YYIJN.js.map +0 -7
  95. package/dist/chunk-HFVRQO2J.js.map +0 -7
  96. package/dist/chunk-O6DTZU7F.js.map +0 -7
  97. package/dist/chunk-SWNNPHFY.js.map +0 -7
  98. package/dist/chunk-W4PXRGP3.js.map +0 -7
  99. package/dist/chunk-YNGGZILT.js +0 -516
  100. package/dist/chunk-YNGGZILT.js.map +0 -7
  101. package/dist/chunk-ZD6NMP33.js +0 -240
  102. package/dist/cli-N3Q4D4BW.js.map +0 -7
  103. package/dist/commands-OOINF26E.js +0 -53
  104. package/dist/llm-T7C6QJWB.js.map +0 -7
  105. package/dist/prompts-QPYUI6SX.js +0 -55
  106. package/dist/pybAgentStreamJsonSession-DFOGLEOB.js.map +0 -7
  107. package/dist/query-EC6HGBDS.js +0 -57
  108. package/dist/tools-3JFVDDSZ.js +0 -54
  109. package/dist/userInput-V6RU4BEQ.js.map +0 -7
  110. /package/dist/{REPL-YW6AH5YU.js.map → REPL-FDBOFOZN.js.map} +0 -0
  111. /package/dist/{agentsValidate-YQSHYCYC.js.map → agentsValidate-RDNLI7GA.js.map} +0 -0
  112. /package/dist/{autoUpdater-UTX7ZX2N.js.map → autoUpdater-53BZ6QWD.js.map} +0 -0
  113. /package/dist/{chunk-OY6SB5B3.js.map → chunk-276RV4DQ.js.map} +0 -0
  114. /package/dist/{chunk-7FFBXWS3.js.map → chunk-35X2VS4L.js.map} +0 -0
  115. /package/dist/{chunk-VZDDKAL2.js.map → chunk-4C2CGHBI.js.map} +0 -0
  116. /package/dist/{chunk-Y2RSIF7P.js.map → chunk-4KPVE4K7.js.map} +0 -0
  117. /package/dist/{chunk-SDKYJZWD.js.map → chunk-57GJQMFS.js.map} +0 -0
  118. /package/dist/{chunk-3JH34RBY.js.map → chunk-6PXEXL7C.js.map} +0 -0
  119. /package/dist/{chunk-IKMMFSNJ.js.map → chunk-AMQ6XZOU.js.map} +0 -0
  120. /package/dist/{chunk-5JKCAVMI.js.map → chunk-BZGQQ4WZ.js.map} +0 -0
  121. /package/dist/{chunk-4BFEUSKN.js.map → chunk-CATWZQ3R.js.map} +0 -0
  122. /package/dist/{chunk-EGJRWKZ6.js.map → chunk-CPLMSZ63.js.map} +0 -0
  123. /package/dist/{chunk-PI5RBPFA.js.map → chunk-DA6NJEFI.js.map} +0 -0
  124. /package/dist/{chunk-IFC2PLAM.js.map → chunk-E35YJNX2.js.map} +0 -0
  125. /package/dist/{chunk-TIMEEE5U.js.map → chunk-G7DKRXDS.js.map} +0 -0
  126. /package/dist/{chunk-5F6IQJHF.js.map → chunk-HIJYNCCN.js.map} +0 -0
  127. /package/dist/{chunk-F7HYDAWW.js.map → chunk-JE43CQYI.js.map} +0 -0
  128. /package/dist/{chunk-JEAXJP2E.js.map → chunk-JLC2I3EY.js.map} +0 -0
  129. /package/dist/{chunk-KLD4WAB6.js.map → chunk-KNLP4UO6.js.map} +0 -0
  130. /package/dist/{chunk-PMYMUSB4.js.map → chunk-LEYWQQ7V.js.map} +0 -0
  131. /package/dist/{chunk-EN7L7JWN.js.map → chunk-LIOZM4KE.js.map} +0 -0
  132. /package/dist/{chunk-O6DTZU7F.js → chunk-OC5CZWBQ.js} +0 -0
  133. /package/dist/{chunk-4R7NUADF.js.map → chunk-Q5EZLUFC.js.map} +0 -0
  134. /package/dist/{chunk-LYMH46VN.js.map → chunk-QMN64ICT.js.map} +0 -0
  135. /package/dist/{chunk-VBV5RHIK.js.map → chunk-R4ZEH3KJ.js.map} +0 -0
  136. /package/dist/{chunk-TKEWBSVM.js.map → chunk-SNASBZ2C.js.map} +0 -0
  137. /package/dist/{chunk-T7UTA73F.js.map → chunk-TLZS274Y.js.map} +0 -0
  138. /package/dist/{chunk-IOP3VA4X.js.map → chunk-YSL5H7NJ.js.map} +0 -0
  139. /package/dist/{commands-OOINF26E.js.map → commands-DYXAWJO6.js.map} +0 -0
  140. /package/dist/{config-GZXNPIIG.js.map → config-66BMMOES.js.map} +0 -0
  141. /package/dist/{context-TUO5CUR3.js.map → context-PG7YTQCJ.js.map} +0 -0
  142. /package/dist/{conversationTracker-APB6PR5Z.js.map → conversationPersistence-DB6IUU2I.js.map} +0 -0
  143. /package/dist/{customCommands-J4DV6OI5.js.map → conversationTracker-WG3J56PX.js.map} +0 -0
  144. /package/dist/{env-YBYEMHYQ.js.map → customCommands-XDKUVT73.js.map} +0 -0
  145. /package/dist/{file-KIBY6XZX.js.map → env-FW74XJHK.js.map} +0 -0
  146. /package/dist/{llmLazy-FDVUCPDQ.js.map → file-U2NXQ6RC.js.map} +0 -0
  147. /package/dist/{loader-QCHS455W.js.map → llmLazy-LYGZWC7G.js.map} +0 -0
  148. /package/dist/{lsp-TE2SQ6CO.js.map → loader-DMZVU2XJ.js.map} +0 -0
  149. /package/dist/{mcp-PLAWUZOQ.js.map → lsp-6LNF5DQB.js.map} +0 -0
  150. /package/dist/{lspAnchor-IZ7YQJ64.js.map → lspAnchor-SF5Y7ZJT.js.map} +0 -0
  151. /package/dist/{messages-ZHFZ2OOG.js.map → mcp-NLDX3RQE.js.map} +0 -0
  152. /package/dist/{mentionProcessor-2O3AMZHB.js.map → mentionProcessor-BMX6VGRH.js.map} +0 -0
  153. /package/dist/{model-GBC2PBVJ.js.map → messages-OTQ6IJM5.js.map} +0 -0
  154. /package/dist/{openai-2V2J23AE.js.map → model-KWGEASLY.js.map} +0 -0
  155. /package/dist/{outputStyles-WD4VD4GZ.js.map → openai-XIRWQY5H.js.map} +0 -0
  156. /package/dist/{pluginValidation-YP7MW35I.js.map → outputStyles-HKYM5C76.js.map} +0 -0
  157. /package/dist/{pluginRuntime-WNZS26EV.js.map → pluginRuntime-25Y2MVIN.js.map} +0 -0
  158. /package/dist/{prompts-QPYUI6SX.js.map → pluginValidation-CIJIQKGB.js.map} +0 -0
  159. /package/dist/{pybAgentSessionLoad-YABCHELS.js.map → prompts-WH3VEHH6.js.map} +0 -0
  160. /package/dist/{pybAgentSessionResume-C3LNSFQL.js.map → pybAgentSessionLoad-TF3BFX4S.js.map} +0 -0
  161. /package/dist/{pybHooks-LGGIB5PJ.js.map → pybAgentSessionResume-Y5JO4GLH.js.map} +0 -0
  162. /package/dist/{query-EC6HGBDS.js.map → pybHooks-LZPU4EF6.js.map} +0 -0
  163. /package/dist/{registry-EYMCKHRG.js.map → query-4B3GTPBN.js.map} +0 -0
  164. /package/dist/{ripgrep-JZN2MVSK.js.map → registry-6LUE7ZWC.js.map} +0 -0
  165. /package/dist/{skillMarketplace-ETYXMAXF.js.map → ripgrep-KVB55D22.js.map} +0 -0
  166. /package/dist/{state-MAVHRDNE.js.map → skillMarketplace-2IVEPC2E.js.map} +0 -0
  167. /package/dist/{theme-AUEZ6SNA.js.map → state-OGBESWFS.js.map} +0 -0
  168. /package/dist/{toolPermissionSettings-7JZYBUZC.js.map → theme-QQ2SCFEK.js.map} +0 -0
  169. /package/dist/{tools-3JFVDDSZ.js.map → toolPermissionSettings-ZGGPBK6S.js.map} +0 -0
@@ -2,39 +2,37 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getToolDescription
5
- } from "./chunk-O6DTZU7F.js";
5
+ } from "./chunk-OC5CZWBQ.js";
6
6
  import {
7
- emitTelemetryEvent,
8
7
  formatSystemPromptWithContext,
9
8
  generatePybContext,
10
9
  getCLISyspromptPrefix,
11
- getModelCapabilities,
12
10
  getReasoningEffort,
13
11
  models_default,
14
- refreshPybContext,
15
- resolveModelResponsePolicy
16
- } from "./chunk-SWNNPHFY.js";
17
- import "./chunk-JEAXJP2E.js";
18
- import "./chunk-5JKCAVMI.js";
19
- import "./chunk-CJ2YYIJN.js";
12
+ refreshPybContext
13
+ } from "./chunk-PH6DPTO3.js";
14
+ import "./chunk-Q5EZLUFC.js";
15
+ import "./chunk-JLC2I3EY.js";
16
+ import "./chunk-L3R7MPZU.js";
17
+ import "./chunk-BZGQQ4WZ.js";
18
+ import "./chunk-PPFVOBEG.js";
19
+ import "./chunk-T7P3SSAQ.js";
20
20
  import "./chunk-F4AXICO7.js";
21
- import "./chunk-4R7NUADF.js";
22
- import "./chunk-ZD6NMP33.js";
23
21
  import "./chunk-5P7HBXTD.js";
24
- import "./chunk-T7UTA73F.js";
25
- import "./chunk-3JH34RBY.js";
22
+ import "./chunk-TLZS274Y.js";
23
+ import "./chunk-6PXEXL7C.js";
26
24
  import {
27
25
  getCompletionWithProfile,
28
26
  getGPT5CompletionWithProfile
29
- } from "./chunk-4BFEUSKN.js";
27
+ } from "./chunk-CATWZQ3R.js";
30
28
  import "./chunk-XKYHFZEC.js";
31
- import "./chunk-KLD4WAB6.js";
32
- import "./chunk-OY6SB5B3.js";
33
- import "./chunk-VBV5RHIK.js";
34
- import "./chunk-7FFBXWS3.js";
29
+ import "./chunk-KNLP4UO6.js";
30
+ import "./chunk-276RV4DQ.js";
31
+ import "./chunk-R4ZEH3KJ.js";
32
+ import "./chunk-35X2VS4L.js";
35
33
  import "./chunk-UNNVICVU.js";
36
- import "./chunk-IOP3VA4X.js";
37
- import "./chunk-PI5RBPFA.js";
34
+ import "./chunk-YSL5H7NJ.js";
35
+ import "./chunk-DA6NJEFI.js";
38
36
  import "./chunk-A3BVXXA3.js";
39
37
  import {
40
38
  API_ERROR_MESSAGE_PREFIX,
@@ -44,8 +42,9 @@ import {
44
42
  NO_CONTENT_MESSAGE,
45
43
  PROMPT_TOO_LONG_ERROR_MESSAGE,
46
44
  createAssistantAPIErrorMessage,
45
+ emitTelemetryEvent,
47
46
  normalizeContentFromAPI
48
- } from "./chunk-YNGGZILT.js";
47
+ } from "./chunk-JRMAK4PK.js";
49
48
  import {
50
49
  processResponsesStream
51
50
  } from "./chunk-OMELVAJD.js";
@@ -56,27 +55,27 @@ import "./chunk-B6IMQJZM.js";
56
55
  import {
57
56
  addToTotalCost
58
57
  } from "./chunk-OUXHGDLH.js";
59
- import "./chunk-SDKYJZWD.js";
58
+ import "./chunk-57GJQMFS.js";
60
59
  import "./chunk-QWIBSCDN.js";
61
- import "./chunk-EGJRWKZ6.js";
62
- import "./chunk-F7HYDAWW.js";
63
- import "./chunk-5F6IQJHF.js";
60
+ import "./chunk-CPLMSZ63.js";
61
+ import "./chunk-JE43CQYI.js";
62
+ import "./chunk-HIJYNCCN.js";
64
63
  import "./chunk-UZ34JEUK.js";
65
- import "./chunk-VZDDKAL2.js";
64
+ import "./chunk-4C2CGHBI.js";
66
65
  import "./chunk-BJSWTHRM.js";
67
66
  import {
68
67
  USE_BEDROCK,
69
68
  USE_VERTEX,
70
69
  getModelManager,
71
70
  getVertexRegionForModel
72
- } from "./chunk-LYMH46VN.js";
73
- import "./chunk-IFC2PLAM.js";
74
- import "./chunk-EN7L7JWN.js";
75
- import "./chunk-Y2RSIF7P.js";
71
+ } from "./chunk-QMN64ICT.js";
72
+ import "./chunk-E35YJNX2.js";
73
+ import "./chunk-LIOZM4KE.js";
74
+ import "./chunk-4KPVE4K7.js";
76
75
  import {
77
76
  getAnthropicApiKey,
78
77
  getGlobalConfig
79
- } from "./chunk-PMYMUSB4.js";
78
+ } from "./chunk-LEYWQQ7V.js";
80
79
  import "./chunk-RQVLBMP7.js";
81
80
  import {
82
81
  debug,
@@ -85,16 +84,16 @@ import {
85
84
  logLLMInteraction,
86
85
  logSystemPromptConstruction,
87
86
  markPhase
88
- } from "./chunk-IKMMFSNJ.js";
87
+ } from "./chunk-AMQ6XZOU.js";
89
88
  import {
90
89
  PRODUCT_COMMAND,
91
90
  env,
92
91
  getCwd,
93
92
  logError
94
- } from "./chunk-TIMEEE5U.js";
93
+ } from "./chunk-G7DKRXDS.js";
95
94
  import {
96
95
  MACRO
97
- } from "./chunk-W4PXRGP3.js";
96
+ } from "./chunk-AWRDD6BG.js";
98
97
  import "./chunk-I3J4JYES.js";
99
98
 
100
99
  // src/services/ai/llm.ts
@@ -1172,6 +1171,151 @@ var ChatCompletionsAdapter = class extends OpenAIAdapter {
1172
1171
  }
1173
1172
  };
1174
1173
 
1174
+ // src/constants/modelCapabilities.ts
1175
+ var GPT5_CAPABILITIES = {
1176
+ apiArchitecture: {
1177
+ primary: "responses_api",
1178
+ fallback: "chat_completions"
1179
+ },
1180
+ parameters: {
1181
+ maxTokensField: "max_output_tokens",
1182
+ supportsReasoningEffort: true,
1183
+ supportsVerbosity: true,
1184
+ temperatureMode: "fixed_one"
1185
+ },
1186
+ toolCalling: {
1187
+ mode: "custom_tools",
1188
+ supportsFreeform: true,
1189
+ supportsAllowedTools: true,
1190
+ supportsParallelCalls: true
1191
+ },
1192
+ stateManagement: {
1193
+ supportsResponseId: true,
1194
+ supportsConversationChaining: true,
1195
+ supportsPreviousResponseId: true
1196
+ },
1197
+ streaming: {
1198
+ supported: true,
1199
+ includesUsage: true
1200
+ }
1201
+ };
1202
+ var CHAT_COMPLETIONS_CAPABILITIES = {
1203
+ apiArchitecture: {
1204
+ primary: "chat_completions"
1205
+ },
1206
+ parameters: {
1207
+ maxTokensField: "max_tokens",
1208
+ supportsReasoningEffort: false,
1209
+ supportsVerbosity: false,
1210
+ temperatureMode: "flexible"
1211
+ },
1212
+ toolCalling: {
1213
+ mode: "function_calling",
1214
+ supportsFreeform: false,
1215
+ supportsAllowedTools: false,
1216
+ supportsParallelCalls: true
1217
+ },
1218
+ stateManagement: {
1219
+ supportsResponseId: false,
1220
+ supportsConversationChaining: false,
1221
+ supportsPreviousResponseId: false
1222
+ },
1223
+ streaming: {
1224
+ supported: true,
1225
+ includesUsage: true
1226
+ }
1227
+ };
1228
+ var MODEL_CAPABILITIES_REGISTRY = {
1229
+ "gpt-5": GPT5_CAPABILITIES,
1230
+ "gpt-5-mini": GPT5_CAPABILITIES,
1231
+ "gpt-5-nano": GPT5_CAPABILITIES,
1232
+ "gpt-5-chat-latest": GPT5_CAPABILITIES,
1233
+ "gpt-5-codex": GPT5_CAPABILITIES,
1234
+ "gpt-4o": CHAT_COMPLETIONS_CAPABILITIES,
1235
+ "gpt-4o-mini": CHAT_COMPLETIONS_CAPABILITIES,
1236
+ "gpt-4-turbo": CHAT_COMPLETIONS_CAPABILITIES,
1237
+ "gpt-4": CHAT_COMPLETIONS_CAPABILITIES,
1238
+ "claude-3-5-sonnet-20241022": CHAT_COMPLETIONS_CAPABILITIES,
1239
+ "claude-3-5-haiku-20241022": CHAT_COMPLETIONS_CAPABILITIES,
1240
+ "claude-3-opus-20240229": CHAT_COMPLETIONS_CAPABILITIES,
1241
+ o1: {
1242
+ ...CHAT_COMPLETIONS_CAPABILITIES,
1243
+ parameters: {
1244
+ ...CHAT_COMPLETIONS_CAPABILITIES.parameters,
1245
+ maxTokensField: "max_completion_tokens",
1246
+ temperatureMode: "fixed_one"
1247
+ }
1248
+ },
1249
+ "o1-mini": {
1250
+ ...CHAT_COMPLETIONS_CAPABILITIES,
1251
+ parameters: {
1252
+ ...CHAT_COMPLETIONS_CAPABILITIES.parameters,
1253
+ maxTokensField: "max_completion_tokens",
1254
+ temperatureMode: "fixed_one"
1255
+ }
1256
+ },
1257
+ "o1-preview": {
1258
+ ...CHAT_COMPLETIONS_CAPABILITIES,
1259
+ parameters: {
1260
+ ...CHAT_COMPLETIONS_CAPABILITIES.parameters,
1261
+ maxTokensField: "max_completion_tokens",
1262
+ temperatureMode: "fixed_one"
1263
+ }
1264
+ }
1265
+ };
1266
+ function inferModelCapabilities(modelName) {
1267
+ if (!modelName) return null;
1268
+ const lowerName = modelName.toLowerCase();
1269
+ if (lowerName.includes("gpt-5") || lowerName.includes("gpt5")) {
1270
+ return GPT5_CAPABILITIES;
1271
+ }
1272
+ if (lowerName.includes("gpt-6") || lowerName.includes("gpt6")) {
1273
+ return {
1274
+ ...GPT5_CAPABILITIES,
1275
+ streaming: { supported: true, includesUsage: true }
1276
+ };
1277
+ }
1278
+ if (lowerName.includes("glm-5") || lowerName.includes("glm5")) {
1279
+ return {
1280
+ ...CHAT_COMPLETIONS_CAPABILITIES,
1281
+ toolCalling: {
1282
+ ...CHAT_COMPLETIONS_CAPABILITIES.toolCalling,
1283
+ supportsAllowedTools: false
1284
+ }
1285
+ };
1286
+ }
1287
+ if (lowerName.startsWith("o1") || lowerName.includes("o1-")) {
1288
+ return {
1289
+ ...CHAT_COMPLETIONS_CAPABILITIES,
1290
+ parameters: {
1291
+ ...CHAT_COMPLETIONS_CAPABILITIES.parameters,
1292
+ maxTokensField: "max_completion_tokens",
1293
+ temperatureMode: "fixed_one"
1294
+ }
1295
+ };
1296
+ }
1297
+ return null;
1298
+ }
1299
+ var capabilityCache = /* @__PURE__ */ new Map();
1300
+ function getModelCapabilities(modelName) {
1301
+ if (capabilityCache.has(modelName)) {
1302
+ return capabilityCache.get(modelName);
1303
+ }
1304
+ if (MODEL_CAPABILITIES_REGISTRY[modelName]) {
1305
+ const capabilities = MODEL_CAPABILITIES_REGISTRY[modelName];
1306
+ capabilityCache.set(modelName, capabilities);
1307
+ return capabilities;
1308
+ }
1309
+ const inferred = inferModelCapabilities(modelName);
1310
+ if (inferred) {
1311
+ capabilityCache.set(modelName, inferred);
1312
+ return inferred;
1313
+ }
1314
+ const defaultCapabilities = CHAT_COMPLETIONS_CAPABILITIES;
1315
+ capabilityCache.set(modelName, defaultCapabilities);
1316
+ return defaultCapabilities;
1317
+ }
1318
+
1175
1319
  // src/services/ai/modelAdapterFactory.ts
1176
1320
  var ModelAdapterFactory = class {
1177
1321
  static createAdapter(modelProfile) {
@@ -1536,6 +1680,142 @@ function convertAnthropicMessagesToOpenAIMessages(messages) {
1536
1680
  return finalMessages;
1537
1681
  }
1538
1682
 
1683
+ // src/services/ai/policyDispatch/policyConfigLoader.ts
1684
+ import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
1685
+ import { join, resolve } from "path";
1686
+
1687
+ // src/services/ai/policyDispatch/policyConfigSchema.ts
1688
+ import { z } from "zod";
1689
+ var policyConfigSchema = z.object({
1690
+ version: z.string().min(1),
1691
+ defaults: z.object({
1692
+ reasoningPolicy: z.enum([
1693
+ "preserve_reasoning_blocks",
1694
+ "map_to_provider_options",
1695
+ "flatten_to_text_fallback"
1696
+ ]).optional(),
1697
+ normalizeProviderContent: z.boolean().optional(),
1698
+ trimCrossModelMetadata: z.boolean().optional()
1699
+ }).optional(),
1700
+ overrides: z.array(
1701
+ z.object({
1702
+ model: z.string().min(1).optional(),
1703
+ modelFamily: z.string().min(1).optional(),
1704
+ provider: z.string().min(1).optional(),
1705
+ scenario: z.enum(["query", "auto_compact", "other"]).optional(),
1706
+ reasoningPolicy: z.enum([
1707
+ "preserve_reasoning_blocks",
1708
+ "map_to_provider_options",
1709
+ "flatten_to_text_fallback"
1710
+ ]).optional(),
1711
+ normalizeProviderContent: z.boolean().optional(),
1712
+ trimCrossModelMetadata: z.boolean().optional()
1713
+ })
1714
+ ).optional().default([])
1715
+ });
1716
+
1717
+ // src/services/ai/policyDispatch/policyConfigLoader.ts
1718
+ function getModelFamily(model) {
1719
+ const normalized = String(model || "").toLowerCase();
1720
+ if (normalized.startsWith("gpt-5")) return "gpt-5";
1721
+ if (normalized.startsWith("gpt-4o")) return "gpt-4o";
1722
+ if (!normalized) return "unknown";
1723
+ const segments = normalized.split("-");
1724
+ return segments.length >= 2 ? `${segments[0]}-${segments[1]}` : normalized;
1725
+ }
1726
+ function getDefaultPolicyConfigPath() {
1727
+ return resolve(join(process.cwd(), "config/auto-compact-policy.config.json"));
1728
+ }
1729
+ function loadAutoCompactPolicyConfig(options) {
1730
+ const filePath = resolve(options?.filePath ?? getDefaultPolicyConfigPath());
1731
+ if (!existsSync2(filePath)) return null;
1732
+ try {
1733
+ const raw = readFileSync2(filePath, "utf8");
1734
+ const parsed = JSON.parse(raw);
1735
+ return policyConfigSchema.parse(parsed);
1736
+ } catch {
1737
+ return null;
1738
+ }
1739
+ }
1740
+ function matches(input, override) {
1741
+ if (override.model && override.model !== input.model) return false;
1742
+ if (override.modelFamily && override.modelFamily !== getModelFamily(input.model))
1743
+ return false;
1744
+ if (override.provider && override.provider !== input.provider) return false;
1745
+ if (override.scenario && override.scenario !== input.source) return false;
1746
+ return true;
1747
+ }
1748
+ function selectPolicyOverride(input, config) {
1749
+ const matched = [...config.overrides ?? []].reverse().find((item) => matches(input, item));
1750
+ if (matched) {
1751
+ return {
1752
+ reasoningPolicy: matched.reasoningPolicy,
1753
+ normalizeProviderContent: matched.normalizeProviderContent,
1754
+ trimCrossModelMetadata: matched.trimCrossModelMetadata
1755
+ };
1756
+ }
1757
+ if (config.defaults) {
1758
+ return {
1759
+ reasoningPolicy: config.defaults.reasoningPolicy,
1760
+ normalizeProviderContent: config.defaults.normalizeProviderContent,
1761
+ trimCrossModelMetadata: config.defaults.trimCrossModelMetadata
1762
+ };
1763
+ }
1764
+ return null;
1765
+ }
1766
+
1767
+ // src/services/ai/policyDispatch/index.ts
1768
+ function resolveDefaultReasoningPolicy(model) {
1769
+ const capabilities = getModelCapabilities(model);
1770
+ if (capabilities.apiArchitecture.primary === "responses_api") {
1771
+ return "map_to_provider_options";
1772
+ }
1773
+ return "preserve_reasoning_blocks";
1774
+ }
1775
+ function resolveDefaultNormalizeProviderContent(model) {
1776
+ const capabilities = getModelCapabilities(model);
1777
+ return capabilities.apiArchitecture.primary === "responses_api";
1778
+ }
1779
+ function resolveDefaultTrimCrossModelMetadata(model) {
1780
+ const capabilities = getModelCapabilities(model);
1781
+ return capabilities.apiArchitecture.primary === "responses_api";
1782
+ }
1783
+ function resolveCapabilityDefaults(model) {
1784
+ return {
1785
+ reasoningPolicy: resolveDefaultReasoningPolicy(model),
1786
+ normalizeProviderContent: resolveDefaultNormalizeProviderContent(model),
1787
+ trimCrossModelMetadata: resolveDefaultTrimCrossModelMetadata(model)
1788
+ };
1789
+ }
1790
+ function resolveModelResponsePolicy(input) {
1791
+ const defaults = resolveCapabilityDefaults(input.model);
1792
+ const hasOverride = input.reasoningPolicy !== void 0 || input.normalizeProviderContent !== void 0 || input.trimCrossModelMetadata !== void 0;
1793
+ if (hasOverride) {
1794
+ return {
1795
+ reasoningPolicy: input.reasoningPolicy ?? defaults.reasoningPolicy,
1796
+ normalizeProviderContent: input.normalizeProviderContent ?? defaults.normalizeProviderContent,
1797
+ trimCrossModelMetadata: input.trimCrossModelMetadata ?? defaults.trimCrossModelMetadata,
1798
+ policySource: "context_override"
1799
+ };
1800
+ }
1801
+ const config = loadAutoCompactPolicyConfig();
1802
+ const selection = config ? selectPolicyOverride(input, config) : null;
1803
+ if (selection && (selection.reasoningPolicy !== void 0 || selection.normalizeProviderContent !== void 0 || selection.trimCrossModelMetadata !== void 0)) {
1804
+ return {
1805
+ reasoningPolicy: selection.reasoningPolicy ?? defaults.reasoningPolicy,
1806
+ normalizeProviderContent: selection.normalizeProviderContent ?? defaults.normalizeProviderContent,
1807
+ trimCrossModelMetadata: selection.trimCrossModelMetadata ?? defaults.trimCrossModelMetadata,
1808
+ policySource: "policy_config"
1809
+ };
1810
+ }
1811
+ return {
1812
+ reasoningPolicy: defaults.reasoningPolicy,
1813
+ normalizeProviderContent: defaults.normalizeProviderContent,
1814
+ trimCrossModelMetadata: defaults.trimCrossModelMetadata,
1815
+ policySource: "model_capabilities"
1816
+ };
1817
+ }
1818
+
1539
1819
  // src/services/ai/messageTransform/policies.ts
1540
1820
  function resolvePolicies(context) {
1541
1821
  return resolveModelResponsePolicy({
@@ -1657,6 +1937,7 @@ function applyProviderRules(messages, options) {
1657
1937
 
1658
1938
  // src/services/ai/messageTransform/index.ts
1659
1939
  var MESSAGE_TRANSFORM_RULE_VERSION = "b2-enhanced-v1";
1940
+ var DEFAULT_PRUNE_PLACEHOLDER = "[pruned historical tool output]";
1660
1941
  function collectBlockStats(messages) {
1661
1942
  const stats = {};
1662
1943
  for (const message of messages) {
@@ -1669,8 +1950,63 @@ function collectBlockStats(messages) {
1669
1950
  }
1670
1951
  return stats;
1671
1952
  }
1953
+ function getPruneCheckpointIndex(messages) {
1954
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
1955
+ const state = messages[index]?.message?.compaction?.prune?.state ?? messages[index]?.message?.metadata?.compaction?.prune?.state;
1956
+ if (state === "compacted") return index;
1957
+ }
1958
+ return -1;
1959
+ }
1960
+ function isToolLikeBlock(block) {
1961
+ if (!block || typeof block !== "object") return false;
1962
+ const type = String(block.type ?? "");
1963
+ if (type === "tool_result" || type === "tool_use" || type === "tool-use" || type === "tool-call" || type === "tool_output" || type === "tool-output") {
1964
+ return true;
1965
+ }
1966
+ return "toolUseId" in block || "tool_use_id" in block || "toolCallId" in block || "tool_call_id" in block;
1967
+ }
1968
+ function applyPruneExecution(messages, context) {
1969
+ if (!context.pruneExecutionEnabled) {
1970
+ return { transformed: messages, replacedBlocks: 0, replacedTextMessages: 0 };
1971
+ }
1972
+ const checkpointIndex = getPruneCheckpointIndex(messages);
1973
+ if (checkpointIndex <= 0) {
1974
+ return { transformed: messages, replacedBlocks: 0, replacedTextMessages: 0 };
1975
+ }
1976
+ const placeholder = context.pruneExecutionPlaceholder?.trim() || DEFAULT_PRUNE_PLACEHOLDER;
1977
+ let replacedBlocks = 0;
1978
+ let replacedTextMessages = 0;
1979
+ const transformed = messages.map((message, index) => {
1980
+ if (index >= checkpointIndex) return message;
1981
+ const content = message?.message?.content;
1982
+ if (Array.isArray(content)) {
1983
+ let changed = false;
1984
+ const nextContent = content.map((block) => {
1985
+ if (!isToolLikeBlock(block)) return block;
1986
+ changed = true;
1987
+ replacedBlocks += 1;
1988
+ return {
1989
+ type: "text",
1990
+ text: placeholder
1991
+ };
1992
+ });
1993
+ if (!changed) return message;
1994
+ return {
1995
+ ...message,
1996
+ message: {
1997
+ ...message.message,
1998
+ content: nextContent
1999
+ }
2000
+ };
2001
+ }
2002
+ return message;
2003
+ });
2004
+ return { transformed, replacedBlocks, replacedTextMessages };
2005
+ }
1672
2006
  function transformMessagesForModel(messages, context) {
1673
2007
  const resolved = resolvePolicies(context);
2008
+ const pruneExecutionResult = applyPruneExecution(messages, context);
2009
+ const inputMessages = pruneExecutionResult.transformed;
1674
2010
  if (process.env.PYB_MESSAGE_TRANSFORM_ENABLED === "0") {
1675
2011
  const payload2 = {
1676
2012
  source: context.source,
@@ -1684,8 +2020,11 @@ function transformMessagesForModel(messages, context) {
1684
2020
  ruleVersion: MESSAGE_TRANSFORM_RULE_VERSION,
1685
2021
  ruleHits: createDefaultRuleHits(),
1686
2022
  reason: "disabled",
1687
- messageCount: messages.length,
1688
- outputBlockStats: collectBlockStats(messages)
2023
+ messageCount: inputMessages.length,
2024
+ outputBlockStats: collectBlockStats(inputMessages),
2025
+ pruneExecutionEnabled: context.pruneExecutionEnabled === true,
2026
+ pruneExecutionReplacedBlocks: pruneExecutionResult.replacedBlocks,
2027
+ pruneExecutionReplacedTextMessages: pruneExecutionResult.replacedTextMessages
1689
2028
  };
1690
2029
  debug.state("MESSAGE_TRANSFORM_SKIPPED", payload2);
1691
2030
  emitTelemetryEvent({
@@ -1694,7 +2033,7 @@ function transformMessagesForModel(messages, context) {
1694
2033
  data: payload2,
1695
2034
  timestamp: Date.now()
1696
2035
  });
1697
- return messages;
2036
+ return inputMessages;
1698
2037
  }
1699
2038
  const dryRun = process.env.PYB_MESSAGE_TRANSFORM_DRY_RUN === "1";
1700
2039
  if (dryRun) {
@@ -1709,8 +2048,11 @@ function transformMessagesForModel(messages, context) {
1709
2048
  policySource: resolved.policySource,
1710
2049
  ruleVersion: MESSAGE_TRANSFORM_RULE_VERSION,
1711
2050
  ruleHits: createDefaultRuleHits(),
1712
- messageCount: messages.length,
1713
- outputBlockStats: collectBlockStats(messages)
2051
+ messageCount: inputMessages.length,
2052
+ outputBlockStats: collectBlockStats(inputMessages),
2053
+ pruneExecutionEnabled: context.pruneExecutionEnabled === true,
2054
+ pruneExecutionReplacedBlocks: pruneExecutionResult.replacedBlocks,
2055
+ pruneExecutionReplacedTextMessages: pruneExecutionResult.replacedTextMessages
1714
2056
  };
1715
2057
  debug.state("MESSAGE_TRANSFORM_APPLIED", payload2);
1716
2058
  emitTelemetryEvent({
@@ -1719,9 +2061,9 @@ function transformMessagesForModel(messages, context) {
1719
2061
  data: payload2,
1720
2062
  timestamp: Date.now()
1721
2063
  });
1722
- return messages;
2064
+ return inputMessages;
1723
2065
  }
1724
- const { transformed, ruleHits } = applyProviderRules(messages, {
2066
+ const { transformed, ruleHits } = applyProviderRules(inputMessages, {
1725
2067
  model: context.model,
1726
2068
  reasoningPolicy: resolved.reasoningPolicy,
1727
2069
  normalizeProviderContent: resolved.normalizeProviderContent,
@@ -1738,8 +2080,11 @@ function transformMessagesForModel(messages, context) {
1738
2080
  policySource: resolved.policySource,
1739
2081
  ruleVersion: MESSAGE_TRANSFORM_RULE_VERSION,
1740
2082
  ruleHits,
1741
- messageCount: messages.length,
1742
- outputBlockStats: collectBlockStats(transformed)
2083
+ messageCount: inputMessages.length,
2084
+ outputBlockStats: collectBlockStats(transformed),
2085
+ pruneExecutionEnabled: context.pruneExecutionEnabled === true,
2086
+ pruneExecutionReplacedBlocks: pruneExecutionResult.replacedBlocks,
2087
+ pruneExecutionReplacedTextMessages: pruneExecutionResult.replacedTextMessages
1743
2088
  };
1744
2089
  debug.state("MESSAGE_TRANSFORM_APPLIED", payload);
1745
2090
  emitTelemetryEvent({
@@ -1756,7 +2101,9 @@ function buildMessageTransformContext(params) {
1756
2101
  return {
1757
2102
  source: params.source,
1758
2103
  model: params.model,
1759
- provider: params.provider ?? "openai"
2104
+ provider: params.provider ?? "openai",
2105
+ pruneExecutionEnabled: params.pruneExecutionEnabled,
2106
+ pruneExecutionPlaceholder: params.pruneExecutionPlaceholder
1760
2107
  };
1761
2108
  }
1762
2109
 
@@ -1765,6 +2112,23 @@ function isGPT5Model(modelName) {
1765
2112
  return modelName.startsWith("gpt-5");
1766
2113
  }
1767
2114
  var PROMPT_CACHING_ENABLED = !process.env.DISABLE_PROMPT_CACHING;
2115
+ function parseBooleanFlag(value) {
2116
+ if (value === void 0) return null;
2117
+ const normalized = value.trim().toLowerCase();
2118
+ if (normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on") {
2119
+ return true;
2120
+ }
2121
+ if (normalized === "0" || normalized === "false" || normalized === "no" || normalized === "off") {
2122
+ return false;
2123
+ }
2124
+ return null;
2125
+ }
2126
+ function resolvePruneExecutionEnabled(_toolUseContext) {
2127
+ const explicit = parseBooleanFlag(process.env.PYB_PRUNE_EXECUTION_ENABLED);
2128
+ if (explicit !== null) return explicit;
2129
+ return false;
2130
+ }
2131
+ var resolvePruneExecutionEnabledForTest = resolvePruneExecutionEnabled;
1768
2132
  var SONNET_COST_PER_MILLION_INPUT_TOKENS = 3;
1769
2133
  var SONNET_COST_PER_MILLION_OUTPUT_TOKENS = 15;
1770
2134
  var SONNET_COST_PER_MILLION_PROMPT_CACHE_WRITE_TOKENS = 3.75;
@@ -1772,13 +2136,13 @@ var SONNET_COST_PER_MILLION_PROMPT_CACHE_READ_TOKENS = 0.3;
1772
2136
  var MAX_RETRIES = process.env.USER_TYPE === "SWE_BENCH" ? 100 : 10;
1773
2137
  var BASE_DELAY_MS = 500;
1774
2138
  function abortableDelay(delayMs, signal) {
1775
- return new Promise((resolve, reject) => {
2139
+ return new Promise((resolve2, reject) => {
1776
2140
  if (signal?.aborted) {
1777
2141
  reject(new Error("Request was aborted"));
1778
2142
  return;
1779
2143
  }
1780
2144
  const timeoutId = setTimeout(() => {
1781
- resolve();
2145
+ resolve2();
1782
2146
  }, delayMs);
1783
2147
  if (signal) {
1784
2148
  const abortHandler = () => {
@@ -2353,15 +2717,17 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
2353
2717
  );
2354
2718
  }
2355
2719
  const resolvedModel = modelProfile.modelName;
2720
+ const toolUseContext = options.toolUseContext;
2721
+ const pruneExecutionEnabled = resolvePruneExecutionEnabled(toolUseContext);
2356
2722
  const transformedMessages = transformMessagesForModel(
2357
2723
  messages,
2358
2724
  buildMessageTransformContext({
2359
2725
  source: "query",
2360
2726
  model: resolvedModel,
2361
- provider: modelProfile.provider || "openai"
2727
+ provider: modelProfile.provider || "openai",
2728
+ pruneExecutionEnabled
2362
2729
  })
2363
2730
  );
2364
- const toolUseContext = options.toolUseContext;
2365
2731
  if (toolUseContext && !toolUseContext.responseState) {
2366
2732
  const conversationId = getConversationId(
2367
2733
  toolUseContext.agentId,
@@ -2942,7 +3308,7 @@ async function queryOpenAI(messages, systemPrompt, maxThinkingTokens, tools, sig
2942
3308
  start = Date.now();
2943
3309
  if (adapterContext) {
2944
3310
  if (adapterContext.shouldUseResponses) {
2945
- const { callGPT5ResponsesAPI } = await import("./openai-2V2J23AE.js");
3311
+ const { callGPT5ResponsesAPI } = await import("./openai-XIRWQY5H.js");
2946
3312
  const response = await callGPT5ResponsesAPI(
2947
3313
  modelProfile,
2948
3314
  adapterContext.request,
@@ -3212,6 +3578,7 @@ export {
3212
3578
  queryQuick,
3213
3579
  refreshPybContext,
3214
3580
  resetAnthropicClient,
3581
+ resolvePruneExecutionEnabledForTest,
3215
3582
  userMessageToMessageParam,
3216
3583
  verifyApiKey
3217
3584
  };