pybao-cli 1.4.48 → 1.4.49

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 (145) hide show
  1. package/dist/REPL-PRQAXE32.js +47 -0
  2. package/dist/{acp-IFGE4F3A.js → acp-FGRNDOS5.js} +29 -29
  3. package/dist/{agentsValidate-2S7TS6FM.js → agentsValidate-7CRDPNQ6.js} +7 -7
  4. package/dist/{ask-VZHW54MU.js → ask-IR5W5M66.js} +28 -28
  5. package/dist/{autoUpdater-IW4TGS72.js → autoUpdater-MAEQZPST.js} +3 -3
  6. package/dist/{chunk-M3DAKW3P.js → chunk-2U747SA5.js} +3 -3
  7. package/dist/{chunk-HOGGCP42.js → chunk-3P2EGWMK.js} +2 -2
  8. package/dist/{chunk-XKZBVJG3.js → chunk-4Z6CCSED.js} +3 -3
  9. package/dist/{chunk-G4BAHYY3.js → chunk-55QJI7OQ.js} +1 -1
  10. package/dist/{chunk-GDVJR5KL.js → chunk-6GOKZQDV.js} +2 -2
  11. package/dist/{chunk-AXERAVMI.js → chunk-6Y4OSP3J.js} +28 -314
  12. package/dist/{chunk-AXERAVMI.js.map → chunk-6Y4OSP3J.js.map} +3 -3
  13. package/dist/{chunk-V6A2GMFH.js → chunk-72SGZIMD.js} +3 -3
  14. package/dist/{chunk-OWL5HCIC.js → chunk-7FNDFUQH.js} +1 -1
  15. package/dist/{chunk-SIA5QI6F.js → chunk-A7VN6YXZ.js} +1 -1
  16. package/dist/{chunk-BICKBBO7.js → chunk-AWML3QPK.js} +4 -4
  17. package/dist/{chunk-AIG7PATQ.js → chunk-D3Q32IUW.js} +3 -3
  18. package/dist/{chunk-JKU3KNYS.js → chunk-DEQQW4H6.js} +3 -3
  19. package/dist/{chunk-Z7WZHT6F.js → chunk-EXEPX5H2.js} +4 -4
  20. package/dist/{chunk-JBCUC2AT.js → chunk-GFDV6FUG.js} +3 -3
  21. package/dist/{chunk-3VMXYFIT.js → chunk-HFL2SOFQ.js} +1 -1
  22. package/dist/{chunk-ZJBXTNDU.js → chunk-I5H5PGD5.js} +36 -36
  23. package/dist/{chunk-ZJBXTNDU.js.map → chunk-I5H5PGD5.js.map} +1 -1
  24. package/dist/{chunk-J4C7YKYJ.js → chunk-IQ3KORSP.js} +4 -4
  25. package/dist/{chunk-4YDELOUA.js → chunk-JF4AMPKU.js} +2 -2
  26. package/dist/{chunk-ZHRGZQNR.js → chunk-LZT5LZKG.js} +2 -2
  27. package/dist/{chunk-GW5WTOG5.js → chunk-MCP52ZSD.js} +3 -9
  28. package/dist/{chunk-GW5WTOG5.js.map → chunk-MCP52ZSD.js.map} +1 -1
  29. package/dist/{chunk-ISCMKZNN.js → chunk-MLCISJKM.js} +3 -3
  30. package/dist/{chunk-BEXPBQFR.js → chunk-NZTVG7YS.js} +4 -4
  31. package/dist/{chunk-IFEDWTG7.js → chunk-PSI4PJ2H.js} +1 -1
  32. package/dist/{chunk-AXKISGZM.js → chunk-QW4VX3FW.js} +2 -2
  33. package/dist/{chunk-BOKBAA24.js → chunk-S2AJAM6R.js} +2 -2
  34. package/dist/{chunk-TZAXVFEM.js → chunk-SHIPHOMT.js} +1 -1
  35. package/dist/{chunk-XLEWRQCY.js → chunk-UUGWQSET.js} +1 -1
  36. package/dist/{chunk-5NESTZE6.js → chunk-XHGUMYRL.js} +1 -1
  37. package/dist/{chunk-EZ6FYX4C.js → chunk-XZNXY65J.js} +1 -1
  38. package/dist/{chunk-PZE5YBBF.js → chunk-YFBIVUDT.js} +1 -1
  39. package/dist/{chunk-PZE5YBBF.js.map → chunk-YFBIVUDT.js.map} +1 -1
  40. package/dist/{cli-ZRCAZYTQ.js → cli-PCLH664O.js} +87 -87
  41. package/dist/commands-Y7GVRV66.js +51 -0
  42. package/dist/{config-PLU4OP3T.js → config-EBW7GI65.js} +4 -4
  43. package/dist/{context-VS2RH2QQ.js → context-4BILE3LL.js} +6 -6
  44. package/dist/{customCommands-PO7TJK6W.js → customCommands-GDDHYRJR.js} +4 -4
  45. package/dist/{env-RWUREWKB.js → env-7V57CD26.js} +2 -2
  46. package/dist/{file-TJXZCSD6.js → file-3W4M7RXM.js} +4 -4
  47. package/dist/index.js +3 -3
  48. package/dist/{llm-SIFMXQZG.js → llm-PIRKDSMO.js} +29 -29
  49. package/dist/{llmLazy-NVYTF3ED.js → llmLazy-HWKMKZ5M.js} +1 -1
  50. package/dist/{loader-TESSLYD7.js → loader-GYFX3MOO.js} +4 -4
  51. package/dist/{lsp-B7C53VFK.js → lsp-BDQVEVFK.js} +6 -6
  52. package/dist/{lspAnchor-R6O24XMA.js → lspAnchor-S45W3FAI.js} +6 -6
  53. package/dist/{mcp-3K4SUF5X.js → mcp-ZHLSRCM5.js} +7 -7
  54. package/dist/{mentionProcessor-W562Z5O2.js → mentionProcessor-GOS6BB64.js} +6 -6
  55. package/dist/{messages-SSISEZIC.js → messages-AX4MWPK5.js} +1 -1
  56. package/dist/{model-GDYIDBOL.js → model-QDQAUOQ6.js} +5 -5
  57. package/dist/{openai-AWGHPGXZ.js → openai-IBJPYBTX.js} +5 -5
  58. package/dist/{outputStyles-XA3O4VXB.js → outputStyles-UNAE3KVB.js} +4 -4
  59. package/dist/{pluginRuntime-YAAKDIEX.js → pluginRuntime-QP6HTJ6Y.js} +6 -6
  60. package/dist/{pluginValidation-XADMM3ML.js → pluginValidation-C66MGV4E.js} +6 -6
  61. package/dist/prompts-LNJ2SJQ7.js +53 -0
  62. package/dist/{pybAgentSessionLoad-5ZQ4HRJA.js → pybAgentSessionLoad-GJQQFHVS.js} +4 -4
  63. package/dist/{pybAgentSessionResume-4RVMH3GJ.js → pybAgentSessionResume-2ZNOOEVX.js} +4 -4
  64. package/dist/{pybAgentStreamJsonSession-EX6CPLCM.js → pybAgentStreamJsonSession-PE2K75QJ.js} +1 -1
  65. package/dist/{pybHooks-LULFTS4Q.js → pybHooks-22R4DOTT.js} +4 -4
  66. package/dist/query-2ZFLZTV6.js +55 -0
  67. package/dist/{registry-7PDNLUXI.js → registry-ES4KTNF7.js} +5 -5
  68. package/dist/{ripgrep-WHJWB2CA.js → ripgrep-7BPG53S4.js} +3 -3
  69. package/dist/{skillMarketplace-KN775I76.js → skillMarketplace-O5TAM4G6.js} +3 -3
  70. package/dist/{state-3ATZNQCD.js → state-3OM3WWZ2.js} +2 -2
  71. package/dist/{theme-7LEARTTQ.js → theme-7MFSQQ5Z.js} +5 -5
  72. package/dist/{toolPermissionSettings-AKADQAEF.js → toolPermissionSettings-KKMWAVTJ.js} +6 -6
  73. package/dist/tools-ME4EX5CM.js +52 -0
  74. package/dist/{userInput-WB5USVP7.js → userInput-3BYMTC52.js} +30 -30
  75. package/package.json +1 -1
  76. package/dist/REPL-U456S3ZD.js +0 -47
  77. package/dist/commands-TFMEUD4X.js +0 -51
  78. package/dist/prompts-HOWNPK7S.js +0 -53
  79. package/dist/query-ZTFONAXX.js +0 -55
  80. package/dist/tools-4Y3EFQJW.js +0 -52
  81. /package/dist/{REPL-U456S3ZD.js.map → REPL-PRQAXE32.js.map} +0 -0
  82. /package/dist/{acp-IFGE4F3A.js.map → acp-FGRNDOS5.js.map} +0 -0
  83. /package/dist/{agentsValidate-2S7TS6FM.js.map → agentsValidate-7CRDPNQ6.js.map} +0 -0
  84. /package/dist/{ask-VZHW54MU.js.map → ask-IR5W5M66.js.map} +0 -0
  85. /package/dist/{autoUpdater-IW4TGS72.js.map → autoUpdater-MAEQZPST.js.map} +0 -0
  86. /package/dist/{chunk-M3DAKW3P.js.map → chunk-2U747SA5.js.map} +0 -0
  87. /package/dist/{chunk-HOGGCP42.js.map → chunk-3P2EGWMK.js.map} +0 -0
  88. /package/dist/{chunk-XKZBVJG3.js.map → chunk-4Z6CCSED.js.map} +0 -0
  89. /package/dist/{chunk-G4BAHYY3.js.map → chunk-55QJI7OQ.js.map} +0 -0
  90. /package/dist/{chunk-GDVJR5KL.js.map → chunk-6GOKZQDV.js.map} +0 -0
  91. /package/dist/{chunk-V6A2GMFH.js.map → chunk-72SGZIMD.js.map} +0 -0
  92. /package/dist/{chunk-OWL5HCIC.js.map → chunk-7FNDFUQH.js.map} +0 -0
  93. /package/dist/{chunk-SIA5QI6F.js.map → chunk-A7VN6YXZ.js.map} +0 -0
  94. /package/dist/{chunk-BICKBBO7.js.map → chunk-AWML3QPK.js.map} +0 -0
  95. /package/dist/{chunk-AIG7PATQ.js.map → chunk-D3Q32IUW.js.map} +0 -0
  96. /package/dist/{chunk-JKU3KNYS.js.map → chunk-DEQQW4H6.js.map} +0 -0
  97. /package/dist/{chunk-Z7WZHT6F.js.map → chunk-EXEPX5H2.js.map} +0 -0
  98. /package/dist/{chunk-JBCUC2AT.js.map → chunk-GFDV6FUG.js.map} +0 -0
  99. /package/dist/{chunk-3VMXYFIT.js.map → chunk-HFL2SOFQ.js.map} +0 -0
  100. /package/dist/{chunk-J4C7YKYJ.js.map → chunk-IQ3KORSP.js.map} +0 -0
  101. /package/dist/{chunk-4YDELOUA.js.map → chunk-JF4AMPKU.js.map} +0 -0
  102. /package/dist/{chunk-ZHRGZQNR.js.map → chunk-LZT5LZKG.js.map} +0 -0
  103. /package/dist/{chunk-ISCMKZNN.js.map → chunk-MLCISJKM.js.map} +0 -0
  104. /package/dist/{chunk-BEXPBQFR.js.map → chunk-NZTVG7YS.js.map} +0 -0
  105. /package/dist/{chunk-IFEDWTG7.js.map → chunk-PSI4PJ2H.js.map} +0 -0
  106. /package/dist/{chunk-AXKISGZM.js.map → chunk-QW4VX3FW.js.map} +0 -0
  107. /package/dist/{chunk-BOKBAA24.js.map → chunk-S2AJAM6R.js.map} +0 -0
  108. /package/dist/{chunk-TZAXVFEM.js.map → chunk-SHIPHOMT.js.map} +0 -0
  109. /package/dist/{chunk-XLEWRQCY.js.map → chunk-UUGWQSET.js.map} +0 -0
  110. /package/dist/{chunk-5NESTZE6.js.map → chunk-XHGUMYRL.js.map} +0 -0
  111. /package/dist/{chunk-EZ6FYX4C.js.map → chunk-XZNXY65J.js.map} +0 -0
  112. /package/dist/{cli-ZRCAZYTQ.js.map → cli-PCLH664O.js.map} +0 -0
  113. /package/dist/{commands-TFMEUD4X.js.map → commands-Y7GVRV66.js.map} +0 -0
  114. /package/dist/{config-PLU4OP3T.js.map → config-EBW7GI65.js.map} +0 -0
  115. /package/dist/{context-VS2RH2QQ.js.map → context-4BILE3LL.js.map} +0 -0
  116. /package/dist/{customCommands-PO7TJK6W.js.map → customCommands-GDDHYRJR.js.map} +0 -0
  117. /package/dist/{env-RWUREWKB.js.map → env-7V57CD26.js.map} +0 -0
  118. /package/dist/{file-TJXZCSD6.js.map → file-3W4M7RXM.js.map} +0 -0
  119. /package/dist/{llm-SIFMXQZG.js.map → llm-PIRKDSMO.js.map} +0 -0
  120. /package/dist/{llmLazy-NVYTF3ED.js.map → llmLazy-HWKMKZ5M.js.map} +0 -0
  121. /package/dist/{loader-TESSLYD7.js.map → loader-GYFX3MOO.js.map} +0 -0
  122. /package/dist/{lsp-B7C53VFK.js.map → lsp-BDQVEVFK.js.map} +0 -0
  123. /package/dist/{lspAnchor-R6O24XMA.js.map → lspAnchor-S45W3FAI.js.map} +0 -0
  124. /package/dist/{mcp-3K4SUF5X.js.map → mcp-ZHLSRCM5.js.map} +0 -0
  125. /package/dist/{mentionProcessor-W562Z5O2.js.map → mentionProcessor-GOS6BB64.js.map} +0 -0
  126. /package/dist/{messages-SSISEZIC.js.map → messages-AX4MWPK5.js.map} +0 -0
  127. /package/dist/{model-GDYIDBOL.js.map → model-QDQAUOQ6.js.map} +0 -0
  128. /package/dist/{openai-AWGHPGXZ.js.map → openai-IBJPYBTX.js.map} +0 -0
  129. /package/dist/{outputStyles-XA3O4VXB.js.map → outputStyles-UNAE3KVB.js.map} +0 -0
  130. /package/dist/{pluginRuntime-YAAKDIEX.js.map → pluginRuntime-QP6HTJ6Y.js.map} +0 -0
  131. /package/dist/{pluginValidation-XADMM3ML.js.map → pluginValidation-C66MGV4E.js.map} +0 -0
  132. /package/dist/{prompts-HOWNPK7S.js.map → prompts-LNJ2SJQ7.js.map} +0 -0
  133. /package/dist/{pybAgentSessionLoad-5ZQ4HRJA.js.map → pybAgentSessionLoad-GJQQFHVS.js.map} +0 -0
  134. /package/dist/{pybAgentSessionResume-4RVMH3GJ.js.map → pybAgentSessionResume-2ZNOOEVX.js.map} +0 -0
  135. /package/dist/{pybAgentStreamJsonSession-EX6CPLCM.js.map → pybAgentStreamJsonSession-PE2K75QJ.js.map} +0 -0
  136. /package/dist/{pybHooks-LULFTS4Q.js.map → pybHooks-22R4DOTT.js.map} +0 -0
  137. /package/dist/{query-ZTFONAXX.js.map → query-2ZFLZTV6.js.map} +0 -0
  138. /package/dist/{registry-7PDNLUXI.js.map → registry-ES4KTNF7.js.map} +0 -0
  139. /package/dist/{ripgrep-WHJWB2CA.js.map → ripgrep-7BPG53S4.js.map} +0 -0
  140. /package/dist/{skillMarketplace-KN775I76.js.map → skillMarketplace-O5TAM4G6.js.map} +0 -0
  141. /package/dist/{state-3ATZNQCD.js.map → state-3OM3WWZ2.js.map} +0 -0
  142. /package/dist/{theme-7LEARTTQ.js.map → theme-7MFSQQ5Z.js.map} +0 -0
  143. /package/dist/{toolPermissionSettings-AKADQAEF.js.map → toolPermissionSettings-KKMWAVTJ.js.map} +0 -0
  144. /package/dist/{tools-4Y3EFQJW.js.map → tools-ME4EX5CM.js.map} +0 -0
  145. /package/dist/{userInput-WB5USVP7.js.map → userInput-3BYMTC52.js.map} +0 -0
