Commit Graph
290 Commits
Author SHA1 Message Date
can1357 fde2d1d612 Merge remote-tracking branch 'origin/farm/acd088b5/github-copilot-business-vision' 2026-07-11 07:40:14 +02:00
can1357 ebe8ca50ad Merge remote-tracking branch 'origin/farm/2e273be7/fix-version-first-claude-ids' 2026-07-11 07:39:52 +02:00
can1357 cf2d4c00b3 fix: stale tests + pin codex version 2026-07-11 00:30:06 +02:00
can1357 fd2d4616a6 chore: bump version to 16.4.2 2026-07-11 00:17:35 +02:00
Can BölükandGitHub 039e79683b Merge branch 'main' into fix/xai-oauth-replay-shapes 2026-07-11 00:15:42 +02:00
can1357 6d29aad6ab Merge remote-tracking branch 'origin/farm/10fa7941/fix-openai-codex-luna-model' 2026-07-11 00:10:21 +02:00
Victor Araújo bd216f4394 style(ai): applied biome format to xai replay changes 2026-07-10 16:25:55 -03:00
Victor Araújo 0e3e5ab72a fix(ai): tightened xai replay adaptation to catalog compat
Drive image-detail clamping from resolved model compat instead of a
provider hardcode, clamp input_image only on known paths, and skip
custom-tool adaptation when freeform is supported.
2026-07-10 16:25:55 -03:00
Victor Araújo 6195193435 fix(catalog): marked xai-oauth models without image detail original
Seed supportsImageDetailOriginal=false for curated and dynamic xai-oauth
compat, and set the same flag on the eight bundled models.json entries
without regenerating the rest of the catalog.

Fixes #5002
2026-07-10 16:25:55 -03:00
roboomp 1624d48dd8 fix(codex): used codex version for turns
Resolved the Codex client version for turn requests with the same catalog resolver used by discovery.

Fixes #5105
2026-07-10 18:26:42 +00:00
can1357 d9854ade76 feat(catalog): updated model definitions and provider constraints
- Added `gpt-5.6-luna`, `gpt-5.6-sol`, and `gpt-5.6-terra` variants for the `opencode-zen` provider.
- Removed deprecated `*-pro` model aliases from the `openai-codex` provider in `models.json`.
- Updated `openai-compat.ts` to restrict pro-reasoning alias generation to the `openai` provider only.
- Adjusted various model `contextWindow`, `maxTokens`, and `cost` parameters to reflect latest upstream metadata.
- Added `perplexity-academic-researcher` model definition.
2026-07-10 20:21:05 +02:00
roboomp 060179729e fix(codex): sent version header with requests
Added Codex version headers to turn requests and model discovery so backend-gated models resolve consistently.

Fixes #5105
2026-07-10 18:08:40 +00:00
roboomp c1480b29ec fix(catalog): parsed version-first claude ids
Recognized SAP AI Core hai-proxy Claude ids in claude-<version>-<kind> order so Anthropic thinking and capability inference stay on the adaptive path.

Fixes #5069
2026-07-10 13:09:34 +00:00
roboomp e58d2c460c fix(providers): preserved copilot vision denials
Treat GitHub Copilot discovery input as authoritative during model merges so explicit supports.vision=false is not OR-upgraded from bundled references.

Fixes #4779
2026-07-10 12:20:39 +00:00
roboomp 4bae9a42ab fix(providers): required copilot vision confirmation
Keep non-personal Copilot endpoints text-only when discovery omits supports.vision, while preserving explicit vision support.

Fixes #4779
2026-07-10 12:08:43 +00:00
can1357 520f6f9bcc feat(catalog): standardized reasoning effort configuration
- Transitioned DeepSeek models to an explicit `[High, Max]` effort ladder, removing stale alias maps.
- Updated the OpenAI compatibility layer to enforce authoritative `supportsReasoningEffort` and `omitReasoningEffort` flags.
- Synchronized `models.json` definitions to reflect accurate reasoning effort capabilities across the catalog.
2026-07-10 13:59:54 +02:00
roboomp b0f22caf83 fix(providers): restored copilot business vision
Honor GitHub Copilot /models vision support on Business and Enterprise endpoints and remove the stale snapcompact non-personal-host block.

