pybao-cli 1.3.91 → 1.3.92

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 (148) hide show
  1. package/dist/REPL-FHAVYTOR.js +47 -0
  2. package/dist/{acp-6PJPOT5M.js → acp-WA34EP4Q.js} +29 -29
  3. package/dist/{agentsValidate-LZNBNHP6.js → agentsValidate-77QXXTFH.js} +7 -7
  4. package/dist/{ask-76BUROTN.js → ask-25QZ7VL6.js} +28 -28
  5. package/dist/{autoUpdater-OK2HAUOA.js → autoUpdater-D3DOZCYZ.js} +3 -3
  6. package/dist/{chunk-BULWYV5N.js → chunk-3EAW7NQW.js} +206 -85
  7. package/dist/chunk-3EAW7NQW.js.map +7 -0
  8. package/dist/{chunk-KOHH2H5S.js → chunk-4KXOAXLT.js} +2 -2
  9. package/dist/{chunk-JTGSEBAT.js → chunk-4VZVUC7S.js} +3 -3
  10. package/dist/{chunk-TU4W4WGH.js → chunk-5D4LA7MX.js} +1 -1
  11. package/dist/{chunk-ZMABUWI2.js → chunk-6PYLF3ET.js} +4 -4
  12. package/dist/{chunk-KOZFO5PM.js → chunk-7JQ2O2O7.js} +3 -3
  13. package/dist/{chunk-IQDGXR2L.js → chunk-B5HI7CIZ.js} +3 -3
  14. package/dist/{chunk-O2UT6CSX.js → chunk-BF3QQA6B.js} +4 -4
  15. package/dist/{chunk-TYHTF3BE.js → chunk-BHHLJAAX.js} +2 -2
  16. package/dist/{chunk-57ZD6EQN.js → chunk-BZJJX5ON.js} +1 -1
  17. package/dist/{chunk-UJAA45KE.js → chunk-CNQZQWGS.js} +2 -2
  18. package/dist/{chunk-AWQ5CGW5.js → chunk-CX3J3ZM2.js} +1 -1
  19. package/dist/{chunk-TQMAHPW3.js → chunk-DHVVPKIB.js} +3 -3
  20. package/dist/{chunk-GQWBRVCL.js → chunk-DUYRUANR.js} +1 -1
  21. package/dist/{chunk-AKPBJECB.js → chunk-F5MBTGHO.js} +1 -1
  22. package/dist/{chunk-MJCH3WTW.js → chunk-HJTLI6VS.js} +3 -3
  23. package/dist/{chunk-MBBGTD7O.js → chunk-KDL4PYX2.js} +1 -1
  24. package/dist/{chunk-DG4EUTSH.js → chunk-LS3G24MQ.js} +2 -2
  25. package/dist/{chunk-VNIV2R6B.js → chunk-MNN3BFEZ.js} +2 -2
  26. package/dist/{chunk-ODYWGMTG.js → chunk-NQOZPIZ3.js} +41 -28
  27. package/dist/chunk-NQOZPIZ3.js.map +7 -0
  28. package/dist/{chunk-RQVFFNI2.js → chunk-NVUSSOII.js} +153 -71
  29. package/dist/chunk-NVUSSOII.js.map +7 -0
  30. package/dist/{chunk-WNZU3TS3.js → chunk-POL6ZPVE.js} +3 -3
  31. package/dist/{chunk-UMO4Y6IF.js → chunk-QFZQ4YIM.js} +2 -2
  32. package/dist/{chunk-F5CU72WX.js → chunk-QYFEJFLG.js} +3 -3
  33. package/dist/{chunk-ESQZEVRN.js → chunk-VUVKQMC5.js} +1 -1
  34. package/dist/{chunk-WW3UO4TS.js → chunk-X4SFGT4J.js} +1 -1
  35. package/dist/{chunk-7LTDWLR6.js → chunk-YIZ5ZIMX.js} +1 -1
  36. package/dist/{chunk-7LTDWLR6.js.map → chunk-YIZ5ZIMX.js.map} +1 -1
  37. package/dist/{chunk-K3QOARLB.js → chunk-YMVHPSJ4.js} +3 -3
  38. package/dist/{chunk-FLLFJL7B.js → chunk-Z66NVOKH.js} +1 -1
  39. package/dist/{chunk-DCRXZZJX.js → chunk-ZZVEO3HS.js} +2 -2
  40. package/dist/{cli-MHACN3EZ.js → cli-F4BJ2LO2.js} +87 -87
  41. package/dist/commands-HSOIWNZO.js +51 -0
  42. package/dist/{config-FAPLL3AS.js → config-7T6GQHYO.js} +4 -4
  43. package/dist/{context-ZNW4KPID.js → context-FCGOJXLG.js} +5 -5
  44. package/dist/{customCommands-L46UUKJJ.js → customCommands-ZQCOLNAA.js} +4 -4
  45. package/dist/{env-I77N3GWS.js → env-YEMSVJMU.js} +2 -2
  46. package/dist/{file-DZLGJNYY.js → file-PBBVWSIC.js} +4 -4
  47. package/dist/index.js +3 -3
  48. package/dist/{llm-RTLJBLJE.js → llm-N2EGKP4A.js} +29 -29
  49. package/dist/{llmLazy-5RJ5OQ6P.js → llmLazy-M5HJDVWS.js} +1 -1
  50. package/dist/{loader-OMI5VTDL.js → loader-3LUHCW5P.js} +4 -4
  51. package/dist/{lsp-4GIZ5WWB.js → lsp-EIXOHBY2.js} +6 -6
  52. package/dist/{lspAnchor-MYE3MOZN.js → lspAnchor-QTXVGYX4.js} +6 -6
  53. package/dist/{mcp-GJCOU7DQ.js → mcp-65I2B7GH.js} +7 -7
  54. package/dist/{mentionProcessor-SBDFSDIJ.js → mentionProcessor-MK4NRC65.js} +5 -5
  55. package/dist/{messages-WVSU2VE6.js → messages-IHFHMYSA.js} +1 -1
  56. package/dist/{model-V2EMCPKL.js → model-OJUT7KMM.js} +5 -5
  57. package/dist/{openai-2ZGXLFBL.js → openai-SZYDID6E.js} +5 -5
  58. package/dist/{outputStyles-KNUAGEEW.js → outputStyles-LASFU3IN.js} +4 -4
  59. package/dist/{pluginRuntime-UFC7JFLE.js → pluginRuntime-EE7QC4ZO.js} +6 -6
  60. package/dist/{pluginValidation-Q2S2P43C.js → pluginValidation-RJH2VNIM.js} +6 -6
  61. package/dist/prompts-KXE7CM3Y.js +53 -0
  62. package/dist/{pybAgentSessionLoad-XFMEFBHA.js → pybAgentSessionLoad-ZHRRX5SH.js} +4 -4
  63. package/dist/{pybAgentSessionResume-IKMAZTZ6.js → pybAgentSessionResume-4BTZDUYL.js} +4 -4
  64. package/dist/{pybAgentStreamJsonSession-5NVTYHLV.js → pybAgentStreamJsonSession-R653JAD5.js} +1 -1
  65. package/dist/{pybHooks-O6BH4JWL.js → pybHooks-PZO5PZ4Z.js} +4 -4
  66. package/dist/query-D4TTBO3G.js +59 -0
  67. package/dist/{registry-NBBQP3S3.js → registry-IQEOGXFH.js} +5 -5
  68. package/dist/{ripgrep-D4Z26BOH.js → ripgrep-S37P6LBE.js} +3 -3
  69. package/dist/{skillMarketplace-JYHTX2L2.js → skillMarketplace-KUSRKZUY.js} +3 -3
  70. package/dist/{state-YCFRC443.js → state-BPJBUEMP.js} +2 -2
  71. package/dist/{theme-CAVO3N6U.js → theme-PHX4BKDY.js} +5 -5
  72. package/dist/{toolPermissionSettings-QF7N6PGX.js → toolPermissionSettings-HJFZDYFO.js} +6 -6
  73. package/dist/tools-ERFLE7MQ.js +52 -0
  74. package/dist/{userInput-7XB2LRXJ.js → userInput-CJWBEKXW.js} +30 -30
  75. package/package.json +1 -1
  76. package/dist/REPL-LOJVC37U.js +0 -47
  77. package/dist/chunk-BULWYV5N.js.map +0 -7
  78. package/dist/chunk-ODYWGMTG.js.map +0 -7
  79. package/dist/chunk-RQVFFNI2.js.map +0 -7
  80. package/dist/commands-27WBI67S.js +0 -51
  81. package/dist/prompts-QC6HQ3RR.js +0 -53
  82. package/dist/query-TAKHQYZM.js +0 -55
  83. package/dist/tools-N2JA5WOB.js +0 -52
  84. /package/dist/{REPL-LOJVC37U.js.map → REPL-FHAVYTOR.js.map} +0 -0
  85. /package/dist/{acp-6PJPOT5M.js.map → acp-WA34EP4Q.js.map} +0 -0
  86. /package/dist/{agentsValidate-LZNBNHP6.js.map → agentsValidate-77QXXTFH.js.map} +0 -0
  87. /package/dist/{ask-76BUROTN.js.map → ask-25QZ7VL6.js.map} +0 -0
  88. /package/dist/{autoUpdater-OK2HAUOA.js.map → autoUpdater-D3DOZCYZ.js.map} +0 -0
  89. /package/dist/{chunk-KOHH2H5S.js.map → chunk-4KXOAXLT.js.map} +0 -0
  90. /package/dist/{chunk-JTGSEBAT.js.map → chunk-4VZVUC7S.js.map} +0 -0
  91. /package/dist/{chunk-TU4W4WGH.js.map → chunk-5D4LA7MX.js.map} +0 -0
  92. /package/dist/{chunk-ZMABUWI2.js.map → chunk-6PYLF3ET.js.map} +0 -0
  93. /package/dist/{chunk-KOZFO5PM.js.map → chunk-7JQ2O2O7.js.map} +0 -0
  94. /package/dist/{chunk-IQDGXR2L.js.map → chunk-B5HI7CIZ.js.map} +0 -0
  95. /package/dist/{chunk-O2UT6CSX.js.map → chunk-BF3QQA6B.js.map} +0 -0
  96. /package/dist/{chunk-TYHTF3BE.js.map → chunk-BHHLJAAX.js.map} +0 -0
  97. /package/dist/{chunk-57ZD6EQN.js.map → chunk-BZJJX5ON.js.map} +0 -0
  98. /package/dist/{chunk-UJAA45KE.js.map → chunk-CNQZQWGS.js.map} +0 -0
  99. /package/dist/{chunk-AWQ5CGW5.js.map → chunk-CX3J3ZM2.js.map} +0 -0
  100. /package/dist/{chunk-TQMAHPW3.js.map → chunk-DHVVPKIB.js.map} +0 -0
  101. /package/dist/{chunk-GQWBRVCL.js.map → chunk-DUYRUANR.js.map} +0 -0
  102. /package/dist/{chunk-AKPBJECB.js.map → chunk-F5MBTGHO.js.map} +0 -0
  103. /package/dist/{chunk-MJCH3WTW.js.map → chunk-HJTLI6VS.js.map} +0 -0
  104. /package/dist/{chunk-MBBGTD7O.js.map → chunk-KDL4PYX2.js.map} +0 -0
  105. /package/dist/{chunk-DG4EUTSH.js.map → chunk-LS3G24MQ.js.map} +0 -0
  106. /package/dist/{chunk-VNIV2R6B.js.map → chunk-MNN3BFEZ.js.map} +0 -0
  107. /package/dist/{chunk-WNZU3TS3.js.map → chunk-POL6ZPVE.js.map} +0 -0
  108. /package/dist/{chunk-UMO4Y6IF.js.map → chunk-QFZQ4YIM.js.map} +0 -0
  109. /package/dist/{chunk-F5CU72WX.js.map → chunk-QYFEJFLG.js.map} +0 -0
  110. /package/dist/{chunk-ESQZEVRN.js.map → chunk-VUVKQMC5.js.map} +0 -0
  111. /package/dist/{chunk-WW3UO4TS.js.map → chunk-X4SFGT4J.js.map} +0 -0
  112. /package/dist/{chunk-K3QOARLB.js.map → chunk-YMVHPSJ4.js.map} +0 -0
  113. /package/dist/{chunk-FLLFJL7B.js.map → chunk-Z66NVOKH.js.map} +0 -0
  114. /package/dist/{chunk-DCRXZZJX.js.map → chunk-ZZVEO3HS.js.map} +0 -0
  115. /package/dist/{cli-MHACN3EZ.js.map → cli-F4BJ2LO2.js.map} +0 -0
  116. /package/dist/{commands-27WBI67S.js.map → commands-HSOIWNZO.js.map} +0 -0
  117. /package/dist/{config-FAPLL3AS.js.map → config-7T6GQHYO.js.map} +0 -0
  118. /package/dist/{context-ZNW4KPID.js.map → context-FCGOJXLG.js.map} +0 -0
  119. /package/dist/{customCommands-L46UUKJJ.js.map → customCommands-ZQCOLNAA.js.map} +0 -0
  120. /package/dist/{env-I77N3GWS.js.map → env-YEMSVJMU.js.map} +0 -0
  121. /package/dist/{file-DZLGJNYY.js.map → file-PBBVWSIC.js.map} +0 -0
  122. /package/dist/{llm-RTLJBLJE.js.map → llm-N2EGKP4A.js.map} +0 -0
  123. /package/dist/{llmLazy-5RJ5OQ6P.js.map → llmLazy-M5HJDVWS.js.map} +0 -0
  124. /package/dist/{loader-OMI5VTDL.js.map → loader-3LUHCW5P.js.map} +0 -0
  125. /package/dist/{lsp-4GIZ5WWB.js.map → lsp-EIXOHBY2.js.map} +0 -0
  126. /package/dist/{lspAnchor-MYE3MOZN.js.map → lspAnchor-QTXVGYX4.js.map} +0 -0
  127. /package/dist/{mcp-GJCOU7DQ.js.map → mcp-65I2B7GH.js.map} +0 -0
  128. /package/dist/{mentionProcessor-SBDFSDIJ.js.map → mentionProcessor-MK4NRC65.js.map} +0 -0
  129. /package/dist/{messages-WVSU2VE6.js.map → messages-IHFHMYSA.js.map} +0 -0
  130. /package/dist/{model-V2EMCPKL.js.map → model-OJUT7KMM.js.map} +0 -0
  131. /package/dist/{openai-2ZGXLFBL.js.map → openai-SZYDID6E.js.map} +0 -0
  132. /package/dist/{outputStyles-KNUAGEEW.js.map → outputStyles-LASFU3IN.js.map} +0 -0
  133. /package/dist/{pluginRuntime-UFC7JFLE.js.map → pluginRuntime-EE7QC4ZO.js.map} +0 -0
  134. /package/dist/{pluginValidation-Q2S2P43C.js.map → pluginValidation-RJH2VNIM.js.map} +0 -0
  135. /package/dist/{prompts-QC6HQ3RR.js.map → prompts-KXE7CM3Y.js.map} +0 -0
  136. /package/dist/{pybAgentSessionLoad-XFMEFBHA.js.map → pybAgentSessionLoad-ZHRRX5SH.js.map} +0 -0
  137. /package/dist/{pybAgentSessionResume-IKMAZTZ6.js.map → pybAgentSessionResume-4BTZDUYL.js.map} +0 -0
  138. /package/dist/{pybAgentStreamJsonSession-5NVTYHLV.js.map → pybAgentStreamJsonSession-R653JAD5.js.map} +0 -0
  139. /package/dist/{pybHooks-O6BH4JWL.js.map → pybHooks-PZO5PZ4Z.js.map} +0 -0
  140. /package/dist/{query-TAKHQYZM.js.map → query-D4TTBO3G.js.map} +0 -0
  141. /package/dist/{registry-NBBQP3S3.js.map → registry-IQEOGXFH.js.map} +0 -0
  142. /package/dist/{ripgrep-D4Z26BOH.js.map → ripgrep-S37P6LBE.js.map} +0 -0
  143. /package/dist/{skillMarketplace-JYHTX2L2.js.map → skillMarketplace-KUSRKZUY.js.map} +0 -0
  144. /package/dist/{state-YCFRC443.js.map → state-BPJBUEMP.js.map} +0 -0
  145. /package/dist/{theme-CAVO3N6U.js.map → theme-PHX4BKDY.js.map} +0 -0
  146. /package/dist/{toolPermissionSettings-QF7N6PGX.js.map → toolPermissionSettings-HJFZDYFO.js.map} +0 -0
  147. /package/dist/{tools-N2JA5WOB.js.map → tools-ERFLE7MQ.js.map} +0 -0
  148. /package/dist/{userInput-7XB2LRXJ.js.map → userInput-CJWBEKXW.js.map} +0 -0
