oh-my-opencode 5.0.0-beta.42 → 5.0.0-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.ja.md +2 -2
  2. package/README.ko.md +4 -4
  3. package/README.md +4 -4
  4. package/README.ru.md +2 -2
  5. package/README.zh-cn.md +2 -2
  6. package/dist/agents/gpt-prompt-identity.d.ts +1 -1
  7. package/dist/agents/types.d.ts +2 -0
  8. package/dist/cli/index.js +168 -78
  9. package/dist/cli-node/index.js +168 -78
  10. package/dist/index.js +234 -125
  11. package/dist/tools/delegate-task/builtin-categories.d.ts +2 -1
  12. package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -1
  13. package/dist/tools/delegate-task/constants.d.ts +2 -2
  14. package/dist/tools/delegate-task/openai-categories.d.ts +7 -2
  15. package/dist/tui.js +149 -59
  16. package/package.json +18 -18
  17. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  18. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  19. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  23. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  27. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  28. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  30. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  36. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  40. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  62. package/packages/omo-codex/plugin/package-lock.json +12 -12
  63. package/packages/omo-codex/plugin/package.json +1 -1
  64. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  65. package/dist/tools/delegate-task/anthropic-categories.d.ts +0 -2
@@ -4,4 +4,5 @@ export declare const CATEGORY_PROMPT_APPENDS: Record<string, string>;
4
4
  export declare const CATEGORY_DESCRIPTIONS: Record<string, string>;
5
5
  export declare const CATEGORY_CALLER_GUIDANCE: Record<string, string | undefined>;
6
6
  export declare const CATEGORY_PROMPT_APPEND_RESOLVERS: Record<string, (model: string | undefined) => string>;
7
- export declare const BUILTIN_CATEGORY_REQUIRES_MODEL: Record<string, string>;
7
+ export declare const BUILTIN_CATEGORY_REQUIRES_MODEL: Record<string, readonly string[]>;
8
+ export declare function builtinCategoryGateModels(categoryName: string, requirementGateModel: string | undefined): readonly string[];
@@ -6,5 +6,5 @@ export type BuiltinCategoryDefinition = {
6
6
  callerGuidance?: string;
7
7
  promptAppend: string;
8
8
  resolvePromptAppend?: (model: string | undefined) => string;
9
- requiresModel?: string;
9
+ requiresModel?: string | readonly string[];
10
10
  };
@@ -1,5 +1,5 @@
1
1
  import type { AvailableCategory, AvailableSkill } from "../../agents/dynamic-agent-prompt-builder";
2
- export { BUILTIN_CATEGORY_REQUIRES_MODEL, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPENDS, CATEGORY_PROMPT_APPEND_RESOLVERS, DEFAULT_CATEGORIES, } from "./builtin-categories";
2
+ export { BUILTIN_CATEGORY_REQUIRES_MODEL, builtinCategoryGateModels, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPENDS, CATEGORY_PROMPT_APPEND_RESOLVERS, DEFAULT_CATEGORIES, } from "./builtin-categories";
3
3
  /**
4
4
  * System prompt prepended to plan agent invocations.
5
5
  * Instructs the plan agent to first gather context via explore/librarian agents,
@@ -7,7 +7,7 @@ export { BUILTIN_CATEGORY_REQUIRES_MODEL, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT
7
7
  * Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
8
8
  */
9
9
  export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = "<system>\nBEFORE you begin planning, you MUST first understand the user's request deeply.\n\nMANDATORY CONTEXT GATHERING PROTOCOL:\n1. Launch background agents to gather context:\n - call_omo_agent(description=\"Explore codebase patterns\", subagent_type=\"explore\", run_in_background=true, prompt=\"<search for relevant patterns, files, and implementations in the codebase related to user's request>\")\n - call_omo_agent(description=\"Research documentation\", subagent_type=\"librarian\", run_in_background=true, prompt=\"<search for external documentation, examples, and best practices related to user's request>\")\n\n2. After gathering context, ALWAYS present:\n - **User Request Summary**: Concise restatement of what the user is asking for\n - **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making\n - **Clarifying Questions**: Specific questions to resolve the uncertainties\n\n3. ITERATE until ALL requirements are crystal clear:\n - Do NOT proceed to planning until you have 100% clarity\n - Ask the user to confirm your understanding\n - Resolve every ambiguity before generating the work plan\n\nREMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.\n</system>\n\n<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n#####################################################################\n# #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\uFFFD\uFFFD \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D #\n# \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2580\u2580\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D #\n# #\n#####################################################################\n\nYOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.\nTHIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.\n\nFor EVERY task in your plan, you MUST specify:\n- Which tasks it DEPENDS ON (blockers)\n- Which tasks DEPEND ON IT (dependents)\n- The REASON for each dependency\n\nExample format:\n```\n## Task Dependency Graph\n\n| Task | Depends On | Reason |\n|------|------------|--------|\n| Task 1 | None | Starting point, no prerequisites |\n| Task 2 | Task 1 | Requires output/artifact from Task 1 |\n| Task 3 | Task 1 | Uses same foundation established in Task 1 |\n| Task 4 | Task 2, Task 3 | Integrates results from both tasks |\n```\n\nWHY THIS MATTERS:\n- Executors need to know execution ORDER\n- Prevents blocked work from starting prematurely\n- Identifies critical path for project timeline\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.\n\nAnalyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:\n\nExample format:\n```\n## Parallel Execution Graph\n\nWave 1 (Start immediately):\n\u251C\u2500\u2500 Task 1: [description] (no dependencies)\n\u2514\u2500\u2500 Task 5: [description] (no dependencies)\n\nWave 2 (After Wave 1 completes):\n\u251C\u2500\u2500 Task 2: [description] (depends: Task 1)\n\u251C\u2500\u2500 Task 3: [description] (depends: Task 1)\n\u2514\u2500\u2500 Task 6: [description] (depends: Task 5)\n\nWave 3 (After Wave 2 completes):\n\u2514\u2500\u2500 Task 4: [description] (depends: Task 2, Task 3)\n\nCritical Path: Task 1 \u2192 Task 2 \u2192 Task 4\nEstimated Parallel Speedup: 40% faster than sequential\n```\n\nWHY THIS MATTERS:\n- MASSIVE time savings through parallelization\n- Executors can dispatch multiple agents simultaneously\n- Identifies bottlenecks in the execution plan\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nFOR EVERY TASK, YOU MUST RECOMMEND:\n1. Which CATEGORY to use for delegation\n2. Which SKILLS to load for the delegated agent\n";