@@ -4,17 +4,17 @@ import {
4
4
  LspServerRegistry,
5
5
  findNearestRoot,
6
6
  getInstallNotices
7
- } from "./chunk-AIG7PATQ.js";
7
+ } from "./chunk-D3Q32IUW.js";
8
8
  import {
9
9
  levenshtein
10
10
  } from "./chunk-UZ34JEUK.js";
11
11
  import {
12
12
  debug
13
- } from "./chunk-5NESTZE6.js";
13
+ } from "./chunk-XHGUMYRL.js";
14
14
  import {
15
15
  getCwd,
16
16
  getSessionRoot
17
- } from "./chunk-XLEWRQCY.js";
17
+ } from "./chunk-UUGWQSET.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-7PDNLUXI.js");
568
+ const { detectPythonVenv } = await import("./registry-ES4KTNF7.js");
569
569
  const pythonPath = detectPythonVenv(resolvedRoot);
570
570
  if (pythonPath) {
571
571
  initOpts = { ...initOpts ?? {}, pythonPath };
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-BJSWTHRM.js";
6
6
  import {
7
7
  debug
8
- } from "./chunk-5NESTZE6.js";
8
+ } from "./chunk-XHGUMYRL.js";
9
9
  import {
10
10
  getCwd,
11
11
  logError,
12
12
  resolveXdgDataPath
13
- } from "./chunk-XLEWRQCY.js";
13
+ } from "./chunk-UUGWQSET.js";
14
14
 
15
15
  // src/services/plugins/customCommands.ts
16
16
  import { existsSync, readFileSync, readdirSync, statSync } from "fs";
@@ -8,12 +8,12 @@ import {
8
8
  } from "./chunk-BJSWTHRM.js";
9
9
  import {
10
10
  debug
11
- } from "./chunk-5NESTZE6.js";
11
+ } from "./chunk-XHGUMYRL.js";
12
12
  import {
13
13
  getCwd,
14
14
  getXdgConfigDir,
15
15
  logError
16
- } from "./chunk-XLEWRQCY.js";
16
+ } from "./chunk-UUGWQSET.js";
17
17
 
18
18
  // src/utils/agent/loader.ts
19
19
  import {
@@ -7,15 +7,15 @@ import {
7
7
  import {
8
8
  getCurrentProjectConfig,
9
9
  getGlobalConfig
10
- } from "./chunk-M3DAKW3P.js";
10
+ } from "./chunk-2U747SA5.js";
11
11
  import {
12
12
  debug
13
- } from "./chunk-5NESTZE6.js";
13
+ } from "./chunk-XHGUMYRL.js";
14
14
  import {
15
15
  getCwd,
16
16
  logError,
17
17
  resolveXdgDataPath
18
- } from "./chunk-XLEWRQCY.js";
18
+ } from "./chunk-UUGWQSET.js";
19
19
 
20
20
  // src/utils/agent/storage.ts
21
21
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
@@ -156,11 +156,6 @@ function getTaskListContext(options) {
156
156
  if (projectId) return { listId: projectId, scope: "project", source: "project" };
157
157
  return { listId: defaultId, scope: "project", source: "default" };
158
158
  }
