@reinamaccredy/oh-my-opencode 3.0.0-beta.1 → 3.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.
package/README.ja.md CHANGED
@@ -362,7 +362,7 @@ opencode auth login
362
362
  `opencode.json` に完全なモデル設定も構成する必要があります。
363
363
  [opencode-openai-codex-auth ドキュメント](https://github.com/numman-ali/opencode-openai-codex-auth)を読み、[`config/opencode-modern.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-modern.json)(OpenCode v1.0.210+)または [`config/opencode-legacy.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-legacy.json)(旧バージョン)から provider/models 設定をコピーして、ユーザーの既存のセットアップを壊さないよう慎重にマージしてください。
364
364
 
365
- **利用可能なモデル**: `openai/gpt-5.2`, `openai/gpt-5.2-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
365
+ **利用可能なモデル**: `proxypal/gpt-5.2-codex`, `proxypal/gpt-5.2-codex-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
366
366
 
367
367
  **Variants** (OpenCode v1.0.210+): `--variant=<none|low|medium|high|xhigh>` オプションで推論強度を制御できます。
368
368
 
@@ -460,7 +460,7 @@ oh-my-opencode を削除するには:
460
460
  ### Agents: あなたの新しいチームメイト
461
461
 
462
462
  - **Sisyphus** (`anthropic/claude-opus-4-5`): **デフォルトエージェントです。** OpenCode のための強力な AI オーケストレーターです。専門のサブエージェントを活用して、複雑なタスクを計画、委任、実行します。バックグラウンドタスクへの委任と Todo ベースのワークフローを重視します。最大の推論能力を発揮するため、Claude Opus 4.5 と拡張思考 (32k token budget) を使用します。
463
- - **oracle** (`openai/gpt-5.2`): アーキテクチャ、コードレビュー、戦略立案のための専門アドバイザー。GPT-5.2 の卓越した論理的推論と深い分析能力を活用します。AmpCode からインスピレーションを得ました。
463
+ - **oracle** (`proxypal/gpt-5.2-codex`): アーキテクチャ、コードレビュー、戦略立案のための専門アドバイザー。GPT-5.2 の卓越した論理的推論と深い分析能力を活用します。AmpCode からインスピレーションを得ました。
464
464
  - **librarian** (`anthropic/claude-sonnet-4-5` または `google/gemini-3-flash`): マルチリポジトリ分析、ドキュメント検索、実装例の調査を担当。Antigravity 認証が設定されている場合は Gemini 3 Flash を使用し、それ以外は Claude Sonnet 4.5 を使用して、深いコードベース理解と GitHub リサーチ、根拠に基づいた回答を提供します。AmpCode からインスピレーションを得ました。
465
465
  - **explore** (`opencode/grok-code`、`google/gemini-3-flash`、または `anthropic/claude-haiku-4-5`): 高速なコードベース探索、ファイルパターンマッチング。Antigravity 認証が設定されている場合は Gemini 3 Flash を使用し、Claude max20 が利用可能な場合は Haiku を使用し、それ以外は Grok を使います。Claude Code からインスピレーションを得ました。
466
466
  - **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): 開発者に転身したデザイナーという設定です。素晴らしい UI を作ります。美しく独創的な UI コードを生成することに長けた Gemini を使用します。
@@ -755,7 +755,7 @@ Oh My OpenCode は以下の場所からフックを読み込んで実行しま
755
755
  /* エージェントのオーバーライド - 特定のタスクに合わせてモデルをカスタマイズ */
