pybao-cli 1.5.7 → 1.5.9

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 (169) hide show
  1. package/dist/REPL-FDBOFOZN.js +50 -0
  2. package/dist/{acp-2LMTSBAU.js → acp-TKO6ZSSV.js} +54 -36
  3. package/dist/acp-TKO6ZSSV.js.map +7 -0
  4. package/dist/{agentsValidate-YQSHYCYC.js → agentsValidate-RDNLI7GA.js} +7 -7
  5. package/dist/{ask-4Z4LH5IS.js → ask-KTXMYPIA.js} +60 -34
  6. package/dist/ask-KTXMYPIA.js.map +7 -0
  7. package/dist/{autoUpdater-UTX7ZX2N.js → autoUpdater-53BZ6QWD.js} +3 -3
  8. package/dist/{chunk-OY6SB5B3.js → chunk-276RV4DQ.js} +4 -4
  9. package/dist/{chunk-7FFBXWS3.js → chunk-35X2VS4L.js} +3 -3
  10. package/dist/{chunk-VZDDKAL2.js → chunk-4C2CGHBI.js} +2 -2
  11. package/dist/{chunk-Y2RSIF7P.js → chunk-4KPVE4K7.js} +1 -1
  12. package/dist/{chunk-SDKYJZWD.js → chunk-57GJQMFS.js} +2 -2
  13. package/dist/{chunk-3JH34RBY.js → chunk-6PXEXL7C.js} +2 -2
  14. package/dist/{chunk-IKMMFSNJ.js → chunk-AMQ6XZOU.js} +1 -1
  15. package/dist/{chunk-W4PXRGP3.js → chunk-AWRDD6BG.js} +18 -1
  16. package/dist/chunk-AWRDD6BG.js.map +7 -0
  17. package/dist/{chunk-5JKCAVMI.js → chunk-BZGQQ4WZ.js} +3 -3
  18. package/dist/{chunk-4BFEUSKN.js → chunk-CATWZQ3R.js} +2 -2
  19. package/dist/{chunk-EGJRWKZ6.js → chunk-CPLMSZ63.js} +4 -4
  20. package/dist/{chunk-PI5RBPFA.js → chunk-DA6NJEFI.js} +2 -2
  21. package/dist/{chunk-IFC2PLAM.js → chunk-E35YJNX2.js} +4 -4
  22. package/dist/{chunk-TIMEEE5U.js → chunk-G7DKRXDS.js} +1 -4
  23. package/dist/{chunk-5F6IQJHF.js → chunk-HIJYNCCN.js} +1 -1
  24. package/dist/{chunk-F7HYDAWW.js → chunk-JE43CQYI.js} +3 -3
  25. package/dist/{chunk-JEAXJP2E.js → chunk-JLC2I3EY.js} +1 -1
  26. package/dist/chunk-JRMAK4PK.js +926 -0
  27. package/dist/chunk-JRMAK4PK.js.map +7 -0
  28. package/dist/{chunk-KLD4WAB6.js → chunk-KNLP4UO6.js} +4 -4
  29. package/dist/chunk-L3R7MPZU.js +81 -0
  30. package/dist/{chunk-ZD6NMP33.js.map → chunk-L3R7MPZU.js.map} +1 -1
  31. package/dist/{chunk-PMYMUSB4.js → chunk-LEYWQQ7V.js} +3 -3
  32. package/dist/{chunk-EN7L7JWN.js → chunk-LIOZM4KE.js} +1 -1
  33. package/dist/chunk-OC5CZWBQ.js.map +7 -0
  34. package/dist/{chunk-SWNNPHFY.js → chunk-PH6DPTO3.js} +2025 -1321
  35. package/dist/chunk-PH6DPTO3.js.map +7 -0
  36. package/dist/{chunk-CJ2YYIJN.js → chunk-PPFVOBEG.js} +144 -76
  37. package/dist/chunk-PPFVOBEG.js.map +7 -0
  38. package/dist/{chunk-4R7NUADF.js → chunk-Q5EZLUFC.js} +1 -1
  39. package/dist/{chunk-LYMH46VN.js → chunk-QMN64ICT.js} +3 -3
  40. package/dist/{chunk-VBV5RHIK.js → chunk-R4ZEH3KJ.js} +1 -1
  41. package/dist/{chunk-TKEWBSVM.js → chunk-SNASBZ2C.js} +3 -3
  42. package/dist/chunk-T7P3SSAQ.js +78 -0
  43. package/dist/chunk-T7P3SSAQ.js.map +7 -0
  44. package/dist/{chunk-T7UTA73F.js → chunk-TLZS274Y.js} +3 -3
  45. package/dist/{chunk-IOP3VA4X.js → chunk-YSL5H7NJ.js} +2 -2
  46. package/dist/{chunk-HFVRQO2J.js → chunk-YTEQEQ56.js} +48 -40
  47. package/dist/chunk-YTEQEQ56.js.map +7 -0
  48. package/dist/{cli-N3Q4D4BW.js → cli-LYWCNPC6.js} +131 -102
  49. package/dist/cli-LYWCNPC6.js.map +7 -0
  50. package/dist/commands-DYXAWJO6.js +54 -0
  51. package/dist/{config-GZXNPIIG.js → config-66BMMOES.js} +4 -4
  52. package/dist/{context-TUO5CUR3.js → context-PG7YTQCJ.js} +6 -6
  53. package/dist/conversationPersistence-DB6IUU2I.js +13 -0
  54. package/dist/{conversationTracker-APB6PR5Z.js → conversationTracker-WG3J56PX.js} +4 -3
  55. package/dist/{customCommands-J4DV6OI5.js → customCommands-XDKUVT73.js} +4 -4
  56. package/dist/{env-YBYEMHYQ.js → env-FW74XJHK.js} +2 -2
  57. package/dist/{file-KIBY6XZX.js → file-U2NXQ6RC.js} +4 -4
  58. package/dist/index.js +3 -3
  59. package/dist/{llm-T7C6QJWB.js → llm-6VJMMPDO.js} +416 -49
  60. package/dist/llm-6VJMMPDO.js.map +7 -0
  61. package/dist/{llmLazy-FDVUCPDQ.js → llmLazy-LYGZWC7G.js} +1 -1
  62. package/dist/{loader-QCHS455W.js → loader-DMZVU2XJ.js} +4 -4
  63. package/dist/{lsp-TE2SQ6CO.js → lsp-6LNF5DQB.js} +6 -6
  64. package/dist/{lspAnchor-IZ7YQJ64.js → lspAnchor-SF5Y7ZJT.js} +6 -6
  65. package/dist/{mcp-PLAWUZOQ.js → mcp-NLDX3RQE.js} +7 -7
  66. package/dist/{mentionProcessor-2O3AMZHB.js → mentionProcessor-BMX6VGRH.js} +5 -5
  67. package/dist/{messages-ZHFZ2OOG.js → messages-OTQ6IJM5.js} +9 -5
  68. package/dist/{model-GBC2PBVJ.js → model-KWGEASLY.js} +5 -5
  69. package/dist/{openai-2V2J23AE.js → openai-XIRWQY5H.js} +5 -5
  70. package/dist/{outputStyles-WD4VD4GZ.js → outputStyles-HKYM5C76.js} +4 -4
  71. package/dist/{pluginRuntime-WNZS26EV.js → pluginRuntime-25Y2MVIN.js} +6 -6
  72. package/dist/{pluginValidation-YP7MW35I.js → pluginValidation-CIJIQKGB.js} +6 -6
  73. package/dist/prompts-WH3VEHH6.js +56 -0
  74. package/dist/{pybAgentSessionLoad-YABCHELS.js → pybAgentSessionLoad-TF3BFX4S.js} +4 -4
  75. package/dist/{pybAgentSessionResume-C3LNSFQL.js → pybAgentSessionResume-Y5JO4GLH.js} +4 -4
  76. package/dist/{pybAgentStreamJsonSession-DFOGLEOB.js → pybAgentStreamJsonSession-46VLF4QN.js} +4 -3
  77. package/dist/pybAgentStreamJsonSession-46VLF4QN.js.map +7 -0
  78. package/dist/{pybHooks-LGGIB5PJ.js → pybHooks-LZPU4EF6.js} +4 -4
  79. package/dist/query-4B3GTPBN.js +58 -0
  80. package/dist/{registry-EYMCKHRG.js → registry-6LUE7ZWC.js} +5 -5
  81. package/dist/{ripgrep-JZN2MVSK.js → ripgrep-KVB55D22.js} +3 -3
  82. package/dist/{skillMarketplace-ETYXMAXF.js → skillMarketplace-2IVEPC2E.js} +3 -3
  83. package/dist/{state-MAVHRDNE.js → state-OGBESWFS.js} +2 -2
  84. package/dist/{theme-AUEZ6SNA.js → theme-QQ2SCFEK.js} +5 -5
  85. package/dist/{toolPermissionSettings-7JZYBUZC.js → toolPermissionSettings-ZGGPBK6S.js} +6 -6
  86. package/dist/tools-UXPFIHD4.js +55 -0
  87. package/dist/tools-UXPFIHD4.js.map +7 -0
  88. package/dist/{userInput-V6RU4BEQ.js → userInput-75VCTJDE.js} +76 -49
  89. package/dist/userInput-75VCTJDE.js.map +7 -0
  90. package/package.json +18 -1
  91. package/dist/REPL-YW6AH5YU.js +0 -49
  92. package/dist/acp-2LMTSBAU.js.map +0 -7
  93. package/dist/ask-4Z4LH5IS.js.map +0 -7
  94. package/dist/chunk-CJ2YYIJN.js.map +0 -7
  95. package/dist/chunk-HFVRQO2J.js.map +0 -7
  96. package/dist/chunk-O6DTZU7F.js.map +0 -7
  97. package/dist/chunk-SWNNPHFY.js.map +0 -7
  98. package/dist/chunk-W4PXRGP3.js.map +0 -7
  99. package/dist/chunk-YNGGZILT.js +0 -516
  100. package/dist/chunk-YNGGZILT.js.map +0 -7
  101. package/dist/chunk-ZD6NMP33.js +0 -240
  102. package/dist/cli-N3Q4D4BW.js.map +0 -7
  103. package/dist/commands-OOINF26E.js +0 -53
  104. package/dist/llm-T7C6QJWB.js.map +0 -7
  105. package/dist/prompts-QPYUI6SX.js +0 -55
  106. package/dist/pybAgentStreamJsonSession-DFOGLEOB.js.map +0 -7
  107. package/dist/query-EC6HGBDS.js +0 -57
  108. package/dist/tools-3JFVDDSZ.js +0 -54
  109. package/dist/userInput-V6RU4BEQ.js.map +0 -7
  110. /package/dist/{REPL-YW6AH5YU.js.map → REPL-FDBOFOZN.js.map} +0 -0
  111. /package/dist/{agentsValidate-YQSHYCYC.js.map → agentsValidate-RDNLI7GA.js.map} +0 -0
  112. /package/dist/{autoUpdater-UTX7ZX2N.js.map → autoUpdater-53BZ6QWD.js.map} +0 -0
  113. /package/dist/{chunk-OY6SB5B3.js.map → chunk-276RV4DQ.js.map} +0 -0
  114. /package/dist/{chunk-7FFBXWS3.js.map → chunk-35X2VS4L.js.map} +0 -0
  115. /package/dist/{chunk-VZDDKAL2.js.map → chunk-4C2CGHBI.js.map} +0 -0
  116. /package/dist/{chunk-Y2RSIF7P.js.map → chunk-4KPVE4K7.js.map} +0 -0
  117. /package/dist/{chunk-SDKYJZWD.js.map → chunk-57GJQMFS.js.map} +0 -0
  118. /package/dist/{chunk-3JH34RBY.js.map → chunk-6PXEXL7C.js.map} +0 -0
  119. /package/dist/{chunk-IKMMFSNJ.js.map → chunk-AMQ6XZOU.js.map} +0 -0
  120. /package/dist/{chunk-5JKCAVMI.js.map → chunk-BZGQQ4WZ.js.map} +0 -0
  121. /package/dist/{chunk-4BFEUSKN.js.map → chunk-CATWZQ3R.js.map} +0 -0
  122. /package/dist/{chunk-EGJRWKZ6.js.map → chunk-CPLMSZ63.js.map} +0 -0
  123. /package/dist/{chunk-PI5RBPFA.js.map → chunk-DA6NJEFI.js.map} +0 -0
  124. /package/dist/{chunk-IFC2PLAM.js.map → chunk-E35YJNX2.js.map} +0 -0
  125. /package/dist/{chunk-TIMEEE5U.js.map → chunk-G7DKRXDS.js.map} +0 -0
  126. /package/dist/{chunk-5F6IQJHF.js.map → chunk-HIJYNCCN.js.map} +0 -0
  127. /package/dist/{chunk-F7HYDAWW.js.map → chunk-JE43CQYI.js.map} +0 -0
  128. /package/dist/{chunk-JEAXJP2E.js.map → chunk-JLC2I3EY.js.map} +0 -0
  129. /package/dist/{chunk-KLD4WAB6.js.map → chunk-KNLP4UO6.js.map} +0 -0
  130. /package/dist/{chunk-PMYMUSB4.js.map → chunk-LEYWQQ7V.js.map} +0 -0
  131. /package/dist/{chunk-EN7L7JWN.js.map → chunk-LIOZM4KE.js.map} +0 -0
  132. /package/dist/{chunk-O6DTZU7F.js → chunk-OC5CZWBQ.js} +0 -0
  133. /package/dist/{chunk-4R7NUADF.js.map → chunk-Q5EZLUFC.js.map} +0 -0
  134. /package/dist/{chunk-LYMH46VN.js.map → chunk-QMN64ICT.js.map} +0 -0
  135. /package/dist/{chunk-VBV5RHIK.js.map → chunk-R4ZEH3KJ.js.map} +0 -0
  136. /package/dist/{chunk-TKEWBSVM.js.map → chunk-SNASBZ2C.js.map} +0 -0
  137. /package/dist/{chunk-T7UTA73F.js.map → chunk-TLZS274Y.js.map} +0 -0
  138. /package/dist/{chunk-IOP3VA4X.js.map → chunk-YSL5H7NJ.js.map} +0 -0
  139. /package/dist/{commands-OOINF26E.js.map → commands-DYXAWJO6.js.map} +0 -0
  140. /package/dist/{config-GZXNPIIG.js.map → config-66BMMOES.js.map} +0 -0
  141. /package/dist/{context-TUO5CUR3.js.map → context-PG7YTQCJ.js.map} +0 -0
  142. /package/dist/{conversationTracker-APB6PR5Z.js.map → conversationPersistence-DB6IUU2I.js.map} +0 -0
  143. /package/dist/{customCommands-J4DV6OI5.js.map → conversationTracker-WG3J56PX.js.map} +0 -0
  144. /package/dist/{env-YBYEMHYQ.js.map → customCommands-XDKUVT73.js.map} +0 -0
  145. /package/dist/{file-KIBY6XZX.js.map → env-FW74XJHK.js.map} +0 -0
  146. /package/dist/{llmLazy-FDVUCPDQ.js.map → file-U2NXQ6RC.js.map} +0 -0
  147. /package/dist/{loader-QCHS455W.js.map → llmLazy-LYGZWC7G.js.map} +0 -0
  148. /package/dist/{lsp-TE2SQ6CO.js.map → loader-DMZVU2XJ.js.map} +0 -0
  149. /package/dist/{mcp-PLAWUZOQ.js.map → lsp-6LNF5DQB.js.map} +0 -0
  150. /package/dist/{lspAnchor-IZ7YQJ64.js.map → lspAnchor-SF5Y7ZJT.js.map} +0 -0
  151. /package/dist/{messages-ZHFZ2OOG.js.map → mcp-NLDX3RQE.js.map} +0 -0
  152. /package/dist/{mentionProcessor-2O3AMZHB.js.map → mentionProcessor-BMX6VGRH.js.map} +0 -0
  153. /package/dist/{model-GBC2PBVJ.js.map → messages-OTQ6IJM5.js.map} +0 -0
  154. /package/dist/{openai-2V2J23AE.js.map → model-KWGEASLY.js.map} +0 -0
  155. /package/dist/{outputStyles-WD4VD4GZ.js.map → openai-XIRWQY5H.js.map} +0 -0
  156. /package/dist/{pluginValidation-YP7MW35I.js.map → outputStyles-HKYM5C76.js.map} +0 -0
  157. /package/dist/{pluginRuntime-WNZS26EV.js.map → pluginRuntime-25Y2MVIN.js.map} +0 -0
  158. /package/dist/{prompts-QPYUI6SX.js.map → pluginValidation-CIJIQKGB.js.map} +0 -0
  159. /package/dist/{pybAgentSessionLoad-YABCHELS.js.map → prompts-WH3VEHH6.js.map} +0 -0
  160. /package/dist/{pybAgentSessionResume-C3LNSFQL.js.map → pybAgentSessionLoad-TF3BFX4S.js.map} +0 -0
  161. /package/dist/{pybHooks-LGGIB5PJ.js.map → pybAgentSessionResume-Y5JO4GLH.js.map} +0 -0
  162. /package/dist/{query-EC6HGBDS.js.map → pybHooks-LZPU4EF6.js.map} +0 -0
  163. /package/dist/{registry-EYMCKHRG.js.map → query-4B3GTPBN.js.map} +0 -0
  164. /package/dist/{ripgrep-JZN2MVSK.js.map → registry-6LUE7ZWC.js.map} +0 -0
  165. /package/dist/{skillMarketplace-ETYXMAXF.js.map → ripgrep-KVB55D22.js.map} +0 -0
  166. /package/dist/{state-MAVHRDNE.js.map → skillMarketplace-2IVEPC2E.js.map} +0 -0
  167. /package/dist/{theme-AUEZ6SNA.js.map → state-OGBESWFS.js.map} +0 -0
  168. /package/dist/{toolPermissionSettings-7JZYBUZC.js.map → theme-QQ2SCFEK.js.map} +0 -0
  169. /package/dist/{tools-3JFVDDSZ.js.map → toolPermissionSettings-ZGGPBK6S.js.map} +0 -0
