From b49762c554156a4febfb1cdfec9e6936c2533dd2 Mon Sep 17 00:00:00 2001 From: Shadi Date: Fri, 29 Sep 2023 10:11:47 -0500 Subject: [PATCH] fix: ai endpoint issues and docs (#3503) * fix: ai endpoint issues and docs * chore: better error logging * chore: let it crash so i can see logs again * chore: maybe? * fix: use enhanced ai endpoint code from supabase example * chore: more fixes * chore: add two more env vars for ai endpoint * fix: ts * fix: eslint * fix: prompt * chore: pr fixes --------- Co-authored-by: Si Taggart --- .../engineering/environment-variables.md | 6 +- packages/paste-website/package.json | 6 +- packages/paste-website/src/pages/api/ai.ts | 270 ++++-- yarn.lock | 775 +++++++----------- 4 files changed, 499 insertions(+), 558 deletions(-) diff --git a/internal-docs/engineering/environment-variables.md b/internal-docs/engineering/environment-variables.md index 1b0050713f..45b0db64da 100644 --- a/internal-docs/engineering/environment-variables.md +++ b/internal-docs/engineering/environment-variables.md @@ -26,4 +26,8 @@ Full list of Environment variables and where they are needed. | CYPRESS_RECORD_KEY | Cypress record key so we can record our cypress runs | ✅ | ✅ | | | | PERCY_TOKEN | Percy.io token | ✅ | ✅ | | | | USE_CYPRESS_VRT | Key to enable the cypress vrt integration | ✅ | | | | -| NX_CLOUD_ACCESS_TOKEN | Token to enable nx cloud cache for builds | ✅ | ✅ | ✅ | ✅ | +| NX_CLOUD_ACCESS_TOKEN | Token to enable nx cloud cache for builds | ✅ | ✅ | ✅ | ✅ | +| OPENAI_API_KET | ChatGPT4 API Key | ✅ | | ✅ | | +| OPENAI_API_SECRET | To prevent unauthorized usage of OpenAI | ✅ | | ✅ | | +| SUPABASE_URL | Supabase API url | ✅ | | ✅ | | +| SUPABASE_KEY | API Key to query supabase db | ✅ | | ✅ | | diff --git a/packages/paste-website/package.json b/packages/paste-website/package.json index 816ac58225..504cb81d65 100644 --- a/packages/paste-website/package.json +++ b/packages/paste-website/package.json @@ -27,6 +27,7 @@ "@next/bundle-analyzer": "^13.1.6", "@next/mdx": "^13.1.6", "@sparticuz/chromium": "^110.0.0", + "@supabase/supabase-js": "^2.36.0", "@twilio-paste/account-switcher": "^2.0.1", "@twilio-paste/alert": "^14.0.0", "@twilio-paste/alert-dialog": "^9.1.0", @@ -133,20 +134,23 @@ "@types/gtag.js": "^0.0.12", "@types/lodash": "^4.14.182", "@types/mdx-js__react": "^1.5.5", + "ai": "^2.2.13", "airtable": "^0.11.6", "color": "^3.1.2", + "common-tags": "^1.8.2", "date-fns": "2.21.3", "deepmerge": "4.2.2", "dotenv": "^16.0.0", "globby-esm": "npm:globby@^13.1.3", + "gpt3-tokenizer": "^1.1.5", "highcharts": "^9.3.3", "highcharts-react-official": "^3.1.0", - "langchain": "^0.0.151", "lodash": "4.17.21", "lottie-web": "^5.7.4", "markdown-to-jsx": "^7.3.2", "mdast-util-to-string": "^3.1.1", "next": "^13.1.6", + "openai-edge": "^1.2.2", "pretty-format": "^28.1.0", "prism-react-renderer": "^1.3.5", "puppeteer-core": "^19.6.1", diff --git a/packages/paste-website/src/pages/api/ai.ts b/packages/paste-website/src/pages/api/ai.ts index 4426d46f21..84b2a25b59 100644 --- a/packages/paste-website/src/pages/api/ai.ts +++ b/packages/paste-website/src/pages/api/ai.ts @@ -1,80 +1,224 @@ +/* eslint-disable max-classes-per-file */ /** * API endpoint for querying our doc site with ChatGPT4 + * Copied from Supabase article. + * https://supabase.com/blog/chatgpt-supabase-docs * - * Requires two environment variables: + * Requires four environment variables: * - OPENAI_API_KEY: Your OpenAI API key * - OPENAI_API_SECRET: Custom secret to block unauthorized requests + * - SUPABASE_URL: Url to your Supabase project + * - SUPABASE_KEY: Service role key for your Supabase project * * Please set these in your .env file and on your deployment boxes configuration. */ -import {fileURLToPath} from 'url'; -import path from 'path'; - -import {loadQAStuffChain} from 'langchain/chains'; -import {OpenAIEmbeddings} from 'langchain/embeddings/openai'; -import {ChatOpenAI} from 'langchain/chat_models/openai'; -import {FaissStore} from 'langchain/vectorstores/faiss'; -import type {NextApiRequest, NextApiResponse} from 'next'; - -export default async function handler(req: NextApiRequest, res: NextApiResponse): Promise { - const {question, secret} = req.body; - // Exit early if the required params aren't provided - if (!question || secret !== process.env.OPENAI_API_SECRET) { - res.status(200).send({answer: 'Please provide a question'}); - return; +import type {NextRequest} from 'next/server'; +import {createClient} from '@supabase/supabase-js'; +// @ts-expect-error not typed +import {codeBlock, oneLine} from 'common-tags'; +import GPT3Tokenizer from 'gpt3-tokenizer'; +import { + Configuration, + OpenAIApi, + type CreateModerationResponse, + type CreateEmbeddingResponse, + type ChatCompletionRequestMessage, +} from 'openai-edge'; +import {OpenAIStream, StreamingTextResponse} from 'ai'; + +class ApplicationError extends Error { + // eslint-disable-next-line @typescript-eslint/no-parameter-properties + constructor(message: string, public data: Record = {}) { + super(message); } +} +class UserError extends ApplicationError {} + +const openAiKey = process.env.OPENAI_API_KEY; +const openAiSecret = process.env.OPENAI_API_SECRET; +const supabaseUrl = process.env.SUPABASE_URL; +const supabaseServiceKey = process.env.SUPABASE_KEY; - /* - * Get the FAISS DB - */ - const __filename = fileURLToPath(import.meta.url); - const __dirname = path.dirname(__filename); - const directory = path.join(__dirname, '../../../indexes/faiss_index'); - const loadedVectorStore = await FaissStore.loadFromPython(directory, new OpenAIEmbeddings()); - - /* - * Create the OpenAI model - */ - const model = new ChatOpenAI({ - modelName: 'gpt-4', - temperature: 0, - }); - - /* - * Create the QA stuff chain from our GPT-4 model - */ - const stuffChain = loadQAStuffChain(model); +const config = new Configuration({ + apiKey: openAiKey, +}); +const openai = new OpenAIApi(config); +export const runtime = 'edge'; + +export default async function handler(req: NextRequest): Promise { try { - /* - * We cannot provide GPT-4 with our entire doc site. For this reason we use the FAISS DB. - * This DB is a compressed vector db that allows us to search for similar "documents" - * based on a provided question string. We take the top 4 results and provide them to - * GPT-4 for further processing. - */ - const inputDocuments = await loadedVectorStore.similaritySearch(question, 4); - - /* - * Ask GPT-4 the question and provide the input documents - */ - const answer = await stuffChain.call({ + if (!openAiKey) { + throw new ApplicationError('Missing environment variable OPENAI_API_KEY'); + } + if (!openAiSecret) { + throw new ApplicationError('Missing environment variable OPENAI_API_SECRET'); + } + + if (!supabaseUrl) { + throw new ApplicationError('Missing environment variable SUPABASE_URL'); + } + + if (!supabaseServiceKey) { + throw new ApplicationError('Missing environment variable SUPABASE_KEY'); + } + + const requestData = await req.json(); + + if (!requestData) { + throw new UserError('Missing request data'); + } + + const {prompt: query, secret} = requestData; + + if (!secret || secret !== openAiSecret) { + throw new UserError("Incorrect 'secret' in request data"); + } + + if (!query) { + throw new UserError("Missing 'prompt' in request data"); + } + + const supabaseClient = createClient(supabaseUrl, supabaseServiceKey); + + // Moderate the content to comply with OpenAI T&C + const sanitizedQuery = query.trim(); + const moderationResponse: CreateModerationResponse = await openai + .createModeration({input: sanitizedQuery}) + .then((res: any) => res.json()); + + // @ts-expect-error this is a bug in the types + if (moderationResponse.error) { + // @ts-expect-error this is a bug in the types + throw new ApplicationError('Failed to moderate content', moderationResponse.error.message); + } + const [results] = moderationResponse.results; + + if (results.flagged) { + throw new UserError('Flagged content', { + flagged: true, + categories: results.categories, + }); + } + + // Create embedding from query + const embeddingResponse = await openai.createEmbedding({ + model: 'text-embedding-ada-002', + input: sanitizedQuery.replaceAll('\n', ' '), + }); + + if (embeddingResponse.status !== 200) { + throw new ApplicationError('Failed to create embedding for question', embeddingResponse); + } + + const { + data: [{embedding}], + }: CreateEmbeddingResponse = await embeddingResponse.json(); + + const {error: matchError, data: pageSections} = await supabaseClient.rpc('match_page_sections', { + embedding, + /* eslint-disable camelcase */ + match_threshold: 0.78, + match_count: 10, + min_content_length: 50, + /* eslint-enable camelcase */ + }); + + if (matchError) { + throw new ApplicationError('Failed to match page sections', matchError); + } + + const tokenizer = new GPT3Tokenizer({type: 'gpt3'}); + let tokenCount = 0; + let contextText = ''; + + // eslint-disable-next-line unicorn/no-for-loop + for (const {content} of pageSections) { + const encoded = tokenizer.encode(content); + tokenCount += encoded.text.length; + + if (tokenCount >= 1500) { + break; + } + + contextText += `${content.trim()}\n---\n`; + } + + const prompt = codeBlock` + ${oneLine` + You are a very enthusiastic Paste design system representative who loves + to help people! Given the following sections from the Paste + documentation, answer the question using only that information, + outputted in markdown format. If you are unsure and the answer + is not explicitly written in the documentation, say + "Sorry, I don't know how to help with that." + `} + + Context sections: + ${contextText} + + Question: """ + ${sanitizedQuery} + """ + + Answer as markdown (including related code snippets if available): + `; + + const chatMessage: ChatCompletionRequestMessage = { + role: 'user', + content: prompt, + }; + + const response = await openai.createChatCompletion({ + model: 'gpt-4', + messages: [chatMessage], // eslint-disable-next-line camelcase - input_documents: inputDocuments, - question, + max_tokens: 512, + temperature: 0, + stream: true, }); - res.status(200).send({answer}); - } catch (error) { - res.status(500).send({error}); + if (!response.ok) { + const error = await response.json(); + throw new ApplicationError('Failed to generate completion', error); + } + + // Transform the response into a readable stream + const stream = OpenAIStream(response); + + // Return a StreamingTextResponse, which can be consumed by the client + return new StreamingTextResponse(stream); + } catch (error: unknown) { + if (error instanceof UserError) { + return new Response( + JSON.stringify({ + error: error.message, + data: error.data, + }), + { + status: 400, + headers: {'Content-Type': 'application/json'}, + } + ); + } else if (error instanceof ApplicationError) { + // Print out application errors with their additional data + // eslint-disable-next-line no-console + console.error(`${error.message}: ${JSON.stringify(error.data)}`); + } else { + // Print out unexpected errors as is to help with debugging + // eslint-disable-next-line no-console + console.error(error); + } + + return new Response( + JSON.stringify({ + error: 'There was an error processing your request', + }), + { + status: 500, + headers: {'Content-Type': 'application/json'}, + } + ); } } - -export const config = { - api: { - bodyParser: { - sizeLimit: '10kb', - }, - }, - // Specifies the maximum allowed duration for this function to execute (in seconds) - maxDuration: 15, -}; +/* eslint-enable max-classes-per-file */ diff --git a/yarn.lock b/yarn.lock index eefeaabb8a..89f71c8f61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -191,22 +191,6 @@ __metadata: languageName: node linkType: hard -"@anthropic-ai/sdk@npm:^0.6.2": - version: 0.6.2 - resolution: "@anthropic-ai/sdk@npm:0.6.2" - dependencies: - "@types/node": ^18.11.18 - "@types/node-fetch": ^2.6.4 - abort-controller: ^3.0.0 - agentkeepalive: ^4.2.1 - digest-fetch: ^1.3.0 - form-data-encoder: 1.7.2 - formdata-node: ^4.3.2 - node-fetch: ^2.6.7 - checksum: a07dd0d42fe83b79bec506399755161cb12d26df756093df7f6189d062d01bd944a4d909d9d13b178567e7778b8966fe6f4b7051b9397cbd035c3fc184289c36 - languageName: node - linkType: hard - "@apideck/better-ajv-errors@npm:^0.3.1": version: 0.3.3 resolution: "@apideck/better-ajv-errors@npm:0.3.3" @@ -12007,6 +11991,76 @@ __metadata: languageName: node linkType: hard +"@supabase/functions-js@npm:^2.1.5": + version: 2.1.5 + resolution: "@supabase/functions-js@npm:2.1.5" + dependencies: + "@supabase/node-fetch": ^2.6.14 + checksum: f2ab8636af8d982270b61631a5120369ca10db101b4298da71be892e5d91a8ddaddcf7f51079ad0fe24731a15892b21bd7dbe41b997da9d4b90e4326d09632c8 + languageName: node + linkType: hard + +"@supabase/gotrue-js@npm:^2.54.0": + version: 2.54.0 + resolution: "@supabase/gotrue-js@npm:2.54.0" + dependencies: + "@supabase/node-fetch": ^2.6.14 + checksum: ce2e83536e96331e08bb89e17a0e2c4b6f888ed53f7da7ad03f58e1547d188d366536e8445fddf69850ec2e6ed82d12643ecf630fcc8dbd1c8b7e73d20e2eaa5 + languageName: node + linkType: hard + +"@supabase/node-fetch@npm:^2.6.14": + version: 2.6.14 + resolution: "@supabase/node-fetch@npm:2.6.14" + dependencies: + whatwg-url: ^5.0.0 + checksum: 5c022875b096fe9fd3e4870f1eea4a4a48e199a3881e74f164b977639acad7e438fe8dc6129a8d3e97475a25149e5ede17e264965a83b5ceea86cef2446eb222 + languageName: node + linkType: hard + +"@supabase/postgrest-js@npm:^1.8.4": + version: 1.8.4 + resolution: "@supabase/postgrest-js@npm:1.8.4" + dependencies: + "@supabase/node-fetch": ^2.6.14 + checksum: e37f3046362986b739fc237b6aef9d08cf40e22fff667a3f98010f8638f91fce7019cc3300059d4405385181e7ef89ad85acbe2906d3fb0aa2d969a2a31b3d1e + languageName: node + linkType: hard + +"@supabase/realtime-js@npm:^2.7.4": + version: 2.7.4 + resolution: "@supabase/realtime-js@npm:2.7.4" + dependencies: + "@types/phoenix": ^1.5.4 + "@types/websocket": ^1.0.3 + websocket: ^1.0.34 + checksum: f718dd2a9fbf9068a6cdbda45fc0d8b14198424a1901fec942913b07d1206ac8e0abebfb7ad84bb16325a1e4bfa36bf6a14b1c71fca05ad038a82f6d210f1e8c + languageName: node + linkType: hard + +"@supabase/storage-js@npm:^2.5.4": + version: 2.5.4 + resolution: "@supabase/storage-js@npm:2.5.4" + dependencies: + "@supabase/node-fetch": ^2.6.14 + checksum: 034a918c1c5504174cc67c0335575fa647958a9c53eb7440c1f24a210177c60bde9990fde19eb8902c2bbe3bd823be01204e36ad290bcb8df2387ac5511ed2a4 + languageName: node + linkType: hard + +"@supabase/supabase-js@npm:^2.36.0": + version: 2.36.0 + resolution: "@supabase/supabase-js@npm:2.36.0" + dependencies: + "@supabase/functions-js": ^2.1.5 + "@supabase/gotrue-js": ^2.54.0 + "@supabase/node-fetch": ^2.6.14 + "@supabase/postgrest-js": ^1.8.4 + "@supabase/realtime-js": ^2.7.4 + "@supabase/storage-js": ^2.5.4 + checksum: c95d50b3e9c26c18bb71a00e6e8e7cf3915bf8df23e0d77afee34365e4c133edaa62711fbc5cb73b3984a793e63e41aed8de97ea7293fc5574afb539b3aba470 + languageName: node + linkType: hard + "@surma/rollup-plugin-off-main-thread@npm:^2.2.3": version: 2.2.3 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" @@ -17058,6 +17112,7 @@ __metadata: "@next/eslint-plugin-next": ^13.1.6 "@next/mdx": ^13.1.6 "@sparticuz/chromium": ^110.0.0 + "@supabase/supabase-js": ^2.36.0 "@testing-library/react": ^13.4.0 "@twilio-paste/account-switcher": ^2.0.1 "@twilio-paste/alert": ^14.0.0 @@ -17165,20 +17220,23 @@ __metadata: "@types/gtag.js": ^0.0.12 "@types/lodash": ^4.14.182 "@types/mdx-js__react": ^1.5.5 + ai: ^2.2.13 airtable: ^0.11.6 color: ^3.1.2 + common-tags: ^1.8.2 date-fns: 2.21.3 deepmerge: 4.2.2 dotenv: ^16.0.0 globby-esm: "npm:globby@^13.1.3" + gpt3-tokenizer: ^1.1.5 highcharts: ^9.3.3 highcharts-react-official: ^3.1.0 - langchain: ^0.0.151 lodash: 4.17.21 lottie-web: ^5.7.4 markdown-to-jsx: ^7.3.2 mdast-util-to-string: ^3.1.1 next: ^13.1.6 + openai-edge: ^1.2.2 pretty-format: ^28.1.0 prism-react-renderer: ^1.3.5 puppeteer-core: ^19.6.1 @@ -18024,6 +18082,13 @@ __metadata: languageName: node linkType: hard +"@types/phoenix@npm:^1.5.4": + version: 1.6.2 + resolution: "@types/phoenix@npm:1.6.2" + checksum: 7c1c05f465c8c4d2675632b28836734d7cf00757249e2289b5074609664f0c3782e82f286f05149ba09f260858cdb12e964b9b4ea930934f81751e2d758bc8c5 + languageName: node + linkType: hard + "@types/prettier@npm:^2.1.5": version: 2.4.4 resolution: "@types/prettier@npm:2.4.4" @@ -18208,13 +18273,6 @@ __metadata: languageName: node linkType: hard -"@types/retry@npm:0.12.0": - version: 0.12.0 - resolution: "@types/retry@npm:0.12.0" - checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 - languageName: node - linkType: hard - "@types/retry@npm:^0.12.0": version: 0.12.1 resolution: "@types/retry@npm:0.12.1" @@ -18435,13 +18493,6 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^9.0.1": - version: 9.0.4 - resolution: "@types/uuid@npm:9.0.4" - checksum: 356e2504456eaebbc43a5af5ca6c07d71f5ae5520b5767cb1c62cd0ec55475fc4ee3d16a2874f4a5fce78e40e8583025afd3a7d9ba41f82939de310665f53f0e - languageName: node - linkType: hard - "@types/vinyl-fs@npm:*": version: 2.4.11 resolution: "@types/vinyl-fs@npm:2.4.11" @@ -18518,6 +18569,15 @@ __metadata: languageName: node linkType: hard +"@types/websocket@npm:^1.0.3": + version: 1.0.7 + resolution: "@types/websocket@npm:1.0.7" + dependencies: + "@types/node": "*" + checksum: 90428bb3a156468f52c8f53357016e84fa62db3f5333e8242d211a3d72e3c2a52f24a6d91f58e58b8d6d65432bd48dfdb0c357aa5e23c237b85a2de00f6769dc + languageName: node + linkType: hard + "@types/ws@npm:^8.2.2": version: 8.5.3 resolution: "@types/ws@npm:8.5.3" @@ -19636,6 +19696,36 @@ __metadata: languageName: node linkType: hard +"ai@npm:^2.2.13": + version: 2.2.13 + resolution: "ai@npm:2.2.13" + dependencies: + eventsource-parser: 1.0.0 + nanoid: 3.3.6 + openai: 4.2.0 + solid-swr-store: 0.10.7 + sswr: 2.0.0 + swr: 2.2.0 + swr-store: 0.10.6 + swrv: 1.0.4 + peerDependencies: + react: ^18.2.0 + solid-js: ^1.7.7 + svelte: ^3.0.0 || ^4.0.0 + vue: ^3.3.4 + peerDependenciesMeta: + react: + optional: true + solid-js: + optional: true + svelte: + optional: true + vue: + optional: true + checksum: a9217e8d3b8de1e8ea313d5a9a51956ba789060625f8f6dcbbd91933ad42993dd35f1d6fa64c92b8c3a6701afc817297d3630bd09f963f7f6011bb063d570962 + languageName: node + linkType: hard + "airtable@npm:*, airtable@npm:^0.11.6": version: 0.11.6 resolution: "airtable@npm:0.11.6" @@ -20399,6 +20489,13 @@ __metadata: languageName: node linkType: hard +"array-keyed-map@npm:^2.1.3": + version: 2.1.3 + resolution: "array-keyed-map@npm:2.1.3" + checksum: 53b45671922bbe7a7eb34950887fd4b1ba4154b0e0002523efa8fb352b320aaa6f798e4d7af151fc8dd4f3365996974f40f141e201d9aae90ea8b3383daf98f8 + languageName: node + linkType: hard + "array-last@npm:^1.1.1": version: 1.3.0 resolution: "array-last@npm:1.3.0" @@ -21253,7 +21350,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -21363,20 +21460,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.2.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 - languageName: node - linkType: hard - -"binary-search@npm:^1.3.5": - version: 1.3.6 - resolution: "binary-search@npm:1.3.6" - checksum: 2e6b3459a9c1ba1bd674a6a855a5ef7505f70707422244430e3510e989c0df6074a49fe60784a98b93b51545c9bcace1db1defee06ff861b124c036a2f2836bf - languageName: node - linkType: hard - "bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" @@ -21776,6 +21859,16 @@ __metadata: languageName: node linkType: hard +"bufferutil@npm:^4.0.1": + version: 4.0.7 + resolution: "bufferutil@npm:4.0.7" + dependencies: + node-gyp: latest + node-gyp-build: ^4.3.0 + checksum: f75aa87e3d1b99b87a95f60a855e63f70af07b57fb8443e75a2ddfef2e47788d130fdd46e3a78fd7e0c10176082b26dfbed970c5b8632e1cc299cafa0e93ce45 + languageName: node + linkType: hard + "builtin-modules@npm:^3.0.0, builtin-modules@npm:^3.1.0": version: 3.2.0 resolution: "builtin-modules@npm:3.2.0" @@ -22099,13 +22192,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:6, camelcase@npm:^6.0.0, camelcase@npm:^6.2.0, camelcase@npm:^6.2.1": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - "camelcase@npm:^3.0.0": version: 3.0.0 resolution: "camelcase@npm:3.0.0" @@ -22127,6 +22213,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0, camelcase@npm:^6.2.1": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + "can-bind-to-host@npm:^1.1.1": version: 1.1.2 resolution: "can-bind-to-host@npm:1.1.2" @@ -23015,13 +23108,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^10.0.1": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 - languageName: node - linkType: hard - "commander@npm:^2.17.1, commander@npm:^2.18.0, commander@npm:^2.19.0, commander@npm:^2.2.0, commander@npm:^2.20.0, commander@npm:~2.20.3": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -23085,7 +23171,7 @@ __metadata: languageName: node linkType: hard -"common-tags@npm:^1.8.0": +"common-tags@npm:^1.8.0, common-tags@npm:^1.8.2": version: 1.8.2 resolution: "common-tags@npm:1.8.2" checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff @@ -24666,7 +24752,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.0, dequal@npm:^2.0.2": +"dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -27074,6 +27160,13 @@ __metadata: languageName: node linkType: hard +"eventsource-parser@npm:1.0.0": + version: 1.0.0 + resolution: "eventsource-parser@npm:1.0.0" + checksum: 1bcef98c6e35e5afe6bdbcd6985187d26f3e706f7283a9a8e114491322a2a3be6fb75298ad8426bd5f7ca3de99a632417e8b60d14cc9bc3f4b6aebc03a81c00d + languageName: node + linkType: hard + "evergreen-ui@npm:^6.13.2": version: 6.13.2 resolution: "evergreen-ui@npm:6.13.2" @@ -27323,13 +27416,6 @@ __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@npm:^4.17.1": version: 4.17.1 resolution: "express@npm:4.17.1" @@ -29465,6 +29551,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"gpt3-tokenizer@npm:^1.1.5": + version: 1.1.5 + resolution: "gpt3-tokenizer@npm:1.1.5" + dependencies: + array-keyed-map: ^2.1.3 + checksum: 9d458f1d57fc381f7e348780c90aa25758a224b2b06424ea255c6f0693b16d06eaaa4f4a26635d916cd6131ed47eba7f66bde81190a5f5bc606aa9a97bacb51a + languageName: node + linkType: hard + "graceful-fs@npm:4.2.11": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -31019,13 +31114,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-any-array@npm:^2.0.0": - version: 2.0.1 - resolution: "is-any-array@npm:2.0.1" - checksum: 472ed80e17d32951435087951af30c29498b163c31bf723dd5af76545b100bcfac6fad2df3f1a648b45e3b027de8f5dc2389935267ba5258eae85762804b4982 - languageName: node - linkType: hard - "is-arguments@npm:^1.0.4": version: 1.0.4 resolution: "is-arguments@npm:1.0.4" @@ -33219,15 +33307,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"js-tiktoken@npm:^1.0.7": - version: 1.0.7 - resolution: "js-tiktoken@npm:1.0.7" - dependencies: - base64-js: ^1.5.1 - checksum: 4856641fed816e618c8a693db0a5478995c598914dec2ba9ccd69719a88a14756d5aec2eed0fba7a4999e603b277ba9a58fd7b2af98e8b638b39b436bbfb7060 - languageName: node - linkType: hard - "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -33587,13 +33666,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jsonpointer@npm:^5.0.1": - version: 5.0.1 - resolution: "jsonpointer@npm:5.0.1" - checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c - languageName: node - linkType: hard - "jsonwebtoken@npm:^8.4.0": version: 8.5.1 resolution: "jsonwebtoken@npm:8.5.1" @@ -33791,300 +33863,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"langchain@npm:^0.0.151": - version: 0.0.151 - resolution: "langchain@npm:0.0.151" - dependencies: - "@anthropic-ai/sdk": ^0.6.2 - ansi-styles: ^5.0.0 - binary-extensions: ^2.2.0 - camelcase: 6 - decamelize: ^1.2.0 - expr-eval: ^2.0.2 - flat: ^5.0.2 - js-tiktoken: ^1.0.7 - js-yaml: ^4.1.0 - jsonpointer: ^5.0.1 - langchainhub: ~0.0.6 - langsmith: ~0.0.31 - ml-distance: ^4.0.0 - object-hash: ^3.0.0 - openai: ~4.4.0 - openapi-types: ^12.1.3 - p-queue: ^6.6.2 - p-retry: 4 - uuid: ^9.0.0 - yaml: ^2.2.1 - zod: ^3.21.4 - zod-to-json-schema: ^3.20.4 - peerDependencies: - "@aws-crypto/sha256-js": ^5.0.0 - "@aws-sdk/client-dynamodb": ^3.310.0 - "@aws-sdk/client-kendra": ^3.352.0 - "@aws-sdk/client-lambda": ^3.310.0 - "@aws-sdk/client-s3": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@aws-sdk/protocol-http": ^3.374.0 - "@aws-sdk/signature-v4": ^3.374.0 - "@azure/storage-blob": ^12.15.0 - "@clickhouse/client": ^0.0.14 - "@elastic/elasticsearch": ^8.4.0 - "@getmetal/metal-sdk": "*" - "@getzep/zep-js": ^0.7.0 - "@gomomento/sdk": ^1.23.0 - "@google-ai/generativelanguage": ^0.2.1 - "@google-cloud/storage": ^6.10.1 - "@huggingface/inference": ^1.5.1 - "@mozilla/readability": "*" - "@notionhq/client": ^2.2.10 - "@opensearch-project/opensearch": "*" - "@pinecone-database/pinecone": "*" - "@planetscale/database": ^1.8.0 - "@qdrant/js-client-rest": ^1.2.0 - "@raycast/api": ^1.55.2 - "@smithy/eventstream-codec": ^2.0.5 - "@smithy/util-utf8": ^2.0.0 - "@supabase/postgrest-js": ^1.1.1 - "@supabase/supabase-js": ^2.10.0 - "@tensorflow-models/universal-sentence-encoder": "*" - "@tensorflow/tfjs-converter": "*" - "@tensorflow/tfjs-core": "*" - "@upstash/redis": ^1.20.6 - "@writerai/writer-sdk": ^0.40.2 - "@xata.io/client": ^0.25.1 - "@xenova/transformers": ^2.5.4 - "@zilliz/milvus2-sdk-node": ">=2.2.7" - apify-client: ^2.7.1 - axios: "*" - cheerio: ^1.0.0-rc.12 - chromadb: "*" - cohere-ai: ">=6.0.0" - d3-dsv: ^2.0.0 - epub2: ^3.0.1 - faiss-node: ^0.3.0 - fast-xml-parser: ^4.2.7 - firebase-admin: ^11.9.0 - google-auth-library: ^8.9.0 - hnswlib-node: ^1.4.2 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - ioredis: ^5.3.2 - jsdom: "*" - llmonitor: "*" - mammoth: "*" - mongodb: ^5.2.0 - mysql2: ^3.3.3 - node-llama-cpp: "*" - notion-to-md: ^3.1.0 - pdf-parse: 1.1.1 - peggy: ^3.0.2 - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.1.0 - playwright: ^1.32.1 - puppeteer: ^19.7.2 - redis: ^4.6.4 - replicate: ^0.18.0 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.2 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - youtube-transcript: ^1.0.6 - youtubei.js: ^5.8.0 - peerDependenciesMeta: - "@aws-crypto/sha256-js": - 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/protocol-http": - optional: true - "@aws-sdk/signature-v4": - optional: true - "@azure/storage-blob": - optional: true - "@clickhouse/client": - optional: true - "@elastic/elasticsearch": - optional: true - "@getmetal/metal-sdk": - optional: true - "@getzep/zep-js": - optional: true - "@gomomento/sdk": - optional: true - "@google-ai/generativelanguage": - optional: true - "@google-cloud/storage": - optional: true - "@huggingface/inference": - optional: true - "@mozilla/readability": - optional: true - "@notionhq/client": - optional: true - "@opensearch-project/opensearch": - optional: true - "@pinecone-database/pinecone": - optional: true - "@planetscale/database": - optional: true - "@qdrant/js-client-rest": - optional: true - "@raycast/api": - optional: true - "@smithy/eventstream-codec": - optional: true - "@smithy/util-utf8": - optional: true - "@supabase/postgrest-js": - 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/redis": - optional: true - "@writerai/writer-sdk": - optional: true - "@xata.io/client": - optional: true - "@xenova/transformers": - optional: true - "@zilliz/milvus2-sdk-node": - optional: true - apify-client: - optional: true - axios: - optional: true - cheerio: - optional: true - chromadb: - optional: true - cohere-ai: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - ignore: - optional: true - ioredis: - optional: true - jsdom: - optional: true - llmonitor: - optional: true - mammoth: - optional: true - mongodb: - optional: true - mysql2: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - pdf-parse: - optional: true - peggy: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - playwright: - optional: true - puppeteer: - 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 - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - checksum: fc85cda75e721827bf9964f62ae4995284774f3e73a8f4814922190b09b8cfce42223dce64b5c54479a5b559f42bb15441150125e3413ae7de2d4966ac860b0c - languageName: node - linkType: hard - -"langchainhub@npm:~0.0.6": - version: 0.0.6 - resolution: "langchainhub@npm:0.0.6" - checksum: f771e5375b7ae9cc6fc59d5e2b1fd35c29e5759f4595617e3a235142bc2ca12c4135aa1631d85ee4e25c89968696242dd6380f6b90e87ffbc9006efc3cdc53c4 - languageName: node - linkType: hard - -"langsmith@npm:~0.0.31": - version: 0.0.38 - resolution: "langsmith@npm:0.0.38" - dependencies: - "@types/uuid": ^9.0.1 - commander: ^10.0.1 - p-queue: ^6.6.2 - p-retry: 4 - uuid: ^9.0.0 - bin: - langsmith: dist/cli/main.cjs - checksum: f4a1bdea51ebead62ee3c9e40de91aaa5f2f94c77bc24a04bbd7616a204a2530efd22c1c93188c83715586a7e72f7273bb759c2f42d38d69049efeed74a2964a - languageName: node - linkType: hard - "language-subtag-registry@npm:~0.3.2": version: 0.3.21 resolution: "language-subtag-registry@npm:0.3.21" @@ -36523,52 +36301,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"ml-array-mean@npm:^1.1.6": - version: 1.1.6 - resolution: "ml-array-mean@npm:1.1.6" - dependencies: - ml-array-sum: ^1.1.6 - checksum: 81999dac8bad3bf2dafb23a9bc71883879b9d55889e48d00b91dd4a2568957a6f5373632ae57324760d1e1d7d29ad45ab4ea7ae32de67ce144d57a21e36dd9c2 - languageName: node - linkType: hard - -"ml-array-sum@npm:^1.1.6": - version: 1.1.6 - resolution: "ml-array-sum@npm:1.1.6" - dependencies: - is-any-array: ^2.0.0 - checksum: 369dbb3681e3f8b0d0facba9fcfc981656dac49a80924859c3ed8f0a5880fb6db2d6e534f8b7b9c3cda59248152e61b27d6419d19c69539de7c3aa6aea3094eb - languageName: node - linkType: hard - -"ml-distance-euclidean@npm:^2.0.0": - version: 2.0.0 - resolution: "ml-distance-euclidean@npm:2.0.0" - checksum: e31f98a947ce6971c35d74e6d2521800f0d219efb34c78b20b5f52debd206008d52e677685c09839e6bab5d2ed233aa009314236e4e548d5fafb60f2f71e2b3e - languageName: node - linkType: hard - -"ml-distance@npm:^4.0.0": - version: 4.0.1 - resolution: "ml-distance@npm:4.0.1" - dependencies: - ml-array-mean: ^1.1.6 - ml-distance-euclidean: ^2.0.0 - ml-tree-similarity: ^1.0.0 - checksum: 21ea014064eb7795c6c8c16e76bb834cba73f9f1ee2f761a3c3c34536f70bd6299b044dd05c495c533f5bdfea7401011dd4bdd159545ef69f5a021f5be4c77a2 - languageName: node - linkType: hard - -"ml-tree-similarity@npm:^1.0.0": - version: 1.0.0 - resolution: "ml-tree-similarity@npm:1.0.0" - dependencies: - binary-search: ^1.3.5 - num-sort: ^2.0.0 - checksum: f99e217dc94acf75c089469dc3c278f388146e43c82212160b6b75daa14309902f84eb0a00c67d502fc79dc171cf15a33d392326e024b2e89881adc585d15513 - languageName: node - linkType: hard - "mocha@npm:^10.0.0": version: 10.2.0 resolution: "mocha@npm:10.2.0" @@ -36799,6 +36531,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"nanoid@npm:3.3.6, nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" + bin: + nanoid: bin/nanoid.cjs + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + languageName: node + linkType: hard + "nanoid@npm:^3.3.1": version: 3.3.2 resolution: "nanoid@npm:3.3.2" @@ -36817,15 +36558,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" - bin: - nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 - languageName: node - linkType: hard - "nanomatch@npm:^1.2.9": version: 1.2.13 resolution: "nanomatch@npm:1.2.13" @@ -37605,13 +37337,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"num-sort@npm:^2.0.0": - version: 2.1.0 - resolution: "num-sort@npm:2.1.0" - checksum: 5a80cd0456c8847f71fb80ad3c3596714cebede76de585aa4fed2b9a4fb0907631edca1f7bb31c24dbb9928b66db3d03059994cc365d2ae011b80ddddac28f6e - languageName: node - linkType: hard - "number-is-nan@npm:^1.0.0": version: 1.0.1 resolution: "number-is-nan@npm:1.0.1" @@ -38043,9 +37768,16 @@ fsevents@^1.2.7: languageName: node linkType: hard -"openai@npm:~4.4.0": - version: 4.4.0 - resolution: "openai@npm:4.4.0" +"openai-edge@npm:^1.2.2": + version: 1.2.2 + resolution: "openai-edge@npm:1.2.2" + checksum: 9d6ff6e79fbad5a0f2b6dd5db75abeb489dfa530f3e14a664500856497c1e19f6ec24036c2988cd3194f3ce38325214112d6f4c9766743497a7e1c69bf2f5f39 + languageName: node + linkType: hard + +"openai@npm:4.2.0": + version: 4.2.0 + resolution: "openai@npm:4.2.0" dependencies: "@types/node": ^18.11.18 "@types/node-fetch": ^2.6.4 @@ -38057,14 +37789,7 @@ fsevents@^1.2.7: node-fetch: ^2.6.7 bin: openai: bin/cli - checksum: c89b47f3d66c41d8a2080c23192573e8ce985aa3ba099bbe410fac2facf62f665aefad9ea3a7a210e35e650d8568ed1186e12806472d8242fc3dc31e930e6084 - languageName: node - linkType: hard - -"openapi-types@npm:^12.1.3": - version: 12.1.3 - resolution: "openapi-types@npm:12.1.3" - checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb + checksum: c2b28e422d7ea6a38a2d98d1c9c933819386d560e473ebcf4417d0cbd80a79f05392120ae32da8b8250732b62469a08270b9b4864e9ff2965aa1af897b986867 languageName: node linkType: hard @@ -38396,7 +38121,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"p-queue@npm:6.6.2, p-queue@npm:^6.6.2": +"p-queue@npm:6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" dependencies: @@ -38413,16 +38138,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"p-retry@npm:4": - version: 4.6.2 - resolution: "p-retry@npm:4.6.2" - dependencies: - "@types/retry": 0.12.0 - retry: ^0.13.1 - checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e - languageName: node - linkType: hard - "p-retry@npm:^4.5.0": version: 4.6.1 resolution: "p-retry@npm:4.6.1" @@ -43814,6 +43529,16 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"solid-swr-store@npm:0.10.7": + version: 0.10.7 + resolution: "solid-swr-store@npm:0.10.7" + peerDependencies: + solid-js: ^1.2 + swr-store: ^0.10 + checksum: c2b51b64ae70659382b1679125367c4c541393c3e5078aa7f9616f2f4897d69a387ce26d6335048b5cc52a4fc3e55d69e21524493509ddfbd1b981903204940a + languageName: node + linkType: hard + "sort-keys@npm:^2.0.0": version: 2.0.0 resolution: "sort-keys@npm:2.0.0" @@ -44166,6 +43891,17 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"sswr@npm:2.0.0": + version: 2.0.0 + resolution: "sswr@npm:2.0.0" + dependencies: + swrev: ^4.0.0 + peerDependencies: + svelte: ^4.0.0 + checksum: 792f2e24109966261065c9ede781d441fa39f145c028a187bba8e9ad93cd0a540adcb03eb12dff635f8a2f40f80ee7193c57955b6363860a09ea0dc27b7c110d + languageName: node + linkType: hard + "stable@npm:^0.1.8": version: 0.1.8 resolution: "stable@npm:0.1.8" @@ -44912,6 +44648,42 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"swr-store@npm:0.10.6": + version: 0.10.6 + resolution: "swr-store@npm:0.10.6" + dependencies: + dequal: ^2.0.3 + checksum: 81a0df8ed705f2ef19fddf10a76d53e478367b811d29a36b91ae116a964ebb2cdfdedca569d7740d94004ac608dde5831ab1c0087373d33562a3467185832880 + languageName: node + linkType: hard + +"swr@npm:2.2.0": + version: 2.2.0 + resolution: "swr@npm:2.2.0" + dependencies: + use-sync-external-store: ^1.2.0 + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + checksum: 1f04795ff9dff54987cbf8a544afc9e42d1350a99e899be8a7cdc4885f561e3ee464f78245ee2ebc8ced262b04023d134f731e276227319dc2d6e1843389ddd8 + languageName: node + linkType: hard + +"swrev@npm:^4.0.0": + version: 4.0.0 + resolution: "swrev@npm:4.0.0" + checksum: 454aed0e0367ef8faabfbe46e83e088199874beaa24c6a0e3aa58e10ec4464e33514d559f0e7be5adcbadffd3323c1b096c0625aaa13f029cbcc03ad40590a2f + languageName: node + linkType: hard + +"swrv@npm:1.0.4": + version: 1.0.4 + resolution: "swrv@npm:1.0.4" + peerDependencies: + vue: ">=3.2.26 < 4" + checksum: 6de43116e19ea22a8b76bd54c5b18571b84a32b0d4d1bfe80e9e562bd67d4464c1da73b3f60e6bf2b2f88e6e4576e596408dfb22a5af13c8186254395c466e91 + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -46797,6 +46569,15 @@ typescript@^4.9.4: languageName: node linkType: hard +"use-sync-external-store@npm:^1.2.0": + version: 1.2.0 + resolution: "use-sync-external-store@npm:1.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a + languageName: node + linkType: hard + "use@npm:^3.1.0": version: 3.1.1 resolution: "use@npm:3.1.1" @@ -46813,6 +46594,16 @@ typescript@^4.9.4: languageName: node linkType: hard +"utf-8-validate@npm:^5.0.2": + version: 5.0.10 + resolution: "utf-8-validate@npm:5.0.10" + dependencies: + node-gyp: latest + node-gyp-build: ^4.3.0 + checksum: 5579350a023c66a2326752b6c8804cc7b39dcd251bb088241da38db994b8d78352e388dcc24ad398ab98385ba3c5ffcadb6b5b14b2637e43f767869055e46ba6 + languageName: node + linkType: hard + "utf8@npm:3.0.0": version: 3.0.0 resolution: "utf8@npm:3.0.0" @@ -47592,6 +47383,20 @@ typescript@^4.9.4: languageName: node linkType: hard +"websocket@npm:^1.0.34": + version: 1.0.34 + resolution: "websocket@npm:1.0.34" + dependencies: + bufferutil: ^4.0.1 + debug: ^2.2.0 + es5-ext: ^0.10.50 + typedarray-to-buffer: ^3.1.5 + utf-8-validate: ^5.0.2 + yaeti: ^0.0.6 + checksum: 8a0ce6d79cc1334bb6ea0d607f0092f3d32700b4dd19e4d5540f2a85f3b50e1f8110da0e4716737056584dde70bbebcb40bbd94bbb437d7468c71abfbfa077d8 + languageName: node + linkType: hard + "whatwg-encoding@npm:^1.0.5": version: 1.0.5 resolution: "whatwg-encoding@npm:1.0.5" @@ -48288,6 +48093,13 @@ typescript@^4.9.4: languageName: node linkType: hard +"yaeti@npm:^0.0.6": + version: 0.0.6 + resolution: "yaeti@npm:0.0.6" + checksum: 6db12c152f7c363b80071086a3ebf5032e03332604eeda988872be50d6c8469e1f13316175544fa320f72edad696c2d83843ad0ff370659045c1a68bcecfcfea + languageName: node + linkType: hard + "yallist@npm:^2.1.2": version: 2.1.2 resolution: "yallist@npm:2.1.2" @@ -48323,13 +48135,6 @@ typescript@^4.9.4: languageName: node linkType: hard -"yaml@npm:^2.2.1": - version: 2.3.2 - resolution: "yaml@npm:2.3.2" - checksum: acd80cc24df12c808c6dec8a0176d404ef9e6f08ad8786f746ecc9d8974968c53c6e8a67fdfabcc5f99f3dc59b6bb0994b95646ff03d18e9b1dcd59eccc02146 - languageName: node - linkType: hard - "yargs-parser@npm:20.2.4": version: 20.2.4 resolution: "yargs-parser@npm:20.2.4" @@ -48551,22 +48356,6 @@ typescript@^4.9.4: languageName: node linkType: hard -"zod-to-json-schema@npm:^3.20.4": - version: 3.21.4 - resolution: "zod-to-json-schema@npm:3.21.4" - peerDependencies: - zod: ^3.21.4 - checksum: 899c1f461fb6547c0b08a265c82040c250be9b88d3f408f2f3ff77a418fdfad7549077e589d418fccb312c1f6d555c3c7217b199cc9072762e1fab20716dd2a6 - languageName: node - linkType: hard - -"zod@npm:^3.21.4": - version: 3.22.2 - resolution: "zod@npm:3.22.2" - checksum: 231e2180c8eabb56e88680d80baff5cf6cbe6d64df3c44c50ebe52f73081ecd0229b1c7215b9552537f537a36d9e36afac2737ddd86dc14e3519bdbc777e82b9 - languageName: node - linkType: hard - "zwitch@npm:^1.0.0": version: 1.0.5 resolution: "zwitch@npm:1.0.5"