Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b744a70
docs(claude): add custom-plan command
rahulkarajgikar Feb 17, 2026
1bc1cb3
docs(feature-plans): add oauth provider connect plan
rahulkarajgikar Feb 17, 2026
97f3c5f
docs(feature-plans): add opencode/openclaw reference pointers
rahulkarajgikar Feb 17, 2026
b4c1ce1
docs(feature-plans): expand oauth plan for more providers
rahulkarajgikar Feb 17, 2026
cc98884
docs(feature-plans): add provider coverage snapshot
rahulkarajgikar Feb 17, 2026
03a7b0e
feat(llm): connect + oauth profiles + provider expansion
rahulkarajgikar Feb 17, 2026
13f1839
Merge branch 'main' into oauth-provider-revamp
rahulkarajgikar Feb 17, 2026
8c7339c
fix(llm): tighten connect auth + openapi schemas
rahulkarajgikar Feb 17, 2026
e7888f6
docs(commands): make custom-plan self-contained
rahulkarajgikar Feb 18, 2026
5108f85
fix(auth): harden llm oauth runtime + profiles store
rahulkarajgikar Feb 18, 2026
69b57cc
chore(openapi): sync generated spec
rahulkarajgikar Feb 18, 2026
64dbc1d
fix(auth): sanitize oauth errors + clientId checks
rahulkarajgikar Feb 18, 2026
c3b74b6
docs(feature-plans): rebase oauth plan direction
rahulkarajgikar Feb 18, 2026
65e484f
docs(feature-plans): add gateway catalog ingestion
rahulkarajgikar Feb 18, 2026
be215fe
docs(feature-plans): add npm transport roadmap
rahulkarajgikar Feb 18, 2026
aa59c4d
docs(feature-plans): make models.dev provider IDs canonical
rahulkarajgikar Feb 19, 2026
7f9e704
docs(feature-plans): add worktree context + reasoning alignment
rahulkarajgikar Feb 19, 2026
75ca29a
update doc
rahulkarajgikar Feb 19, 2026
b50bb66
docs(feature-plans): use deterministic auth slots
rahulkarajgikar Feb 19, 2026
c200120
docs(feature-plans): add upstream edge-case audit tasks
rahulkarajgikar Feb 19, 2026
151774e
docs(feature-plans): align connect API + productionize codex/minimax …
rahulkarajgikar Feb 19, 2026
83f130b
feat(cli): improve /connect auth slot UX
rahulkarajgikar Feb 20, 2026
9502512
docs(feature-plans): mark 1.3.1 complete
rahulkarajgikar Feb 20, 2026
76795d4
feat(llm): canonical provider ids + safer model inference
rahulkarajgikar Feb 23, 2026
14812fd
docs: sync openapi + update llm sync script name
rahulkarajgikar Feb 23, 2026
57059f4
Merge main into oauth-provider-revamp
rahulkarajgikar Feb 23, 2026
7939a45
docs: resync openapi after merge
rahulkarajgikar Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ Dexto infers its execution environment to enable context-aware defaults and path
Dexto’s supported models live in core and are primarily sourced from `models.dev`.

- **Registry source of truth:** `packages/core/src/llm/registry/index.ts` (consumes the generated snapshot + any manual overlays).
- **Generated snapshot:** `packages/core/src/llm/registry/models.generated.ts` (generated from `models.dev` via `scripts/sync-llm-registry.ts`).
- Update: `pnpm run sync-llm-registry`
- Verify clean repo (CI-style): `pnpm run sync-llm-registry:check`
- **Generated snapshot:** `packages/core/src/llm/registry/models.generated.ts` (generated from `models.dev` via `scripts/sync-llm-models.ts`).
- Update: `pnpm run sync-llm-models`
- Verify clean repo (CI-style): `pnpm run sync-llm-models:check`
- **Gateway transform validation:** `packages/core/src/llm/registry/index.test.ts` includes a full-sweep check that our native→OpenRouter ID transform still matches the committed OpenRouter catalog snapshot (runs in `pnpm test`; catches naming drift like Anthropic dotted versions or Gemini `-001`).
- **Manual overlays / missing models:** `packages/core/src/llm/registry/models.manual.ts` (e.g. models missing capability metadata upstream).
- **Curation for UI/onboarding:** `packages/core/src/llm/curation-config.ts` (explicit curated model IDs; used by `/llm/catalog?scope=curated` and default pickers).
Expand Down
12,878 changes: 12,619 additions & 259 deletions docs/static/openapi/openapi.json

