wave-agent-sdk 0.0.8 → 0.0.11

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 (236) hide show
  1. package/dist/agent.d.ts +92 -23
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +351 -137
  4. package/dist/index.d.ts +3 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -0
  7. package/dist/managers/aiManager.d.ts +14 -36
  8. package/dist/managers/aiManager.d.ts.map +1 -1
  9. package/dist/managers/aiManager.js +74 -77
  10. package/dist/managers/backgroundBashManager.d.ts.map +1 -1
  11. package/dist/managers/backgroundBashManager.js +4 -3
  12. package/dist/managers/hookManager.d.ts +3 -8
  13. package/dist/managers/hookManager.d.ts.map +1 -1
  14. package/dist/managers/hookManager.js +39 -29
  15. package/dist/managers/liveConfigManager.d.ts +55 -18
  16. package/dist/managers/liveConfigManager.d.ts.map +1 -1
  17. package/dist/managers/liveConfigManager.js +372 -90
  18. package/dist/managers/lspManager.d.ts +43 -0
  19. package/dist/managers/lspManager.d.ts.map +1 -0
  20. package/dist/managers/lspManager.js +326 -0
  21. package/dist/managers/messageManager.d.ts +8 -16
  22. package/dist/managers/messageManager.d.ts.map +1 -1
  23. package/dist/managers/messageManager.js +52 -74
  24. package/dist/managers/permissionManager.d.ts +75 -0
  25. package/dist/managers/permissionManager.d.ts.map +1 -0
  26. package/dist/managers/permissionManager.js +368 -0
  27. package/dist/managers/skillManager.d.ts +1 -0
  28. package/dist/managers/skillManager.d.ts.map +1 -1
  29. package/dist/managers/skillManager.js +2 -1
  30. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  31. package/dist/managers/slashCommandManager.js +0 -1
  32. package/dist/managers/subagentManager.d.ts +8 -23
  33. package/dist/managers/subagentManager.d.ts.map +1 -1
  34. package/dist/managers/subagentManager.js +97 -117
  35. package/dist/managers/toolManager.d.ts +38 -1
  36. package/dist/managers/toolManager.d.ts.map +1 -1
  37. package/dist/managers/toolManager.js +66 -2
  38. package/dist/services/aiService.d.ts +3 -1
  39. package/dist/services/aiService.d.ts.map +1 -1
  40. package/dist/services/aiService.js +123 -30
  41. package/dist/services/configurationService.d.ts +116 -0
  42. package/dist/services/configurationService.d.ts.map +1 -0
  43. package/dist/services/configurationService.js +585 -0
  44. package/dist/services/fileWatcher.d.ts.map +1 -1
  45. package/dist/services/fileWatcher.js +5 -6
  46. package/dist/services/hook.d.ts +7 -124
  47. package/dist/services/hook.d.ts.map +1 -1
  48. package/dist/services/hook.js +46 -458
  49. package/dist/services/jsonlHandler.d.ts +24 -15
  50. package/dist/services/jsonlHandler.d.ts.map +1 -1
  51. package/dist/services/jsonlHandler.js +67 -88
  52. package/dist/services/memory.d.ts +0 -9
  53. package/dist/services/memory.d.ts.map +1 -1
  54. package/dist/services/memory.js +2 -49
  55. package/dist/services/session.d.ts +82 -33
  56. package/dist/services/session.d.ts.map +1 -1
  57. package/dist/services/session.js +275 -181
  58. package/dist/tools/bashTool.d.ts.map +1 -1
  59. package/dist/tools/bashTool.js +109 -11
  60. package/dist/tools/deleteFileTool.d.ts.map +1 -1
  61. package/dist/tools/deleteFileTool.js +25 -0
  62. package/dist/tools/editTool.d.ts.map +1 -1
  63. package/dist/tools/editTool.js +30 -6
  64. package/dist/tools/lspTool.d.ts +6 -0
  65. package/dist/tools/lspTool.d.ts.map +1 -0
  66. package/dist/tools/lspTool.js +589 -0
  67. package/dist/tools/multiEditTool.d.ts.map +1 -1
  68. package/dist/tools/multiEditTool.js +26 -7
  69. package/dist/tools/readTool.d.ts.map +1 -1
  70. package/dist/tools/readTool.js +111 -2
  71. package/dist/tools/skillTool.js +2 -2
  72. package/dist/tools/todoWriteTool.d.ts.map +1 -1
  73. package/dist/tools/todoWriteTool.js +23 -0
  74. package/dist/tools/types.d.ts +11 -8
  75. package/dist/tools/types.d.ts.map +1 -1
  76. package/dist/tools/writeTool.d.ts.map +1 -1
  77. package/dist/tools/writeTool.js +25 -9
  78. package/dist/types/commands.d.ts +0 -1
  79. package/dist/types/commands.d.ts.map +1 -1
  80. package/dist/types/config.d.ts +4 -0
  81. package/dist/types/config.d.ts.map +1 -1
  82. package/dist/types/configuration.d.ts +69 -0
  83. package/dist/types/configuration.d.ts.map +1 -0
  84. package/dist/types/configuration.js +8 -0
  85. package/dist/types/core.d.ts +10 -0
  86. package/dist/types/core.d.ts.map +1 -1
  87. package/dist/types/environment.d.ts +41 -0
  88. package/dist/types/environment.d.ts.map +1 -1
  89. package/dist/types/fileSearch.d.ts +5 -0
  90. package/dist/types/fileSearch.d.ts.map +1 -0
  91. package/dist/types/fileSearch.js +1 -0
  92. package/dist/types/hooks.d.ts +11 -2
  93. package/dist/types/hooks.d.ts.map +1 -1
  94. package/dist/types/hooks.js +1 -7
  95. package/dist/types/index.d.ts +5 -0
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/types/index.js +5 -0
  98. package/dist/types/lsp.d.ts +90 -0
  99. package/dist/types/lsp.d.ts.map +1 -0
  100. package/dist/types/lsp.js +4 -0
  101. package/dist/types/messaging.d.ts +6 -11
  102. package/dist/types/messaging.d.ts.map +1 -1
  103. package/dist/types/permissions.d.ts +39 -0
  104. package/dist/types/permissions.d.ts.map +1 -0
  105. package/dist/types/permissions.js +12 -0
  106. package/dist/types/session.d.ts +1 -6
  107. package/dist/types/session.d.ts.map +1 -1
  108. package/dist/types/skills.d.ts +1 -0
  109. package/dist/types/skills.d.ts.map +1 -1
  110. package/dist/types/tools.d.ts +35 -0
  111. package/dist/types/tools.d.ts.map +1 -0
  112. package/dist/types/tools.js +4 -0
  113. package/dist/utils/abortUtils.d.ts +34 -0
  114. package/dist/utils/abortUtils.d.ts.map +1 -0
  115. package/dist/utils/abortUtils.js +92 -0
  116. package/dist/utils/bashHistory.d.ts +4 -0
  117. package/dist/utils/bashHistory.d.ts.map +1 -1
  118. package/dist/utils/bashHistory.js +21 -4
  119. package/dist/utils/bashParser.d.ts +24 -0
  120. package/dist/utils/bashParser.d.ts.map +1 -0
  121. package/dist/utils/bashParser.js +413 -0
  122. package/dist/utils/builtinSubagents.d.ts +7 -0
  123. package/dist/utils/builtinSubagents.d.ts.map +1 -0
  124. package/dist/utils/builtinSubagents.js +65 -0
  125. package/dist/utils/cacheControlUtils.d.ts +8 -33
  126. package/dist/utils/cacheControlUtils.d.ts.map +1 -1
  127. package/dist/utils/cacheControlUtils.js +83 -126
  128. package/dist/utils/constants.d.ts +0 -12
  129. package/dist/utils/constants.d.ts.map +1 -1
  130. package/dist/utils/constants.js +1 -13
  131. package/dist/utils/convertMessagesForAPI.d.ts +2 -1
  132. package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
  133. package/dist/utils/convertMessagesForAPI.js +33 -14
  134. package/dist/utils/fileSearch.d.ts +14 -0
  135. package/dist/utils/fileSearch.d.ts.map +1 -0
  136. package/dist/utils/fileSearch.js +88 -0
  137. package/dist/utils/fileUtils.d.ts +14 -2
  138. package/dist/utils/fileUtils.d.ts.map +1 -1
  139. package/dist/utils/fileUtils.js +101 -17
  140. package/dist/utils/globalLogger.d.ts +0 -14
  141. package/dist/utils/globalLogger.d.ts.map +1 -1
  142. package/dist/utils/globalLogger.js +0 -16
  143. package/dist/utils/markdownParser.d.ts.map +1 -1
  144. package/dist/utils/markdownParser.js +1 -17
  145. package/dist/utils/messageOperations.d.ts +1 -11
  146. package/dist/utils/messageOperations.d.ts.map +1 -1
  147. package/dist/utils/messageOperations.js +7 -24
  148. package/dist/utils/pathEncoder.d.ts +4 -0
  149. package/dist/utils/pathEncoder.d.ts.map +1 -1
  150. package/dist/utils/pathEncoder.js +16 -9
  151. package/dist/utils/pathSafety.d.ts +10 -0
  152. package/dist/utils/pathSafety.d.ts.map +1 -0
  153. package/dist/utils/pathSafety.js +23 -0
  154. package/dist/utils/subagentParser.d.ts +2 -2
  155. package/dist/utils/subagentParser.d.ts.map +1 -1
  156. package/dist/utils/subagentParser.js +10 -7
  157. package/package.json +9 -9
  158. package/src/agent.ts +475 -216
  159. package/src/index.ts +3 -0
  160. package/src/managers/aiManager.ts +107 -111
  161. package/src/managers/backgroundBashManager.ts +4 -3
  162. package/src/managers/hookManager.ts +44 -39
  163. package/src/managers/liveConfigManager.ts +524 -138
  164. package/src/managers/lspManager.ts +434 -0
  165. package/src/managers/messageManager.ts +73 -103
  166. package/src/managers/permissionManager.ts +480 -0
  167. package/src/managers/skillManager.ts +3 -1
  168. package/src/managers/slashCommandManager.ts +1 -2
  169. package/src/managers/subagentManager.ts +116 -159
  170. package/src/managers/toolManager.ts +95 -3
  171. package/src/services/aiService.ts +207 -26
  172. package/src/services/configurationService.ts +762 -0
  173. package/src/services/fileWatcher.ts +5 -6
  174. package/src/services/hook.ts +50 -631
  175. package/src/services/jsonlHandler.ts +84 -100
  176. package/src/services/memory.ts +2 -59
  177. package/src/services/session.ts +338 -213
  178. package/src/tools/bashTool.ts +126 -13
  179. package/src/tools/deleteFileTool.ts +36 -0
  180. package/src/tools/editTool.ts +41 -7
  181. package/src/tools/lspTool.ts +760 -0
  182. package/src/tools/multiEditTool.ts +37 -8
  183. package/src/tools/readTool.ts +125 -2
  184. package/src/tools/skillTool.ts +2 -2
  185. package/src/tools/todoWriteTool.ts +33 -1
  186. package/src/tools/types.ts +15 -9
  187. package/src/tools/writeTool.ts +36 -10
  188. package/src/types/commands.ts +0 -1
  189. package/src/types/config.ts +5 -0
  190. package/src/types/configuration.ts +73 -0
  191. package/src/types/core.ts +11 -0
  192. package/src/types/environment.ts +44 -0
  193. package/src/types/fileSearch.ts +4 -0
  194. package/src/types/hooks.ts +14 -11
  195. package/src/types/index.ts +5 -0
  196. package/src/types/lsp.ts +96 -0
  197. package/src/types/messaging.ts +8 -13
  198. package/src/types/permissions.ts +52 -0
  199. package/src/types/session.ts +3 -8
  200. package/src/types/skills.ts +1 -0
  201. package/src/types/tools.ts +38 -0
  202. package/src/utils/abortUtils.ts +118 -0
  203. package/src/utils/bashHistory.ts +28 -4
  204. package/src/utils/bashParser.ts +444 -0
  205. package/src/utils/builtinSubagents.ts +71 -0
  206. package/src/utils/cacheControlUtils.ts +106 -171
  207. package/src/utils/constants.ts +1 -16
  208. package/src/utils/convertMessagesForAPI.ts +38 -14
  209. package/src/utils/fileSearch.ts +107 -0
  210. package/src/utils/fileUtils.ts +114 -19
  211. package/src/utils/globalLogger.ts +0 -17
  212. package/src/utils/markdownParser.ts +1 -19
  213. package/src/utils/messageOperations.ts +7 -35
  214. package/src/utils/pathEncoder.ts +24 -9
  215. package/src/utils/pathSafety.ts +26 -0
  216. package/src/utils/subagentParser.ts +11 -8
  217. package/dist/constants/events.d.ts +0 -28
  218. package/dist/constants/events.d.ts.map +0 -1
  219. package/dist/constants/events.js +0 -27
  220. package/dist/services/configurationWatcher.d.ts +0 -120
  221. package/dist/services/configurationWatcher.d.ts.map +0 -1
  222. package/dist/services/configurationWatcher.js +0 -439
  223. package/dist/services/memoryStore.d.ts +0 -81
  224. package/dist/services/memoryStore.d.ts.map +0 -1
  225. package/dist/services/memoryStore.js +0 -200
  226. package/dist/types/memoryStore.d.ts +0 -82
  227. package/dist/types/memoryStore.d.ts.map +0 -1
  228. package/dist/types/memoryStore.js +0 -7
  229. package/dist/utils/configResolver.d.ts +0 -65
  230. package/dist/utils/configResolver.d.ts.map +0 -1
  231. package/dist/utils/configResolver.js +0 -210
  232. package/src/constants/events.ts +0 -38
  233. package/src/services/configurationWatcher.ts +0 -622
  234. package/src/services/memoryStore.ts +0 -279
  235. package/src/types/memoryStore.ts +0 -94
  236. package/src/utils/configResolver.ts +0 -302
