oh-my-opencode 5.0.0-beta.21 → 5.0.0-beta.23

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 (151) hide show
  1. package/dist/cli/index.js +290 -288
  2. package/dist/cli-node/index.js +290 -288
  3. package/dist/index.js +1675 -1657
  4. package/dist/skills/debugging/SKILL.md +2 -0
  5. package/dist/skills/debugging/references/methodology/00-setup.md +12 -0
  6. package/dist/skills/debugging/references/methodology/02-investigate.md +21 -0
  7. package/dist/skills/debugging/references/runtimes/go.md +15 -1
  8. package/dist/skills/debugging/references/runtimes/native-binary.md +38 -0
  9. package/dist/skills/debugging/references/runtimes/node.md +25 -0
  10. package/dist/skills/debugging/references/runtimes/python.md +13 -0
  11. package/dist/skills/debugging/references/runtimes/rust.md +41 -0
  12. package/dist/skills/debugging/references/scripts/dap.mjs +267 -0
  13. package/dist/skills/debugging/references/scripts/dap.test.ts +86 -0
  14. package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  15. package/dist/skills/debugging/references/tools/dap.md +103 -0
  16. package/dist/skills/debugging/references/tools/frida.md +193 -0
  17. package/dist/tools/delegate-task/types.d.ts +3 -0
  18. package/dist/tui.js +131 -147
  19. package/package.json +18 -15
  20. package/packages/lsp-core/src/index.ts +1 -0
  21. package/packages/lsp-core/src/lsp/client-wrapper.ts +25 -5
  22. package/packages/lsp-core/src/lsp/client.ts +26 -0
  23. package/packages/lsp-core/src/lsp/connection.ts +16 -0
  24. package/packages/lsp-core/src/lsp/constants.ts +1 -0
  25. package/packages/lsp-core/src/lsp/format-document.test.ts +143 -0
  26. package/packages/lsp-core/src/lsp/format-document.ts +90 -0
  27. package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +151 -0
  28. package/packages/lsp-core/src/lsp/manager.ts +34 -1
  29. package/packages/lsp-core/src/lsp/server-definitions.ts +29 -0
  30. package/packages/lsp-core/src/lsp/server-installation.test.ts +376 -0
  31. package/packages/lsp-core/src/lsp/server-installation.ts +200 -27
  32. package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +170 -0
  33. package/packages/lsp-core/src/lsp/server-resolution.ts +18 -5
  34. package/packages/lsp-core/src/lsp/transport.ts +9 -0
  35. package/packages/lsp-core/src/lsp/types.ts +8 -0
  36. package/packages/lsp-core/src/tool-surface.test.ts +13 -1
  37. package/packages/lsp-core/src/tools/definitions.ts +14 -0
  38. package/packages/lsp-core/src/tools/format.test.ts +56 -0
  39. package/packages/lsp-core/src/tools/format.ts +56 -0
  40. package/packages/lsp-core/src/tools/index.ts +1 -0
  41. package/packages/lsp-core/src/tools/types.ts +10 -0
  42. package/packages/lsp-daemon/dist/cli.js +432 -144
  43. package/packages/lsp-daemon/dist/client.d.ts +10 -0
  44. package/packages/lsp-daemon/dist/client.js +401 -107
  45. package/packages/lsp-daemon/dist/daemon-client.d.ts +1 -0
  46. package/packages/lsp-daemon/dist/daemon-client.js +3 -0
  47. package/packages/lsp-daemon/dist/index.js +395 -107
  48. package/packages/lsp-daemon/package.json +1 -1
  49. package/packages/lsp-tools-mcp/dist/cli.js +384 -99
  50. package/packages/lsp-tools-mcp/dist/lsp/manager.js +53 -0
  51. package/packages/lsp-tools-mcp/dist/mcp.js +384 -99
  52. package/packages/lsp-tools-mcp/dist/tools.js +385 -99
  53. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  54. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -2
  55. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  56. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +69 -35
  58. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +21 -2
  59. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  60. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  61. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  62. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  63. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  64. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  65. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  66. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  67. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +404 -121
  68. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  69. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  70. package/packages/omo-codex/plugin/components/rules/dist/cli.js +3 -3
  71. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  72. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +3 -3
  74. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +4 -4
  75. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  76. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  77. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +30 -15
  78. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +30 -15
  79. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  80. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  81. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  82. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  83. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
  84. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  85. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +5 -1
  86. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
  87. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +11 -1
  88. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +22 -10
  89. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  90. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  91. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +5 -1
  92. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +13 -1
  93. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +3 -5
  94. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +26 -2
  95. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  100. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  101. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  102. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.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/model-catalog.json +3 -3
  119. package/packages/omo-codex/plugin/package-lock.json +13 -13
  120. package/packages/omo-codex/plugin/package.json +1 -1
  121. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
  122. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -0
  123. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
  124. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +21 -0
  125. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
  126. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
  127. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
  128. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
  129. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
  130. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
  131. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  132. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
  133. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
  134. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
  135. package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
  136. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
  137. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +2 -2
  138. package/packages/omo-codex/scripts/install-dist/install-local.mjs +38 -23
  139. package/packages/shared-skills/skills/debugging/SKILL.md +2 -0
  140. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
  141. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +21 -0
  142. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
  143. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
  144. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
  145. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
  146. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
  147. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
  148. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
  149. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  150. package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
  151. package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
