oh-my-openagent 5.0.0-beta.85 → 5.0.0-beta.87

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 (237) hide show
  1. package/.agents/skills/codex-qa/SKILL.md +2 -0
  2. package/.agents/skills/hyperplan/SKILL.md +1 -1
  3. package/.agents/skills/senpi-qa/SKILL.md +9 -3
  4. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.mjs +4 -4
  5. package/.opencode/skills/hyperplan/SKILL.md +1 -1
  6. package/README.md +1 -1
  7. package/dist/cli/index.js +68 -41
  8. package/dist/cli-node/index.js +68 -41
  9. package/dist/index.js +126 -107
  10. package/dist/skills/browser/ATTRIBUTION.md +26 -14
  11. package/dist/skills/browser/SKILL.md +65 -52
  12. package/dist/skills/browser/references/commands.md +81 -66
  13. package/dist/skills/browser/references/install.md +31 -34
  14. package/dist/skills/browser/references/owned-engine/README.md +41 -21
  15. package/dist/skills/browser/references/owned-engine/frames-and-humans.md +33 -20
  16. package/dist/skills/browser/references/owned-engine/ladder.md +24 -22
  17. package/dist/skills/browser/references/owned-engine/network.md +35 -15
  18. package/dist/skills/browser/references/recipes/1password.md +13 -11
  19. package/dist/skills/browser/references/remote.md +5 -4
  20. package/dist/skills/browser/runtime/omowright/index.js +1534 -0
  21. package/dist/skills/browser/runtime/omowright/manifest.json +9 -0
  22. package/dist/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  23. package/dist/skills/browser/scripts/browser-doctor.mjs +37 -32
  24. package/dist/skills/browser/scripts/browser-install.mjs +31 -44
  25. package/dist/skills/browser/scripts/omowright.mjs +25 -0
  26. package/dist/skills/debugging/SKILL.md +2 -2
  27. package/dist/skills/debugging/references/methodology/06-fix.md +3 -3
  28. package/dist/skills/debugging/references/methodology/08-qa.md +1 -1
  29. package/dist/skills/debugging/references/tools/browser-qa.md +104 -0
  30. package/dist/skills/frontend/SKILL.md +1 -1
  31. package/dist/skills/frontend/references/design/clone-from-url.md +1 -1
  32. package/dist/skills/programming/SKILL.md +12 -18
  33. package/dist/skills/programming/references/rust/README.md +43 -15
  34. package/dist/skills/programming/references/rust/api-design.md +81 -0
  35. package/dist/skills/programming/references/rust/async-tokio.md +60 -28
  36. package/dist/skills/programming/references/rust/axum-stack.md +1 -13
  37. package/dist/skills/programming/references/rust/cargo-strict.md +44 -8
  38. package/dist/skills/programming/references/rust/clap-stack.md +8 -3
  39. package/dist/skills/programming/references/rust/concurrency.md +66 -52
  40. package/dist/skills/programming/references/rust/libraries.md +35 -25
  41. package/dist/skills/programming/references/rust/macros.md +63 -0
  42. package/dist/skills/programming/references/rust/one-liners.md +5 -3
  43. package/dist/skills/programming/references/rust/proptest-insta.md +8 -0
  44. package/dist/skills/programming/references/rust/type-state.md +50 -12
  45. package/dist/skills/programming/references/rust/unsafe-discipline.md +34 -6
  46. package/dist/skills/programming/references/rust/zero-cost-safety.md +62 -52
  47. package/dist/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  48. package/dist/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  49. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  50. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.test.ts +83 -0
  51. package/dist/skills/programming/scripts/rust/new-project.py +31 -28
  52. package/dist/skills/review-work/SKILL.md +1 -1
  53. package/dist/skills/ultimate-browsing/SKILL.md +27 -20
  54. package/dist/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  55. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +32 -100
  56. package/dist/skills/ultimate-browsing/references/insane-search/README.md +5 -11
  57. package/dist/skills/ultimate-browsing/references/insane-search/playwright.md +20 -37
  58. package/dist/skills/ulw-execute/SKILL.md +4 -4
  59. package/dist/skills/visual-qa/SKILL.md +1 -1
  60. package/dist/skills/visual-qa/references/browser-setup.md +46 -46
  61. package/dist/tui.js +47 -23
  62. package/package.json +15 -14
  63. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  64. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -0
  65. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  66. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  67. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  68. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  69. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  70. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  71. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  72. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  74. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  75. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  76. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +1 -1
  77. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  78. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  79. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  80. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  81. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  82. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  83. package/packages/omo-codex/plugin/components/ultrawork/README.md +1 -1
  84. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
  85. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +63 -89
  86. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  87. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  88. package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +1 -1
  89. package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +2 -2
  90. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  91. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  92. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +63 -89
  93. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  94. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  95. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +2 -3
  96. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +2 -2
  97. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  101. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  102. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  115. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  118. package/packages/omo-codex/plugin/package-lock.json +12 -12
  119. package/packages/omo-codex/plugin/package.json +1 -1
  120. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +8 -2
  121. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +2 -2
  122. package/packages/omo-codex/plugin/skills/browser/ATTRIBUTION.md +26 -14
  123. package/packages/omo-codex/plugin/skills/browser/SKILL.md +65 -52
  124. package/packages/omo-codex/plugin/skills/browser/references/commands.md +81 -66
  125. package/packages/omo-codex/plugin/skills/browser/references/install.md +31 -34
  126. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/README.md +41 -21
  127. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/frames-and-humans.md +33 -20
  128. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/ladder.md +24 -22
  129. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/network.md +35 -15
  130. package/packages/omo-codex/plugin/skills/browser/references/recipes/1password.md +13 -11
  131. package/packages/omo-codex/plugin/skills/browser/references/remote.md +5 -4
  132. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +1534 -0
  133. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +9 -0
  134. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  135. package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +37 -32
  136. package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +31 -44
  137. package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +25 -0
  138. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -2
  139. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +3 -3
  140. package/packages/omo-codex/plugin/skills/debugging/references/methodology/08-qa.md +1 -1
  141. package/packages/omo-codex/plugin/skills/debugging/references/tools/browser-qa.md +104 -0
  142. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -1
  143. package/packages/omo-codex/plugin/skills/frontend/references/design/clone-from-url.md +1 -1
  144. package/packages/omo-codex/plugin/skills/programming/SKILL.md +12 -18
  145. package/packages/omo-codex/plugin/skills/programming/references/rust/README.md +43 -15
  146. package/packages/omo-codex/plugin/skills/programming/references/rust/api-design.md +81 -0
  147. package/packages/omo-codex/plugin/skills/programming/references/rust/async-tokio.md +60 -28
  148. package/packages/omo-codex/plugin/skills/programming/references/rust/axum-stack.md +1 -13
  149. package/packages/omo-codex/plugin/skills/programming/references/rust/cargo-strict.md +44 -8
  150. package/packages/omo-codex/plugin/skills/programming/references/rust/clap-stack.md +8 -3
  151. package/packages/omo-codex/plugin/skills/programming/references/rust/concurrency.md +66 -52
  152. package/packages/omo-codex/plugin/skills/programming/references/rust/libraries.md +35 -25
  153. package/packages/omo-codex/plugin/skills/programming/references/rust/macros.md +63 -0
  154. package/packages/omo-codex/plugin/skills/programming/references/rust/one-liners.md +5 -3
  155. package/packages/omo-codex/plugin/skills/programming/references/rust/proptest-insta.md +8 -0
  156. package/packages/omo-codex/plugin/skills/programming/references/rust/type-state.md +50 -12
  157. package/packages/omo-codex/plugin/skills/programming/references/rust/unsafe-discipline.md +34 -6
  158. package/packages/omo-codex/plugin/skills/programming/references/rust/zero-cost-safety.md +62 -52
  159. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  160. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  161. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  162. package/packages/omo-codex/plugin/skills/programming/scripts/rust/new-project.py +31 -28
  163. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +1 -1
  164. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +27 -20
  165. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  166. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +32 -100
  167. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +5 -11
  168. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/playwright.md +20 -37
  169. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +63 -89
  170. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +4 -4
  171. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +2 -3
  172. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +2 -2
  173. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +1 -1
  174. package/packages/omo-codex/plugin/skills/visual-qa/references/browser-setup.md +46 -46
  175. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +2 -2
  176. package/packages/omo-codex/scripts/install-dist/install-local.mjs +4 -2
  177. package/packages/prompts-core/prompts/ultrawork/codex.md +63 -89
  178. package/packages/shared-skills/skills/browser/ATTRIBUTION.md +26 -14
  179. package/packages/shared-skills/skills/browser/SKILL.md +65 -52
  180. package/packages/shared-skills/skills/browser/references/commands.md +81 -66
  181. package/packages/shared-skills/skills/browser/references/install.md +31 -34
  182. package/packages/shared-skills/skills/browser/references/owned-engine/README.md +41 -21
  183. package/packages/shared-skills/skills/browser/references/owned-engine/frames-and-humans.md +33 -20
  184. package/packages/shared-skills/skills/browser/references/owned-engine/ladder.md +24 -22
  185. package/packages/shared-skills/skills/browser/references/owned-engine/network.md +35 -15
  186. package/packages/shared-skills/skills/browser/references/recipes/1password.md +13 -11
  187. package/packages/shared-skills/skills/browser/references/remote.md +5 -4
  188. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +1534 -0
  189. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +9 -0
  190. package/packages/shared-skills/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  191. package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +37 -32
  192. package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +31 -44
  193. package/packages/shared-skills/skills/browser/scripts/omowright.mjs +25 -0
  194. package/packages/shared-skills/skills/debugging/SKILL.md +2 -2
  195. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +3 -3
  196. package/packages/shared-skills/skills/debugging/references/methodology/08-qa.md +1 -1
  197. package/packages/shared-skills/skills/debugging/references/tools/browser-qa.md +104 -0
  198. package/packages/shared-skills/skills/frontend/SKILL.md +1 -1
  199. package/packages/shared-skills/skills/frontend/references/design/clone-from-url.md +1 -1
  200. package/packages/shared-skills/skills/programming/SKILL.md +12 -18
  201. package/packages/shared-skills/skills/programming/references/rust/README.md +43 -15
  202. package/packages/shared-skills/skills/programming/references/rust/api-design.md +81 -0
  203. package/packages/shared-skills/skills/programming/references/rust/async-tokio.md +60 -28
  204. package/packages/shared-skills/skills/programming/references/rust/axum-stack.md +1 -13
  205. package/packages/shared-skills/skills/programming/references/rust/cargo-strict.md +44 -8
  206. package/packages/shared-skills/skills/programming/references/rust/clap-stack.md +8 -3
  207. package/packages/shared-skills/skills/programming/references/rust/concurrency.md +66 -52
  208. package/packages/shared-skills/skills/programming/references/rust/libraries.md +35 -25
  209. package/packages/shared-skills/skills/programming/references/rust/macros.md +63 -0
  210. package/packages/shared-skills/skills/programming/references/rust/one-liners.md +5 -3
  211. package/packages/shared-skills/skills/programming/references/rust/proptest-insta.md +8 -0
  212. package/packages/shared-skills/skills/programming/references/rust/type-state.md +50 -12
  213. package/packages/shared-skills/skills/programming/references/rust/unsafe-discipline.md +34 -6
  214. package/packages/shared-skills/skills/programming/references/rust/zero-cost-safety.md +62 -52
  215. package/packages/shared-skills/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  216. package/packages/shared-skills/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  217. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  218. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.test.ts +83 -0
  219. package/packages/shared-skills/skills/programming/scripts/rust/new-project.py +31 -28
  220. package/packages/shared-skills/skills/review-work/SKILL.md +1 -1
  221. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +27 -20
  222. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  223. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +32 -100
  224. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +5 -11
  225. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/playwright.md +20 -37
  226. package/packages/shared-skills/skills/ulw-execute/SKILL.md +4 -4
  227. package/packages/shared-skills/skills/visual-qa/SKILL.md +1 -1
  228. package/packages/shared-skills/skills/visual-qa/references/browser-setup.md +46 -46
  229. package/dist/skills/browser/scripts/browser-env.mjs +0 -41
  230. package/dist/skills/debugging/references/tools/playwright-cli.md +0 -112
  231. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  232. package/packages/omo-codex/plugin/skills/browser/scripts/browser-env.mjs +0 -41
  233. package/packages/omo-codex/plugin/skills/debugging/references/tools/playwright-cli.md +0 -112
  234. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  235. package/packages/shared-skills/skills/browser/scripts/browser-env.mjs +0 -41
  236. package/packages/shared-skills/skills/debugging/references/tools/playwright-cli.md +0 -112
  237. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