Fixes #4779
2026-07-10 11:57:14 +00:00
can1357 d435385ab1 feat: introduced max reasoning effort tier across model and rpc systems
- Introduced `Max` as a first-class reasoning effort tier across all packages, including AI providers, coding agent configurations, and RPC protocols.
- Refactored model effort ladders to use wire-exact mappings and removed legacy effort aliasing (e.g., `max-to-xhigh` mapping).
- Updated model registry and provider configurations to support `Max` tier routing, color themes, and UI icon associations.
- Expanded test suites to provide end-to-end coverage for the new reasoning tier, including updated compatibility and fallback scenarios.
2026-07-10 13:39:42 +02:00
can1357 1a72f56935 fix(catalog): keep xAI regeneration scoped 2026-07-10 12:37:46 +02:00
can1357 95555f6a3d Merge PR #5001: fix(ai): suppress xAI OAuth reasoning summaries 2026-07-10 12:37:37 +02:00
can1357 f79098b9ba fix(providers): corrected novita discovery and login
- Corrected Novita pricing from ten-thousandths of a dollar per million tokens.
- Validated pasted keys against the authenticated balance endpoint.
- Made live discovery authoritative and excluded models without positive output limits.
2026-07-10 12:08:44 +02:00
can1357 1edafb89ea feat(providers): added novita provider (#4917) 2026-07-10 11:58:58 +02:00
can1357 2dafa7ac79 feat: further codex metadata 2026-07-10 11:35:09 +02:00
freecodewu a45ecd5593 Add Novita provider 2026-07-10 17:14:12 +08:00
can1357 29deeef876 feat: enabled codex responses lite for gpt-5.6 models and remote compaction
- Enabled Codex Responses Lite for GPT-5.6 models by integrating model discovery flags and wire contract updates.
- Implemented request transformations for streaming and remote compaction, including header injection and image detail stripping.
- Introduced sequential-cutoff logic and atomic reasoning summary events for concurrent stream processing.
- Added comprehensive test suites to validate remote compaction, image handling, and reasoning summary delivery.
2026-07-10 09:46:27 +02:00
roboomp 3af6088caa fix(ai): suppressed xai reasoning summaries
- Suppressed `reasoning.summary` for xai-oauth Responses requests while preserving other Responses providers' summary defaults.
- Added regression coverage for the `xai-oauth/grok-4.5` reasoning payload and regenerated the bundled catalog entry for its effort dial.

Fixes #4998
2026-07-09 23:57:41 +00:00
can1357 46b8ee737f feat(catalog): added Grok 4.5 model support
- Added Grok 4.5 to the model catalog and identity helper.
- Updated pricing and configuration settings for existing Grok models.
2026-07-09 22:43:34 +02:00
can1357 fde4a19c62 feat: added prompt-cache affinity support for grok models
- Introduced `getOpenAIPromptCacheKey` to provide a unified identity resolution for both cache keys and affinity headers.
- Enabled `x-grok-conv-id` header support in the OpenAI completions provider for models configured with cache affinity.
- Added comprehensive tests to verify cache affinity header behavior across varied session and cache configuration states.
2026-07-09 22:28:58 +02:00
can1357 faa70100ea feat: enabled openai reasoning mode and integrated new model catalog
- Enabled OpenAI pro reasoning mode by integrating reasoning aliases and parameter injection.
- Expanded the model catalog with GPT-5.6 Luna, Sol, Terra, and Meta Muse Spark 1.1.
- Updated model type definitions and provider request transformers to support reasoning configurations.
- Refined model generation scripts to include new pro-reasoning aliases for OpenAI providers.
2026-07-09 22:20:32 +02:00
can1357 9d5207ea36 feat: integrated gpt-5.6 models and unified logical model resolution
- Added support for GPT-5.6 (Luna, Sol, Terra) models including configuration updates and context window values.
- Implemented automatic effort tier remapping for wire-effort models to ensure proper translation between user-facing tiers and provider requirements.
- Updated Codex request transformers to handle effort shifting and added validation for reasoning configurations.
- Collapsed Devin-specific model variants to unify logical model handling and added comprehensive test coverage for effort resolution.
2026-07-09 20:32:30 +02:00
can1357 cde5d75804 chore: bumped models 2026-07-09 19:38:57 +02:00
can1357 6e209d3ecc fix(catalog): inferred image input for reference-less Cursor models
Cursor GetUsableModels carries no per-model modality metadata; the
reference-less fallback in normalizeCursorModel hardcoded input:
["text"], classifying multimodal families (claude/gpt/codex/gemini) as
vision-blind, so attached images were silently replaced by text
descriptions. Infer modalities from the model family instead, mirroring
inferInputFromGeminiId in discovery/gemini.ts. Bundled references stay
authoritative and text-only families (composer-*, grok-code-*) keep
["text"].

Fixes #4726
2026-07-09 18:27:23 +02:00
can1357androboomp 898643f9a9 fix(coding-agent): refreshed expired OAuth in built-in discovery
Built-in model discovery admitted providers via peekApiKey, which
deliberately never refreshes OAuth rows, so a provider whose only stored
credential was an expired OAuth token was silently dropped from online
discovery and its token was never rotated (model selector 'refresh'
stayed empty for logged-in users).

Resolve built-in discovery keys through an online-only preflight that
refreshes an expired stored OAuth credential, applying the disabled/
configured/targeted provider filters before the side-effecting
resolution so refreshProvider(x) cannot rotate unrelated credentials.
Offline discovery stays peek-only. Under online-if-uncached the
preflight consults the same cache freshness the model manager uses
(2h default TTL, 5min non-authoritative retry) so tokens refresh
exactly when the manager will fetch — a fresh cache never triggers a
token-endpoint call.

Adopted from PR #4896 with two amendments: dropped an unrelated
workflow-notice.md prompt edit, and aligned the preflight cache TTL
with the manager's real 2h default (was 24h, which skipped the refresh
on the common startup path for caches aged 2-24h; regression covered
by the new online-if-uncached tests). Also corrected the stale
'Default: 24h' doc on cacheTtlMs in the catalog.