@@ -2,11 +2,11 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listAllContentFiles
5
- } from "./chunk-AKPBJECB.js";
5
+ } from "./chunk-F5MBTGHO.js";
6
6
  import {
7
7
  getCwd,
8
8
  logError
9
- } from "./chunk-MBBGTD7O.js";
9
+ } from "./chunk-KDL4PYX2.js";
10
10
 
11
11
  // src/utils/fs/file.ts
12
12
  import {
@@ -8,14 +8,14 @@ import {
8
8
  getSettingsFileCandidates,
9
9
  loadSettingsWithLegacyFallback,
10
10
  saveSettingsToPrimaryAndSyncLegacy
11
- } from "./chunk-FLLFJL7B.js";
11
+ } from "./chunk-Z66NVOKH.js";
12
12
  import {
13
13
  getCurrentProjectConfig
14
- } from "./chunk-MJCH3WTW.js";
14
+ } from "./chunk-HJTLI6VS.js";
15
15
  import {
16
16
  getCwd,
17
17
  logError
18
- } from "./chunk-MBBGTD7O.js";
18
+ } from "./chunk-KDL4PYX2.js";
19
19
 
20
20
  // src/utils/permissions/toolPermissionSettings.ts
21
21
  function uniqueStrings(value) {
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getSessionProjectDir
5
- } from "./chunk-UMO4Y6IF.js";
5
+ } from "./chunk-QFZQ4YIM.js";
6
6
  import {
7
7
  isUuid
8
8
  } from "./chunk-5P7HBXTD.js";
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
 
