pybao-cli 1.3.3 → 1.3.5

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 (192) hide show
  1. package/README.md +1 -440
  2. package/README.zh-CN.md +35 -35
  3. package/cli-acp.js +3 -3
  4. package/cli.js +4 -4
  5. package/dist/REPL-4YZC3LJO.js +42 -0
  6. package/dist/{acp-75HO2LBV.js → acp-SE4B3WSL.js} +43 -43
  7. package/dist/acp-SE4B3WSL.js.map +7 -0
  8. package/dist/{agentsValidate-6Z57ARKC.js → agentsValidate-LZISHE5F.js} +15 -15
  9. package/dist/agentsValidate-LZISHE5F.js.map +7 -0
  10. package/dist/{ask-NXXXCGY4.js → ask-5IDOHI4E.js} +26 -26
  11. package/dist/ask-5IDOHI4E.js.map +7 -0
  12. package/dist/{autoUpdater-PJMGNPUG.js → autoUpdater-ECGS62JN.js} +3 -3
  13. package/dist/{chunk-6RZIUY5K.js → chunk-3X2KNIS3.js} +5 -5
  14. package/dist/chunk-3X2KNIS3.js.map +7 -0
  15. package/dist/{chunk-VTVTEE5N.js → chunk-4U4MLA4R.js} +18 -18
  16. package/dist/chunk-4U4MLA4R.js.map +7 -0
  17. package/dist/{chunk-PCXUZ6AT.js → chunk-5AGDLQAW.js} +3 -3
  18. package/dist/chunk-5AGDLQAW.js.map +7 -0
  19. package/dist/{chunk-27GYWUY2.js → chunk-5JHD6MUL.js} +3 -3
  20. package/dist/chunk-5JHD6MUL.js.map +7 -0
  21. package/dist/{chunk-Z3HMXDXP.js → chunk-5JTKXNG4.js} +6 -6
  22. package/dist/chunk-5JTKXNG4.js.map +7 -0
  23. package/dist/{chunk-HIRIJ2LQ.js → chunk-5UJ7KHM7.js} +34 -33
  24. package/dist/chunk-5UJ7KHM7.js.map +7 -0
  25. package/dist/{chunk-JKGOGSFT.js → chunk-6BSVSUGW.js} +3 -3
  26. package/dist/{chunk-4XPNRLJG.js → chunk-AT7FEIUK.js} +7 -7
  27. package/dist/chunk-AT7FEIUK.js.map +7 -0
  28. package/dist/{chunk-T6GVXTNQ.js → chunk-B6IMQJZM.js} +7 -7
  29. package/dist/chunk-B6IMQJZM.js.map +7 -0
  30. package/dist/{chunk-ZJGXEWKF.js → chunk-BO63S4OP.js} +9 -9
  31. package/dist/chunk-BO63S4OP.js.map +7 -0
  32. package/dist/{chunk-6WELHKDA.js → chunk-C66U55GA.js} +11 -11
  33. package/dist/chunk-C66U55GA.js.map +7 -0
  34. package/dist/{chunk-3KNGJX7Q.js → chunk-CTKC574I.js} +11 -11
  35. package/dist/chunk-CTKC574I.js.map +7 -0
  36. package/dist/{chunk-QBHEERCF.js → chunk-E2R24MD6.js} +139 -129
  37. package/dist/chunk-E2R24MD6.js.map +7 -0
  38. package/dist/{chunk-3PDD7M4T.js → chunk-EGHIB45T.js} +5 -5
  39. package/dist/chunk-EGHIB45T.js.map +7 -0
  40. package/dist/{chunk-TXFCNQDE.js → chunk-G2W2B3A3.js} +25 -25
  41. package/dist/chunk-G2W2B3A3.js.map +7 -0
  42. package/dist/{chunk-XXFY63TM.js → chunk-HBWCMS4E.js} +7 -7
  43. package/dist/chunk-HBWCMS4E.js.map +7 -0
  44. package/dist/{chunk-3ZNSAB7B.js → chunk-KVP2VINI.js} +4 -4
  45. package/dist/chunk-KVP2VINI.js.map +7 -0
  46. package/dist/{chunk-JZDE77EH.js → chunk-MLU76W2R.js} +3 -3
  47. package/dist/{chunk-SWYJOV5E.js → chunk-MRHGVQ5T.js} +1 -1
  48. package/dist/{chunk-SWYJOV5E.js.map → chunk-MRHGVQ5T.js.map} +1 -1
  49. package/dist/{chunk-VRGR4ZTQ.js → chunk-MWPFU2KU.js} +2 -2
  50. package/dist/chunk-MWPFU2KU.js.map +7 -0
  51. package/dist/{chunk-7AAE6EO2.js → chunk-NAXCFXKW.js} +7 -7
  52. package/dist/chunk-NAXCFXKW.js.map +7 -0
  53. package/dist/{chunk-ICTEVBLN.js → chunk-NRKOXQT5.js} +11 -11
  54. package/dist/chunk-NRKOXQT5.js.map +7 -0
  55. package/dist/{chunk-BQA2EOUU.js → chunk-OTNHBUGC.js} +5 -5
  56. package/dist/chunk-OTNHBUGC.js.map +7 -0
  57. package/dist/{chunk-WPTPPOYN.js → chunk-PGLKCZAE.js} +2 -2
  58. package/dist/{chunk-UUNVJZWA.js → chunk-PMKSJ3AZ.js} +3 -3
  59. package/dist/chunk-PMKSJ3AZ.js.map +7 -0
  60. package/dist/{chunk-QIHB5PYM.js → chunk-R6WNNB47.js} +6 -6
  61. package/dist/{chunk-QIHB5PYM.js.map → chunk-R6WNNB47.js.map} +2 -2
  62. package/dist/{chunk-Q24ZGKIE.js → chunk-V3AKMLFM.js} +14 -14
  63. package/dist/chunk-V3AKMLFM.js.map +7 -0
  64. package/dist/{chunk-T7GPUZVK.js → chunk-VF3J4G4Z.js} +27 -27
  65. package/dist/chunk-VF3J4G4Z.js.map +7 -0
  66. package/dist/{chunk-4SNFQYCY.js → chunk-VKMVP2QQ.js} +12 -12
  67. package/dist/chunk-VKMVP2QQ.js.map +7 -0
  68. package/dist/chunk-XI4LTVYT.js.map +7 -0
  69. package/dist/{chunk-A6PUMROK.js → chunk-YDXW3IJK.js} +4 -4
  70. package/dist/{chunk-A6PUMROK.js.map → chunk-YDXW3IJK.js.map} +1 -1
  71. package/dist/{chunk-HB2P6645.js → chunk-ZZQ6WGYG.js} +4 -4
  72. package/dist/{cli-RFYBXM7F.js → cli-MBYLENJH.js} +119 -119
  73. package/dist/cli-MBYLENJH.js.map +7 -0
  74. package/dist/commands-ECIN5O3E.js +46 -0
  75. package/dist/{config-5OPX3H2K.js → config-45ETSXTS.js} +4 -4
  76. package/dist/{context-THRRBPFP.js → context-34YXWOMP.js} +5 -5
  77. package/dist/{customCommands-4XOZH44N.js → customCommands-J52KDUBX.js} +4 -4
  78. package/dist/{env-EL4KBHMB.js → env-ODQXSPMW.js} +8 -8
  79. package/dist/index.js +4 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/{llm-A3BCM4Q2.js → llm-BBYIGM3X.js} +34 -34
  82. package/dist/llm-BBYIGM3X.js.map +7 -0
  83. package/dist/{llmLazy-ZJSRLZVD.js → llmLazy-VHWTJ7FY.js} +1 -1
  84. package/dist/{loader-HZQBWO74.js → loader-TXZ3EJZO.js} +4 -4
  85. package/dist/{mcp-XKOJ55B2.js → mcp-SHR6KH2Y.js} +7 -7
  86. package/dist/{mentionProcessor-ANYU5MLF.js → mentionProcessor-CDELTWDV.js} +5 -5
  87. package/dist/{messages-75DL5XBP.js → messages-R4ICGYOI.js} +1 -1
  88. package/dist/{model-OPJGJZRC.js → model-AO4OE46E.js} +5 -5
  89. package/dist/{openai-DT54BAFP.js → openai-F7WL45GM.js} +5 -5
  90. package/dist/{outputStyles-TPFVI52O.js → outputStyles-BWAE3CTZ.js} +4 -4
  91. package/dist/{pluginRuntime-W74PYSZ4.js → pluginRuntime-AHKVCUSE.js} +8 -8
  92. package/dist/pluginRuntime-AHKVCUSE.js.map +7 -0
  93. package/dist/{pluginValidation-FALYRVI2.js → pluginValidation-YSUVH4GM.js} +6 -6
  94. package/dist/prompts-4AUAETB4.js +48 -0
  95. package/dist/pybAgentSessionId-3HDHCCI5.js +13 -0
  96. package/dist/pybAgentSessionLoad-5FMAFO4P.js +18 -0
  97. package/dist/pybAgentSessionResume-GCVJHXVV.js +16 -0
  98. package/dist/{kodeAgentStreamJson-3T26CHCP.js → pybAgentStreamJson-UG22YE4Z.js} +5 -5
  99. package/dist/{kodeAgentStreamJsonSession-BZS2VDCY.js → pybAgentStreamJsonSession-BRWXPZ5Z.js} +9 -9
  100. package/dist/pybAgentStreamJsonSession-BRWXPZ5Z.js.map +7 -0
  101. package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js → pybAgentStructuredStdio-QDF6UGAJ.js} +3 -3
  102. package/dist/{kodeHooks-VUAWIY2D.js → pybHooks-WXEUSK2Y.js} +7 -7
  103. package/dist/query-JNWSOFYQ.js +50 -0
  104. package/dist/{ripgrep-XJGSUBG7.js → ripgrep-ON745BFW.js} +3 -3
  105. package/dist/{skillMarketplace-AUGKNCPW.js → skillMarketplace-ZLW4PQFC.js} +3 -3
  106. package/dist/{state-DQYRXKTG.js → state-E57SH5ZM.js} +2 -2
  107. package/dist/{theme-MS5HDUBJ.js → theme-XJG6O2YU.js} +5 -5
  108. package/dist/{toolPermissionSettings-4MPZVYDR.js → toolPermissionSettings-BXLCU7BK.js} +6 -6
  109. package/dist/tools-UJZBVLIU.js +47 -0
  110. package/dist/{userInput-F2PGBRFU.js → userInput-IVM4BDPE.js} +34 -34
  111. package/dist/userInput-IVM4BDPE.js.map +7 -0
  112. package/package.json +1 -1
  113. package/scripts/binary-utils.cjs +8 -8
  114. package/scripts/cli-acp-wrapper.cjs +3 -3
  115. package/scripts/cli-wrapper.cjs +4 -4
  116. package/scripts/postinstall.js +7 -7
  117. package/dist/REPL-WPV32MTF.js +0 -42
  118. package/dist/acp-75HO2LBV.js.map +0 -7
  119. package/dist/agentsValidate-6Z57ARKC.js.map +0 -7
  120. package/dist/ask-NXXXCGY4.js.map +0 -7
  121. package/dist/chunk-27GYWUY2.js.map +0 -7
  122. package/dist/chunk-3KNGJX7Q.js.map +0 -7
  123. package/dist/chunk-3PDD7M4T.js.map +0 -7
  124. package/dist/chunk-3ZNSAB7B.js.map +0 -7
  125. package/dist/chunk-4SNFQYCY.js.map +0 -7
  126. package/dist/chunk-4XPNRLJG.js.map +0 -7
  127. package/dist/chunk-6RZIUY5K.js.map +0 -7
  128. package/dist/chunk-6WELHKDA.js.map +0 -7
  129. package/dist/chunk-7AAE6EO2.js.map +0 -7
  130. package/dist/chunk-BQA2EOUU.js.map +0 -7
  131. package/dist/chunk-HIRIJ2LQ.js.map +0 -7
  132. package/dist/chunk-ICTEVBLN.js.map +0 -7
  133. package/dist/chunk-M624LT6O.js.map +0 -7
  134. package/dist/chunk-PCXUZ6AT.js.map +0 -7
  135. package/dist/chunk-Q24ZGKIE.js.map +0 -7
  136. package/dist/chunk-QBHEERCF.js.map +0 -7
  137. package/dist/chunk-T6GVXTNQ.js.map +0 -7
  138. package/dist/chunk-T7GPUZVK.js.map +0 -7
  139. package/dist/chunk-TXFCNQDE.js.map +0 -7
  140. package/dist/chunk-UUNVJZWA.js.map +0 -7
  141. package/dist/chunk-VRGR4ZTQ.js.map +0 -7
  142. package/dist/chunk-VTVTEE5N.js.map +0 -7
  143. package/dist/chunk-XXFY63TM.js.map +0 -7
  144. package/dist/chunk-Z3HMXDXP.js.map +0 -7
  145. package/dist/chunk-ZJGXEWKF.js.map +0 -7
  146. package/dist/cli-RFYBXM7F.js.map +0 -7
  147. package/dist/commands-YOXMODDO.js +0 -46
  148. package/dist/kodeAgentSessionId-PROTVRBR.js +0 -13
  149. package/dist/kodeAgentSessionLoad-UMPV7MC3.js +0 -18
  150. package/dist/kodeAgentSessionResume-YJS4FVQM.js +0 -16
  151. package/dist/kodeAgentStreamJsonSession-BZS2VDCY.js.map +0 -7
  152. package/dist/llm-A3BCM4Q2.js.map +0 -7
  153. package/dist/pluginRuntime-W74PYSZ4.js.map +0 -7
  154. package/dist/prompts-J4TPRMJ3.js +0 -48
  155. package/dist/query-K3QKBVDN.js +0 -50
  156. package/dist/tools-QW6SIJLJ.js +0 -47
  157. package/dist/userInput-F2PGBRFU.js.map +0 -7
  158. /package/dist/{REPL-WPV32MTF.js.map → REPL-4YZC3LJO.js.map} +0 -0
  159. /package/dist/{autoUpdater-PJMGNPUG.js.map → autoUpdater-ECGS62JN.js.map} +0 -0
  160. /package/dist/{chunk-JKGOGSFT.js.map → chunk-6BSVSUGW.js.map} +0 -0
  161. /package/dist/{chunk-JZDE77EH.js.map → chunk-MLU76W2R.js.map} +0 -0
  162. /package/dist/{chunk-WPTPPOYN.js.map → chunk-PGLKCZAE.js.map} +0 -0
  163. /package/dist/{chunk-M624LT6O.js → chunk-XI4LTVYT.js} +0 -0
  164. /package/dist/{chunk-HB2P6645.js.map → chunk-ZZQ6WGYG.js.map} +0 -0
  165. /package/dist/{commands-YOXMODDO.js.map → commands-ECIN5O3E.js.map} +0 -0
  166. /package/dist/{config-5OPX3H2K.js.map → config-45ETSXTS.js.map} +0 -0
  167. /package/dist/{context-THRRBPFP.js.map → context-34YXWOMP.js.map} +0 -0
  168. /package/dist/{customCommands-4XOZH44N.js.map → customCommands-J52KDUBX.js.map} +0 -0
  169. /package/dist/{env-EL4KBHMB.js.map → env-ODQXSPMW.js.map} +0 -0
  170. /package/dist/{kodeAgentSessionId-PROTVRBR.js.map → llmLazy-VHWTJ7FY.js.map} +0 -0
  171. /package/dist/{kodeAgentSessionLoad-UMPV7MC3.js.map → loader-TXZ3EJZO.js.map} +0 -0
  172. /package/dist/{kodeAgentSessionResume-YJS4FVQM.js.map → mcp-SHR6KH2Y.js.map} +0 -0
  173. /package/dist/{mentionProcessor-ANYU5MLF.js.map → mentionProcessor-CDELTWDV.js.map} +0 -0
  174. /package/dist/{kodeAgentStreamJson-3T26CHCP.js.map → messages-R4ICGYOI.js.map} +0 -0
  175. /package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js.map → model-AO4OE46E.js.map} +0 -0
  176. /package/dist/{kodeHooks-VUAWIY2D.js.map → openai-F7WL45GM.js.map} +0 -0
  177. /package/dist/{llmLazy-ZJSRLZVD.js.map → outputStyles-BWAE3CTZ.js.map} +0 -0
  178. /package/dist/{loader-HZQBWO74.js.map → pluginValidation-YSUVH4GM.js.map} +0 -0
  179. /package/dist/{mcp-XKOJ55B2.js.map → prompts-4AUAETB4.js.map} +0 -0
  180. /package/dist/{messages-75DL5XBP.js.map → pybAgentSessionId-3HDHCCI5.js.map} +0 -0
  181. /package/dist/{model-OPJGJZRC.js.map → pybAgentSessionLoad-5FMAFO4P.js.map} +0 -0
  182. /package/dist/{openai-DT54BAFP.js.map → pybAgentSessionResume-GCVJHXVV.js.map} +0 -0
  183. /package/dist/{outputStyles-TPFVI52O.js.map → pybAgentStreamJson-UG22YE4Z.js.map} +0 -0
  184. /package/dist/{pluginValidation-FALYRVI2.js.map → pybAgentStructuredStdio-QDF6UGAJ.js.map} +0 -0
  185. /package/dist/{prompts-J4TPRMJ3.js.map → pybHooks-WXEUSK2Y.js.map} +0 -0
  186. /package/dist/{query-K3QKBVDN.js.map → query-JNWSOFYQ.js.map} +0 -0
  187. /package/dist/{ripgrep-XJGSUBG7.js.map → ripgrep-ON745BFW.js.map} +0 -0
  188. /package/dist/{skillMarketplace-AUGKNCPW.js.map → skillMarketplace-ZLW4PQFC.js.map} +0 -0
  189. /package/dist/{state-DQYRXKTG.js.map → state-E57SH5ZM.js.map} +0 -0
  190. /package/dist/{theme-MS5HDUBJ.js.map → theme-XJG6O2YU.js.map} +0 -0
  191. /package/dist/{toolPermissionSettings-4MPZVYDR.js.map → toolPermissionSettings-BXLCU7BK.js.map} +0 -0
  192. /package/dist/{tools-QW6SIJLJ.js.map → tools-UJZBVLIU.js.map} +0 -0
