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.
Files changed (67) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +2 -0
  3. package/dist/functions/generate-text.d.ts +63 -0
  4. package/dist/functions/generate-text.d.ts.map +1 -0
  5. package/dist/functions/stream-text.d.ts +25 -0
  6. package/dist/functions/stream-text.d.ts.map +1 -0
  7. package/dist/index.browser.cjs +920 -1011
  8. package/dist/index.browser.cjs.map +1 -1
  9. package/dist/index.browser.d.ts +11 -1119
  10. package/dist/index.browser.d.ts.map +1 -0
  11. package/dist/index.browser.js +920 -1011
  12. package/dist/index.browser.js.map +1 -1
  13. package/dist/index.cjs +920 -1011
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +18 -1229
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +920 -1011
  18. package/dist/index.js.map +1 -1
  19. package/dist/models/chat-language-model.d.ts +32 -0
  20. package/dist/models/chat-language-model.d.ts.map +1 -0
  21. package/dist/models/chat-language-model.test-helpers.d.ts +28 -0
  22. package/dist/models/chat-language-model.test-helpers.d.ts.map +1 -0
  23. package/dist/models/chat-request.d.ts +85 -0
  24. package/dist/models/chat-request.d.ts.map +1 -0
  25. package/dist/models/chat-result.d.ts +79 -0
  26. package/dist/models/chat-result.d.ts.map +1 -0
  27. package/dist/models/chat-stream.d.ts +16 -0
  28. package/dist/models/chat-stream.d.ts.map +1 -0
  29. package/dist/models/embedding-model.d.ts +35 -0
  30. package/dist/models/embedding-model.d.ts.map +1 -0
  31. package/dist/models/embedding-reranking-model.d.ts +84 -0
  32. package/dist/models/embedding-reranking-model.d.ts.map +1 -0
  33. package/dist/models/image-model.d.ts +34 -0
  34. package/dist/models/image-model.d.ts.map +1 -0
  35. package/dist/models/reranking-model.d.ts +83 -0
  36. package/dist/models/reranking-model.d.ts.map +1 -0
  37. package/dist/ollama-tools.d.ts +51 -0
  38. package/dist/ollama-tools.d.ts.map +1 -0
  39. package/dist/provider.browser.d.ts +11 -0
  40. package/dist/provider.browser.d.ts.map +1 -0
  41. package/dist/provider.d.ts +212 -0
  42. package/dist/provider.d.ts.map +1 -0
  43. package/dist/test-setup.d.ts +6 -0
  44. package/dist/test-setup.d.ts.map +1 -0
  45. package/dist/tool/web-fetch.d.ts +276 -0
  46. package/dist/tool/web-fetch.d.ts.map +1 -0
  47. package/dist/tool/web-search.d.ts +284 -0
  48. package/dist/tool/web-search.d.ts.map +1 -0
  49. package/dist/utils/convert-to-ollama-messages.d.ts +8 -0
  50. package/dist/utils/convert-to-ollama-messages.d.ts.map +1 -0
  51. package/dist/utils/cosine-similarity.d.ts +18 -0
  52. package/dist/utils/cosine-similarity.d.ts.map +1 -0
  53. package/dist/utils/json-schema-coercion.d.ts +38 -0
  54. package/dist/utils/json-schema-coercion.d.ts.map +1 -0
  55. package/dist/utils/json-text-repair.d.ts +63 -0
  56. package/dist/utils/json-text-repair.d.ts.map +1 -0
  57. package/dist/utils/map-ollama-finish-reason.d.ts +10 -0
  58. package/dist/utils/map-ollama-finish-reason.d.ts.map +1 -0
  59. package/dist/utils/object-generation-reliability.d.ts +82 -0
  60. package/dist/utils/object-generation-reliability.d.ts.map +1 -0
  61. package/dist/utils/ollama-error.d.ts +16 -0
  62. package/dist/utils/ollama-error.d.ts.map +1 -0
  63. package/dist/utils/tool-calling-reliability.d.ts +162 -0
  64. package/dist/utils/tool-calling-reliability.d.ts.map +1 -0
  65. package/package.json +19 -17
  66. package/dist/index.browser.d.cts +0 -1119
  67. 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"}