pybao-cli 1.3.44 → 1.3.46

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 (132) hide show
  1. package/dist/REPL-ANRALQZB.js +42 -0
  2. package/dist/{acp-KOOPOS2V.js → acp-37ZYIFLI.js} +26 -26
  3. package/dist/{agentsValidate-TUW56FGR.js → agentsValidate-ZT2GD2IR.js} +7 -7
  4. package/dist/{ask-BXDD3HZZ.js → ask-PSYWFNDP.js} +25 -25
  5. package/dist/{autoUpdater-MJTULRNL.js → autoUpdater-HHBVZBYE.js} +3 -3
  6. package/dist/{chunk-QVUJ6WJZ.js → chunk-2B56EMQC.js} +1 -1
  7. package/dist/{chunk-QVUJ6WJZ.js.map → chunk-2B56EMQC.js.map} +1 -1
  8. package/dist/{chunk-NAEAT6CC.js → chunk-2TG6N7RM.js} +3 -3
  9. package/dist/{chunk-AIE6TFWI.js → chunk-AHDLGGNV.js} +1 -1
  10. package/dist/{chunk-AVJMRJOF.js → chunk-AKPC4FCY.js} +2 -2
  11. package/dist/{chunk-3VMVNZBA.js → chunk-BKP3JI3M.js} +9 -10
  12. package/dist/{chunk-3VMVNZBA.js.map → chunk-BKP3JI3M.js.map} +3 -3
  13. package/dist/{chunk-R5B3QREX.js → chunk-BSKDTFG4.js} +2 -2
  14. package/dist/{chunk-RHOMDJ4W.js → chunk-EL65JN4A.js} +1 -1
  15. package/dist/{chunk-NBLIMAPB.js → chunk-FJROYNRY.js} +1 -1
  16. package/dist/{chunk-NDUV7XH4.js → chunk-FREXXRCP.js} +113 -113
  17. package/dist/chunk-FREXXRCP.js.map +7 -0
  18. package/dist/{chunk-LZUURGDV.js → chunk-GCQTTFVA.js} +3 -3
  19. package/dist/{chunk-WZQQI3WY.js → chunk-HKQR7WT7.js} +2 -2
  20. package/dist/{chunk-3GPQ33I5.js → chunk-HZDNEHQ4.js} +3 -3
  21. package/dist/{chunk-LBHF6BS2.js → chunk-J2QBYXHQ.js} +4 -4
  22. package/dist/{chunk-FBVDMTHQ.js → chunk-JWIWFXZH.js} +2 -2
  23. package/dist/{chunk-7L3BKVS2.js → chunk-K25LUESX.js} +12 -12
  24. package/dist/{chunk-S5PEPGE4.js → chunk-MLEJ32DL.js} +2 -2
  25. package/dist/{chunk-FE3MRJ7F.js → chunk-O77VW2OG.js} +3 -3
  26. package/dist/{chunk-DTLOHNDH.js → chunk-PN4VJABA.js} +3 -3
  27. package/dist/{chunk-KAWPVVO4.js → chunk-QXB5JU22.js} +3 -3
  28. package/dist/{chunk-I4OD44YI.js → chunk-UH5XH34C.js} +1 -1
  29. package/dist/{chunk-FPSETIH6.js → chunk-UJV74XPJ.js} +3 -3
  30. package/dist/{chunk-DTDUB7LG.js → chunk-VWOTB6OP.js} +1 -1
  31. package/dist/{chunk-5CTMULCY.js → chunk-WCSNMHIZ.js} +1 -1
  32. package/dist/{chunk-6GSWJDP7.js → chunk-XPNI6T7J.js} +4 -4
  33. package/dist/{chunk-A7BD4CXP.js → chunk-YCIJ2LZ5.js} +1 -1
  34. package/dist/{chunk-5XDINARX.js → chunk-YOMMEAP6.js} +1 -1
  35. package/dist/{chunk-G22THW43.js → chunk-ZCIAAXXX.js} +2 -2
  36. package/dist/{cli-6X6S6JUI.js → cli-7ZDUHVBY.js} +77 -77
  37. package/dist/commands-FGYR52JP.js +46 -0
  38. package/dist/{config-EAVBRMJZ.js → config-GPGGIEEU.js} +4 -4
  39. package/dist/{context-6ZFVEBNJ.js → context-XHGQOQ7L.js} +5 -5
  40. package/dist/{customCommands-6QGGYZEX.js → customCommands-SYMV4ZBK.js} +4 -4
  41. package/dist/{env-4VFOICHG.js → env-3UORUGI7.js} +2 -2
  42. package/dist/index.js +3 -3
  43. package/dist/{llm-22YH2ZPY.js → llm-Q5CFDHRJ.js} +26 -26
  44. package/dist/{llmLazy-NXKJNC2G.js → llmLazy-SZPYON2Y.js} +1 -1
  45. package/dist/{loader-AHVOZTJN.js → loader-DYMAU5JI.js} +4 -4
  46. package/dist/{mcp-F4JQTEPJ.js → mcp-HYFQC5V2.js} +7 -7
  47. package/dist/{mentionProcessor-KR6BJB44.js → mentionProcessor-Y6I42D6Q.js} +5 -5
  48. package/dist/{messages-4SGWZDEN.js → messages-BCVGUQ7P.js} +1 -1
  49. package/dist/{model-W6KAPOMM.js → model-TCTZSQL7.js} +5 -5
  50. package/dist/{openai-5YOQ2GOC.js → openai-KH7QFYJN.js} +5 -5
  51. package/dist/{outputStyles-DIT6QLSL.js → outputStyles-C6NCFK57.js} +4 -4
  52. package/dist/{pluginRuntime-ULGPYEC2.js → pluginRuntime-T5ID6ROB.js} +6 -6
  53. package/dist/{pluginValidation-VMTZMQF4.js → pluginValidation-C5BVZ5KJ.js} +6 -6
  54. package/dist/prompts-IWS65CSD.js +48 -0
  55. package/dist/{pybAgentSessionLoad-OS3SBDUL.js → pybAgentSessionLoad-Z2HXKCCU.js} +4 -4
  56. package/dist/{pybAgentSessionResume-BY2OINUM.js → pybAgentSessionResume-4SEGOPFC.js} +4 -4
  57. package/dist/{pybAgentStreamJsonSession-S2EVD25H.js → pybAgentStreamJsonSession-4K7VFMRX.js} +1 -1
  58. package/dist/{pybHooks-J4TIBPPX.js → pybHooks-QSPLL3AR.js} +4 -4
  59. package/dist/query-5OQI4E7J.js +50 -0
  60. package/dist/{ripgrep-XJ7BRKLV.js → ripgrep-D2EUEDNQ.js} +3 -3
  61. package/dist/{skillMarketplace-ADUM7ZZM.js → skillMarketplace-Q4PH6E25.js} +3 -3
  62. package/dist/{state-LIRDPMWY.js → state-Q4M7BXGL.js} +2 -2
  63. package/dist/{theme-VPF6NLPH.js → theme-B3FIK2UP.js} +5 -5
  64. package/dist/{toolPermissionSettings-G7R7IURS.js → toolPermissionSettings-66WEVSDI.js} +6 -6
  65. package/dist/tools-HJT5SK6H.js +47 -0
  66. package/dist/{userInput-FC4VH2WA.js → userInput-UKA36YDI.js} +27 -27
  67. package/package.json +1 -1
  68. package/dist/REPL-XGU3QBB4.js +0 -42
  69. package/dist/chunk-NDUV7XH4.js.map +0 -7
  70. package/dist/commands-D4K3WP4Q.js +0 -46
  71. package/dist/prompts-V5GQOXVP.js +0 -48
  72. package/dist/query-PEGPPHCH.js +0 -50
  73. package/dist/tools-LPMBKXBZ.js +0 -47
  74. /package/dist/{REPL-XGU3QBB4.js.map → REPL-ANRALQZB.js.map} +0 -0
  75. /package/dist/{acp-KOOPOS2V.js.map → acp-37ZYIFLI.js.map} +0 -0
  76. /package/dist/{agentsValidate-TUW56FGR.js.map → agentsValidate-ZT2GD2IR.js.map} +0 -0
  77. /package/dist/{ask-BXDD3HZZ.js.map → ask-PSYWFNDP.js.map} +0 -0
  78. /package/dist/{autoUpdater-MJTULRNL.js.map → autoUpdater-HHBVZBYE.js.map} +0 -0
  79. /package/dist/{chunk-NAEAT6CC.js.map → chunk-2TG6N7RM.js.map} +0 -0
  80. /package/dist/{chunk-AIE6TFWI.js.map → chunk-AHDLGGNV.js.map} +0 -0
  81. /package/dist/{chunk-AVJMRJOF.js.map → chunk-AKPC4FCY.js.map} +0 -0
  82. /package/dist/{chunk-R5B3QREX.js.map → chunk-BSKDTFG4.js.map} +0 -0
  83. /package/dist/{chunk-RHOMDJ4W.js.map → chunk-EL65JN4A.js.map} +0 -0
  84. /package/dist/{chunk-NBLIMAPB.js.map → chunk-FJROYNRY.js.map} +0 -0
  85. /package/dist/{chunk-LZUURGDV.js.map → chunk-GCQTTFVA.js.map} +0 -0
  86. /package/dist/{chunk-WZQQI3WY.js.map → chunk-HKQR7WT7.js.map} +0 -0
  87. /package/dist/{chunk-3GPQ33I5.js.map → chunk-HZDNEHQ4.js.map} +0 -0
  88. /package/dist/{chunk-LBHF6BS2.js.map → chunk-J2QBYXHQ.js.map} +0 -0
  89. /package/dist/{chunk-FBVDMTHQ.js.map → chunk-JWIWFXZH.js.map} +0 -0
  90. /package/dist/{chunk-7L3BKVS2.js.map → chunk-K25LUESX.js.map} +0 -0
  91. /package/dist/{chunk-S5PEPGE4.js.map → chunk-MLEJ32DL.js.map} +0 -0
  92. /package/dist/{chunk-FE3MRJ7F.js.map → chunk-O77VW2OG.js.map} +0 -0
  93. /package/dist/{chunk-DTLOHNDH.js.map → chunk-PN4VJABA.js.map} +0 -0
  94. /package/dist/{chunk-KAWPVVO4.js.map → chunk-QXB5JU22.js.map} +0 -0
  95. /package/dist/{chunk-I4OD44YI.js.map → chunk-UH5XH34C.js.map} +0 -0
  96. /package/dist/{chunk-FPSETIH6.js.map → chunk-UJV74XPJ.js.map} +0 -0
  97. /package/dist/{chunk-DTDUB7LG.js.map → chunk-VWOTB6OP.js.map} +0 -0
  98. /package/dist/{chunk-5CTMULCY.js.map → chunk-WCSNMHIZ.js.map} +0 -0
  99. /package/dist/{chunk-6GSWJDP7.js.map → chunk-XPNI6T7J.js.map} +0 -0
  100. /package/dist/{chunk-A7BD4CXP.js.map → chunk-YCIJ2LZ5.js.map} +0 -0
  101. /package/dist/{chunk-5XDINARX.js.map → chunk-YOMMEAP6.js.map} +0 -0
  102. /package/dist/{chunk-G22THW43.js.map → chunk-ZCIAAXXX.js.map} +0 -0
  103. /package/dist/{cli-6X6S6JUI.js.map → cli-7ZDUHVBY.js.map} +0 -0
  104. /package/dist/{commands-D4K3WP4Q.js.map → commands-FGYR52JP.js.map} +0 -0
  105. /package/dist/{config-EAVBRMJZ.js.map → config-GPGGIEEU.js.map} +0 -0
  106. /package/dist/{context-6ZFVEBNJ.js.map → context-XHGQOQ7L.js.map} +0 -0
  107. /package/dist/{customCommands-6QGGYZEX.js.map → customCommands-SYMV4ZBK.js.map} +0 -0
  108. /package/dist/{env-4VFOICHG.js.map → env-3UORUGI7.js.map} +0 -0
  109. /package/dist/{llm-22YH2ZPY.js.map → llm-Q5CFDHRJ.js.map} +0 -0
  110. /package/dist/{llmLazy-NXKJNC2G.js.map → llmLazy-SZPYON2Y.js.map} +0 -0
  111. /package/dist/{loader-AHVOZTJN.js.map → loader-DYMAU5JI.js.map} +0 -0
  112. /package/dist/{mcp-F4JQTEPJ.js.map → mcp-HYFQC5V2.js.map} +0 -0
  113. /package/dist/{mentionProcessor-KR6BJB44.js.map → mentionProcessor-Y6I42D6Q.js.map} +0 -0
  114. /package/dist/{messages-4SGWZDEN.js.map → messages-BCVGUQ7P.js.map} +0 -0
  115. /package/dist/{model-W6KAPOMM.js.map → model-TCTZSQL7.js.map} +0 -0
  116. /package/dist/{openai-5YOQ2GOC.js.map → openai-KH7QFYJN.js.map} +0 -0
  117. /package/dist/{outputStyles-DIT6QLSL.js.map → outputStyles-C6NCFK57.js.map} +0 -0
  118. /package/dist/{pluginRuntime-ULGPYEC2.js.map → pluginRuntime-T5ID6ROB.js.map} +0 -0
  119. /package/dist/{pluginValidation-VMTZMQF4.js.map → pluginValidation-C5BVZ5KJ.js.map} +0 -0
  120. /package/dist/{prompts-V5GQOXVP.js.map → prompts-IWS65CSD.js.map} +0 -0
  121. /package/dist/{pybAgentSessionLoad-OS3SBDUL.js.map → pybAgentSessionLoad-Z2HXKCCU.js.map} +0 -0
  122. /package/dist/{pybAgentSessionResume-BY2OINUM.js.map → pybAgentSessionResume-4SEGOPFC.js.map} +0 -0
  123. /package/dist/{pybAgentStreamJsonSession-S2EVD25H.js.map → pybAgentStreamJsonSession-4K7VFMRX.js.map} +0 -0
  124. /package/dist/{pybHooks-J4TIBPPX.js.map → pybHooks-QSPLL3AR.js.map} +0 -0
  125. /package/dist/{query-PEGPPHCH.js.map → query-5OQI4E7J.js.map} +0 -0
  126. /package/dist/{ripgrep-XJ7BRKLV.js.map → ripgrep-D2EUEDNQ.js.map} +0 -0
  127. /package/dist/{skillMarketplace-ADUM7ZZM.js.map → skillMarketplace-Q4PH6E25.js.map} +0 -0
  128. /package/dist/{state-LIRDPMWY.js.map → state-Q4M7BXGL.js.map} +0 -0
  129. /package/dist/{theme-VPF6NLPH.js.map → theme-B3FIK2UP.js.map} +0 -0
  130. /package/dist/{toolPermissionSettings-G7R7IURS.js.map → toolPermissionSettings-66WEVSDI.js.map} +0 -0
  131. /package/dist/{tools-LPMBKXBZ.js.map → tools-HJT5SK6H.js.map} +0 -0
  132. /package/dist/{userInput-FC4VH2WA.js.map → userInput-UKA36YDI.js.map} +0 -0
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listPybAgentSessions
5
- } from "./chunk-DTDUB7LG.js";
5
+ } from "./chunk-VWOTB6OP.js";
6
6
  import {
7
7
  DEFAULT_TIMEOUT_MS,
8
8
  FallbackToolUseRejectedMessage,
@@ -16,11 +16,11 @@ import {
16
16
  listMCPServers,
17
17
  loadMergedSettings,
18
18
  normalizeSandboxRuntimeConfigFromSettings
19
- } from "./chunk-LBHF6BS2.js";
19
+ } from "./chunk-J2QBYXHQ.js";
20
20
  import {
21
21
  formatValidationResult,
22
22
  validatePluginOrMarketplacePath
23
- } from "./chunk-DTLOHNDH.js";
23
+ } from "./chunk-PN4VJABA.js";
24
24
  import {
25
25
  addMarketplace,
26
26
  disableSkillPlugin,
@@ -33,15 +33,15 @@ import {
33
33
  refreshMarketplaceAsync,
34
34
  removeMarketplace,
35
35
  uninstallSkillPlugin
36
- } from "./chunk-AIE6TFWI.js";
36
+ } from "./chunk-AHDLGGNV.js";
37
37
  import {
38
38
  loadPybAgentSessionMessages
39
- } from "./chunk-5XDINARX.js";
39
+ } from "./chunk-YOMMEAP6.js";
40
40
  import {
41
41
  appendSessionCustomTitleRecord,
42
42
  appendSessionJsonlFromMessage,
43
43
  appendSessionTagRecord
44
- } from "./chunk-FBVDMTHQ.js";
44
+ } from "./chunk-JWIWFXZH.js";
45
45
  import {
46
46
  getRequestStatus,
47
47
  setRequestStatus,
@@ -58,7 +58,7 @@ import {
58
58
  runStopHooks,
59
59
  runUserPromptSubmitHooks,
60
60
  updateHookTranscriptForMessages
61
- } from "./chunk-KAWPVVO4.js";
61
+ } from "./chunk-QXB5JU22.js";
62
62
  import {
63
63
  getPybAgentSessionId,
64
64
  setPybAgentSessionId
@@ -71,35 +71,35 @@ import {
71
71
  getOutputStyleSystemPromptAdditions,
72
72
  resolveOutputStyleName,
73
73
  setCurrentOutputStyle
74
- } from "./chunk-WZQQI3WY.js";
74
+ } from "./chunk-HKQR7WT7.js";
75
75
  import {
76
76
  fetchCustomModels,
77
77
  getModelFeatures
78
- } from "./chunk-G22THW43.js";
78
+ } from "./chunk-ZCIAAXXX.js";
79
79
  import {
80
80
  queryLLM,
81
81
  queryQuick,
82
82
  verifyApiKey
83
- } from "./chunk-6GSWJDP7.js";
83
+ } from "./chunk-XPNI6T7J.js";
84
84
  import {
85
85
  listAllContentFiles,
86
86
  ripGrep,
87
87
  tree
88
- } from "./chunk-RHOMDJ4W.js";
88
+ } from "./chunk-EL65JN4A.js";
89
89
  import {
90
90
  getCustomCommandDirectories,
91
91
  hasCustomCommands,
92
92
  loadCustomCommands,
93
93
  reloadCustomCommands
94
- } from "./chunk-AVJMRJOF.js";
94
+ } from "./chunk-AKPC4FCY.js";
95
95
  import {
96
96
  loadToolPermissionContextFromDisk,
97
97
  persistToolPermissionUpdateToDisk
98
- } from "./chunk-NAEAT6CC.js";
98
+ } from "./chunk-2TG6N7RM.js";
99
99
  import {
100
100
  getSettingsFileCandidates,
101
101
  loadSettingsWithLegacyFallback
102
- } from "./chunk-I4OD44YI.js";
102
+ } from "./chunk-UH5XH34C.js";
103
103
  import {
104
104
  applyToolPermissionContextUpdate,
105
105
  createDefaultToolPermissionContext
@@ -112,7 +112,7 @@ import {
112
112
  resetReminderSession,
113
113
  setTodos,
114
114
  systemReminderService
115
- } from "./chunk-R5B3QREX.js";
115
+ } from "./chunk-BSKDTFG4.js";
116
116
  import {
117
117
  getSessionState
118
118
  } from "./chunk-ERMQRV55.js";