@@ -34,6 +34,8 @@ Verified against `codex-cli 0.140.0` (node, jq, tmux, bun on macOS). Confirm wit
34
34
  [references/app-server.md](references/app-server.md).
35
35
  - **The captured JSON / pane IS the evidence** — write it under
36
36
  `.omo/evidence/<YYYYMMDD>-<slug>/` (no evidence file == the QA did not happen).
37
+ That directory is gitignored: the files stay local, the PR body carries the
38
+ summary and decisive excerpts, and nothing under it is ever committed.
37
39
 
38
40
  ## Setup
39
41
 
@@ -33,7 +33,7 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
33
33
  | Category | Model | Native Mindset | Why This Adversarial Role Fits |
34
34
  |----------|-------|----------------|--------------------------------|
35
35
  | `unspecified-low` | gpt-5.6-luna xhigh | Mid-tier, simplicity-leaning, structure-demanding | Pragmatist Skeptic — model bias toward simplicity makes it the natural enemy of over-engineering |
36
- | `unspecified-high` | kimi-k3 max -> claude-opus-5-5 max -> gpt-5.6-sol high | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
36
+ | `unspecified-high` | claude-opus-5-5 medium -> glm-5.3 max -> kimi-k3 max | High-effort, broad-impact, coordination-aware | Integration Tester — broad-scope thinking exposes cross-module fragility |
37
37
  | `deep-low` | gpt-5.6-sol medium | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