@@ -5,10 +5,10 @@
5
5
 
6
6
  import { appendFile, readFile, writeFile, stat, mkdir } from "fs/promises";
7
7
  import { dirname } from "path";
8
- import { getLastLine, readFirstLine } from "../utils/fileUtils.js";
8
+ import { getLastLine } from "../utils/fileUtils.js";
9
9
 
10
10
  import type { Message } from "../types/index.js";
11
- import type { SessionMessage, SessionMetadataLine } from "../types/session.js";
11
+ import type { SessionMessage, SessionFilename } from "../types/session.js";
12
12
 
13
13
  /**
14
14
  * JSONL write options
@@ -31,31 +31,14 @@ export class JsonlHandler {
31
31
  }
32
32
 
33
33
  /**
34
- * Create a new session file with metadata header
34
+ * Create a new session file (simplified - no metadata header)
35
35
  */
36
- async createSession(
37
- filePath: string,
38
- sessionId: string,
39
- workdir: string,
40
- sessionType: "main" | "subagent" = "main",
41
- parentSessionId?: string,
42
- subagentType?: string,
43
- ): Promise<void> {
44
- const metadataLine: SessionMetadataLine = {
45
- __meta__: true,
46
- sessionId,
47
- sessionType,
48
- ...(parentSessionId && { parentSessionId }),
49
- ...(subagentType && { subagentType }),
50
- workdir,
51
- startedAt: new Date().toISOString(),
52
- };
53
-
36
+ async createSession(filePath: string): Promise<void> {
54
37
  // Ensure directory exists
55
38
  await this.ensureDirectory(dirname(filePath));
56
39
 
57
- // Write metadata line as first line
58
- await writeFile(filePath, JSON.stringify(metadataLine) + "\n", "utf8");
40
+ // Create empty file (no metadata line needed)
41
+ await writeFile(filePath, "", "utf8");
59
42
  }
60
43
 
61
44
  /**
@@ -131,8 +114,7 @@ export class JsonlHandler {
131
114
  }
132
115
 
133
116
  /**
134
- * Read all messages from JSONL file
135
- * Includes metadata handling for backward compatibility
117
+ * Read all messages from JSONL file (simplified - no metadata handling)
136
118
  */
137
119
  async read(filePath: string): Promise<SessionMessage[]> {
138
120
  try {
@@ -148,30 +130,13 @@ export class JsonlHandler {
148
130
 
149
131
  const allMessages: SessionMessage[] = [];
150
132
 
151
- // Skip metadata line if present (first line with __meta__: true)
152
- let startIndex = 0;
153
- if (lines.length > 0) {
154
- try {
155
- const firstLine = JSON.parse(lines[0]);
156
- if (firstLine.__meta__ === true) {
157
- startIndex = 1; // Skip metadata line
158
- }
159
- } catch (error) {
160
- // If first line is not valid JSON, throw error with line number
161
- if (lines[0].trim().length > 0) {
162
- // Only throw if line is not empty
163
- throw new Error(`Invalid JSON at line 1: ${error}`);
164
- }
165
- }
166
- }
167
-
168
- // Parse all messages
169
- for (let i = startIndex; i < lines.length; i++) {
133
+ // Parse all messages (no metadata line to skip)
134
+ for (let i = 0; i < lines.length; i++) {
170
135
  const line = lines[i];
171
136
 
172
137
  try {
173
138
  const message = JSON.parse(line) as SessionMessage;
174
- allMessages.push(message);
139
+ if (message.timestamp) allMessages.push(message);
175
140
  } catch (error) {
176
141
  // Throw error for invalid JSON lines with line number
177
142
  throw new Error(`Invalid JSON at line ${i + 1}: ${error}`);
@@ -188,7 +153,7 @@ export class JsonlHandler {
188
153
  }
189
154
 
190
155
  /**
191
- * Get the last message from JSONL file using efficient file reading
156
+ * Get the last message from JSONL file using efficient file reading (simplified)
192
157
  */
193
158
  async getLastMessage(filePath: string): Promise<SessionMessage | null> {
194
159
  try {
@@ -211,14 +176,6 @@ export class JsonlHandler {
211
176
 
212
177
  try {
213
178
  const parsed = JSON.parse(lastLine);
214
-
215
- // Skip metadata line
216
- if (parsed.__meta__ === true) {
217
- // If the last line is metadata, the file only contains metadata
218
- return null;
219
- }
220
-
221
- // Found a valid message
222
179
  return parsed as SessionMessage;
223
180
  } catch (error) {
224
181
  throw new Error(`Invalid JSON in last line of "${filePath}": ${error}`);
@@ -230,52 +187,6 @@ export class JsonlHandler {
230
187
  }
231
188
  }
232
189
 
233
- /**
234
- * Read session metadata from first line (streaming - only reads first line)
235
- */
236
- async readMetadata(filePath: string): Promise<SessionMetadataLine | null> {
237
- try {
238
- // First check if file exists
239
- try {
240
- await stat(filePath);
241
- } catch (err) {
242
- if ((err as NodeJS.ErrnoException).code === "ENOENT") {
243
- return null;
244
- }
245
- throw err;
246
- }
247
-
248
- // Read the first line efficiently
249
- const firstLine = await readFirstLine(filePath);
250
-
251
- if (!firstLine) {
252
- return null; // Empty file or first line
253
- }
254
-
255
- try {
256
- const parsed = JSON.parse(firstLine);
257
- if (parsed.__meta__ === true) {
258
- return parsed as SessionMetadataLine;
259
- } else {
260
- return null; // First line is not metadata
261
- }
262
- } catch {
263
- return null; // Invalid JSON on first line
264
- }
265
- } catch (error) {
266
- throw new Error(`Failed to read metadata from "${filePath}": ${error}`);
267
- }
268
- }
269
-
270
- /**
271
- * Check if a session file has metadata (first line check only)
272
- * Very efficient - only reads first line
273
- */
274
- async hasMetadata(filePath: string): Promise<boolean> {
275
- const metadata = await this.readMetadata(filePath);
276
- return metadata !== null;
277
- }
278
-
279
190
  /**
280
191
  * Validate messages before writing
281
192
  */
@@ -316,4 +227,77 @@ export class JsonlHandler {
316
227
  }
317
228
  }
318
229
  }
230
+
231
+ /**
232
+ * Parse session metadata from filename
233
+ * @param filePath - Path to the session file
234
+ * @returns Parsed session filename metadata
235
+ */
236
+ parseSessionFilename(filePath: string): SessionFilename {
237
+ // Extract filename from path
238
+ const filename = filePath.split("/").pop() || "";
239
+
240
+ // Check if it's a subagent session
241
+ const subagentMatch = filename.match(
242
+ /^subagent-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/,
243
+ );
244
+ if (subagentMatch) {
245
+ return {
246
+ sessionId: subagentMatch[1],
247
+ sessionType: "subagent",
248
+ };
249
+ }
250
+
251
+ // Check if it's a main session
252
+ const mainMatch = filename.match(
253
+ /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/,
254
+ );
255
+ if (mainMatch) {
256
+ return {
257
+ sessionId: mainMatch[1],
258
+ sessionType: "main",
259
+ };
260
+ }
261
+
262
+ throw new Error(`Invalid session filename format: ${filename}`);
263
+ }
264
+
265
+ /**
266
+ * Validate filename format
267
+ * @param filename - Filename to validate
268
+ * @returns True if valid, false otherwise
269
+ */
270
+ isValidSessionFilename(filename: string): boolean {
271
+ // UUID validation patterns
272
+ const uuidPattern =
273
+ /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/;
274
+ const subagentPattern =
275
+ /^subagent-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/;
276
+
277
+ return uuidPattern.test(filename) || subagentPattern.test(filename);
278
+ }
279
+
280
+ /**
281
+ * Generate simple filename for sessions
282
+ * @param sessionId - UUID session identifier
283
+ * @param sessionType - Type of session ("main" or "subagent")
284
+ * @returns Generated filename
285
+ */
286
+ generateSessionFilename(
287
+ sessionId: string,
288
+ sessionType: "main" | "subagent",
289
+ ): string {
290
+ // Validate sessionId is a valid UUID
291
+ const uuidPattern =
292
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
293
+ if (!uuidPattern.test(sessionId)) {
294
+ throw new Error(`Invalid session ID format: ${sessionId}`);
295
+ }
296
+
297
+ if (sessionType === "subagent") {
298
+ return `subagent-${sessionId}.jsonl`;
299
+ } else {
300
+ return `${sessionId}.jsonl`;
301
+ }
302
+ }
319
303
  }
@@ -1,28 +1,8 @@
1
1
  import { promises as fs } from "fs";
2
2
  import path from "path";
3
3
  import { USER_MEMORY_FILE, DATA_DIRECTORY } from "../utils/constants.js";
4
- import { MemoryStoreService } from "./memoryStore.js";
5
4
  import { logger } from "../utils/globalLogger.js";
6
5
 
7
- // Global memory store instance for project memory files
8
- let globalMemoryStore: MemoryStoreService | null = null;
9
-
10
- /**
11
- * Initialize global memory store
12
- */
13
- export const initializeMemoryStore = (
14
- memoryStore: MemoryStoreService,
15
- ): void => {
16
- globalMemoryStore = memoryStore;
17
- };
18
-
19
- /**
20
- * Get current memory store instance
21
- */
22
- export const getMemoryStore = (): MemoryStoreService | null => {
23
- return globalMemoryStore;
24
- };
25
-
26
6
  // Project memory related methods
27
7
  export const isMemoryMessage = (message: string): boolean => {
28
8
  return message.trim().startsWith("#");
@@ -65,20 +45,6 @@ export const addMemory = async (
65
45
  // Write file
66
46
  await fs.writeFile(memoryFilePath, updatedContent, "utf-8");
67
47
 
68
- // Update memory store if available
69
- if (globalMemoryStore) {
70
- try {
71
- await globalMemoryStore.updateContent(memoryFilePath);
72
- } catch (error) {
73
- logger.warn(
74
- `Failed to update memory store for ${memoryFilePath}:`,
75
- error,
76
- );
77
- }
78
- } else {
79
- logger.debug("No global memory store available, skipping store update");
80
- }
81
-
82
48
  logger.debug(`Memory added to ${memoryFilePath}:`, message);
83
49
  } catch (error) {
84
50
  logger.error("Failed to add memory:", error);
@@ -156,34 +122,11 @@ export const getUserMemoryContent = async (): Promise<string> => {
156
122
  }
157
123
  };
158
124
 
159
- // Read project memory file content with memory store optimization
125
+ // Read project memory file content
160
126
  export const readMemoryFile = async (workdir: string): Promise<string> => {
161
127
  const memoryFilePath = path.join(workdir, "AGENTS.md");
162
128
 
163
- // Use memory store if available for optimized access
164
- if (globalMemoryStore) {
165
- logger.debug("Using memory store for optimized access", { memoryFilePath });
166
- try {
167
- const content = await globalMemoryStore.getContent(memoryFilePath);
168
- logger.debug("Memory content retrieved from store successfully", {
169
- memoryFilePath,
170
- contentLength: content.length,
171
- });
172
- return content;
173
- } catch (error) {
174
- // Fallback to direct file access on memory store error
175
- logger.warn(
176
- `Memory store access failed for ${memoryFilePath}, falling back to file system:`,
177
- error,
178
- );
179
- }
180
- } else {
181
- logger.debug("No memory store available, using direct file access", {
182
- memoryFilePath,
183
- });
184
- }
185
-
186
- // Fallback to direct file access (original behavior)
129
+ // Direct file access
187
130
  try {
188
131
  const content = await fs.readFile(memoryFilePath, "utf-8");
189
132
  logger.debug("Memory file read successfully via direct file access", {