diff --git a/examples/agent/openai-task.ts b/examples/agent/openai-task.ts index 3a242c15dd3b676ad4827ce5f2fcc8942bfff215..22a602d9397e68dd14311a84262c4562f7ed321b 100644 --- a/examples/agent/openai-task.ts +++ b/examples/agent/openai-task.ts @@ -1,5 +1,4 @@ import { ChatResponseChunk, OpenAIAgent } from "llamaindex"; -import { ReadableStream } from "node:stream/web"; import { getCurrentIDTool, getUserInfoTool, diff --git a/examples/agent/react-task.ts b/examples/agent/react-task.ts index fdbdeec01b80c2c45d0a46c0d86707a79bcc64be..4c4835bc444736277485e96528ad61fc318d0e69 100644 --- a/examples/agent/react-task.ts +++ b/examples/agent/react-task.ts @@ -1,5 +1,4 @@ import { ChatResponseChunk, ReActAgent } from "llamaindex"; -import { ReadableStream } from "node:stream/web"; import { getCurrentIDTool, getUserInfoTool, diff --git a/examples/tsconfig.json b/examples/tsconfig.json index 600c6fe725b9bc913d22458ed62b6150d9753032..8dcc2b578f4d39fbee909d39622d371d8cd33d2a 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -7,8 +7,6 @@ "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, - "lib": ["ES2022"], - "types": ["node"], "outDir": "./lib", "tsBuildInfoFile": "./lib/.tsbuildinfo", "incremental": true, diff --git a/packages/env/src/index.ts b/packages/env/src/index.ts index b7895f88cc502d8c4b076a245178076de3b8c444..e3d20b1594a2a4ab74fefd8280324b7debf25a0e 100644 --- a/packages/env/src/index.ts +++ b/packages/env/src/index.ts @@ -16,11 +16,6 @@ import { createHash, randomUUID } from "node:crypto"; import { EOL } from "node:os"; import path from "node:path"; import { Readable } from "node:stream"; -import { - ReadableStream, - TransformStream, - WritableStream, -} from "node:stream/web"; import { fileURLToPath } from "node:url"; import { createWriteStream, fs } from "./fs/node.js"; import type { SHA256 } from "./polyfill.js"; @@ -48,7 +43,4 @@ export { path, randomUUID, Readable, - ReadableStream, - TransformStream, - WritableStream, }; diff --git a/packages/env/src/polyfill.ts b/packages/env/src/polyfill.ts index 9f47010befdfdc9f59fe1801a8469f4453148169..c9294b7f7c0a314a6626253e10ca7b50b58fc2cc 100644 --- a/packages/env/src/polyfill.ts +++ b/packages/env/src/polyfill.ts @@ -46,12 +46,4 @@ export function randomUUID(): string { return crypto.randomUUID(); } -// @ts-expect-error -const ReadableStream = globalThis.ReadableStream; -// @ts-expect-error -const TransformStream = globalThis.TransformStream; -// @ts-expect-error -const WritableStream = globalThis.WritableStream; - export { AsyncLocalStorage, CustomEvent, getEnv, setEnvs } from "./utils.js"; -export { ReadableStream, TransformStream, WritableStream }; diff --git a/packages/llamaindex/e2e/examples/cloudflare-worker-agent/src/index.ts b/packages/llamaindex/e2e/examples/cloudflare-worker-agent/src/index.ts index d96fe9d745f36c77504e7f02fe249eb256358f30..8a283cc6bb1d734470426ba84d9c39cdc79c618d 100644 --- a/packages/llamaindex/e2e/examples/cloudflare-worker-agent/src/index.ts +++ b/packages/llamaindex/e2e/examples/cloudflare-worker-agent/src/index.ts @@ -18,14 +18,12 @@ export default { console.log(2); const textEncoder = new TextEncoder(); const response = responseStream.pipeThrough<Uint8Array>( - // @ts-expect-error: see https://github.com/cloudflare/workerd/issues/2067 new TransformStream({ transform: (chunk, controller) => { controller.enqueue(textEncoder.encode(chunk.delta)); }, }), ); - // @ts-expect-error: see https://github.com/cloudflare/workerd/issues/2067 return new Response(response); }, }; diff --git a/packages/llamaindex/e2e/tsconfig.json b/packages/llamaindex/e2e/tsconfig.json index de19b0f45801f574161ee4ab4df5449484685d75..cd5c86ed757bde0c43ab55b8a04208dd792db23a 100644 --- a/packages/llamaindex/e2e/tsconfig.json +++ b/packages/llamaindex/e2e/tsconfig.json @@ -5,7 +5,7 @@ "module": "node16", "moduleResolution": "node16", "target": "ESNext", - "lib": ["ES2022"], + "lib": ["ES2022", "DOM.AsyncIterable"], "types": ["node"] }, "include": ["./node", "./mock-module.js", "./mock-register.js", "./fixtures"], diff --git a/packages/llamaindex/src/agent/base.ts b/packages/llamaindex/src/agent/base.ts index 27e8af5c1251f092a6e827462f2db25996b16875..6971b022e4eec803b0a6c2b3b39c9ef4177b3907 100644 --- a/packages/llamaindex/src/agent/base.ts +++ b/packages/llamaindex/src/agent/base.ts @@ -7,7 +7,7 @@ import type { } from "@llamaindex/core/llms"; import { EngineResponse } from "@llamaindex/core/schema"; import { wrapEventCaller } from "@llamaindex/core/utils"; -import { ReadableStream, TransformStream, randomUUID } from "@llamaindex/env"; +import { randomUUID } from "@llamaindex/env"; import { ChatHistory } from "../ChatHistory.js"; import { Settings } from "../Settings.js"; import { @@ -16,7 +16,7 @@ import { type ChatEngineParamsStreaming, } from "../engines/chat/index.js"; import { consoleLogger, emptyLogger } from "../internal/logger.js"; -import { isAsyncIterable } from "../internal/utils.js"; +import { isReadableStream } from "../internal/utils.js"; import { ObjectRetriever } from "../objects/index.js"; import type { AgentTaskContext, @@ -374,7 +374,7 @@ export abstract class AgentRunner< this.#chatHistory = [...stepOutput.taskStep.context.store.messages]; if (stepOutput.isLast) { const { output } = stepOutput; - if (isAsyncIterable(output)) { + if (isReadableStream(output)) { return output.pipeThrough<EngineResponse>( new TransformStream({ transform(chunk, controller) { diff --git a/packages/llamaindex/src/agent/react.ts b/packages/llamaindex/src/agent/react.ts index 866a5faa9eb8619cb1ab4b06818afc176e811324..47bdc9c39fe2c2b60b90c332b5f3666070fa04fb 100644 --- a/packages/llamaindex/src/agent/react.ts +++ b/packages/llamaindex/src/agent/react.ts @@ -7,7 +7,7 @@ import type { LLM, } from "@llamaindex/core/llms"; import { extractText } from "@llamaindex/core/utils"; -import { randomUUID, ReadableStream } from "@llamaindex/env"; +import { randomUUID } from "@llamaindex/env"; import { getReACTAgentSystemHeader } from "../internal/prompt/react.js"; import { isAsyncIterable, diff --git a/packages/llamaindex/src/agent/types.ts b/packages/llamaindex/src/agent/types.ts index d1ee13aa8c4ee8db4cd1a7ae7daae9173bd5718c..40765139cd2e3cca2e6e95e82ab2ac57c29a81f8 100644 --- a/packages/llamaindex/src/agent/types.ts +++ b/packages/llamaindex/src/agent/types.ts @@ -7,7 +7,6 @@ import type { MessageContent, ToolOutput, } from "@llamaindex/core/llms"; -import { ReadableStream } from "@llamaindex/env"; import type { Logger } from "../internal/logger.js"; import type { UUID } from "../types.js"; diff --git a/packages/llamaindex/src/agent/utils.ts b/packages/llamaindex/src/agent/utils.ts index ff8711007714634c6757d91a02a908df25d75f69..9e6502e61b685256a2eba3fc17b296ca1b1a87dd 100644 --- a/packages/llamaindex/src/agent/utils.ts +++ b/packages/llamaindex/src/agent/utils.ts @@ -16,7 +16,6 @@ import type { ToolOutput, } from "@llamaindex/core/llms"; import { baseToolWithCallSchema } from "@llamaindex/core/schema"; -import { ReadableStream } from "@llamaindex/env"; import { z } from "zod"; import type { Logger } from "../internal/logger.js"; import { diff --git a/packages/llamaindex/src/internal/utils.ts b/packages/llamaindex/src/internal/utils.ts index ab144a3cfc4c87060faa1b81c9d310ec37084a83..10a06b394accecee066736b0462836bbb1bc129e 100644 --- a/packages/llamaindex/src/internal/utils.ts +++ b/packages/llamaindex/src/internal/utils.ts @@ -10,6 +10,10 @@ export const isAsyncIterable = ( return obj != null && typeof obj === "object" && Symbol.asyncIterator in obj; }; +export const isReadableStream = (obj: unknown): obj is ReadableStream => { + return obj instanceof ReadableStream; +}; + export const isIterable = (obj: unknown): obj is Iterable<unknown> => { return obj != null && typeof obj === "object" && Symbol.iterator in obj; };