Commit Graph
1336 Commits
Author SHA1 Message Date
Kai (Tam Nhu) TranandGitHub 5dd5878bb4 Merge pull request #1086 from BlackJulySnow/main
feat: add extra models support for API profiles
2026-04-25 12:07:01 -04:00
Tam Nhu Tran b1a0d1a175 fix(cliproxy/sync): dedup ANTHROPIC_EXTRA_MODELS entries against primary model 2026-04-25 11:30:33 -04:00
Tam Nhu Tran a28d544abb docs(api): document --extra-models flag in ccs api --help 2026-04-25 11:30:22 -04:00
Tam Nhu Tran f01210fbf2 style: apply prettier formatting to extra-models changes 2026-04-25 11:30:11 -04:00
Tam Nhu Tran 8ffda0268d fix(codex): align ccsxp history with native codex 2026-04-24 15:24:12 -04:00
B1GGersnow 2915ab0c40 feat: add extra models support for API profiles
Add ANTHROPIC_EXTRA_MODELS env var to allow each API profile to
configure additional models alongside the primary ANTHROPIC_MODEL.
These are synced to CLIProxy config.yaml during ccs cliproxy sync.

- profile-mapper.ts: parse ANTHROPIC_EXTRA_MODELS on sync
- profile-writer.ts: write extra models to settings.json
- shared.ts + create-command.ts: --extra-models CLI flag
- profile-routes.ts + route-helpers.ts: REST API support
- profile-dialog.tsx + api-client.ts: frontend input
2026-04-25 03:20:29 +08:00
Tam Nhu Tran 4efd61ee34 feat: add gpt-5.5 to codex model catalogs 2026-04-24 10:30:59 -04:00
Tam Nhu Tran 7dd9aba810 chore: merge main hotfixes into dev 2026-04-23 23:49:18 -04:00
Tam Nhu Tran 7a9e67e6dc fix: route codex remote https through local proxy chain 2026-04-23 23:00:59 -04:00
Tam Nhu Tran 3d22bb07f0 fix(cliproxy): route plus backend to maintained fork 2026-04-23 21:25:29 -04:00
Kai (Tam Nhu) TranandGitHub 61fa7bd356 Merge pull request #1074 from kaitranntt/kai/feat/1073-adaptive-proxy-ports
feat(proxy): add adaptive local port selection for OpenAI-compatible profiles
2026-04-23 16:37:05 -04:00
Tam Nhu Tran d5591913ef fix(proxy): clarify shared port fallback and legacy 3456 handling 2026-04-23 15:00:50 -04:00
Tam Nhu Tran 15751e2db5 feat(proxy): add adaptive local port selection for OpenAI-compatible profiles 2026-04-23 14:47:01 -04:00
Tam Nhu Tran 50fa27f0a5 test(browser): split Browser MCP hook coverage by domain 2026-04-22 23:07:50 -04:00
Tam Nhu Tran 5ff0370c1c chore: merge origin/dev into pr-1061 fix branch 2026-04-22 22:38:20 -04:00
Tam Nhu Tran c24033dc6b fix(browser): preserve opt-in browser settings and env isolation 2026-04-22 22:35:02 -04:00
Kai (Tam Nhu) TranandGitHub 68322d53da Merge pull request #1059 from innocarpe/fix/agent-team-with-gpt
fix(settings-profile): preserve nested model intent for agent team launches
2026-04-22 22:16:25 -04:00
Tam Nhu Tran f78c30ac50 fix(runtime): isolate nested Anthropic env across delegation paths 2026-04-22 22:09:08 -04:00
Kai (Tam Nhu) TranandGitHub 142381078e Merge pull request #1069 from sgaluza/feat/opus-4-7-adaptive-thinking
fix(cliproxy): use adaptive thinking for Opus 4.7 + add 'max' level
2026-04-22 22:03:21 -04:00
Tam Nhu Tran b3bc17639c fix(ui): surface the max thinking level in settings and help 2026-04-22 21:43:32 -04:00
Tam Nhu Tran 71deda553a fix(cliproxy): preserve adaptive thinking on opus 4.7 paths 2026-04-22 21:43:11 -04:00
Sergey GaluzaandOnSteroids 45fe7ab086 feat(cliproxy): add 'max' thinking level for Claude Opus 4.7
Anthropic exposes `max` as a distinct adaptive-thinking effort above
`xhigh` on Opus 4.7. Previously the validator aliased user input `max`
down to `xhigh`, so users couldn't reach the real top-tier effort
through CCS.

