- 1208→1243 TS files (+35), 143k→155k LOC (+12k)
- Update all agent models: Sisyphus, Hephaestus, Oracle, Librarian, Atlas, Metis, Momus
- Add 6 new hook directories (39→45 dirs): beast-mode-system, hashline-edit-diff-enhancer, anthropic-image-context, task-reminder, compaction-todo-preserver, runtime-fallback
- Update category models: visual-engineering/artistry gemini-3-pro→gemini-3.1-pro
- Add 2 config schema files: fallback-models.ts, runtime-fallback.ts
- Timestamp: 2026-03-02 | Commit: 1c2caa09
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
3.4 KiB
3.4 KiB
src/features/ — 19 Feature Modules
Generated: 2026-03-02
OVERVIEW
Standalone feature modules wired into plugin/ layer. Each is self-contained with own types, implementation, and tests.
MODULE MAP
| Module | Files | Complexity | Purpose |
|---|---|---|---|
| background-agent | 49 | HIGH | Task lifecycle, concurrency (5/model), polling, spawner pattern |
| tmux-subagent | 27 | HIGH | Tmux pane management, grid planning, session orchestration |
| opencode-skill-loader | 25 | HIGH | YAML frontmatter skill loading from 4 scopes |
| mcp-oauth | 10 | HIGH | OAuth 2.0 + PKCE + DCR (RFC 7591) for MCP servers |
| builtin-skills | 10 | LOW | 6 skills: git-master, playwright, playwright-cli, agent-browser, dev-browser, frontend-ui-ux |
| skill-mcp-manager | 10 | MEDIUM | MCP client lifecycle per session (stdio + HTTP) |
| claude-code-plugin-loader | 10 | MEDIUM | Unified plugin discovery from .opencode/plugins/ |
| builtin-commands | 9 | LOW | Command templates: refactor, init-deep, handoff, etc. |
| claude-code-mcp-loader | 5 | MEDIUM | .mcp.json loading with ${VAR} env expansion |
| context-injector | 4 | MEDIUM | AGENTS.md/README.md injection into context |
| boulder-state | 4 | LOW | Persistent state for multi-step operations |
| hook-message-injector | 4 | MEDIUM | System message injection for hooks |
| claude-tasks | 4 | MEDIUM | Task schema + file storage + OpenCode todo sync |
| task-toast-manager | 3 | MEDIUM | Task progress notifications |
| claude-code-agent-loader | 3 | LOW | Load agents from .opencode/agents/ |
| claude-code-command-loader | 3 | LOW | Load commands from .opencode/commands/ |
| claude-code-session-state | 2 | LOW | Subagent session state tracking |
| run-continuation-state | 5 | LOW | Persistent state for run command continuation across sessions |
| tool-metadata-store | 2 | LOW | Tool execution metadata cache |
KEY MODULES
background-agent (49 files, ~10k LOC)
Core orchestration engine. BackgroundManager manages task lifecycle:
- States: pending → running → completed/error/cancelled/interrupt
- Concurrency: per-model/provider limits via
ConcurrencyManager(FIFO queue) - Polling: 3s interval, completion via idle events + stability detection (10s unchanged)
- spawner/: 8 focused files composing via
SpawnerContextinterface
opencode-skill-loader (25 files, ~3.2k LOC)
4-scope skill discovery (project > opencode > user > global):
- YAML frontmatter parsing from SKILL.md files
- Skill merger with priority deduplication
- Template resolution with variable substitution
- Provider gating for model-specific skills
tmux-subagent (27 files, ~3.6k LOC)
State-first tmux integration:
TmuxSessionManager: pane lifecycle, grid planning- Spawn action decider + target finder
- Polling manager for session health
- Event handlers for pane creation/destruction
builtin-skills (6 skill objects)
| Skill | Size | MCP | Tools |
|---|---|---|---|
| git-master | 1111 LOC | — | Bash |
| playwright | 312 LOC | @playwright/mcp | — |
| agent-browser | (in playwright.ts) | — | Bash(agent-browser:*) |
| playwright-cli | 268 LOC | — | Bash(playwright-cli:*) |
| dev-browser | 221 LOC | — | Bash |
| frontend-ui-ux | 79 LOC | — | — |
Browser variant selected by browserProvider config: playwright (default) | playwright-cli | agent-browser.