From c3bf3c71781aa56f22a5add49b2401aef5453839 Mon Sep 17 00:00:00 2001 From: Adrian Lyjak Date: Tue, 29 Jul 2025 22:25:19 -0400 Subject: [PATCH 1/6] Adding support for page citations, and refactor the confidence into the field metadata (#2140) --- .changeset/eleven-masks-bow.md | 5 +++++ packages/cloud/src/beta/agent/types.ts | 31 +++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 .changeset/eleven-masks-bow.md diff --git a/.changeset/eleven-masks-bow.md b/.changeset/eleven-masks-bow.md new file mode 100644 index 0000000000..8d49c98f88 --- /dev/null +++ b/.changeset/eleven-masks-bow.md @@ -0,0 +1,5 @@ +--- +"@llamaindex/cloud": patch +--- + +Adding support for citations to beta agent data schema diff --git a/packages/cloud/src/beta/agent/types.ts b/packages/cloud/src/beta/agent/types.ts index 9004b522d8..f69ac11892 100644 --- a/packages/cloud/src/beta/agent/types.ts +++ b/packages/cloud/src/beta/agent/types.ts @@ -28,6 +28,29 @@ export type ComparisonOperator = */ export type FilterOperation = RawFilterOperation; +/** + * Metadata for an extracted field, including confidence and citation information + */ +export interface ExtractedFieldMetadata { + /** The confidence score for the field, combined with parsing confidence if applicable */ + confidence?: number; + /** The confidence score for the field based on the extracted text only */ + extracted_confidence?: number; + /** The page number that the field occurred on */ + page_number?: number; + /** The original text this field's value was derived from */ + matching_text?: string; +} + +/** + * Dictionary mapping field names to their metadata + * Values can be ExtractedFieldMetadata objects, nested dictionaries, or arrays + */ +export type ExtractedFieldMetadataDict = Record< + string, + ExtractedFieldMetadata | Record | unknown[] +>; + /** * Base extracted data interface */ @@ -35,11 +58,13 @@ export interface ExtractedData { /** The original data that was extracted from the document. For tracking changes. Should not be updated. */ original_data: T; /** The latest state of the data. Will differ if data has been updated. */ - data?: T; + data: T; /** The status of the extracted data. Prefer to use the StatusType values, but any string is allowed. */ status: StatusType | string; - /** Confidence scores, if any, for each primitive field in the original_data data. */ - confidence?: Record; + /** The overall confidence score for the extracted data. */ + overall_confidence?: number; + /** Page links, and perhaps eventually bounding boxes, for individual fields in the extracted data. */ + field_metadata?: ExtractedFieldMetadataDict; /** The ID of the file that was used to extract the data. */ file_id?: string; /** The name of the file that was used to extract the data. */ From f576812e7a598909d3395792287dd3128f476721 Mon Sep 17 00:00:00 2001 From: Twisha Bansal <58483338+twishabansal@users.noreply.github.com> Date: Wed, 30 Jul 2025 08:49:34 +0530 Subject: [PATCH 2/6] docs: Using MCP Toolbox for Databases with LlamaIndex (#2138) --- apps/next/public/images/mcp_db_toolbox.png | Bin 0 -> 157331 bytes .../llamaindex/integration/mcp-toolbox.mdx | 85 ++++++++++++++++++ .../docs/llamaindex/integration/meta.json | 2 +- .../llamaindex/modules/agents/tool/index.mdx | 3 + 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 apps/next/public/images/mcp_db_toolbox.png create mode 100644 apps/next/src/content/docs/llamaindex/integration/mcp-toolbox.mdx diff --git a/apps/next/public/images/mcp_db_toolbox.png b/apps/next/public/images/mcp_db_toolbox.png new file mode 100644 index 0000000000000000000000000000000000000000..b94f8c4ae31cb79f4320ffa05081a94f56957e7f GIT binary patch literal 157331 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 C&zLO$ literal 0 HcmV?d00001 diff --git a/apps/next/src/content/docs/llamaindex/integration/mcp-toolbox.mdx b/apps/next/src/content/docs/llamaindex/integration/mcp-toolbox.mdx new file mode 100644 index 0000000000..da5a4a1eb5 --- /dev/null +++ b/apps/next/src/content/docs/llamaindex/integration/mcp-toolbox.mdx @@ -0,0 +1,85 @@ +--- +title: MCP Toolbox For Databases +description: MCP Toolbox for Databases is an open source MCP server for databases. +--- + +# MCP Toolbox for Databases + +[MCP Toolbox for Databases](https://github.com/googleapis/genai-toolbox) is an open source MCP server for databases. It was designed with enterprise-grade and production-quality in mind. It enables you to develop tools easier, faster, and more securely by handling the complexities such as connection pooling, authentication, and more. + +Toolbox Tools can be seemlessly integrated with LlamaIndex applications. For more +information on [getting +started](https://googleapis.github.io/genai-toolbox/getting-started/local_quickstart_js/) or +[configuring](https://googleapis.github.io/genai-toolbox/getting-started/configure/) +Toolbox, see the +[documentation](https://googleapis.github.io/genai-toolbox/getting-started/introduction/). + +![architecture](/images/mcp_db_toolbox.png) + +### Configure and deploy + +Toolbox is an open source server that you deploy and manage yourself. For more +instructions on deploying and configuring, see the official Toolbox +documentation: + +* [Installing the Server](https://googleapis.github.io/genai-toolbox/getting-started/introduction/#installing-the-server) +* [Configuring Toolbox](https://googleapis.github.io/genai-toolbox/getting-started/configure/) + +### Install client SDK + +LlamaIndex relies on the `@toolbox-sdk/core` node package to use Toolbox. Install the +package before getting started: + +```shell +npm install @toolbox-sdk/core +``` + +### Loading Toolbox Tools + +Once your Toolbox server is configured and up and running, you can load tools +from your server using the SDK: + +```javascript +import { gemini, GEMINI_MODEL } from "@llamaindex/google"; +import { agent } from "@llamaindex/workflow"; +import { tool } from "llamaindex"; +import { ToolboxClient } from "@toolbox-sdk/core"; + +// Initialize LLM +const llm = gemini({ + model: GEMINI_MODEL.GEMINI_2_0_FLASH, + apiKey: process.env.GOOGLE_API_KEY, +}); + +// Replace with your Toolbox Server URL +const URL = 'https://127.0.0.1:5000'; + +const client = new ToolboxClient("http://127.0.0.1:5000"); +const toolboxTools = await client.loadToolset("my-toolset"); + +const getTool = (toolboxTool) => tool({ + name: toolboxTool.getName(), + description: toolboxTool.getDescription(), + parameters: toolboxTool.getParamSchema(), + execute: toolboxTool +}); +const tools = toolboxTools.map(getTool); + +const myAgent = agent({ + tools: tools, + llm, + memory, + systemPrompt: prompt, +}); +const result = await myAgent.run(query); +console.log(result); +``` + +### Advanced Toolbox Features + +Toolbox has a variety of features to make developing Gen AI tools for databases seamless. +For more information, read more about the following: + +- [Authenticated Parameters](https://googleapis.github.io/genai-toolbox/resources/tools/#authenticated-parameters): bind tool inputs to values from OIDC tokens automatically, making it easy to run sensitive queries without potentially leaking data +- [Authorized Invocations](https://googleapis.github.io/genai-toolbox/resources/tools/#authorized-invocations): restrict access to use a tool based on the users Auth token +- [OpenTelemetry](https://googleapis.github.io/genai-toolbox/how-to/export_telemetry/): get metrics and tracing from Toolbox with [OpenTelemetry](https://opentelemetry.io/docs/) diff --git a/apps/next/src/content/docs/llamaindex/integration/meta.json b/apps/next/src/content/docs/llamaindex/integration/meta.json index 606fc4d320..89b07e1aa6 100644 --- a/apps/next/src/content/docs/llamaindex/integration/meta.json +++ b/apps/next/src/content/docs/llamaindex/integration/meta.json @@ -1,5 +1,5 @@ { "title": "Integration", "description": "See our integrations", - "pages": ["open-llm-metry", "lang-trace", "vercel"] + "pages": ["open-llm-metry", "lang-trace", "mcp-toolbox", "vercel"] } diff --git a/apps/next/src/content/docs/llamaindex/modules/agents/tool/index.mdx b/apps/next/src/content/docs/llamaindex/modules/agents/tool/index.mdx index b35884a057..870e4bd2a2 100644 --- a/apps/next/src/content/docs/llamaindex/modules/agents/tool/index.mdx +++ b/apps/next/src/content/docs/llamaindex/modules/agents/tool/index.mdx @@ -101,6 +101,9 @@ const agent = agent({ }); ``` +You can also use [MCP Toolbox for +Databases](/docs/llamaindex/integration/mcp-toolbox) to interact with MCP tools. + ## Function tool From f9f1de95163b7c16952ab5f01f6461a6e965b7b9 Mon Sep 17 00:00:00 2001 From: Marcus Schiesser Date: Wed, 30 Jul 2025 11:43:45 +0800 Subject: [PATCH 3/6] chore: use Logger for core (#2139) --- .changeset/vast-roses-cheer.md | 5 +++ packages/core/src/embeddings/base.ts | 7 ++- packages/core/src/memory/memory.ts | 15 ++++++- .../core/src/node-parser/sentence-splitter.ts | 8 +++- .../src/node-parser/token-text-splitter.ts | 10 +++-- .../storage/doc-store/kv-document-store.ts | 11 ++++- .../core/src/storage/index-store/index.ts | 17 +++++--- packages/core/src/storage/kv-store/index.ts | 10 +++-- packages/core/src/tools/function-tool.ts | 6 ++- .../storage/docStore/SimpleDocumentStore.ts | 15 +++++-- .../src/vector-store/SimpleVectorStore.ts | 13 ++++-- .../tests/storage/StorageContext.test.ts | 43 ++++++++++++------- 12 files changed, 120 insertions(+), 40 deletions(-) create mode 100644 .changeset/vast-roses-cheer.md diff --git a/.changeset/vast-roses-cheer.md b/.changeset/vast-roses-cheer.md new file mode 100644 index 0000000000..3f89e61de0 --- /dev/null +++ b/.changeset/vast-roses-cheer.md @@ -0,0 +1,5 @@ +--- +"@llamaindex/core": patch +--- + +Use logger interface instead of directly hardcoding console.log diff --git a/packages/core/src/embeddings/base.ts b/packages/core/src/embeddings/base.ts index 9dbc018897..b38c784800 100644 --- a/packages/core/src/embeddings/base.ts +++ b/packages/core/src/embeddings/base.ts @@ -1,3 +1,4 @@ +import { consoleLogger, emptyLogger, type Logger } from "@llamaindex/env"; import type { Tokenizers } from "@llamaindex/env/tokenizers"; import type { MessageContentDetail } from "../llms"; import { BaseNode, MetadataMode, TransformComponent } from "../schema"; @@ -18,6 +19,7 @@ export type EmbeddingInfo = { export type BaseEmbeddingOptions = { logProgress?: boolean; progressCallback?: (current: number, total: number) => void; + logger?: Logger; }; export abstract class BaseEmbedding extends TransformComponent< @@ -133,6 +135,9 @@ export async function batchEmbeddings( const curBatch: T[] = []; + const logger = + options?.logger ?? (options?.logProgress ? consoleLogger : emptyLogger); + for (let i = 0; i < queue.length; i++) { curBatch.push(queue[i]!); if (i == queue.length - 1 || curBatch.length == chunkSize) { @@ -143,7 +148,7 @@ export async function batchEmbeddings( options?.progressCallback?.(i + 1, queue.length); } if (options?.logProgress) { - console.log(`getting embedding progress: ${i + 1} / ${queue.length}`); + logger.log(`getting embedding progress: ${i + 1} / ${queue.length}`); } curBatch.length = 0; diff --git a/packages/core/src/memory/memory.ts b/packages/core/src/memory/memory.ts index 38a9108a04..730fb5d794 100644 --- a/packages/core/src/memory/memory.ts +++ b/packages/core/src/memory/memory.ts @@ -1,3 +1,4 @@ +import { consoleLogger, type Logger } from "@llamaindex/env"; import { Settings } from "../global"; import type { ChatMessage, LLM } from "../llms"; import { extractText } from "../utils"; @@ -38,6 +39,11 @@ export type MemoryOptions = { * This default LLM can be overridden by the LLM passed in the `getLLM` method. */ llm?: LLM | undefined; + + /** + * Logger for memory operations + */ + logger?: Logger; }; export class Memory< @@ -76,6 +82,10 @@ export class Memory< * The default LLM to use for memory retrieval. */ private llm: LLM | undefined; + /** + * Logger for memory operations + */ + private logger: Logger; constructor( messages: MemoryMessage[] = [], @@ -87,6 +97,7 @@ export class Memory< options.shortTermTokenLimitRatio ?? DEFAULT_SHORT_TERM_TOKEN_LIMIT_RATIO; this.memoryBlocks = options.memoryBlocks ?? []; this.memoryCursor = options.memoryCursor ?? 0; + this.logger = options.logger ?? consoleLogger; this.initLLM(options.llm); this.adapters = { @@ -309,7 +320,7 @@ export class Memory< addedTokenCount += messageTokenCount; } } catch (error) { - console.warn( + this.logger.warn( `Failed to get content from memory block ${block.id}:`, error, ); @@ -371,7 +382,7 @@ export class Memory< try { await block.put(newMessages); } catch (error) { - console.warn( + this.logger.warn( `Failed to process messages into memory block ${block.id}:`, error, ); diff --git a/packages/core/src/node-parser/sentence-splitter.ts b/packages/core/src/node-parser/sentence-splitter.ts index 23903d7b31..336868f21a 100644 --- a/packages/core/src/node-parser/sentence-splitter.ts +++ b/packages/core/src/node-parser/sentence-splitter.ts @@ -1,3 +1,4 @@ +import { consoleLogger, type Logger } from "@llamaindex/env"; import type { Tokenizer } from "@llamaindex/env/tokenizers"; import { z } from "zod"; import { Settings } from "../global"; @@ -48,9 +49,11 @@ export class SentenceSplitter extends MetadataAwareTextSplitter { #splitFns: Set = new Set(); #subSentenceSplitFns: Set = new Set(); #tokenizer: Tokenizer; + #logger: Logger; constructor( - params?: z.input & SplitterParams, + params?: z.input & + SplitterParams & { logger?: Logger }, ) { super(); if (params) { @@ -66,6 +69,7 @@ export class SentenceSplitter extends MetadataAwareTextSplitter { this.extraAbbreviations, ); this.#tokenizer = params?.tokenizer ?? Settings.tokenizer; + this.#logger = params?.logger ?? consoleLogger; this.#splitFns.add(splitBySep(this.paragraphSeparator)); this.#splitFns.add(this.#chunkingTokenizerFn); @@ -82,7 +86,7 @@ export class SentenceSplitter extends MetadataAwareTextSplitter { `Metadata length (${metadataLength}) is longer than chunk size (${this.chunkSize}). Consider increasing the chunk size or decreasing the size of your metadata to avoid this.`, ); } else if (effectiveChunkSize < 50) { - console.log( + this.#logger.log( `Metadata length (${metadataLength}) is close to chunk size (${this.chunkSize}). Resulting chunks are less than 50 tokens. Consider increasing the chunk size or decreasing the size of your metadata to avoid this.`, ); } diff --git a/packages/core/src/node-parser/token-text-splitter.ts b/packages/core/src/node-parser/token-text-splitter.ts index e0d5daf914..0bcd622bd1 100644 --- a/packages/core/src/node-parser/token-text-splitter.ts +++ b/packages/core/src/node-parser/token-text-splitter.ts @@ -1,3 +1,4 @@ +import { consoleLogger, type Logger } from "@llamaindex/env"; import type { Tokenizer } from "@llamaindex/env/tokenizers"; import { z } from "zod"; import { DEFAULT_CHUNK_OVERLAP, DEFAULT_CHUNK_SIZE, Settings } from "../global"; @@ -21,9 +22,11 @@ export class TokenTextSplitter extends MetadataAwareTextSplitter { backupSeparators: string[] = ["\n"]; #tokenizer: Tokenizer; #splitFns: Array<(text: string) => string[]> = []; + #logger: Logger; constructor( - params?: SplitterParams & Partial>, + params?: SplitterParams & + Partial> & { logger?: Logger }, ) { super(); @@ -42,6 +45,7 @@ export class TokenTextSplitter extends MetadataAwareTextSplitter { } this.#tokenizer = params?.tokenizer ?? Settings.tokenizer; + this.#logger = params?.logger ?? consoleLogger; const allSeparators = [this.separator, ...this.backupSeparators]; this.#splitFns = allSeparators.map((sep) => splitBySep(sep)); @@ -65,7 +69,7 @@ export class TokenTextSplitter extends MetadataAwareTextSplitter { `Consider increasing the chunk size or decreasing the size of your metadata to avoid this.`, ); } else if (effectiveChunkSize < 50) { - console.warn( + this.#logger.warn( `Metadata length (${metadataLength}) is close to chunk size (${this.chunkSize}). ` + `Resulting chunks are less than 50 tokens. Consider increasing the chunk size or decreasing the size of your metadata to avoid this.`, ); @@ -148,7 +152,7 @@ export class TokenTextSplitter extends MetadataAwareTextSplitter { const splitLength = this.tokenSize(split); if (splitLength > chunkSize) { - console.warn( + this.#logger.warn( `Got a split of size ${splitLength}, larger than chunk size ${chunkSize}.`, ); } diff --git a/packages/core/src/storage/doc-store/kv-document-store.ts b/packages/core/src/storage/doc-store/kv-document-store.ts index ba7dd77a54..f0dd1e305e 100644 --- a/packages/core/src/storage/doc-store/kv-document-store.ts +++ b/packages/core/src/storage/doc-store/kv-document-store.ts @@ -1,3 +1,4 @@ +import { consoleLogger, type Logger } from "@llamaindex/env"; import { DEFAULT_NAMESPACE } from "../../global"; import { BaseNode, ObjectType, type StoredValue } from "../../schema"; import type { BaseKVStore } from "../kv-store"; @@ -16,13 +17,19 @@ export class KVDocumentStore extends BaseDocumentStore { private nodeCollection: string; private refDocCollection: string; private metadataCollection: string; + private logger: Logger; - constructor(kvstore: BaseKVStore, namespace: string = DEFAULT_NAMESPACE) { + constructor( + kvstore: BaseKVStore, + namespace: string = DEFAULT_NAMESPACE, + options?: { logger?: Logger }, + ) { super(); this.kvstore = kvstore; this.nodeCollection = `${namespace}/data`; this.refDocCollection = `${namespace}/ref_doc_info`; this.metadataCollection = `${namespace}/metadata`; + this.logger = options?.logger ?? consoleLogger; } async docs(): Promise> { @@ -33,7 +40,7 @@ export class KVDocumentStore extends BaseDocumentStore { if (isValidDocJson(value)) { docs[key] = jsonToDoc(value, this.serializer); } else { - console.warn(`Invalid JSON for docId ${key}`); + this.logger.warn(`Invalid JSON for docId ${key}`); } } return docs; diff --git a/packages/core/src/storage/index-store/index.ts b/packages/core/src/storage/index-store/index.ts index 40728d9dd8..86dd00f6b3 100644 --- a/packages/core/src/storage/index-store/index.ts +++ b/packages/core/src/storage/index-store/index.ts @@ -1,4 +1,4 @@ -import { path } from "@llamaindex/env"; +import { path, type Logger } from "@llamaindex/env"; import { IndexStruct, jsonToIndexStruct } from "../../data-structs"; import { DEFAULT_INDEX_STORE_PERSIST_FILENAME, @@ -8,8 +8,8 @@ import { import { BaseInMemoryKVStore, BaseKVStore, - type DataType, SimpleKVStore, + type DataType, } from "../kv-store"; export const DEFAULT_PERSIST_PATH = path.join( @@ -84,16 +84,23 @@ export class SimpleIndexStore extends KVIndexStore { static async fromPersistDir( persistDir: string = DEFAULT_PERSIST_DIR, + options?: { logger?: Logger }, ): Promise { const persistPath = path.join( persistDir, DEFAULT_INDEX_STORE_PERSIST_FILENAME, ); - return this.fromPersistPath(persistPath); + return this.fromPersistPath(persistPath, options); } - static async fromPersistPath(persistPath: string): Promise { - const simpleKVStore = await SimpleKVStore.fromPersistPath(persistPath); + static async fromPersistPath( + persistPath: string, + options?: { logger?: Logger }, + ): Promise { + const simpleKVStore = await SimpleKVStore.fromPersistPath( + persistPath, + options, + ); return new SimpleIndexStore(simpleKVStore); } diff --git a/packages/core/src/storage/kv-store/index.ts b/packages/core/src/storage/kv-store/index.ts index 4d71969faa..5c009ace51 100644 --- a/packages/core/src/storage/kv-store/index.ts +++ b/packages/core/src/storage/kv-store/index.ts @@ -1,4 +1,4 @@ -import { fs, path } from "@llamaindex/env"; +import { consoleLogger, fs, path, type Logger } from "@llamaindex/env"; import { DEFAULT_COLLECTION } from "../../global"; import type { StoredValue } from "../../schema"; @@ -98,7 +98,11 @@ export class SimpleKVStore extends BaseKVStore { await fs.writeFile(persistPath, JSON.stringify(this.data)); } - static async fromPersistPath(persistPath: string): Promise { + static async fromPersistPath( + persistPath: string, + options?: { logger?: Logger }, + ): Promise { + const logger = options?.logger ?? consoleLogger; const dirPath = path.dirname(persistPath); if (!(await exists(dirPath))) { await fs.mkdir(dirPath, { recursive: true }); @@ -106,7 +110,7 @@ export class SimpleKVStore extends BaseKVStore { let data: DataType = {}; if (!(await exists(persistPath))) { - console.info(`Starting new store from path: ${persistPath}`); + logger.log(`Starting new store from path: ${persistPath}`); } else { try { const fileData = await fs.readFile(persistPath); diff --git a/packages/core/src/tools/function-tool.ts b/packages/core/src/tools/function-tool.ts index 740e8a3250..16bccfb5ec 100644 --- a/packages/core/src/tools/function-tool.ts +++ b/packages/core/src/tools/function-tool.ts @@ -1,3 +1,4 @@ +import { consoleLogger, type Logger } from "@llamaindex/env"; import type { JSONSchemaType } from "ajv"; import { z } from "zod"; import { zodToJsonSchema } from "zod-to-json-schema"; @@ -14,11 +15,13 @@ export class FunctionTool< #additionalArg: AdditionalToolArgument | undefined; readonly #metadata: ToolMetadata>; readonly #zodType: z.ZodType | null = null; + readonly #logger: Logger; constructor( fn: (input: T, additionalArg?: AdditionalToolArgument) => R, metadata: ToolMetadata>, zodType?: z.ZodType, additionalArg?: AdditionalToolArgument, + logger?: Logger, ) { this.#fn = fn; this.#metadata = metadata; @@ -26,6 +29,7 @@ export class FunctionTool< this.#zodType = zodType; } this.#additionalArg = additionalArg; + this.#logger = logger ?? consoleLogger; } static from( @@ -140,7 +144,7 @@ export class FunctionTool< if (result.success) { params = result.data; } else { - console.warn(result.error.errors); + this.#logger.warn(result.error.errors); } } return this.#fn.call(null, params, this.#additionalArg); diff --git a/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts b/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts index 95482a4b38..a5bab48440 100644 --- a/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts +++ b/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts @@ -8,7 +8,7 @@ import { BaseInMemoryKVStore, SimpleKVStore, } from "@llamaindex/core/storage/kv-store"; -import { path } from "@llamaindex/env"; +import { path, type Logger } from "@llamaindex/env"; import _ from "lodash"; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -27,19 +27,28 @@ export class SimpleDocumentStore extends KVDocumentStore { static async fromPersistDir( persistDir: string = DEFAULT_PERSIST_DIR, namespace?: string, + options?: { logger?: Logger }, ): Promise { const persistPath = path.join( persistDir, DEFAULT_DOC_STORE_PERSIST_FILENAME, ); - return await SimpleDocumentStore.fromPersistPath(persistPath, namespace); + return await SimpleDocumentStore.fromPersistPath( + persistPath, + namespace, + options, + ); } static async fromPersistPath( persistPath: string, namespace?: string, + options?: { logger?: Logger }, ): Promise { - const simpleKVStore = await SimpleKVStore.fromPersistPath(persistPath); + const simpleKVStore = await SimpleKVStore.fromPersistPath( + persistPath, + options, + ); return new SimpleDocumentStore(simpleKVStore, namespace); } diff --git a/packages/llamaindex/src/vector-store/SimpleVectorStore.ts b/packages/llamaindex/src/vector-store/SimpleVectorStore.ts index af8f02c50a..c06b2f9ed4 100644 --- a/packages/llamaindex/src/vector-store/SimpleVectorStore.ts +++ b/packages/llamaindex/src/vector-store/SimpleVectorStore.ts @@ -18,7 +18,7 @@ import { type VectorStoreQuery, type VectorStoreQueryResult, } from "@llamaindex/core/vector-store"; -import { fs, path } from "@llamaindex/env"; +import { consoleLogger, fs, path, type Logger } from "@llamaindex/env"; import { exists } from "../storage/FileSystem.js"; const LEARNER_MODES = new Set([ @@ -139,9 +139,14 @@ export class SimpleVectorStore extends BaseVectorStore { static async fromPersistDir( persistDir: string = DEFAULT_PERSIST_DIR, embedModel?: BaseEmbedding, + options?: { logger?: Logger }, ): Promise { const persistPath = path.join(persistDir, "vector_store.json"); - return await SimpleVectorStore.fromPersistPath(persistPath, embedModel); + return await SimpleVectorStore.fromPersistPath( + persistPath, + embedModel, + options, + ); } client() { @@ -273,7 +278,9 @@ export class SimpleVectorStore extends BaseVectorStore { static async fromPersistPath( persistPath: string, embedModel?: BaseEmbedding, + options?: { logger?: Logger }, ): Promise { + const logger = options?.logger ?? consoleLogger; const dirPath = path.dirname(persistPath); if (!(await exists(dirPath))) { await fs.mkdir(dirPath, { recursive: true }); @@ -281,7 +288,7 @@ export class SimpleVectorStore extends BaseVectorStore { let dataDict: Record = {}; if (!(await exists(persistPath))) { - console.info(`Starting new store from path: ${persistPath}`); + logger.log(`Starting new store from path: ${persistPath}`); } else { try { const fileData = await fs.readFile(persistPath); diff --git a/packages/llamaindex/tests/storage/StorageContext.test.ts b/packages/llamaindex/tests/storage/StorageContext.test.ts index 4d14d7378d..623484ec6f 100644 --- a/packages/llamaindex/tests/storage/StorageContext.test.ts +++ b/packages/llamaindex/tests/storage/StorageContext.test.ts @@ -47,22 +47,31 @@ describe("StorageContext", () => { test("persists and loads", async () => { const doc = new Document({ text: "test document" }); - const consoleInfoSpy = vi - .spyOn(console, "info") - .mockImplementation(() => {}); + // Create a Logger that spies on log (info) calls + const spyLogger = { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + }; // storage context from individual stores const storageContext = await storageContextFromDefaults({ - docStore: await SimpleDocumentStore.fromPersistDir(testDir), - vectorStore: await SimpleVectorStore.fromPersistDir(testDir), - indexStore: await SimpleIndexStore.fromPersistDir(testDir), + docStore: await SimpleDocumentStore.fromPersistDir(testDir, undefined, { + logger: spyLogger, + }), + vectorStore: await SimpleVectorStore.fromPersistDir(testDir, undefined, { + logger: spyLogger, + }), + indexStore: await SimpleIndexStore.fromPersistDir(testDir, { + logger: spyLogger, + }), }); const index = await VectorStoreIndex.fromDocuments([doc], { storageContext, }); - expect(consoleInfoSpy).toHaveBeenCalledTimes(3); - expect(consoleInfoSpy).toHaveBeenCalledWith( + expect(spyLogger.log).toHaveBeenCalledTimes(3); + expect(spyLogger.log).toHaveBeenCalledWith( expect.stringContaining("Starting new store"), ); expect(index).toBeDefined(); @@ -75,13 +84,19 @@ describe("StorageContext", () => { // Check that the test data files exist await expectTestDataFilesExist(testDir); - consoleInfoSpy.mockClear(); + spyLogger.log.mockClear(); // Now, load it again. Since data was persisted, we should not see the error. const newStorageContext = await storageContextFromDefaults({ - docStore: await SimpleDocumentStore.fromPersistDir(testDir), - vectorStore: await SimpleVectorStore.fromPersistDir(testDir), - indexStore: await SimpleIndexStore.fromPersistDir(testDir), + docStore: await SimpleDocumentStore.fromPersistDir(testDir, undefined, { + logger: spyLogger, + }), + vectorStore: await SimpleVectorStore.fromPersistDir(testDir, undefined, { + logger: spyLogger, + }), + indexStore: await SimpleIndexStore.fromPersistDir(testDir, { + logger: spyLogger, + }), }); const loadedIndex = await VectorStoreIndex.init({ @@ -94,9 +109,7 @@ describe("StorageContext", () => { await expectTestDataFilesExist(testDir); - expect(consoleInfoSpy).not.toHaveBeenCalled(); - - consoleInfoSpy.mockRestore(); + expect(spyLogger.log).not.toHaveBeenCalled(); }); test("throws error on corrupted data", async () => { From 1e296ebe728b60349ce45f6c501beac55f73f15e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 12:56:45 -0400 Subject: [PATCH 4/6] Release 0.11.24 (#2141) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: marcusschiesser <17126+marcusschiesser@users.noreply.github.com> --- .changeset/eleven-masks-bow.md | 5 - .changeset/vast-roses-cheer.md | 5 - apps/next/CHANGELOG.md | 14 +++ apps/next/package.json | 2 +- .../cloudflare-worker-agent/CHANGELOG.md | 6 ++ .../cloudflare-worker-agent/package.json | 2 +- e2e/examples/llama-parse-browser/CHANGELOG.md | 7 ++ e2e/examples/llama-parse-browser/package.json | 2 +- e2e/examples/nextjs-agent/CHANGELOG.md | 6 ++ e2e/examples/nextjs-agent/package.json | 2 +- e2e/examples/nextjs-edge-runtime/CHANGELOG.md | 6 ++ e2e/examples/nextjs-edge-runtime/package.json | 2 +- e2e/examples/nextjs-node-runtime/CHANGELOG.md | 8 ++ e2e/examples/nextjs-node-runtime/package.json | 2 +- .../vite-import-llamaindex/CHANGELOG.md | 6 ++ .../vite-import-llamaindex/package.json | 2 +- e2e/examples/waku-query-engine/CHANGELOG.md | 6 ++ e2e/examples/waku-query-engine/package.json | 2 +- examples/CHANGELOG.md | 53 +++++++++++ examples/package.json | 94 +++++++++---------- packages/autotool/CHANGELOG.md | 6 ++ .../autotool/examples/01_node/CHANGELOG.md | 7 ++ .../autotool/examples/01_node/package.json | 2 +- packages/autotool/package.json | 2 +- packages/cloud/CHANGELOG.md | 8 ++ packages/cloud/package.json | 2 +- packages/community/CHANGELOG.md | 7 ++ packages/community/package.json | 2 +- packages/core/CHANGELOG.md | 6 ++ packages/core/package.json | 2 +- packages/experimental/CHANGELOG.md | 6 ++ packages/experimental/package.json | 2 +- packages/llamaindex/CHANGELOG.md | 11 +++ packages/llamaindex/package.json | 2 +- packages/llamaindex/tests/CHANGELOG.md | 6 ++ packages/llamaindex/tests/package.json | 2 +- packages/node-parser/CHANGELOG.md | 7 ++ packages/node-parser/package.json | 2 +- packages/providers/anthropic/CHANGELOG.md | 7 ++ packages/providers/anthropic/package.json | 2 +- packages/providers/assemblyai/CHANGELOG.md | 7 ++ packages/providers/assemblyai/package.json | 2 +- packages/providers/aws/CHANGELOG.md | 7 ++ packages/providers/aws/package.json | 2 +- packages/providers/clip/CHANGELOG.md | 8 ++ packages/providers/clip/package.json | 2 +- packages/providers/cohere/CHANGELOG.md | 7 ++ packages/providers/cohere/package.json | 2 +- packages/providers/deepinfra/CHANGELOG.md | 8 ++ packages/providers/deepinfra/package.json | 2 +- packages/providers/deepseek/CHANGELOG.md | 6 ++ packages/providers/deepseek/package.json | 2 +- packages/providers/discord/CHANGELOG.md | 7 ++ packages/providers/discord/package.json | 2 +- packages/providers/excel/CHANGELOG.md | 7 ++ packages/providers/excel/package.json | 2 +- packages/providers/fireworks/CHANGELOG.md | 6 ++ packages/providers/fireworks/package.json | 2 +- packages/providers/google/CHANGELOG.md | 7 ++ packages/providers/google/package.json | 2 +- packages/providers/groq/CHANGELOG.md | 6 ++ packages/providers/groq/package.json | 2 +- packages/providers/huggingface/CHANGELOG.md | 8 ++ packages/providers/huggingface/package.json | 2 +- packages/providers/jinaai/CHANGELOG.md | 8 ++ packages/providers/jinaai/package.json | 2 +- packages/providers/mistral/CHANGELOG.md | 7 ++ packages/providers/mistral/package.json | 2 +- packages/providers/mixedbread/CHANGELOG.md | 7 ++ packages/providers/mixedbread/package.json | 2 +- packages/providers/notion/CHANGELOG.md | 7 ++ packages/providers/notion/package.json | 2 +- packages/providers/ollama/CHANGELOG.md | 7 ++ packages/providers/ollama/package.json | 2 +- packages/providers/openai/CHANGELOG.md | 7 ++ packages/providers/openai/package.json | 2 +- packages/providers/perplexity/CHANGELOG.md | 8 ++ packages/providers/perplexity/package.json | 2 +- packages/providers/portkey-ai/CHANGELOG.md | 7 ++ packages/providers/portkey-ai/package.json | 2 +- packages/providers/replicate/CHANGELOG.md | 7 ++ packages/providers/replicate/package.json | 2 +- .../providers/retriever/bm25/CHANGELOG.md | 7 ++ .../providers/retriever/bm25/package.json | 2 +- packages/providers/storage/astra/CHANGELOG.md | 7 ++ packages/providers/storage/astra/package.json | 2 +- packages/providers/storage/azure/CHANGELOG.md | 8 ++ packages/providers/storage/azure/package.json | 2 +- .../providers/storage/chroma/CHANGELOG.md | 7 ++ .../providers/storage/chroma/package.json | 2 +- .../storage/elastic-search/CHANGELOG.md | 7 ++ .../storage/elastic-search/package.json | 2 +- .../providers/storage/firestore/CHANGELOG.md | 7 ++ .../providers/storage/firestore/package.json | 2 +- .../providers/storage/milvus/CHANGELOG.md | 7 ++ .../providers/storage/milvus/package.json | 2 +- .../providers/storage/mongodb/CHANGELOG.md | 7 ++ .../providers/storage/mongodb/package.json | 2 +- .../providers/storage/pinecone/CHANGELOG.md | 7 ++ .../providers/storage/pinecone/package.json | 2 +- .../providers/storage/postgres/CHANGELOG.md | 7 ++ .../providers/storage/postgres/package.json | 2 +- .../providers/storage/qdrant/CHANGELOG.md | 7 ++ .../providers/storage/qdrant/package.json | 2 +- .../providers/storage/supabase/CHANGELOG.md | 7 ++ .../providers/storage/supabase/package.json | 2 +- .../providers/storage/upstash/CHANGELOG.md | 7 ++ .../providers/storage/upstash/package.json | 2 +- .../providers/storage/weaviate/CHANGELOG.md | 7 ++ .../providers/storage/weaviate/package.json | 2 +- packages/providers/together/CHANGELOG.md | 6 ++ packages/providers/together/package.json | 2 +- packages/providers/vercel/CHANGELOG.md | 7 ++ packages/providers/vercel/package.json | 2 +- packages/providers/vllm/CHANGELOG.md | 6 ++ packages/providers/vllm/package.json | 2 +- packages/providers/voyage-ai/CHANGELOG.md | 7 ++ packages/providers/voyage-ai/package.json | 2 +- packages/providers/xai/CHANGELOG.md | 6 ++ packages/providers/xai/package.json | 2 +- packages/readers/CHANGELOG.md | 7 ++ packages/readers/package.json | 2 +- packages/tools/CHANGELOG.md | 7 ++ packages/tools/package.json | 2 +- packages/workflow/CHANGELOG.md | 7 ++ packages/workflow/package.json | 2 +- pnpm-lock.yaml | 92 +++++++++--------- unit/CHANGELOG.md | 14 +++ unit/package.json | 2 +- 129 files changed, 653 insertions(+), 165 deletions(-) delete mode 100644 .changeset/eleven-masks-bow.md delete mode 100644 .changeset/vast-roses-cheer.md diff --git a/.changeset/eleven-masks-bow.md b/.changeset/eleven-masks-bow.md deleted file mode 100644 index 8d49c98f88..0000000000 --- a/.changeset/eleven-masks-bow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@llamaindex/cloud": patch ---- - -Adding support for citations to beta agent data schema diff --git a/.changeset/vast-roses-cheer.md b/.changeset/vast-roses-cheer.md deleted file mode 100644 index 3f89e61de0..0000000000 --- a/.changeset/vast-roses-cheer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@llamaindex/core": patch ---- - -Use logger interface instead of directly hardcoding console.log diff --git a/apps/next/CHANGELOG.md b/apps/next/CHANGELOG.md index fe22d93c0e..b43008d334 100644 --- a/apps/next/CHANGELOG.md +++ b/apps/next/CHANGELOG.md @@ -1,5 +1,19 @@ # @llamaindex/doc +## 0.2.47 + +### Patch Changes + +- Updated dependencies [c3bf3c7] +- Updated dependencies [f9f1de9] + - @llamaindex/cloud@4.0.28 + - @llamaindex/core@0.6.19 + - llamaindex@0.11.24 + - @llamaindex/node-parser@2.0.19 + - @llamaindex/openai@0.4.14 + - @llamaindex/readers@3.1.18 + - @llamaindex/workflow@1.1.20 + ## 0.2.46 ### Patch Changes diff --git a/apps/next/package.json b/apps/next/package.json index 3c9533e79f..883baf6384 100644 --- a/apps/next/package.json +++ b/apps/next/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/doc", - "version": "0.2.46", + "version": "0.2.47", "private": true, "scripts": { "postinstall": "fumadocs-mdx", diff --git a/e2e/examples/cloudflare-worker-agent/CHANGELOG.md b/e2e/examples/cloudflare-worker-agent/CHANGELOG.md index a9f684a02b..a9fe0c57aa 100644 --- a/e2e/examples/cloudflare-worker-agent/CHANGELOG.md +++ b/e2e/examples/cloudflare-worker-agent/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/cloudflare-worker-agent-test +## 0.0.185 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.0.184 ### Patch Changes diff --git a/e2e/examples/cloudflare-worker-agent/package.json b/e2e/examples/cloudflare-worker-agent/package.json index be249a4944..2c591935df 100644 --- a/e2e/examples/cloudflare-worker-agent/package.json +++ b/e2e/examples/cloudflare-worker-agent/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/cloudflare-worker-agent-test", - "version": "0.0.184", + "version": "0.0.185", "type": "module", "private": true, "scripts": { diff --git a/e2e/examples/llama-parse-browser/CHANGELOG.md b/e2e/examples/llama-parse-browser/CHANGELOG.md index c82a3cc50a..198c43c3bf 100644 --- a/e2e/examples/llama-parse-browser/CHANGELOG.md +++ b/e2e/examples/llama-parse-browser/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/llama-parse-browser-test +## 0.0.83 + +### Patch Changes + +- Updated dependencies [c3bf3c7] + - @llamaindex/cloud@4.0.28 + ## 0.0.82 ### Patch Changes diff --git a/e2e/examples/llama-parse-browser/package.json b/e2e/examples/llama-parse-browser/package.json index 0433a4e302..73c5f47ef2 100644 --- a/e2e/examples/llama-parse-browser/package.json +++ b/e2e/examples/llama-parse-browser/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/llama-parse-browser-test", "private": true, - "version": "0.0.82", + "version": "0.0.83", "type": "module", "scripts": { "dev": "vite", diff --git a/e2e/examples/nextjs-agent/CHANGELOG.md b/e2e/examples/nextjs-agent/CHANGELOG.md index e08103bb09..9b04139b65 100644 --- a/e2e/examples/nextjs-agent/CHANGELOG.md +++ b/e2e/examples/nextjs-agent/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/next-agent-test +## 0.1.185 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.1.184 ### Patch Changes diff --git a/e2e/examples/nextjs-agent/package.json b/e2e/examples/nextjs-agent/package.json index 81e168befc..9771c8f4a5 100644 --- a/e2e/examples/nextjs-agent/package.json +++ b/e2e/examples/nextjs-agent/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/next-agent-test", - "version": "0.1.184", + "version": "0.1.185", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/nextjs-edge-runtime/CHANGELOG.md b/e2e/examples/nextjs-edge-runtime/CHANGELOG.md index eb46d7ab4c..30f8aa472d 100644 --- a/e2e/examples/nextjs-edge-runtime/CHANGELOG.md +++ b/e2e/examples/nextjs-edge-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # test-edge-runtime +## 0.1.184 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.1.183 ### Patch Changes diff --git a/e2e/examples/nextjs-edge-runtime/package.json b/e2e/examples/nextjs-edge-runtime/package.json index d885dfc011..cf659cf24b 100644 --- a/e2e/examples/nextjs-edge-runtime/package.json +++ b/e2e/examples/nextjs-edge-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/nextjs-edge-runtime-test", - "version": "0.1.183", + "version": "0.1.184", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/nextjs-node-runtime/CHANGELOG.md b/e2e/examples/nextjs-node-runtime/CHANGELOG.md index 2af5e6c445..6028f4fbfb 100644 --- a/e2e/examples/nextjs-node-runtime/CHANGELOG.md +++ b/e2e/examples/nextjs-node-runtime/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/next-node-runtime +## 0.1.54 + +### Patch Changes + +- llamaindex@0.11.24 +- @llamaindex/huggingface@0.1.24 +- @llamaindex/readers@3.1.18 + ## 0.1.53 ### Patch Changes diff --git a/e2e/examples/nextjs-node-runtime/package.json b/e2e/examples/nextjs-node-runtime/package.json index dc9e7b8777..afd018625a 100644 --- a/e2e/examples/nextjs-node-runtime/package.json +++ b/e2e/examples/nextjs-node-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/next-node-runtime-test", - "version": "0.1.53", + "version": "0.1.54", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/vite-import-llamaindex/CHANGELOG.md b/e2e/examples/vite-import-llamaindex/CHANGELOG.md index 9213d69a93..98b5c01c7d 100644 --- a/e2e/examples/vite-import-llamaindex/CHANGELOG.md +++ b/e2e/examples/vite-import-llamaindex/CHANGELOG.md @@ -1,5 +1,11 @@ # vite-import-llamaindex +## 0.0.51 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.0.50 ### Patch Changes diff --git a/e2e/examples/vite-import-llamaindex/package.json b/e2e/examples/vite-import-llamaindex/package.json index 76ed89348d..a6393630be 100644 --- a/e2e/examples/vite-import-llamaindex/package.json +++ b/e2e/examples/vite-import-llamaindex/package.json @@ -1,7 +1,7 @@ { "name": "vite-import-llamaindex", "private": true, - "version": "0.0.50", + "version": "0.0.51", "type": "module", "scripts": { "build": "vite build", diff --git a/e2e/examples/waku-query-engine/CHANGELOG.md b/e2e/examples/waku-query-engine/CHANGELOG.md index 39264e6e83..b311de1380 100644 --- a/e2e/examples/waku-query-engine/CHANGELOG.md +++ b/e2e/examples/waku-query-engine/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/waku-query-engine-test +## 0.0.185 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.0.184 ### Patch Changes diff --git a/e2e/examples/waku-query-engine/package.json b/e2e/examples/waku-query-engine/package.json index 84f40ebd2e..a644e5c2dc 100644 --- a/e2e/examples/waku-query-engine/package.json +++ b/e2e/examples/waku-query-engine/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/waku-query-engine-test", - "version": "0.0.184", + "version": "0.0.185", "type": "module", "private": true, "scripts": { diff --git a/examples/CHANGELOG.md b/examples/CHANGELOG.md index c520e8b609..b8abe47a01 100644 --- a/examples/CHANGELOG.md +++ b/examples/CHANGELOG.md @@ -1,5 +1,58 @@ # examples +## 0.3.35 + +### Patch Changes + +- Updated dependencies [c3bf3c7] +- Updated dependencies [f9f1de9] + - @llamaindex/cloud@4.0.28 + - @llamaindex/core@0.6.19 + - llamaindex@0.11.24 + - @llamaindex/node-parser@2.0.19 + - @llamaindex/anthropic@0.3.21 + - @llamaindex/assemblyai@0.1.18 + - @llamaindex/clip@0.0.70 + - @llamaindex/cohere@0.0.33 + - @llamaindex/deepinfra@0.0.70 + - @llamaindex/discord@0.1.18 + - @llamaindex/google@0.3.18 + - @llamaindex/huggingface@0.1.24 + - @llamaindex/jinaai@0.0.30 + - @llamaindex/mistral@0.1.19 + - @llamaindex/mixedbread@0.0.33 + - @llamaindex/notion@0.1.18 + - @llamaindex/ollama@0.1.19 + - @llamaindex/openai@0.4.14 + - @llamaindex/perplexity@0.0.27 + - @llamaindex/portkey-ai@0.0.61 + - @llamaindex/replicate@0.0.61 + - @llamaindex/bm25-retriever@0.0.8 + - @llamaindex/astra@0.0.33 + - @llamaindex/azure@0.1.31 + - @llamaindex/chroma@0.0.33 + - @llamaindex/elastic-search@0.1.19 + - @llamaindex/firestore@1.0.26 + - @llamaindex/milvus@0.1.28 + - @llamaindex/mongodb@0.0.34 + - @llamaindex/pinecone@0.1.19 + - @llamaindex/postgres@0.0.62 + - @llamaindex/qdrant@0.1.29 + - @llamaindex/supabase@0.1.20 + - @llamaindex/upstash@0.0.33 + - @llamaindex/weaviate@0.0.34 + - @llamaindex/vercel@0.1.19 + - @llamaindex/voyage-ai@1.0.25 + - @llamaindex/readers@3.1.18 + - @llamaindex/tools@0.1.9 + - @llamaindex/workflow@1.1.20 + - @llamaindex/deepseek@0.0.31 + - @llamaindex/fireworks@0.0.30 + - @llamaindex/groq@0.0.86 + - @llamaindex/together@0.0.30 + - @llamaindex/vllm@0.0.56 + - @llamaindex/xai@0.0.17 + ## 0.3.34 ### Patch Changes diff --git a/examples/package.json b/examples/package.json index 419efc0dfe..0d4bfff2e9 100644 --- a/examples/package.json +++ b/examples/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/examples", - "version": "0.3.34", + "version": "0.3.35", "private": true, "scripts": { "lint": "eslint .", @@ -11,52 +11,52 @@ "@azure/cosmos": "^4.1.1", "@azure/identity": "^4.4.1", "@azure/search-documents": "^12.1.0", - "@llamaindex/anthropic": "^0.3.20", - "@llamaindex/assemblyai": "^0.1.17", - "@llamaindex/astra": "^0.0.32", - "@llamaindex/azure": "^0.1.30", - "@llamaindex/bm25-retriever": "^0.0.7", - "@llamaindex/chroma": "^0.0.32", - "@llamaindex/clip": "^0.0.69", - "@llamaindex/cloud": "^4.0.27", - "@llamaindex/cohere": "^0.0.32", - "@llamaindex/core": "^0.6.18", - "@llamaindex/deepinfra": "^0.0.69", - "@llamaindex/deepseek": "^0.0.30", - "@llamaindex/discord": "^0.1.17", - "@llamaindex/elastic-search": "^0.1.18", + "@llamaindex/anthropic": "^0.3.21", + "@llamaindex/assemblyai": "^0.1.18", + "@llamaindex/astra": "^0.0.33", + "@llamaindex/azure": "^0.1.31", + "@llamaindex/bm25-retriever": "^0.0.8", + "@llamaindex/chroma": "^0.0.33", + "@llamaindex/clip": "^0.0.70", + "@llamaindex/cloud": "^4.0.28", + "@llamaindex/cohere": "^0.0.33", + "@llamaindex/core": "^0.6.19", + "@llamaindex/deepinfra": "^0.0.70", + "@llamaindex/deepseek": "^0.0.31", + "@llamaindex/discord": "^0.1.18", + "@llamaindex/elastic-search": "^0.1.19", "@llamaindex/env": "^0.1.30", - "@llamaindex/firestore": "^1.0.25", - "@llamaindex/fireworks": "^0.0.29", - "@llamaindex/google": "^0.3.17", - "@llamaindex/groq": "^0.0.85", - "@llamaindex/huggingface": "^0.1.23", - "@llamaindex/jinaai": "^0.0.29", - "@llamaindex/milvus": "^0.1.27", - "@llamaindex/mistral": "^0.1.18", - "@llamaindex/mixedbread": "^0.0.32", - "@llamaindex/mongodb": "^0.0.33", - "@llamaindex/node-parser": "^2.0.18", - "@llamaindex/notion": "^0.1.17", - "@llamaindex/ollama": "^0.1.18", - "@llamaindex/openai": "^0.4.13", - "@llamaindex/perplexity": "^0.0.26", - "@llamaindex/pinecone": "^0.1.18", - "@llamaindex/portkey-ai": "^0.0.60", - "@llamaindex/postgres": "^0.0.61", - "@llamaindex/qdrant": "^0.1.28", - "@llamaindex/readers": "^3.1.17", - "@llamaindex/replicate": "^0.0.60", - "@llamaindex/supabase": "^0.1.19", - "@llamaindex/together": "^0.0.29", - "@llamaindex/tools": "^0.1.8", - "@llamaindex/upstash": "^0.0.32", - "@llamaindex/vercel": "^0.1.18", - "@llamaindex/vllm": "^0.0.55", - "@llamaindex/voyage-ai": "^1.0.24", - "@llamaindex/weaviate": "^0.0.33", - "@llamaindex/workflow": "^1.1.19", - "@llamaindex/xai": "^0.0.16", + "@llamaindex/firestore": "^1.0.26", + "@llamaindex/fireworks": "^0.0.30", + "@llamaindex/google": "^0.3.18", + "@llamaindex/groq": "^0.0.86", + "@llamaindex/huggingface": "^0.1.24", + "@llamaindex/jinaai": "^0.0.30", + "@llamaindex/milvus": "^0.1.28", + "@llamaindex/mistral": "^0.1.19", + "@llamaindex/mixedbread": "^0.0.33", + "@llamaindex/mongodb": "^0.0.34", + "@llamaindex/node-parser": "^2.0.19", + "@llamaindex/notion": "^0.1.18", + "@llamaindex/ollama": "^0.1.19", + "@llamaindex/openai": "^0.4.14", + "@llamaindex/perplexity": "^0.0.27", + "@llamaindex/pinecone": "^0.1.19", + "@llamaindex/portkey-ai": "^0.0.61", + "@llamaindex/postgres": "^0.0.62", + "@llamaindex/qdrant": "^0.1.29", + "@llamaindex/readers": "^3.1.18", + "@llamaindex/replicate": "^0.0.61", + "@llamaindex/supabase": "^0.1.20", + "@llamaindex/together": "^0.0.30", + "@llamaindex/tools": "^0.1.9", + "@llamaindex/upstash": "^0.0.33", + "@llamaindex/vercel": "^0.1.19", + "@llamaindex/vllm": "^0.0.56", + "@llamaindex/voyage-ai": "^1.0.25", + "@llamaindex/weaviate": "^0.0.34", + "@llamaindex/workflow": "^1.1.20", + "@llamaindex/xai": "^0.0.17", "@notionhq/client": "^4.0.0", "@pinecone-database/pinecone": "^4.0.0", "@vercel/postgres": "^0.10.0", @@ -65,7 +65,7 @@ "commander": "^12.1.0", "dotenv": "^17.2.0", "js-tiktoken": "^1.0.14", - "llamaindex": "^0.11.23", + "llamaindex": "^0.11.24", "mongodb": "6.7.0", "postgres": "^3.4.4", "wikipedia": "^2.1.2", diff --git a/packages/autotool/CHANGELOG.md b/packages/autotool/CHANGELOG.md index b926a834a3..2df4051169 100644 --- a/packages/autotool/CHANGELOG.md +++ b/packages/autotool/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/autotool +## 8.0.24 + +### Patch Changes + +- llamaindex@0.11.24 + ## 8.0.23 ### Patch Changes diff --git a/packages/autotool/examples/01_node/CHANGELOG.md b/packages/autotool/examples/01_node/CHANGELOG.md index 25ed7805ce..aa50f76250 100644 --- a/packages/autotool/examples/01_node/CHANGELOG.md +++ b/packages/autotool/examples/01_node/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/autotool-01-node-example +## 0.0.132 + +### Patch Changes + +- llamaindex@0.11.24 +- @llamaindex/autotool@8.0.24 + ## 0.0.131 ### Patch Changes diff --git a/packages/autotool/examples/01_node/package.json b/packages/autotool/examples/01_node/package.json index 051e6f0702..92070cca28 100644 --- a/packages/autotool/examples/01_node/package.json +++ b/packages/autotool/examples/01_node/package.json @@ -13,5 +13,5 @@ "scripts": { "start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts" }, - "version": "0.0.131" + "version": "0.0.132" } diff --git a/packages/autotool/package.json b/packages/autotool/package.json index 89c0cd51da..7b639c06d6 100644 --- a/packages/autotool/package.json +++ b/packages/autotool/package.json @@ -6,7 +6,7 @@ "url": "git+https://github.com/run-llama/LlamaIndexTS.git", "directory": "packages/autotool" }, - "version": "8.0.23", + "version": "8.0.24", "description": "auto transpile your JS function to LLM Agent compatible", "files": [ "dist", diff --git a/packages/cloud/CHANGELOG.md b/packages/cloud/CHANGELOG.md index 3807e7e36f..7e2b8cab4c 100644 --- a/packages/cloud/CHANGELOG.md +++ b/packages/cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/cloud +## 4.0.28 + +### Patch Changes + +- c3bf3c7: Adding support for citations to beta agent data schema +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 4.0.27 ### Patch Changes diff --git a/packages/cloud/package.json b/packages/cloud/package.json index 661ac8a631..eecd796f86 100644 --- a/packages/cloud/package.json +++ b/packages/cloud/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/cloud", - "version": "4.0.27", + "version": "4.0.28", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/community/CHANGELOG.md b/packages/community/CHANGELOG.md index 6476b8ad3b..b15ff509d2 100644 --- a/packages/community/CHANGELOG.md +++ b/packages/community/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/community +## 0.0.101 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.100 ### Patch Changes diff --git a/packages/community/package.json b/packages/community/package.json index a8b0c13894..f8f8843903 100644 --- a/packages/community/package.json +++ b/packages/community/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/community", "description": "Community package for LlamaIndexTS", - "version": "0.0.100", + "version": "0.0.101", "type": "module", "types": "dist/type/index.d.ts", "main": "dist/cjs/index.js", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 169e55f1a9..67ef07b5cf 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/core +## 0.6.19 + +### Patch Changes + +- f9f1de9: Use logger interface instead of directly hardcoding console.log + ## 0.6.18 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 784fb65e41..779c330062 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/core", "type": "module", - "version": "0.6.18", + "version": "0.6.19", "description": "LlamaIndex Core Module", "exports": { "./agent": { diff --git a/packages/experimental/CHANGELOG.md b/packages/experimental/CHANGELOG.md index 171ba6b76f..d4f0069c20 100644 --- a/packages/experimental/CHANGELOG.md +++ b/packages/experimental/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/experimental +## 0.0.201 + +### Patch Changes + +- llamaindex@0.11.24 + ## 0.0.200 ### Patch Changes diff --git a/packages/experimental/package.json b/packages/experimental/package.json index f5b63ae37f..615017ae3b 100644 --- a/packages/experimental/package.json +++ b/packages/experimental/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/experimental", "description": "Experimental package for LlamaIndexTS", - "version": "0.0.200", + "version": "0.0.201", "type": "module", "types": "dist/type/index.d.ts", "main": "dist/cjs/index.js", diff --git a/packages/llamaindex/CHANGELOG.md b/packages/llamaindex/CHANGELOG.md index 030b2ad4fb..e7bb0bb1d3 100644 --- a/packages/llamaindex/CHANGELOG.md +++ b/packages/llamaindex/CHANGELOG.md @@ -1,5 +1,16 @@ # llamaindex +## 0.11.24 + +### Patch Changes + +- Updated dependencies [c3bf3c7] +- Updated dependencies [f9f1de9] + - @llamaindex/cloud@4.0.28 + - @llamaindex/core@0.6.19 + - @llamaindex/node-parser@2.0.19 + - @llamaindex/workflow@1.1.20 + ## 0.11.23 ### Patch Changes diff --git a/packages/llamaindex/package.json b/packages/llamaindex/package.json index c3f04c8064..cb814af1dc 100644 --- a/packages/llamaindex/package.json +++ b/packages/llamaindex/package.json @@ -1,6 +1,6 @@ { "name": "llamaindex", - "version": "0.11.23", + "version": "0.11.24", "license": "MIT", "type": "module", "keywords": [ diff --git a/packages/llamaindex/tests/CHANGELOG.md b/packages/llamaindex/tests/CHANGELOG.md index 040236667c..bba6ebb419 100644 --- a/packages/llamaindex/tests/CHANGELOG.md +++ b/packages/llamaindex/tests/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/core-test +## 0.1.15 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.1.14 ### Patch Changes diff --git a/packages/llamaindex/tests/package.json b/packages/llamaindex/tests/package.json index 182a893a63..54874a250a 100644 --- a/packages/llamaindex/tests/package.json +++ b/packages/llamaindex/tests/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/llamaindex-test", "private": true, - "version": "0.1.14", + "version": "0.1.15", "type": "module", "scripts": { "test": "vitest run" diff --git a/packages/node-parser/CHANGELOG.md b/packages/node-parser/CHANGELOG.md index 75aabd6eb0..9f48275a70 100644 --- a/packages/node-parser/CHANGELOG.md +++ b/packages/node-parser/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/node-parser +## 2.0.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 2.0.18 ### Patch Changes diff --git a/packages/node-parser/package.json b/packages/node-parser/package.json index db8bf9ed1e..6cab86cf38 100644 --- a/packages/node-parser/package.json +++ b/packages/node-parser/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/node-parser", - "version": "2.0.18", + "version": "2.0.19", "description": "Node parser for LlamaIndex", "type": "module", "exports": { diff --git a/packages/providers/anthropic/CHANGELOG.md b/packages/providers/anthropic/CHANGELOG.md index a3aedb5a11..58f1c4055a 100644 --- a/packages/providers/anthropic/CHANGELOG.md +++ b/packages/providers/anthropic/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/anthropic +## 0.3.21 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.3.20 ### Patch Changes diff --git a/packages/providers/anthropic/package.json b/packages/providers/anthropic/package.json index 1bd90f7163..8f10e7dff7 100644 --- a/packages/providers/anthropic/package.json +++ b/packages/providers/anthropic/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/anthropic", "description": "Anthropic Adapter for LlamaIndex", - "version": "0.3.20", + "version": "0.3.21", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/assemblyai/CHANGELOG.md b/packages/providers/assemblyai/CHANGELOG.md index 6caaf845a3..cf81abeee6 100644 --- a/packages/providers/assemblyai/CHANGELOG.md +++ b/packages/providers/assemblyai/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/assemblyai +## 0.1.18 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.17 ### Patch Changes diff --git a/packages/providers/assemblyai/package.json b/packages/providers/assemblyai/package.json index a36439836c..5c987f84d2 100644 --- a/packages/providers/assemblyai/package.json +++ b/packages/providers/assemblyai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/assemblyai", "description": "AssemblyAI Reader for LlamaIndex", - "version": "0.1.17", + "version": "0.1.18", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/aws/CHANGELOG.md b/packages/providers/aws/CHANGELOG.md index f1c1efb4a9..cf97e641a7 100644 --- a/packages/providers/aws/CHANGELOG.md +++ b/packages/providers/aws/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/community +## 0.0.115 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.114 ### Patch Changes diff --git a/packages/providers/aws/package.json b/packages/providers/aws/package.json index f2f803e1f9..ad762d0344 100644 --- a/packages/providers/aws/package.json +++ b/packages/providers/aws/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/aws", "description": "AWS package for LlamaIndexTS", - "version": "0.0.114", + "version": "0.0.115", "type": "module", "types": "dist/type/index.d.ts", "main": "dist/cjs/index.js", diff --git a/packages/providers/clip/CHANGELOG.md b/packages/providers/clip/CHANGELOG.md index 6c09b6bb0b..33d7420e40 100644 --- a/packages/providers/clip/CHANGELOG.md +++ b/packages/providers/clip/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/clip +## 0.0.70 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.0.69 ### Patch Changes diff --git a/packages/providers/clip/package.json b/packages/providers/clip/package.json index 659490d4a3..4050b2be25 100644 --- a/packages/providers/clip/package.json +++ b/packages/providers/clip/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/clip", "description": "Clip Embedding Adapter for LlamaIndex", - "version": "0.0.69", + "version": "0.0.70", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/cohere/CHANGELOG.md b/packages/providers/cohere/CHANGELOG.md index bf578edebb..dbc6fe4d30 100644 --- a/packages/providers/cohere/CHANGELOG.md +++ b/packages/providers/cohere/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/cohere +## 0.0.33 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.32 ### Patch Changes diff --git a/packages/providers/cohere/package.json b/packages/providers/cohere/package.json index aeaf53ba90..a3100bd2a8 100644 --- a/packages/providers/cohere/package.json +++ b/packages/providers/cohere/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/cohere", "description": "Cohere Adapter for LlamaIndex", - "version": "0.0.32", + "version": "0.0.33", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/deepinfra/CHANGELOG.md b/packages/providers/deepinfra/CHANGELOG.md index b805fc3c6c..84649e2b43 100644 --- a/packages/providers/deepinfra/CHANGELOG.md +++ b/packages/providers/deepinfra/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/deepinfra +## 0.0.70 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.0.69 ### Patch Changes diff --git a/packages/providers/deepinfra/package.json b/packages/providers/deepinfra/package.json index e182e09df3..3dd6508457 100644 --- a/packages/providers/deepinfra/package.json +++ b/packages/providers/deepinfra/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/deepinfra", "description": "Deepinfra Adapter for LlamaIndex", - "version": "0.0.69", + "version": "0.0.70", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/deepseek/CHANGELOG.md b/packages/providers/deepseek/CHANGELOG.md index 291c4001f3..b64ab4539e 100644 --- a/packages/providers/deepseek/CHANGELOG.md +++ b/packages/providers/deepseek/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/deepseek +## 0.0.31 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.30 ### Patch Changes diff --git a/packages/providers/deepseek/package.json b/packages/providers/deepseek/package.json index e87aea2772..6a8448575d 100644 --- a/packages/providers/deepseek/package.json +++ b/packages/providers/deepseek/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/deepseek", "description": "DeepSeek Adapter for LlamaIndex", - "version": "0.0.30", + "version": "0.0.31", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/discord/CHANGELOG.md b/packages/providers/discord/CHANGELOG.md index e6303ffeaf..00296c7f6e 100644 --- a/packages/providers/discord/CHANGELOG.md +++ b/packages/providers/discord/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/discord +## 0.1.18 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.17 ### Patch Changes diff --git a/packages/providers/discord/package.json b/packages/providers/discord/package.json index df78ed3b43..a58c002441 100644 --- a/packages/providers/discord/package.json +++ b/packages/providers/discord/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/discord", "description": "Discord Reader for LlamaIndex", - "version": "0.1.17", + "version": "0.1.18", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/excel/CHANGELOG.md b/packages/providers/excel/CHANGELOG.md index e0deff682f..ce502a5054 100644 --- a/packages/providers/excel/CHANGELOG.md +++ b/packages/providers/excel/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/excel +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/excel/package.json b/packages/providers/excel/package.json index 43e692a89f..ded1f7f975 100644 --- a/packages/providers/excel/package.json +++ b/packages/providers/excel/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/excel", "description": "Excel Reader for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/fireworks/CHANGELOG.md b/packages/providers/fireworks/CHANGELOG.md index b810899538..f7a7af3b08 100644 --- a/packages/providers/fireworks/CHANGELOG.md +++ b/packages/providers/fireworks/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/fireworks +## 0.0.30 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.29 ### Patch Changes diff --git a/packages/providers/fireworks/package.json b/packages/providers/fireworks/package.json index 47c6dc5c19..1579feb81c 100644 --- a/packages/providers/fireworks/package.json +++ b/packages/providers/fireworks/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/fireworks", "description": "Fireworks Adapter for LlamaIndex", - "version": "0.0.29", + "version": "0.0.30", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/google/CHANGELOG.md b/packages/providers/google/CHANGELOG.md index e882230c20..279a56a912 100644 --- a/packages/providers/google/CHANGELOG.md +++ b/packages/providers/google/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/google +## 0.3.18 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.3.17 ### Patch Changes diff --git a/packages/providers/google/package.json b/packages/providers/google/package.json index 36a20a75db..8520b73d09 100644 --- a/packages/providers/google/package.json +++ b/packages/providers/google/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/google", "description": "Google Adapter for LlamaIndex", - "version": "0.3.17", + "version": "0.3.18", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/groq/CHANGELOG.md b/packages/providers/groq/CHANGELOG.md index 944be44e25..882b6a67c7 100644 --- a/packages/providers/groq/CHANGELOG.md +++ b/packages/providers/groq/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/groq +## 0.0.86 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.85 ### Patch Changes diff --git a/packages/providers/groq/package.json b/packages/providers/groq/package.json index 6d5a8e9fa5..4aac90a8d4 100644 --- a/packages/providers/groq/package.json +++ b/packages/providers/groq/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/groq", "description": "Groq Adapter for LlamaIndex", - "version": "0.0.85", + "version": "0.0.86", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/huggingface/CHANGELOG.md b/packages/providers/huggingface/CHANGELOG.md index afb365dd90..cd4d36ad06 100644 --- a/packages/providers/huggingface/CHANGELOG.md +++ b/packages/providers/huggingface/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/huggingface +## 0.1.24 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.1.23 ### Patch Changes diff --git a/packages/providers/huggingface/package.json b/packages/providers/huggingface/package.json index 05b6754596..93319fdcfc 100644 --- a/packages/providers/huggingface/package.json +++ b/packages/providers/huggingface/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/huggingface", "description": "Huggingface Adapter for LlamaIndex", - "version": "0.1.23", + "version": "0.1.24", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/jinaai/CHANGELOG.md b/packages/providers/jinaai/CHANGELOG.md index a9b32537ae..89865a514e 100644 --- a/packages/providers/jinaai/CHANGELOG.md +++ b/packages/providers/jinaai/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/jinaai +## 0.0.30 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.0.29 ### Patch Changes diff --git a/packages/providers/jinaai/package.json b/packages/providers/jinaai/package.json index 8a325c2b14..925ccdc81d 100644 --- a/packages/providers/jinaai/package.json +++ b/packages/providers/jinaai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/jinaai", "description": "JinaAI Adapter for LlamaIndex", - "version": "0.0.29", + "version": "0.0.30", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/mistral/CHANGELOG.md b/packages/providers/mistral/CHANGELOG.md index ada184b3f4..5f1972bd18 100644 --- a/packages/providers/mistral/CHANGELOG.md +++ b/packages/providers/mistral/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/mistral +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/mistral/package.json b/packages/providers/mistral/package.json index 4ba5b2904c..0bf447a658 100644 --- a/packages/providers/mistral/package.json +++ b/packages/providers/mistral/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/mistral", "description": "Mistral Adapter for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/mixedbread/CHANGELOG.md b/packages/providers/mixedbread/CHANGELOG.md index eb47cae4c8..f302d9c5e1 100644 --- a/packages/providers/mixedbread/CHANGELOG.md +++ b/packages/providers/mixedbread/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/mixedbread +## 0.0.33 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.32 ### Patch Changes diff --git a/packages/providers/mixedbread/package.json b/packages/providers/mixedbread/package.json index fac428f4d0..27b5964044 100644 --- a/packages/providers/mixedbread/package.json +++ b/packages/providers/mixedbread/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/mixedbread", "description": "Mixedbread Adapter for LlamaIndex", - "version": "0.0.32", + "version": "0.0.33", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/notion/CHANGELOG.md b/packages/providers/notion/CHANGELOG.md index 6a63063f18..55fa493615 100644 --- a/packages/providers/notion/CHANGELOG.md +++ b/packages/providers/notion/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/notion +## 0.1.18 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.17 ### Patch Changes diff --git a/packages/providers/notion/package.json b/packages/providers/notion/package.json index 3a0fc14f27..d83271ddf4 100644 --- a/packages/providers/notion/package.json +++ b/packages/providers/notion/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/notion", "description": "Notion Reader for LlamaIndex", - "version": "0.1.17", + "version": "0.1.18", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.cjs", diff --git a/packages/providers/ollama/CHANGELOG.md b/packages/providers/ollama/CHANGELOG.md index beef5bf05e..e550f86033 100644 --- a/packages/providers/ollama/CHANGELOG.md +++ b/packages/providers/ollama/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/ollama +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/ollama/package.json b/packages/providers/ollama/package.json index d4cbda0038..93378abab3 100644 --- a/packages/providers/ollama/package.json +++ b/packages/providers/ollama/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/ollama", "description": "Ollama Adapter for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/openai/CHANGELOG.md b/packages/providers/openai/CHANGELOG.md index c9f1e0e357..5a88375d29 100644 --- a/packages/providers/openai/CHANGELOG.md +++ b/packages/providers/openai/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/openai +## 0.4.14 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.4.13 ### Patch Changes diff --git a/packages/providers/openai/package.json b/packages/providers/openai/package.json index b880f1b4cb..481e00a048 100644 --- a/packages/providers/openai/package.json +++ b/packages/providers/openai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/openai", "description": "OpenAI Adapter for LlamaIndex", - "version": "0.4.13", + "version": "0.4.14", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/perplexity/CHANGELOG.md b/packages/providers/perplexity/CHANGELOG.md index 7bb1926203..3db12b7559 100644 --- a/packages/providers/perplexity/CHANGELOG.md +++ b/packages/providers/perplexity/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/perplexity +## 0.0.27 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.0.26 ### Patch Changes diff --git a/packages/providers/perplexity/package.json b/packages/providers/perplexity/package.json index fdd26acf2a..39911e8637 100644 --- a/packages/providers/perplexity/package.json +++ b/packages/providers/perplexity/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/perplexity", "description": "Perplexity Adapter for LlamaIndex", - "version": "0.0.26", + "version": "0.0.27", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/portkey-ai/CHANGELOG.md b/packages/providers/portkey-ai/CHANGELOG.md index 662cc59ddb..62f6645642 100644 --- a/packages/providers/portkey-ai/CHANGELOG.md +++ b/packages/providers/portkey-ai/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/portkey-ai +## 0.0.61 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.60 ### Patch Changes diff --git a/packages/providers/portkey-ai/package.json b/packages/providers/portkey-ai/package.json index e967b4a514..d7d133e5da 100644 --- a/packages/providers/portkey-ai/package.json +++ b/packages/providers/portkey-ai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/portkey-ai", "description": "Portkey Adapter for LlamaIndex", - "version": "0.0.60", + "version": "0.0.61", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/replicate/CHANGELOG.md b/packages/providers/replicate/CHANGELOG.md index b27dfb0537..911847d38d 100644 --- a/packages/providers/replicate/CHANGELOG.md +++ b/packages/providers/replicate/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/replicate +## 0.0.61 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.60 ### Patch Changes diff --git a/packages/providers/replicate/package.json b/packages/providers/replicate/package.json index 6f6ace7316..ac2d265cc9 100644 --- a/packages/providers/replicate/package.json +++ b/packages/providers/replicate/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/replicate", "description": "Replicate Adapter for LlamaIndex", - "version": "0.0.60", + "version": "0.0.61", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/retriever/bm25/CHANGELOG.md b/packages/providers/retriever/bm25/CHANGELOG.md index e9f1062ebe..201e5eb715 100644 --- a/packages/providers/retriever/bm25/CHANGELOG.md +++ b/packages/providers/retriever/bm25/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/bm25-retriever +## 0.0.8 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.7 ### Patch Changes diff --git a/packages/providers/retriever/bm25/package.json b/packages/providers/retriever/bm25/package.json index 23d2d7eb8e..eb45a94bd8 100644 --- a/packages/providers/retriever/bm25/package.json +++ b/packages/providers/retriever/bm25/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/bm25-retriever", "description": "BM25 Retriever for LlamaIndex", - "version": "0.0.7", + "version": "0.0.8", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/astra/CHANGELOG.md b/packages/providers/storage/astra/CHANGELOG.md index 94a3fa1aa5..1208ca703c 100644 --- a/packages/providers/storage/astra/CHANGELOG.md +++ b/packages/providers/storage/astra/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/astra +## 0.0.33 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.32 ### Patch Changes diff --git a/packages/providers/storage/astra/package.json b/packages/providers/storage/astra/package.json index 1aba1706f1..9337052edc 100644 --- a/packages/providers/storage/astra/package.json +++ b/packages/providers/storage/astra/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/astra", "description": "Astra Storage for LlamaIndex", - "version": "0.0.32", + "version": "0.0.33", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/azure/CHANGELOG.md b/packages/providers/storage/azure/CHANGELOG.md index c8618f987e..3bea553161 100644 --- a/packages/providers/storage/azure/CHANGELOG.md +++ b/packages/providers/storage/azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/azure +## 0.1.31 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + - @llamaindex/openai@0.4.14 + ## 0.1.30 ### Patch Changes diff --git a/packages/providers/storage/azure/package.json b/packages/providers/storage/azure/package.json index 107ea34bd4..7422095dd8 100644 --- a/packages/providers/storage/azure/package.json +++ b/packages/providers/storage/azure/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/azure", "description": "Azure Storage for LlamaIndex", - "version": "0.1.30", + "version": "0.1.31", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/chroma/CHANGELOG.md b/packages/providers/storage/chroma/CHANGELOG.md index a44951b691..eaee9dc7ee 100644 --- a/packages/providers/storage/chroma/CHANGELOG.md +++ b/packages/providers/storage/chroma/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/chroma +## 0.0.33 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.32 ### Patch Changes diff --git a/packages/providers/storage/chroma/package.json b/packages/providers/storage/chroma/package.json index 98492d4b7e..fc52415371 100644 --- a/packages/providers/storage/chroma/package.json +++ b/packages/providers/storage/chroma/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/chroma", "description": "Chroma Storage for LlamaIndex", - "version": "0.0.32", + "version": "0.0.33", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/elastic-search/CHANGELOG.md b/packages/providers/storage/elastic-search/CHANGELOG.md index 0f32d9a8f4..8b9102acd4 100644 --- a/packages/providers/storage/elastic-search/CHANGELOG.md +++ b/packages/providers/storage/elastic-search/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/elastic-search +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/storage/elastic-search/package.json b/packages/providers/storage/elastic-search/package.json index 2859532bc9..8f004e1f0b 100644 --- a/packages/providers/storage/elastic-search/package.json +++ b/packages/providers/storage/elastic-search/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/elastic-search", "description": "Elastic Search Storage for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/firestore/CHANGELOG.md b/packages/providers/storage/firestore/CHANGELOG.md index 6bf33d1ba5..459b4c11b7 100644 --- a/packages/providers/storage/firestore/CHANGELOG.md +++ b/packages/providers/storage/firestore/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/firestore +## 1.0.26 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 1.0.25 ### Patch Changes diff --git a/packages/providers/storage/firestore/package.json b/packages/providers/storage/firestore/package.json index 12d43f298e..49511b776c 100644 --- a/packages/providers/storage/firestore/package.json +++ b/packages/providers/storage/firestore/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/firestore", "description": "Firestore Storage for LlamaIndex", - "version": "1.0.25", + "version": "1.0.26", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/milvus/CHANGELOG.md b/packages/providers/storage/milvus/CHANGELOG.md index 94cc0988aa..8719aa29f4 100644 --- a/packages/providers/storage/milvus/CHANGELOG.md +++ b/packages/providers/storage/milvus/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/milvus +## 0.1.28 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.27 ### Patch Changes diff --git a/packages/providers/storage/milvus/package.json b/packages/providers/storage/milvus/package.json index 2f9899c989..b35b619aee 100644 --- a/packages/providers/storage/milvus/package.json +++ b/packages/providers/storage/milvus/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/milvus", "description": "Milvus Storage for LlamaIndex", - "version": "0.1.27", + "version": "0.1.28", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/mongodb/CHANGELOG.md b/packages/providers/storage/mongodb/CHANGELOG.md index 8ede821342..f4bd30b711 100644 --- a/packages/providers/storage/mongodb/CHANGELOG.md +++ b/packages/providers/storage/mongodb/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/mongodb +## 0.0.34 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.33 ### Patch Changes diff --git a/packages/providers/storage/mongodb/package.json b/packages/providers/storage/mongodb/package.json index 399e8825ba..0d23a53fc0 100644 --- a/packages/providers/storage/mongodb/package.json +++ b/packages/providers/storage/mongodb/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/mongodb", "description": "MongoDB Storage for LlamaIndex", - "version": "0.0.33", + "version": "0.0.34", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/pinecone/CHANGELOG.md b/packages/providers/storage/pinecone/CHANGELOG.md index 51d095c160..bd5e734787 100644 --- a/packages/providers/storage/pinecone/CHANGELOG.md +++ b/packages/providers/storage/pinecone/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/pinecone +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/storage/pinecone/package.json b/packages/providers/storage/pinecone/package.json index 1615f9e355..b81ab20079 100644 --- a/packages/providers/storage/pinecone/package.json +++ b/packages/providers/storage/pinecone/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/pinecone", "description": "Pinecone Storage for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/postgres/CHANGELOG.md b/packages/providers/storage/postgres/CHANGELOG.md index 355e3ffa66..e35a68a1aa 100644 --- a/packages/providers/storage/postgres/CHANGELOG.md +++ b/packages/providers/storage/postgres/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/postgres +## 0.0.62 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.61 ### Patch Changes diff --git a/packages/providers/storage/postgres/package.json b/packages/providers/storage/postgres/package.json index 22af5a4b16..c034917558 100644 --- a/packages/providers/storage/postgres/package.json +++ b/packages/providers/storage/postgres/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/postgres", "description": "PostgreSQL Storage for LlamaIndex", - "version": "0.0.61", + "version": "0.0.62", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/qdrant/CHANGELOG.md b/packages/providers/storage/qdrant/CHANGELOG.md index df5f2d3e60..4c00200828 100644 --- a/packages/providers/storage/qdrant/CHANGELOG.md +++ b/packages/providers/storage/qdrant/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/qdrant +## 0.1.29 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.28 ### Patch Changes diff --git a/packages/providers/storage/qdrant/package.json b/packages/providers/storage/qdrant/package.json index 51956eb002..1a6a9e64d7 100644 --- a/packages/providers/storage/qdrant/package.json +++ b/packages/providers/storage/qdrant/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/qdrant", "description": "Qdrant Storage for LlamaIndex", - "version": "0.1.28", + "version": "0.1.29", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/supabase/CHANGELOG.md b/packages/providers/storage/supabase/CHANGELOG.md index 4ca28b7254..30c07796b6 100644 --- a/packages/providers/storage/supabase/CHANGELOG.md +++ b/packages/providers/storage/supabase/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/supabase +## 0.1.20 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.19 ### Patch Changes diff --git a/packages/providers/storage/supabase/package.json b/packages/providers/storage/supabase/package.json index 5bb1806be0..5701b4b53d 100644 --- a/packages/providers/storage/supabase/package.json +++ b/packages/providers/storage/supabase/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/supabase", "description": "Supabase Storage for LlamaIndex", - "version": "0.1.19", + "version": "0.1.20", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/upstash/CHANGELOG.md b/packages/providers/storage/upstash/CHANGELOG.md index fdb0bffb73..d6f854733e 100644 --- a/packages/providers/storage/upstash/CHANGELOG.md +++ b/packages/providers/storage/upstash/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/upstash +## 0.0.33 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.32 ### Patch Changes diff --git a/packages/providers/storage/upstash/package.json b/packages/providers/storage/upstash/package.json index 137dd8aeaa..a06ae8fc95 100644 --- a/packages/providers/storage/upstash/package.json +++ b/packages/providers/storage/upstash/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/upstash", "description": "Upstash Storage for LlamaIndex", - "version": "0.0.32", + "version": "0.0.33", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/storage/weaviate/CHANGELOG.md b/packages/providers/storage/weaviate/CHANGELOG.md index 6c619ca301..365db4dd4e 100644 --- a/packages/providers/storage/weaviate/CHANGELOG.md +++ b/packages/providers/storage/weaviate/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/weaviate +## 0.0.34 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.0.33 ### Patch Changes diff --git a/packages/providers/storage/weaviate/package.json b/packages/providers/storage/weaviate/package.json index 56fc413ed9..f5db7452ed 100644 --- a/packages/providers/storage/weaviate/package.json +++ b/packages/providers/storage/weaviate/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/weaviate", "description": "Weaviate Storage for LlamaIndex", - "version": "0.0.33", + "version": "0.0.34", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/together/CHANGELOG.md b/packages/providers/together/CHANGELOG.md index 3f380017f6..376f2442d0 100644 --- a/packages/providers/together/CHANGELOG.md +++ b/packages/providers/together/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/together +## 0.0.30 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.29 ### Patch Changes diff --git a/packages/providers/together/package.json b/packages/providers/together/package.json index d88d9a336c..7387df1b94 100644 --- a/packages/providers/together/package.json +++ b/packages/providers/together/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/together", "description": "Together Adapter for LlamaIndex", - "version": "0.0.29", + "version": "0.0.30", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/vercel/CHANGELOG.md b/packages/providers/vercel/CHANGELOG.md index fb7c98877e..f55b35b2ee 100644 --- a/packages/providers/vercel/CHANGELOG.md +++ b/packages/providers/vercel/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/vercel +## 0.1.19 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.18 ### Patch Changes diff --git a/packages/providers/vercel/package.json b/packages/providers/vercel/package.json index 87dcde794b..44d90f6280 100644 --- a/packages/providers/vercel/package.json +++ b/packages/providers/vercel/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/vercel", "description": "Vercel Adapter for LlamaIndex", - "version": "0.1.18", + "version": "0.1.19", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/vllm/CHANGELOG.md b/packages/providers/vllm/CHANGELOG.md index 2aed63b62a..16336dac93 100644 --- a/packages/providers/vllm/CHANGELOG.md +++ b/packages/providers/vllm/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/vllm +## 0.0.56 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.55 ### Patch Changes diff --git a/packages/providers/vllm/package.json b/packages/providers/vllm/package.json index dff188cb0f..aee084eb1c 100644 --- a/packages/providers/vllm/package.json +++ b/packages/providers/vllm/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/vllm", "description": "vLLM Adapter for LlamaIndex", - "version": "0.0.55", + "version": "0.0.56", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/voyage-ai/CHANGELOG.md b/packages/providers/voyage-ai/CHANGELOG.md index 43edb91810..96d926904f 100644 --- a/packages/providers/voyage-ai/CHANGELOG.md +++ b/packages/providers/voyage-ai/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/voyage-ai +## 1.0.25 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 1.0.24 ### Patch Changes diff --git a/packages/providers/voyage-ai/package.json b/packages/providers/voyage-ai/package.json index f5839e69b6..e5ed883f59 100644 --- a/packages/providers/voyage-ai/package.json +++ b/packages/providers/voyage-ai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/voyage-ai", "description": "VoyageAI Adapter for LlamaIndex", - "version": "1.0.24", + "version": "1.0.25", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/providers/xai/CHANGELOG.md b/packages/providers/xai/CHANGELOG.md index 6de06fa5f5..b607b6ff3f 100644 --- a/packages/providers/xai/CHANGELOG.md +++ b/packages/providers/xai/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/xai +## 0.0.17 + +### Patch Changes + +- @llamaindex/openai@0.4.14 + ## 0.0.16 ### Patch Changes diff --git a/packages/providers/xai/package.json b/packages/providers/xai/package.json index b3f1f2e2ad..480cfffeea 100644 --- a/packages/providers/xai/package.json +++ b/packages/providers/xai/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/xai", "description": "XAI Adapter for LlamaIndex", - "version": "0.0.16", + "version": "0.0.17", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/readers/CHANGELOG.md b/packages/readers/CHANGELOG.md index 3afb006238..aa3a490f35 100644 --- a/packages/readers/CHANGELOG.md +++ b/packages/readers/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/readers +## 3.1.18 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 3.1.17 ### Patch Changes diff --git a/packages/readers/package.json b/packages/readers/package.json index 358c22cfbf..37076f2baa 100644 --- a/packages/readers/package.json +++ b/packages/readers/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/readers", "description": "LlamaIndex Readers", - "version": "3.1.17", + "version": "3.1.18", "type": "module", "exports": { "./node/hook": "./node/dist/hook.js", diff --git a/packages/tools/CHANGELOG.md b/packages/tools/CHANGELOG.md index 31f81de6df..8abe91fc6b 100644 --- a/packages/tools/CHANGELOG.md +++ b/packages/tools/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/tools +## 0.1.9 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 0.1.8 ### Patch Changes diff --git a/packages/tools/package.json b/packages/tools/package.json index 7f1c1c1ad9..9906b0277a 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/tools", "description": "LlamaIndex Tools", - "version": "0.1.8", + "version": "0.1.9", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/packages/workflow/CHANGELOG.md b/packages/workflow/CHANGELOG.md index f9f33d9f0a..9d75584d26 100644 --- a/packages/workflow/CHANGELOG.md +++ b/packages/workflow/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/workflow +## 1.1.20 + +### Patch Changes + +- Updated dependencies [f9f1de9] + - @llamaindex/core@0.6.19 + ## 1.1.19 ### Patch Changes diff --git a/packages/workflow/package.json b/packages/workflow/package.json index 328cb0655f..067c6281b7 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/workflow", "description": "Workflow API", - "version": "1.1.19", + "version": "1.1.20", "type": "module", "types": "dist/index.d.ts", "module": "dist/index.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b03b86cec1..0420a409bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -615,142 +615,142 @@ importers: specifier: ^12.1.0 version: 12.1.0 '@llamaindex/anthropic': - specifier: ^0.3.20 + specifier: ^0.3.21 version: link:../packages/providers/anthropic '@llamaindex/assemblyai': - specifier: ^0.1.17 + specifier: ^0.1.18 version: link:../packages/providers/assemblyai '@llamaindex/astra': - specifier: ^0.0.32 + specifier: ^0.0.33 version: link:../packages/providers/storage/astra '@llamaindex/azure': - specifier: ^0.1.30 + specifier: ^0.1.31 version: link:../packages/providers/storage/azure '@llamaindex/bm25-retriever': - specifier: ^0.0.7 + specifier: ^0.0.8 version: link:../packages/providers/retriever/bm25 '@llamaindex/chroma': - specifier: ^0.0.32 + specifier: ^0.0.33 version: link:../packages/providers/storage/chroma '@llamaindex/clip': - specifier: ^0.0.69 + specifier: ^0.0.70 version: link:../packages/providers/clip '@llamaindex/cloud': - specifier: ^4.0.27 + specifier: ^4.0.28 version: link:../packages/cloud '@llamaindex/cohere': - specifier: ^0.0.32 + specifier: ^0.0.33 version: link:../packages/providers/cohere '@llamaindex/core': - specifier: ^0.6.18 + specifier: ^0.6.19 version: link:../packages/core '@llamaindex/deepinfra': - specifier: ^0.0.69 + specifier: ^0.0.70 version: link:../packages/providers/deepinfra '@llamaindex/deepseek': - specifier: ^0.0.30 + specifier: ^0.0.31 version: link:../packages/providers/deepseek '@llamaindex/discord': - specifier: ^0.1.17 + specifier: ^0.1.18 version: link:../packages/providers/discord '@llamaindex/elastic-search': - specifier: ^0.1.18 + specifier: ^0.1.19 version: link:../packages/providers/storage/elastic-search '@llamaindex/env': specifier: ^0.1.30 version: link:../packages/env '@llamaindex/firestore': - specifier: ^1.0.25 + specifier: ^1.0.26 version: link:../packages/providers/storage/firestore '@llamaindex/fireworks': - specifier: ^0.0.29 + specifier: ^0.0.30 version: link:../packages/providers/fireworks '@llamaindex/google': - specifier: ^0.3.17 + specifier: ^0.3.18 version: link:../packages/providers/google '@llamaindex/groq': - specifier: ^0.0.85 + specifier: ^0.0.86 version: link:../packages/providers/groq '@llamaindex/huggingface': - specifier: ^0.1.23 + specifier: ^0.1.24 version: link:../packages/providers/huggingface '@llamaindex/jinaai': - specifier: ^0.0.29 + specifier: ^0.0.30 version: link:../packages/providers/jinaai '@llamaindex/milvus': - specifier: ^0.1.27 + specifier: ^0.1.28 version: link:../packages/providers/storage/milvus '@llamaindex/mistral': - specifier: ^0.1.18 + specifier: ^0.1.19 version: link:../packages/providers/mistral '@llamaindex/mixedbread': - specifier: ^0.0.32 + specifier: ^0.0.33 version: link:../packages/providers/mixedbread '@llamaindex/mongodb': - specifier: ^0.0.33 + specifier: ^0.0.34 version: link:../packages/providers/storage/mongodb '@llamaindex/node-parser': - specifier: ^2.0.18 + specifier: ^2.0.19 version: link:../packages/node-parser '@llamaindex/notion': - specifier: ^0.1.17 + specifier: ^0.1.18 version: link:../packages/providers/notion '@llamaindex/ollama': - specifier: ^0.1.18 + specifier: ^0.1.19 version: link:../packages/providers/ollama '@llamaindex/openai': - specifier: ^0.4.13 + specifier: ^0.4.14 version: link:../packages/providers/openai '@llamaindex/perplexity': - specifier: ^0.0.26 + specifier: ^0.0.27 version: link:../packages/providers/perplexity '@llamaindex/pinecone': - specifier: ^0.1.18 + specifier: ^0.1.19 version: link:../packages/providers/storage/pinecone '@llamaindex/portkey-ai': - specifier: ^0.0.60 + specifier: ^0.0.61 version: link:../packages/providers/portkey-ai '@llamaindex/postgres': - specifier: ^0.0.61 + specifier: ^0.0.62 version: link:../packages/providers/storage/postgres '@llamaindex/qdrant': - specifier: ^0.1.28 + specifier: ^0.1.29 version: link:../packages/providers/storage/qdrant '@llamaindex/readers': - specifier: ^3.1.17 + specifier: ^3.1.18 version: link:../packages/readers '@llamaindex/replicate': - specifier: ^0.0.60 + specifier: ^0.0.61 version: link:../packages/providers/replicate '@llamaindex/supabase': - specifier: ^0.1.19 + specifier: ^0.1.20 version: link:../packages/providers/storage/supabase '@llamaindex/together': - specifier: ^0.0.29 + specifier: ^0.0.30 version: link:../packages/providers/together '@llamaindex/tools': - specifier: ^0.1.8 + specifier: ^0.1.9 version: link:../packages/tools '@llamaindex/upstash': - specifier: ^0.0.32 + specifier: ^0.0.33 version: link:../packages/providers/storage/upstash '@llamaindex/vercel': - specifier: ^0.1.18 + specifier: ^0.1.19 version: link:../packages/providers/vercel '@llamaindex/vllm': - specifier: ^0.0.55 + specifier: ^0.0.56 version: link:../packages/providers/vllm '@llamaindex/voyage-ai': - specifier: ^1.0.24 + specifier: ^1.0.25 version: link:../packages/providers/voyage-ai '@llamaindex/weaviate': - specifier: ^0.0.33 + specifier: ^0.0.34 version: link:../packages/providers/storage/weaviate '@llamaindex/workflow': - specifier: ^1.1.19 + specifier: ^1.1.20 version: link:../packages/workflow '@llamaindex/xai': - specifier: ^0.0.16 + specifier: ^0.0.17 version: link:../packages/providers/xai '@notionhq/client': specifier: 4.0.0 @@ -777,7 +777,7 @@ importers: specifier: ^1.0.14 version: 1.0.19 llamaindex: - specifier: ^0.11.23 + specifier: ^0.11.24 version: link:../packages/llamaindex mongodb: specifier: 6.7.0 diff --git a/unit/CHANGELOG.md b/unit/CHANGELOG.md index bddd2d49dc..820bf91771 100644 --- a/unit/CHANGELOG.md +++ b/unit/CHANGELOG.md @@ -1,5 +1,19 @@ # @llamaindex/unit-test +## 0.1.54 + +### Patch Changes + +- Updated dependencies [c3bf3c7] +- Updated dependencies [f9f1de9] + - @llamaindex/cloud@4.0.28 + - @llamaindex/core@0.6.19 + - llamaindex@0.11.24 + - @llamaindex/node-parser@2.0.19 + - @llamaindex/openai@0.4.14 + - @llamaindex/readers@3.1.18 + - @llamaindex/workflow@1.1.20 + ## 0.1.53 ### Patch Changes diff --git a/unit/package.json b/unit/package.json index 90ded7c39e..0684d0efa8 100644 --- a/unit/package.json +++ b/unit/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/unit-test", "private": true, - "version": "0.1.53", + "version": "0.1.54", "type": "module", "scripts": { "test": "vitest run" From 049471bade6bcedf3e68e2548f90d6033801b78d Mon Sep 17 00:00:00 2001 From: Marcus Schiesser Date: Thu, 31 Jul 2025 12:12:56 +0800 Subject: [PATCH 5/6] chore: deprecate cloud packages (#2143) --- .changeset/public-olives-brush.md | 5 +++++ .changeset/silent-spiders-wash.md | 5 +++++ packages/cloud/src/api.ts | 7 +++++++ packages/cloud/src/beta/agent/index.ts | 7 +++++++ packages/cloud/src/parse.ts | 7 +++++++ packages/llamaindex/src/cloud/index.ts | 6 ++++++ 6 files changed, 37 insertions(+) create mode 100644 .changeset/public-olives-brush.md create mode 100644 .changeset/silent-spiders-wash.md diff --git a/.changeset/public-olives-brush.md b/.changeset/public-olives-brush.md new file mode 100644 index 0000000000..e8f31b1c92 --- /dev/null +++ b/.changeset/public-olives-brush.md @@ -0,0 +1,5 @@ +--- +"@llamaindex/cloud": minor +--- + +Add deprecation warning diff --git a/.changeset/silent-spiders-wash.md b/.changeset/silent-spiders-wash.md new file mode 100644 index 0000000000..56ce554204 --- /dev/null +++ b/.changeset/silent-spiders-wash.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +Moved LlamaCloudFileService, LlamaCloudIndex and LlamaCloudRetriever to llama-cloud-services diff --git a/packages/cloud/src/api.ts b/packages/cloud/src/api.ts index df2f161c47..78b97a534b 100644 --- a/packages/cloud/src/api.ts +++ b/packages/cloud/src/api.ts @@ -1,3 +1,10 @@ +// Deprecation warning +console.warn(` +The package @llamaindex/cloud has been deprecated since version 4.1.0 + * Please migrate to llama-cloud-services. + * See the documentation: https://docs.cloud.llamaindex.ai +`); + import { client } from "./client/client.gen"; client.setConfig({ diff --git a/packages/cloud/src/beta/agent/index.ts b/packages/cloud/src/beta/agent/index.ts index 970f4f3adc..8f43879000 100644 --- a/packages/cloud/src/beta/agent/index.ts +++ b/packages/cloud/src/beta/agent/index.ts @@ -1,3 +1,10 @@ +// Deprecation warning +console.warn(` +The package @llamaindex/cloud has been deprecated since version 4.1.0 + * Please migrate to llama-cloud-services. + * See the documentation: https://docs.cloud.llamaindex.ai +`); + export { AgentClient, createAgentDataClient } from "./client"; export type { diff --git a/packages/cloud/src/parse.ts b/packages/cloud/src/parse.ts index 37f0ed18be..40eb5a9fc1 100644 --- a/packages/cloud/src/parse.ts +++ b/packages/cloud/src/parse.ts @@ -1,3 +1,10 @@ +// Deprecation warning +console.warn(` +The package @llamaindex/cloud has been deprecated since version 4.1.0 + * Please migrate to llama-cloud-services. + * See the documentation: https://docs.cloud.llamaindex.ai +`); + import { createClient, createConfig } from "@hey-api/client-fetch"; import { createWorkflow, type InferWorkflowEventData } from "@llama-flow/core"; import { createStatefulMiddleware } from "@llama-flow/core/middleware/state"; diff --git a/packages/llamaindex/src/cloud/index.ts b/packages/llamaindex/src/cloud/index.ts index 9976880143..208403a874 100644 --- a/packages/llamaindex/src/cloud/index.ts +++ b/packages/llamaindex/src/cloud/index.ts @@ -1,3 +1,9 @@ +console.warn(` +The classes LlamaCloudFileService, LlamaCloudIndex and LlamaCloudRetriever have been moved to the package llama-cloud-services. + * Please migrate your imports to llama-cloud-services, e.g. import { LlamaCloudIndex } from "llama-cloud-services"; + * See the documentation: https://docs.cloud.llamaindex.ai +`); + export { LLamaCloudFileService } from "./LLamaCloudFileService.js"; export { LlamaCloudIndex } from "./LlamaCloudIndex.js"; export { From 3e0ffdc688cb4516a2fd8188b13fd8d0db56d489 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 12:18:18 +0800 Subject: [PATCH 6/6] Release 0.11.25 (#2144) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/public-olives-brush.md | 5 ----- .changeset/silent-spiders-wash.md | 5 ----- apps/next/CHANGELOG.md | 9 +++++++++ apps/next/package.json | 2 +- e2e/examples/cloudflare-worker-agent/CHANGELOG.md | 7 +++++++ e2e/examples/cloudflare-worker-agent/package.json | 2 +- e2e/examples/llama-parse-browser/CHANGELOG.md | 7 +++++++ e2e/examples/llama-parse-browser/package.json | 2 +- e2e/examples/nextjs-agent/CHANGELOG.md | 7 +++++++ e2e/examples/nextjs-agent/package.json | 2 +- e2e/examples/nextjs-edge-runtime/CHANGELOG.md | 7 +++++++ e2e/examples/nextjs-edge-runtime/package.json | 2 +- e2e/examples/nextjs-node-runtime/CHANGELOG.md | 7 +++++++ e2e/examples/nextjs-node-runtime/package.json | 2 +- e2e/examples/vite-import-llamaindex/CHANGELOG.md | 7 +++++++ e2e/examples/vite-import-llamaindex/package.json | 2 +- e2e/examples/waku-query-engine/CHANGELOG.md | 7 +++++++ e2e/examples/waku-query-engine/package.json | 2 +- packages/autotool/CHANGELOG.md | 7 +++++++ packages/autotool/examples/01_node/CHANGELOG.md | 8 ++++++++ packages/autotool/examples/01_node/package.json | 2 +- packages/autotool/package.json | 2 +- packages/cloud/CHANGELOG.md | 6 ++++++ packages/cloud/package.json | 2 +- packages/experimental/CHANGELOG.md | 7 +++++++ packages/experimental/package.json | 2 +- packages/llamaindex/CHANGELOG.md | 8 ++++++++ packages/llamaindex/package.json | 2 +- unit/CHANGELOG.md | 9 +++++++++ unit/package.json | 2 +- 30 files changed, 117 insertions(+), 24 deletions(-) delete mode 100644 .changeset/public-olives-brush.md delete mode 100644 .changeset/silent-spiders-wash.md diff --git a/.changeset/public-olives-brush.md b/.changeset/public-olives-brush.md deleted file mode 100644 index e8f31b1c92..0000000000 --- a/.changeset/public-olives-brush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@llamaindex/cloud": minor ---- - -Add deprecation warning diff --git a/.changeset/silent-spiders-wash.md b/.changeset/silent-spiders-wash.md deleted file mode 100644 index 56ce554204..0000000000 --- a/.changeset/silent-spiders-wash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"llamaindex": patch ---- - -Moved LlamaCloudFileService, LlamaCloudIndex and LlamaCloudRetriever to llama-cloud-services diff --git a/apps/next/CHANGELOG.md b/apps/next/CHANGELOG.md index b43008d334..4c29fa1af7 100644 --- a/apps/next/CHANGELOG.md +++ b/apps/next/CHANGELOG.md @@ -1,5 +1,14 @@ # @llamaindex/doc +## 0.2.48 + +### Patch Changes + +- Updated dependencies [049471b] +- Updated dependencies [049471b] + - @llamaindex/cloud@4.1.0 + - llamaindex@0.11.25 + ## 0.2.47 ### Patch Changes diff --git a/apps/next/package.json b/apps/next/package.json index 883baf6384..5f25dfc328 100644 --- a/apps/next/package.json +++ b/apps/next/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/doc", - "version": "0.2.47", + "version": "0.2.48", "private": true, "scripts": { "postinstall": "fumadocs-mdx", diff --git a/e2e/examples/cloudflare-worker-agent/CHANGELOG.md b/e2e/examples/cloudflare-worker-agent/CHANGELOG.md index a9fe0c57aa..23a7bb5b01 100644 --- a/e2e/examples/cloudflare-worker-agent/CHANGELOG.md +++ b/e2e/examples/cloudflare-worker-agent/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/cloudflare-worker-agent-test +## 0.0.186 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.0.185 ### Patch Changes diff --git a/e2e/examples/cloudflare-worker-agent/package.json b/e2e/examples/cloudflare-worker-agent/package.json index 2c591935df..b5e4c95bc7 100644 --- a/e2e/examples/cloudflare-worker-agent/package.json +++ b/e2e/examples/cloudflare-worker-agent/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/cloudflare-worker-agent-test", - "version": "0.0.185", + "version": "0.0.186", "type": "module", "private": true, "scripts": { diff --git a/e2e/examples/llama-parse-browser/CHANGELOG.md b/e2e/examples/llama-parse-browser/CHANGELOG.md index 198c43c3bf..f5336f6881 100644 --- a/e2e/examples/llama-parse-browser/CHANGELOG.md +++ b/e2e/examples/llama-parse-browser/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/llama-parse-browser-test +## 0.0.84 + +### Patch Changes + +- Updated dependencies [049471b] + - @llamaindex/cloud@4.1.0 + ## 0.0.83 ### Patch Changes diff --git a/e2e/examples/llama-parse-browser/package.json b/e2e/examples/llama-parse-browser/package.json index 73c5f47ef2..37be6a67e3 100644 --- a/e2e/examples/llama-parse-browser/package.json +++ b/e2e/examples/llama-parse-browser/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/llama-parse-browser-test", "private": true, - "version": "0.0.83", + "version": "0.0.84", "type": "module", "scripts": { "dev": "vite", diff --git a/e2e/examples/nextjs-agent/CHANGELOG.md b/e2e/examples/nextjs-agent/CHANGELOG.md index 9b04139b65..bd32ef4600 100644 --- a/e2e/examples/nextjs-agent/CHANGELOG.md +++ b/e2e/examples/nextjs-agent/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/next-agent-test +## 0.1.186 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.1.185 ### Patch Changes diff --git a/e2e/examples/nextjs-agent/package.json b/e2e/examples/nextjs-agent/package.json index 9771c8f4a5..875c4f1377 100644 --- a/e2e/examples/nextjs-agent/package.json +++ b/e2e/examples/nextjs-agent/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/next-agent-test", - "version": "0.1.185", + "version": "0.1.186", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/nextjs-edge-runtime/CHANGELOG.md b/e2e/examples/nextjs-edge-runtime/CHANGELOG.md index 30f8aa472d..e4ebbbdb20 100644 --- a/e2e/examples/nextjs-edge-runtime/CHANGELOG.md +++ b/e2e/examples/nextjs-edge-runtime/CHANGELOG.md @@ -1,5 +1,12 @@ # test-edge-runtime +## 0.1.185 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.1.184 ### Patch Changes diff --git a/e2e/examples/nextjs-edge-runtime/package.json b/e2e/examples/nextjs-edge-runtime/package.json index cf659cf24b..e1a371ee88 100644 --- a/e2e/examples/nextjs-edge-runtime/package.json +++ b/e2e/examples/nextjs-edge-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/nextjs-edge-runtime-test", - "version": "0.1.184", + "version": "0.1.185", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/nextjs-node-runtime/CHANGELOG.md b/e2e/examples/nextjs-node-runtime/CHANGELOG.md index 6028f4fbfb..65dcea1d59 100644 --- a/e2e/examples/nextjs-node-runtime/CHANGELOG.md +++ b/e2e/examples/nextjs-node-runtime/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/next-node-runtime +## 0.1.55 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.1.54 ### Patch Changes diff --git a/e2e/examples/nextjs-node-runtime/package.json b/e2e/examples/nextjs-node-runtime/package.json index afd018625a..c9ef26808e 100644 --- a/e2e/examples/nextjs-node-runtime/package.json +++ b/e2e/examples/nextjs-node-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/next-node-runtime-test", - "version": "0.1.54", + "version": "0.1.55", "private": true, "scripts": { "dev": "next dev", diff --git a/e2e/examples/vite-import-llamaindex/CHANGELOG.md b/e2e/examples/vite-import-llamaindex/CHANGELOG.md index 98b5c01c7d..175b38158a 100644 --- a/e2e/examples/vite-import-llamaindex/CHANGELOG.md +++ b/e2e/examples/vite-import-llamaindex/CHANGELOG.md @@ -1,5 +1,12 @@ # vite-import-llamaindex +## 0.0.52 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.0.51 ### Patch Changes diff --git a/e2e/examples/vite-import-llamaindex/package.json b/e2e/examples/vite-import-llamaindex/package.json index a6393630be..ca334e0cfc 100644 --- a/e2e/examples/vite-import-llamaindex/package.json +++ b/e2e/examples/vite-import-llamaindex/package.json @@ -1,7 +1,7 @@ { "name": "vite-import-llamaindex", "private": true, - "version": "0.0.51", + "version": "0.0.52", "type": "module", "scripts": { "build": "vite build", diff --git a/e2e/examples/waku-query-engine/CHANGELOG.md b/e2e/examples/waku-query-engine/CHANGELOG.md index b311de1380..2e0c8830e6 100644 --- a/e2e/examples/waku-query-engine/CHANGELOG.md +++ b/e2e/examples/waku-query-engine/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/waku-query-engine-test +## 0.0.186 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.0.185 ### Patch Changes diff --git a/e2e/examples/waku-query-engine/package.json b/e2e/examples/waku-query-engine/package.json index a644e5c2dc..24ed24ff63 100644 --- a/e2e/examples/waku-query-engine/package.json +++ b/e2e/examples/waku-query-engine/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/waku-query-engine-test", - "version": "0.0.185", + "version": "0.0.186", "type": "module", "private": true, "scripts": { diff --git a/packages/autotool/CHANGELOG.md b/packages/autotool/CHANGELOG.md index 2df4051169..16a346368f 100644 --- a/packages/autotool/CHANGELOG.md +++ b/packages/autotool/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/autotool +## 8.0.25 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 8.0.24 ### Patch Changes diff --git a/packages/autotool/examples/01_node/CHANGELOG.md b/packages/autotool/examples/01_node/CHANGELOG.md index aa50f76250..0a6e7cb292 100644 --- a/packages/autotool/examples/01_node/CHANGELOG.md +++ b/packages/autotool/examples/01_node/CHANGELOG.md @@ -1,5 +1,13 @@ # @llamaindex/autotool-01-node-example +## 0.0.133 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + - @llamaindex/autotool@8.0.25 + ## 0.0.132 ### Patch Changes diff --git a/packages/autotool/examples/01_node/package.json b/packages/autotool/examples/01_node/package.json index 92070cca28..6b407be122 100644 --- a/packages/autotool/examples/01_node/package.json +++ b/packages/autotool/examples/01_node/package.json @@ -13,5 +13,5 @@ "scripts": { "start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts" }, - "version": "0.0.132" + "version": "0.0.133" } diff --git a/packages/autotool/package.json b/packages/autotool/package.json index 7b639c06d6..9dd63cfd38 100644 --- a/packages/autotool/package.json +++ b/packages/autotool/package.json @@ -6,7 +6,7 @@ "url": "git+https://github.com/run-llama/LlamaIndexTS.git", "directory": "packages/autotool" }, - "version": "8.0.24", + "version": "8.0.25", "description": "auto transpile your JS function to LLM Agent compatible", "files": [ "dist", diff --git a/packages/cloud/CHANGELOG.md b/packages/cloud/CHANGELOG.md index 7e2b8cab4c..9238c7e0b1 100644 --- a/packages/cloud/CHANGELOG.md +++ b/packages/cloud/CHANGELOG.md @@ -1,5 +1,11 @@ # @llamaindex/cloud +## 4.1.0 + +### Minor Changes + +- 049471b: Add deprecation warning + ## 4.0.28 ### Patch Changes diff --git a/packages/cloud/package.json b/packages/cloud/package.json index eecd796f86..6d8d15b51a 100644 --- a/packages/cloud/package.json +++ b/packages/cloud/package.json @@ -1,6 +1,6 @@ { "name": "@llamaindex/cloud", - "version": "4.0.28", + "version": "4.1.0", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/experimental/CHANGELOG.md b/packages/experimental/CHANGELOG.md index d4f0069c20..f5b9113b90 100644 --- a/packages/experimental/CHANGELOG.md +++ b/packages/experimental/CHANGELOG.md @@ -1,5 +1,12 @@ # @llamaindex/experimental +## 0.0.202 + +### Patch Changes + +- Updated dependencies [049471b] + - llamaindex@0.11.25 + ## 0.0.201 ### Patch Changes diff --git a/packages/experimental/package.json b/packages/experimental/package.json index 615017ae3b..1d87ccdb9a 100644 --- a/packages/experimental/package.json +++ b/packages/experimental/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/experimental", "description": "Experimental package for LlamaIndexTS", - "version": "0.0.201", + "version": "0.0.202", "type": "module", "types": "dist/type/index.d.ts", "main": "dist/cjs/index.js", diff --git a/packages/llamaindex/CHANGELOG.md b/packages/llamaindex/CHANGELOG.md index e7bb0bb1d3..3959042e39 100644 --- a/packages/llamaindex/CHANGELOG.md +++ b/packages/llamaindex/CHANGELOG.md @@ -1,5 +1,13 @@ # llamaindex +## 0.11.25 + +### Patch Changes + +- 049471b: Moved LlamaCloudFileService, LlamaCloudIndex and LlamaCloudRetriever to llama-cloud-services +- Updated dependencies [049471b] + - @llamaindex/cloud@4.1.0 + ## 0.11.24 ### Patch Changes diff --git a/packages/llamaindex/package.json b/packages/llamaindex/package.json index cb814af1dc..e6e10fb6ee 100644 --- a/packages/llamaindex/package.json +++ b/packages/llamaindex/package.json @@ -1,6 +1,6 @@ { "name": "llamaindex", - "version": "0.11.24", + "version": "0.11.25", "license": "MIT", "type": "module", "keywords": [ diff --git a/unit/CHANGELOG.md b/unit/CHANGELOG.md index 820bf91771..548def26f9 100644 --- a/unit/CHANGELOG.md +++ b/unit/CHANGELOG.md @@ -1,5 +1,14 @@ # @llamaindex/unit-test +## 0.1.55 + +### Patch Changes + +- Updated dependencies [049471b] +- Updated dependencies [049471b] + - @llamaindex/cloud@4.1.0 + - llamaindex@0.11.25 + ## 0.1.54 ### Patch Changes diff --git a/unit/package.json b/unit/package.json index 0684d0efa8..4dd693b5e7 100644 --- a/unit/package.json +++ b/unit/package.json @@ -1,7 +1,7 @@ { "name": "@llamaindex/unit-test", "private": true, - "version": "0.1.54", + "version": "0.1.55", "type": "module", "scripts": { "test": "vitest run"