@lleverage-ai/agent-sdk 0.0.1

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 (327) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2321 -0
  3. package/dist/agent.d.ts +52 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +2122 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/backend.d.ts +378 -0
  8. package/dist/backend.d.ts.map +1 -0
  9. package/dist/backend.js +71 -0
  10. package/dist/backend.js.map +1 -0
  11. package/dist/backends/composite.d.ts +258 -0
  12. package/dist/backends/composite.d.ts.map +1 -0
  13. package/dist/backends/composite.js +437 -0
  14. package/dist/backends/composite.js.map +1 -0
  15. package/dist/backends/filesystem.d.ts +268 -0
  16. package/dist/backends/filesystem.d.ts.map +1 -0
  17. package/dist/backends/filesystem.js +623 -0
  18. package/dist/backends/filesystem.js.map +1 -0
  19. package/dist/backends/index.d.ts +14 -0
  20. package/dist/backends/index.d.ts.map +1 -0
  21. package/dist/backends/index.js +14 -0
  22. package/dist/backends/index.js.map +1 -0
  23. package/dist/backends/persistent.d.ts +312 -0
  24. package/dist/backends/persistent.d.ts.map +1 -0
  25. package/dist/backends/persistent.js +519 -0
  26. package/dist/backends/persistent.js.map +1 -0
  27. package/dist/backends/sandbox.d.ts +315 -0
  28. package/dist/backends/sandbox.d.ts.map +1 -0
  29. package/dist/backends/sandbox.js +490 -0
  30. package/dist/backends/sandbox.js.map +1 -0
  31. package/dist/backends/state.d.ts +225 -0
  32. package/dist/backends/state.d.ts.map +1 -0
  33. package/dist/backends/state.js +396 -0
  34. package/dist/backends/state.js.map +1 -0
  35. package/dist/checkpointer/file-saver.d.ts +182 -0
  36. package/dist/checkpointer/file-saver.d.ts.map +1 -0
  37. package/dist/checkpointer/file-saver.js +298 -0
  38. package/dist/checkpointer/file-saver.js.map +1 -0
  39. package/dist/checkpointer/index.d.ts +40 -0
  40. package/dist/checkpointer/index.d.ts.map +1 -0
  41. package/dist/checkpointer/index.js +40 -0
  42. package/dist/checkpointer/index.js.map +1 -0
  43. package/dist/checkpointer/kv-saver.d.ts +142 -0
  44. package/dist/checkpointer/kv-saver.d.ts.map +1 -0
  45. package/dist/checkpointer/kv-saver.js +176 -0
  46. package/dist/checkpointer/kv-saver.js.map +1 -0
  47. package/dist/checkpointer/memory-saver.d.ts +158 -0
  48. package/dist/checkpointer/memory-saver.d.ts.map +1 -0
  49. package/dist/checkpointer/memory-saver.js +222 -0
  50. package/dist/checkpointer/memory-saver.js.map +1 -0
  51. package/dist/checkpointer/types.d.ts +353 -0
  52. package/dist/checkpointer/types.d.ts.map +1 -0
  53. package/dist/checkpointer/types.js +159 -0
  54. package/dist/checkpointer/types.js.map +1 -0
  55. package/dist/context-manager.d.ts +627 -0
  56. package/dist/context-manager.d.ts.map +1 -0
  57. package/dist/context-manager.js +1039 -0
  58. package/dist/context-manager.js.map +1 -0
  59. package/dist/context.d.ts +57 -0
  60. package/dist/context.d.ts.map +1 -0
  61. package/dist/context.js +76 -0
  62. package/dist/context.js.map +1 -0
  63. package/dist/errors/index.d.ts +611 -0
  64. package/dist/errors/index.d.ts.map +1 -0
  65. package/dist/errors/index.js +1023 -0
  66. package/dist/errors/index.js.map +1 -0
  67. package/dist/generation-helpers.d.ts +126 -0
  68. package/dist/generation-helpers.d.ts.map +1 -0
  69. package/dist/generation-helpers.js +181 -0
  70. package/dist/generation-helpers.js.map +1 -0
  71. package/dist/hooks/audit.d.ts +210 -0
  72. package/dist/hooks/audit.d.ts.map +1 -0
  73. package/dist/hooks/audit.js +305 -0
  74. package/dist/hooks/audit.js.map +1 -0
  75. package/dist/hooks/cache.d.ts +180 -0
  76. package/dist/hooks/cache.d.ts.map +1 -0
  77. package/dist/hooks/cache.js +273 -0
  78. package/dist/hooks/cache.js.map +1 -0
  79. package/dist/hooks/guardrails.d.ts +145 -0
  80. package/dist/hooks/guardrails.d.ts.map +1 -0
  81. package/dist/hooks/guardrails.js +326 -0
  82. package/dist/hooks/guardrails.js.map +1 -0
  83. package/dist/hooks/index.d.ts +18 -0
  84. package/dist/hooks/index.d.ts.map +1 -0
  85. package/dist/hooks/index.js +32 -0
  86. package/dist/hooks/index.js.map +1 -0
  87. package/dist/hooks/logging.d.ts +193 -0
  88. package/dist/hooks/logging.d.ts.map +1 -0
  89. package/dist/hooks/logging.js +345 -0
  90. package/dist/hooks/logging.js.map +1 -0
  91. package/dist/hooks/parallel-guardrails.d.ts +268 -0
  92. package/dist/hooks/parallel-guardrails.d.ts.map +1 -0
  93. package/dist/hooks/parallel-guardrails.js +416 -0
  94. package/dist/hooks/parallel-guardrails.js.map +1 -0
  95. package/dist/hooks/rate-limit.d.ts +305 -0
  96. package/dist/hooks/rate-limit.d.ts.map +1 -0
  97. package/dist/hooks/rate-limit.js +372 -0
  98. package/dist/hooks/rate-limit.js.map +1 -0
  99. package/dist/hooks/retry.d.ts +144 -0
  100. package/dist/hooks/retry.d.ts.map +1 -0
  101. package/dist/hooks/retry.js +210 -0
  102. package/dist/hooks/retry.js.map +1 -0
  103. package/dist/hooks/secrets.d.ts +174 -0
  104. package/dist/hooks/secrets.d.ts.map +1 -0
  105. package/dist/hooks/secrets.js +306 -0
  106. package/dist/hooks/secrets.js.map +1 -0
  107. package/dist/hooks.d.ts +229 -0
  108. package/dist/hooks.d.ts.map +1 -0
  109. package/dist/hooks.js +352 -0
  110. package/dist/hooks.js.map +1 -0
  111. package/dist/index.d.ts +97 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +182 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/mcp/env.d.ts +25 -0
  116. package/dist/mcp/env.d.ts.map +1 -0
  117. package/dist/mcp/env.js +18 -0
  118. package/dist/mcp/env.js.map +1 -0
  119. package/dist/mcp/index.d.ts +16 -0
  120. package/dist/mcp/index.d.ts.map +1 -0
  121. package/dist/mcp/index.js +17 -0
  122. package/dist/mcp/index.js.map +1 -0
  123. package/dist/mcp/manager.d.ts +184 -0
  124. package/dist/mcp/manager.d.ts.map +1 -0
  125. package/dist/mcp/manager.js +446 -0
  126. package/dist/mcp/manager.js.map +1 -0
  127. package/dist/mcp/types.d.ts +58 -0
  128. package/dist/mcp/types.d.ts.map +1 -0
  129. package/dist/mcp/types.js +7 -0
  130. package/dist/mcp/types.js.map +1 -0
  131. package/dist/mcp/validation.d.ts +119 -0
  132. package/dist/mcp/validation.d.ts.map +1 -0
  133. package/dist/mcp/validation.js +407 -0
  134. package/dist/mcp/validation.js.map +1 -0
  135. package/dist/mcp/virtual-server.d.ts +78 -0
  136. package/dist/mcp/virtual-server.d.ts.map +1 -0
  137. package/dist/mcp/virtual-server.js +137 -0
  138. package/dist/mcp/virtual-server.js.map +1 -0
  139. package/dist/memory/filesystem-store.d.ts +217 -0
  140. package/dist/memory/filesystem-store.d.ts.map +1 -0
  141. package/dist/memory/filesystem-store.js +343 -0
  142. package/dist/memory/filesystem-store.js.map +1 -0
  143. package/dist/memory/index.d.ts +46 -0
  144. package/dist/memory/index.d.ts.map +1 -0
  145. package/dist/memory/index.js +46 -0
  146. package/dist/memory/index.js.map +1 -0
  147. package/dist/memory/loader.d.ts +396 -0
  148. package/dist/memory/loader.d.ts.map +1 -0
  149. package/dist/memory/loader.js +419 -0
  150. package/dist/memory/loader.js.map +1 -0
  151. package/dist/memory/permissions.d.ts +282 -0
  152. package/dist/memory/permissions.d.ts.map +1 -0
  153. package/dist/memory/permissions.js +297 -0
  154. package/dist/memory/permissions.js.map +1 -0
  155. package/dist/memory/rules.d.ts +249 -0
  156. package/dist/memory/rules.d.ts.map +1 -0
  157. package/dist/memory/rules.js +362 -0
  158. package/dist/memory/rules.js.map +1 -0
  159. package/dist/memory/store.d.ts +286 -0
  160. package/dist/memory/store.d.ts.map +1 -0
  161. package/dist/memory/store.js +263 -0
  162. package/dist/memory/store.js.map +1 -0
  163. package/dist/middleware/apply.d.ts +73 -0
  164. package/dist/middleware/apply.d.ts.map +1 -0
  165. package/dist/middleware/apply.js +219 -0
  166. package/dist/middleware/apply.js.map +1 -0
  167. package/dist/middleware/context.d.ts +33 -0
  168. package/dist/middleware/context.d.ts.map +1 -0
  169. package/dist/middleware/context.js +176 -0
  170. package/dist/middleware/context.js.map +1 -0
  171. package/dist/middleware/index.d.ts +31 -0
  172. package/dist/middleware/index.d.ts.map +1 -0
  173. package/dist/middleware/index.js +32 -0
  174. package/dist/middleware/index.js.map +1 -0
  175. package/dist/middleware/logging.d.ts +137 -0
  176. package/dist/middleware/logging.d.ts.map +1 -0
  177. package/dist/middleware/logging.js +374 -0
  178. package/dist/middleware/logging.js.map +1 -0
  179. package/dist/middleware/types.d.ts +183 -0
  180. package/dist/middleware/types.d.ts.map +1 -0
  181. package/dist/middleware/types.js +11 -0
  182. package/dist/middleware/types.js.map +1 -0
  183. package/dist/observability/events.d.ts +183 -0
  184. package/dist/observability/events.d.ts.map +1 -0
  185. package/dist/observability/events.js +305 -0
  186. package/dist/observability/events.js.map +1 -0
  187. package/dist/observability/index.d.ts +55 -0
  188. package/dist/observability/index.d.ts.map +1 -0
  189. package/dist/observability/index.js +87 -0
  190. package/dist/observability/index.js.map +1 -0
  191. package/dist/observability/logger.d.ts +318 -0
  192. package/dist/observability/logger.d.ts.map +1 -0
  193. package/dist/observability/logger.js +436 -0
  194. package/dist/observability/logger.js.map +1 -0
  195. package/dist/observability/metrics.d.ts +341 -0
  196. package/dist/observability/metrics.d.ts.map +1 -0
  197. package/dist/observability/metrics.js +490 -0
  198. package/dist/observability/metrics.js.map +1 -0
  199. package/dist/observability/preset.d.ts +161 -0
  200. package/dist/observability/preset.d.ts.map +1 -0
  201. package/dist/observability/preset.js +133 -0
  202. package/dist/observability/preset.js.map +1 -0
  203. package/dist/observability/streaming.d.ts +113 -0
  204. package/dist/observability/streaming.d.ts.map +1 -0
  205. package/dist/observability/streaming.js +114 -0
  206. package/dist/observability/streaming.js.map +1 -0
  207. package/dist/observability/tracing.d.ts +378 -0
  208. package/dist/observability/tracing.d.ts.map +1 -0
  209. package/dist/observability/tracing.js +539 -0
  210. package/dist/observability/tracing.js.map +1 -0
  211. package/dist/plugins.d.ts +55 -0
  212. package/dist/plugins.d.ts.map +1 -0
  213. package/dist/plugins.js +63 -0
  214. package/dist/plugins.js.map +1 -0
  215. package/dist/presets/index.d.ts +7 -0
  216. package/dist/presets/index.d.ts.map +1 -0
  217. package/dist/presets/index.js +7 -0
  218. package/dist/presets/index.js.map +1 -0
  219. package/dist/presets/production.d.ts +262 -0
  220. package/dist/presets/production.d.ts.map +1 -0
  221. package/dist/presets/production.js +295 -0
  222. package/dist/presets/production.js.map +1 -0
  223. package/dist/security/index.d.ts +179 -0
  224. package/dist/security/index.d.ts.map +1 -0
  225. package/dist/security/index.js +323 -0
  226. package/dist/security/index.js.map +1 -0
  227. package/dist/subagents/advanced.d.ts +413 -0
  228. package/dist/subagents/advanced.d.ts.map +1 -0
  229. package/dist/subagents/advanced.js +396 -0
  230. package/dist/subagents/advanced.js.map +1 -0
  231. package/dist/subagents/index.d.ts +14 -0
  232. package/dist/subagents/index.d.ts.map +1 -0
  233. package/dist/subagents/index.js +15 -0
  234. package/dist/subagents/index.js.map +1 -0
  235. package/dist/subagents.d.ts +73 -0
  236. package/dist/subagents.d.ts.map +1 -0
  237. package/dist/subagents.js +213 -0
  238. package/dist/subagents.js.map +1 -0
  239. package/dist/task-store/file-store.d.ts +76 -0
  240. package/dist/task-store/file-store.d.ts.map +1 -0
  241. package/dist/task-store/file-store.js +190 -0
  242. package/dist/task-store/file-store.js.map +1 -0
  243. package/dist/task-store/index.d.ts +11 -0
  244. package/dist/task-store/index.d.ts.map +1 -0
  245. package/dist/task-store/index.js +10 -0
  246. package/dist/task-store/index.js.map +1 -0
  247. package/dist/task-store/kv-store.d.ts +140 -0
  248. package/dist/task-store/kv-store.d.ts.map +1 -0
  249. package/dist/task-store/kv-store.js +169 -0
  250. package/dist/task-store/kv-store.js.map +1 -0
  251. package/dist/task-store/memory-store.d.ts +66 -0
  252. package/dist/task-store/memory-store.d.ts.map +1 -0
  253. package/dist/task-store/memory-store.js +125 -0
  254. package/dist/task-store/memory-store.js.map +1 -0
  255. package/dist/task-store/types.d.ts +235 -0
  256. package/dist/task-store/types.d.ts.map +1 -0
  257. package/dist/task-store/types.js +110 -0
  258. package/dist/task-store/types.js.map +1 -0
  259. package/dist/testing/assertions.d.ts +401 -0
  260. package/dist/testing/assertions.d.ts.map +1 -0
  261. package/dist/testing/assertions.js +630 -0
  262. package/dist/testing/assertions.js.map +1 -0
  263. package/dist/testing/index.d.ts +343 -0
  264. package/dist/testing/index.d.ts.map +1 -0
  265. package/dist/testing/index.js +360 -0
  266. package/dist/testing/index.js.map +1 -0
  267. package/dist/testing/mock-agent.d.ts +214 -0
  268. package/dist/testing/mock-agent.d.ts.map +1 -0
  269. package/dist/testing/mock-agent.js +448 -0
  270. package/dist/testing/mock-agent.js.map +1 -0
  271. package/dist/testing/recorder.d.ts +288 -0
  272. package/dist/testing/recorder.d.ts.map +1 -0
  273. package/dist/testing/recorder.js +499 -0
  274. package/dist/testing/recorder.js.map +1 -0
  275. package/dist/tools/execute.d.ts +104 -0
  276. package/dist/tools/execute.d.ts.map +1 -0
  277. package/dist/tools/execute.js +191 -0
  278. package/dist/tools/execute.js.map +1 -0
  279. package/dist/tools/factory.d.ts +260 -0
  280. package/dist/tools/factory.d.ts.map +1 -0
  281. package/dist/tools/factory.js +241 -0
  282. package/dist/tools/factory.js.map +1 -0
  283. package/dist/tools/filesystem.d.ts +215 -0
  284. package/dist/tools/filesystem.d.ts.map +1 -0
  285. package/dist/tools/filesystem.js +311 -0
  286. package/dist/tools/filesystem.js.map +1 -0
  287. package/dist/tools/index.d.ts +33 -0
  288. package/dist/tools/index.d.ts.map +1 -0
  289. package/dist/tools/index.js +33 -0
  290. package/dist/tools/index.js.map +1 -0
  291. package/dist/tools/search.d.ts +59 -0
  292. package/dist/tools/search.d.ts.map +1 -0
  293. package/dist/tools/search.js +94 -0
  294. package/dist/tools/search.js.map +1 -0
  295. package/dist/tools/skills.d.ts +354 -0
  296. package/dist/tools/skills.d.ts.map +1 -0
  297. package/dist/tools/skills.js +413 -0
  298. package/dist/tools/skills.js.map +1 -0
  299. package/dist/tools/task.d.ts +272 -0
  300. package/dist/tools/task.d.ts.map +1 -0
  301. package/dist/tools/task.js +521 -0
  302. package/dist/tools/task.js.map +1 -0
  303. package/dist/tools/todos.d.ts +131 -0
  304. package/dist/tools/todos.d.ts.map +1 -0
  305. package/dist/tools/todos.js +120 -0
  306. package/dist/tools/todos.js.map +1 -0
  307. package/dist/tools/tool-registry.d.ts +424 -0
  308. package/dist/tools/tool-registry.d.ts.map +1 -0
  309. package/dist/tools/tool-registry.js +607 -0
  310. package/dist/tools/tool-registry.js.map +1 -0
  311. package/dist/tools/user-interaction.d.ts +116 -0
  312. package/dist/tools/user-interaction.d.ts.map +1 -0
  313. package/dist/tools/user-interaction.js +147 -0
  314. package/dist/tools/user-interaction.js.map +1 -0
  315. package/dist/tools/utils.d.ts +124 -0
  316. package/dist/tools/utils.d.ts.map +1 -0
  317. package/dist/tools/utils.js +189 -0
  318. package/dist/tools/utils.js.map +1 -0
  319. package/dist/tools.d.ts +74 -0
  320. package/dist/tools.d.ts.map +1 -0
  321. package/dist/tools.js +73 -0
  322. package/dist/tools.js.map +1 -0
  323. package/dist/types.d.ts +2421 -0
  324. package/dist/types.d.ts.map +1 -0
  325. package/dist/types.js +55 -0
  326. package/dist/types.js.map +1 -0
  327. package/package.json +81 -0
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Filesystem-based memory store implementation.
3
+ *
4
+ * Stores memory documents as markdown files on the local filesystem.
5
+ * Supports YAML frontmatter for metadata.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { FilesystemMemoryStore } from "@lleverage-ai/agent-sdk";
10
+ *
11
+ * const store = new FilesystemMemoryStore();
12
+ *
13
+ * // Read user-level memory
14
+ * const userMemory = await store.read("~/.deepagents/my-agent/agent.md");
15
+ *
16
+ * // Write project memory
17
+ * await store.write("/project/.deepagents/agent.md", {
18
+ * path: "/project/.deepagents/agent.md",
19
+ * metadata: {},
20
+ * content: "# Project Rules",
21
+ * modifiedAt: Date.now(),
22
+ * });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import type { MemoryDocument, MemoryStore } from "./store.js";
28
+ /**
29
+ * Configuration options for FilesystemMemoryStore.
30
+ *
31
+ * @category Memory
32
+ */
33
+ export interface FilesystemMemoryStoreOptions {
34
+ /**
35
+ * Override the home directory for `~` expansion.
36
+ *
37
+ * Useful for testing or running in sandboxed environments.
38
+ *
39
+ * @defaultValue os.homedir()
40
+ */
41
+ homeDir?: string;
42
+ /**
43
+ * Create parent directories if they don't exist when writing.
44
+ *
45
+ * @defaultValue true
46
+ */
47
+ createDirs?: boolean;
48
+ /**
49
+ * File extension to use for memory documents.
50
+ *
51
+ * @defaultValue ".md"
52
+ */
53
+ extension?: string;
54
+ }
55
+ /**
56
+ * Filesystem-based implementation of MemoryStore.
57
+ *
58
+ * Stores memory documents as markdown files on disk.
59
+ * Handles `~` expansion for home directory paths.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * import { FilesystemMemoryStore } from "@lleverage-ai/agent-sdk";
64
+ *
65
+ * // Create with default options
66
+ * const store = new FilesystemMemoryStore();
67
+ *
68
+ * // Create with custom home directory
69
+ * const store = new FilesystemMemoryStore({
70
+ * homeDir: "/custom/home",
71
+ * });
72
+ *
73
+ * // Read a memory document
74
+ * const doc = await store.read("~/.deepagents/my-agent/agent.md");
75
+ *
76
+ * // List all memory documents
77
+ * const paths = await store.list("~/.deepagents/my-agent");
78
+ * ```
79
+ *
80
+ * @category Memory
81
+ */
82
+ export declare class FilesystemMemoryStore implements MemoryStore {
83
+ private readonly homeDir;
84
+ private readonly createDirs;
85
+ private readonly extension;
86
+ /**
87
+ * Create a new FilesystemMemoryStore.
88
+ *
89
+ * @param options - Configuration options
90
+ */
91
+ constructor(options?: FilesystemMemoryStoreOptions);
92
+ /**
93
+ * Expand `~` in paths to the home directory.
94
+ *
95
+ * @param filePath - Path that may contain `~`
96
+ * @returns Expanded path
97
+ *
98
+ * @internal
99
+ */
100
+ private expandPath;
101
+ /**
102
+ * Read a memory document from the filesystem.
103
+ *
104
+ * @param filePath - Path to the memory document
105
+ * @returns The memory document if found, undefined otherwise
106
+ */
107
+ read(filePath: string): Promise<MemoryDocument | undefined>;
108
+ /**
109
+ * Write a memory document to the filesystem.
110
+ *
111
+ * @param filePath - Path to write to
112
+ * @param document - Document to write
113
+ */
114
+ write(filePath: string, document: MemoryDocument): Promise<void>;
115
+ /**
116
+ * Delete a memory document from the filesystem.
117
+ *
118
+ * @param filePath - Path to delete
119
+ * @returns True if deleted, false if it didn't exist
120
+ */
121
+ delete(filePath: string): Promise<boolean>;
122
+ /**
123
+ * List memory documents matching a pattern.
124
+ *
125
+ * @param pattern - Directory or glob pattern to search
126
+ * @returns Array of paths to matching documents
127
+ */
128
+ list(pattern?: string): Promise<string[]>;
129
+ /**
130
+ * Check if a memory document exists.
131
+ *
132
+ * @param filePath - Path to check
133
+ * @returns True if the file exists
134
+ */
135
+ exists(filePath: string): Promise<boolean>;
136
+ /**
137
+ * List all memory documents in a directory recursively.
138
+ *
139
+ * @param dirPath - Directory to list
140
+ * @returns Array of file paths
141
+ *
142
+ * @internal
143
+ */
144
+ private listDirectory;
145
+ }
146
+ /**
147
+ * In-memory implementation of MemoryStore for testing.
148
+ *
149
+ * Documents are stored in a Map and not persisted.
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const store = new InMemoryMemoryStore();
154
+ *
155
+ * await store.write("/test/doc.md", {
156
+ * path: "/test/doc.md",
157
+ * metadata: {},
158
+ * content: "# Test",
159
+ * modifiedAt: Date.now(),
160
+ * });
161
+ *
162
+ * const doc = await store.read("/test/doc.md");
163
+ * ```
164
+ *
165
+ * @category Memory
166
+ */
167
+ export declare class InMemoryMemoryStore implements MemoryStore {
168
+ private documents;
169
+ /**
170
+ * Read a document from memory.
171
+ */
172
+ read(path: string): Promise<MemoryDocument | undefined>;
173
+ /**
174
+ * Write a document to memory.
175
+ */
176
+ write(path: string, document: MemoryDocument): Promise<void>;
177
+ /**
178
+ * Delete a document from memory.
179
+ */
180
+ delete(path: string): Promise<boolean>;
181
+ /**
182
+ * List all documents matching a prefix.
183
+ */
184
+ list(pattern?: string): Promise<string[]>;
185
+ /**
186
+ * Check if a document exists.
187
+ */
188
+ exists(path: string): Promise<boolean>;
189
+ /**
190
+ * Clear all documents.
191
+ *
192
+ * Useful for test cleanup.
193
+ */
194
+ clear(): void;
195
+ /**
196
+ * Get the number of documents.
197
+ */
198
+ get size(): number;
199
+ }
200
+ /**
201
+ * Create a new FilesystemMemoryStore.
202
+ *
203
+ * @param options - Configuration options
204
+ * @returns A new FilesystemMemoryStore instance
205
+ *
206
+ * @category Memory
207
+ */
208
+ export declare function createFilesystemMemoryStore(options?: FilesystemMemoryStoreOptions): FilesystemMemoryStore;
209
+ /**
210
+ * Create a new InMemoryMemoryStore.
211
+ *
212
+ * @returns A new InMemoryMemoryStore instance
213
+ *
214
+ * @category Memory
215
+ */
216
+ export declare function createInMemoryMemoryStore(): InMemoryMemoryStore;
217
+ //# sourceMappingURL=filesystem-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-store.d.ts","sourceRoot":"","sources":["../../src/memory/filesystem-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9D;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;OAIG;gBACS,OAAO,GAAE,4BAAiC;IAMtD;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAOlB;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAwBjE;;;;;OAKG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtE;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD;;;;;OAKG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB/C;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhD;;;;;;;OAOG;YACW,aAAa;CA2B5B;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,SAAS,CAAqC;IAEtD;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAW7D;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU/C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAMD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CAEvB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D"}
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Filesystem-based memory store implementation.
3
+ *
4
+ * Stores memory documents as markdown files on the local filesystem.
5
+ * Supports YAML frontmatter for metadata.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { FilesystemMemoryStore } from "@lleverage-ai/agent-sdk";
10
+ *
11
+ * const store = new FilesystemMemoryStore();
12
+ *
13
+ * // Read user-level memory
14
+ * const userMemory = await store.read("~/.deepagents/my-agent/agent.md");
15
+ *
16
+ * // Write project memory
17
+ * await store.write("/project/.deepagents/agent.md", {
18
+ * path: "/project/.deepagents/agent.md",
19
+ * metadata: {},
20
+ * content: "# Project Rules",
21
+ * modifiedAt: Date.now(),
22
+ * });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import * as fs from "node:fs/promises";
28
+ import * as os from "node:os";
29
+ import * as path from "node:path";
30
+ import { parseMarkdownWithFrontmatter, serializeMarkdownWithFrontmatter } from "./store.js";
31
+ // =============================================================================
32
+ // Filesystem Memory Store Implementation
33
+ // =============================================================================
34
+ /**
35
+ * Filesystem-based implementation of MemoryStore.
36
+ *
37
+ * Stores memory documents as markdown files on disk.
38
+ * Handles `~` expansion for home directory paths.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * import { FilesystemMemoryStore } from "@lleverage-ai/agent-sdk";
43
+ *
44
+ * // Create with default options
45
+ * const store = new FilesystemMemoryStore();
46
+ *
47
+ * // Create with custom home directory
48
+ * const store = new FilesystemMemoryStore({
49
+ * homeDir: "/custom/home",
50
+ * });
51
+ *
52
+ * // Read a memory document
53
+ * const doc = await store.read("~/.deepagents/my-agent/agent.md");
54
+ *
55
+ * // List all memory documents
56
+ * const paths = await store.list("~/.deepagents/my-agent");
57
+ * ```
58
+ *
59
+ * @category Memory
60
+ */
61
+ export class FilesystemMemoryStore {
62
+ homeDir;
63
+ createDirs;
64
+ extension;
65
+ /**
66
+ * Create a new FilesystemMemoryStore.
67
+ *
68
+ * @param options - Configuration options
69
+ */
70
+ constructor(options = {}) {
71
+ this.homeDir = options.homeDir ?? os.homedir();
72
+ this.createDirs = options.createDirs ?? true;
73
+ this.extension = options.extension ?? ".md";
74
+ }
75
+ /**
76
+ * Expand `~` in paths to the home directory.
77
+ *
78
+ * @param filePath - Path that may contain `~`
79
+ * @returns Expanded path
80
+ *
81
+ * @internal
82
+ */
83
+ expandPath(filePath) {
84
+ if (filePath.startsWith("~")) {
85
+ return path.join(this.homeDir, filePath.slice(1));
86
+ }
87
+ return filePath;
88
+ }
89
+ /**
90
+ * Read a memory document from the filesystem.
91
+ *
92
+ * @param filePath - Path to the memory document
93
+ * @returns The memory document if found, undefined otherwise
94
+ */
95
+ async read(filePath) {
96
+ const expandedPath = this.expandPath(filePath);
97
+ try {
98
+ const content = await fs.readFile(expandedPath, "utf-8");
99
+ const stats = await fs.stat(expandedPath);
100
+ const { metadata, content: markdownContent } = parseMarkdownWithFrontmatter(content);
101
+ return {
102
+ path: filePath, // Keep original path for consistency
103
+ metadata,
104
+ content: markdownContent,
105
+ modifiedAt: stats.mtimeMs,
106
+ };
107
+ }
108
+ catch (error) {
109
+ // File doesn't exist or can't be read
110
+ if (error.code === "ENOENT") {
111
+ return undefined;
112
+ }
113
+ throw error;
114
+ }
115
+ }
116
+ /**
117
+ * Write a memory document to the filesystem.
118
+ *
119
+ * @param filePath - Path to write to
120
+ * @param document - Document to write
121
+ */
122
+ async write(filePath, document) {
123
+ const expandedPath = this.expandPath(filePath);
124
+ // Create parent directories if needed
125
+ if (this.createDirs) {
126
+ const dir = path.dirname(expandedPath);
127
+ await fs.mkdir(dir, { recursive: true });
128
+ }
129
+ // Serialize to markdown with frontmatter
130
+ const content = serializeMarkdownWithFrontmatter({
131
+ metadata: document.metadata,
132
+ content: document.content,
133
+ });
134
+ await fs.writeFile(expandedPath, content, "utf-8");
135
+ }
136
+ /**
137
+ * Delete a memory document from the filesystem.
138
+ *
139
+ * @param filePath - Path to delete
140
+ * @returns True if deleted, false if it didn't exist
141
+ */
142
+ async delete(filePath) {
143
+ const expandedPath = this.expandPath(filePath);
144
+ try {
145
+ await fs.unlink(expandedPath);
146
+ return true;
147
+ }
148
+ catch (error) {
149
+ if (error.code === "ENOENT") {
150
+ return false;
151
+ }
152
+ throw error;
153
+ }
154
+ }
155
+ /**
156
+ * List memory documents matching a pattern.
157
+ *
158
+ * @param pattern - Directory or glob pattern to search
159
+ * @returns Array of paths to matching documents
160
+ */
161
+ async list(pattern) {
162
+ // Default to listing all .md files in the current directory
163
+ const searchPath = pattern ? this.expandPath(pattern) : ".";
164
+ try {
165
+ const stats = await fs.stat(searchPath);
166
+ if (stats.isDirectory()) {
167
+ // List all .md files in the directory
168
+ return this.listDirectory(searchPath);
169
+ }
170
+ else if (stats.isFile() && searchPath.endsWith(this.extension)) {
171
+ // Single file
172
+ return [pattern ?? searchPath];
173
+ }
174
+ return [];
175
+ }
176
+ catch (error) {
177
+ if (error.code === "ENOENT") {
178
+ return [];
179
+ }
180
+ throw error;
181
+ }
182
+ }
183
+ /**
184
+ * Check if a memory document exists.
185
+ *
186
+ * @param filePath - Path to check
187
+ * @returns True if the file exists
188
+ */
189
+ async exists(filePath) {
190
+ const expandedPath = this.expandPath(filePath);
191
+ try {
192
+ await fs.access(expandedPath);
193
+ return true;
194
+ }
195
+ catch {
196
+ return false;
197
+ }
198
+ }
199
+ /**
200
+ * List all memory documents in a directory recursively.
201
+ *
202
+ * @param dirPath - Directory to list
203
+ * @returns Array of file paths
204
+ *
205
+ * @internal
206
+ */
207
+ async listDirectory(dirPath) {
208
+ const results = [];
209
+ async function walk(dir, extension) {
210
+ try {
211
+ const entries = await fs.readdir(dir, { withFileTypes: true });
212
+ for (const entry of entries) {
213
+ const fullPath = path.join(dir, entry.name);
214
+ if (entry.isDirectory()) {
215
+ await walk(fullPath, extension);
216
+ }
217
+ else if (entry.isFile() && entry.name.endsWith(extension)) {
218
+ results.push(fullPath);
219
+ }
220
+ }
221
+ }
222
+ catch (error) {
223
+ // Ignore permission errors for directories
224
+ if (error.code !== "EACCES") {
225
+ throw error;
226
+ }
227
+ }
228
+ }
229
+ await walk(dirPath, this.extension);
230
+ return results;
231
+ }
232
+ }
233
+ // =============================================================================
234
+ // In-Memory Memory Store (for testing)
235
+ // =============================================================================
236
+ /**
237
+ * In-memory implementation of MemoryStore for testing.
238
+ *
239
+ * Documents are stored in a Map and not persisted.
240
+ *
241
+ * @example
242
+ * ```typescript
243
+ * const store = new InMemoryMemoryStore();
244
+ *
245
+ * await store.write("/test/doc.md", {
246
+ * path: "/test/doc.md",
247
+ * metadata: {},
248
+ * content: "# Test",
249
+ * modifiedAt: Date.now(),
250
+ * });
251
+ *
252
+ * const doc = await store.read("/test/doc.md");
253
+ * ```
254
+ *
255
+ * @category Memory
256
+ */
257
+ export class InMemoryMemoryStore {
258
+ documents = new Map();
259
+ /**
260
+ * Read a document from memory.
261
+ */
262
+ async read(path) {
263
+ const doc = this.documents.get(path);
264
+ if (!doc)
265
+ return undefined;
266
+ // Return a copy to prevent mutation
267
+ return {
268
+ ...doc,
269
+ metadata: { ...doc.metadata },
270
+ };
271
+ }
272
+ /**
273
+ * Write a document to memory.
274
+ */
275
+ async write(path, document) {
276
+ // Store a copy to prevent mutation
277
+ this.documents.set(path, {
278
+ ...document,
279
+ metadata: { ...document.metadata },
280
+ modifiedAt: Date.now(),
281
+ });
282
+ }
283
+ /**
284
+ * Delete a document from memory.
285
+ */
286
+ async delete(path) {
287
+ return this.documents.delete(path);
288
+ }
289
+ /**
290
+ * List all documents matching a prefix.
291
+ */
292
+ async list(pattern) {
293
+ if (!pattern) {
294
+ return Array.from(this.documents.keys());
295
+ }
296
+ return Array.from(this.documents.keys()).filter((p) => p.startsWith(pattern) && p.endsWith(".md"));
297
+ }
298
+ /**
299
+ * Check if a document exists.
300
+ */
301
+ async exists(path) {
302
+ return this.documents.has(path);
303
+ }
304
+ /**
305
+ * Clear all documents.
306
+ *
307
+ * Useful for test cleanup.
308
+ */
309
+ clear() {
310
+ this.documents.clear();
311
+ }
312
+ /**
313
+ * Get the number of documents.
314
+ */
315
+ get size() {
316
+ return this.documents.size;
317
+ }
318
+ }
319
+ // =============================================================================
320
+ // Factory Functions
321
+ // =============================================================================
322
+ /**
323
+ * Create a new FilesystemMemoryStore.
324
+ *
325
+ * @param options - Configuration options
326
+ * @returns A new FilesystemMemoryStore instance
327
+ *
328
+ * @category Memory
329
+ */
330
+ export function createFilesystemMemoryStore(options) {
331
+ return new FilesystemMemoryStore(options);
332
+ }
333
+ /**
334
+ * Create a new InMemoryMemoryStore.
335
+ *
336
+ * @returns A new InMemoryMemoryStore instance
337
+ *
338
+ * @category Memory
339
+ */
340
+ export function createInMemoryMemoryStore() {
341
+ return new InMemoryMemoryStore();
342
+ }
343
+ //# sourceMappingURL=filesystem-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-store.js","sourceRoot":"","sources":["../../src/memory/filesystem-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Memory system for persistent agent memory.
3
+ *
4
+ * This module provides a two-tier memory architecture:
5
+ * - **User-Level Memory**: Personal preferences stored at `~/.deepagents/{agentId}/`
6
+ * - **Project-Level Memory**: Project conventions stored at `[git-root]/.deepagents/`
7
+ *
8
+ * Memory documents are markdown files with optional YAML frontmatter for metadata.
9
+ *
10
+ * ## Quick Start
11
+ *
12
+ * ```typescript
13
+ * import {
14
+ * loadAllMemory,
15
+ * buildMemorySection,
16
+ * matchesPathPattern,
17
+ * } from "@lleverage-ai/agent-sdk";
18
+ *
19
+ * // Load all agent memory
20
+ * const memory = await loadAllMemory({
21
+ * agentId: "my-agent",
22
+ * workingDirectory: process.cwd(),
23
+ * });
24
+ *
25
+ * // Use in system prompt
26
+ * const systemPrompt = `You are a helpful assistant.\n\n${memory.memorySection}`;
27
+ *
28
+ * // Filter by current file
29
+ * if (matchesPathPattern("src/api/users.ts", "src/api/**\/*.ts")) {
30
+ * // Apply API-specific rules
31
+ * }
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ export type { FilesystemMemoryStoreOptions } from "./filesystem-store.js";
37
+ export { createFilesystemMemoryStore, createInMemoryMemoryStore, FilesystemMemoryStore, InMemoryMemoryStore, } from "./filesystem-store.js";
38
+ export type { AdditionalMemoryFile, BuildMemorySectionOptions, LoadAdditionalMemoryOptions, LoadAgentMemoryOptions, LoadAllMemoryOptions, LoadAllMemoryResult, MemoryAuditEvent, } from "./loader.js";
39
+ export { buildMemorySection, findGitRoot, getProjectMemoryPath, getUserAgentDir, getUserMemoryPath, loadAdditionalMemoryFiles, loadAgentMemory, loadAllMemory, } from "./loader.js";
40
+ export type { FileMemoryPermissionStoreOptions, MemoryApproval, MemoryPermissionStore, } from "./permissions.js";
41
+ export { computeContentHash, computeFileHash, createInMemoryPermissionStore, createMemoryPermissionStore, FileMemoryPermissionStore, InMemoryPermissionStore, } from "./permissions.js";
42
+ export type { BuildPathMemoryContextOptions, PathMemoryContext, } from "./rules.js";
43
+ export { buildPathMemoryContext, filterAdditionalFilesByPath, filterAutoLoadAdditionalFiles, filterAutoLoadMemories, filterMemoriesByAllTags, filterMemoriesByPath, filterMemoriesByTags, matchesAnyPathPattern, matchesPathPattern, } from "./rules.js";
44
+ export type { MemoryDocument, MemoryMetadata, MemoryStore, ParsedMarkdown, } from "./store.js";
45
+ export { parseMarkdownWithFrontmatter, parseSimpleYaml, serializeMarkdownWithFrontmatter, } from "./store.js";
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,YAAY,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gCAAgC,EAChC,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,gCAAgC,GACjC,MAAM,YAAY,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Memory system for persistent agent memory.
3
+ *
4
+ * This module provides a two-tier memory architecture:
5
+ * - **User-Level Memory**: Personal preferences stored at `~/.deepagents/{agentId}/`
6
+ * - **Project-Level Memory**: Project conventions stored at `[git-root]/.deepagents/`
7
+ *
8
+ * Memory documents are markdown files with optional YAML frontmatter for metadata.
9
+ *
10
+ * ## Quick Start
11
+ *
12
+ * ```typescript
13
+ * import {
14
+ * loadAllMemory,
15
+ * buildMemorySection,
16
+ * matchesPathPattern,
17
+ * } from "@lleverage-ai/agent-sdk";
18
+ *
19
+ * // Load all agent memory
20
+ * const memory = await loadAllMemory({
21
+ * agentId: "my-agent",
22
+ * workingDirectory: process.cwd(),
23
+ * });
24
+ *
25
+ * // Use in system prompt
26
+ * const systemPrompt = `You are a helpful assistant.\n\n${memory.memorySection}`;
27
+ *
28
+ * // Filter by current file
29
+ * if (matchesPathPattern("src/api/users.ts", "src/api/**\/*.ts")) {
30
+ * // Apply API-specific rules
31
+ * }
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ // Filesystem store implementation
37
+ export { createFilesystemMemoryStore, createInMemoryMemoryStore, FilesystemMemoryStore, InMemoryMemoryStore, } from "./filesystem-store.js";
38
+ // Memory loading functions
39
+ export { buildMemorySection, findGitRoot, getProjectMemoryPath, getUserAgentDir, getUserMemoryPath, loadAdditionalMemoryFiles, loadAgentMemory, loadAllMemory, } from "./loader.js";
40
+ // Permission store for approval persistence
41
+ export { computeContentHash, computeFileHash, createInMemoryPermissionStore, createMemoryPermissionStore, FileMemoryPermissionStore, InMemoryPermissionStore, } from "./permissions.js";
42
+ // Path-based rule matching
43
+ export { buildPathMemoryContext, filterAdditionalFilesByPath, filterAutoLoadAdditionalFiles, filterAutoLoadMemories, filterMemoriesByAllTags, filterMemoriesByPath, filterMemoriesByTags, matchesAnyPathPattern, matchesPathPattern, } from "./rules.js";
44
+ // Store interface and types
45
+ export { parseMarkdownWithFrontmatter, parseSimpleYaml, serializeMarkdownWithFrontmatter, } from "./store.js";
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,kCAAkC;AAClC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAU/B,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AAMrB,4CAA4C;AAC5C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAK1B,2BAA2B;AAC3B,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAOpB,4BAA4B;AAC5B,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,gCAAgC,GACjC,MAAM,YAAY,CAAC"}