2026-07-16 18:13:34 +08:00
<!-- Generated by scripts/gen-website-api.ts — do not edit by hand. Run `pnpm run gen-website-api` to regenerate. -->
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
# ctx.llm
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
`LlmService` — provided by `@deepseek-ai/dsh-llm` .
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
The abstract `llm` service: an adapter registry plus a streaming model-call surface, interceptable via the `llm/stream` waterfall.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
[Source ](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L96 )
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
### ctx.llm.registerAdapter(providers, adapter)
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
```ts website-api
2026-07-17 22:02:54 +08:00
registerAdapter(providers: string[], adapter: LlmAdapter): () => void
2026-07-09 16:07:58 +08:00
` ``
2026-07-17 22:02:54 +08:00
Register an adapter for the given provider routes. Throws ` LlmError` with code ` DUPLICATE_ADAPTER` if any provider already has an adapter (all-or-nothing). Disposed with the fiber.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
- ` providers` — every provider route this adapter should serve.
- ` adapter` — the adapter that streams calls for those providers.
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
**Returns** the disposer that unregisters all of them.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L111)
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
### ctx.llm.listProviders()
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
` ``ts website-api
2026-07-17 22:02:54 +08:00
listProviders(): LlmProviderInfo[]
2026-07-09 16:07:58 +08:00
` ``
2026-07-17 22:02:54 +08:00
Describe provider routes with a registered adapter.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
**Returns** detached provider metadata in registration order.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L142)
### ctx.llm.listModels(provider)
` ``ts website-api
async listModels(provider: string): Promise<LlmModelInfo[]>
` ``
Discover models advertised by one registered provider. Catalog membership is advisory and never changes routing or request validation.
- ` provider` — registered provider route to inspect.
**Returns** detached model metadata in adapter-preferred order.
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L152)
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
### ctx.llm.stream(options)
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
` ``ts website-api
stream(options: GenerateOptions): AsyncIterable<StreamChunk>
2026-07-09 16:07:58 +08:00
` ``
2026-07-17 22:02:54 +08:00
Stream one model call as raw chunks (token-level deltas). Throws ` LlmError` with code ` NO_ADAPTER` if no adapter is registered for ` options.provider`. Replay state is retained only when the same adapter instance owns its historical provider and the target provider. Dispatches through the ` llm/stream` waterfall.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
- ` options` — the full request; ` options.provider` selects the adapter.
2026-07-09 16:07:58 +08:00
2026-07-16 18:13:34 +08:00
**Returns** the chunk stream, possibly wrapped by ` llm/stream` listeners.
2026-07-09 16:07:58 +08:00
2026-07-17 22:02:54 +08:00
[Source ](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L210 )