10
- export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = "### REQUIRED OUTPUT FORMAT\n\nFor EACH task, include a recommendation block:\n\n```\n### Task N: [Task Title]\n\n**Delegation Recommendation:**\n- Category: `[category-name]` - [reason for choice]\n- Skills: [`skill-1`, `skill-2`] - [reason each skill is needed]\n\n**Skills Evaluation:**\n- INCLUDED `skill-name`: [reason]\n- OMITTED `other-skill`: [reason domain doesn't overlap]\n```\n\nWHY THIS MATTERS:\n- Category determines the MODEL used for execution\n- Skills inject SPECIALIZED KNOWLEDGE into the executor\n- Missing a relevant skill = suboptimal execution\n- Wrong category = wrong model = poor results\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 RESPONSE FORMAT SPECIFICATION (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:\n\n```markdown\n# [Plan Title]\n\n## Context\n[User request summary, interview findings, research results]\n\n## Task Dependency Graph\n[Dependency table - see Section 1]\n\n## Parallel Execution Graph \n[Wave structure - see Section 2]\n\n## Tasks\n\n### Task 1: [Title]\n**Description**: [What to do]\n**Delegation Recommendation**:\n- Category: `[category]` - [reason]\n- Skills: [`skill-1`] - [reason]\n**Skills Evaluation**: [\u2705 included / \u274C omitted with reasons]\n**Depends On**: [Task IDs or \"None\"]\n**Acceptance Criteria**: [Verifiable conditions]\n\n### Task 2: [Title]\n[Same structure...]\n\n## Commit Strategy\n[How to commit changes atomically]\n\n## Success Criteria\n[Final verification steps]\n```\n\n#####################################################################\n# #\n# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #\n# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #\n# #\n#####################################################################\n</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n\n<FINAL_OUTPUT_FOR_CALLER>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 4: ACTIONABLE TODO LIST FOR CALLER (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST END YOUR RESPONSE WITH THIS SECTION.\n\n```markdown\n## TODO List (ADD THESE)\n\n> CALLER: Add these TODOs using TodoWrite/TaskCreate and execute by wave.\n\n### Wave 1 (Start Immediately - No Dependencies)\n\n- [ ] **1. [Task Title]**\n - What: [Clear implementation steps]\n - Depends: None\n - Blocks: [Tasks that depend on this]\n - Category: `category-name`\n - Skills: [`skill-1`, `skill-2`]\n - QA: [How to verify completion - specific command or check]\n\n- [ ] **N. [Task Title]**\n - What: [Steps]\n - Depends: None\n - Blocks: [...]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n### Wave 2 (After Wave 1 Completes)\n\n- [ ] **2. [Task Title]**\n - What: [Steps]\n - Depends: 1\n - Blocks: [4]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n[Continue for all waves...]\n\n## Execution Instructions\n\n1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)\n ```\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task 1: ...\")\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task N: ...\")\n ```\n\n2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL\n ```\n task(category=\"...\", load_skills=[...], run_in_background=false, prompt=\"Task 2: ...\")\n ```\n\n3. Continue until all waves complete\n\n4. Final QA: Verify all tasks pass their QA criteria\n```\n\nWHY THIS FORMAT IS MANDATORY:\n- Caller can directly copy TODO items\n- Wave grouping enables parallel execution\n- Each task has clear task parameters\n- QA criteria ensure verifiable completion\n</FINAL_OUTPUT_FOR_CALLER>\n\n<DELIVERABLE_ENVELOPE>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 MANDATORY: WRAP YOUR ENTIRE PLAN IN A <plan> ENVELOPE \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYour FINAL message MUST wrap the ENTIRE plan \u2014 from the title line\nthrough the closing TODO list \u2014 inside a single pair of tags:\n\n<plan>\n# [Plan Title]\n... full plan: all mandatory sections AND the TODO list ...\n</plan>\n\nRULES:\n- Emit EXACTLY ONE <plan> ... </plan> block, and only in your FINAL message.\n- Open with <plan> on its own line BEFORE the title; close with </plan>\n on its own line AFTER the TODO list. Everything the caller needs goes inside.\n- Do NOT emit <plan> while still gathering context. Progress messages,\n clarifying questions, and \"exploring...\" turns MUST NOT contain it \u2014 the\n envelope is how the caller tells your real deliverable apart from those turns.\n- The caller extracts the contents of this envelope verbatim. Anything emitted\n outside the envelope may be discarded.\n</DELIVERABLE_ENVELOPE>\n\n";
10
+ export declare const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = "### REQUIRED OUTPUT FORMAT\n\nFor EACH task, include a recommendation block:\n\n```\n### Task N: [Task Title]\n\n**Delegation Recommendation:**\n- Category: `[category-name]` - [reason for choice]\n- Skills: [`skill-1`, `skill-2`] - [reason each skill is needed]\n\n**Skills Evaluation:**\n- INCLUDED `skill-name`: [reason]\n- OMITTED `other-skill`: [reason domain doesn't overlap]\n```\n\nWHY THIS MATTERS:\n- Category determines the MODEL used for execution\n- Skills inject SPECIALIZED KNOWLEDGE into the executor\n- Missing a relevant skill = suboptimal execution\n- Wrong category = wrong model = poor results\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 RESPONSE FORMAT SPECIFICATION (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:\n\n```markdown\n# [Plan Title]\n\n## Context\n[User request summary, interview findings, research results]\n\n## Task Dependency Graph\n[Dependency table - see Section 1]\n\n## Parallel Execution Graph \n[Wave structure - see Section 2]\n\n## Tasks\n\n### Task 1: [Title]\n**Description**: [What to do]\n**Delegation Recommendation**:\n- Category: `[category]` - [reason]\n- Skills: [`skill-1`] - [reason]\n**Skills Evaluation**: [\u2705 included / \u274C omitted with reasons]\n**Depends On**: [Task IDs or \"None\"]\n**Acceptance Criteria**: [Verifiable conditions]\n\n### Task 2: [Title]\n[Same structure...]\n\n## Commit Strategy\n[How to commit changes atomically]\n\n## Success Criteria\n[Final verification steps]\n```\n\n#####################################################################\n# #\n# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #\n# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #\n# #\n#####################################################################\n</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n\n<FINAL_OUTPUT_FOR_CALLER>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 4: ACTIONABLE TODO LIST FOR CALLER (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST END YOUR RESPONSE WITH THIS SECTION.\n\n```markdown\n## TODO List (ADD THESE)\n\n> CALLER: Add these TODOs using TodoWrite/TaskCreate and execute by wave.\n\n### Wave 1 (Start Immediately - No Dependencies)\n\n- [ ] **1. [Task Title]**\n - What: [Clear implementation steps]\n - Depends: None\n - Blocks: [Tasks that depend on this]\n - Category: `category-name`\n - Skills: [`skill-1`, `skill-2`]\n - QA: [How to verify completion - specific command or check]\n\n- [ ] **N. [Task Title]**\n - What: [Steps]\n - Depends: None\n - Blocks: [...]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n### Wave 2 (After Wave 1 Completes)\n\n- [ ] **2. [Task Title]**\n - What: [Steps]\n - Depends: 1\n - Blocks: [4]\n - Category: `category-name`\n - Skills: [`skill-1`]\n - QA: [Verification]\n\n[Continue for all waves...]\n\n## Execution Instructions\n\n1. **Wave 1**: Fire these tasks IN PARALLEL (no dependencies)\n ```\n task(category=\"...\", load_skills=[...], run_in_background=true, prompt=\"Task 1: ...\")\n task(category=\"...\", load_skills=[...], run_in_background=true, prompt=\"Task N: ...\")\n ```\n\n2. **Wave 2**: After Wave 1 completes, fire next wave IN PARALLEL\n ```\n task(category=\"...\", load_skills=[...], run_in_background=true, prompt=\"Task 2: ...\")\n ```\n\n3. Continue until all waves complete\n\n4. Final QA: Verify all tasks pass their QA criteria\n```\n\nWHY THIS FORMAT IS MANDATORY:\n- Caller can directly copy TODO items\n- Wave grouping enables parallel execution\n- Each task has clear task parameters\n- QA criteria ensure verifiable completion\n</FINAL_OUTPUT_FOR_CALLER>\n\n<DELIVERABLE_ENVELOPE>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 MANDATORY: WRAP YOUR ENTIRE PLAN IN A <plan> ENVELOPE \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYour FINAL message MUST wrap the ENTIRE plan \u2014 from the title line\nthrough the closing TODO list \u2014 inside a single pair of tags:\n\n<plan>\n# [Plan Title]\n... full plan: all mandatory sections AND the TODO list ...\n</plan>\n\nRULES:\n- Emit EXACTLY ONE <plan> ... </plan> block, and only in your FINAL message.\n- Open with <plan> on its own line BEFORE the title; close with </plan>\n on its own line AFTER the TODO list. Everything the caller needs goes inside.\n- Do NOT emit <plan> while still gathering context. Progress messages,\n clarifying questions, and \"exploring...\" turns MUST NOT contain it \u2014 the\n envelope is how the caller tells your real deliverable apart from those turns.\n- The caller extracts the contents of this envelope verbatim. Anything emitted\n outside the envelope may be discarded.\n</DELIVERABLE_ENVELOPE>\n\n";
11
11
  export declare function buildPlanAgentSkillsSection(categories?: AvailableCategory[], skills?: AvailableSkill[]): string;
