diff --git a/examples/local-ollama/.env.example b/examples/local-ollama/.env.example
new file mode 100644
index 000000000..00e6636cb
--- /dev/null
+++ b/examples/local-ollama/.env.example
@@ -0,0 +1 @@
+OLLAMA_API_URL=
\ No newline at end of file
diff --git a/examples/local-ollama/.eslintrc.json b/examples/local-ollama/.eslintrc.json
new file mode 100644
index 000000000..372241854
--- /dev/null
+++ b/examples/local-ollama/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["next/core-web-vitals", "next/typescript"]
+}
diff --git a/examples/local-ollama/.gitignore b/examples/local-ollama/.gitignore
new file mode 100644
index 000000000..4e12d4acd
--- /dev/null
+++ b/examples/local-ollama/.gitignore
@@ -0,0 +1,63 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.yarn/install-state.gz
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+.env
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
+
+# logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# OS generated files
+Thumbs.db
+ehthumbs.db
+Desktop.ini
+$RECYCLE.BIN/
+*.cab
+*.msi
+*.msm
+*.msp
\ No newline at end of file
diff --git a/examples/local-ollama/README.md b/examples/local-ollama/README.md
new file mode 100644
index 000000000..32bd8c47b
--- /dev/null
+++ b/examples/local-ollama/README.md
@@ -0,0 +1,65 @@
+## Project Overview
+
+This project configures `assistant-ui` to work with Ollama hosted on a local instance. Additionally, it changes the theme to dark mode.
+
+This source code was generated using the `Getting Started` guide hosted on [assistant-ui.com/docs](https://www.assistant-ui.com/docs).
+
+```bash
+npx assistant-ui@latest create my-app
+cd my-app
+```
+
+
+
+## Prerequisites
+
+Ensure you have the following installed:
+
+- Node.js
+- npm
+
+## Installation
+
+Clone the repository:
+
+```bash
+git clone https://github.com/yourusername/assistant-ui-local-ollama.git
+cd assistant-ui-local-ollama
+```
+
+Install the dependencies:
+
+```bash
+npm install
+```
+
+## Configuration
+Copy the `.env.local.example` file to `.env`:
+
+Add `OLLAMA_API_URL` to the `.env` file:
+```
+OLLAMA_API_URL=http:/x.x.x.x:11434/api
+```
+
+## Running the Development Server
+
+Start the development server:
+
+```bash
+npm run dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+## Editing the Project
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+## Changing the Theme to Dark Mode
+
+The theme has been set to dark mode by default. You can customize the theme by annotating html with the className `dark`.
+
+
+## License
+
+This project is licensed under the MIT License.
diff --git a/examples/local-ollama/app/api/chat/route.ts b/examples/local-ollama/app/api/chat/route.ts
new file mode 100644
index 000000000..97c306190
--- /dev/null
+++ b/examples/local-ollama/app/api/chat/route.ts
@@ -0,0 +1,10 @@
+import { createOllama } from "ollama-ai-provider";
+import { createEdgeRuntimeAPI } from "@assistant-ui/react/edge";
+
+const local_ollama = createOllama({
+ baseURL: process.env.OLLAMA_API_URL,
+});
+
+export const { POST } = createEdgeRuntimeAPI({
+ model: local_ollama("llama3.1"),
+});
\ No newline at end of file
diff --git a/examples/local-ollama/app/favicon.ico b/examples/local-ollama/app/favicon.ico
new file mode 100644
index 000000000..718d6fea4
Binary files /dev/null and b/examples/local-ollama/app/favicon.ico differ
diff --git a/examples/local-ollama/app/fonts/GeistMonoVF.woff b/examples/local-ollama/app/fonts/GeistMonoVF.woff
new file mode 100644
index 000000000..f2ae185cb
Binary files /dev/null and b/examples/local-ollama/app/fonts/GeistMonoVF.woff differ
diff --git a/examples/local-ollama/app/fonts/GeistVF.woff b/examples/local-ollama/app/fonts/GeistVF.woff
new file mode 100644
index 000000000..1b62daacf
Binary files /dev/null and b/examples/local-ollama/app/fonts/GeistVF.woff differ
diff --git a/examples/local-ollama/app/globals.css b/examples/local-ollama/app/globals.css
new file mode 100644
index 000000000..b5c61c956
--- /dev/null
+++ b/examples/local-ollama/app/globals.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/examples/local-ollama/app/layout.tsx b/examples/local-ollama/app/layout.tsx
new file mode 100644
index 000000000..189d2be4d
--- /dev/null
+++ b/examples/local-ollama/app/layout.tsx
@@ -0,0 +1,35 @@
+import type { Metadata } from "next";
+import localFont from "next/font/local";
+import "./globals.css";
+
+const geistSans = localFont({
+ src: "./fonts/GeistVF.woff",
+ variable: "--font-geist-sans",
+ weight: "100 900",
+});
+const geistMono = localFont({
+ src: "./fonts/GeistMonoVF.woff",
+ variable: "--font-geist-mono",
+ weight: "100 900",
+});
+
+export const metadata: Metadata = {
+ title: "Create Next App",
+ description: "Generated by create next app",
+};
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/examples/local-ollama/app/page.tsx b/examples/local-ollama/app/page.tsx
new file mode 100644
index 000000000..68bc8a181
--- /dev/null
+++ b/examples/local-ollama/app/page.tsx
@@ -0,0 +1,9 @@
+import { MyAssistant } from "@/components/MyAssistant";
+
+export default function Home() {
+ return (
+
+
+
+ );
+}
diff --git a/examples/local-ollama/components/MyAssistant.tsx b/examples/local-ollama/components/MyAssistant.tsx
new file mode 100644
index 000000000..e75bf4274
--- /dev/null
+++ b/examples/local-ollama/components/MyAssistant.tsx
@@ -0,0 +1,18 @@
+"use client";
+
+import { useEdgeRuntime } from "@assistant-ui/react";
+import { Thread } from "@assistant-ui/react";
+import { makeMarkdownText } from "@assistant-ui/react-markdown";
+
+const MarkdownText = makeMarkdownText();
+
+export function MyAssistant() {
+ const runtime = useEdgeRuntime({ api: "/api/chat" });
+
+ return (
+
+ );
+}
diff --git a/examples/local-ollama/next.config.mjs b/examples/local-ollama/next.config.mjs
new file mode 100644
index 000000000..4678774e6
--- /dev/null
+++ b/examples/local-ollama/next.config.mjs
@@ -0,0 +1,4 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {};
+
+export default nextConfig;
diff --git a/examples/local-ollama/package.json b/examples/local-ollama/package.json
new file mode 100644
index 000000000..933dbf2c7
--- /dev/null
+++ b/examples/local-ollama/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "with-local-ollama",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@assistant-ui/react": "^0.5",
+ "@assistant-ui/react-markdown": "^0.2",
+ "next": "14.2.11",
+ "ollama-ai-provider": "^0.15.0",
+ "react": "^18",
+ "react-dom": "^18",
+ "tailwindcss-animate": "^1.0.7",
+ "zod": "^3.23.8"
+ },
+ "devDependencies": {
+ "@types/node": "^22",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "eslint": "^8",
+ "eslint-config-next": "14.2.11",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.11",
+ "typescript": "^5"
+ }
+}
diff --git a/examples/local-ollama/postcss.config.mjs b/examples/local-ollama/postcss.config.mjs
new file mode 100644
index 000000000..1a69fd2a4
--- /dev/null
+++ b/examples/local-ollama/postcss.config.mjs
@@ -0,0 +1,8 @@
+/** @type {import('postcss-load-config').Config} */
+const config = {
+ plugins: {
+ tailwindcss: {},
+ },
+};
+
+export default config;
diff --git a/examples/local-ollama/tailwind.config.ts b/examples/local-ollama/tailwind.config.ts
new file mode 100644
index 000000000..50e69b32c
--- /dev/null
+++ b/examples/local-ollama/tailwind.config.ts
@@ -0,0 +1,17 @@
+import type { Config } from "tailwindcss";
+
+const config = {
+ darkMode: "class",
+ content: [
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
+ plugins: [
+ require("tailwindcss-animate"),
+ require("@assistant-ui/react/tailwindcss"),
+ require("@assistant-ui/react-markdown/tailwindcss"),
+ ],
+} satisfies Config;
+
+export default config;
diff --git a/examples/local-ollama/tsconfig.json b/examples/local-ollama/tsconfig.json
new file mode 100644
index 000000000..e7ff90fd2
--- /dev/null
+++ b/examples/local-ollama/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 895342e93..320745385 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -157,6 +157,58 @@ importers:
specifier: ^5.6.2
version: 5.6.2
+ examples/local-ollama:
+ dependencies:
+ '@assistant-ui/react':
+ specifier: ^0.5
+ version: link:../../packages/react
+ '@assistant-ui/react-markdown':
+ specifier: ^0.2
+ version: link:../../packages/react-markdown
+ next:
+ specifier: 14.2.11
+ version: 14.2.11(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ ollama-ai-provider:
+ specifier: ^0.15.0
+ version: 0.15.0(zod@3.23.8)
+ react:
+ specifier: ^18
+ version: 18.3.1
+ react-dom:
+ specifier: ^18
+ version: 18.3.1(react@18.3.1)
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@3.4.11)
+ zod:
+ specifier: ^3.23.8
+ version: 3.23.8
+ devDependencies:
+ '@types/node':
+ specifier: ^22
+ version: 22.5.5
+ '@types/react':
+ specifier: ^18
+ version: 18.3.6
+ '@types/react-dom':
+ specifier: ^18
+ version: 18.3.0
+ eslint:
+ specifier: ^8
+ version: 8.57.1
+ eslint-config-next:
+ specifier: 14.2.11
+ version: 14.2.11(eslint@8.57.1)(typescript@5.6.2)
+ postcss:
+ specifier: ^8
+ version: 8.4.47
+ tailwindcss:
+ specifier: ^3.4.11
+ version: 3.4.11
+ typescript:
+ specifier: ^5
+ version: 5.6.2
+
examples/search-agent-for-e-commerce:
dependencies:
'@ai-sdk/openai':
@@ -1453,6 +1505,15 @@ packages:
peerDependencies:
zod: ^3.0.0
+ '@ai-sdk/provider-utils@1.0.18':
+ resolution: {integrity: sha512-9u/XE/dB1gsIGcxiC5JfGOLzUz+EKRXt66T8KYWwDg4x8d02P+fI/EPOgkf+T4oLBrcQgvs4GPXPKoXGPJxBbg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
'@ai-sdk/provider-utils@1.0.19':
resolution: {integrity: sha512-p02Fq5Mnc8T6nwRBN1Iaou8YXvN1sDS6hbmJaD5UaRbXjizbh+8rpFS/o7jqAHTwf3uHCDitP3pnODyHdc/CDQ==}
engines: {node: '>=18'}
@@ -5083,6 +5144,15 @@ packages:
resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
engines: {node: '>= 0.4'}
+ ollama-ai-provider@0.15.0:
+ resolution: {integrity: sha512-pBRv2PjOPFdjB2fxOcu4dV3oT6NUxUI+V3c0Cu3r8Dwv6WmhHkRGLMscyRMU4Q2YVAtbghrvkfBGQmaqpMh/KQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@@ -5188,6 +5258,9 @@ packages:
parse5@7.1.2:
resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ partial-json@0.1.7:
+ resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==}
+
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@@ -6321,6 +6394,15 @@ snapshots:
'@ai-sdk/provider-utils': 1.0.19(zod@3.23.8)
zod: 3.23.8
+ '@ai-sdk/provider-utils@1.0.18(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider': 0.0.23
+ eventsource-parser: 1.1.2
+ nanoid: 3.3.6
+ secure-json-parse: 2.7.0
+ optionalDependencies:
+ zod: 3.23.8
+
'@ai-sdk/provider-utils@1.0.19(zod@3.23.8)':
dependencies:
'@ai-sdk/provider': 0.0.23
@@ -8945,8 +9027,8 @@ snapshots:
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1)
- eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
eslint-plugin-react: 7.36.1(eslint@8.57.1)
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
@@ -8965,37 +9047,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1):
+ eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7
enhanced-resolve: 5.17.1
eslint: 8.57.1
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1)
+ eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1):
+ eslint-module-utils@2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
+ eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -9006,7 +9088,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1)
+ eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3
@@ -10728,6 +10810,14 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.0.0
+ ollama-ai-provider@0.15.0(zod@3.23.8):
+ dependencies:
+ '@ai-sdk/provider': 0.0.23
+ '@ai-sdk/provider-utils': 1.0.18(zod@3.23.8)
+ partial-json: 0.1.7
+ optionalDependencies:
+ zod: 3.23.8
+
once@1.4.0:
dependencies:
wrappy: 1.0.2
@@ -10864,6 +10954,8 @@ snapshots:
dependencies:
entities: 4.5.0
+ partial-json@0.1.7: {}
+
path-browserify@1.0.1: {}
path-exists@4.0.0: {}