oh-my-opencode 5.0.0-beta.10 → 5.0.0-beta.11

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 (71) hide show
  1. package/dist/cli/index.js +24 -85
  2. package/dist/cli-node/index.js +24 -85
  3. package/dist/index.js +70 -92
  4. package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
  5. package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
  6. package/dist/tools/delegate-task/tool-description.d.ts +3 -1
  7. package/dist/tui.js +9 -70
  8. package/package.json +14 -14
  9. package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
  10. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +6 -6
  11. package/packages/lsp-core/src/lsp/client-wrapper.ts +5 -6
  12. package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
  13. package/packages/lsp-core/src/lsp/workspace-markers.ts +1 -0
  14. package/packages/lsp-daemon/dist/cli.js +94 -59
  15. package/packages/lsp-daemon/dist/client.js +72 -37
  16. package/packages/lsp-daemon/dist/index.js +78 -43
  17. package/packages/lsp-tools-mcp/dist/cli.js +68 -33
  18. package/packages/lsp-tools-mcp/dist/mcp.js +68 -33
  19. package/packages/lsp-tools-mcp/dist/tools.js +68 -33
  20. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  21. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  22. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  23. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  27. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  29. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  31. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +83 -54
  32. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  33. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  34. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  35. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  36. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  37. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  38. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  39. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  40. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  41. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  42. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  43. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  45. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  69. package/packages/omo-codex/plugin/package-lock.json +13 -13
  70. package/packages/omo-codex/plugin/package.json +1 -1
  71. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