4
4
  // src/services/ai/llmLazy.ts
5
5
  async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal, options) {
6
- const { queryLLM: inner } = await import("./llm-RTLJBLJE.js");
6
+ const { queryLLM: inner } = await import("./llm-N2EGKP4A.js");
7
7
  return inner(
8
8
  messages,
9
9
  systemPrompt,
@@ -14,15 +14,15 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
14
14
  );
15
15
  }
16
16
  async function queryQuick(args) {
17
- const { queryQuick: inner } = await import("./llm-RTLJBLJE.js");
17
+ const { queryQuick: inner } = await import("./llm-N2EGKP4A.js");
18
18
  return inner(args);
19
19
  }
20
20
  async function verifyApiKey(apiKey, baseURL, provider) {
21
- const { verifyApiKey: inner } = await import("./llm-RTLJBLJE.js");
21
+ const { verifyApiKey: inner } = await import("./llm-N2EGKP4A.js");
22
22
  return inner(apiKey, baseURL, provider);
23
23
  }
24
24
  async function fetchAnthropicModels(apiKey, baseURL) {
25
- const { fetchAnthropicModels: inner } = await import("./llm-RTLJBLJE.js");
25
+ const { fetchAnthropicModels: inner } = await import("./llm-N2EGKP4A.js");
26
26
  return inner(apiKey, baseURL);
27
27
  }
28
28
 
@@ -4,10 +4,10 @@ import {
4
4
  PRODUCT_NAME,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-MBBGTD7O.js";
7
+ } from "./chunk-KDL4PYX2.js";
8
8
  import {
9
9
  MACRO
10
- } from "./chunk-7LTDWLR6.js";
10
+ } from "./chunk-YIZ5ZIMX.js";
11
11
 
12
12
  // src/utils/session/autoUpdater.ts
13
13
  async function getSemver() {
@@ -82,7 +82,7 @@ async function checkAndNotifyUpdate() {
82
82
  const [
83
83
  { isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },
84
84
  { env }
85
- ] = await Promise.all([import("./config-FAPLL3AS.js"), import("./env-I77N3GWS.js")]);
85
+ ] = await Promise.all([import("./config-7T6GQHYO.js"), import("./env-YEMSVJMU.js")]);
86
86
  if (await isAutoUpdaterDisabled()) return;
87
87
  if (await env.getIsDocker()) return;
88
88
  if (!await env.hasInternetAccess()) return;
@@ -2,13 +2,13 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  MarketplaceManifestSchema
5
- } from "./chunk-ESQZEVRN.js";
5
+ } from "./chunk-VUVKQMC5.js";
6
6
  import {
7
7
  parseFrontmatter
8
- } from "./chunk-TYHTF3BE.js";
8
+ } from "./chunk-BHHLJAAX.js";
9
9
  import {
10
10
  getCwd
11
- } from "./chunk-MBBGTD7O.js";
11
+ } from "./chunk-KDL4PYX2.js";
12
12
 
13
13
  // src/services/plugins/pluginValidation.ts
14
14
  import { existsSync, lstatSync, readFileSync } from "node:fs";
@@ -3,13 +3,13 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getSettingsFileCandidates,
5
5
  loadSettingsWithLegacyFallback
6
- } from "./chunk-FLLFJL7B.js";
6
+ } from "./chunk-Z66NVOKH.js";
7
7
  import {
8
8
  getSessionPlugins
9
9
  } from "./chunk-BJSWTHRM.js";
