pybao-cli 1.4.52 → 1.4.54

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 (147) hide show
  1. package/dist/REPL-PLFZAGYW.js +46 -0
  2. package/dist/{acp-QYEU24FQ.js → acp-EU6HEJLP.js} +29 -29
  3. package/dist/{agentsValidate-755OIS5R.js → agentsValidate-ULGDCFW4.js} +7 -7
  4. package/dist/{ask-DZPBLG26.js → ask-EER3Y73H.js} +28 -28
  5. package/dist/{autoUpdater-TYGW5WLI.js → autoUpdater-TRX4I3EQ.js} +3 -3
  6. package/dist/{chunk-LHL4VQUV.js → chunk-22STWQHO.js} +1 -1
  7. package/dist/{chunk-NCHARDNR.js → chunk-3ZLYX3F7.js} +1 -1
  8. package/dist/{chunk-NCHARDNR.js.map → chunk-3ZLYX3F7.js.map} +1 -1
  9. package/dist/{chunk-2HMRIM4L.js → chunk-4RZG72X3.js} +48 -141
  10. package/dist/{chunk-2HMRIM4L.js.map → chunk-4RZG72X3.js.map} +3 -3
  11. package/dist/{chunk-OMMS565Z.js → chunk-55SQFXYF.js} +2 -2
  12. package/dist/{chunk-2BHQOW7O.js → chunk-AKQRCFEG.js} +4 -4
  13. package/dist/{chunk-DWNHYJME.js → chunk-BRUBNQBF.js} +4 -4
  14. package/dist/{chunk-SEIO7WV7.js → chunk-CTH2TQ44.js} +1 -1
  15. package/dist/{chunk-RCASKKDU.js → chunk-CY4JVBI6.js} +2 -2
  16. package/dist/{chunk-VTHHH4MB.js → chunk-DAXRXAKW.js} +4 -4
  17. package/dist/{chunk-FVNXJG2K.js → chunk-FINGJBE6.js} +2 -2
  18. package/dist/{chunk-KMM3X3B5.js → chunk-FKYST5A6.js} +5 -32
  19. package/dist/chunk-FKYST5A6.js.map +7 -0
  20. package/dist/{chunk-CACSIWAN.js → chunk-FOHI4RYN.js} +1 -1
  21. package/dist/{chunk-VSGJTKCW.js → chunk-GYUGF7Z4.js} +1 -1
  22. package/dist/{chunk-EBSC7C7P.js → chunk-JWFB77XG.js} +3 -3
  23. package/dist/{chunk-LTNUANEK.js → chunk-LM2G4CP4.js} +39 -110
  24. package/dist/{chunk-LTNUANEK.js.map → chunk-LM2G4CP4.js.map} +2 -2
  25. package/dist/{chunk-NXAHOIRY.js → chunk-LQXXZ3XN.js} +2 -2
  26. package/dist/{chunk-WTHNVU5P.js → chunk-OLD4PDC4.js} +3 -3
  27. package/dist/{chunk-R3QXCIEI.js → chunk-P3NO7ZL3.js} +1 -1
  28. package/dist/{chunk-H6QOGXMT.js → chunk-PLRBKD4T.js} +3 -3
  29. package/dist/{chunk-4LMBJZXO.js → chunk-PSKP2HV7.js} +1 -1
  30. package/dist/{chunk-OBAKKVHK.js → chunk-S2EZMQMN.js} +1 -1
  31. package/dist/{chunk-CIPSRLKQ.js → chunk-SNGWOLJA.js} +1 -1
  32. package/dist/{chunk-BRKYVW3X.js → chunk-SQME3XH5.js} +3 -3
  33. package/dist/{chunk-232RVCMQ.js → chunk-SSD7IA7A.js} +3 -3
  34. package/dist/{chunk-FTYUYN6L.js → chunk-TTGVASRL.js} +1 -1
  35. package/dist/{chunk-KFQPMAFO.js → chunk-U6ULRJKF.js} +3 -3
  36. package/dist/{chunk-GFD2DNDU.js → chunk-WQ66KITR.js} +2 -2
  37. package/dist/{chunk-XDWCDTQK.js → chunk-X2N6266T.js} +2 -2
  38. package/dist/{chunk-EF6YCOC4.js → chunk-XN7B2PR5.js} +4 -4
  39. package/dist/{chunk-OX2MB4Q2.js → chunk-Z4ZFYXDD.js} +3 -3
  40. package/dist/{cli-WGYHJPFZ.js → cli-KXRL2NZ3.js} +88 -90
  41. package/dist/cli-KXRL2NZ3.js.map +7 -0
  42. package/dist/commands-JNH2NX6O.js +50 -0
  43. package/dist/{config-AGAJCFQD.js → config-MRRYR4L2.js} +4 -4
  44. package/dist/{context-ZOZD4S7X.js → context-YU2GRA7X.js} +6 -6
  45. package/dist/{customCommands-4GSMRRC4.js → customCommands-GNASTOCM.js} +4 -4
  46. package/dist/{env-RPUIAXPD.js → env-2NXVQGKZ.js} +2 -2
  47. package/dist/{file-HFMWEHAT.js → file-O62EYAT7.js} +4 -4
  48. package/dist/index.js +3 -3
  49. package/dist/{llm-CP2G3BZQ.js → llm-CC3GQ5ZM.js} +29 -29
  50. package/dist/{llmLazy-7GLWRPMO.js → llmLazy-P67QDUQB.js} +1 -1
  51. package/dist/{loader-RJUX5HRI.js → loader-NGJOUZMP.js} +4 -4
  52. package/dist/{lsp-4PS6EN3E.js → lsp-5ONJTJJN.js} +6 -6
  53. package/dist/{lspAnchor-QPHIEGKU.js → lspAnchor-64D7S7UX.js} +6 -6
  54. package/dist/{mcp-Z5GOR6OF.js → mcp-2NFK2CDM.js} +7 -7
  55. package/dist/{mentionProcessor-ZPSEF4XC.js → mentionProcessor-ALSLW6WX.js} +5 -5
  56. package/dist/{messages-7PZIS7S6.js → messages-UWBA7Y3N.js} +1 -1
  57. package/dist/{model-OMBFATWA.js → model-HVOTTR74.js} +5 -5
  58. package/dist/{openai-ZFDYT7H5.js → openai-XPB53TRX.js} +5 -5
  59. package/dist/{outputStyles-LK7EH6PS.js → outputStyles-XEUWBMJT.js} +4 -4
  60. package/dist/{pluginRuntime-PFAQAL5X.js → pluginRuntime-4VPZQSUT.js} +6 -6
  61. package/dist/{pluginValidation-F6UPGXZP.js → pluginValidation-HSPGXLLH.js} +6 -6
  62. package/dist/prompts-BQ7XU4JD.js +52 -0
  63. package/dist/{pybAgentSessionLoad-PQX3FKEC.js → pybAgentSessionLoad-QCS5BPKE.js} +4 -4
  64. package/dist/{pybAgentSessionResume-FTGMQQ4B.js → pybAgentSessionResume-BHKVFNEB.js} +4 -4
  65. package/dist/{pybAgentStreamJsonSession-GQZLIIQS.js → pybAgentStreamJsonSession-4FFFA2XQ.js} +1 -1
  66. package/dist/{pybHooks-7SOKY4A3.js → pybHooks-FFZ274LI.js} +4 -4
  67. package/dist/query-HMJCI74H.js +54 -0
  68. package/dist/{registry-HEA2CKWA.js → registry-WLA42WFC.js} +5 -5
  69. package/dist/{ripgrep-S4IOHQNI.js → ripgrep-Y6PV5BPR.js} +3 -3
  70. package/dist/{skillMarketplace-GLH5WP4Y.js → skillMarketplace-DHXHFPKE.js} +3 -3
  71. package/dist/{state-DYO5HDW5.js → state-IXZXJMUN.js} +2 -2
  72. package/dist/{theme-FMEMGZ2J.js → theme-UCADMAGV.js} +5 -5
  73. package/dist/{toolPermissionSettings-J2R2EOVJ.js → toolPermissionSettings-4XVH7G4T.js} +6 -6
  74. package/dist/tools-JUIOFBYE.js +51 -0
  75. package/dist/{userInput-IZB262ZP.js → userInput-VTCMXSNX.js} +30 -30
  76. package/package.json +1 -1
  77. package/dist/REPL-5YY25SRP.js +0 -46
  78. package/dist/chunk-KMM3X3B5.js.map +0 -7
  79. package/dist/cli-WGYHJPFZ.js.map +0 -7
  80. package/dist/commands-6JEO2KAK.js +0 -50
  81. package/dist/prompts-3I2J4KDX.js +0 -52
  82. package/dist/query-MZKEYXCU.js +0 -54
  83. package/dist/tools-OLRB4MMF.js +0 -51
  84. /package/dist/{REPL-5YY25SRP.js.map → REPL-PLFZAGYW.js.map} +0 -0
  85. /package/dist/{acp-QYEU24FQ.js.map → acp-EU6HEJLP.js.map} +0 -0
  86. /package/dist/{agentsValidate-755OIS5R.js.map → agentsValidate-ULGDCFW4.js.map} +0 -0
  87. /package/dist/{ask-DZPBLG26.js.map → ask-EER3Y73H.js.map} +0 -0
  88. /package/dist/{autoUpdater-TYGW5WLI.js.map → autoUpdater-TRX4I3EQ.js.map} +0 -0
  89. /package/dist/{chunk-LHL4VQUV.js.map → chunk-22STWQHO.js.map} +0 -0
  90. /package/dist/{chunk-OMMS565Z.js.map → chunk-55SQFXYF.js.map} +0 -0
  91. /package/dist/{chunk-2BHQOW7O.js.map → chunk-AKQRCFEG.js.map} +0 -0
  92. /package/dist/{chunk-DWNHYJME.js.map → chunk-BRUBNQBF.js.map} +0 -0
  93. /package/dist/{chunk-SEIO7WV7.js.map → chunk-CTH2TQ44.js.map} +0 -0
  94. /package/dist/{chunk-RCASKKDU.js.map → chunk-CY4JVBI6.js.map} +0 -0
  95. /package/dist/{chunk-VTHHH4MB.js.map → chunk-DAXRXAKW.js.map} +0 -0
  96. /package/dist/{chunk-FVNXJG2K.js.map → chunk-FINGJBE6.js.map} +0 -0
  97. /package/dist/{chunk-CACSIWAN.js.map → chunk-FOHI4RYN.js.map} +0 -0
  98. /package/dist/{chunk-VSGJTKCW.js.map → chunk-GYUGF7Z4.js.map} +0 -0
  99. /package/dist/{chunk-EBSC7C7P.js.map → chunk-JWFB77XG.js.map} +0 -0
  100. /package/dist/{chunk-NXAHOIRY.js.map → chunk-LQXXZ3XN.js.map} +0 -0
  101. /package/dist/{chunk-WTHNVU5P.js.map → chunk-OLD4PDC4.js.map} +0 -0
  102. /package/dist/{chunk-R3QXCIEI.js.map → chunk-P3NO7ZL3.js.map} +0 -0
  103. /package/dist/{chunk-H6QOGXMT.js.map → chunk-PLRBKD4T.js.map} +0 -0
  104. /package/dist/{chunk-4LMBJZXO.js.map → chunk-PSKP2HV7.js.map} +0 -0
  105. /package/dist/{chunk-OBAKKVHK.js.map → chunk-S2EZMQMN.js.map} +0 -0
  106. /package/dist/{chunk-CIPSRLKQ.js.map → chunk-SNGWOLJA.js.map} +0 -0
  107. /package/dist/{chunk-BRKYVW3X.js.map → chunk-SQME3XH5.js.map} +0 -0
  108. /package/dist/{chunk-232RVCMQ.js.map → chunk-SSD7IA7A.js.map} +0 -0
  109. /package/dist/{chunk-FTYUYN6L.js.map → chunk-TTGVASRL.js.map} +0 -0
  110. /package/dist/{chunk-KFQPMAFO.js.map → chunk-U6ULRJKF.js.map} +0 -0
  111. /package/dist/{chunk-GFD2DNDU.js.map → chunk-WQ66KITR.js.map} +0 -0
  112. /package/dist/{chunk-XDWCDTQK.js.map → chunk-X2N6266T.js.map} +0 -0
  113. /package/dist/{chunk-EF6YCOC4.js.map → chunk-XN7B2PR5.js.map} +0 -0
  114. /package/dist/{chunk-OX2MB4Q2.js.map → chunk-Z4ZFYXDD.js.map} +0 -0
  115. /package/dist/{commands-6JEO2KAK.js.map → commands-JNH2NX6O.js.map} +0 -0
  116. /package/dist/{config-AGAJCFQD.js.map → config-MRRYR4L2.js.map} +0 -0
  117. /package/dist/{context-ZOZD4S7X.js.map → context-YU2GRA7X.js.map} +0 -0
  118. /package/dist/{customCommands-4GSMRRC4.js.map → customCommands-GNASTOCM.js.map} +0 -0
  119. /package/dist/{env-RPUIAXPD.js.map → env-2NXVQGKZ.js.map} +0 -0
  120. /package/dist/{file-HFMWEHAT.js.map → file-O62EYAT7.js.map} +0 -0
  121. /package/dist/{llm-CP2G3BZQ.js.map → llm-CC3GQ5ZM.js.map} +0 -0
  122. /package/dist/{llmLazy-7GLWRPMO.js.map → llmLazy-P67QDUQB.js.map} +0 -0
  123. /package/dist/{loader-RJUX5HRI.js.map → loader-NGJOUZMP.js.map} +0 -0
  124. /package/dist/{lsp-4PS6EN3E.js.map → lsp-5ONJTJJN.js.map} +0 -0
  125. /package/dist/{lspAnchor-QPHIEGKU.js.map → lspAnchor-64D7S7UX.js.map} +0 -0
  126. /package/dist/{mcp-Z5GOR6OF.js.map → mcp-2NFK2CDM.js.map} +0 -0
  127. /package/dist/{mentionProcessor-ZPSEF4XC.js.map → mentionProcessor-ALSLW6WX.js.map} +0 -0
  128. /package/dist/{messages-7PZIS7S6.js.map → messages-UWBA7Y3N.js.map} +0 -0
  129. /package/dist/{model-OMBFATWA.js.map → model-HVOTTR74.js.map} +0 -0
  130. /package/dist/{openai-ZFDYT7H5.js.map → openai-XPB53TRX.js.map} +0 -0
  131. /package/dist/{outputStyles-LK7EH6PS.js.map → outputStyles-XEUWBMJT.js.map} +0 -0
  132. /package/dist/{pluginRuntime-PFAQAL5X.js.map → pluginRuntime-4VPZQSUT.js.map} +0 -0
  133. /package/dist/{pluginValidation-F6UPGXZP.js.map → pluginValidation-HSPGXLLH.js.map} +0 -0
  134. /package/dist/{prompts-3I2J4KDX.js.map → prompts-BQ7XU4JD.js.map} +0 -0
  135. /package/dist/{pybAgentSessionLoad-PQX3FKEC.js.map → pybAgentSessionLoad-QCS5BPKE.js.map} +0 -0
  136. /package/dist/{pybAgentSessionResume-FTGMQQ4B.js.map → pybAgentSessionResume-BHKVFNEB.js.map} +0 -0
  137. /package/dist/{pybAgentStreamJsonSession-GQZLIIQS.js.map → pybAgentStreamJsonSession-4FFFA2XQ.js.map} +0 -0
  138. /package/dist/{pybHooks-7SOKY4A3.js.map → pybHooks-FFZ274LI.js.map} +0 -0
  139. /package/dist/{query-MZKEYXCU.js.map → query-HMJCI74H.js.map} +0 -0
  140. /package/dist/{registry-HEA2CKWA.js.map → registry-WLA42WFC.js.map} +0 -0
  141. /package/dist/{ripgrep-S4IOHQNI.js.map → ripgrep-Y6PV5BPR.js.map} +0 -0
  142. /package/dist/{skillMarketplace-GLH5WP4Y.js.map → skillMarketplace-DHXHFPKE.js.map} +0 -0
  143. /package/dist/{state-DYO5HDW5.js.map → state-IXZXJMUN.js.map} +0 -0
  144. /package/dist/{theme-FMEMGZ2J.js.map → theme-UCADMAGV.js.map} +0 -0
  145. /package/dist/{toolPermissionSettings-J2R2EOVJ.js.map → toolPermissionSettings-4XVH7G4T.js.map} +0 -0
  146. /package/dist/{tools-OLRB4MMF.js.map → tools-JUIOFBYE.js.map} +0 -0
  147. /package/dist/{userInput-IZB262ZP.js.map → userInput-VTCMXSNX.js.map} +0 -0