package/dist/cli/index.js CHANGED
@@ -2145,7 +2145,7 @@ var package_default;
2145
2145
  var init_package = __esm(() => {
2146
2146
  package_default = {
2147
2147
  name: "oh-my-opencode",
2148
- version: "5.0.0-beta.10",
2148
+ version: "5.0.0-beta.11",
2149
2149
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2150
2150
  main: "./dist/index.js",
2151
2151
  types: "dist/index.d.ts",
@@ -2326,7 +2326,7 @@ var init_package = __esm(() => {
2326
2326
  zod: "^4.4.3"
2327
2327
  },
2328
2328
  devDependencies: {
2329
- "@code-yeongyu/senpi": "2026.8.18-2",
2329
+ "@code-yeongyu/senpi": "2026.8.18-3",
2330
2330
  "@oh-my-opencode/agents-md-core": "workspace:*",
2331
2331
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2332
2332
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2367,18 +2367,18 @@ var init_package = __esm(() => {
2367
2367
  typescript: "^7.0.2"
2368
2368
  },
2369
2369
  optionalDependencies: {
2370
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.10",
2371
- "oh-my-opencode-darwin-x64": "5.0.0-beta.10",
2372
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.10",
2373
- "oh-my-opencode-linux-arm64": "5.0.0-beta.10",
2374
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.10",
2375
- "oh-my-opencode-linux-x64": "5.0.0-beta.10",
2376
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.10",
2377
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.10",
2378
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.10",
2379
- "oh-my-opencode-windows-arm64": "5.0.0-beta.10",
2380
- "oh-my-opencode-windows-x64": "5.0.0-beta.10",
2381
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.10"
2370
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.11",
2371
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.11",
2372
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.11",
2373
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.11",
2374
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.11",
2375
+ "oh-my-opencode-linux-x64": "5.0.0-beta.11",
2376
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.11",
2377
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.11",
2378
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.11",
2379
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.11",
2380
+ "oh-my-opencode-windows-x64": "5.0.0-beta.11",
2381
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.11"
2382
2382
  },
2383
2383
  overrides: {
2384
2384
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -27941,24 +27941,14 @@ var init_agent_display_names = __esm(() => {
27941
27941
  // packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
27942
27942
  var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
27943
27943
  You are working on tasks that don't fit specific categories but require substantial effort.
27944
-
27945
- <Selection_Gate>
27946
- BEFORE selecting this category, VERIFY ALL conditions:
27947
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
27948
- 2. Task requires substantial effort across multiple systems/modules
27949
- 3. Changes have broad impact or require careful coordination
27950
- 4. NOT just "complex" - must be genuinely unclassifiable AND high-effort
27951
-
27952
- If task fits ANY other category, DO NOT select unspecified-high.
27953
- If task is unclassifiable but moderate-effort, use unspecified-low instead.
27954
- </Selection_Gate>
27955
- </Category_Context>`, ANTHROPIC_CATEGORIES;
27944
+ </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, ANTHROPIC_CATEGORIES;
27956
27945
  var init_anthropic_categories = __esm(() => {
27957
27946
  ANTHROPIC_CATEGORIES = [
27958
27947
  {
27959
27948
  name: "unspecified-high",
27960
27949
  config: { model: "kimi-for-coding/k3", variant: "max" },
27961
27950
  description: "Tasks that don't fit other categories, high effort required",
27951
+ callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
27962
27952
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
27963
27953
  }
27964
27954
  ];
@@ -28215,64 +28205,10 @@ Approach:
28215
28205
  - Minimal viable implementation
28216
28206
  - Skip unnecessary abstractions
28217
28207
  - Direct and concise
28218
- </Category_Context>
28219
-
28220
- <Caller_Warning>
28221
- THIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.6-luna-fast).
28222
-
28223
- The model executing this task is optimized for speed over depth. Your prompt MUST be:
28224
-
28225
- **EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:
28226
- 1. MUST DO: List every required action as atomic, numbered steps
28227
- 2. MUST NOT DO: Explicitly forbid likely mistakes and deviations
28228
- 3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples
28229
-
28230
- **WHY THIS MATTERS:**
28231
- - Smaller models benefit from explicit guardrails
28232
- - Vague instructions may lead to unpredictable results
28233
- - Implicit expectations may be missed
28234
- **PROMPT STRUCTURE (MANDATORY):**
28235
- \`\`\`
28236
- TASK: [One-sentence goal]
28237
-
28238
- MUST DO:
28239
- 1. [Specific action with exact details]
28240
- 2. [Another specific action]
28241
- ...
28242
-
28243
- MUST NOT DO:
28244
- - [Forbidden action + why]
28245
- - [Another forbidden action]
28246
- ...
28247
-
28248
- EXPECTED OUTPUT:
28249
- - [Exact deliverable description]
28250
- - [Success criteria / verification method]
28251
- \`\`\`
28252
-
28253
- If your prompt lacks this structure, REWRITE IT before delegating.
28254
- </Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
28208
+ </Category_Context>`, QUICK_CATEGORY_CALLER_GUIDANCE = `<Caller_Warning>Small/fast model: before delegating, write an explicit prompt with numbered must-do steps, forbidden deviations, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
28255
28209
  You are working on tasks that don't fit specific categories but require moderate effort.
28256
-
28257
- <Selection_Gate>
28258
- BEFORE selecting this category, VERIFY ALL conditions:
28259
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
28260
- 2. Task requires more than trivial effort but is NOT system-wide
28261
- 3. Scope is contained within a few files/modules
28262
-
28263
- If task fits ANY other category, DO NOT select unspecified-low.
28264
- This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
28265
- </Selection_Gate>
28266
- </Category_Context>
28267
-
28268
- <Caller_Warning>
28269
- THIS CATEGORY USES GROK 4.6 (xhigh).
28270
-
28271
- **PROVIDE CLEAR STRUCTURE:**
28272
- 1. MUST DO: Enumerate required actions explicitly
28273
- 2. MUST NOT DO: State forbidden actions to prevent scope creep
28274
- 3. EXPECTED OUTPUT: Define concrete success criteria
28275
- </Caller_Warning>`, OPENAI_CATEGORIES;
28210
+ </Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
28211
+ <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, OPENAI_CATEGORIES;
28276
28212
  var init_openai_categories = __esm(() => {
28277
28213
  init_types4();
28278
28214
  OPENAI_CATEGORIES = [
@@ -28294,12 +28230,14 @@ var init_openai_categories = __esm(() => {
28294
28230
  name: "quick",
28295
28231
  config: { model: "kimi-for-coding/kimi-for-coding-highspeed" },
28296
28232
  description: "Trivial tasks - single file changes, typo fixes, simple modifications",
28233
+ callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
28297
28234
  promptAppend: QUICK_CATEGORY_PROMPT_APPEND
28298
28235
  },
28299
28236
  {
28300
28237
  name: "unspecified-low",
28301
28238
  config: { model: "xai/grok-4.6", variant: "xhigh" },
28302
28239
  description: "Tasks that don't fit other categories, low effort required",
28240
+ callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
28303
28241
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
28304
28242
  }
28305
28243
  ];
@@ -28309,7 +28247,7 @@ var init_openai_categories = __esm(() => {
28309
28247
  function buildCategoryRecord(selector) {
28310
28248
  return Object.fromEntries(BUILTIN_CATEGORIES.map((definition) => [definition.name, selector(definition)]));
28311
28249
  }
28312
- var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
28250
+ var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
28313
28251
  var init_builtin_categories = __esm(() => {
28314
28252
  init_anthropic_categories();
28315
28253
  init_google_categories();
@@ -28324,6 +28262,7 @@ var init_builtin_categories = __esm(() => {
28324
28262
  DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
28325
28263
  CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition) => definition.promptAppend);
28326
28264
  CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
28265
+ CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
28327
28266
  CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
28328
28267
  BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [definition.name, definition.requiresModel]));
28329
28268
  });
@@ -94644,7 +94583,7 @@ var package_default2;
94644
94583
  var init_package2 = __esm(() => {
94645
94584
  package_default2 = {
94646
94585
  name: "@oh-my-opencode/omo-codex",
94647
- version: "5.0.0-beta.10",
94586
+ version: "5.0.0-beta.11",
94648
94587
  type: "module",
94649
94588
  private: true,
94650
94589
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -2146,7 +2146,7 @@ var package_default;
2146
2146
  var init_package = __esm(() => {
2147
2147
  package_default = {
2148
2148
  name: "oh-my-opencode",
2149
- version: "5.0.0-beta.10",
2149
+ version: "5.0.0-beta.11",
2150
2150
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2151
2151
  main: "./dist/index.js",
2152
2152
  types: "dist/index.d.ts",
@@ -2327,7 +2327,7 @@ var init_package = __esm(() => {
2327
2327
  zod: "^4.4.3"
2328
2328
  },
2329
2329
  devDependencies: {
2330
- "@code-yeongyu/senpi": "2026.8.18-2",
2330
+ "@code-yeongyu/senpi": "2026.8.18-3",
2331
2331
  "@oh-my-opencode/agents-md-core": "workspace:*",
2332
2332
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
2333
2333
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -2368,18 +2368,18 @@ var init_package = __esm(() => {
2368
2368
  typescript: "^7.0.2"
2369
2369
  },
2370
2370
  optionalDependencies: {
2371
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.10",
2372
- "oh-my-opencode-darwin-x64": "5.0.0-beta.10",
2373
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.10",
2374
- "oh-my-opencode-linux-arm64": "5.0.0-beta.10",
2375
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.10",
2376
- "oh-my-opencode-linux-x64": "5.0.0-beta.10",
2377
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.10",
2378
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.10",
2379
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.10",
2380
- "oh-my-opencode-windows-arm64": "5.0.0-beta.10",
2381
- "oh-my-opencode-windows-x64": "5.0.0-beta.10",
2382
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.10"
2371
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.11",
2372
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.11",
2373
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.11",
2374
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.11",
2375
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.11",
2376
+ "oh-my-opencode-linux-x64": "5.0.0-beta.11",
2377
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.11",
2378
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.11",
2379
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.11",
2380
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.11",
2381
+ "oh-my-opencode-windows-x64": "5.0.0-beta.11",
2382
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.11"
2383
2383
  },
2384
2384
  overrides: {
2385
2385
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -27942,24 +27942,14 @@ var init_agent_display_names = __esm(() => {
27942
27942
  // packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
27943
27943
  var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
27944
27944
  You are working on tasks that don't fit specific categories but require substantial effort.
27945
-
27946
- <Selection_Gate>
27947
- BEFORE selecting this category, VERIFY ALL conditions:
27948
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
27949
- 2. Task requires substantial effort across multiple systems/modules
27950
- 3. Changes have broad impact or require careful coordination
27951
- 4. NOT just "complex" - must be genuinely unclassifiable AND high-effort
27952
-
27953
- If task fits ANY other category, DO NOT select unspecified-high.
27954
- If task is unclassifiable but moderate-effort, use unspecified-low instead.
27955
- </Selection_Gate>
27956
- </Category_Context>`, ANTHROPIC_CATEGORIES;
27945
+ </Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, ANTHROPIC_CATEGORIES;
27957
27946
  var init_anthropic_categories = __esm(() => {
27958
27947
  ANTHROPIC_CATEGORIES = [
27959
27948
  {
27960
27949
  name: "unspecified-high",
27961
27950
  config: { model: "kimi-for-coding/k3", variant: "max" },
27962
27951
  description: "Tasks that don't fit other categories, high effort required",
27952
+ callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
27963
27953
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
27964
27954
  }
27965
27955
  ];
@@ -28216,64 +28206,10 @@ Approach:
28216
28206
  - Minimal viable implementation
28217
28207
  - Skip unnecessary abstractions
28218
28208
  - Direct and concise
28219
- </Category_Context>
28220
-
28221
- <Caller_Warning>
28222
- THIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.6-luna-fast).
28223
-
28224
- The model executing this task is optimized for speed over depth. Your prompt MUST be:
28225
-
28226
- **EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:
28227
- 1. MUST DO: List every required action as atomic, numbered steps
28228
- 2. MUST NOT DO: Explicitly forbid likely mistakes and deviations
28229
- 3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples
28230
-
28231
- **WHY THIS MATTERS:**
28232
- - Smaller models benefit from explicit guardrails
28233
- - Vague instructions may lead to unpredictable results
28234
- - Implicit expectations may be missed
28235
- **PROMPT STRUCTURE (MANDATORY):**
28236
- \`\`\`
28237
- TASK: [One-sentence goal]
28238
-
28239
- MUST DO:
28240
- 1. [Specific action with exact details]
28241
- 2. [Another specific action]
28242
- ...
28243
-
28244
- MUST NOT DO:
28245
- - [Forbidden action + why]
28246
- - [Another forbidden action]
28247
- ...
28248
-
28249
- EXPECTED OUTPUT:
28250
- - [Exact deliverable description]
28251
- - [Success criteria / verification method]
28252
- \`\`\`
28253
-
28254
- If your prompt lacks this structure, REWRITE IT before delegating.
28255
- </Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
28209
+ </Category_Context>`, QUICK_CATEGORY_CALLER_GUIDANCE = `<Caller_Warning>Small/fast model: before delegating, write an explicit prompt with numbered must-do steps, forbidden deviations, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
28256
28210
  You are working on tasks that don't fit specific categories but require moderate effort.
28257
-
28258
- <Selection_Gate>
28259
- BEFORE selecting this category, VERIFY ALL conditions:
28260
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
28261
- 2. Task requires more than trivial effort but is NOT system-wide
28262
- 3. Scope is contained within a few files/modules
28263
-
28264
- If task fits ANY other category, DO NOT select unspecified-low.
28265
- This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
28266
- </Selection_Gate>
28267
- </Category_Context>
28268
-
28269
- <Caller_Warning>
28270
- THIS CATEGORY USES GROK 4.6 (xhigh).
28271
-
28272
- **PROVIDE CLEAR STRUCTURE:**
28273
- 1. MUST DO: Enumerate required actions explicitly
28274
- 2. MUST NOT DO: State forbidden actions to prevent scope creep
28275
- 3. EXPECTED OUTPUT: Define concrete success criteria
28276
- </Caller_Warning>`, OPENAI_CATEGORIES;
28211
+ </Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
28212
+ <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, OPENAI_CATEGORIES;
28277
28213
  var init_openai_categories = __esm(() => {
28278
28214
  init_types4();
28279
28215
  OPENAI_CATEGORIES = [
@@ -28295,12 +28231,14 @@ var init_openai_categories = __esm(() => {
28295
28231
  name: "quick",
28296
28232
  config: { model: "kimi-for-coding/kimi-for-coding-highspeed" },
28297
28233
  description: "Trivial tasks - single file changes, typo fixes, simple modifications",
28234
+ callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
28298
28235
  promptAppend: QUICK_CATEGORY_PROMPT_APPEND
28299
28236
  },
28300
28237
  {
28301
28238
  name: "unspecified-low",
28302
28239
  config: { model: "xai/grok-4.6", variant: "xhigh" },
28303
28240
  description: "Tasks that don't fit other categories, low effort required",
28241
+ callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
28304
28242
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
28305
28243
  }
28306
28244
  ];
@@ -28310,7 +28248,7 @@ var init_openai_categories = __esm(() => {
28310
28248
  function buildCategoryRecord(selector) {
28311
28249
  return Object.fromEntries(BUILTIN_CATEGORIES.map((definition) => [definition.name, selector(definition)]));
28312
28250
  }
28313
- var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
28251
+ var BUILTIN_CATEGORIES, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, CATEGORY_CALLER_GUIDANCE, CATEGORY_PROMPT_APPEND_RESOLVERS, BUILTIN_CATEGORY_REQUIRES_MODEL;
28314
28252
  var init_builtin_categories = __esm(() => {
28315
28253
  init_anthropic_categories();
28316
28254
  init_google_categories();
@@ -28325,6 +28263,7 @@ var init_builtin_categories = __esm(() => {
28325
28263
  DEFAULT_CATEGORIES = buildCategoryRecord((definition) => definition.config);
28326
28264
  CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition) => definition.promptAppend);
28327
28265
  CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition) => definition.description);
28266
+ CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition) => definition.callerGuidance);
28328
28267
  CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.resolvePromptAppend !== undefined).map((definition) => [definition.name, definition.resolvePromptAppend]));
28329
28268
  BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition) => definition.requiresModel !== undefined).map((definition) => [definition.name, definition.requiresModel]));
28330
28269
  });
@@ -94700,7 +94639,7 @@ var package_default2;
94700
94639
  var init_package2 = __esm(() => {
94701
94640
  package_default2 = {
94702
94641
  name: "@oh-my-opencode/omo-codex",
94703
- version: "5.0.0-beta.10",
94642
+ version: "5.0.0-beta.11",
94704
94643
  type: "module",
94705
94644
  private: true,
94706
94645
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
package/dist/index.js CHANGED
@@ -28558,23 +28558,14 @@ function truncateDescription(description, maxLength = 120) {
28558
28558
  // packages/omo-opencode/src/tools/delegate-task/anthropic-categories.ts
28559
28559
  var UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
28560
28560
  You are working on tasks that don't fit specific categories but require substantial effort.
28561
-
28562
- <Selection_Gate>
28563
- BEFORE selecting this category, VERIFY ALL conditions:
28564
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
28565
- 2. Task requires substantial effort across multiple systems/modules
28566
- 3. Changes have broad impact or require careful coordination
28567
- 4. NOT just "complex" - must be genuinely unclassifiable AND high-effort
28568
-
28569
- If task fits ANY other category, DO NOT select unspecified-high.
28570
- If task is unclassifiable but moderate-effort, use unspecified-low instead.
28571
- </Selection_Gate>
28572
28561
  </Category_Context>`;
28562
+ 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>`;
28573
28563
  var ANTHROPIC_CATEGORIES = [
28574
28564
  {
28575
28565
  name: "unspecified-high",
28576
28566
  config: { model: "kimi-for-coding/k3", variant: "max" },
28577
28567
  description: "Tasks that don't fit other categories, high effort required",
28568
+ callerGuidance: UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE,
28578
28569
  promptAppend: UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND
28579
28570
  }
28580
28571
  ];
@@ -28841,65 +28832,13 @@ Approach:
28841
28832
  - Minimal viable implementation
28842
28833
  - Skip unnecessary abstractions
28843
28834
  - Direct and concise
28844
- </Category_Context>
28845
-
28846
- <Caller_Warning>
28847
- THIS CATEGORY USES A SMALLER/FASTER MODEL (gpt-5.6-luna-fast).
28848
-
28849
- The model executing this task is optimized for speed over depth. Your prompt MUST be:
28850
-
28851
- **EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:
28852
- 1. MUST DO: List every required action as atomic, numbered steps
28853
- 2. MUST NOT DO: Explicitly forbid likely mistakes and deviations
28854
- 3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples
28855
-
28856
- **WHY THIS MATTERS:**
28857
- - Smaller models benefit from explicit guardrails
28858
- - Vague instructions may lead to unpredictable results
28859
- - Implicit expectations may be missed
28860
- **PROMPT STRUCTURE (MANDATORY):**
28861
- \`\`\`
28862
- TASK: [One-sentence goal]
28863
-
28864
- MUST DO:
28865
- 1. [Specific action with exact details]
28866
- 2. [Another specific action]
28867
- ...
28868
-
28869
- MUST NOT DO:
28870
- - [Forbidden action + why]
28871
- - [Another forbidden action]
28872
- ...
28873
-
28874
- EXPECTED OUTPUT:
28875
- - [Exact deliverable description]
28876
- - [Success criteria / verification method]
28877
- \`\`\`
28878
-
28879
- If your prompt lacks this structure, REWRITE IT before delegating.
28880
- </Caller_Warning>`;
28835
+ </Category_Context>`;
28836
+ var QUICK_CATEGORY_CALLER_GUIDANCE = `<Caller_Warning>Small/fast model: before delegating, write an explicit prompt with numbered must-do steps, forbidden deviations, and concrete success criteria.</Caller_Warning>`;
28881
28837
  var UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
28882
28838
  You are working on tasks that don't fit specific categories but require moderate effort.
28883
-
28884
- <Selection_Gate>
28885
- BEFORE selecting this category, VERIFY ALL conditions:
28886
- 1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)
28887
- 2. Task requires more than trivial effort but is NOT system-wide
28888
- 3. Scope is contained within a few files/modules
28889
-
28890
- If task fits ANY other category, DO NOT select unspecified-low.
28891
- This is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.
28892
- </Selection_Gate>
28893
- </Category_Context>
28894
-
28895
- <Caller_Warning>
28896
- THIS CATEGORY USES GROK 4.6 (xhigh).
28897
-
28898
- **PROVIDE CLEAR STRUCTURE:**
28899
- 1. MUST DO: Enumerate required actions explicitly
28900
- 2. MUST NOT DO: State forbidden actions to prevent scope creep
28901
- 3. EXPECTED OUTPUT: Define concrete success criteria
28902
- </Caller_Warning>`;
28839
+ </Category_Context>`;
28840
+ var UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
28841
+ <Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`;
28903
28842
  var OPENAI_CATEGORIES = [
28904
28843
  {
28905
28844
  name: "ultrabrain",
@@ -28919,12 +28858,14 @@ var OPENAI_CATEGORIES = [
28919
28858
  name: "quick",
28920
28859
  config: { model: "kimi-for-coding/kimi-for-coding-highspeed" },
28921
28860
  description: "Trivial tasks - single file changes, typo fixes, simple modifications",
28861
+ callerGuidance: QUICK_CATEGORY_CALLER_GUIDANCE,
28922
28862
  promptAppend: QUICK_CATEGORY_PROMPT_APPEND
28923
28863
  },
28924
28864
  {
28925
28865
  name: "unspecified-low",
28926
28866
  config: { model: "xai/grok-4.6", variant: "xhigh" },
28927
28867
  description: "Tasks that don't fit other categories, low effort required",
28868
+ callerGuidance: UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE,
28928
28869
  promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
28929
28870
  }
28930
28871
  ];
@@ -28942,6 +28883,7 @@ function buildCategoryRecord(selector) {
28942
28883
  var DEFAULT_CATEGORIES = buildCategoryRecord((definition2) => definition2.config);
28943
28884
  var CATEGORY_PROMPT_APPENDS = buildCategoryRecord((definition2) => definition2.promptAppend);
28944
28885
  var CATEGORY_DESCRIPTIONS = buildCategoryRecord((definition2) => definition2.description);
28886
+ var CATEGORY_CALLER_GUIDANCE = buildCategoryRecord((definition2) => definition2.callerGuidance);
28945
28887
  var CATEGORY_PROMPT_APPEND_RESOLVERS = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition2) => definition2.resolvePromptAppend !== undefined).map((definition2) => [definition2.name, definition2.resolvePromptAppend]));
28946
28888
  var BUILTIN_CATEGORY_REQUIRES_MODEL = Object.fromEntries(BUILTIN_CATEGORIES.filter((definition2) => definition2.requiresModel !== undefined).map((definition2) => [definition2.name, definition2.requiresModel]));
28947
28889
 
@@ -98726,7 +98668,7 @@ function getCachedVersion(options = {}) {
98726
98668
  // package.json
98727
98669
  var package_default = {
98728
98670
  name: "oh-my-opencode",
98729
- version: "5.0.0-beta.10",
98671
+ version: "5.0.0-beta.11",
98730
98672
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
98731
98673
  main: "./dist/index.js",
98732
98674
  types: "dist/index.d.ts",
@@ -98907,7 +98849,7 @@ var package_default = {
98907
98849
  zod: "^4.4.3"
98908
98850
  },
98909
98851
  devDependencies: {
98910
- "@code-yeongyu/senpi": "2026.8.18-2",
98852
+ "@code-yeongyu/senpi": "2026.8.18-3",
98911
98853
  "@oh-my-opencode/agents-md-core": "workspace:*",
98912
98854
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
98913
98855
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -98948,18 +98890,18 @@ var package_default = {
98948
98890
  typescript: "^7.0.2"
98949
98891
  },
98950
98892
  optionalDependencies: {
98951
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.10",
98952
- "oh-my-opencode-darwin-x64": "5.0.0-beta.10",
98953
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.10",
98954
- "oh-my-opencode-linux-arm64": "5.0.0-beta.10",
98955
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.10",
98956
- "oh-my-opencode-linux-x64": "5.0.0-beta.10",
98957
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.10",
98958
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.10",
98959
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.10",
98960
- "oh-my-opencode-windows-arm64": "5.0.0-beta.10",
98961
- "oh-my-opencode-windows-x64": "5.0.0-beta.10",
98962
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.10"
98893
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.11",
98894
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.11",
98895
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.11",
98896
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.11",
98897
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.11",
98898
+ "oh-my-opencode-linux-x64": "5.0.0-beta.11",
98899
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.11",
98900
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.11",
98901
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.11",
98902
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.11",
98903
+ "oh-my-opencode-windows-x64": "5.0.0-beta.11",
98904
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.11"
98963
98905
  },
98964
98906
  overrides: {
98965
98907
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -132948,14 +132890,39 @@ var SISYPHUS_JUNIOR_AGENT2 = getAgentDisplayName("sisyphus-junior");
132948
132890
 
132949
132891
  // packages/omo-opencode/src/tools/delegate-task/categories.ts
132950
132892
  init_logger2();
132893
+ function resolveAvailableModelEntry(entry, availableModels) {
132894
+ const configuredModel = typeof entry === "string" ? entry : entry.model;
132895
+ const parsedModel = parseModelString(configuredModel);
132896
+ if (!parsedModel)
132897
+ return null;
132898
+ const fullModel = `${parsedModel.providerID}/${parsedModel.modelID}`;
132899
+ const matchedModel = fuzzyMatchModel2(fullModel, availableModels, [parsedModel.providerID]);
132900
+ if (!matchedModel)
132901
+ return null;
132902
+ if (typeof entry === "string") {
132903
+ return parsedModel.variant ? `${matchedModel}(${parsedModel.variant})` : matchedModel;
132904
+ }
132905
+ return {
132906
+ ...entry,
132907
+ model: matchedModel,
132908
+ variant: entry.variant ?? parsedModel.variant
132909
+ };
132910
+ }
132951
132911
  function resolveCategoryConfig(categoryName, options) {
132952
132912
  const { userCategories, inheritedModel: _inheritedModel, systemDefaultModel, availableModels } = options;
132953
132913
  const defaultConfig = DEFAULT_CATEGORIES[categoryName];
132954
- const userConfig = userCategories?.[categoryName];
132955
- const hasExplicitUserConfig = userConfig !== undefined;
132956
- if (userConfig?.disable) {
132914
+ const configuredUserConfig = userCategories?.[categoryName];
132915
+ const hasExplicitUserConfig = configuredUserConfig !== undefined;
132916
+ if (configuredUserConfig?.disable) {
132957
132917
  return null;
132958
132918
  }
132919
+ let userConfig = configuredUserConfig;
132920
+ if (configuredUserConfig?.models && availableModels && availableModels.size > 0) {
132921
+ const models2 = configuredUserConfig.models.map((entry) => resolveAvailableModelEntry(entry, availableModels)).filter((entry) => entry !== null);
132922
+ if (models2.length === 0)
132923
+ return null;
132924
+ userConfig = { ...configuredUserConfig, models: models2 };
132925
+ }
132959
132926
  const categoryReq = CATEGORY_MODEL_REQUIREMENTS[categoryName];
132960
132927
  const requiredModel = categoryReq?.requiresModel ?? BUILTIN_CATEGORY_REQUIRES_MODEL[categoryName];
132961
132928
  if (requiredModel && availableModels && !hasExplicitUserConfig) {
@@ -133140,6 +133107,11 @@ async function resolveCategoryExecution(args, executorCtx, inheritedModel, syste
133140
133107
  const requirement2 = CATEGORY_MODEL_REQUIREMENTS[categoryName];
133141
133108
  const requiredModel = requirement2?.requiresModel ?? BUILTIN_CATEGORY_REQUIRES_MODEL[categoryName];
133142
133109
  const allCategoryNames = Object.keys(enabledCategories).join(", ");
133110
+ const configuredModels = userCategories?.[categoryName]?.models;
133111
+ if (configuredModels && availableModels.size > 0) {
133112
+ const configuredChain = configuredModels.map((entry) => getConfiguredModel(entry)).join(" -> ");
133113
+ return categoryResolutionError(`Configured model chain is unavailable for category "${categoryName}": ${configuredChain}`);
133114
+ }
133143
133115
  if (categoryExists && requiredModel) {
133144
133116
  return categoryResolutionError(`Category "${categoryName}" requires model "${requiredModel}" which is not available.
133145
133117
 
@@ -133585,7 +133557,8 @@ function createDelegateTaskPresentation(options) {
133585
133557
  const categoryEntries = Object.entries(allCategories).map(([name, categoryConfig]) => ({
133586
133558
  name,
133587
133559
  categoryConfig,
133588
- description: userCategories?.[name]?.description || CATEGORY_DESCRIPTIONS[name]
133560
+ description: userCategories?.[name]?.description || CATEGORY_DESCRIPTIONS[name],
133561
+ callerGuidance: CATEGORY_CALLER_GUIDANCE[name]
133589
133562
  }));
133590
133563
  const categoryNames = categoryEntries.map(({ name }) => name);
133591
133564
  const categoryExamples = categoryNames.join(", ");
@@ -133597,8 +133570,13 @@ function createDelegateTaskPresentation(options) {
133597
133570
  };
133598
133571
  });
133599
133572
  const availableSkills = options.availableSkills ?? [];
133600
- const categoryList = categoryEntries.map(({ name, description: description2 }) => {
133601
- return description2 ? ` - ${name}: ${description2}` : ` - ${name}`;
133573
+ const categoryList = categoryEntries.map(({ name, description: description2, callerGuidance }) => {
133574
+ const categoryLine = description2 ? ` - ${name}: ${description2}` : ` - ${name}`;
133575
+ const indentedGuidance = callerGuidance?.replaceAll(`
133576
+ `, `
133577
+ `);
133578
+ return indentedGuidance ? `${categoryLine}
133579
+ ${indentedGuidance}` : categoryLine;
133602
133580
  }).join(`
133603
133581
  `);
133604
133582
  const description = `Spawn agent task with category-based or direct agent selection.
@@ -163991,8 +163969,8 @@ function applyToolConfig(params) {
163991
163969
  const atlas = agentByKey(params.agentResult, "atlas", params.pluginConfig);
163992
163970
  if (atlas) {
163993
163971
  atlas.permission = {
163994
- ...atlas.permission,
163995
163972
  task: "allow",
163973
+ ...atlas.permission,
163996
163974
  call_omo_agent: "deny",
163997
163975
  "task_*": "allow",
163998
163976
  teammate: "allow",
@@ -164002,9 +163980,9 @@ function applyToolConfig(params) {
164002
163980
  const sisyphus2 = agentByKey(params.agentResult, "sisyphus", params.pluginConfig);
164003
163981
  if (sisyphus2) {
164004
163982
  sisyphus2.permission = {
163983
+ task: "allow",
164005
163984
  ...sisyphus2.permission,
164006
163985
  call_omo_agent: "deny",
164007
- task: "allow",
164008
163986
  question: questionPermission,
164009
163987
  "task_*": "allow",
164010
163988
  teammate: "allow",
@@ -164014,9 +163992,9 @@ function applyToolConfig(params) {
164014
163992
  const hephaestus = agentByKey(params.agentResult, "hephaestus", params.pluginConfig);
164015
163993
  if (hephaestus) {
164016
163994
  hephaestus.permission = {
163995
+ task: "allow",
164017
163996
  ...hephaestus.permission,
164018
163997
  call_omo_agent: "deny",
164019
- task: "allow",
164020
163998
  question: questionPermission,
164021
163999
  teammate: "allow",
164022
164000
  ...denyTodoTools
@@ -164025,9 +164003,9 @@ function applyToolConfig(params) {
164025
164003
  const prometheus = agentByKey(params.agentResult, "prometheus", params.pluginConfig);
164026
164004
  if (prometheus) {
164027
164005
  prometheus.permission = {
164006
+ task: "allow",
164028
164007
  ...prometheus.permission,
164029
164008
  call_omo_agent: "deny",
164030
- task: "allow",
164031
164009
  question: questionPermission,
164032
164010
  "task_*": "allow",
164033
164011
  teammate: "allow",