@@ -3,49 +3,49 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getSystemPrompt,
5
5
  query
6
- } from "./chunk-QBHEERCF.js";
7
- import "./chunk-XXFY63TM.js";
8
- import "./chunk-4XPNRLJG.js";
9
- import "./chunk-QIHB5PYM.js";
10
- import "./chunk-Q24ZGKIE.js";
11
- import "./chunk-ZJGXEWKF.js";
12
- import "./chunk-6WELHKDA.js";
6
+ } from "./chunk-E2R24MD6.js";
7
+ import "./chunk-HBWCMS4E.js";
8
+ import "./chunk-AT7FEIUK.js";
9
+ import "./chunk-R6WNNB47.js";
10
+ import "./chunk-V3AKMLFM.js";
11
+ import "./chunk-BO63S4OP.js";
12
+ import "./chunk-C66U55GA.js";
13
13
  import "./chunk-5P7HBXTD.js";
14
14
  import "./chunk-3DFBSQIT.js";
15
- import "./chunk-HIRIJ2LQ.js";
16
- import "./chunk-T6GVXTNQ.js";
17
- import "./chunk-4SNFQYCY.js";
18
- import "./chunk-WPTPPOYN.js";
19
- import "./chunk-HB2P6645.js";
20
- import "./chunk-3PDD7M4T.js";
21
- import "./chunk-T7GPUZVK.js";
22
- import "./chunk-6RZIUY5K.js";
23
- import "./chunk-7AAE6EO2.js";
15
+ import "./chunk-5UJ7KHM7.js";
16
+ import "./chunk-B6IMQJZM.js";
17
+ import "./chunk-VKMVP2QQ.js";
18
+ import "./chunk-PGLKCZAE.js";
19
+ import "./chunk-ZZQ6WGYG.js";
20
+ import "./chunk-EGHIB45T.js";
21
+ import "./chunk-VF3J4G4Z.js";
22
+ import "./chunk-3X2KNIS3.js";
23
+ import "./chunk-NAXCFXKW.js";
24
24
  import "./chunk-UNNVICVU.js";
