ai-sdk-ollama 4.0.0 → 4.2.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/CHANGELOG.md +23 -0
- package/README.md +2 -0
- package/dist/functions/generate-text.d.ts +63 -0
- package/dist/functions/generate-text.d.ts.map +1 -0
- package/dist/functions/stream-text.d.ts +25 -0
- package/dist/functions/stream-text.d.ts.map +1 -0
- package/dist/index.browser.cjs +920 -1011
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.ts +11 -1119
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +920 -1011
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +920 -1011
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -1229
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +920 -1011
- package/dist/index.js.map +1 -1
- package/dist/models/chat-language-model.d.ts +32 -0
- package/dist/models/chat-language-model.d.ts.map +1 -0
- package/dist/models/chat-language-model.test-helpers.d.ts +28 -0
- package/dist/models/chat-language-model.test-helpers.d.ts.map +1 -0
- package/dist/models/chat-request.d.ts +85 -0
- package/dist/models/chat-request.d.ts.map +1 -0
- package/dist/models/chat-result.d.ts +79 -0
- package/dist/models/chat-result.d.ts.map +1 -0
- package/dist/models/chat-stream.d.ts +16 -0
- package/dist/models/chat-stream.d.ts.map +1 -0
- package/dist/models/embedding-model.d.ts +35 -0
- package/dist/models/embedding-model.d.ts.map +1 -0
- package/dist/models/embedding-reranking-model.d.ts +84 -0
- package/dist/models/embedding-reranking-model.d.ts.map +1 -0
- package/dist/models/image-model.d.ts +34 -0
- package/dist/models/image-model.d.ts.map +1 -0
- package/dist/models/reranking-model.d.ts +83 -0
- package/dist/models/reranking-model.d.ts.map +1 -0
- package/dist/ollama-tools.d.ts +51 -0
- package/dist/ollama-tools.d.ts.map +1 -0
- package/dist/provider.browser.d.ts +11 -0
- package/dist/provider.browser.d.ts.map +1 -0
- package/dist/provider.d.ts +212 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/test-setup.d.ts +6 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/tool/web-fetch.d.ts +276 -0
- package/dist/tool/web-fetch.d.ts.map +1 -0
- package/dist/tool/web-search.d.ts +284 -0
- package/dist/tool/web-search.d.ts.map +1 -0
- package/dist/utils/convert-to-ollama-messages.d.ts +8 -0
- package/dist/utils/convert-to-ollama-messages.d.ts.map +1 -0
- package/dist/utils/cosine-similarity.d.ts +18 -0
- package/dist/utils/cosine-similarity.d.ts.map +1 -0
- package/dist/utils/json-schema-coercion.d.ts +38 -0
- package/dist/utils/json-schema-coercion.d.ts.map +1 -0
- package/dist/utils/json-text-repair.d.ts +63 -0
- package/dist/utils/json-text-repair.d.ts.map +1 -0
- package/dist/utils/map-ollama-finish-reason.d.ts +10 -0
- package/dist/utils/map-ollama-finish-reason.d.ts.map +1 -0
- package/dist/utils/object-generation-reliability.d.ts +82 -0
- package/dist/utils/object-generation-reliability.d.ts.map +1 -0
- package/dist/utils/ollama-error.d.ts +16 -0
- package/dist/utils/ollama-error.d.ts.map +1 -0
- package/dist/utils/tool-calling-reliability.d.ts +162 -0
- package/dist/utils/tool-calling-reliability.d.ts.map +1 -0
- package/package.json +19 -17
- package/dist/index.browser.d.cts +0 -1119
- package/dist/index.d.cts +0 -1229
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a48c0e1: Add MCP Apps examples demonstrating the host flow for ui:// resources
|
|
8
|
+
|
|
9
|
+
- Node example: connect with mcpAppClientCapabilities, split tools by visibility, generateText with model-visible tools, read and fingerprint ui:// HTML resource, simulate iframe proxy allow/deny
|
|
10
|
+
- Browser example: Vite dev server hosts MCP Apps sandbox, proxies read-resource and call-tool requests, renders interactive dashboard via experimental_MCPAppRenderer
|
|
11
|
+
- Shared stdio MCP server with dashboard resource, model+app tool, and app-only refresh tool
|
|
12
|
+
|
|
13
|
+
## 4.1.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- 514304a: Support two AI SDK v7 provider-spec features that were previously unimplemented:
|
|
18
|
+
|
|
19
|
+
- `includeRawChunks`: `doStream` now emits `{ type: 'raw', rawValue }` parts carrying each unmodified Ollama chunk when the option is set (off by default).
|
|
20
|
+
- `usage.raw`: `doGenerate`/`doStream` now expose Ollama's own counters and timings (`prompt_eval_count`, `eval_count`, `total_duration`, `load_duration`, `prompt_eval_duration`, `eval_duration`) on `usage.raw`.
|
|
21
|
+
|
|
22
|
+
The streaming `finish` part now also carries the same `providerMetadata` that `doGenerate` already returned.
|
|
23
|
+
|
|
24
|
+
Internally, the two files that had grown past 1000 lines were split into focused modules with no behaviour change. `models/chat-language-model.ts` keeps the `LanguageModelV4` implementation and reliability orchestration, with request mapping in `models/chat-request.ts`, result assembly in `models/chat-result.ts`, and the streaming state machine in `models/chat-stream.ts`. `utils/object-generation-reliability.ts` keeps recovery orchestration, with JSON text repair in `utils/json-text-repair.ts` and schema fallback/coercion in `utils/json-schema-coercion.ts`. `enhancedRepairText`, `cascadeRepairText` and the `RepairTextFunction` type are still exported from the package root; only the internal module paths changed.
|
|
25
|
+
|
|
3
26
|
## 4.0.0
|
|
4
27
|
|
|
5
28
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -1029,6 +1029,8 @@ For detailed testing information, see [Integration Tests Documentation](./src/in
|
|
|
1029
1029
|
|
|
1030
1030
|
🔗 **[MCP Tools Example](../../examples/node/src/mcp-tools-example.ts)** - Model Context Protocol integration
|
|
1031
1031
|
|
|
1032
|
+
🧩 **[MCP Apps Example](../../examples/node/src/mcp-apps-example.ts)** - MCP Apps host flow (ui:// resources, split tools, iframe proxy)
|
|
1033
|
+
|
|
1032
1034
|
🔧 **[JSON repair example](../../examples/node/src/json-repair-example.ts)** - Object generation with repair options and custom repair
|
|
1033
1035
|
|
|
1034
1036
|
🔀 **[Cascade repair example](../../examples/node/src/test-cascade-repair.ts)** - `cascadeRepairText` and `enhancedRepairText` (jsonrepair + Ollama-specific)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* generateText - Enhanced generateText with Ollama-specific reliability
|
|
3
|
+
*
|
|
4
|
+
* This wrapper provides response synthesis and enhanced tool calling reliability
|
|
5
|
+
* that addresses the core Ollama limitation: tools execute but no final text is generated.
|
|
6
|
+
*/
|
|
7
|
+
import { generateText as _generateText } from 'ai';
|
|
8
|
+
/**
|
|
9
|
+
* Enhanced options for Ollama-specific reliability features
|
|
10
|
+
*/
|
|
11
|
+
export interface EnhancedOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Enable response synthesis when tools are called but no text is generated
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
enableSynthesis?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Custom synthesis prompt template
|
|
19
|
+
*/
|
|
20
|
+
synthesisPrompt?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum attempts for synthesis
|
|
23
|
+
* @default 2
|
|
24
|
+
*/
|
|
25
|
+
maxSynthesisAttempts?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Minimum response length to consider valid
|
|
28
|
+
* @default 10
|
|
29
|
+
*/
|
|
30
|
+
minResponseLength?: number;
|
|
31
|
+
/**
|
|
32
|
+
* EXPERIMENTAL: Enable tool calling with structured output (output)
|
|
33
|
+
*
|
|
34
|
+
* The official AI SDK doesn't support combining toolChoice: 'required' with output.
|
|
35
|
+
* When enabled, this uses a two-phase approach:
|
|
36
|
+
* 1. Execute tools first (without output)
|
|
37
|
+
* 2. Generate structured output with tool results injected as context
|
|
38
|
+
*
|
|
39
|
+
* This is NOT standard AI SDK behavior - only enable if you need both features together.
|
|
40
|
+
*
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
enableToolsWithStructuredOutput?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Enhanced generateText options that extend the official AI SDK options
|
|
47
|
+
*/
|
|
48
|
+
export type GenerateTextOptions = Parameters<typeof _generateText>[0] & {
|
|
49
|
+
/**
|
|
50
|
+
* Enhanced options for Ollama-specific reliability features
|
|
51
|
+
*/
|
|
52
|
+
enhancedOptions?: EnhancedOptions;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Enhanced generateText function with Ollama-specific reliability improvements
|
|
56
|
+
*
|
|
57
|
+
* This function applies synthesis by default when tools execute but return empty responses.
|
|
58
|
+
* The enhancement preserves the original response prototype and all methods/getters.
|
|
59
|
+
*
|
|
60
|
+
* Type parameters are inferred from the options, preserving AI SDK's type inference.
|
|
61
|
+
*/
|
|
62
|
+
export declare function generateText(options: GenerateTextOptions): Promise<Awaited<ReturnType<typeof _generateText>>>;
|
|
63
|
+
//# sourceMappingURL=generate-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../src/functions/generate-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,IAAI,aAAa,EAAe,MAAM,IAAI,CAAC;AAqBhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;;;;;OAWG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG;IACtE;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CA4NpD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { streamText as _streamText } from 'ai';
|
|
2
|
+
type AIStreamTextOptions = Parameters<typeof _streamText>[0];
|
|
3
|
+
export type StreamTextOptions = AIStreamTextOptions & {
|
|
4
|
+
enhancedOptions?: {
|
|
5
|
+
/**
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
enableToolLogging?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
enableStreamingSynthesis?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* @default 10
|
|
15
|
+
*/
|
|
16
|
+
minStreamLength?: number;
|
|
17
|
+
/**
|
|
18
|
+
* @default 3000
|
|
19
|
+
*/
|
|
20
|
+
synthesisTimeout?: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare function streamText(options: StreamTextOptions): Promise<Awaited<ReturnType<typeof _streamText>>>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=stream-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-text.d.ts","sourceRoot":"","sources":["../../src/functions/stream-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,WAAW,EAAe,MAAM,IAAI,CAAC;AAE5D,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAsC7D,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,eAAe,CAAC,EAAE;QAChB;;WAEG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B;;WAEG;QACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC;;WAEG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;WAEG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,CAAC;AAUF,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAsclD"}
|