Commit Graph

21 Commits

  • feat: add CrazyRouter partner provider presets, i18n, and register icons
    Add CrazyRouter as a partner provider across all five apps with endpoint,
    API key URL, and partner promotion config. Add trilingual promotion text
    for the 30% bonus credit offer. Register aicoding and crazyrouter icons
    in the icon index. Fix indentation in openclawProviderPresets.
  • feat: add AICoding partner provider presets and i18n promotion text
    Add AICoding as a partner provider across all five apps (Claude, Codex,
    Gemini, OpenClaw, OpenCode) with endpoint, API key URL, and partner
    promotion configuration. Add trilingual (zh/en/ja) promotion text for
    the first top-up discount.
  • feat: Add AWS Bedrock Provider Support (AKSK & API Key) (#1047)
    * Add AWS Bedrock provider integration design document
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * Add AWS Bedrock provider implementation plan
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * Update implementation plan: add OpenCode Bedrock support
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add cloud_provider category to ProviderCategory type
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add AWS Bedrock (AKSK) Claude Code provider preset with tests
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add AWS Bedrock (API Key) Claude Code provider preset with tests
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add AWS Bedrock OpenCode provider preset with @ai-sdk/amazon-bedrock
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add AWS Bedrock provider feature summary for PR
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * chore: remove internal planning documents
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add AWS Bedrock support to README (EN/ZH/JA)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * Add AWS Bedrock UI merge design document
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * Add AWS Bedrock UI merge implementation plan
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: skip optional template values in validation
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: support isSecret template fields and hide base URL for Bedrock
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add Bedrock validation, cleanup, and isBedrock prop in ProviderForm
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: extend TemplateValueConfig and merge Bedrock presets
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: mask Bedrock API Key as secret and support GovCloud regions
    
    - Add isSecret: true to BEDROCK_API_KEY template value
    - Update region regex to support multi-segment regions (us-gov-west-1)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * style: replace AWS icon with updated logo
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * style: replace AWS icon with updated logo
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * style: replace AWS icon with new PNG image
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: address code review findings
    
    - Fix AWS icon: use SVG with embedded <image> instead of raw <img> tag
    - Hide duplicate ApiKeySection for Bedrock (auth via template fields only)
    - Guard settingsConfig cleanup against unresolved template placeholders
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * chore: remove planning documents
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * refactor: address PR review - split Bedrock into two presets, restore SVG icon
    
    Based on maintainer review feedback on PR #1047:
    
    1. Split merged "AWS Bedrock" back into two separate presets:
       - "AWS Bedrock (AKSK)": uses AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY
       - "AWS Bedrock (API Key)": uses top-level apiKey field via standard UI input
    
    2. Restore aws.svg to pure vector SVG (was PNG-in-SVG)
    
    3. Remove all Bedrock-specific logic from shared components:
       - Remove isBedrock prop from ClaudeFormFields
       - Remove Bedrock validation/cleanup blocks from ProviderForm
       - Remove optional/isSecret from TemplateValueConfig
       - Remove optional skip from useTemplateValues
    
    4. Add cloud_provider category handling:
       - Skip API Key/Base URL required validation
       - Hide Speed Test and Base URL for cloud_provider
       - Hide API format selector for cloud_provider (always Anthropic)
       - Show API Key input only when config has apiKey field
    
    5. Fix providerConfigUtils to support top-level apiKey:
       - getApiKeyFromConfig: check config.apiKey before env fields
       - setApiKeyInConfig: write to config.apiKey when present
       - hasApiKeyField: detect top-level apiKey property
    
    6. Add OpenClaw Bedrock preset (bedrock-converse-stream protocol)
    
    7. Update model IDs:
       - Sonnet: global.anthropic.claude-sonnet-4-6
       - Opus: global.anthropic.claude-opus-4-6-v1
       - Haiku: global.anthropic.claude-haiku-4-5-20251001-v1:0
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix(test): align Bedrock API Key test assertions with preset implementation
    
    The API Key preset was refactored to use standard UI input (apiKey: "")
    instead of template variables, but the tests were not updated accordingly.
    
    ---------
    
    Co-authored-by: root <root@ip-10-0-11-189.ap-northeast-1.compute.internal>
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    Co-authored-by: Jason <farion1231@gmail.com>
  • feat(preset): update domestic model providers to latest versions
    - MiniMax: M2.1 → M2.5
    - Zhipu GLM: glm-4.7 → glm-5
    - BaiLing: Ling-1T → Ling-2.5-1T
    - DouBaoSeed: doubao-seed-code-preview-latest → doubao-seed-2-0-code-preview-latest
    - Qwen (Bailian): qwen3-max → qwen3.5-plus
  • feat(omo): add OMO Slim (oh-my-opencode-slim) support
    Implement full OMO Slim profile management to align with ai-toolbox:
    - Backend: Slim service methods, DAO, Tauri commands, plugin conflict handling
    - Frontend: types, API, query hooks, form integration with isSlim parameterization
    - Slim variant: 6 agents (no categories), separate config file and plugin name
    - Mutual exclusion: standard OMO and Slim cannot coexist as plugins
    - i18n: zh/en/ja translations for all Slim agent descriptions
  • fix(openclaw,opencode): correct Opus pricing and upgrade to Opus 4.6
    - Fix Opus pricing from $15/$75 (Opus 4 price) to $5/$25 in openclaw presets
    - Upgrade model ID from claude-opus-4-5-20251101 to claude-opus-4-6
    - Update all suggestedDefaults references (fallbacks + modelCatalog)
    - Apply same model upgrade in opencode presets (7 providers)
  • feat(omo): improve agent model selection UX and fix lowercase keys (#1004)
    * fix(omo): use lowercase keys for builtin agent definitions
    
    OMO config schema expects all agent keys to be lowercase.
    Updated OMO_BUILTIN_AGENTS keys (Sisyphus → sisyphus, Hephaestus →
    hephaestus, etc.) and aligned Rust test fixtures accordingly.
    
    * feat(omo): add i18n support and tooltips for agent/category descriptions
    
    * feat(omo): add preset model variants for thinking level support
    
    Add OPENCODE_PRESET_MODEL_VARIANTS constant with variant definitions
    for Google, OpenAI, and Anthropic models. The omoModelVariantsMap
    builder now falls back to presets when config-defined variants are
    absent, enabling the variant selector for supported models.
    
    * feat(omo): replace model select with searchable combobox and improve fallback handling
    
    * feat(omo): enrich preset model defaults and metadata fallback
    
    * fix(omo): preserve custom fields and align otherFields import/validation
    
    * fix: resolve omo clippy warnings and include app update
  • feat(omo): integrate Oh My OpenCode profile management (#972)
    * feat(omo): integrate Oh My OpenCode profile management into Provider system
    
    Adds full-stack OMO support: backend config read/write/import, OMO-specific
    provider CRUD with exclusive switching, frontend profile editor with
    agent/category/model configuration, global config management, and i18n support.
    
    * feat(omo): add model/variant dropdowns from enabled providers
    
    Replace model text inputs with Select dropdowns sourced from enabled
    OpenCode providers, add thinking-level variant selection, and prevent
    auto-enabling newly added OMO providers.
    
    * fix(omo): use standard provider action styles for OMO switch button
    
    * fix(omo): replace hardcoded isZh strings with proper i18n t() calls
  • feat: rename Qwen Coder preset to Bailian (#965)
    - replace Qwen Coder preset with Bailian for Claude and OpenCode
    - add Bailian icon asset and metadata mapping
    - remove Bailian preset default model values
    - rename Claude preset Kimi k2 to Kimi
  • feat(providers): add AICodeMirror partner preset for all apps
    Register AICodeMirror icon, add i18n partner promotion texts (zh/en/ja),
    and fix trailing whitespace in codexProviderPresets.
  • feat(providers): add NVIDIA NIM preset for Claude and OpenCode
    - Add NVIDIA NIM provider preset with API configuration
    - Add nvidia.svg icon and register in icon system
    - Add nvidia metadata with keywords and default color (#74B71B)
  • chore(presets): upgrade Kimi/Moonshot providers to k2.5 model
    - Update Moonshot preset models from kimi-k2-thinking to kimi-k2.5
    - Update OpenCode Kimi preset name and model to k2.5
    - Remove explicit model config from Kimi preset (use API defaults)
  • feat(partner): add RightCode as official partner
    Update RightCode referral link to use CCSWITCH affiliate code and mark
    as official partner with promotional messages in all supported languages.
  • feat(config): add RightCode provider and rename Z.ai GLM
    - Add RightCode provider preset with GPT-5.2 models
    - Rename "Z.ai GLM" to "Zhipu GLM en" for clarity
  • feat(icons): add new provider icons and fix SiliconFlow iconColor
    - Add rc.svg for RightCode (optimized from 96KB to 581 bytes)
    - Add catcoder.svg for KAT-Coder (快手)
    - Add mcp.svg for Model Context Protocol
    - Add siliconflow.svg for SiliconFlow
    - Register all new icons in index.ts
    - Add icon config for RightCode in claude/codex presets
    - Add icon config for KAT-Coder in claude/opencode presets
    - Fix SiliconFlow iconColor from #000000 to #6E29F6
  • feat(opencode): add provider presets and fix preset selection handler
    - Add 19 new provider presets for OpenCode (cn_official, aggregator, third_party)
    - Add OpenCode handling branch in handlePresetChange to properly populate
      form fields (baseURL, apiKey, npm, models) when selecting a preset
    - Add OpenCode reset logic in custom mode branch
  • refactor(opencode): simplify API format selector
    - Reduce npm package options from 10 to 4 core API formats (OpenAI, OpenAI Compatible, Anthropic, Google)
    - Rename "AI SDK Package" to "API Format" in i18n (zh/en/ja)
    - Remove check icon from Select dropdown items for cleaner UI
  • feat(opencode): Phase 8 - OpenCode provider presets configuration
    - Create src/config/opencodeProviderPresets.ts with:
      - OpenCodeProviderPreset interface for preset structure
      - opencodeNpmPackages: AI SDK npm package options
      - Provider presets: OpenAI, Anthropic, Google, DeepSeek, Mistral, Groq
      - OpenAI Compatible custom template for third-party providers
    - Each preset uses OpenCodeProviderConfig with npm, options, models structure
    - Includes apiKeyUrl for quick access to API key pages
    - Template values for dynamic API key input