pybao-cli 1.4.38 → 1.4.39

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-N62XVC35.js +47 -0
  2. package/dist/{acp-VM2J53W4.js → acp-6LBQJVMX.js} +29 -29
  3. package/dist/{agentsValidate-GFWWYUUT.js → agentsValidate-SLBW2ESZ.js} +7 -7
  4. package/dist/{ask-PEAASZU5.js → ask-DB4F3WJG.js} +28 -28
  5. package/dist/{autoUpdater-3MO2ERDJ.js → autoUpdater-CYDJVIEC.js} +3 -3
  6. package/dist/{chunk-2PTOXRBC.js → chunk-3LNPU7WH.js} +3 -3
  7. package/dist/{chunk-KJAUAOX4.js → chunk-4LXZDGCO.js} +3 -3
  8. package/dist/{chunk-65QK3573.js → chunk-6KSM5M7T.js} +1 -1
  9. package/dist/{chunk-4HUEIGXE.js → chunk-7TGWBYFN.js} +4 -4
  10. package/dist/{chunk-3BPMIKJM.js → chunk-7WCSSH3C.js} +3 -3
  11. package/dist/{chunk-UAPC4AG3.js → chunk-AI7FJQR4.js} +78 -20
  12. package/dist/chunk-AI7FJQR4.js.map +7 -0
  13. package/dist/{chunk-4YELTGBJ.js → chunk-DEYAAT6H.js} +3 -3
  14. package/dist/{chunk-4VNRS435.js → chunk-DLBWS3IW.js} +1 -1
  15. package/dist/{chunk-IHIHIPNE.js → chunk-E5EB22W4.js} +4 -4
  16. package/dist/{chunk-VFIFN6QL.js → chunk-GD43B2GV.js} +1 -1
  17. package/dist/{chunk-VINZKV6L.js → chunk-GL3ZM7F3.js} +3 -3
  18. package/dist/{chunk-WYUAUOQL.js → chunk-GXHSGPIF.js} +4 -4
  19. package/dist/{chunk-ZTLEOE22.js → chunk-HD4IO3I5.js} +38 -55
  20. package/dist/{chunk-ZTLEOE22.js.map → chunk-HD4IO3I5.js.map} +2 -2
  21. package/dist/{chunk-Q6D4CWM7.js → chunk-KNLFFHBT.js} +2 -2
  22. package/dist/{chunk-DR3UKEHX.js → chunk-KWPH7MSB.js} +1 -1
  23. package/dist/{chunk-NV4KLIR4.js → chunk-N4GXGPVA.js} +1 -1
  24. package/dist/{chunk-2TPHG5NF.js → chunk-NMJYV37P.js} +2 -2
  25. package/dist/{chunk-5F5QQXYO.js → chunk-NNE44UHQ.js} +2 -2
  26. package/dist/{chunk-7D6P6FJI.js → chunk-O5OT26P6.js} +1 -1
  27. package/dist/{chunk-KXOZAPOR.js → chunk-RS2N2KBH.js} +164 -67
  28. package/dist/chunk-RS2N2KBH.js.map +7 -0
  29. package/dist/{chunk-F33UZKH2.js → chunk-SBPVAFBQ.js} +2 -2
  30. package/dist/{chunk-4QZIAEFU.js → chunk-SSKQUKI7.js} +1 -1
  31. package/dist/{chunk-YSGQ33QO.js → chunk-TNAAGT3Q.js} +3 -3
  32. package/dist/{chunk-SV44GQBZ.js → chunk-UK4IHZU3.js} +2 -2
  33. package/dist/{chunk-POFRZWP7.js → chunk-UUWI4VWU.js} +1 -1
  34. package/dist/{chunk-POFRZWP7.js.map → chunk-UUWI4VWU.js.map} +1 -1
  35. package/dist/{chunk-PAZ5OZZ3.js → chunk-VFQU3JSH.js} +4 -4
  36. package/dist/{chunk-NDU2T5RK.js → chunk-VHTIDAOJ.js} +2 -2
  37. package/dist/{chunk-Q5VMFXN3.js → chunk-VXQMCAPS.js} +1 -1
  38. package/dist/{chunk-ZBXRD5R5.js → chunk-YJ2WXW2J.js} +3 -3
  39. package/dist/{chunk-FQBPNSQM.js → chunk-ZGVGFR4C.js} +1 -1
  40. package/dist/{cli-BMCKTX2V.js → cli-FMCSS5QE.js} +87 -87
  41. package/dist/commands-IJTOU4P3.js +51 -0
  42. package/dist/{config-CKEF5MIR.js → config-YRHKZJO6.js} +4 -4
  43. package/dist/{context-CV3LBU7I.js → context-ZZO64MRN.js} +6 -6
  44. package/dist/{customCommands-JK4SVCOD.js → customCommands-2S7LYMG7.js} +4 -4
  45. package/dist/{env-2D5PYXT3.js → env-PQDRZBAW.js} +2 -2
  46. package/dist/{file-DTOJ46HD.js → file-X7BE3MNR.js} +4 -4
  47. package/dist/index.js +3 -3
  48. package/dist/{llm-3C5ICYYM.js → llm-3KCTIVOM.js} +29 -29
  49. package/dist/{llmLazy-7NGDJTCJ.js → llmLazy-HCTXTHRZ.js} +1 -1
  50. package/dist/{loader-K64KKCLP.js → loader-DKMJSH4V.js} +4 -4
  51. package/dist/{lsp-UIWT5EAB.js → lsp-IXEAYT4K.js} +6 -6
  52. package/dist/{lspAnchor-XM5HYD36.js → lspAnchor-FKXOKCQZ.js} +6 -6
  53. package/dist/{mcp-WF3IJF4P.js → mcp-ZUJD3E4V.js} +7 -7
  54. package/dist/{mentionProcessor-FBOG655N.js → mentionProcessor-7GXI47P3.js} +6 -6
  55. package/dist/{messages-S6BQMC7F.js → messages-55HNRTQC.js} +1 -1
  56. package/dist/{model-N6XZCIO2.js → model-R5X6XP7I.js} +5 -5
  57. package/dist/{openai-YJOBEGF4.js → openai-FM7DX3GB.js} +5 -5
  58. package/dist/{outputStyles-UJISJCZB.js → outputStyles-ZLGIDCCJ.js} +4 -4
  59. package/dist/{pluginRuntime-B5FLWZCB.js → pluginRuntime-REF3E5F5.js} +6 -6
  60. package/dist/{pluginValidation-YLGUCTSN.js → pluginValidation-E33USDYW.js} +6 -6
  61. package/dist/prompts-W7TUXY74.js +53 -0
  62. package/dist/{pybAgentSessionLoad-ZIJOJP53.js → pybAgentSessionLoad-PGTH6SZH.js} +4 -4
  63. package/dist/{pybAgentSessionResume-32HYMEZD.js → pybAgentSessionResume-IVBY65PN.js} +4 -4
  64. package/dist/{pybAgentStreamJsonSession-33GITQPO.js → pybAgentStreamJsonSession-N2Q6LQHX.js} +1 -1
  65. package/dist/{pybHooks-XQH57YXB.js → pybHooks-WIA5KKVN.js} +4 -4
  66. package/dist/query-BTG2T7NV.js +55 -0
  67. package/dist/{registry-AWWHDPCP.js → registry-PT3XVAT6.js} +5 -5
  68. package/dist/{ripgrep-HM6FRMPY.js → ripgrep-2VWCSPH4.js} +3 -3
  69. package/dist/{skillMarketplace-RFELE7ZN.js → skillMarketplace-NHPAPZTS.js} +3 -3
  70. package/dist/{state-3MIS3KPI.js → state-4AIVX6VM.js} +2 -2
  71. package/dist/{theme-3W3YPAC4.js → theme-LKZFY5TU.js} +5 -5
  72. package/dist/{toolPermissionSettings-Q7A55J23.js → toolPermissionSettings-OVFT6D3R.js} +6 -6
  73. package/dist/tools-6ONPKOSL.js +52 -0
  74. package/dist/{userInput-Y5GXDITH.js → userInput-RHGZ225B.js} +30 -30
  75. package/package.json +1 -1
  76. package/dist/REPL-7KQEJZQW.js +0 -47
  77. package/dist/chunk-KXOZAPOR.js.map +0 -7
  78. package/dist/chunk-UAPC4AG3.js.map +0 -7
  79. package/dist/commands-MTPBHNKM.js +0 -51
  80. package/dist/prompts-YL2Q36DH.js +0 -53
  81. package/dist/query-UI6I2555.js +0 -55
  82. package/dist/tools-VFHVJUG3.js +0 -52
  83. /package/dist/{REPL-7KQEJZQW.js.map → REPL-N62XVC35.js.map} +0 -0
  84. /package/dist/{acp-VM2J53W4.js.map → acp-6LBQJVMX.js.map} +0 -0
  85. /package/dist/{agentsValidate-GFWWYUUT.js.map → agentsValidate-SLBW2ESZ.js.map} +0 -0
  86. /package/dist/{ask-PEAASZU5.js.map → ask-DB4F3WJG.js.map} +0 -0
  87. /package/dist/{autoUpdater-3MO2ERDJ.js.map → autoUpdater-CYDJVIEC.js.map} +0 -0
  88. /package/dist/{chunk-2PTOXRBC.js.map → chunk-3LNPU7WH.js.map} +0 -0
  89. /package/dist/{chunk-KJAUAOX4.js.map → chunk-4LXZDGCO.js.map} +0 -0
  90. /package/dist/{chunk-65QK3573.js.map → chunk-6KSM5M7T.js.map} +0 -0
  91. /package/dist/{chunk-4HUEIGXE.js.map → chunk-7TGWBYFN.js.map} +0 -0
  92. /package/dist/{chunk-3BPMIKJM.js.map → chunk-7WCSSH3C.js.map} +0 -0
  93. /package/dist/{chunk-4YELTGBJ.js.map → chunk-DEYAAT6H.js.map} +0 -0
  94. /package/dist/{chunk-4VNRS435.js.map → chunk-DLBWS3IW.js.map} +0 -0
  95. /package/dist/{chunk-IHIHIPNE.js.map → chunk-E5EB22W4.js.map} +0 -0
  96. /package/dist/{chunk-VFIFN6QL.js.map → chunk-GD43B2GV.js.map} +0 -0
  97. /package/dist/{chunk-VINZKV6L.js.map → chunk-GL3ZM7F3.js.map} +0 -0
  98. /package/dist/{chunk-WYUAUOQL.js.map → chunk-GXHSGPIF.js.map} +0 -0
  99. /package/dist/{chunk-Q6D4CWM7.js.map → chunk-KNLFFHBT.js.map} +0 -0
  100. /package/dist/{chunk-DR3UKEHX.js.map → chunk-KWPH7MSB.js.map} +0 -0
  101. /package/dist/{chunk-NV4KLIR4.js.map → chunk-N4GXGPVA.js.map} +0 -0
  102. /package/dist/{chunk-2TPHG5NF.js.map → chunk-NMJYV37P.js.map} +0 -0
  103. /package/dist/{chunk-5F5QQXYO.js.map → chunk-NNE44UHQ.js.map} +0 -0
  104. /package/dist/{chunk-7D6P6FJI.js.map → chunk-O5OT26P6.js.map} +0 -0
  105. /package/dist/{chunk-F33UZKH2.js.map → chunk-SBPVAFBQ.js.map} +0 -0
  106. /package/dist/{chunk-4QZIAEFU.js.map → chunk-SSKQUKI7.js.map} +0 -0
  107. /package/dist/{chunk-YSGQ33QO.js.map → chunk-TNAAGT3Q.js.map} +0 -0
  108. /package/dist/{chunk-SV44GQBZ.js.map → chunk-UK4IHZU3.js.map} +0 -0
  109. /package/dist/{chunk-PAZ5OZZ3.js.map → chunk-VFQU3JSH.js.map} +0 -0
  110. /package/dist/{chunk-NDU2T5RK.js.map → chunk-VHTIDAOJ.js.map} +0 -0
  111. /package/dist/{chunk-Q5VMFXN3.js.map → chunk-VXQMCAPS.js.map} +0 -0
  112. /package/dist/{chunk-ZBXRD5R5.js.map → chunk-YJ2WXW2J.js.map} +0 -0
  113. /package/dist/{chunk-FQBPNSQM.js.map → chunk-ZGVGFR4C.js.map} +0 -0
  114. /package/dist/{cli-BMCKTX2V.js.map → cli-FMCSS5QE.js.map} +0 -0
  115. /package/dist/{commands-MTPBHNKM.js.map → commands-IJTOU4P3.js.map} +0 -0
  116. /package/dist/{config-CKEF5MIR.js.map → config-YRHKZJO6.js.map} +0 -0
  117. /package/dist/{context-CV3LBU7I.js.map → context-ZZO64MRN.js.map} +0 -0
  118. /package/dist/{customCommands-JK4SVCOD.js.map → customCommands-2S7LYMG7.js.map} +0 -0
  119. /package/dist/{env-2D5PYXT3.js.map → env-PQDRZBAW.js.map} +0 -0
  120. /package/dist/{file-DTOJ46HD.js.map → file-X7BE3MNR.js.map} +0 -0
  121. /package/dist/{llm-3C5ICYYM.js.map → llm-3KCTIVOM.js.map} +0 -0
  122. /package/dist/{llmLazy-7NGDJTCJ.js.map → llmLazy-HCTXTHRZ.js.map} +0 -0
  123. /package/dist/{loader-K64KKCLP.js.map → loader-DKMJSH4V.js.map} +0 -0
  124. /package/dist/{lsp-UIWT5EAB.js.map → lsp-IXEAYT4K.js.map} +0 -0
  125. /package/dist/{lspAnchor-XM5HYD36.js.map → lspAnchor-FKXOKCQZ.js.map} +0 -0
  126. /package/dist/{mcp-WF3IJF4P.js.map → mcp-ZUJD3E4V.js.map} +0 -0
  127. /package/dist/{mentionProcessor-FBOG655N.js.map → mentionProcessor-7GXI47P3.js.map} +0 -0
  128. /package/dist/{messages-S6BQMC7F.js.map → messages-55HNRTQC.js.map} +0 -0
  129. /package/dist/{model-N6XZCIO2.js.map → model-R5X6XP7I.js.map} +0 -0
  130. /package/dist/{openai-YJOBEGF4.js.map → openai-FM7DX3GB.js.map} +0 -0
  131. /package/dist/{outputStyles-UJISJCZB.js.map → outputStyles-ZLGIDCCJ.js.map} +0 -0
  132. /package/dist/{pluginRuntime-B5FLWZCB.js.map → pluginRuntime-REF3E5F5.js.map} +0 -0
  133. /package/dist/{pluginValidation-YLGUCTSN.js.map → pluginValidation-E33USDYW.js.map} +0 -0
  134. /package/dist/{prompts-YL2Q36DH.js.map → prompts-W7TUXY74.js.map} +0 -0
  135. /package/dist/{pybAgentSessionLoad-ZIJOJP53.js.map → pybAgentSessionLoad-PGTH6SZH.js.map} +0 -0
  136. /package/dist/{pybAgentSessionResume-32HYMEZD.js.map → pybAgentSessionResume-IVBY65PN.js.map} +0 -0
  137. /package/dist/{pybAgentStreamJsonSession-33GITQPO.js.map → pybAgentStreamJsonSession-N2Q6LQHX.js.map} +0 -0
  138. /package/dist/{pybHooks-XQH57YXB.js.map → pybHooks-WIA5KKVN.js.map} +0 -0
  139. /package/dist/{query-UI6I2555.js.map → query-BTG2T7NV.js.map} +0 -0
  140. /package/dist/{registry-AWWHDPCP.js.map → registry-PT3XVAT6.js.map} +0 -0
  141. /package/dist/{ripgrep-HM6FRMPY.js.map → ripgrep-2VWCSPH4.js.map} +0 -0
  142. /package/dist/{skillMarketplace-RFELE7ZN.js.map → skillMarketplace-NHPAPZTS.js.map} +0 -0
  143. /package/dist/{state-3MIS3KPI.js.map → state-4AIVX6VM.js.map} +0 -0
  144. /package/dist/{theme-3W3YPAC4.js.map → theme-LKZFY5TU.js.map} +0 -0
  145. /package/dist/{toolPermissionSettings-Q7A55J23.js.map → toolPermissionSettings-OVFT6D3R.js.map} +0 -0
  146. /package/dist/{tools-VFHVJUG3.js.map → tools-6ONPKOSL.js.map} +0 -0
  147. /package/dist/{userInput-Y5GXDITH.js.map → userInput-RHGZ225B.js.map} +0 -0