package/dist/tui.js CHANGED
@@ -17499,6 +17499,25 @@ var init_telemetry = __esm(() => {
17499
17499
  }).strict();
17500
17500
  });
17501
17501
 
17502
+ // packages/omo-config-core/src/schema/format-on-mutation.ts
17503
+ var mode, languages, OmoFormatOnMutationLayerSchema, OmoFormatOnMutationSchema;
17504
+ var init_format_on_mutation = __esm(() => {
17505
+ init_zod();
17506
+ mode = _enum2(["off", "best-effort", "required"]);
17507
+ languages = record(string2(), boolean2()).optional();
17508
+ OmoFormatOnMutationLayerSchema = object({
17509
+ mode: mode.optional(),
17510
+ languages,
17511
+ maxFileBytes: number2().int().positive().optional(),
17512
+ timeoutMs: number2().int().positive().optional()
17513
+ }).strict();
17514
+ OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
17515
+ mode: mode.default("best-effort"),
17516
+ maxFileBytes: number2().int().positive().default(1048576),
17517
+ timeoutMs: number2().int().positive().default(3000)
17518
+ }).strict();
17519
+ });
17520
+
17502
17521
  // packages/omo-config-core/src/schema/config.ts
17503
17522
  var OmoOpenCodeHarnessConfigSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