@@ -2,12 +2,12 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getGlobalConfig
5
- } from "./chunk-KFQPMAFO.js";
5
+ } from "./chunk-U6ULRJKF.js";
6
6
  import {
7
7
  debug,
8
8
  getCurrentRequest,
9
9
  logAPIError
10
- } from "./chunk-CACSIWAN.js";
10
+ } from "./chunk-FOHI4RYN.js";
11
11
 
12
12
  // src/services/ai/openai.ts
13
13
  import { ProxyAgent, fetch } from "undici";
@@ -4,17 +4,17 @@ import {
4
4
  LspServerRegistry,
5
5
  findNearestRoot,
6
6
  getInstallNotices
7
- } from "./chunk-H6QOGXMT.js";
7
+ } from "./chunk-PLRBKD4T.js";
8
8
  import {
9
9
  levenshtein
10
10
  } from "./chunk-UZ34JEUK.js";
11
11
  import {
12
12
  debug
13
- } from "./chunk-CACSIWAN.js";
13
+ } from "./chunk-FOHI4RYN.js";
14
14
  import {
15
15
  getCwd,
16
16
  getSessionRoot
17
- } from "./chunk-LHL4VQUV.js";
17
+ } from "./chunk-22STWQHO.js";
18
18
 
19
19
  // src/lsp/index.ts
