DSH-side half of the VS Code bridge for DSH Cline extension. Provides vscode tool for agent actuation, MCP server mounting, checkpoint management, and web gateway for settings/catalog.
Single tool 'vscode' has a well-structured input schema with proper enum constraints and parameter descriptions. However, the tool description is moderately detailed but lacks clarity on when to use it vs alternatives, and the output schema is completely undocumented. No error handling guidance is provided. The tool performs multiple distinct actions (open_file, open_diff, open_external, reveal_in_explorer, active_editor, apply_selection) which violates single-responsibility principle, these should ideally be separate tools or at least grouped with clearer action-specific documentation.
Actuate the user's VS Code window: open a file (optionally at a line), open a diff view, open an external http(s) link, reveal a path in the explorer, read the active editor/selection, or replace the current selection with text. Available only when DSH runs inside the DSH Cline VS Code extension.
Output schema completely undocumented. Tool description does not specify what each action returns, making it impossible for LLMs to plan downstream operations or extract results.
Single tool combines 6 distinct actions (open_file, open_diff, open_external, reveal_in_explorer, active_editor, apply_selection). Violates single-responsibility principle. LLMs must reason about which action to invoke rather than selecting a focused tool.
No error handling guidance. Tool description does not explain failure modes (e.g., file not found, invalid line number, permission denied) or recovery steps.
Tool description lacks context on when to use it. Phrase 'Available only when DSH runs inside the DSH Cline VS Code extension' is a constraint, not a usage guide. LLMs need to know: when should I call this vs other tools?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Parameter 'language' in open_diff action has description 'language id for both sides (default plaintext)' but no enum or format constraint. LLMs may pass invalid language IDs.