10
10
  import {
11
11
  getTheme
12
- } from "./chunk-57ZD6EQN.js";
12
+ } from "./chunk-BZJJX5ON.js";
13
13
  import {
14
14
  addMcprcServerForTesting,
15
15
  getCurrentProjectConfig,
@@ -19,13 +19,13 @@ import {
19
19
  safeParseJSON,
20
20
  saveCurrentProjectConfig,
21
21
  saveGlobalConfig
22
- } from "./chunk-MJCH3WTW.js";
22
+ } from "./chunk-HJTLI6VS.js";
23
23
  import {
24
24
  PRODUCT_COMMAND,
25
25
  PRODUCT_NAME,
26
26
  getCwd,
27
27
  logMCPError
28
- } from "./chunk-MBBGTD7O.js";
28
+ } from "./chunk-KDL4PYX2.js";
29
29
 
30
30
  // src/services/mcp/client.ts
31
31
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-BJSWTHRM.js";
6
6
  import {
7
7
  debug
8
- } from "./chunk-WW3UO4TS.js";
8
+ } from "./chunk-X4SFGT4J.js";
9
9
  import {
10
10
  getCwd,
11
11
  logError,
12
12
  resolveXdgDataPath
13
- } from "./chunk-MBBGTD7O.js";
13
+ } from "./chunk-KDL4PYX2.js";
14
14
 
15
15
  // src/services/plugins/customCommands.ts
16
16
  import { existsSync, readFileSync, readdirSync, statSync } from "fs";
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getGlobalConfig
5
- } from "./chunk-MJCH3WTW.js";
5
+ } from "./chunk-HJTLI6VS.js";
6
6
 
7
7
  // src/utils/theme/index.ts
8
8
  var lightTheme = {
@@ -7,14 +7,14 @@ import {
7
7
  getSettingsFileCandidates,
8
8
  loadSettingsWithLegacyFallback,
9
9
  saveSettingsToPrimaryAndSyncLegacy
10
- } from "./chunk-FLLFJL7B.js";
10
+ } from "./chunk-Z66NVOKH.js";
11
11
  import {
12
12
  getSessionPlugins
13
13
  } from "./chunk-BJSWTHRM.js";
14
14
  import {
15
15
  getCwd,
16
16
  getXdgConfigDir
17
- } from "./chunk-MBBGTD7O.js";
17
+ } from "./chunk-KDL4PYX2.js";
18
18
 
19
19
  // src/services/ui/outputStyles.ts
20
20
  import figures from "figures";
@@ -448,7 +448,7 @@ function getLastAssistantMessageId(messages) {
448
448
 
449
449
  // src/utils/messages/index.ts
450
450
  async function processUserInput(input, mode, setToolJSX, context, pastedImages) {
451
- const impl = await import("./userInput-7XB2LRXJ.js");
451
+ const impl = await import("./userInput-CJWBEKXW.js");
452
452
  return impl.processUserInput(input, mode, setToolJSX, context, pastedImages);
453
453
  }
454
454
 
@@ -4,13 +4,13 @@ import {
4
4
  LspServerRegistry,
5
5
  findNearestRoot,
6
6
  getInstallNotices
7
- } from "./chunk-F5CU72WX.js";
7
+ } from "./chunk-QYFEJFLG.js";
8
8
  import {
9
9
  levenshtein
10
10
  } from "./chunk-UZ34JEUK.js";
11
11
  import {
12
12
  getCwd
13
- } from "./chunk-MBBGTD7O.js";
13
+ } from "./chunk-KDL4PYX2.js";
14
14
 
15
15
  // src/lsp/index.ts
16
16
  import { extname as extname2 } from "path";
@@ -529,7 +529,7 @@ var LspClientManager = class _LspClientManager {
529
529
  const safeCwd = /[^\x00-\x7F]/.test(resolvedRoot) ? process.cwd() : resolvedRoot;
530
530
  let initOpts = serverInfo.initializationOptions;
531
531
  if (serverInfo.id === "pyright" || serverInfo.id === "ty") {
532
- const { detectPythonVenv } = await import("./registry-NBBQP3S3.js");
532
+ const { detectPythonVenv } = await import("./registry-IQEOGXFH.js");
533
533
  const pythonPath = detectPythonVenv(resolvedRoot);
534
534
  if (pythonPath) {
535
535
  initOpts = { ...initOpts ?? {}, pythonPath };
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getSessionProjectDir,
5
5
  getSessionProjectsDir
6
- } from "./chunk-UMO4Y6IF.js";
6
+ } from "./chunk-QFZQ4YIM.js";
7
7
  import {
8
8
  isUuid
9
9
  } from "./chunk-5P7HBXTD.js";
@@ -4,7 +4,7 @@ import {
4
4
  BunShell,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-MBBGTD7O.js";
7
+ } from "./chunk-KDL4PYX2.js";
8
8
 
9
9
  // src/utils/system/ripgrep.ts
10
10
  import { findActualExecutable } from "spawn-rx";
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-RQVLBMP7.js";
6
6
  import {
7
7
  debug
8
- } from "./chunk-WW3UO4TS.js";
8
+ } from "./chunk-X4SFGT4J.js";
9
9
  import {
10
10
  getCwd,
11
11
  getGlobalConfigFilePath,
12
12
  getLegacyGlobalConfigFilePath,
13
13
  logError
14
- } from "./chunk-MBBGTD7O.js";
14
+ } from "./chunk-KDL4PYX2.js";
15
15
 
16
16
  // src/core/config/schema.ts
17
17
  function isAutoUpdaterStatus(value) {
@@ -688,7 +688,7 @@ function setModelPointer(pointer, modelName) {
688
688
  }
689
689
  };
690
690
  saveGlobalConfig(updatedConfig);
691
- import("./model-V2EMCPKL.js").then(({ reloadModelManager }) => {
691
+ import("./model-OJUT7KMM.js").then(({ reloadModelManager }) => {
692
692
  reloadModelManager();
693
693
  });
694
694
  }
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  MACRO
5
- } from "./chunk-7LTDWLR6.js";
5
+ } from "./chunk-YIZ5ZIMX.js";
6
6
 
7
7
  // src/utils/state/index.ts
8
8
  import { cwd } from "process";
@@ -6,11 +6,11 @@ import {
6
6
  } from "./chunk-ERMQRV55.js";
7
7
  import {
8
8
  debug
9
- } from "./chunk-WW3UO4TS.js";
9
+ } from "./chunk-X4SFGT4J.js";
10
10
  import {
11
11
  logError,
12
12
  resolveXdgDataPath
13
- } from "./chunk-MBBGTD7O.js";
13
+ } from "./chunk-KDL4PYX2.js";
14
14
 
15
15
  // src/utils/agent/storage.ts
16
16
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
@@ -6,12 +6,12 @@ import {
6
6
  } from "./chunk-ERMQRV55.js";
7
7
  import {
8
8
  getGlobalConfig
9
- } from "./chunk-MJCH3WTW.js";
9
+ } from "./chunk-HJTLI6VS.js";
10
10
  import {
11
11
  debug,
12
12
  getCurrentRequest,
13
13
  logAPIError
14
- } from "./chunk-WW3UO4TS.js";
14
+ } from "./chunk-X4SFGT4J.js";
15
15
 
16
16
  // src/services/ai/openai.ts
17
17
  import { ProxyAgent, fetch } from "undici";
