@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
package/dist/hooks.js ADDED
@@ -0,0 +1,352 @@
1
+ /**
2
+ * Hook system for observing agent lifecycle events.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ // =============================================================================
7
+ // Unified Hook System with Matchers
8
+ // =============================================================================
9
+ /**
10
+ * Checks if a tool name matches a HookMatcher pattern.
11
+ *
12
+ * @param toolName - The tool name to test
13
+ * @param matcher - The matcher pattern (undefined matches all)
14
+ * @returns true if the tool name matches the pattern
15
+ *
16
+ * @internal
17
+ */
18
+ export function matchesToolName(toolName, matcher) {
19
+ if (matcher === undefined) {
20
+ return true; // No matcher = match all tools
21
+ }
22
+ try {
23
+ const regex = new RegExp(matcher);
24
+ return regex.test(toolName);
25
+ }
26
+ catch (_error) {
27
+ // Invalid regex - treat as literal string match
28
+ return toolName === matcher;
29
+ }
30
+ }
31
+ /**
32
+ * Error thrown when a hook times out.
33
+ *
34
+ * @category Hooks
35
+ */
36
+ export class HookTimeoutError extends Error {
37
+ constructor(timeout) {
38
+ super(`Hook execution timed out after ${timeout}ms`);
39
+ this.name = "HookTimeoutError";
40
+ }
41
+ }
42
+ /**
43
+ * Invokes hook callbacks with timeout support.
44
+ *
45
+ * This function enforces a hard timeout using `Promise.race`. If a hook does not complete
46
+ * within the specified timeout, it will be treated as returning an empty result `{}`.
47
+ * The abort signal is also set when the timeout is reached, allowing cooperative hooks
48
+ * to clean up resources.
49
+ *
50
+ * @param hooks - Array of hook callbacks to invoke
51
+ * @param input - The hook input data
52
+ * @param toolUseId - The tool use ID (null for non-tool hooks)
53
+ * @param agent - The agent instance
54
+ * @param timeout - Timeout in milliseconds (default: 60000). Each hook must complete within this time.
55
+ * @param retryAttempt - Current retry attempt number (default: 0)
56
+ * @returns Array of hook outputs. Timed out hooks return empty objects `{}`.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Hook that respects the abort signal for cooperative cancellation
61
+ * const cooperativeHook: HookCallback = async (input, toolUseId, ctx) => {
62
+ * for (const item of items) {
63
+ * if (ctx.signal.aborted) {
64
+ * return {}; // Early exit on abort
65
+ * }
66
+ * await processItem(item);
67
+ * }
68
+ * return { hookSpecificOutput: { ... } };
69
+ * };
70
+ *
71
+ * // Even if a hook doesn't check the signal, it will be timed out
72
+ * const results = await invokeHooksWithTimeout(
73
+ * [cooperativeHook, slowHook],
74
+ * input,
75
+ * toolUseId,
76
+ * agent,
77
+ * 5000 // 5 second timeout
78
+ * );
79
+ * ```
80
+ *
81
+ * @internal
82
+ */
83
+ export async function invokeHooksWithTimeout(hooks, input, toolUseId, agent, timeout = 60000, retryAttempt = 0) {
84
+ const abortController = new AbortController();
85
+ const timeoutId = setTimeout(() => abortController.abort(), timeout);
86
+ try {
87
+ const context = {
88
+ signal: abortController.signal,
89
+ agent,
90
+ retryAttempt,
91
+ };
92
+ const results = await Promise.all(hooks.map(async (hook) => {
93
+ try {
94
+ // Create a timeout promise that rejects after the specified time
95
+ const timeoutPromise = new Promise((_, reject) => {
96
+ const hookTimeoutId = setTimeout(() => {
97
+ reject(new HookTimeoutError(timeout));
98
+ }, timeout);
99
+ // Clean up timeout if signal is aborted (parent timeout reached)
100
+ abortController.signal.addEventListener("abort", () => {
101
+ clearTimeout(hookTimeoutId);
102
+ reject(new HookTimeoutError(timeout));
103
+ });
104
+ });
105
+ // Race between hook execution and timeout
106
+ const result = await Promise.race([hook(input, toolUseId, context), timeoutPromise]);
107
+ return result;
108
+ }
109
+ catch (error) {
110
+ // If hook throws or times out, treat as allowing with no modifications
111
+ if (error instanceof HookTimeoutError) {
112
+ console.error(`Hook timed out after ${timeout}ms`);
113
+ }
114
+ else {
115
+ console.error("Hook execution error:", error);
116
+ }
117
+ return {};
118
+ }
119
+ }));
120
+ return results;
121
+ }
122
+ finally {
123
+ clearTimeout(timeoutId);
124
+ }
125
+ }
126
+ /**
127
+ * Filters and invokes matching hooks for a tool use event.
128
+ *
129
+ * @param matchers - Array of HookMatcher configurations
130
+ * @param toolName - The name of the tool being used
131
+ * @param input - The hook input data
132
+ * @param toolUseId - The tool use ID
133
+ * @param agent - The agent instance
134
+ * @returns Array of hook outputs from all matching hooks
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * const matchers: HookMatcher[] = [
139
+ * { matcher: 'Write|Edit', hooks: [protectFiles], timeout: 30000 },
140
+ * { hooks: [auditLogger] } // Matches all tools
141
+ * ];
142
+ *
143
+ * const outputs = await invokeMatchingHooks(
144
+ * matchers,
145
+ * 'Write',
146
+ * input,
147
+ * toolUseId,
148
+ * agent
149
+ * );
150
+ * ```
151
+ *
152
+ * @category Hooks
153
+ */
154
+ export async function invokeMatchingHooks(matchers, toolName, input, toolUseId, agent) {
155
+ const allOutputs = [];
156
+ for (const matcher of matchers) {
157
+ if (matchesToolName(toolName, matcher.matcher)) {
158
+ const timeout = matcher.timeout ?? 60000;
159
+ const outputs = await invokeHooksWithTimeout(matcher.hooks, input, toolUseId, agent, timeout);
160
+ allOutputs.push(...outputs);
161
+ }
162
+ }
163
+ return allOutputs;
164
+ }
165
+ /**
166
+ * Aggregates permission decisions from multiple hook outputs.
167
+ *
168
+ * Follows the hierarchy: deny > ask > allow > default
169
+ *
170
+ * @param hookOutputs - Array of hook outputs to aggregate
171
+ * @param defaultDecision - Default decision if no hooks provide one (default: 'allow')
172
+ * @returns The aggregated permission decision
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const outputs: HookOutput[] = [
177
+ * { hookSpecificOutput: { hookEventName: 'PreToolUse', permissionDecision: 'allow' } },
178
+ * { hookSpecificOutput: { hookEventName: 'PreToolUse', permissionDecision: 'deny' } },
179
+ * ];
180
+ *
181
+ * const decision = aggregatePermissionDecisions(outputs);
182
+ * // Returns 'deny' because deny wins over allow
183
+ * ```
184
+ *
185
+ * @category Hooks
186
+ */
187
+ export function aggregatePermissionDecisions(hookOutputs, defaultDecision = "allow") {
188
+ let hasDeny = false;
189
+ let hasAsk = false;
190
+ let hasAllow = false;
191
+ for (const output of hookOutputs) {
192
+ const decision = output.hookSpecificOutput?.permissionDecision;
193
+ if (decision === "deny") {
194
+ hasDeny = true;
195
+ }
196
+ else if (decision === "ask") {
197
+ hasAsk = true;
198
+ }
199
+ else if (decision === "allow") {
200
+ hasAllow = true;
201
+ }
202
+ }
203
+ // Priority: deny > ask > allow > default
204
+ if (hasDeny)
205
+ return "deny";
206
+ if (hasAsk)
207
+ return "ask";
208
+ if (hasAllow)
209
+ return "allow";
210
+ return defaultDecision;
211
+ }
212
+ /**
213
+ * Extracts a cached/mock result from hook outputs for short-circuit execution.
214
+ *
215
+ * Returns the first non-undefined `respondWith` value found in the hook outputs.
216
+ * This enables cache hooks to return cached results without executing the actual operation.
217
+ *
218
+ * @param hookOutputs - Array of hook outputs to scan
219
+ * @returns The cached result if found, undefined otherwise
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * const outputs: HookOutput[] = [
224
+ * { hookSpecificOutput: { hookEventName: 'PreGenerate' } },
225
+ * { hookSpecificOutput: { hookEventName: 'PreGenerate', respondWith: cachedResult } },
226
+ * ];
227
+ *
228
+ * const result = extractRespondWith(outputs);
229
+ * // Returns cachedResult
230
+ * ```
231
+ *
232
+ * @category Hooks
233
+ */
234
+ export function extractRespondWith(hookOutputs) {
235
+ for (const output of hookOutputs) {
236
+ const respondWith = output.hookSpecificOutput?.respondWith;
237
+ if (respondWith !== undefined) {
238
+ return respondWith;
239
+ }
240
+ }
241
+ return undefined;
242
+ }
243
+ /**
244
+ * Extracts transformed input from hook outputs.
245
+ *
246
+ * Returns the first non-undefined `updatedInput` value found in the hook outputs.
247
+ * This enables hooks to modify inputs before they are used (e.g., redirect file paths,
248
+ * add rate limit headers, sanitize user input).
249
+ *
250
+ * @param hookOutputs - Array of hook outputs to scan
251
+ * @returns The transformed input if found, undefined otherwise
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * const outputs: HookOutput[] = [
256
+ * { hookSpecificOutput: { hookEventName: 'PreToolUse' } },
257
+ * { hookSpecificOutput: {
258
+ * hookEventName: 'PreToolUse',
259
+ * updatedInput: { file_path: '/sandbox/file.txt' }
260
+ * }
261
+ * },
262
+ * ];
263
+ *
264
+ * const transformed = extractUpdatedInput(outputs);
265
+ * // Returns { file_path: '/sandbox/file.txt' }
266
+ * ```
267
+ *
268
+ * @category Hooks
269
+ */
270
+ export function extractUpdatedInput(hookOutputs) {
271
+ for (const output of hookOutputs) {
272
+ const updatedInput = output.hookSpecificOutput?.updatedInput;
273
+ if (updatedInput !== undefined) {
274
+ return updatedInput;
275
+ }
276
+ }
277
+ return undefined;
278
+ }
279
+ /**
280
+ * Extracts transformed result from hook outputs.
281
+ *
282
+ * Returns the first non-undefined `updatedResult` value found in the hook outputs.
283
+ * This enables hooks to modify outputs after execution (e.g., filter sensitive data,
284
+ * add metadata, transform format, apply post-processing).
285
+ *
286
+ * @param hookOutputs - Array of hook outputs to scan
287
+ * @returns The transformed result if found, undefined otherwise
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * const outputs: HookOutput[] = [
292
+ * { hookSpecificOutput: { hookEventName: 'PostGenerate' } },
293
+ * { hookSpecificOutput: {
294
+ * hookEventName: 'PostGenerate',
295
+ * updatedResult: { ...originalResult, filtered: true }
296
+ * }
297
+ * },
298
+ * ];
299
+ *
300
+ * const transformed = extractUpdatedResult(outputs);
301
+ * // Returns { ...originalResult, filtered: true }
302
+ * ```
303
+ *
304
+ * @category Hooks
305
+ */
306
+ export function extractUpdatedResult(hookOutputs) {
307
+ for (const output of hookOutputs) {
308
+ const updatedResult = output.hookSpecificOutput?.updatedResult;
309
+ if (updatedResult !== undefined) {
310
+ return updatedResult;
311
+ }
312
+ }
313
+ return undefined;
314
+ }
315
+ /**
316
+ * Extracts retry decision from PostGenerateFailure or PostToolUseFailure hook outputs.
317
+ *
318
+ * Returns the first retry decision found in the hook outputs. If any hook requests a retry,
319
+ * the operation will be retried after the specified delay (or 0ms if no delay specified).
320
+ *
321
+ * @param hookOutputs - Array of hook outputs to scan
322
+ * @returns Object with retry flag and delay, or undefined if no retry requested
323
+ *
324
+ * @example
325
+ * ```typescript
326
+ * const outputs: HookOutput[] = [
327
+ * { hookSpecificOutput: { hookEventName: 'PostGenerateFailure' } },
328
+ * { hookSpecificOutput: {
329
+ * hookEventName: 'PostGenerateFailure',
330
+ * retry: true,
331
+ * retryDelayMs: 1000 // Wait 1s before retrying
332
+ * }
333
+ * },
334
+ * ];
335
+ *
336
+ * const retryDecision = extractRetryDecision(outputs);
337
+ * // Returns { retry: true, retryDelayMs: 1000 }
338
+ * ```
339
+ *
340
+ * @category Hooks
341
+ */
342
+ export function extractRetryDecision(hookOutputs) {
343
+ for (const output of hookOutputs) {
344
+ const retry = output.hookSpecificOutput?.retry;
345
+ if (retry === true) {
346
+ const retryDelayMs = output.hookSpecificOutput?.retryDelayMs ?? 0;
347
+ return { retry: true, retryDelayMs };
348
+ }
349
+ }
350
+ return undefined;
351
+ }
352
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @lleverage-ai/agent-sdk - A TypeScript framework for building AI agents.
3
+ *
4
+ * Built on top of Vercel AI SDK, this library provides a comprehensive toolkit
5
+ * for creating intelligent agents that can use tools, respond to hooks, and
6
+ * delegate tasks to specialized subagents.
7
+ *
8
+ * ## Quick Start
9
+ *
10
+ * ```typescript
11
+ * import { createAgent } from "@lleverage-ai/agent-sdk";
12
+ * import { anthropic } from "@ai-sdk/anthropic";
13
+ * import { tool } from "ai";
14
+ * import { z } from "zod";
15
+ *
16
+ * // Create an agent with tools
17
+ * const agent = createAgent({
18
+ * model: anthropic("claude-sonnet-4-20250514"),
19
+ * systemPrompt: "You are a friendly assistant.",
20
+ * tools: {
21
+ * greet: tool({
22
+ * description: "Greet a person by name",
23
+ * inputSchema: z.object({ name: z.string() }),
24
+ * execute: async ({ name }) => `Hello, ${name}!`,
25
+ * }),
26
+ * },
27
+ * });
28
+ *
29
+ * // Generate a response
30
+ * const result = await agent.generate({
31
+ * prompt: "Say hello to Alice",
32
+ * });
33
+ *
34
+ * // Or use with Next.js API routes and useChat
35
+ * export async function POST(req: Request) {
36
+ * const { messages } = await req.json();
37
+ * return agent.streamResponse({ messages });
38
+ * }
39
+ * ```
40
+ *
41
+ * ## Key Concepts
42
+ *
43
+ * - **Agents** - The main abstraction combining a model with tools and plugins
44
+ * - **Tools** - Use AI SDK's `tool()` function directly for full compatibility
45
+ * - **Plugins** - Bundles of tools, skills, and hooks for reusability
46
+ * - **Skills** - User-invocable slash commands
47
+ * - **Hooks** - Lifecycle event handlers for observing agent behavior
48
+ * - **Subagents** - Specialized agents for task delegation
49
+ *
50
+ * ## AI SDK Compatibility
51
+ *
52
+ * This SDK is built on Vercel AI SDK and maintains full compatibility:
53
+ * - Use `tool()` from 'ai' to define tools
54
+ * - Use `CoreMessage` and `UIMessage` types directly
55
+ * - `streamResponse()` returns a Response compatible with `useChat`
56
+ * - `streamRaw()` returns the raw AI SDK `streamText` result
57
+ *
58
+ * @packageDocumentation
59
+ */
60
+ export { createAgent } from "./agent.js";
61
+ export type { BackendProtocol, EditResult, ExecuteResponse, FileData, FileInfo, FileUploadResponse, GrepMatch, SandboxBackendProtocol, WriteResult, } from "./backend.js";
62
+ export { isBackend, isSandboxBackend } from "./backend.js";
63
+ export type { AgentState, CompositeBackendOptions, FilesystemBackendOptions, KeyValueStore, LocalSandboxOptions, PersistentBackendOptions, RouteConfig, TodoItem, TodoStatus, } from "./backends/index.js";
64
+ export { BaseSandbox, CommandBlockedError, CommandTimeoutError, CompositeBackend, createAgentState, createCompositeBackend, createFilesystemBackend, createLocalSandbox, createPersistentBackend, createStateBackend, FileSizeLimitError, FilesystemBackend, InMemoryStore, LocalSandbox, PathTraversalError, PersistentBackend, StateBackend, SymlinkError, } from "./backends/index.js";
65
+ export type { ApprovalInterrupt, ApprovalRequest, ApprovalResponse, BaseCheckpointSaver, Checkpoint, CheckpointEvent, CheckpointLoadedEvent, CheckpointSavedEvent, CheckpointSaverOptions, FileSaverOptions, Interrupt, KeyValueStoreSaverOptions, MemorySaverOptions, } from "./checkpointer/index.js";
66
+ export { createApprovalInterrupt, createCheckpoint, createFileSaver, createInterrupt, createKeyValueStoreSaver, createMemorySaver, FileSaver, isApprovalInterrupt, isCheckpoint, isInterrupt, KeyValueStoreSaver, MemorySaver, updateCheckpoint, } from "./checkpointer/index.js";
67
+ export { createContext } from "./context.js";
68
+ export type { CompactionPolicy, CompactionResult, CompactionScheduler, CompactionSchedulerOptions, CompactionStrategy, CompactionTask, CompactionTaskStatus, CompactionTrigger, ContextManager, ContextManagerOptions, CustomTokenCounterOptions, PinnedMessageMetadata, StructuredSummary, SummarizationConfig, TokenBudget, TokenCounter, } from "./context-manager.js";
69
+ export type { AgentErrorCode, ErrorSeverity, FallbackOptions, WrapErrorOptions, } from "./errors/index.js";
70
+ export { AbortError, AgentError, AuthenticationError, AuthorizationError, BackendError, CheckpointError, ConfigurationError, ContextError, createCircuitBreaker, createErrorHandler, formatErrorForLogging, GeneratePermissionDeniedError, getUserMessage, isRetryable, MemoryError, ModelError, NetworkError, RateLimitError, SubagentError, TimeoutError, ToolExecutionError, ToolPermissionDeniedError, tryOperations, ValidationError, withFallback, withFallbackFn, wrapError, } from "./errors/index.js";
71
+ export type { AuditEvent, AuditEventCategory, AuditEventHandler, AuditHooksOptions, BufferedGuardrailState, CacheEntry as CacheEntryHook, CacheHooksOptions, CacheStore as CacheStoreHook, Guardrail, GuardrailCheckResult, GuardrailsHooksOptions, LoggingHooksOptions as GenerationLoggingHooksOptions, OutputGuardrailConfig, RaceGuardrailsOptions, RateLimitHooksOptions, RetryHooksOptions, SecretsFilterHooksOptions, ServerRateLimitInfo, } from "./hooks/index.js";
72
+ export { BufferedOutputGuardrail, COMMON_SECRET_PATTERNS, createAuditHooks, createBufferedOutputGuardrail, createCacheHooks, createComprehensiveLoggingHooks, createGuardrailsHooks, createInMemoryAuditStore, createLoggingHooks as createGenerationLoggingHooks, createManagedCacheHooks, createManagedGuardrailsHooks, createManagedRateLimitHooks, createManagedRetryHooks, createManagedSecretsFilterHooks, createRateLimitHooks, createRegexGuardrail, createRetryHooks, createSecretsFilterHooks, createToolLoggingHooks, exportAuditEventsJSONLines, extractTextFromMessages, findLastUserMessageId, InMemoryCacheStore as InMemoryCacheStoreHook, raceGuardrails, runWithGuardrails, TokenBucketRateLimiter, withTimeout, wrapStreamWithOutputGuardrail, } from "./hooks/index.js";
73
+ export { aggregatePermissionDecisions, extractRespondWith, extractRetryDecision, extractUpdatedInput, extractUpdatedResult, HookTimeoutError, invokeHooksWithTimeout, invokeMatchingHooks, matchesToolName, } from "./hooks.js";
74
+ export type { MCPManagerOptions, MCPToolLoadResult, MCPToolMetadata, MCPToolSource, } from "./mcp/index.js";
75
+ export { expandEnvVars, isSchemaEmpty, MCPInputValidationError, MCPInputValidator, MCPManager, VirtualMCPServer, } from "./mcp/index.js";
76
+ export type { AdditionalMemoryFile, BuildMemorySectionOptions, BuildPathMemoryContextOptions, FileMemoryPermissionStoreOptions, FilesystemMemoryStoreOptions, LoadAdditionalMemoryOptions, LoadAgentMemoryOptions, LoadAllMemoryOptions, LoadAllMemoryResult, MemoryApproval, MemoryAuditEvent, MemoryDocument, MemoryMetadata, MemoryPermissionStore, MemoryStore, ParsedMarkdown, PathMemoryContext, } from "./memory/index.js";
77
+ export { buildMemorySection, buildPathMemoryContext, computeContentHash, computeFileHash, createFilesystemMemoryStore, createInMemoryMemoryStore, createInMemoryPermissionStore, createMemoryPermissionStore, FileMemoryPermissionStore, FilesystemMemoryStore, filterAdditionalFilesByPath, filterAutoLoadAdditionalFiles, filterAutoLoadMemories, filterMemoriesByAllTags, filterMemoriesByPath, filterMemoriesByTags, findGitRoot, getProjectMemoryPath, getUserAgentDir, getUserMemoryPath, InMemoryMemoryStore, InMemoryPermissionStore, loadAdditionalMemoryFiles, loadAgentMemory, loadAllMemory, matchesAnyPathPattern, matchesPathPattern, parseMarkdownWithFrontmatter, parseSimpleYaml, serializeMarkdownWithFrontmatter, } from "./memory/index.js";
78
+ export type { AgentMiddleware, LoggingMiddlewareOptions, MiddlewareContext, MiddlewareContextResult, } from "./middleware/index.js";
79
+ export { applyMiddleware, createLoggingMiddleware, createMiddlewareContext, mergeHooks, setupMiddleware, teardownMiddleware, } from "./middleware/index.js";
80
+ export type { AgentMetrics, Counter, EventExporterOptions, EventSeverity, Gauge, Histogram, HistogramBucket, HistogramData, LogEntry, LogFormatter, Logger, LoggerOptions, LogLevel, LogTimer, LogTransport, MetricLabels, MetricPoint, MetricsExporter, MetricsRegistry, MetricsRegistryOptions, MetricType, ObservabilityEvent, ObservabilityEventStore, ObservabilityEventStoreOptions, ObservabilityPreset, ObservabilityPresetOptions, Span, SpanAttributes, SpanContext, SpanData, SpanEvent, SpanExporter, SpanKind, SpanLink, SpanStatus, SpanStatusCode, StartSpanOptions, StructuredEvent, Tracer, TracerOptions, } from "./observability/index.js";
81
+ export { createAgentMetrics, createCallbackMetricsExporter, createCallbackSpanExporter, createCallbackTransport, createConsoleMetricsExporter, createConsoleSpanExporter, createConsoleTransport, createFilteredTransport, createJsonFormatter, createLogger, createMemoryMetricsExporter, createMemorySpanExporter, createMemoryTransport, createMetricsRegistry, createObservabilityEventHooks, createObservabilityEventStore, createObservabilityPreset, createOTLPSpanExporter, createPrettyFormatter, createTracer, DEFAULT_LATENCY_BUCKETS, DEFAULT_TOKEN_BUCKETS, defaultLogger, defaultMetricsRegistry, defaultTracer, exportEventsJSONLines, exportEventsPrometheus, LOG_LEVEL_VALUES, SemanticAttributes, setDefaultLogger, setDefaultMetricsRegistry, setDefaultTracer, toStructuredEvent, } from "./observability/index.js";
82
+ export { definePlugin } from "./plugins.js";
83
+ export type { ProductionAgentOptions, ProductionAgentResult, SecureProductionAgentOptions, } from "./presets/index.js";
84
+ export { createProductionAgent, createSecureProductionAgent, DEFAULT_BLOCKED_INPUT_PATTERNS, DEFAULT_BLOCKED_OUTPUT_PATTERNS, } from "./presets/index.js";
85
+ export type { SecurityPolicy, SecurityPolicyPreset } from "./security/index.js";
86
+ export { applySecurityPolicy } from "./security/index.js";
87
+ export type { EnhancedSubagentDefinition, ParallelExecutionResult, ParallelTask, SubagentContext, SubagentContextOptions, SubagentErrorEvent, SubagentEvent, SubagentEventEmitter, SubagentExecutionOptions, SubagentExecutionResult, SubagentFinishEvent, SubagentStartEvent, SubagentStepEvent, } from "./subagents/index.js";
88
+ export { createSubagentContext, createSubagentEventEmitter, executeSubagent, executeSubagentsParallel, mergeSubagentContext, } from "./subagents/index.js";
89
+ export { createSubagent } from "./subagents.js";
90
+ export type { BackgroundTask, BackgroundTaskStatus, BaseTaskStore, KeyValueStore as KVStore, TaskStoreOptions, } from "./task-store/index.js";
91
+ export { createBackgroundTask, FileTaskStore, isBackgroundTask, KVTaskStore, MemoryTaskStore, shouldExpireTask, updateBackgroundTask, } from "./task-store/index.js";
92
+ export type { AskUserCallback, BashResult, BashToolOptions, CoreTools, CoreToolsOptions, FilesystemTools, FilesystemToolsOptions, LoadableSkillDefinition, OnTodosChanged, QuestionOption, SearchToolsOptions, SkillLoadResult, SkillRegistryOptions, SkillToolOptions, TaskStatus, TaskToolOptions as TaskToolOptions_Tool, TodoChangeType, TodoInput, TodosChangedData, TodoWriteToolOptions, ToolLoadResult, ToolMetadata, ToolReference, ToolRegistryOptions, ToolSearchOptions, UseToolsToolOptions, } from "./tools/index.js";
93
+ export { cleanupStaleTasks, clearCompletedTasks, createAskUserQuestionTool, createBashTool, createCoreTools, createEditTool, createFilesystemTools, createFilesystemToolsOnly, createGlobTool, createGrepTool, createReadTool, createSearchToolsTool, createSkillRegistry, createSkillTool, createTaskTool, createTodoWriteTool, createToolRegistry, createUseToolsTool, createWriteTool, defineLoadableSkill, getBackgroundTask, listBackgroundTasks, mcpTools, mcpToolsFor, recoverFailedTasks, recoverRunningTasks, SkillRegistry, ToolRegistry, toolsFrom, toolsFromPlugin, } from "./tools/index.js";
94
+ export { defineSkill } from "./tools.js";
95
+ export type { Agent, AgentContext, AgentDataTypes, AgentOptions, AgentPlugin, AgentUIMessage, BackendFactory, CoreToolName, ExtendedToolExecutionOptions, FinishReason, GenerateOptions, GenerateResult, GenerateResultComplete, GenerateResultInterrupted, GenerateStep, HookCallback, HookCallbackContext, HookEvent, HookInput, HookMatcher, HookOutput, HookRegistration, HookSpecificOutput, HttpMCPServerConfig, InterruptFunction, InterruptRequestedInput, InterruptResolvedInput, LanguageModel, LanguageModelUsage, MCPConnectionFailedInput, MCPConnectionRestoredInput, MCPServerConfig, ModelMessage, PartialGenerateResult, PermissionDecision, PermissionMode, PluginLoadingMode, PluginOptions, PostCompactInput, PostGenerateFailureInput, PostGenerateInput, PostToolUseFailureInput, PostToolUseInput, PreCompactInput, PreGenerateInput, PreToolUseInput, SkillDefinition, SkillOptions, SseMCPServerConfig, StdioMCPServerConfig, StreamingContext, StreamingMetadata, StreamingToolsFactory, StreamPart, SubagentCreateContext, SubagentDefinition, SubagentOptions, SubagentStartInput, SubagentStopInput, TaskToolOptions, Tool, ToolCallResult, ToolExecutionOptions, ToolLoadErrorInput, ToolRegisteredInput, ToolResultPart, ToolSet, UIMessage, } from "./types.js";
96
+ export { isCompleteResult, isInterruptedResult, } from "./types.js";
97
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * @lleverage-ai/agent-sdk - A TypeScript framework for building AI agents.
3
+ *
4
+ * Built on top of Vercel AI SDK, this library provides a comprehensive toolkit
5
+ * for creating intelligent agents that can use tools, respond to hooks, and
6
+ * delegate tasks to specialized subagents.
7
+ *
8
+ * ## Quick Start
9
+ *
10
+ * ```typescript
11
+ * import { createAgent } from "@lleverage-ai/agent-sdk";
12
+ * import { anthropic } from "@ai-sdk/anthropic";
13
+ * import { tool } from "ai";
14
+ * import { z } from "zod";
15
+ *
16
+ * // Create an agent with tools
17
+ * const agent = createAgent({
18
+ * model: anthropic("claude-sonnet-4-20250514"),
19
+ * systemPrompt: "You are a friendly assistant.",
20
+ * tools: {
21
+ * greet: tool({
22
+ * description: "Greet a person by name",
23
+ * inputSchema: z.object({ name: z.string() }),
24
+ * execute: async ({ name }) => `Hello, ${name}!`,
25
+ * }),
26
+ * },
27
+ * });
28
+ *
29
+ * // Generate a response
30
+ * const result = await agent.generate({
31
+ * prompt: "Say hello to Alice",
32
+ * });
33
+ *
34
+ * // Or use with Next.js API routes and useChat
35
+ * export async function POST(req: Request) {
36
+ * const { messages } = await req.json();
37
+ * return agent.streamResponse({ messages });
38
+ * }
39
+ * ```
40
+ *
41
+ * ## Key Concepts
42
+ *
43
+ * - **Agents** - The main abstraction combining a model with tools and plugins
44
+ * - **Tools** - Use AI SDK's `tool()` function directly for full compatibility
45
+ * - **Plugins** - Bundles of tools, skills, and hooks for reusability
46
+ * - **Skills** - User-invocable slash commands
47
+ * - **Hooks** - Lifecycle event handlers for observing agent behavior
48
+ * - **Subagents** - Specialized agents for task delegation
49
+ *
50
+ * ## AI SDK Compatibility
51
+ *
52
+ * This SDK is built on Vercel AI SDK and maintains full compatibility:
53
+ * - Use `tool()` from 'ai' to define tools
54
+ * - Use `CoreMessage` and `UIMessage` types directly
55
+ * - `streamResponse()` returns a Response compatible with `useChat`
56
+ * - `streamRaw()` returns the raw AI SDK `streamText` result
57
+ *
58
+ * @packageDocumentation
59
+ */
60
+ // Core agent
61
+ export { createAgent } from "./agent.js";
62
+ // Backend
63
+ export { isBackend, isSandboxBackend } from "./backend.js";
64
+ export { BaseSandbox, CommandBlockedError, CommandTimeoutError, CompositeBackend, createAgentState, createCompositeBackend, createFilesystemBackend, createLocalSandbox, createPersistentBackend, createStateBackend, FileSizeLimitError, FilesystemBackend, InMemoryStore, LocalSandbox, PathTraversalError, PersistentBackend, StateBackend, SymlinkError, } from "./backends/index.js";
65
+ // Checkpointer System
66
+ export { createApprovalInterrupt,
67
+ // Types and helpers
68
+ createCheckpoint, createFileSaver, createInterrupt, createKeyValueStoreSaver, createMemorySaver,
69
+ // File Saver
70
+ FileSaver, isApprovalInterrupt, isCheckpoint, isInterrupt,
71
+ // KeyValueStore Saver
72
+ KeyValueStoreSaver,
73
+ // Memory Saver
74
+ MemorySaver, updateCheckpoint, } from "./checkpointer/index.js";
75
+ // Context
76
+ export { createContext } from "./context.js";
77
+ // Error Handling System
78
+ export { AbortError,
79
+ // Base error class
80
+ AgentError, AuthenticationError, AuthorizationError, BackendError, CheckpointError,
81
+ // Specific error classes
82
+ ConfigurationError, ContextError, createCircuitBreaker, createErrorHandler, formatErrorForLogging, GeneratePermissionDeniedError, getUserMessage, isRetryable, MemoryError, ModelError, NetworkError, RateLimitError, SubagentError, TimeoutError, ToolExecutionError, ToolPermissionDeniedError, tryOperations, ValidationError,
83
+ // Graceful degradation
84
+ withFallback, withFallbackFn,
85
+ // Utilities
86
+ wrapError, } from "./errors/index.js";
87
+ // Hook Utilities (factories for common patterns)
88
+ export { BufferedOutputGuardrail, COMMON_SECRET_PATTERNS,
89
+ // Audit hooks
90
+ createAuditHooks,
91
+ // Buffered output guardrails
92
+ createBufferedOutputGuardrail,
93
+ // Cache hooks
94
+ createCacheHooks, createComprehensiveLoggingHooks,
95
+ // Guardrails hooks
96
+ createGuardrailsHooks, createInMemoryAuditStore,
97
+ // Logging hooks
98
+ createLoggingHooks as createGenerationLoggingHooks, createManagedCacheHooks, createManagedGuardrailsHooks, createManagedRateLimitHooks, createManagedRetryHooks, createManagedSecretsFilterHooks,
99
+ // Rate limit hooks
100
+ createRateLimitHooks, createRegexGuardrail,
101
+ // Retry hooks
102
+ createRetryHooks,
103
+ // Secrets filter hooks
104
+ createSecretsFilterHooks, createToolLoggingHooks, exportAuditEventsJSONLines, extractTextFromMessages, findLastUserMessageId, InMemoryCacheStore as InMemoryCacheStoreHook,
105
+ // Composable guardrails (race pattern)
106
+ raceGuardrails, runWithGuardrails, TokenBucketRateLimiter, withTimeout, wrapStreamWithOutputGuardrail, } from "./hooks/index.js";
107
+ // Hooks
108
+ export { aggregatePermissionDecisions, extractRespondWith, extractRetryDecision, extractUpdatedInput, extractUpdatedResult, HookTimeoutError, invokeHooksWithTimeout, invokeMatchingHooks, matchesToolName, } from "./hooks.js";
109
+ // MCP (Model Context Protocol)
110
+ export { expandEnvVars, isSchemaEmpty, MCPInputValidationError, MCPInputValidator, MCPManager, VirtualMCPServer, } from "./mcp/index.js";
111
+ // Memory System
112
+ export { buildMemorySection, buildPathMemoryContext, computeContentHash, computeFileHash, createFilesystemMemoryStore, createInMemoryMemoryStore, createInMemoryPermissionStore, createMemoryPermissionStore,
113
+ // Permission store
114
+ FileMemoryPermissionStore,
115
+ // Filesystem store
116
+ FilesystemMemoryStore, filterAdditionalFilesByPath, filterAutoLoadAdditionalFiles, filterAutoLoadMemories, filterMemoriesByAllTags, filterMemoriesByPath, filterMemoriesByTags, findGitRoot, getProjectMemoryPath, getUserAgentDir, getUserMemoryPath, InMemoryMemoryStore, InMemoryPermissionStore, loadAdditionalMemoryFiles,
117
+ // Loading functions
118
+ loadAgentMemory, loadAllMemory, matchesAnyPathPattern,
119
+ // Path-based rules
120
+ matchesPathPattern,
121
+ // Store and parsing
122
+ parseMarkdownWithFrontmatter, parseSimpleYaml, serializeMarkdownWithFrontmatter, } from "./memory/index.js";
123
+ // Middleware System
124
+ export {
125
+ // Application utilities
126
+ applyMiddleware,
127
+ // Built-in middleware
128
+ createLoggingMiddleware,
129
+ // Context creation (for custom middleware)
130
+ createMiddlewareContext, mergeHooks, setupMiddleware, teardownMiddleware, } from "./middleware/index.js";
131
+ // Observability presets
132
+ // Observability System
133
+ export { createAgentMetrics, createCallbackMetricsExporter, createCallbackSpanExporter, createCallbackTransport, createConsoleMetricsExporter, createConsoleSpanExporter, createConsoleTransport, createFilteredTransport, createJsonFormatter, createLogger, createMemoryMetricsExporter, createMemorySpanExporter, createMemoryTransport, createMetricsRegistry, createObservabilityEventHooks, createObservabilityEventStore, createObservabilityPreset, createOTLPSpanExporter, createPrettyFormatter,
134
+ // Tracing
135
+ createTracer,
136
+ // Metrics
137
+ DEFAULT_LATENCY_BUCKETS, DEFAULT_TOKEN_BUCKETS, defaultLogger, defaultMetricsRegistry, defaultTracer, exportEventsJSONLines, exportEventsPrometheus,
138
+ // Logger
139
+ LOG_LEVEL_VALUES, SemanticAttributes, setDefaultLogger, setDefaultMetricsRegistry, setDefaultTracer,
140
+ // Events
141
+ toStructuredEvent, } from "./observability/index.js";
142
+ // Plugins
143
+ export { definePlugin } from "./plugins.js";
144
+ // Presets (convenience bundles for quick setup)
145
+ export { createProductionAgent, createSecureProductionAgent, DEFAULT_BLOCKED_INPUT_PATTERNS, DEFAULT_BLOCKED_OUTPUT_PATTERNS, } from "./presets/index.js";
146
+ // Security (security policy presets)
147
+ export { applySecurityPolicy } from "./security/index.js";
148
+ // Advanced Subagents
149
+ export { createSubagentContext, createSubagentEventEmitter, executeSubagent, executeSubagentsParallel, mergeSubagentContext, } from "./subagents/index.js";
150
+ // Subagents
151
+ export { createSubagent } from "./subagents.js";
152
+ // Task Store (background task persistence)
153
+ export { createBackgroundTask, FileTaskStore, isBackgroundTask, KVTaskStore, MemoryTaskStore, shouldExpireTask, updateBackgroundTask, } from "./task-store/index.js";
154
+ // Core Tools
155
+ export { cleanupStaleTasks, clearCompletedTasks,
156
+ // User interaction tools
157
+ createAskUserQuestionTool,
158
+ // Bash tool
159
+ createBashTool,
160
+ // Tool factory (unified tool creation)
161
+ createCoreTools, createEditTool, createFilesystemTools, createFilesystemToolsOnly, createGlobTool, createGrepTool,
162
+ // Filesystem tools
163
+ createReadTool,
164
+ // Search tools (MCP integration)
165
+ createSearchToolsTool, createSkillRegistry, createSkillTool,
166
+ // Task tool (subagent delegation)
167
+ createTaskTool,
168
+ // Todo tool
169
+ createTodoWriteTool, createToolRegistry, createUseToolsTool, createWriteTool, defineLoadableSkill, getBackgroundTask, listBackgroundTasks,
170
+ // Tool utilities (DX helpers)
171
+ mcpTools, mcpToolsFor, recoverFailedTasks, recoverRunningTasks,
172
+ // Skill tool (progressive disclosure)
173
+ SkillRegistry,
174
+ // Tool registry (deferred tool loading)
175
+ ToolRegistry, toolsFrom, toolsFromPlugin, } from "./tools/index.js";
176
+ // Skills (tools use AI SDK's tool() directly)
177
+ export { defineSkill } from "./tools.js";
178
+ // Types - Re-export AI SDK types for convenience
179
+ export {
180
+ // Result type guards
181
+ isCompleteResult, isInterruptedResult, } from "./types.js";
182
+ //# sourceMappingURL=index.js.map