38
38
  | `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
39
39
  | `artistry` | claude-fable-5 xhigh | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
@@ -15,8 +15,13 @@ count as live QA here: `bun run test:senpi` is the package gate, the drivers in
15
15
  - **Evidence lives at exactly one path.** Every artifact goes under
16
16
  `.omo/evidence/omo-senpi-adapter/<slug>/`. Pick it with
17
17
  `scripts/resolve-evidence-dir.mjs` and nothing else — a hand-typed path is how
18
- runs end up somewhere like `local-ignore/qa-evidence/`, which no reviewer reads
19
- and the PR cannot cite.
18
+ runs end up somewhere like `local-ignore/qa-evidence/` or a `.qa-evidence/` at
19
+ the worktree root, which is outside the ignored root and gets committed by
20
+ accident (#8703).
21
+ - **Evidence stays local.** `.omo/evidence/` is gitignored and the
22
+ tracked-evidence audit test fails the build if any evidence path is tracked.
23
+ Never `git add -f` an artifact; the PR body carries the summary and the
24
+ decisive excerpts.
20
25
  - **The real agent dir stays untouched.** The live drivers build their own
21
26
  isolated `SENPI_CODING_AGENT_DIR` and deliberately IGNORE a caller-provided
22
27
  one, so `~/.senpi/agent` is never used as the sandbox. Report the driver's
@@ -26,7 +31,8 @@ count as live QA here: `bun run test:senpi` is the package gate, the drivers in
26
31
  report `SKIP` or `FAIL` in their final JSON rather than degrading to the real
27
32
  home. A `SKIP` is not a pass — say so in the evidence README.
28
33
  - **The captured JSON is the evidence.** No file on disk means the QA did not
29
- happen, which means no commit and no push.
34
+ happen, which means no commit and no push. The file proves the run on the
35
+ machine that made it; it is not something the commit carries.
30
36
 
31
37
  ## Resolve the evidence directory first
32
38
 
@@ -2,10 +2,10 @@
2
2
  // resolve-evidence-dir.mjs - pick the canonical evidence directory for a live Senpi QA run.
3
3
  //
4
4
  // Live Senpi QA artifacts belong under .omo/evidence/omo-senpi-adapter/<slug>/ and nowhere else.
5
- // That path is the repository-standard location every reviewer and AGENTS.md rule points at, so a
6
- // hand-typed alternative (local-ignore/qa-evidence/..., a temp dir, a traversal) silently strands
7
- // the evidence where the PR cannot cite it. Resolving through this script makes the path a checked
8
- // contract instead of a convention.
5
+ // That path is the repository-standard location every AGENTS.md rule points at, and it is gitignored,
6
+ // so a hand-typed alternative (local-ignore/qa-evidence/..., .qa-evidence/ at the worktree root, a temp
7
+ // dir, a traversal) either strands the evidence or lands it in a commit (#8703). Resolving through
8
+ // this script makes the path a checked contract instead of a convention.
9
9
  //
10
10
  // The resolver COMPUTES and VALIDATES only; creating the directory stays the caller's decision, so
11
11
  // a rejected slug never leaves a stray directory behind.
@@ -33,7 +33,7 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
33
33
  | Category | Model | Native Mindset | Why This Adversarial Role Fits |
34
34
  |----------|-------|----------------|--------------------------------|
35
35
  | `unspecified-low` | gpt-5.6-luna xhigh | Mid-tier, simplicity-leaning, structure-demanding | Pragmatist Skeptic — model bias toward simplicity makes it the natural enemy of over-engineering |
36
- | `unspecified-high` | kimi-k3 max -> claude-opus-5-5 max -> gpt-5.6-sol high | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
36
+ | `unspecified-high` | claude-opus-5-5 medium -> glm-5.3 max -> kimi-k3 max | High-effort, broad-impact, coordination-aware | Integration Tester — broad-scope thinking exposes cross-module fragility |
37
37
  | `deep` | gpt-5.6-sol medium | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
38
38
  | `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
