Update AGENTS.md documentation hierarchy with auth and hooks details
- Update root AGENTS.md with timestamp 2026-01-01T21:15:00+09:00, commit 490c0b6
- Add auto-slash-command and ralph-loop hooks to structure documentation
- Add complexity hotspots, unique styles, and notes sections
- Create src/auth/AGENTS.md documenting Antigravity OAuth architecture (57 lines)
- Update src/hooks/AGENTS.md with new hooks documentation
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
27
AGENTS.md
27
AGENTS.md
@@ -1,7 +1,7 @@
|
|||||||
# PROJECT KNOWLEDGE BASE
|
# PROJECT KNOWLEDGE BASE
|
||||||
|
|
||||||
**Generated:** 2025-12-31T14:05:00+09:00
|
**Generated:** 2026-01-01T21:15:00+09:00
|
||||||
**Commit:** 502e9f5
|
**Commit:** 490c0b6
|
||||||
**Branch:** dev
|
**Branch:** dev
|
||||||
|
|
||||||
## OVERVIEW
|
## OVERVIEW
|
||||||
@@ -14,12 +14,12 @@ OpenCode plugin implementing Claude Code/AmpCode features. Multi-model agent orc
|
|||||||
oh-my-opencode/
|
oh-my-opencode/
|
||||||
├── src/
|
├── src/
|
||||||
│ ├── agents/ # AI agents (7): Sisyphus, oracle, librarian, explore, frontend, document-writer, multimodal-looker
|
│ ├── agents/ # AI agents (7): Sisyphus, oracle, librarian, explore, frontend, document-writer, multimodal-looker
|
||||||
│ ├── hooks/ # 21 lifecycle hooks - see src/hooks/AGENTS.md
|
│ ├── hooks/ # 22 lifecycle hooks - see src/hooks/AGENTS.md
|
||||||
│ ├── tools/ # LSP, AST-Grep, Grep, Glob, etc. - see src/tools/AGENTS.md
|
│ ├── tools/ # LSP, AST-Grep, Grep, Glob, etc. - see src/tools/AGENTS.md
|
||||||
│ ├── mcp/ # MCP servers: context7, websearch_exa, grep_app
|
│ ├── mcp/ # MCP servers: context7, websearch_exa, grep_app
|
||||||
│ ├── features/ # Claude Code compatibility - see src/features/AGENTS.md
|
│ ├── features/ # Claude Code compatibility - see src/features/AGENTS.md
|
||||||
│ ├── config/ # Zod schema, TypeScript types
|
│ ├── config/ # Zod schema, TypeScript types
|
||||||
│ ├── auth/ # Google Antigravity OAuth (antigravity/)
|
│ ├── auth/ # Google Antigravity OAuth - see src/auth/AGENTS.md
|
||||||
│ ├── shared/ # Utilities: deep-merge, pattern-matcher, logger, etc. - see src/shared/AGENTS.md
|
│ ├── shared/ # Utilities: deep-merge, pattern-matcher, logger, etc. - see src/shared/AGENTS.md
|
||||||
│ ├── cli/ # CLI installer, doctor, run - see src/cli/AGENTS.md
|
│ ├── cli/ # CLI installer, doctor, run - see src/cli/AGENTS.md
|
||||||
│ └── index.ts # Main plugin entry (OhMyOpenCodePlugin)
|
│ └── index.ts # Main plugin entry (OhMyOpenCodePlugin)
|
||||||
@@ -38,7 +38,7 @@ oh-my-opencode/
|
|||||||
| Add MCP | `src/mcp/` | Create config, add to index.ts and types.ts |
|
| Add MCP | `src/mcp/` | Create config, add to index.ts and types.ts |
|
||||||
| LSP behavior | `src/tools/lsp/` | client.ts (connection), tools.ts (handlers) |
|
| LSP behavior | `src/tools/lsp/` | client.ts (connection), tools.ts (handlers) |
|
||||||
| AST-Grep | `src/tools/ast-grep/` | napi.ts for @ast-grep/napi binding |
|
| AST-Grep | `src/tools/ast-grep/` | napi.ts for @ast-grep/napi binding |
|
||||||
| Google OAuth | `src/auth/antigravity/` | OAuth plugin for Google models |
|
| Google OAuth | `src/auth/antigravity/` | OAuth plugin for Google/Gemini models |
|
||||||
| Config schema | `src/config/schema.ts` | Zod schema, run `bun run build:schema` after changes |
|
| Config schema | `src/config/schema.ts` | Zod schema, run `bun run build:schema` after changes |
|
||||||
| Claude Code compat | `src/features/claude-code-*-loader/` | Command, skill, agent, mcp loaders |
|
| Claude Code compat | `src/features/claude-code-*-loader/` | Command, skill, agent, mcp loaders |
|
||||||
| Background agents | `src/features/background-agent/` | manager.ts for task management |
|
| Background agents | `src/features/background-agent/` | manager.ts for task management |
|
||||||
@@ -46,6 +46,8 @@ oh-my-opencode/
|
|||||||
| CLI installer | `src/cli/install.ts` | Interactive TUI installation |
|
| CLI installer | `src/cli/install.ts` | Interactive TUI installation |
|
||||||
| Doctor checks | `src/cli/doctor/checks/` | Health checks for environment |
|
| Doctor checks | `src/cli/doctor/checks/` | Health checks for environment |
|
||||||
| Shared utilities | `src/shared/` | Cross-cutting utilities |
|
| Shared utilities | `src/shared/` | Cross-cutting utilities |
|
||||||
|
| Slash commands | `src/hooks/auto-slash-command/` | Auto-detect and execute `/command` patterns |
|
||||||
|
| Ralph Loop | `src/hooks/ralph-loop/` | Self-referential dev loop until completion |
|
||||||
|
|
||||||
## CONVENTIONS
|
## CONVENTIONS
|
||||||
|
|
||||||
@@ -70,6 +72,8 @@ oh-my-opencode/
|
|||||||
- **Over-exploration**: Stop searching when sufficient context found
|
- **Over-exploration**: Stop searching when sufficient context found
|
||||||
- **High temperature**: Don't use >0.3 for code-related agents
|
- **High temperature**: Don't use >0.3 for code-related agents
|
||||||
- **Broad tool access**: Prefer explicit `include` over unrestricted access
|
- **Broad tool access**: Prefer explicit `include` over unrestricted access
|
||||||
|
- **Sequential agent calls**: Use `background_task` for parallel execution
|
||||||
|
- **Heavy PreToolUse logic**: Slows every tool call
|
||||||
|
|
||||||
## UNIQUE STYLES
|
## UNIQUE STYLES
|
||||||
|
|
||||||
@@ -80,6 +84,7 @@ oh-my-opencode/
|
|||||||
- **Agent tools**: `tools: { include: [...] }` or `tools: { exclude: [...] }`
|
- **Agent tools**: `tools: { include: [...] }` or `tools: { exclude: [...] }`
|
||||||
- **Temperature**: Most agents use `0.1` for consistency
|
- **Temperature**: Most agents use `0.1` for consistency
|
||||||
- **Hook naming**: `createXXXHook` function convention
|
- **Hook naming**: `createXXXHook` function convention
|
||||||
|
- **Factory pattern**: Components created via `createXXX()` functions
|
||||||
|
|
||||||
## AGENT MODELS
|
## AGENT MODELS
|
||||||
|
|
||||||
@@ -123,11 +128,12 @@ bun test # Run tests
|
|||||||
|
|
||||||
| File | Lines | Description |
|
| File | Lines | Description |
|
||||||
|------|-------|-------------|
|
|------|-------|-------------|
|
||||||
| `src/index.ts` | 690 | Main plugin orchestration, all hook/tool initialization |
|
| `src/index.ts` | 697 | Main plugin orchestration, all hook/tool initialization |
|
||||||
| `src/hooks/anthropic-context-window-limit-recovery/executor.ts` | 670 | Session compaction, multi-stage recovery pipeline |
|
| `src/cli/config-manager.ts` | 670 | JSONC parsing, environment detection, installation |
|
||||||
| `src/cli/config-manager.ts` | 669 | JSONC parsing, environment detection, installation |
|
| `src/auth/antigravity/fetch.ts` | 622 | Token refresh, URL rewriting, endpoint fallbacks |
|
||||||
| `src/auth/antigravity/fetch.ts` | 621 | Token refresh, URL rewriting, endpoint fallbacks |
|
| `src/tools/lsp/client.ts` | 612 | LSP protocol, stdin/stdout buffering, JSON-RPC |
|
||||||
| `src/tools/lsp/client.ts` | 611 | LSP protocol, stdin/stdout buffering, JSON-RPC |
|
| `src/hooks/anthropic-context-window-limit-recovery/executor.ts` | 555 | Session compaction, multi-stage recovery pipeline |
|
||||||
|
| `src/agents/sisyphus.ts` | 505 | Orchestrator prompt, delegation strategies |
|
||||||
|
|
||||||
## NOTES
|
## NOTES
|
||||||
|
|
||||||
@@ -137,3 +143,4 @@ bun test # Run tests
|
|||||||
- **Config**: `~/.config/opencode/oh-my-opencode.json` (user) or `.opencode/oh-my-opencode.json` (project)
|
- **Config**: `~/.config/opencode/oh-my-opencode.json` (user) or `.opencode/oh-my-opencode.json` (project)
|
||||||
- **Trusted deps**: @ast-grep/cli, @ast-grep/napi, @code-yeongyu/comment-checker
|
- **Trusted deps**: @ast-grep/cli, @ast-grep/napi, @code-yeongyu/comment-checker
|
||||||
- **JSONC support**: Config files support comments (`// comment`, `/* block */`) and trailing commas
|
- **JSONC support**: Config files support comments (`// comment`, `/* block */`) and trailing commas
|
||||||
|
- **Claude Code Compat**: Full compatibility layer for settings.json hooks, commands, skills, agents, MCPs
|
||||||
|
|||||||
57
src/auth/AGENTS.md
Normal file
57
src/auth/AGENTS.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# AUTH KNOWLEDGE BASE
|
||||||
|
|
||||||
|
## OVERVIEW
|
||||||
|
|
||||||
|
Google Antigravity OAuth implementation for Gemini models. Token management, fetch interception, thinking block extraction, and response transformation.
|
||||||
|
|
||||||
|
## STRUCTURE
|
||||||
|
|
||||||
|
```
|
||||||
|
auth/
|
||||||
|
└── antigravity/
|
||||||
|
├── plugin.ts # Main plugin export, hooks registration
|
||||||
|
├── oauth.ts # OAuth flow, token acquisition
|
||||||
|
├── token.ts # Token storage, refresh logic
|
||||||
|
├── fetch.ts # Fetch interceptor (622 lines) - URL rewriting, retry
|
||||||
|
├── response.ts # Response transformation, streaming
|
||||||
|
├── thinking.ts # Thinking block extraction/transformation
|
||||||
|
├── thought-signature-store.ts # Signature caching for thinking blocks
|
||||||
|
├── message-converter.ts # Message format conversion
|
||||||
|
├── request.ts # Request building, headers
|
||||||
|
├── project.ts # Project ID management
|
||||||
|
├── tools.ts # Tool registration for OAuth
|
||||||
|
├── constants.ts # API endpoints, model mappings
|
||||||
|
└── types.ts # TypeScript interfaces
|
||||||
|
```
|
||||||
|
|
||||||
|
## KEY COMPONENTS
|
||||||
|
|
||||||
|
| File | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `fetch.ts` | Core interceptor - rewrites URLs, manages tokens, handles retries |
|
||||||
|
| `thinking.ts` | Extracts `<antThinking>` blocks, transforms for OpenCode compatibility |
|
||||||
|
| `response.ts` | Handles streaming responses, SSE parsing |
|
||||||
|
| `oauth.ts` | Browser-based OAuth flow for Google accounts |
|
||||||
|
| `token.ts` | Token persistence, expiry checking, refresh |
|
||||||
|
|
||||||
|
## HOW IT WORKS
|
||||||
|
|
||||||
|
1. **Intercept**: `fetch.ts` intercepts requests to Anthropic/Google endpoints
|
||||||
|
2. **Rewrite**: URLs rewritten to Antigravity proxy endpoints
|
||||||
|
3. **Auth**: Bearer token injected from stored OAuth credentials
|
||||||
|
4. **Response**: Streaming responses parsed, thinking blocks extracted
|
||||||
|
5. **Transform**: Response format normalized for OpenCode consumption
|
||||||
|
|
||||||
|
## ANTI-PATTERNS (AUTH)
|
||||||
|
|
||||||
|
- **Direct API calls**: Always go through fetch interceptor
|
||||||
|
- **Storing tokens in code**: Use `token.ts` storage layer
|
||||||
|
- **Ignoring refresh**: Check token expiry before requests
|
||||||
|
- **Blocking on OAuth**: OAuth flow is async, never block main thread
|
||||||
|
|
||||||
|
## NOTES
|
||||||
|
|
||||||
|
- **Multi-account**: Supports up to 10 Google accounts for load balancing
|
||||||
|
- **Fallback**: On rate limit, automatically switches to next available account
|
||||||
|
- **Thinking blocks**: Preserved and transformed for extended thinking features
|
||||||
|
- **Proxy**: Uses Antigravity proxy for Google AI Studio access
|
||||||
@@ -10,6 +10,7 @@ Lifecycle hooks that intercept/modify agent behavior. Inject context, enforce ru
|
|||||||
hooks/
|
hooks/
|
||||||
├── agent-usage-reminder/ # Remind to use specialized agents
|
├── agent-usage-reminder/ # Remind to use specialized agents
|
||||||
├── anthropic-context-window-limit-recovery/ # Auto-compact Claude at token limit
|
├── anthropic-context-window-limit-recovery/ # Auto-compact Claude at token limit
|
||||||
|
├── auto-slash-command/ # Auto-detect and execute /command patterns
|
||||||
├── auto-update-checker/ # Version update notifications
|
├── auto-update-checker/ # Version update notifications
|
||||||
├── background-notification/ # OS notify on background task complete
|
├── background-notification/ # OS notify on background task complete
|
||||||
├── claude-code-hooks/ # Claude Code settings.json integration
|
├── claude-code-hooks/ # Claude Code settings.json integration
|
||||||
@@ -24,6 +25,7 @@ hooks/
|
|||||||
├── keyword-detector/ # Detect ultrawork/search keywords
|
├── keyword-detector/ # Detect ultrawork/search keywords
|
||||||
├── non-interactive-env/ # CI/headless environment handling
|
├── non-interactive-env/ # CI/headless environment handling
|
||||||
├── preemptive-compaction/ # Pre-emptive session compaction
|
├── preemptive-compaction/ # Pre-emptive session compaction
|
||||||
|
├── ralph-loop/ # Self-referential dev loop until completion
|
||||||
├── rules-injector/ # Conditional rules from .claude/rules/
|
├── rules-injector/ # Conditional rules from .claude/rules/
|
||||||
├── session-recovery/ # Recover from session errors
|
├── session-recovery/ # Recover from session errors
|
||||||
├── think-mode/ # Auto-detect thinking triggers
|
├── think-mode/ # Auto-detect thinking triggers
|
||||||
|
|||||||
Reference in New Issue
Block a user