25
- import "./chunk-UUNVJZWA.js";
25
+ import "./chunk-PMKSJ3AZ.js";
26
26
  import "./chunk-ERMQRV55.js";
27
- import "./chunk-ICTEVBLN.js";
27
+ import "./chunk-NRKOXQT5.js";
28
28
  import "./chunk-A3BVXXA3.js";
29
29
  import "./chunk-BJSWTHRM.js";
30
30
  import {
31
31
  createUserMessage
32
- } from "./chunk-SWYJOV5E.js";
32
+ } from "./chunk-MRHGVQ5T.js";
33
33
  import {
34
34
  getModelManager
35
- } from "./chunk-Z3HMXDXP.js";
35
+ } from "./chunk-5JTKXNG4.js";
36
36
  import {
37
37
  getContext
38
- } from "./chunk-3ZNSAB7B.js";
39
- import "./chunk-BQA2EOUU.js";
40
- import "./chunk-JZDE77EH.js";
38
+ } from "./chunk-KVP2VINI.js";
39
+ import "./chunk-OTNHBUGC.js";
40
+ import "./chunk-MLU76W2R.js";
41
41
  import "./chunk-RQVLBMP7.js";
42
- import "./chunk-3KNGJX7Q.js";
42
+ import "./chunk-CTKC574I.js";
43
43
  import {
44
44
  getMessagesPath,
45
45
  overwriteLog,
46
46
  setCwd
47
- } from "./chunk-TXFCNQDE.js";
48
- import "./chunk-A6PUMROK.js";
47
+ } from "./chunk-G2W2B3A3.js";
48
+ import "./chunk-YDXW3IJK.js";
49
49
  import {
50
50
  getTotalCost
51
51
  } from "./chunk-OUXHGDLH.js";
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/app/ask.ts"],
4
+ "sourcesContent": ["import { last } from 'lodash-es'\nimport { Command } from '@commands'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { getTotalCost } from '@costTracker'\nimport { Message, query } from '@query'\nimport type { CanUseToolFn } from '@pyb-types/canUseTool'\nimport { Tool } from '@tool'\nimport { getModelManager } from '@utils/model'\nimport { setCwd } from '@utils/state'\nimport { getMessagesPath, overwriteLog } from '@utils/log'\nimport { createUserMessage } from '@utils/messages'\n\ntype Props = {\n commands: Command[]\n safeMode?: boolean\n hasPermissionsToUseTool: CanUseToolFn\n messageLogName: string\n prompt: string\n cwd: string\n tools: Tool[]\n verbose?: boolean\n initialMessages?: Message[]\n persistSession?: boolean\n}\n\nexport async function ask({\n commands,\n safeMode,\n hasPermissionsToUseTool,\n messageLogName,\n prompt,\n cwd,\n tools,\n verbose = false,\n initialMessages,\n persistSession = true,\n}: Props): Promise<{\n resultText: string\n totalCost: number\n messageHistoryFile: string\n}> {\n await setCwd(cwd)\n const message = createUserMessage(prompt)\n const messages: Message[] = [...(initialMessages ?? []), message]\n\n const [systemPrompt, context, model] = await Promise.all([\n getSystemPrompt(),\n getContext(),\n getModelManager().getModelName('main'),\n ])\n\n for await (const m of query(\n messages,\n systemPrompt,\n context,\n hasPermissionsToUseTool,\n {\n options: {\n commands,\n tools,\n verbose,\n safeMode,\n forkNumber: 0,\n messageLogName: 'unused',\n maxThinkingTokens: 0,\n persistSession,\n },\n abortController: new AbortController(),\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {},\n },\n )) {\n messages.push(m)\n }\n\n const result = last(messages)\n if (!result || result.type !== 'assistant') {\n throw new Error('Expected content to be an assistant message')\n }\n\n const textContent = result.message.content.find(c => c.type === 'text')\n if (!textContent) {\n throw new Error(\n `Expected at least one text content item, but got ${JSON.stringify(\n result.message.content,\n null,\n 2,\n )}`,\n )\n }\n\n const messageHistoryFile = getMessagesPath(messageLogName, 0, 0)\n overwriteLog(messageHistoryFile, messages)\n\n return {\n resultText: textContent.text,\n totalCost: getTotalCost(),\n messageHistoryFile,\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AA0BrB,eAAsB,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,iBAAiB;AACnB,GAIG;AACD,QAAM,OAAO,GAAG;AAChB,QAAM,UAAU,kBAAkB,MAAM;AACxC,QAAM,WAAsB,CAAC,GAAI,mBAAmB,CAAC,GAAI,OAAO;AAEhE,QAAM,CAAC,cAAc,SAAS,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,EACvC,CAAC;AAED,mBAAiB,KAAK;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,QACnB;AAAA,MACF;AAAA,MACA,iBAAiB,IAAI,gBAAgB;AAAA,MACrC,WAAW;AAAA,MACX,oBAAoB,CAAC;AAAA,MACrB,YAAY,MAAM;AAAA,MAAC;AAAA,IACrB;AAAA,EACF,GAAG;AACD,aAAS,KAAK,CAAC;AAAA,EACjB;AAEA,QAAM,SAAS,KAAK,QAAQ;AAC5B,MAAI,CAAC,UAAU,OAAO,SAAS,aAAa;AAC1C,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAEA,QAAM,cAAc,OAAO,QAAQ,QAAQ,KAAK,OAAK,EAAE,SAAS,MAAM;AACtE,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI;AAAA,MACR,oDAAoD,KAAK;AAAA,QACvD,OAAO,QAAQ;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,qBAAqB,gBAAgB,gBAAgB,GAAG,CAAC;AAC/D,eAAa,oBAAoB,QAAQ;AAEzC,SAAO;AAAA,IACL,YAAY,YAAY;AAAA,IACxB,WAAW,aAAa;AAAA,IACxB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -5,9 +5,9 @@ import {
5
5
  checkAndNotifyUpdate,
6
6
  getLatestVersion,
7
7
  getUpdateCommandSuggestions
8
- } from "./chunk-JKGOGSFT.js";
9
- import "./chunk-TXFCNQDE.js";
10
- import "./chunk-A6PUMROK.js";
8
+ } from "./chunk-6BSVSUGW.js";
9
+ import "./chunk-G2W2B3A3.js";
10
+ import "./chunk-YDXW3IJK.js";
11
11
  import "./chunk-BH3Y62E3.js";
