├── .editorconfig ├── .env.example ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── langgraph.json ├── package.json ├── src └── agent.ts ├── static ├── studio.gif └── studio.png ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | 7 | [*.{js,json,yml}] 8 | charset = utf-8 9 | indent_style = space 10 | indent_size = 2 11 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | TAVILY_API_KEY= 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | /.yarn/** linguist-vendored 2 | /.yarn/releases/* binary 3 | /.yarn/plugins/**/* binary 4 | /.pnp.* binary linguist-generated 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .yarn/* 2 | !.yarn/patches 3 | !.yarn/plugins 4 | !.yarn/releases 5 | !.yarn/sdks 6 | !.yarn/versions 7 | 8 | # Swap the comments on the following lines if you wish to use zero-installs 9 | # In that case, don't forget to run `yarn config set enableGlobalCache false`! 10 | # Documentation here: https://yarnpkg.com/features/caching#zero-installs 11 | 12 | #!.yarn/cache 13 | .pnp.* 14 | 15 | node_modules/ 16 | .env 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2024 LangChain 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LangGraph Studio TypeScript Starter (Beta) 2 | 3 | This is a sample project that will help you get started with developing [LangGraph.js](https://github.com/langchain-ai/langgraphjs) projects in [LangGraph Studio](https://github.com/langchain-ai/langgraph-studio) and deploying them to [LangGraph Cloud](https://langchain-ai.github.io/langgraph/cloud/deployment/setup_javascript/). 4 | 5 | ![](/static/studio.gif) 6 | 7 | It contains a simple example graph exported from `src/agent.ts` that implements a basic ReAct pattern where the model can use tools for more information before responding to a user query. It also includes the required `langgraph.json` config file for opening the graph in LangGraph Studio. 8 | 9 | ## Getting Started 10 | 11 | This demo requires an [OpenAI API key](https://openai.com/) and a [Tavily API key](https://tavily.com/) for search results. 12 | 13 | 1. Clone this repository. (git clone https://github.com/langchain-ai/langgraphjs-studio-starter.git) 14 | 2. Rename the existing `.env.example` file `.env` and fill in your `OPENAI_API_KEY` and `TAVILY_API_KEY`. 15 | 3. Download the latest release of LangGraph Studio [from here](https://github.com/langchain-ai/langgraph-studio/releases). 16 | 4. Log in/sign up for [LangSmith](https://smith.langchain.com/) if you haven't already. 17 | 5. Ensure Docker is running. You can [download Docker here](https://www.docker.com/) and install it if you don't have it already. 18 | 6. Open the enclosing folder in LangGraph Studio. 19 | 7. Start testing your app! 20 | 21 | The graph has access to a web search tool powered by [Tavily](https://tavily.com) - you can try asking it about current events like `"What is the current conservation status of the Great Barrier Reef?"` and watch the model use the tool. 22 | 23 | You will also need the latest versions of `@langchain/langgraph` and `@langchain/core`. If you have an existing project that you want to open in Studio, see [these instructions](https://langchain-ai.github.io/langgraphjs/how-tos/manage-ecosystem-dependencies/) for help upgrading. 24 | 25 | You can also [click here](https://youtu.be/RB3OHqM7TFA) to see a video tour of LangGraph.js and Studio. 26 | 27 | ## Development 28 | 29 | You must export your graph, or a function that returns a created graph, from a specified file. See [this page for more information](https://langchain-ai.github.io/langgraph/cloud/reference/cli/#configuration-file). 30 | 31 | While iterating on your graph, you can edit past state and rerun your app from past states to debug specific nodes. Local changes will be automatically applied via hot reload. Try adding an interrupt before the agent calls tools, updating the default system message in `src/utils/state.ts` to take on a persona, or adding additional nodes and edges! 32 | 33 | Follow up requests will be appended to the same thread. You can create an entirely new thread, clearing previous history, using the `+` button in the top right. 34 | 35 | You can find the latest docs on [LangGraph.js](https://langchain-ai.github.io/langgraphjs/) here, including examples and other references. 36 | 37 | ### Defining state 38 | 39 | The sample graph's state uses a prebuilt annotation called `MessagesAnnotation` to declare its state define how it handles return values from nodes. This annotation defines a state that is an object with a single key called `messages`. When a node in your graph returns messages, these returned messages are accumulated under the `messages` key in the state. 40 | 41 | A sample pattern might look like this: 42 | 43 | 1. HumanMessage - initial user input 44 | 2. AIMessage with .tool_calls - agent picking tool(s) to use to collect information 45 | 3. ToolMessage(s) - the responses (or errors) from the executed tools 46 | (... repeat steps 2 and 3 as needed ...) 47 | 4. AIMessage without .tool_calls - agent responding in unstructured format to the user. 48 | 5. HumanMessage - user responds with the next conversational turn. 49 | (... repeat steps 2-5 as needed ... ) 50 | 51 | The graph's state will merge lists of messages or returned single messages, updating existing messages by ID. 52 | 53 | By default, this ensures the state is "append-only", unless the new message has the same ID as an existing message. 54 | 55 | For further reading, see [this page](https://langchain-ai.github.io/langgraphjs/how-tos/define-state/#getting-started). 56 | 57 | ## Deployment 58 | 59 | Once you've refined your graph locally, you can easily deploy it from a Git repo to LangGraph Cloud, our scalable deployment service for agents. 60 | See the [documentation here](https://langchain-ai.github.io/langgraph/cloud/deployment/setup_javascript/) for information on how to sign up. 61 | 62 | ## Notes 63 | 64 | Currently in order for Studio to draw conditional edges properly, you will need to add a third parameter that manually lists the possible nodes the edge can route between. Here's an example: 65 | 66 | ```ts 67 | .addConditionalEdges( 68 | // First, we define the edges' source node. We use `callModel`. 69 | // This means these are the edges taken after the `callModel` node is called. 70 | "callModel", 71 | // Next, we pass in the function that will determine the sink node(s), which 72 | // will be called after the source node is called. 73 | routeModelOutput, 74 | // List of the possible destinations the conditional edge can route to. 75 | // Required for conditional edges to properly render the graph in Studio 76 | [ 77 | "tools", 78 | "__end__" 79 | ], 80 | ) 81 | ``` 82 | 83 | We are working to lift this requirement in the future. 84 | 85 | LangGraph Studio also integrates with [LangSmith](https://smith.langchain.com/) for more in-depth tracing and collaboration with teammates. 86 | 87 | You can swap in other models if you'd like by using [the appropriate LangChain.js integration package](https://js.langchain.com/docs/integrations/chat/) or the appropriate SDK directly. 88 | 89 | ## Thank you! 90 | 91 | LangGraph.js support in Studio is currently in beta, so if you have questions or feedback, please let us know. Connect with us on X [@LangChainAI](https://x.com/langchainai). 92 | 93 | -------------------------------------------------------------------------------- /langgraph.json: -------------------------------------------------------------------------------- 1 | { 2 | "node_version": "20", 3 | "dockerfile_lines": [], 4 | "dependencies": ["."], 5 | "graphs": { 6 | "agent": "./src/agent.ts:graph" 7 | }, 8 | "env": ".env" 9 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "langgraphjs-studio-starter", 3 | "packageManager": "yarn@1.22.22", 4 | "dependencies": { 5 | "@langchain/community": "^0.3.3", 6 | "@langchain/core": "^0.3.3", 7 | "@langchain/langgraph": "^0.2.8", 8 | "@langchain/openai": "^0.3.2", 9 | "langsmith": "^0.1.55", 10 | "zod": "^3.23.8", 11 | "zod-to-json-schema": "^3.23.2" 12 | }, 13 | "devDependencies": { 14 | "@tsconfig/recommended": "^1.0.7", 15 | "typescript": "^5.5.4" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/agent.ts: -------------------------------------------------------------------------------- 1 | import type { AIMessage } from "@langchain/core/messages"; 2 | import { TavilySearchResults } from "@langchain/community/tools/tavily_search"; 3 | import { ChatOpenAI } from "@langchain/openai"; 4 | 5 | import { MessagesAnnotation, StateGraph } from "@langchain/langgraph"; 6 | import { ToolNode } from "@langchain/langgraph/prebuilt"; 7 | 8 | const tools = [ 9 | new TavilySearchResults({ maxResults: 3, }), 10 | ]; 11 | 12 | // Define the function that calls the model 13 | async function callModel( 14 | state: typeof MessagesAnnotation.State, 15 | ) { 16 | /** 17 | * Call the LLM powering our agent. 18 | * Feel free to customize the prompt, model, and other logic! 19 | */ 20 | const model = new ChatOpenAI({ 21 | model: "gpt-4o", 22 | }).bindTools(tools); 23 | 24 | const response = await model.invoke([ 25 | { 26 | role: "system", 27 | content: `You are a helpful assistant. The current date is ${new Date().getTime()}.` 28 | }, 29 | ...state.messages 30 | ]); 31 | 32 | // MessagesAnnotation supports returning a single message or array of messages 33 | return { messages: response }; 34 | } 35 | 36 | // Define the function that determines whether to continue or not 37 | function routeModelOutput(state: typeof MessagesAnnotation.State) { 38 | const messages = state.messages; 39 | const lastMessage: AIMessage = messages[messages.length - 1]; 40 | // If the LLM is invoking tools, route there. 41 | if ((lastMessage?.tool_calls?.length ?? 0) > 0) { 42 | return "tools"; 43 | } 44 | // Otherwise end the graph. 45 | return "__end__"; 46 | } 47 | 48 | // Define a new graph. 49 | // See https://langchain-ai.github.io/langgraphjs/how-tos/define-state/#getting-started for 50 | // more on defining custom graph states. 51 | const workflow = new StateGraph(MessagesAnnotation) 52 | // Define the two nodes we will cycle between 53 | .addNode("callModel", callModel) 54 | .addNode("tools", new ToolNode(tools)) 55 | // Set the entrypoint as `callModel` 56 | // This means that this node is the first one called 57 | .addEdge("__start__", "callModel") 58 | .addConditionalEdges( 59 | // First, we define the edges' source node. We use `callModel`. 60 | // This means these are the edges taken after the `callModel` node is called. 61 | "callModel", 62 | // Next, we pass in the function that will determine the sink node(s), which 63 | // will be called after the source node is called. 64 | routeModelOutput, 65 | // List of the possible destinations the conditional edge can route to. 66 | // Required for conditional edges to properly render the graph in Studio 67 | [ 68 | "tools", 69 | "__end__" 70 | ], 71 | ) 72 | // This means that after `tools` is called, `callModel` node is called next. 73 | .addEdge("tools", "callModel"); 74 | 75 | // Finally, we compile it! 76 | // This compiles it into a graph you can invoke and deploy. 77 | export const graph = workflow.compile({ 78 | // if you want to update the state before calling the tools 79 | // interruptBefore: [], 80 | }); 81 | -------------------------------------------------------------------------------- /static/studio.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/langchain-ai/langgraphjs-studio-starter/cd9a02c64afd97fe008199665ebb0aac803451da/static/studio.gif -------------------------------------------------------------------------------- /static/studio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/langchain-ai/langgraphjs-studio-starter/cd9a02c64afd97fe008199665ebb0aac803451da/static/studio.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/recommended", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "lib": [ 6 | "ES2021", 7 | "ES2022.Object", 8 | "DOM" 9 | ], 10 | "target": "ES2021", 11 | "module": "nodenext", 12 | "sourceMap": true, 13 | "allowSyntheticDefaultImports": true, 14 | "baseUrl": "./src", 15 | "declaration": true, 16 | "noImplicitReturns": true, 17 | "noFallthroughCasesInSwitch": true, 18 | "noUnusedParameters": true, 19 | "useDefineForClassFields": true, 20 | "strictPropertyInitialization": false 21 | }, 22 | "exclude": [ 23 | "node_modules/", 24 | "dist/", 25 | "tests/" 26 | ], 27 | "include": [ 28 | "./src" 29 | ] 30 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@langchain/community@^0.3.3": 6 | version "0.3.3" 7 | resolved "https://registry.yarnpkg.com/@langchain/community/-/community-0.3.3.tgz#d5afb7bb39aa5a0118dc61d0563e1fdd1fdfdfe4" 8 | integrity sha512-445g9hBeBNndNC8ruQIO/sNbHYBL3jjrPuDW+/S6e/RAXo8whJA/02CWRcSMDYX3o4+1Brrg6rFimipOuM9M9w== 9 | dependencies: 10 | "@langchain/openai" ">=0.2.0 <0.4.0" 11 | binary-extensions "^2.2.0" 12 | expr-eval "^2.0.2" 13 | flat "^5.0.2" 14 | js-yaml "^4.1.0" 15 | langchain ">=0.2.3 <0.4.0" 16 | langsmith "~0.1.56" 17 | uuid "^10.0.0" 18 | zod "^3.22.3" 19 | zod-to-json-schema "^3.22.5" 20 | 21 | "@langchain/core@^0.3.3": 22 | version "0.3.3" 23 | resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.3.3.tgz#af12fd767ff2fcedb0a71bd79e6588d7dd52b6b6" 24 | integrity sha512-WAtkmhbdl2T41qzimTzhb3pXCHQxO4onqxzPxgdf3KftQdTwLq0YYBDhozRMZLNAd/+cfH0ymZGaZSsnc9Ogsg== 25 | dependencies: 26 | ansi-styles "^5.0.0" 27 | camelcase "6" 28 | decamelize "1.2.0" 29 | js-tiktoken "^1.0.12" 30 | langsmith "^0.1.56" 31 | mustache "^4.2.0" 32 | p-queue "^6.6.2" 33 | p-retry "4" 34 | uuid "^10.0.0" 35 | zod "^3.22.4" 36 | zod-to-json-schema "^3.22.3" 37 | 38 | "@langchain/langgraph-checkpoint@~0.0.6": 39 | version "0.0.6" 40 | resolved "https://registry.yarnpkg.com/@langchain/langgraph-checkpoint/-/langgraph-checkpoint-0.0.6.tgz#69f0c5c9aeefd48dcf0fa1ffa0744d8139a9f27d" 41 | integrity sha512-hQsznlUMFKyOCaN9VtqNSSemfKATujNy5ePM6NX7lruk/Mmi2t7R9SsBnf9G2Yts+IaIwv3vJJaAFYEHfqbc5g== 42 | dependencies: 43 | uuid "^10.0.0" 44 | 45 | "@langchain/langgraph@^0.2.8": 46 | version "0.2.8" 47 | resolved "https://registry.yarnpkg.com/@langchain/langgraph/-/langgraph-0.2.8.tgz#9606982686ee857064a217dc5599ebdbc9aaf2fe" 48 | integrity sha512-sQ3NqwZzdvILeiYQQCDCBFj+FLd3oBfg2sxMo3e5g7vd5+zd/hpK5+JRTHbsMZte0PTAlTbQ5YbfCC2D6K9AVw== 49 | dependencies: 50 | "@langchain/langgraph-checkpoint" "~0.0.6" 51 | double-ended-queue "^2.1.0-0" 52 | uuid "^10.0.0" 53 | zod "^3.23.8" 54 | 55 | "@langchain/openai@>=0.1.0 <0.4.0", "@langchain/openai@>=0.2.0 <0.4.0": 56 | version "0.3.0" 57 | resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.3.0.tgz#89329ab9350187269a471dac2c2f4fca5f1fc5a3" 58 | integrity sha512-yXrz5Qn3t9nq3NQAH2l4zZOI4ev2CFdLC5kvmi5SdW4bggRuM40SXTUAY3VRld4I5eocYfk82VbrlA+6dvN5EA== 59 | dependencies: 60 | js-tiktoken "^1.0.12" 61 | openai "^4.57.3" 62 | zod "^3.22.4" 63 | zod-to-json-schema "^3.22.3" 64 | 65 | "@langchain/openai@^0.3.2": 66 | version "0.3.2" 67 | resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.3.2.tgz#6c7b7693bef4572a1b3fb1032bfb9977aa269d13" 68 | integrity sha512-p513TVHkZ+mMV4dGloprPFKaukOuOZxyPXY/IWReQK34c1dpnywmjrXg8ydcnfncNbq+kJ/kKe671NK9bic4WA== 69 | dependencies: 70 | js-tiktoken "^1.0.12" 71 | openai "^4.57.3" 72 | zod "^3.22.4" 73 | zod-to-json-schema "^3.22.3" 74 | 75 | "@langchain/textsplitters@>=0.0.0 <0.2.0": 76 | version "0.1.0" 77 | resolved "https://registry.yarnpkg.com/@langchain/textsplitters/-/textsplitters-0.1.0.tgz#f37620992192df09ecda3dfbd545b36a6bcbae46" 78 | integrity sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw== 79 | dependencies: 80 | js-tiktoken "^1.0.12" 81 | 82 | "@tsconfig/recommended@^1.0.7": 83 | version "1.0.7" 84 | resolved "https://registry.yarnpkg.com/@tsconfig/recommended/-/recommended-1.0.7.tgz#fdd95fc2c8d643c8b4a8ca45fd68eea248512407" 85 | integrity sha512-xiNMgCuoy4mCL4JTywk9XFs5xpRUcKxtWEcMR6FNMtsgewYTIgIR+nvlP4A4iRCAzRsHMnPhvTRrzp4AGcRTEA== 86 | 87 | "@types/node-fetch@^2.6.4": 88 | version "2.6.11" 89 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" 90 | integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== 91 | dependencies: 92 | "@types/node" "*" 93 | form-data "^4.0.0" 94 | 95 | "@types/node@*": 96 | version "22.5.0" 97 | resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958" 98 | integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== 99 | dependencies: 100 | undici-types "~6.19.2" 101 | 102 | "@types/node@^18.11.18": 103 | version "18.19.46" 104 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.46.tgz#51801396c01153e0626e36f43386e83bc768b072" 105 | integrity sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA== 106 | dependencies: 107 | undici-types "~5.26.4" 108 | 109 | "@types/qs@^6.9.15": 110 | version "6.9.15" 111 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" 112 | integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== 113 | 114 | "@types/retry@0.12.0": 115 | version "0.12.0" 116 | resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" 117 | integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== 118 | 119 | "@types/uuid@^10.0.0": 120 | version "10.0.0" 121 | resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" 122 | integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== 123 | 124 | abort-controller@^3.0.0: 125 | version "3.0.0" 126 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 127 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 128 | dependencies: 129 | event-target-shim "^5.0.0" 130 | 131 | agentkeepalive@^4.2.1: 132 | version "4.5.0" 133 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" 134 | integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== 135 | dependencies: 136 | humanize-ms "^1.2.1" 137 | 138 | ansi-styles@^5.0.0: 139 | version "5.2.0" 140 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" 141 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 142 | 143 | argparse@^2.0.1: 144 | version "2.0.1" 145 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 146 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 147 | 148 | asynckit@^0.4.0: 149 | version "0.4.0" 150 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 151 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 152 | 153 | base64-js@^1.5.1: 154 | version "1.5.1" 155 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 156 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 157 | 158 | binary-extensions@^2.2.0: 159 | version "2.3.0" 160 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" 161 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 162 | 163 | call-bind@^1.0.7: 164 | version "1.0.7" 165 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" 166 | integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== 167 | dependencies: 168 | es-define-property "^1.0.0" 169 | es-errors "^1.3.0" 170 | function-bind "^1.1.2" 171 | get-intrinsic "^1.2.4" 172 | set-function-length "^1.2.1" 173 | 174 | camelcase@6: 175 | version "6.3.0" 176 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 177 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 178 | 179 | combined-stream@^1.0.8: 180 | version "1.0.8" 181 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 182 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 183 | dependencies: 184 | delayed-stream "~1.0.0" 185 | 186 | commander@^10.0.1: 187 | version "10.0.1" 188 | resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" 189 | integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== 190 | 191 | decamelize@1.2.0: 192 | version "1.2.0" 193 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 194 | integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== 195 | 196 | define-data-property@^1.1.4: 197 | version "1.1.4" 198 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" 199 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 200 | dependencies: 201 | es-define-property "^1.0.0" 202 | es-errors "^1.3.0" 203 | gopd "^1.0.1" 204 | 205 | delayed-stream@~1.0.0: 206 | version "1.0.0" 207 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 208 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 209 | 210 | double-ended-queue@^2.1.0-0: 211 | version "2.1.0-0" 212 | resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 213 | integrity sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ== 214 | 215 | es-define-property@^1.0.0: 216 | version "1.0.0" 217 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" 218 | integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== 219 | dependencies: 220 | get-intrinsic "^1.2.4" 221 | 222 | es-errors@^1.3.0: 223 | version "1.3.0" 224 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" 225 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 226 | 227 | event-target-shim@^5.0.0: 228 | version "5.0.1" 229 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 230 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 231 | 232 | eventemitter3@^4.0.4: 233 | version "4.0.7" 234 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 235 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 236 | 237 | expr-eval@^2.0.2: 238 | version "2.0.2" 239 | resolved "https://registry.yarnpkg.com/expr-eval/-/expr-eval-2.0.2.tgz#fa6f044a7b0c93fde830954eb9c5b0f7fbc7e201" 240 | integrity sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg== 241 | 242 | flat@^5.0.2: 243 | version "5.0.2" 244 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 245 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 246 | 247 | form-data-encoder@1.7.2: 248 | version "1.7.2" 249 | resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" 250 | integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== 251 | 252 | form-data@^4.0.0: 253 | version "4.0.0" 254 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 255 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 256 | dependencies: 257 | asynckit "^0.4.0" 258 | combined-stream "^1.0.8" 259 | mime-types "^2.1.12" 260 | 261 | formdata-node@^4.3.2: 262 | version "4.4.1" 263 | resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" 264 | integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== 265 | dependencies: 266 | node-domexception "1.0.0" 267 | web-streams-polyfill "4.0.0-beta.3" 268 | 269 | function-bind@^1.1.2: 270 | version "1.1.2" 271 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 272 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 273 | 274 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: 275 | version "1.2.4" 276 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" 277 | integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== 278 | dependencies: 279 | es-errors "^1.3.0" 280 | function-bind "^1.1.2" 281 | has-proto "^1.0.1" 282 | has-symbols "^1.0.3" 283 | hasown "^2.0.0" 284 | 285 | gopd@^1.0.1: 286 | version "1.0.1" 287 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 288 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 289 | dependencies: 290 | get-intrinsic "^1.1.3" 291 | 292 | has-property-descriptors@^1.0.2: 293 | version "1.0.2" 294 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" 295 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 296 | dependencies: 297 | es-define-property "^1.0.0" 298 | 299 | has-proto@^1.0.1: 300 | version "1.0.3" 301 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" 302 | integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== 303 | 304 | has-symbols@^1.0.3: 305 | version "1.0.3" 306 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 307 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 308 | 309 | hasown@^2.0.0: 310 | version "2.0.2" 311 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 312 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 313 | dependencies: 314 | function-bind "^1.1.2" 315 | 316 | humanize-ms@^1.2.1: 317 | version "1.2.1" 318 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 319 | integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 320 | dependencies: 321 | ms "^2.0.0" 322 | 323 | js-tiktoken@^1.0.12: 324 | version "1.0.14" 325 | resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.14.tgz#756f353262d559da16b58b5bcecfd93330076da2" 326 | integrity sha512-Pk3l3WOgM9joguZY2k52+jH82RtABRgB5RdGFZNUGbOKGMVlNmafcPA3b0ITcCZPu1L9UclP1tne6aw7ZI4Myg== 327 | dependencies: 328 | base64-js "^1.5.1" 329 | 330 | js-yaml@^4.1.0: 331 | version "4.1.0" 332 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 333 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 334 | dependencies: 335 | argparse "^2.0.1" 336 | 337 | jsonpointer@^5.0.1: 338 | version "5.0.1" 339 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" 340 | integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== 341 | 342 | "langchain@>=0.2.3 <0.4.0": 343 | version "0.3.0" 344 | resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.3.0.tgz#006db05e5c774db83725194336c01e01bcace703" 345 | integrity sha512-gvB8ikvCxL6KWS0HN89gdHMDNi9gUKz3MRMU6/TqC86T0v9Bvg2mIS3pF1qBaoC3/SXG404+uUduOiX7BOXmJQ== 346 | dependencies: 347 | "@langchain/openai" ">=0.1.0 <0.4.0" 348 | "@langchain/textsplitters" ">=0.0.0 <0.2.0" 349 | js-tiktoken "^1.0.12" 350 | js-yaml "^4.1.0" 351 | jsonpointer "^5.0.1" 352 | langsmith "~0.1.40" 353 | openapi-types "^12.1.3" 354 | p-retry "4" 355 | uuid "^10.0.0" 356 | yaml "^2.2.1" 357 | zod "^3.22.4" 358 | zod-to-json-schema "^3.22.3" 359 | 360 | langsmith@^0.1.55: 361 | version "0.1.55" 362 | resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.55.tgz#bdbb8015a28093f4a248c0ee9b8937731c5baa93" 363 | integrity sha512-6NVtI04UUnIY59I/imOX02FG/QMGfqStu8tiJtyyreKMv2GAN0EE9Z5Ap1wzOe6v8ukEcV3NwEO2LYOPwup1PQ== 364 | dependencies: 365 | "@types/uuid" "^10.0.0" 366 | commander "^10.0.1" 367 | p-queue "^6.6.2" 368 | p-retry "4" 369 | semver "^7.6.3" 370 | uuid "^10.0.0" 371 | 372 | langsmith@^0.1.56, langsmith@~0.1.56: 373 | version "0.1.61" 374 | resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.61.tgz#4c3d2677fe79d9f936198918c3af6c48e54f79d7" 375 | integrity sha512-XQE4KPScwPmdaT0mWDzhNxj9gvqXUR+C7urLA0QFi27XeoQdm17eYpudenn4wxC0gIyUJutQCyuYJpfwlT5JnQ== 376 | dependencies: 377 | "@types/uuid" "^10.0.0" 378 | commander "^10.0.1" 379 | p-queue "^6.6.2" 380 | p-retry "4" 381 | semver "^7.6.3" 382 | uuid "^10.0.0" 383 | 384 | langsmith@~0.1.40: 385 | version "0.1.48" 386 | resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.48.tgz#be6ca209bab3436b45dfe71aca7bacc88b61b2bc" 387 | integrity sha512-lh98dZeShVPG1VzENpbjFWiburyYpChsO7nehGwxuqQ5/E1BBFKpsDCxLTcgXYpgWFPJxRvMqq7bLeq/txjakw== 388 | dependencies: 389 | "@types/uuid" "^10.0.0" 390 | commander "^10.0.1" 391 | p-queue "^6.6.2" 392 | p-retry "4" 393 | semver "^7.6.3" 394 | uuid "^10.0.0" 395 | 396 | mime-db@1.52.0: 397 | version "1.52.0" 398 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 399 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 400 | 401 | mime-types@^2.1.12: 402 | version "2.1.35" 403 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 404 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 405 | dependencies: 406 | mime-db "1.52.0" 407 | 408 | ms@^2.0.0: 409 | version "2.1.3" 410 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 411 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 412 | 413 | mustache@^4.2.0: 414 | version "4.2.0" 415 | resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" 416 | integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== 417 | 418 | node-domexception@1.0.0: 419 | version "1.0.0" 420 | resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" 421 | integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== 422 | 423 | node-fetch@^2.6.7: 424 | version "2.7.0" 425 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 426 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 427 | dependencies: 428 | whatwg-url "^5.0.0" 429 | 430 | object-inspect@^1.13.1: 431 | version "1.13.2" 432 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" 433 | integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== 434 | 435 | openai@^4.57.3: 436 | version "4.61.0" 437 | resolved "https://registry.yarnpkg.com/openai/-/openai-4.61.0.tgz#fa21f2a636595d656e97c4aae6b5d9a8be9f05e2" 438 | integrity sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q== 439 | dependencies: 440 | "@types/node" "^18.11.18" 441 | "@types/node-fetch" "^2.6.4" 442 | "@types/qs" "^6.9.15" 443 | abort-controller "^3.0.0" 444 | agentkeepalive "^4.2.1" 445 | form-data-encoder "1.7.2" 446 | formdata-node "^4.3.2" 447 | node-fetch "^2.6.7" 448 | qs "^6.10.3" 449 | 450 | openapi-types@^12.1.3: 451 | version "12.1.3" 452 | resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" 453 | integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== 454 | 455 | p-finally@^1.0.0: 456 | version "1.0.0" 457 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 458 | integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== 459 | 460 | p-queue@^6.6.2: 461 | version "6.6.2" 462 | resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" 463 | integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 464 | dependencies: 465 | eventemitter3 "^4.0.4" 466 | p-timeout "^3.2.0" 467 | 468 | p-retry@4: 469 | version "4.6.2" 470 | resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" 471 | integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== 472 | dependencies: 473 | "@types/retry" "0.12.0" 474 | retry "^0.13.1" 475 | 476 | p-timeout@^3.2.0: 477 | version "3.2.0" 478 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 479 | integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 480 | dependencies: 481 | p-finally "^1.0.0" 482 | 483 | qs@^6.10.3: 484 | version "6.13.0" 485 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" 486 | integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== 487 | dependencies: 488 | side-channel "^1.0.6" 489 | 490 | retry@^0.13.1: 491 | version "0.13.1" 492 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" 493 | integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== 494 | 495 | semver@^7.6.3: 496 | version "7.6.3" 497 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" 498 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== 499 | 500 | set-function-length@^1.2.1: 501 | version "1.2.2" 502 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" 503 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 504 | dependencies: 505 | define-data-property "^1.1.4" 506 | es-errors "^1.3.0" 507 | function-bind "^1.1.2" 508 | get-intrinsic "^1.2.4" 509 | gopd "^1.0.1" 510 | has-property-descriptors "^1.0.2" 511 | 512 | side-channel@^1.0.6: 513 | version "1.0.6" 514 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" 515 | integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== 516 | dependencies: 517 | call-bind "^1.0.7" 518 | es-errors "^1.3.0" 519 | get-intrinsic "^1.2.4" 520 | object-inspect "^1.13.1" 521 | 522 | tr46@~0.0.3: 523 | version "0.0.3" 524 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 525 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 526 | 527 | typescript@^5.5.4: 528 | version "5.5.4" 529 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" 530 | integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== 531 | 532 | undici-types@~5.26.4: 533 | version "5.26.5" 534 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 535 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 536 | 537 | undici-types@~6.19.2: 538 | version "6.19.8" 539 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" 540 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== 541 | 542 | uuid@^10.0.0: 543 | version "10.0.0" 544 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" 545 | integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== 546 | 547 | web-streams-polyfill@4.0.0-beta.3: 548 | version "4.0.0-beta.3" 549 | resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" 550 | integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== 551 | 552 | webidl-conversions@^3.0.0: 553 | version "3.0.1" 554 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 555 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 556 | 557 | whatwg-url@^5.0.0: 558 | version "5.0.0" 559 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 560 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 561 | dependencies: 562 | tr46 "~0.0.3" 563 | webidl-conversions "^3.0.0" 564 | 565 | yaml@^2.2.1: 566 | version "2.5.0" 567 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" 568 | integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== 569 | 570 | zod-to-json-schema@^3.22.3, zod-to-json-schema@^3.22.5, zod-to-json-schema@^3.23.2: 571 | version "3.23.2" 572 | resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.23.2.tgz#bc7e379c8050462538383e382964c03d8fe008f9" 573 | integrity sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw== 574 | 575 | zod@^3.22.3, zod@^3.22.4, zod@^3.23.8: 576 | version "3.23.8" 577 | resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" 578 | integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== 579 | --------------------------------------------------------------------------------