feat: merge shell and process tools into unified process tool - #838
Merged
Conversation
Add OpenSpec proposal, design, tasks, and spec for consolidating shell and process tooling into a single unified process tool.
- Merge shell and process tools into single process tool with action parameter - Fix background process stdio capture (pipe instead of ignore) - Remove shell tool entirely - Update tool registration, permissions, classifications - Update agent tool assignments (deepAgents.js) - Update tests for unified process tool
Owner
Author
Audit: Merge shell and process tools → unified process toolIssue Requirements vs Implementation
Key ChangesRemoved:
Modified:
Breaking Changes
Test Results
OpenSpec Artifacts
All 10 fix steps from the issue have been implemented. The unified tool correctly captures stdout/stderr from background processes, provides all lifecycle actions, and maintains backward compatibility with the existing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Merged the separate
shellandprocesstools into a single unified process tool with action-based routing. Background processes now capture stdout/stderr at spawn time (fixing the previously brokenlogaction that returned placeholder text). The standaloneshell.jsmodule has been removed and all functionality consolidated intoprocess.js.Files Changed
src/tools/process.js— Rewritten with unified action routing (start,wait,kill,log,write,pause,resume,list), foreground/background execution, and stdio capture viastdio: ["ignore", "pipe", "pipe"]src/tools/shell.js— Deleted (functionality merged into process.js)src/tools/index.js— Removed shell import, updated TOOL_PERMISSIONS (process now requiresfilesystem:exec+process:spawn), updated TOOL_CLASSIFICATIONS, removed from ORCHESTRATOR_TOOLS and TOOLSsrc/agent/deepAgents.js— Replaced allshellreferences withprocessin agent classification mapstests/unit/shell.test.js— Rewritten to test the unified process tool (action-based interface, foreground/background, lifecycle actions)tests/unit/tool_index.test.js— Updated assertions to reflect shell removal and new process permission modelopenspec/— Archived themerge-shell-process-toolschange and updated theunified-process-toolspecType of Change
Testing
Coverage
Checklist
npm run lintpasses