20
20
  import { extname as extname2 } from "path";
@@ -565,7 +565,7 @@ var LspClientManager = class _LspClientManager {
565
565
  const safeCwd = /[^\x00-\x7F]/.test(resolvedRoot) ? process.cwd() : resolvedRoot;
566
566
  let initOpts = serverInfo.initializationOptions;
567
567
  if (serverInfo.id === "pyright" || serverInfo.id === "ty") {
568
- const { detectPythonVenv } = await import("./registry-HEA2CKWA.js");
568
+ const { detectPythonVenv } = await import("./registry-WLA42WFC.js");
569
569
  const pythonPath = detectPythonVenv(resolvedRoot);
570
570
  if (pythonPath) {
571
571
  initOpts = { ...initOpts ?? {}, pythonPath };
@@ -3,13 +3,13 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getSettingsFileCandidates,
5
5
  loadSettingsWithLegacyFallback
6
- } from "./chunk-R3QXCIEI.js";
6
+ } from "./chunk-P3NO7ZL3.js";
7
7
  import {
8
8
  getSessionPlugins
9
9
  } from "./chunk-BJSWTHRM.js";
10
10
  import {
11
11
  getTheme
12
- } from "./chunk-FTYUYN6L.js";
12
+ } from "./chunk-TTGVASRL.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-KFQPMAFO.js";
22
+ } from "./chunk-U6ULRJKF.js";
23
23
  import {
24
24
  PRODUCT_COMMAND,
25
25
  PRODUCT_NAME,
26
26
  getCwd,
27
27
  logMCPError
28
- } from "./chunk-LHL4VQUV.js";
28
+ } from "./chunk-22STWQHO.js";
29
29
 