@@ -8,12 +8,12 @@ import {
8
8
  } from "./chunk-BJSWTHRM.js";
9
9
  import {
10
10
  debug
11
- } from "./chunk-7D6P6FJI.js";
11
+ } from "./chunk-O5OT26P6.js";
12
12
  import {
13
13
  getCwd,
14
14
  getXdgConfigDir,
15
15
  logError
16
- } from "./chunk-FQBPNSQM.js";
16
+ } from "./chunk-ZGVGFR4C.js";
17
17
 
18
18
  // src/utils/agent/loader.ts
19
19
  import {
@@ -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-5F5QQXYO.js";
5
+ } from "./chunk-NNE44UHQ.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
  import {
4
4
  getCwd,
5
5
  logError
6
- } from "./chunk-FQBPNSQM.js";
6
+ } from "./chunk-ZGVGFR4C.js";
7
7
 
8
8
  // src/utils/config/settingsFiles.ts
9
9
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
@@ -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-65QK3573.js";
5
+ } from "./chunk-6KSM5M7T.js";
6
6
  import {
7
7
  getCwd,
8
8
  logError
9
- } from "./chunk-FQBPNSQM.js";
9
+ } from "./chunk-ZGVGFR4C.js";
10
10
 
11
11
  // src/utils/fs/file.ts