@@ -1,240 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- getPybAgentSessionId
5
- } from "./chunk-B6IMQJZM.js";
6
- import {
7
- PLAN_SLUG_ADJECTIVES,
8
- PLAN_SLUG_NOUNS,
9
- PLAN_SLUG_VERBS,
10
- getCwd,
11
- resolveXdgDataPath
12
- } from "./chunk-TIMEEE5U.js";
13
- import {
14
- MACRO
15
- } from "./chunk-W4PXRGP3.js";
16
-
17
- // src/utils/protocol/pybAgentSessionLog.ts
18
- import { execFileSync } from "child_process";
19
- import {
20
- appendFileSync,
21
- existsSync,
22
- mkdirSync,
23
- readFileSync,
24
- statSync,
25
- writeFileSync
26
- } from "fs";
27
- import { randomBytes } from "crypto";
28
- import { dirname, join } from "path";
29
- function getSessionStoreBaseDir() {
30
- return resolveXdgDataPath("sessions");
31
- }
32
- function sanitizeProjectNameForSessionStore(cwd) {
33
- return cwd.replace(/[^a-zA-Z0-9]/g, "-");
34
- }
35
- function getSessionProjectsDir() {
36
- return join(getSessionStoreBaseDir(), "projects");
37
- }
38
- function getSessionProjectDir(cwd) {
39
- return join(getSessionProjectsDir(), sanitizeProjectNameForSessionStore(cwd));
40
- }
41
- function getSessionLogFilePath(args) {
42
- return join(getSessionProjectDir(args.cwd), `${args.sessionId}.jsonl`);
43
- }
44
- function getAgentLogFilePath(args) {
45
- return join(getSessionProjectDir(args.cwd), `agent-${args.agentId}.jsonl`);
46
- }
47
- function safeMkdir(dir) {
48
- if (existsSync(dir)) return;
49
- mkdirSync(dir, { recursive: true });
50
- }
51
- function safeEnsureFile(path) {
52
- safeMkdir(dirname(path));
53
- if (!existsSync(path)) writeFileSync(path, "", "utf8");
54
- }
55
- function safeAppendJsonl(path, record) {
56
- try {
57
- safeEnsureFile(path);
58
- appendFileSync(path, JSON.stringify(record) + "\n", "utf8");
59
- } catch {
60
- }
61
- }
62
- var lastUuidByFile = /* @__PURE__ */ new Map();
63
- var snapshotWrittenByFile = /* @__PURE__ */ new Set();
64
- var slugBySessionId = /* @__PURE__ */ new Map();
65
- var currentSessionCustomTitle = null;
66
- var currentSessionTag = null;
67
- function safeReadLastPersistedInfo(filePath) {
68
- try {
69
- if (!existsSync(filePath)) return { uuid: null, slug: null };
70
- const content = readFileSync(filePath, "utf8");
71
- const lines = content.split("\n");
72
- let lastSlug = null;
73
- for (let i = lines.length - 1; i >= 0; i--) {
74
- const line = lines[i]?.trim();
75
- if (!line) continue;
76
- let parsed;
77
- try {
78
- parsed = JSON.parse(line);
79
- } catch {
80
- continue;
81
- }
82
- if (!parsed || typeof parsed !== "object") continue;
83
- if (!lastSlug && typeof parsed.slug === "string" && parsed.slug.trim()) {
84
- lastSlug = parsed.slug.trim();
85
- }
86
- if (typeof parsed.uuid === "string" && parsed.uuid) {
87
- return { uuid: parsed.uuid, slug: lastSlug };
88
- }
89
- }
90
- return { uuid: null, slug: lastSlug };
91
- } catch {
92
- return { uuid: null, slug: null };
93
- }
94
- }
95
- function pickIndex(length) {
96
- return randomBytes(4).readUInt32BE(0) % length;
97
- }
98
- function pickWord(words) {
99
- return words[pickIndex(words.length)];
100
- }
101
- function generateSessionSlug() {
102
- const adjective = pickWord(PLAN_SLUG_ADJECTIVES);
103
- const verb = pickWord(PLAN_SLUG_VERBS);
104
- const noun = pickWord(PLAN_SLUG_NOUNS);
105
- return `${adjective}-${verb}-${noun}`;
106
- }
107
- function getOrCreateSessionSlug(sessionId) {
108
- const existing = slugBySessionId.get(sessionId);
109
- if (existing) return existing;
110
- const slug = generateSessionSlug();
111
- slugBySessionId.set(sessionId, slug);
112
- return slug;
113
- }
114
- var gitBranchCache = null;
115
- function getGitBranchBestEffort(cwd) {
116
- if (gitBranchCache && gitBranchCache.cwd === cwd) return gitBranchCache.value;
117
- let value;
118
- try {
119
- const stdout = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
120
- cwd,
121
- stdio: ["ignore", "pipe", "ignore"],
122
- timeout: 750
123
- });
124
- const branch = stdout.toString("utf8").trim();
125
- value = branch || void 0;
126
- } catch {
127
- value = void 0;
128
- }
129
- gitBranchCache = { cwd, value };
130
- return value;
131
- }
132
- function ensureFileHistorySnapshot(filePath, firstMessageUuid) {
133
- if (snapshotWrittenByFile.has(filePath)) return;
134
- try {
135
- safeEnsureFile(filePath);
136
- const size = statSync(filePath).size;
137
- if (size > 0) {
138
- snapshotWrittenByFile.add(filePath);
139
- return;
140
- }
141
- } catch {
142
- }
143
- const now = (/* @__PURE__ */ new Date()).toISOString();
144
- safeAppendJsonl(filePath, {
145
- type: "file-history-snapshot",
146
- messageId: firstMessageUuid,
147
- snapshot: {
148
- messageId: firstMessageUuid,
149
- trackedFileBackups: {},
150
- timestamp: now
151
- },
152
- isSnapshotUpdate: false
153
- });
154
- snapshotWrittenByFile.add(filePath);
155
- }
156
- function resolvePersistTarget(toolUseContext) {
157
- const agentId = toolUseContext.agentId;
158
- if (agentId && agentId !== "main") return { kind: "agent", agentId };
159
- return { kind: "session", sessionId: getPybAgentSessionId() };
160
- }
161
- function appendSessionJsonlFromMessage(args) {
162
- const { message, toolUseContext } = args;
163
- if (message.type !== "user" && message.type !== "assistant") return;
164
- const cwd = getCwd();
165
- const userType = (process.env.USER_TYPE ?? "external").trim() || "external";
166
- const sessionId = getPybAgentSessionId();
167
- const agentId = (toolUseContext.agentId ?? "main").trim() || "main";
168
- const isSidechain = agentId !== "main";
169
- const gitBranch = getGitBranchBestEffort(cwd);
170
- const target = resolvePersistTarget(toolUseContext);
171
- const filePath = target.kind === "agent" ? getAgentLogFilePath({ cwd, agentId: target.agentId }) : getSessionLogFilePath({ cwd, sessionId: target.sessionId });
172
- if (!lastUuidByFile.has(filePath)) {
173
- const info = safeReadLastPersistedInfo(filePath);
174
- lastUuidByFile.set(filePath, info.uuid);
175
- if (info.slug) slugBySessionId.set(sessionId, info.slug);
176
- }
177
- const previousUuid = lastUuidByFile.get(filePath) ?? null;
178
- const slug = getOrCreateSessionSlug(sessionId);
179
- if (target.kind === "session") {
180
- ensureFileHistorySnapshot(filePath, message.uuid);
181
- }
182
- const base = {
183
- parentUuid: previousUuid,
184
- logicalParentUuid: void 0,
185
- isSidechain,
186
- userType,
187
- cwd,
188
- sessionId,
189
- version: MACRO.VERSION,
190
- ...gitBranch ? { gitBranch } : {},
191
- agentId,
192
- slug,
193
- uuid: message.uuid,
194
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
195
- };
196
- const record = message.type === "user" ? {
197
- ...base,
198
- type: "user",
199
- message: message.message,
200
- ...message.toolUseResult?.data !== void 0 ? { toolUseResult: message.toolUseResult.data } : {}
201
- } : {
202
- ...base,
203
- type: "assistant",
204
- message: message.message,
205
- ...typeof message.requestId === "string" ? { requestId: String(message.requestId) } : {},
206
- ...message.isApiErrorMessage ? { isApiErrorMessage: true } : {}
207
- };
208
- safeAppendJsonl(filePath, record);
209
- lastUuidByFile.set(filePath, message.uuid);
210
- }
211
- function appendSessionCustomTitleRecord(args) {
212
- const cwd = getCwd();
213
- safeAppendJsonl(getSessionLogFilePath({ cwd, sessionId: args.sessionId }), {
214
- type: "custom-title",
215
- sessionId: args.sessionId,
216
- customTitle: args.customTitle
217
- });
218
- if (args.sessionId === getPybAgentSessionId()) {
219
- currentSessionCustomTitle = args.customTitle;
220
- }
221
- }
222
- function appendSessionTagRecord(args) {
223
- const cwd = getCwd();
224
- safeAppendJsonl(getSessionLogFilePath({ cwd, sessionId: args.sessionId }), {
225
- type: "tag",
226
- sessionId: args.sessionId,
227
- tag: args.tag
228
- });
229
- if (args.sessionId === getPybAgentSessionId()) {
230
- currentSessionTag = args.tag;
231
- }
232
- }
233
-
234
- export {
235
- getSessionProjectsDir,
236
- getSessionProjectDir,
237
- appendSessionJsonlFromMessage,
238
- appendSessionCustomTitleRecord,
239
- appendSessionTagRecord
240
- };