@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,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bash tool for running shell commands in a sandbox.
|
|
3
|
+
*
|
|
4
|
+
* This tool wraps the SandboxBackendProtocol to provide command execution
|
|
5
|
+
* to agents. It includes timeout support, output truncation, and optional
|
|
6
|
+
* command approval for dangerous operations.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { tool } from "ai";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Constants
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/** Default timeout for command execution (2 minutes) */
|
|
16
|
+
const DEFAULT_TIMEOUT_MS = 120000;
|
|
17
|
+
/** Character count threshold for output truncation warning (~20k tokens) */
|
|
18
|
+
const LARGE_OUTPUT_WARNING_CHARS = 80_000;
|
|
19
|
+
/** Maximum output size before truncation (same as in tools, ~30k chars) */
|
|
20
|
+
const MAX_OUTPUT_SIZE_CHARS = 120_000;
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Bash Tool
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Creates a tool for executing shell commands in a sandbox.
|
|
26
|
+
*
|
|
27
|
+
* This tool provides secure command execution with:
|
|
28
|
+
* - Timeout enforcement
|
|
29
|
+
* - Output size limits
|
|
30
|
+
* - Command blocking/allowlisting at tool level
|
|
31
|
+
* - Optional approval for dangerous commands
|
|
32
|
+
*
|
|
33
|
+
* @param options - Configuration options
|
|
34
|
+
* @returns An AI SDK compatible tool for shell execution
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { createBashTool, LocalSandbox } from "@lleverage-ai/agent-sdk";
|
|
39
|
+
*
|
|
40
|
+
* const sandbox = new LocalSandbox({ cwd: process.cwd() });
|
|
41
|
+
* const bash = createBashTool({
|
|
42
|
+
* sandbox,
|
|
43
|
+
* timeout: 30000,
|
|
44
|
+
* blockedCommands: ["rm -rf /"],
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* const agent = createAgent({
|
|
48
|
+
* model,
|
|
49
|
+
* tools: { bash },
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @category Tools
|
|
54
|
+
*/
|
|
55
|
+
export function createBashTool(options) {
|
|
56
|
+
const { sandbox, timeout = DEFAULT_TIMEOUT_MS, blockedCommands = [], allowedCommands, requireApproval = [], onApprovalRequest, maxOutputSize = MAX_OUTPUT_SIZE_CHARS, } = options;
|
|
57
|
+
return tool({
|
|
58
|
+
description: "Execute a shell command. Returns stdout/stderr output, exit code, and whether output was truncated.",
|
|
59
|
+
inputSchema: z.object({
|
|
60
|
+
command: z.string().describe("Shell command to execute"),
|
|
61
|
+
timeout: z.number().optional().describe(`Timeout in milliseconds (default: ${timeout})`),
|
|
62
|
+
}),
|
|
63
|
+
execute: async ({ command, timeout: commandTimeout, }) => {
|
|
64
|
+
// Validate command at tool level
|
|
65
|
+
const validationError = validateCommand(command, blockedCommands, allowedCommands);
|
|
66
|
+
if (validationError) {
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
output: "",
|
|
70
|
+
exitCode: null,
|
|
71
|
+
truncated: false,
|
|
72
|
+
error: validationError,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Check if approval is required
|
|
76
|
+
const approvalReason = needsApproval(command, requireApproval);
|
|
77
|
+
if (approvalReason) {
|
|
78
|
+
if (!onApprovalRequest) {
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
output: "",
|
|
82
|
+
exitCode: null,
|
|
83
|
+
truncated: false,
|
|
84
|
+
error: `Command requires approval: ${approvalReason}. No approval callback configured.`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const approved = await onApprovalRequest(command, approvalReason);
|
|
88
|
+
if (!approved) {
|
|
89
|
+
return {
|
|
90
|
+
success: false,
|
|
91
|
+
output: "",
|
|
92
|
+
exitCode: null,
|
|
93
|
+
truncated: false,
|
|
94
|
+
error: `Command execution denied: ${approvalReason}`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
// Execute command through sandbox
|
|
100
|
+
const result = await sandbox.execute(command);
|
|
101
|
+
// Format output
|
|
102
|
+
return formatBashResult(result, maxOutputSize);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
// Handle sandbox-level errors (e.g., CommandBlockedError)
|
|
106
|
+
return {
|
|
107
|
+
success: false,
|
|
108
|
+
output: "",
|
|
109
|
+
exitCode: null,
|
|
110
|
+
truncated: false,
|
|
111
|
+
error: error instanceof Error ? error.message : String(error),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// =============================================================================
|
|
118
|
+
// Helper Functions
|
|
119
|
+
// =============================================================================
|
|
120
|
+
/**
|
|
121
|
+
* Validate a command against blocked/allowed patterns.
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
function validateCommand(command, blockedCommands, allowedCommands) {
|
|
125
|
+
// Empty command check
|
|
126
|
+
if (!command.trim()) {
|
|
127
|
+
return "Command cannot be empty";
|
|
128
|
+
}
|
|
129
|
+
// Check allowlist first (if configured)
|
|
130
|
+
if (allowedCommands && allowedCommands.length > 0) {
|
|
131
|
+
const isAllowed = allowedCommands.some((pattern) => matchesPattern(command, pattern));
|
|
132
|
+
if (!isAllowed) {
|
|
133
|
+
return "Command not in allowlist";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Check blocklist
|
|
137
|
+
for (const pattern of blockedCommands) {
|
|
138
|
+
if (matchesPattern(command, pattern)) {
|
|
139
|
+
return `Command matches blocked pattern`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if a command needs approval.
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
function needsApproval(command, requireApproval) {
|
|
149
|
+
for (const pattern of requireApproval) {
|
|
150
|
+
if (matchesPattern(command, pattern)) {
|
|
151
|
+
const patternStr = typeof pattern === "string" ? pattern : pattern.source.slice(0, 50);
|
|
152
|
+
return `matches pattern: ${patternStr}`;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Check if a command matches a pattern.
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
function matchesPattern(command, pattern) {
|
|
162
|
+
if (typeof pattern === "string") {
|
|
163
|
+
return command.includes(pattern);
|
|
164
|
+
}
|
|
165
|
+
return pattern.test(command);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Format the execution result for display.
|
|
169
|
+
* @internal
|
|
170
|
+
*/
|
|
171
|
+
function formatBashResult(result, maxOutputSize) {
|
|
172
|
+
let output = result.output;
|
|
173
|
+
let truncated = result.truncated;
|
|
174
|
+
// Apply tool-level truncation if needed
|
|
175
|
+
if (output.length > maxOutputSize) {
|
|
176
|
+
output = `${output.slice(0, maxOutputSize)}\n\n[Output truncated at ${maxOutputSize} characters]`;
|
|
177
|
+
truncated = true;
|
|
178
|
+
}
|
|
179
|
+
// Add warning for large output
|
|
180
|
+
if (output.length > LARGE_OUTPUT_WARNING_CHARS && !truncated) {
|
|
181
|
+
const estimatedTokens = Math.round(output.length / 4);
|
|
182
|
+
output = `[Warning: Large output (~${estimatedTokens} tokens)]\n\n${output}`;
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
success: result.exitCode === 0,
|
|
186
|
+
output,
|
|
187
|
+
exitCode: result.exitCode,
|
|
188
|
+
truncated,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool factory for creating all core tools from configuration.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a unified factory function that creates the minimal
|
|
5
|
+
* set of agent tools: read, write, edit, bash, glob, grep, todo_write, task, skill.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { LanguageModel, Tool, ToolSet } from "ai";
|
|
10
|
+
import type { BackendProtocol, SandboxBackendProtocol } from "../backend.js";
|
|
11
|
+
import type { AgentState } from "../backends/state.js";
|
|
12
|
+
import type { MCPManager } from "../mcp/manager.js";
|
|
13
|
+
import type { Agent, CoreToolName, SkillDefinition, SubagentDefinition } from "../types.js";
|
|
14
|
+
import { type BashToolOptions, createBashTool } from "./execute.js";
|
|
15
|
+
import { createEditTool, createFilesystemTools, createGlobTool, createGrepTool, createReadTool, createWriteTool, type FilesystemTools, type FilesystemToolsOptions } from "./filesystem.js";
|
|
16
|
+
import { createSearchToolsTool, type SearchToolsOptions } from "./search.js";
|
|
17
|
+
import { createSkillRegistry, createSkillTool, type LoadableSkillDefinition, SkillRegistry, type SkillToolOptions } from "./skills.js";
|
|
18
|
+
import { clearCompletedTasks, createTaskTool, getBackgroundTask, listBackgroundTasks, type TaskStatus, type TaskToolOptions } from "./task.js";
|
|
19
|
+
import { createTodoWriteTool, type TodoWriteToolOptions } from "./todos.js";
|
|
20
|
+
/**
|
|
21
|
+
* Options for creating core tools.
|
|
22
|
+
*
|
|
23
|
+
* This is the main configuration interface for the tool factory.
|
|
24
|
+
* Only `backend` and `state` are required - all other options enable
|
|
25
|
+
* additional functionality.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const tools = createCoreTools({
|
|
30
|
+
* backend: new FilesystemBackend({ rootDir: process.cwd() }),
|
|
31
|
+
* state: createAgentState(),
|
|
32
|
+
*
|
|
33
|
+
* // Enable shell execution
|
|
34
|
+
* sandbox: new LocalSandbox({ cwd: process.cwd() }),
|
|
35
|
+
*
|
|
36
|
+
* // Enable skill loading
|
|
37
|
+
* skillRegistry: createSkillRegistry([gitSkill, dockerSkill]),
|
|
38
|
+
*
|
|
39
|
+
* // Enable subagent delegation
|
|
40
|
+
* subagents: [researcherAgent, coderAgent],
|
|
41
|
+
* parentAgent: mainAgent,
|
|
42
|
+
* defaultModel: anthropic("claude-sonnet-4-20250514"),
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @category Tools
|
|
47
|
+
*/
|
|
48
|
+
export interface CoreToolsOptions {
|
|
49
|
+
/** Storage backend for file operations */
|
|
50
|
+
backend: BackendProtocol;
|
|
51
|
+
/** Agent state containing todos and virtual filesystem */
|
|
52
|
+
state: AgentState;
|
|
53
|
+
/**
|
|
54
|
+
* Array of core tool names to disable.
|
|
55
|
+
* Takes precedence over individual include options.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const tools = createCoreTools({
|
|
60
|
+
* backend,
|
|
61
|
+
* state,
|
|
62
|
+
* disabled: ["bash", "write"], // Disable bash and write tools
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
disabled?: CoreToolName[];
|
|
67
|
+
/**
|
|
68
|
+
* Include write tool.
|
|
69
|
+
* @defaultValue true
|
|
70
|
+
*/
|
|
71
|
+
includeWrite?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Include edit tool.
|
|
74
|
+
* @defaultValue true
|
|
75
|
+
*/
|
|
76
|
+
includeEdit?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Include todo_write tool.
|
|
79
|
+
* @defaultValue true
|
|
80
|
+
*/
|
|
81
|
+
includeTodoWrite?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Callback invoked when todos change.
|
|
84
|
+
*/
|
|
85
|
+
onTodosChanged?: TodoWriteToolOptions["onTodosChanged"];
|
|
86
|
+
/**
|
|
87
|
+
* Sandbox backend for command execution.
|
|
88
|
+
* If provided, bash tool is included.
|
|
89
|
+
*/
|
|
90
|
+
sandbox?: SandboxBackendProtocol;
|
|
91
|
+
/** Options for the bash tool */
|
|
92
|
+
bashOptions?: Omit<BashToolOptions, "sandbox">;
|
|
93
|
+
/**
|
|
94
|
+
* Skill registry for progressive disclosure.
|
|
95
|
+
* If provided, the skill tool is included.
|
|
96
|
+
* Takes precedence over `skills` if both are provided.
|
|
97
|
+
*/
|
|
98
|
+
skillRegistry?: SkillRegistry;
|
|
99
|
+
/**
|
|
100
|
+
* Array of skill definitions to auto-create a registry from.
|
|
101
|
+
* Alternative to providing a skillRegistry directly.
|
|
102
|
+
* Only skills with tools will be included.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const tools = createCoreTools({
|
|
107
|
+
* backend,
|
|
108
|
+
* state,
|
|
109
|
+
* skills: [gitSkill, dockerSkill],
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
skills?: SkillDefinition[];
|
|
114
|
+
/** Options for the skill tool */
|
|
115
|
+
skillToolOptions?: Partial<SkillToolOptions>;
|
|
116
|
+
/**
|
|
117
|
+
* Subagent definitions for task delegation.
|
|
118
|
+
* If provided along with parentAgent and defaultModel, task tool is included.
|
|
119
|
+
*/
|
|
120
|
+
subagents?: SubagentDefinition[];
|
|
121
|
+
/** Parent agent for creating subagents (required with subagents) */
|
|
122
|
+
parentAgent?: Agent;
|
|
123
|
+
/** Default model for subagents (required with subagents) */
|
|
124
|
+
defaultModel?: LanguageModel;
|
|
125
|
+
/**
|
|
126
|
+
* Include general-purpose subagent automatically.
|
|
127
|
+
* @defaultValue false
|
|
128
|
+
*/
|
|
129
|
+
includeGeneralPurpose?: boolean;
|
|
130
|
+
/** Options for the task tool */
|
|
131
|
+
taskOptions?: Partial<TaskToolOptions>;
|
|
132
|
+
/**
|
|
133
|
+
* MCP manager for search_tools meta-tool.
|
|
134
|
+
* If provided, search_tools tool is included.
|
|
135
|
+
*/
|
|
136
|
+
mcpManager?: MCPManager;
|
|
137
|
+
/** Options for the search_tools tool */
|
|
138
|
+
searchToolsOptions?: Omit<SearchToolsOptions, "manager">;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Result from createCoreTools containing all created tools and registries.
|
|
142
|
+
*
|
|
143
|
+
* @category Tools
|
|
144
|
+
*/
|
|
145
|
+
export interface CoreTools {
|
|
146
|
+
/** Read file contents */
|
|
147
|
+
read?: Tool;
|
|
148
|
+
/** Write/create files (if enabled) */
|
|
149
|
+
write?: Tool;
|
|
150
|
+
/** Edit files via replacement (if enabled) */
|
|
151
|
+
edit?: Tool;
|
|
152
|
+
/** Find files by glob pattern */
|
|
153
|
+
glob?: Tool;
|
|
154
|
+
/** Search file contents */
|
|
155
|
+
grep?: Tool;
|
|
156
|
+
/** Write/update todo list (if enabled) */
|
|
157
|
+
todo_write?: Tool;
|
|
158
|
+
/** Shell execution (if sandbox provided) */
|
|
159
|
+
bash?: Tool;
|
|
160
|
+
/** Load skill tool (if registry provided) */
|
|
161
|
+
skill?: Tool;
|
|
162
|
+
/** Task delegation tool (if subagents provided) */
|
|
163
|
+
task?: Tool;
|
|
164
|
+
/** Tool search/discovery (if mcpManager provided) */
|
|
165
|
+
search_tools?: Tool;
|
|
166
|
+
/** The skill registry (if provided) */
|
|
167
|
+
skillRegistry?: SkillRegistry;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Creates all core tools from configuration.
|
|
171
|
+
*
|
|
172
|
+
* This is the recommended way to create agent tools. The minimal tool set is:
|
|
173
|
+
* - `read`, `write`, `edit`, `glob`, `grep` - filesystem operations
|
|
174
|
+
* - `bash` - shell command execution (optional, requires sandbox)
|
|
175
|
+
* - `todo_write` - task tracking (optional)
|
|
176
|
+
* - `task` - subagent delegation (optional, requires subagents)
|
|
177
|
+
* - `skill` - progressive capability loading (optional, requires registry)
|
|
178
|
+
*
|
|
179
|
+
* @param options - Configuration options
|
|
180
|
+
* @returns Object containing all created tools and registries
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* import { createAgent, createCoreTools, createAgentState } from "@lleverage-ai/agent-sdk";
|
|
185
|
+
* import { FilesystemBackend, LocalSandbox } from "@lleverage-ai/agent-sdk";
|
|
186
|
+
*
|
|
187
|
+
* const state = createAgentState();
|
|
188
|
+
* const backend = new FilesystemBackend({ rootDir: process.cwd() });
|
|
189
|
+
* const sandbox = new LocalSandbox({ cwd: process.cwd() });
|
|
190
|
+
*
|
|
191
|
+
* const tools = createCoreTools({
|
|
192
|
+
* backend,
|
|
193
|
+
* state,
|
|
194
|
+
* sandbox,
|
|
195
|
+
* });
|
|
196
|
+
*
|
|
197
|
+
* const agent = createAgent({
|
|
198
|
+
* model: anthropic("claude-sonnet-4-20250514"),
|
|
199
|
+
* tools,
|
|
200
|
+
* });
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // Minimal: just filesystem tools
|
|
206
|
+
* const tools = createCoreTools({
|
|
207
|
+
* backend: new StateBackend(state),
|
|
208
|
+
* state,
|
|
209
|
+
* includeTodoWrite: false,
|
|
210
|
+
* });
|
|
211
|
+
* ```
|
|
212
|
+
*
|
|
213
|
+
* @category Tools
|
|
214
|
+
*/
|
|
215
|
+
export declare function createCoreTools(options: CoreToolsOptions): CoreTools;
|
|
216
|
+
/**
|
|
217
|
+
* Converts CoreTools to a ToolSet for direct use with AI SDK.
|
|
218
|
+
*
|
|
219
|
+
* This extracts only the tool properties (excluding skillRegistry)
|
|
220
|
+
* and filters out undefined tools.
|
|
221
|
+
*
|
|
222
|
+
* @param coreTools - The core tools object from createCoreTools
|
|
223
|
+
* @returns A ToolSet compatible with AI SDK
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```typescript
|
|
227
|
+
* const coreTools = createCoreTools({ backend, state });
|
|
228
|
+
* const toolSet = coreToolsToToolSet(coreTools);
|
|
229
|
+
*
|
|
230
|
+
* const result = await generateText({
|
|
231
|
+
* model,
|
|
232
|
+
* tools: toolSet,
|
|
233
|
+
* prompt: "...",
|
|
234
|
+
* });
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* @category Tools
|
|
238
|
+
*/
|
|
239
|
+
export declare function coreToolsToToolSet(coreTools: CoreTools): ToolSet;
|
|
240
|
+
/**
|
|
241
|
+
* Creates filesystem tools only.
|
|
242
|
+
*
|
|
243
|
+
* Use this when you only need file operations without other tools.
|
|
244
|
+
*
|
|
245
|
+
* @param options - Filesystem tools options
|
|
246
|
+
* @returns Object containing filesystem tools
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const fsTools = createFilesystemToolsOnly({
|
|
251
|
+
* backend: new FilesystemBackend({ rootDir: process.cwd() }),
|
|
252
|
+
* });
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @category Tools
|
|
256
|
+
*/
|
|
257
|
+
export declare function createFilesystemToolsOnly(options: FilesystemToolsOptions): FilesystemTools;
|
|
258
|
+
export { createReadTool, createWriteTool, createEditTool, createGlobTool, createGrepTool, createFilesystemTools, createTodoWriteTool, createBashTool, SkillRegistry, createSkillTool, createSkillRegistry, createTaskTool, getBackgroundTask, listBackgroundTasks, clearCompletedTasks, createSearchToolsTool, };
|
|
259
|
+
export type { FilesystemTools, FilesystemToolsOptions, TodoWriteToolOptions, BashToolOptions, LoadableSkillDefinition, SkillToolOptions, TaskToolOptions, TaskStatus, SearchToolsOptions, };
|
|
260
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tools/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,KAAK,uBAAuB,EAC5B,aAAa,EACb,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAM5E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,gBAAgB;IAG/B,0CAA0C;IAC1C,OAAO,EAAE,eAAe,CAAC;IAEzB,0DAA0D;IAC1D,KAAK,EAAE,UAAU,CAAC;IAIlB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAI1B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAIxD;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,gCAAgC;IAChC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAI/C;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAI7C;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEjC,oEAAoE;IACpE,WAAW,CAAC,EAAE,KAAK,CAAC;IAEpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAIvC;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IAGxB,yBAAyB;IACzB,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,sCAAsC;IACtC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,8CAA8C;IAC9C,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,iCAAiC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,2BAA2B;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;IAIZ,0CAA0C;IAC1C,UAAU,CAAC,EAAE,IAAI,CAAC;IAIlB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,IAAI,CAAC;IAIZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,IAAI,CAAC;IAIb,mDAAmD;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;IAIZ,qDAAqD;IACrD,YAAY,CAAC,EAAE,IAAI,CAAC;IAIpB,uCAAuC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA4IpE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAchE;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAE1F;AAGD,OAAO,EAEL,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,EAErB,mBAAmB,EAEnB,cAAc,EAEd,aAAa,EACb,eAAe,EACf,mBAAmB,EAEnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EAEnB,qBAAqB,GACtB,CAAC;AAGF,YAAY,EAEV,eAAe,EACf,sBAAsB,EAEtB,oBAAoB,EAEpB,eAAe,EAEf,uBAAuB,EACvB,gBAAgB,EAEhB,eAAe,EACf,UAAU,EAEV,kBAAkB,GACnB,CAAC"}
|