12
12
  import {
@@ -9,10 +9,10 @@ import {
9
9
  PLAN_SLUG_VERBS,
10
10
  getCwd,
11
11
  resolveXdgDataPath
12
- } from "./chunk-FQBPNSQM.js";
12
+ } from "./chunk-ZGVGFR4C.js";
13
13
  import {
14
14
  MACRO
15
- } from "./chunk-POFRZWP7.js";
15
+ } from "./chunk-UUWI4VWU.js";
16
16
 
17
17
  // src/utils/protocol/pybAgentSessionLog.ts
18
18
  import { execFileSync } from "child_process";
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  SESSION_ID,
5
5
  resolveXdgCachePath
6
- } from "./chunk-FQBPNSQM.js";
6
+ } from "./chunk-ZGVGFR4C.js";
7
7
 
8
8
  // src/utils/log/debugLogger.ts
9
9
  import { existsSync, mkdirSync, appendFileSync } from "fs";
@@ -3,18 +3,18 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  formatValidationResult,
5
5
  validatePluginOrMarketplacePath
6
- } from "./chunk-ZBXRD5R5.js";
6
+ } from "./chunk-YJ2WXW2J.js";
7
7
  import {
8
8
  loadPybAgentSessionMessages
9
- } from "./chunk-DR3UKEHX.js";
9
+ } from "./chunk-KWPH7MSB.js";
10
10
  import {
11
11
  listPybAgentSessions
12
- } from "./chunk-4QZIAEFU.js";
12
+ } from "./chunk-SSKQUKI7.js";
13
13
  import {
14
14
  appendSessionCustomTitleRecord,
15
15
  appendSessionJsonlFromMessage,
16
16
  appendSessionTagRecord
17
- } from "./chunk-5F5QQXYO.js";
17
+ } from "./chunk-NNE44UHQ.js";
18
18
  import {
19
19
  drainHookSystemPromptAdditions,
20
20
  getHookTranscriptPath,
@@ -26,7 +26,7 @@ import {
26
26
  runStopHooks,
27
27
  runUserPromptSubmitHooks,
28
28
  updateHookTranscriptForMessages
29
- } from "./chunk-4YELTGBJ.js";
29
+ } from "./chunk-DEYAAT6H.js";
30
30
  import {
31
31
  DEFAULT_OUTPUT_STYLE,
32
32
  getAvailableOutputStyles,
@@ -35,16 +35,16 @@ import {
35
35
  getOutputStyleSystemPromptAdditions,
36
36
  resolveOutputStyleName,
37
37
  setCurrentOutputStyle
38
- } from "./chunk-NDU2T5RK.js";
38
+ } from "./chunk-VHTIDAOJ.js";
39
39
  import {
40
40
  fetchCustomModels,
41
41
  getModelFeatures
42
- } from "./chunk-SV44GQBZ.js";
42
+ } from "./chunk-UK4IHZU3.js";
43
43
  import {
44
44
  queryLLM,
45
45
  queryQuick,
46
46
  verifyApiKey
47
- } from "./chunk-IHIHIPNE.js";
47
+ } from "./chunk-E5EB22W4.js";
48
48
  import {
49
49
  DEFAULT_TIMEOUT_MS,
50
50
  FallbackToolUseRejectedMessage,
@@ -58,7 +58,7 @@ import {
58
58
  listMCPServers,
59
59
  loadMergedSettings,
60
60
  normalizeSandboxRuntimeConfigFromSettings
61
- } from "./chunk-PAZ5OZZ3.js";
61
+ } from "./chunk-VFQU3JSH.js";
62
62
  import {
63
63
  addMarketplace,
64
64
  disableSkillPlugin,
@@ -71,11 +71,11 @@ import {
71
71
  refreshMarketplaceAsync,
72
72
  removeMarketplace,
73
73
  uninstallSkillPlugin
74
- } from "./chunk-Q5VMFXN3.js";
74
+ } from "./chunk-VXQMCAPS.js";
75
75
  import {
76
76
  loadToolPermissionContextFromDisk,
77
77
  persistToolPermissionUpdateToDisk
78
- } from "./chunk-3BPMIKJM.js";
78
+ } from "./chunk-7WCSSH3C.js";
79
79
  import {
80
80
  applyToolPermissionContextUpdate,
81
81
  applyToolPermissionContextUpdates,
@@ -90,11 +90,12 @@ import {
90
90
  isTodoCompatEnabled,
91
91
  listTasks,
92
92
  migrateTodosToTasks,
93
+ readTaskEventLog,
93
94
  resetReminderSession,
94
95
  setTodos,
95
96
  syncTodosToTasks,
96
97
  systemReminderService
97
- } from "./chunk-UAPC4AG3.js";
98
+ } from "./chunk-AI7FJQR4.js";
98
99
  import {
99
100
  getSessionState
100
101
  } from "./chunk-ERMQRV55.js";
