Commit Graph

13 Commits

Author SHA1 Message Date
can1357 df0bb6e31a feat: implemented provider wire codecs and optimized telemetry and parsing
- Added internal protobuf wire codecs, message builders, and protocol definitions for Cursor and Devin providers.
- Deferred loading of OTel SDK and OTLP exporters and added bounded caches to optimize startup and lookup performance.
- Added SQLite-backed parse caching for legacy extension source analysis and streaming file chunk parsing for changelogs.
- Added support for rendering context usage overflow above 100% in the status line component.
2026-08-20 07:54:06 +02:00
roboomp 466f769cc8 fix(catalog): collapse Cursor Grok 4.5/4.6 effort siblings
Cursor advertises Grok 4.5/4.6 as per-effort sibling ids
(cursor-grok-4.6-low|-medium|-high|-xhigh plus -fast variants), but
VARIANT_COLLAPSE_TABLES had no cursor entry, so the model hub showed 14
unrouted siblings instead of one logical model with effort routing.
GetUsableModels ships no thinkingDetails and the bundled references read
reasoning:false, so the picker also treated them as non-reasoning.

- Add CURSOR_VARIANT_COLLAPSE_TABLE folding each service-tier lane
  (standard + -fast) into one logical model with effort routing onto the
  live wire ids, mirroring Devin's grok-4-5 collapse.
- Rename the generic devinTierFamily/DevinTierRoutes helper to
  tierFamily/TierRoutes now that both Devin and Cursor tables use it.
- Mark versioned cursor-grok-<version> ids as reasoning during discovery
  (grok-code-* coding models stay non-reasoning).

Fixes #8803
2026-08-19 09:52:51 +00:00
can1357 71c755d5f6 feat: introduced aiand provider registry entry and model catalog
- Implement the ai& provider registry entry with API-key authentication and login support.
- Add model descriptors, static model seeding, and openai-compatible model discovery for the ai& provider.
- Update the model catalog with ai& provider models, pricing, and updated provider model names.
- Add unit tests for the ai& provider environment resolution, metadata, and dynamic model mapping.
2026-08-01 08:30:37 +02:00
can1357 fa84e3924d test(catalog): cover Cursor v2 cache invalidation 2026-07-31 19:28:10 +02:00
can1357 7bcd1aff41 Merge PR #7072: feat(cursor): expose 1M context windows in model discovery (@mmmeff)
# Conflicts:
#	packages/catalog/src/discovery/cursor.ts
2026-07-31 19:28:10 +02:00
roboomp 53eae701bd fix(cursor): preserved structured K3 history replay
- Rebuilt assistant thinking, tool calls, and paired tool results in Cursor-native history shapes.
- Rejected K3 continuation when prior same-model thinking cannot be replayed safely.
- Marked dynamically discovered Cursor K3 variants as reasoning models.

Fixes #7184
2026-07-31 15:23:52 +00:00
Matt 8dca9772b9 fix(cursor): recognized Kimi's official bare k3 id as 1M
Cursor custom ids can arrive as k3 (or kimi/k3), which
isKimiK3ModelId does not match; the bundled kimi-code catalog defines
k3 as the 1,048,576-token Kimi K3 model while k3-256k is the 256k
SKU, so gate the bare form with an exact-match pattern that keeps
k3-256k at the default window.
2026-07-30 14:50:36 -06:00
Matt 6409cb21e9 fix(cursor): broadened native 1M family matching, restored changelog
Compose the native-1M gate from the shared family parsers
(isKimiK3ModelId, parseGlmModel + semverGte 5.2 floor) so namespaced
ids (moonshotai/kimi-k3, z-ai/glm-5.2) and future GLM versions
(glm-5.10, glm-6) are covered, addressing review feedback. Restore the
Unreleased changelog entry dropped by the applied empty suggestion.
2026-07-30 11:20:20 -06:00
Matt d8c99735e1 feat(cursor): expose 1M context windows in model discovery
GetUsableModels carries no context-window field, so discovered 1M
models were pinned to the 200k default and OMP compacted long before
the real ceiling. Recover the 1M window from the signals Cursor does
send: "1M" display-name labels across families, natively 1M families
served unlabeled (Kimi K3, GLM 5.2+), and the max-mode flag on
Claude/Gemini ids. Bump the Cursor model-cache namespace so windows
cached before this fix are refetched.

Fixes #4798
2026-07-30 02:56:10 -06:00
can1357 b9eebad3ad Merge PR #4975: fix(cursor): preserve max-mode flag (@roboomp)
# Conflicts:
#	packages/catalog/test/cursor-discovery.test.ts
2026-07-14 18:31:32 +02:00
roboomp f98ef2e1e7 fix(cursor): invalidated max-mode cache
Changed the Cursor discovery cache namespace so rows written before cursorMaxMode cannot satisfy fresh-cache reads.

Added a regression test that seeds the old namespace and verifies discovery refetches max-mode metadata.

Fixes #4797
2026-07-09 19:36:18 +00:00
roboomp 358811115d fix(cursor): preserved max-mode flag
Parsed Cursor GetUsableModels max_mode metadata into catalog models and sent it on Cursor run requests.

Added focused regression coverage for discovery and request payload propagation.

Fixes #4797
2026-07-09 19:22:20 +00: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