@lleverage-ai/agent-sdk 0.0.1 → 0.0.2-alpha.0
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/README.md +51 -2160
- package/dist/agent.js +14 -14
- package/dist/agent.js.map +1 -1
- package/dist/backend.d.ts +90 -68
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +22 -12
- package/dist/backend.js.map +1 -1
- package/dist/backends/filesystem.d.ts +153 -5
- package/dist/backends/filesystem.d.ts.map +1 -1
- package/dist/backends/filesystem.js +274 -1
- package/dist/backends/filesystem.js.map +1 -1
- package/dist/backends/index.d.ts +1 -2
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +1 -2
- package/dist/backends/index.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/security/index.d.ts +20 -20
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +26 -24
- package/dist/security/index.js.map +1 -1
- package/dist/tools/execute.d.ts +15 -9
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/execute.js +19 -9
- package/dist/tools/execute.js.map +1 -1
- package/dist/tools/factory.d.ts +42 -28
- package/dist/tools/factory.d.ts.map +1 -1
- package/dist/tools/factory.js +44 -38
- package/dist/tools/factory.js.map +1 -1
- package/dist/tools/index.d.ts +1 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/package.json +4 -8
- package/dist/backends/sandbox.d.ts +0 -315
- package/dist/backends/sandbox.d.ts.map +0 -1
- package/dist/backends/sandbox.js +0 -490
- package/dist/backends/sandbox.js.map +0 -1
- package/dist/tools/user-interaction.d.ts +0 -116
- package/dist/tools/user-interaction.d.ts.map +0 -1
- package/dist/tools/user-interaction.js +0 -147
- package/dist/tools/user-interaction.js.map +0 -1
package/dist/backends/index.js
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
export { CompositeBackend, createCompositeBackend, } from "./composite.js";
|
|
10
|
-
export { createFilesystemBackend, FileSizeLimitError, FilesystemBackend, PathTraversalError, SymlinkError, } from "./filesystem.js";
|
|
10
|
+
export { CommandBlockedError, CommandTimeoutError, createFilesystemBackend, DANGEROUS_COMMAND_PATTERNS, FileSizeLimitError, FilesystemBackend, PathTraversalError, SymlinkError, } from "./filesystem.js";
|
|
11
11
|
export { createPersistentBackend, InMemoryStore, PersistentBackend, } from "./persistent.js";
|
|
12
|
-
export { BaseSandbox, CommandBlockedError, CommandTimeoutError, createLocalSandbox, LocalSandbox, } from "./sandbox.js";
|
|
13
12
|
export { createAgentState, createStateBackend, StateBackend, } from "./state.js";
|
|
14
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAEhB,sBAAsB,GAEvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EAEjB,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EAEb,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAEhB,sBAAsB,GAEvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EAEjB,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,aAAa,EAEb,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GAGb,MAAM,YAAY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
* @packageDocumentation
|
|
59
59
|
*/
|
|
60
60
|
export { createAgent } from "./agent.js";
|
|
61
|
-
export type { BackendProtocol, EditResult, ExecuteResponse, FileData, FileInfo, FileUploadResponse, GrepMatch,
|
|
62
|
-
export {
|
|
63
|
-
export type { AgentState, CompositeBackendOptions, FilesystemBackendOptions, KeyValueStore,
|
|
64
|
-
export {
|
|
61
|
+
export type { BackendProtocol, EditResult, ExecutableBackend, ExecuteResponse, FileData, FileInfo, FileUploadResponse, GrepMatch, WriteResult, } from "./backend.js";
|
|
62
|
+
export { hasExecuteCapability, isBackend } from "./backend.js";
|
|
63
|
+
export type { AgentState, CompositeBackendOptions, FilesystemBackendOptions, KeyValueStore, PersistentBackendOptions, RouteConfig, TodoItem, TodoStatus, } from "./backends/index.js";
|
|
64
|
+
export { CommandBlockedError, CommandTimeoutError, CompositeBackend, createAgentState, createCompositeBackend, createFilesystemBackend, createPersistentBackend, createStateBackend, DANGEROUS_COMMAND_PATTERNS, FileSizeLimitError, FilesystemBackend, InMemoryStore, PathTraversalError, PersistentBackend, StateBackend, SymlinkError, } from "./backends/index.js";
|
|
65
65
|
export type { ApprovalInterrupt, ApprovalRequest, ApprovalResponse, BaseCheckpointSaver, Checkpoint, CheckpointEvent, CheckpointLoadedEvent, CheckpointSavedEvent, CheckpointSaverOptions, FileSaverOptions, Interrupt, KeyValueStoreSaverOptions, MemorySaverOptions, } from "./checkpointer/index.js";
|
|
66
66
|
export { createApprovalInterrupt, createCheckpoint, createFileSaver, createInterrupt, createKeyValueStoreSaver, createMemorySaver, FileSaver, isApprovalInterrupt, isCheckpoint, isInterrupt, KeyValueStoreSaver, MemorySaver, updateCheckpoint, } from "./checkpointer/index.js";
|
|
67
67
|
export { createContext } from "./context.js";
|
|
@@ -89,8 +89,8 @@ export { createSubagentContext, createSubagentEventEmitter, executeSubagent, exe
|
|
|
89
89
|
export { createSubagent } from "./subagents.js";
|
|
90
90
|
export type { BackgroundTask, BackgroundTaskStatus, BaseTaskStore, KeyValueStore as KVStore, TaskStoreOptions, } from "./task-store/index.js";
|
|
91
91
|
export { createBackgroundTask, FileTaskStore, isBackgroundTask, KVTaskStore, MemoryTaskStore, shouldExpireTask, updateBackgroundTask, } from "./task-store/index.js";
|
|
92
|
-
export type {
|
|
93
|
-
export { cleanupStaleTasks, clearCompletedTasks,
|
|
92
|
+
export type { BashResult, BashToolOptions, CoreTools, CoreToolsOptions, CreateCoreToolsResult, FilesystemTools, FilesystemToolsOptions, LoadableSkillDefinition, OnTodosChanged, 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, 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
94
|
export { defineSkill } from "./tools.js";
|
|
95
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
96
|
export { isCompleteResult, isInterruptedResult, } from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,YAAY,EACV,eAAe,EACf,UAAU,EACV,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
// Core agent
|
|
61
61
|
export { createAgent } from "./agent.js";
|
|
62
62
|
// Backend
|
|
63
|
-
export {
|
|
64
|
-
export {
|
|
63
|
+
export { hasExecuteCapability, isBackend } from "./backend.js";
|
|
64
|
+
export { CommandBlockedError, CommandTimeoutError, CompositeBackend, createAgentState, createCompositeBackend, createFilesystemBackend, createPersistentBackend, createStateBackend, DANGEROUS_COMMAND_PATTERNS, FileSizeLimitError, FilesystemBackend, InMemoryStore, PathTraversalError, PersistentBackend, StateBackend, SymlinkError, } from "./backends/index.js";
|
|
65
65
|
// Checkpointer System
|
|
66
66
|
export { createApprovalInterrupt,
|
|
67
67
|
// Types and helpers
|
|
@@ -153,8 +153,6 @@ export { createSubagent } from "./subagents.js";
|
|
|
153
153
|
export { createBackgroundTask, FileTaskStore, isBackgroundTask, KVTaskStore, MemoryTaskStore, shouldExpireTask, updateBackgroundTask, } from "./task-store/index.js";
|
|
154
154
|
// Core Tools
|
|
155
155
|
export { cleanupStaleTasks, clearCompletedTasks,
|
|
156
|
-
// User interaction tools
|
|
157
|
-
createAskUserQuestionTool,
|
|
158
156
|
// Bash tool
|
|
159
157
|
createBashTool,
|
|
160
158
|
// Tool factory (unified tool creation)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAazC,UAAU;AACV,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/security/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Security policy presets for agent configuration.
|
|
3
3
|
*
|
|
4
|
-
* This module provides security policy presets that bundle together
|
|
4
|
+
* This module provides security policy presets that bundle together backend configuration,
|
|
5
5
|
* permission modes, and hook settings to enforce different security levels. The presets help
|
|
6
6
|
* developers quickly configure agents for different environments (development, CI, production)
|
|
7
7
|
* without manually configuring each security control.
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
*
|
|
20
20
|
* // Or customize a preset
|
|
21
21
|
* const customPolicy = applySecurityPolicy("ci", {
|
|
22
|
-
*
|
|
22
|
+
* backend: { timeout: 60000 },
|
|
23
23
|
* permissionMode: "plan",
|
|
24
24
|
* });
|
|
25
25
|
* ```
|
|
26
26
|
*
|
|
27
27
|
* @packageDocumentation
|
|
28
28
|
*/
|
|
29
|
-
import type {
|
|
30
|
-
import {
|
|
29
|
+
import type { FilesystemBackendOptions } from "../backends/filesystem.js";
|
|
30
|
+
import { FilesystemBackend } from "../backends/filesystem.js";
|
|
31
31
|
import type { HookRegistration, PermissionMode } from "../types.js";
|
|
32
32
|
/**
|
|
33
33
|
* File write patterns that should be blocked when acceptEdits mode is active.
|
|
@@ -38,7 +38,7 @@ import type { HookRegistration, PermissionMode } from "../types.js";
|
|
|
38
38
|
*/
|
|
39
39
|
export declare const ACCEPT_EDITS_BLOCKED_PATTERNS: RegExp[];
|
|
40
40
|
/**
|
|
41
|
-
* Security policy configuration that bundles
|
|
41
|
+
* Security policy configuration that bundles backend, permission, and hook settings.
|
|
42
42
|
*
|
|
43
43
|
* This type combines multiple security controls into a single policy that can be
|
|
44
44
|
* applied to an agent. Policies can be created from presets or customized.
|
|
@@ -46,7 +46,7 @@ export declare const ACCEPT_EDITS_BLOCKED_PATTERNS: RegExp[];
|
|
|
46
46
|
* @example
|
|
47
47
|
* ```typescript
|
|
48
48
|
* const policy: SecurityPolicy = {
|
|
49
|
-
*
|
|
49
|
+
* backend: { allowDangerous: false, timeout: 30000 },
|
|
50
50
|
* permissionMode: "default",
|
|
51
51
|
* disallowedTools: ["bash"],
|
|
52
52
|
* hooks: { PreToolUse: [auditHook] },
|
|
@@ -57,9 +57,9 @@ export declare const ACCEPT_EDITS_BLOCKED_PATTERNS: RegExp[];
|
|
|
57
57
|
*/
|
|
58
58
|
export interface SecurityPolicy {
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
60
|
+
* Backend configuration for command execution security.
|
|
61
61
|
*/
|
|
62
|
-
|
|
62
|
+
backend?: FilesystemBackendOptions;
|
|
63
63
|
/**
|
|
64
64
|
* Permission mode for tool execution control.
|
|
65
65
|
*/
|
|
@@ -78,7 +78,7 @@ export interface SecurityPolicy {
|
|
|
78
78
|
hooks?: HookRegistration;
|
|
79
79
|
/**
|
|
80
80
|
* When true and permissionMode is "acceptEdits", automatically configures the
|
|
81
|
-
*
|
|
81
|
+
* backend to block shell-based file operations (e.g., echo > file, rm, mv).
|
|
82
82
|
* This prevents bash commands from bypassing the acceptEdits permission checks.
|
|
83
83
|
*
|
|
84
84
|
* @defaultValue true
|
|
@@ -100,11 +100,11 @@ export type SecurityPolicyPreset = "development" | "ci" | "production" | "readon
|
|
|
100
100
|
* Apply a security policy preset to agent options.
|
|
101
101
|
*
|
|
102
102
|
* This function returns a partial AgentOptions object that can be spread into
|
|
103
|
-
* createAgent(). It configures the
|
|
103
|
+
* createAgent(). It configures the backend, permission mode, tool restrictions,
|
|
104
104
|
* and hooks according to the selected preset.
|
|
105
105
|
*
|
|
106
106
|
* When permissionMode is "acceptEdits" and blockShellFileOps is true (default),
|
|
107
|
-
* the
|
|
107
|
+
* the backend will be automatically configured to block shell-based file operations
|
|
108
108
|
* like `echo > file`, `rm`, `mv`, etc. This prevents bash commands from bypassing
|
|
109
109
|
* the acceptEdits permission checks.
|
|
110
110
|
*
|
|
@@ -124,7 +124,7 @@ export type SecurityPolicyPreset = "development" | "ci" | "production" | "readon
|
|
|
124
124
|
* const ciAgent = createAgent({
|
|
125
125
|
* model,
|
|
126
126
|
* ...applySecurityPolicy("ci", {
|
|
127
|
-
*
|
|
127
|
+
* backend: { timeout: 120000 },
|
|
128
128
|
* }),
|
|
129
129
|
* });
|
|
130
130
|
*
|
|
@@ -147,33 +147,33 @@ export type SecurityPolicyPreset = "development" | "ci" | "production" | "readon
|
|
|
147
147
|
* @category Security
|
|
148
148
|
*/
|
|
149
149
|
export declare function applySecurityPolicy(preset: SecurityPolicyPreset, overrides?: Partial<SecurityPolicy>): {
|
|
150
|
-
backend:
|
|
150
|
+
backend: FilesystemBackend;
|
|
151
151
|
permissionMode?: PermissionMode;
|
|
152
152
|
allowedTools?: string[];
|
|
153
153
|
disallowedTools?: string[];
|
|
154
154
|
hooks?: HookRegistration;
|
|
155
155
|
};
|
|
156
156
|
/**
|
|
157
|
-
* Helper function to get
|
|
157
|
+
* Helper function to get backend options that block shell-based file operations.
|
|
158
158
|
* Use this when you want to enable "acceptEdits" permission mode while preventing
|
|
159
159
|
* bash commands from bypassing the file edit restrictions.
|
|
160
160
|
*
|
|
161
|
-
* @param baseOptions - Optional base
|
|
162
|
-
* @returns
|
|
161
|
+
* @param baseOptions - Optional base backend options to extend
|
|
162
|
+
* @returns Backend options with file operation blocking enabled
|
|
163
163
|
*
|
|
164
164
|
* @example
|
|
165
165
|
* ```typescript
|
|
166
|
-
* import {
|
|
167
|
-
* import {
|
|
166
|
+
* import { FilesystemBackend } from "@lleverage-ai/agent-sdk";
|
|
167
|
+
* import { getBackendOptionsForAcceptEdits } from "@lleverage-ai/agent-sdk/security";
|
|
168
168
|
*
|
|
169
169
|
* const agent = createAgent({
|
|
170
170
|
* model,
|
|
171
|
-
* backend: new
|
|
171
|
+
* backend: new FilesystemBackend(getBackendOptionsForAcceptEdits({ enableBash: true })),
|
|
172
172
|
* permissionMode: "acceptEdits",
|
|
173
173
|
* });
|
|
174
174
|
* ```
|
|
175
175
|
*
|
|
176
176
|
* @category Security
|
|
177
177
|
*/
|
|
178
|
-
export declare function
|
|
178
|
+
export declare function getBackendOptionsForAcceptEdits(baseOptions?: FilesystemBackendOptions): FilesystemBackendOptions;
|
|
179
179
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAyBjD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,IAAI,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,oBAAoB,EAC5B,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAClC;IACD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAsCA;AA2JD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,CAAC,EAAE,wBAAwB,GACrC,wBAAwB,CAM1B"}
|
package/dist/security/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Security policy presets for agent configuration.
|
|
3
3
|
*
|
|
4
|
-
* This module provides security policy presets that bundle together
|
|
4
|
+
* This module provides security policy presets that bundle together backend configuration,
|
|
5
5
|
* permission modes, and hook settings to enforce different security levels. The presets help
|
|
6
6
|
* developers quickly configure agents for different environments (development, CI, production)
|
|
7
7
|
* without manually configuring each security control.
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
*
|
|
20
20
|
* // Or customize a preset
|
|
21
21
|
* const customPolicy = applySecurityPolicy("ci", {
|
|
22
|
-
*
|
|
22
|
+
* backend: { timeout: 60000 },
|
|
23
23
|
* permissionMode: "plan",
|
|
24
24
|
* });
|
|
25
25
|
* ```
|
|
26
26
|
*
|
|
27
27
|
* @packageDocumentation
|
|
28
28
|
*/
|
|
29
|
-
import {
|
|
29
|
+
import { FilesystemBackend } from "../backends/filesystem.js";
|
|
30
30
|
/**
|
|
31
31
|
* File write patterns that should be blocked when acceptEdits mode is active.
|
|
32
32
|
* These patterns match common shell operations that perform file writes,
|
|
@@ -64,11 +64,11 @@ export const ACCEPT_EDITS_BLOCKED_PATTERNS = [
|
|
|
64
64
|
* Apply a security policy preset to agent options.
|
|
65
65
|
*
|
|
66
66
|
* This function returns a partial AgentOptions object that can be spread into
|
|
67
|
-
* createAgent(). It configures the
|
|
67
|
+
* createAgent(). It configures the backend, permission mode, tool restrictions,
|
|
68
68
|
* and hooks according to the selected preset.
|
|
69
69
|
*
|
|
70
70
|
* When permissionMode is "acceptEdits" and blockShellFileOps is true (default),
|
|
71
|
-
* the
|
|
71
|
+
* the backend will be automatically configured to block shell-based file operations
|
|
72
72
|
* like `echo > file`, `rm`, `mv`, etc. This prevents bash commands from bypassing
|
|
73
73
|
* the acceptEdits permission checks.
|
|
74
74
|
*
|
|
@@ -88,7 +88,7 @@ export const ACCEPT_EDITS_BLOCKED_PATTERNS = [
|
|
|
88
88
|
* const ciAgent = createAgent({
|
|
89
89
|
* model,
|
|
90
90
|
* ...applySecurityPolicy("ci", {
|
|
91
|
-
*
|
|
91
|
+
* backend: { timeout: 120000 },
|
|
92
92
|
* }),
|
|
93
93
|
* });
|
|
94
94
|
*
|
|
@@ -115,7 +115,7 @@ export function applySecurityPolicy(preset, overrides) {
|
|
|
115
115
|
const basePolicy = getPresetPolicy(preset);
|
|
116
116
|
// Merge with overrides
|
|
117
117
|
const policy = {
|
|
118
|
-
|
|
118
|
+
backend: { ...basePolicy.backend, ...overrides?.backend },
|
|
119
119
|
permissionMode: overrides?.permissionMode ?? basePolicy.permissionMode,
|
|
120
120
|
allowedTools: overrides?.allowedTools ?? basePolicy.allowedTools,
|
|
121
121
|
disallowedTools: overrides?.disallowedTools ?? basePolicy.disallowedTools,
|
|
@@ -125,14 +125,17 @@ export function applySecurityPolicy(preset, overrides) {
|
|
|
125
125
|
// If acceptEdits mode is enabled and blockShellFileOps is true,
|
|
126
126
|
// add shell file operation patterns to blocked commands
|
|
127
127
|
if (policy.permissionMode === "acceptEdits" && policy.blockShellFileOps) {
|
|
128
|
-
const existingBlocked = policy.
|
|
129
|
-
policy.
|
|
130
|
-
...policy.
|
|
128
|
+
const existingBlocked = policy.backend?.blockedCommands ?? [];
|
|
129
|
+
policy.backend = {
|
|
130
|
+
...policy.backend,
|
|
131
131
|
blockedCommands: [...existingBlocked, ...ACCEPT_EDITS_BLOCKED_PATTERNS],
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
-
// Create
|
|
135
|
-
const backend = new
|
|
134
|
+
// Create filesystem backend with bash enabled
|
|
135
|
+
const backend = new FilesystemBackend({
|
|
136
|
+
enableBash: true,
|
|
137
|
+
...policy.backend,
|
|
138
|
+
});
|
|
136
139
|
// Return agent options
|
|
137
140
|
return {
|
|
138
141
|
backend,
|
|
@@ -173,7 +176,7 @@ function getPresetPolicy(preset) {
|
|
|
173
176
|
*/
|
|
174
177
|
function getDevelopmentPolicy() {
|
|
175
178
|
return {
|
|
176
|
-
|
|
179
|
+
backend: {
|
|
177
180
|
allowDangerous: true,
|
|
178
181
|
timeout: 120000,
|
|
179
182
|
maxFileSizeMb: 100,
|
|
@@ -194,7 +197,7 @@ function getDevelopmentPolicy() {
|
|
|
194
197
|
*/
|
|
195
198
|
function getCiPolicy() {
|
|
196
199
|
return {
|
|
197
|
-
|
|
200
|
+
backend: {
|
|
198
201
|
allowDangerous: false,
|
|
199
202
|
timeout: 300000, // 5 minutes
|
|
200
203
|
maxFileSizeMb: 50,
|
|
@@ -228,7 +231,7 @@ function getCiPolicy() {
|
|
|
228
231
|
*/
|
|
229
232
|
function getProductionPolicy() {
|
|
230
233
|
return {
|
|
231
|
-
|
|
234
|
+
backend: {
|
|
232
235
|
allowDangerous: false,
|
|
233
236
|
timeout: 60000, // 1 minute
|
|
234
237
|
maxFileSizeMb: 10,
|
|
@@ -262,11 +265,10 @@ function getProductionPolicy() {
|
|
|
262
265
|
*/
|
|
263
266
|
function getReadOnlyPolicy() {
|
|
264
267
|
return {
|
|
265
|
-
|
|
268
|
+
backend: {
|
|
266
269
|
allowDangerous: false,
|
|
267
270
|
timeout: 30000, // 30 seconds
|
|
268
271
|
maxFileSizeMb: 5,
|
|
269
|
-
// Use blockedCommands from LocalSandbox.readOnly() pattern
|
|
270
272
|
blockedCommands: [
|
|
271
273
|
/\brm\b/i,
|
|
272
274
|
/\bmv\b/i,
|
|
@@ -292,28 +294,28 @@ function getReadOnlyPolicy() {
|
|
|
292
294
|
};
|
|
293
295
|
}
|
|
294
296
|
/**
|
|
295
|
-
* Helper function to get
|
|
297
|
+
* Helper function to get backend options that block shell-based file operations.
|
|
296
298
|
* Use this when you want to enable "acceptEdits" permission mode while preventing
|
|
297
299
|
* bash commands from bypassing the file edit restrictions.
|
|
298
300
|
*
|
|
299
|
-
* @param baseOptions - Optional base
|
|
300
|
-
* @returns
|
|
301
|
+
* @param baseOptions - Optional base backend options to extend
|
|
302
|
+
* @returns Backend options with file operation blocking enabled
|
|
301
303
|
*
|
|
302
304
|
* @example
|
|
303
305
|
* ```typescript
|
|
304
|
-
* import {
|
|
305
|
-
* import {
|
|
306
|
+
* import { FilesystemBackend } from "@lleverage-ai/agent-sdk";
|
|
307
|
+
* import { getBackendOptionsForAcceptEdits } from "@lleverage-ai/agent-sdk/security";
|
|
306
308
|
*
|
|
307
309
|
* const agent = createAgent({
|
|
308
310
|
* model,
|
|
309
|
-
* backend: new
|
|
311
|
+
* backend: new FilesystemBackend(getBackendOptionsForAcceptEdits({ enableBash: true })),
|
|
310
312
|
* permissionMode: "acceptEdits",
|
|
311
313
|
* });
|
|
312
314
|
* ```
|
|
313
315
|
*
|
|
314
316
|
* @category Security
|
|
315
317
|
*/
|
|
316
|
-
export function
|
|
318
|
+
export function getBackendOptionsForAcceptEdits(baseOptions) {
|
|
317
319
|
const existingBlocked = baseOptions?.blockedCommands ?? [];
|
|
318
320
|
return {
|
|
319
321
|
...baseOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/execute.d.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bash tool for running shell commands
|
|
2
|
+
* Bash tool for running shell commands.
|
|
3
3
|
*
|
|
4
|
-
* This tool wraps
|
|
4
|
+
* This tool wraps backends with execute capability to provide command execution
|
|
5
5
|
* to agents. It includes timeout support, output truncation, and optional
|
|
6
6
|
* command approval for dangerous operations.
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
10
|
+
import type { BackendProtocol, ExecutableBackend } from "../backend.js";
|
|
11
11
|
/**
|
|
12
12
|
* Options for creating a bash tool.
|
|
13
13
|
*
|
|
14
14
|
* @category Tools
|
|
15
15
|
*/
|
|
16
16
|
export interface BashToolOptions {
|
|
17
|
-
/**
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* The backend to use for command execution.
|
|
19
|
+
* Must have execute capability (use `hasExecuteCapability()` to check).
|
|
20
|
+
*/
|
|
21
|
+
backend: ExecutableBackend | BackendProtocol;
|
|
19
22
|
/**
|
|
20
23
|
* Default timeout in milliseconds for command execution.
|
|
21
24
|
* Can be overridden per-call.
|
|
@@ -25,7 +28,7 @@ export interface BashToolOptions {
|
|
|
25
28
|
/**
|
|
26
29
|
* Commands or patterns that are blocked from execution.
|
|
27
30
|
* Supports simple string matching and regex patterns.
|
|
28
|
-
* Note: The
|
|
31
|
+
* Note: The backend itself may have additional blocking rules.
|
|
29
32
|
*/
|
|
30
33
|
blockedCommands?: Array<string | RegExp>;
|
|
31
34
|
/**
|
|
@@ -80,11 +83,14 @@ export interface BashResult {
|
|
|
80
83
|
*
|
|
81
84
|
* @example
|
|
82
85
|
* ```typescript
|
|
83
|
-
* import { createBashTool,
|
|
86
|
+
* import { createBashTool, FilesystemBackend } from "@lleverage-ai/agent-sdk";
|
|
84
87
|
*
|
|
85
|
-
* const
|
|
88
|
+
* const backend = new FilesystemBackend({
|
|
89
|
+
* rootDir: process.cwd(),
|
|
90
|
+
* enableBash: true,
|
|
91
|
+
* });
|
|
86
92
|
* const bash = createBashTool({
|
|
87
|
-
*
|
|
93
|
+
* backend,
|
|
88
94
|
* timeout: 30000,
|
|
89
95
|
* blockedCommands: ["rm -rf /"],
|
|
90
96
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAmB,MAAM,eAAe,CAAC;AAoBzF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAE7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzC;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzC;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe;;;eA0FtD"}
|
package/dist/tools/execute.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bash tool for running shell commands
|
|
2
|
+
* Bash tool for running shell commands.
|
|
3
3
|
*
|
|
4
|
-
* This tool wraps
|
|
4
|
+
* This tool wraps backends with execute capability to provide command execution
|
|
5
5
|
* to agents. It includes timeout support, output truncation, and optional
|
|
6
6
|
* command approval for dangerous operations.
|
|
7
7
|
*
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { tool } from "ai";
|
|
11
11
|
import { z } from "zod";
|
|
12
|
+
import { hasExecuteCapability } from "../backend.js";
|
|
12
13
|
// =============================================================================
|
|
13
14
|
// Constants
|
|
14
15
|
// =============================================================================
|
|
@@ -35,11 +36,14 @@ const MAX_OUTPUT_SIZE_CHARS = 120_000;
|
|
|
35
36
|
*
|
|
36
37
|
* @example
|
|
37
38
|
* ```typescript
|
|
38
|
-
* import { createBashTool,
|
|
39
|
+
* import { createBashTool, FilesystemBackend } from "@lleverage-ai/agent-sdk";
|
|
39
40
|
*
|
|
40
|
-
* const
|
|
41
|
+
* const backend = new FilesystemBackend({
|
|
42
|
+
* rootDir: process.cwd(),
|
|
43
|
+
* enableBash: true,
|
|
44
|
+
* });
|
|
41
45
|
* const bash = createBashTool({
|
|
42
|
-
*
|
|
46
|
+
* backend,
|
|
43
47
|
* timeout: 30000,
|
|
44
48
|
* blockedCommands: ["rm -rf /"],
|
|
45
49
|
* });
|
|
@@ -53,7 +57,13 @@ const MAX_OUTPUT_SIZE_CHARS = 120_000;
|
|
|
53
57
|
* @category Tools
|
|
54
58
|
*/
|
|
55
59
|
export function createBashTool(options) {
|
|
56
|
-
const {
|
|
60
|
+
const { backend, timeout = DEFAULT_TIMEOUT_MS, blockedCommands = [], allowedCommands, requireApproval = [], onApprovalRequest, maxOutputSize = MAX_OUTPUT_SIZE_CHARS, } = options;
|
|
61
|
+
// Validate backend has execute capability
|
|
62
|
+
if (!hasExecuteCapability(backend)) {
|
|
63
|
+
throw new Error("Backend does not have execute capability. " +
|
|
64
|
+
"Use FilesystemBackend with enableBash: true, or provide a backend with execute() method.");
|
|
65
|
+
}
|
|
66
|
+
const executor = backend;
|
|
57
67
|
return tool({
|
|
58
68
|
description: "Execute a shell command. Returns stdout/stderr output, exit code, and whether output was truncated.",
|
|
59
69
|
inputSchema: z.object({
|
|
@@ -96,13 +106,13 @@ export function createBashTool(options) {
|
|
|
96
106
|
}
|
|
97
107
|
}
|
|
98
108
|
try {
|
|
99
|
-
// Execute command through
|
|
100
|
-
const result = await
|
|
109
|
+
// Execute command through backend
|
|
110
|
+
const result = await executor.execute(command);
|
|
101
111
|
// Format output
|
|
102
112
|
return formatBashResult(result, maxOutputSize);
|
|
103
113
|
}
|
|
104
114
|
catch (error) {
|
|
105
|
-
// Handle
|
|
115
|
+
// Handle backend-level errors (e.g., CommandBlockedError)
|
|
106
116
|
return {
|
|
107
117
|
success: false,
|
|
108
118
|
output: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
|