30
30
  // src/services/mcp/client.ts
31
31
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
@@ -5,7 +5,7 @@ import {
5
5
  getCwd,
6
6
  resolveXdgCachePath,
7
7
  resolveXdgDataPath
8
- } from "./chunk-LHL4VQUV.js";
8
+ } from "./chunk-22STWQHO.js";
9
9
 
10
10
  // src/services/plugins/skillMarketplace.ts
11
11
  import {
@@ -9,10 +9,10 @@ import {
9
9
  PLAN_SLUG_VERBS,
10
10
  getCwd,
11
11
  resolveXdgDataPath
12
- } from "./chunk-LHL4VQUV.js";
12
+ } from "./chunk-22STWQHO.js";
13
13
  import {
14
14
  MACRO
15
- } from "./chunk-NCHARDNR.js";
15
+ } from "./chunk-3ZLYX3F7.js";
16
16
 
17
17
  // src/utils/protocol/pybAgentSessionLog.ts
18
18
  import { execFileSync } from "child_process";
@@ -2,13 +2,13 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  ripGrepWithStatus
5
- } from "./chunk-VSGJTKCW.js";
5
+ } from "./chunk-GYUGF7Z4.js";
6
6
  import {
7
7
  getCurrentProjectConfig,
8
8
  getGlobalConfig,
9
9
  getOrCreateUserID,
10
10
  saveCurrentProjectConfig
11
- } from "./chunk-KFQPMAFO.js";
11
+ } from "./chunk-U6ULRJKF.js";
12
12
  import {
13
13
  SESSION_ID,
14
14
  env,
@@ -16,10 +16,10 @@ import {
16
16
  getCwd,
17
17
  isContextScanDisabled,
18
18
  logError
19
- } from "./chunk-LHL4VQUV.js";
19
+ } from "./chunk-22STWQHO.js";
20
20
  import {
21
21
  MACRO
22
- } from "./chunk-NCHARDNR.js";
22
+ } from "./chunk-3ZLYX3F7.js";
23
23
  import {
24
24
  __require
25
25
  } from "./chunk-I3J4JYES.js";
