YeonGyu-Kim
838b5ae216
docs(agents): refresh hierarchical AGENTS.md with team-mode coverage
...
Update root + 43 directory-level AGENTS.md files to reflect current state:
- Root AGENTS.md rewritten with accurate counts (1967 TS files, 1304 source +
663 test, 278k LOC, 120 barrel index.ts), 7-step init flow, 5-tier hook
composition, and full Team Mode section (12 team_* tools, eligibility,
storage layout, config gate)
- src/AGENTS.md adds team-mode init step, current per-subdir file/LOC table
- src/tools/AGENTS.md documents conditional gates (team-mode +12, task
system +4, hashline +1, interactive_bash +1, look_at +1) with always-on
baseline of 20
- src/hooks/AGENTS.md splits into 5 tiers + 4 conditional team-mode hooks
- src/features/team-mode/AGENTS.md surfaces 12 tools, eligible agents,
spawn-race-safe invariants, and integration points
- src/features/builtin-skills/AGENTS.md tracks 10 skills incl. team-mode
- src/agents/AGENTS.md, src/plugin/AGENTS.md, src/config/AGENTS.md updated
for team-mode awareness, accurate counts, and current schema field list
- All other AGENTS.md files refreshed to 2026-05-08 generation date
2026-05-08 12:08:42 +09:00
YeonGyu-Kim
5759a9c503
docs(agents): refresh AGENTS.md hierarchy via /init-deep
...
Updated root + 14 core subdirectory AGENTS.md files to reflect current
state (commit 2892ca4a on dev). Added 4 new AGENTS.md files for gap
directories: hooks/comment-checker (AI slop blocker), features/claude-
code-plugin-loader (CC compat layer), features/claude-code-mcp-loader
(tier 2 MCP loader), cli/doctor (health diagnostics with 25 check files).
2026-04-18 01:21:20 +09:00
YeonGyu-Kim
0c5cd3a1c4
chore(agents): update all AGENTS.md generation dates to 2026-04-11
...
🤖 Generated with OhMyOpenCode assistance
2026-04-11 22:33:22 +09:00
YeonGyu-Kim
37057f18b9
test(tools): update MCP, delegate-task, skill, and slashcommand tests
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-10 15:53:35 +09:00
YeonGyu-Kim
7b7526e2f6
docs(src): update counts across tools, features, config, cli AGENTS.md
...
- tools: 15 -> 16 dirs, writing model kimi-k2p5 -> gemini-3-flash
- features: builtin skills 6 -> 8 (+review-work, +ai-slop-remover)
- config: schema files 24 -> 27 (+git-env-prefix, model-capabilities, openclaw)
- cli: commands 5 -> 6 (+refresh-model-capabilities)
- plugin-handlers: 13 -> 14 non-test files
- shared: 95+ -> 100+ utility files
2026-04-05 14:12:31 +09:00
YeonGyu-Kim
da86b57f23
test: fix CI test isolation - upgrade Bun, fix mock contamination and fresh-import patterns
2026-04-05 01:01:19 +09:00
YeonGyu-Kim
feaa674963
test: fix imports for mcp-index and subagent-resolver isolation
2026-04-04 21:30:42 +09:00
YeonGyu-Kim
ba26b6f29d
test: isolate skill-tools and mcp-index tests to prevent mock contamination
...
Moves test files with mock.module() calls into zauc-mocks-* directories
to prevent process-global mock pollution affecting subsequent tests.
- src/tools/skill/tools.test.ts -> zauc-mocks-skill-tools/
- src/mcp/index.test.ts -> zauc-mocks-mcp-index/
Fixes remaining 21 CI failures (resolveSubagentExecution + slashcommand).
2026-04-04 20:49:47 +09:00
YeonGyu-Kim
dc695e8776
refactor(cli,mcp,openclaw): remove AI slop from code comments
2026-04-03 21:42:12 +09:00
YeonGyu-Kim
5d68de79d0
fix(types): return type RemoteMcpConfig | undefined for createWebsearchConfig
2026-04-02 13:55:21 +09:00
YeonGyu-Kim
a695730891
fix(mcp): handle missing Tavily API key gracefully
...
Previously, when websearch was configured with Tavily provider and the
TAVILY_API_KEY environment variable was not set, the entire plugin would
fail to load with no visible error to the user.
Changes:
1. createWebsearchConfig now returns undefined when Tavily key is missing
2. Added warning log: '[websearch] Tavily API key not found, skipping websearch MCP'
3. createBuiltinMcps now skips undefined configs instead of adding them
4. Added tests for both missing and present Tavily API key scenarios
Fixes #2996
2026-04-02 13:32:44 +09:00
YeonGyu-Kim
23dcd99c9a
docs(agents): refresh generated AGENTS guides
...
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-03-06 17:59:05 +09:00
YeonGyu-Kim
33d39597ae
docs(agents): regenerate AGENTS.md hierarchy with updated metrics and model configs
...
- 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 )
2026-03-02 23:40:38 +09:00
YeonGyu-Kim
73453a7191
docs(agents): update hook counts 44→46, add hashline-edit documentation
...
- 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 )
2026-02-25 00:02:05 +09:00
YeonGyu-Kim
b1eccf7425
docs: update all 31 AGENTS.md files with current project state
2026-02-21 04:38:18 +09:00
YeonGyu-Kim
bd2e23584b
docs: update AGENTS.md metadata
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +09:00
YeonGyu-Kim
aac79f03b5
docs: regenerate all AGENTS.md files from comprehensive codebase exploration
...
- Fired 33 parallel explore agents across all major directories
- Analyzed 1164 TS files, 133k LOC, 41 hooks, 26 tools, 11 agents, 18 features
- Regenerated 13 AGENTS.md files with 905 total lines
- Root: plugin architecture, initialization flow, 7 OpenCode hook handlers
- src/: entry point orchestration, hook composition pipeline
- agents/: 11 agent inventory with tool restrictions and factory patterns
- hooks/: 41 hooks organized by 5 tiers, key complex hooks documented
- tools/: 26 tools across 14 directories, delegation categories
- features/: 18 modules mapped by complexity (HIGH/MEDIUM/LOW)
- shared/: 101 utilities in 13 categories, model resolution pipeline
- config/: 22 schema files, Zod v4 validation system
- cli/: 5 commands, doctor checks, model fallback system
- mcp/: 3-tier MCP system architecture
- plugin-handlers/: 6-phase config loading pipeline
- claude-code-hooks/: CC settings.json compatibility layer
- claude-tasks/: task schema + file-based persistence
🤖 Generated with assistance of oh-my-opencode
2026-02-17 11:17:01 +09:00
YeonGyu-Kim
9dbb9552b8
refactor: remove unused imports from auto-update-checker, claude-code-hooks, mcp
2026-02-16 22:11:38 +09:00
YeonGyu-Kim
17c56d8814
fix(mcp): restore x-api-key header for EXA websearch alongside query param
...
The header-based auth was removed during refactoring; some MCP server
implementations require it. Now sends both query param and header.
2026-02-11 00:45:51 +09:00
YeonGyu-Kim
83f1304e01
docs(agents): regenerate all AGENTS.md with deep codebase analysis
2026-02-10 14:53:39 +09:00
YeonGyu-Kim
20d009964d
docs: refresh all 13 hierarchical AGENTS.md files with current codebase state
2026-02-09 14:29:53 +09:00
YeonGyu-Kim
1f8f7b592b
docs(AGENTS): update line counts and stats across all AGENTS.md files
...
- Update main AGENTS.md with current file sizes
- Update complexity hotspot line counts
- Update agent count from 11 to 32 files
- Update CLI utility count to 70
- Update test file count from 100+ to 163
🤖 Generated with assistance of OhMyOpenCode
2026-02-08 17:51:30 +09:00
YeonGyu-Kim
a3dd1dbaf9
test(mcp): restore Tavily tests and add encoding edge case ( #1627 )
2026-02-08 15:28:31 +09:00
YeonGyu-Kim
06611a7645
fix(mcp): remove duplicate x-api-key header, add test ( #1627 )
2026-02-08 14:56:43 +09:00
YeonGyu-Kim
44415e3f59
fix(mcp): remove duplicate x-api-key header from Exa config ( #1627 )
2026-02-08 14:19:50 +09:00
YeonGyu-Kim
a85da59358
fix: encode EXA_API_KEY before appending to URL query parameter
2026-02-08 13:28:08 +09:00
YeonGyu-Kim
09999587f5
fix(mcp): append EXA_API_KEY to Exa MCP URL when env var is set ( #1627 )
2026-02-08 12:38:42 +09:00
YeonGyu-Kim
4692809b42
Regenerate AGENTS.md hierarchy with latest codebase state
2026-02-06 19:07:12 +09:00
YanzheL
9a2a6a695a
fix(test): use try/finally for guaranteed env restoration
2026-02-03 23:37:12 +08:00
YanzheL
5a2ab0095d
fix(mcp): lazy evaluation prevents crash when websearch disabled
...
createWebsearchConfig was called eagerly before checking disabledMcps,
causing Tavily missing-key error even when websearch was disabled.
Now each MCP is only created if not in disabledMcps list.
2026-02-03 23:37:12 +08:00
YanzheL
17cb49543a
fix(mcp): rewrite tests to call createWebsearchConfig directly
...
Previously tests were tautological - they defined local logic
instead of invoking the actual implementation. Now all tests
properly exercise createWebsearchConfig.
2026-02-03 23:37:12 +08:00
YanzheL
fea7bd2dcf
docs(mcp): document websearch provider configuration
2026-02-03 23:37:12 +08:00
YanzheL
ef3d0afa32
test(mcp): add websearch provider tests
2026-02-03 23:37:12 +08:00
YanzheL
00f576868b
feat(mcp): add multi-provider websearch support
2026-02-03 23:37:12 +08:00
YeonGyu-Kim
64825158a7
feat(agents): add Hephaestus - autonomous deep worker agent ( #1287 )
...
* refactor(keyword-detector): split constants into domain-specific modules
* feat(shared): add requiresAnyModel and isAnyFallbackModelAvailable
* feat(config): add hephaestus to agent schemas
* feat(agents): add Hephaestus autonomous deep worker
* feat(cli): update model-fallback for hephaestus support
* feat(plugin): add hephaestus to config handler with ordering
* test(delegate-task): update tests for hephaestus agent
* docs: update AGENTS.md files for hephaestus
* docs: add hephaestus to READMEs
* chore: regenerate config schema
* fix(delegate-task): bypass requiresModel check when user provides explicit config
* docs(hephaestus): add 4-part context structure for explore/librarian prompts
* docs: fix review comments from cubic (non-breaking changes)
- Move Hephaestus from Primary Agents to Subagents (uses own fallback chain)
- Fix Hephaestus fallback chain documentation (claude-opus-4-5 → gemini-3-pro)
- Add settings.local.json to claude-code-hooks config sources
- Fix delegate_task parameters in ultrawork prompt (agent→subagent_type, background→run_in_background, add load_skills)
- Update line counts in AGENTS.md (index.ts: 788, manager.ts: 1440)
* docs: fix additional documentation inconsistencies from oracle review
- Fix delegate_task parameters in Background Agents example (docs/features.md)
- Fix Hephaestus fallback chain in root AGENTS.md to match model-requirements.ts
* docs: clarify Hephaestus has no fallback (requires gpt-5.2-codex only)
Hephaestus uses requiresModel constraint - it only activates when gpt-5.2-codex
is available. The fallback chain in code is unreachable, so documentation
should not mention fallbacks.
* fix(hephaestus): remove unreachable fallback chain entries
Hephaestus has requiresModel: gpt-5.2-codex which means the agent only
activates when that specific model is available. The fallback entries
(claude-opus-4-5, gemini-3-pro) were unreachable and misleading.
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
2026-02-01 19:26:57 +09:00
YeonGyu-Kim
f146aeff0f
refactor: major codebase cleanup - BDD comments, file splitting, bug fixes ( #1350 )
...
* style(tests): normalize BDD comments from '// #given' to '// given'
- Replace 4,668 Python-style BDD comments across 107 test files
- Patterns changed: // #given -> // given, // #when -> // when, // #then -> // then
- Also handles no-space variants: //#given -> // given
* fix(rules-injector): prefer output.metadata.filePath over output.title
- Extract file path resolution to dedicated output-path.ts module
- Prefer metadata.filePath which contains actual file path
- Fall back to output.title only when metadata unavailable
- Fixes issue where rules weren't injected when tool output title was a label
* feat(slashcommand): add optional user_message parameter
- Add user_message optional parameter for command arguments
- Model can now call: command='publish' user_message='patch'
- Improves error messages with clearer format guidance
- Helps LLMs understand correct parameter usage
* feat(hooks): restore compaction-context-injector hook
- Restore hook deleted in cbbc7bd0 for session compaction context
- Injects 7 mandatory sections: User Requests, Final Goal, Work Completed,
Remaining Tasks, Active Working Context, MUST NOT Do, Agent Verification State
- Re-register in hooks/index.ts and main plugin entry
* refactor(background-agent): split manager.ts into focused modules
- Extract constants.ts for TTL values and internal types (52 lines)
- Extract state.ts for TaskStateManager class (204 lines)
- Extract spawner.ts for task creation logic (244 lines)
- Extract result-handler.ts for completion handling (265 lines)
- Reduce manager.ts from 1377 to 755 lines (45% reduction)
- Maintain backward compatible exports
* refactor(agents): split prometheus-prompt.ts into subdirectory
- Move 1196-line prometheus-prompt.ts to prometheus/ subdirectory
- Organize prompt sections into separate files for maintainability
- Update agents/index.ts exports
* refactor(delegate-task): split tools.ts into focused modules
- Extract categories.ts for category definitions and routing
- Extract executor.ts for task execution logic
- Extract helpers.ts for utility functions
- Extract prompt-builder.ts for prompt construction
- Reduce tools.ts complexity with cleaner separation of concerns
* refactor(builtin-skills): split skills.ts into individual skill files
- Move each skill to dedicated file in skills/ subdirectory
- Create barrel export for backward compatibility
- Improve maintainability with focused skill modules
* chore: update import paths and lockfile
- Update prometheus import path after refactor
- Update bun.lock
* fix(tests): complete BDD comment normalization
- Fix remaining #when/#then patterns missed by initial sed
- Affected: state.test.ts, events.test.ts
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
2026-02-01 16:47:50 +09:00
0ln
af67bc8592
fix(mcp): add optional Context7 Authorization header ( #1133 )
...
Context7 should mirror `websearch` by only sending auth when
`CONTEXT7_API_KEY` is set.
Change: set bearer auth in `headers` using `CONTEXT7_API_KEY` if said environment variable is set, otherwise leave `headers` to `undefined`.
2026-01-27 11:58:55 +09:00
justsisyphus
90054b28ad
chore(docs): regenerate AGENTS.md knowledge base ( #1118 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-01-26 11:48:30 +09:00
justsisyphus
7de376e24f
docs: regenerate all AGENTS.md files with updated structure
2026-01-23 02:14:08 +09:00
justsisyphus
732ec85e07
mcp
2026-01-19 20:18:26 +09:00
qwertystars
0ed1d183d4
fix(mcp): disable OAuth auto-detection for built-in MCPs
...
OpenCode's OAuth auto-detection was causing context7 and grep_app MCPs
to be disabled despite having enabled: true. Only websearch was working.
Root cause: Remote MCP servers trigger OAuth detection by default in
OpenCode, which can mark MCPs as 'needs_auth' or 'disabled' status
even when they don't require OAuth.
Fix: Add oauth: false to all 3 built-in MCP configs to explicitly
disable OAuth auto-detection. These MCPs either:
- Use no auth (context7, grep_app)
- Use API key header auth (websearch with EXA_API_KEY)
2026-01-17 16:36:23 +05:30
Ruirui Wan
7981c86613
fix: add EXA_API_KEY header support for websearch_exa MCP ( #499 )
...
The remote MCP endpoint https://mcp.exa.ai/mcp requires API key authentication
via x-api-key header. Without this, the connection times out waiting for auth.
This change:
- Reads EXA_API_KEY from environment variable
- Passes it as x-api-key header when available
- Updates RemoteMcpConfig type to support optional headers
Co-authored-by: Junho Yeo <i@junho.io >
2026-01-07 06:12:22 +09:00
YeonGyu-Kim
a2bfb5e556
feat(mcp): restore Exa websearch support ( #549 )
...
* feat(mcp): restore Exa MCP websearch support
- Add websearch.ts with Exa remote MCP configuration
- Update McpNameSchema to include websearch
- Wire websearch MCP into plugin initialization
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
* test(mcp): update tests and docs for websearch MCP
- Update index.test.ts to verify 3 MCPs (websearch, context7, grep_app)
- Add Exa/websearch documentation to README.md MCPs section
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-01-07 01:24:50 +09:00
Sisyphus
7a10b24bbd
feat: allow disabled_mcps to accept any MCP name ( #513 )
2026-01-05 21:12:05 +09:00
YeonGyu-Kim
a5c71473a5
refactor(mcp): remove websearch_exa as built-in MCP server
...
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-01-05 20:09:09 +09:00
YeonGyu-Kim
098d023dba
feat(mcp): add grep_app builtin MCP for ultra-fast GitHub code search
...
- Add grep_app MCP configuration (https://mcp.grep.app )
- Update explore agent with grep_app usage guide:
- Always launch 5+ grep_app calls with query variations
- Always add 2+ other search tools for verification
- grep_app is fast but potentially outdated, use as starting point only
- Update README.md and README.ko.md with grep_app documentation
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2025-12-13 19:14:01 +09:00
YeonGyu-Kim
c7d29fea48
refactor(mcp): remove unused builtinMcps export
...
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2025-12-09 10:36:34 +09:00
YeonGyu-Kim
eba89a6626
hotfix: move McpNameSchema to src/mcp/types.ts for proper module organization
2025-12-05 03:58:21 +09:00
YeonGyu-Kim
0a82787614
hotfix: use McpName from config schema instead of duplicate type definition
2025-12-05 03:56:14 +09:00
YeonGyu-Kim
6220fcddcf
feat(mcp): add context7 MCP and disabled_mcps config support
...
- Add context7 MCP for library documentation lookup
- Add oh-my-opencode.json config file support for per-project settings
- Support disabled_mcps array to selectively disable built-in MCPs
- Update documentation with Configuration section
2025-12-05 02:23:34 +09:00