@@ -121,7 +121,7 @@ import {
121
121
  getActiveAgents,
122
122
  getAgentByType,
123
123
  getAllAgents
124
- } from "./chunk-S5PEPGE4.js";
124
+ } from "./chunk-MLEJ32DL.js";
125
125
  import {
126
126
  getSessionPlugins
127
127
  } from "./chunk-BJSWTHRM.js";
@@ -154,22 +154,22 @@ import {
154
154
  processUserInput,
155
155
  reorderMessages,
156
156
  stripSystemMessages
157
- } from "./chunk-5CTMULCY.js";
157
+ } from "./chunk-WCSNMHIZ.js";
158
158
  import {
159
159
  ModelManager,
160
160
  getModelManager,
161
161
  isDefaultSlowAndCapableModel
162
- } from "./chunk-FE3MRJ7F.js";
162
+ } from "./chunk-O77VW2OG.js";
163
163
  import {
164
164
  getCodeStyle,
165
165
  getContext,
166
166
  getGitState,
167
167
  getIsGit,
168
168
  getProjectDocs
169
- } from "./chunk-FPSETIH6.js";
169
+ } from "./chunk-UJV74XPJ.js";
170
170
  import {
171
171
  getTheme
172
- } from "./chunk-A7BD4CXP.js";
172
+ } from "./chunk-YCIJ2LZ5.js";
173
173
  import {
174
174
  DEFAULT_GLOBAL_CONFIG,
175
175
  enableConfigs,
@@ -182,7 +182,7 @@ import {
182
182
  saveGlobalConfig,
183
183
  setAllPointersToModel,
184
184
  setModelPointer
185
- } from "./chunk-LZUURGDV.js";
185
+ } from "./chunk-GCQTTFVA.js";
186
186
  import {
187
187
  AbortError
188
188
  } from "./chunk-RQVLBMP7.js";