159
- function getTaskNextId(options) {
160
- const paths = getTaskListPaths(options?.listId);
161
- const index = readIndex(paths);
162
- return index.nextId;
163
- }
164
159
  function resolveTaskBaseDir(context, cwd) {
165
160
  if (context.scope === "project") {
166
161
  const pybDir = join2(cwd, ".pyb");
@@ -1363,7 +1358,6 @@ export {
1363
1358
  getAgentFilePath,
1364
1359
  generateAgentId,
1365
1360
  TaskStoreConflictError,
1366
- getTaskNextId,
1367
1361
  getTaskListPaths,
1368
1362
  readTaskEventLog,
1369
1363
  createTask,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/utils/agent/storage.ts", "../src/utils/session/taskStore.ts", "../src/utils/session/todoStorage.ts", "../src/services/system/systemReminder.ts"],
4
4
  "sourcesContent": ["import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'\nimport { join } from 'path'\nimport { randomUUID } from 'crypto'\nimport { debug as debugLogger } from '@utils/log/debugLogger'\nimport { logError } from '@utils/log'\nimport { resolveXdgDataPath } from '@utils/config/env'\n\n\nfunction getConfigDirectory(): string {\n const override = process.env.ANYKODE_CONFIG_DIR?.trim()\n if (override) return override\n return resolveXdgDataPath('agents')\n}\n\nfunction getSessionId(): string {\n return process.env.ANYKODE_SESSION_ID ?? 'default-session'\n}\n\nexport function getAgentFilePath(agentId: string): string {\n const sessionId = getSessionId()\n const filename = `${sessionId}-agent-${agentId}.json`\n const configDir = getConfigDirectory()\n\n if (!existsSync(configDir)) {\n mkdirSync(configDir, { recursive: true })\n }\n\n return join(configDir, filename)\n}\n\nexport function readAgentData<T = any>(agentId: string): T | null {\n const filePath = getAgentFilePath(agentId)\n\n if (!existsSync(filePath)) {\n return null\n }\n\n try {\n const content = readFileSync(filePath, 'utf-8')\n return JSON.parse(content) as T\n } catch (error) {\n logError(error)\n debugLogger.warn('AGENT_STORAGE_READ_FAILED', {\n agentId,\n error: error instanceof Error ? error.message : String(error),\n })\n return null\n }\n}\n\nexport function writeAgentData<T = any>(agentId: string, data: T): void {\n const filePath = getAgentFilePath(agentId)\n\n try {\n writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8')\n } catch (error) {\n logError(error)\n debugLogger.warn('AGENT_STORAGE_WRITE_FAILED', {\n agentId,\n error: error instanceof Error ? error.message : String(error),\n })\n throw error\n }\n}\n\nexport function getDefaultAgentId(): string {\n return 'default'\n}\n\nexport function resolveAgentId(agentId?: string): string {\n return agentId || getDefaultAgentId()\n}\n\nexport function generateAgentId(): string {\n return randomUUID()\n}\n", "import {\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n rmSync,\n writeFileSync,\n} from 'fs'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport { createHash } from 'crypto'\nimport type { GlobalConfig, ProjectConfig } from '@utils/config'\nimport { getCurrentProjectConfig, getGlobalConfig } from '@utils/config'\nimport { resolveXdgDataPath } from '@utils/config/env'\nimport { getCwd } from '@utils/state'\n\nexport type TaskStatus = 'pending' | 'in_progress' | 'blocked' | 'done' | 'archived'\nexport type TaskStatusInput = TaskStatus | 'open'\n\nexport type TaskRecord = {\n id: string\n subject: string\n description?: string\n activeForm?: string\n status: TaskStatus\n tags?: string[]\n assignee?: string\n metadata?: Record<string, string>\n archived?: boolean\n blocks?: string[]\n blockedBy?: string[]\n parent?: string\n related?: string[]\n createdAt: number\n updatedAt: number\n baseVersion: number\n version: number\n legacyTodoId?: string\n}\n\nexport type TaskCreateInput = {\n subject?: string\n description?: string\n activeForm?: string\n status?: TaskStatusInput\n tags?: string[]\n assignee?: string\n metadata?: Record<string, string>\n archived?: boolean\n blocks?: string[]\n blockedBy?: string[]\n parent?: string\n related?: string[]\n legacyTodoId?: string\n}\n\nexport type TaskUpdateInput = Partial<TaskCreateInput> & {\n baseVersion?: number\n updatedAt?: number\n}\n\nexport type TaskUpdateResult = {\n task: TaskRecord\n conflict: boolean\n}\n\ntype TaskListScope = 'project' | 'global'\n\ntype TaskListContext = {\n listId: string\n scope: TaskListScope\n source: 'env' | 'global' | 'project' | 'default' | 'input'\n}\n\ntype TaskIndex = {\n nextId: number\n total: number\n byStatus: Record<TaskStatus, number>\n lastUpdated: number\n}\n\ntype TaskListMeta = {\n listId: string\n createdAt: number\n updatedAt: number\n todoMigration?: {\n completedAt: number\n sourceCount: number\n }\n}\n\nconst DEFAULT_LOCK_TTL_MS = 60000\n\nexport class TaskStoreLockError extends Error {\n code = 'TASK_STORE_LOCKED'\n constructor(message: string) {\n super(message)\n this.name = 'TaskStoreLockError'\n }\n}\n\nexport class TaskStoreConflictError extends Error {\n code = 'TASK_STORE_CONFLICT'\n taskId: string\n expectedBaseVersion: number\n actualBaseVersion: number\n constructor(params: { taskId: string; expected: number; actual: number }) {\n super(\n `Task ${params.taskId} baseVersion ${params.actual} does not match expected ${params.expected}`,\n )\n this.name = 'TaskStoreConflictError'\n this.taskId = params.taskId\n this.expectedBaseVersion = params.expected\n this.actualBaseVersion = params.actual\n }\n}\n\nexport function getDefaultTaskListId(cwd: string): string {\n return createHash('sha256').update(cwd).digest('hex').slice(0, 12)\n}\n\nfunction resolveGlobalTaskRootDir(): string {\n const override = process.env.PYB_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR\n if (override) return override\n const home = homedir()\n const pybDir = join(home, '.pyb')\n if (existsSync(pybDir)) return pybDir\n const claudeDir = join(home, '.claude')\n if (existsSync(claudeDir)) return claudeDir\n return pybDir\n}\n\nfunction findBaseDirWithList(\n listId: string,\n candidates: string[],\n): string | null {\n for (const candidate of candidates) {\n if (existsSync(join(candidate, listId))) return candidate\n }\n return null\n}\n\nfunction getTaskListContext(options?: {\n listId?: string\n cwd?: string\n env?: NodeJS.ProcessEnv\n projectConfig?: ProjectConfig | null\n globalConfig?: GlobalConfig | null\n}): TaskListContext {\n const env = options?.env ?? process.env\n const globalConfig = options?.globalConfig ?? getGlobalConfig()\n const projectConfig = options?.projectConfig ?? getCurrentProjectConfig()\n const cwd = options?.cwd ?? getCwd()\n const defaultId = getDefaultTaskListId(cwd)\n const inputListId = options?.listId?.trim()\n\n const envId =\n env.PYB_TASK_LIST_ID?.trim() || env.CLAUDE_CODE_TASK_LIST_ID?.trim()\n const globalId = globalConfig?.taskListId?.trim()\n const projectId = projectConfig?.taskListId?.trim()\n\n if (inputListId) {\n if (inputListId === projectId || inputListId === defaultId) {\n return { listId: inputListId, scope: 'project', source: 'input' }\n }\n if (inputListId === globalId || inputListId === envId) {\n return { listId: inputListId, scope: 'global', source: 'input' }\n }\n return { listId: inputListId, scope: 'project', source: 'input' }\n }\n\n if (envId) return { listId: envId, scope: 'global', source: 'env' }\n if (globalId) return { listId: globalId, scope: 'global', source: 'global' }\n if (projectId) return { listId: projectId, scope: 'project', source: 'project' }\n\n return { listId: defaultId, scope: 'project', source: 'default' }\n}\n\nexport function getTaskListId(options?: {\n cwd?: string\n env?: NodeJS.ProcessEnv\n projectConfig?: ProjectConfig | null\n globalConfig?: GlobalConfig | null\n}): string {\n return getTaskListContext(options).listId\n}\n\nexport function getTaskNextId(options?: { listId?: string }): number {\n const paths = getTaskListPaths(options?.listId)\n const index = readIndex(paths)\n return index.nextId\n}\n\nfunction resolveTaskBaseDir(context: TaskListContext, cwd: string): string {\n if (context.scope === 'project') {\n const pybDir = join(cwd, '.pyb')\n const claudeDir = join(cwd, '.claude')\n const hasProjectPyb = existsSync(pybDir)\n const hasProjectClaude = existsSync(claudeDir)\n const projectRoot = hasProjectPyb ? pybDir : hasProjectClaude ? claudeDir : pybDir\n const override = process.env.PYB_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR\n const defaultBaseDir =\n !hasProjectPyb && !hasProjectClaude && override\n ? join(override, 'tasks')\n : join(projectRoot, 'tasks')\n const candidates = [\n join(cwd, '.pyb', 'tasks'),\n join(cwd, '.claude', 'tasks'),\n ...(override ? [join(override, 'tasks')] : []),\n resolveXdgDataPath('tasks'),\n ]\n return findBaseDirWithList(context.listId, candidates) ?? defaultBaseDir\n }\n\n const override = process.env.PYB_CONFIG_DIR ?? process.env.CLAUDE_CONFIG_DIR\n const globalCandidates = override\n ? [join(override, 'tasks')]\n : [\n join(homedir(), '.pyb', 'tasks'),\n join(homedir(), '.claude', 'tasks'),\n ]\n const defaultBaseDir = join(resolveGlobalTaskRootDir(), 'tasks')\n const candidates = [...globalCandidates, resolveXdgDataPath('tasks')]\n return findBaseDirWithList(context.listId, candidates) ?? defaultBaseDir\n}\n\nexport function getTaskListPaths(listId?: string): {\n listId: string\n baseDir: string\n listDir: string\n tasksDir: string\n indexPath: string\n metaPath: string\n lockPath: string\n eventsPath: string\n} {\n const context = getTaskListContext({ listId })\n const cwd = getCwd()\n const baseDir = resolveTaskBaseDir(context, cwd)\n const listDir = join(baseDir, context.listId)\n return {\n listId: context.listId,\n baseDir,\n listDir,\n tasksDir: listDir,\n indexPath: join(listDir, 'index.json'),\n metaPath: join(listDir, 'meta.json'),\n lockPath: join(listDir, '.lock'),\n eventsPath: join(listDir, 'events.jsonl'),\n }\n}\n\nfunction ensureTaskListDirs(paths: ReturnType<typeof getTaskListPaths>): void {\n mkdirSync(paths.listDir, { recursive: true })\n}\n\nfunction defaultIndex(): TaskIndex {\n return {\n nextId: 1,\n total: 0,\n byStatus: {\n pending: 0,\n in_progress: 0,\n blocked: 0,\n done: 0,\n archived: 0,\n },\n lastUpdated: Date.now(),\n }\n}\n\nfunction readJson<T>(path: string): T | null {\n if (!existsSync(path)) return null\n try {\n const raw = readFileSync(path, 'utf8')\n return JSON.parse(raw) as T\n } catch {\n return null\n }\n}\n\nfunction writeJson(path: string, value: unknown): void {\n writeFileSync(path, JSON.stringify(value, null, 2), 'utf8')\n}\n\nexport type TaskEventRecord = {\n listId: string\n taskId: string\n type: 'task.created' | 'task.updated'\n timestamp: number\n}\n\nfunction appendTaskEvent(\n paths: ReturnType<typeof getTaskListPaths>,\n event: TaskEventRecord,\n): void {\n ensureTaskListDirs(paths)\n writeFileSync(paths.eventsPath, `${JSON.stringify(event)}\\n`, {\n encoding: 'utf8',\n flag: 'a',\n })\n}\n\nexport function readTaskEventLog(\n listId?: string,\n offset: number = 0,\n): { events: TaskEventRecord[]; nextOffset: number } {\n const paths = getTaskListPaths(listId)\n if (!existsSync(paths.eventsPath)) {\n return { events: [], nextOffset: 0 }\n }\n const buffer = readFileSync(paths.eventsPath)\n const nextOffset = buffer.length\n if (offset >= nextOffset) {\n return { events: [], nextOffset }\n }\n const chunk = buffer.toString('utf8', offset)\n const events: TaskEventRecord[] = []\n for (const line of chunk.split('\\n')) {\n if (!line.trim()) continue\n try {\n const parsed = JSON.parse(line) as TaskEventRecord\n if (parsed.listId && parsed.taskId && parsed.type && parsed.timestamp) {\n events.push(parsed)\n }\n } catch {\n continue\n }\n }\n return { events, nextOffset }\n}\n\nfunction readIndex(paths: ReturnType<typeof getTaskListPaths>): TaskIndex {\n const index = readJson<{\n nextId?: number\n total?: number\n byStatus?: Record<string, number>\n lastUpdated?: number\n }>(paths.indexPath)\n if (index && typeof index.nextId === 'number' && index.nextId >= 1) {\n const byStatus = index.byStatus ?? {}\n const pending =\n typeof byStatus.pending === 'number'\n ? byStatus.pending\n : typeof byStatus.open === 'number'\n ? byStatus.open\n : 0\n return {\n nextId: index.nextId,\n total: typeof index.total === 'number' ? index.total : 0,\n byStatus: {\n pending,\n in_progress:\n typeof byStatus.in_progress === 'number' ? byStatus.in_progress : 0,\n blocked: typeof byStatus.blocked === 'number' ? byStatus.blocked : 0,\n done: typeof byStatus.done === 'number' ? byStatus.done : 0,\n archived: typeof byStatus.archived === 'number' ? byStatus.archived : 0,\n },\n lastUpdated:\n typeof index.lastUpdated === 'number' ? index.lastUpdated : Date.now(),\n }\n }\n return recoverIndex(paths)\n}\n\nfunction writeIndex(paths: ReturnType<typeof getTaskListPaths>, index: TaskIndex) {\n writeJson(paths.indexPath, index)\n}\n\nfunction readMeta(paths: ReturnType<typeof getTaskListPaths>): TaskListMeta {\n ensureTaskListDirs(paths)\n const meta = readJson<TaskListMeta>(paths.metaPath)\n if (meta && meta.listId) return meta\n const now = Date.now()\n const created: TaskListMeta = {\n listId: paths.listId,\n createdAt: now,\n updatedAt: now,\n }\n writeJson(paths.metaPath, created)\n return created\n}\n\nfunction writeMeta(\n paths: ReturnType<typeof getTaskListPaths>,\n meta: TaskListMeta,\n): void {\n ensureTaskListDirs(paths)\n writeJson(paths.metaPath, meta)\n}\n\nfunction readTaskFile(path: string): TaskRecord | null {\n const data = readJson<\n Partial<Omit<TaskRecord, 'status'>> & {\n status?: TaskStatusInput | string\n title?: string\n version?: number\n }\n >(path)\n if (!data || !data.id || (!data.subject && !data.title) || !data.status) {\n return null\n }\n const status = data.status === 'open' ? 'pending' : data.status\n if (\n status !== 'pending' &&\n status !== 'in_progress' &&\n status !== 'blocked' &&\n status !== 'done' &&\n status !== 'archived'\n ) {\n return null\n }\n const subject = data.subject ?? data.title\n const activeForm = data.activeForm\n const baseVersion =\n typeof data.baseVersion === 'number'\n ? data.baseVersion\n : typeof data.version === 'number'\n ? data.version\n : 1\n const version = typeof data.version === 'number' ? data.version : baseVersion\n const createdAt =\n typeof data.createdAt === 'number' ? data.createdAt : Date.now()\n const updatedAt =\n typeof data.updatedAt === 'number' ? data.updatedAt : createdAt\n const normalized: TaskRecord = {\n id: data.id,\n subject,\n description: data.description,\n activeForm,\n status,\n tags: data.tags,\n assignee: data.assignee,\n metadata: data.metadata,\n archived: data.archived,\n blocks: data.blocks ?? [],\n blockedBy: data.blockedBy ?? [],\n parent: data.parent,\n related: data.related ?? [],\n createdAt,\n updatedAt,\n baseVersion,\n version,\n legacyTodoId: data.legacyTodoId,\n }\n delete (normalized as any).priority\n return normalized\n}\n\nfunction deriveBlocks(tasks: TaskRecord[]): Map<string, string[]> {\n const map = new Map<string, string[]>()\n for (const task of tasks) {\n map.set(task.id, [])\n }\n for (const task of tasks) {\n const blockers = task.blockedBy ?? []\n for (const blockerId of blockers) {\n const list = map.get(blockerId)\n if (list) {\n list.push(task.id)\n } else {\n map.set(blockerId, [task.id])\n }\n }\n }\n for (const [key, list] of map.entries()) {\n map.set(\n key,\n list.sort((a, b) => Number(a) - Number(b)),\n )\n }\n return map\n}\n\nfunction areBlocksEqual(a: string[] | undefined, b: string[] | undefined): boolean {\n const left = a ?? []\n const right = b ?? []\n if (left.length !== right.length) return false\n for (let i = 0; i < left.length; i += 1) {\n if (left[i] !== right[i]) return false\n }\n return true\n}\n\nfunction readTasksFromDisk(paths: ReturnType<typeof getTaskListPaths>): TaskRecord[] {\n const files = readdirSync(paths.tasksDir).filter(file => file.endsWith('.json'))\n return files\n .map(file => readTaskFile(join(paths.tasksDir, file)))\n .filter(Boolean) as TaskRecord[]\n}\n\nfunction applyBlocksMap(\n tasks: TaskRecord[],\n map: Map<string, string[]>,\n): TaskRecord[] {\n return tasks.map(task => ({\n ...task,\n blocks: map.get(task.id) ?? [],\n }))\n}\n\nfunction persistBlocksMap(\n paths: ReturnType<typeof getTaskListPaths>,\n map: Map<string, string[]>,\n): number {\n ensureTaskListDirs(paths)\n const files = readdirSync(paths.tasksDir).filter(file => file.endsWith('.json'))\n let updated = 0\n for (const file of files) {\n const path = join(paths.tasksDir, file)\n const raw = readJson<Partial<TaskRecord>>(path)\n if (!raw || !raw.id) continue\n const nextBlocks = map.get(raw.id) ?? []\n const currentBlocks = Array.isArray(raw.blocks) ? raw.blocks : []\n if (areBlocksEqual(currentBlocks, nextBlocks)) continue\n raw.blocks = nextBlocks\n writeJson(path, raw)\n updated += 1\n }\n return updated\n}\n\nfunction rebuildBlocksForPaths(paths: ReturnType<typeof getTaskListPaths>): {\n tasks: TaskRecord[]\n updated: number\n} {\n const tasks = readTasksFromDisk(paths)\n const map = deriveBlocks(tasks)\n const updated = persistBlocksMap(paths, map)\n return { tasks: applyBlocksMap(tasks, map), updated }\n}\n\nfunction recoverIndex(paths: ReturnType<typeof getTaskListPaths>): TaskIndex {\n ensureTaskListDirs(paths)\n const files = readdirSync(paths.tasksDir).filter(file => file.endsWith('.json'))\n const tasks = files\n .map(file => readTaskFile(join(paths.tasksDir, file)))\n .filter(Boolean) as TaskRecord[]\n const byStatus = {\n pending: 0,\n in_progress: 0,\n blocked: 0,\n done: 0,\n archived: 0,\n }\n let maxId = 0\n for (const task of tasks) {\n byStatus[task.status] += 1\n const numericId = Number(task.id)\n if (!Number.isNaN(numericId)) {\n maxId = Math.max(maxId, numericId)\n }\n }\n const index: TaskIndex = {\n nextId: Math.max(1, maxId + 1),\n total: tasks.length,\n byStatus,\n lastUpdated: Date.now(),\n }\n writeIndex(paths, index)\n return index\n}\n\nfunction readLock(\n path: string,\n): { createdAt: number; expiresAt: number } | null {\n const lock = readJson<{ createdAt: number; expiresAt: number }>(path)\n if (!lock || !lock.createdAt || !lock.expiresAt) return null\n return lock\n}\n\nfunction isLockExpired(lock: { expiresAt: number }): boolean {\n return lock.expiresAt <= Date.now()\n}\n\nfunction acquireLock(paths: ReturnType<typeof getTaskListPaths>): void {\n ensureTaskListDirs(paths)\n const lock = readLock(paths.lockPath)\n if (lock && !isLockExpired(lock)) {\n throw new TaskStoreLockError('Task list is locked')\n }\n if (lock && isLockExpired(lock)) {\n rmSync(paths.lockPath, { force: true })\n }\n const now = Date.now()\n try {\n writeFileSync(\n paths.lockPath,\n JSON.stringify(\n {\n createdAt: now,\n expiresAt: now + DEFAULT_LOCK_TTL_MS,\n },\n null,\n 2,\n ),\n { encoding: 'utf8', flag: 'wx' },\n )\n } catch {\n throw new TaskStoreLockError('Task list is locked')\n }\n}\n\nfunction releaseLock(paths: ReturnType<typeof getTaskListPaths>): void {\n rmSync(paths.lockPath, { force: true })\n}\n\nfunction withTaskListLock<T>(\n paths: ReturnType<typeof getTaskListPaths>,\n handler: () => T,\n): T {\n acquireLock(paths)\n try {\n return handler()\n } finally {\n releaseLock(paths)\n }\n}\n\nfunction applyTaskUpdates(\n task: TaskRecord,\n updates: TaskUpdateInput,\n nextBaseVersion: number,\n): TaskRecord {\n const now = updates.updatedAt ?? Date.now()\n const subject = updates.subject ?? task.subject\n const activeForm = updates.activeForm ?? task.activeForm\n const blockedBy = updates.blockedBy ?? task.blockedBy ?? []\n const nextStatus = updates.status ?? task.status\n const status = nextStatus === 'open' ? task.status : nextStatus\n return {\n ...task,\n subject,\n description: updates.description ?? task.description,\n activeForm,\n status,\n tags: updates.tags ?? task.tags,\n assignee: updates.assignee ?? task.assignee,\n metadata: updates.metadata ?? task.metadata,\n archived: updates.archived ?? task.archived,\n blocks: task.blocks ?? [],\n blockedBy,\n parent: updates.parent ?? task.parent,\n related: updates.related ?? task.related,\n updatedAt: now,\n baseVersion: nextBaseVersion,\n version: nextBaseVersion,\n legacyTodoId: updates.legacyTodoId ?? task.legacyTodoId,\n }\n}\n\nexport function createTask(\n input: TaskCreateInput,\n options?: { listId?: string },\n): TaskRecord {\n if (input.status === 'open') {\n throw new Error('Task status open is not supported')\n }\n const paths = getTaskListPaths(options?.listId)\n return withTaskListLock(paths, () => {\n ensureTaskListDirs(paths)\n const index = readIndex(paths)\n const id = String(index.nextId)\n const now = Date.now()\n const subject = input.subject\n if (!subject) {\n throw new Error('Task subject is required')\n }\n if (!input.activeForm) {\n throw new Error('Task activeForm is required')\n }\n const activeForm = input.activeForm\n const status = input.status ?? 'pending'\n if (status === 'open') {\n throw new Error('Task status open is not supported')\n }\n const record: TaskRecord = {\n id,\n subject,\n description: input.description,\n activeForm,\n status,\n tags: input.tags,\n assignee: input.assignee,\n metadata: input.metadata,\n archived: input.archived,\n blocks: [],\n blockedBy: input.blockedBy ?? [],\n parent: input.parent,\n related: input.related,\n createdAt: now,\n updatedAt: now,\n baseVersion: 1,\n version: 1,\n legacyTodoId: input.legacyTodoId,\n }\n writeJson(join(paths.tasksDir, `${id}.json`), record)\n index.nextId += 1\n index.total += 1\n index.byStatus[record.status] += 1\n index.lastUpdated = Date.now()\n writeIndex(paths, index)\n const meta = readMeta(paths)\n meta.updatedAt = Date.now()\n writeMeta(paths, meta)\n appendTaskEvent(paths, {\n listId: paths.listId,\n taskId: record.id,\n type: 'task.created',\n timestamp: Date.now(),\n })\n const { tasks } = rebuildBlocksForPaths(paths)\n const refreshed = tasks.find(task => task.id === record.id)\n return refreshed ?? record\n })\n}\n\nexport function getTask(\n id: string,\n options?: { listId?: string },\n): TaskRecord | null {\n const tasks = listTasks(options)\n return tasks.find(task => task.id === id) ?? null\n}\n\nexport function listTasks(options?: { listId?: string }): TaskRecord[] {\n const paths = getTaskListPaths(options?.listId)\n readIndex(paths)\n ensureTaskListDirs(paths)\n const tasks = readTasksFromDisk(paths)\n const map = deriveBlocks(tasks)\n const derived = applyBlocksMap(tasks, map)\n const needsPersist = tasks.some(task => {\n const nextBlocks = map.get(task.id) ?? []\n return !areBlocksEqual(task.blocks, nextBlocks)\n })\n const ready = needsPersist\n ? withTaskListLock(paths, () => rebuildBlocksForPaths(paths).tasks)\n : derived\n return ready.sort((a, b) => Number(a.id) - Number(b.id))\n}\n\nexport function updateTask(\n id: string,\n updates: TaskUpdateInput,\n options?: { listId?: string; allowMerge?: boolean },\n): TaskUpdateResult {\n if (updates.status === 'open') {\n throw new Error('Task status open is not supported')\n }\n const paths = getTaskListPaths(options?.listId)\n return withTaskListLock(paths, () => {\n const existing = readTaskFile(join(paths.tasksDir, `${id}.json`))\n if (!existing) {\n throw new Error(`Task ${id} not found`)\n }\n const requestedBase = updates.baseVersion\n const hasConflict =\n typeof requestedBase === 'number' &&\n requestedBase !== existing.baseVersion\n if (hasConflict && !options?.allowMerge) {\n throw new TaskStoreConflictError({\n taskId: id,\n expected: requestedBase,\n actual: existing.baseVersion,\n })\n }\n if (hasConflict && options?.allowMerge) {\n const updateTimestamp = updates.updatedAt ?? Date.now()\n if (updateTimestamp <= existing.updatedAt) {\n return { task: existing, conflict: true }\n }\n }\n const nextBaseVersion = existing.baseVersion + 1\n const updated = applyTaskUpdates(existing, updates, nextBaseVersion)\n writeJson(join(paths.tasksDir, `${id}.json`), updated)\n const index = readIndex(paths)\n if (updated.status !== existing.status) {\n index.byStatus[existing.status] = Math.max(\n 0,\n index.byStatus[existing.status] - 1,\n )\n index.byStatus[updated.status] += 1\n }\n index.lastUpdated = Date.now()\n writeIndex(paths, index)\n const meta = readMeta(paths)\n meta.updatedAt = Date.now()\n writeMeta(paths, meta)\n appendTaskEvent(paths, {\n listId: paths.listId,\n taskId: updated.id,\n type: 'task.updated',\n timestamp: Date.now(),\n })\n const { tasks } = rebuildBlocksForPaths(paths)\n const refreshed = tasks.find(task => task.id === updated.id)\n return { task: refreshed ?? updated, conflict: hasConflict }\n })\n}\n\nexport function rebuildTaskBlocks(options?: { listId?: string }): {\n updated: number\n total: number\n} {\n const paths = getTaskListPaths(options?.listId)\n return withTaskListLock(paths, () => {\n readIndex(paths)\n ensureTaskListDirs(paths)\n const { tasks, updated } = rebuildBlocksForPaths(paths)\n return { updated, total: tasks.length }\n })\n}\n\nexport function getTaskListMeta(options?: { listId?: string }): TaskListMeta {\n const paths = getTaskListPaths(options?.listId)\n return readMeta(paths)\n}\n\nexport function updateTaskListMeta(\n meta: TaskListMeta,\n options?: { listId?: string },\n): TaskListMeta {\n const paths = getTaskListPaths(options?.listId)\n const updated = { ...meta, updatedAt: Date.now() }\n writeMeta(paths, updated)\n return updated\n}\n", "import { setSessionState, getSessionState } from './sessionState'\nimport { readAgentData, writeAgentData, resolveAgentId } from '@utils/agent/storage'\nimport {\n createTask,\n getTaskListMeta,\n getTaskListPaths,\n listTasks,\n TaskStatus,\n updateTask,\n updateTaskListMeta,\n} from './taskStore'\n\nexport interface TodoItem {\n id: string\n content: string\n status: 'pending' | 'in_progress' | 'completed'\n activeForm: string\n priority: 'high' | 'medium' | 'low'\n createdAt?: number\n updatedAt?: number\n tags?: string[]\n estimatedHours?: number\n previousStatus?: 'pending' | 'in_progress' | 'completed'\n}\n\nexport interface TodoQuery {\n status?: TodoItem['status'][]\n priority?: TodoItem['priority'][]\n contentMatch?: string\n tags?: string[]\n dateRange?: { from?: Date; to?: Date }\n}\n\nexport interface TodoStorageConfig {\n maxTodos: number\n autoArchiveCompleted: boolean\n sortBy: 'createdAt' | 'updatedAt' | 'priority' | 'status'\n sortOrder: 'asc' | 'desc'\n}\n\nconst TODO_STORAGE_KEY = 'todos'\nconst TODO_CONFIG_KEY = 'todoConfig'\nconst TODO_CACHE_KEY = 'todoCache'\n\nconst DEFAULT_CONFIG: TodoStorageConfig = {\n maxTodos: 100,\n autoArchiveCompleted: false,\n sortBy: 'status',\n sortOrder: 'desc',\n}\n\nlet todoCache: TodoItem[] | null = null\nlet cacheTimestamp = 0\nconst CACHE_TTL = 5000\n\nexport function isTodoCompatEnabled(env: NodeJS.ProcessEnv = process.env): boolean {\n const raw = String(\n env.PYB_TODO_COMPAT ?? env.CLAUDE_CODE_TODO_COMPAT ?? '',\n )\n .trim()\n .toLowerCase()\n if (!raw) return false\n if (['0', 'false', 'no', 'off'].includes(raw)) return false\n if (['1', 'true', 'yes', 'on'].includes(raw)) return true\n return true\n}\n\nfunction toTaskStatus(status: TodoItem['status']): TaskStatus {\n if (status === 'completed') return 'done'\n if (status === 'in_progress') return 'in_progress'\n return 'pending'\n}\n\nexport function syncTodosToTasks(\n todos: TodoItem[],\n options?: { listId?: string },\n): { listId: string; created: number; updated: number } {\n const { listId } = getTaskListPaths(options?.listId)\n const tasks = listTasks({ listId })\n const byLegacyId = new Map(\n tasks\n .filter(task => task.legacyTodoId)\n .map(task => [task.legacyTodoId as string, task]),\n )\n let created = 0\n let updated = 0\n for (const todo of todos) {\n const existing = byLegacyId.get(todo.id)\n if (!existing) {\n createTask(\n {\n subject: todo.content,\n description: todo.content,\n activeForm: todo.activeForm,\n status: toTaskStatus(todo.status),\n legacyTodoId: todo.id,\n },\n { listId },\n )\n created += 1\n } else {\n updateTask(\n existing.id,\n {\n subject: todo.content,\n description: todo.content,\n activeForm: todo.activeForm,\n status: toTaskStatus(todo.status),\n legacyTodoId: todo.id,\n },\n { listId, allowMerge: true },\n )\n updated += 1\n }\n }\n return { listId, created, updated }\n}\n\nexport function migrateTodosToTasks(options?: {\n listId?: string\n agentId?: string\n}): { listId: string; migrated: boolean; created: number } {\n const { listId } = getTaskListPaths(options?.listId)\n const meta = getTaskListMeta({ listId })\n if (meta.todoMigration?.completedAt) {\n return { listId, migrated: false, created: 0 }\n }\n const todos = getTodos(options?.agentId)\n const result = syncTodosToTasks(todos, { listId })\n updateTaskListMeta(\n {\n ...meta,\n todoMigration: {\n completedAt: Date.now(),\n sourceCount: todos.length,\n },\n },\n { listId },\n )\n return { listId, migrated: true, created: result.created }\n}\n\nexport function getTodoCompatSnapshot(options?: {\n listId?: string\n agentId?: string\n}): { listId: string; todos: TodoItem[]; tasks: ReturnType<typeof listTasks> } {\n const { listId } = getTaskListPaths(options?.listId)\n return {\n listId,\n todos: getTodos(options?.agentId),\n tasks: listTasks({ listId }),\n }\n}\n\nexport interface TodoMetrics {\n totalOperations: number\n cacheHits: number\n cacheMisses: number\n lastOperation: number\n}\n\nfunction invalidateCache(): void {\n todoCache = null\n cacheTimestamp = 0\n}\n\nfunction updateMetrics(operation: string, cacheHit: boolean = false): void {\n const sessionState = getSessionState() as any\n const metrics = sessionState.todoMetrics || {\n totalOperations: 0,\n cacheHits: 0,\n cacheMisses: 0,\n lastOperation: 0,\n }\n\n metrics.totalOperations++\n metrics.lastOperation = Date.now()\n\n if (cacheHit) {\n metrics.cacheHits++\n } else {\n metrics.cacheMisses++\n }\n\n setSessionState({\n ...sessionState,\n todoMetrics: metrics,\n })\n}\n\nexport function getTodoMetrics(): TodoMetrics {\n const sessionState = getSessionState() as any\n return (\n sessionState.todoMetrics || {\n totalOperations: 0,\n cacheHits: 0,\n cacheMisses: 0,\n lastOperation: 0,\n }\n )\n}\n\nexport function getTodos(agentId?: string): TodoItem[] {\n const resolvedAgentId = resolveAgentId(agentId)\n const now = Date.now()\n\n if (agentId) {\n updateMetrics('getTodos', false)\n const agentTodos = readAgentData<TodoItem[]>(resolvedAgentId) || []\n\n const agentCacheKey = `todoCache_${resolvedAgentId}`\n\n return agentTodos.map(todo => ({\n ...todo,\n activeForm: todo.activeForm || todo.content,\n }))\n }\n\n if (todoCache && now - cacheTimestamp < CACHE_TTL) {\n updateMetrics('getTodos', true)\n return todoCache.map(todo => ({\n ...todo,\n activeForm: todo.activeForm || todo.content,\n }))\n }\n\n updateMetrics('getTodos', false)\n const sessionState = getSessionState()\n const todos = (sessionState as any)[TODO_STORAGE_KEY] || []\n\n todoCache = [...todos].map((todo: TodoItem) => ({\n ...todo,\n activeForm: todo.activeForm || todo.content,\n }))\n cacheTimestamp = now\n\n return todoCache\n}\n\nexport function setTodos(todos: TodoItem[], agentId?: string): void {\n const resolvedAgentId = resolveAgentId(agentId)\n const config = getTodoConfig()\n const existingTodos = getTodos(agentId)\n\n if (agentId) {\n if (todos.length > config.maxTodos) {\n throw new Error(\n `Todo limit exceeded. Maximum ${config.maxTodos} todos allowed.`,\n )\n }\n\n let processedTodos = todos\n if (config.autoArchiveCompleted) {\n processedTodos = todos.filter(todo => todo.status !== 'completed')\n }\n\n const updatedTodos = processedTodos.map(todo => {\n const existingTodo = existingTodos.find(\n existing => existing.id === todo.id,\n )\n\n return {\n ...todo,\n activeForm: todo.activeForm || todo.content,\n updatedAt: Date.now(),\n createdAt: todo.createdAt || Date.now(),\n previousStatus:\n existingTodo?.status !== todo.status\n ? existingTodo?.status\n : todo.previousStatus,\n }\n })\n\n writeAgentData(resolvedAgentId, updatedTodos)\n updateMetrics('setTodos')\n return\n }\n\n if (todos.length > config.maxTodos) {\n throw new Error(\n `Todo limit exceeded. Maximum ${config.maxTodos} todos allowed.`,\n )\n }\n\n let processedTodos = todos\n if (config.autoArchiveCompleted) {\n processedTodos = todos.filter(todo => todo.status !== 'completed')\n }\n\n const updatedTodos = processedTodos.map(todo => {\n const existingTodo = existingTodos.find(existing => existing.id === todo.id)\n\n return {\n ...todo,\n activeForm: todo.activeForm || todo.content,\n updatedAt: Date.now(),\n createdAt: todo.createdAt || Date.now(),\n previousStatus:\n existingTodo?.status !== todo.status\n ? existingTodo?.status\n : todo.previousStatus,\n }\n })\n\n setSessionState({\n ...getSessionState(),\n [TODO_STORAGE_KEY]: updatedTodos,\n } as any)\n\n invalidateCache()\n updateMetrics('setTodos')\n}\n\nexport function getTodoConfig(): TodoStorageConfig {\n const sessionState = getSessionState() as any\n return { ...DEFAULT_CONFIG, ...(sessionState[TODO_CONFIG_KEY] || {}) }\n}\n\nexport function setTodoConfig(config: Partial<TodoStorageConfig>): void {\n const currentConfig = getTodoConfig()\n const newConfig = { ...currentConfig, ...config }\n\n setSessionState({\n ...getSessionState(),\n [TODO_CONFIG_KEY]: newConfig,\n } as any)\n\n if (config.sortBy || config.sortOrder) {\n const todos = getTodos()\n setTodos(todos)\n }\n}\n\nexport function addTodo(\n todo: Omit<TodoItem, 'createdAt' | 'updatedAt'>,\n): TodoItem[] {\n const todos = getTodos()\n\n if (todos.some(existing => existing.id === todo.id)) {\n throw new Error(`Todo with ID '${todo.id}' already exists`)\n }\n\n const newTodo: TodoItem = {\n ...todo,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n }\n\n const updatedTodos = [...todos, newTodo]\n setTodos(updatedTodos)\n updateMetrics('addTodo')\n return updatedTodos\n}\n\nexport function updateTodo(id: string, updates: Partial<TodoItem>): TodoItem[] {\n const todos = getTodos()\n const existingTodo = todos.find(todo => todo.id === id)\n\n if (!existingTodo) {\n throw new Error(`Todo with ID '${id}' not found`)\n }\n\n const updatedTodos = todos.map(todo =>\n todo.id === id ? { ...todo, ...updates, updatedAt: Date.now() } : todo,\n )\n\n setTodos(updatedTodos)\n updateMetrics('updateTodo')\n return updatedTodos\n}\n\nexport function deleteTodo(id: string): TodoItem[] {\n const todos = getTodos()\n const todoExists = todos.some(todo => todo.id === id)\n\n if (!todoExists) {\n throw new Error(`Todo with ID '${id}' not found`)\n }\n\n const updatedTodos = todos.filter(todo => todo.id !== id)\n setTodos(updatedTodos)\n updateMetrics('deleteTodo')\n return updatedTodos\n}\n\nexport function clearTodos(): void {\n setTodos([])\n updateMetrics('clearTodos')\n}\n\nexport function getTodoById(id: string): TodoItem | undefined {\n const todos = getTodos()\n updateMetrics('getTodoById')\n return todos.find(todo => todo.id === id)\n}\n\nexport function getTodosByStatus(status: TodoItem['status']): TodoItem[] {\n const todos = getTodos()\n updateMetrics('getTodosByStatus')\n return todos.filter(todo => todo.status === status)\n}\n\nexport function getTodosByPriority(priority: TodoItem['priority']): TodoItem[] {\n const todos = getTodos()\n updateMetrics('getTodosByPriority')\n return todos.filter(todo => todo.priority === priority)\n}\n\nexport function queryTodos(query: TodoQuery): TodoItem[] {\n const todos = getTodos()\n updateMetrics('queryTodos')\n\n return todos.filter(todo => {\n if (query.status && !query.status.includes(todo.status)) {\n return false\n }\n\n if (query.priority && !query.priority.includes(todo.priority)) {\n return false\n }\n\n if (\n query.contentMatch &&\n !todo.content.toLowerCase().includes(query.contentMatch.toLowerCase())\n ) {\n return false\n }\n\n if (query.tags && todo.tags) {\n const hasMatchingTag = query.tags.some(tag => todo.tags!.includes(tag))\n if (!hasMatchingTag) return false\n }\n\n if (query.dateRange) {\n const todoDate = new Date(todo.createdAt || 0)\n if (query.dateRange.from && todoDate < query.dateRange.from) return false\n if (query.dateRange.to && todoDate > query.dateRange.to) return false\n }\n\n return true\n })\n}\n\nexport function getTodoStatistics() {\n const todos = getTodos()\n const metrics = getTodoMetrics()\n\n return {\n total: todos.length,\n byStatus: {\n pending: todos.filter(t => t.status === 'pending').length,\n in_progress: todos.filter(t => t.status === 'in_progress').length,\n completed: todos.filter(t => t.status === 'completed').length,\n },\n byPriority: {\n high: todos.filter(t => t.priority === 'high').length,\n medium: todos.filter(t => t.priority === 'medium').length,\n low: todos.filter(t => t.priority === 'low').length,\n },\n metrics,\n cacheEfficiency:\n metrics.totalOperations > 0\n ? Math.round((metrics.cacheHits / metrics.totalOperations) * 100)\n : 0,\n }\n}\n\nexport function optimizeTodoStorage(): void {\n invalidateCache()\n\n const todos = getTodos()\n const validTodos = todos.filter(\n todo =>\n todo.id &&\n todo.content &&\n todo.activeForm &&\n ['pending', 'in_progress', 'completed'].includes(todo.status) &&\n ['high', 'medium', 'low'].includes(todo.priority),\n )\n\n if (validTodos.length !== todos.length) {\n setTodos(validTodos)\n }\n\n updateMetrics('optimizeTodoStorage')\n}\n", "import { getTodos, TodoItem } from '@utils/session/todoStorage'\nimport { 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 todoEmptyReminder: boolean\n securityReminder: boolean\n performanceReminder: boolean\n maxRemindersPerSession: number\n}\n\ninterface SessionReminderState {\n lastTodoUpdate: number\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 lastTodoUpdate: 0,\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 todoEmptyReminder: true,\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 const currentTime = Date.now()\n\n const reminderGenerators = [\n () => this.dispatchTodoEvent(agentId),\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 dispatchTodoEvent(agentId?: string): ReminderMessage | null {\n if (!this.sessionState.config.todoEmptyReminder) return null\n\n const todos = getTodos(agentId)\n const currentTime = Date.now()\n const agentKey = agentId || 'default'\n\n if (\n todos.length === 0 &&\n !this.sessionState.remindersSent.has(`todo_empty_${agentKey}`)\n ) {\n this.sessionState.remindersSent.add(`todo_empty_${agentKey}`)\n return this.createReminderMessage(\n 'todo',\n 'task',\n 'medium',\n 'This is a reminder that your task list is currently empty. DO NOT mention this to the user explicitly because they are already aware. If you are working on tasks that would benefit from a structured plan, use TaskCreate to seed tasks and TaskUpdate to track progress. Use TaskList to review readiness. If not, please feel free to ignore. Again do not mention this message to the user.',\n currentTime,\n )\n }\n\n if (todos.length > 0) {\n const reminderKey = `todo_updated_${agentKey}_${todos.length}_${this.getTodoStateHash(todos)}`\n\n if (this.reminderCache.has(reminderKey)) {\n return this.reminderCache.get(reminderKey)!\n }\n\n if (!this.sessionState.remindersSent.has(reminderKey)) {\n this.sessionState.remindersSent.add(reminderKey)\n this.clearTodoReminders(agentKey)\n\n const todoContent = JSON.stringify(\n todos.map(todo => ({\n content:\n todo.content.length > 100\n ? todo.content.substring(0, 100) + '...'\n : todo.content,\n status: todo.status,\n activeForm:\n todo.activeForm && todo.activeForm.length > 100\n ? todo.activeForm.substring(0, 100) + '...'\n : todo.activeForm || todo.content,\n })),\n )\n\n const reminder = this.createReminderMessage(\n 'todo',\n 'task',\n 'medium',\n `Your task items have changed. DO NOT mention this explicitly to the user. Here are the latest contents of your tracked items:\\n\\n${todoContent}. Use TaskList to review readiness and TaskUpdate to adjust status if needed.`,\n currentTime,\n )\n\n this.reminderCache.set(reminderKey, reminder)\n return reminder\n }\n }\n\n return null\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 getTodoStateHash(todos: TodoItem[]): string {\n return todos\n .map(t => `${t.content}:${t.status}:${t.activeForm || t.content}`)\n .sort()\n .join('|')\n }\n\n private clearTodoReminders(agentId?: string): void {\n const agentKey = agentId || 'default'\n for (const key of this.sessionState.remindersSent) {\n if (key.startsWith(`todo_updated_${agentKey}_`)) {\n this.sessionState.remindersSent.delete(key)\n }\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.archived}`\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}, Archived: ${summary.archived}.`,\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 createTaskConflictReminder(context: any): ReminderMessage | null {\n const { listId, taskId } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_conflict_${listId}_${taskId}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_conflict',\n 'task',\n 'high',\n `Task update conflict detected for ${taskId}. Refresh task data and retry updates with the latest baseVersion.`,\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}_${task?.baseVersion ?? ''}`\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('todo:changed', context => {\n this.sessionState.lastTodoUpdate = Date.now()\n this.clearTodoReminders(context.agentId)\n })\n\n this.addEventListener('todo:file_changed', context => {\n const agentId = context.agentId || 'default'\n this.clearTodoReminders(agentId)\n this.sessionState.lastTodoUpdate = Date.now()\n\n const reminder = this.generateFileChangeReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n agentId,\n type: 'file_changed',\n timestamp: Date.now(),\n })\n }\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:conflict_detected', context => {\n const key = `task_conflict_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n const reminder = this.createTaskConflictReminder(context)\n if (reminder) {\n this.emitEvent('reminder:inject', {\n reminder: reminder.content,\n listId: context.listId,\n type: 'task_conflict',\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 lastTodoUpdate: 0,\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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",
5
+ "mappings": "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",
6
6
  "names": ["existsSync", "mkdirSync", "readFileSync", "writeFileSync", "join", "join", "existsSync", "join", "existsSync", "override", "defaultBaseDir", "candidates", "mkdirSync", "existsSync", "readFileSync", "writeFileSync", "join", "processedTodos", "updatedTodos"]
7
7
  }
@@ -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-OWL5HCIC.js";
5
+ } from "./chunk-7FNDFUQH.js";
6
6
  import {
7
7
  parseFrontmatter
8
- } from "./chunk-4YDELOUA.js";
8
+ } from "./chunk-JF4AMPKU.js";
9
9
  import {
10
10
  getCwd
11
- } from "./chunk-XLEWRQCY.js";
11
+ } from "./chunk-UUGWQSET.js";
12
12
 