@@ -103,7 +104,7 @@ import {
103
104
  getActiveAgents,
104
105
  getAgentByType,
105
106
  getAllAgents
106
- } from "./chunk-Q6D4CWM7.js";
107
+ } from "./chunk-KNLFFHBT.js";
107
108
  import {
108
109
  API_ERROR_MESSAGE_PREFIX,
109
110
  CANCEL_MESSAGE,
@@ -133,7 +134,7 @@ import {
133
134
  processUserInput,
134
135
  reorderMessages,
135
136
  stripSystemMessages
136
- } from "./chunk-4VNRS435.js";
137
+ } from "./chunk-DLBWS3IW.js";
137
138
  import {
138
139
  getRequestStatus,
139
140
  setRequestStatus,
@@ -163,7 +164,7 @@ import {
163
164
  normalizeFilePath,
164
165
  readTextContent,
165
166
  writeTextContent
166
- } from "./chunk-2TPHG5NF.js";
167
+ } from "./chunk-NMJYV37P.js";
167
168
  import {
168
169
  parseBlockEdits
169
170
  } from "./chunk-QWIBSCDN.js";
@@ -173,18 +174,18 @@ import {
173
174
  ParserRegistry,
174
175
  initParser,
175
176
  loadLanguage
176
- } from "./chunk-4HUEIGXE.js";
177
+ } from "./chunk-7TGWBYFN.js";
177
178
  import {
178
179
  getSettingsFileCandidates,
179
180
  loadSettingsWithLegacyFallback,
180
181
  readSettingsFile
181
- } from "./chunk-NV4KLIR4.js";
182
+ } from "./chunk-N4GXGPVA.js";
182
183
  import {
183
184
  getCustomCommandDirectories,
184
185
  hasCustomCommands,
185
186
  loadCustomCommands,
186
187
  reloadCustomCommands
187
- } from "./chunk-F33UZKH2.js";
188
+ } from "./chunk-SBPVAFBQ.js";
188
189
  import {
189
190
  getSessionPlugins
190
191
  } from "./chunk-BJSWTHRM.js";
