feat: flag to enable useChatWorkflow (#697)

* feat: flag to enable useChatWorkflow

* add USE_CHAT_WORKFLOW config

* require CHAT_DEPLOYMENT and CHAT_WORKFLOW

* handleError

* onError

* revert error

* skip all api handling if in proxy mode

* revert adding option

* modify config

* not require workflow factory

* llamadeploy config

* fix proxy

* fix: serialize in config.js

* try modify next config

* fix: need basePath for other nextjs endpoints

* add condition

* use constants as central place to modify basePath

* add comment

* update constants

* check workflow factory

* Create brown-readers-whisper.md

* bump chat-ui

* fix lint
This commit is contained in:
Thuc Pham
2025-07-01 14:38:30 +07:00
committed by GitHub
parent 952b5b4908
commit 52cc37f206
11 changed files with 156 additions and 68 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@llamaindex/server": patch
---
feat: flag to enable useChatWorkflow
@@ -1,13 +1,14 @@
"use client";
import { ChatMessage } from "@llamaindex/chat-ui";
import { LLAMA_LOGO_URL } from "../../../constants";
export function ChatMessageAvatar() {
return (
<ChatMessage.Avatar>
<img
className="border-1 rounded-full border-[#e711dd]"
src="/llama.png"
src={LLAMA_LOGO_URL}
alt="Llama Logo"
/>
</ChatMessage.Avatar>
@@ -1,6 +1,6 @@
"use client";
import { ChatSection as ChatUI } from "@llamaindex/chat-ui";
import { ChatSection as ChatUI, useChatWorkflow } from "@llamaindex/chat-ui";
import { useChat } from "ai/react";
import { useEffect, useMemo, useState } from "react";
import { getConfig } from "../lib/utils";
@@ -16,20 +16,37 @@ import { DevModePanel } from "./dev-mode-panel";
import { ChatLayout } from "./layout";
export default function ChatSection() {
const handler = useChat({
const deployment = getConfig("DEPLOYMENT") || "";
const workflow = getConfig("WORKFLOW") || "";
const shouldUseChatWorkflow = deployment && workflow;
const handleError = (error: unknown) => {
if (!(error instanceof Error)) throw error;
let errorMessage: string;
try {
errorMessage = JSON.parse(error.message).detail;
} catch (e) {
errorMessage = error.message;
}
alert(errorMessage);
};
const useChatHandler = useChat({
api: getConfig("CHAT_API") || "/api/chat",
onError: (error: unknown) => {
if (!(error instanceof Error)) throw error;
let errorMessage: string;
try {
errorMessage = JSON.parse(error.message).detail;
} catch (e) {
errorMessage = error.message;
}
alert(errorMessage);
},
onError: handleError,
experimental_throttle: 100,
});
const useChatWorkflowHandler = useChatWorkflow({
deployment,
workflow,
onError: handleError,
});
const handler = shouldUseChatWorkflow
? useChatWorkflowHandler
: useChatHandler;
return (
<>
<ChatLayout>
@@ -1,6 +1,7 @@
"use client";
import { Sparkles, Star } from "lucide-react";
import { LLAMA_LOGO_URL } from "../../../../constants";
export function DefaultHeader() {
return (
@@ -21,7 +22,7 @@ export function DefaultHeader() {
</a>
<img
className="h-[24px] w-[24px] rounded-sm"
src="/llama.png"
src={LLAMA_LOGO_URL}
alt="Llama Logo"
/>
</div>
+11
View File
@@ -0,0 +1,11 @@
export const BASE_PATH = "";
const DEFAULT_LLAMA_LOGO_URL = "/llama.png";
export const LLAMA_LOGO_URL = BASE_PATH
? `${BASE_PATH}/llama.png`
: DEFAULT_LLAMA_LOGO_URL;
const DEFAULT_SCRIPT_PATH = "./config.js";
export const SCRIPT_PATH = BASE_PATH
? `${BASE_PATH}/config.js`
: DEFAULT_SCRIPT_PATH;
+2 -1
View File
@@ -4,6 +4,7 @@ import { Inter } from "next/font/google";
import "@llamaindex/chat-ui/styles/editor.css";
import "@llamaindex/chat-ui/styles/markdown.css";
import "@llamaindex/chat-ui/styles/pdf.css";
import { SCRIPT_PATH } from "./constants";
import "./globals.css";
const inter = Inter({ subsets: ["latin"] });
@@ -21,7 +22,7 @@ export default function RootLayout({
return (
<html lang="en">
<body className={inter.className}>{children}</body>
<script async src="./config.js"></script>
<script async src={SCRIPT_PATH}></script>
</html>
);
}
+1 -1
View File
@@ -68,7 +68,7 @@
"@babel/traverse": "^7.27.0",
"@babel/types": "^7.27.0",
"@hookform/resolvers": "^5.0.1",
"@llamaindex/chat-ui": "0.5.6",
"@llamaindex/chat-ui": "0.5.12",
"@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-alert-dialog": "^1.1.7",
"@radix-ui/react-aspect-ratio": "^1.1.3",
+1 -1
View File
@@ -41,7 +41,7 @@
"@babel/traverse": "^7.27.0",
"@babel/types": "^7.27.0",
"@hookform/resolvers": "^5.0.1",
"@llamaindex/chat-ui": "0.5.6",
"@llamaindex/chat-ui": "0.5.12",
"@llamaindex/env": "~0.1.30",
"@llamaindex/openai": "~0.4.0",
"@llamaindex/readers": "~3.1.4",
+68 -7
View File
@@ -7,19 +7,23 @@ import path from "path";
import { parse } from "url";
import { promisify } from "util";
import { handleChat } from "./handlers/chat";
import type { LlamaIndexServerOptions } from "./types";
import type { LlamaDeployConfig, LlamaIndexServerOptions } from "./types";
const nextDir = path.join(__dirname, "..", "server");
const configFile = path.join(__dirname, "..", "server", "public", "config.js");
const nextConfigFile = path.join(nextDir, "next.config.ts");
const layoutFile = path.join(nextDir, "app", "layout.tsx");
const constantsFile = path.join(nextDir, "app", "constants.ts");
const dev = process.env.NODE_ENV !== "production";
export class LlamaIndexServer {
port: number;
app: ReturnType<typeof next>;
workflowFactory: () => Promise<Workflow> | Workflow;
workflowFactory?: (() => Promise<Workflow> | Workflow) | undefined;
componentsDir?: string | undefined;
layoutDir: string;
suggestNextQuestions: boolean;
llamaDeploy?: LlamaDeployConfig | undefined;
constructor(options: LlamaIndexServerOptions) {
const { workflow, suggestNextQuestions, ...nextAppOptions } = options;
@@ -29,25 +33,76 @@ export class LlamaIndexServer {
this.componentsDir = options.uiConfig?.componentsDir;
this.layoutDir = options.uiConfig?.layoutDir ?? "layout";
this.suggestNextQuestions = suggestNextQuestions ?? true;
this.llamaDeploy = options.uiConfig?.llamaDeploy;
if (this.llamaDeploy) {
if (!this.llamaDeploy.deployment || !this.llamaDeploy.workflow) {
throw new Error(
"LlamaDeploy requires deployment and workflow to be set",
);
}
if (options.uiConfig?.devMode) {
// workflow file is in llama-deploy src, so we should disable devmode
throw new Error("Devmode is not supported when enabling LlamaDeploy");
}
} else {
// if llamaDeploy is not set but workflowFactory is not defined, we should throw an error
if (!this.workflowFactory) {
throw new Error("workflowFactory is required for chat api to work");
}
}
if (this.componentsDir) {
this.createComponentsDir(this.componentsDir);
}
this.modifyConfig(options);
this.modifySourcesForLlamaDeploy();
}
private modifySourcesForLlamaDeploy() {
if (!this.llamaDeploy) return;
const deployment = this.llamaDeploy.deployment;
const basePath = `/deployments/${deployment}/ui`;
// create next.config.ts with basePath
const nextConfigContent = `
export default {
basePath: '${basePath}',
}
`;
fs.writeFileSync(nextConfigFile, nextConfigContent);
// some UI code use absolute paths, such as /llama.png, /config.js, etc.
// so that we need to update basePath for them
const constantsContent = fs.readFileSync(constantsFile, "utf8");
const newConstantsContent = constantsContent.replace(
'export const BASE_PATH = ""',
`export const BASE_PATH = "${basePath}"`,
);
fs.writeFileSync(constantsFile, newConstantsContent, "utf8");
}
private modifyConfig(options: LlamaIndexServerOptions) {
const { uiConfig } = options;
const basePath = this.llamaDeploy
? `/deployments/${this.llamaDeploy.deployment}/ui`
: "";
const starterQuestions = uiConfig?.starterQuestions ?? [];
const llamaCloudApi =
uiConfig?.llamaCloudIndexSelector && getEnv("LLAMA_CLOUD_API_KEY")
? "/api/chat/config/llamacloud"
? `${basePath}/api/chat/config/llamacloud`
: undefined;
const componentsApi = this.componentsDir ? "/api/components" : undefined;
const layoutApi = this.layoutDir ? "/api/layout" : undefined;
const componentsApi = this.componentsDir
? `${basePath}/api/components`
: undefined;
const layoutApi = this.layoutDir ? `${basePath}/api/layout` : undefined;
const devMode = uiConfig?.devMode ?? false;
const enableFileUpload = uiConfig?.enableFileUpload ?? false;
const uploadApi = enableFileUpload ? `${basePath}/api/files` : undefined;
// content in javascript format
const content = `
window.LLAMAINDEX = {
@@ -58,7 +113,9 @@ export class LlamaIndexServer {
LAYOUT_API: ${JSON.stringify(layoutApi)},
DEV_MODE: ${JSON.stringify(devMode)},
SUGGEST_NEXT_QUESTIONS: ${JSON.stringify(this.suggestNextQuestions)},
UPLOAD_API: ${JSON.stringify(enableFileUpload ? "/api/files" : undefined)}
UPLOAD_API: ${JSON.stringify(uploadApi)},
DEPLOYMENT: ${JSON.stringify(this.llamaDeploy?.deployment)},
WORKFLOW: ${JSON.stringify(this.llamaDeploy?.workflow)}
}
`;
fs.writeFileSync(configFile, content);
@@ -79,7 +136,11 @@ export class LlamaIndexServer {
const pathname = parsedUrl.pathname;
const query = parsedUrl.query;
if (pathname === "/api/chat" && req.method === "POST") {
if (
pathname === "/api/chat" &&
req.method === "POST" &&
this.workflowFactory
) {
// because of https://github.com/vercel/next.js/discussions/79402 we can't use route.ts here, so we need to call this custom route
// when calling `pnpm eject`, the user will get an equivalent route at [path to chat route.ts]
// make sure to keep its semantic in sync with handleChat
+7 -1
View File
@@ -12,6 +12,11 @@ export type WorkflowFactory = (
export type NextAppOptions = Parameters<typeof next>[0];
export type LlamaDeployConfig = {
deployment: string;
workflow: string;
};
export type UIConfig = {
starterQuestions?: string[];
componentsDir?: string;
@@ -19,10 +24,11 @@ export type UIConfig = {
llamaCloudIndexSelector?: boolean;
devMode?: boolean;
enableFileUpload?: boolean;
llamaDeploy?: LlamaDeployConfig;
};
export type LlamaIndexServerOptions = NextAppOptions & {
workflow: WorkflowFactory;
workflow?: WorkflowFactory;
uiConfig?: UIConfig;
suggestNextQuestions?: boolean;
};
+28 -43
View File
@@ -187,14 +187,14 @@ importers:
specifier: 0.3.25
version: 0.3.25
'@llamaindex/chat-ui':
specifier: 0.5.6
version: 0.5.6(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.1)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1)(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(codemirror@6.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.27)
specifier: 0.5.12
version: 0.5.12(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.1)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1)(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(codemirror@6.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.27)
'@llamaindex/env':
specifier: ~0.1.30
version: 0.1.30
'@llamaindex/workflow':
specifier: ~1.1.8
version: 1.1.8(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
version: 1.1.8(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
'@radix-ui/react-accordion':
specifier: ^1.2.3
version: 1.2.8(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -348,7 +348,7 @@ importers:
version: 7.20.7
llamaindex:
specifier: ~0.11.0
version: 0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.24.3)
version: 0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.24.3)
postcss:
specifier: ^8.5.3
version: 8.5.3
@@ -387,7 +387,7 @@ importers:
version: 16.5.0
llamaindex:
specifier: ~0.11.0
version: 0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.25.13)
version: 0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.25.13)
zod:
specifier: ^3.24.2
version: 3.25.13
@@ -1500,8 +1500,8 @@ packages:
zod:
optional: true
'@llamaindex/chat-ui@0.5.6':
resolution: {integrity: sha512-52JZiDjHOeJpHo8MB5cOR4433R7OWdaDHAZbgEX4K1TROpgUSLfCHsmiqygTXBdmM0D969k9n8PVFhsWeNX6CQ==}
'@llamaindex/chat-ui@0.5.12':
resolution: {integrity: sha512-Gi9MDkIakTf1S3mpeOA7vzJtBDUBgD5bcQ6KiKsoEYiEVPtUCeEcMoepTU3KoCssaGe2cvjR4tN6dnaUsiEHWQ==}
peerDependencies:
react: ^18.2.0 || ^19.0.0 || ^19.0.0-rc
@@ -1526,6 +1526,9 @@ packages:
gpt-tokenizer:
optional: true
'@llamaindex/llama-deploy@0.0.2':
resolution: {integrity: sha512-Vh41PKVtgaNtiyXKwQEDteS4S7Bt0mS8a44OmqRE8bIGeBwQ3GRZExMXTeERuJH4va6UO/2KzHU6u6m6kSeAvg==}
'@llamaindex/node-parser@2.0.6':
resolution: {integrity: sha512-8vJ7hsh1FKfAfO90nNe/G+/E2hM31dT/+1+0cPpZp02Ez98Jhwj+vTcCRlvyZznCn6DzHNBuw+uP1wKCqylSnQ==}
peerDependencies:
@@ -1603,10 +1606,6 @@ packages:
react: '>= 18 || >= 19'
react-dom: '>= 18 || >= 19'
'@modelcontextprotocol/sdk@1.12.1':
resolution: {integrity: sha512-KG1CZhZfWg+u8pxeM/mByJDScJSrjjxLc8fwQqbsS8xCjBmQfMNEBTotYdNanKekepnfRI85GtgQlctLFpcYPw==}
engines: {node: '>=18'}
'@modelcontextprotocol/sdk@1.13.2':
resolution: {integrity: sha512-Vx7qOcmoKkR3qhaQ9qf3GxiVKCEu+zfJddHv6x3dY/9P6+uIwJnmuAur5aB+4FDXf41rRrDnOEGkviX5oYZ67w==}
engines: {node: '>=18'}
@@ -8533,26 +8532,27 @@ snapshots:
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)':
'@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)':
optionalDependencies:
'@modelcontextprotocol/sdk': 1.12.1
'@modelcontextprotocol/sdk': 1.13.2
next: 15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
p-retry: 6.2.1
zod: 3.24.3
'@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13)':
'@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13)':
optionalDependencies:
'@modelcontextprotocol/sdk': 1.12.1
'@modelcontextprotocol/sdk': 1.13.2
next: 15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
p-retry: 6.2.1
zod: 3.25.13
'@llamaindex/chat-ui@0.5.6(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.1)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1)(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(codemirror@6.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.27)':
'@llamaindex/chat-ui@0.5.12(@babel/runtime@7.27.0)(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.1)(@codemirror/lint@6.8.5)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.37.1)(@lezer/highlight@1.2.1)(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(codemirror@6.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.27)':
dependencies:
'@codemirror/lang-css': 6.3.1
'@codemirror/lang-html': 6.4.9
'@codemirror/lang-javascript': 6.2.4
'@codemirror/lang-python': 6.2.1
'@llamaindex/llama-deploy': 0.0.2
'@llamaindex/pdf-viewer': 1.3.0(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@mdxeditor/editor': 3.35.0(@codemirror/language@6.11.1)(@lezer/highlight@1.2.1)(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(yjs@13.6.27)
'@radix-ui/react-accordion': 1.2.8(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -8599,17 +8599,17 @@ snapshots:
- supports-color
- yjs
'@llamaindex/cloud@4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)':
'@llamaindex/cloud@4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)':
dependencies:
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
'@llamaindex/core': 0.6.6
'@llamaindex/env': 0.1.30
p-retry: 6.2.1
zod: 3.25.13
'@llamaindex/cloud@4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)':
'@llamaindex/cloud@4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)':
dependencies:
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13)
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13)
'@llamaindex/core': 0.6.6
'@llamaindex/env': 0.1.30
p-retry: 6.2.1
@@ -8632,6 +8632,8 @@ snapshots:
js-tiktoken: 1.0.20
pathe: 1.1.2
'@llamaindex/llama-deploy@0.0.2': {}
'@llamaindex/node-parser@2.0.6(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)':
dependencies:
'@llamaindex/core': 0.6.6
@@ -8708,9 +8710,9 @@ snapshots:
'@llamaindex/env': 0.1.30
zod: 3.25.13
'@llamaindex/workflow@1.1.8(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)':
'@llamaindex/workflow@1.1.8(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)':
dependencies:
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
'@llama-flow/core': 0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3)
'@llamaindex/core': 0.6.6
'@llamaindex/env': 0.1.30
zod: 3.24.3
@@ -8826,23 +8828,6 @@ snapshots:
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
'@modelcontextprotocol/sdk@1.12.1':
dependencies:
ajv: 6.12.6
content-type: 1.0.5
cors: 2.8.5
cross-spawn: 7.0.6
eventsource: 3.0.7
express: 5.1.0
express-rate-limit: 7.5.0(express@5.1.0)
pkce-challenge: 5.0.0
raw-body: 3.0.0
zod: 3.25.13
zod-to-json-schema: 3.24.5(zod@3.25.13)
transitivePeerDependencies:
- supports-color
optional: true
'@modelcontextprotocol/sdk@1.13.2':
dependencies:
ajv: 6.12.6
@@ -12576,9 +12561,9 @@ snapshots:
rfdc: 1.4.1
wrap-ansi: 9.0.0
llamaindex@0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.24.3):
llamaindex@0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.24.3):
dependencies:
'@llamaindex/cloud': 4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)
'@llamaindex/cloud': 4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.24.3))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)
'@llamaindex/core': 0.6.6
'@llamaindex/env': 0.1.30
'@llamaindex/node-parser': 2.0.6(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)
@@ -12596,9 +12581,9 @@ snapshots:
- web-tree-sitter
- zod
llamaindex@0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.25.13):
llamaindex@0.11.1(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)(zod@3.25.13):
dependencies:
'@llamaindex/cloud': 4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.12.1)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)
'@llamaindex/cloud': 4.0.9(@llama-flow/core@0.4.4(@modelcontextprotocol/sdk@1.13.2)(next@15.3.1(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(p-retry@6.2.1)(zod@3.25.13))(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)
'@llamaindex/core': 0.6.6
'@llamaindex/env': 0.1.30
'@llamaindex/node-parser': 2.0.6(@llamaindex/core@0.6.6)(@llamaindex/env@0.1.30)(tree-sitter@0.22.4)(web-tree-sitter@0.24.7)