Files
oh-my-opencode/src/tools/AGENTS.md
T
justsisyphus 188bbef018 refactor: rename sisyphus_task to delegate_task
- Rename directories: sisyphus-task → delegate-task
- Rename types: SisyphusTaskArgs → DelegateTaskArgs, etc.
- Rename functions: createSisyphusTask → createDelegateTask
- Rename constants: SISYPHUS_TASK_* → DELEGATE_TASK_*
- Update tool name: sisyphus_task → delegate_task
- Update all prompts, docs, and tests
2026-01-16 18:31:08 +09:00

3.1 KiB

TOOLS KNOWLEDGE BASE

OVERVIEW

Custom tools extending agent capabilities: LSP (3 tools), AST-aware search/replace, background tasks, and multimodal analysis.

STRUCTURE

tools/
├── ast-grep/           # AST-aware search/replace (25 languages)
│   ├── cli.ts          # @ast-grep/cli fallback
│   └── napi.ts         # @ast-grep/napi native binding (preferred)
├── background-task/    # Async agent task management
├── call-omo-agent/     # Spawn explore/librarian agents
├── glob/               # File pattern matching (timeout-safe)
├── grep/               # Content search (timeout-safe)
├── interactive-bash/   # Tmux session management
├── look-at/            # Multimodal analysis (PDF, images)
├── lsp/                # IDE-like code intelligence
│   ├── client.ts       # LSP connection lifecycle (632 lines)
│   ├── tools.ts        # Tool implementations
│   └── config.ts, types.ts, utils.ts
├── session-manager/    # OpenCode session history management
├── sisyphus-task/      # Category-based delegation (667 lines)
├── skill/              # Skill loading/execution
├── skill-mcp/          # Skill-embedded MCP invocation
├── slashcommand/       # Slash command execution
└── index.ts            # builtinTools export (75 lines)

TOOL CATEGORIES

Category Tools Purpose
LSP lsp_diagnostics, lsp_prepare_rename, lsp_rename IDE-grade code intelligence (3 tools)
AST ast_grep_search, ast_grep_replace Structural pattern matching/rewriting
Search grep, glob Timeout-safe file and content search
Session session_list, session_read, session_search, session_info History navigation and retrieval
Background delegate_task, background_output, background_cancel Parallel agent orchestration
UI/Terminal look_at, interactive_bash Visual analysis and tmux control
Execution slashcommand, skill, skill_mcp Command and skill-based extensibility

HOW TO ADD A TOOL

  1. Create directory src/tools/my-tool/.
  2. Implement tools.ts (factory), types.ts, and constants.ts.
  3. Export via index.ts and register in src/tools/index.ts.

LSP SPECIFICS

  • Lifecycle: Lazy initialization on first call; auto-shutdown on idle.
  • Config: Merges opencode.json and oh-my-opencode.json.
  • Capability: Supports full LSP spec including rename and prepareRename.

AST-GREP SPECIFICS

  • Precision: Uses tree-sitter for structural matching (avoids regex pitfalls).
  • Binding: Uses @ast-grep/napi for performance; ensure patterns are valid AST nodes.
  • Variables: Supports $VAR and $$$ meta-variables for capture.

ANTI-PATTERNS

  • Sync Ops: Never use synchronous file I/O; blocking the main thread kills responsiveness.
  • No Timeouts: Always wrap external CLI/LSP calls in timeouts (default 60s).
  • Direct Subprocess: Avoid raw spawn for ast-grep; use NAPI binding.
  • Manual Pathing: Use shared/utils for path normalization across platforms.