From 9082b8679972f3a87c480cc27fd9b2df46b000b9 Mon Sep 17 00:00:00 2001 From: Brace Sproul Date: Tue, 8 Jul 2025 11:14:55 -0400 Subject: [PATCH] feat: Add tool to get contents of URL (#340) --- apps/open-swe/package.json | 2 + .../planner/nodes/generate-message/index.ts | 6 +- .../planner/nodes/generate-message/prompt.ts | 9 +- .../src/graphs/planner/nodes/take-action.ts | 18 +- .../nodes/generate-message/index.ts | 2 + .../nodes/generate-message/prompt.ts | 1 + .../graphs/programmer/nodes/take-action.ts | 8 +- apps/open-swe/src/tools/index.ts | 1 + apps/open-swe/src/tools/url-content.ts | 52 ++ .../web/src/components/gen-ui/action-step.tsx | 41 +- .../web/src/components/thread/messages/ai.tsx | 25 +- packages/shared/src/open-swe/tools.ts | 16 + yarn.lock | 847 +++++++++++++++++- 13 files changed, 1015 insertions(+), 13 deletions(-) create mode 100644 apps/open-swe/src/tools/url-content.ts diff --git a/apps/open-swe/package.json b/apps/open-swe/package.json index 232c9770..d4b08bb0 100644 --- a/apps/open-swe/package.json +++ b/apps/open-swe/package.json @@ -24,11 +24,13 @@ "dependencies": { "@daytonaio/sdk": "^0.18.1", "@langchain/anthropic": "^0.3.20", + "@langchain/community": "^0.3.47", "@langchain/core": "^0.3.56", "@langchain/google-genai": "^0.2.9", "@langchain/langgraph": "^0.3.3", "@langchain/langgraph-sdk": "^0.0.85", "@langchain/openai": "^0.5.10", + "@mendable/firecrawl-js": "^1.29.1", "@octokit/app": "^16.0.1", "@octokit/core": "^7.0.2", "@octokit/rest": "^22.0.0", diff --git a/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts b/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts index 57864435..d76d0aa1 100644 --- a/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts +++ b/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts @@ -1,5 +1,8 @@ import { loadModel, Task } from "../../../../utils/load-model.js"; -import { createShellTool } from "../../../../tools/index.js"; +import { + createGetURLContentTool, + createShellTool, +} from "../../../../tools/index.js"; import { PlannerGraphState, PlannerGraphUpdate, @@ -51,6 +54,7 @@ export async function generateAction( createRgTool(state), createShellTool(state), createPlannerNotesTool(), + createGetURLContentTool(), ]; const modelWithTools = model.bindTools(tools, { tool_choice: "auto", diff --git a/apps/open-swe/src/graphs/planner/nodes/generate-message/prompt.ts b/apps/open-swe/src/graphs/planner/nodes/generate-message/prompt.ts index 9870cada..721954a8 100644 --- a/apps/open-swe/src/graphs/planner/nodes/generate-message/prompt.ts +++ b/apps/open-swe/src/graphs/planner/nodes/generate-message/prompt.ts @@ -19,9 +19,12 @@ Your sole objective in this phase is to gather comprehensive context about the c - You do not want to have to generate tasks such as 'Locate the XYZ file', 'Examine the structure of the codebase', or 'Do X if Y is true, otherwise to Z'. - To ensure the above does not happen, you should be thorough in your context gathering. Always gather enough context to cover all edge cases, and prevent unclear instructions. -4. **Leverage efficient search tools**: Use \`rg\` (ripgrep) for all file searches because it respects .gitignore patterns and provides significantly faster results than alternatives like grep or ls -R. - - When searching for specific file types, use glob patterns: \`rg -i pattern -g **/*.tsx project-directory/\` - - This explicit pattern matching ensures accurate results across all file extensions +4. **Leverage efficient search tools**: + - Use \`rg\` (ripgrep) for all file searches because it respects .gitignore patterns and provides significantly faster results than alternatives like grep or ls -R. + - When searching for specific file types, use glob patterns: \`rg -i pattern -g **/*.tsx project-directory/\` + - This explicit pattern matching ensures accurate results across all file extensions + - If the user passes a URL, you should use the \`get_url_content\` tool to fetch the contents of the URL. + - You should only use this tool to fetch the contents of a URL the user has provided, or that you've discovered during your context searching, which you believe is vital to gathering context for the user's request. 5. **Format shell commands precisely**: Ensure all shell commands include proper quoting and escaping. Well-formatted commands prevent errors and provide reliable results. diff --git a/apps/open-swe/src/graphs/planner/nodes/take-action.ts b/apps/open-swe/src/graphs/planner/nodes/take-action.ts index 3606c409..f01d2040 100644 --- a/apps/open-swe/src/graphs/planner/nodes/take-action.ts +++ b/apps/open-swe/src/graphs/planner/nodes/take-action.ts @@ -1,5 +1,8 @@ import { isAIMessage, ToolMessage } from "@langchain/core/messages"; -import { createShellTool } from "../../../tools/index.js"; +import { + createGetURLContentTool, + createShellTool, +} from "../../../tools/index.js"; import { GraphConfig } from "@open-swe/shared/open-swe/types"; import { PlannerGraphState, @@ -34,10 +37,12 @@ export async function takeActions( const shellTool = createShellTool(state); const rgTool = createRgTool(state); const plannerNotesTool = createPlannerNotesTool(); + const getURLContentTool = createGetURLContentTool(); const toolsMap = { [shellTool.name]: shellTool, [rgTool.name]: rgTool, [plannerNotesTool.name]: plannerNotesTool, + [getURLContentTool.name]: getURLContentTool, }; const toolCalls = lastMessage.tool_calls; @@ -96,9 +101,18 @@ export async function takeActions( } } + const truncatedOutput = + toolCall.name === getURLContentTool.name + ? // Allow for more context to be included from URL contents. + truncateOutput(result, { + numStartCharacters: 10000, + numEndCharacters: 10000, + }) + : truncateOutput(result); + const toolMessage = new ToolMessage({ tool_call_id: toolCall.id ?? "", - content: truncateOutput(result), + content: truncatedOutput, name: toolCall.name, status: toolCallStatus, }); diff --git a/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts b/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts index d61b0b1c..55fa7fb9 100644 --- a/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts +++ b/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts @@ -9,6 +9,7 @@ import { createApplyPatchTool, createRequestHumanHelpToolFields, createUpdatePlanToolFields, + createGetURLContentTool, } from "../../../../tools/index.js"; import { formatPlanPrompt } from "../../../../utils/plan-prompt.js"; import { stopSandbox } from "../../../../utils/sandbox.js"; @@ -77,6 +78,7 @@ export async function generateAction( createApplyPatchTool(state), createRequestHumanHelpToolFields(), createUpdatePlanToolFields(), + createGetURLContentTool(), // Only provide the dependencies installed tool if they're not already installed. ...(state.dependenciesInstalled ? [] diff --git a/apps/open-swe/src/graphs/programmer/nodes/generate-message/prompt.ts b/apps/open-swe/src/graphs/programmer/nodes/generate-message/prompt.ts index f389aba8..5ea32846 100644 --- a/apps/open-swe/src/graphs/programmer/nodes/generate-message/prompt.ts +++ b/apps/open-swe/src/graphs/programmer/nodes/generate-message/prompt.ts @@ -45,6 +45,7 @@ You are currently executing a specific task from a pre-generated plan. You have * **Pre-commit**: Run \`pre-commit run --files ...\` if .pre-commit-config.yaml exists * **History**: Use \`git log\` and \`git blame\` for additional context when needed * **Parallel Tool Calling**: You're allowed, and encouraged to call multiple tools at once, as long as they do not conflict, or depend on each other. +* **URL Content**: Use the \`get_url_content\` tool to fetch the contents of a URL. You should only use this tool to fetch the contents of a URL the user has provided, or that you've discovered during your context searching, which you believe is vital to gathering context for the user's request. ### Coding Standards diff --git a/apps/open-swe/src/graphs/programmer/nodes/take-action.ts b/apps/open-swe/src/graphs/programmer/nodes/take-action.ts index 39e55f8d..86bf464c 100644 --- a/apps/open-swe/src/graphs/programmer/nodes/take-action.ts +++ b/apps/open-swe/src/graphs/programmer/nodes/take-action.ts @@ -1,6 +1,10 @@ import { isAIMessage, ToolMessage } from "@langchain/core/messages"; import { createLogger, LogLevel } from "../../../utils/logger.js"; -import { createApplyPatchTool, createShellTool } from "../../../tools/index.js"; +import { + createApplyPatchTool, + createGetURLContentTool, + createShellTool, +} from "../../../tools/index.js"; import { GraphState, GraphConfig, @@ -45,11 +49,13 @@ export async function takeAction( const shellTool = createShellTool(state); const rgTool = createRgTool(state); const installDependenciesTool = createInstallDependenciesTool(state); + const getURLContentTool = createGetURLContentTool(); const toolsMap = { [applyPatchTool.name]: applyPatchTool, [shellTool.name]: shellTool, [rgTool.name]: rgTool, [installDependenciesTool.name]: installDependenciesTool, + [getURLContentTool.name]: getURLContentTool, }; const toolCalls = lastMessage.tool_calls; diff --git a/apps/open-swe/src/tools/index.ts b/apps/open-swe/src/tools/index.ts index 0225cc2a..0dd82f54 100644 --- a/apps/open-swe/src/tools/index.ts +++ b/apps/open-swe/src/tools/index.ts @@ -1,5 +1,6 @@ export * from "./apply-patch.js"; export * from "./shell.js"; +export * from "./url-content.js"; export { createUpdatePlanToolFields, createSessionPlanToolFields, diff --git a/apps/open-swe/src/tools/url-content.ts b/apps/open-swe/src/tools/url-content.ts new file mode 100644 index 00000000..f4aaca04 --- /dev/null +++ b/apps/open-swe/src/tools/url-content.ts @@ -0,0 +1,52 @@ +import { tool } from "@langchain/core/tools"; +import { createLogger, LogLevel } from "../utils/logger.js"; +import { createGetURLContentToolFields } from "@open-swe/shared/open-swe/tools"; +import { FireCrawlLoader } from "@langchain/community/document_loaders/web/firecrawl"; + +const logger = createLogger(LogLevel.INFO, "GetURLContentTool"); + +export function createGetURLContentTool() { + const getURLContentTool = tool( + async (input): Promise<{ result: string; status: "success" | "error" }> => { + const { url } = input; + let parsedUrl: URL | null = null; + try { + parsedUrl = new URL(url); + } catch (e) { + const errorString = e instanceof Error ? e.message : String(e); + logger.error("Failed to parse URL", { url, error: errorString }); + return { + result: `Failed to parse URL: ${url}\nError:\n${errorString}\nPlease ensure the URL provided is properly formatted.`, + status: "error", + }; + } + + try { + const loader = new FireCrawlLoader({ + url: parsedUrl.href, + mode: "scrape", + params: { + formats: ["markdown"], + }, + }); + + const docs = await loader.load(); + const text = docs.map((doc) => doc.pageContent).join("\n\n"); + + return { + result: text, + status: "success", + }; + } catch (e) { + const errorString = e instanceof Error ? e.message : String(e); + logger.error("Failed to get URL content", { url, error: errorString }); + return { + result: `Failed to get URL content: ${url}\nError:\n${errorString}`, + status: "error", + }; + } + }, + createGetURLContentToolFields(), + ); + return getURLContentTool; +} diff --git a/apps/web/src/components/gen-ui/action-step.tsx b/apps/web/src/components/gen-ui/action-step.tsx index 941f33b0..ae7809a9 100644 --- a/apps/web/src/components/gen-ui/action-step.tsx +++ b/apps/web/src/components/gen-ui/action-step.tsx @@ -13,12 +13,14 @@ import { FileText, CloudDownload, Search, + Globe, } from "lucide-react"; import { createApplyPatchToolFields, createShellToolFields, createInstallDependenciesToolFields, createTakePlannerNotesFields, + createGetURLContentToolFields, formatRgCommand, RipgrepCommand, } from "@open-swe/shared/open-swe/tools"; @@ -36,6 +38,8 @@ type InstallDependenciesToolArgs = z.infer< >; const plannerNotesTool = createTakePlannerNotesFields(); type PlannerNotesToolArgs = z.infer; +const getURLContentTool = createGetURLContentToolFields(); +type GetURLContentToolArgs = z.infer; // Common props for all action types type BaseActionProps = { @@ -81,13 +85,20 @@ type PlannerNotesActionProps = BaseActionProps & actionType: "planner_notes"; }; +type GetURLContentActionProps = BaseActionProps & + Partial & { + actionType: "get_url_content"; + output?: string; + }; + export type ActionItemProps = | (BaseActionProps & { status: "loading" }) | ShellActionProps | PatchActionProps | RgActionProps | InstallDependenciesActionProps - | PlannerNotesActionProps; + | PlannerNotesActionProps + | GetURLContentActionProps; export type ActionStepProps = { actions: ActionItemProps[]; @@ -101,6 +112,7 @@ const ACTION_GENERATING_TEXT_MAP = { ["rg"]: "Searching...", [installDependenciesTool.name]: "Installing dependencies...", [plannerNotesTool.name]: "Saving notes...", + [getURLContentTool.name]: "Fetching URL content...", }; function ActionItem(props: ActionItemProps) { @@ -143,6 +155,10 @@ function ActionItem(props: ActionItemProps) { return props.success ? "Dependencies installed" : "Installation failed"; } else if (props.actionType === "planner_notes") { return props.success ? "Notes saved" : "Failed to save notes"; + } else if (props.actionType === "get_url_content") { + return props.success + ? "URL content fetched" + : "Failed to fetch URL content"; } } @@ -156,7 +172,8 @@ function ActionItem(props: ActionItemProps) { if ( props.actionType === "shell" || props.actionType === "rg" || - props.actionType === "install_dependencies" + props.actionType === "install_dependencies" || + props.actionType === "get_url_content" ) { return !!props.output; } else if (props.actionType === "apply-patch") { @@ -183,6 +200,8 @@ function ActionItem(props: ActionItemProps) { return ; } else if (props.actionType === "rg") { return ; + } else if (props.actionType === "get_url_content") { + return ; } else { return ; } @@ -208,6 +227,16 @@ function ActionItem(props: ActionItemProps) { ); } + if (props.actionType === "get_url_content") { + return ( +
+ + {props.url} + +
+ ); + } + if ( props.actionType === "shell" || props.actionType === "install_dependencies" @@ -291,6 +320,14 @@ function ActionItem(props: ActionItemProps) { )} ); + } else if (props.actionType === "get_url_content" && props.output) { + return ( +
+
+            {props.output}
+          
+
+ ); } else if (props.actionType === "apply-patch" && props.diff) { return (
diff --git a/apps/web/src/components/thread/messages/ai.tsx b/apps/web/src/components/thread/messages/ai.tsx index 427baee3..311279cb 100644 --- a/apps/web/src/components/thread/messages/ai.tsx +++ b/apps/web/src/components/thread/messages/ai.tsx @@ -32,6 +32,7 @@ import { createInstallDependenciesToolFields, createTakePlannerNotesFields, createDiagnoseErrorToolFields, + createGetURLContentToolFields, } from "@open-swe/shared/open-swe/tools"; import { z } from "zod"; import { isAIMessageSDK, isToolMessageSDK } from "@/lib/langchain-messages"; @@ -59,6 +60,9 @@ type PlannerNotesToolArgs = z.infer; const diagnoseErrorTool = createDiagnoseErrorToolFields(); type DiagnoseErrorToolArgs = z.infer; +const getURLContentTool = createGetURLContentToolFields(); +type GetURLContentToolArgs = z.infer; + function CustomComponent({ message, thread, @@ -185,6 +189,16 @@ export function mapToolMessageToActionStepProps( notes: args.notes || [], reasoningText, }; + } else if (toolCall?.name === getURLContentTool.name) { + const args = toolCall.args as GetURLContentToolArgs; + return { + actionType: "get_url_content", + status, + success, + url: args.url || "", + output: getContentString(message.content), + reasoningText, + }; } return { status: "loading", @@ -249,7 +263,8 @@ export function AssistantMessage({ tc.name === applyPatchTool.name || tc.name === rgTool.name || tc.name === installDependenciesTool.name || - tc.name === plannerNotesTool.name, + tc.name === plannerNotesTool.name || + tc.name === getURLContentTool.name, ) : []; @@ -397,6 +412,14 @@ export function AssistantMessage({ status: "generating", notes: args?.notes || [], } as ActionItemProps; + } else if (toolCall.name === getURLContentTool.name) { + const args = toolCall.args as GetURLContentToolArgs; + return { + actionType: "get_url_content", + status: "generating", + url: args?.url || "", + output: "", + } as ActionItemProps; } else { if (isShellTool) { const args = toolCall.args as ShellToolArgs; diff --git a/packages/shared/src/open-swe/tools.ts b/packages/shared/src/open-swe/tools.ts index 508cb14d..57d70f09 100644 --- a/packages/shared/src/open-swe/tools.ts +++ b/packages/shared/src/open-swe/tools.ts @@ -281,3 +281,19 @@ export function createDiagnoseErrorToolFields() { schema: diagnoseErrorToolSchema, }; } + +export function createGetURLContentToolFields() { + const getURLContentSchema = z.object({ + url: z + .string() + .describe( + "The URL to get the content of. Returns the page content in markdown format.", + ), + }); + + return { + name: "get_url_content", + description: "Get the full page content of a given URL in markdown format.", + schema: getURLContentSchema, + }; +} diff --git a/yarn.lock b/yarn.lock index 94508673..25f33dc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1064,6 +1064,39 @@ __metadata: languageName: node linkType: hard +"@graphql-typed-document-node/core@npm:^3.2.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + +"@grpc/grpc-js@npm:^1.13.1": + version: 1.13.4 + resolution: "@grpc/grpc-js@npm:1.13.4" + dependencies: + "@grpc/proto-loader": ^0.7.13 + "@js-sdsl/ordered-map": ^4.4.2 + checksum: fe5db84bbbcd07cc1b68d1683b7fbe9cfcc5c3a60655ecc17fb3e1cd2adc4c1ce891b15e6e9a9c2140f6891def6f93b509a60d2bce253d13b317f9136e968451 + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.7.13": + version: 0.7.15 + resolution: "@grpc/proto-loader@npm:0.7.15" + dependencies: + lodash.camelcase: ^4.3.0 + long: ^5.0.0 + protobufjs: ^7.2.5 + yargs: ^17.7.2 + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 9f19f4c611a17cd33aec0d6e3686a76696495f40593f7c284933c4b7877f58dfa5a225ddc20705860a632311f4dc0d143cb6a0da7b51b6f5ffd7de26938df308 + languageName: node + linkType: hard + "@hono/node-server@npm:^1.12.0": version: 1.14.3 resolution: "@hono/node-server@npm:1.14.3" @@ -1680,6 +1713,13 @@ __metadata: languageName: node linkType: hard +"@js-sdsl/ordered-map@npm:^4.4.2": + version: 4.4.2 + resolution: "@js-sdsl/ordered-map@npm:4.4.2" + checksum: a927ae4ff8565ecb75355cc6886a4f8fadbf2af1268143c96c0cce3ba01261d241c3f4ba77f21f3f017a00f91dfe9e0673e95f830255945c80a0e96c6d30508a + languageName: node + linkType: hard + "@langchain/anthropic@npm:^0.3.20": version: 0.3.21 resolution: "@langchain/anthropic@npm:0.3.21" @@ -1694,6 +1734,402 @@ __metadata: languageName: node linkType: hard +"@langchain/community@npm:^0.3.47": + version: 0.3.47 + resolution: "@langchain/community@npm:0.3.47" + dependencies: + "@langchain/openai": ">=0.2.0 <0.6.0" + "@langchain/weaviate": ^0.2.0 + binary-extensions: ^2.2.0 + expr-eval: ^2.0.2 + flat: ^5.0.2 + js-yaml: ^4.1.0 + langchain: ">=0.2.3 <0.3.0 || >=0.3.4 <0.4.0" + langsmith: ^0.3.33 + uuid: ^10.0.0 + zod: ^3.25.32 + peerDependencies: + "@arcjet/redact": ^v1.0.0-alpha.23 + "@aws-crypto/sha256-js": ^5.0.0 + "@aws-sdk/client-bedrock-agent-runtime": ^3.749.0 + "@aws-sdk/client-bedrock-runtime": ^3.749.0 + "@aws-sdk/client-dynamodb": ^3.749.0 + "@aws-sdk/client-kendra": ^3.749.0 + "@aws-sdk/client-lambda": ^3.749.0 + "@aws-sdk/client-s3": ^3.749.0 + "@aws-sdk/client-sagemaker-runtime": ^3.749.0 + "@aws-sdk/client-sfn": ^3.749.0 + "@aws-sdk/credential-provider-node": ^3.388.0 + "@azure/search-documents": ^12.0.0 + "@azure/storage-blob": ^12.15.0 + "@browserbasehq/sdk": "*" + "@browserbasehq/stagehand": ^1.0.0 + "@clickhouse/client": ^0.2.5 + "@cloudflare/ai": "*" + "@datastax/astra-db-ts": ^1.0.0 + "@elastic/elasticsearch": ^8.4.0 + "@getmetal/metal-sdk": "*" + "@getzep/zep-cloud": ^1.0.6 + "@getzep/zep-js": ^0.9.0 + "@gomomento/sdk": ^1.51.1 + "@gomomento/sdk-core": ^1.51.1 + "@google-ai/generativelanguage": "*" + "@google-cloud/storage": ^6.10.1 || ^7.7.0 + "@gradientai/nodejs-sdk": ^1.2.0 + "@huggingface/inference": ^4.0.5 + "@huggingface/transformers": ^3.5.2 + "@ibm-cloud/watsonx-ai": "*" + "@lancedb/lancedb": ^0.12.0 + "@langchain/core": ">=0.3.58 <0.4.0" + "@layerup/layerup-security": ^1.5.12 + "@libsql/client": ^0.14.0 + "@mendable/firecrawl-js": ^1.4.3 + "@mlc-ai/web-llm": "*" + "@mozilla/readability": "*" + "@neondatabase/serverless": "*" + "@notionhq/client": ^2.2.10 + "@opensearch-project/opensearch": "*" + "@pinecone-database/pinecone": "*" + "@planetscale/database": ^1.8.0 + "@premai/prem-sdk": ^0.3.25 + "@qdrant/js-client-rest": ^1.8.2 + "@raycast/api": ^1.55.2 + "@rockset/client": ^0.9.1 + "@smithy/eventstream-codec": ^2.0.5 + "@smithy/protocol-http": ^3.0.6 + "@smithy/signature-v4": ^2.0.10 + "@smithy/util-utf8": ^2.0.0 + "@spider-cloud/spider-client": ^0.0.21 + "@supabase/supabase-js": ^2.45.0 + "@tensorflow-models/universal-sentence-encoder": "*" + "@tensorflow/tfjs-converter": "*" + "@tensorflow/tfjs-core": "*" + "@upstash/ratelimit": ^1.1.3 || ^2.0.3 + "@upstash/redis": ^1.20.6 + "@upstash/vector": ^1.1.1 + "@vercel/kv": "*" + "@vercel/postgres": "*" + "@writerai/writer-sdk": ^0.40.2 + "@xata.io/client": ^0.28.0 + "@zilliz/milvus2-sdk-node": ">=2.3.5" + apify-client: ^2.7.1 + assemblyai: ^4.6.0 + azion: ^1.11.1 + better-sqlite3: ">=9.4.0 <12.0.0" + cassandra-driver: ^4.7.2 + cborg: ^4.1.1 + cheerio: ^1.0.0-rc.12 + chromadb: "*" + closevector-common: 0.1.3 + closevector-node: 0.1.6 + closevector-web: 0.1.6 + cohere-ai: "*" + convex: ^1.3.1 + crypto-js: ^4.2.0 + d3-dsv: ^2.0.0 + discord.js: ^14.14.1 + dria: ^0.0.3 + duck-duck-scrape: ^2.2.5 + epub2: ^3.0.1 + fast-xml-parser: "*" + firebase-admin: ^11.9.0 || ^12.0.0 + google-auth-library: "*" + googleapis: "*" + hnswlib-node: ^3.0.0 + html-to-text: ^9.0.5 + ibm-cloud-sdk-core: "*" + ignore: ^5.2.0 + interface-datastore: ^8.2.11 + ioredis: ^5.3.2 + it-all: ^3.0.4 + jsdom: "*" + jsonwebtoken: ^9.0.2 + llmonitor: ^0.5.9 + lodash: ^4.17.21 + lunary: ^0.7.10 + mammoth: ^1.6.0 + mariadb: ^3.4.0 + mem0ai: ^2.1.8 + mongodb: ^6.17.0 + mysql2: ^3.9.8 + neo4j-driver: "*" + notion-to-md: ^3.1.0 + officeparser: ^4.0.4 + openai: "*" + pdf-parse: 1.1.1 + pg: ^8.11.0 + pg-copy-streams: ^6.0.5 + pickleparser: ^0.2.1 + playwright: ^1.32.1 + portkey-ai: ^0.1.11 + puppeteer: "*" + pyodide: ">=0.24.1 <0.27.0" + redis: "*" + replicate: "*" + sonix-speech-recognition: ^2.1.1 + srt-parser-2: ^1.2.3 + typeorm: ^0.3.20 + typesense: ^1.5.3 + usearch: ^1.1.1 + voy-search: 0.6.2 + weaviate-client: ^3.5.2 + web-auth-library: ^1.0.3 + word-extractor: "*" + ws: ^8.14.2 + youtubei.js: "*" + peerDependenciesMeta: + "@arcjet/redact": + optional: true + "@aws-crypto/sha256-js": + optional: true + "@aws-sdk/client-bedrock-agent-runtime": + optional: true + "@aws-sdk/client-bedrock-runtime": + optional: true + "@aws-sdk/client-dynamodb": + optional: true + "@aws-sdk/client-kendra": + optional: true + "@aws-sdk/client-lambda": + optional: true + "@aws-sdk/client-s3": + optional: true + "@aws-sdk/client-sagemaker-runtime": + optional: true + "@aws-sdk/client-sfn": + optional: true + "@aws-sdk/credential-provider-node": + optional: true + "@aws-sdk/dsql-signer": + optional: true + "@azure/search-documents": + optional: true + "@azure/storage-blob": + optional: true + "@browserbasehq/sdk": + optional: true + "@clickhouse/client": + optional: true + "@cloudflare/ai": + optional: true + "@datastax/astra-db-ts": + optional: true + "@elastic/elasticsearch": + optional: true + "@getmetal/metal-sdk": + optional: true + "@getzep/zep-cloud": + optional: true + "@getzep/zep-js": + optional: true + "@gomomento/sdk": + optional: true + "@gomomento/sdk-core": + optional: true + "@google-ai/generativelanguage": + optional: true + "@google-cloud/storage": + optional: true + "@gradientai/nodejs-sdk": + optional: true + "@huggingface/inference": + optional: true + "@huggingface/transformers": + optional: true + "@lancedb/lancedb": + optional: true + "@layerup/layerup-security": + optional: true + "@libsql/client": + optional: true + "@mendable/firecrawl-js": + optional: true + "@mlc-ai/web-llm": + optional: true + "@mozilla/readability": + optional: true + "@neondatabase/serverless": + optional: true + "@notionhq/client": + optional: true + "@opensearch-project/opensearch": + optional: true + "@pinecone-database/pinecone": + optional: true + "@planetscale/database": + optional: true + "@premai/prem-sdk": + optional: true + "@qdrant/js-client-rest": + optional: true + "@raycast/api": + optional: true + "@rockset/client": + optional: true + "@smithy/eventstream-codec": + optional: true + "@smithy/protocol-http": + optional: true + "@smithy/signature-v4": + optional: true + "@smithy/util-utf8": + optional: true + "@spider-cloud/spider-client": + optional: true + "@supabase/supabase-js": + optional: true + "@tensorflow-models/universal-sentence-encoder": + optional: true + "@tensorflow/tfjs-converter": + optional: true + "@tensorflow/tfjs-core": + optional: true + "@upstash/ratelimit": + optional: true + "@upstash/redis": + optional: true + "@upstash/vector": + optional: true + "@vercel/kv": + optional: true + "@vercel/postgres": + optional: true + "@writerai/writer-sdk": + optional: true + "@xata.io/client": + optional: true + "@zilliz/milvus2-sdk-node": + optional: true + apify-client: + optional: true + assemblyai: + optional: true + azion: + optional: true + better-sqlite3: + optional: true + cassandra-driver: + optional: true + cborg: + optional: true + cheerio: + optional: true + chromadb: + optional: true + closevector-common: + optional: true + closevector-node: + optional: true + closevector-web: + optional: true + cohere-ai: + optional: true + convex: + optional: true + crypto-js: + optional: true + d3-dsv: + optional: true + discord.js: + optional: true + dria: + optional: true + duck-duck-scrape: + optional: true + epub2: + optional: true + fast-xml-parser: + optional: true + firebase-admin: + optional: true + google-auth-library: + optional: true + googleapis: + optional: true + hnswlib-node: + optional: true + html-to-text: + optional: true + ignore: + optional: true + interface-datastore: + optional: true + ioredis: + optional: true + it-all: + optional: true + jsdom: + optional: true + jsonwebtoken: + optional: true + llmonitor: + optional: true + lodash: + optional: true + lunary: + optional: true + mammoth: + optional: true + mariadb: + optional: true + mem0ai: + optional: true + mongodb: + optional: true + mysql2: + optional: true + neo4j-driver: + optional: true + notion-to-md: + optional: true + officeparser: + optional: true + pdf-parse: + optional: true + pg: + optional: true + pg-copy-streams: + optional: true + pickleparser: + optional: true + playwright: + optional: true + portkey-ai: + optional: true + puppeteer: + optional: true + pyodide: + optional: true + redis: + optional: true + replicate: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + typesense: + optional: true + usearch: + optional: true + voy-search: + optional: true + weaviate-client: + optional: true + web-auth-library: + optional: true + word-extractor: + optional: true + ws: + optional: true + youtubei.js: + optional: true + checksum: cf87222f82706905e15ef0f527b54f0972d64cede80bfa8815d80294d24120c2952cea397633f4876e03c049e571a1bf17effaa21676f0f9d88a1e79df0f8187 + languageName: node + linkType: hard + "@langchain/core@npm:^0.3.58": version: 0.3.58 resolution: "@langchain/core@npm:0.3.58" @@ -1870,6 +2306,19 @@ __metadata: languageName: node linkType: hard +"@langchain/openai@npm:>=0.2.0 <0.6.0": + version: 0.5.16 + resolution: "@langchain/openai@npm:0.5.16" + dependencies: + js-tiktoken: ^1.0.12 + openai: ^5.3.0 + zod: ^3.25.32 + peerDependencies: + "@langchain/core": ">=0.3.58 <0.4.0" + checksum: 024e6499037f6d30dfe22dea91a6860cb6c6282a28182074239009543646d0f28d7646f2a4d5c2b245fb9990d131d84eda124feffa1db5efd204b63e5c3826e6 + languageName: node + linkType: hard + "@langchain/textsplitters@npm:>=0.0.0 <0.2.0": version: 0.1.0 resolution: "@langchain/textsplitters@npm:0.1.0" @@ -1881,6 +2330,30 @@ __metadata: languageName: node linkType: hard +"@langchain/weaviate@npm:^0.2.0": + version: 0.2.0 + resolution: "@langchain/weaviate@npm:0.2.0" + dependencies: + uuid: ^10.0.0 + weaviate-client: ^3.5.2 + peerDependencies: + "@langchain/core": ">=0.2.21 <0.4.0" + checksum: ec23cf657511913f7d775cbcb1954fecd4bda8c2484a43cef648b2bfba1ebb38134ec5663368a2797068d208475c22d9d965fe2e41af84b3dee54d5129888bbf + languageName: node + linkType: hard + +"@mendable/firecrawl-js@npm:^1.29.1": + version: 1.29.1 + resolution: "@mendable/firecrawl-js@npm:1.29.1" + dependencies: + axios: ^1.6.8 + typescript-event-target: ^1.1.1 + zod: ^3.23.8 + zod-to-json-schema: ^3.23.0 + checksum: 9fb252a78509ce84ed2968a022f7fa7e61fdb115996b77d48f9e9402137e37a06732c71f8c1c139491cb6caaddf6f3292447e8724063768d289e57b372361e62 + languageName: node + linkType: hard + "@modelcontextprotocol/sdk@npm:^1.10.2": version: 1.12.1 resolution: "@modelcontextprotocol/sdk@npm:1.12.1" @@ -2410,12 +2883,14 @@ __metadata: "@eslint/js": ^9.19.0 "@jest/globals": ^29.7.0 "@langchain/anthropic": ^0.3.20 + "@langchain/community": ^0.3.47 "@langchain/core": ^0.3.56 "@langchain/google-genai": ^0.2.9 "@langchain/langgraph": ^0.3.3 "@langchain/langgraph-cli": latest "@langchain/langgraph-sdk": ^0.0.85 "@langchain/openai": ^0.5.10 + "@mendable/firecrawl-js": ^1.29.1 "@octokit/app": ^16.0.1 "@octokit/core": ^7.0.2 "@octokit/rest": ^22.0.0 @@ -2560,6 +3035,79 @@ __metadata: languageName: node linkType: hard +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 011fe7ef0826b0fd1a95935a033a3c0fd08483903e1aa8f8b4e0704e3233406abb9ee25350ec0c20bbecb2aad8da0dcea58b392bbd77d6690736f02c143865d2 + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 67173ac34de1e242c55da52c2f5bdc65505d82453893f9b51dc74af9fe4c065cf4a657a4538e91b0d4a1a1e0a0642215e31894c31650ff6e3831471061e1ee9e + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 59240c850b1d3d0b56d8f8098dd04787dcaec5c5bd8de186fa548de86b86076e1c50e80144b90335e705a044edf5bc8b0998548474c2a10a98c7e004a1547e4b + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 0369163a3d226851682f855f81413cbf166cd98f131edb94a0f67f79e75342d86e89df9d7a1df08ac28be2bc77e0a7f0200526bb6c2a407abbfee1f0262d5fd7 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": ^1.1.1 + "@protobufjs/inquire": ^1.1.0 + checksum: 3fce7e09eb3f1171dd55a192066450f65324fd5f7cc01a431df01bb00d0a895e6bfb5b0c5561ce157ee1d886349c90703d10a4e11a1a256418ff591b969b3477 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 5781e1241270b8bd1591d324ca9e3a3128d2f768077a446187a049e36505e91bc4156ed5ac3159c3ce3d2ba3743dbc757b051b2d723eea9cd367bfd54ab29b2f + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: ca06f02eaf65ca36fb7498fc3492b7fc087bfcc85c702bac5b86fad34b692bdce4990e0ef444c1e2aea8c034227bd1f0484be02810d5d7e931c55445555646f4 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 856eeb532b16a7aac071cacde5c5620df800db4c80cee6dbc56380524736205aae21e5ae47739114bf669ab5e8ba0e767a282ad894f3b5e124197cb9224445ee + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: d6a34fbbd24f729e2a10ee915b74e1d77d52214de626b921b2d77288bd8f2386808da2315080f2905761527cceffe7ec34c7647bd21a5ae41a25e8212ff79451 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: f9bf3163d13aaa3b6f5e6fbf37a116e094ea021c0e1f2a7ccd0e12a29e2ce08dafba4e8b36e13f8ed7397e1591610ce880ed1289af4d66cf4ace8a36a9557278 + languageName: node + linkType: hard + "@radix-ui/number@npm:1.1.1": version: 1.1.1 resolution: "@radix-ui/number@npm:1.1.1" @@ -4103,6 +4651,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=13.7.0": + version: 24.0.10 + resolution: "@types/node@npm:24.0.10" + dependencies: + undici-types: ~7.8.0 + checksum: 04e4d11a711a683d6ed71f8db86b35035771ee9c1f110cb904ca67454d3478f19c71f1f0ccd0ba5350e5ce63bea70d08c569f798f6f5a5d2a1d05c038f1f729f + languageName: node + linkType: hard + "@types/node@npm:^18.11.18": version: 18.19.103 resolution: "@types/node@npm:18.19.103" @@ -4628,6 +5185,13 @@ __metadata: languageName: node linkType: hard +"abort-controller-x@npm:^0.4.0, abort-controller-x@npm:^0.4.3": + version: 0.4.3 + resolution: "abort-controller-x@npm:0.4.3" + checksum: a8009c8185060bd5b291b5db8ca30460d5e5ac5b6b3d707e498c50ab313c5d9d79da719534696512ab6987d249ca1c86b8d048687b762db82002955f0ea222bd + languageName: node + linkType: hard + "abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" @@ -4968,6 +5532,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.8": + version: 1.10.0 + resolution: "axios@npm:1.10.0" + dependencies: + follow-redirects: ^1.15.6 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: b5fd840d499469bf968e44b8ac96f4b363c6aa4c791a50834c086a7cffbc2d77fe24f27af1aba46c3e1f4840aaf991461fc27537990596b93dea0f4df3245a86 + languageName: node + linkType: hard + "axobject-query@npm:^4.1.0": version: 4.1.0 resolution: "axobject-query@npm:4.1.0" @@ -5082,6 +5657,13 @@ __metadata: languageName: node linkType: hard +"binary-extensions@npm:^2.2.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + "bl@npm:^5.0.0": version: 5.1.0 resolution: "bl@npm:5.1.0" @@ -5773,6 +6355,15 @@ __metadata: languageName: node linkType: hard +"cross-fetch@npm:^3.1.5": + version: 3.2.0 + resolution: "cross-fetch@npm:3.2.0" + dependencies: + node-fetch: ^2.7.0 + checksum: 8ded5ea35f705e81e569e7db244a3f96e05e95996ff51877c89b0c1ec1163c76bb5dad77d0f8fba6bb35a0abacb36403d7271dc586d8b1f636110ee7a8d959fd + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" @@ -7139,6 +7730,13 @@ __metadata: languageName: node linkType: hard +"expr-eval@npm:^2.0.2": + version: 2.0.2 + resolution: "expr-eval@npm:2.0.2" + checksum: 01862f09b50b17b45a6268b1153280afede99e1b51752a323661f7f4010eaed34cd6c682bf439b7f8a92df6aa82f326f0ce0aa20964d175feee97377fe53921d + languageName: node + linkType: hard + "express-rate-limit@npm:^7.5.0": version: 7.5.0 resolution: "express-rate-limit@npm:7.5.0" @@ -7443,6 +8041,15 @@ __metadata: languageName: node linkType: hard +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.3.3 resolution: "flatted@npm:3.3.3" @@ -7866,7 +8473,19 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.8.1": +"graphql-request@npm:^6.1.0": + version: 6.1.0 + resolution: "graphql-request@npm:6.1.0" + dependencies: + "@graphql-typed-document-node/core": ^3.2.0 + cross-fetch: ^3.1.5 + peerDependencies: + graphql: 14 - 16 + checksum: 6d62630a0169574442320651c1f7626c0c602025c3c46b19e09417c9579bb209306ee63de9793a03be2e1701bb7f13971f8545d99bc6573e340f823af0ad35b2 + languageName: node + linkType: hard + +"graphql@npm:^16.10.0, graphql@npm:^16.8.1": version: 16.11.0 resolution: "graphql@npm:16.11.0" checksum: 65bc206edbe980f2759a8e4cf324873f75a66ab48263961472716e50127ae446739be20f926bb7f036a8d199bd4de072f684fd147c285bd6ba965d98cebb6200 @@ -9561,6 +10180,79 @@ __metadata: languageName: node linkType: hard +"langchain@npm:>=0.2.3 <0.3.0 || >=0.3.4 <0.4.0": + version: 0.3.29 + resolution: "langchain@npm:0.3.29" + dependencies: + "@langchain/openai": ">=0.1.0 <0.6.0" + "@langchain/textsplitters": ">=0.0.0 <0.2.0" + js-tiktoken: ^1.0.12 + js-yaml: ^4.1.0 + jsonpointer: ^5.0.1 + langsmith: ^0.3.33 + openapi-types: ^12.1.3 + p-retry: 4 + uuid: ^10.0.0 + yaml: ^2.2.1 + zod: ^3.25.32 + peerDependencies: + "@langchain/anthropic": "*" + "@langchain/aws": "*" + "@langchain/cerebras": "*" + "@langchain/cohere": "*" + "@langchain/core": ">=0.3.58 <0.4.0" + "@langchain/deepseek": "*" + "@langchain/google-genai": "*" + "@langchain/google-vertexai": "*" + "@langchain/google-vertexai-web": "*" + "@langchain/groq": "*" + "@langchain/mistralai": "*" + "@langchain/ollama": "*" + "@langchain/xai": "*" + axios: "*" + cheerio: "*" + handlebars: ^4.7.8 + peggy: ^3.0.2 + typeorm: "*" + peerDependenciesMeta: + "@langchain/anthropic": + optional: true + "@langchain/aws": + optional: true + "@langchain/cerebras": + optional: true + "@langchain/cohere": + optional: true + "@langchain/deepseek": + optional: true + "@langchain/google-genai": + optional: true + "@langchain/google-vertexai": + optional: true + "@langchain/google-vertexai-web": + optional: true + "@langchain/groq": + optional: true + "@langchain/mistralai": + optional: true + "@langchain/ollama": + optional: true + "@langchain/xai": + optional: true + axios: + optional: true + cheerio: + optional: true + handlebars: + optional: true + peggy: + optional: true + typeorm: + optional: true + checksum: ed905c8622b41adbf6b5f7d50f05b220e4dc3d4638954a5236c4600dc576efd487ca3de199168b7dee2395f3480b5f48e2dcca67b9f4402923665ddc4c60ce6d + languageName: node + linkType: hard + "langchain@npm:^0.3.26": version: 0.3.27 resolution: "langchain@npm:0.3.27" @@ -9683,6 +10375,35 @@ __metadata: languageName: node linkType: hard +"langsmith@npm:^0.3.33": + version: 0.3.37 + resolution: "langsmith@npm:0.3.37" + dependencies: + "@types/uuid": ^10.0.0 + chalk: ^4.1.2 + console-table-printer: ^2.12.1 + p-queue: ^6.6.2 + p-retry: 4 + semver: ^7.6.3 + uuid: ^10.0.0 + peerDependencies: + "@opentelemetry/api": "*" + "@opentelemetry/exporter-trace-otlp-proto": "*" + "@opentelemetry/sdk-trace-base": "*" + openai: "*" + peerDependenciesMeta: + "@opentelemetry/api": + optional: true + "@opentelemetry/exporter-trace-otlp-proto": + optional: true + "@opentelemetry/sdk-trace-base": + optional: true + openai: + optional: true + checksum: e81ea279133068f5efa4c1d8f01c4637a3610706c1b1256e9eca2bfbac9cf732fb556fd1af5f25c7f69015050aed80be7aeceadc0c32b5224d6e7ae078587867 + languageName: node + linkType: hard + "language-subtag-registry@npm:^0.3.20": version: 0.3.23 resolution: "language-subtag-registry@npm:0.3.23" @@ -9959,6 +10680,13 @@ __metadata: languageName: node linkType: hard +"long@npm:^5.0.0, long@npm:^5.2.4": + version: 5.3.2 + resolution: "long@npm:5.3.2" + checksum: be215816b563f4ca27ad3677678b53415bc489f9e3466414e54d2d85f5f8e86768547fa58493bacfb363ffc57a664debc83403ccc2178aef0c40aca28bad47c9 + languageName: node + linkType: hard + "longest-streak@npm:^3.0.0": version: 3.1.0 resolution: "longest-streak@npm:3.1.0" @@ -11051,6 +11779,36 @@ __metadata: languageName: node linkType: hard +"nice-grpc-client-middleware-retry@npm:^3.1.10": + version: 3.1.11 + resolution: "nice-grpc-client-middleware-retry@npm:3.1.11" + dependencies: + abort-controller-x: ^0.4.0 + nice-grpc-common: ^2.0.2 + checksum: dd2e9de7d9af0dd241e3239db4e91d34d5c83ac1e1f444c72362836100471feb4c850125023552c800e3aeabddf367e256693082fd16058ab59e59aa5bf9fa08 + languageName: node + linkType: hard + +"nice-grpc-common@npm:^2.0.2": + version: 2.0.2 + resolution: "nice-grpc-common@npm:2.0.2" + dependencies: + ts-error: ^1.0.6 + checksum: d9b600a7044495c508f3e3faab7caa49675f329c7209e829f41a31ef390bbe493c7be2d6c63056831f383299bae034852a84090e7fd9c6a6e8c52f919b03ed44 + languageName: node + linkType: hard + +"nice-grpc@npm:^2.1.11": + version: 2.1.12 + resolution: "nice-grpc@npm:2.1.12" + dependencies: + "@grpc/grpc-js": ^1.13.1 + abort-controller-x: ^0.4.0 + nice-grpc-common: ^2.0.2 + checksum: 9e708e4a5b91ef1da3a67ff28d17281f803a47405ab4895b6e4192a519dadef7506d98e85ec6bcd14baa3f970efcef2d1dd7c54a79492f0fb3d1d5cd29e5e2ad + languageName: node + linkType: hard + "node-domexception@npm:1.0.0, node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" @@ -11058,7 +11816,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.7": +"node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -11374,6 +12132,23 @@ __metadata: languageName: node linkType: hard +"openai@npm:^5.3.0": + version: 5.8.2 + resolution: "openai@npm:5.8.2" + peerDependencies: + ws: ^8.18.0 + zod: ^3.23.8 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + bin: + openai: bin/cli + checksum: 20d1de797b8818b6eba97ef5a6ea64f803da9f4097d44b85a0200ac8fb3d6ddb00e2bb3d6018109b2ef62308e05de4251758f39c434448cde1843fdbc794b971 + languageName: node + linkType: hard + "openapi-types@npm:^12.1.3": version: 12.1.3 resolution: "openapi-types@npm:12.1.3" @@ -12022,6 +12797,26 @@ __metadata: languageName: node linkType: hard +"protobufjs@npm:^7.2.5": + version: 7.5.3 + resolution: "protobufjs@npm:7.5.3" + dependencies: + "@protobufjs/aspromise": ^1.1.2 + "@protobufjs/base64": ^1.1.2 + "@protobufjs/codegen": ^2.0.4 + "@protobufjs/eventemitter": ^1.1.0 + "@protobufjs/fetch": ^1.1.0 + "@protobufjs/float": ^1.0.2 + "@protobufjs/inquire": ^1.1.0 + "@protobufjs/path": ^1.1.2 + "@protobufjs/pool": ^1.1.0 + "@protobufjs/utf8": ^1.1.0 + "@types/node": ">=13.7.0" + long: ^5.0.0 + checksum: 8a8842338c9bf586f11e1c179fc01f0b65adc22114bb2626daf62d66439c7b4227c182ef375184d24d2a16378716bab8dc5000940287610c8b8742972e4b0a2f + languageName: node + linkType: hard + "proxy-addr@npm:^2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -13636,6 +14431,13 @@ __metadata: languageName: node linkType: hard +"ts-error@npm:^1.0.6": + version: 1.0.6 + resolution: "ts-error@npm:1.0.6" + checksum: 043d15c155bf3aeeb146523f24650a773a4aa607587252692640eb233f9d832b73e207c4f076c2e7bc68e9897979eec0586cf631a919f3a3c542fb981d35a5d7 + languageName: node + linkType: hard + "ts-jest@npm:^29.1.0": version: 29.3.4 resolution: "ts-jest@npm:29.3.4" @@ -13916,6 +14718,13 @@ __metadata: languageName: node linkType: hard +"typescript-event-target@npm:^1.1.1": + version: 1.1.1 + resolution: "typescript-event-target@npm:1.1.1" + checksum: ad9eaf0f3c161c4062c33d80ac5235e7c32c5b6f79eabcf23f9c39c7617b9337a4d9d4a2249340a84626fa68abeed38f5973dff547fecd71164f96d0b11af516 + languageName: node + linkType: hard + "typescript@npm:^5": version: 5.8.3 resolution: "typescript@npm:5.8.3" @@ -13982,6 +14791,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.8.0": + version: 7.8.0 + resolution: "undici-types@npm:7.8.0" + checksum: 59521a5b9b50e72cb838a29466b3557b4eacbc191a83f4df5a2f7b156bc8263072b145dc4bb8ec41da7d56a7e9b178892458da02af769243d57f801a50ac5751 + languageName: node + linkType: hard + "unicorn-magic@npm:^0.3.0": version: 0.3.0 resolution: "unicorn-magic@npm:0.3.0" @@ -14293,7 +15109,7 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.0": +"uuid@npm:^9.0.0, uuid@npm:^9.0.1": version: 9.0.1 resolution: "uuid@npm:9.0.1" bin: @@ -14390,6 +15206,22 @@ __metadata: languageName: node linkType: hard +"weaviate-client@npm:^3.5.2": + version: 3.6.2 + resolution: "weaviate-client@npm:3.6.2" + dependencies: + abort-controller-x: ^0.4.3 + graphql: ^16.10.0 + graphql-request: ^6.1.0 + long: ^5.2.4 + nice-grpc: ^2.1.11 + nice-grpc-client-middleware-retry: ^3.1.10 + nice-grpc-common: ^2.0.2 + uuid: ^9.0.1 + checksum: c9eda29a6850443b1538585bd71f712c6cf34b7e63561b635f4821e2516e2fcb37d623049316ccf9c1c5e4adbea12b2681b0d38e2f2d66ba656e330e2b01f567 + languageName: node + linkType: hard + "web-namespaces@npm:^2.0.0": version: 2.0.1 resolution: "web-namespaces@npm:2.0.1" @@ -14726,6 +15558,15 @@ __metadata: languageName: node linkType: hard +"zod-to-json-schema@npm:^3.23.0": + version: 3.24.6 + resolution: "zod-to-json-schema@npm:3.24.6" + peerDependencies: + zod: ^3.24.1 + checksum: 5f4d29597cfd88d8fb8a539f0169affb8705d67ee9cbe478aa01bb1d2554e0540ca713fa4ddeb2fd834e87e7cdff61fa396f6d1925a9006de70afe6cd68bf7d2 + languageName: node + linkType: hard + "zod@npm:^3.20.2": version: 3.25.57 resolution: "zod@npm:3.25.57"