13
13
  // src/services/plugins/pluginValidation.ts
14
14
  import { existsSync, lstatSync, readFileSync } from "node:fs";
@@ -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-EZ6FYX4C.js";
5
+ } from "./chunk-XZNXY65J.js";
6
6
  import {
7
7
  getCurrentProjectConfig,
8
8
  getGlobalConfig,
9
9
  getOrCreateUserID,
10
10
  saveCurrentProjectConfig
11
- } from "./chunk-M3DAKW3P.js";
11
+ } from "./chunk-2U747SA5.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-XLEWRQCY.js";
19
+ } from "./chunk-UUGWQSET.js";
20
20
  import {
21
21
  MACRO
22
- } from "./chunk-PZE5YBBF.js";
22
+ } from "./chunk-YFBIVUDT.js";
23
23
  import {
24
24
  __require
25
25
  } from "./chunk-I3J4JYES.js";
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getCwd,
5
5
  logError
6
- } from "./chunk-XLEWRQCY.js";
6
+ } from "./chunk-UUGWQSET.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-EZ6FYX4C.js";
5
+ } from "./chunk-XZNXY65J.js";
6
6
  import {
7
7
  getCwd,
8
8
  logError
9
- } from "./chunk-XLEWRQCY.js";
9
+ } from "./chunk-UUGWQSET.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-XLEWRQCY.js";
12
+ } from "./chunk-UUGWQSET.js";
13
13
  import {
14
14
  MACRO
15
- } from "./chunk-PZE5YBBF.js";
15
+ } from "./chunk-YFBIVUDT.js";
16
16
 
