oh-my-opencode 5.0.0-beta.85 → 5.0.0-beta.86

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 (57) hide show
  1. package/.agents/skills/codex-qa/SKILL.md +2 -0
  2. package/.agents/skills/senpi-qa/SKILL.md +9 -3
  3. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.mjs +4 -4
  4. package/README.md +1 -1
  5. package/dist/cli/index.js +56 -35
  6. package/dist/cli-node/index.js +56 -35
  7. package/dist/index.js +55 -34
  8. package/dist/tui.js +41 -20
  9. package/package.json +14 -14
  10. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  11. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  12. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  14. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  16. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  18. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  20. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  21. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  23. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  29. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  31. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  33. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/package-lock.json +12 -12
  56. package/packages/omo-codex/plugin/package.json +1 -1
  57. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
@@ -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
 
@@ -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.
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.86",
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-2",
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:*",
@@ -287,18 +287,18 @@ var init_package = __esm(() => {
287
287
  typescript: "^7.0.2"
288
288
  },
289
289
  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"
290
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.86",
291
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.86",
292
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.86",
293
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.86",
294
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.86",
295
+ "oh-my-opencode-linux-x64": "5.0.0-beta.86",
296
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.86",
297
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.86",
298
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.86",
299
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.86",
300
+ "oh-my-opencode-windows-x64": "5.0.0-beta.86",
301
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.86"
302
302
  },