12
12
  export {
13
13
  assertMinVersion,
@@ -4,18 +4,18 @@ import {
4
4
  getSettingsFileCandidates,
5
5
  loadSettingsWithLegacyFallback,
6
6
  saveSettingsToPrimaryAndSyncLegacy
7
- } from "./chunk-7AAE6EO2.js";
7
+ } from "./chunk-NAXCFXKW.js";
8
8
  import {
9
9
  createDefaultToolPermissionContext,
10
10
  isPersistableToolPermissionDestination
11
11
  } from "./chunk-UNNVICVU.js";
12
12
  import {
13
13
  getCurrentProjectConfig
14
- } from "./chunk-JZDE77EH.js";
14
+ } from "./chunk-MLU76W2R.js";
15
15
  import {
16
16
  getCwd,
17
17
  logError
18
- } from "./chunk-TXFCNQDE.js";
18
+ } from "./chunk-G2W2B3A3.js";
19
19
 
20
20
  // src/utils/permissions/toolPermissionSettings.ts
21
21
  function uniqueStrings(value) {
@@ -41,7 +41,7 @@ function getPrimarySettingsFilePathForDestination(options) {
41
41
  function loadToolPermissionContextFromDisk(options) {
42
42
  const projectDir = options?.projectDir ?? getCwd();
43
43
  const homeDir = options?.homeDir;
44
- const includeKodeProjectConfig = options?.includeKodeProjectConfig ?? true;
44
+ const includePybProjectConfig = options?.includePybProjectConfig ?? true;
45
45
  const base = createDefaultToolPermissionContext({
46
46
  isBypassPermissionsModeAvailable: options?.isBypassPermissionsModeAvailable ?? false
47
47
  });
@@ -72,7 +72,7 @@ function loadToolPermissionContextFromDisk(options) {
72
72
  });
73
73
  }
74
74
  }