17504
17523
  var init_config = __esm(() => {
@@ -17512,8 +17531,10 @@ var init_config = __esm(() => {
17512
17531
  init_task();
17513
17532
  init_team();
17514
17533
  init_telemetry();
17534
+ init_format_on_mutation();
17515
17535
  OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
17516
17536
  OmoTypedHarnessConfigSchema = object({
17537
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
17517
17538
  categories: OmoCategoriesConfigSchema.optional(),
17518
17539
  agents: OmoAgentsConfigSchema.optional(),
17519
17540
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
@@ -17525,6 +17546,7 @@ var init_config = __esm(() => {
17525
17546
  telemetry: OmoTelemetrySettingsLayerSchema.optional()
17526
17547
  }).strict();
17527
17548
  OmoConfigProfileSchema = object({
17549
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
17528
17550
  categories: OmoCategoriesConfigSchema.optional(),
17529
17551
  agents: OmoAgentsConfigSchema.optional(),
17530
17552
  codegraph: OmoCodegraphSettingsLayerSchema.optional(),
@@ -17539,6 +17561,7 @@ var init_config = __esm(() => {
17539
17561
  "[codex]": OmoTypedHarnessConfigSchema.optional()
17540
17562
  }).strict();
17541
17563
  OmoConfigSchema = object({
17564
+ formatOnMutation: OmoFormatOnMutationSchema.optional(),
17542
17565
  $schema: string2().optional(),
17543
17566
  categories: OmoCategoriesConfigSchema.optional(),
17544
17567
  agents: OmoAgentsConfigSchema.optional(),
@@ -17557,6 +17580,7 @@ var init_config = __esm(() => {
17557
17580
  legacy_migrations: record(string2(), unknown()).optional()
17558
17581
  }).strict();
17559
17582
  OmoConfigLayerSchema = object({
17583
+ formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
17560
17584
  $schema: string2().optional(),
17561
17585
  categories: OmoCategoriesConfigSchema.optional(),
17562
17586
  agents: OmoAgentsConfigSchema.optional(),
@@ -17583,6 +17607,7 @@ var init_schema = __esm(() => {
17583
17607
  init_codegraph();
17584
17608
  init_config();
17585
17609
  init_fallback_models();
17610
+ init_format_on_mutation();
17586
17611
  init_git_master();
17587
17612
  init_harness();
17588
17613
  init_memory();
@@ -19155,27 +19180,20 @@ var init_agent_model_requirements = __esm(() => {
19155
19180
  sisyphus: {
19156
19181
  fallbackChain: [
19157
19182
  {
19158
- providers: ["anthropic", "github-copilot", "opencode", "vercel"],
19183
+ providers: ["anthropic", "github-copilot", "opencode"],
19159
19184
  model: "claude-opus-5",
19160
19185
  variant: "max"
19161
19186
  },
19162
19187
  {
19163
- providers: [
19164
- "opencode-go",
19165
- "kimi-for-coding",
19166
- "moonshotai",
19167
- "opencode",
19168
- "vercel",
19169
- "bailian-coding-plan",
19170
- "moonshotai-cn",
19171
- "firmware",
19172
- "ollama-cloud",
19173
- "aihubmix"
19174
- ],
19188
+ providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode", "bailian-coding-plan", "moonshotai-cn", "firmware", "ollama-cloud", "aihubmix"],
19175
19189
  model: "kimi-k3"
19176
19190
  },
19177
- { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.6-sol", variant: "medium" },
19178
- { providers: ["zai-coding-plan", "opencode", "bailian-coding-plan", "vercel"], model: "glm-5.2" },
19191
+ {
19192
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19193
+ model: "gpt-5.6-sol",
19194
+ variant: "medium"
19195
+ },
19196
+ { providers: ["zai-coding-plan", "opencode", "bailian-coding-plan"], model: "glm-5.2" },
19179
19197
  { providers: ["opencode"], model: "big-pickle" }
19180
19198
  ],
19181
19199
  requiresAnyModel: true
@@ -19183,154 +19201,136 @@ var init_agent_model_requirements = __esm(() => {
19183
19201
  hephaestus: {
19184
19202
  fallbackChain: [
19185
19203
  {
19186
- providers: ["openai", "github-copilot", "vercel", "opencode"],
19204
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19187
19205
  model: "gpt-5.6-sol",
19188
19206
  variant: "medium"
19189
19207
  }
19190
19208
  ],
19191
- requiresProvider: ["openai", "github-copilot", "opencode", "vercel"],
19209
+ requiresProvider: ["openai", "openai-codex", "github-copilot", "opencode"],
19192
19210
  requiresAnyModel: true
19193
19211
  },
19194
19212
  oracle: {
19195
19213
  fallbackChain: [
19214
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "xhigh" },
19215
+ { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
19196
19216
  {
19197
- providers: ["openai", "opencode", "vercel"],
19198
- model: "gpt-5.6-sol",
19199
- variant: "xhigh"
19200
- },
19201
- {
19202
- providers: ["github-copilot"],
19203
- model: "gpt-5.6-sol",
19204
- variant: "high"
19205
- },
19206
- {
19207
- providers: ["google", "github-copilot", "opencode", "vercel"],
19217
+ providers: ["google", "github-copilot", "opencode"],
19208
19218
  model: "gemini-3.1-pro",
19209
19219
  variant: "high"
19210
19220
  },
19211
19221
  {
19212
- providers: ["anthropic", "github-copilot", "opencode", "vercel"],
19222
+ providers: ["anthropic", "github-copilot", "opencode"],
19213
19223
  model: "claude-opus-5",
19214
19224
  variant: "max"
19215
19225
  },
19216
- { providers: ["opencode-go", "vercel"], model: "glm-5.2" }
19226
+ { providers: ["opencode-go"], model: "glm-5.2" }
19217
19227
  ]
19218
19228
  },
19219
19229
  librarian: {
19220
19230
  fallbackChain: [
19221
- { providers: ["openai"], model: "gpt-5.6-luna-fast", variant: "low" },
19231
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-luna-fast", variant: "low" },
19222
19232
  { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
19223
19233
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
19224
- { providers: ["vercel"], model: "minimax-m2.7-highspeed" },
19225
- { providers: ["opencode-go", "vercel"], model: "minimax-m3" },
19234
+ { providers: ["opencode-go"], model: "minimax-m3" },
19226
19235
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
19227
- { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
19228
- { providers: ["anthropic", "github-copilot", "vercel"], model: "claude-haiku-4-5" },
19229
- { providers: ["openai", "vercel"], model: "gpt-5.4-nano" }
19236
+ { providers: ["opencode-go"], model: "minimax-m2.7" },
19237
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
19238
+ { providers: ["openai", "openai-codex"], model: "gpt-5.4-nano" }
19230
19239
  ]
19231
19240
  },
19232
19241
  explore: {
19233
19242
  fallbackChain: [
19234
- { providers: ["openai"], model: "gpt-5.6-luna-fast", variant: "low" },
19243
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-luna-fast", variant: "low" },
19235
19244
  { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "max" },
19236
19245
  { providers: ["opencode-go", "bailian-coding-plan"], model: "qwen3.7-plus" },
19237
- { providers: ["vercel"], model: "minimax-m2.7-highspeed" },
19238
- { providers: ["opencode-go", "vercel"], model: "minimax-m3" },
19246
+ { providers: ["opencode-go"], model: "minimax-m3" },
19239
19247
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
19240
- { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
19241
- { providers: ["anthropic", "github-copilot", "vercel"], model: "claude-haiku-4-5" },
19242
- { providers: ["openai", "vercel"], model: "gpt-5.4-nano" }
19248
+ { providers: ["opencode-go"], model: "minimax-m2.7" },
19249
+ { providers: ["anthropic", "github-copilot"], model: "claude-haiku-4-5" },
19250
+ { providers: ["openai", "openai-codex"], model: "gpt-5.4-nano" }
19243
19251
  ]
19244
19252
  },
19245
19253
  "multimodal-looker": {
19246
19254
  fallbackChain: [
19247
- { providers: ["openai", "opencode", "vercel"], model: "gpt-5.6-sol", variant: "low" },
19248
- { providers: ["opencode-go", "vercel"], model: "kimi-k3" },
19249
- { providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" },
19250
- { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" }
19255
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "low" },
19256
+ { providers: ["opencode-go"], model: "kimi-k3" },
19257
+ { providers: ["zai-coding-plan"], model: "glm-4.6v" },
19258
+ { providers: ["openai", "openai-codex", "github-copilot", "opencode"], model: "gpt-5-nano" }
19251
19259
  ]
19252
19260
  },
19253
19261
  prometheus: {
19254
19262
  fallbackChain: [
19255
19263
  {
19256
- providers: ["anthropic", "github-copilot", "opencode", "vercel"],
19264
+ providers: ["anthropic", "github-copilot", "opencode"],
19257
19265
  model: "claude-fable-5",
19258
19266
  variant: "xhigh"
19259
19267
  },
19260
- { providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode", "vercel"], model: "kimi-k3", variant: "max" }
19268
+ {
19269
+ providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode"],
19270
+ model: "kimi-k3",
19271
+ variant: "max"
19272
+ }
19261
19273
  ]
19262
19274
  },
19263
19275
  metis: {
19264
19276
  fallbackChain: [
19265
19277
  {
19266
- providers: ["anthropic", "github-copilot", "opencode", "vercel"],
19278
+ providers: ["anthropic", "github-copilot", "opencode"],
19267
19279
  model: "claude-opus-5",
19268
19280
  variant: "high"
19269
19281
  },
19270
- { providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode", "vercel"], model: "kimi-k3", variant: "low" }
19282
+ {
19283
+ providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode"],
19284
+ model: "kimi-k3",
19285
+ variant: "low"
19286
+ }
19271
19287
  ]
19272
19288
  },
19273
19289
  momus: {
19274
19290
  fallbackChain: [
19291
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-terra", variant: "high" },
19292
+ { providers: ["github-copilot"], model: "gpt-5.6-terra", variant: "high" },
19293
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "xhigh" },
19294
+ { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "high" },
19275
19295
  {
19276
- providers: ["openai", "vercel"],
19277
- model: "gpt-5.6-terra",
19278
- variant: "high"
19279
- },
19280
- {
19281
- providers: ["github-copilot"],
19282
- model: "gpt-5.6-terra",
19283
- variant: "high"
19284
- },
19285
- {
19286
- providers: ["openai", "opencode", "vercel"],
19287
- model: "gpt-5.6-sol",
19288
- variant: "xhigh"
19289
- },
19290
- {
19291
- providers: ["github-copilot"],
19292
- model: "gpt-5.6-sol",
19293
- variant: "high"
19294
- },
19295
- {
19296
- providers: ["anthropic", "github-copilot", "opencode", "vercel"],
19296
+ providers: ["anthropic", "github-copilot", "opencode"],
19297
19297
  model: "claude-opus-5",
19298
19298
  variant: "max"
19299
19299
  },
19300
19300
  {
19301
- providers: ["google", "github-copilot", "opencode", "vercel"],
19301
+ providers: ["google", "github-copilot", "opencode"],
19302
19302
  model: "gemini-3.1-pro",
19303
19303
  variant: "high"
19304
19304
  },
19305
- { providers: ["opencode-go", "vercel"], model: "glm-5.2" }
19305
+ { providers: ["opencode-go"], model: "glm-5.2" }
19306
19306
  ]
19307
19307
  },
19308
19308
  atlas: {
19309
19309
  fallbackChain: [
19310
- { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-5" },
19311
- { providers: ["opencode-go", "vercel"], model: "kimi-k3" },
19310
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-5" },
19311
+ { providers: ["opencode-go"], model: "kimi-k3" },
19312
19312
  {
19313
- providers: ["openai", "github-copilot", "opencode", "vercel"],
19313
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19314
19314
  model: "gpt-5.6-sol",
19315
19315
  variant: "medium"
19316
19316
  },
19317
- { providers: ["opencode-go", "vercel"], model: "minimax-m3" },
19317
+ { providers: ["opencode-go"], model: "minimax-m3" },
19318
19318
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
19319
- { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }
19319
+ { providers: ["opencode-go"], model: "minimax-m2.7" }
19320
19320
  ]
19321
19321
  },
19322
19322
  "sisyphus-junior": {
19323
19323
  fallbackChain: [
19324
- { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-5" },
19325
- { providers: ["opencode-go", "vercel"], model: "kimi-k3" },
19324
+ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-sonnet-5" },
19325
+ { providers: ["opencode-go"], model: "kimi-k3" },
19326
19326
  {
19327
- providers: ["openai", "github-copilot", "opencode", "vercel"],
19327
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19328
19328
  model: "gpt-5.6-sol",
19329
19329
  variant: "medium"
19330
19330
  },
19331
- { providers: ["opencode-go", "vercel"], model: "minimax-m3" },
19331
+ { providers: ["opencode-go"], model: "minimax-m3" },
19332
19332
  { providers: ["minimax-coding-plan", "minimax-cn-coding-plan"], model: "MiniMax-M3" },
19333
- { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
19333
+ { providers: ["opencode-go"], model: "minimax-m2.7" },
19334
19334
  { providers: ["opencode"], model: "big-pickle" }
19335
19335
  ]
19336
19336
  }
@@ -19344,22 +19344,18 @@ var init_category_model_requirements = __esm(() => {
19344
19344
  "visual-engineering": {
19345
19345
  fallbackChain: [
19346
19346
  {
19347
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19347
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19348
19348
  model: "claude-opus-5",
19349
19349
  variant: "max"
19350
19350
  },
19351
19351
  {
19352
- providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode", "vercel"],
19352
+ providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
19353
19353
  model: "kimi-k3",
19354
19354
  variant: "max"
19355
19355
  },
19356
+ { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.2", variant: "max" },
19356
19357
  {
19357
- providers: ["zai-coding-plan", "opencode-go", "vercel"],
19358
- model: "glm-5.2",
19359
- variant: "max"
19360
- },
19361
- {
19362
- providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
19358
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19363
19359
  model: "gpt-5.6-sol",
19364
19360
  variant: "medium"
19365
19361
  }
@@ -19367,27 +19363,15 @@ var init_category_model_requirements = __esm(() => {
19367
19363
  },
19368
19364
  ultrabrain: {
19369
19365
  fallbackChain: [
19370
- {
19371
- providers: ["openai", "quotio-openai", "vercel"],
19372
- model: "gpt-5.6-sol",
19373
- variant: "max"
19374
- },
19375
- {
19376
- providers: ["github-copilot"],
19377
- model: "gpt-5.6-sol",
19378
- variant: "max"
19379
- },
19380
- {
19381
- providers: ["openai", "opencode", "vercel"],
19382
- model: "gpt-5.6-sol",
19383
- variant: "max"
19384
- }
19366
+ { providers: ["openai", "openai-codex"], model: "gpt-5.6-sol", variant: "max" },
19367
+ { providers: ["github-copilot"], model: "gpt-5.6-sol", variant: "max" },
19368
+ { providers: ["openai", "openai-codex", "opencode"], model: "gpt-5.6-sol", variant: "max" }
19385
19369
  ]
19386
19370
  },
19387
19371
  deep: {
19388
19372
  fallbackChain: [
19389
19373
  {
19390
- providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
19374
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19391
19375
  model: "gpt-5.6-sol",
19392
19376
  variant: "medium"
19393
19377
  }
@@ -19396,17 +19380,17 @@ var init_category_model_requirements = __esm(() => {
19396
19380
  artistry: {
19397
19381
  fallbackChain: [
19398
19382
  {
19399
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19383
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19400
19384
  model: "claude-fable-5",
19401
19385
  variant: "xhigh"
19402
19386
  },
19403
19387
  {
19404
- providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode", "vercel"],
19388
+ providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
19405
19389
  model: "kimi-k3",
19406
19390
  variant: "max"
19407
19391
  },
19408
19392
  {
19409
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19393
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19410
19394
  model: "claude-opus-5",
19411
19395
  variant: "xhigh"
19412
19396
  }
@@ -19418,15 +19402,15 @@ var init_category_model_requirements = __esm(() => {
19418
19402
  { providers: ["openai-codex"], model: "gpt-5.6-luna-fast", variant: "low" },
19419
19403
  { providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
19420
19404
  {
19421
- providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan", "vercel"],
19405
+ providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan"],
19422
19406
  model: "qwen3.6-flash",
19423
19407
  variant: "low"
19424
19408
  },
19425
- { providers: ["opencode-go", "vercel"], model: "minimax-m3", variant: "max" },
19426
- { providers: ["opencode-go", "vercel"], model: "minimax-m2.7", variant: "max" },
19409
+ { providers: ["opencode-go"], model: "minimax-m3", variant: "max" },
19410
+ { providers: ["opencode-go"], model: "minimax-m2.7", variant: "max" },
19427
19411
  { providers: ["xai"], model: "grok-4.20-0309-non-reasoning" },
19428
19412
  {
19429
- providers: ["anthropic", "anthropic-api", "github-copilot", "vercel"],
19413
+ providers: ["anthropic", "anthropic-api", "github-copilot"],
19430
19414
  model: "claude-haiku-4-5",
19431
19415
  variant: "off"
19432
19416
  }
@@ -19434,18 +19418,14 @@ var init_category_model_requirements = __esm(() => {
19434
19418
  },
19435
19419
  "unspecified-low": {
19436
19420
  fallbackChain: [
19421
+ { providers: ["xai", "github-copilot", "opencode"], model: "grok-4.6", variant: "xhigh" },
19437
19422
  {
19438
- providers: ["xai", "github-copilot", "opencode", "vercel"],
19439
- model: "grok-4.6",
19440
- variant: "xhigh"
19441
- },
19442
- {
19443
- providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
19423
+ providers: ["openai", "openai-codex", "github-copilot", "opencode"],
19444
19424
  model: "gpt-5.6-terra",
19445
19425
  variant: "high"
19446
19426
  },
19447
19427
  {
19448
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19428
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19449
19429
  model: "claude-sonnet-5",
19450
19430
  variant: "low"
19451
19431
  },
@@ -19454,53 +19434,38 @@ var init_category_model_requirements = __esm(() => {
19454
19434
  model: "qwen3.8-max-preview",
19455
19435
  variant: "max"
19456
19436
  },
19457
- {
19458
- providers: ["deepseek", "opencode-go", "vercel"],
19459
- model: "deepseek-v4-pro",
19460
- variant: "max"
19461
- },
19462
- {
19463
- providers: ["xiaomi", "opencode-go", "vercel"],
19464
- model: "mimo-v2.5-pro",
19465
- variant: "max"
19466
- }
19437
+ { providers: ["deepseek", "opencode-go"], model: "deepseek-v4-pro", variant: "max" },
19438
+ { providers: ["xiaomi", "opencode-go"], model: "mimo-v2.5-pro", variant: "max" }
19467
19439
  ]
19468
19440
  },
19469
19441
  "unspecified-high": {
19470
19442
  fallbackChain: [
19471
19443
  {
19472
- providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode", "vercel"],
19473
- model: "kimi-k3",
19474
- variant: "max"
19475
- },
19476
- {
19477
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19444
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19478
19445
  model: "claude-opus-5",
19479
19446
  variant: "xhigh"
19480
19447
  },
19448
+ { providers: ["zai-coding-plan", "opencode-go"], model: "glm-5.3", variant: "max" },
19481
19449
  {
19482
- providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
19483
- model: "gpt-5.6-sol",
19484
- variant: "high"
19450
+ providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
19451
+ model: "kimi-k3",
19452
+ variant: "max"
19485
19453
  }
19486
19454
  ]
19487
19455
  },
19488
19456
  writing: {
19489
19457
  fallbackChain: [
19490
19458
  {
19491
- providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode", "vercel"],
19459
+ providers: ["kimi-for-coding", "moonshotai", "opencode-go", "opencode"],
19492
19460
  model: "kimi-k3",
19493
19461
  variant: "low"
19494
19462
  },
19495
19463
  {
19496
- providers: ["anthropic", "anthropic-api", "github-copilot", "opencode", "vercel"],
19464
+ providers: ["anthropic", "anthropic-api", "github-copilot", "opencode"],
19497
19465
  model: "claude-opus-5",
19498
19466
  variant: "low"
19499
19467
  },
19500
- {
19501
- providers: ["google", "github-copilot", "opencode", "vercel"],
19502
- model: "gemini-3.6-flash"
19503
- }
19468
+ { providers: ["google", "github-copilot", "opencode"], model: "gemini-3.6-flash" }
19504
19469
  ]
19505
19470
  }
19506
19471
  };
@@ -20537,7 +20502,7 @@ var init_anthropic_categories = __esm(() => {
20537
20502
  ANTHROPIC_CATEGORIES = [
20538
20503
  {
20539
20504
  name: "unspecified-high",
20540
- config: { model: "kimi-for-coding/k3", variant: "max" },
20505
+ config: { model: "anthropic/claude-opus-5", variant: "xhigh" },
20541
20506
  description: "Tasks that don't fit other categories, high effort required",
20542
20507
  callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
20543
20508
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
@@ -21310,6 +21275,25 @@ var init_model_capabilities_generated = __esm(() => {
21310
21275
  output: 131072
21311
21276
  }
21312
21277
  },
21278
+ "glm-5.3": {
21279
+ id: "glm-5.3",
21280
+ family: "glm",
21281
+ reasoning: true,
21282
+ temperature: true,
21283
+ toolCall: true,
21284
+ modalities: {
21285
+ input: [
21286
+ "text"
21287
+ ],
21288
+ output: [
21289
+ "text"
21290
+ ]
21291
+ },
21292
+ limit: {
21293
+ context: 1048576,
21294
+ output: 131072
21295
+ }
21296
+ },
21313
21297
  "glm-5v-turbo": {
21314
21298
  id: "glm-5v-turbo",
21315
21299
  family: "glm",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.0.0-beta.21",
3
+ "version": "5.0.0-beta.23",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -181,7 +181,7 @@
181
181
  "zod": "^4.4.3"
182
182
  },
183
183
  "devDependencies": {
184
- "@code-yeongyu/senpi": "2026.8.26",
184
+ "@code-yeongyu/senpi": "2026.8.27",
185
185
  "@oh-my-opencode/agents-md-core": "workspace:*",
186
186
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
187
187
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -222,18 +222,18 @@
222
222
  "typescript": "^7.0.2"
223
223
  },
224
224
  "optionalDependencies": {
225
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.21",
226
- "oh-my-opencode-darwin-x64": "5.0.0-beta.21",
227
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.21",
228
- "oh-my-opencode-linux-arm64": "5.0.0-beta.21",
229
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.21",
230
- "oh-my-opencode-linux-x64": "5.0.0-beta.21",
231
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.21",
232
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.21",
233
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.21",
234
- "oh-my-opencode-windows-arm64": "5.0.0-beta.21",
235
- "oh-my-opencode-windows-x64": "5.0.0-beta.21",
236
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.21"
225
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.23",
226
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.23",
227
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.23",
228
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.23",
229
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.23",
230
+ "oh-my-opencode-linux-x64": "5.0.0-beta.23",
231
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.23",
232
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.23",
233
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.23",
234
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.23",
235
+ "oh-my-opencode-windows-x64": "5.0.0-beta.23",
236
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.23"
237
237
  },
238
238
  "overrides": {
239
239
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -249,5 +249,8 @@
249
249
  },
250
250
  "trustedDependencies": [
251
251
  "@code-yeongyu/comment-checker"
252
- ]
252
+ ],
253
+ "patchedDependencies": {
254
+ "@code-yeongyu/senpi@2026.8.27": "patches/@code-yeongyu%2Fsenpi@2026.8.27.patch"
255
+ }
253
256
  }
@@ -7,6 +7,7 @@ export * from "./lsp/constants.js";
7
7
  export * from "./lsp/directory-diagnostics.js";
8
8
  export * from "./lsp/effective-extension.js";
9
9
  export * from "./lsp/errors.js";
10
+ export * from "./lsp/format-document.js";
10
11
  export * from "./lsp/formatters.js";
11
12
  export * from "./lsp/infer-extension.js";
12
13
  export * from "./lsp/json-rpc-connection.js";