@elizaos/plugin-shell 2.0.0-alpha.1 → 2.0.0-alpha.2
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/dist/index.js +3 -3
- package/dist/index.js.map +4 -4
- package/package.json +6 -5
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shaw Walters and elizaOS Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.js
CHANGED
|
@@ -130,7 +130,7 @@ function requireProviderSpec(name) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// actions/clearHistory.ts
|
|
133
|
-
var spec = requireActionSpec("
|
|
133
|
+
var spec = requireActionSpec("CLEAR_SHELL_HISTORY");
|
|
134
134
|
var clearHistory = {
|
|
135
135
|
name: spec.name,
|
|
136
136
|
similes: spec.similes ? [...spec.similes] : [],
|
|
@@ -384,7 +384,7 @@ import {
|
|
|
384
384
|
} from "@elizaos/core";
|
|
385
385
|
var MAX_OUTPUT_LENGTH = 8000;
|
|
386
386
|
var TRUNCATE_SEGMENT_LENGTH = 4000;
|
|
387
|
-
var spec3 = requireProviderSpec("
|
|
387
|
+
var spec3 = requireProviderSpec("SHELL_HISTORY");
|
|
388
388
|
var shellHistoryProvider = {
|
|
389
389
|
name: spec3.name,
|
|
390
390
|
description: "Provides recent shell command history, current working directory, and file operations within the restricted environment",
|
|
@@ -936,4 +936,4 @@ export {
|
|
|
936
936
|
DEFAULT_FORBIDDEN_COMMANDS
|
|
937
937
|
};
|
|
938
938
|
|
|
939
|
-
//# debugId=
|
|
939
|
+
//# debugId=660EC61651C6DFA564756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../actions/clearHistory.ts", "../generated/specs/specs.ts", "../generated/specs/spec-helpers.ts", "../actions/executeCommand.ts", "../generated/prompts/typescript/prompts.ts", "../providers/shellHistoryProvider.ts", "../services/shellService.ts", "../utils/config.ts", "../utils/pathUtils.ts", "../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n type Action,\n type ActionExample,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { ShellService } from \"../services/shellService\";\n\nconst spec = requireActionSpec(\"
|
|
5
|
+
"import {\n type Action,\n type ActionExample,\n type Content,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { ShellService } from \"../services/shellService\";\n\nconst spec = requireActionSpec(\"CLEAR_SHELL_HISTORY\");\n\nexport const clearHistory: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n validate: async (runtime: IAgentRuntime, message: Memory, _state: State): Promise<boolean> => {\n const shellService = runtime.getService<ShellService>(\"shell\");\n if (!shellService) {\n return false;\n }\n\n const text = message.content.text?.toLowerCase() || \"\";\n const clearKeywords = [\"clear\", \"reset\", \"delete\", \"remove\", \"clean\"];\n const historyKeywords = [\"history\", \"terminal\", \"shell\", \"command\"];\n\n const hasClearKeyword = clearKeywords.some((keyword) => text.includes(keyword));\n const hasHistoryKeyword = historyKeywords.some((keyword) => text.includes(keyword));\n\n return hasClearKeyword && hasHistoryKeyword;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ) => {\n const shellService = runtime.getService<ShellService>(\"shell\");\n\n if (!shellService) {\n if (callback) {\n await callback({\n text: \"Shell service is not available.\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"Shell service is not available.\" };\n }\n\n const conversationId = message.roomId || message.agentId;\n if (!conversationId) {\n const errorMsg = \"No conversation ID available\";\n if (callback) {\n await callback({\n text: errorMsg,\n source: message.content.source,\n });\n }\n return { success: false, error: errorMsg };\n }\n shellService.clearCommandHistory(conversationId);\n\n logger.info(`Cleared shell history for conversation: ${conversationId}`);\n\n const response: Content = {\n text: \"Shell command history has been cleared.\",\n source: message.content.source,\n };\n\n if (callback) {\n await callback(response);\n }\n return { success: true, text: response.text };\n },\n examples: (spec.examples ?? []) as ActionExample[][],\n};\n\nexport default clearHistory;\n",
|
|
6
6
|
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-shell.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"CLEAR_SHELL_HISTORY\",\n description: \"Clears the recorded history of shell commands for the current conversation\",\n similes: [\"RESET_SHELL\", \"CLEAR_TERMINAL\", \"CLEAR_HISTORY\", \"RESET_HISTORY\"],\n parameters: [],\n },\n {\n name: \"EXECUTE_COMMAND\",\n description:\n \"Execute shell commands including brew install, npm install, apt-get, system commands, file operations, directory navigation, and scripts.\",\n similes: [\n \"RUN_COMMAND\",\n \"SHELL_COMMAND\",\n \"TERMINAL_COMMAND\",\n \"EXEC\",\n \"RUN\",\n \"EXECUTE\",\n \"CREATE_FILE\",\n \"WRITE_FILE\",\n \"MAKE_FILE\",\n \"INSTALL\",\n \"BREW_INSTALL\",\n \"NPM_INSTALL\",\n \"APT_INSTALL\",\n ],\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"CLEAR_SHELL_HISTORY\",\n description: \"Clears the recorded history of shell commands for the current conversation\",\n similes: [\"RESET_SHELL\", \"CLEAR_TERMINAL\", \"CLEAR_HISTORY\", \"RESET_HISTORY\"],\n parameters: [],\n },\n {\n name: \"EXECUTE_COMMAND\",\n description:\n \"Execute shell commands including brew install, npm install, apt-get, system commands, file operations, directory navigation, and scripts.\",\n similes: [\n \"RUN_COMMAND\",\n \"SHELL_COMMAND\",\n \"TERMINAL_COMMAND\",\n \"EXEC\",\n \"RUN\",\n \"EXECUTE\",\n \"CREATE_FILE\",\n \"WRITE_FILE\",\n \"MAKE_FILE\",\n \"INSTALL\",\n \"BREW_INSTALL\",\n \"NPM_INSTALL\",\n \"APT_INSTALL\",\n ],\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"SHELL_HISTORY\",\n description:\n \"Provides recent shell command history, current working directory, and file operations within the restricted environment\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"SHELL_HISTORY\",\n description:\n \"Provides recent shell command history, current working directory, and file operations within the restricted environment\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
7
7
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
8
8
|
"import type { HandlerOptions } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type Content,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n parseJSONObjectFromText,\n type State,\n} from \"@elizaos/core\";\nimport { commandExtractionTemplate } from \"../generated/prompts/typescript/prompts.js\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { ShellService } from \"../services/shellService\";\nexport { commandExtractionTemplate };\n\nconst extractCommand = async (\n runtime: IAgentRuntime,\n _message: Memory,\n state: State\n): Promise<{ command: string } | null> => {\n const prompt = composePromptFromState({\n state,\n template: commandExtractionTemplate,\n });\n\n for (let i = 0; i < 3; i++) {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n });\n\n const parsedResponse = parseJSONObjectFromText(response) as {\n command?: string;\n } | null;\n if (parsedResponse?.command) {\n return { command: parsedResponse.command };\n }\n }\n return null;\n};\n\nconst spec = requireActionSpec(\"EXECUTE_COMMAND\");\n\nexport const executeCommand: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n validate: async (runtime: IAgentRuntime, message: Memory, _state: State): Promise<boolean> => {\n const shellService = runtime.getService<ShellService>(\"shell\");\n if (!shellService) {\n return false;\n }\n\n const text = message.content.text?.toLowerCase() || \"\";\n const commandKeywords = [\n \"run\",\n \"execute\",\n \"command\",\n \"shell\",\n \"install\",\n \"brew\",\n \"npm\",\n \"create\",\n \"file\",\n \"directory\",\n \"folder\",\n \"list\",\n \"show\",\n \"system\",\n \"info\",\n \"check\",\n \"status\",\n \"cd\",\n \"ls\",\n \"mkdir\",\n \"echo\",\n \"cat\",\n \"touch\",\n \"git\",\n \"build\",\n \"test\",\n ];\n\n const hasCommandKeyword = commandKeywords.some((keyword) => text.includes(keyword));\n const hasDirectCommand = /^(brew|npm|apt|git|ls|cd|echo|cat|touch|mkdir|rm|mv|cp)\\s/i.test(\n message.content.text || \"\"\n );\n\n return hasCommandKeyword || hasDirectCommand;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ) => {\n const shellService = runtime.getService<ShellService>(\"shell\");\n\n if (!shellService) {\n if (callback) {\n await callback({\n text: \"Shell service is not available.\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"Shell service is not available.\" };\n }\n\n const commandInfo = await extractCommand(runtime, message, state);\n if (!commandInfo?.command) {\n logger.error(\"Failed to extract command from message:\", message.content.text);\n if (callback) {\n await callback({\n text: \"Could not determine which command to execute. Please specify a shell command.\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"Could not extract command.\" };\n }\n\n logger.info(`Extracted command: \"${commandInfo.command}\"`);\n\n try {\n const conversationId = message.roomId || message.agentId;\n const result = await shellService.executeCommand(commandInfo.command, conversationId);\n\n let responseText = \"\";\n\n if (result.success) {\n responseText = `Command executed successfully in ${result.executedIn}\\n\\n`;\n if (result.stdout) {\n responseText += `Output:\\n\\`\\`\\`\\n${result.stdout}\\n\\`\\`\\``;\n } else {\n responseText += \"Command completed with no output.\";\n }\n } else {\n responseText = `Command failed with exit code ${result.exitCode} in ${result.executedIn}\\n\\n`;\n if (result.error) {\n responseText += `Error: ${result.error}\\n`;\n }\n if (result.stderr) {\n responseText += `\\nError output:\\n\\`\\`\\`\\n${result.stderr}\\n\\`\\`\\``;\n }\n }\n\n const response: Content = {\n text: responseText,\n source: message.content.source,\n };\n\n if (callback) {\n await callback(response);\n }\n return { success: result.success, text: responseText };\n } catch (error) {\n logger.error(\"Error executing command:\", error);\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: `Failed to execute command: ${errorMessage}`,\n source: message.content.source,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n examples: (spec.examples ?? []) as ActionExample[][],\n};\n\nexport default executeCommand;\n",
|
|
9
9
|
"/**\n * Auto-generated prompt templates\n * DO NOT EDIT - Generated from ../../../../prompts/*.txt\n *\n * These prompts use Handlebars-style template syntax:\n * - {{variableName}} for simple substitution\n * - {{#each items}}...{{/each}} for iteration\n * - {{#if condition}}...{{/if}} for conditionals\n */\n\nexport const commandExtractionTemplate = `# Extracting shell command from request\n{{recentMessages}}\n\n# Instructions: {{senderName}} wants to execute a shell command. Extract the COMPLETE shell command they want to run.\n\nIMPORTANT: \n1. Always return the FULL executable shell command, not just the content or partial command.\n2. If the user mentions installing something, create the appropriate brew/npm/apt command.\n3. If the user directly provides a command (like \"brew install X\"), use it exactly as provided.\n4. ALWAYS extract a command if the user is asking for ANY kind of system operation.\n\nCommon patterns:\n- \"run ls -la\" -> command: \"ls -la\"\n- \"execute npm test\" -> command: \"npm test\"\n- \"show me the files\" or \"list files\" -> command: \"ls -la\"\n- \"what's in this directory\" -> command: \"ls -la\"\n- \"check git status\" -> command: \"git status\"\n- \"navigate to src folder\" -> command: \"cd src\"\n- \"create a file called test.txt\" -> command: \"touch test.txt\"\n- \"write hello world to a file\" -> command: \"echo 'hello world' > file.txt\"\n- \"create hello.js with javascript code\" -> command: \"echo 'console.log(\\\\\"Hello, World!\\\\\");' > hello.js\"\n- \"create hello_world.py and write a python hello world script inside\" -> command: \"echo 'print(\\\\\"Hello, World!\\\\\")' > hello_world.py\"\n- \"make a new directory\" -> command: \"mkdir newdir\"\n- \"list files inside your filesystem\" -> command: \"ls -la\"\n- \"install orbstack\" or \"brew install orbstack\" -> command: \"brew install orbstack\"\n- \"install mullvad vpn\" -> command: \"brew install --cask mullvad-vpn\"\n- \"get system info\" -> command: \"system_profiler SPHardwareDataType\"\n- \"check memory usage\" -> command: \"vm_stat\"\n- \"install package\" -> command: \"brew install <package>\"\n\nSpecial cases:\n- \"Run it in your shell\" or \"execute it\" -> Extract the command from previous context\n- \"Install these\" -> Look for package names in previous messages\n- Direct commands should be used exactly as provided\n\nKey rules:\n1. For file creation with content, use: echo 'content' > filename\n2. For listing files, use: ls -la (not just ls)\n3. Always include the echo command when writing to files\n4. Include all flags and arguments\n5. When user says \"run it\", \"execute it\", or similar, they want you to run the command\n\nYour response must be formatted as a JSON block:\n\\`\\`\\`json\n{\n \"command\": \"<complete shell command to execute>\"\n}\n\\`\\`\\``;\n\nexport const COMMAND_EXTRACTION_TEMPLATE = commandExtractionTemplate;\n\n",
|
|
10
|
-
"import {\n addHeader,\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type State,\n} from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { ShellService } from \"../services/shellService\";\nimport type { CommandHistoryEntry, FileOperation } from \"../types\";\n\nconst MAX_OUTPUT_LENGTH = 8000;\nconst TRUNCATE_SEGMENT_LENGTH = 4000;\n\nconst spec = requireProviderSpec(\"
|
|
10
|
+
"import {\n addHeader,\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type State,\n} from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { ShellService } from \"../services/shellService\";\nimport type { CommandHistoryEntry, FileOperation } from \"../types\";\n\nconst MAX_OUTPUT_LENGTH = 8000;\nconst TRUNCATE_SEGMENT_LENGTH = 4000;\n\nconst spec = requireProviderSpec(\"SHELL_HISTORY\");\n\nexport const shellHistoryProvider: Provider = {\n name: spec.name,\n description:\n \"Provides recent shell command history, current working directory, and file operations within the restricted environment\",\n position: 99,\n get: async (runtime: IAgentRuntime, message: Memory, _state: State) => {\n const shellService = runtime.getService<ShellService>(\"shell\");\n\n if (!shellService) {\n logger.warn(\"[shellHistoryProvider] Shell service not found\");\n return {\n values: {\n shellHistory: \"Shell service is not available\",\n currentWorkingDirectory: \"N/A\",\n allowedDirectory: \"N/A\",\n },\n text: addHeader(\"# Shell Status\", \"Shell service is not available\"),\n data: { historyCount: 0, cwd: \"N/A\", allowedDir: \"N/A\" },\n };\n }\n\n const conversationId = message.roomId || message.agentId;\n if (!conversationId) {\n return {\n text: \"No conversation ID available\",\n values: { historyCount: 0, cwd: \"N/A\", allowedDir: \"N/A\" },\n data: { historyCount: 0, cwd: \"N/A\", allowedDir: \"N/A\" },\n };\n }\n const history = shellService.getCommandHistory(conversationId, 10);\n const cwd = shellService.getCurrentDirectory(conversationId);\n const allowedDir = shellService.getAllowedDirectory();\n\n let historyText = \"No commands in history.\";\n if (history.length > 0) {\n historyText = history\n .map((entry: CommandHistoryEntry) => {\n let entryStr = `[${new Date(entry.timestamp).toISOString()}] ${entry.workingDirectory}> ${entry.command}`;\n\n if (entry.stdout) {\n if (entry.stdout.length > MAX_OUTPUT_LENGTH) {\n entryStr += `\\n Output: ${entry.stdout.substring(0, TRUNCATE_SEGMENT_LENGTH)}\\n ... [TRUNCATED] ...\\n ${entry.stdout.substring(entry.stdout.length - TRUNCATE_SEGMENT_LENGTH)}`;\n } else {\n entryStr += `\\n Output: ${entry.stdout}`;\n }\n }\n\n if (entry.stderr) {\n if (entry.stderr.length > MAX_OUTPUT_LENGTH) {\n entryStr += `\\n Error: ${entry.stderr.substring(0, TRUNCATE_SEGMENT_LENGTH)}\\n ... [TRUNCATED] ...\\n ${entry.stderr.substring(entry.stderr.length - TRUNCATE_SEGMENT_LENGTH)}`;\n } else {\n entryStr += `\\n Error: ${entry.stderr}`;\n }\n }\n\n entryStr += `\\n Exit Code: ${entry.exitCode}`;\n\n if (entry.fileOperations && entry.fileOperations.length > 0) {\n entryStr += \"\\n File Operations:\";\n entry.fileOperations.forEach((op: FileOperation) => {\n if (op.secondaryTarget) {\n entryStr += `\\n - ${op.type}: ${op.target} → ${op.secondaryTarget}`;\n } else {\n entryStr += `\\n - ${op.type}: ${op.target}`;\n }\n });\n }\n\n return entryStr;\n })\n .join(\"\\n\\n\");\n }\n\n const recentFileOps = history\n .filter(\n (entry: CommandHistoryEntry) => entry.fileOperations && entry.fileOperations.length > 0\n )\n .flatMap((entry: CommandHistoryEntry) => entry.fileOperations ?? [])\n .slice(-5);\n\n let fileOpsText = \"\";\n if (recentFileOps.length > 0) {\n fileOpsText =\n \"\\n\\n\" +\n addHeader(\n \"# Recent File Operations\",\n recentFileOps\n .map((op: FileOperation) => {\n if (op.secondaryTarget) {\n return `- ${op.type}: ${op.target} → ${op.secondaryTarget}`;\n }\n return `- ${op.type}: ${op.target}`;\n })\n .join(\"\\n\")\n );\n }\n\n const text = `Current Directory: ${cwd}\nAllowed Directory: ${allowedDir}\n\n${addHeader(\"# Shell History (Last 10)\", historyText)}${fileOpsText}`;\n\n return {\n values: {\n shellHistory: historyText,\n currentWorkingDirectory: cwd,\n allowedDirectory: allowedDir,\n },\n text,\n data: {\n historyCount: history.length,\n cwd,\n allowedDir,\n },\n };\n },\n};\n\nexport default shellHistoryProvider;\n",
|
|
11
11
|
"import path from \"node:path\";\nimport { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\nimport spawn from \"cross-spawn\";\nimport type {\n CommandHistoryEntry,\n CommandResult,\n FileOperation,\n FileOperationType,\n ShellConfig,\n} from \"../types\";\nimport { isForbiddenCommand, isSafeCommand, loadShellConfig, validatePath } from \"../utils\";\n\nexport class ShellService extends Service {\n public static serviceType = \"shell\";\n private shellConfig: ShellConfig;\n private currentDirectory: string;\n private commandHistory: Map<string, CommandHistoryEntry[]>;\n private maxHistoryPerConversation = 100;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.shellConfig = loadShellConfig();\n this.currentDirectory = this.shellConfig.allowedDirectory;\n this.commandHistory = new Map();\n }\n\n static async start(runtime: IAgentRuntime): Promise<ShellService> {\n const instance = new ShellService(runtime);\n logger.info(\"Shell service initialized with history tracking\");\n return instance;\n }\n\n async stop(): Promise<void> {\n logger.info(\"Shell service stopped\");\n }\n\n get capabilityDescription(): string {\n return \"Execute shell commands within a restricted directory with history tracking\";\n }\n\n async executeCommand(command: string, conversationId?: string): Promise<CommandResult> {\n if (!this.shellConfig.enabled) {\n return {\n success: false,\n stdout: \"\",\n stderr: \"Shell plugin is disabled. Set SHELL_ENABLED=true to enable.\",\n exitCode: 1,\n error: \"Shell plugin disabled\",\n executedIn: this.currentDirectory,\n };\n }\n\n if (!command || typeof command !== \"string\") {\n return {\n success: false,\n stdout: \"\",\n stderr: \"Invalid command\",\n exitCode: 1,\n error: \"Command must be a non-empty string\",\n executedIn: this.currentDirectory,\n };\n }\n\n const trimmedCommand = command.trim();\n\n if (!isSafeCommand(trimmedCommand)) {\n return {\n success: false,\n stdout: \"\",\n stderr: \"Command contains forbidden patterns\",\n exitCode: 1,\n error: \"Security policy violation\",\n executedIn: this.currentDirectory,\n };\n }\n\n if (isForbiddenCommand(trimmedCommand, this.shellConfig.forbiddenCommands)) {\n return {\n success: false,\n stdout: \"\",\n stderr: \"Command is forbidden by security policy\",\n exitCode: 1,\n error: \"Forbidden command\",\n executedIn: this.currentDirectory,\n };\n }\n\n if (trimmedCommand.startsWith(\"cd \")) {\n const result = await this.handleCdCommand(trimmedCommand);\n this.addToHistory(conversationId, trimmedCommand, result);\n return result;\n }\n\n const result = await this.runCommand(trimmedCommand);\n\n if (result.success) {\n const fileOps = this.detectFileOperations(trimmedCommand, this.currentDirectory);\n if (fileOps && conversationId) {\n this.addToHistory(conversationId, trimmedCommand, result, fileOps);\n } else {\n this.addToHistory(conversationId, trimmedCommand, result);\n }\n } else {\n this.addToHistory(conversationId, trimmedCommand, result);\n }\n\n return result;\n }\n\n private async handleCdCommand(command: string): Promise<CommandResult> {\n const parts = command.split(/\\s+/);\n if (parts.length < 2) {\n this.currentDirectory = this.shellConfig.allowedDirectory;\n return {\n success: true,\n stdout: `Changed directory to: ${this.currentDirectory}`,\n stderr: \"\",\n exitCode: 0,\n executedIn: this.currentDirectory,\n };\n }\n\n const targetPath = parts.slice(1).join(\" \");\n const validatedPath = validatePath(\n targetPath,\n this.shellConfig.allowedDirectory,\n this.currentDirectory\n );\n\n if (!validatedPath) {\n return {\n success: false,\n stdout: \"\",\n stderr: \"Cannot navigate outside allowed directory\",\n exitCode: 1,\n error: \"Permission denied\",\n executedIn: this.currentDirectory,\n };\n }\n\n this.currentDirectory = validatedPath;\n return {\n success: true,\n stdout: `Changed directory to: ${this.currentDirectory}`,\n stderr: \"\",\n exitCode: 0,\n executedIn: this.currentDirectory,\n };\n }\n\n private async runCommand(command: string): Promise<CommandResult> {\n return new Promise((resolve) => {\n const useShell = command.includes(\">\") || command.includes(\"<\") || command.includes(\"|\");\n\n let cmd: string;\n let args: string[];\n\n if (useShell) {\n cmd = \"sh\";\n args = [\"-c\", command];\n logger.info(`Executing shell command: sh -c \"${command}\" in ${this.currentDirectory}`);\n } else {\n const parts = command.split(/\\s+/);\n cmd = parts[0];\n args = parts.slice(1);\n logger.info(`Executing command: ${cmd} ${args.join(\" \")} in ${this.currentDirectory}`);\n }\n\n let stdout = \"\";\n let stderr = \"\";\n let timedOut = false;\n\n const child = spawn(cmd, args, {\n cwd: this.currentDirectory,\n env: process.env,\n shell: false,\n });\n\n const timeout = setTimeout(() => {\n timedOut = true;\n child.kill(\"SIGTERM\");\n setTimeout(() => {\n if (!child.killed) {\n child.kill(\"SIGKILL\");\n }\n }, 5000);\n }, this.shellConfig.timeout);\n\n if (child.stdout) {\n child.stdout.on(\"data\", (data: Buffer) => {\n stdout += data.toString();\n });\n }\n\n if (child.stderr) {\n child.stderr.on(\"data\", (data: Buffer) => {\n stderr += data.toString();\n });\n }\n\n child.on(\"exit\", (code) => {\n clearTimeout(timeout);\n\n if (timedOut) {\n resolve({\n success: false,\n stdout,\n stderr: `${stderr}\\nCommand timed out`,\n exitCode: code,\n error: \"Command execution timeout\",\n executedIn: this.currentDirectory,\n });\n return;\n }\n\n resolve({\n success: code === 0,\n stdout,\n stderr,\n exitCode: code,\n executedIn: this.currentDirectory,\n });\n });\n\n child.on(\"error\", (err: Error) => {\n clearTimeout(timeout);\n resolve({\n success: false,\n stdout,\n stderr: err.message,\n exitCode: 1,\n error: \"Failed to execute command\",\n executedIn: this.currentDirectory,\n });\n });\n });\n }\n\n private addToHistory(\n conversationId: string | undefined,\n command: string,\n result: CommandResult,\n fileOperations?: FileOperation[]\n ): void {\n if (!conversationId) return;\n\n const historyEntry: CommandHistoryEntry = {\n command,\n stdout: result.stdout,\n stderr: result.stderr,\n exitCode: result.exitCode,\n timestamp: Date.now(),\n workingDirectory: result.executedIn,\n fileOperations,\n };\n\n if (!this.commandHistory.has(conversationId)) {\n this.commandHistory.set(conversationId, []);\n }\n\n const history = this.commandHistory.get(conversationId);\n if (!history) {\n throw new Error(`No history found for conversation ${conversationId}`);\n }\n history.push(historyEntry);\n\n if (history.length > this.maxHistoryPerConversation) {\n history.shift();\n }\n }\n\n private detectFileOperations(command: string, cwd: string): FileOperation[] | undefined {\n const operations: FileOperation[] = [];\n const parts = command.trim().split(/\\s+/);\n const cmd = parts[0].toLowerCase();\n\n if (cmd === \"touch\" && parts.length > 1) {\n operations.push({\n type: \"create\" as FileOperationType,\n target: this.resolvePath(parts[1], cwd),\n });\n } else if (cmd === \"echo\" && command.includes(\">\")) {\n const match = command.match(/>\\s*([^\\s]+)$/);\n if (match) {\n operations.push({\n type: \"write\" as FileOperationType,\n target: this.resolvePath(match[1], cwd),\n });\n }\n } else if (cmd === \"mkdir\" && parts.length > 1) {\n operations.push({\n type: \"mkdir\" as FileOperationType,\n target: this.resolvePath(parts[1], cwd),\n });\n } else if (cmd === \"cat\" && parts.length > 1 && !command.includes(\">\")) {\n operations.push({\n type: \"read\" as FileOperationType,\n target: this.resolvePath(parts[1], cwd),\n });\n } else if (cmd === \"mv\" && parts.length > 2) {\n operations.push({\n type: \"move\" as FileOperationType,\n target: this.resolvePath(parts[1], cwd),\n secondaryTarget: this.resolvePath(parts[2], cwd),\n });\n } else if (cmd === \"cp\" && parts.length > 2) {\n operations.push({\n type: \"copy\" as FileOperationType,\n target: this.resolvePath(parts[1], cwd),\n secondaryTarget: this.resolvePath(parts[2], cwd),\n });\n }\n\n return operations.length > 0 ? operations : undefined;\n }\n\n private resolvePath(filePath: string, cwd: string): string {\n if (path.isAbsolute(filePath)) {\n return filePath;\n }\n return path.join(cwd, filePath);\n }\n\n getCommandHistory(conversationId: string, limit?: number): CommandHistoryEntry[] {\n const history = this.commandHistory.get(conversationId) || [];\n if (limit && limit > 0) {\n return history.slice(-limit);\n }\n return history;\n }\n\n clearCommandHistory(conversationId: string): void {\n this.commandHistory.delete(conversationId);\n logger.info(`Cleared command history for conversation: ${conversationId}`);\n }\n\n getCurrentDirectory(_conversationId?: string): string {\n return this.currentDirectory;\n }\n\n getAllowedDirectory(): string {\n return this.shellConfig.allowedDirectory;\n }\n}\n",
|
|
12
12
|
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { logger } from \"@elizaos/core\";\nimport { z } from \"zod\";\nimport type { ShellConfig } from \"../types\";\n\nconst configSchema = z.object({\n enabled: z.boolean(),\n allowedDirectory: z.string(),\n timeout: z.number().positive().default(30000),\n forbiddenCommands: z.array(z.string()),\n});\n\nexport const DEFAULT_FORBIDDEN_COMMANDS: readonly string[] = [\n \"rm -rf /\",\n \"rmdir\",\n \"chmod 777\",\n \"chown\",\n \"chgrp\",\n \"shutdown\",\n \"reboot\",\n \"halt\",\n \"poweroff\",\n \"kill -9\",\n \"killall\",\n \"pkill\",\n \"sudo rm -rf\",\n \"su\",\n \"passwd\",\n \"useradd\",\n \"userdel\",\n \"groupadd\",\n \"groupdel\",\n \"format\",\n \"fdisk\",\n \"mkfs\",\n \"dd if=/dev/zero\",\n \"shred\",\n \":(){:|:&};:\",\n] as const;\n\nexport function loadShellConfig(): ShellConfig {\n const enabled = process.env.SHELL_ENABLED === \"true\";\n const allowedDirectory = process.env.SHELL_ALLOWED_DIRECTORY || process.cwd();\n const timeout = parseInt(process.env.SHELL_TIMEOUT || \"30000\", 10);\n\n const customForbidden = process.env.SHELL_FORBIDDEN_COMMANDS\n ? process.env.SHELL_FORBIDDEN_COMMANDS.split(\",\").map((cmd) => cmd.trim())\n : [];\n\n const forbiddenCommands = [...new Set([...DEFAULT_FORBIDDEN_COMMANDS, ...customForbidden])];\n\n const config: ShellConfig = {\n enabled,\n allowedDirectory,\n timeout,\n forbiddenCommands,\n };\n\n const parseResult = configSchema.safeParse(config);\n if (!parseResult.success) {\n const errorMessage = parseResult.error.issues?.[0]?.message || parseResult.error.toString();\n throw new Error(`Shell plugin configuration error: ${errorMessage}`);\n }\n\n if (enabled && allowedDirectory) {\n try {\n const stats = fs.statSync(allowedDirectory);\n if (!stats.isDirectory()) {\n throw new Error(`SHELL_ALLOWED_DIRECTORY is not a directory: ${allowedDirectory}`);\n }\n\n config.allowedDirectory = path.resolve(allowedDirectory);\n\n logger.info(`Shell plugin enabled with allowed directory: ${config.allowedDirectory}`);\n } catch (error) {\n if (\n error instanceof Error &&\n \"code\" in error &&\n (error as NodeJS.ErrnoException).code === \"ENOENT\"\n ) {\n throw new Error(`SHELL_ALLOWED_DIRECTORY does not exist: ${allowedDirectory}`);\n }\n throw error;\n }\n }\n\n if (!enabled) {\n logger.info(\"Shell plugin is disabled. Set SHELL_ENABLED=true to enable.\");\n }\n\n return config;\n}\n",
|
|
13
13
|
"import path from \"node:path\";\nimport { logger } from \"@elizaos/core\";\n\nexport function validatePath(\n commandPath: string,\n allowedDir: string,\n currentDir: string\n): string | null {\n const resolvedPath = path.resolve(currentDir, commandPath);\n const normalizedPath = path.normalize(resolvedPath);\n const normalizedAllowed = path.normalize(allowedDir);\n\n if (!normalizedPath.startsWith(normalizedAllowed)) {\n logger.warn(\n `Path validation failed: ${normalizedPath} is outside allowed directory ${normalizedAllowed}`\n );\n return null;\n }\n\n return normalizedPath;\n}\n\nexport function isSafeCommand(command: string): boolean {\n const pathTraversalPatterns = [/\\.\\.\\//g, /\\.\\.\\\\/g, /\\/\\.\\./g, /\\\\\\.\\./g];\n\n const dangerousPatterns = [/\\$\\(/g, /`[^']*`/g, /\\|\\s*sudo/g, /;\\s*sudo/g, /&\\s*&/g, /\\|\\s*\\|/g];\n\n for (const pattern of pathTraversalPatterns) {\n if (pattern.test(command)) {\n logger.warn(`Path traversal detected in command: ${command}`);\n return false;\n }\n }\n\n for (const pattern of dangerousPatterns) {\n if (pattern.test(command)) {\n logger.warn(`Dangerous pattern detected in command: ${command}`);\n return false;\n }\n }\n\n const pipeCount = (command.match(/\\|/g) || []).length;\n if (pipeCount > 1) {\n logger.warn(`Multiple pipes detected in command: ${command}`);\n return false;\n }\n\n return true;\n}\n\nexport function extractBaseCommand(fullCommand: string): string {\n const parts = fullCommand.trim().split(/\\s+/);\n return parts[0] || \"\";\n}\n\nexport function isForbiddenCommand(command: string, forbiddenCommands: string[]): boolean {\n const normalizedCommand = command.trim().toLowerCase();\n\n return forbiddenCommands.some((forbidden) => {\n const forbiddenLower = forbidden.toLowerCase();\n\n if (normalizedCommand.startsWith(forbiddenLower)) {\n return true;\n }\n\n if (!forbidden.includes(\" \")) {\n const baseCommand = extractBaseCommand(command);\n if (baseCommand.toLowerCase() === forbiddenLower) {\n return true;\n }\n }\n\n return false;\n });\n}\n",
|
|
14
14
|
"import type { Plugin } from \"@elizaos/core\";\nimport { clearHistory, executeCommand } from \"./actions\";\nimport { shellHistoryProvider } from \"./providers\";\nimport { ShellService } from \"./services/shellService\";\n\nexport const shellPlugin: Plugin = {\n name: \"shell\",\n description: \"Execute shell commands within a restricted directory with history tracking\",\n services: [ShellService],\n actions: [executeCommand, clearHistory],\n providers: [shellHistoryProvider],\n};\n\nexport default shellPlugin;\n\nexport { clearHistory } from \"./actions/clearHistory\";\nexport { executeCommand } from \"./actions/executeCommand\";\nexport { shellHistoryProvider } from \"./providers/shellHistoryProvider\";\nexport { ShellService } from \"./services/shellService\";\nexport type {\n CommandHistoryEntry,\n CommandResult,\n FileOperation,\n FileOperationType,\n ShellConfig,\n} from \"./types\";\nexport {\n DEFAULT_FORBIDDEN_COMMANDS,\n extractBaseCommand,\n isForbiddenCommand,\n isSafeCommand,\n loadShellConfig,\n validatePath,\n} from \"./utils\";\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "660EC61651C6DFA564756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-shell",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.2",
|
|
4
4
|
"description": "Shell command execution plugin for ElizaOS with directory restrictions and history tracking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,16 +33,16 @@
|
|
|
33
33
|
"author": "elizaOS",
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@elizaos/core": "
|
|
36
|
+
"@elizaos/core": "2.0.0-alpha.2",
|
|
37
37
|
"cross-spawn": "^7.0.6",
|
|
38
38
|
"zod": "^4.3.5"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
+
"@biomejs/biome": "^2.3.11",
|
|
41
42
|
"@types/cross-spawn": "^6.0.6",
|
|
42
43
|
"@types/node": "^25.0.3",
|
|
43
44
|
"typescript": "^5.9.3",
|
|
44
|
-
"vitest": "^4.0.0"
|
|
45
|
-
"@biomejs/biome": "^2.3.11"
|
|
45
|
+
"vitest": "^4.0.0"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "bun run build.ts",
|
|
@@ -89,5 +89,6 @@
|
|
|
89
89
|
"sensitive": false
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
}
|
|
92
|
+
},
|
|
93
|
+
"gitHead": "bc6cac8d36845d7cbde51a64307c6a57c16378ad"
|
|
93
94
|
}
|