39
39
  | `artistry` | claude-fable-5 xhigh | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
package/README.md CHANGED
@@ -266,7 +266,7 @@ When the main agent delegates to a subagent, it doesn't pick a model. It picks a
266
266
  | `quick` | Single-file changes, typos |
267
267
  | `ultrabrain` | Hard logic, architecture decisions |
268
268
 
269
- The agent says what kind of work it needs; the harness picks the right model. `ultrabrain` routes to GPT-6 Astra max and `deep` to GPT-6 Astra high (OpenAI / OpenAI Codex, then GitHub Copilot, then OpenCode); both fall back to GPT-5.6 Sol. You touch nothing.
269
+ The agent says what kind of work it needs; the harness picks the right model. `ultrabrain` routes to GPT-6 Astra max (falling back to GPT-5.6 Sol), `deep-high` to GPT-6 Astra xhigh, and `deep-low` to GPT-6 Sol Fast medium (then GPT-6 Sol where the Fast tier is not served). You touch nothing.
270
270
 
271
271
  ### Claude Code Compatibility
272
272
 
package/dist/cli/index.js CHANGED
@@ -64,7 +64,7 @@ var package_default;
64
64
  var init_package = __esm(() => {
65
65
  package_default = {
66
66
  name: "oh-my-opencode",
67
- version: "5.0.0-beta.85",
67
+ version: "5.0.0-beta.87",
68
68
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
69
69
  main: "./dist/index.js",
70
70
  types: "dist/index.d.ts",
@@ -247,7 +247,7 @@ var init_package = __esm(() => {
247
247
  zod: "^4.6.5"
248
248
  },
249
249
  devDependencies: {
250
- "@code-yeongyu/senpi": "2026.9.23",
250
+ "@code-yeongyu/senpi": "2026.9.23-4",
251
251
  "@oh-my-opencode/agents-md-core": "workspace:*",
252
252
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
253
253
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -283,22 +283,23 @@ var init_package = __esm(() => {
283
283
  "@xterm/xterm": "^6.0.0",
284
284
  "bun-types": "1.4.2",
285
285
  "node-pty": "^1.1.0",
286
+ omowright: "github:code-yeongyu/omowright#25781c8ac04f9aae358b06551520b792ac45c6ed",
286
287
  "puppeteer-core": "^25.11.0",
287
288
  typescript: "^7.0.2"
288
289
  },
289
290
  optionalDependencies: {
290
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.85",
291
- "oh-my-opencode-darwin-x64": "5.0.0-beta.85",
292
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.85",
293
- "oh-my-opencode-linux-arm64": "5.0.0-beta.85",
294
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.85",
295
- "oh-my-opencode-linux-x64": "5.0.0-beta.85",
296
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.85",
297
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.85",
298
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.85",
299
- "oh-my-opencode-windows-arm64": "5.0.0-beta.85",
300
- "oh-my-opencode-windows-x64": "5.0.0-beta.85",
301
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.85"
291
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.87",
292
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.87",
293
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.87",
294
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.87",
295
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.87",
296
+ "oh-my-opencode-linux-x64": "5.0.0-beta.87",
297
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.87",
298
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.87",
299
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.87",
300
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.87",
301
+ "oh-my-opencode-windows-x64": "5.0.0-beta.87",
302
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.87"
302
303
  },
303
304
  overrides: {
304
305
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -7234,26 +7235,20 @@ var init_agent_model_requirements = __esm(() => {
7234
7235
  fallbackChain: [
7235
7236
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7236
7237
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7237
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7238
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7238
7239
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
7239
- { providers: ["opencode-go"], model: "minimax-m3" },
7240
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
7241
7240
  { providers: ["opencode-go"], model: "minimax-m2.7" },
7242
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
7243
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
7241
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7244
7242
  ]
7245
7243
  },
7246
7244
  explore: {
7247
7245
  fallbackChain: [
7248
7246
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7249
7247
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7250
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7248
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7251
7249
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
7252
- { providers: ["opencode-go"], model: "minimax-m3" },
7253
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
7254
7250
  { providers: ["opencode-go"], model: "minimax-m2.7" },
7255
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
7256
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
7251
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7257
7252
  ]
7258
7253
  },
7259
7254
  "multimodal-looker": {
@@ -7387,15 +7382,11 @@ var init_category_model_requirements = __esm(() => {
7387
7382
  },
7388
7383
  "deep-low": {
7389
7384
  fallbackChain: [
7385
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-sol-fast", variant: "medium" },
7390
7386
  {
7391
7387
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7392
7388
  model: "gpt-6-sol",
7393
7389
  variant: "medium"
7394
- },
7395
- {
7396
- providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7397
- model: "gpt-5.6-sol",
7398
- variant: "medium"
7399
7390
  }
7400
7391
  ]
7401
7392
  },
@@ -7404,7 +7395,7 @@ var init_category_model_requirements = __esm(() => {
7404
7395
  {
7405
7396
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7406
7397
  model: "gpt-6-astra",
7407
- variant: "high"
7398
+ variant: "xhigh"
7408
7399
  }
7409
7400
  ]
7410
7401
  },
@@ -7429,8 +7420,8 @@ var init_category_model_requirements = __esm(() => {
7429
7420
  },
7430
7421
  quick: {
7431
7422
  fallbackChain: [
7432
- { providers: ["chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7433
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
7423
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7424
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
7434
7425
  {
7435
7426
  providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
7436
7427
  model: "qwen3.6-flash",
@@ -7474,7 +7465,7 @@ var init_category_model_requirements = __esm(() => {
7474
7465
  {
7475
7466
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
7476
7467
  model: "claude-opus-5-5",
7477
- variant: "max"
7468
+ variant: "medium"
7478
7469
  },
7479
7470
  { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "max" },
7480
7471
  {
@@ -7485,6 +7476,7 @@ var init_category_model_requirements = __esm(() => {
7485
7476
  ]
7486
7477
  },
7487
7478
  writing: {
7479
+ requiresAnyModel: true,
7488
7480
  fallbackChain: [
7489
7481
  {
7490
7482
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
@@ -8175,6 +8167,22 @@ var init_supplemental_entries = __esm(() => {
8175
8167
  output: 128000
8176
8168
  }
8177
8169
  },
8170
+ "gpt-6-sol-fast": {
8171
+ id: "gpt-6-sol-fast",
8172
+ family: "gpt",
8173
+ reasoning: true,
8174
+ temperature: false,
8175
+ toolCall: true,
8176
+ modalities: {
8177
+ input: ["text", "image"],
8178
+ output: ["text"]
8179
+ },
8180
+ limit: {
8181
+ context: 1050000,
8182
+ input: 922000,
8183
+ output: 128000
8184
+ }
8185
+ },
8178
8186
  "gpt-6-luna": {
8179
8187
  id: "gpt-6-luna",
8180
8188
  family: "gpt-nano",
@@ -8255,6 +8263,21 @@ var init_supplemental_entries = __esm(() => {
8255
8263
  output: 128000
8256
8264
  }
8257
8265
  },
8266
+ "deepseek-flash": {
8267
+ id: "deepseek-flash",
8268
+ family: "deepseek-flash",
8269
+ reasoning: true,
8270
+ temperature: true,
8271
+ toolCall: true,
8272
+ modalities: {
8273
+ input: ["text", "image"],
8274
+ output: ["text"]
8275
+ },
8276
+ limit: {
8277
+ context: 1e6,
8278
+ output: 384000
8279
+ }
8280
+ },
8258
8281
  "gpt-6-luna-fast": {
8259
8282
  id: "gpt-6-luna-fast",
8260
8283
  family: "gpt-nano",
@@ -9396,7 +9419,7 @@ You are working on tasks that don't fit specific categories but require substant
9396
9419
  </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>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here when one subsystem plus its callers holds the mechanism and the evidence, once read, leaves one right answer. Wide but mechanical work belongs here or in a quick batch. When unsure, choose deep-low: a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt; re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL = "gpt-6-astra", OPENAI_CATEGORIES;
9397
9420
  var init_openai_categories = __esm(() => {
9398
9421
  init_types();
9399
- DEEP_LOW_GATE_MODELS = ["gpt-6-sol", "gpt-5.6-sol"];
9422
+ DEEP_LOW_GATE_MODELS = ["gpt-6-sol-fast", "gpt-6-sol"];
9400
9423
  OPENAI_CATEGORIES = [
9401
9424
  {
9402
9425
  name: "ultrabrain",
@@ -9407,7 +9430,7 @@ var init_openai_categories = __esm(() => {
9407
9430
  },
9408
9431
  {
9409
9432
  name: "deep-low",
9410
- config: { model: "openai/gpt-6-sol", variant: "medium" },
9433
+ config: { model: "openai/gpt-6-sol-fast", variant: "medium" },
9411
9434
  description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads. **3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work is routed here.** Multiple goals fan out as parallel calls.",
9412
9435
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
9413
9436
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -9416,7 +9439,7 @@ var init_openai_categories = __esm(() => {
9416
9439
  },
9417
9440
  {
9418
9441
  name: "deep-high",
9419
- config: { model: "openai/gpt-6-astra", variant: "high" },
9442
+ config: { model: "openai/gpt-6-astra", variant: "xhigh" },
9420
9443
  description: "Escalation deep lane: a goal whose central decision cannot be settled from evidence alone. Same one-goal, one-deliverable contract as deep-low.",
9421
9444
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
9422
9445
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -9439,7 +9462,7 @@ var init_openai_categories = __esm(() => {
9439
9462
  },
9440
9463
  {
9441
9464
  name: "unspecified-high",
9442
- config: { model: "anthropic/claude-opus-5-5", variant: "max" },
9465
+ config: { model: "anthropic/claude-opus-5-5", variant: "medium" },
9443
9466
  description: "Tasks that don't fit other categories, high effort required",
9444
9467
  callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
9445
9468
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
@@ -74461,6 +74484,8 @@ var init_model_profile = __esm(() => {
74461
74484
  init_fallback_models();
74462
74485
  OmoModelProfileInputSchema = object({
74463
74486
  display_name: string2().optional(),
74487
+ family: _enum(["daily", "geeky"]).optional(),
74488
+ tier: _enum(["normal", "heavy"]).optional(),
74464
74489
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional()
74465
74490
  }).strict();
74466
74491
  OmoModelProfileSchema = preprocess((value) => isRecord8(value) ? normalizeLegacyModelFields(value) : value, OmoModelProfileInputSchema);
@@ -77054,8 +77079,7 @@ var init_openai_only_model_catalog = __esm(() => {
77054
77079
  OPENAI_ONLY_CATEGORY_OVERRIDES = {
77055
77080
  artistry: { model: "openai/gpt-5.6-sol", variant: "xhigh" },
77056
77081
  quick: { model: "openai/gpt-6-luna-fast" },
77057
- "visual-engineering": { model: "openai/gpt-5.6-sol", variant: "high" },
77058
- writing: { model: "openai/gpt-5.6-sol", variant: "medium" }
77082
+ "visual-engineering": { model: "openai/gpt-5.6-sol", variant: "high" }
77059
77083
  };
77060
77084
  });
77061
77085
 
@@ -77246,7 +77270,7 @@ function generateModelConfig(config) {
77246
77270
  return {
77247
77271
  $schema: SCHEMA_URL,
77248
77272
  agents: Object.fromEntries(Object.entries(CLI_AGENT_MODEL_REQUIREMENTS).filter(([role, req]) => !(role === "sisyphus" && req.requiresAnyModel)).map(([role]) => [role, { model: ULTIMATE_FALLBACK }])),
77249
- categories: Object.fromEntries(Object.keys(CLI_CATEGORY_MODEL_REQUIREMENTS).map((cat) => [cat, { model: ULTIMATE_FALLBACK }]))
77273
+ categories: Object.fromEntries(Object.entries(CLI_CATEGORY_MODEL_REQUIREMENTS).filter(([, req]) => !req.requiresAnyModel).map(([cat]) => [cat, { model: ULTIMATE_FALLBACK }]))
77250
77274
  };
77251
77275
  }
77252
77276
  const agents = {};
@@ -77314,6 +77338,9 @@ function generateModelConfig(config) {
77314
77338
  }
77315
77339
  for (const [cat, req] of Object.entries(CLI_CATEGORY_MODEL_REQUIREMENTS)) {
77316
77340
  const fallbackChain = cat === "unspecified-high" && !avail.isMaxPlan ? CLI_CATEGORY_MODEL_REQUIREMENTS["unspecified-low"].fallbackChain : req.fallbackChain;
77341
+ if (req.requiresAnyModel && !isAnyFallbackEntryAvailable(fallbackChain, avail)) {
77342
+ continue;
77343
+ }
77317
77344
  if (req.requiresModel && !isRequiredModelAvailable(req.requiresModel, req.fallbackChain, avail)) {
77318
77345
  continue;
77319
77346
  }
@@ -88732,7 +88759,7 @@ var package_default2;
88732
88759
  var init_package2 = __esm(() => {
88733
88760
  package_default2 = {
88734
88761
  name: "@oh-my-opencode/omo-codex",
88735
- version: "5.0.0-beta.85",
88762
+ version: "5.0.0-beta.87",
88736
88763
  type: "module",
88737
88764
  private: true,
88738
88765
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -65,7 +65,7 @@ var package_default;
65
65
  var init_package = __esm(() => {
66
66
  package_default = {
67
67
  name: "oh-my-opencode",
68
- version: "5.0.0-beta.85",
68
+ version: "5.0.0-beta.87",
69
69
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
70
70
  main: "./dist/index.js",
71
71
  types: "dist/index.d.ts",
@@ -248,7 +248,7 @@ var init_package = __esm(() => {
248
248
  zod: "^4.6.5"
249
249
  },
250
250
  devDependencies: {
251
- "@code-yeongyu/senpi": "2026.9.23",
251
+ "@code-yeongyu/senpi": "2026.9.23-4",
252
252
  "@oh-my-opencode/agents-md-core": "workspace:*",
253
253
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
254
254
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -284,22 +284,23 @@ var init_package = __esm(() => {
284
284
  "@xterm/xterm": "^6.0.0",
285
285
  "bun-types": "1.4.2",
286
286
  "node-pty": "^1.1.0",
287
+ omowright: "github:code-yeongyu/omowright#25781c8ac04f9aae358b06551520b792ac45c6ed",
287
288
  "puppeteer-core": "^25.11.0",
288
289
  typescript: "^7.0.2"
289
290
  },
290
291
  optionalDependencies: {
291
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.85",
292
- "oh-my-opencode-darwin-x64": "5.0.0-beta.85",
293
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.85",
294
- "oh-my-opencode-linux-arm64": "5.0.0-beta.85",
295
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.85",
296
- "oh-my-opencode-linux-x64": "5.0.0-beta.85",
297
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.85",
298
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.85",
299
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.85",
300
- "oh-my-opencode-windows-arm64": "5.0.0-beta.85",
301
- "oh-my-opencode-windows-x64": "5.0.0-beta.85",
302
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.85"
292
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.87",
293
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.87",
294
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.87",
295
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.87",
296
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.87",
297
+ "oh-my-opencode-linux-x64": "5.0.0-beta.87",
298
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.87",
299
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.87",
300
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.87",
301
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.87",
302
+ "oh-my-opencode-windows-x64": "5.0.0-beta.87",
303
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.87"
303
304
  },
304
305
  overrides: {
305
306
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -7235,26 +7236,20 @@ var init_agent_model_requirements = __esm(() => {
7235
7236
  fallbackChain: [
7236
7237
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7237
7238
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7238
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7239
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7239
7240
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
7240
- { providers: ["opencode-go"], model: "minimax-m3" },
7241
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
7242
7241
  { providers: ["opencode-go"], model: "minimax-m2.7" },
7243
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
7244
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
7242
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7245
7243
  ]
7246
7244
  },
7247
7245
  explore: {
7248
7246
  fallbackChain: [
7249
7247
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7250
7248
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7251
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7249
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7252
7250
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
7253
- { providers: ["opencode-go"], model: "minimax-m3" },
7254
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
7255
7251
  { providers: ["opencode-go"], model: "minimax-m2.7" },
7256
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
7257
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
7252
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7258
7253
  ]
7259
7254
  },
7260
7255
  "multimodal-looker": {
@@ -7388,15 +7383,11 @@ var init_category_model_requirements = __esm(() => {
7388
7383
  },
7389
7384
  "deep-low": {
7390
7385
  fallbackChain: [
7386
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-sol-fast", variant: "medium" },
7391
7387
  {
7392
7388
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7393
7389
  model: "gpt-6-sol",
7394
7390
  variant: "medium"
7395
- },
7396
- {
7397
- providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7398
- model: "gpt-5.6-sol",
7399
- variant: "medium"
7400
7391
  }
7401
7392
  ]
7402
7393
  },
@@ -7405,7 +7396,7 @@ var init_category_model_requirements = __esm(() => {
7405
7396
  {
7406
7397
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7407
7398
  model: "gpt-6-astra",
7408
- variant: "high"
7399
+ variant: "xhigh"
7409
7400
  }
7410
7401
  ]
7411
7402
  },
@@ -7430,8 +7421,8 @@ var init_category_model_requirements = __esm(() => {
7430
7421
  },
7431
7422
  quick: {
7432
7423
  fallbackChain: [
7433
- { providers: ["chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7434
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
7424
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7425
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
7435
7426
  {
7436
7427
  providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
7437
7428
  model: "qwen3.6-flash",
@@ -7475,7 +7466,7 @@ var init_category_model_requirements = __esm(() => {
7475
7466
  {
7476
7467
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
7477
7468
  model: "claude-opus-5-5",
7478
- variant: "max"
7469
+ variant: "medium"
7479
7470
  },
7480
7471
  { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "max" },
7481
7472
  {
@@ -7486,6 +7477,7 @@ var init_category_model_requirements = __esm(() => {
7486
7477
  ]
7487
7478
  },
7488
7479
  writing: {
7480
+ requiresAnyModel: true,
7489
7481
  fallbackChain: [
7490
7482
  {
7491
7483
  providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
@@ -8176,6 +8168,22 @@ var init_supplemental_entries = __esm(() => {
8176
8168
  output: 128000
8177
8169
  }
8178
8170
  },
8171
+ "gpt-6-sol-fast": {
8172
+ id: "gpt-6-sol-fast",
8173
+ family: "gpt",
8174
+ reasoning: true,
8175
+ temperature: false,
8176
+ toolCall: true,
8177
+ modalities: {
8178
+ input: ["text", "image"],
8179
+ output: ["text"]
8180
+ },
8181
+ limit: {
8182
+ context: 1050000,
8183
+ input: 922000,
8184
+ output: 128000
8185
+ }
8186
+ },
8179
8187
  "gpt-6-luna": {
8180
8188
  id: "gpt-6-luna",
8181
8189
  family: "gpt-nano",
@@ -8256,6 +8264,21 @@ var init_supplemental_entries = __esm(() => {
8256
8264
  output: 128000
8257
8265
  }
8258
8266
  },
8267
+ "deepseek-flash": {
8268
+ id: "deepseek-flash",
8269
+ family: "deepseek-flash",
8270
+ reasoning: true,
8271
+ temperature: true,
8272
+ toolCall: true,
8273
+ modalities: {
8274
+ input: ["text", "image"],
8275
+ output: ["text"]
8276
+ },
8277
+ limit: {
8278
+ context: 1e6,
8279
+ output: 384000
8280
+ }
8281
+ },
8259
8282
  "gpt-6-luna-fast": {
8260
8283
  id: "gpt-6-luna-fast",
8261
8284
  family: "gpt-nano",
@@ -9397,7 +9420,7 @@ You are working on tasks that don't fit specific categories but require substant
9397
9420
  </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>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here when one subsystem plus its callers holds the mechanism and the evidence, once read, leaves one right answer. Wide but mechanical work belongs here or in a quick batch. When unsure, choose deep-low: a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt; re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL = "gpt-6-astra", OPENAI_CATEGORIES;
9398
9421
  var init_openai_categories = __esm(() => {
9399
9422
  init_types();
9400
- DEEP_LOW_GATE_MODELS = ["gpt-6-sol", "gpt-5.6-sol"];
9423
+ DEEP_LOW_GATE_MODELS = ["gpt-6-sol-fast", "gpt-6-sol"];
9401
9424
  OPENAI_CATEGORIES = [
9402
9425
  {
9403
9426
  name: "ultrabrain",
@@ -9408,7 +9431,7 @@ var init_openai_categories = __esm(() => {
9408
9431
  },
9409
9432
  {
9410
9433
  name: "deep-low",
9411
- config: { model: "openai/gpt-6-sol", variant: "medium" },
9434
+ config: { model: "openai/gpt-6-sol-fast", variant: "medium" },
9412
9435
  description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads. **3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work is routed here.** Multiple goals fan out as parallel calls.",
9413
9436
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
9414
9437
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -9417,7 +9440,7 @@ var init_openai_categories = __esm(() => {
9417
9440
  },
9418
9441
  {
9419
9442
  name: "deep-high",
9420
- config: { model: "openai/gpt-6-astra", variant: "high" },
9443
+ config: { model: "openai/gpt-6-astra", variant: "xhigh" },
9421
9444
  description: "Escalation deep lane: a goal whose central decision cannot be settled from evidence alone. Same one-goal, one-deliverable contract as deep-low.",
9422
9445
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
9423
9446
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -9440,7 +9463,7 @@ var init_openai_categories = __esm(() => {
9440
9463
  },
9441
9464
  {
9442
9465
  name: "unspecified-high",
9443
- config: { model: "anthropic/claude-opus-5-5", variant: "max" },
9466
+ config: { model: "anthropic/claude-opus-5-5", variant: "medium" },
9444
9467
  description: "Tasks that don't fit other categories, high effort required",
9445
9468
  callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
9446
9469
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
@@ -74540,6 +74563,8 @@ var init_model_profile = __esm(() => {
74540
74563
  init_fallback_models();
74541
74564
  OmoModelProfileInputSchema = object({
74542
74565
  display_name: string2().optional(),
74566
+ family: _enum(["daily", "geeky"]).optional(),
74567
+ tier: _enum(["normal", "heavy"]).optional(),
74543
74568
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional()
74544
74569
  }).strict();
74545
74570
  OmoModelProfileSchema = preprocess((value) => isRecord8(value) ? normalizeLegacyModelFields(value) : value, OmoModelProfileInputSchema);
@@ -77133,8 +77158,7 @@ var init_openai_only_model_catalog = __esm(() => {
77133
77158
  OPENAI_ONLY_CATEGORY_OVERRIDES = {
77134
77159
  artistry: { model: "openai/gpt-5.6-sol", variant: "xhigh" },
77135
77160
  quick: { model: "openai/gpt-6-luna-fast" },
77136
- "visual-engineering": { model: "openai/gpt-5.6-sol", variant: "high" },
77137
- writing: { model: "openai/gpt-5.6-sol", variant: "medium" }
77161
+ "visual-engineering": { model: "openai/gpt-5.6-sol", variant: "high" }
77138
77162
  };
77139
77163
  });
77140
77164
 
@@ -77325,7 +77349,7 @@ function generateModelConfig(config) {
77325
77349
  return {
77326
77350
  $schema: SCHEMA_URL,
77327
77351
  agents: Object.fromEntries(Object.entries(CLI_AGENT_MODEL_REQUIREMENTS).filter(([role, req]) => !(role === "sisyphus" && req.requiresAnyModel)).map(([role]) => [role, { model: ULTIMATE_FALLBACK }])),
77328
- categories: Object.fromEntries(Object.keys(CLI_CATEGORY_MODEL_REQUIREMENTS).map((cat) => [cat, { model: ULTIMATE_FALLBACK }]))
77352
+ categories: Object.fromEntries(Object.entries(CLI_CATEGORY_MODEL_REQUIREMENTS).filter(([, req]) => !req.requiresAnyModel).map(([cat]) => [cat, { model: ULTIMATE_FALLBACK }]))
77329
77353
  };
77330
77354
  }
77331
77355
  const agents = {};
@@ -77393,6 +77417,9 @@ function generateModelConfig(config) {
77393
77417
  }
77394
77418
  for (const [cat, req] of Object.entries(CLI_CATEGORY_MODEL_REQUIREMENTS)) {
77395
77419
  const fallbackChain = cat === "unspecified-high" && !avail.isMaxPlan ? CLI_CATEGORY_MODEL_REQUIREMENTS["unspecified-low"].fallbackChain : req.fallbackChain;
77420
+ if (req.requiresAnyModel && !isAnyFallbackEntryAvailable(fallbackChain, avail)) {
77421
+ continue;
77422
+ }
77396
77423
  if (req.requiresModel && !isRequiredModelAvailable(req.requiresModel, req.fallbackChain, avail)) {
77397
77424
  continue;
77398
77425
  }
@@ -88811,7 +88838,7 @@ var package_default2;
88811
88838
  var init_package2 = __esm(() => {
88812
88839
  package_default2 = {
88813
88840
  name: "@oh-my-opencode/omo-codex",
88814
- version: "5.0.0-beta.85",
88841
+ version: "5.0.0-beta.87",
88815
88842
  type: "module",
88816
88843
  private: true,
88817
88844
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",