@@ -7,14 +7,14 @@ import {
7
7
  getSettingsFileCandidates,
8
8
  loadSettingsWithLegacyFallback,
9
9
  saveSettingsToPrimaryAndSyncLegacy
10
- } from "./chunk-R3QXCIEI.js";
10
+ } from "./chunk-P3NO7ZL3.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-LHL4VQUV.js";
17
+ } from "./chunk-22STWQHO.js";
18
18
 
19
19
  // src/services/ui/outputStyles.ts
20
20
  import figures from "figures";
@@ -2,10 +2,10 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  debug
5
- } from "./chunk-CACSIWAN.js";
5
+ } from "./chunk-FOHI4RYN.js";
6
6
  import {
7
7
  logError
8
- } from "./chunk-LHL4VQUV.js";
8
+ } from "./chunk-22STWQHO.js";
9
9
 
10
10
  // src/services/system/systemReminder.ts
11
11
  var SystemReminderService = class {
@@ -150,14 +150,14 @@ ${content}
150
150
  createTaskListReminder(context) {
151
151
  const { listId, summary } = context;
152
152
  if (!summary || !listId) return null;
153
- const reminderKey = `task_list_${listId}_${summary.total}_${summary.ready}_${summary.blocked}_${summary.inProgress}_${summary.pending}_${summary.done}_${summary.archived}`;
153
+ const reminderKey = `task_list_${listId}_${summary.total}_${summary.ready}_${summary.blocked}_${summary.inProgress}_${summary.pending}_${summary.done}_${summary.deleted}`;
154
154
  if (this.sessionState.remindersSent.has(reminderKey)) return null;
155
155
  this.sessionState.remindersSent.add(reminderKey);
156
156
  return this.createReminderMessage(
157
157
  "task_list_changed",
158
158
  "task",
159
159
  "medium",
160
- `Your task list changed. Ready: ${summary.ready}, Blocked: ${summary.blocked}, In progress: ${summary.inProgress}, Pending: ${summary.pending}, Done: ${summary.done}, Archived: ${summary.archived}.`,
160
+ `Your task list changed. Ready: ${summary.ready}, Blocked: ${summary.blocked}, In progress: ${summary.inProgress}, Pending: ${summary.pending}, Done: ${summary.done}, Deleted: ${summary.deleted}.`,
161
161
  Date.now()
162
162
  );
163
163
  }
@@ -176,20 +176,6 @@ ${content}
176
176
  Date.now()
177
177
  );
178
178
  }
179
- createTaskConflictReminder(context) {
180
- const { listId, taskId } = context;
181
- if (!listId || !taskId) return null;
182
- const reminderKey = `task_conflict_${listId}_${taskId}`;
183
- if (this.sessionState.remindersSent.has(reminderKey)) return null;
184
- this.sessionState.remindersSent.add(reminderKey);
185
- return this.createReminderMessage(
186
- "task_conflict",
187
- "task",
188
- "high",
189
- `Task update conflict detected for ${taskId}. Refresh task data and retry updates with the latest baseVersion.`,
190
- Date.now()
191
- );
192
- }
193
179
  createTaskCreatedReminder(context) {
194
180
  const { listId, taskId, task } = context;
195
181
  if (!listId || !taskId) return null;
@@ -208,7 +194,7 @@ ${content}
208
194
  createTaskUpdatedReminder(context) {
209
195
  const { listId, taskId, task } = context;
210
196
  if (!listId || !taskId) return null;
211
- const reminderKey = `task_updated_${listId}_${taskId}_${task?.baseVersion ?? ""}`;
197
+ const reminderKey = `task_updated_${listId}_${taskId}`;
212
198
  if (this.sessionState.remindersSent.has(reminderKey)) return null;
213
199
  this.sessionState.remindersSent.add(reminderKey);
214
200
  const subject = task?.subject || taskId;
@@ -281,19 +267,6 @@ ${content}
281
267
  });