303
303
  overrides: {
304
304
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -7234,26 +7234,20 @@ var init_agent_model_requirements = __esm(() => {
7234
7234
  fallbackChain: [
7235
7235
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7236
7236
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7237
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7237
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7238
7238
  { 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
7239
  { 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" }
7240
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7244
7241
  ]
7245
7242
  },
7246
7243
  explore: {
7247
7244
  fallbackChain: [
7248
7245
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7249
7246
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7250
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7247
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7251
7248
  { 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
7249
  { 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" }
7250
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7257
7251
  ]
7258
7252
  },
7259
7253
  "multimodal-looker": {
@@ -7387,15 +7381,11 @@ var init_category_model_requirements = __esm(() => {
7387
7381
  },
7388
7382
  "deep-low": {
7389
7383
  fallbackChain: [
7384
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-sol-fast", variant: "medium" },
7390
7385
  {
7391
7386
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7392
7387
  model: "gpt-6-sol",
7393
7388
  variant: "medium"
7394
- },
7395
- {
7396
- providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7397
- model: "gpt-5.6-sol",
7398
- variant: "medium"
7399
7389
  }
7400
7390
  ]
7401
7391
  },
@@ -7404,7 +7394,7 @@ var init_category_model_requirements = __esm(() => {
7404
7394
  {
7405
7395
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7406
7396
  model: "gpt-6-astra",
7407
- variant: "high"
7397
+ variant: "xhigh"
7408
7398
  }
7409
7399
  ]
7410
7400
  },
@@ -7430,7 +7420,7 @@ var init_category_model_requirements = __esm(() => {
7430
7420
  quick: {
7431
7421
  fallbackChain: [
7432
7422
  { providers: ["chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7433
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
7423
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
7434
7424
  {
7435
7425
  providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
7436
7426
  model: "qwen3.6-flash",
@@ -8175,6 +8165,22 @@ var init_supplemental_entries = __esm(() => {
8175
8165
  output: 128000
8176
8166
  }
8177
8167
  },
8168
+ "gpt-6-sol-fast": {
8169
+ id: "gpt-6-sol-fast",
8170
+ family: "gpt",
8171
+ reasoning: true,
8172
+ temperature: false,
8173
+ toolCall: true,
8174
+ modalities: {
8175
+ input: ["text", "image"],
8176
+ output: ["text"]
8177
+ },
8178
+ limit: {
8179
+ context: 1050000,
8180
+ input: 922000,
8181
+ output: 128000
8182
+ }
8183
+ },
8178
8184
  "gpt-6-luna": {
8179
8185
  id: "gpt-6-luna",
8180
8186
  family: "gpt-nano",
@@ -8255,6 +8261,21 @@ var init_supplemental_entries = __esm(() => {
8255
8261
  output: 128000
8256
8262
  }
8257
8263
  },
8264
+ "deepseek-flash": {
8265
+ id: "deepseek-flash",
8266
+ family: "deepseek-flash",
8267
+ reasoning: true,
8268
+ temperature: true,
8269
+ toolCall: true,
8270
+ modalities: {
8271
+ input: ["text", "image"],
8272
+ output: ["text"]
8273
+ },
8274
+ limit: {
8275
+ context: 1e6,
8276
+ output: 384000
8277
+ }
8278
+ },
8258
8279
  "gpt-6-luna-fast": {
8259
8280
  id: "gpt-6-luna-fast",
8260
8281
  family: "gpt-nano",
@@ -9396,7 +9417,7 @@ You are working on tasks that don't fit specific categories but require substant
9396
9417
  </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
9418
  var init_openai_categories = __esm(() => {
9398
9419
  init_types();
9399
- DEEP_LOW_GATE_MODELS = ["gpt-6-sol", "gpt-5.6-sol"];
9420
+ DEEP_LOW_GATE_MODELS = ["gpt-6-sol-fast", "gpt-6-sol"];
9400
9421
  OPENAI_CATEGORIES = [
9401
9422
  {
9402
9423
  name: "ultrabrain",
@@ -9407,7 +9428,7 @@ var init_openai_categories = __esm(() => {
9407
9428
  },
9408
9429
  {
9409
9430
  name: "deep-low",
9410
- config: { model: "openai/gpt-6-sol", variant: "medium" },
9431
+ config: { model: "openai/gpt-6-sol-fast", variant: "medium" },
9411
9432
  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
9433
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
9413
9434
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -9416,7 +9437,7 @@ var init_openai_categories = __esm(() => {
9416
9437
  },
9417
9438
  {
9418
9439
  name: "deep-high",
9419
- config: { model: "openai/gpt-6-astra", variant: "high" },
9440
+ config: { model: "openai/gpt-6-astra", variant: "xhigh" },
9420
9441
  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
9442
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
9422
9443
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -88732,7 +88753,7 @@ var package_default2;
88732
88753
  var init_package2 = __esm(() => {
88733
88754
  package_default2 = {
88734
88755
  name: "@oh-my-opencode/omo-codex",
88735
- version: "5.0.0-beta.85",
88756
+ version: "5.0.0-beta.86",
88736
88757
  type: "module",
88737
88758
  private: true,
88738
88759
  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.86",
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-2",
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:*",
@@ -288,18 +288,18 @@ var init_package = __esm(() => {
288
288
  typescript: "^7.0.2"
289
289
  },
290
290
  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"
291
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.86",
292
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.86",
293
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.86",
294
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.86",
295
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.86",
296
+ "oh-my-opencode-linux-x64": "5.0.0-beta.86",
297
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.86",
298
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.86",
299
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.86",
300
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.86",
301
+ "oh-my-opencode-windows-x64": "5.0.0-beta.86",
302
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.86"
303
303
  },
304
304
  overrides: {
305
305
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -7235,26 +7235,20 @@ var init_agent_model_requirements = __esm(() => {
7235
7235
  fallbackChain: [
7236
7236
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7237
7237
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7238
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7238
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7239
7239
  { 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
7240
  { 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" }
7241
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7245
7242
  ]
7246
7243
  },
7247
7244
  explore: {
7248
7245
  fallbackChain: [
7249
7246
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
7250
7247
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7251
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
7248
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
7252
7249
  { 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
7250
  { 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" }
7251
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
7258
7252
  ]
7259
7253
  },
7260
7254
  "multimodal-looker": {
@@ -7388,15 +7382,11 @@ var init_category_model_requirements = __esm(() => {
7388
7382
  },
7389
7383
  "deep-low": {
7390
7384
  fallbackChain: [
7385
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-sol-fast", variant: "medium" },
7391
7386
  {
7392
7387
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7393
7388
  model: "gpt-6-sol",
7394
7389
  variant: "medium"
7395
- },
7396
- {
7397
- providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7398
- model: "gpt-5.6-sol",
7399
- variant: "medium"
7400
7390
  }
7401
7391
  ]
7402
7392
  },
@@ -7405,7 +7395,7 @@ var init_category_model_requirements = __esm(() => {
7405
7395
  {
7406
7396
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
7407
7397
  model: "gpt-6-astra",
7408
- variant: "high"
7398
+ variant: "xhigh"
7409
7399
  }
7410
7400
  ]
7411
7401
  },
@@ -7431,7 +7421,7 @@ var init_category_model_requirements = __esm(() => {
7431
7421
  quick: {
7432
7422
  fallbackChain: [
7433
7423
  { providers: ["chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
7434
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
7424
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
7435
7425
  {
7436
7426
  providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
7437
7427
  model: "qwen3.6-flash",
@@ -8176,6 +8166,22 @@ var init_supplemental_entries = __esm(() => {
8176
8166
  output: 128000
8177
8167
  }
8178
8168
  },
8169
+ "gpt-6-sol-fast": {
8170
+ id: "gpt-6-sol-fast",
8171
+ family: "gpt",
8172
+ reasoning: true,
8173
+ temperature: false,
8174
+ toolCall: true,
8175
+ modalities: {
8176
+ input: ["text", "image"],
8177
+ output: ["text"]
8178
+ },
8179
+ limit: {
8180
+ context: 1050000,
8181
+ input: 922000,
8182
+ output: 128000
8183
+ }
8184
+ },
8179
8185
  "gpt-6-luna": {
8180
8186
  id: "gpt-6-luna",
8181
8187
  family: "gpt-nano",
@@ -8256,6 +8262,21 @@ var init_supplemental_entries = __esm(() => {
8256
8262
  output: 128000
8257
8263
  }
8258
8264
  },
8265
+ "deepseek-flash": {
8266
+ id: "deepseek-flash",
8267
+ family: "deepseek-flash",
8268
+ reasoning: true,
8269
+ temperature: true,
8270
+ toolCall: true,
8271
+ modalities: {
8272
+ input: ["text", "image"],
8273
+ output: ["text"]
8274
+ },
8275
+ limit: {
8276
+ context: 1e6,
8277
+ output: 384000
8278
+ }
8279
+ },
8259
8280
  "gpt-6-luna-fast": {
8260
8281
  id: "gpt-6-luna-fast",
8261
8282
  family: "gpt-nano",
@@ -9397,7 +9418,7 @@ You are working on tasks that don't fit specific categories but require substant
9397
9418
  </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
9419
  var init_openai_categories = __esm(() => {
9399
9420
  init_types();
9400
- DEEP_LOW_GATE_MODELS = ["gpt-6-sol", "gpt-5.6-sol"];
9421
+ DEEP_LOW_GATE_MODELS = ["gpt-6-sol-fast", "gpt-6-sol"];
9401
9422
  OPENAI_CATEGORIES = [
9402
9423
  {
9403
9424
  name: "ultrabrain",
@@ -9408,7 +9429,7 @@ var init_openai_categories = __esm(() => {
9408
9429
  },
9409
9430
  {
9410
9431
  name: "deep-low",
9411
- config: { model: "openai/gpt-6-sol", variant: "medium" },
9432
+ config: { model: "openai/gpt-6-sol-fast", variant: "medium" },
9412
9433
  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
9434
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
9414
9435
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -9417,7 +9438,7 @@ var init_openai_categories = __esm(() => {
9417
9438
  },
9418
9439
  {
9419
9440
  name: "deep-high",
9420
- config: { model: "openai/gpt-6-astra", variant: "high" },
9441
+ config: { model: "openai/gpt-6-astra", variant: "xhigh" },
9421
9442
  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
9443
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
9423
9444
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -88811,7 +88832,7 @@ var package_default2;
88811
88832
  var init_package2 = __esm(() => {
88812
88833
  package_default2 = {
88813
88834
  name: "@oh-my-opencode/omo-codex",
88814
- version: "5.0.0-beta.85",
88835
+ version: "5.0.0-beta.86",
88815
88836
  type: "module",
88816
88837
  private: true,
88817
88838
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
package/dist/index.js CHANGED
@@ -20057,26 +20057,20 @@ var AGENT_MODEL_REQUIREMENTS = {
20057
20057
  fallbackChain: [
20058
20058
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
20059
20059
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
20060
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
20060
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
20061
20061
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
20062
- { providers: ["opencode-go"], model: "minimax-m3" },
20063
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
20064
20062
  { providers: ["opencode-go"], model: "minimax-m2.7" },
20065
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
20066
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
20063
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
20067
20064
  ]
20068
20065
  },
20069
20066
  explore: {
20070
20067
  fallbackChain: [
20071
20068
  { providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed", variant: "off" },
20072
20069
  { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
20073
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
20070
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "max" },
20074
20071
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
20075
- { providers: ["opencode-go"], model: "minimax-m3" },
20076
- { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
20077
20072
  { providers: ["opencode-go"], model: "minimax-m2.7" },
20078
- { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
20079
- { providers: ["openai", "chatgpt-subscription"], model: "gpt-5.4-nano" }
20073
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" }
20080
20074
  ]
20081
20075
  },
20082
20076
  "multimodal-looker": {
@@ -20206,15 +20200,11 @@ var CATEGORY_MODEL_REQUIREMENTS = {
20206
20200
  },
20207
20201
  "deep-low": {
20208
20202
  fallbackChain: [
20203
+ { providers: ["openai", "chatgpt-subscription"], model: "gpt-6-sol-fast", variant: "medium" },
20209
20204
  {
20210
20205
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
20211
20206
  model: "gpt-6-sol",
20212
20207
  variant: "medium"
20213
- },
20214
- {
20215
- providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
20216
- model: "gpt-5.6-sol",
20217
- variant: "medium"
20218
20208
  }
20219
20209
  ]
20220
20210
  },
@@ -20223,7 +20213,7 @@ var CATEGORY_MODEL_REQUIREMENTS = {
20223
20213
  {
20224
20214
  providers: ["openai", "chatgpt-subscription", "github-copilot", "opencode"],
20225
20215
  model: "gpt-6-astra",
20226
- variant: "high"
20216
+ variant: "xhigh"
20227
20217
  }
20228
20218
  ]
20229
20219
  },
@@ -20249,7 +20239,7 @@ var CATEGORY_MODEL_REQUIREMENTS = {
20249
20239
  quick: {
20250
20240
  fallbackChain: [
20251
20241
  { providers: ["chatgpt-subscription"], model: "gpt-6-luna-fast", variant: "low" },
20252
- { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
20242
+ { providers: ["deepseek"], model: "deepseek-flash", variant: "off" },
20253
20243
  {
20254
20244
  providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
20255
20245
  model: "qwen3.6-flash",
@@ -21915,6 +21905,22 @@ var SUPPLEMENTAL_MODEL_CAPABILITIES = {
21915
21905
  output: 128000
21916
21906
  }
21917
21907
  },
21908
+ "gpt-6-sol-fast": {
21909
+ id: "gpt-6-sol-fast",
21910
+ family: "gpt",
21911
+ reasoning: true,
21912
+ temperature: false,
21913
+ toolCall: true,
21914
+ modalities: {
21915
+ input: ["text", "image"],
21916
+ output: ["text"]
21917
+ },
21918
+ limit: {
21919
+ context: 1050000,
21920
+ input: 922000,
21921
+ output: 128000
21922
+ }
21923
+ },
21918
21924
  "gpt-6-luna": {
21919
21925
  id: "gpt-6-luna",
21920
21926
  family: "gpt-nano",
@@ -21995,6 +22001,21 @@ var SUPPLEMENTAL_MODEL_CAPABILITIES = {
21995
22001
  output: 128000
21996
22002
  }
21997
22003
  },
22004
+ "deepseek-flash": {
22005
+ id: "deepseek-flash",
22006
+ family: "deepseek-flash",
22007
+ reasoning: true,
22008
+ temperature: true,
22009
+ toolCall: true,
22010
+ modalities: {
22011
+ input: ["text", "image"],
22012
+ output: ["text"]
22013
+ },
22014
+ limit: {
22015
+ context: 1e6,
22016
+ output: 384000
22017
+ }
22018
+ },
21998
22019
  "gpt-6-luna-fast": {
21999
22020
  id: "gpt-6-luna-fast",
22000
22021
  family: "gpt-nano",
@@ -27292,7 +27313,7 @@ You are working on tasks that don't fit specific categories but require substant
27292
27313
  var 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>`;
27293
27314
  var 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>`;
27294
27315
  var 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>`;
27295
- var DEEP_LOW_GATE_MODELS = ["gpt-6-sol", "gpt-5.6-sol"];
27316
+ var DEEP_LOW_GATE_MODELS = ["gpt-6-sol-fast", "gpt-6-sol"];
27296
27317
  var DEEP_HIGH_GATE_MODEL = "gpt-6-astra";
27297
27318
  var OPENAI_CATEGORIES = [
27298
27319
  {
@@ -27304,7 +27325,7 @@ var OPENAI_CATEGORIES = [
27304
27325
  },
27305
27326
  {
27306
27327
  name: "deep-low",
27307
- config: { model: "openai/gpt-6-sol", variant: "medium" },
27328
+ config: { model: "openai/gpt-6-sol-fast", variant: "medium" },
27308
27329
  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.",
27309
27330
  callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
27310
27331
  promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
@@ -27313,7 +27334,7 @@ var OPENAI_CATEGORIES = [
27313
27334
  },
27314
27335
  {
27315
27336
  name: "deep-high",
27316
- config: { model: "openai/gpt-6-astra", variant: "high" },
27337
+ config: { model: "openai/gpt-6-astra", variant: "xhigh" },
27317
27338
  description: "Escalation deep lane: a goal whose central decision cannot be settled from evidence alone. Same one-goal, one-deliverable contract as deep-low.",
27318
27339
  callerGuidance: DEEP_HIGH_CATEGORY_CALLER_GUIDANCE,
27319
27340
  promptAppend: DEEP_HIGH_CATEGORY_PROMPT_APPEND,
@@ -97691,7 +97712,7 @@ function getCachedVersion(options = {}) {
97691
97712
  // package.json
97692
97713
  var package_default = {
97693
97714
  name: "oh-my-opencode",
97694
- version: "5.0.0-beta.85",
97715
+ version: "5.0.0-beta.86",
97695
97716
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
97696
97717
  main: "./dist/index.js",
97697
97718
  types: "dist/index.d.ts",
@@ -97874,7 +97895,7 @@ var package_default = {
97874
97895
  zod: "^4.6.5"
97875
97896
  },
97876
97897
  devDependencies: {
97877
- "@code-yeongyu/senpi": "2026.9.23",
97898
+ "@code-yeongyu/senpi": "2026.9.23-2",
97878
97899
  "@oh-my-opencode/agents-md-core": "workspace:*",
97879
97900
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
97880
97901
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -97914,18 +97935,18 @@ var package_default = {
97914
97935
  typescript: "^7.0.2"
97915
97936
  },
97916
97937
  optionalDependencies: {
97917
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.85",
97918
- "oh-my-opencode-darwin-x64": "5.0.0-beta.85",
97919
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.85",
97920
- "oh-my-opencode-linux-arm64": "5.0.0-beta.85",
97921
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.85",
97922
- "oh-my-opencode-linux-x64": "5.0.0-beta.85",
97923
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.85",
97924
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.85",
97925
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.85",
97926
- "oh-my-opencode-windows-arm64": "5.0.0-beta.85",
97927
- "oh-my-opencode-windows-x64": "5.0.0-beta.85",
97928
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.85"
97938
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.86",
97939
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.86",
97940
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.86",
97941
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.86",
97942
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.86",
97943
+ "oh-my-opencode-linux-x64": "5.0.0-beta.86",
97944
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.86",
97945
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.86",
97946
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.86",
97947
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.86",
97948
+ "oh-my-opencode-windows-x64": "5.0.0-beta.86",
97949
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.86"
97929
97950
  },
97930
97951
  overrides: {
97931
97952
  "@earendil-works/pi-agent-core": "0.84.2",