This commit is contained in:
Philipinho
2025-10-13 23:28:08 +01:00
parent 68177d6f34
commit 807603f3a2
7 changed files with 323 additions and 35 deletions

View File

@ -30,6 +30,10 @@
"test:e2e": "jest --config test/jest-e2e.json" "test:e2e": "jest --config test/jest-e2e.json"
}, },
"dependencies": { "dependencies": {
"@ai-sdk/amazon-bedrock": "^3.0.35",
"@ai-sdk/azure": "^2.0.47",
"@ai-sdk/google": "^2.0.18",
"@ai-sdk/openai": "^2.0.46",
"@aws-sdk/client-s3": "3.701.0", "@aws-sdk/client-s3": "3.701.0",
"@aws-sdk/lib-storage": "3.701.0", "@aws-sdk/lib-storage": "3.701.0",
"@aws-sdk/s3-request-presigner": "3.701.0", "@aws-sdk/s3-request-presigner": "3.701.0",
@ -56,6 +60,8 @@
"@react-email/components": "0.0.28", "@react-email/components": "0.0.28",
"@react-email/render": "1.0.2", "@react-email/render": "1.0.2",
"@socket.io/redis-adapter": "^8.3.0", "@socket.io/redis-adapter": "^8.3.0",
"ai": "^5.0.65",
"ai-sdk-ollama": "^0.12.0",
"bcrypt": "^5.1.1", "bcrypt": "^5.1.1",
"bullmq": "^5.61.0", "bullmq": "^5.61.0",
"cache-manager": "^6.4.3", "cache-manager": "^6.4.3",
@ -75,7 +81,6 @@
"nanoid": "3.3.11", "nanoid": "3.3.11",
"nestjs-kysely": "^1.2.0", "nestjs-kysely": "^1.2.0",
"nodemailer": "^7.0.3", "nodemailer": "^7.0.3",
"openai": "^5.12.2",
"openid-client": "^5.7.1", "openid-client": "^5.7.1",
"otpauth": "^9.4.0", "otpauth": "^9.4.0",
"p-limit": "^6.2.0", "p-limit": "^6.2.0",

View File

@ -20,7 +20,7 @@ import {
WorkspaceInvitations, WorkspaceInvitations,
Workspaces, Workspaces,
} from '@docmost/db/types/db'; } from '@docmost/db/types/db';
import { Embeddings } from '@docmost/db/types/embeddings.types'; import { PageEmbeddings } from '@docmost/db/types/embeddings.types';
export interface DbInterface { export interface DbInterface {
attachments: Attachments; attachments: Attachments;
@ -32,7 +32,7 @@ export interface DbInterface {
fileTasks: FileTasks; fileTasks: FileTasks;
groups: Groups; groups: Groups;
groupUsers: GroupUsers; groupUsers: GroupUsers;
embeddings: Embeddings; pageEmbeddings: PageEmbeddings;
pageHistory: PageHistory; pageHistory: PageHistory;
pages: Pages; pages: Pages;
shares: Shares; shares: Shares;

View File

@ -1,13 +1,15 @@
import { Json, Timestamp, Generated } from '@docmost/db/types/db'; import { Json, Timestamp, Generated } from '@docmost/db/types/db';
// embeddings type // embeddings type
export interface Embeddings { export interface PageEmbeddings {
id: Generated<string>; id: Generated<string>;
pageId: string; pageId: string;
spaceId: string; spaceId: string;
modelName: string;
modelDimensions: number;
workspaceId: string; workspaceId: string;
attachmentId: string; attachmentId: string;
embedding: number[] | Buffer | string; embedding: number[];
chunkIndex: Generated<number>; chunkIndex: Generated<number>;
chunkStart: Generated<number>; chunkStart: Generated<number>;
chunkLength: Generated<number>; chunkLength: Generated<number>;

View File

@ -21,7 +21,7 @@ import {
UserMfa as _UserMFA, UserMfa as _UserMFA,
ApiKeys, ApiKeys,
} from './db'; } from './db';
import { Embeddings } from '@docmost/db/types/embeddings.types'; import { PageEmbeddings } from '@docmost/db/types/embeddings.types';
// Workspace // Workspace
export type Workspace = Selectable<Workspaces>; export type Workspace = Selectable<Workspaces>;
@ -128,6 +128,6 @@ export type InsertableApiKey = Insertable<ApiKeys>;
export type UpdatableApiKey = Updateable<Omit<ApiKeys, 'id'>>; export type UpdatableApiKey = Updateable<Omit<ApiKeys, 'id'>>;
// Page Embedding // Page Embedding
export type Embedding = Selectable<Embeddings>; export type PageEmbedding = Selectable<PageEmbeddings>;
export type InsertableEmbedding = Insertable<Embeddings>; export type InsertablePageEmbedding = Insertable<PageEmbeddings>;
export type UpdatableEmbedding = Updateable<Omit<Embeddings, 'id'>>; export type UpdatablePageEmbedding = Updateable<Omit<PageEmbeddings, 'id'>>;

View File

@ -231,7 +231,31 @@ export class EnvironmentService {
} }
getTypesenseLocale(): string { getTypesenseLocale(): string {
return this.configService.get<string>('TYPESENSE_LOCALE', 'en').toLowerCase(); return this.configService
.get<string>('TYPESENSE_LOCALE', 'en')
.toLowerCase();
}
getAiDriver(): string {
return this.configService.get<string>('AI_DRIVER', 'openai');
}
getAiEmbeddingModel(): string {
return this.configService.get<string>(
'AI_EMBEDDING_MODEL',
'text-embedding-3-small',
);
}
getAiCompletionModel(): string {
return this.configService.get<string>('AI_COMPLETION_MODEL', 'gpt-4o-mini');
}
getAiEmbeddingDimension(): number {
return parseInt(
this.configService.get<string>('AI_EMBEDDING_DIMENSION', '1536'),
10,
);
} }
getOpenAiApiKey(): string { getOpenAiApiKey(): string {
@ -242,18 +266,27 @@ export class EnvironmentService {
return this.configService.get<string>('OPENAI_API_URL'); return this.configService.get<string>('OPENAI_API_URL');
} }
getOpenAiEmbeddingModel(): string { getGoogleAiApiKey(): string {
return this.configService.get<string>('GOOGLE_AI_API_KEY');
}
getOllamaApiUrl(): string {
return this.configService.get<string>( return this.configService.get<string>(
'OPENAI_EMBEDDING_MODEL', 'OLLAMA_API_URL',
'text-embedding-3-small', 'http://localhost:11434',
); );
} }
getOpenAiCompletionModel(): string { getAwsAccessKeyId(): string {
return this.configService.get<string>( return this.configService.get<string>('AWS_ACCESS_KEY_ID');
'OPENAI_COMPLETION_MODEL', }
'gpt-4o-mini',
); getAwsSecretAccessKey(): string {
return this.configService.get<string>('AWS_SECRET_ACCESS_KEY');
}
getAwsBedrockRegion(): string {
return this.configService.get<string>('AWS_BEDROCK_REGION');
} }
isAIEnabled(): string { isAIEnabled(): string {

280
pnpm-lock.yaml generated
View File

@ -429,6 +429,18 @@ importers:
apps/server: apps/server:
dependencies: dependencies:
'@ai-sdk/amazon-bedrock':
specifier: ^3.0.35
version: 3.0.35(zod@3.25.56)
'@ai-sdk/azure':
specifier: ^2.0.47
version: 2.0.47(zod@3.25.56)
'@ai-sdk/google':
specifier: ^2.0.18
version: 2.0.18(zod@3.25.56)
'@ai-sdk/openai':
specifier: ^2.0.46
version: 2.0.46(zod@3.25.56)
'@aws-sdk/client-s3': '@aws-sdk/client-s3':
specifier: 3.701.0 specifier: 3.701.0
version: 3.701.0 version: 3.701.0
@ -452,7 +464,7 @@ importers:
version: 8.2.0 version: 8.2.0
'@langchain/textsplitters': '@langchain/textsplitters':
specifier: ^0.1.0 specifier: ^0.1.0
version: 0.1.0(@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56))) version: 0.1.0(@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56)))
'@nestjs-labs/nestjs-ioredis': '@nestjs-labs/nestjs-ioredis':
specifier: ^11.0.4 specifier: ^11.0.4
version: 11.0.4(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(ioredis@5.4.1) version: 11.0.4(@nestjs/common@11.1.3(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(ioredis@5.4.1)
@ -507,6 +519,12 @@ importers:
'@socket.io/redis-adapter': '@socket.io/redis-adapter':
specifier: ^8.3.0 specifier: ^8.3.0
version: 8.3.0(socket.io-adapter@2.5.4) version: 8.3.0(socket.io-adapter@2.5.4)
ai:
specifier: ^5.0.65
version: 5.0.65(zod@3.25.56)
ai-sdk-ollama:
specifier: ^0.12.0
version: 0.12.0(ai@5.0.65(zod@3.25.56))(zod@3.25.56)
bcrypt: bcrypt:
specifier: ^5.1.1 specifier: ^5.1.1
version: 5.1.1 version: 5.1.1
@ -564,9 +582,6 @@ importers:
nodemailer: nodemailer:
specifier: ^7.0.3 specifier: ^7.0.3
version: 7.0.3 version: 7.0.3
openai:
specifier: ^5.12.2
version: 5.12.2(ws@8.18.2)(zod@3.25.56)
openid-client: openid-client:
specifier: ^5.7.1 specifier: ^5.7.1
version: 5.7.1 version: 5.7.1
@ -739,6 +754,58 @@ packages:
'@adobe/css-tools@4.3.3': '@adobe/css-tools@4.3.3':
resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==}
'@ai-sdk/amazon-bedrock@3.0.35':
resolution: {integrity: sha512-p3MjsZ+CvFgdzV2gf5J1pn5EzC/GVI8sHgL26f9RwAbUSyytPVnGevqcqmFXkWXZ7BtNgkB8M+Gd+1hH2hg5IA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/anthropic@2.0.27':
resolution: {integrity: sha512-tGXdWNs+dMZLsn6yVroz9PqPZbCY6kqwGl/xxFVxJWDrTPGj3+1t1vE7pzTZ3vDOiG05iVC7wzlXwV2Or650YA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/azure@2.0.47':
resolution: {integrity: sha512-rPvjnBWVTVRCDs47qfBWxXxx4i4h7itemyKux21qibB7y24rubqmZGx9lYcI5pyBL057uROhBa9Y5VVHf/ESYw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@1.0.36':
resolution: {integrity: sha512-G/CLHzyOy9mhbimSBmV+o59M7ao/NfRFrrhC+eHGp+0qT0diP3IDW5VdkPHKFmDp4Iq7wb4/yOCe7Yk2fQtSrg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/google@2.0.18':
resolution: {integrity: sha512-ycGAqouueHjU0hB6JHYmUhXYCnN67PqI8+9jCv13MbuE0g+b9w78HiPuab5ResakY0cq3ynFDvbiu8jAGo1RZQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/openai@2.0.46':
resolution: {integrity: sha512-3FHZdiTLbjnHw0rbu1yOPW8FruHrzN6SlJYsaLSQgbxYfE5y+60Nj4Xp8/k7rtD3FmrjkKcp/XTMSbAJWfoJig==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider-utils@3.0.11':
resolution: {integrity: sha512-4hgHj89VqyOHzGaV85TkcgvO8WjecVF35TOUVg+C56vnzpWSgdIZu/ZWZNdZ6BTrv8y0N1toBWW7XcWiRRicLg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider-utils@3.0.12':
resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider@2.0.0':
resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
engines: {node: '>=18'}
'@ampproject/remapping@2.3.0': '@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
@ -3783,6 +3850,10 @@ packages:
'@smithy/eventstream-codec@3.1.10': '@smithy/eventstream-codec@3.1.10':
resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==} resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==}
'@smithy/eventstream-codec@4.2.0':
resolution: {integrity: sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg==}
engines: {node: '>=18.0.0'}
'@smithy/eventstream-serde-browser@3.0.14': '@smithy/eventstream-serde-browser@3.0.14':
resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==} resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -3824,6 +3895,10 @@ packages:
resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@smithy/is-array-buffer@4.2.0':
resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==}
engines: {node: '>=18.0.0'}
'@smithy/md5-js@3.0.11': '@smithy/md5-js@3.0.11':
resolution: {integrity: sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==} resolution: {integrity: sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==}
@ -3895,6 +3970,10 @@ packages:
resolution: {integrity: sha512-+1iaIQHthDh9yaLhRzaoQxRk+l9xlk+JjMFxGRhNLz+m9vKOkjNeU8QuB4w3xvzHyVR/BVlp/4AXDHjoRIkfgQ==} resolution: {integrity: sha512-+1iaIQHthDh9yaLhRzaoQxRk+l9xlk+JjMFxGRhNLz+m9vKOkjNeU8QuB4w3xvzHyVR/BVlp/4AXDHjoRIkfgQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
'@smithy/types@4.6.0':
resolution: {integrity: sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==}
engines: {node: '>=18.0.0'}
'@smithy/url-parser@3.0.11': '@smithy/url-parser@3.0.11':
resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==} resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==}
@ -3917,6 +3996,10 @@ packages:
resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@smithy/util-buffer-from@4.2.0':
resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==}
engines: {node: '>=18.0.0'}
'@smithy/util-config-provider@3.0.0': '@smithy/util-config-provider@3.0.0':
resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -3937,6 +4020,10 @@ packages:
resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@smithy/util-hex-encoding@4.2.0':
resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==}
engines: {node: '>=18.0.0'}
'@smithy/util-middleware@3.0.11': '@smithy/util-middleware@3.0.11':
resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==} resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -3961,6 +4048,10 @@ packages:
resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@smithy/util-utf8@4.2.0':
resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==}
engines: {node: '>=18.0.0'}
'@smithy/util-waiter@3.2.0': '@smithy/util-waiter@3.2.0':
resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==} resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -3974,6 +4065,9 @@ packages:
peerDependencies: peerDependencies:
socket.io-adapter: ^2.5.4 socket.io-adapter: ^2.5.4
'@standard-schema/spec@1.0.0':
resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
'@swc/core-darwin-arm64@1.5.25': '@swc/core-darwin-arm64@1.5.25':
resolution: {integrity: sha512-YbD0SBgVJS2DM0vwJTU5m7+wOyCjHPBDMf3nCBJQzFZzOLzK11eRW7SzU2jhJHr9HI9sKcNFfN4lIC2Sj+4inA==} resolution: {integrity: sha512-YbD0SBgVJS2DM0vwJTU5m7+wOyCjHPBDMf3nCBJQzFZzOLzK11eRW7SzU2jhJHr9HI9sKcNFfN4lIC2Sj+4inA==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -4836,6 +4930,10 @@ packages:
'@ucast/mongo@2.4.3': '@ucast/mongo@2.4.3':
resolution: {integrity: sha512-XcI8LclrHWP83H+7H2anGCEeDq0n+12FU2mXCTz6/Tva9/9ddK/iacvvhCyW6cijAAOILmt0tWplRyRhVyZLsA==} resolution: {integrity: sha512-XcI8LclrHWP83H+7H2anGCEeDq0n+12FU2mXCTz6/Tva9/9ddK/iacvvhCyW6cijAAOILmt0tWplRyRhVyZLsA==}
'@vercel/oidc@3.0.2':
resolution: {integrity: sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==}
engines: {node: '>= 20'}
'@vitejs/plugin-react@4.4.1': '@vitejs/plugin-react@4.4.1':
resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==} resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -4966,6 +5064,18 @@ packages:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
ai-sdk-ollama@0.12.0:
resolution: {integrity: sha512-EEKIfIpkyAavrlEKlZ7nZCxTUPq4yBThBLLU3kTD4l7htpdqMjhOEyqm5DlKdQvLEW0MgCMsptw7yXbevRSfIQ==}
engines: {node: '>=22'}
peerDependencies:
ai: ^5.0.60
ai@5.0.65:
resolution: {integrity: sha512-orwsNKAoAmTwHkoy7TG/7nc65SD3hy7k+x8xVHIzfw8CibZm/U2cdbR1ZUex6H2Rpf+uoZpvyQ05FWBJNw7V8A==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
ajv-formats@2.1.1: ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies: peerDependencies:
@ -5125,6 +5235,9 @@ packages:
avvio@9.1.0: avvio@9.1.0:
resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==}
aws4fetch@1.0.20:
resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==}
axios@1.9.0: axios@1.9.0:
resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==}
@ -6277,6 +6390,10 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'} engines: {node: '>=0.8.x'}
eventsource-parser@3.0.6:
resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
engines: {node: '>=18.0.0'}
execa@5.1.1: execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -7233,6 +7350,9 @@ packages:
json-schema-traverse@1.0.0: json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
json-schema@0.4.0:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
json-stable-stringify-without-jsonify@1.0.1: json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@ -7997,6 +8117,9 @@ packages:
resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==}
engines: {node: ^10.13.0 || >=12.0.0} engines: {node: ^10.13.0 || >=12.0.0}
ollama@0.6.0:
resolution: {integrity: sha512-FHjdU2Ok5x2HZsxPui/MBJZ5J+HzmxoWYa/p9wk736eT+uAhS8nvIICar5YgwlG5MFNjDR6UA5F3RSKq+JseOA==}
on-exit-leak-free@2.1.2: on-exit-leak-free@2.1.2:
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
@ -8015,12 +8138,12 @@ packages:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
openai@5.12.2: openai@6.2.0:
resolution: {integrity: sha512-xqzHHQch5Tws5PcKR2xsZGX9xtch+JQFz5zb14dGqlshmmDAFBFEWmeIpf7wVqWV+w7Emj7jRgkNJakyKE0tYQ==} resolution: {integrity: sha512-qqjzHls7F5xkXNGy9P1Ei1rorI5LWupUUFWP66zPU8FlZbiITX8SFcHMKNZg/NATJ0LpIZcMUFxSwQmdeQPwSw==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
ws: ^8.18.0 ws: ^8.18.0
zod: ^3.23.8 zod: ^3.25 || ^4.0
peerDependenciesMeta: peerDependenciesMeta:
ws: ws:
optional: true optional: true
@ -9870,6 +9993,9 @@ packages:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
whatwg-fetch@3.6.20:
resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
whatwg-mimetype@3.0.0: whatwg-mimetype@3.0.0:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
@ -10142,6 +10268,66 @@ snapshots:
'@adobe/css-tools@4.3.3': {} '@adobe/css-tools@4.3.3': {}
'@ai-sdk/amazon-bedrock@3.0.35(zod@3.25.56)':
dependencies:
'@ai-sdk/anthropic': 2.0.27(zod@3.25.56)
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.12(zod@3.25.56)
'@smithy/eventstream-codec': 4.2.0
'@smithy/util-utf8': 4.2.0
aws4fetch: 1.0.20
zod: 3.25.56
'@ai-sdk/anthropic@2.0.27(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.12(zod@3.25.56)
zod: 3.25.56
'@ai-sdk/azure@2.0.47(zod@3.25.56)':
dependencies:
'@ai-sdk/openai': 2.0.46(zod@3.25.56)
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
zod: 3.25.56
'@ai-sdk/gateway@1.0.36(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
'@vercel/oidc': 3.0.2
zod: 3.25.56
'@ai-sdk/google@2.0.18(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
zod: 3.25.56
'@ai-sdk/openai@2.0.46(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
zod: 3.25.56
'@ai-sdk/provider-utils@3.0.11(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@standard-schema/spec': 1.0.0
eventsource-parser: 3.0.6
zod: 3.25.56
'@ai-sdk/provider-utils@3.0.12(zod@3.25.56)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@standard-schema/spec': 1.0.0
eventsource-parser: 3.0.6
zod: 3.25.56
'@ai-sdk/provider@2.0.0':
dependencies:
json-schema: 0.4.0
'@ampproject/remapping@2.3.0': '@ampproject/remapping@2.3.0':
dependencies: dependencies:
'@jridgewell/gen-mapping': 0.3.5 '@jridgewell/gen-mapping': 0.3.5
@ -12870,14 +13056,14 @@ snapshots:
dependencies: dependencies:
buffer: 6.0.3 buffer: 6.0.3
'@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56))': '@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56))':
dependencies: dependencies:
'@cfworker/json-schema': 4.1.1 '@cfworker/json-schema': 4.1.1
ansi-styles: 5.2.0 ansi-styles: 5.2.0
camelcase: 6.3.0 camelcase: 6.3.0
decamelize: 1.2.0 decamelize: 1.2.0
js-tiktoken: 1.0.21 js-tiktoken: 1.0.21
langsmith: 0.3.61(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56)) langsmith: 0.3.61(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56))
mustache: 4.2.0 mustache: 4.2.0
p-queue: 6.6.2 p-queue: 6.6.2
p-retry: 4.6.2 p-retry: 4.6.2
@ -12890,9 +13076,9 @@ snapshots:
- '@opentelemetry/sdk-trace-base' - '@opentelemetry/sdk-trace-base'
- openai - openai
'@langchain/textsplitters@0.1.0(@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56)))': '@langchain/textsplitters@0.1.0(@langchain/core@0.3.72(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56)))':
dependencies: dependencies:
'@langchain/core': 0.3.72(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56)) '@langchain/core': 0.3.72(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56))
js-tiktoken: 1.0.21 js-tiktoken: 1.0.21
'@lifeomic/attempt@3.0.3': {} '@lifeomic/attempt@3.0.3': {}
@ -13407,8 +13593,7 @@ snapshots:
'@one-ini/wasm@0.1.1': {} '@one-ini/wasm@0.1.1': {}
'@opentelemetry/api@1.9.0': '@opentelemetry/api@1.9.0': {}
optional: true
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
optional: true optional: true
@ -13898,6 +14083,13 @@ snapshots:
'@smithy/util-hex-encoding': 3.0.0 '@smithy/util-hex-encoding': 3.0.0
tslib: 2.8.1 tslib: 2.8.1
'@smithy/eventstream-codec@4.2.0':
dependencies:
'@aws-crypto/crc32': 5.2.0
'@smithy/types': 4.6.0
'@smithy/util-hex-encoding': 4.2.0
tslib: 2.8.1
'@smithy/eventstream-serde-browser@3.0.14': '@smithy/eventstream-serde-browser@3.0.14':
dependencies: dependencies:
'@smithy/eventstream-serde-universal': 3.0.13 '@smithy/eventstream-serde-universal': 3.0.13
@ -13962,6 +14154,10 @@ snapshots:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
'@smithy/is-array-buffer@4.2.0':
dependencies:
tslib: 2.8.1
'@smithy/md5-js@3.0.11': '@smithy/md5-js@3.0.11':
dependencies: dependencies:
'@smithy/types': 3.7.2 '@smithy/types': 3.7.2
@ -14081,6 +14277,10 @@ snapshots:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
'@smithy/types@4.6.0':
dependencies:
tslib: 2.8.1
'@smithy/url-parser@3.0.11': '@smithy/url-parser@3.0.11':
dependencies: dependencies:
'@smithy/querystring-parser': 3.0.11 '@smithy/querystring-parser': 3.0.11
@ -14111,6 +14311,11 @@ snapshots:
'@smithy/is-array-buffer': 3.0.0 '@smithy/is-array-buffer': 3.0.0
tslib: 2.8.1 tslib: 2.8.1
'@smithy/util-buffer-from@4.2.0':
dependencies:
'@smithy/is-array-buffer': 4.2.0
tslib: 2.8.1
'@smithy/util-config-provider@3.0.0': '@smithy/util-config-provider@3.0.0':
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
@ -14143,6 +14348,10 @@ snapshots:
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
'@smithy/util-hex-encoding@4.2.0':
dependencies:
tslib: 2.8.1
'@smithy/util-middleware@3.0.11': '@smithy/util-middleware@3.0.11':
dependencies: dependencies:
'@smithy/types': 3.7.2 '@smithy/types': 3.7.2
@ -14179,6 +14388,11 @@ snapshots:
'@smithy/util-buffer-from': 3.0.0 '@smithy/util-buffer-from': 3.0.0
tslib: 2.8.1 tslib: 2.8.1
'@smithy/util-utf8@4.2.0':
dependencies:
'@smithy/util-buffer-from': 4.2.0
tslib: 2.8.1
'@smithy/util-waiter@3.2.0': '@smithy/util-waiter@3.2.0':
dependencies: dependencies:
'@smithy/abort-controller': 3.1.9 '@smithy/abort-controller': 3.1.9
@ -14196,6 +14410,8 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@standard-schema/spec@1.0.0': {}
'@swc/core-darwin-arm64@1.5.25': '@swc/core-darwin-arm64@1.5.25':
optional: true optional: true
@ -15169,6 +15385,8 @@ snapshots:
dependencies: dependencies:
'@ucast/core': 1.10.2 '@ucast/core': 1.10.2
'@vercel/oidc@3.0.2': {}
'@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.10.0)(jiti@1.21.0)(less@4.2.0)(sass@1.51.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.10.0)(jiti@1.21.0)(less@4.2.0)(sass@1.51.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))':
dependencies: dependencies:
'@babel/core': 7.26.10 '@babel/core': 7.26.10
@ -15316,6 +15534,23 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
ai-sdk-ollama@0.12.0(ai@5.0.65(zod@3.25.56))(zod@3.25.56):
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
ai: 5.0.65(zod@3.25.56)
ollama: 0.6.0
transitivePeerDependencies:
- zod
ai@5.0.65(zod@3.25.56):
dependencies:
'@ai-sdk/gateway': 1.0.36(zod@3.25.56)
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.11(zod@3.25.56)
'@opentelemetry/api': 1.9.0
zod: 3.25.56
ajv-formats@2.1.1(ajv@8.12.0): ajv-formats@2.1.1(ajv@8.12.0):
optionalDependencies: optionalDependencies:
ajv: 8.12.0 ajv: 8.12.0
@ -15489,6 +15724,8 @@ snapshots:
'@fastify/error': 4.0.0 '@fastify/error': 4.0.0
fastq: 1.17.1 fastq: 1.17.1
aws4fetch@1.0.20: {}
axios@1.9.0: axios@1.9.0:
dependencies: dependencies:
follow-redirects: 1.15.6 follow-redirects: 1.15.6
@ -16916,6 +17153,8 @@ snapshots:
events@3.3.0: {} events@3.3.0: {}
eventsource-parser@3.0.6: {}
execa@5.1.1: execa@5.1.1:
dependencies: dependencies:
cross-spawn: 7.0.6 cross-spawn: 7.0.6
@ -18116,6 +18355,8 @@ snapshots:
json-schema-traverse@1.0.0: {} json-schema-traverse@1.0.0: {}
json-schema@0.4.0: {}
json-stable-stringify-without-jsonify@1.0.1: {} json-stable-stringify-without-jsonify@1.0.1: {}
json5@2.2.3: {} json5@2.2.3: {}
@ -18220,7 +18461,7 @@ snapshots:
vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-textdocument: 1.0.12
vscode-uri: 3.0.8 vscode-uri: 3.0.8
langsmith@0.3.61(@opentelemetry/api@1.9.0)(openai@5.12.2(ws@8.18.2)(zod@3.25.56)): langsmith@0.3.61(@opentelemetry/api@1.9.0)(openai@6.2.0(ws@8.18.2)(zod@3.25.56)):
dependencies: dependencies:
'@types/uuid': 10.0.0 '@types/uuid': 10.0.0
chalk: 4.1.2 chalk: 4.1.2
@ -18231,7 +18472,7 @@ snapshots:
uuid: 10.0.0 uuid: 10.0.0
optionalDependencies: optionalDependencies:
'@opentelemetry/api': 1.9.0 '@opentelemetry/api': 1.9.0
openai: 5.12.2(ws@8.18.2)(zod@3.25.56) openai: 6.2.0(ws@8.18.2)(zod@3.25.56)
layout-base@1.0.2: {} layout-base@1.0.2: {}
@ -18991,6 +19232,10 @@ snapshots:
oidc-token-hash@5.0.3: {} oidc-token-hash@5.0.3: {}
ollama@0.6.0:
dependencies:
whatwg-fetch: 3.6.20
on-exit-leak-free@2.1.2: {} on-exit-leak-free@2.1.2: {}
once@1.4.0: once@1.4.0:
@ -19009,10 +19254,11 @@ snapshots:
is-docker: 2.2.1 is-docker: 2.2.1
is-wsl: 2.2.0 is-wsl: 2.2.0
openai@5.12.2(ws@8.18.2)(zod@3.25.56): openai@6.2.0(ws@8.18.2)(zod@3.25.56):
optionalDependencies: optionalDependencies:
ws: 8.18.2 ws: 8.18.2
zod: 3.25.56 zod: 3.25.56
optional: true
openid-client@5.7.1: openid-client@5.7.1:
dependencies: dependencies:
@ -20980,6 +21226,8 @@ snapshots:
dependencies: dependencies:
iconv-lite: 0.6.3 iconv-lite: 0.6.3
whatwg-fetch@3.6.20: {}
whatwg-mimetype@3.0.0: {} whatwg-mimetype@3.0.0: {}
whatwg-mimetype@4.0.0: {} whatwg-mimetype@4.0.0: {}