Fixes #4893

Co-authored-by: roboomp <omp@can.ac>
2026-07-09 18:27:23 +02:00
can1357 e2a01aa4f4 fix(catalog): preserve LiteLLM rich metadata 2026-07-08 15:22:21 +02:00
can1357 caa0ecf6c1 merge PR #4749: fix(catalog): preserve LiteLLM vision metadata 2026-07-08 15:22:20 +02:00
can1357 6aa8aefb15 fix-catalog-litellm-cache-version 2026-07-08 15:19:35 +02:00
can1357 961e27aae9 merge PR #4701: fix(catalog): restore LiteLLM bundled metadata fallback 2026-07-08 15:19:35 +02:00
can1357 32953c1b35 merge PR #4682: fix(ai): disable strict tools on Azure Foundry Anthropic 2026-07-08 15:19:34 +02:00
roboomp 8aae263eaf fix(catalog): preserved litellm vision metadata
- Continued LiteLLM rich discovery past /model_group/info when vision metadata is missing.

- Merged later /model/info capability metadata without losing earlier display names.

- Added regression coverage for model_info.supports_vision from LiteLLM proxies.

Fixes #4747
2026-07-06 22:23:14 +00:00
can1357 04783381b4 feat(coding-agent): transitioned session title generation to xml markers
- Replaced tool-based `set_title` invocation with XML-style `<title>` marker tags for session title discovery.
- Implemented robust JSON-unwrapping logic to handle and sanitize title generation outputs.
- Updated model registry in catalog with new model support, provider prefixes, and metadata adjustments.
- Synchronized system prompt documentation and test suites to reflect the new marker-based generation flow.
2026-07-06 17:38:00 +02:00
roboomp bfb170ae69 fix(catalog): fixed litellm bundled catalog fallback
Resolved LiteLLM dynamic discovery to fall back to bundled catalog references when models.dev has no matching model.

Added rich-endpoint and /v1/models fallback regressions for glm-5.2 reasoning/thinking metadata.

Fixes #4695
2026-07-06 09:41:24 +00:00
roboomp 41a29c83c8 fix(providers): disabled strict tools on azure anthropic
Azure Foundry Anthropic routes reject Anthropic structured-output strict tooling for Sonnet 5 utility requests.

Detect Azure Anthropic hosts as strict-tool-incompatible, gate the structured-output beta when strict tools are disabled, and cover the utility header plus tool-schema contracts.

Fixes #4679
2026-07-06 06:19:48 +00:00
can1357 fada9e5e08 Merge remote-tracking branch 'origin/farm/864b89a9/litellm-skip-all-team-models' 2026-07-06 07:38:56 +02:00
roboomp 8c01b1633e fix(catalog): generalized litellm sentinel filtering
Expanded LiteLLM rich discovery filtering from the observed all-team-models row to known unselectable LiteLLM sentinel ids when they have no selectable-model evidence.

Kept real model groups selectable by requiring providers, concrete backend ids, positive limits, or positive capability metadata before treating sentinel-like rows as usable.

Fixes #4655
2026-07-06 02:53:44 +00:00
roboomp 2dfddfd6a0 fix(catalog): ignored litellm aggregate placeholders
Filtered unusable all-team-models aggregate rows during LiteLLM rich discovery so placeholder-only /model_group/info responses fall through to /v2/model/info.

Bumped the LiteLLM rich discovery cache namespace and added regression coverage for placeholder-only and mixed model_group responses.

Fixes #4655
2026-07-06 02:20:30 +00:00
roboomp 32d12dde9e fix(catalog): set opencode go deepseek max_tokens
- Updated generated OpenCode Go DeepSeek V4 catalog policy to use max_tokens instead of max_completion_tokens.

- Added regression coverage for deepseek-v4-flash:xhigh tool requests carrying max_tokens and reasoning_effort:max.

Fixes #4647
2026-07-06 00:49:06 +00:00
can1357 3458b037ae chore: update tests 2026-07-05 16:53:07 +02:00
can1357 476eadfc4e Merge PR #4432: fix(ai): demote prior reasoning to bare prose for all Anthropic-dialect Claude models (@roboomp) 2026-07-05 13:10:27 +02:00
can1357 2f67fb3728 Merge PR #4387: fix(fast): enable custom OpenAI-compatible providers (@roboomp) 2026-07-05 13:10:27 +02:00
can1357 a868a7d2d5 Merge PR #4471: fix(ai): separate Codex orchestration usage (@roboomp) 2026-07-05 13:03:08 +02:00