756
756
  "agents": {
757
757
  "oracle": {
758
- "model": "openai/gpt-5.2" // 戦略的な推論のための GPT
758
+ "model": "proxypal/gpt-5.2-codex" // 戦略的な推論のための GPT
759
759
  },
760
760
  "explore": {
761
761
  "model": "opencode/grok-code" // 探索のための高速かつ無料のモデル
@@ -916,7 +916,7 @@ Oh My OpenCode は以下の場所からフックを読み込んで実行しま
916
916
  "model": "anthropic/claude-opus-4"
917
917
  },
918
918
  "Prometheus (Planner)": {
919
- "model": "openai/gpt-5.2"
919
+ "model": "proxypal/gpt-5.2-codex"
920
920
  },
921
921
  "Metis (Plan Consultant)": {
922
922
  "model": "anthropic/claude-sonnet-4-5"
package/README.md CHANGED
@@ -401,7 +401,7 @@ First, add the opencode-openai-codex-auth plugin:
401
401
  You'll also need full model settings in `opencode.json`.
402
402
  Read the [opencode-openai-codex-auth documentation](https://github.com/numman-ali/opencode-openai-codex-auth), copy provider/models config from [`config/opencode-modern.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-modern.json) (for OpenCode v1.0.210+) or [`config/opencode-legacy.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-legacy.json) (for older versions), and merge carefully to avoid breaking the user's existing setup.
403
403
 
404
- **Available models**: `openai/gpt-5.2`, `openai/gpt-5.2-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
404
+ **Available models**: `proxypal/gpt-5.2-codex`, `proxypal/gpt-5.2-codex-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
405
405
 
406
406
  **Variants** (OpenCode v1.0.210+): Use `--variant=<none|low|medium|high|xhigh>` for reasoning effort control.
407
407
 
@@ -498,7 +498,7 @@ To remove oh-my-opencode:
498
498
  ### Agents: Your Teammates
499
499
 
500
500
  - **Sisyphus** (`anthropic/claude-opus-4-5`): **The default agent.** A powerful AI orchestrator for OpenCode. Plans, delegates, and executes complex tasks using specialized subagents with aggressive parallel execution. Emphasizes background task delegation and todo-driven workflow. Uses Claude Opus 4.5 with extended thinking (32k budget) for maximum reasoning capability.
501
- - **oracle** (`openai/gpt-5.2`): Architecture, code review, strategy. Uses GPT-5.2 for its stellar logical reasoning and deep analysis. Inspired by AmpCode.
501
+ - **oracle** (`proxypal/gpt-5.2-codex`): Architecture, code review, strategy. Uses GPT-5.2 for its stellar logical reasoning and deep analysis. Inspired by AmpCode.
502
502
  - **librarian** (`anthropic/claude-sonnet-4-5` or `google/gemini-3-flash`): Multi-repo analysis, doc lookup, implementation examples. Uses Gemini 3 Flash when Antigravity auth is configured, otherwise Claude Sonnet 4.5 for deep codebase understanding and GitHub research with evidence-based answers. Inspired by AmpCode.
503
503
  - **explore** (`opencode/grok-code`, `google/gemini-3-flash`, or `anthropic/claude-haiku-4-5`): Fast codebase exploration and pattern matching. Uses Gemini 3 Flash when Antigravity auth is configured, Haiku when Claude max20 is available, otherwise Grok. Inspired by Claude Code.
504
504
  - **frontend-ui-ux-engineer** (`google/gemini-3-pro-high`): A designer turned developer. Builds gorgeous UIs. Gemini excels at creative, beautiful UI code.
@@ -811,7 +811,7 @@ When both `oh-my-opencode.jsonc` and `oh-my-opencode.json` files exist, `.jsonc`
811
811
  /* Agent overrides - customize models for specific tasks */
812
812
  "agents": {
813
813
  "oracle": {
814
- "model": "openai/gpt-5.2" // GPT for strategic reasoning
814
+ "model": "proxypal/gpt-5.2-codex" // GPT for strategic reasoning
815
815
  },
816
816
  "explore": {
817
817
  "model": "opencode/grok-code" // Free & fast for exploration
@@ -1007,7 +1007,7 @@ You can also customize Sisyphus agents like other agents:
1007
1007
  "model": "anthropic/claude-opus-4"
1008
1008
  },
1009
1009
  "Prometheus (Planner)": {
1010
- "model": "openai/gpt-5.2"
1010
+ "model": "proxypal/gpt-5.2-codex"
1011
1011
  },
1012
1012
  "Metis (Plan Consultant)": {
1013
1013
  "model": "anthropic/claude-sonnet-4-5"
@@ -1066,7 +1066,7 @@ Categories enable domain-specific task delegation via the `sisyphus_task` tool.
1066
1066
  | Category | Model | Description |
1067
1067
  |----------|-------|-------------|
1068
1068
  | `visual` | `google/gemini-3-pro-preview` | Frontend, UI/UX, design-focused tasks. High creativity (temp 0.7). |
1069
- | `business-logic` | `openai/gpt-5.2` | Backend logic, architecture, strategic reasoning. Low creativity (temp 0.1). |
1069
+ | `business-logic` | `proxypal/gpt-5.2-codex` | Backend logic, architecture, strategic reasoning. Low creativity (temp 0.1). |
1070
1070
 
1071
1071
  **Usage:**
1072
1072
 
package/README.zh-cn.md CHANGED
@@ -367,7 +367,7 @@ opencode auth login
367
367
  要在 `opencode.json` 里配完整的模型设置。
368
368
  去读 [opencode-openai-codex-auth 文档](https://github.com/numman-ali/opencode-openai-codex-auth),从 [`config/opencode-modern.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-modern.json)(OpenCode v1.0.210+)或 [`config/opencode-legacy.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/opencode-legacy.json)(旧版本)抄 provider/models 配置,动脑子合并,别搞炸了。
369
369
 
370
- **可用模型**:`openai/gpt-5.2`, `openai/gpt-5.2-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
370
+ **可用模型**:`proxypal/gpt-5.2-codex`, `proxypal/gpt-5.2-codex-codex`, `openai/gpt-5.1-codex-max`, `openai/gpt-5.1-codex`, `openai/gpt-5.1-codex-mini`, `openai/gpt-5.1`
371
371
 
372
372
  **Variants**(OpenCode v1.0.210+):用 `--variant=<none|low|medium|high|xhigh>` 控制推理强度。
373
373
 
@@ -465,7 +465,7 @@ gh repo star code-yeongyu/oh-my-opencode
465
465
  ### Agents:你的神队友
466
466
 
467
467
  - **Sisyphus** (`anthropic/claude-opus-4-5`):**默认 Agent。** OpenCode 专属的强力 AI 编排器。指挥专业子 Agent 搞定复杂任务。主打后台任务委派和 Todo 驱动。用 Claude Opus 4.5 加上扩展思考(32k token 预算),智商拉满。
468
- - **oracle** (`openai/gpt-5.2`):架构师、代码审查员、战略家。GPT-5.2 的逻辑推理和深度分析能力不是盖的。致敬 AmpCode。
468
+ - **oracle** (`proxypal/gpt-5.2-codex`):架构师、代码审查员、战略家。GPT-5.2 的逻辑推理和深度分析能力不是盖的。致敬 AmpCode。
469
469
  - **librarian** (`anthropic/claude-sonnet-4-5` 或 `google/gemini-3-flash`):多仓库分析、查文档、找示例。配置 Antigravity 认证时使用 Gemini 3 Flash,否则使用 Claude Sonnet 4.5 深入理解代码库,GitHub 调研,给出的答案都有据可查。致敬 AmpCode。
470
470
  - **explore** (`opencode/grok-code`、`google/gemini-3-flash` 或 `anthropic/claude-haiku-4-5`):极速代码库扫描、模式匹配。配置 Antigravity 认证时使用 Gemini 3 Flash,Claude max20 可用时使用 Haiku,否则用 Grok。致敬 Claude Code。
471
471
  - **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`):设计师出身的程序员。UI 做得那是真漂亮。Gemini 写这种创意美观的代码是一绝。
@@ -756,7 +756,7 @@ Agent 爽了,你自然也爽。但我还想直接让你爽。
756
756
  /* Agent 覆盖 - 为特定任务自定义模型 */
757
757
  "agents": {
758
758
  "oracle": {
759
- "model": "openai/gpt-5.2" // 用于战略推理的 GPT
759
+ "model": "proxypal/gpt-5.2-codex" // 用于战略推理的 GPT
760
760
  },
761
761
  "explore": {
762
762
  "model": "opencode/grok-code" // 快速且免费的搜索模型
@@ -917,7 +917,7 @@ Sisyphus Agent 也能自定义:
917
917
  "model": "anthropic/claude-opus-4"
918
918
  },
919
919
  "Prometheus (Planner)": {
920
- "model": "openai/gpt-5.2"
920
+ "model": "proxypal/gpt-5.2-codex"
921
921
  },
922
922
  "Metis (Plan Consultant)": {
923
923
  "model": "anthropic/claude-sonnet-4-5"
@@ -27,20 +27,6 @@ export interface BunInstallResult {
27
27
  }
28
28
  export declare function runBunInstall(): Promise<boolean>;
29
29
  export declare function runBunInstallWithDetails(): Promise<BunInstallResult>;
30
- /**
31
- * Antigravity Provider Configuration
32
- *
33
- * IMPORTANT: Model names MUST use `antigravity-` prefix for stability.
34
- *
35
- * The opencode-antigravity-auth plugin supports two naming conventions:
36
- * - `antigravity-gemini-3-pro-high` (RECOMMENDED, explicit Antigravity quota routing)
37
- * - `gemini-3-pro-high` (LEGACY, backward compatible but may break in future)
38
- *
39
- * Legacy names rely on Gemini CLI using `-preview` suffix for disambiguation.
40
- * If Google removes `-preview`, legacy names may route to wrong quota.
41
- *
42
- * @see https://github.com/NoeFabris/opencode-antigravity-auth#migration-guide-v127
43
- */
44
30
  export declare const ANTIGRAVITY_PROVIDER_CONFIG: {
45
31
  google: {
46
32
  name: string;
package/dist/cli/index.js CHANGED
@@ -2253,7 +2253,7 @@ var require_picocolors = __commonJS((exports, module) => {
2253
2253
  var require_package = __commonJS((exports, module) => {
2254
2254
  module.exports = {
2255
2255
  name: "@reinamaccredy/oh-my-opencode",
2256
- version: "3.0.0-beta.1",
2256
+ version: "3.0.0-beta.11",
2257
2257
  description: "Fork of oh-my-opencode with Maestro workflow integration - Multi-Model Orchestration, Parallel Background Agents, Design Phases, and TDD Methodology",
2258
2258
  main: "dist/index.js",
2259
2259
  types: "dist/index.d.ts",
@@ -2281,6 +2281,10 @@ var require_package = __commonJS((exports, module) => {
2281
2281
  "build:schema": "bun run script/build-schema.ts",
2282
2282
  clean: "rm -rf dist",
2283
2283
  prepublishOnly: "bun run clean && bun run build",
2284
+ "publish:beta": "./scripts/publish.sh prerelease",
2285
+ "publish:patch": "./scripts/publish.sh patch",
2286
+ "publish:minor": "./scripts/publish.sh minor",
2287
+ "publish:major": "./scripts/publish.sh major",
2284
2288
  typecheck: "tsc --noEmit",
2285
2289
  test: "bun test"
2286
2290
  },
@@ -6734,44 +6738,84 @@ function generateOmoConfig(installConfig) {
6734
6738
  const config = {
6735
6739
  $schema: "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
6736
6740
  };
6737
- if (installConfig.hasGemini) {
6741
+ if (installConfig.hasProxyPal || installConfig.hasGemini) {
6738
6742
  config.google_auth = false;
6739
6743
  }
6740
6744
  const agents = {};
6741
- if (!installConfig.hasClaude) {
6742
- agents["Sisyphus"] = { model: "opencode/glm-4.7-free" };
6743
- }
6744
- agents["librarian"] = { model: "opencode/glm-4.7-free" };
6745
- if (installConfig.hasGemini) {
6746
- agents["explore"] = { model: "google/antigravity-gemini-3-flash" };
6747
- } else if (installConfig.hasClaude && installConfig.isMax20) {
6748
- agents["explore"] = { model: "anthropic/claude-haiku-4-5" };
6745
+ if (installConfig.hasProxyPal) {
6746
+ agents["Sisyphus"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6747
+ agents["librarian"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6748
+ agents["explore"] = { model: "proxypal/gemini-3-flash-preview" };
6749
+ agents["frontend-ui-ux-engineer"] = { model: "proxypal/gemini-3-pro-preview" };
6750
+ agents["document-writer"] = { model: "proxypal/gemini-3-flash-preview" };
6751
+ agents["multimodal-looker"] = { model: "proxypal/gemini-3-flash-preview" };
6752
+ agents["orchestrator-sisyphus"] = { model: "proxypal/gemini-claude-sonnet-4-5-thinking" };
6753
+ agents["Prometheus (Planner)"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6754
+ agents["Metis (Plan Consultant)"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6755
+ agents["oracle"] = { model: "proxypal/gpt-5.2-codex" };
6756
+ agents["Momus (Plan Reviewer)"] = { model: "proxypal/gpt-5.2-codex" };
6757
+ } else if (installConfig.hasGemini) {
6758
+ agents["Sisyphus"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6759
+ agents["librarian"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6760
+ agents["explore"] = { model: "proxypal/gemini-3-flash-preview" };
6761
+ agents["frontend-ui-ux-engineer"] = { model: "proxypal/gemini-3-pro-preview" };
6762
+ agents["document-writer"] = { model: "proxypal/gemini-3-flash-preview" };
6763
+ agents["multimodal-looker"] = { model: "proxypal/gemini-3-flash-preview" };
6764
+ agents["orchestrator-sisyphus"] = { model: "proxypal/gemini-claude-sonnet-4-5-thinking" };
6765
+ agents["Prometheus (Planner)"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6766
+ agents["Metis (Plan Consultant)"] = { model: "proxypal/gemini-claude-opus-4-5-thinking" };
6767
+ } else if (installConfig.hasClaude) {
6768
+ agents["Sisyphus"] = { model: "anthropic/claude-opus-4-5" };
6769
+ agents["librarian"] = { model: "anthropic/claude-sonnet-4-5" };
6770
+ agents["explore"] = { model: installConfig.isMax20 ? "anthropic/claude-haiku-4-5" : "opencode/glm-4.7-free" };
6771
+ agents["frontend-ui-ux-engineer"] = { model: "anthropic/claude-opus-4-5" };
6772
+ agents["document-writer"] = { model: "anthropic/claude-opus-4-5" };
6773
+ agents["multimodal-looker"] = { model: "anthropic/claude-opus-4-5" };
6749
6774
  } else {
6775
+ agents["Sisyphus"] = { model: "opencode/glm-4.7-free" };
6776
+ agents["librarian"] = { model: "opencode/glm-4.7-free" };
6750
6777
  agents["explore"] = { model: "opencode/glm-4.7-free" };
6751
- }
6752
- if (!installConfig.hasChatGPT) {
6753
- agents["oracle"] = {
6754
- model: installConfig.hasClaude ? "anthropic/claude-opus-4-5" : "opencode/glm-4.7-free"
6755
- };
6756
- }
6757
- if (installConfig.hasGemini) {
6758
- agents["frontend-ui-ux-engineer"] = { model: "google/antigravity-gemini-3-pro-high" };
6759
- agents["document-writer"] = { model: "google/antigravity-gemini-3-flash" };
6760
- agents["multimodal-looker"] = { model: "google/antigravity-gemini-3-flash" };
6761
- } else {
6762
- const fallbackModel = installConfig.hasClaude ? "anthropic/claude-opus-4-5" : "opencode/glm-4.7-free";
6763
- agents["frontend-ui-ux-engineer"] = { model: fallbackModel };
6764
- agents["document-writer"] = { model: fallbackModel };
6765
- agents["multimodal-looker"] = { model: fallbackModel };
6778
+ agents["frontend-ui-ux-engineer"] = { model: "opencode/glm-4.7-free" };
6779
+ agents["document-writer"] = { model: "opencode/glm-4.7-free" };
6780
+ agents["multimodal-looker"] = { model: "opencode/glm-4.7-free" };
6781
+ }
6782
+ if (!installConfig.hasProxyPal) {
6783
+ if (installConfig.hasChatGPT) {
6784
+ agents["oracle"] = { model: "proxypal/gpt-5.2-codex" };
6785
+ agents["Momus (Plan Reviewer)"] = { model: "proxypal/gpt-5.2-codex" };
6786
+ } else if (installConfig.hasClaude) {
6787
+ agents["oracle"] = { model: "anthropic/claude-opus-4-5" };
6788
+ agents["Momus (Plan Reviewer)"] = { model: "anthropic/claude-opus-4-5" };
6789
+ } else {
6790
+ agents["oracle"] = { model: "opencode/glm-4.7-free" };
6791
+ }
6766
6792
  }
6767
6793
  if (Object.keys(agents).length > 0) {
6768
6794
  config.agents = agents;
6769
6795
  }
6770
- if (installConfig.hasGemini) {
6796
+ if (installConfig.hasProxyPal) {
6797
+ config.categories = {
6798
+ "visual-engineering": { model: "proxypal/gemini-3-pro-preview" },
6799
+ ultrabrain: { model: "proxypal/gpt-5.2-codex" },
6800
+ artistry: { model: "proxypal/gemini-3-pro-preview" },
6801
+ quick: { model: "proxypal/gemini-3-flash-preview" },
6802
+ "most-capable": { model: "proxypal/gemini-claude-opus-4-5-thinking" },
6803
+ writing: { model: "proxypal/gemini-3-flash-preview" },
6804
+ general: { model: "proxypal/gemini-claude-opus-4-5-thinking" }
6805
+ };
6806
+ } else if (installConfig.hasGemini) {
6771
6807
  config.categories = {
6772
- "visual-engineering": { model: "google/gemini-3-pro-high" },
6773
- artistry: { model: "google/gemini-3-pro-high" },
6774
- writing: { model: "google/gemini-3-flash-high" }
6808
+ "visual-engineering": { model: "proxypal/gemini-3-pro-preview" },
6809
+ ultrabrain: { model: "proxypal/gpt-5.2-codex" },
6810
+ artistry: { model: "proxypal/gemini-3-pro-preview" },
6811
+ quick: { model: "proxypal/gemini-3-flash-preview" },
6812
+ "most-capable": { model: "proxypal/gemini-claude-opus-4-5-thinking" },
6813
+ writing: { model: "proxypal/gemini-3-flash-preview" },
6814
+ general: { model: "proxypal/gemini-claude-opus-4-5-thinking" }
6815
+ };
6816
+ } else if (installConfig.hasChatGPT) {
6817
+ config.categories = {
6818
+ ultrabrain: { model: "proxypal/gpt-5.2-codex" }
6775
6819
  };
6776
6820
  }
6777
6821
  return config;
@@ -6887,6 +6931,78 @@ async function addAuthPlugins(config) {
6887
6931
  return { success: false, configPath: path3, error: formatErrorWithSuggestion(err, "add auth plugins to config") };
6888
6932
  }
6889
6933
  }
6934
+ var PROXYPAL_PROVIDER_CONFIG = {
6935
+ proxypal: {
6936
+ name: "ProxyPal",
6937
+ npm: "@ai-sdk/anthropic",
6938
+ options: {
6939
+ apiKey: "proxypal-local",
6940
+ baseURL: "http://127.0.0.1:8317/v1",
6941
+ includeUsage: true
6942
+ },
6943
+ models: {
6944
+ "gemini-claude-opus-4-5-thinking": {
6945
+ name: "Gemini Claude Opus 4 5 Thinking",
6946
+ limit: { context: 168000, output: 64000 },
6947
+ options: { thinking: { budgetTokens: 32768, type: "enabled" } },
6948
+ reasoning: true
6949
+ },
6950
+ "gemini-claude-sonnet-4-5-thinking": {
6951
+ name: "Gemini Claude Sonnet 4 5 Thinking",
6952
+ limit: { context: 168000, output: 64000 },
6953
+ options: { thinking: { budgetTokens: 32768, type: "enabled" } },
6954
+ reasoning: true
6955
+ },
6956
+ "gemini-claude-sonnet-4-5": {
6957
+ name: "Gemini Claude Sonnet 4 5",
6958
+ limit: { context: 168000, output: 64000 }
6959
+ },
6960
+ "gemini-3-pro-preview": {
6961
+ name: "Gemini 3 Pro Preview",
6962
+ limit: { context: 880964, output: 65536 }
6963
+ },
6964
+ "gemini-3-flash-preview": {
6965
+ name: "Gemini 3 Flash Preview",
6966
+ limit: { context: 880964, output: 65536 }
6967
+ },
6968
+ "gemini-2.5-flash": {
6969
+ name: "Gemini 2 5 Flash",
6970
+ limit: { context: 880964, output: 65536 }
6971
+ },
6972
+ "gpt-5.2-codex": {
6973
+ name: "Gpt 5 2 Codex",
6974
+ limit: { context: 336000, output: 32768 },
6975
+ options: { reasoningEffort: "xhigh" },
6976
+ reasoning: true
6977
+ },
6978
+ "gpt-5.2": {
6979
+ name: "Gpt 5 2",
6980
+ limit: { context: 336000, output: 32768 },
6981
+ options: { reasoningEffort: "xhigh" },
6982
+ reasoning: true
6983
+ },
6984
+ "gpt-5.1-codex-max": {
6985
+ name: "Gpt 5 1 Codex Max",
6986
+ limit: { context: 336000, output: 32768 },
6987
+ options: { reasoningEffort: "xhigh" },
6988
+ reasoning: true
6989
+ },
6990
+ "antigravity-gemini-3-pro-high": {
6991
+ name: "Gemini 3 Pro High (Antigravity)",
6992
+ thinking: true,
6993
+ attachment: true,
6994
+ limit: { context: 1048576, output: 65535 },
6995
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] }
6996
+ },
6997
+ "antigravity-gemini-3-flash": {
6998
+ name: "Gemini 3 Flash (Antigravity)",
6999
+ attachment: true,
7000
+ limit: { context: 1048576, output: 65536 },
7001
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] }
7002
+ }
7003
+ }
7004
+ }
7005
+ };
6890
7006
  var ANTIGRAVITY_PROVIDER_CONFIG = {
6891
7007
  google: {
6892
7008
  name: "Google",
@@ -6981,6 +7097,9 @@ function addProviderConfig(config) {
6981
7097
  }
6982
7098
  const newConfig = { ...existingConfig ?? {} };
6983
7099
  const providers = newConfig.provider ?? {};
7100
+ if (config.hasProxyPal) {
7101
+ providers.proxypal = PROXYPAL_PROVIDER_CONFIG.proxypal;
7102
+ }
6984
7103
  if (config.hasGemini) {
6985
7104
  providers.google = ANTIGRAVITY_PROVIDER_CONFIG.google;
6986
7105
  }
@@ -7000,6 +7119,7 @@ function addProviderConfig(config) {
7000
7119
  function detectCurrentConfig() {
7001
7120
  const result = {
7002
7121
  isInstalled: false,
7122
+ hasProxyPal: false,
7003
7123
  hasClaude: true,
7004
7124
  isMax20: true,
7005
7125
  hasChatGPT: true,
@@ -7039,6 +7159,14 @@ function detectCurrentConfig() {
7039
7159
  return result;
7040
7160
  }
7041
7161
  const agents = omoConfig.agents ?? {};
7162
+ if (agents["Sisyphus"]?.model?.startsWith("proxypal/")) {
7163
+ result.hasProxyPal = true;
7164
+ result.hasClaude = false;
7165
+ result.isMax20 = false;
7166
+ result.hasChatGPT = false;
7167
+ result.hasGemini = false;
7168
+ return result;
7169
+ }
7042
7170
  if (agents["Sisyphus"]?.model === "opencode/glm-4.7-free") {
7043
7171
  result.hasClaude = false;
7044
7172
  result.isMax20 = false;
@@ -7078,19 +7206,48 @@ function formatConfigSummary(config) {
7078
7206
  const lines = [];
7079
7207
  lines.push(import_picocolors2.default.bold(import_picocolors2.default.white("Configuration Summary")));
7080
7208
  lines.push("");
7081
- const claudeDetail = config.hasClaude ? config.isMax20 ? "max20" : "standard" : undefined;
7082
- lines.push(formatProvider("Claude", config.hasClaude, claudeDetail));
7083
- lines.push(formatProvider("ChatGPT", config.hasChatGPT));
7084
- lines.push(formatProvider("Gemini", config.hasGemini));
7209
+ if (config.hasProxyPal) {
7210
+ lines.push(formatProvider("ProxyPal", true, "all models via proxy"));
7211
+ lines.push(formatProvider("Claude", false));
7212
+ lines.push(formatProvider("ChatGPT", false));
7213
+ lines.push(formatProvider("Gemini", false));
7214
+ } else {
7215
+ lines.push(formatProvider("ProxyPal", false));
7216
+ const claudeDetail = config.hasClaude ? config.isMax20 ? "max20" : "standard" : undefined;
7217
+ lines.push(formatProvider("Claude", config.hasClaude, claudeDetail));
7218
+ lines.push(formatProvider("ChatGPT", config.hasChatGPT));
7219
+ lines.push(formatProvider("Gemini", config.hasGemini));
7220
+ }
7085
7221
  lines.push("");
7086
7222
  lines.push(import_picocolors2.default.dim("\u2500".repeat(40)));
7087
7223
  lines.push("");
7088
7224
  lines.push(import_picocolors2.default.bold(import_picocolors2.default.white("Agent Configuration")));
7089
7225
  lines.push("");
7090
- const sisyphusModel = config.hasClaude ? "claude-opus-4-5" : "glm-4.7-free";
7091
- const oracleModel = config.hasChatGPT ? "gpt-5.2" : config.hasClaude ? "claude-opus-4-5" : "glm-4.7-free";
7092
- const librarianModel = "glm-4.7-free";
7093
- const frontendModel = config.hasGemini ? "antigravity-gemini-3-pro-high" : config.hasClaude ? "claude-opus-4-5" : "glm-4.7-free";
7226
+ let sisyphusModel;
7227
+ let oracleModel;
7228
+ let librarianModel;
7229
+ let frontendModel;
7230
+ if (config.hasProxyPal) {
7231
+ sisyphusModel = "gemini-claude-opus-4-5-thinking";
7232
+ oracleModel = "gpt-5.2-codex";
7233
+ librarianModel = "gemini-claude-opus-4-5-thinking";
7234
+ frontendModel = "gemini-3-pro-preview";
7235
+ } else if (config.hasGemini) {
7236
+ sisyphusModel = "gemini-claude-opus-4-5-thinking";
7237
+ oracleModel = config.hasChatGPT ? "gpt-5.2-codex" : config.hasClaude ? "claude-opus-4-5" : "glm-4.7-free";
7238
+ librarianModel = "gemini-claude-opus-4-5-thinking";
7239
+ frontendModel = "gemini-3-pro-preview";
7240
+ } else if (config.hasClaude) {
7241
+ sisyphusModel = "claude-opus-4-5";
7242
+ oracleModel = config.hasChatGPT ? "gpt-5.2-codex" : "claude-opus-4-5";
7243
+ librarianModel = "claude-sonnet-4-5";
7244
+ frontendModel = "claude-opus-4-5";
7245
+ } else {
7246
+ sisyphusModel = "glm-4.7-free";
7247
+ oracleModel = config.hasChatGPT ? "gpt-5.2-codex" : "glm-4.7-free";
7248
+ librarianModel = "glm-4.7-free";
7249
+ frontendModel = "glm-4.7-free";
7250
+ }
7094
7251
  lines.push(` ${SYMBOLS.bullet} Sisyphus ${SYMBOLS.arrow} ${import_picocolors2.default.cyan(sisyphusModel)}`);
7095
7252
  lines.push(` ${SYMBOLS.bullet} Oracle ${SYMBOLS.arrow} ${import_picocolors2.default.cyan(oracleModel)}`);
7096
7253
  lines.push(` ${SYMBOLS.bullet} Librarian ${SYMBOLS.arrow} ${import_picocolors2.default.cyan(librarianModel)}`);
@@ -7141,6 +7298,12 @@ function printBox(content, title) {
7141
7298
  }
7142
7299
  function validateNonTuiArgs(args) {
7143
7300
  const errors = [];
7301
+ if (args.proxypal !== undefined && !["no", "yes"].includes(args.proxypal)) {
7302
+ errors.push(`Invalid --proxypal value: ${args.proxypal} (expected: no, yes)`);
7303
+ }
7304
+ if (args.proxypal === "yes") {
7305
+ return { valid: errors.length === 0, errors };
7306
+ }
7144
7307
  if (args.claude === undefined) {
7145
7308
  errors.push("--claude is required (values: no, yes, max20)");
7146
7309
  } else if (!["no", "yes", "max20"].includes(args.claude)) {
@@ -7159,7 +7322,17 @@ function validateNonTuiArgs(args) {
7159
7322
  return { valid: errors.length === 0, errors };
7160
7323
  }
7161
7324
  function argsToConfig(args) {
7325
+ if (args.proxypal === "yes") {
7326
+ return {
7327
+ hasProxyPal: true,
7328
+ hasClaude: false,
7329
+ isMax20: false,
7330
+ hasChatGPT: false,
7331
+ hasGemini: false
7332
+ };
7333
+ }
7162
7334
  return {
7335
+ hasProxyPal: false,
7163
7336
  hasClaude: args.claude !== "no",
7164
7337
  isMax20: args.claude === "max20",
7165
7338
  hasChatGPT: args.chatgpt === "yes",
@@ -7172,6 +7345,7 @@ function detectedToInitialValues(detected) {
7172
7345
  claude = detected.isMax20 ? "max20" : "yes";
7173
7346
  }
7174
7347
  return {
7348
+ proxypal: detected.hasProxyPal ? "yes" : "no",
7175
7349
  claude,
7176
7350
  chatgpt: detected.hasChatGPT ? "yes" : "no",
7177
7351
  gemini: detected.hasGemini ? "yes" : "no"
@@ -7179,6 +7353,27 @@ function detectedToInitialValues(detected) {
7179
7353
  }
7180
7354
  async function runTuiMode(detected) {
7181
7355
  const initial = detectedToInitialValues(detected);
7356
+ const proxypal = await ve({
7357
+ message: "Are you using ProxyPal? (github.com/heyhuynhgiabuu/proxypal)",
7358
+ options: [
7359
+ { value: "yes", label: "Yes", hint: "All models via ProxyPal proxy - skip other questions" },
7360
+ { value: "no", label: "No", hint: "Configure individual providers" }
7361
+ ],
7362
+ initialValue: initial.proxypal
7363
+ });
7364
+ if (pD(proxypal)) {
7365
+ xe("Installation cancelled.");
7366
+ return null;
7367
+ }
7368
+ if (proxypal === "yes") {
7369
+ return {
7370
+ hasProxyPal: true,
7371
+ hasClaude: false,
7372
+ isMax20: false,
7373
+ hasChatGPT: false,
7374
+ hasGemini: false
7375
+ };
7376
+ }
7182
7377
  const claude = await ve({
7183
7378
  message: "Do you have a Claude Pro/Max subscription?",
7184
7379
  options: [
@@ -7217,6 +7412,7 @@ async function runTuiMode(detected) {
7217
7412
  return null;
7218
7413
  }
7219
7414
  return {
7415
+ hasProxyPal: false,
7220
7416
  hasClaude: claude !== "no",
7221
7417
  isMax20: claude === "max20",
7222
7418
  hasChatGPT: chatgpt === "yes",
@@ -7232,7 +7428,8 @@ async function runNonTuiInstall(args) {
7232
7428
  console.log(` ${SYMBOLS.bullet} ${err}`);
7233
7429
  }
7234
7430
  console.log();
7235
- printInfo("Usage: bunx oh-my-opencode install --no-tui --claude=<no|yes|max20> --chatgpt=<no|yes> --gemini=<no|yes>");
7431
+ printInfo("Usage: bunx oh-my-opencode install --no-tui --proxypal=yes");
7432
+ printInfo(" or: bunx oh-my-opencode install --no-tui --claude=<no|yes|max20> --chatgpt=<no|yes> --gemini=<no|yes>");
7236
7433
  console.log();
7237
7434
  return 1;
7238
7435
  }
@@ -7252,7 +7449,11 @@ async function runNonTuiInstall(args) {
7252
7449
  printSuccess(`OpenCode ${version ?? ""} detected`);
7253
7450
  if (isUpdate) {
7254
7451
  const initial = detectedToInitialValues(detected);
7255
- printInfo(`Current config: Claude=${initial.claude}, ChatGPT=${initial.chatgpt}, Gemini=${initial.gemini}`);
7452
+ if (initial.proxypal === "yes") {
7453
+ printInfo(`Current config: ProxyPal=yes`);
7454
+ } else {
7455
+ printInfo(`Current config: Claude=${initial.claude}, ChatGPT=${initial.chatgpt}, Gemini=${initial.gemini}`);
7456
+ }
7256
7457
  }
7257
7458
  const config = argsToConfig(args);
7258
7459
  printStep(step++, totalSteps, "Adding oh-my-opencode plugin...");
@@ -7262,7 +7463,16 @@ async function runNonTuiInstall(args) {
7262
7463
  return 1;
7263
7464
  }
7264
7465
  printSuccess(`Plugin ${isUpdate ? "verified" : "added"} ${SYMBOLS.arrow} ${import_picocolors2.default.dim(pluginResult.configPath)}`);
7265
- if (config.hasGemini || config.hasChatGPT) {
7466
+ if (config.hasProxyPal) {
7467
+ printStep(step++, totalSteps, "Adding ProxyPal provider configuration...");
7468
+ const providerResult = addProviderConfig(config);
7469
+ if (!providerResult.success) {
7470
+ printError(`Failed: ${providerResult.error}`);
7471
+ return 1;
7472
+ }
7473
+ printSuccess(`ProxyPal configured ${SYMBOLS.arrow} ${import_picocolors2.default.dim(providerResult.configPath)}`);
7474
+ step += 1;
7475
+ } else if (config.hasGemini || config.hasChatGPT) {
7266
7476
  printStep(step++, totalSteps, "Adding auth plugins...");
7267
7477
  const authResult = await addAuthPlugins(config);
7268
7478
  if (!authResult.success) {
@@ -7288,10 +7498,16 @@ async function runNonTuiInstall(args) {
7288
7498
  }
7289
7499
  printSuccess(`Config written ${SYMBOLS.arrow} ${import_picocolors2.default.dim(omoResult.configPath)}`);
7290
7500
  printBox(formatConfigSummary(config), isUpdate ? "Updated Configuration" : "Installation Complete");
7291
- if (!config.hasClaude && !config.hasChatGPT && !config.hasGemini) {
7501
+ if (!config.hasProxyPal && !config.hasClaude && !config.hasChatGPT && !config.hasGemini) {
7292
7502
  printWarning("No model providers configured. Using opencode/glm-4.7-free as fallback.");
7293
7503
  }
7294
- if ((config.hasClaude || config.hasChatGPT || config.hasGemini) && !args.skipAuth) {
7504
+ if (config.hasProxyPal && !args.skipAuth) {
7505
+ console.log(import_picocolors2.default.bold("Next Steps - Configure ProxyPal:"));
7506
+ console.log();
7507
+ console.log(` ${SYMBOLS.arrow} Start ProxyPal and ensure proxy is running on ${import_picocolors2.default.cyan("http://localhost:8317")}`);
7508
+ console.log(` ${SYMBOLS.arrow} Authenticate your providers in ProxyPal app`);
7509
+ console.log();
7510
+ } else if ((config.hasClaude || config.hasChatGPT || config.hasGemini) && !args.skipAuth) {
7295
7511
  console.log(import_picocolors2.default.bold("Next Steps - Authenticate your providers:"));
7296
7512
  console.log();
7297
7513
  if (config.hasClaude) {
@@ -7327,7 +7543,11 @@ async function install(args) {
7327
7543
  Ie(import_picocolors2.default.bgMagenta(import_picocolors2.default.white(isUpdate ? " oMoMoMoMo... Update " : " oMoMoMoMo... ")));
7328
7544
  if (isUpdate) {
7329
7545
  const initial = detectedToInitialValues(detected);
7330
- M2.info(`Existing configuration detected: Claude=${initial.claude}, ChatGPT=${initial.chatgpt}, Gemini=${initial.gemini}`);
7546
+ if (initial.proxypal === "yes") {
7547
+ M2.info(`Existing configuration detected: ProxyPal=yes`);
7548
+ } else {
7549
+ M2.info(`Existing configuration detected: Claude=${initial.claude}, ChatGPT=${initial.chatgpt}, Gemini=${initial.gemini}`);
7550
+ }
7331
7551
  }
7332
7552
  const s = Y2();
7333
7553
  s.start("Checking OpenCode installation");
@@ -7352,7 +7572,16 @@ async function install(args) {
7352
7572
  return 1;
7353
7573
  }
7354
7574
  s.stop(`Plugin added to ${import_picocolors2.default.cyan(pluginResult.configPath)}`);
7355
- if (config.hasGemini || config.hasChatGPT) {
7575
+ if (config.hasProxyPal) {
7576
+ s.start("Adding ProxyPal provider configuration");
7577
+ const providerResult = addProviderConfig(config);
7578
+ if (!providerResult.success) {
7579
+ s.stop(`Failed to add provider config: ${providerResult.error}`);
7580
+ Se(import_picocolors2.default.red("Installation failed."));
7581
+ return 1;
7582
+ }
7583
+ s.stop(`ProxyPal configured to ${import_picocolors2.default.cyan(providerResult.configPath)}`);
7584
+ } else if (config.hasGemini || config.hasChatGPT) {
7356
7585
  s.start("Adding auth plugins (fetching latest versions)");
7357
7586
  const authResult = await addAuthPlugins(config);
7358
7587
  if (!authResult.success) {
@@ -7378,11 +7607,18 @@ async function install(args) {
7378
7607
  return 1;
7379
7608
  }
7380
7609
  s.stop(`Config written to ${import_picocolors2.default.cyan(omoResult.configPath)}`);
7381
- if (!config.hasClaude && !config.hasChatGPT && !config.hasGemini) {
7610
+ if (!config.hasProxyPal && !config.hasClaude && !config.hasChatGPT && !config.hasGemini) {
7382
7611
  M2.warn("No model providers configured. Using opencode/glm-4.7-free as fallback.");
7383
7612
  }
7384
7613
  Me(formatConfigSummary(config), isUpdate ? "Updated Configuration" : "Installation Complete");
7385
- if ((config.hasClaude || config.hasChatGPT || config.hasGemini) && !args.skipAuth) {
7614
+ if (config.hasProxyPal && !args.skipAuth) {
7615
+ const steps = [
7616
+ `Start ProxyPal and ensure proxy is running on ${import_picocolors2.default.cyan("http://localhost:8317")}`,
7617
+ `Authenticate your providers in the ProxyPal app`
7618
+ ];
7619
+ Me(steps.join(`
7620
+ `), "Next Steps - Configure ProxyPal");
7621
+ } else if ((config.hasClaude || config.hasChatGPT || config.hasGemini) && !args.skipAuth) {
7386
7622
  const steps = [];
7387
7623
  if (config.hasClaude) {
7388
7624
  steps.push(`${import_picocolors2.default.dim("opencode auth login")} ${import_picocolors2.default.gray("(select Anthropic \u2192 Claude Pro/Max)")}`);
@@ -23495,19 +23731,22 @@ var packageJson = await Promise.resolve().then(() => __toESM(require_package(),
23495
23731
  var VERSION = packageJson.version;
23496
23732
  var program2 = new Command;
23497
23733
  program2.name("oh-my-opencode").description("The ultimate OpenCode plugin - multi-model orchestration, LSP tools, and more").version(VERSION, "-v, --version", "Show version number");
23498
- program2.command("install").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--chatgpt <value>", "ChatGPT subscription: no, yes").option("--gemini <value>", "Gemini integration: no, yes").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
23734
+ program2.command("install").description("Install and configure oh-my-opencode with interactive setup").option("--no-tui", "Run in non-interactive mode (requires all options)").option("--proxypal <value>", "ProxyPal proxy: no, yes (if yes, skips claude/chatgpt/gemini)").option("--claude <value>", "Claude subscription: no, yes, max20").option("--chatgpt <value>", "ChatGPT subscription: no, yes").option("--gemini <value>", "Gemini integration: no, yes").option("--skip-auth", "Skip authentication setup hints").addHelpText("after", `
23499
23735
  Examples:
23500
23736
  $ bunx oh-my-opencode install
23737
+ $ bunx oh-my-opencode install --no-tui --proxypal=yes
23501
23738
  $ bunx oh-my-opencode install --no-tui --claude=max20 --chatgpt=yes --gemini=yes
23502
23739
  $ bunx oh-my-opencode install --no-tui --claude=no --chatgpt=no --gemini=no
23503
23740
 
23504
23741
  Model Providers:
23742
+ ProxyPal Use ProxyPal proxy for all models (github.com/heyhuynhgiabuu/proxypal)
23505
23743
  Claude Required for Sisyphus (main orchestrator) and Librarian agents
23506
23744
  ChatGPT Powers the Oracle agent for debugging and architecture
23507
23745
  Gemini Powers frontend, documentation, and multimodal agents
23508
23746
  `).action(async (options) => {
23509
23747
  const args = {
23510
23748
  tui: options.tui !== false,
23749
+ proxypal: options.proxypal,
23511
23750
  claude: options.claude,
23512
23751
  chatgpt: options.chatgpt,
23513
23752
  gemini: options.gemini,
@@ -2,12 +2,14 @@ export type ClaudeSubscription = "no" | "yes" | "max20";
2
2
  export type BooleanArg = "no" | "yes";
3
3
  export interface InstallArgs {
4
4
  tui: boolean;
5
+ proxypal?: BooleanArg;
5
6
  claude?: ClaudeSubscription;
6
7
  chatgpt?: BooleanArg;
7
8
  gemini?: BooleanArg;
8
9
  skipAuth?: boolean;
9
10
  }
10
11
  export interface InstallConfig {
12
+ hasProxyPal: boolean;
11
13
  hasClaude: boolean;
12
14
  isMax20: boolean;
13
15
  hasChatGPT: boolean;
@@ -20,6 +22,7 @@ export interface ConfigMergeResult {
20
22
  }
21
23
  export interface DetectedConfig {
22
24
  isInstalled: boolean;
25
+ hasProxyPal: boolean;
23
26
  hasClaude: boolean;
24
27
  isMax20: boolean;
25
28
  hasChatGPT: boolean;
@@ -35,6 +35,7 @@ export declare class BackgroundManager {
35
35
  parentSessionID: string;
36
36
  description: string;
37
37
  agent?: string;
38
+ parentAgent?: string;
38
39
  }): BackgroundTask;
39
40
  resume(input: ResumeInput): Promise<BackgroundTask>;
40
41
  private checkSessionTodos;
package/dist/index.js CHANGED
@@ -231,31 +231,31 @@ The more explicit your prompt, the better the results.
231
231
  var init_constants = __esm(() => {
232
232
  DEFAULT_CATEGORIES = {
233
233
  "visual-engineering": {
234
- model: "google/gemini-3-pro-preview",
234
+ model: "proxypal/gemini-3-pro-preview",
235
235
  temperature: 0.7
236
236
  },
237
237
  ultrabrain: {
238
- model: "openai/gpt-5.2",
238
+ model: "proxypal/gpt-5.2-codex",
239
239
  temperature: 0.1
240
240
  },
241
241
  artistry: {
242
- model: "google/gemini-3-pro-preview",
242
+ model: "proxypal/gemini-3-pro-preview",
243
243
  temperature: 0.9
244
244
  },
245
245
  quick: {
246
- model: "anthropic/claude-haiku-4-5",
246
+ model: "proxypal/gemini-3-flash-preview",
247
247
  temperature: 0.3
248
248
  },
249
249
  "most-capable": {
250
- model: "anthropic/claude-opus-4-5",
250
+ model: "proxypal/gemini-claude-opus-4-5-thinking",
251
251
  temperature: 0.1
252
252
  },
253
253
  writing: {
254
- model: "google/gemini-3-flash-preview",
254
+ model: "proxypal/gemini-3-flash-preview",
255
255
  temperature: 0.5
256
256
  },
257
257
  general: {
258
- model: "anthropic/claude-sonnet-4-5",
258
+ model: "proxypal/gemini-claude-sonnet-4-5-thinking",
259
259
  temperature: 0.3
260
260
  }
261
261
  };
@@ -16941,11 +16941,11 @@ var HOOK_NAME_MAP = {
16941
16941
  "anthropic-auto-compact": "anthropic-context-window-limit-recovery"
16942
16942
  };
16943
16943
  var MODEL_TO_CATEGORY_MAP = {
16944
- "google/gemini-3-pro-preview": "visual-engineering",
16945
- "openai/gpt-5.2": "ultrabrain",
16946
- "anthropic/claude-haiku-4-5": "quick",
16947
- "anthropic/claude-opus-4-5": "most-capable",
16948
- "anthropic/claude-sonnet-4-5": "general"
16944
+ "proxypal/gemini-3-pro-preview": "visual-engineering",
16945
+ "proxypal/gpt-5.2-codex": "ultrabrain",
16946
+ "proxypal/gemini-3-flash-preview": "quick",
16947
+ "proxypal/gemini-claude-opus-4-5-thinking": "most-capable",
16948
+ "proxypal/gemini-claude-sonnet-4-5-thinking": "general"
16949
16949
  };
16950
16950
  function migrateAgentNames(agents) {
16951
16951
  const migrated = {};
@@ -45799,7 +45799,8 @@ class BackgroundManager {
45799
45799
  progress: {
45800
45800
  toolCalls: 0,
45801
45801
  lastUpdate: new Date
45802
- }
45802
+ },
45803
+ parentAgent: input.parentAgent
45803
45804
  };
45804
45805
  this.tasks.set(task.id, task);
45805
45806
  subagentSessions.add(input.sessionID);
@@ -45993,14 +45994,18 @@ class BackgroundManager {
45993
45994
  this.concurrencyManager.release(task.concurrencyKey);
45994
45995
  }
45995
45996
  try {
45996
- const modelField = task.parentModel?.providerID && task.parentModel?.modelID ? { providerID: task.parentModel.providerID, modelID: task.parentModel.modelID } : undefined;
45997
+ const body = {
45998
+ parts: [{ type: "text", text: message }]
45999
+ };
46000
+ if (task.parentAgent !== undefined) {
46001
+ body.agent = task.parentAgent;
46002
+ }
46003
+ if (task.parentModel?.providerID && task.parentModel?.modelID) {
46004
+ body.model = { providerID: task.parentModel.providerID, modelID: task.parentModel.modelID };
46005
+ }
45997
46006
  await this.client.session.prompt({
45998
46007
  path: { id: task.parentSessionID },
45999
- body: {
46000
- agent: task.parentAgent,
46001
- model: modelField,
46002
- parts: [{ type: "text", text: message }]
46003
- },
46008
+ body,
46004
46009
  query: { directory: this.directory }
46005
46010
  });
46006
46011
  log("[background-agent] Successfully sent prompt to parent session:", { parentSessionID: task.parentSessionID });
@@ -49543,7 +49548,7 @@ ${patterns.join(`
49543
49548
  }
49544
49549
 
49545
49550
  // src/agents/sisyphus.ts
49546
- var DEFAULT_MODEL = "anthropic/claude-opus-4-5";
49551
+ var DEFAULT_MODEL = "proxypal/gemini-claude-opus-4-5-thinking";
49547
49552
  var SISYPHUS_ROLE_SECTION = `<Role>
49548
49553
  You are "Sisyphus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.
49549
49554
  Named by [YeonGyu Kim](https://github.com/code-yeongyu).
@@ -50136,7 +50141,7 @@ function createSisyphusAgent(model = DEFAULT_MODEL, availableAgents, availableTo
50136
50141
  var sisyphusAgent = createSisyphusAgent();
50137
50142
 
50138
50143
  // src/agents/oracle.ts
50139
- var DEFAULT_MODEL2 = "openai/gpt-5.2";
50144
+ var DEFAULT_MODEL2 = "proxypal/gpt-5.2-codex";
50140
50145
  var ORACLE_PROMPT_METADATA = {
50141
50146
  category: "advisor",
50142
50147
  cost: "EXPENSIVE",
@@ -50249,7 +50254,7 @@ function createOracleAgent(model = DEFAULT_MODEL2) {
50249
50254
  var oracleAgent = createOracleAgent();
50250
50255
 
50251
50256
  // src/agents/librarian.ts
50252
- var DEFAULT_MODEL3 = "anthropic/claude-sonnet-4-5";
50257
+ var DEFAULT_MODEL3 = "proxypal/gemini-claude-opus-4-5-thinking";
50253
50258
  var LIBRARIAN_PROMPT_METADATA = {
50254
50259
  category: "exploration",
50255
50260
  cost: "CHEAP",
@@ -50682,7 +50687,7 @@ Flood with parallel calls. Cross-validate findings across multiple tools.`
50682
50687
  var exploreAgent = createExploreAgent();
50683
50688
 
50684
50689
  // src/agents/frontend-ui-ux-engineer.ts
50685
- var DEFAULT_MODEL5 = "google/gemini-3-pro-preview";
50690
+ var DEFAULT_MODEL5 = "proxypal/gemini-3-pro-preview";
50686
50691
  var FRONTEND_PROMPT_METADATA = {
50687
50692
  category: "specialist",
50688
50693
  cost: "CHEAP",
@@ -50782,7 +50787,7 @@ Interpret creatively and make unexpected choices that feel genuinely designed fo
50782
50787
  var frontendUiUxEngineerAgent = createFrontendUiUxEngineerAgent();
50783
50788
 
50784
50789
  // src/agents/document-writer.ts
50785
- var DEFAULT_MODEL6 = "google/gemini-3-flash-preview";
50790
+ var DEFAULT_MODEL6 = "proxypal/gemini-3-flash-preview";
50786
50791
  var DOCUMENT_WRITER_PROMPT_METADATA = {
50787
50792
  category: "specialist",
50788
50793
  cost: "CHEAP",
@@ -50997,7 +51002,7 @@ You are a technical writer who creates documentation that developers actually wa
50997
51002
  var documentWriterAgent = createDocumentWriterAgent();
50998
51003
 
50999
51004
  // src/agents/multimodal-looker.ts
51000
- var DEFAULT_MODEL7 = "google/gemini-3-flash";
51005
+ var DEFAULT_MODEL7 = "proxypal/gemini-3-flash-preview";
51001
51006
  var MULTIMODAL_LOOKER_PROMPT_METADATA = {
51002
51007
  category: "utility",
51003
51008
  cost: "CHEAP",
@@ -51313,7 +51318,7 @@ var metisRestrictions = createAgentToolRestrictions([
51313
51318
  "task",
51314
51319
  "sisyphus_task"
51315
51320
  ]);
51316
- var DEFAULT_MODEL8 = "anthropic/claude-opus-4-5";
51321
+ var DEFAULT_MODEL8 = "proxypal/gemini-claude-opus-4-5-thinking";
51317
51322
  function createMetisAgent(model = DEFAULT_MODEL8) {
51318
51323
  return {
51319
51324
  description: "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points.",
@@ -52732,7 +52737,7 @@ function buildDynamicOrchestratorPrompt(ctx) {
52732
52737
  const skillsSection = buildSkillsSection(skills);
52733
52738
  return ORCHESTRATOR_SISYPHUS_SYSTEM_PROMPT.replace("{CATEGORY_SECTION}", categorySection).replace("{AGENT_SECTION}", agentSection).replace("{DECISION_MATRIX}", decisionMatrix).replace("{SKILLS_SECTION}", skillsSection);
52734
52739
  }
52735
- var DEFAULT_MODEL9 = "anthropic/claude-sonnet-4-5";
52740
+ var DEFAULT_MODEL9 = "proxypal/gemini-claude-sonnet-4-5-thinking";
52736
52741
  function createOrchestratorSisyphusAgent(ctx) {
52737
52742
  const restrictions = createAgentToolRestrictions([
52738
52743
  "task",
@@ -52751,7 +52756,7 @@ function createOrchestratorSisyphusAgent(ctx) {
52751
52756
  var orchestratorSisyphusAgent = createOrchestratorSisyphusAgent();
52752
52757
 
52753
52758
  // src/agents/momus.ts
52754
- var DEFAULT_MODEL10 = "openai/gpt-5.2";
52759
+ var DEFAULT_MODEL10 = "proxypal/gpt-5.2-codex";
52755
52760
  var MOMUS_SYSTEM_PROMPT = `You are a work plan review expert. You review the provided work plan (.sisyphus/plans/{name}.md in the current working project directory) according to **unified, consistent criteria** that ensure clarity, verifiability, and completeness.
52756
52761
 
52757
52762
  **CRITICAL FIRST RULE**:
@@ -56079,7 +56084,7 @@ function createConfigHandler(deps) {
56079
56084
  const prometheusOverride = pluginConfig.agents?.["Prometheus (Planner)"];
56080
56085
  const defaultModel = config3.model;
56081
56086
  const prometheusBase = {
56082
- model: defaultModel ?? "anthropic/claude-opus-4-5",
56087
+ model: defaultModel ?? "proxypal/gemini-claude-opus-4-5-thinking",
56083
56088
  mode: "primary",
56084
56089
  prompt: PROMETHEUS_SYSTEM_PROMPT,
56085
56090
  permission: PROMETHEUS_PERMISSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reinamaccredy/oh-my-opencode",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-beta.11",
4
4
  "description": "Fork of oh-my-opencode with Maestro workflow integration - Multi-Model Orchestration, Parallel Background Agents, Design Phases, and TDD Methodology",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,6 +28,10 @@
28
28
  "build:schema": "bun run script/build-schema.ts",
29
29
  "clean": "rm -rf dist",
30
30
  "prepublishOnly": "bun run clean && bun run build",
31
+ "publish:beta": "./scripts/publish.sh prerelease",
32
+ "publish:patch": "./scripts/publish.sh patch",
33
+ "publish:minor": "./scripts/publish.sh minor",
34
+ "publish:major": "./scripts/publish.sh major",
31
35
  "typecheck": "tsc --noEmit",
32
36
  "test": "bun test"
33
37
  },