@@ -192,7 +193,7 @@ import {
192
193
  ModelManager,
193
194
  getModelManager,
194
195
  isDefaultSlowAndCapableModel
195
- } from "./chunk-KJAUAOX4.js";
196
+ } from "./chunk-4LXZDGCO.js";
196
197
  import {
197
198
  getCodeStyle,
198
199
  getContext,
@@ -200,13 +201,13 @@ import {
200
201
  getIsGit,
201
202
  getProjectDocs,
202
203
  getProjectStructureStatisticsBlock
203
- } from "./chunk-WYUAUOQL.js";
204
+ } from "./chunk-GXHSGPIF.js";
204
205
  import {
205
206
  ripGrep
206
- } from "./chunk-65QK3573.js";
207
+ } from "./chunk-6KSM5M7T.js";
207
208
  import {
208
209
  getTheme
209
- } from "./chunk-VFIFN6QL.js";
210
+ } from "./chunk-GD43B2GV.js";
210
211
  import {
211
212
  DEFAULT_GLOBAL_CONFIG,
212
213
  enableConfigs,
@@ -219,7 +220,7 @@ import {
219
220
  saveGlobalConfig,
220
221
  setAllPointersToModel,
221
222
  setModelPointer
222
- } from "./chunk-YSGQ33QO.js";
223
+ } from "./chunk-TNAAGT3Q.js";
223
224
  import {
224
225
  AbortError
225
226
  } from "./chunk-RQVLBMP7.js";
@@ -228,7 +229,7 @@ import {
228
229
  getCurrentRequest,
229
230
  logUserFriendly,
230
231
  markPhase
231
- } from "./chunk-7D6P6FJI.js";
232
+ } from "./chunk-O5OT26P6.js";
232
233
  import {
233
234
  ASCII_LOGO,
234
235
  BunShell,
@@ -269,10 +270,10 @@ import {
269
270
  setCwd,
270
271
  shouldApplyToolOutputTruncation,
271
272
  truncateToolOutput
272
- } from "./chunk-FQBPNSQM.js";
273
+ } from "./chunk-ZGVGFR4C.js";
273
274
  import {
274
275
  MACRO
275
- } from "./chunk-POFRZWP7.js";
276
+ } from "./chunk-UUWI4VWU.js";
276
277
  import {
277
278
  __export
278
279
  } from "./chunk-I3J4JYES.js";