Large diffs are not rendered by default.

299 changes: 299 additions & 0 deletions feature-plans/oauth-and-more-providers/NPM_TRANSPORT_COVERAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,299 @@
# NPM / Transport Coverage Snapshot (models.dev → runtime mapping)

Date: **2026-02-18**

Source: `https://models.dev/api.json`

Purpose: models.dev encodes the intended Vercel AI SDK provider module via `provider.npm`. Grouping provider IDs by `npm` gives us a *small, stable set of “transport kinds”* to implement, while still enabling a path to supporting “all providers”.

This file is a concrete snapshot of:
- models.dev provider IDs grouped by `npm` (23 unique values as of this date)
- what Dexto can support *immediately* (based on existing core dependencies + transports)
- what requires additional work (new deps and/or bespoke drivers)

Related:
- Provider IDs snapshot: [`PROVIDER_COVERAGE.md`](./PROVIDER_COVERAGE.md)
- Direction rationale: [`UPDATED_DIRECTION.md`](./UPDATED_DIRECTION.md)

---

## 1) Summary

- Total models.dev providers: **94**
- Unique `provider.npm` values: **23**
- Providers covered by Dexto’s **existing** transport surface (no new deps): **81 / 94**
- This is because **64 / 94** providers are `@ai-sdk/openai-compatible` (OpenAI Chat + baseURL).

Unique npm counts (from models.dev):
- 64 `@ai-sdk/openai-compatible`
- 7 `@ai-sdk/anthropic`
- 2 `@ai-sdk/openai`
- 2 `@ai-sdk/azure`
- 1 each for the remaining 18 values

---

## 2) Dexto “transport kinds” (stable) vs provider IDs (dynamic)

The intended architecture (post Phase 1.5/2.3):
- **Transport kinds** in core remain a small, stable set (OpenAI, OpenAI-compatible, Anthropic, Vertex, Bedrock, etc.).
- **Provider IDs** can expand dynamically (models.dev’s 94 providers) by mapping:
- `provider.npm` → transport kind
- `provider.api` (when present) → baseURL
- `provider.env` / `provider.doc` → connect UX hints

This keeps a clear path to “all providers” while keeping runtime code small; it’s fine if `LLM_PROVIDERS` becomes a 94-item union **as long as it’s generated** (not hand-maintained).

---

## 3) Coverage status (as of this repo today)

### 3.1 Covered by existing core dependencies (81 providers)

These `npm` values already correspond to SDKs we have (or can route via `createOpenAI`), so Phase 2.3 can expose these providers without adding new packages:

- `@ai-sdk/openai-compatible` (64) → `createOpenAI({ baseURL }).chat(model)`
- `@ai-sdk/openai` (2) → `createOpenAI({ baseURL? }).responses(model)` (or `.chat` where needed)
- `@ai-sdk/anthropic` (7) → `createAnthropic({ baseURL? })(model)`
- `@ai-sdk/google` (1) → `createGoogleGenerativeAI({ apiKey })(model)`
- `@ai-sdk/google-vertex` (1) → `createVertex({ project, location })(model)` (ADC)
- `@ai-sdk/google-vertex/anthropic` (1) → `createVertexAnthropic({ project, location })(model)` (ADC)
- `@ai-sdk/groq` (1) → `createGroq({ apiKey })(model)`
- `@ai-sdk/xai` (1) → `createXai({ apiKey })(model)`
- `@ai-sdk/cohere` (1) → `createCohere({ apiKey })(model)`
- `@ai-sdk/amazon-bedrock` (1) → `createAmazonBedrock({ region })(model)` (AWS creds)
- `@openrouter/ai-sdk-provider` (1) → Dexto can route via `createOpenAI({ baseURL: openrouter }).responses(model)` (no need to import the OpenRouter SDK initially)

