@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.
- package/LICENSE +21 -0
- package/README.md +2321 -0
- package/dist/agent.d.ts +52 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +2122 -0
- package/dist/agent.js.map +1 -0
- package/dist/backend.d.ts +378 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +71 -0
- package/dist/backend.js.map +1 -0
- package/dist/backends/composite.d.ts +258 -0
- package/dist/backends/composite.d.ts.map +1 -0
- package/dist/backends/composite.js +437 -0
- package/dist/backends/composite.js.map +1 -0
- package/dist/backends/filesystem.d.ts +268 -0
- package/dist/backends/filesystem.d.ts.map +1 -0
- package/dist/backends/filesystem.js +623 -0
- package/dist/backends/filesystem.js.map +1 -0
- package/dist/backends/index.d.ts +14 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +14 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/persistent.d.ts +312 -0
- package/dist/backends/persistent.d.ts.map +1 -0
- package/dist/backends/persistent.js +519 -0
- package/dist/backends/persistent.js.map +1 -0
- package/dist/backends/sandbox.d.ts +315 -0
- package/dist/backends/sandbox.d.ts.map +1 -0
- package/dist/backends/sandbox.js +490 -0
- package/dist/backends/sandbox.js.map +1 -0
- package/dist/backends/state.d.ts +225 -0
- package/dist/backends/state.d.ts.map +1 -0
- package/dist/backends/state.js +396 -0
- package/dist/backends/state.js.map +1 -0
- package/dist/checkpointer/file-saver.d.ts +182 -0
- package/dist/checkpointer/file-saver.d.ts.map +1 -0
- package/dist/checkpointer/file-saver.js +298 -0
- package/dist/checkpointer/file-saver.js.map +1 -0
- package/dist/checkpointer/index.d.ts +40 -0
- package/dist/checkpointer/index.d.ts.map +1 -0
- package/dist/checkpointer/index.js +40 -0
- package/dist/checkpointer/index.js.map +1 -0
- package/dist/checkpointer/kv-saver.d.ts +142 -0
- package/dist/checkpointer/kv-saver.d.ts.map +1 -0
- package/dist/checkpointer/kv-saver.js +176 -0
- package/dist/checkpointer/kv-saver.js.map +1 -0
- package/dist/checkpointer/memory-saver.d.ts +158 -0
- package/dist/checkpointer/memory-saver.d.ts.map +1 -0
- package/dist/checkpointer/memory-saver.js +222 -0
- package/dist/checkpointer/memory-saver.js.map +1 -0
- package/dist/checkpointer/types.d.ts +353 -0
- package/dist/checkpointer/types.d.ts.map +1 -0
- package/dist/checkpointer/types.js +159 -0
- package/dist/checkpointer/types.js.map +1 -0
- package/dist/context-manager.d.ts +627 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +1039 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/context.d.ts +57 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +76 -0
- package/dist/context.js.map +1 -0
- package/dist/errors/index.d.ts +611 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1023 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/generation-helpers.d.ts +126 -0
- package/dist/generation-helpers.d.ts.map +1 -0
- package/dist/generation-helpers.js +181 -0
- package/dist/generation-helpers.js.map +1 -0
- package/dist/hooks/audit.d.ts +210 -0
- package/dist/hooks/audit.d.ts.map +1 -0
- package/dist/hooks/audit.js +305 -0
- package/dist/hooks/audit.js.map +1 -0
- package/dist/hooks/cache.d.ts +180 -0
- package/dist/hooks/cache.d.ts.map +1 -0
- package/dist/hooks/cache.js +273 -0
- package/dist/hooks/cache.js.map +1 -0
- package/dist/hooks/guardrails.d.ts +145 -0
- package/dist/hooks/guardrails.d.ts.map +1 -0
- package/dist/hooks/guardrails.js +326 -0
- package/dist/hooks/guardrails.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +32 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/logging.d.ts +193 -0
- package/dist/hooks/logging.d.ts.map +1 -0
- package/dist/hooks/logging.js +345 -0
- package/dist/hooks/logging.js.map +1 -0
- package/dist/hooks/parallel-guardrails.d.ts +268 -0
- package/dist/hooks/parallel-guardrails.d.ts.map +1 -0
- package/dist/hooks/parallel-guardrails.js +416 -0
- package/dist/hooks/parallel-guardrails.js.map +1 -0
- package/dist/hooks/rate-limit.d.ts +305 -0
- package/dist/hooks/rate-limit.d.ts.map +1 -0
- package/dist/hooks/rate-limit.js +372 -0
- package/dist/hooks/rate-limit.js.map +1 -0
- package/dist/hooks/retry.d.ts +144 -0
- package/dist/hooks/retry.d.ts.map +1 -0
- package/dist/hooks/retry.js +210 -0
- package/dist/hooks/retry.js.map +1 -0
- package/dist/hooks/secrets.d.ts +174 -0
- package/dist/hooks/secrets.d.ts.map +1 -0
- package/dist/hooks/secrets.js +306 -0
- package/dist/hooks/secrets.js.map +1 -0
- package/dist/hooks.d.ts +229 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +352 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/env.d.ts +25 -0
- package/dist/mcp/env.d.ts.map +1 -0
- package/dist/mcp/env.js +18 -0
- package/dist/mcp/env.js.map +1 -0
- package/dist/mcp/index.d.ts +16 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +17 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +184 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +446 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/types.d.ts +58 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +7 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +119 -0
- package/dist/mcp/validation.d.ts.map +1 -0
- package/dist/mcp/validation.js +407 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/mcp/virtual-server.d.ts +78 -0
- package/dist/mcp/virtual-server.d.ts.map +1 -0
- package/dist/mcp/virtual-server.js +137 -0
- package/dist/mcp/virtual-server.js.map +1 -0
- package/dist/memory/filesystem-store.d.ts +217 -0
- package/dist/memory/filesystem-store.d.ts.map +1 -0
- package/dist/memory/filesystem-store.js +343 -0
- package/dist/memory/filesystem-store.js.map +1 -0
- package/dist/memory/index.d.ts +46 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +46 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/loader.d.ts +396 -0
- package/dist/memory/loader.d.ts.map +1 -0
- package/dist/memory/loader.js +419 -0
- package/dist/memory/loader.js.map +1 -0
- package/dist/memory/permissions.d.ts +282 -0
- package/dist/memory/permissions.d.ts.map +1 -0
- package/dist/memory/permissions.js +297 -0
- package/dist/memory/permissions.js.map +1 -0
- package/dist/memory/rules.d.ts +249 -0
- package/dist/memory/rules.d.ts.map +1 -0
- package/dist/memory/rules.js +362 -0
- package/dist/memory/rules.js.map +1 -0
- package/dist/memory/store.d.ts +286 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +263 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/middleware/apply.d.ts +73 -0
- package/dist/middleware/apply.d.ts.map +1 -0
- package/dist/middleware/apply.js +219 -0
- package/dist/middleware/apply.js.map +1 -0
- package/dist/middleware/context.d.ts +33 -0
- package/dist/middleware/context.d.ts.map +1 -0
- package/dist/middleware/context.js +176 -0
- package/dist/middleware/context.js.map +1 -0
- package/dist/middleware/index.d.ts +31 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +32 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logging.d.ts +137 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +374 -0
- package/dist/middleware/logging.js.map +1 -0
- package/dist/middleware/types.d.ts +183 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +11 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/observability/events.d.ts +183 -0
- package/dist/observability/events.d.ts.map +1 -0
- package/dist/observability/events.js +305 -0
- package/dist/observability/events.js.map +1 -0
- package/dist/observability/index.d.ts +55 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +87 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +318 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +436 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +341 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +490 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/preset.d.ts +161 -0
- package/dist/observability/preset.d.ts.map +1 -0
- package/dist/observability/preset.js +133 -0
- package/dist/observability/preset.js.map +1 -0
- package/dist/observability/streaming.d.ts +113 -0
- package/dist/observability/streaming.d.ts.map +1 -0
- package/dist/observability/streaming.js +114 -0
- package/dist/observability/streaming.js.map +1 -0
- package/dist/observability/tracing.d.ts +378 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +539 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/plugins.d.ts +55 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +63 -0
- package/dist/plugins.js.map +1 -0
- package/dist/presets/index.d.ts +7 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +7 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/production.d.ts +262 -0
- package/dist/presets/production.d.ts.map +1 -0
- package/dist/presets/production.js +295 -0
- package/dist/presets/production.js.map +1 -0
- package/dist/security/index.d.ts +179 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +323 -0
- package/dist/security/index.js.map +1 -0
- package/dist/subagents/advanced.d.ts +413 -0
- package/dist/subagents/advanced.d.ts.map +1 -0
- package/dist/subagents/advanced.js +396 -0
- package/dist/subagents/advanced.js.map +1 -0
- package/dist/subagents/index.d.ts +14 -0
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +15 -0
- package/dist/subagents/index.js.map +1 -0
- package/dist/subagents.d.ts +73 -0
- package/dist/subagents.d.ts.map +1 -0
- package/dist/subagents.js +213 -0
- package/dist/subagents.js.map +1 -0
- package/dist/task-store/file-store.d.ts +76 -0
- package/dist/task-store/file-store.d.ts.map +1 -0
- package/dist/task-store/file-store.js +190 -0
- package/dist/task-store/file-store.js.map +1 -0
- package/dist/task-store/index.d.ts +11 -0
- package/dist/task-store/index.d.ts.map +1 -0
- package/dist/task-store/index.js +10 -0
- package/dist/task-store/index.js.map +1 -0
- package/dist/task-store/kv-store.d.ts +140 -0
- package/dist/task-store/kv-store.d.ts.map +1 -0
- package/dist/task-store/kv-store.js +169 -0
- package/dist/task-store/kv-store.js.map +1 -0
- package/dist/task-store/memory-store.d.ts +66 -0
- package/dist/task-store/memory-store.d.ts.map +1 -0
- package/dist/task-store/memory-store.js +125 -0
- package/dist/task-store/memory-store.js.map +1 -0
- package/dist/task-store/types.d.ts +235 -0
- package/dist/task-store/types.d.ts.map +1 -0
- package/dist/task-store/types.js +110 -0
- package/dist/task-store/types.js.map +1 -0
- package/dist/testing/assertions.d.ts +401 -0
- package/dist/testing/assertions.d.ts.map +1 -0
- package/dist/testing/assertions.js +630 -0
- package/dist/testing/assertions.js.map +1 -0
- package/dist/testing/index.d.ts +343 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +360 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-agent.d.ts +214 -0
- package/dist/testing/mock-agent.d.ts.map +1 -0
- package/dist/testing/mock-agent.js +448 -0
- package/dist/testing/mock-agent.js.map +1 -0
- package/dist/testing/recorder.d.ts +288 -0
- package/dist/testing/recorder.d.ts.map +1 -0
- package/dist/testing/recorder.js +499 -0
- package/dist/testing/recorder.js.map +1 -0
- package/dist/tools/execute.d.ts +104 -0
- package/dist/tools/execute.d.ts.map +1 -0
- package/dist/tools/execute.js +191 -0
- package/dist/tools/execute.js.map +1 -0
- package/dist/tools/factory.d.ts +260 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +241 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/filesystem.d.ts +215 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +311 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +33 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/search.d.ts +59 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +94 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/skills.d.ts +354 -0
- package/dist/tools/skills.d.ts.map +1 -0
- package/dist/tools/skills.js +413 -0
- package/dist/tools/skills.js.map +1 -0
- package/dist/tools/task.d.ts +272 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +521 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todos.d.ts +131 -0
- package/dist/tools/todos.d.ts.map +1 -0
- package/dist/tools/todos.js +120 -0
- package/dist/tools/todos.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +424 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +607 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/user-interaction.d.ts +116 -0
- package/dist/tools/user-interaction.d.ts.map +1 -0
- package/dist/tools/user-interaction.js +147 -0
- package/dist/tools/user-interaction.js.map +1 -0
- package/dist/tools/utils.d.ts +124 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +189 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools.d.ts +74 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +73 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +2421 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +55 -0
- package/dist/types.js.map +1 -0
- 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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"}
|