@@ -453,7 +454,7 @@ var getCommandSubcommandPrefix = memoize(
453
454
  var getCommandPrefix = memoize(
454
455
  async (command4, abortSignal) => {
455
456
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
456
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-3C5ICYYM.js");
457
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-3KCTIVOM.js");
457
458
  const response = await queryQuick2({
458
459
  systemPrompt,
459
460
  userPrompt,
@@ -4255,7 +4256,7 @@ function formatParseError(error) {
4255
4256
  return error instanceof Error ? error.message : String(error);
4256
4257
  }
4257
4258
  async function defaultGateQuery(args) {
4258
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-3C5ICYYM.js");
4259
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-3KCTIVOM.js");
4259
4260
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4260
4261
  const messages = [
4261
4262
  {
@@ -6570,7 +6571,7 @@ var FileEditTool = {
6570
6571
  const originalFileContent = currentFileContent;
6571
6572
  let totalPatch = [];
6572
6573
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6573
- const { findLspAnchor } = await import("./lspAnchor-XM5HYD36.js");
6574
+ const { findLspAnchor } = await import("./lspAnchor-FKXOKCQZ.js");
6574
6575
  for (const op of editOperations) {
6575
6576
  const normalizedSearch = normalizeLineEndings(op.search);
6576
6577
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -11205,7 +11206,7 @@ async function createAndStoreApiKey(accessToken) {
11205
11206
  }
11206
11207
  saveGlobalConfig(config2);
11207
11208
  try {
11208
- const { resetAnthropicClient } = await import("./llm-3C5ICYYM.js");
11209
+ const { resetAnthropicClient } = await import("./llm-3KCTIVOM.js");
11209
11210
  resetAnthropicClient();
11210
11211
  } catch {
11211
11212
  }
@@ -15487,7 +15488,7 @@ async function refreshPluginRuntimeFromInstalls() {
15487
15488
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
15488
15489
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
15489
15490
  if (dirs.length === 0) return [];
15490
- const { configureSessionPlugins } = await import("./pluginRuntime-B5FLWZCB.js");
15491
+ const { configureSessionPlugins } = await import("./pluginRuntime-REF3E5F5.js");
15491
15492
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
15492
15493
  return errors;
15493
15494
  }
@@ -16156,7 +16157,7 @@ async function call(onDone, context) {
16156
16157
  ModelConfig,
16157
16158
  {
16158
16159
  onClose: () => {
16159
- import("./model-N6XZCIO2.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16160
+ import("./model-R5X6XP7I.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16160
16161
  reloadModelManager2();
16161
16162
  triggerModelConfigChange();
16162
16163
  onDone();
@@ -17113,9 +17114,19 @@ function getStatusColor(status) {
17113
17114
  if (status === "blocked") return "#FF5555";
17114
17115
  return "#FFD700";
17115
17116
  }
17117
+ function formatTaskDetails(task) {
17118
+ const description3 = task.description?.trim();
17119
+ const blockedBy = (task.blockedBy ?? []).filter(Boolean);
17120
+ if (!description3 && blockedBy.length === 0) return null;
17121
+ if (blockedBy.length === 0) return description3 ?? null;
17122
+ const blockedText = `blocked by: ${blockedBy.join(", ")}`;
17123
+ if (description3) return `${description3} | ${blockedText}`;
17124
+ return blockedText;
17125
+ }
17116
17126
  function renderTask(task) {
17117
17127
  const color = getStatusColor(task.status);
17118
17128
  const isFinished = task.status === "done" || task.status === "archived";
17129
+ const details = formatTaskDetails(task);
17119
17130
  return /* @__PURE__ */ React47.createElement(Box36, { key: task.id, flexDirection: "row", gap: 1 }, /* @__PURE__ */ React47.createElement(Text40, null, "\u23BF"), /* @__PURE__ */ React47.createElement(Text40, { color, dimColor: isFinished }, getStatusIcon(task.status)), /* @__PURE__ */ React47.createElement(
17120
17131
  Text40,
17121
17132
  {
@@ -17125,7 +17136,17 @@ function renderTask(task) {
17125
17136
  bold: task.status === "in_progress"
17126
17137
  },
17127
17138
  task.subject
17128
- ));
17139
+ ), details ? /* @__PURE__ */ React47.createElement(
17140
+ Text40,
17141
+ {
17142
+ color,
17143
+ dimColor: isFinished,
17144
+ strikethrough: isFinished,
17145
+ bold: task.status === "in_progress"
17146
+ },
17147
+ " - ",
17148
+ details
17149
+ ) : null);
17129
17150
  }
17130
17151
  function TaskList(props) {
17131
17152
  const tasks = props.tasks ?? listTasks({ listId: props.listId });
@@ -24396,7 +24417,7 @@ function useStatusLine() {
24396
24417
  // src/ui/components/PromptInput.tsx
24397
24418
  async function interpretHashCommand(input) {
24398
24419
  try {
24399
- const { queryQuick: queryQuick2 } = await import("./llm-3C5ICYYM.js");
24420
+ const { queryQuick: queryQuick2 } = await import("./llm-3KCTIVOM.js");
24400
24421
  const systemPrompt = [
24401
24422
  "You're helping the user structure notes that will be added to their PYB.md file.",
24402
24423
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -24709,7 +24730,7 @@ function PromptInput({
24709
24730
  if (messages2.length) {
24710
24731
  if (mode === "bash") {
24711
24732
  onQuery(messages2, newAbortController).then(async () => {
24712
- const { getCwd: getCwd2 } = await import("./state-3MIS3KPI.js");
24733
+ const { getCwd: getCwd2 } = await import("./state-4AIVX6VM.js");
24713
24734
  setCurrentPwd(getCwd2());
24714
24735
  });
24715
24736
  } else {
@@ -25405,9 +25426,7 @@ As you answer the user's questions, you can use the following context:
25405
25426
 
25406
25427
  // src/services/system/taskWatcher.ts
25407
25428
  import { existsSync as existsSync13, mkdirSync as mkdirSync5, statSync as statSync12, watch } from "fs";
25408
- var DEFAULT_POLL_INTERVAL_MS = Number(
25409
- process.env.PYB_TASK_WATCHER_POLL_INTERVAL_MS ?? 1e3
25410
- );
25429
+ var getPollIntervalMs = () => Number(process.env.PYB_TASK_WATCHER_POLL_INTERVAL_MS ?? 1e3);
25411
25430
  var taskWatchers = /* @__PURE__ */ new Map();
25412
25431
  function ensureDirs(paths) {
25413
25432
  mkdirSync5(paths.tasksDir, { recursive: true });
@@ -25428,6 +25447,10 @@ function getFingerprint(paths) {
25428
25447
  const tasksMtime = getLatestMtime(paths.tasksDir);
25429
25448
  return `${indexMtime}-${listMtime}-${tasksMtime}`;
25430
25449
  }
25450
+ function getEventOffset(paths) {
25451
+ if (!existsSync13(paths.eventsPath)) return 0;
25452
+ return statSync12(paths.eventsPath).size;
25453
+ }
25431
25454
  function buildReadySet(listId) {
25432
25455
  const tasks = listTasks({ listId });
25433
25456
  const readyBlocked = calculateReadyBlocked(tasks);
@@ -25458,22 +25481,25 @@ function emitListChanged(listId) {
25458
25481
  });
25459
25482
  return readyBlocked.ready;
25460
25483
  }
25484
+ function refreshSignals(entry) {
25485
+ const readyTasks = emitListChanged(entry.listId);
25486
+ const nextReadyIds = new Set(readyTasks.map((task) => task.id));
25487
+ if (readySetChanged(nextReadyIds, entry.lastReadyIds)) {
25488
+ emitReminderEvent("task:ready_changed", {
25489
+ listId: entry.listId,
25490
+ timestamp: Date.now(),
25491
+ readyIds: Array.from(nextReadyIds)
25492
+ });
25493
+ entry.lastReadyIds = nextReadyIds;
25494
+ }
25495
+ }
25461
25496
  function handleChange(entry) {
25462
25497
  try {
25463
25498
  const paths = getTaskListPaths(entry.listId);
25464
25499
  const fingerprint = getFingerprint(paths);
25465
25500
  if (fingerprint === entry.lastFingerprint) return;
25466
25501
  entry.lastFingerprint = fingerprint;
25467
- const readyTasks = emitListChanged(entry.listId);
25468
- const nextReadyIds = new Set(readyTasks.map((task) => task.id));
25469
- if (readySetChanged(nextReadyIds, entry.lastReadyIds)) {
25470
- emitReminderEvent("task:ready_changed", {
25471
- listId: entry.listId,
25472
- timestamp: Date.now(),
25473
- readyIds: Array.from(nextReadyIds)
25474
- });
25475
- entry.lastReadyIds = nextReadyIds;
25476
- }
25502
+ refreshSignals(entry);
25477
25503
  } catch (error) {
25478
25504
  logError(error);
25479
25505
  debug.warn("TASK_WATCHER_HANDLE_CHANGE_FAILED", {
@@ -25485,38 +25511,107 @@ function handleChange(entry) {
25485
25511
  function startPolling(entry, intervalMs) {
25486
25512
  entry.pollingTimer = setInterval(() => handleChange(entry), intervalMs);
25487
25513
  }
25488
- function startWatchingTaskList(listId) {
25489
- const paths = getTaskListPaths(listId);
25490
- if (taskWatchers.has(paths.listId)) return;
25491
- ensureDirs(paths);
25492
- const entry = {
25493
- listId: paths.listId,
25494
- listDir: paths.listDir,
25495
- tasksDir: paths.tasksDir,
25496
- indexPath: paths.indexPath,
25497
- lastFingerprint: getFingerprint(paths),
25498
- lastReadyIds: buildReadySet(paths.listId)
25499
- };
25500
- taskWatchers.set(paths.listId, entry);
25514
+ function stopFallbackWatcher(entry) {
25515
+ if (entry.watcher) {
25516
+ entry.watcher.close();
25517
+ entry.watcher = void 0;
25518
+ }
25519
+ if (entry.pollingTimer) {
25520
+ clearInterval(entry.pollingTimer);
25521
+ entry.pollingTimer = void 0;
25522
+ }
25523
+ }
25524
+ function startFallbackWatcher(entry) {
25525
+ if (entry.watcher || entry.pollingTimer) return;
25501
25526
  const forcePolling = process.env.PYB_TASK_WATCHER_POLLING === "1";
25502
25527
  if (forcePolling) {
25503
- startPolling(entry, DEFAULT_POLL_INTERVAL_MS);
25528
+ startPolling(entry, getPollIntervalMs());
25504
25529
  return;
25505
25530
  }
25506
25531
  try {
25507
25532
  entry.watcher = watch(
25508
- paths.listDir,
25533
+ entry.listDir,
25509
25534
  { recursive: true },
25510
25535
  () => handleChange(entry)
25511
25536
  );
25512
25537
  } catch (error) {
25513
25538
  debug.warn("TASK_WATCHER_WATCH_FAILED", {
25514
- listId: paths.listId,
25539
+ listId: entry.listId,
25515
25540
  error: error instanceof Error ? error.message : String(error)
25516
25541
  });
25517
- startPolling(entry, DEFAULT_POLL_INTERVAL_MS);
25542
+ startPolling(entry, getPollIntervalMs());
25518
25543
  }
25519
25544
  }
25545
+ function handleEventStream(entry) {
25546
+ try {
25547
+ const { events, nextOffset } = readTaskEventLog(
25548
+ entry.listId,
25549
+ entry.lastEventOffset
25550
+ );
25551
+ if (nextOffset !== entry.lastEventOffset) {
25552
+ entry.lastEventOffset = nextOffset;
25553
+ }
25554
+ if (events.length === 0) return;
25555
+ refreshSignals(entry);
25556
+ } catch (error) {
25557
+ logError(error);
25558
+ debug.warn("TASK_WATCHER_EVENT_STREAM_FAILED", {
25559
+ listId: entry.listId,
25560
+ error: error instanceof Error ? error.message : String(error)
25561
+ });
25562
+ if (entry.eventPollingTimer) {
25563
+ clearInterval(entry.eventPollingTimer);
25564
+ entry.eventPollingTimer = void 0;
25565
+ }
25566
+ startFallbackWatcher(entry);
25567
+ startEventSwitchPolling(entry);
25568
+ }
25569
+ }
25570
+ function startEventStreamPolling(entry, intervalMs) {
25571
+ entry.eventPollingTimer = setInterval(
25572
+ () => handleEventStream(entry),
25573
+ intervalMs
25574
+ );
25575
+ }
25576
+ function switchToEventStream(entry) {
25577
+ if (entry.eventPollingTimer) return;
25578
+ stopFallbackWatcher(entry);
25579
+ entry.lastEventOffset = 0;
25580
+ startEventStreamPolling(entry, getPollIntervalMs());
25581
+ if (entry.eventSwitchTimer) {
25582
+ clearInterval(entry.eventSwitchTimer);
25583
+ entry.eventSwitchTimer = void 0;
25584
+ }
25585
+ }
25586
+ function startEventSwitchPolling(entry) {
25587
+ if (entry.eventSwitchTimer) return;
25588
+ entry.eventSwitchTimer = setInterval(() => {
25589
+ if (!existsSync13(entry.eventsPath)) return;
25590
+ switchToEventStream(entry);
25591
+ }, getPollIntervalMs());
25592
+ }
25593
+ function startWatchingTaskList(listId) {
25594
+ const paths = getTaskListPaths(listId);
25595
+ if (taskWatchers.has(paths.listId)) return;
25596
+ ensureDirs(paths);
25597
+ const entry = {
25598
+ listId: paths.listId,
25599
+ listDir: paths.listDir,
25600
+ tasksDir: paths.tasksDir,
25601
+ indexPath: paths.indexPath,
25602
+ eventsPath: paths.eventsPath,
25603
+ lastFingerprint: getFingerprint(paths),
25604
+ lastReadyIds: buildReadySet(paths.listId),
25605
+ lastEventOffset: getEventOffset(paths)
25606
+ };
25607
+ taskWatchers.set(paths.listId, entry);
25608
+ if (existsSync13(paths.eventsPath)) {
25609
+ startEventStreamPolling(entry, getPollIntervalMs());
25610
+ return;
25611
+ }
25612
+ startFallbackWatcher(entry);
25613
+ startEventSwitchPolling(entry);
25614
+ }
25520
25615
 
25521
25616
  // src/utils/session/fileRecoveryCore.ts
25522
25617
  var MAX_FILES_TO_RECOVER = 5;
@@ -27768,7 +27863,7 @@ import { homedir as homedir7 } from "os";
27768
27863
  // src/commands/agents/generation.ts
27769
27864
  import { randomUUID as randomUUID5 } from "crypto";
27770
27865
  async function generateAgentWithClaude(prompt) {
27771
- const { queryModel } = await import("./llm-3C5ICYYM.js");
27866
+ const { queryModel } = await import("./llm-3KCTIVOM.js");
27772
27867
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
27773
27868
 
27774
27869
  Return your response as a JSON object with exactly these fields:
@@ -31804,7 +31899,9 @@ To give feedback, users should ${MACRO.ISSUES_EXPLAINER}.
31804
31899
  You have access to the Task tools (TaskCreate, TaskUpdate, TaskList, TaskGet) to help you manage and plan tasks. Using these tools is a Best Practice for complex workflows, as it ensures you are tracking your tasks and giving the user visibility into your progress.
31805
31900
  These tools are powerful for planning tasks and for breaking down larger complex tasks into smaller steps. For multi-step work, start by creating tasks with TaskCreate, then use TaskUpdate as you progress. Use TaskList to review readiness and blockers, and TaskGet for details.
31806
31901
 
31807
- **Dynamic Planning**: You are encouraged to update your plan dynamically. If you encounter unexpected issues or new requirements, pause the current task, add new items (e.g., "Fix dependency issue"), set their priority to 'high', and adjust your plan accordingly.
31902
+ **Dynamic Planning**: You are encouraged to update your plan dynamically. If you encounter unexpected issues or new requirements, pause the current task, add new items (e.g., "Fix dependency issue"), and adjust your plan accordingly.
31903
+
31904
+ Task records use subject as the single primary name, with activeForm auto-generated from subject to describe the in-progress action. Keep description and blockedBy independent in JSON; any joining is only for terminal rendering. blocks/blockedBy should always be present as arrays (empty when not used). Ordering is by task id; do not use priority fields.
31808
31905
 
31809
31906
  It is critical that you mark tasks as completed as soon as you are done with a task. Do not batch up multiple tasks before marking them as completed.
31810
31907