### 3.2 Not covered yet (13 providers; 12 npm values)

These providers require either:
- adding the provider SDK package + wiring, or
- a deliberate compatibility strategy (eg treat as OpenAI-compatible by adding a curated baseURL if the upstream supports it), or
- deferring support.

Not covered `npm` values:
- `@ai-sdk/azure` (2 providers)
- `@ai-sdk/cerebras` (1)
- `@ai-sdk/deepinfra` (1)
- `@ai-sdk/mistral` (1)
- `@ai-sdk/perplexity` (1)
- `@ai-sdk/togetherai` (1)
- `@ai-sdk/gateway` (1) — Vercel AI Gateway provider module in models.dev
- `@ai-sdk/vercel` (1) — v0 provider module
- `ai-gateway-provider` (1) — Cloudflare AI Gateway provider module
- `venice-ai-sdk-provider` (1)
- `@gitlab/gitlab-ai-provider` (1)
- `@jerome-benoit/sap-ai-provider-v2` (1)

---

## 4) Provider IDs grouped by `provider.npm` (snapshot)

## @ai-sdk/amazon-bedrock (1)

```text
amazon-bedrock
```

## @ai-sdk/anthropic (7)

```text
anthropic
kimi-for-coding
minimax
minimax-cn
minimax-cn-coding-plan
minimax-coding-plan
zenmux
```

## @ai-sdk/azure (2)

```text
azure
azure-cognitive-services
```

## @ai-sdk/cerebras (1)

```text
cerebras
```

## @ai-sdk/cohere (1)

```text
cohere
```

## @ai-sdk/deepinfra (1)

```text
deepinfra
```

## @ai-sdk/gateway (1)

```text
vercel
```

## @ai-sdk/google (1)

```text
google
```

## @ai-sdk/google-vertex (1)

```text
google-vertex
```

## @ai-sdk/google-vertex/anthropic (1)

```text
google-vertex-anthropic
```

## @ai-sdk/groq (1)

```text
groq
```

## @ai-sdk/mistral (1)

```text
mistral
```

## @ai-sdk/openai (2)

```text
openai
vivgrid
```

## @ai-sdk/openai-compatible (64)

```text
302ai
abacus
aihubmix
alibaba
alibaba-cn
bailing
baseten
berget
chutes
cloudferro-sherlock
cloudflare-workers-ai
cortecs
deepseek
fastrouter
fireworks-ai
firmware
friendli
github-copilot
github-models
helicone
huggingface
iflowcn
inception
inference
io-net
jiekou
kilo
kuae-cloud-coding-plan
llama
lmstudio
lucidquery
moark
modelscope
moonshotai
moonshotai-cn
morph
nano-gpt
nebius
nova
novita-ai
nvidia
ollama-cloud
opencode
ovhcloud
poe
privatemode-ai
qihang-ai
qiniu-ai
requesty
scaleway
siliconflow
siliconflow-cn
stackit
stepfun
submodel
synthetic
upstage
vultr
wandb
xiaomi
zai
zai-coding-plan
zhipuai
zhipuai-coding-plan
```

## @ai-sdk/perplexity (1)

```text
perplexity
```

## @ai-sdk/togetherai (1)

```text
togetherai
```

## @ai-sdk/vercel (1)

```text
v0
```

## @ai-sdk/xai (1)

```text
xai
```

## @gitlab/gitlab-ai-provider (1)

```text
gitlab
```

## @jerome-benoit/sap-ai-provider-v2 (1)

```text
sap-ai-core
```

## @openrouter/ai-sdk-provider (1)

```text
openrouter
```

## ai-gateway-provider (1)

```text
cloudflare-ai-gateway
```

## venice-ai-sdk-provider (1)

```text
venice
```
Loading