@mastra/mcp-docs-server 1.2.18-alpha.3 → 1.2.18-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,18 +12,31 @@ Choose the deployment path that fits your application:
12
12
 
13
13
  This guide builds an editorial pipeline that reviews a draft from three perspectives in parallel, then passes the feedback to an editor agent. Use the links above if you want to deploy a Mastra API or execute an entire Mastra workflow as one task.
14
14
 
15
- ## How Render Workflows integrates with Mastra
15
+ ## How Render Workflows works with Mastra
16
16
 
17
17
  Mastra supplies the agents and application logic, while Render Workflows defines the execution boundaries. A typical pipeline has three layers:
18
18
 
19
- 1. A parent task coordinates the run.
20
- 2. Child tasks invoke Mastra agents for focused work.
21
- 3. A final task combines the results.
19
+ 1. A parent Render task coordinates the run.
20
+ 2. Child Render tasks invoke Mastra agents for focused work.
21
+ 3. A final Render task combines the results.
22
22
 
23
- Calling one task from another creates a chained run in a separate instance, with its own compute plan, timeout, and retry policy.
23
+ Calling one Render task from another creates a chained task run. Each chained run executes in its own instance. You can set compute, timeout, and retries on that task alone.
24
+
25
+ This guide builds an editorial pipeline that reviews a draft from three perspectives in parallel, then uses a Mastra editor agent to produce a revised version. You can try a running copy in the [live demo](https://render-workflows-mastra.onrender.com).
24
26
 
25
27
  ## Setup
26
28
 
29
+ You need a Render account and the Render CLI. The CLI runs a local task server during development. You can also use it to create a workflow service on Render.
30
+
31
+ Install the CLI and log in:
32
+
33
+ ```bash
34
+ brew install render
35
+ render login
36
+ ```
37
+
38
+ > **Note:** Requires Render CLI `v2.12.0` or later. For other installation methods, see the [Render CLI docs](https://render.com/docs/cli).
39
+
27
40
  Create an empty Mastra project named `render-workflows`:
28
41
 
29
42
  **npm**:
@@ -50,7 +63,11 @@ yarn create mastra render-workflows --empty
50
63
  bunx create-mastra render-workflows --empty
51
64
  ```
52
65
 
53
- Install two additional dependencies:
66
+ ```bash
67
+ cd render-workflows
68
+ ```
69
+
70
+ Install the Render SDK:
54
71
 
55
72
  **npm**:
56
73
 
@@ -76,17 +93,19 @@ yarn add @renderinc/sdk tsx
76
93
  bun add @renderinc/sdk tsx
77
94
  ```
78
95
 
79
- Add your API key to an `.env` file. This example uses OpenAI, but any supported [model provider](https://mastra.ai/models) works.
96
+ > **Note:** Render Workflows requires `@renderinc/sdk@^0.5.0` or later.
97
+
98
+ Set the API key for your model provider. This example uses OpenAI:
80
99
 
81
100
  ```text
82
101
  OPENAI_API_KEY=your_openai_api_key
83
102
  ```
84
103
 
85
- Install the [Render CLI](https://render.com/docs/cli) to run workflow commands from your terminal.
104
+ Any supported [Mastra model provider](https://mastra.ai/models) works.
86
105
 
87
- ## Distributed agent pipeline
106
+ ## Building a distributed agent pipeline
88
107
 
89
- ### Create the agents
108
+ ### Creating the agents
90
109
 
91
110
  In `src/mastra`, create an `agents` directory with `reviewer-agent.ts` and `editor-agent.ts`. Define both agents:
92
111
 
@@ -120,7 +139,7 @@ export const editorAgent = new Agent({
120
139
  })
121
140
  ```
122
141
 
123
- ### Configure the Mastra instance
142
+ ### Configuring the Mastra instance
124
143
 
125
144
  Add both agents to the Mastra instance in `src/mastra/index.ts`:
126
145
 
@@ -137,15 +156,13 @@ export const mastra = new Mastra({
137
156
  })
138
157
  ```
139
158
 
140
- ### Create the tasks
159
+ Retrieving agents from the Mastra instance gives them access to shared application services such as logging, storage, and observability.
141
160
 
142
- In `src`, create a `tasks` directory with `review-task.ts`, `revision-task.ts`, and `editorial-task.ts`.
161
+ ### Creating the review task
143
162
 
144
- #### Review task
163
+ In `src`, create a `tasks` directory. The reviewer agent handles one area of focus. Its compute plan, five-minute timeout, and retry policy apply only to that analysis. A temporary model-provider failure can trigger another attempt without restarting the other reviewers.
145
164
 
146
- The reviewer agent handles one area of focus. Its compute plan, five-minute timeout, and retry policy apply only to that analysis. A temporary model-provider failure can trigger another attempt without restarting the other reviewers.
147
-
148
- ```typescript
165
+ ```ts
149
166
  import { task } from '@renderinc/sdk/workflows'
150
167
  import { mastra } from '../mastra/index.js'
151
168
 
@@ -182,11 +199,11 @@ export const reviewDraft = task(
182
199
  )
183
200
  ```
184
201
 
185
- #### Revision task
202
+ ### Creating the revision task
186
203
 
187
204
  This task combines the feedback and produces a revised draft. It uses a larger compute plan and a longer timeout than each reviewer.
188
205
 
189
- ```typescript
206
+ ```ts
190
207
  import { task } from '@renderinc/sdk/workflows'
191
208
  import { mastra } from '../mastra/index.js'
192
209
 
@@ -223,11 +240,11 @@ export const reviseDraft = task(
223
240
  )
224
241
  ```
225
242
 
226
- #### Editorial task
243
+ ### Creating the orchestration task
227
244
 
228
- The parent dispatches three reviews in parallel with `Promise.all()`, then sends their combined feedback to the revision step. Retries are disabled at this level because each child defines its own policy. If you enable orchestration retries, ensure that another attempt can't duplicate external side effects or other non-idempotent work.
245
+ The parent dispatches three reviews in parallel with `Promise.all()`, then sends their combined feedback to the revision step. Retries are disabled at this level because each child defines its own policy. If you enable orchestration retries, ensure that another attempt cannot duplicate external side effects or other non-idempotent work.
229
246
 
230
- ```typescript
247
+ ```ts
231
248
  import { task } from '@renderinc/sdk/workflows'
232
249
  import { reviewDraft } from './review-task.js'
233
250
  import { reviseDraft } from './revision-task.js'
@@ -251,7 +268,7 @@ export const editorialPipeline = task(
251
268
  )
252
269
  ```
253
270
 
254
- ### Set up the entry point
271
+ ### Registering the tasks
255
272
 
256
273
  Create `src/index.ts` and import the editorial task:
257
274
 
@@ -259,106 +276,86 @@ Create `src/index.ts` and import the editorial task:
259
276
  import './tasks/editorial-task.js'
260
277
  ```
261
278
 
262
- In `package.json`, add scripts to build the TypeScript project and run the workflow:
279
+ Running the entry point loads the module and registers every task defined with `task()`.
263
280
 
264
- ```json
265
- {
266
- "scripts": {
267
- "build": "tsc",
268
- "dev:workflows": "tsx src/index.ts",
269
- "start:workflows": "node dist/index.js"
270
- }
271
- }
272
- ```
273
-
274
- Configure `tsconfig.json` for the build:
281
+ `create mastra` already wrote `tsconfig.json` and `package.json`. Keep those files. For the workflow start command, `tsc` must emit JavaScript into `dist`, so set these compiler options (do not leave `noEmit: true`):
275
282
 
276
283
  ```json
277
284
  {
278
285
  "compilerOptions": {
279
- "target": "ES2022",
280
286
  "module": "NodeNext",
281
287
  "moduleResolution": "NodeNext",
282
288
  "rootDir": "src",
283
289
  "outDir": "dist",
284
- "strict": true,
285
- "esModuleInterop": true,
286
- "skipLibCheck": true
287
- },
288
- "include": ["src/**/*"]
290
+ "noEmit": false
291
+ }
289
292
  }
290
293
  ```
291
294
 
292
- Build the project. The command compiles the JavaScript files into `dist`.
295
+ Add these scripts next to the ones `create mastra` already added. `create mastra` already sets `"type": "module"`:
293
296
 
294
- **npm**:
295
-
296
- ```bash
297
- npm run build
297
+ ```json
298
+ {
299
+ "scripts": {
300
+ "build": "tsc",
301
+ "dev:workflows": "tsx src/index.ts",
302
+ "start:workflows": "node dist/index.js"
303
+ }
304
+ }
298
305
  ```
299
306
 
300
- **pnpm**:
307
+ Relative imports in the examples above end in `.js` because Node resolves the compiled output as ES modules. Keep those extensions so the built entry point resolves its imports.
301
308
 
302
- ```bash
303
- pnpm run build
304
- ```
309
+ Those files are the complete pipeline. [render-examples/render-workflows-mastra](https://github.com/render-examples/render-workflows-mastra) mirrors this `src/` layout and adds a web UI that starts the parent task. Its agents use the provider-specific model ID `openai/gpt-5.6-sol`. In this page's source, that value is represented by a documentation token that is replaced during the docs build. Clone it to skip copying the snippets before you run it.
305
310
 
306
- **Yarn**:
311
+ ## Running the pipeline
307
312
 
308
- ```bash
309
- yarn build
310
- ```
313
+ ### Running locally
311
314
 
312
- **Bun**:
315
+ Start the local Render Workflows development server:
313
316
 
314
317
  ```bash
315
- bun run build
318
+ render workflows dev -- "npm run dev:workflows"
316
319
  ```
317
320
 
318
- ## Run the pipeline
319
-
320
- ### Locally
321
-
322
- Start the local development server with the Render CLI:
321
+ In another terminal, list the registered tasks:
323
322
 
324
323
  ```bash
325
- render workflows dev -- npm run dev:workflows
324
+ render workflows tasks list --local
326
325
  ```
327
326
 
328
- The server lists the registered tasks:
327
+ Start the editorial pipeline:
329
328
 
330
329
  ```bash
331
- ➜ render workflows dev -- npm run dev:workflows
332
- Workflow server listening on port 8120
333
- Loaded environment variables from .env
334
- 3 tasks found in npm run dev:workflows
335
- • editorial_pipeline
336
- • review_draft
337
- • revise_draft
338
-
339
- To browse and run tasks, open another terminal and run:
340
- render workflows tasks list --local
330
+ render workflows tasks start editorial_pipeline \
331
+ --local \
332
+ --input='["Render Workflows runs long-running tasks outside the request lifecycle."]'
341
333
  ```
342
334
 
343
- In another terminal, confirm that the tasks are available:
335
+ The local server keeps runs and their logs in memory, so you can inspect them after they finish with `render workflows runs list <task-name> --local`.
344
336
 
345
- ```bash
346
- render workflows tasks list --local
347
- ```
337
+ ### Running in production
348
338
 
349
- The command displays each task's name, ID, and creation time. Press `Ctrl+C`, then start the editorial pipeline from the same terminal:
339
+ Running the pipeline on Render requires a _workflow service_. This is the Render service that holds your task definitions: it builds your repository, registers every task it finds, and provisions an instance for each run.
350
340
 
351
- ```bash
352
- render workflows tasks runs start editorial_pipeline \
353
- --local \
354
- --input='["Render Workflows runs long-running tasks outside the request lifecycle."]'
355
- ```
341
+ #### 1. Push the project to a Git repository
342
+
343
+ Render builds workflow services from a repository on GitHub, GitLab, or Bitbucket, so push your project to one of those providers. The first time you use a provider, Render asks for permission to access your repositories.
344
+
345
+ #### 2. Create the workflow service
356
346
 
357
- The development server records the parent run, three parallel reviews, and the final revision.
347
+ In the [Render Dashboard](https://dashboard.render.com), click **New > Workflow** and link the repository from the previous step. Then complete the creation form:
358
348
 
359
- ### Production
349
+ | Field | Value |
350
+ | ----------------- | ------------------------------------------------------------- |
351
+ | **Language** | Node |
352
+ | **Region** | The region of any other Render services your tasks connect to |
353
+ | **Build Command** | `npm install && npm run build` |
354
+ | **Start Command** | `npm run start:workflows` |
360
355
 
361
- Create a workflow service from the current repository:
356
+ Click **Deploy Workflow**. Render builds the project and registers `review_draft`, `revise_draft`, and `editorial_pipeline`, which then appear on the workflow's **Tasks** page.
357
+
358
+ The Render CLI creates the same service without leaving your terminal:
362
359
 
363
360
  ```bash
364
361
  render workflows create \
@@ -369,19 +366,69 @@ render workflows create \
369
366
  --run-command "npm run start:workflows"
370
367
  ```
371
368
 
372
- Add `OPENAI_API_KEY`, or the key for your chosen model provider, to the service's environment variables.
369
+ `--repo .` reads the `origin` remote of your local repository, so the project must already be pushed.
370
+
371
+ #### 3. Set the workflow's environment variables
372
+
373
+ Add `OPENAI_API_KEY`, or the key for your chosen model provider, to the workflow service in the Dashboard before the first run.
373
374
 
374
- After deployment, start a production run. If needed, replace `mastra-workflows/editorial_pipeline` with the task slug shown in the Render Dashboard.
375
+ #### 4. Start a run
375
376
 
376
377
  ```bash
377
378
  render workflows tasks start mastra-workflows/editorial_pipeline \
378
379
  --input='["Render Workflows runs long-running tasks outside the request lifecycle."]'
379
380
  ```
380
381
 
381
- Open the workflow service in the Render Dashboard to inspect each task run, attempt, result, and log stream.
382
+ The first part of that identifier is your workflow's slug and the second is the task name. Both appear on the task's page in the Render Dashboard, so use the slug shown there if your workflow has a different name.
383
+
384
+ Open the workflow in the Render Dashboard to inspect each task run, attempt, result, and log stream.
385
+
386
+ ## Triggering from your application
387
+
388
+ You can trigger the pipeline asynchronously from a Mastra application, web service, or script with the Render SDK.
389
+
390
+ Triggering runs from code requires a Render API key, which you create in your [Render account settings](https://render.com/docs/api#1-create-an-api-key). Set it in the calling service:
391
+
392
+ ```text
393
+ RENDER_API_KEY=rnd_your_api_key
394
+ ```
395
+
396
+ The SDK reads `RENDER_API_KEY` from the environment automatically.
397
+
398
+ Start the task and return its run ID immediately:
399
+
400
+ ```ts
401
+ import { Render } from '@renderinc/sdk'
402
+
403
+ const render = new Render()
404
+
405
+ export async function startEditorialPipeline(draft: string) {
406
+ const run = await render.workflows.startTask('mastra-workflows/editorial_pipeline', [draft])
407
+
408
+ return {
409
+ taskRunId: run.taskRunId,
410
+ }
411
+ }
412
+ ```
413
+
414
+ The task continues running after `startTask()` returns. Call `await run.get()` when the caller should wait for the completed result instead.
415
+
416
+ Returning the task run ID from a request handler lets the application respond without keeping the request open for the full pipeline.
417
+
418
+ ## Constraints
419
+
420
+ These limits live in Render's docs and can change. Prefer those pages over this list:
421
+
422
+ - Task arguments and return values must be JSON serializable. Arguments to a single run cannot exceed 4 MB. See [defining tasks](https://render.com/docs/workflows-defining#task-arguments) and [Workflows limits](https://render.com/docs/workflows-limits).
423
+ - A task can run for up to 24 hours. The default timeout is two hours. See [timeouts](https://render.com/docs/workflows-defining#timeout).
424
+ - A workflow service can register up to 500 task definitions. See [Workflows limits](https://render.com/docs/workflows-limits).
425
+ - Render Workflows currently supports TypeScript and Python task definitions. See [defining tasks](https://render.com/docs/workflows-defining).
426
+
427
+ To run the pipeline on a schedule, create a [Render cron job](https://render.com/docs/cronjobs) whose command calls `render workflows tasks start` or `startTask()`.
382
428
 
383
429
  ## Related
384
430
 
431
+ - [Live demo](https://render-workflows-mastra.onrender.com)
385
432
  - [Render Workflows documentation](https://render.com/docs/workflows)
386
433
  - [Defining Render workflow tasks](https://render.com/docs/workflows-defining)
387
434
  - [Triggering task runs](https://render.com/docs/workflows-running)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Model Providers
4
4
 
5
- Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 6358 models from 179 providers through a single API.
5
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 6361 models from 179 providers through a single API.
6
6
 
7
7
  ## Features
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![Eden AI logo](https://models.dev/logos/edenai.svg)Eden AI
4
4
 
5
- Access 233 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
5
+ Access 232 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [Eden AI documentation](https://docs.edenai.co).
8
8
 
@@ -92,7 +92,6 @@ for await (const chunk of stream) {
92
92
  | `edenai/deepinfra/openai/gpt-oss-20b` | 131K | | | | | | $0.03 | $0.14 |
93
93
  | `edenai/deepinfra/stepfun-ai/Step-3.5-Flash` | 262K | | | | | | $0.09 | $0.30 |
94
94
  | `edenai/deepinfra/stepfun-ai/Step-3.7-Flash` | 262K | | | | | | $0.20 | $1 |
95
- | `edenai/deepinfra/tencent/Hy3` | 262K | | | | | | $0.14 | $0.58 |
96
95
  | `edenai/deepinfra/thinkingmachines/Inkling` | 524K | | | | | | $0.95 | $4 |
97
96
  | `edenai/deepinfra/thinkingmachines/Inkling-Small` | 524K | | | | | | $0.45 | $1 |
98
97
  | `edenai/deepinfra/zai-org/GLM-4.7-Flash` | 203K | | | | | | $0.06 | $0.40 |
@@ -201,7 +200,7 @@ for await (const chunk of stream) {
201
200
  | `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
202
201
  | `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
203
202
  | `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.20 | $0.40 |
204
- | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.73 | $2 |
203
+ | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
205
204
  | `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
206
205
  | `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
207
206
  | `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
@@ -38,7 +38,7 @@ for await (const chunk of stream) {
38
38
  | -------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
39
39
  | `empiriolabs/deepseek-v3-2` | 128K | | | | | | $0.57 | $2 |
40
40
  | `empiriolabs/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
41
- | `empiriolabs/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
41
+ | `empiriolabs/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.42 | $1 |
42
42
  | `empiriolabs/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
43
43
  | `empiriolabs/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
44
44
  | `empiriolabs/fugu-ultra-v1-0` | 1.0M | | | | | | $8 | $45 |
@@ -40,7 +40,7 @@ for await (const chunk of stream) {
40
40
  | `kilo/~anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
41
41
  | `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $5 | $25 |
42
42
  | `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
43
- | `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.07 | $0.14 |
43
+ | `kilo/~deepseek/deepseek-v4-flash-latest` | 262K | | | | | | $0.07 | $0.14 |
44
44
  | `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.38 | $2 |
45
45
  | `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
46
46
  | `kilo/~moonshotai/kimi-latest` | 975K | | | | | | $3 | $13 |
@@ -361,7 +361,7 @@ for await (const chunk of stream) {
361
361
  | `kilo/stepfun/step-3.7-flash` | 256K | | | | | | $0.20 | $1 |
362
362
  | `kilo/stepfun/step-3.7-flash:free` | 262K | | | | | | — | — |
363
363
  | `kilo/tencent/hunyuan-a13b-instruct` | 131K | | | | | | $0.14 | $0.57 |
364
- | `kilo/tencent/hy3` | 262K | | | | | | $0.13 | $0.53 |
364
+ | `kilo/tencent/hy3` | 262K | | | | | | $0.14 | $0.58 |
365
365
  | `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
366
366
  | `kilo/tencent/hy3:free` | 262K | | | | | | — | — |
367
367
  | `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![LLM Gateway logo](https://models.dev/logos/llmgateway.svg)LLM Gateway
4
4
 
5
- Access 189 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
5
+ Access 190 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
8
8
 
@@ -87,6 +87,7 @@ for await (const chunk of stream) {
87
87
  | `llmgateway/glm-5` | 203K | | | | | | $0.72 | $2 |
88
88
  | `llmgateway/glm-5.1` | 205K | | | | | | $0.93 | $3 |
89
89
  | `llmgateway/glm-5.2` | 1.0M | | | | | | $0.55 | $2 |
90
+ | `llmgateway/glm-5.2-fast` | 1.0M | | | | | | $2 | $6 |
90
91
  | `llmgateway/glm-5.3` | 1.0M | | | | | | $1 | $4 |
91
92
  | `llmgateway/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
92
93
  | `llmgateway/gpt-4` | 8K | | | | | | $30 | $60 |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![NanoGPT logo](https://models.dev/logos/nano-gpt.svg)NanoGPT
4
4
 
5
- Access 593 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
5
+ Access 595 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [NanoGPT documentation](https://docs.nano-gpt.com).
8
8
 
@@ -422,6 +422,8 @@ for await (const chunk of stream) {
422
422
  | `nano-gpt/openai/o4-mini` | 200K | | | | | | $1 | $4 |
423
423
  | `nano-gpt/openai/o4-mini-deep-research` | 200K | | | | | | $2 | $9 |
424
424
  | `nano-gpt/openai/o4-mini-high` | 200K | | | | | | $1 | $4 |
425
+ | `nano-gpt/ornith-ai/ornith-1.5-35b-a3b` | 262K | | | | | | $0.10 | $0.40 |
426
+ | `nano-gpt/ornith-ai/ornith-1.5-35b-a3b:thinking` | 262K | | | | | | $0.10 | $0.40 |
425
427
  | `nano-gpt/pamanseau/OpenReasoning-Nemotron-32B` | 33K | | | | | | $0.10 | $0.40 |
426
428
  | `nano-gpt/perceptron/perceptron-mk1` | 33K | | | | | | $0.15 | $2 |
427
429
  | `nano-gpt/perplexity-academic-researcher` | 127K | | | | | | $2 | $8 |
@@ -115,7 +115,7 @@ for await (const chunk of stream) {
115
115
  | `ofox/openai/gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
116
116
  | `ofox/openai/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
117
117
  | `ofox/openai/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
118
- | `ofox/openai/gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
118
+ | `ofox/openai/gpt-5.6-sol` | 1.1M | | | | | | $3 | $15 |
119
119
  | `ofox/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
120
120
  | `ofox/volcengine/doubao-seed-1-6` | 256K | | | | | | $0.12 | $0.29 |
121
121
  | `ofox/volcengine/doubao-seed-1-6-flash` | 256K | | | | | | $0.03 | $0.22 |