@agentskit/adapters 0.10.0 → 0.12.0

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.
package/dist/index.d.cts CHANGED
@@ -374,6 +374,57 @@ interface BedrockInvokeInput {
374
374
  declare function bedrock(config: BedrockConfig): AdapterFactory;
375
375
  declare const bedrockAdapter: typeof bedrock;
376
376
 
377
+ /**
378
+ * Browser-only adapter backed by WebLLM (https://github.com/mlc-ai/web-llm).
379
+ * Models run on-device via WebGPU; no network for inference. The MLCEngine
380
+ * is loaded lazily on first stream so apps can ship the import without
381
+ * paying the wasm cost up front.
382
+ *
383
+ * `@mlc-ai/web-llm` is an **optional peer dependency** — install it
384
+ * alongside this package when you opt into browser-only inference.
385
+ */
386
+ interface WebLlmConfig {
387
+ /** Model id from MLC's catalog, e.g. `Llama-3.1-8B-Instruct-q4f16_1-MLC`. */
388
+ model: string;
389
+ /**
390
+ * Override the engine to inject a pre-loaded one (the MLCEngine spin-up
391
+ * is non-trivial — apps usually warm it once, not per turn).
392
+ */
393
+ engine?: WebLlmEngineLike;
394
+ /** Engine progress callback (model download / compile percent). */
395
+ onProgress?: (info: {
396
+ progress: number;
397
+ text: string;
398
+ }) => void;
399
+ }
400
+ interface WebLlmEngineLike {
401
+ reload(model: string, opts?: {
402
+ initProgressCallback?: (i: {
403
+ progress: number;
404
+ text: string;
405
+ }) => void;
406
+ }): Promise<void>;
407
+ chat: {
408
+ completions: {
409
+ create(params: {
410
+ messages: Array<{
411
+ role: string;
412
+ content: string;
413
+ }>;
414
+ stream: true;
415
+ }): AsyncIterable<{
416
+ choices: Array<{
417
+ delta?: {
418
+ content?: string;
419
+ };
420
+ }>;
421
+ }>;
422
+ };
423
+ };
424
+ }
425
+ declare function webllm(config: WebLlmConfig): AdapterFactory;
426
+ declare const webllmAdapter: typeof webllm;
427
+
377
428
  interface RouterCandidate {
378
429
  id: string;
379
430
  adapter: AdapterFactory;
@@ -605,4 +656,4 @@ interface KimiEmbedderConfig extends OpenAICompatibleEmbedderConfig {
605
656
  }
606
657
  declare const kimiEmbedder: (config: OpenAICompatibleEmbedderConfig) => _agentskit_core.EmbedFn;
607
658
 
608
- export { type AnthropicConfig, type AzureOpenAIConfig, type BailConfig, type BedrockConfig, type BedrockRuntimeClientLike, type CerebrasConfig, type CohereConfig, type CreateAdapterConfig, type DeepSeekConfig, type DeepSeekEmbedderConfig, type EnsembleAggregator, type EnsembleBranchResult, type EnsembleCandidate, type EnsembleOptions, type FallbackCandidate, type FallbackOptions, type FireworksConfig, type GeminiConfig, type GeminiEmbedderConfig, type GenericAdapterConfig, type GrokConfig, type GrokEmbedderConfig, type GroqConfig, type HuggingFaceConfig, type KimiConfig, type KimiEmbedderConfig, type LMStudioConfig, type LangChainConfig, type LangGraphConfig, type LlamaCppConfig, type MistralConfig, type MockAdapterOptions, type MockResponse, type OllamaConfig, type OllamaEmbedderConfig, type OpenAICompatibleEmbedderConfig, type OpenAIConfig, type OpenAIEmbedderConfig, type OpenRouterConfig, type RecordedTurn, type RecordingFixture, type RecordingSink, type ReplicateConfig, type RetryOptions, type RouterCandidate, type RouterOptions, type RouterPolicy, type TogetherConfig, type VLLMConfig, type VercelAIConfig, type VertexConfig, anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm };
659
+ export { type AnthropicConfig, type AzureOpenAIConfig, type BailConfig, type BedrockConfig, type BedrockRuntimeClientLike, type CerebrasConfig, type CohereConfig, type CreateAdapterConfig, type DeepSeekConfig, type DeepSeekEmbedderConfig, type EnsembleAggregator, type EnsembleBranchResult, type EnsembleCandidate, type EnsembleOptions, type FallbackCandidate, type FallbackOptions, type FireworksConfig, type GeminiConfig, type GeminiEmbedderConfig, type GenericAdapterConfig, type GrokConfig, type GrokEmbedderConfig, type GroqConfig, type HuggingFaceConfig, type KimiConfig, type KimiEmbedderConfig, type LMStudioConfig, type LangChainConfig, type LangGraphConfig, type LlamaCppConfig, type MistralConfig, type MockAdapterOptions, type MockResponse, type OllamaConfig, type OllamaEmbedderConfig, type OpenAICompatibleEmbedderConfig, type OpenAIConfig, type OpenAIEmbedderConfig, type OpenRouterConfig, type RecordedTurn, type RecordingFixture, type RecordingSink, type ReplicateConfig, type RetryOptions, type RouterCandidate, type RouterOptions, type RouterPolicy, type TogetherConfig, type VLLMConfig, type VercelAIConfig, type VertexConfig, type WebLlmConfig, type WebLlmEngineLike, anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm, webllm, webllmAdapter };
package/dist/index.d.ts CHANGED
@@ -374,6 +374,57 @@ interface BedrockInvokeInput {
374
374
  declare function bedrock(config: BedrockConfig): AdapterFactory;
375
375
  declare const bedrockAdapter: typeof bedrock;
376
376
 
377
+ /**
378
+ * Browser-only adapter backed by WebLLM (https://github.com/mlc-ai/web-llm).
379
+ * Models run on-device via WebGPU; no network for inference. The MLCEngine
380
+ * is loaded lazily on first stream so apps can ship the import without
381
+ * paying the wasm cost up front.
382
+ *
383
+ * `@mlc-ai/web-llm` is an **optional peer dependency** — install it
384
+ * alongside this package when you opt into browser-only inference.
385
+ */
386
+ interface WebLlmConfig {
387
+ /** Model id from MLC's catalog, e.g. `Llama-3.1-8B-Instruct-q4f16_1-MLC`. */
388
+ model: string;
389
+ /**
390
+ * Override the engine to inject a pre-loaded one (the MLCEngine spin-up
391
+ * is non-trivial — apps usually warm it once, not per turn).
392
+ */
393
+ engine?: WebLlmEngineLike;
394
+ /** Engine progress callback (model download / compile percent). */
395
+ onProgress?: (info: {
396
+ progress: number;
397
+ text: string;
398
+ }) => void;
399
+ }
400
+ interface WebLlmEngineLike {
401
+ reload(model: string, opts?: {
402
+ initProgressCallback?: (i: {
403
+ progress: number;
404
+ text: string;
405
+ }) => void;
406
+ }): Promise<void>;
407
+ chat: {
408
+ completions: {
409
+ create(params: {
410
+ messages: Array<{
411
+ role: string;
412
+ content: string;
413
+ }>;
414
+ stream: true;
415
+ }): AsyncIterable<{
416
+ choices: Array<{
417
+ delta?: {
418
+ content?: string;
419
+ };
420
+ }>;
421
+ }>;
422
+ };
423
+ };
424
+ }
425
+ declare function webllm(config: WebLlmConfig): AdapterFactory;
426
+ declare const webllmAdapter: typeof webllm;
427
+
377
428
  interface RouterCandidate {
378
429
  id: string;
379
430
  adapter: AdapterFactory;
@@ -605,4 +656,4 @@ interface KimiEmbedderConfig extends OpenAICompatibleEmbedderConfig {
605
656
  }
606
657
  declare const kimiEmbedder: (config: OpenAICompatibleEmbedderConfig) => _agentskit_core.EmbedFn;
607
658
 
608
- export { type AnthropicConfig, type AzureOpenAIConfig, type BailConfig, type BedrockConfig, type BedrockRuntimeClientLike, type CerebrasConfig, type CohereConfig, type CreateAdapterConfig, type DeepSeekConfig, type DeepSeekEmbedderConfig, type EnsembleAggregator, type EnsembleBranchResult, type EnsembleCandidate, type EnsembleOptions, type FallbackCandidate, type FallbackOptions, type FireworksConfig, type GeminiConfig, type GeminiEmbedderConfig, type GenericAdapterConfig, type GrokConfig, type GrokEmbedderConfig, type GroqConfig, type HuggingFaceConfig, type KimiConfig, type KimiEmbedderConfig, type LMStudioConfig, type LangChainConfig, type LangGraphConfig, type LlamaCppConfig, type MistralConfig, type MockAdapterOptions, type MockResponse, type OllamaConfig, type OllamaEmbedderConfig, type OpenAICompatibleEmbedderConfig, type OpenAIConfig, type OpenAIEmbedderConfig, type OpenRouterConfig, type RecordedTurn, type RecordingFixture, type RecordingSink, type ReplicateConfig, type RetryOptions, type RouterCandidate, type RouterOptions, type RouterPolicy, type TogetherConfig, type VLLMConfig, type VercelAIConfig, type VertexConfig, anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm };
659
+ export { type AnthropicConfig, type AzureOpenAIConfig, type BailConfig, type BedrockConfig, type BedrockRuntimeClientLike, type CerebrasConfig, type CohereConfig, type CreateAdapterConfig, type DeepSeekConfig, type DeepSeekEmbedderConfig, type EnsembleAggregator, type EnsembleBranchResult, type EnsembleCandidate, type EnsembleOptions, type FallbackCandidate, type FallbackOptions, type FireworksConfig, type GeminiConfig, type GeminiEmbedderConfig, type GenericAdapterConfig, type GrokConfig, type GrokEmbedderConfig, type GroqConfig, type HuggingFaceConfig, type KimiConfig, type KimiEmbedderConfig, type LMStudioConfig, type LangChainConfig, type LangGraphConfig, type LlamaCppConfig, type MistralConfig, type MockAdapterOptions, type MockResponse, type OllamaConfig, type OllamaEmbedderConfig, type OpenAICompatibleEmbedderConfig, type OpenAIConfig, type OpenAIEmbedderConfig, type OpenRouterConfig, type RecordedTurn, type RecordingFixture, type RecordingSink, type ReplicateConfig, type RetryOptions, type RouterCandidate, type RouterOptions, type RouterPolicy, type TogetherConfig, type VLLMConfig, type VercelAIConfig, type VertexConfig, type WebLlmConfig, type WebLlmEngineLike, anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm, webllm, webllmAdapter };
package/dist/index.js CHANGED
@@ -1272,6 +1272,69 @@ function bedrock(config) {
1272
1272
  }
1273
1273
  var bedrockAdapter = bedrock;
1274
1274
 
1275
+ // src/webllm.ts
1276
+ var cachedSdk2 = null;
1277
+ async function loadSdk2() {
1278
+ if (!cachedSdk2) {
1279
+ cachedSdk2 = (async () => {
1280
+ try {
1281
+ const moduleId = "@mlc-ai/web-llm";
1282
+ return await import(
1283
+ /* @vite-ignore */
1284
+ moduleId
1285
+ );
1286
+ } catch {
1287
+ throw new Error("Install @mlc-ai/web-llm to use the webllm adapter: npm install @mlc-ai/web-llm");
1288
+ }
1289
+ })();
1290
+ }
1291
+ return cachedSdk2;
1292
+ }
1293
+ function webllm(config) {
1294
+ let enginePromise = null;
1295
+ const getEngine = () => {
1296
+ if (config.engine) return Promise.resolve(config.engine);
1297
+ if (!enginePromise) {
1298
+ enginePromise = (async () => {
1299
+ const sdk = await loadSdk2();
1300
+ return sdk.CreateMLCEngine(config.model, { initProgressCallback: config.onProgress });
1301
+ })();
1302
+ }
1303
+ return enginePromise;
1304
+ };
1305
+ return {
1306
+ capabilities: {
1307
+ streaming: true,
1308
+ tools: false
1309
+ },
1310
+ createSource: (request) => {
1311
+ let aborted = false;
1312
+ return {
1313
+ stream: async function* () {
1314
+ if (aborted) return;
1315
+ try {
1316
+ const engine = await getEngine();
1317
+ const messages = request.messages.map((m) => ({ role: m.role, content: m.content }));
1318
+ const completion = await engine.chat.completions.create({ messages, stream: true });
1319
+ for await (const chunk of completion) {
1320
+ if (aborted) return;
1321
+ const delta = chunk.choices[0]?.delta?.content;
1322
+ if (delta) yield { type: "text", content: delta };
1323
+ }
1324
+ yield { type: "done" };
1325
+ } catch (err) {
1326
+ yield { type: "error", content: err instanceof Error ? err.message : String(err) };
1327
+ }
1328
+ },
1329
+ abort: () => {
1330
+ aborted = true;
1331
+ }
1332
+ };
1333
+ }
1334
+ };
1335
+ }
1336
+ var webllmAdapter = webllm;
1337
+
1275
1338
  // src/router.ts
1276
1339
  function requireCapabilities(request) {
1277
1340
  const needs = {};
@@ -1796,6 +1859,6 @@ var grokEmbedder = createOpenAICompatibleEmbedder("Grok", "https://api.x.ai");
1796
1859
  // src/embedders/kimi.ts
1797
1860
  var kimiEmbedder = createOpenAICompatibleEmbedder("Kimi", "https://api.moonshot.ai");
1798
1861
 
1799
- export { anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm };
1862
+ export { anthropic, azureOpenAI, azureOpenAIAdapter, bail, bailAdapter, bedrock, bedrockAdapter, cerebras, cerebrasAdapter, chunkText, cohere, cohereAdapter, createAdapter, createEnsembleAdapter, createFallbackAdapter, createOpenAICompatibleEmbedder, createRouter, deepseek, deepseekEmbedder, fetchWithRetry, fireworks, gemini, geminiEmbedder, generic, grok, grokEmbedder, groq, groqAdapter, huggingface, inMemorySink, kimi, kimiEmbedder, langchain, langgraph, llamacpp, lmstudio, mistral, mockAdapter, ollama, ollamaEmbedder, openai, openaiEmbedder, openrouter, qwen, recordingAdapter, replayAdapter, replicate, replicateAdapter, simulateStream, together, vercelAI, vertex, vertexAdapter, vllm, webllm, webllmAdapter };
1800
1863
  //# sourceMappingURL=index.js.map
1801
1864
  //# sourceMappingURL=index.js.map