282
268
  }
283
269
  });
284
- this.addEventListener("task:conflict_detected", (context) => {
285
- const key = `task_conflict_${context.listId}_${context.taskId}`;
286
- if (!this.shouldEmitTaskReminder(key, 2e3)) return;
287
- const reminder = this.createTaskConflictReminder(context);
288
- if (reminder) {
289
- this.emitEvent("reminder:inject", {
290
- reminder: reminder.content,
291
- listId: context.listId,
292
- type: "task_conflict",
293
- timestamp: Date.now()
294
- });
295
- }
296
- });
297
270
  this.addEventListener("task.created", (context) => {
298
271
  const key = `task_created_${context.listId}_${context.taskId}`;
299
272
  if (!this.shouldEmitTaskReminder(key, 2e3)) return;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/services/system/systemReminder.ts"],
4
+ "sourcesContent": ["import { debug as debugLogger } from '@utils/log/debugLogger'\nimport { logError } from '@utils/log'\n\nexport interface ReminderMessage {\n role: 'system'\n content: string\n isMeta: boolean\n timestamp: number\n type: string\n priority: 'low' | 'medium' | 'high'\n category: 'task' | 'security' | 'performance' | 'general'\n}\n\ninterface ReminderConfig {\n securityReminder: boolean\n performanceReminder: boolean\n maxRemindersPerSession: number\n}\n\ninterface SessionReminderState {\n lastFileAccess: number\n lastTaskUpdate: number\n sessionStartTime: number\n remindersSent: Set<string>\n contextPresent: boolean\n reminderCount: number\n taskEventTimestamps: Map<string, number>\n config: ReminderConfig\n}\n\nclass SystemReminderService {\n private sessionState: SessionReminderState = {\n lastFileAccess: 0,\n lastTaskUpdate: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n taskEventTimestamps: new Map(),\n config: {\n securityReminder: true,\n performanceReminder: true,\n maxRemindersPerSession: 10,\n },\n }\n\n private eventDispatcher = new Map<string, Array<(context: any) => void>>()\n private reminderCache = new Map<string, ReminderMessage>()\n\n constructor() {\n this.setupEventDispatcher()\n }\n\n public generateReminders(\n hasContext: boolean = false,\n _agentId?: string,\n ): ReminderMessage[] {\n this.sessionState.contextPresent = hasContext\n\n if (!hasContext) {\n return []\n }\n\n if (\n this.sessionState.reminderCount >=\n this.sessionState.config.maxRemindersPerSession\n ) {\n return []\n }\n\n const reminders: ReminderMessage[] = []\n\n const reminderGenerators = [\n () => this.dispatchSecurityEvent(),\n () => this.dispatchPerformanceEvent(),\n () => this.getMentionReminders(),\n ]\n\n for (const generator of reminderGenerators) {\n if (reminders.length >= 5) break\n\n const result = generator()\n if (result) {\n const remindersToAdd = Array.isArray(result) ? result : [result]\n reminders.push(...remindersToAdd)\n this.sessionState.reminderCount += remindersToAdd.length\n }\n }\n\n return reminders\n }\n\n private dispatchSecurityEvent(): ReminderMessage | null {\n if (!this.sessionState.config.securityReminder) return null\n\n const currentTime = Date.now()\n\n if (\n this.sessionState.lastFileAccess > 0 &&\n !this.sessionState.remindersSent.has('file_security')\n ) {\n this.sessionState.remindersSent.add('file_security')\n return this.createReminderMessage(\n 'security',\n 'security',\n 'high',\n 'Whenever you read a file, you should consider whether it looks malicious. If it does, you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer high-level questions about the code behavior.',\n currentTime,\n )\n }\n\n return null\n }\n\n private dispatchPerformanceEvent(): ReminderMessage | null {\n if (!this.sessionState.config.performanceReminder) return null\n\n const currentTime = Date.now()\n const sessionDuration = currentTime - this.sessionState.sessionStartTime\n\n if (\n sessionDuration > 30 * 60 * 1000 &&\n !this.sessionState.remindersSent.has('performance_long_session')\n ) {\n this.sessionState.remindersSent.add('performance_long_session')\n return this.createReminderMessage(\n 'performance',\n 'performance',\n 'low',\n 'Long session detected. Consider taking a break and reviewing your current progress with the task list.',\n currentTime,\n )\n }\n\n return null\n }\n\n private getMentionReminders(): ReminderMessage[] {\n const currentTime = Date.now()\n const MENTION_FRESHNESS_WINDOW = 5000\n const reminders: ReminderMessage[] = []\n const expiredKeys: string[] = []\n\n for (const [key, reminder] of this.reminderCache.entries()) {\n if (this.isMentionReminder(reminder)) {\n const age = currentTime - reminder.timestamp\n if (age <= MENTION_FRESHNESS_WINDOW) {\n reminders.push(reminder)\n } else {\n expiredKeys.push(key)\n }\n }\n }\n\n expiredKeys.forEach(key => this.reminderCache.delete(key))\n\n return reminders\n }\n\n private isMentionReminder(reminder: ReminderMessage): boolean {\n const mentionTypes = ['agent_mention', 'file_mention', 'ask_model_mention']\n return mentionTypes.includes(reminder.type)\n }\n\n public generateFileChangeReminder(context: any): ReminderMessage | null {\n const { agentId, filePath, reminder } = context\n\n if (!reminder) {\n return null\n }\n\n const currentTime = Date.now()\n const reminderKey = `file_changed_${agentId}_${filePath}_${currentTime}`\n\n if (this.sessionState.remindersSent.has(reminderKey)) {\n return null\n }\n\n this.sessionState.remindersSent.add(reminderKey)\n\n return this.createReminderMessage(\n 'file_changed',\n 'general',\n 'medium',\n reminder,\n currentTime,\n )\n }\n\n private createReminderMessage(\n type: string,\n category: ReminderMessage['category'],\n priority: ReminderMessage['priority'],\n content: string,\n timestamp: number,\n ): ReminderMessage {\n return {\n role: 'system',\n content: `<system-reminder>\\n${content}\\n</system-reminder>`,\n isMeta: true,\n timestamp,\n type,\n priority,\n category,\n }\n }\n\n private shouldEmitTaskReminder(key: string, throttleMs: number): boolean {\n const now = Date.now()\n const last = this.sessionState.taskEventTimestamps.get(key) ?? 0\n if (now - last < throttleMs) {\n return false\n }\n this.sessionState.taskEventTimestamps.set(key, now)\n return true\n }\n\n private createTaskListReminder(context: any): ReminderMessage | null {\n const { listId, summary } = context\n if (!summary || !listId) return null\n const reminderKey = `task_list_${listId}_${summary.total}_${summary.ready}_${summary.blocked}_${summary.inProgress}_${summary.pending}_${summary.done}_${summary.deleted}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_list_changed',\n 'task',\n 'medium',\n `Your task list changed. Ready: ${summary.ready}, Blocked: ${summary.blocked}, In progress: ${summary.inProgress}, Pending: ${summary.pending}, Done: ${summary.done}, Deleted: ${summary.deleted}.`,\n Date.now(),\n )\n }\n\n private createTaskReadyReminder(context: any): ReminderMessage | null {\n const { listId, readyIds } = context\n if (!listId || !Array.isArray(readyIds)) return null\n const limited = readyIds.slice(0, 5).join(', ')\n const reminderKey = `task_ready_${listId}_${readyIds.length}_${limited}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_ready_changed',\n 'task',\n 'medium',\n `Task readiness changed. Ready count: ${readyIds.length}. Ready ids: ${limited || 'none'}.`,\n Date.now(),\n )\n }\n\n private createTaskCreatedReminder(context: any): ReminderMessage | null {\n const { listId, taskId, task } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_created_${listId}_${taskId}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n const subject = task?.subject || taskId\n return this.createReminderMessage(\n 'task_created',\n 'task',\n 'medium',\n `Task created: ${subject} (${taskId}). Review details and adjust status if needed.`,\n Date.now(),\n )\n }\n\n private createTaskUpdatedReminder(context: any): ReminderMessage | null {\n const { listId, taskId, task } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_updated_${listId}_${taskId}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n const subject = task?.subject || taskId\n return this.createReminderMessage(\n 'task_updated',\n 'task',\n 'medium',\n `Task updated: ${subject} (${taskId}). Confirm dependencies and status are correct.`,\n Date.now(),\n )\n }\n\n private createTaskStatusReminder(context: any): ReminderMessage | null {\n const { listId, taskId, previousStatus, status } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_status_${listId}_${taskId}_${previousStatus}_${status}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_status_changed',\n 'task',\n 'medium',\n `Task status changed for ${taskId}: ${previousStatus} \u2192 ${status}. Review dependent tasks if needed.`,\n Date.now(),\n )\n }\n\n private createTaskDepsReminder(context: any): ReminderMessage | null {\n const { listId, taskId, deps } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_deps_${listId}_${taskId}_${JSON.stringify(deps ?? {})}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_deps_changed',\n 'task',\n 'medium',\n `Task dependencies changed for ${taskId}. Recheck readiness and blockers.`,\n Date.now(),\n )\n }\n\n private setupEventDispatcher(): void {\n this.addEventListener('session:startup', context => {\n this.resetSession()\n\n this.sessionState.sessionStartTime = Date.now()\n this.sessionState.contextPresent =\n Object.keys(context.context || {}).length > 0\n })\n\n this.addEventListener('task:list_changed', context => {\n const key = `task_list_${context.listId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n const reminder = this.createTaskListReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: 'task_list_changed',\n timestamp: Date.now(),\n })\n }\n })\n\n this.addEventListener('task:ready_changed', context => {\n const key = `task_ready_${context.listId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskReadyReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: 'task_ready_changed',\n timestamp: Date.now(),\n })\n }\n })\n\n this.addEventListener('task.created', context => {\n const key = `task_created_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskCreatedReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: reminder.type,\n timestamp: reminder.timestamp,\n })\n }\n })\n\n this.addEventListener('task.updated', context => {\n const key = `task_updated_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskUpdatedReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: reminder.type,\n timestamp: reminder.timestamp,\n })\n }\n })\n\n this.addEventListener('task.status_changed', context => {\n const key = `task_status_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskStatusReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: reminder.type,\n timestamp: reminder.timestamp,\n })\n }\n })\n\n this.addEventListener('task.deps_changed', context => {\n const key = `task_deps_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskDepsReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: reminder.type,\n timestamp: reminder.timestamp,\n })\n }\n })\n\n this.addEventListener('file:read', context => {\n this.sessionState.lastFileAccess = Date.now()\n })\n\n this.addEventListener('file:edited', context => {\n })\n\n this.addEventListener('agent:mentioned', context => {\n this.createMentionReminder({\n type: 'agent_mention',\n key: `agent_mention_${context.agentType}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST use the Task tool with subagent_type=\"${context.agentType}\" to delegate this task to the specified agent. Provide a detailed, self-contained task description that fully captures the user's intent for the ${context.agentType} agent to execute.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('file:mentioned', context => {\n this.createMentionReminder({\n type: 'file_mention',\n key: `file_mention_${context.filePath}_${context.timestamp}`,\n category: 'general',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST read the entire content of the file at path: ${context.filePath} using the Read tool to understand the full context before proceeding with the user's request.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('ask-model:mentioned', context => {\n this.createMentionReminder({\n type: 'ask_model_mention',\n key: `ask_model_mention_${context.modelName}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.modelName}. You MUST use the AskExpertModelTool to consult this specific model for expert opinions and analysis. Provide the user's question or context clearly to get the most relevant response from ${context.modelName}.`,\n timestamp: context.timestamp,\n })\n })\n }\n\n public addEventListener(\n event: string,\n callback: (context: any) => void,\n ): void {\n if (!this.eventDispatcher.has(event)) {\n this.eventDispatcher.set(event, [])\n }\n this.eventDispatcher.get(event)!.push(callback)\n }\n\n public emitEvent(event: string, context: any): void {\n const listeners = this.eventDispatcher.get(event) || []\n listeners.forEach(callback => {\n try {\n callback(context)\n } catch (error) {\n logError(error)\n debugLogger.warn('SYSTEM_REMINDER_LISTENER_ERROR', {\n event,\n error: error instanceof Error ? error.message : String(error),\n })\n }\n })\n }\n\n private createMentionReminder(params: {\n type: string\n key: string\n category: ReminderMessage['category']\n priority: ReminderMessage['priority']\n content: string\n timestamp: number\n }): void {\n if (!this.sessionState.remindersSent.has(params.key)) {\n this.sessionState.remindersSent.add(params.key)\n\n const reminder = this.createReminderMessage(\n params.type,\n params.category,\n params.priority,\n params.content,\n params.timestamp,\n )\n\n this.reminderCache.set(params.key, reminder)\n }\n }\n\n public resetSession(): void {\n this.sessionState = {\n lastFileAccess: 0,\n lastTaskUpdate: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n taskEventTimestamps: new Map(),\n config: { ...this.sessionState.config },\n }\n this.reminderCache.clear()\n }\n\n public updateConfig(config: Partial<ReminderConfig>): void {\n this.sessionState.config = { ...this.sessionState.config, ...config }\n }\n\n public getSessionState(): SessionReminderState {\n return { ...this.sessionState }\n }\n}\n\nexport const systemReminderService = new SystemReminderService()\n\nexport const generateSystemReminders = (\n hasContext: boolean = false,\n agentId?: string,\n) => systemReminderService.generateReminders(hasContext, agentId)\n\nexport const generateFileChangeReminder = (context: any) =>\n systemReminderService.generateFileChangeReminder(context)\n\nexport const emitReminderEvent = (event: string, context: any) =>\n systemReminderService.emitEvent(event, context)\n\nexport const resetReminderSession = () => systemReminderService.resetSession()\nexport const getReminderSessionState = () =>\n systemReminderService.getSessionState()\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  SESSION_ID,
5
5
  resolveXdgCachePath
6
- } from "./chunk-LHL4VQUV.js";
6
+ } from "./chunk-22STWQHO.js";
7
7
 
8
8
  // src/utils/log/debugLogger.ts
9
9
  import { existsSync, mkdirSync, appendFileSync } from "fs";
@@ -4,7 +4,7 @@ import {
4
4
  BunShell,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-LHL4VQUV.js";
7
+ } from "./chunk-22STWQHO.js";
8
8
 
9
9
  // src/utils/system/ripgrep.ts
10
10
  import { findActualExecutable } from "spawn-rx";
@@ -4,10 +4,10 @@ import {
4
4
  PRODUCT_NAME,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-LHL4VQUV.js";
7
+ } from "./chunk-22STWQHO.js";
8
8
  import {
9
9
  MACRO
10
- } from "./chunk-NCHARDNR.js";
10
+ } from "./chunk-3ZLYX3F7.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-AGAJCFQD.js"), import("./env-RPUIAXPD.js")]);
85
+ ] = await Promise.all([import("./config-MRRYR4L2.js"), import("./env-2NXVQGKZ.js")]);
86
86
  if (await isAutoUpdaterDisabled()) return;
87
87
  if (await env.getIsDocker()) return;
88
88
  if (!await env.hasInternetAccess()) return;