fix(metis): switch primary model to claude-sonnet-4-6 + correct AGENTS.md inaccuracies
Source code change: - src/shared/model-requirements.ts: prepend claude-sonnet-4-6 to metis fallback chain so Sonnet becomes the default. Opus 4.7 max remains as the immediate fallback for callers who want extra reasoning. - src/shared/model-requirements.test.ts: update assertion to expect Sonnet primary + Opus secondary. AGENTS.md accuracy fixes (verified against source): - Agent modes: Sisyphus/Hephaestus are 'primary' (not 'all'); Sisyphus-Junior is 'subagent' (not 'all'). Confirmed via 'const MODE: AgentMode = ...' in each agent file. Also clarified Prometheus has no agentSources factory and is built via buildPrometheusAgentConfig. - Sisyphus fallback chain: corrected order to kimi-k2.6 → k2p5 → kimi-k2.5 → gpt-5.5 medium → glm-5 → big-pickle (was missing kimi-k2.5). - Librarian/Explore: added missing minimax-m2.7 step between -highspeed and claude-haiku-4-5. - Metis chain: removed fictitious gemini-3.1-pro entry. - Sisyphus-Junior chain: spelled out the actual fallback (was 'user-configurable'). - Temperatures: Sisyphus/Hephaestus do not set explicit temperature (model default); Sisyphus-Junior is 0.1 via SISYPHUS_JUNIOR_DEFAULTS. - Quick category default: gpt-5.4-mini (not gpt-5.4-mini-fast). Team-mode corrections: - Eligibility registry has 3 verdicts: eligible (sisyphus, atlas, sisyphus-junior), conditional (hephaestus — needs D-36 teammate permission), hard-reject (oracle, librarian, explore, multimodal-looker, metis, momus, prometheus). - Schema has 11 fields, not 4: added max_messages_per_run, max_wall_clock_minutes, max_member_turns, base_dir, message_payload_max_bytes, recipient_unread_max_bytes, mailbox_poll_interval_ms. - Hooks: 'team-session-events' is 4 sub-handlers in src/plugin/event.ts (team-idle-wake-hint, team-lead-orphan-handler, team-member-error-handler, team-member-status-handler), not a single Continuation-tier hook. - Tier counts now show base + team-mode: ToolGuard 14/15, Transform 5/7. - Total: 52 base hooks, 59 with team-mode. Doc cascade for the Metis change: - docs/guide/orchestration.md, agent-model-matching.md, installation.md - docs/reference/configuration.md, features.md
This commit is contained in:
+17
-9
@@ -11,11 +11,11 @@
|
||||
```
|
||||
config/schema/
|
||||
├── oh-my-opencode-config.ts # ROOT: composes all sub-schemas
|
||||
├── agent-names.ts # BuiltinAgentNameSchema (10) + sisyphus-junior
|
||||
├── agent-names.ts # BuiltinAgentNameSchema enum (11 names: sisyphus, hephaestus, prometheus, oracle, librarian, explore, multimodal-looker, metis, momus, atlas, sisyphus-junior)
|
||||
├── agent-overrides.ts # AgentOverrideConfigSchema (21 fields per agent)
|
||||
├── agent-definitions.ts # custom agent definition schema
|
||||
├── categories.ts # 8 built-in + custom categories
|
||||
├── hooks.ts # HookNameSchema (50+ hooks)
|
||||
├── hooks.ts # HookNameSchema (53 enum values; `team-tool-gating` is the only team-* one in schema — others are wired by direct config gates)
|
||||
├── skills.ts # SkillsConfigSchema (sources, paths, recursive)
|
||||
├── commands.ts # BuiltinCommandNameSchema
|
||||
├── experimental.ts # Feature flags incl plugin_load_timeout_ms (min 1000), task_system, max_tools
|
||||
@@ -46,22 +46,30 @@ config/schema/
|
||||
|
||||
`$schema`, `new_task_system_enabled`, `default_run_agent`, `disabled_mcps`, `disabled_agents`, `disabled_skills`, `disabled_hooks`, `disabled_commands`, `disabled_tools`, `hashline_edit`, `agents`, `categories`, `claude_code`, `sisyphus_agent`, `comment_checker`, `experimental`, `auto_update`, `skills`, `ralph_loop`, `background_task`, `notification`, `babysitting`, `git_master`, `browser_automation_engine`, `websearch`, `tmux`, `sisyphus`, `start_work`, `_migrations`, `model_fallback`, `model_capabilities`, `openclaw`, `mcp_env_allowlist`, `keyword_detector`, **`team_mode`**, `runtime_fallback`, `dynamic_context_pruning`.
|
||||
|
||||
## TEAM_MODE SCHEMA
|
||||
## TEAM_MODE SCHEMA (11 fields)
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"team_mode": {
|
||||
"enabled": false, // gate for 12 team_* tools and conditional hooks
|
||||
"max_parallel_members": 4, // concurrent active members
|
||||
"max_members": 8, // hard cap on team size
|
||||
"tmux_visualization": false // render tmux pane layout for the team
|
||||
"enabled": false, // gate for 12 team_* tools and conditional hooks
|
||||
"tmux_visualization": false, // render tmux pane layout for the team
|
||||
"max_parallel_members": 4, // 1..8 concurrent active members
|
||||
"max_members": 8, // 1..8 hard cap on team size
|
||||
"max_messages_per_run": 10000, // ≥1
|
||||
"max_wall_clock_minutes": 120, // ≥1
|
||||
"max_member_turns": 500, // ≥1
|
||||
"base_dir": null, // override of ~/.omo/teams or <project>/.omo/teams
|
||||
"message_payload_max_bytes": 32768, // ≥1024
|
||||
"recipient_unread_max_bytes": 262144, // ≥1024
|
||||
"mailbox_poll_interval_ms": 3000 // ≥500
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
When `enabled: true`:
|
||||
- 12 `team_*` tools register
|
||||
- 4 team-mode hooks activate (status injector, mailbox injector, session events, tool gating)
|
||||
- 12 `team_*` tools register (`tool-registry.ts` `teamModeToolsRecord`)
|
||||
- 3 team-mode hooks register conditionally: `team-mode-status-injector` + `team-mailbox-injector` (Transform tier) and `team-tool-gating` (Tool Guard tier)
|
||||
- 4 team-session-event handlers register in `src/plugin/event.ts`: `team-idle-wake-hint`, `team-lead-orphan-handler`, `team-member-error-handler`, `team-member-status-handler`
|
||||
- `team-mode` built-in skill loads
|
||||
- Doctor check `cli/doctor/checks/team-mode.ts` runs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user