@@ -191,7 +191,7 @@ import {
191
191
  getCurrentRequest,
192
192
  logUserFriendly,
193
193
  markPhase
194
- } from "./chunk-NBLIMAPB.js";
194
+ } from "./chunk-FJROYNRY.js";
195
195
  import {
196
196
  ASCII_LOGO,
197
197
  BunShell,
@@ -227,10 +227,10 @@ import {
227
227
  renderBashNotification,
228
228
  setActivePlanConversationKey,
229
229
  setCwd
230
- } from "./chunk-3VMVNZBA.js";
230
+ } from "./chunk-BKP3JI3M.js";
231
231
  import {
232
232
  MACRO
233
- } from "./chunk-QVUJ6WJZ.js";
233
+ } from "./chunk-2B56EMQC.js";
234
234
  import {
235
235
  formatTotalCost,
236
236
  getTotalAPIDuration,
@@ -245,7 +245,7 @@ import {
245
245
  // src/tools/system/BashTool/BashTool.tsx
246
246
  import { statSync as statSync12 } from "fs";
247
247
  import { EOL as EOL3 } from "os";
248
- import { isAbsolute as isAbsolute10, relative as relative13, resolve as resolve10 } from "path";
248
+ import { isAbsolute as isAbsolute10, relative as relative13, resolve as resolve11 } from "path";
249
249
  import * as React109 from "react";
250
250
  import { z as z16 } from "zod";
251
251
 
@@ -418,7 +418,7 @@ var getCommandSubcommandPrefix = memoize(
418
418
  var getCommandPrefix = memoize(
419
419
  async (command4, abortSignal) => {
420
420
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
421
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-22YH2ZPY.js");
421
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-Q5CFDHRJ.js");
422
422
  const response = await queryQuick2({
423
423
  systemPrompt,
424
424
  userPrompt,
@@ -941,8 +941,8 @@ async function shouldAllowNetworkRequest(query2) {
941
941
  }
942
942
  async function serializePermissionPrompt(task) {
943
943
  let release = null;
944
- const next = new Promise((resolve11) => {
945
- release = resolve11;
944
+ const next = new Promise((resolve12) => {
945
+ release = resolve12;
946
946
  });
947
947
  const prev = active.permissionPromptChain;
948
948
  active.permissionPromptChain = prev.then(() => next);
@@ -975,18 +975,18 @@ async function cleanupSandboxNetworkInfrastructure() {
975
975
  active.sessionDeniedHosts.clear();
976
976
  active.inflightPermissionRequests.clear();
977
977
  await Promise.allSettled([
978
- httpServer ? new Promise((resolve11) => {
978
+ httpServer ? new Promise((resolve12) => {
979
979
  try {
980
- httpServer.close(() => resolve11());
980
+ httpServer.close(() => resolve12());
981
981
  } catch {
982
- resolve11();
982
+ resolve12();
983
983
  }
984
984
  }) : Promise.resolve(),
985
- socksServer ? new Promise((resolve11) => {
985
+ socksServer ? new Promise((resolve12) => {
986
986
  try {
987
- socksServer.close(() => resolve11());
987
+ socksServer.close(() => resolve12());
988
988
  } catch {
989
- resolve11();
989
+ resolve12();
990
990
  }
991
991
  }) : Promise.resolve()
992
992
  ]);
@@ -1176,7 +1176,7 @@ async function startHttpProxy() {
1176
1176
  clientSocket.on("data", onData);
1177
1177
  });
1178
1178
  active.httpProxyServer = server;
1179
- return new Promise((resolve11, reject) => {
1179
+ return new Promise((resolve12, reject) => {
1180
1180
  server.once("error", reject);
1181
1181
  server.once("listening", () => {
1182
1182
  const addr = server.address();
@@ -1185,7 +1185,7 @@ async function startHttpProxy() {
1185
1185
  return;
1186
1186
  }
1187
1187
  server.unref();
1188
- resolve11(addr.port);
1188
+ resolve12(addr.port);
1189
1189
  });
1190
1190
  server.listen(0, "127.0.0.1");
1191
1191
  });
@@ -1295,7 +1295,7 @@ async function startSocks5Proxy() {
1295
1295
  socket.on("data", onData);
1296
1296
  });
1297
1297
  active.socksProxyServer = server;
1298
- return new Promise((resolve11, reject) => {
1298
+ return new Promise((resolve12, reject) => {
1299
1299
  server.once("error", reject);
1300
1300
  server.once("listening", () => {
1301
1301
  const addr = server.address();
@@ -1304,7 +1304,7 @@ async function startSocks5Proxy() {
1304
1304
  return;
1305
1305
  }
1306
1306
  server.unref();
1307
- resolve11(addr.port);
1307
+ resolve12(addr.port);
1308
1308
  });
1309
1309
  server.listen(0, "127.0.0.1");
1310
1310
  });
@@ -4458,7 +4458,7 @@ function formatParseError(error) {
4458
4458
  return error instanceof Error ? error.message : String(error);
4459
4459
  }
4460
4460
  async function defaultGateQuery(args) {
4461
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-22YH2ZPY.js");
4461
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-Q5CFDHRJ.js");
4462
4462
  const messages = [
4463
4463
  {
4464
4464
  type: "user",
@@ -9721,9 +9721,9 @@ function setTerminalTitle(title) {
9721
9721
  }
9722
9722
  }
9723
9723
  function clearTerminal() {
9724
- return new Promise((resolve11) => {
9724
+ return new Promise((resolve12) => {
9725
9725
  process.stdout.write("\x1B[2J\x1B[3J\x1B[H", () => {
9726
- resolve11();
9726
+ resolve12();
9727
9727
  });
9728
9728
  });
9729
9729
  }
@@ -10841,8 +10841,8 @@ var OAuthService = class {
10841
10841
  await authURLHandler(manualUrl);
10842
10842
  await openBrowser(autoUrl);
10843
10843
  };
10844
- const { authorizationCode, useManualRedirect } = await new Promise((resolve11, reject) => {
10845
- this.pendingCodePromise = { resolve: resolve11, reject };
10844
+ const { authorizationCode, useManualRedirect } = await new Promise((resolve12, reject) => {
10845
+ this.pendingCodePromise = { resolve: resolve12, reject };
10846
10846
  this.startLocalServer(state, onReady);
10847
10847
  });
10848
10848
  const {
@@ -11013,7 +11013,7 @@ async function createAndStoreApiKey(accessToken) {
11013
11013
  }
11014
11014
  saveGlobalConfig(config2);
11015
11015
  try {
11016
- const { resetAnthropicClient } = await import("./llm-22YH2ZPY.js");
11016
+ const { resetAnthropicClient } = await import("./llm-Q5CFDHRJ.js");
11017
11017
  resetAnthropicClient();
11018
11018
  } catch {
11019
11019
  }
@@ -13383,7 +13383,7 @@ function ModelSelector({
13383
13383
  setModelLoadError(
13384
13384
  `Attempt ${attempt}/${MAX_RETRIES}: Retrying model discovery...`
13385
13385
  );
13386
- await new Promise((resolve11) => setTimeout(resolve11, 1e3));
13386
+ await new Promise((resolve12) => setTimeout(resolve12, 1e3));
13387
13387
  }
13388
13388
  try {
13389
13389
  const models = await fetchModels();
@@ -15295,7 +15295,7 @@ async function refreshPluginRuntimeFromInstalls() {
15295
15295
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
15296
15296
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
15297
15297
  if (dirs.length === 0) return [];
15298
- const { configureSessionPlugins } = await import("./pluginRuntime-ULGPYEC2.js");
15298
+ const { configureSessionPlugins } = await import("./pluginRuntime-T5ID6ROB.js");
15299
15299
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
15300
15300
  return errors;
15301
15301
  }
@@ -15964,7 +15964,7 @@ async function call(onDone, context) {
15964
15964
  ModelConfig,
15965
15965
  {
15966
15966
  onClose: () => {
15967
- import("./model-W6KAPOMM.js").then(({ reloadModelManager: reloadModelManager2 }) => {
15967
+ import("./model-TCTZSQL7.js").then(({ reloadModelManager: reloadModelManager2 }) => {
15968
15968
  reloadModelManager2();
15969
15969
  triggerModelConfigChange();
15970
15970
  onDone();
@@ -20023,7 +20023,7 @@ async function launchExternalEditor(initialText) {
20023
20023
  }
20024
20024
  }
20025
20025
  try {
20026
- await new Promise((resolve11, reject) => {
20026
+ await new Promise((resolve12, reject) => {
20027
20027
  const child = spawn(
20028
20028
  editorCommand.command,
20029
20029
  [...editorCommand.args, filePath],
@@ -20035,7 +20035,7 @@ async function launchExternalEditor(initialText) {
20035
20035
  child.on("error", reject);
20036
20036
  child.on("exit", (code, signal) => {
20037
20037
  if (code === 0 || code === null) {
20038
- resolve11();
20038
+ resolve12();
20039
20039
  } else {
20040
20040
  reject(
20041
20041
  new Error(
@@ -20086,7 +20086,7 @@ async function launchExternalEditorForFilePath(filePath) {
20086
20086
  }
20087
20087
  }
20088
20088
  try {
20089
- await new Promise((resolve11, reject) => {
20089
+ await new Promise((resolve12, reject) => {
20090
20090
  const child = spawn(
20091
20091
  editorCommand.command,
20092
20092
  [...editorCommand.args, filePath],
@@ -20098,7 +20098,7 @@ async function launchExternalEditorForFilePath(filePath) {
20098
20098
  child.on("error", reject);
20099
20099
  child.on("exit", (code, signal) => {
20100
20100
  if (code === 0 || code === null) {
20101
- resolve11();
20101
+ resolve12();
20102
20102
  } else {
20103
20103
  reject(
20104
20104
  new Error(
@@ -23223,7 +23223,7 @@ function useStatusLine() {
23223
23223
  // src/ui/components/PromptInput.tsx
23224
23224
  async function interpretHashCommand(input) {
23225
23225
  try {
23226
- const { queryQuick: queryQuick2 } = await import("./llm-22YH2ZPY.js");
23226
+ const { queryQuick: queryQuick2 } = await import("./llm-Q5CFDHRJ.js");
23227
23227
  const systemPrompt = [
23228
23228
  "You're helping the user structure notes that will be added to their PYB.md file.",
23229
23229
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -23428,7 +23428,7 @@ function PromptInput({
23428
23428
  abortController.abort();
23429
23429
  }
23430
23430
  setIsLoading(false);
23431
- await new Promise((resolve11) => setTimeout(resolve11, 0));
23431
+ await new Promise((resolve12) => setTimeout(resolve12, 0));
23432
23432
  setIsLoading(true);
23433
23433
  let finalInput2 = cleanInput;
23434
23434
  for (const { placeholder: placeholder2, text } of pastedTexts) {
@@ -23536,7 +23536,7 @@ function PromptInput({
23536
23536
  if (messages2.length) {
23537
23537
  if (mode === "bash") {
23538
23538
  onQuery(messages2, newAbortController).then(async () => {
23539
- const { getCwd: getCwd2 } = await import("./state-LIRDPMWY.js");
23539
+ const { getCwd: getCwd2 } = await import("./state-Q4M7BXGL.js");
23540
23540
  setCurrentPwd(getCwd2());
23541
23541
  });
23542
23542
  } else {
@@ -23896,11 +23896,11 @@ import { useCallback as useCallback14 } from "react";
23896
23896
  function useCanUseTool(setToolUseConfirm) {
23897
23897
  return useCallback14(
23898
23898
  async (tool, input, toolUseContext, assistantMessage) => {
23899
- return new Promise((resolve11) => {
23899
+ return new Promise((resolve12) => {
23900
23900
  function logCancelledEvent() {
23901
23901
  }
23902
23902
  function resolveWithCancelledAndAbortAllToolCalls(message) {
23903
- resolve11({
23903
+ resolve12({
23904
23904
  result: false,
23905
23905
  message: message ? `${REJECT_MESSAGE_WITH_FEEDBACK_PREFIX}${message}` : REJECT_MESSAGE
23906
23906
  });
@@ -23918,12 +23918,12 @@ function useCanUseTool(setToolUseConfirm) {
23918
23918
  assistantMessage
23919
23919
  ).then(async (result) => {
23920
23920
  if (result.result === true) {
23921
- resolve11({ result: true });
23921
+ resolve12({ result: true });
23922
23922
  return;
23923
23923
  }
23924
23924
  const deniedResult = result;
23925
23925
  if (deniedResult.shouldPromptUser === false) {
23926
- resolve11({ result: false, message: deniedResult.message });
23926
+ resolve12({ result: false, message: deniedResult.message });
23927
23927
  return;
23928
23928
  }
23929
23929
  const [description2, commandPrefix] = await Promise.all([
@@ -23955,7 +23955,7 @@ function useCanUseTool(setToolUseConfirm) {
23955
23955
  if (type2 === "permanent") {
23956
23956
  } else {
23957
23957
  }
23958
- resolve11({ result: true });
23958
+ resolve12({ result: true });
23959
23959
  },
23960
23960
  onReject(rejectionMessage) {
23961
23961
  resolveWithCancelledAndAbortAllToolCalls(rejectionMessage);
@@ -24607,8 +24607,8 @@ var ToolUseQueue = class {
24607
24607
  }
24608
24608
  if (this.hasExecutingTools() && !this.hasCompletedResults() && !this.hasPendingProgress()) {
24609
24609
  const promises = this.tools.filter((t) => t.status === "executing" && t.promise).map((t) => t.promise);
24610
- const progressPromise = new Promise((resolve11) => {
24611
- this.progressAvailableResolve = resolve11;
24610
+ const progressPromise = new Promise((resolve12) => {
24611
+ this.progressAvailableResolve = resolve12;
24612
24612
  });
24613
24613
  if (promises.length > 0) {
24614
24614
  await Promise.race([...promises, progressPromise]);
@@ -25473,7 +25473,7 @@ function BinaryFeedbackView({
25473
25473
  function BinaryFeedback({
25474
25474
  m1,
25475
25475
  m2,
25476
- resolve: resolve11,
25476
+ resolve: resolve12,
25477
25477
  debug: debug2,
25478
25478
  erroredToolUseIDs,
25479
25479
  inProgressToolUseIDs,
@@ -25485,9 +25485,9 @@ function BinaryFeedback({
25485
25485
  const onChoose = useCallback15(
25486
25486
  (choice) => {
25487
25487
  logBinaryFeedbackEvent(m1, m2, choice);
25488
- resolve11(getBinaryFeedbackResultForChoice(m1, m2, choice));
25488
+ resolve12(getBinaryFeedbackResultForChoice(m1, m2, choice));
25489
25489
  },
25490
- [m1, m2, resolve11]
25490
+ [m1, m2, resolve12]
25491
25491
  );
25492
25492
  useNotifyAfterTimeout(
25493
25493
  `${PRODUCT_NAME} needs your input on a response comparison`
@@ -26322,7 +26322,7 @@ import { homedir as homedir7 } from "os";
26322
26322
  // src/commands/agents/generation.ts
26323
26323
  import { randomUUID as randomUUID5 } from "crypto";
26324
26324
  async function generateAgentWithClaude(prompt) {
26325
- const { queryModel } = await import("./llm-22YH2ZPY.js");
26325
+ const { queryModel } = await import("./llm-Q5CFDHRJ.js");
26326
26326
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
26327
26327
 
26328
26328
  Return your response as a JSON object with exactly these fields:
@@ -26619,7 +26619,7 @@ var COLOR_OPTIONS = [
26619
26619
  "cyan"
26620
26620
  ];
26621
26621
  function openInEditor(filePath) {
26622
- return new Promise((resolve11, reject) => {
26622
+ return new Promise((resolve12, reject) => {
26623
26623
  const platform = process.platform;
26624
26624
  let command4;
26625
26625
  let args;
@@ -26642,7 +26642,7 @@ function openInEditor(filePath) {
26642
26642
  child.on("error", (err) => reject(err));
26643
26643
  child.on(
26644
26644
  "exit",
26645
- (code) => code === 0 ? resolve11() : reject(new Error(`Editor exited with ${code}`))
26645
+ (code) => code === 0 ? resolve12() : reject(new Error(`Editor exited with ${code}`))
26646
26646
  );
26647
26647
  });
26648
26648
  }
@@ -29491,25 +29491,14 @@ function WebFetchPermissionRequest({
29491
29491
  }
29492
29492
 
29493
29493
  // src/utils/tree-sitter/loader.ts
29494
- import treeSitterWasm from "web-tree-sitter/web-tree-sitter.wasm";
29495
- import treeSitterBashWasm from "tree-sitter-bash/tree-sitter-bash.wasm";
29494
+ import { createRequire } from "module";
29496
29495
  import { Parser, Language } from "web-tree-sitter";
29497
-
29498
- // src/utils/tree-sitter/resolve-wasm.ts
29499
- import { fileURLToPath } from "url";
29500
- var resolveWasm = (asset) => {
29501
- if (asset.startsWith("file://")) return fileURLToPath(asset);
29502
- if (asset.startsWith("/") || /^[a-z]:/i.test(asset)) return asset;
29503
- const url2 = new URL(asset, import.meta.url);
29504
- return fileURLToPath(url2);
29505
- };
29506
-
29507
- // src/utils/tree-sitter/loader.ts
29508
29496
  var parserInstance = null;
29509
29497
  var initParser = async () => {
29510
29498
  if (parserInstance) return parserInstance;
29511
- const treeWasmPath = resolveWasm(treeSitterWasm);
29512
- const bashWasmPath = resolveWasm(treeSitterBashWasm);
29499
+ const require2 = createRequire(import.meta.url);
29500
+ const treeWasmPath = require2.resolve("web-tree-sitter/web-tree-sitter.wasm");
29501
+ const bashWasmPath = require2.resolve("tree-sitter-bash/tree-sitter-bash.wasm");
29513
29502
  await Parser.init({
29514
29503
  locateFile: () => treeWasmPath
29515
29504
  });
@@ -29551,21 +29540,22 @@ var BashParser = class {
29551
29540
  };
29552
29541
 
29553
29542
  // src/utils/bash-parser/validator.ts
29554
- async function validateSafety(script) {
29543
+ import { resolve as resolve10 } from "path";
29544
+ async function validateSafety(script, cwd2 = process.cwd()) {
29555
29545
  const tree2 = await BashParser.parse(script);
29556
29546
  const root = tree2.rootNode;
29557
- validateNode(root, script);
29547
+ validateNode(root, script, cwd2);
29558
29548
  }
29559
- function validateNode(node, script) {
29549
+ function validateNode(node, script, cwd2) {
29560
29550
  if (node.type === "command") {
29561
- checkCommand(node, script);
29551
+ checkCommand(node, script, cwd2);
29562
29552
  }
29563
29553
  for (let i = 0; i < node.childCount; i++) {
29564
29554
  const child = node.child(i);
29565
- if (child) validateNode(child, script);
29555
+ if (child) validateNode(child, script, cwd2);
29566
29556
  }
29567
29557
  }
29568
- function checkCommand(node, script) {
29558
+ function checkCommand(node, script, cwd2) {
29569
29559
  const nameNode = node.childForFieldName("name");
29570
29560
  if (!nameNode) return;
29571
29561
  const commandName = nameNode.text.trim();
@@ -29582,7 +29572,6 @@ function checkCommand(node, script) {
29582
29572
  const isRecursive = args.some((arg) => /^-.*r/.test(arg));
29583
29573
  const criticalPaths = [
29584
29574
  "/",
29585
- "/*",
29586
29575
  "/etc",
29587
29576
  "/var",
29588
29577
  "/usr",
@@ -29595,27 +29584,38 @@ function checkCommand(node, script) {
29595
29584
  "/lib",
29596
29585
  "/lib64",
29597
29586
  "/opt",
29598
- "C:\\",
29599
29587
  "C:/",
29600
- "C:\\Windows",
29601
29588
  "C:/Windows",
29602
- "C:\\Program Files",
29603
29589
  "C:/Program Files"
29604
29590
  ];
29605
29591
  const targetsCritical = args.some((arg) => {
29606
- return criticalPaths.some(
29607
- (critical) => arg === critical || arg.startsWith(critical + "/") || arg.startsWith(critical + "\\")
29608
- ) || arg.startsWith("..");
29592
+ if (arg.startsWith("-") || arg.startsWith("$")) return false;
29593
+ try {
29594
+ const absPath = resolve10(cwd2, arg).replace(/\\/g, "/");
29595
+ return criticalPaths.some((critical) => {
29596
+ const normalizedCritical = critical.endsWith("/") ? critical : critical + "/";
29597
+ if (absPath === critical || absPath === critical.replace(/\/$/, "")) return true;
29598
+ if (absPath.startsWith(normalizedCritical)) return true;
29599
+ return false;
29600
+ });
29601
+ } catch (e) {
29602
+ return criticalPaths.includes(arg);
29603
+ }
29609
29604
  });
29610
29605
  const originalCommand = node.text;
29611
29606
  if (isRecursive && targetsCritical) {
29612
29607
  throw new Error(`Security Alert: Potentially dangerous recursive deletion detected: "${originalCommand}". Execution blocked.`);
29613
29608
  }
29614
- const normalizedArgs = args.map((arg) => arg.replace(/\\\\/g, "/").replace(/\\/g, "/"));
29615
- const isWindowsRoot = normalizedArgs.some(
29616
- (arg) => /^c:(\/|\\)?$/i.test(arg)
29617
- );
29618
- if (normalizedArgs.includes("/") || isWindowsRoot) {
29609
+ const targetsRoot = args.some((arg) => {
29610
+ if (arg.startsWith("-") || arg.startsWith("$")) return false;
29611
+ try {
29612
+ const absPath = resolve10(cwd2, arg).replace(/\\/g, "/");
29613
+ return absPath === "/" || /^[a-z]:\/?$/i.test(absPath);
29614
+ } catch {
29615
+ return arg === "/" || /^[a-z]:\/?$/i.test(arg);
29616
+ }
29617
+ });
29618
+ if (targetsRoot) {
29619
29619
  throw new Error(`Security Alert: Root deletion detected: "${originalCommand}". Execution blocked.`);
29620
29620
  }
29621
29621
  }
@@ -29717,7 +29717,7 @@ var BashTool = {
29717
29717
  async validateInput({ command: command4, timeout, dangerouslyDisableSandbox, cwd: cwd2 }, context) {
29718
29718
  const trimmed = command4.trim();
29719
29719
  try {
29720
- await validateSafety(trimmed);
29720
+ await validateSafety(trimmed, cwd2 ? resolve11(getCwd(), cwd2) : getCwd());
29721
29721
  } catch (e) {
29722
29722
  return {
29723
29723
  result: false,
@@ -29757,7 +29757,7 @@ var BashTool = {
29757
29757
  };
29758
29758
  }
29759
29759
  if (cwd2) {
29760
- const fullTargetDir = isAbsolute10(cwd2) ? cwd2 : resolve10(getCwd(), cwd2);
29760
+ const fullTargetDir = isAbsolute10(cwd2) ? cwd2 : resolve11(getCwd(), cwd2);
29761
29761
  if (!isInDirectory(
29762
29762
  relative13(getOriginalCwd(), fullTargetDir),
29763
29763
  relative13(getCwd(), getOriginalCwd())
@@ -29777,7 +29777,7 @@ var BashTool = {
29777
29777
  continue;
29778
29778
  }
29779
29779
  const targetDir = parts[1].replace(/^['"]|['"]$/g, "");
29780
- const fullTargetDir = isAbsolute10(targetDir) ? targetDir : resolve10(getCwd(), targetDir);
29780
+ const fullTargetDir = isAbsolute10(targetDir) ? targetDir : resolve11(getCwd(), targetDir);
29781
29781
  if (!isInDirectory(
29782
29782
  relative13(getOriginalCwd(), fullTargetDir),
29783
29783
  relative13(getCwd(), getOriginalCwd())
@@ -29862,9 +29862,9 @@ var BashTool = {
29862
29862
  const safeMode = Boolean(context?.safeMode ?? context?.options?.safeMode);
29863
29863
  const userPrompt = typeof context?.options?.lastUserPrompt === "string" ? context.options.lastUserPrompt.trim() : "";
29864
29864
  const commandDescription = typeof description2 === "string" ? description2.trim() : "";
29865
- const effectiveCwd = cwd2 ? isAbsolute10(cwd2) ? cwd2 : resolve10(getCwd(), cwd2) : getCwd();
29865
+ const effectiveCwd = cwd2 ? isAbsolute10(cwd2) ? cwd2 : resolve11(getCwd(), cwd2) : getCwd();
29866
29866
  try {
29867
- await validateSafety(command4);
29867
+ await validateSafety(command4, effectiveCwd);
29868
29868
  } catch (error) {
29869
29869
  const msg = error instanceof Error ? error.message : String(error);
29870
29870
  const data = {
@@ -30012,7 +30012,7 @@ var BashTool = {
30012
30012
  if (abortController.signal.aborted) return false;
30013
30013
  const hostForUrl = host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
30014
30014
  const url2 = `http://${hostForUrl}:${port}/`;
30015
- return await new Promise((resolve11) => {
30015
+ return await new Promise((resolve12) => {
30016
30016
  const assistantMessage = createAssistantMessage("");
30017
30017
  if (context.messageId) {
30018
30018
  ;
@@ -30028,13 +30028,13 @@ var BashTool = {
30028
30028
  suggestions: void 0,
30029
30029
  riskScore: null,
30030
30030
  onAbort() {
30031
- resolve11(false);
30031
+ resolve12(false);
30032
30032
  },
30033
30033
  onAllow() {
30034
- resolve11(true);
30034
+ resolve12(true);
30035
30035
  },
30036
30036
  onReject() {
30037
- resolve11(false);
30037
+ resolve12(false);
30038
30038
  }
30039
30039
  };
30040
30040
  setToolJSX({
@@ -30128,8 +30128,8 @@ var BashTool = {
30128
30128
  );
30129
30129
  let backgroundRequested = false;
30130
30130
  let resolveBackground = null;
30131
- const backgroundPromise = new Promise((resolve11) => {
30132
- resolveBackground = resolve11;
30131
+ const backgroundPromise = new Promise((resolve12) => {
30132
+ resolveBackground = resolve12;
30133
30133
  });
30134
30134
  const requestBackground = () => {
30135
30135
  if (backgroundRequested) return;
@@ -30172,7 +30172,7 @@ ${footerParts.join(" ")}`;
30172
30172
  bashId
30173
30173
  })),
30174
30174
  new Promise(
30175
- (resolve11) => setTimeout(() => resolve11({ kind: "tick" }), waitMs)
30175
+ (resolve12) => setTimeout(() => resolve12({ kind: "tick" }), waitMs)
30176
30176
  )
30177
30177
  ]);
30178
30178
  if (race.kind === "background") {
@@ -30206,7 +30206,7 @@ ${footerParts.join(" ")}`;
30206
30206
  if (process.env.NODE_ENV !== "test") {
30207
30207
  getCommandFilePaths(command4, stdout).then((filePaths) => {
30208
30208
  for (const filePath of filePaths) {
30209
- const fullFilePath = isAbsolute10(filePath) ? filePath : resolve10(getCwd(), filePath);
30209
+ const fullFilePath = isAbsolute10(filePath) ? filePath : resolve11(getCwd(), filePath);
30210
30210
  try {
30211
30211
  readFileTimestamps[fullFilePath] = statSync12(fullFilePath).mtimeMs;
30212
30212
  } catch (e) {