Extend the validator:
- Add `max` to VALID_THINKING_LEVELS and THINKING_LEVEL_RANK (rank 6,
  above xhigh)
- Add `max` to THINKING_LEVEL_BUDGETS (65536, CCS-internal numeric
  mapping for closest-level lookups)
- Widen ThinkingSupport.maxLevel union to include 'max'

The existing `max: 'xhigh'` alias in findClosestLevel is kept as a
graceful fallback for models whose levels list does not include `max`
(e.g. Codex `gpt-5.4`), because exact-match on validLevels takes
priority — so Opus 4.7 returns `max` directly while Codex still maps
`max` -> `xhigh`.

Update the claude.claude-opus-4-7 catalog entry to expose
`['low', 'medium', 'high', 'xhigh', 'max']` with `maxLevel: 'max'`.

Built [OnSteroids](https://onsteroids.ai)

Co-Authored-By: OnSteroids <built@onsteroids.ai>
2026-04-22 21:32:14 +02:00
Sergey GaluzaandOnSteroids 46920dbc08 fix(cliproxy): use adaptive thinking for Claude Opus 4.7
Per Anthropic docs, Claude Opus 4.7 only supports adaptive thinking;
manual `thinking.type: "enabled"` with `budget_tokens` is rejected
with HTTP 400.

Switch the claude provider's `claude-opus-4-7` entry from
`type: 'budget'` to `type: 'levels'` with the effort tiers exposed
by the API: `low | medium | high | xhigh`. The proxy is expected to
translate these into `thinking.type: "adaptive"` with the effort
parameter.

Opus 4.6 and Sonnet 4.6 keep `type: 'budget'` for now since the
deprecated mode is still functional on those models.

Built [OnSteroids](https://onsteroids.ai)

Co-Authored-By: OnSteroids <built@onsteroids.ai>
2026-04-22 21:09:21 +02:00
Tam Nhu Tran e2ca197397 fix: preserve codex effort suffixes in dashboard profiles 2026-04-22 14:24:00 -04:00
Tam Nhu Tran 3e7ce1743b hotfix: preserve plus fallback state and guard variant updates 2026-04-22 08:52:17 -04:00
Tam Nhu Tran dd90ea7e2f hotfix: close cliproxy plus fallback gaps 2026-04-22 08:52:17 -04:00
Tam Nhu Tran b8b48a99ba hotfix(cliproxy): fallback from deleted CLIProxyAPIPlus to original backend
The upstream router-for-me/CLIProxyAPIPlus repo was deleted, breaking any
install/update path that resolved backend: plus. Existing users with
`backend: plus` saved in config.yaml hit 404s on every bootstrap.

Changes:
- Flip DEFAULT_BACKEND from 'plus' to 'original' (platform-detector.ts)
- Flip default cliproxy.backend in createEmptyUnifiedConfig() to 'original'
- Runtime 404 fallback: getConfiguredBackend() degrades 'plus' -> 'original'
  with a one-time warning, so existing installations keep working without a
  manual reconfig step
- Update CLIProxyBackend docblock to document the fallback behavior
- Update tests to match new default

Retains the 'plus' type and BACKEND_CONFIG entry for forward compatibility
once CCS self-maintains its own Plus fork.

Closes #1062
2026-04-22 08:52:17 -04:00
Tam Nhu Tran 5b5f4a5ef5 hotfix: preserve plus fallback state and guard variant updates 2026-04-22 08:45:05 -04:00
Tam Nhu Tran 7b1a7f3a09 hotfix: close cliproxy plus fallback gaps 2026-04-22 08:35:26 -04:00
Tam Nhu Tran 60cbdce83d hotfix(cliproxy): fallback from deleted CLIProxyAPIPlus to original backend
The upstream router-for-me/CLIProxyAPIPlus repo was deleted, breaking any
install/update path that resolved backend: plus. Existing users with
`backend: plus` saved in config.yaml hit 404s on every bootstrap.

Changes:
- Flip DEFAULT_BACKEND from 'plus' to 'original' (platform-detector.ts)
- Flip default cliproxy.backend in createEmptyUnifiedConfig() to 'original'
- Runtime 404 fallback: getConfiguredBackend() degrades 'plus' -> 'original'
  with a one-time warning, so existing installations keep working without a
  manual reconfig step
- Update CLIProxyBackend docblock to document the fallback behavior
- Update tests to match new default

Retains the 'plus' type and BACKEND_CONFIG entry for forward compatibility
once CCS self-maintains its own Plus fork.

Closes #1062
2026-04-22 08:04:12 -04:00
Wooseong Kim 2191f0a6c7 fix(settings-profile): preserve non-routing env for Claude launches
Keep settings-profile Claude launches aligned with profile-scoped
non-routing env while still stripping routing/auth values.

- build claudeRuntimeEnvVars from filtered global + settings env
- preserve CLAUDE_CODE_MAX_OUTPUT_TOKENS and model defaults for
  nested settings-profile launches
- extend browser launch regression coverage to prove global_env
  cannot reintroduce routing/auth values
2026-04-22 14:08:37 +09:00
Wooseong Kim 1fd2fb83fb fix(runtime): strip reintroduced Anthropic routing env
Prevent settings-profile Claude launches from reintroducing
routing/auth env after the final env merge.

- re-strip ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, and
  ANTHROPIC_API_KEY after merging envVars
- preserve model-selection env such as ANTHROPIC_MODEL and
  ANTHROPIC_DEFAULT_SONNET_MODEL
- add a regression test covering explicit settings-profile
  overrides that try to reintroduce routing env

Verification:
- bun test tests/unit/utils/claudecode-env-stripping.test.ts
- bun run validate
2026-04-22 14:08:37 +09:00
Wooseong Kim 5881a505d9 fix(settings-profile): pass selective Anthropic env stripping to Claude launches 2026-04-22 14:08:37 +09:00
Wooseong Kim 9ae85b82c1 fix(runtime): strip inherited Anthropic routing env selectively 2026-04-22 14:08:37 +09:00
walker1211andClaude Opus 4.7 4cf826efa2 fix(image-analysis): clear runtime env on native-read fallback
Avoid carrying runtime API credentials and endpoint fields into native Read fallback launches.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 01:36:11 +08:00
walker1211andClaude Opus 4.7 63082d4aed fix(image-analysis): clear runtime env on native-read fallback
Avoid carrying runtime API credentials and endpoint fields into native Read fallback launches.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 01:25:32 +08:00
walker1211andClaude Opus 4.7 d8954e9453 fix(browser): 对齐 phase11e 与 upstream browser 配置体系
同步 browser 配置相关模块并隔离测试中的宿主环境变量,修复 phase11e 合并 upstream/dev 后的浏览器相关回归。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 01:22:58 +08:00
walker1211andClaude Opus 4.7 acdb93e1a8 fix(browser): 对齐 browser status 输出字段
移除已不存在的 evalMode 输出,保持 browser command 与当前 browser status 模型一致。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 01:03:15 +08:00
walker1211 96db93ee6c Merge upstream/dev into feat/browser-mcp-hover-phase11e 2026-04-22 00:59:24 +08:00
Tam Nhu Tran 478d64a50a fix(cliproxy): quarantine exhausted quota accounts 2026-04-21 12:34:07 -04:00
Tam Nhu Tran 6604357b22 fix(browser): default browser tooling to manual opt-in 2026-04-20 21:15:31 -04:00
Tam Nhu Tran 039ed63a39 fix(browser): harden runtime policy edge cases 2026-04-20 21:01:19 -04:00
Tam Nhu Tran 7d02f55f9f feat(browser): add explicit runtime policy controls 2026-04-20 21:01:19 -04:00
Kai (Tam Nhu) TranandGitHub 65463f18db Merge pull request #1054 from grndis/main
fix(proxy): Add HEAD method support and fix tools call error
2026-04-20 14:44:26 -04:00
Kai (Tam Nhu) TranandGitHub 73025669ab Merge pull request #1055 from sgaluza/feat/claude-opus-4-7-support
feat(cliproxy): add Claude Opus 4.7 support
2026-04-20 13:39:44 -04:00
Tam Nhu Tran 571538dc1c fix(cliproxy): scope Opus 4.7 rollout to verified providers 2026-04-20 13:26:53 -04:00
Tam Nhu Tran 399f403322 fix(transformers): preserve tool ordering across proxy streams
- reject pending tool_result layouts that cannot be translated without reordering user content

- keep interleaved GLMT tool_use blocks open until finalization instead of stopping early

- cover leading/interleaved tool_result regressions and interleaved streaming tool fragments
2026-04-20 13:17:30 -04:00
Grandis SYFandTam Nhu Tran a0f91761ed feat(glmt): fix sequential tool_use block handling 2026-04-20 13:06:00 -04:00
Grandis SYFandTam Nhu Tran baa58c9543 feat(proxy): add HEAD method support for health probe endpoints 2026-04-20 13:06:00 -04:00
Tam Nhu Tran 1cfed73ca5 fix(proxy): harden stale daemon ownership checks 2026-04-20 12:44:30 -04:00