Compare commits

...

19 Commits

Author SHA1 Message Date
Logan Markewich 33cbd22869 fix imports 2025-07-08 17:30:19 -06:00
Logan Markewich add0b530d2 fix imports 2025-07-08 17:28:05 -06:00
Logan Markewich 52ffdf4946 add workflow-core 2025-07-08 17:26:26 -06:00
Logan Markewich c52eca9ef4 fix import 2025-07-08 17:18:40 -06:00
Logan Markewich 1dd16d10c4 update readme 2025-07-08 17:05:52 -06:00
Logan Markewich 0be59904b2 lock 2025-07-08 16:28:49 -06:00
Logan Markewich 5c01c5f73a changesset 2025-07-08 16:28:39 -06:00
Logan Markewich f552cb062e remove workspace from examples package.json 2025-07-08 16:26:15 -06:00
Alex Yang 93852e15fd chore: bump zod (#2074) 2025-07-08 13:58:52 -07:00
Clelia (Astra) Bertelli e1320b08a8 fix: adding more details in the contribution guidelines about changesets (#2073) 2025-07-08 13:58:36 -07:00
Logan 8eeac3310f fix memory factory (#2066) 2025-07-08 10:01:19 +07:00
Logan 984a573068 docs: update contributing instructions (#2067) 2025-07-07 16:38:26 -07:00
github-actions[bot] f0160d9646 Release (#2065)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-07 12:15:33 -06:00
Logan 39758ab018 add title to root layout (#2064) 2025-07-07 12:06:13 -06:00
dependabot[bot] f631d4f7d6 chore(deps): bump next from 15.3.0 to 15.3.3 (#2063) 2025-07-07 12:40:42 +07:00
github-actions[bot] d68c2a4be8 Release 0.11.13 (#2060) 2025-07-07 11:24:21 +07:00
Alex Yang 47a7555c07 chore: bump sdk version (#2062) 2025-07-03 12:05:16 -07:00
Marcus Schiesser 363bfa778e chore: re-add lib folder from docs and rename it to libs (so pnpm clean doesn't delete it) 2025-07-03 11:03:05 +07:00
Jan Z 229cdeb0ff feat: add agent update to groq models (#2054)
Co-authored-by: Marcus Schiesser <marcus.schiesser@googlemail.com>
Co-authored-by: Marcus Schiesser <mail@marcusschiesser.de>
2025-07-01 22:53:47 -07:00
91 changed files with 14048 additions and 1399 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/core": patch
---
Fix createMemory factory when parsing options
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/examples": patch
---
Fix xai dependency in the examples
+54 -1
View File
@@ -38,6 +38,7 @@ npm install -g pnpm
```shell
pnpm install
pnpm install -g tsx
```
### Build the packages
@@ -48,6 +49,56 @@ To build all packages, run:
pnpm build
```
### Start Developing
You can launch the package in dev-mode by running:
```shell
pnpm dev
```
This will use turbo to run all packages in watch-mode. This means you can make changes and have them automatically built.
If you want to customize what packages are built/watched, you can run turbo directly and adjust the filter:
```shell
pnpm turbo run dev --filter="./packages/core" --concurrency=100
```
In another terminal, you can write and run any script needed to quickly test your changes. For example:
```typescript
import { createMemory, staticBlock } from "@llamaindex/core/memory";
// Create memory with predefined context
const memory = createMemory({
memoryBlocks: [
staticBlock({
content:
"The user is a software engineer who loves TypeScript and LlamaIndex.",
messageRole: "system",
}),
],
});
async function main() {
const result = await memory.getLLM();
console.log(result);
}
void main().catch(console.error);
```
And run it with:
```shell
pnpm exec tsx my_script.ts
```
This flow allows you to easily test your changes without having to build the entire project.
Once you are happy with your changes, be sure to add tests (and confirm existing tests are passing!).
### Run tests
#### Unit tests
@@ -92,7 +143,7 @@ Before sending a PR, make sure of the following:
3. If you have a new feature, add a new example in the `examples` folder.
4. You have a descriptive changeset for each PR:
### Changesets
### Bumping the versions of packages you've modified
We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new
changeset, run in the root folder:
@@ -101,6 +152,8 @@ changeset, run in the root folder:
pnpm changeset
```
You will be prompted to choose what packages need their versions bumped, and what kind of bump (major, minor or patch) is needed. Once you carry out this operation, the bumping will be automatic after the PR is merged.
## Publishing (maintainers only)
The [Release Github Action](.github/workflows/release.yml) is automatically generating and updating a
+14
View File
@@ -1,5 +1,19 @@
# @llamaindex/doc
## 0.2.34
### Patch Changes
- 39758ab: Add title to homepage header
## 0.2.33
### Patch Changes
- Updated dependencies [47a7555]
- @llamaindex/cloud@4.0.18
- llamaindex@0.11.13
## 0.2.32
### Patch Changes
+2 -2
View File
@@ -12,9 +12,9 @@
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"utils": "@/libs/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"lib": "@/libs",
"hooks": "@/hooks"
}
}
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.2.32",
"version": "0.2.34",
"private": true,
"scripts": {
"postinstall": "fumadocs-mdx",
@@ -35,7 +35,7 @@
"@radix-ui/react-tooltip": "^1.1.4",
"@scalar/api-client-react": "^1.1.25",
"@vercel/functions": "^1.5.0",
"ai": "^3.4.33",
"ai": "^4.3.17",
"class-variance-authority": "^0.7.0",
"clsx": "2.1.1",
"foxact": "^0.2.41",
@@ -50,7 +50,7 @@
"hast-util-to-jsx-runtime": "^2.3.2",
"llamaindex": "workspace:*",
"lucide-react": "^0.460.0",
"next": "^15.3.0",
"next": "^15.3.3",
"next-themes": "^0.4.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
@@ -70,7 +70,7 @@
"twoslash": "^0.3.1",
"use-stick-to-bottom": "^1.0.42",
"web-tree-sitter": "^0.24.4",
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"devDependencies": {
"@next/env": "^15.3.0",
@@ -94,6 +94,6 @@
"typedoc": "0.28.3",
"typedoc-plugin-markdown": "^4.6.2",
"typedoc-plugin-merge-modules": " ^7.0.0",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ import { MagicMove } from "@/components/magic-move";
import { NpmInstall } from "@/components/npm-install";
import { Supports } from "@/components/supports";
import { Button } from "@/components/ui/button";
import { DOCUMENT_URL } from "@/lib/const";
import { DOCUMENT_URL } from "@/libs/const";
import { SiStackblitz } from "@icons-pack/react-simple-icons";
import { Blocks, Bot, Footprints, Terminal } from "lucide-react";
import Link from "next/link";
+1 -1
View File
@@ -1,4 +1,4 @@
import { source } from "@/lib/source";
import { source } from "@/libs/source";
import { structure } from "fumadocs-core/mdx-plugins";
import { createFromSource } from "fumadocs-core/search/server";
+2 -2
View File
@@ -1,6 +1,6 @@
import * as demos from "@/components/demo/lazy";
import { createMetadata, metadataImage } from "@/lib/metadata";
import { openapi, source } from "@/lib/source";
import { createMetadata, metadataImage } from "@/libs/metadata";
import { openapi, source } from "@/libs/source";
import * as Icons from "@icons-pack/react-simple-icons";
import { APIPage } from "fumadocs-openapi/ui";
import { Popup, PopupContent, PopupTrigger } from "fumadocs-twoslash/ui";
+1 -1
View File
@@ -1,5 +1,5 @@
import { baseOptions } from "@/app/layout.config";
import { source } from "@/lib/source";
import { source } from "@/libs/source";
import "fumadocs-twoslash/twoslash.css";
import { DocsLayout } from "fumadocs-ui/layouts/docs";
import type { ReactNode } from "react";
+1 -1
View File
@@ -1,4 +1,4 @@
import { DOCUMENT_URL } from "@/lib/const";
import { DOCUMENT_URL } from "@/libs/const";
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import Image from "next/image";
+3
View File
@@ -32,6 +32,9 @@ export default function Layout({ children }: { children: ReactNode }) {
sizes="16x16"
href="/favicon-16x16.png"
/>
<title>
LlamaIndex.TS - Build LLM-powered document agents and workflows
</title>
</head>
<body className="flex min-h-screen flex-col">
<TooltipProvider>
+1 -1
View File
@@ -1,5 +1,5 @@
import { generateOGImage } from "@/app/og/[...slug]/og";
import { metadataImage } from "@/lib/metadata";
import { metadataImage } from "@/libs/metadata";
import { type ImageResponse } from "next/og";
import { readFileSync } from "node:fs";
+1 -1
View File
@@ -1,6 +1,6 @@
import ContributorCounter from "@/components/contributor-count";
import { buttonVariants } from "@/components/ui/button";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import { Heart } from "lucide-react";
import { ReactElement } from "react";
@@ -1,5 +1,5 @@
import { fetchContributors } from "@/lib/get-contributors";
import { cn } from "@/lib/utils";
import { fetchContributors } from "@/libs/get-contributors";
import { cn } from "@/libs/utils";
import Image from "next/image";
import type { HTMLAttributes, ReactElement } from "react";
@@ -1,5 +1,5 @@
"use client";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import { TerminalIcon } from "lucide-react";
import {
Fragment,
+1 -1
View File
@@ -1,4 +1,4 @@
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import { LucideIcon } from "lucide-react";
import { HTMLAttributes, ReactElement, ReactNode } from "react";
+1 -1
View File
@@ -1,6 +1,6 @@
"use client";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import { CodeBlock } from "fumadocs-ui/components/codeblock";
import { RotateCcw } from "lucide-react";
import { useTheme } from "next-themes";
+1 -1
View File
@@ -1,6 +1,6 @@
"use client";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import Image from "next/image";
import { ReactNode } from "react";
import { IconAI, IconUser } from "./ui/icons";
@@ -1,4 +1,4 @@
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import {
AnimatePresence,
motion,
+1 -1
View File
@@ -1,7 +1,7 @@
import { cva, type VariantProps } from "class-variance-authority";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const alertVariants = cva(
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
+1 -1
View File
@@ -1,7 +1,7 @@
import { cva, type VariantProps } from "class-variance-authority";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const badgeVariants = cva(
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
+1 -1
View File
@@ -2,7 +2,7 @@ import { Slot } from "@radix-ui/react-slot";
import { cva, type VariantProps } from "class-variance-authority";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
+1 -1
View File
@@ -4,7 +4,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog";
import { Cross2Icon } from "@radix-ui/react-icons";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const Dialog = DialogPrimitive.Root;
+1 -1
View File
@@ -1,4 +1,4 @@
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
export function IconAI({ className, ...props }: React.ComponentProps<"svg">) {
return (
@@ -1,5 +1,5 @@
"use client";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
import { animate, motion, useMotionValue } from "framer-motion";
import { useEffect, useState } from "react";
import useMeasure from "react-use-measure";
+1 -1
View File
@@ -1,6 +1,6 @@
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
+1 -1
View File
@@ -4,7 +4,7 @@ import * as LabelPrimitive from "@radix-ui/react-label";
import { cva, type VariantProps } from "class-variance-authority";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const labelVariants = cva(
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
+1 -1
View File
@@ -1,4 +1,4 @@
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
function Skeleton({
className,
+1 -1
View File
@@ -3,7 +3,7 @@
import * as SliderPrimitive from "@radix-ui/react-slider";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const Slider = React.forwardRef<
React.ElementRef<typeof SliderPrimitive.Root>,
+1 -1
View File
@@ -1,6 +1,6 @@
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
export type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
+1 -1
View File
@@ -3,7 +3,7 @@
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
import * as React from "react";
import { cn } from "@/lib/utils";
import { cn } from "@/libs/utils";
const TooltipProvider = TooltipPrimitive.Provider;
-30
View File
@@ -1,30 +0,0 @@
import { createMetadataImage } from 'fumadocs-core/server';
import { source } from '@/lib/source';
import { Metadata } from 'next';
export const metadataImage = createMetadataImage({
source,
imageRoute: 'og',
});
export function createMetadata(override: Metadata): Metadata {
return {
...override,
openGraph: {
title: override.title ?? undefined,
description: override.description ?? undefined,
url: 'https://ts.llamaindex.ai/',
images: '/og.png',
siteName: 'LlamaIndex.TS',
...override.openGraph,
},
twitter: {
card: 'summary_large_image',
creator: '@llama_index',
title: override.title ?? undefined,
description: override.description ?? undefined,
images: '/og.png',
...override.twitter,
},
};
}
-6
View File
@@ -1,6 +0,0 @@
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}
@@ -1,2 +1,2 @@
// when we are ready, change to /docs/llamaindex
export const DOCUMENT_URL = '/docs/llamaindex'
export const DOCUMENT_URL = "/docs/llamaindex";
@@ -10,7 +10,7 @@ export async function fetchContributors(
): Promise<Contributor[]> {
const headers = new Headers();
if (process.env.GITHUB_TOKEN)
headers.set('Authorization', `Bearer ${process.env.GITHUB_TOKEN}`);
headers.set("Authorization", `Bearer ${process.env.GITHUB_TOKEN}`);
const response = await fetch(
`https://api.github.com/repos/${repoOwner}/${repoName}/contributors?per_page=50`,
@@ -26,6 +26,6 @@ export async function fetchContributors(
const contributors = (await response.json()) as Contributor[];
return contributors
.filter((contributor) => !contributor.login.endsWith('[bot]'))
.filter((contributor) => !contributor.login.endsWith("[bot]"))
.sort((a, b) => b.contributions - a.contributions);
}
+30
View File
@@ -0,0 +1,30 @@
import { source } from "@/libs/source";
import { createMetadataImage } from "fumadocs-core/server";
import { Metadata } from "next";
export const metadataImage = createMetadataImage({
source,
imageRoute: "og",
});
export function createMetadata(override: Metadata): Metadata {
return {
...override,
openGraph: {
title: override.title ?? undefined,
description: override.description ?? undefined,
url: "https://ts.llamaindex.ai/",
images: "/og.png",
siteName: "LlamaIndex.TS",
...override.openGraph,
},
twitter: {
card: "summary_large_image",
creator: "@llama_index",
title: override.title ?? undefined,
description: override.description ?? undefined,
images: "/og.png",
...override.twitter,
},
};
}
@@ -1,9 +1,9 @@
import { docs } from '@/.source';
import { loader } from 'fumadocs-core/source';
import { docs } from "@/.source";
import { loader } from "fumadocs-core/source";
import { createOpenAPI } from "fumadocs-openapi/server";
export const source = loader({
baseUrl: '/docs',
baseUrl: "/docs",
source: docs.toFumadocsSource(),
});
+6
View File
@@ -0,0 +1,6 @@
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
+1 -1
View File
@@ -11,7 +11,7 @@
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20241112.0",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"wrangler": "^3.89.0"
},
"dependencies": {
@@ -1,5 +1,11 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.174
### Patch Changes
- llamaindex@0.11.13
## 0.0.173
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.173",
"version": "0.0.174",
"type": "module",
"private": true,
"scripts": {
@@ -16,7 +16,7 @@
"@cloudflare/workers-types": "^4.20241112.0",
"@vitest/runner": "2.1.5",
"@vitest/snapshot": "2.1.5",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vitest": "2.1.5",
"wrangler": "^3.87.0"
},
@@ -1,5 +1,12 @@
# @llamaindex/llama-parse-browser-test
## 0.0.73
### Patch Changes
- Updated dependencies [47a7555]
- @llamaindex/cloud@4.0.18
## 0.0.72
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.72",
"version": "0.0.73",
"type": "module",
"scripts": {
"dev": "vite",
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"devDependencies": {
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vite": "^6.3.3",
"vite-plugin-wasm": "^3.4.1"
},
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/next-agent-test
## 0.1.174
### Patch Changes
- llamaindex@0.11.13
## 0.1.173
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.173",
"version": "0.1.174",
"private": true,
"scripts": {
"dev": "next dev",
@@ -8,9 +8,9 @@
"start": "next start"
},
"dependencies": {
"ai": "^4.0.0",
"ai": "^4.3.17",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.3.3",
"react": "19.0.0",
"react-dom": "19.0.0"
},
@@ -20,6 +20,6 @@
"@types/react-dom": "^19.0.4",
"eslint": "9.16.0",
"eslint-config-next": "15.1.0",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,11 @@
# test-edge-runtime
## 0.1.173
### Patch Changes
- llamaindex@0.11.13
## 0.1.172
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.172",
"version": "0.1.173",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,7 +9,7 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.3.3",
"react": "^19.1.0",
"react-dom": "^19.1.0"
},
@@ -17,6 +17,6 @@
"@types/node": "^22.9.0",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,11 @@
# @llamaindex/next-node-runtime
## 0.1.42
### Patch Changes
- llamaindex@0.11.13
## 0.1.41
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.1.41",
"version": "0.1.42",
"private": true,
"scripts": {
"dev": "next dev",
@@ -11,7 +11,7 @@
"@llamaindex/huggingface": "workspace:*",
"@llamaindex/readers": "workspace:*",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.3.3",
"react": "19.0.0",
"react-dom": "19.0.0"
},
@@ -21,6 +21,6 @@
"@types/react-dom": "^19.0.4",
"eslint": "9.16.0",
"eslint-config-next": "15.1.0",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
@@ -1,5 +1,11 @@
# vite-import-llamaindex
## 0.0.40
### Patch Changes
- llamaindex@0.11.13
## 0.0.39
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "vite-import-llamaindex",
"private": true,
"version": "0.0.39",
"version": "0.0.40",
"type": "module",
"scripts": {
"build": "vite build",
@@ -15,7 +15,7 @@
"devDependencies": {
"@size-limit/preset-big-lib": "^11.1.6",
"size-limit": "^11.1.6",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vite": "^6.3.3"
},
"dependencies": {
@@ -1,9 +1 @@
{
"root": [
"./src/main.ts",
"./vite.config.ts",
"./tsconfig.json"
],
"errors": true,
"version": "5.7.3"
}
{"root":["./src/main.ts","./vite.config.ts"],"version":"5.7.3"}
@@ -1,5 +1,11 @@
# @llamaindex/waku-query-engine-test
## 0.0.174
### Patch Changes
- llamaindex@0.11.13
## 0.0.173
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.173",
"version": "0.0.174",
"type": "module",
"private": true,
"scripts": {
@@ -22,6 +22,6 @@
"@types/react-dom": "19.0.4",
"rollup": "4.38.0",
"tailwindcss": "^4.1.4",
"typescript": "5.7.3"
"typescript": "5.8.3"
}
}
+1 -1
View File
@@ -27,6 +27,6 @@
"pg": "^8.12.0",
"pgvector": "0.2.0",
"tsx": "^4.19.3",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}
+10
View File
@@ -1,5 +1,15 @@
# examples
## 0.3.27
### Patch Changes
- Updated dependencies [229cdeb]
- Updated dependencies [47a7555]
- @llamaindex/groq@0.0.79
- @llamaindex/cloud@4.0.18
- llamaindex@0.11.13
## 0.3.26
### Patch Changes
+31 -7
View File
@@ -1,9 +1,10 @@
# LlamaIndexTS Examples
Before running any of the code examples,
make sure you have basic knowledge of the [LlamaIndexTS](https://ts.llamaindex.ai/).
This package contains several examples of how to use LlamaIndexTS.
## Usage
Most examples will use OpenAI by default, so be sure to set your API key.
## Running Examples
```shell
# export your API key
@@ -12,8 +13,31 @@ export OPENAI_API_KEY="sk-..."
npx tsx ./rag/chatEngine.ts
```
## Build your own RAG app
## Recommended Starter Examples
```shell
npx create llama
```
Agents:
- [Basic OpenAI Agent with Tools](./agents/agent/openai.ts)
- [Agent with MCP Tools](./agents/agent/mcp-tools.ts)
- [Customizing Memory](./agents/memory/agent-memory.ts)
Workflows:
- [Workflow basics](./agents/workflow/joke.ts)
- [Find more workflow examples in the `workflows-ts` repo!](https://github.com/run-llama/workflows-ts)
Indexing, Retrieval, and Querying:
- [Basic Vector Indexing + Query Engine](./index/vectorIndex.ts)
- [Agent + Query Engine Tool](./agents/agent/query-tool.ts)
Multimodal:
- [Multimodal RAG](./multimodal/rag.ts)
- [Multimodal Chat](./multimodal/context.ts)
Some more general folders that might be useful to explore:
- [storage](./storage/): Examples with various vector stores
- [readers](./readers/): Examples of how to use the various readers
- [models](./models/): Examples of how to use the various LLMs and embedding models from many providers
+2 -5
View File
@@ -1,9 +1,6 @@
import { openai } from "@llamaindex/openai";
import {
createStatefulMiddleware,
createWorkflow,
workflowEvent,
} from "@llamaindex/workflow";
import { createWorkflow, workflowEvent } from "@llamaindex/workflow-core";
import { createStatefulMiddleware } from "@llamaindex/workflow-core/middleware/state";
// Create LLM instance
const llm = openai({ model: "gpt-4.1-mini" });
+9 -8
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/examples",
"version": "0.3.26",
"version": "0.3.27",
"private": true,
"scripts": {
"lint": "eslint .",
@@ -18,7 +18,7 @@
"@llamaindex/bm25-retriever": "^0.0.2",
"@llamaindex/chroma": "^0.0.27",
"@llamaindex/clip": "^0.0.63",
"@llamaindex/cloud": "^4.0.17",
"@llamaindex/cloud": "^4.0.18",
"@llamaindex/cohere": "^0.0.27",
"@llamaindex/core": "^0.6.13",
"@llamaindex/deepinfra": "^0.0.63",
@@ -29,7 +29,7 @@
"@llamaindex/firestore": "^1.0.20",
"@llamaindex/fireworks": "^0.0.23",
"@llamaindex/google": "^0.3.12",
"@llamaindex/groq": "^0.0.78",
"@llamaindex/groq": "^0.0.79",
"@llamaindex/huggingface": "^0.1.17",
"@llamaindex/jinaai": "^0.0.23",
"@llamaindex/milvus": "^0.1.22",
@@ -56,25 +56,26 @@
"@llamaindex/voyage-ai": "^1.0.19",
"@llamaindex/weaviate": "^0.0.28",
"@llamaindex/workflow": "^1.1.13",
"@llamaindex/xai": "workspace:^0.0.10",
"@llamaindex/workflow-core": "^1.0.0",
"@llamaindex/xai": "^0.0.10",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
"ai": "^4.0.0",
"ai": "^4.3.17",
"ajv": "^8.17.1",
"commander": "^12.1.0",
"dotenv": "^16.4.5",
"js-tiktoken": "^1.0.14",
"llamaindex": "^0.11.12",
"llamaindex": "^0.11.13",
"mongodb": "6.7.0",
"postgres": "^3.4.4",
"wikipedia": "^2.1.2",
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.3",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
},
"stackblitz": {
"startCommand": "npm start"
+2 -2
View File
@@ -21,13 +21,13 @@
},
"dependencies": {
"@llamaindex/cloud": "workspace:* || ^2.0.24",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"@llamaindex/excel": "workspace:*",
"@llamaindex/readers": "workspace:* || ^1.0.25",
"llamaindex": "workspace:* || ^0.8.37"
},
"devDependencies": {
"@types/node": "^22.9.0",
"tsx": "^4.19.3",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
}
}
+10114
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -4,7 +4,7 @@
"scripts": {
"clean": "find . -type d \\( -name .turbo -o -name node_modules -o -name dist -o -name .next -o -name lib \\) -exec rm -rf {} +",
"build": "turbo run build --filter=\"./packages/*\" --filter=\"./packages/providers/**\"",
"dev": "turbo run dev --filter=\"./packages/*\" --filter=\"./packages/providers/**\"",
"dev": "turbo run dev --filter=\"./packages/*\" --filter=\"./packages/providers/**\" --concurrency=100",
"format": "prettier --ignore-unknown --cache --check .",
"format:write": "prettier --ignore-unknown --write .",
"lint": "turbo run lint",
@@ -37,7 +37,7 @@
"prettier-plugin-organize-imports": "^4.1.0",
"prettier-plugin-tailwindcss": "^0.6.11",
"turbo": "^2.4.4",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"typescript-eslint": "^8.18.0",
"vitest": "^3.1.1"
},
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/autotool
## 8.0.13
### Patch Changes
- llamaindex@0.11.13
## 8.0.12
### Patch Changes
@@ -1,5 +1,12 @@
# @llamaindex/autotool-01-node-example
## 0.0.121
### Patch Changes
- llamaindex@0.11.13
- @llamaindex/autotool@8.0.13
## 0.0.120
### Patch Changes
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.120"
"version": "0.0.121"
}
+3 -3
View File
@@ -6,7 +6,7 @@
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
"directory": "packages/autotool"
},
"version": "8.0.12",
"version": "8.0.13",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -76,10 +76,10 @@
"@types/json-schema": "^7.0.15",
"@types/node": "^22.9.0",
"llamaindex": "workspace:*",
"next": "^15.3.0",
"next": "^15.3.3",
"rollup": "^4.28.1",
"tsx": "^4.19.3",
"typescript": "^5.7.3",
"typescript": "^5.8.3",
"vitest": "^2.1.5",
"webpack": "^5.97.1"
}
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/cloud
## 4.0.18
### Patch Changes
- 47a7555: chore: bump sdk version
## 4.0.17
### Patch Changes
+2534 -114
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "4.0.17",
"version": "4.0.18",
"type": "module",
"license": "MIT",
"scripts": {
@@ -79,6 +79,6 @@
},
"dependencies": {
"p-retry": "^6.2.1",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}
+16
View File
@@ -171,6 +171,14 @@ export class LlamaParseReader extends FileReader {
replace_failed_page_with_error_message_suffix?: string | undefined;
save_images?: boolean | undefined;
preset?: string | undefined;
high_res_ocr?: boolean | undefined;
outlined_table_extraction?: boolean | undefined;
hide_headers?: boolean | undefined;
hide_footers?: boolean | undefined;
page_header_prefix?: string | undefined;
page_header_suffix?: string | undefined;
page_footer_prefix?: string | undefined;
page_footer_suffix?: string | undefined;
constructor(
params: Partial<Omit<LlamaParseReader, "language" | "apiKey">> & {
@@ -352,6 +360,14 @@ export class LlamaParseReader extends FileReader {
this.replace_failed_page_with_error_message_suffix,
save_images: this.save_images,
preset: this.preset,
high_res_ocr: this.high_res_ocr,
outlined_table_extraction: this.outlined_table_extraction,
hide_headers: this.hide_headers,
hide_footers: this.hide_footers,
page_header_prefix: this.page_header_prefix,
page_header_suffix: this.page_header_suffix,
page_footer_prefix: this.page_footer_prefix,
page_footer_suffix: this.page_footer_suffix,
} satisfies {
[Key in keyof BodyUploadFileApiParsingUploadPost]-?:
| BodyUploadFileApiParsingUploadPost[Key]
-2
View File
@@ -434,7 +434,6 @@
### Patch Changes
- 8b7fdba: refactor: move chat engine & retriever into core.
- `chatHistory` in BaseChatEngine now returns `ChatMessage[] | Promise<ChatMessage[]>`, instead of `BaseMemory`
- update `retrieve-end` type
@@ -460,7 +459,6 @@
### Patch Changes
- 2cd1383: refactor: align `response-synthesizers` & `chat-engine` module
- builtin event system
- correct class extends
- aligin APIs, naming with llama-index python
+1 -1
View File
@@ -312,7 +312,7 @@
"@llamaindex/env": "workspace:*",
"@types/node": "^22.9.0",
"magic-bytes.js": "^1.10.0",
"zod": "^3.25.67",
"zod": "^3.25.76",
"zod-to-json-schema": "^3.24.6"
}
}
+12 -1
View File
@@ -79,7 +79,18 @@ export function createMemory<TMessageOptions extends object = object>(
}
}
}
return new Memory<Record<string, never>, TMessageOptions>(messages, options);
// Determine the correct options to pass to Memory
const resolvedOptions: MemoryOptions<TMessageOptions> = Array.isArray(
messagesOrOptions,
)
? options
: (messagesOrOptions as MemoryOptions<TMessageOptions>);
return new Memory<Record<string, never>, TMessageOptions>(
messages,
resolvedOptions,
);
}
/**
+44 -1
View File
@@ -1,6 +1,6 @@
import { Settings } from "@llamaindex/core/global";
import type { ChatMessage, LLM } from "@llamaindex/core/llms";
import { createMemory, Memory } from "@llamaindex/core/memory";
import { createMemory, Memory, staticBlock } from "@llamaindex/core/memory";
import { MockLLM } from "@llamaindex/core/utils";
import type { Tokenizer } from "@llamaindex/env/tokenizers";
import {
@@ -392,4 +392,47 @@ describe("Memory", () => {
expect(messages[0]?.role).toBe("user"); // data role should be mapped to user
});
});
describe("memoryBlocks initialization", () => {
test("should include static block content in getLLM result", async () => {
const STATIC_CONTENT = "You are speaking with a helpful assistant.";
const block = staticBlock({
content: STATIC_CONTENT,
messageRole: "system",
});
const memoryWithBlock = createMemory({ memoryBlocks: [block] });
// Fetch messages via getLLM static block (priority 0) should always be present
const messages = await memoryWithBlock.getLLM();
// There should be exactly one message (the static block) when no other messages are added
expect(messages).toHaveLength(1);
expect(messages[0]?.content).toBe(STATIC_CONTENT);
expect(messages[0]?.role).toBe("system");
});
test("should retain static block alongside dynamic messages", async () => {
const STATIC_CONTENT = "Always respond in pirate speak.";
const block = staticBlock({
content: STATIC_CONTENT,
messageRole: "system",
});
const memoryWithBlock = createMemory({ memoryBlocks: [block] });
// Add a regular user message
await memoryWithBlock.add({ role: "user", content: "Hello there!" });
const messages = await memoryWithBlock.getLLM();
// Static block + user message
expect(messages).toHaveLength(2);
const contents = messages.map((m) => m.content);
expect(contents).toEqual(
expect.arrayContaining([STATIC_CONTENT, "Hello there!"]),
);
});
});
});
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/experimental
## 0.0.190
### Patch Changes
- llamaindex@0.11.13
## 0.0.189
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.189",
"version": "0.0.190",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
+7 -1
View File
@@ -1,5 +1,12 @@
# llamaindex
## 0.11.13
### Patch Changes
- Updated dependencies [47a7555]
- @llamaindex/cloud@4.0.18
## 0.11.12
### Patch Changes
@@ -1470,7 +1477,6 @@
### Patch Changes
- e9714db: feat: update `PGVectorStore`
- move constructor parameter `config.user` | `config.database` | `config.password` | `config.connectionString` into `config.clientConfig`
- if you pass `pg.Client` or `pg.Pool` instance to `PGVectorStore`, move it to `config.client`, setting `config.shouldConnect` to false if it's already connected
- default value of `PGVectorStore.collection` is now `"data"` instead of `""` (empty string)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.11.12",
"version": "0.11.13",
"license": "MIT",
"type": "module",
"keywords": [
+6
View File
@@ -1,5 +1,11 @@
# @llamaindex/groq
## 0.0.79
### Patch Changes
- 229cdeb: feat: add toolcall support to groq models
## 0.0.78
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/groq",
"description": "Groq Adapter for LlamaIndex",
"version": "0.0.78",
"version": "0.0.79",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+16 -1
View File
@@ -2,6 +2,17 @@ import { getEnv } from "@llamaindex/env";
import { OpenAI } from "@llamaindex/openai";
import GroqSDK, { type ClientOptions } from "groq-sdk";
// Models that support tool/function calling
const TOOL_CALLING_MODELS = [
"gemma2-9b-it",
"llama-3.1-8b-instant",
"llama-3.3-70b-versatile",
"deepseek-r1-distill-llama-70b",
"qwen-qwq-32b",
"meta-llama/llama-4-scout-17b-16e-instruct",
"meta-llama/llama-4-maverick-17b-128e-instruct",
] as const;
export class Groq extends OpenAI {
constructor(
init?: Omit<Partial<OpenAI>, "session"> & {
@@ -11,7 +22,7 @@ export class Groq extends OpenAI {
const {
apiKey = getEnv("GROQ_API_KEY"),
additionalSessionOptions = {},
model = "mixtral-8x7b-32768",
model = "llama-3.3-70b-versatile",
...rest
} = init ?? {};
@@ -28,6 +39,10 @@ export class Groq extends OpenAI {
...init?.additionalSessionOptions,
}) as never;
}
get supportToolCall() {
return (TOOL_CALLING_MODELS as readonly string[]).includes(this.model);
}
}
/**
+1 -1
View File
@@ -33,7 +33,7 @@
"devDependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
+4 -3
View File
@@ -39,11 +39,12 @@
"test": "vitest run"
},
"devDependencies": {
"vitest": "^2.1.5",
"@llamaindex/core": "workspace:*"
"@llamaindex/core": "workspace:*",
"ai": "^4.3.17",
"vitest": "^2.1.5"
},
"dependencies": {
"zod": "^3.25.67"
"zod": "^3.25.76"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
+3 -3
View File
@@ -1,7 +1,7 @@
import { Settings } from "@llamaindex/core/global";
import type { BaseQueryEngine } from "@llamaindex/core/query-engine";
import { EngineResponse } from "@llamaindex/core/schema";
import { type CoreTool, type LanguageModelV1, tool } from "ai";
import { type LanguageModelV1, type Tool, tool } from "ai";
import { z } from "zod";
import { VercelLLM } from "./llm";
@@ -23,9 +23,9 @@ export function llamaindex({
options?: {
fields?: ResponseField[];
};
}): CoreTool {
}): Tool {
const llm = new VercelLLM({ model });
return Settings.withLLM<CoreTool>(llm, () => {
return Settings.withLLM<Tool>(llm, () => {
const queryEngine = index.asQueryEngine();
return tool({
description: description ?? "Get information about your documents.",
+5 -5
View File
@@ -32,13 +32,13 @@
"test:watch": "vitest watch"
},
"devDependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"@modelcontextprotocol/server-filesystem": "^2025.7.1",
"@types/node": "^22.9.0",
"@types/papaparse": "^5.3.15",
"vitest": "^2.1.5",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"ajv": "^8.12.0"
"ajv": "^8.12.0",
"vitest": "^2.1.5"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
@@ -54,6 +54,6 @@
"marked": "^14.1.2",
"papaparse": "^5.4.1",
"wikipedia": "^2.1.2",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}
+1 -1
View File
@@ -11,7 +11,7 @@
"@swc/cli": "^0.5.0",
"@swc/core": "^1.9.2",
"assemblyscript": "^0.27.31",
"typescript": "^5.7.3"
"typescript": "^5.8.3"
},
"engines": {
"node": ">=20.0.0"
+960 -1121
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -16,10 +16,10 @@
"test:node": "pnpm run build:node && node --test dist/node/index.e2e.js"
},
"devDependencies": {
"@llamaindex/openai": "workspace:*",
"@llamaindex/workflow": "workspace:*",
"@types/node": "^22.9.0",
"llamaindex": "workspace:*",
"@llamaindex/workflow": "workspace:*",
"@llamaindex/openai": "workspace:*",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}
+8
View File
@@ -1,5 +1,13 @@
# @llamaindex/unit-test
## 0.1.42
### Patch Changes
- Updated dependencies [47a7555]
- @llamaindex/cloud@4.0.18
- llamaindex@0.11.13
## 0.1.41
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/unit-test",
"private": true,
"version": "0.1.41",
"version": "0.1.42",
"type": "module",
"scripts": {
"test": "vitest run"
@@ -27,6 +27,6 @@
"tree-sitter": "^0.22.1",
"tree-sitter-javascript": "^0.23.1",
"tree-sitter-typescript": "^0.23.2",
"zod": "^3.25.67"
"zod": "^3.25.76"
}
}