@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 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Backend system for pluggable storage.
3
+ *
4
+ * This module provides the core interfaces and implementations for storage backends.
5
+ * Backends abstract file operations, allowing the same agent code to work with
6
+ * in-memory state, real filesystems, or persistent stores.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ /**
11
+ * Metadata for a file or directory entry.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const files: FileInfo[] = await backend.lsInfo("/src");
16
+ * files.forEach(f => {
17
+ * console.log(`${f.path} - ${f.is_dir ? "dir" : f.size + " bytes"}`);
18
+ * });
19
+ * ```
20
+ *
21
+ * @category Backend
22
+ */
23
+ export interface FileInfo {
24
+ /** Path to the file or directory */
25
+ path: string;
26
+ /** True if this entry is a directory */
27
+ is_dir?: boolean;
28
+ /** Size in bytes (files only) */
29
+ size?: number;
30
+ /** ISO 8601 timestamp of last modification */
31
+ modified_at?: string;
32
+ }
33
+ /**
34
+ * File content storage format.
35
+ *
36
+ * Used by `readRaw()` to return file content with metadata.
37
+ *
38
+ * @category Backend
39
+ */
40
+ export interface FileData {
41
+ /** Lines of text content */
42
+ content: string[];
43
+ /** ISO 8601 timestamp when file was created */
44
+ created_at: string;
45
+ /** ISO 8601 timestamp of last modification */
46
+ modified_at: string;
47
+ }
48
+ /**
49
+ * A match from a grep search operation.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const matches = await backend.grepRaw("TODO:", "/src");
54
+ * for (const match of matches) {
55
+ * console.log(`${match.path}:${match.line}: ${match.text}`);
56
+ * }
57
+ * ```
58
+ *
59
+ * @category Backend
60
+ */
61
+ export interface GrepMatch {
62
+ /** Path to the file containing the match */
63
+ path: string;
64
+ /** Line number (1-indexed) */
65
+ line: number;
66
+ /** The matching line text */
67
+ text: string;
68
+ }
69
+ /**
70
+ * Result from a write operation.
71
+ *
72
+ * @category Backend
73
+ */
74
+ export interface WriteResult {
75
+ /** Whether the operation succeeded */
76
+ success: boolean;
77
+ /** Error message if failed */
78
+ error?: string;
79
+ /** Path that was written to */
80
+ path?: string;
81
+ }
82
+ /**
83
+ * Result from an edit operation.
84
+ *
85
+ * @category Backend
86
+ */
87
+ export interface EditResult {
88
+ /** Whether the operation succeeded */
89
+ success: boolean;
90
+ /** Error message if failed */
91
+ error?: string;
92
+ /** Path that was edited */
93
+ path?: string;
94
+ /** Number of occurrences replaced (when replace_all is true) */
95
+ occurrences?: number;
96
+ }
97
+ /**
98
+ * Core backend protocol interface for file operations.
99
+ *
100
+ * All storage backends implement this interface, providing a consistent API
101
+ * for file operations regardless of the underlying storage mechanism.
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * // Using with StateBackend (in-memory)
106
+ * const state = { todos: [], files: {} };
107
+ * const backend: BackendProtocol = new StateBackend(state);
108
+ *
109
+ * // Using with FilesystemBackend (real filesystem)
110
+ * const backend: BackendProtocol = new FilesystemBackend({
111
+ * rootDir: process.cwd(),
112
+ * });
113
+ *
114
+ * // Operations work the same regardless of backend
115
+ * const content = await backend.read("/src/index.ts");
116
+ * const files = await backend.globInfo("**\/*.ts");
117
+ * ```
118
+ *
119
+ * @category Backend
120
+ */
121
+ export interface BackendProtocol {
122
+ /**
123
+ * List files and directories with metadata.
124
+ *
125
+ * @param path - Directory path to list (non-recursive)
126
+ * @returns Array of file/directory info
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const entries = await backend.lsInfo("/src");
131
+ * const dirs = entries.filter(e => e.is_dir);
132
+ * const files = entries.filter(e => !e.is_dir);
133
+ * ```
134
+ */
135
+ lsInfo(path: string): FileInfo[] | Promise<FileInfo[]>;
136
+ /**
137
+ * Read file content with optional line numbers.
138
+ *
139
+ * Returns content formatted with line numbers for display, suitable for
140
+ * showing to the model or user.
141
+ *
142
+ * @param filePath - Path to the file to read
143
+ * @param offset - Starting line offset (0-indexed)
144
+ * @param limit - Maximum number of lines to read
145
+ * @returns Formatted content with line numbers
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * // Read first 50 lines
150
+ * const content = await backend.read("/src/index.ts", 0, 50);
151
+ *
152
+ * // Read lines 100-200
153
+ * const content = await backend.read("/src/index.ts", 100, 100);
154
+ * ```
155
+ */
156
+ read(filePath: string, offset?: number, limit?: number): string | Promise<string>;
157
+ /**
158
+ * Read raw file content as FileData.
159
+ *
160
+ * Returns the content as an array of lines with timestamps, useful for
161
+ * programmatic access to file content.
162
+ *
163
+ * @param filePath - Path to the file to read
164
+ * @returns Raw file data with content and timestamps
165
+ */
166
+ readRaw(filePath: string): FileData | Promise<FileData>;
167
+ /**
168
+ * Search for pattern matches using regex.
169
+ *
170
+ * @param pattern - Regular expression pattern to search for
171
+ * @param path - Directory to search in (defaults to root)
172
+ * @param glob - Glob pattern to filter files (e.g., "*.ts")
173
+ * @returns Array of matches or formatted string
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * // Search for TODO comments in TypeScript files
178
+ * const matches = await backend.grepRaw(
179
+ * "TODO:",
180
+ * "/src",
181
+ * "*.ts"
182
+ * );
183
+ * ```
184
+ */
185
+ grepRaw(pattern: string, path?: string | null, glob?: string | null): GrepMatch[] | string | Promise<GrepMatch[] | string>;
186
+ /**
187
+ * Find files matching a glob pattern.
188
+ *
189
+ * @param pattern - Glob pattern (e.g., "**\/*.ts", "src/**\/*.test.ts")
190
+ * @param path - Base directory for the search
191
+ * @returns Array of matching file info
192
+ *
193
+ * @example
194
+ * ```typescript
195
+ * // Find all TypeScript files
196
+ * const tsFiles = await backend.globInfo("**\/*.ts", "/src");
197
+ *
198
+ * // Find all test files
199
+ * const testFiles = await backend.globInfo("**\/*.test.ts");
200
+ * ```
201
+ */
202
+ globInfo(pattern: string, path?: string): FileInfo[] | Promise<FileInfo[]>;
203
+ /**
204
+ * Create or overwrite a file.
205
+ *
206
+ * @param filePath - Path for the new file
207
+ * @param content - Content to write
208
+ * @returns Result indicating success or failure
209
+ *
210
+ * @example
211
+ * ```typescript
212
+ * const result = await backend.write(
213
+ * "/src/new-file.ts",
214
+ * "export const hello = 'world';\n"
215
+ * );
216
+ * if (!result.success) {
217
+ * console.error("Write failed:", result.error);
218
+ * }
219
+ * ```
220
+ */
221
+ write(filePath: string, content: string): WriteResult | Promise<WriteResult>;
222
+ /**
223
+ * Edit a file by replacing text.
224
+ *
225
+ * The `old_string` must be unique in the file unless `replace_all` is true.
226
+ * This prevents accidental replacements of unintended matches.
227
+ *
228
+ * @param filePath - Path to the file to edit
229
+ * @param oldString - Text to find and replace
230
+ * @param newString - Replacement text
231
+ * @param replaceAll - If true, replace all occurrences; if false, fail on non-unique match
232
+ * @returns Result indicating success or failure
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * // Replace a single unique occurrence
237
+ * const result = await backend.edit(
238
+ * "/src/config.ts",
239
+ * "export const DEBUG = false;",
240
+ * "export const DEBUG = true;"
241
+ * );
242
+ *
243
+ * // Replace all occurrences
244
+ * const result = await backend.edit(
245
+ * "/src/types.ts",
246
+ * "interface",
247
+ * "type",
248
+ * true
249
+ * );
250
+ * ```
251
+ */
252
+ edit(filePath: string, oldString: string, newString: string, replaceAll?: boolean): EditResult | Promise<EditResult>;
253
+ }
254
+ /**
255
+ * Response from command execution.
256
+ *
257
+ * @category Backend
258
+ */
259
+ export interface ExecuteResponse {
260
+ /** Combined stdout and stderr output */
261
+ output: string;
262
+ /** Exit code from the command (null if terminated) */
263
+ exitCode: number | null;
264
+ /** Whether output was truncated due to size limits */
265
+ truncated: boolean;
266
+ }
267
+ /**
268
+ * Response from file upload operation.
269
+ *
270
+ * @category Backend
271
+ */
272
+ export interface FileUploadResponse {
273
+ /** Path where the file was uploaded */
274
+ path: string;
275
+ /** Whether the upload succeeded */
276
+ success: boolean;
277
+ /** Error message if failed */
278
+ error?: string;
279
+ }
280
+ /**
281
+ * Extended backend protocol with command execution capabilities.
282
+ *
283
+ * Sandboxes provide isolated environments for running shell commands safely.
284
+ * Implementations may use local processes, containers, or cloud sandboxes.
285
+ *
286
+ * @example
287
+ * ```typescript
288
+ * // Using LocalSandbox for development
289
+ * const sandbox = new LocalSandbox({ cwd: process.cwd() });
290
+ *
291
+ * // Execute commands
292
+ * const result = await sandbox.execute("npm test");
293
+ * console.log(`Exit code: ${result.exitCode}`);
294
+ * console.log(`Output: ${result.output}`);
295
+ *
296
+ * // Upload files
297
+ * const encoder = new TextEncoder();
298
+ * await sandbox.uploadFiles([
299
+ * ["/tmp/test.txt", encoder.encode("Hello, World!")],
300
+ * ]);
301
+ * ```
302
+ *
303
+ * @category Backend
304
+ */
305
+ export interface SandboxBackendProtocol extends BackendProtocol {
306
+ /** Unique identifier for this sandbox instance */
307
+ readonly id: string;
308
+ /**
309
+ * Execute a shell command in the sandbox.
310
+ *
311
+ * @param command - Shell command to execute
312
+ * @returns Execution result with output and exit code
313
+ *
314
+ * @example
315
+ * ```typescript
316
+ * const result = await sandbox.execute("ls -la /src");
317
+ * if (result.exitCode === 0) {
318
+ * console.log("Directory listing:", result.output);
319
+ * }
320
+ * ```
321
+ */
322
+ execute(command: string): Promise<ExecuteResponse>;
323
+ /**
324
+ * Upload files to the sandbox.
325
+ *
326
+ * @param files - Array of [path, content] tuples
327
+ * @returns Array of upload results
328
+ */
329
+ uploadFiles(files: Array<[string, Uint8Array]>): Promise<FileUploadResponse[]>;
330
+ /**
331
+ * Download files from the sandbox.
332
+ *
333
+ * @param paths - Paths to download
334
+ * @returns Array of { path, content } objects
335
+ */
336
+ downloadFiles(paths: string[]): Promise<Array<{
337
+ path: string;
338
+ content: Uint8Array;
339
+ }>>;
340
+ }
341
+ /**
342
+ * Check if a value implements the BackendProtocol interface.
343
+ *
344
+ * @param value - Value to check
345
+ * @returns True if value is a BackendProtocol
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * function processBackend(backend: unknown) {
350
+ * if (isBackend(backend)) {
351
+ * const files = await backend.lsInfo("/");
352
+ * }
353
+ * }
354
+ * ```
355
+ *
356
+ * @category Backend
357
+ */
358
+ export declare function isBackend(value: unknown): value is BackendProtocol;
359
+ /**
360
+ * Check if a value implements the SandboxBackendProtocol interface.
361
+ *
362
+ * @param value - Value to check
363
+ * @returns True if value is a SandboxBackendProtocol
364
+ *
365
+ * @example
366
+ * ```typescript
367
+ * function maybeExecute(backend: BackendProtocol, command: string) {
368
+ * if (isSandboxBackend(backend)) {
369
+ * return backend.execute(command);
370
+ * }
371
+ * throw new Error("Backend does not support command execution");
372
+ * }
373
+ * ```
374
+ *
375
+ * @category Backend
376
+ */
377
+ export declare function isSandboxBackend(value: unknown): value is SandboxBackendProtocol;
378
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElF;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CACL,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,SAAS,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3E;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,OAAO,GACnB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAMD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,sDAAsD;IACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE/E;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAAC;CACvF;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAelE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAYhF"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Backend system for pluggable storage.
3
+ *
4
+ * This module provides the core interfaces and implementations for storage backends.
5
+ * Backends abstract file operations, allowing the same agent code to work with
6
+ * in-memory state, real filesystems, or persistent stores.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ // =============================================================================
11
+ // Type Guards
12
+ // =============================================================================
13
+ /**
14
+ * Check if a value implements the BackendProtocol interface.
15
+ *
16
+ * @param value - Value to check
17
+ * @returns True if value is a BackendProtocol
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * function processBackend(backend: unknown) {
22
+ * if (isBackend(backend)) {
23
+ * const files = await backend.lsInfo("/");
24
+ * }
25
+ * }
26
+ * ```
27
+ *
28
+ * @category Backend
29
+ */
30
+ export function isBackend(value) {
31
+ if (value === null || typeof value !== "object") {
32
+ return false;
33
+ }
34
+ const obj = value;
35
+ return (typeof obj.lsInfo === "function" &&
36
+ typeof obj.read === "function" &&
37
+ typeof obj.readRaw === "function" &&
38
+ typeof obj.grepRaw === "function" &&
39
+ typeof obj.globInfo === "function" &&
40
+ typeof obj.write === "function" &&
41
+ typeof obj.edit === "function");
42
+ }
43
+ /**
44
+ * Check if a value implements the SandboxBackendProtocol interface.
45
+ *
46
+ * @param value - Value to check
47
+ * @returns True if value is a SandboxBackendProtocol
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * function maybeExecute(backend: BackendProtocol, command: string) {
52
+ * if (isSandboxBackend(backend)) {
53
+ * return backend.execute(command);
54
+ * }
55
+ * throw new Error("Backend does not support command execution");
56
+ * }
57
+ * ```
58
+ *
59
+ * @category Backend
60
+ */
61
+ export function isSandboxBackend(value) {
62
+ if (!isBackend(value)) {
63
+ return false;
64
+ }
65
+ const obj = value;
66
+ return (typeof obj.id === "string" &&
67
+ typeof obj.execute === "function" &&
68
+ typeof obj.uploadFiles === "function" &&
69
+ typeof obj.downloadFiles === "function");
70
+ }
71
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyYH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACL,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;QAChC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAC9B,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QACjC,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QACjC,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU;QAClC,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;QAC/B,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAA2C,CAAC;IACxD,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;QACjC,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU;QACrC,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU,CACxC,CAAC;AACJ,CAAC"}