75
- if (includeKodeProjectConfig) {
75
+ if (includePybProjectConfig) {
76
76
  try {
77
77
  const cfg = getCurrentProjectConfig();
78
78
  const allow = Array.isArray(cfg.allowedTools) ? cfg.allowedTools : [];
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/permissions/toolPermissionSettings.ts"],
4
+ "sourcesContent": ["import type {\n ToolPermissionContext,\n ToolPermissionContextUpdate,\n ToolPermissionRuleBehavior,\n ToolPermissionUpdateDestination,\n} from '@pyb-types/toolPermissionContext'\nimport {\n createDefaultToolPermissionContext,\n isPersistableToolPermissionDestination,\n} from '@pyb-types/toolPermissionContext'\nimport { getCurrentProjectConfig } from '@utils/config'\nimport { getCwd } from '@utils/state'\nimport { logError } from '@utils/log'\nimport {\n getSettingsFileCandidates,\n loadSettingsWithLegacyFallback,\n saveSettingsToPrimaryAndSyncLegacy,\n type SettingsFile,\n} from '@utils/config/settingsFiles'\n\ntype SettingsPermissions = {\n allow?: unknown\n deny?: unknown\n ask?: unknown\n additionalDirectories?: unknown\n}\n\ntype SettingsFileWithPermissions = {\n permissions?: SettingsPermissions\n [key: string]: unknown\n}\n\nfunction uniqueStrings(value: unknown): string[] {\n if (!Array.isArray(value)) return []\n const out: string[] = []\n const seen = new Set<string>()\n for (const item of value) {\n if (typeof item !== 'string') continue\n if (seen.has(item)) continue\n seen.add(item)\n out.push(item)\n }\n return out\n}\n\nfunction getPrimarySettingsFilePathForDestination(options: {\n destination: ToolPermissionUpdateDestination\n projectDir?: string\n homeDir?: string\n}): string | null {\n const candidates = getSettingsFileCandidates({\n destination: options.destination as any,\n projectDir: options.projectDir,\n homeDir: options.homeDir,\n })\n return candidates?.primary ?? null\n}\n\nexport function loadToolPermissionContextFromDisk(options?: {\n projectDir?: string\n homeDir?: string\n includePybProjectConfig?: boolean\n isBypassPermissionsModeAvailable?: boolean\n}): ToolPermissionContext {\n const projectDir = options?.projectDir ?? getCwd()\n const homeDir = options?.homeDir\n const includePybProjectConfig = options?.includePybProjectConfig ?? true\n\n const base = createDefaultToolPermissionContext({\n isBypassPermissionsModeAvailable:\n options?.isBypassPermissionsModeAvailable ?? false,\n })\n\n const destinations: ToolPermissionUpdateDestination[] = [\n 'userSettings',\n 'projectSettings',\n 'localSettings',\n ]\n\n for (const destination of destinations) {\n const settings = loadSettingsWithLegacyFallback({\n destination: destination as any,\n projectDir,\n homeDir,\n migrateToPrimary: true,\n }).settings as SettingsFileWithPermissions | null\n const perms = settings?.permissions\n const allow = uniqueStrings(perms?.allow)\n const deny = uniqueStrings(perms?.deny)\n const ask = uniqueStrings(perms?.ask)\n const additionalDirectories = uniqueStrings(perms?.additionalDirectories)\n\n if (allow.length > 0) base.alwaysAllowRules[destination] = allow\n if (deny.length > 0) base.alwaysDenyRules[destination] = deny\n if (ask.length > 0) base.alwaysAskRules[destination] = ask\n\n for (const dir of additionalDirectories) {\n base.additionalWorkingDirectories.set(dir, {\n path: dir,\n source: destination,\n })\n }\n }\n\n if (includePybProjectConfig) {\n try {\n const cfg = getCurrentProjectConfig()\n const allow = Array.isArray(cfg.allowedTools) ? cfg.allowedTools : []\n const deny = Array.isArray((cfg as any).deniedTools)\n ? (cfg as any).deniedTools\n : []\n const ask = Array.isArray((cfg as any).askedTools)\n ? (cfg as any).askedTools\n : []\n\n if (allow.length > 0) {\n const prev = base.alwaysAllowRules.localSettings ?? []\n base.alwaysAllowRules.localSettings = [...new Set([...prev, ...allow])]\n }\n if (deny.length > 0) {\n const prev = base.alwaysDenyRules.localSettings ?? []\n base.alwaysDenyRules.localSettings = [...new Set([...prev, ...deny])]\n }\n if (ask.length > 0) {\n const prev = base.alwaysAskRules.localSettings ?? []\n base.alwaysAskRules.localSettings = [...new Set([...prev, ...ask])]\n }\n } catch (error) {\n logError(error)\n }\n }\n\n return base\n}\n\nfunction getOrCreatePermissions(\n settings: SettingsFileWithPermissions,\n): Required<SettingsFileWithPermissions>['permissions'] {\n const existing = settings.permissions\n if (existing && typeof existing === 'object') {\n return existing as SettingsPermissions\n }\n settings.permissions = {}\n return settings.permissions as SettingsPermissions\n}\n\nfunction behaviorKey(\n behavior: ToolPermissionRuleBehavior,\n): keyof SettingsPermissions {\n switch (behavior) {\n case 'allow':\n return 'allow'\n case 'deny':\n return 'deny'\n case 'ask':\n return 'ask'\n }\n}\n\nexport function persistToolPermissionUpdateToDisk(options: {\n update: ToolPermissionContextUpdate\n projectDir?: string\n homeDir?: string\n}): { persisted: boolean } {\n const update = options.update\n if (!isPersistableToolPermissionDestination(update.destination)) {\n return { persisted: false }\n }\n if (update.type === 'setMode') {\n return { persisted: false }\n }\n\n const filePath = getPrimarySettingsFilePathForDestination({\n destination: update.destination,\n projectDir: options.projectDir,\n homeDir: options.homeDir,\n })\n if (!filePath) return { persisted: false }\n\n const existing =\n (loadSettingsWithLegacyFallback({\n destination: update.destination as any,\n projectDir: options.projectDir,\n homeDir: options.homeDir,\n migrateToPrimary: true,\n }).settings as SettingsFileWithPermissions | null) ?? {}\n const permissions = getOrCreatePermissions(existing)\n\n try {\n switch (update.type) {\n case 'addRules':\n case 'replaceRules':\n case 'removeRules': {\n const key = behaviorKey(update.behavior)\n const current = uniqueStrings(permissions[key])\n\n if (update.type === 'addRules') {\n const merged = [...new Set([...current, ...update.rules])]\n permissions[key] = merged\n } else if (update.type === 'replaceRules') {\n permissions[key] = uniqueStrings(update.rules)\n } else {\n const toRemove = new Set(update.rules)\n permissions[key] = current.filter(rule => !toRemove.has(rule))\n }\n break\n }\n case 'addDirectories':\n case 'removeDirectories': {\n const current = uniqueStrings(permissions.additionalDirectories)\n if (update.type === 'addDirectories') {\n permissions.additionalDirectories = [\n ...new Set([...current, ...update.directories]),\n ]\n } else {\n const toRemove = new Set(update.directories)\n permissions.additionalDirectories = current.filter(\n dir => !toRemove.has(dir),\n )\n }\n break\n }\n default:\n return { persisted: false }\n }\n\n saveSettingsToPrimaryAndSyncLegacy({\n destination: update.destination as any,\n projectDir: options.projectDir,\n homeDir: options.homeDir,\n settings: existing as SettingsFile,\n syncLegacyIfExists: true,\n })\n return { persisted: true }\n } catch (error) {\n logError(error)\n return { persisted: false }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -26,42 +26,42 @@ import {
26
26
  hasPermissionsToUseTool,
27
27
  hasReadPermission,
28
28
  query
29
- } from "./chunk-QBHEERCF.js";
29
+ } from "./chunk-E2R24MD6.js";
30
30
  import {
31
31
  FallbackToolUseRejectedMessage,
32
32
  MCPTool,
33
33
  getClients,
34
34
  getMCPTools
35
- } from "./chunk-4XPNRLJG.js";
35
+ } from "./chunk-AT7FEIUK.js";
36
36
  import {
37
37
  queryLLM
38
- } from "./chunk-HB2P6645.js";
38
+ } from "./chunk-ZZQ6WGYG.js";
39
39
  import {
40
40
  generateAgentId
41
- } from "./chunk-UUNVJZWA.js";
41
+ } from "./chunk-PMKSJ3AZ.js";
42
42
  import {
43
43
  getActiveAgents,
44
44
  getAgentByType,
45
45
  getAvailableAgentTypes
46
- } from "./chunk-ICTEVBLN.js";
46
+ } from "./chunk-NRKOXQT5.js";
47
47
  import {
48
48
  INTERRUPT_MESSAGE,
49
49
  createAssistantMessage,
50
50
  createUserMessage,
51
51
  getLastAssistantMessageId
52
- } from "./chunk-SWYJOV5E.js";
52
+ } from "./chunk-MRHGVQ5T.js";
53
53
  import {
54
54
  getModelManager
55
- } from "./chunk-Z3HMXDXP.js";
55
+ } from "./chunk-5JTKXNG4.js";
56
56
  import {
57
57
  getContext
58
- } from "./chunk-3ZNSAB7B.js";
58
+ } from "./chunk-KVP2VINI.js";
59
59
  import {
60
60
  getTheme
61
- } from "./chunk-BQA2EOUU.js";
61
+ } from "./chunk-OTNHBUGC.js";
62
62
  import {
63
63
  debug
64
- } from "./chunk-3KNGJX7Q.js";
64
+ } from "./chunk-CTKC574I.js";
65
65
  import {
66
66
  BunShell,
67
67
  getCwd,
@@ -70,7 +70,7 @@ import {
70
70
  logError,
71
71
  overwriteLog,
72
72
  readTaskOutput
73
- } from "./chunk-TXFCNQDE.js";
73
+ } from "./chunk-G2W2B3A3.js";
74
74
  import {
75
75
  formatDuration,
76
76
  formatNumber
@@ -90,7 +90,7 @@ import { join } from "path";
90
90
  import { homedir } from "os";
91
91
  import { randomUUID } from "crypto";
92
92
  function getExpertChatDirectory() {
93
- const configDir = process.env.KODE_CONFIG_DIR ?? process.env.ANYKODE_CONFIG_DIR ?? join(homedir(), ".kode");
93
+ const configDir = process.env.PYB_CONFIG_DIR ?? process.env.ANYKODE_CONFIG_DIR ?? join(homedir(), ".pyb");
94
94
  const expertChatDir = join(configDir, "expert-chats");
95
95
  if (!existsSync(expertChatDir)) {
96
96
  mkdirSync(expertChatDir, { recursive: true });
@@ -588,7 +588,7 @@ function isTruthyEnv(value) {
588
588
  return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
589
589
  }
590
590
  function isPackagedRuntime() {
591
- if (isTruthyEnv(process.env.KODE_PACKAGED)) return true;
591
+ if (isTruthyEnv(process.env.PYB_PACKAGED)) return true;
592
592
  try {
593
593
  const exec = (process.execPath || "").split(/[\\/]/).pop()?.toLowerCase();
594
594
  if (!exec) return false;
@@ -643,8 +643,8 @@ function truncateTextForDisplay(text, options) {
643
643
  };
644
644
  }
645
645
  function maybeTruncateVerboseToolOutput(text, options) {
646
- const maxLinesEnv = Number(process.env.KODE_TOOL_OUTPUT_MAX_LINES ?? "");
647
- const maxCharsEnv = Number(process.env.KODE_TOOL_OUTPUT_MAX_CHARS ?? "");
646
+ const maxLinesEnv = Number(process.env.PYB_TOOL_OUTPUT_MAX_LINES ?? "");
647
+ const maxCharsEnv = Number(process.env.PYB_TOOL_OUTPUT_MAX_CHARS ?? "");
648
648
  const envOverrides = {
649
649
  maxLines: Number.isFinite(maxLinesEnv) && maxLinesEnv > 0 ? maxLinesEnv : void 0,
650
650
  maxChars: Number.isFinite(maxCharsEnv) && maxCharsEnv > 0 ? maxCharsEnv : void 0
@@ -653,7 +653,7 @@ function maybeTruncateVerboseToolOutput(text, options) {
653
653
  maxLines: envOverrides.maxLines ?? options?.maxLines,
654
654
  maxChars: envOverrides.maxChars ?? options?.maxChars
655
655
  };
656
- const fullAllowed = isTruthyEnv(process.env.KODE_TOOL_OUTPUT_FULL);
656
+ const fullAllowed = isTruthyEnv(process.env.PYB_TOOL_OUTPUT_FULL);
657
657
  if (!isPackagedRuntime() || fullAllowed) {
658
658
  return { text: String(text ?? ""), truncated: false };
659
659
  }
@@ -1236,7 +1236,7 @@ function tryLoadTypeScriptModule(projectCwd) {
1236
1236
  if (cachedTypeScript?.cwd === projectCwd) return cachedTypeScript.module;
1237
1237
  try {
1238
1238
  const requireFromCwd = createRequire(
1239
- pathToFileURL(join2(projectCwd, "__kode_lsp__.js"))
1239
+ pathToFileURL(join2(projectCwd, "__pyb_lsp__.js"))
1240
1240
  );
1241
1241
  const mod = requireFromCwd("typescript");
1242
1242
  cachedTypeScript = { cwd: projectCwd, module: mod };
@@ -2275,7 +2275,7 @@ var TaskTool = {
2275
2275
  const effectivePrompt = input.prompt;
2276
2276
  const normalizedAgentModel = normalizeAgentModelName(agentConfig.model);
2277
2277
  const defaultSubagentModel = "task";
2278
- const envSubagentModel = process.env.KODE_SUBAGENT_MODEL ?? process.env.CLAUDE_CODE_SUBAGENT_MODEL;
2278
+ const envSubagentModel = process.env.PYB_SUBAGENT_MODEL ?? process.env.CLAUDE_CODE_SUBAGENT_MODEL;
2279
2279
  const modelToUse = (typeof envSubagentModel === "string" && envSubagentModel.trim() ? envSubagentModel.trim() : void 0) || modelEnumToPointer(input.model) || (normalizedAgentModel === "inherit" ? parentModel || defaultSubagentModel : normalizedAgentModel) || defaultSubagentModel;
2280
2280
  const toolFilter = agentConfig.tools;
2281
2281
  let tools = await getTaskTools(safeMode);