- Update root AGENTS.md: hook count 44→46, commit fcb90d92, generated 2026-02-24 - Update src/AGENTS.md: core hooks 35→37, session hooks 21→23 - Update src/hooks/AGENTS.md: 46 hooks total, add modelFallback/noSisyphusGpt/noHephaestusNonGpt/runtimeFallback, jsonErrorRecovery moved to tool-guard (tier 2) - Create src/tools/hashline-edit/AGENTS.md (93 lines): documents three-op model, LINE#ID format, execution pipeline - Refresh timestamps: 2026-02-21→2026-02-24 on 28 files - Update plugin/AGENTS.md hook composition counts 🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# src/ — Plugin Source
|
|
|
|
**Generated:** 2026-02-24
|
|
|
|
## OVERVIEW
|
|
|
|
Root source directory. Entry point `index.ts` orchestrates 4-step initialization: config → managers → tools → hooks → plugin interface.
|
|
|
|
## KEY FILES
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `index.ts` | Plugin entry, exports `OhMyOpenCodePlugin` |
|
|
| `plugin-config.ts` | JSONC parse, multi-level merge (user → project → defaults), Zod validation |
|
|
| `create-managers.ts` | TmuxSessionManager, BackgroundManager, SkillMcpManager, ConfigHandler |
|
|
| `create-tools.ts` | SkillContext + AvailableCategories + ToolRegistry |
|
|
| `create-hooks.ts` | 3-tier hook composition: Core(37) + Continuation(7) + Skill(2) |
|
|
| `plugin-interface.ts` | Assembles 8 OpenCode hook handlers into PluginInterface |
|
|
|
|
## CONFIG LOADING
|
|
|
|
```
|
|
loadPluginConfig(directory, ctx)
|
|
1. User: ~/.config/opencode/oh-my-opencode.jsonc
|
|
2. Project: .opencode/oh-my-opencode.jsonc
|
|
3. mergeConfigs(user, project) → deepMerge for agents/categories, Set union for disabled_*
|
|
4. Zod safeParse → defaults for omitted fields
|
|
5. migrateConfigFile() → legacy key transformation
|
|
```
|
|
|
|
## HOOK COMPOSITION
|
|
|
|
```
|
|
createHooks()
|
|
├─→ createCoreHooks() # 37 hooks
|
|
│ ├─ createSessionHooks() # 23: contextWindowMonitor, thinkMode, ralphLoop, modelFallback, runtimeFallback, noSisyphusGpt, noHephaestusNonGpt, anthropicEffort...
|
|
│ ├─ createToolGuardHooks() # 10: commentChecker, rulesInjector, writeExistingFileGuard, jsonErrorRecovery, hashlineReadEnhancer...
|
|
│ └─ createTransformHooks() # 4: claudeCodeHooks, keywordDetector, contextInjector, thinkingBlockValidator
|
|
├─→ createContinuationHooks() # 7: todoContinuationEnforcer, atlas, stopContinuationGuard...
|
|
└─→ createSkillHooks() # 2: categorySkillReminder, autoSlashCommand
|
|
```
|