@@ -5,17 +5,17 @@ import {
5
5
  getGlobalConfig,
6
6
  getOrCreateUserID,
7
7
  saveCurrentProjectConfig
8
- } from "./chunk-MJCH3WTW.js";
8
+ } from "./chunk-HJTLI6VS.js";
9
9
  import {
10
10
  SESSION_ID,
11
11
  env,
12
12
  execFileNoThrow,
13
13
  getCwd,
14
14
  logError
15
- } from "./chunk-MBBGTD7O.js";
15
+ } from "./chunk-KDL4PYX2.js";
16
16
  import {
17
17
  MACRO
18
- } from "./chunk-7LTDWLR6.js";
18
+ } from "./chunk-YIZ5ZIMX.js";
19
19
  import {
20
20
  __require
21
21
  } from "./chunk-I3J4JYES.js";
@@ -261,7 +261,7 @@ async function getGitState() {
261
261
  }
262
262
 
263
263
  // src/context/index.ts
264
- import { join as join3 } from "path";
264
+ import { join as join3, sep as sep2 } from "path";
265
265
  import { readFile } from "fs/promises";
266
266
  import { existsSync as existsSync3, readdirSync as readdirSync2 } from "fs";
267
267
 
@@ -529,27 +529,19 @@ ${authorLog || "(no recent commits)"}`;
529
529
  return null;
530
530
  }
531
531
  });
532
- var getContext = memoize4(
532
+ var getStaticContext = memoize4(
533
533
  async () => {
534
534
  const codeStyle = getCodeStyle();
535
535
  const projectConfig = getCurrentProjectConfig();
536
536
  const dontCrawl = projectConfig.dontCrawlDirectory;
537
- const [
538
- gitStatus,
539
- directoryStructure,
540
- instructionFilesNote,
541
- readme,
542
- projectDocs
543
- ] = await Promise.all([
537
+ const [gitStatus, instructionFilesNote, readme, projectDocs] = await Promise.all([
544
538
  getGitStatus(),
545
- dontCrawl ? Promise.resolve("") : getDirectoryStructure(),
546
539
  dontCrawl ? Promise.resolve("") : getInstructionFilesNote(),
547
540
  getReadme(),
548
541
  getProjectDocs()
549
542
  ]);
550
543
  return {
551
544
  ...projectConfig.context,
552
- ...directoryStructure ? { directoryStructure } : {},
553
545
  ...gitStatus ? { gitStatus } : {},
554
546
  ...codeStyle ? { codeStyle } : {},
555
547
  ...instructionFilesNote ? { instructionFilesNote } : {},
@@ -558,21 +550,42 @@ var getContext = memoize4(
558
550
  };
559
551
  }
560
552
  );
561
- var getDirectoryStructure = memoize4(
562
- async function() {
563
- let lines;
564
- try {
565
- const entries = readdirSync2(getCwd(), { withFileTypes: true });
566
- lines = entries.map((entry) => `${entry.isDirectory() ? "d" : "f"} ${entry.name}`).join("\n");
567
- } catch (error) {
568
- logError(error);
569
- return "";
570
- }
571
- return `Below is a snapshot of this project's file structure at the start of the conversation. This snapshot will NOT update during the conversation.
572
-
573
- ${lines}`;
553
+ async function getContext() {
554
+ const projectConfig = getCurrentProjectConfig();
555
+ const dontCrawl = projectConfig.dontCrawlDirectory;
556
+ const [staticContext, directoryStructure] = await Promise.all([
557
+ getStaticContext(),
558
+ dontCrawl ? Promise.resolve("") : getDirectoryStructure()
559
+ ]);
560
+ return {
561
+ ...staticContext,
562
+ ...directoryStructure ? { directoryStructure } : {}
563
+ };
564
+ }
565
+ async function getDirectoryStructure() {
566
+ let lines;
567
+ let cwdWithSeparator = "";
568
+ let directories = [];
569
+ let files = [];
570
+ try {
571
+ const cwd = getCwd();
572
+ cwdWithSeparator = cwd.endsWith(sep2) ? cwd : `${cwd}${sep2}`;
573
+ const entries = readdirSync2(cwd, { withFileTypes: true });
574
+ directories = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name).sort((a, b) => a.localeCompare(b));
575
+ files = entries.filter((entry) => !entry.isDirectory()).map((entry) => entry.name).sort((a, b) => a.localeCompare(b));
576
+ lines = [
577
+ ...directories.map((name) => `- ${name}${sep2}`),
578
+ ...files.map((name) => `- ${name}`)
579
+ ].join("\n");
580
+ } catch (error) {
581
+ logError(error);
582
+ return "";
574
583
  }
575
- );
584
+ return `Current workspace root directory structure (top-level files and directories).
585
+ Workspace Root Directory: ${cwdWithSeparator}
586
+ Workspace Root Directory Structure: '${cwdWithSeparator}' contains ${directories.length} directories and ${files.length} files, as follows:
587
+ ${lines}`;
588
+ }
576
589
 
577
590
  export {
578
591
  getCodeStyle,
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/config/style.ts", "../src/utils/config/projectInstructions.ts", "../src/context/index.ts", "../src/utils/system/git.ts", "../src/utils/identity/user.ts", "../src/utils/config/rules.ts"],
4
+ "sourcesContent": ["import { readFileSync } from 'fs'\nimport { memoize } from 'lodash-es'\nimport { getCwd } from '@utils/state'\nimport { getProjectInstructionFiles } from './projectInstructions'\n\nconst STYLE_PROMPT =\n 'The codebase follows strict style guidelines shown below. All code changes must strictly adhere to these guidelines to maintain consistency and quality.'\n\nexport const getCodeStyle = memoize((): string => {\n const styles: string[] = []\n\n const instructionFiles = getProjectInstructionFiles(getCwd())\n for (const file of instructionFiles) {\n try {\n styles.push(\n `Contents of ${file.absolutePath}:\\n\\n${readFileSync(file.absolutePath, 'utf-8')}`,\n )\n } catch {\n }\n }\n\n if (styles.length === 0) {\n return ''\n }\n\n return `${STYLE_PROMPT}\\n\\n${styles.join('\\n\\n')}`\n})\n", "import { existsSync, readFileSync } from 'fs'\nimport { dirname, join, parse, relative, resolve, sep } from 'path'\n\nexport type ProjectInstructionFile = {\n absolutePath: string\n relativePathFromGitRoot: string\n filename: 'AGENTS.override.md' | 'AGENTS.md'\n}\n\nconst DEFAULT_PROJECT_DOC_MAX_BYTES = 32 * 1024\n\nfunction isRegularFile(path: string): boolean {\n try {\n return existsSync(path)\n } catch {\n return false\n }\n}\n\nexport function findGitRoot(startDir: string): string | null {\n let currentDir = resolve(startDir)\n const fsRoot = parse(currentDir).root\n\n while (true) {\n const dotGitPath = join(currentDir, '.git')\n if (existsSync(dotGitPath)) {\n return currentDir\n }\n if (currentDir === fsRoot) {\n return null\n }\n currentDir = dirname(currentDir)\n }\n}\n\nexport function getDirsFromGitRootToCwd(gitRoot: string, cwd: string): string[] {\n const absoluteGitRoot = resolve(gitRoot)\n const absoluteCwd = resolve(cwd)\n\n const rel = relative(absoluteGitRoot, absoluteCwd)\n if (!rel || rel === '.') {\n return [absoluteGitRoot]\n }\n\n const parts = rel.split(sep).filter(Boolean)\n const dirs: string[] = [absoluteGitRoot]\n for (let i = 0; i < parts.length; i++) {\n dirs.push(join(absoluteGitRoot, ...parts.slice(0, i + 1)))\n }\n return dirs\n}\n\nexport function getProjectInstructionFiles(\n cwd: string,\n): ProjectInstructionFile[] {\n const gitRoot = findGitRoot(cwd)\n const root = gitRoot ?? resolve(cwd)\n const dirs = getDirsFromGitRootToCwd(root, cwd)\n\n const results: ProjectInstructionFile[] = []\n for (const dir of dirs) {\n const overridePath = join(dir, 'AGENTS.override.md')\n const agentsPath = join(dir, 'AGENTS.md')\n\n if (isRegularFile(overridePath)) {\n results.push({\n absolutePath: overridePath,\n relativePathFromGitRoot:\n relative(root, overridePath) || 'AGENTS.override.md',\n filename: 'AGENTS.override.md',\n })\n continue\n }\n\n if (isRegularFile(agentsPath)) {\n results.push({\n absolutePath: agentsPath,\n relativePathFromGitRoot: relative(root, agentsPath) || 'AGENTS.md',\n filename: 'AGENTS.md',\n })\n }\n }\n\n return results\n}\n\nexport function getProjectDocMaxBytes(): number {\n const raw = process.env.PYB_PROJECT_DOC_MAX_BYTES\n if (!raw) return DEFAULT_PROJECT_DOC_MAX_BYTES\n const parsed = Number.parseInt(raw, 10)\n if (!Number.isFinite(parsed) || parsed <= 0)\n return DEFAULT_PROJECT_DOC_MAX_BYTES\n return parsed\n}\n\nexport function readAndConcatProjectInstructionFiles(\n files: ProjectInstructionFile[],\n {\n maxBytes = getProjectDocMaxBytes(),\n includeHeadings = true,\n }: { maxBytes?: number; includeHeadings?: boolean } = {},\n): { content: string; truncated: boolean } {\n let totalBytes = 0\n let truncated = false\n\n const parts: string[] = []\n\n const truncateUtf8ToBytes = (value: string, bytes: number): string => {\n const buf = Buffer.from(value, 'utf8')\n if (buf.length <= bytes) return value\n return buf.subarray(0, Math.max(0, bytes)).toString('utf8')\n }\n\n for (const file of files) {\n if (totalBytes >= maxBytes) {\n truncated = true\n break\n }\n\n let raw: string\n try {\n raw = readFileSync(file.absolutePath, 'utf-8')\n } catch {\n continue\n }\n\n if (!raw.trim()) continue\n\n const separator = parts.length > 0 ? '\\n\\n' : ''\n const separatorBytes = Buffer.byteLength(separator, 'utf8')\n const remainingAfterSeparator = maxBytes - totalBytes - separatorBytes\n if (remainingAfterSeparator <= 0) {\n truncated = true\n break\n }\n\n const heading = includeHeadings\n ? `# ${file.filename}\\n\\n_Path: ${file.relativePathFromGitRoot}_\\n\\n`\n : ''\n\n const block = `${heading}${raw}`.trimEnd()\n const blockBytes = Buffer.byteLength(block, 'utf8')\n\n if (blockBytes <= remainingAfterSeparator) {\n parts.push(`${separator}${block}`)\n totalBytes += separatorBytes + blockBytes\n continue\n }\n\n truncated = true\n const suffix = `\\n\\n... (truncated: project instruction files exceeded ${maxBytes} bytes)`\n const suffixBytes = Buffer.byteLength(suffix, 'utf8')\n\n let finalBlock = ''\n if (suffixBytes >= remainingAfterSeparator) {\n finalBlock = truncateUtf8ToBytes(suffix, remainingAfterSeparator)\n } else {\n const prefixBudget = remainingAfterSeparator - suffixBytes\n const prefix = truncateUtf8ToBytes(block, prefixBudget)\n finalBlock = `${prefix}${suffix}`\n }\n\n parts.push(`${separator}${finalBlock}`)\n totalBytes += separatorBytes + Buffer.byteLength(finalBlock, 'utf8')\n break\n }\n\n return { content: parts.join(''), truncated }\n}\n", "import {\n getCurrentProjectConfig,\n saveCurrentProjectConfig,\n} from '@utils/config'\nimport { logError } from '@utils/log'\nimport { getCodeStyle } from '@utils/config/style'\nimport { getCwd } from '@utils/state'\nimport { memoize, omit } from 'lodash-es'\nimport { getIsGit } from '@utils/system/git'\nimport { execFileNoThrow } from '@utils/system/execFileNoThrow'\nimport { join, sep } from 'path'\nimport { readFile } from 'fs/promises'\nimport { existsSync, readdirSync } from 'fs'\nimport { getModelManager } from '@utils/model'\nimport { lastX } from '@utils/text/generators'\nimport { getGitEmail } from '@utils/identity/user'\nimport {\n getProjectInstructionFiles,\n readAndConcatProjectInstructionFiles,\n} from '@utils/config/projectInstructions'\nimport { getProjectRules } from '@utils/config/rules'\n\nexport async function getInstructionFilesNote(): Promise<string | null> {\n try {\n const cwd = getCwd()\n const instructionFiles = getProjectInstructionFiles(cwd)\n const legacyPath = join(cwd, 'CLAUDE.md')\n const hasLegacy = existsSync(legacyPath)\n\n if (instructionFiles.length === 0 && !hasLegacy) {\n return null\n }\n\n const fileTypes = new Set<string>()\n for (const f of instructionFiles) fileTypes.add(f.filename)\n if (hasLegacy) fileTypes.add('CLAUDE.md (legacy)')\n\n const allFiles = [\n ...instructionFiles.map(f => f.absolutePath),\n ...(hasLegacy ? [legacyPath] : []),\n ]\n\n return `NOTE: Additional project instruction files (${Array.from(fileTypes).join(', ')}) were found. When working in these directories, make sure to read and follow the instructions in the corresponding files:\\n${allFiles\n .map(_ => `- ${_}`)\n .join('\\n')}`\n } catch (error) {\n logError(error)\n return null\n }\n}\n\nexport function setContext(key: string, value: string): void {\n const projectConfig = getCurrentProjectConfig()\n const context = omit(\n { ...projectConfig.context, [key]: value },\n 'codeStyle',\n 'directoryStructure',\n )\n saveCurrentProjectConfig({ ...projectConfig, context })\n}\n\nexport function removeContext(key: string): void {\n const projectConfig = getCurrentProjectConfig()\n const context = omit(\n projectConfig.context,\n key,\n 'codeStyle',\n 'directoryStructure',\n )\n saveCurrentProjectConfig({ ...projectConfig, context })\n}\n\nexport const getReadme = memoize(async (): Promise<string | null> => {\n try {\n const readmePath = join(getCwd(), 'README.md')\n if (!existsSync(readmePath)) {\n return null\n }\n const content = await readFile(readmePath, 'utf-8')\n return content\n } catch (e) {\n logError(e)\n return null\n }\n})\n\nexport async function getProjectDocsForCwd(\n cwd: string,\n): Promise<string | null> {\n try {\n const instructionFiles = getProjectInstructionFiles(cwd)\n const legacyPath = join(cwd, 'CLAUDE.md')\n\n const docs = []\n\n if (instructionFiles.length > 0) {\n const { content } = readAndConcatProjectInstructionFiles(\n instructionFiles,\n { includeHeadings: true },\n )\n if (content.trim().length > 0) docs.push(content)\n }\n\n const rules = getProjectRules(cwd)\n if (rules.length > 0) {\n const formattedRules = `\n# Project Rules (MANDATORY)\nThe following content represents the immutable rules for this project.\n<project_rules>\n${rules.join('\\n\\n')}\n</project_rules>\n`.trim()\n docs.unshift(formattedRules)\n }\n\n if (existsSync(legacyPath)) {\n try {\n const content = await readFile(legacyPath, 'utf-8')\n docs.push(\n `# Legacy instructions (CLAUDE.md)\\n\\n${content}`,\n )\n } catch (e) {\n logError(e)\n }\n }\n\n return docs.length > 0 ? docs.join('\\n\\n---\\n\\n') : null\n } catch (e) {\n logError(e)\n return null\n }\n}\n\nexport const getProjectDocs = memoize(async (): Promise<string | null> => {\n return getProjectDocsForCwd(getCwd())\n})\n\nexport const getGitStatus = memoize(async (): Promise<string | null> => {\n if (process.env.NODE_ENV === 'test') {\n return null\n }\n if (!(await getIsGit())) {\n return null\n }\n\n try {\n const [branch, mainBranch, status, log, authorLog] = await Promise.all([\n execFileNoThrow(\n 'git',\n ['branch', '--show-current'],\n undefined,\n undefined,\n false,\n ).then(({ stdout }) => stdout.trim()),\n execFileNoThrow(\n 'git',\n ['rev-parse', '--abbrev-ref', 'origin/HEAD'],\n undefined,\n undefined,\n false,\n ).then(({ stdout }) => stdout.replace('origin/', '').trim()),\n execFileNoThrow(\n 'git',\n ['status', '--short'],\n undefined,\n undefined,\n false,\n ).then(({ stdout }) => stdout.trim()),\n execFileNoThrow(\n 'git',\n ['log', '--oneline', '-n', '5'],\n undefined,\n undefined,\n false,\n ).then(({ stdout }) => stdout.trim()),\n execFileNoThrow(\n 'git',\n [\n 'log',\n '--oneline',\n '-n',\n '5',\n '--author',\n (await getGitEmail()) || '',\n ],\n undefined,\n undefined,\n false,\n ).then(({ stdout }) => stdout.trim()),\n ])\n const statusLines = status.split('\\n').length\n const truncatedStatus =\n statusLines > 200\n ? status.split('\\n').slice(0, 200).join('\\n') +\n '\\n... (truncated because there are more than 200 lines. If you need more information, run \"git status\" using BashTool)'\n : status\n\n return `This is the git status at the start of the conversation. Note that this status is a snapshot in time, and will not update during the conversation.\\nCurrent branch: ${branch}\\n\\nMain branch (you will usually use this for PRs): ${mainBranch}\\n\\nStatus:\\n${truncatedStatus || '(clean)'}\\n\\nRecent commits:\\n${log}\\n\\nYour recent commits:\\n${authorLog || '(no recent commits)'}`\n } catch (error) {\n logError(error)\n return null\n }\n})\n\nconst getStaticContext = memoize(\n async (): Promise<{\n [k: string]: string\n }> => {\n const codeStyle = getCodeStyle()\n const projectConfig = getCurrentProjectConfig()\n const dontCrawl = projectConfig.dontCrawlDirectory\n const [gitStatus, instructionFilesNote, readme, projectDocs] =\n await Promise.all([\n getGitStatus(),\n dontCrawl ? Promise.resolve('') : getInstructionFilesNote(),\n getReadme(),\n getProjectDocs(),\n ])\n return {\n ...projectConfig.context,\n ...(gitStatus ? { gitStatus } : {}),\n ...(codeStyle ? { codeStyle } : {}),\n ...(instructionFilesNote ? { instructionFilesNote } : {}),\n ...(readme ? { readme } : {}),\n ...(projectDocs ? { projectDocs } : {}),\n }\n },\n)\n\nexport async function getContext(): Promise<{\n [k: string]: string\n}> {\n const projectConfig = getCurrentProjectConfig()\n const dontCrawl = projectConfig.dontCrawlDirectory\n const [staticContext, directoryStructure] = await Promise.all([\n getStaticContext(),\n dontCrawl ? Promise.resolve('') : getDirectoryStructure(),\n ])\n return {\n ...staticContext,\n ...(directoryStructure ? { directoryStructure } : {}),\n }\n}\n\nexport async function getDirectoryStructure(): Promise<string> {\n let lines: string\n let cwdWithSeparator = ''\n let directories: string[] = []\n let files: string[] = []\n try {\n const cwd = getCwd()\n cwdWithSeparator = cwd.endsWith(sep) ? cwd : `${cwd}${sep}`\n const entries = readdirSync(cwd, { withFileTypes: true })\n directories = entries\n .filter(entry => entry.isDirectory())\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b))\n files = entries\n .filter(entry => !entry.isDirectory())\n .map(entry => entry.name)\n .sort((a, b) => a.localeCompare(b))\n lines = [\n ...directories.map(name => `- ${name}${sep}`),\n ...files.map(name => `- ${name}`),\n ].join('\\n')\n } catch (error) {\n logError(error)\n return ''\n }\n\n return `Current workspace root directory structure (top-level files and directories).\nWorkspace Root Directory: ${cwdWithSeparator}\nWorkspace Root Directory Structure: '${cwdWithSeparator}' contains ${directories.length} directories and ${files.length} files, as follows:\n${lines}`\n}\n", "import { memoize } from 'lodash-es'\nimport { execFileNoThrow } from './execFileNoThrow'\n\nexport const getIsGit = memoize(async (): Promise<boolean> => {\n const { code } = await execFileNoThrow('git', [\n 'rev-parse',\n '--is-inside-work-tree',\n ])\n return code === 0\n})\n\nexport const getHead = async (): Promise<string> => {\n const { stdout } = await execFileNoThrow('git', ['rev-parse', 'HEAD'])\n return stdout.trim()\n}\n\nexport const getBranch = async (): Promise<string> => {\n const { stdout } = await execFileNoThrow(\n 'git',\n ['rev-parse', '--abbrev-ref', 'HEAD'],\n undefined,\n undefined,\n false,\n )\n return stdout.trim()\n}\n\nexport const getRemoteUrl = async (): Promise<string | null> => {\n const { stdout, code } = await execFileNoThrow(\n 'git',\n ['remote', 'get-url', 'origin'],\n undefined,\n undefined,\n false,\n )\n return code === 0 ? stdout.trim() : null\n}\n\nexport const getIsHeadOnRemote = async (): Promise<boolean> => {\n const { code } = await execFileNoThrow(\n 'git',\n ['rev-parse', '@{u}'],\n undefined,\n undefined,\n false,\n )\n return code === 0\n}\n\nexport const getIsClean = async (): Promise<boolean> => {\n const { stdout } = await execFileNoThrow(\n 'git',\n ['status', '--porcelain'],\n undefined,\n undefined,\n false,\n )\n return stdout.trim().length === 0\n}\n\nexport interface GitRepoState {\n commitHash: string\n branchName: string\n remoteUrl: string | null\n isHeadOnRemote: boolean\n isClean: boolean\n}\n\nexport async function getGitState(): Promise<GitRepoState | null> {\n try {\n const [commitHash, branchName, remoteUrl, isHeadOnRemote, isClean] =\n await Promise.all([\n getHead(),\n getBranch(),\n getRemoteUrl(),\n getIsHeadOnRemote(),\n getIsClean(),\n ])\n\n return {\n commitHash,\n branchName,\n remoteUrl,\n isHeadOnRemote,\n isClean,\n }\n } catch (_) {\n return null\n }\n}\n", "import { getGlobalConfig, getOrCreateUserID } from '@utils/config'\nimport { memoize } from 'lodash-es'\nimport { env } from '@utils/config/env'\nimport { execFileNoThrow } from '@utils/system/execFileNoThrow'\nimport { logError, SESSION_ID } from '@utils/log'\nimport { MACRO } from '@constants/macros'\nexport const getGitEmail = memoize(async (): Promise<string | undefined> => {\n const result = await execFileNoThrow('git', ['config', 'user.email'])\n if (result.code !== 0) {\n logError(`Failed to get git email: ${result.stdout} ${result.stderr}`)\n return undefined\n }\n return result.stdout.trim() || undefined\n})\n\ntype SimpleUser = {\n customIDs?: Record<string, string>\n userID: string\n appVersion?: string\n userAgent?: string\n email?: string\n custom?: Record<string, unknown>\n}\n\nexport const getUser = memoize(async (): Promise<SimpleUser> => {\n const userID = getOrCreateUserID()\n const config = getGlobalConfig()\n const email = undefined\n return {\n customIDs: {\n sessionId: SESSION_ID,\n },\n userID,\n appVersion: MACRO.VERSION,\n userAgent: env.platform,\n email,\n custom: {\n nodeVersion: env.nodeVersion,\n userType: process.env.USER_TYPE,\n organizationUuid: config.oauthAccount?.organizationUuid,\n accountUuid: config.oauthAccount?.accountUuid,\n },\n }\n})\n", "import { existsSync, readdirSync, readFileSync, statSync } from 'fs'\r\nimport { join, relative, resolve } from 'path'\r\nimport matter from 'gray-matter'\r\nimport { minimatch } from 'minimatch'\r\nimport { findGitRoot, getDirsFromGitRootToCwd } from './projectInstructions'\r\nimport { logError } from '@utils/log'\r\n\r\nexport interface RuleFile {\r\n filename: string\r\n content: string\r\n paths?: string[]\r\n}\r\n\r\nfunction getRulesFromDir(dir: string, root: string, cwd: string): string[] {\r\n if (!existsSync(dir)) return []\r\n\r\n const rules: string[] = []\r\n const files = readdirSync(dir)\r\n\r\n for (const file of files) {\r\n if (!file.endsWith('.md')) continue\r\n\r\n const filePath = join(dir, file)\r\n if (!statSync(filePath).isFile()) continue\r\n\r\n try {\r\n const fileContent = readFileSync(filePath, 'utf-8')\r\n // gray-matter by default uses js-yaml.safeLoad which is removed in js-yaml v4.\r\n // We need to provide a custom parser if we want to be safe, or rely on gray-matter's auto-detection if updated.\r\n // However, looking at the error \"Function yaml.safeLoad is removed\", it seems gray-matter 4.0.3 (in package.json)\r\n // might not be fully compatible with js-yaml 4.x out of the box without options?\r\n // Actually, checking gray-matter docs/issues, v4.0.3 should work.\r\n // But the error comes from gray-matter calling yaml.safeLoad.\r\n \r\n // Solution: Pass a custom parser engine to gray-matter\r\n const yaml = require('js-yaml')\r\n const matterOptions = {\r\n engines: {\r\n yaml: {\r\n parse: yaml.load.bind(yaml),\r\n stringify: yaml.dump.bind(yaml)\r\n }\r\n }\r\n }\r\n \r\n const { content, data } = matter(fileContent, matterOptions)\r\n \r\n // User rule: If no paths (YAML frontmatter), it applies globally.\r\n if (!data.paths || !Array.isArray(data.paths) || data.paths.length === 0) {\r\n rules.push(content.trim())\r\n continue\r\n }\r\n\r\n // If paths are specified, check if current context (cwd) matches\r\n // This is a simplification. Ideally we'd check active files, but cwd is a good proxy.\r\n const relCwd = relative(root, cwd)\r\n // On Windows, relative paths might use backslashes, but glob patterns usually expect forward slashes.\r\n // Also ensure we don't have a leading slash unless absolute, but relative returns without leading slash usually.\r\n // However, if relCwd is empty (cwd == root), we want it to match \"**\" but maybe not \"src/**\".\r\n // If relCwd is \"src\", it matches \"src/**\".\r\n \r\n const normalizedRelCwd = relCwd.split('\\\\').join('/')\r\n\r\n // Let's iterate over paths patterns\r\n const hasMatch = data.paths.some((pattern: string) => {\r\n // minimatch(path, pattern)\r\n // If pattern is \"src/**\", and path is \"src\", minimatch(\"src\", \"src/**\") is FALSE.\r\n // We need to check if the path is INSIDE the pattern.\r\n // But the rules say: \"Rules are included when the file being edited matches the path\".\r\n // Since we are approximating by CWD, we should check:\r\n // 1. Is CWD inside the pattern? (e.g. pattern=\"src/**\", cwd=\"src/utils\" -> YES)\r\n // 2. Is CWD the pattern itself? (e.g. pattern=\"src\", cwd=\"src\" -> YES)\r\n // 3. Is the pattern inside CWD? (e.g. pattern=\"src/utils/**\", cwd=\"src\" -> Maybe? If I edit src/index.ts, no. If I edit src/utils/foo.ts, yes.)\r\n \r\n // Let's stick to: CWD must match the pattern OR be a child of the pattern.\r\n // minimatch(\"src/utils\", \"src/**\") -> true\r\n \r\n // Debugging logs in test might help, but let's try to be more robust.\r\n // Maybe \"src\" does NOT match \"src/**\" in minimatch?\r\n // \"src/\" matches \"src/**\"?\r\n \r\n if (minimatch(normalizedRelCwd, pattern)) return true\r\n \r\n // Try appending slash if not empty\r\n if (normalizedRelCwd && minimatch(normalizedRelCwd + '/', pattern)) return true\r\n \r\n return false\r\n })\r\n\r\n if (hasMatch) {\r\n rules.push(content.trim())\r\n }\r\n } catch (e) {\r\n logError(e)\r\n }\r\n }\r\n\r\n return rules\r\n}\r\n\r\nexport function getProjectRules(cwd: string): string[] {\r\n const gitRoot = findGitRoot(cwd)\r\n const root = gitRoot ?? resolve(cwd)\r\n const dirs = getDirsFromGitRootToCwd(root, cwd)\r\n\r\n const rules: string[] = []\r\n\r\n // Iterate from root down to cwd to collect rules from .claude/rules, .cursor/rules and .pyb/rules\r\n for (const dir of dirs) {\r\n // .claude/rules\r\n const claudeRulesDir = join(dir, '.claude', 'rules')\r\n rules.push(...getRulesFromDir(claudeRulesDir, root, cwd))\r\n\r\n // .cursor/rules\r\n const cursorRulesDir = join(dir, '.cursor', 'rules')\r\n rules.push(...getRulesFromDir(cursorRulesDir, root, cwd))\r\n\r\n // .pyb/rules\r\n const pybRulesDir = join(dir, '.pyb', 'rules')\r\n rules.push(...getRulesFromDir(pybRulesDir, root, cwd))\r\n }\r\n\r\n return rules\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["readFileSync", "readFileSync", "memoize", "memoize", "memoize", "join", "sep", "existsSync", "readdirSync", "memoize", "memoize", "existsSync", "readFileSync", "join", "relative", "resolve", "existsSync", "join", "readFileSync", "relative", "resolve", "join", "existsSync", "memoize", "sep", "readdirSync"]
7
+ }