@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,354 @@
1
+ /**
2
+ * Skill tool for progressive disclosure of capabilities.
3
+ *
4
+ * The skill tool allows agents to load skills (tools + prompts) on-demand
5
+ * based on conversation context. This keeps the initial context small and
6
+ * focused, expanding capabilities only as needed.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import type { ToolSet } from "ai";
11
+ import type { MCPManager } from "../mcp/manager.js";
12
+ /**
13
+ * Definition of a loadable skill for progressive disclosure.
14
+ *
15
+ * Skills bundle tools and prompts that are loaded dynamically by the agent.
16
+ * This extends the basic `SkillDefinition` with support for MCP tools and
17
+ * dependencies, enabling on-demand capability expansion.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const gitSkill: LoadableSkillDefinition = {
22
+ * name: "git",
23
+ * description: "Git version control operations",
24
+ * tools: {
25
+ * git_status: tool({ ... }),
26
+ * git_commit: tool({ ... }),
27
+ * },
28
+ * prompt: "You now have access to Git tools. Use them to manage version control.",
29
+ * };
30
+ * ```
31
+ *
32
+ * @category Tools
33
+ */
34
+ export interface LoadableSkillDefinition {
35
+ /** Unique identifier for the skill */
36
+ name: string;
37
+ /** Description for the agent to decide when to invoke this skill */
38
+ description: string;
39
+ /** Tools this skill provides (inline tools) */
40
+ tools: ToolSet;
41
+ /**
42
+ * MCP tool names to load when this skill is activated.
43
+ *
44
+ * These are tool names from the MCPManager (e.g., "mcp__github__list_issues").
45
+ * They will be loaded via MCPManager.loadTools() when the skill is activated.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const githubSkill: LoadableSkillDefinition = {
50
+ * name: "github",
51
+ * description: "GitHub operations",
52
+ * tools: {}, // No inline tools
53
+ * mcpTools: [
54
+ * "mcp__github__list_issues",
55
+ * "mcp__github__create_pr",
56
+ * ],
57
+ * prompt: "You can now work with GitHub issues and PRs.",
58
+ * };
59
+ * ```
60
+ */
61
+ mcpTools?: string[];
62
+ /**
63
+ * Prompt to inject when the skill is loaded.
64
+ * Can be a string or a function that receives optional arguments.
65
+ */
66
+ prompt: string | ((args?: string) => string);
67
+ /**
68
+ * Optional skills this skill depends on.
69
+ * Dependencies are loaded first when this skill is loaded.
70
+ */
71
+ dependencies?: string[];
72
+ }
73
+ /**
74
+ * Result from attempting to load a skill.
75
+ *
76
+ * @category Tools
77
+ */
78
+ export interface SkillLoadResult {
79
+ /** Whether the skill was loaded successfully */
80
+ success: boolean;
81
+ /** Tools provided by the loaded skill (empty if failed) */
82
+ tools: ToolSet;
83
+ /** Prompt from the loaded skill (empty if failed) */
84
+ prompt: string;
85
+ /** Error message if loading failed */
86
+ error?: string;
87
+ /** Skills that were loaded as dependencies */
88
+ loadedDependencies?: string[];
89
+ /** MCP tools that were loaded (via MCPManager) */
90
+ loadedMcpTools?: string[];
91
+ /** MCP tools that were requested but not found */
92
+ notFoundMcpTools?: string[];
93
+ }
94
+ /**
95
+ * Options for creating a skill registry.
96
+ *
97
+ * @category Tools
98
+ */
99
+ export interface SkillRegistryOptions {
100
+ /**
101
+ * Initial skills to register.
102
+ */
103
+ skills?: LoadableSkillDefinition[];
104
+ /**
105
+ * MCP manager for loading MCP tools referenced by skills.
106
+ *
107
+ * When provided, skills can specify `mcpTools` to load MCP tools
108
+ * when the skill is activated.
109
+ */
110
+ mcpManager?: MCPManager;
111
+ /**
112
+ * Callback when a skill is loaded.
113
+ */
114
+ onSkillLoaded?: (skillName: string, result: SkillLoadResult) => void;
115
+ }
116
+ /**
117
+ * Registry for managing loadable skills.
118
+ *
119
+ * The registry tracks available skills and which ones have been loaded.
120
+ * Skills are loaded on-demand by the agent using the skill tool.
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const registry = new SkillRegistry({
125
+ * skills: [gitSkill, dockerSkill],
126
+ * });
127
+ *
128
+ * // Register more skills later
129
+ * registry.register(kubernetesSkill);
130
+ *
131
+ * // Check available skills
132
+ * const available = registry.listAvailable();
133
+ *
134
+ * // Load a skill
135
+ * const result = registry.load("git");
136
+ * ```
137
+ *
138
+ * @category Tools
139
+ */
140
+ export declare class SkillRegistry {
141
+ /** All registered skills */
142
+ private skills;
143
+ /** Currently loaded skills */
144
+ private loadedSkills;
145
+ /** Callback for skill load events */
146
+ private onSkillLoaded?;
147
+ /** MCP manager for loading MCP tools */
148
+ private mcpManager?;
149
+ /**
150
+ * Creates a new skill registry.
151
+ *
152
+ * @param options - Configuration options
153
+ */
154
+ constructor(options?: SkillRegistryOptions);
155
+ /**
156
+ * Register a skill with the registry.
157
+ *
158
+ * @param skill - The skill definition to register
159
+ * @throws Error if a skill with the same name is already registered
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * registry.register({
164
+ * name: "aws",
165
+ * description: "AWS cloud operations",
166
+ * tools: { ... },
167
+ * prompt: "You now have access to AWS tools.",
168
+ * });
169
+ * ```
170
+ */
171
+ register(skill: LoadableSkillDefinition): void;
172
+ /**
173
+ * Unregister a skill from the registry.
174
+ *
175
+ * @param name - The name of the skill to unregister
176
+ * @returns True if the skill was found and removed
177
+ */
178
+ unregister(name: string): boolean;
179
+ /**
180
+ * Check if a skill is registered.
181
+ *
182
+ * @param name - The name of the skill to check
183
+ * @returns True if the skill is registered
184
+ */
185
+ has(name: string): boolean;
186
+ /**
187
+ * Check if a skill is currently loaded.
188
+ *
189
+ * @param name - The name of the skill to check
190
+ * @returns True if the skill is loaded
191
+ */
192
+ isLoaded(name: string): boolean;
193
+ /**
194
+ * Get a registered skill definition.
195
+ *
196
+ * @param name - The name of the skill
197
+ * @returns The skill definition or undefined if not found
198
+ */
199
+ get(name: string): LoadableSkillDefinition | undefined;
200
+ /**
201
+ * Load a skill, making its tools and prompt available.
202
+ *
203
+ * This method handles dependencies, loading them first if specified.
204
+ * Already-loaded skills are skipped (no duplicate loading).
205
+ *
206
+ * @param name - The name of the skill to load
207
+ * @param args - Optional arguments to pass to the skill's prompt function
208
+ * @returns The load result with tools, prompt, and status
209
+ *
210
+ * @example
211
+ * ```typescript
212
+ * const result = registry.load("git");
213
+ * if (result.success) {
214
+ * // Inject result.tools into agent
215
+ * // Inject result.prompt into context
216
+ * }
217
+ * ```
218
+ */
219
+ load(name: string, args?: string): SkillLoadResult;
220
+ /**
221
+ * List skills that are available but not yet loaded.
222
+ *
223
+ * @returns Array of skill summaries (name and description)
224
+ */
225
+ listAvailable(): Array<{
226
+ name: string;
227
+ description: string;
228
+ }>;
229
+ /**
230
+ * List all loaded skills.
231
+ *
232
+ * @returns Array of loaded skill names
233
+ */
234
+ listLoaded(): string[];
235
+ /**
236
+ * List all registered skills (loaded and available).
237
+ *
238
+ * @returns Array of all skill summaries
239
+ */
240
+ listAll(): Array<{
241
+ name: string;
242
+ description: string;
243
+ loaded: boolean;
244
+ }>;
245
+ /**
246
+ * Reset the registry, marking all skills as unloaded.
247
+ *
248
+ * This does not unregister skills, only resets the loaded state.
249
+ */
250
+ reset(): void;
251
+ /**
252
+ * Get the number of registered skills.
253
+ */
254
+ get size(): number;
255
+ /**
256
+ * Get the number of loaded skills.
257
+ */
258
+ get loadedCount(): number;
259
+ }
260
+ /**
261
+ * Options for creating the skill loading tool.
262
+ *
263
+ * @category Tools
264
+ */
265
+ export interface SkillToolOptions {
266
+ /** The skill registry to use */
267
+ registry: SkillRegistry;
268
+ /**
269
+ * Custom name for the tool.
270
+ * @defaultValue "load_skill"
271
+ */
272
+ name?: string;
273
+ /**
274
+ * Custom description prefix for the tool.
275
+ * The list of available skills is appended automatically.
276
+ */
277
+ descriptionPrefix?: string;
278
+ }
279
+ /**
280
+ * Creates a tool that allows agents to load skills on-demand.
281
+ *
282
+ * The tool's description dynamically lists available (not yet loaded) skills,
283
+ * so the agent can decide which skill to load based on the conversation.
284
+ *
285
+ * @param options - Configuration options
286
+ * @returns An AI SDK compatible tool for loading skills
287
+ *
288
+ * @example
289
+ * ```typescript
290
+ * import { createSkillTool, SkillRegistry } from "@lleverage-ai/agent-sdk";
291
+ *
292
+ * const registry = new SkillRegistry({
293
+ * skills: [gitSkill, dockerSkill],
294
+ * });
295
+ *
296
+ * const skillTool = createSkillTool({ registry });
297
+ *
298
+ * const agent = createAgent({
299
+ * model,
300
+ * tools: { load_skill: skillTool },
301
+ * });
302
+ *
303
+ * // Agent can now invoke load_skill to gain new capabilities
304
+ * ```
305
+ *
306
+ * @category Tools
307
+ */
308
+ export declare function createSkillTool(options: SkillToolOptions): import("ai").Tool<{
309
+ skill_name: string;
310
+ args?: string | undefined;
311
+ }, Record<string, unknown>>;
312
+ /**
313
+ * Creates a new skill registry with the given skills.
314
+ *
315
+ * This is a convenience function for creating a SkillRegistry instance.
316
+ *
317
+ * @param skills - Initial skills to register
318
+ * @param options - Additional options
319
+ * @returns A new SkillRegistry instance
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * const registry = createSkillRegistry([gitSkill, dockerSkill]);
324
+ * ```
325
+ *
326
+ * @category Tools
327
+ */
328
+ export declare function createSkillRegistry(skills: LoadableSkillDefinition[], options?: Omit<SkillRegistryOptions, "skills">): SkillRegistry;
329
+ /**
330
+ * Creates a skill definition.
331
+ *
332
+ * This is a helper function for creating LoadableSkillDefinition objects
333
+ * with proper typing.
334
+ *
335
+ * @param options - Skill configuration
336
+ * @returns A LoadableSkillDefinition object
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * const gitSkill = defineLoadableSkill({
341
+ * name: "git",
342
+ * description: "Git version control operations",
343
+ * tools: {
344
+ * git_status: tool({ ... }),
345
+ * git_commit: tool({ ... }),
346
+ * },
347
+ * prompt: "You now have access to Git tools.",
348
+ * });
349
+ * ```
350
+ *
351
+ * @category Tools
352
+ */
353
+ export declare function defineLoadableSkill(options: LoadableSkillDefinition): LoadableSkillDefinition;
354
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/tools/skills.ts"],"names":[],"mappings":"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"}