17
17
  // src/utils/protocol/pybAgentSessionLog.ts
18
18
  import { execFileSync } from "child_process";
@@ -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-WB5USVP7.js");
451
+ const impl = await import("./userInput-3BYMTC52.js");
452
452
  return impl.processUserInput(input, mode, setToolJSX, context, pastedImages);
453
453
  }
454
454
 
@@ -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-PZE5YBBF.js";
5
+ } from "./chunk-YFBIVUDT.js";
6
6
 
7
7
  // src/utils/state/index.ts
8
8
  import { cwd } from "process";
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  SESSION_ID,
5
5
  resolveXdgCachePath
6
- } from "./chunk-XLEWRQCY.js";
6
+ } from "./chunk-UUGWQSET.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-XLEWRQCY.js";
7
+ } from "./chunk-UUGWQSET.js";
8
8
 
9
9
  // src/utils/system/ripgrep.ts
10
10
  import { findActualExecutable } from "spawn-rx";
@@ -4,7 +4,7 @@ const require = __pybCreateRequire(import.meta.url);
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "pybao-cli",
7
- version: "1.4.48",
7
+ version: "1.4.49",
8
8
  bin: {
9
9
  pyb: "cli.js",
10
10
  "pyb-acp": "cli-acp.js"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../package.json", "../src/constants/macros.ts"],
4
- "sourcesContent": ["{\n \"name\": \"pybao-cli\",\n \"version\": \"1.4.48\",\n \"bin\": {\n \"pyb\": \"cli.js\",\n \"pyb-acp\": \"cli-acp.js\"\n },\n \"engines\": {\n \"node\": \">=20.18.1\"\n },\n \"main\": \"cli.js\",\n \"author\": \"PYB-XC\",\n \"license\": \"MIT\",\n \"description\": \"PYB-CLI - Minimal AI Agent with multi-model support and CLI interface\",\n \"keywords\": [\n \"ai\",\n \"agent\",\n \"minimal\",\n \"claude\"\n ],\n \"homepage\": \"https://github.com/pyb-xc/pyb-ts\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/pyb-xc/pyb-ts.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/pyb-xc/pyb-ts/issues\"\n },\n \"files\": [\n \"cli.js\",\n \"cli-acp.js\",\n \"yoga.wasm\",\n \"dist/**/*\",\n \"scripts/binary-utils.cjs\",\n \"scripts/cli-wrapper.cjs\",\n \"scripts/cli-acp-wrapper.cjs\",\n \"scripts/postinstall.js\",\n \".npmrc\",\n \"resources/**/*\"\n ],\n \"scripts\": {\n \"dev\": \"bun run ./src/entrypoints/cli.tsx --verbose\",\n \"build:npm\": \"bun scripts/build.mjs\",\n \"build\": \"npm run build:npm\",\n \"build:binary\": \"node scripts/build-binary.mjs\",\n \"clean\": \"node scripts/clean.mjs\",\n \"prepublishOnly\": \"npm run build:npm && node scripts/prepublish-check.js\",\n \"postinstall\": \"node scripts/postinstall.js || true\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"lint\": \"eslint . --ext .ts,.tsx,.js --max-warnings 0\",\n \"lint:fix\": \"eslint . --ext .ts,.tsx,.js --fix\",\n \"test\": \"bun test\",\n \"test:unit\": \"bun test tests/unit\",\n \"test:integration\": \"bun test tests/integration\",\n \"test:e2e\": \"bun test tests/e2e\",\n \"typecheck\": \"tsc --noEmit\",\n \"prepare\": \"bun run scripts/install-hooks.mjs\",\n \"publish:dev\": \"bun run scripts/publish-dev.js\",\n \"publish:release\": \"bun run scripts/publish-release.js\",\n \"bench:startup\": \"bun run scripts/bench-startup.mjs\",\n \"parity:reference\": \"bun run scripts/reference-parity-check.mjs\"\n },\n \"dependencies\": {\n \"@anthropic-ai/bedrock-sdk\": \"^0.12.6\",\n \"@anthropic-ai/sdk\": \"^0.39.0\",\n \"@anthropic-ai/vertex-sdk\": \"^0.7.0\",\n \"@astrojs/language-server\": \"2.16.2\",\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@commander-js/extra-typings\": \"^13.1.0\",\n \"@inkjs/ui\": \"^2.0.0\",\n \"@modelcontextprotocol/sdk\": \"^1.15.1\",\n \"@prisma/language-server\": \"31.3.4\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/react\": \"^19.1.8\",\n \"@vscode/ripgrep\": \"^1.17.0\",\n \"@vue/language-server\": \"3.2.2\",\n \"ajv\": \"^8.17.1\",\n \"ansi-escapes\": \"^7.0.0\",\n \"bash-language-server\": \"5.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-highlight\": \"^2.1.11\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^13.1.0\",\n \"debug\": \"^4.4.1\",\n \"diff\": \"^7.0.0\",\n \"dockerfile-language-server-nodejs\": \"0.15.0\",\n \"dotenv\": \"^16.6.1\",\n \"env-paths\": \"^3.0.0\",\n \"fflate\": \"^0.8.2\",\n \"figures\": \"^6.1.0\",\n \"glob\": \"^11.0.3\",\n \"graphql-language-service-cli\": \"3.5.0\",\n \"gray-matter\": \"^4.0.3\",\n \"highlight.js\": \"^11.11.1\",\n \"ignore\": \"^7.0.5\",\n \"ink\": \"5.2.1\",\n \"ink-link\": \"^4.1.0\",\n \"ink-select-input\": \"^6.2.0\",\n \"ink-text-input\": \"^6.0.0\",\n \"intelephense\": \"1.16.3\",\n \"js-yaml\": \"^4.1.1\",\n \"lodash-es\": \"^4.17.21\",\n \"lru-cache\": \"^11.1.0\",\n \"marked\": \"^15.0.12\",\n \"minimatch\": \"^10.1.1\",\n \"nanoid\": \"^5.1.5\",\n \"node-html-parser\": \"^7.0.1\",\n \"openai\": \"4.104.0\",\n \"pyright\": \"1.1.408\",\n \"react\": \"18.3.1\",\n \"semver\": \"^7.7.2\",\n \"shell-quote\": \"1.8.3\",\n \"spawn-rx\": \"^5.1.2\",\n \"string-width\": \"^7.2.0\",\n \"strip-ansi\": \"^7.1.0\",\n \"svelte-language-server\": \"0.17.23\",\n \"tsx\": \"^4.20.3\",\n \"typescript-language-server\": \"5.1.3\",\n \"undici\": \"^7.11.0\",\n \"vscode-jsonrpc\": \"8.2.1\",\n \"vscode-langservers-extracted\": \"4.10.0\",\n \"web-tree-sitter\": \"0.25.10\",\n \"which\": \"^6.0.0\",\n \"wrap-ansi\": \"^9.0.0\",\n \"yaml-language-server\": \"1.19.2\",\n \"zod\": \"^3.25.76\",\n \"zod-to-json-schema\": \"^3.24.6\"\n },\n \"devDependencies\": {\n \"@types/bun\": \"latest\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^24.1.0\",\n \"@types/which\": \"^3.0.4\",\n \"@typescript-eslint/eslint-plugin\": \"^8.50.1\",\n \"@typescript-eslint/parser\": \"^8.50.1\",\n \"abort-controller\": \"3.0.0\",\n \"bun-types\": \"latest\",\n \"cheerio\": \"1.1.2\",\n \"esbuild\": \"^0.25.9\",\n \"eslint\": \"8.57.0\",\n \"eslint-plugin-react-hooks\": \"^7.0.1\",\n \"ink-testing-library\": \"4.0.0\",\n \"node-fetch\": \"3.3.2\",\n \"prettier\": \"^3.6.2\",\n \"react-devtools-core\": \"^7.0.1\",\n \"tree-sitter-bash\": \"0.25.1\",\n \"tree-sitter-c-sharp\": \"0.23.1\",\n \"tree-sitter-clojure\": \"0.4.0\",\n \"tree-sitter-cpp\": \"0.23.4\",\n \"tree-sitter-go\": \"0.25.0\",\n \"tree-sitter-haskell\": \"0.23.1\",\n \"tree-sitter-java\": \"0.23.5\",\n \"tree-sitter-julia\": \"0.23.1\",\n \"tree-sitter-nix\": \"0.0.2\",\n \"tree-sitter-ocaml\": \"0.24.2\",\n \"tree-sitter-python\": \"0.25.0\",\n \"tree-sitter-rust\": \"0.24.0\",\n \"tree-sitter-scala\": \"0.24.0\",\n \"tree-sitter-swift\": \"0.7.1\",\n \"tree-sitter-typescript\": \"0.23.2\",\n \"turndown\": \"7.2.2\",\n \"typescript\": \"^5.9.2\"\n },\n \"overrides\": {\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@smithy/smithy-client\": \"2.5.1\"\n }\n}\n", "import pkg from '../../package.json'\n\nexport const MACRO = {\n VERSION: pkg.version,\n README_URL: 'https://github.com/pyb-xc/pyb-ts#readme',\n PACKAGE_URL: 'pybao-cli',\n ISSUES_EXPLAINER:\n 'report the issue at https://github.com/pyb-xc/pyb-ts/issues',\n}\n"],
4
+ "sourcesContent": ["{\n \"name\": \"pybao-cli\",\n \"version\": \"1.4.49\",\n \"bin\": {\n \"pyb\": \"cli.js\",\n \"pyb-acp\": \"cli-acp.js\"\n },\n \"engines\": {\n \"node\": \">=20.18.1\"\n },\n \"main\": \"cli.js\",\n \"author\": \"PYB-XC\",\n \"license\": \"MIT\",\n \"description\": \"PYB-CLI - Minimal AI Agent with multi-model support and CLI interface\",\n \"keywords\": [\n \"ai\",\n \"agent\",\n \"minimal\",\n \"claude\"\n ],\n \"homepage\": \"https://github.com/pyb-xc/pyb-ts\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/pyb-xc/pyb-ts.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/pyb-xc/pyb-ts/issues\"\n },\n \"files\": [\n \"cli.js\",\n \"cli-acp.js\",\n \"yoga.wasm\",\n \"dist/**/*\",\n \"scripts/binary-utils.cjs\",\n \"scripts/cli-wrapper.cjs\",\n \"scripts/cli-acp-wrapper.cjs\",\n \"scripts/postinstall.js\",\n \".npmrc\",\n \"resources/**/*\"\n ],\n \"scripts\": {\n \"dev\": \"bun run ./src/entrypoints/cli.tsx --verbose\",\n \"build:npm\": \"bun scripts/build.mjs\",\n \"build\": \"npm run build:npm\",\n \"build:binary\": \"node scripts/build-binary.mjs\",\n \"clean\": \"node scripts/clean.mjs\",\n \"prepublishOnly\": \"npm run build:npm && node scripts/prepublish-check.js\",\n \"postinstall\": \"node scripts/postinstall.js || true\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"lint\": \"eslint . --ext .ts,.tsx,.js --max-warnings 0\",\n \"lint:fix\": \"eslint . --ext .ts,.tsx,.js --fix\",\n \"test\": \"bun test\",\n \"test:unit\": \"bun test tests/unit\",\n \"test:integration\": \"bun test tests/integration\",\n \"test:e2e\": \"bun test tests/e2e\",\n \"typecheck\": \"tsc --noEmit\",\n \"prepare\": \"bun run scripts/install-hooks.mjs\",\n \"publish:dev\": \"bun run scripts/publish-dev.js\",\n \"publish:release\": \"bun run scripts/publish-release.js\",\n \"bench:startup\": \"bun run scripts/bench-startup.mjs\",\n \"parity:reference\": \"bun run scripts/reference-parity-check.mjs\"\n },\n \"dependencies\": {\n \"@anthropic-ai/bedrock-sdk\": \"^0.12.6\",\n \"@anthropic-ai/sdk\": \"^0.39.0\",\n \"@anthropic-ai/vertex-sdk\": \"^0.7.0\",\n \"@astrojs/language-server\": \"2.16.2\",\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@commander-js/extra-typings\": \"^13.1.0\",\n \"@inkjs/ui\": \"^2.0.0\",\n \"@modelcontextprotocol/sdk\": \"^1.15.1\",\n \"@prisma/language-server\": \"31.3.4\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/react\": \"^19.1.8\",\n \"@vscode/ripgrep\": \"^1.17.0\",\n \"@vue/language-server\": \"3.2.2\",\n \"ajv\": \"^8.17.1\",\n \"ansi-escapes\": \"^7.0.0\",\n \"bash-language-server\": \"5.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-highlight\": \"^2.1.11\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^13.1.0\",\n \"debug\": \"^4.4.1\",\n \"diff\": \"^7.0.0\",\n \"dockerfile-language-server-nodejs\": \"0.15.0\",\n \"dotenv\": \"^16.6.1\",\n \"env-paths\": \"^3.0.0\",\n \"fflate\": \"^0.8.2\",\n \"figures\": \"^6.1.0\",\n \"glob\": \"^11.0.3\",\n \"graphql-language-service-cli\": \"3.5.0\",\n \"gray-matter\": \"^4.0.3\",\n \"highlight.js\": \"^11.11.1\",\n \"ignore\": \"^7.0.5\",\n \"ink\": \"5.2.1\",\n \"ink-link\": \"^4.1.0\",\n \"ink-select-input\": \"^6.2.0\",\n \"ink-text-input\": \"^6.0.0\",\n \"intelephense\": \"1.16.3\",\n \"js-yaml\": \"^4.1.1\",\n \"lodash-es\": \"^4.17.21\",\n \"lru-cache\": \"^11.1.0\",\n \"marked\": \"^15.0.12\",\n \"minimatch\": \"^10.1.1\",\n \"nanoid\": \"^5.1.5\",\n \"node-html-parser\": \"^7.0.1\",\n \"openai\": \"4.104.0\",\n \"pyright\": \"1.1.408\",\n \"react\": \"18.3.1\",\n \"semver\": \"^7.7.2\",\n \"shell-quote\": \"1.8.3\",\n \"spawn-rx\": \"^5.1.2\",\n \"string-width\": \"^7.2.0\",\n \"strip-ansi\": \"^7.1.0\",\n \"svelte-language-server\": \"0.17.23\",\n \"tsx\": \"^4.20.3\",\n \"typescript-language-server\": \"5.1.3\",\n \"undici\": \"^7.11.0\",\n \"vscode-jsonrpc\": \"8.2.1\",\n \"vscode-langservers-extracted\": \"4.10.0\",\n \"web-tree-sitter\": \"0.25.10\",\n \"which\": \"^6.0.0\",\n \"wrap-ansi\": \"^9.0.0\",\n \"yaml-language-server\": \"1.19.2\",\n \"zod\": \"^3.25.76\",\n \"zod-to-json-schema\": \"^3.24.6\"\n },\n \"devDependencies\": {\n \"@types/bun\": \"latest\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^24.1.0\",\n \"@types/which\": \"^3.0.4\",\n \"@typescript-eslint/eslint-plugin\": \"^8.50.1\",\n \"@typescript-eslint/parser\": \"^8.50.1\",\n \"abort-controller\": \"3.0.0\",\n \"bun-types\": \"latest\",\n \"cheerio\": \"1.1.2\",\n \"esbuild\": \"^0.25.9\",\n \"eslint\": \"8.57.0\",\n \"eslint-plugin-react-hooks\": \"^7.0.1\",\n \"ink-testing-library\": \"4.0.0\",\n \"node-fetch\": \"3.3.2\",\n \"prettier\": \"^3.6.2\",\n \"react-devtools-core\": \"^7.0.1\",\n \"tree-sitter-bash\": \"0.25.1\",\n \"tree-sitter-c-sharp\": \"0.23.1\",\n \"tree-sitter-clojure\": \"0.4.0\",\n \"tree-sitter-cpp\": \"0.23.4\",\n \"tree-sitter-go\": \"0.25.0\",\n \"tree-sitter-haskell\": \"0.23.1\",\n \"tree-sitter-java\": \"0.23.5\",\n \"tree-sitter-julia\": \"0.23.1\",\n \"tree-sitter-nix\": \"0.0.2\",\n \"tree-sitter-ocaml\": \"0.24.2\",\n \"tree-sitter-python\": \"0.25.0\",\n \"tree-sitter-rust\": \"0.24.0\",\n \"tree-sitter-scala\": \"0.24.0\",\n \"tree-sitter-swift\": \"0.7.1\",\n \"tree-sitter-typescript\": \"0.23.2\",\n \"turndown\": \"7.2.2\",\n \"typescript\": \"^5.9.2\"\n },\n \"overrides\": {\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@smithy/smithy-client\": \"2.5.1\"\n }\n}\n", "import pkg from '../../package.json'\n\nexport const MACRO = {\n VERSION: pkg.version,\n README_URL: 'https://github.com/pyb-xc/pyb-ts#readme',\n PACKAGE_URL: 'pybao-cli',\n ISSUES_EXPLAINER:\n 'report the issue at https://github.com/pyb-xc/pyb-ts/issues',\n}\n"],
5
5
  "mappings": ";;;;AAAA;AAAA,EACE,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,KAAO;AAAA,IACL,KAAO;AAAA,IACP,WAAW;AAAA,EACb;AAAA,EACA,SAAW;AAAA,IACT,MAAQ;AAAA,EACV;AAAA,EACA,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,SAAW;AAAA,EACX,aAAe;AAAA,EACf,UAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAY;AAAA,EACZ,YAAc;AAAA,IACZ,MAAQ;AAAA,IACR,KAAO;AAAA,EACT;AAAA,EACA,MAAQ;AAAA,IACN,KAAO;AAAA,EACT;AAAA,EACA,OAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,SAAW;AAAA,IACT,KAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,OAAS;AAAA,IACT,gBAAkB;AAAA,IAClB,aAAe;AAAA,IACf,QAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,MAAQ;AAAA,IACR,YAAY;AAAA,IACZ,MAAQ;AAAA,IACR,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,WAAa;AAAA,IACb,SAAW;AAAA,IACX,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,EACtB;AAAA,EACA,cAAgB;AAAA,IACd,6BAA6B;AAAA,IAC7B,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,IAC5B,4BAA4B;AAAA,IAC5B,mCAAmC;AAAA,IACnC,+BAA+B;AAAA,IAC/B,aAAa;AAAA,IACb,6BAA6B;AAAA,IAC7B,2BAA2B;AAAA,IAC3B,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,KAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,OAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,WAAa;AAAA,IACb,OAAS;AAAA,IACT,MAAQ;AAAA,IACR,qCAAqC;AAAA,IACrC,QAAU;AAAA,IACV,aAAa;AAAA,IACb,QAAU;AAAA,IACV,SAAW;AAAA,IACX,MAAQ;AAAA,IACR,gCAAgC;AAAA,IAChC,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,QAAU;AAAA,IACV,KAAO;AAAA,IACP,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,cAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAU;AAAA,IACV,WAAa;AAAA,IACb,QAAU;AAAA,IACV,oBAAoB;AAAA,IACpB,QAAU;AAAA,IACV,SAAW;AAAA,IACX,OAAS;AAAA,IACT,QAAU;AAAA,IACV,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,0BAA0B;AAAA,IAC1B,KAAO;AAAA,IACP,8BAA8B;AAAA,IAC9B,QAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,gCAAgC;AAAA,IAChC,mBAAmB;AAAA,IACnB,OAAS;AAAA,IACT,aAAa;AAAA,IACb,wBAAwB;AAAA,IACxB,KAAO;AAAA,IACP,sBAAsB;AAAA,EACxB;AAAA,EACA,iBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,oCAAoC;AAAA,IACpC,6BAA6B;AAAA,IAC7B,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,SAAW;AAAA,IACX,SAAW;AAAA,IACX,QAAU;AAAA,IACV,6BAA6B;AAAA,IAC7B,uBAAuB;AAAA,IACvB,cAAc;AAAA,IACd,UAAY;AAAA,IACZ,uBAAuB;AAAA,IACvB,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,IACvB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,0BAA0B;AAAA,IAC1B,UAAY;AAAA,IACZ,YAAc;AAAA,EAChB;AAAA,EACA,WAAa;AAAA,IACX,mCAAmC;AAAA,IACnC,yBAAyB;AAAA,EAC3B;AACF;;;ACtKO,IAAM,QAAQ;AAAA,EACnB,SAAS,gBAAI;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBACE;AACJ;",
6
6
  "names": []
7
7
  }