Commit Graph
1320 Commits
Author SHA1 Message Date
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
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
Sergey Galuza 0d09199439 fix(cliproxy): address Presto review feedback on Opus 4.7
- model-catalog: change `claude-opus-4-7` description from "Latest
  flagship without thinking" to "Latest flagship model". The model
  supports thinking budget (min 1024, max 128000) but doesn't enable
  it by default; the old wording implied no thinking support, which
  was misleading. Aligns with the `claude` provider's description.

- generator: add DEFAULT_ANTIGRAVITY_ALIASES entry for non-thinking
  `claude-opus-4-7`, restoring symmetry with `claude-sonnet-4-6`
  (which has both -thinking and non-thinking aliases). Bump
  CLIPROXY_CONFIG_VERSION 18 → 19 to trigger regeneration on upgrade.

Addresses PResto atrvd/ccs#8 issues #2 (important) and #3 (suggestion).

Built [OnSteroids](https://onsteroids.ai)
2026-04-20 18:43:15 +02:00
Sergey Galuza faca421705 docs(cliproxy): document v18 config bump for Opus 4.7
Addresses PResto review (atrvd/ccs#8, issue #1): bumping
CLIPROXY_CONFIG_VERSION 17→18 was missing a changelog entry in the
header comment. Adds the v18 line to preserve regeneration history.

Built [OnSteroids](https://onsteroids.ai)
2026-04-20 18:14:15 +02:00
Sergey Galuza 61058123e1 feat(cliproxy): add Claude Opus 4.7 support
Adds Claude Opus 4.7 as a new model to the AGY (Antigravity) and Claude
provider catalogs, with pricing, Cursor IDE support, and updated defaults
across the codebase.

- Add claude-opus-4-7-thinking and claude-opus-4-7 to AGY catalog
  (defaultModel bumped to claude-opus-4-7-thinking)
- Add claude-opus-4-7 entry to Claude provider catalog
- Register claude-opus-4-7-thinking fork alias in CLIProxy config
  (CLIPROXY_CONFIG_VERSION bumped 17 -> 18)
- Add pricing for claude-opus-4-7 and claude-opus-4-7-thinking
  ($5/$25 per million, matching Opus 4.6)
- Add claude-4.7-opus and claude-4.7-opus-fast-mode to Cursor catalog
- Update ANTHROPIC_DEFAULT_OPUS_MODEL in base-claude settings to 4.7
- Update Droid adapter and code-reviewer fallback models to 4.7
- Update unit tests for model-catalog and model-pricing

Opus 4.6 is retained as a supported fallback in both catalogs.

Built [OnSteroids](https://onsteroids.ai)
2026-04-20 17:49:18 +02:00
Wooseong Kim 6928d8bb65 fix(proxy): parse flag options before profile args 2026-04-20 15:44:20 +09:00
Wooseong Kim afcb1abf9e fix(proxy): retain explicit profile names in status 2026-04-20 15:30:51 +09:00
Wooseong Kim 391bdddc22 fix(proxy): handle legacy stop and preferred ports 2026-04-20 15:25:16 +09:00
Wooseong Kim 54c3b2d40b fix(proxy): avoid undefined status port output 2026-04-20 15:14:20 +09:00
Wooseong Kim c0c119867a fix(proxy): persist daemon state after startup 2026-04-20 15:04:24 +09:00
Wooseong Kim 8ad2763942 fix(proxy): retry candidate ports on bind conflict 2026-04-20 14:59:59 +09:00
Wooseong Kim db32d15d86 fix(proxy): preserve running daemons on restart failure 2026-04-20 14:51:32 +09:00
Wooseong Kim dfd070c9c6 fix(proxy): honor subcommand help flags 2026-04-20 14:42:19 +09:00
Wooseong Kim 7cf555356a fix(proxy): retry raced dynamic port binds 2026-04-20 14:33:44 +09:00
Wooseong Kim 2a80f7b1c1 fix(proxy): handle end-of-options parsing 2026-04-20 14:27:09 +09:00
Wooseong Kim f345cf441e fix(proxy): ignore legacy singleton session file 2026-04-20 14:09:50 +09:00
Wooseong Kim 24c24847f7 fix(proxy): preserve legacy state and exact ports 2026-04-20 14:03:12 +09:00
Wooseong Kim 630a493cca fix(proxy): disambiguate activate without profile 2026-04-20 13:28:25 +09:00