12
12
  export declare function buildPlanAgentSystemPrepend(categories?: AvailableCategory[], skills?: AvailableSkill[]): string;
13
13
  /**
@@ -1,5 +1,10 @@
1
1
  import type { BuiltinCategoryDefinition } from "./builtin-category-definition";
2
- export declare const DEEP_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on GOAL-ORIENTED AUTONOMOUS tasks.\n\nYou are NOT an interactive assistant. You are an autonomous problem-solver.\n\nBEFORE making ANY changes:\n1. Silently explore the codebase extensively (5-15 minutes of reading is normal)\n2. Read related files, trace dependencies, understand the full context\n3. Build a complete mental model of the problem space\n4. Do not ask clarifying questions - the goal is already defined\n\nYou receive a GOAL. When the goal includes numbered steps or phases, treat them as one atomic task broken into sub-steps, not as separate independent tasks. Figure out HOW to achieve it yourself. Thorough research before any action.\n\nSub-steps of ONE goal = execute all steps as phases of one atomic task.\nGenuinely independent tasks = flag and refuse, require separate delegations.\n\nApproach: explore extensively, understand deeply, then act decisively. Prefer comprehensive solutions over quick patches. If the goal is unclear, make reasonable assumptions and proceed.\n\nMinimal status updates. Focus on results, not play-by-play. Report completion with summary of changes.\n</Category_Context>";
3
- export declare const DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5 = "<Category_Context name=\"deep\">\nYou are operating in DEEP mode. This is the category reserved for goal-oriented autonomous work on hairy problems that reward thorough exploration and comprehensive solutions.\n\nThe orchestrator chose this category because the task benefits from depth over speed. You should feel empowered to spend the time needed: five to fifteen minutes of silent exploration before the first edit is normal and correct. Rushing to implementation on a deep task is a failure mode, not a feature.\n\n# How deep mode adjusts the base behavior\n\n**Exploration budget: generous.** Read the files you need, trace dependencies both directions, fire 2-5 explore/librarian sub-agents in parallel for broader questions. Build a complete mental model before the first `apply_patch`. Exploration here is an investment, not overhead.\n\n**Goal, not plan.** You receive a GOAL describing the desired outcome. You figure out HOW to achieve it. The orchestrator deliberately did not hand you a step-by-step plan; producing one and asking for approval is not what was asked. Execute.\n\n**Atomic task treatment.** When the goal contains numbered steps or phases, treat them as sub-steps of ONE task and execute them all in this turn. Splitting them across turns is wrong unless they reveal an architectural blocker that requires the user's input. If the \"steps\" turn out to be genuinely independent tasks that should have been separate delegations, flag that in your final message and refuse the ones beyond scope.\n\n**Root cause bias.** Prefer root-cause fixes over symptom fixes. A null check around `foo()` is a symptom fix; fixing whatever causes `foo()` to return unexpected values is the root fix. Trace at least two levels up before settling on an answer. In deep mode, you have permission (and the expectation) to do the deeper fix.\n\n**Ambition scaled to context.** For brand-new greenfield work, be ambitious. Choose strong defaults, avoid AI-slop aesthetics, produce something you would be proud to hand to another senior engineer. For changes in an existing codebase, be surgical and respect the existing patterns; depth does not mean invasiveness.\n\n**Completion bar: full delivery.** \"Simplified version\", \"proof of concept\", and \"you can extend this later\" are not acceptable deliveries for a deep task. The orchestrator routed here specifically for a complete solution. If you hit a genuine blocker (missing secret, design decision only the user can make, three materially different attempts all failed), document it and return; otherwise, finish the task.\n\n**Status cadence: sparse.** The user is not on the other side of this conversation; the orchestrator is, and they will synthesize your progress. Send commentary only at meaningful phase transitions (starting exploration, starting implementation, starting verification, hitting a genuine blocker). Do not narrate every tool call; silence during focused work is expected.\n</Category_Context>";
2
+ export declare const ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = "<Category_Context name=\"ultrabrain\">\nThe orchestrator routed this task here because it is the one genuinely hard, logic-heavy problem in its plan, and it sent a goal rather than steps: choose the approach yourself, and let correctness outrank speed, brevity, and token cost.\n\nSuccess means:\n- every load-bearing claim cites evidence from this turn: a file and line read, a command run, a test executed;\n- every executable claim was executed: a proposed fix runs, an algorithm passes the boundary cases you enumerated, a verdict on a diff names the failing line;\n- the conclusion survived your own attempt to break it, and the answer names the strongest counter-case you looked for;\n- rejected alternatives carry the reason that decided against them, and open assumptions are stated so the orchestrator can overturn them;\n- one decision-complete recommendation, actionable without a follow-up question.\n\nWhatever that check leaves unsettled goes in the answer as an open question with what would settle it. When the goal bundles independent problems, solve the one the others depend on and return the rest as separately delegable items.\n</Category_Context>";
3
+ export declare const DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = "<Category_Context name=\"deep\">\nThe orchestrator routed this task here for depth: one goal, one deliverable, and the time to earn it. The exploration budget is generous: read every file involved, trace callers and dependencies in both directions, and fan out explore and librarian subagents in parallel for the questions a single read wave cannot answer, until you can explain the full mechanism you are about to change; an edit made before that point is the failure this category exists to prevent.\n\n**MUST USE `deep` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**\n\nThe goal is the authorization. Choose how to reach it yourself, and when it lists numbered steps or phases, deliver all of them in this turn as one task; a proposal, a plan awaiting approval, a simplified version, or a proof of concept is unfinished work. When the steps turn out to be independent problems sharing no reasoning, do the one the goal centers on and return the others as separately delegable items with what you learned. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and stop early only for a blocker you cannot route around: a missing secret, a decision only the user can make, or three materially different attempts that all failed.\n\nFix the cause: trace at least two levels above the symptom before settling, and prefer the change that makes the failure impossible over the guard that hides it. Depth means understanding the mechanism, so the diff stays as small as the fix allows; on greenfield work choose strong defaults and finish something you would hand to a senior engineer. Close with the delivered change, the evidence that it works, and the assumptions you made.\n</Category_Context>";
4
+ export declare const UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = "<Category_Context name=\"unspecified-high\">\nThe orchestrator routed this task here because it spans systems or modules and fits no specialist category, so breadth of consideration is what this category buys. Before committing to an approach, survey the whole surface the change touches: every caller and consumer of what you will modify, sibling modules that implement the same pattern, the tests, docs, schemas, config, scripts, and CI that encode the current behavior, and the history of the area (git log and blame) for the reasons it is shaped this way. Fan out explore and librarian subagents in parallel when that surface is wider than one read wave covers.\n\nWeigh at least two ways to do it against what you found, choose one, and say in the final message why it won. Then deliver it across every surface you identified, so behavior stays consistent everywhere the change is observable and no caller, test, doc, schema, or config still describes the old state. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and finish.\n</Category_Context>";
5
+ export declare const DEEP_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on GOAL-ORIENTED AUTONOMOUS tasks.\n\nYou are NOT an interactive assistant. You are an autonomous problem-solver.\n\n**MUST USE `deep` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**\n\nBEFORE making ANY changes:\n1. Silently explore the codebase extensively (5-15 minutes of reading is normal)\n2. Read related files, trace dependencies, understand the full context\n3. Build a complete mental model of the problem space\n4. Do not ask clarifying questions - the goal is already defined\n\nYou receive a GOAL. When the goal includes numbered steps or phases, treat them as one atomic task broken into sub-steps, not as separate independent tasks. Figure out HOW to achieve it yourself. Thorough research before any action.\n\nSub-steps of ONE goal = execute all steps as phases of one atomic task.\nGenuinely independent tasks = flag and refuse, require separate delegations.\n\nApproach: explore extensively, understand deeply, then act decisively. Prefer comprehensive solutions over quick patches. If the goal is unclear, make reasonable assumptions and proceed.\n\nMinimal status updates. Focus on results, not play-by-play. Report completion with summary of changes.\n</Category_Context>";
6
+ export declare const DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5 = "<Category_Context name=\"deep\">\nYou are operating in DEEP mode. This is the category reserved for goal-oriented autonomous work on hairy problems that reward thorough exploration and comprehensive solutions.\n\n**MUST USE `deep` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**\n\nThe orchestrator chose this category because the task benefits from depth over speed. You should feel empowered to spend the time needed: five to fifteen minutes of silent exploration before the first edit is normal and correct. Rushing to implementation on a deep task is a failure mode, not a feature.\n\n# How deep mode adjusts the base behavior\n\n**Exploration budget: generous.** Read the files you need, trace dependencies both directions, fire 2-5 explore/librarian sub-agents in parallel for broader questions. Build a complete mental model before the first `apply_patch`. Exploration here is an investment, not overhead.\n\n**Goal, not plan.** You receive a GOAL describing the desired outcome. You figure out HOW to achieve it. The orchestrator deliberately did not hand you a step-by-step plan; producing one and asking for approval is not what was asked. Execute.\n\n**Atomic task treatment.** When the goal contains numbered steps or phases, treat them as sub-steps of ONE task and execute them all in this turn. Splitting them across turns is wrong unless they reveal an architectural blocker that requires the user's input. If the \"steps\" turn out to be genuinely independent tasks that should have been separate delegations, flag that in your final message and refuse the ones beyond scope.\n\n**Root cause bias.** Prefer root-cause fixes over symptom fixes. A null check around `foo()` is a symptom fix; fixing whatever causes `foo()` to return unexpected values is the root fix. Trace at least two levels up before settling on an answer. In deep mode, you have permission (and the expectation) to do the deeper fix.\n\n**Ambition scaled to context.** For brand-new greenfield work, be ambitious. Choose strong defaults, avoid AI-slop aesthetics, produce something you would be proud to hand to another senior engineer. For changes in an existing codebase, be surgical and respect the existing patterns; depth does not mean invasiveness.\n\n**Completion bar: full delivery.** \"Simplified version\", \"proof of concept\", and \"you can extend this later\" are not acceptable deliveries for a deep task. The orchestrator routed here specifically for a complete solution. If you hit a genuine blocker (missing secret, design decision only the user can make, three materially different attempts all failed), document it and return; otherwise, finish the task.\n\n**Status cadence: sparse.** The user is not on the other side of this conversation; the orchestrator is, and they will synthesize your progress. Send commentary only at meaningful phase transitions (starting exploration, starting implementation, starting verification, hitting a genuine blocker). Do not narrate every tool call; silence during focused work is expected.\n</Category_Context>";
7
+ export declare function resolveUltrabrainCategoryPromptAppend(model: string | undefined): string;
4
8
  export declare function resolveDeepCategoryPromptAppend(model: string | undefined): string;
9
+ export declare function resolveUnspecifiedHighCategoryPromptAppend(model: string | undefined): string;
5
10
  export declare const OPENAI_CATEGORIES: BuiltinCategoryDefinition[];
package/dist/tui.js CHANGED
@@ -3269,7 +3269,7 @@ var init_agent_model_requirements = __esm(() => {
3269
3269
  fallbackChain: [
3270
3270
  {
3271
3271
  providers: ["anthropic", "github-copilot", "opencode"],
3272
- model: "claude-fable-5",
3272
+ model: "claude-fable-5-1",
3273
3273
  variant: "xhigh"
3274
3274
  },
3275
3275
  {
@@ -3295,10 +3295,9 @@ var init_agent_model_requirements = __esm(() => {
3295
3295
  },
3296
3296
  momus: {
3297
3297
  fallbackChain: [
3298
- { providers: ["openai", "openai-codex"], model: "gpt-5.6-terra", variant: "high" },
3299
- { providers: ["github-copilot"], model: "gpt-5.6-terra", variant: "high" },
3300
- { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "xhigh" },
3301
- { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
3298
+ { providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "xhigh" },
3299
+ { providers: ["github-copilot"], model: "gpt-6-astra", variant: "high" },
3300
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "high" },
3302
3301
  {
3303
3302
  providers: ["anthropic", "github-copilot", "opencode"],
3304
3303
  model: "claude-opus-5",
@@ -3350,6 +3349,11 @@ var init_category_model_requirements = __esm(() => {
3350
3349
  CATEGORY_MODEL_REQUIREMENTS = {
3351
3350
  "visual-engineering": {
3352
3351
  fallbackChain: [
3352
+ {
3353
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3354
+ model: "claude-fable-5-1",
3355
+ variant: "max"
3356
+ },
3353
3357
  {
3354
3358
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3355
3359
  model: "claude-opus-5",
@@ -3359,17 +3363,14 @@ var init_category_model_requirements = __esm(() => {
3359
3363
  providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3360
3364
  model: "kimi-k3",
3361
3365
  variant: "max"
3362
- },
3363
- { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.2", variant: "max" },
3364
- {
3365
- providers: ["openai", "openai-codex", "github-copilot", "opencode"],
3366
- model: "gpt-5.6-sol",
3367
- variant: "medium"
3368
3366
  }
3369
3367
  ]
3370
3368
  },
3371
3369
  ultrabrain: {
3372
3370
  fallbackChain: [
3371
+ { providers: ["openai", "openai-codex"], model: "gpt-6-astra", variant: "max" },
3372
+ { providers: ["github-copilot"], model: "gpt-6-astra", variant: "max" },
3373
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-6-astra", variant: "max" },
3373
3374
  { providers: ["openai", "openai-codex"], model: "gpt-5.6-sol", variant: "max" },
3374
3375
  { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "max" },
3375
3376
  { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "max" }
@@ -3377,6 +3378,11 @@ var init_category_model_requirements = __esm(() => {
3377
3378
  },
3378
3379
  deep: {
3379
3380
  fallbackChain: [
3381
+ {
3382
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
3383
+ model: "gpt-6-astra",
3384
+ variant: "high"
3385
+ },
3380
3386
  {
3381
3387
  providers: ["openai", "openai-codex", "github-copilot", "opencode"],
3382
3388
  model: "gpt-5.6-sol",
@@ -3388,7 +3394,7 @@ var init_category_model_requirements = __esm(() => {
3388
3394
  fallbackChain: [
3389
3395
  {
3390
3396
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3391
- model: "claude-fable-5",
3397
+ model: "claude-fable-5-1",
3392
3398
  variant: "xhigh"
3393
3399
  },
3394
3400
  {
@@ -3447,6 +3453,11 @@ var init_category_model_requirements = __esm(() => {
3447
3453
  },
3448
3454
  "unspecified-high": {
3449
3455
  fallbackChain: [
3456
+ {
3457
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
3458
+ model: "gpt-6-astra",
3459
+ variant: "high"
3460
+ },
3450
3461
  {
3451
3462
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3452
3463
  model: "claude-opus-5",
@@ -3462,17 +3473,16 @@ var init_category_model_requirements = __esm(() => {
3462
3473
  },
3463
3474
  writing: {
3464
3475
  fallbackChain: [
3465
- {
3466
- providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3467
- model: "kimi-k3",
3468
- variant: "low"
3469
- },
3470
3476
  {
3471
3477
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
3472
- model: "claude-opus-5",
3473
- variant: "low"
3478
+ model: "claude-fable-5-1",
3479
+ variant: "medium"
3474
3480
  },
3475
- { providers: ["google", "github-copilot", "opencode"], model: "gemini-3.6-flash" }
3481
+ {
3482
+ providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
3483
+ model: "kimi-k3",
3484
+ variant: "max"
3485
+ }
3476
3486
  ]
3477
3487
  }
3478
3488
  };
@@ -3556,11 +3566,11 @@ var init_model_capability_aliases = __esm(() => {
3556
3566
  EXACT_ALIAS_RULES_BY_MODEL = new Map(EXACT_ALIAS_RULES.map((rule) => [rule.aliasModelID, rule]));
3557
3567
  PATTERN_ALIAS_RULES = [
3558
3568
  {
3559
- ruleID: "openai-gpt-5.6-fast-service-tier-alias",
3560
- description: "Normalizes OpenCode's OpenAI GPT-5.6 fast service-tier IDs to canonical snapshot IDs.",
3569
+ ruleID: "openai-gpt-fast-service-tier-alias",
3570
+ description: "Normalizes OpenCode's OpenAI GPT fast service-tier IDs to canonical snapshot IDs.",
3561
3571
  providerIDs: ["openai"],
3562
3572
  allowedSubproviderHosts: ["vercel"],
3563
- match: (normalizedModelID) => /^gpt-5\.6-(?:sol|terra|luna)-fast$/.test(normalizedModelID),
3573
+ match: (normalizedModelID) => /^(?:gpt-5\.6-(?:sol|terra|luna)|gpt-6-astra)-fast$/.test(normalizedModelID),
3564
3574
  canonicalize: (normalizedModelID) => normalizedModelID.slice(0, -"-fast".length)
3565
3575
  },
3566
3576
  {
@@ -3688,6 +3698,14 @@ var init_model_capability_heuristics = __esm(() => {
3688
3698
  reasoningEfforts: ["none", "minimal", "low", "medium", "high"],
3689
3699
  supportsTemperature: false
3690
3700
  },
3701
+ {
3702
+ family: "gpt-6",
3703
+ includes: ["gpt-6"],
3704
+ variants: ["low", "medium", "high", "xhigh", "max"],
3705
+ reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
3706
+ reasoningEffortAliases: { none: "low", minimal: "low" },
3707
+ supportsTemperature: false
3708
+ },
3691
3709
  {
3692
3710
  family: "gpt-5",
3693
3711
  includes: ["gpt-5"],
@@ -3862,6 +3880,37 @@ var init_supplemental_entries = __esm(() => {
3862
3880
  output: 262144
3863
3881
  }
3864
3882
  },
3883
+ "claude-fable-5-1": {
3884
+ id: "claude-fable-5-1",
3885
+ family: "claude-fable",
3886
+ reasoning: true,
3887
+ temperature: false,
3888
+ toolCall: true,
3889
+ modalities: {
3890
+ input: ["text", "image", "pdf"],
3891
+ output: ["text"]
3892
+ },
3893
+ limit: {
3894
+ context: 1e6,
3895
+ output: 128000
3896
+ }
3897
+ },
3898
+ "gpt-6-astra": {
3899
+ id: "gpt-6-astra",
3900
+ family: "gpt",
3901
+ reasoning: true,
3902
+ temperature: false,
3903
+ toolCall: true,
3904
+ modalities: {
3905
+ input: ["text", "image"],
3906
+ output: ["text"]
3907
+ },
3908
+ limit: {
3909
+ context: 1050000,
3910
+ input: 922000,
3911
+ output: 128000
3912
+ }
3913
+ },
3865
3914
  "gpt-5.6-sol": {
3866
3915
  id: "gpt-5.6-sol",
3867
3916
  family: "gpt",
@@ -4202,7 +4251,7 @@ function getOverride(modelID) {
4202
4251
  function getProviderOverride(providerID, modelID) {
4203
4252
  if (providerID.trim().toLowerCase() !== "github-copilot")
4204
4253
  return;
4205
- return GITHUB_COPILOT_GPT5_MODEL.test(normalizeLookupModelID2(modelID)) ? GITHUB_COPILOT_GPT5_OVERRIDE : undefined;
4254
+ return GITHUB_COPILOT_GPT_MODEL.test(normalizeLookupModelID2(modelID)) ? GITHUB_COPILOT_GPT_OVERRIDE : undefined;
4206
4255
  }
4207
4256
  function stripSameProviderPrefix(providerID, modelID) {
4208
4257
  const prefix = `${providerID.trim()}/`;
@@ -4341,14 +4390,14 @@ function getModelCapabilities(input) {
4341
4390
  }
4342
4391
  };
4343
4392
  }
4344
- var MODEL_ID_OVERRIDES, GITHUB_COPILOT_GPT5_MODEL, GITHUB_COPILOT_GPT5_OVERRIDE;
4393
+ var MODEL_ID_OVERRIDES, GITHUB_COPILOT_GPT_MODEL, GITHUB_COPILOT_GPT_OVERRIDE;
4345
4394
  var init_get_model_capabilities = __esm(() => {
4346
4395
  init_model_capability_aliases();
4347
4396
  init_model_capability_heuristics();
4348
4397
  init_model_string_parser();
4349
4398
  MODEL_ID_OVERRIDES = {};
4350
- GITHUB_COPILOT_GPT5_MODEL = /(?:^|\/)gpt-5(?:[.-]|$)/;
4351
- GITHUB_COPILOT_GPT5_OVERRIDE = {
4399
+ GITHUB_COPILOT_GPT_MODEL = /(?:^|\/)gpt-[56](?:[.-]|$)/;
4400
+ GITHUB_COPILOT_GPT_OVERRIDE = {
4352
4401
  variants: ["low", "medium", "high"],
4353
4402
  reasoningEfforts: ["none", "minimal", "low", "medium", "high"]
4354
4403
  };
@@ -4606,22 +4655,6 @@ var init_agent_display_names = __esm(() => {
4606
4655
  };
4607
4656
  REVERSE_DISPLAY_NAMES = Object.fromEntries(Object.entries(AGENT_DISPLAY_NAMES).map(([key, displayName]) => [displayName.toLowerCase(), key]));
4608
4657
  });
4609
- // packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
4610
- var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
4611
- You are working on tasks that don't fit specific categories but require substantial effort.
4612
- </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, ANTHROPIC_CATEGORIES;
4613
- var init_anthropic_categories = __esm(() => {
4614
- ANTHROPIC_CATEGORIES = [
4615
- {
4616
- name: "unspecified-high",
4617
- config: { model: "anthropic/claude-opus-5", variant: "xhigh" },
4618
- description: "Tasks that don't fit other categories, high effort required",
4619
- callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
4620
- promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
4621
- }
4622
- ];
4623
- });
4624
-
4625
4658
  // packages/omo-opencode/src/tools/delegate-task/google-categories.ts
4626
4659
  var VISUAL_CATEGORY_PROMPT_APPEND = `<Category_Context>
4627
4660
  You are working on VISUAL/UI tasks.
@@ -4730,13 +4763,13 @@ var init_google_categories = __esm(() => {
4730
4763
  GOOGLE_CATEGORIES = [
4731
4764
  {
4732
4765
  name: "visual-engineering",
4733
- config: { model: "anthropic/claude-opus-5", variant: "max" },
4734
- description: "Frontend, UI/UX, design, styling, animation",
4766
+ config: { model: "anthropic/claude-fable-5-1", variant: "max" },
4767
+ description: "Visual design, UI/UX, frontend, styling, animation, and design systems",
4735
4768
  promptAppend: VISUAL_CATEGORY_PROMPT_APPEND
4736
4769
  },
4737
4770
  {
4738
4771
  name: "artistry",
4739
- config: { model: "anthropic/claude-fable-5", variant: "xhigh" },
4772
+ config: { model: "anthropic/claude-fable-5-1", variant: "max" },
4740
4773
  description: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
4741
4774
  promptAppend: ARTISTRY_CATEGORY_PROMPT_APPEND
4742
4775
  }
@@ -4773,7 +4806,7 @@ var init_kimi_categories = __esm(() => {
4773
4806
  KIMI_CATEGORIES = [
4774
4807
  {
4775
4808
  name: "writing",
4776
- config: { model: "kimi-for-coding/k3", variant: "low" },
4809
+ config: { model: "anthropic/claude-fable-5-1", variant: "medium" },
4777
4810
  description: "Documentation, prose, technical writing",
4778
4811
  promptAppend: WRITING_CATEGORY_PROMPT_APPEND
4779
4812
  }
@@ -4792,16 +4825,58 @@ function isGpt5_6Model(model) {
4792
4825
  const modelName = extractModelName(model).toLowerCase();
4793
4826
  return modelName.includes("gpt-5.6") || modelName.includes("gpt-5-6");
4794
4827
  }
4828
+ function isGpt6Model(model) {
4829
+ const modelName = extractModelName(model).toLowerCase();
4830
+ return modelName.includes("gpt-6");
4831
+ }
4795
4832
  var init_types = () => {};
4796
4833
 
4797
4834
  // packages/omo-opencode/src/tools/delegate-task/openai-categories.ts
4835
+ function resolveUltrabrainCategoryPromptAppend(model) {
4836
+ if (model && isGpt6Model(model)) {
4837
+ return ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
4838
+ }
4839
+ return ULTRABRAIN_CATEGORY_PROMPT_APPEND;
4840
+ }
4798
4841
  function resolveDeepCategoryPromptAppend(model) {
4842
+ if (model && isGpt6Model(model)) {
4843
+ return DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
4844
+ }
4799
4845
  if (model && (isGpt5_5Model(model) || isGpt5_6Model(model))) {
4800
4846
  return DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5;
4801
4847
  }
4802
4848
  return DEEP_CATEGORY_PROMPT_APPEND;
4803
4849
  }
4804
- var ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
4850
+ function resolveUnspecifiedHighCategoryPromptAppend(model) {
4851
+ if (model && isGpt6Model(model)) {
4852
+ return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA;
4853
+ }
4854
+ return UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND;
4855
+ }
4856
+ var ULTRABRAIN_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="ultrabrain">
4857
+ The orchestrator routed this task here because it is the one genuinely hard, logic-heavy problem in its plan, and it sent a goal rather than steps: choose the approach yourself, and let correctness outrank speed, brevity, and token cost.
4858
+
4859
+ Success means:
4860
+ - every load-bearing claim cites evidence from this turn: a file and line read, a command run, a test executed;
4861
+ - every executable claim was executed: a proposed fix runs, an algorithm passes the boundary cases you enumerated, a verdict on a diff names the failing line;
4862
+ - the conclusion survived your own attempt to break it, and the answer names the strongest counter-case you looked for;
4863
+ - rejected alternatives carry the reason that decided against them, and open assumptions are stated so the orchestrator can overturn them;
4864
+ - one decision-complete recommendation, actionable without a follow-up question.
4865
+
4866
+ Whatever that check leaves unsettled goes in the answer as an open question with what would settle it. When the goal bundles independent problems, solve the one the others depend on and return the rest as separately delegable items.
4867
+ </Category_Context>`, DEEP_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="deep">
4868
+ The orchestrator routed this task here for depth: one goal, one deliverable, and the time to earn it. The exploration budget is generous: read every file involved, trace callers and dependencies in both directions, and fan out explore and librarian subagents in parallel for the questions a single read wave cannot answer, until you can explain the full mechanism you are about to change; an edit made before that point is the failure this category exists to prevent.
4869
+
4870
+ **MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
4871
+
4872
+ The goal is the authorization. Choose how to reach it yourself, and when it lists numbered steps or phases, deliver all of them in this turn as one task; a proposal, a plan awaiting approval, a simplified version, or a proof of concept is unfinished work. When the steps turn out to be independent problems sharing no reasoning, do the one the goal centers on and return the others as separately delegable items with what you learned. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and stop early only for a blocker you cannot route around: a missing secret, a decision only the user can make, or three materially different attempts that all failed.
4873
+
4874
+ Fix the cause: trace at least two levels above the symptom before settling, and prefer the change that makes the failure impossible over the guard that hides it. Depth means understanding the mechanism, so the diff stays as small as the fix allows; on greenfield work choose strong defaults and finish something you would hand to a senior engineer. Close with the delivered change, the evidence that it works, and the assumptions you made.
4875
+ </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND_GPT_6_ASTRA = `<Category_Context name="unspecified-high">
4876
+ The orchestrator routed this task here because it spans systems or modules and fits no specialist category, so breadth of consideration is what this category buys. Before committing to an approach, survey the whole surface the change touches: every caller and consumer of what you will modify, sibling modules that implement the same pattern, the tests, docs, schemas, config, scripts, and CI that encode the current behavior, and the history of the area (git log and blame) for the reasons it is shaped this way. Fan out explore and librarian subagents in parallel when that surface is wider than one read wave covers.
4877
+
4878
+ Weigh at least two ways to do it against what you found, choose one, and say in the final message why it won. Then deliver it across every surface you identified, so behavior stays consistent everywhere the change is observable and no caller, test, doc, schema, or config still describes the old state. A question ends your turn and hands the task back unfinished, so decide from context, record each assumption in the final message, and finish.
4879
+ </Category_Context>`, ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
4805
4880
  You are working on DEEP LOGICAL REASONING / COMPLEX ARCHITECTURE tasks.
4806
4881
 
4807
4882
  **CRITICAL - CODE STYLE REQUIREMENTS (NON-NEGOTIABLE)**:
@@ -4826,6 +4901,8 @@ You are working on GOAL-ORIENTED AUTONOMOUS tasks.
4826
4901
 
4827
4902
  You are NOT an interactive assistant. You are an autonomous problem-solver.
4828
4903
 
4904
+ **MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
4905
+
4829
4906
  BEFORE making ANY changes:
4830
4907
  1. Silently explore the codebase extensively (5-15 minutes of reading is normal)
4831
4908
  2. Read related files, trace dependencies, understand the full context
@@ -4843,6 +4920,8 @@ Minimal status updates. Focus on results, not play-by-play. Report completion wi
4843
4920
  </Category_Context>`, DEEP_CATEGORY_PROMPT_APPEND_GPT_5_5 = `<Category_Context name="deep">
4844
4921
  You are operating in DEEP mode. This is the category reserved for goal-oriented autonomous work on hairy problems that reward thorough exploration and comprehensive solutions.
4845
4922
 
4923
+ **MUST USE \`deep\` FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.**
4924
+
4846
4925
  The orchestrator chose this category because the task benefits from depth over speed. You should feel empowered to spend the time needed: five to fifteen minutes of silent exploration before the first edit is normal and correct. Rushing to implementation on a deep task is a failure mode, not a feature.
4847
4926
 
4848
4927
  # How deep mode adjusts the base behavior
@@ -4876,23 +4955,27 @@ Approach:
4876
4955
  </Category_Context>`, QUICK_CATEGORY_CALLER_GUIDANCE = `<Caller_Warning>Small/fast model: before delegating, write an explicit prompt with numbered must-do steps, forbidden deviations, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
4877
4956
  You are working on tasks that don't fit specific categories but require moderate effort.
4878
4957
  </Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
4879
- <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, OPENAI_CATEGORIES;
4958
+ <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
4959
+ You are working on tasks that don't fit specific categories but require substantial effort.
4960
+ </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, GPT_FLAGSHIP_GATE_MODELS, OPENAI_CATEGORIES;
4880
4961
  var init_openai_categories = __esm(() => {
4881
4962
  init_types();
4963
+ GPT_FLAGSHIP_GATE_MODELS = ["gpt-6-astra", "gpt-5.6-sol"];
4882
4964
  OPENAI_CATEGORIES = [
4883
4965
  {
4884
4966
  name: "ultrabrain",
4885
- config: { model: "openai/gpt-5.6-sol", variant: "xhigh" },
4967
+ config: { model: "openai/gpt-6-astra", variant: "max" },
4886
4968
  description: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
4887
- promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND
4969
+ promptAppend: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
4970
+ resolvePromptAppend: resolveUltrabrainCategoryPromptAppend
4888
4971
  },
4889
4972
  {
4890
4973
  name: "deep",
4891
- config: { model: "openai/gpt-5.6-sol", variant: "medium" },
4892
- description: "Goal-oriented autonomous problem-solving on hairy problems requiring deep research. ONE goal + ONE deliverable per call \u2014 multiple goals must fan out as parallel `deep` calls, never bundled into one.",
4974
+ config: { model: "openai/gpt-6-astra", variant: "high" },
4975
+ description: "**MANDATORY: USE deep FOR 3D GRAPHICS, COMPUTER USE, BROWSER USE, BACKEND, LOGIC, ALGORITHMS, CAPTCHA SOLVING, AND MULTIMODAL WORK.** Deep autonomous problem-solving for complex research. ONE goal + ONE deliverable per call \u2014 multiple goals must fan out as parallel `deep` calls, never bundled into one.",
4893
4976
  promptAppend: DEEP_CATEGORY_PROMPT_APPEND,
4894
4977
  resolvePromptAppend: resolveDeepCategoryPromptAppend,
4895
- requiresModel: "gpt-5.6-sol"
4978
+ requiresModel: GPT_FLAGSHIP_GATE_MODELS
4896
4979
  },
4897
4980
  {
4898
4981
  name: "quick",
@@ -4907,6 +4990,14 @@ var init_openai_categories = __esm(() => {
4907
4990
  description: "Tasks that don't fit other categories, low effort required",
4908
4991
  callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
4909
4992
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
4993
+ },
4994
+ {
4995
+ name: "unspecified-high",
4996
+ config: { model: "openai/gpt-6-astra", variant: "high" },
4997
+ description: "Tasks that don't fit other categories, high effort required",
4998
+ callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
4999
+ promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
5000
+ resolvePromptAppend: resolveUnspecifiedHighCategoryPromptAppend
4910
5001
  }
4911
5002
  ];
4912
5003
  });
@@ -4917,14 +5008,12 @@ function buildCategoryRecord(selector) {
4917
5008
  }
4918
5009
  var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
4919
5010
  var init_builtin_categories = __esm(() => {
4920
- init_anthropic_categories();
4921
5011
  init_google_categories();
4922
5012
  init_kimi_categories();
4923
5013
  init_openai_categories();
4924
5014
  BUILTIN_CATEGORIES = [
4925
5015
  ...GOOGLE_CATEGORIES,
4926
5016
  ...OPENAI_CATEGORIES,
4927
- ...ANTHROPIC_CATEGORIES,
4928
5017
  ...KIMI_CATEGORIES
4929
5018
  ];
4930
5019
  DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
@@ -4932,7 +5021,10 @@ var init_builtin_categories = __esm(() => {
4932
5021
  CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
4933
5022
  CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
4934
5023
  CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
4935
- BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [definition.name, definition.requiresModel]));
5024
+ BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [
5025
+ definition.name,
5026
+ typeof definition.requiresModel === "string" ? [definition.requiresModel] : definition.requiresModel
5027
+ ]));
4936
5028
  });
4937
5029
 
4938
5030
  // packages/omo-opencode/src/tools/delegate-task/constants.ts
@@ -77762,7 +77854,6 @@ var init_memory = __esm(() => {
77762
77854
  OmoMemorySettingsSchema = object({
77763
77855
  enabled: boolean2().default(true),
77764
77856
  agent: string2().min(1).default("auto"),
77765
- tool_exposure: _enum2(["direct", "search"]).default("direct"),
77766
77857
  reflection: OmoMemoryReflectionSchema.default({
77767
77858
  enabled: true,
77768
77859
  trigger: { step_count: 25, on_compaction: true },
@@ -77793,7 +77884,6 @@ var init_memory = __esm(() => {
77793
77884
  OmoMemorySettingsLayerSchema = object({
77794
77885
  enabled: boolean2().optional(),
77795
77886
  agent: string2().min(1).optional(),
77796
- tool_exposure: _enum2(["direct", "search"]).optional(),
77797
77887
  reflection: OmoMemoryReflectionLayerSchema.optional(),
77798
77888
  nudge: OmoMemoryNudgeLayerSchema.optional(),
77799
77889
  facts: OmoMemoryFactsLayerSchema.optional(),