From ab6850f5e5a9d88b8cbc4a61168392df02c91864 Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Tue, 3 Dec 2024 10:43:30 +0000 Subject: [PATCH] Removed levenshtein and made Evalite compatible with autoevals --- packages/evalite-core/src/index.ts | 8 +- packages/evalite/package.json | 4 +- packages/evalite/src/index.ts | 33 -- .../fixtures/ai-sdk-traces/traces.eval.ts | 3 +- .../src/tests/fixtures/basics/basics.eval.ts | 3 +- .../failing-test/failing-test.eval.ts | 3 +- .../fixtures/long-text/long-text.eval.ts | 3 +- .../fixtures/much-data/much-data.eval.ts | 3 +- .../src/tests/fixtures/multi/multi-1.eval.ts | 3 +- .../src/tests/fixtures/multi/multi-2.eval.ts | 3 +- .../src/tests/fixtures/multi/multi-3.eval.ts | 3 +- .../src/tests/fixtures/traces/traces.eval.ts | 4 +- packages/evalite/tsconfig.json | 3 +- packages/example/package.json | 3 +- packages/example/src/basics.eval.ts | 3 +- pnpm-lock.yaml | 341 +++++++++++++++++- 16 files changed, 370 insertions(+), 53 deletions(-) diff --git a/packages/evalite-core/src/index.ts b/packages/evalite-core/src/index.ts index 7c31475..3b8df4b 100644 --- a/packages/evalite-core/src/index.ts +++ b/packages/evalite-core/src/index.ts @@ -20,7 +20,13 @@ export declare namespace Evalite { }; export type Score = { - score: number; + /** + * A number between 0 and 1. + * + * Added null for compatibility with {@link https://github.com/braintrustdata/autoevals | autoevals}. + * null scores will be reported as 0. + */ + score: number | null; name: string; }; diff --git a/packages/evalite/package.json b/packages/evalite/package.json index 285c7de..e7ad12f 100644 --- a/packages/evalite/package.json +++ b/packages/evalite/package.json @@ -22,7 +22,6 @@ "dependencies": { "table": "^6.8.2", "commander": "^12.1.0", - "js-levenshtein": "^1.1.6", "tinyrainbow": "^1.2.0", "fastify": "^5.1.0", "@fastify/websocket": "11.0.1", @@ -33,6 +32,7 @@ "strip-ansi": "^7.1.0", "@types/js-levenshtein": "^1.1.3", "unstorage": "^1.13.1", - "ai": "^4.0.10" + "ai": "^4.0.10", + "autoevals": "^0.0.108" } } diff --git a/packages/evalite/src/index.ts b/packages/evalite/src/index.ts index 8e3871d..329d5d5 100644 --- a/packages/evalite/src/index.ts +++ b/packages/evalite/src/index.ts @@ -1,5 +1,4 @@ import type { Evalite } from "@evalite/core"; -import levenshtein from "js-levenshtein"; import { inject, it } from "vitest"; import { reportTraceLocalStorage } from "./traces.js"; @@ -76,35 +75,3 @@ export const evalite = ( }; }); }; - -export const Levenshtein = (args: Evalite.ScoreInput) => { - if (args.expected === undefined) { - throw new Error("LevenshteinScorer requires an expected value"); - } - - const [output, expected] = [`${args.output}`, `${args.expected}`]; - const maxLen = Math.max(output.length, expected.length); - - let score = 1; - if (maxLen > 0) { - score = 1 - levenshtein(output, expected) / maxLen; - } - - return { - name: "Levenshtein", - score, - }; -}; - -export const numericDifference = (args: Evalite.ScoreInput) => { - if (args.expected === undefined) { - throw new Error("NumericDifferenceScorer requires an expected value"); - } - - return { - name: "NumericDifference", - score: 1 - Math.abs(args.output - args.expected) / args.expected, - }; -}; - -export { reportTrace } from "./traces.js"; diff --git a/packages/evalite/src/tests/fixtures/ai-sdk-traces/traces.eval.ts b/packages/evalite/src/tests/fixtures/ai-sdk-traces/traces.eval.ts index 8e8abcc..4ae4fdf 100644 --- a/packages/evalite/src/tests/fixtures/ai-sdk-traces/traces.eval.ts +++ b/packages/evalite/src/tests/fixtures/ai-sdk-traces/traces.eval.ts @@ -1,7 +1,8 @@ import { generateText } from "ai"; import { MockLanguageModelV1 } from "ai/test"; import { traceAISDKModel } from "../../../ai-sdk.js"; -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; const model = new MockLanguageModelV1({ doGenerate: async () => ({ diff --git a/packages/evalite/src/tests/fixtures/basics/basics.eval.ts b/packages/evalite/src/tests/fixtures/basics/basics.eval.ts index 7f382ae..d24ed39 100644 --- a/packages/evalite/src/tests/fixtures/basics/basics.eval.ts +++ b/packages/evalite/src/tests/fixtures/basics/basics.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; import { setTimeout } from "node:timers/promises"; evalite("Basics", { diff --git a/packages/evalite/src/tests/fixtures/failing-test/failing-test.eval.ts b/packages/evalite/src/tests/fixtures/failing-test/failing-test.eval.ts index bc43d3c..a834080 100644 --- a/packages/evalite/src/tests/fixtures/failing-test/failing-test.eval.ts +++ b/packages/evalite/src/tests/fixtures/failing-test/failing-test.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; evalite("Failing", { data: () => { diff --git a/packages/evalite/src/tests/fixtures/long-text/long-text.eval.ts b/packages/evalite/src/tests/fixtures/long-text/long-text.eval.ts index 3eb67c6..cbdc713 100644 --- a/packages/evalite/src/tests/fixtures/long-text/long-text.eval.ts +++ b/packages/evalite/src/tests/fixtures/long-text/long-text.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; evalite("Long Text", { data: () => { diff --git a/packages/evalite/src/tests/fixtures/much-data/much-data.eval.ts b/packages/evalite/src/tests/fixtures/much-data/much-data.eval.ts index dc1c63e..4801a84 100644 --- a/packages/evalite/src/tests/fixtures/much-data/much-data.eval.ts +++ b/packages/evalite/src/tests/fixtures/much-data/much-data.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; import { setTimeout } from "node:timers/promises"; evalite("Much Data", { diff --git a/packages/evalite/src/tests/fixtures/multi/multi-1.eval.ts b/packages/evalite/src/tests/fixtures/multi/multi-1.eval.ts index 7b6d42d..eedeffd 100644 --- a/packages/evalite/src/tests/fixtures/multi/multi-1.eval.ts +++ b/packages/evalite/src/tests/fixtures/multi/multi-1.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; import { setTimeout } from "node:timers/promises"; evalite("Multiple 1", { diff --git a/packages/evalite/src/tests/fixtures/multi/multi-2.eval.ts b/packages/evalite/src/tests/fixtures/multi/multi-2.eval.ts index 30fdf6d..a22dc05 100644 --- a/packages/evalite/src/tests/fixtures/multi/multi-2.eval.ts +++ b/packages/evalite/src/tests/fixtures/multi/multi-2.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; import { setTimeout } from "node:timers/promises"; evalite("Multiple 2", { diff --git a/packages/evalite/src/tests/fixtures/multi/multi-3.eval.ts b/packages/evalite/src/tests/fixtures/multi/multi-3.eval.ts index 455279f..5d4b481 100644 --- a/packages/evalite/src/tests/fixtures/multi/multi-3.eval.ts +++ b/packages/evalite/src/tests/fixtures/multi/multi-3.eval.ts @@ -1,4 +1,5 @@ -import { evalite, Levenshtein } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { Levenshtein } from "autoevals"; import { setTimeout } from "node:timers/promises"; evalite("Multiple 3", { diff --git a/packages/evalite/src/tests/fixtures/traces/traces.eval.ts b/packages/evalite/src/tests/fixtures/traces/traces.eval.ts index db41fce..e5b75f7 100644 --- a/packages/evalite/src/tests/fixtures/traces/traces.eval.ts +++ b/packages/evalite/src/tests/fixtures/traces/traces.eval.ts @@ -1,4 +1,6 @@ -import { evalite, Levenshtein, reportTrace } from "../../../index.js"; +import { evalite } from "../../../index.js"; +import { reportTrace } from "../../../traces.js"; +import { Levenshtein } from "autoevals"; evalite("Traces", { data: () => { diff --git a/packages/evalite/tsconfig.json b/packages/evalite/tsconfig.json index a2646ef..3e43d3d 100644 --- a/packages/evalite/tsconfig.json +++ b/packages/evalite/tsconfig.json @@ -3,5 +3,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": "src" - } + }, + "exclude": ["src/tests/playground"] } diff --git a/packages/example/package.json b/packages/example/package.json index 7a414d8..d6acf69 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -17,6 +17,7 @@ "ai": "^3.4.33", "@ai-sdk/openai": "0.0.72", "dotenv": "^16.4.5", - "zod": "^3.23.8" + "zod": "^3.23.8", + "autoevals": "^0.0.108" } } diff --git a/packages/example/src/basics.eval.ts b/packages/example/src/basics.eval.ts index 518e289..f01378a 100644 --- a/packages/example/src/basics.eval.ts +++ b/packages/example/src/basics.eval.ts @@ -1,8 +1,9 @@ import { openai } from "@ai-sdk/openai"; import { generateText } from "ai"; -import { evalite, Levenshtein } from "evalite"; +import { evalite } from "evalite"; import { createStorage } from "unstorage"; import fsDriver from "unstorage/drivers/fs"; +import { Levenshtein } from "autoevals"; import { cacheModel } from "./cache-model.js"; const storage = createStorage({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 226277d..a5aeb4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,9 +126,6 @@ importers: fastify: specifier: ^5.1.0 version: 5.1.0 - js-levenshtein: - specifier: ^1.1.6 - version: 1.1.6 table: specifier: ^6.8.2 version: 6.8.2 @@ -145,6 +142,9 @@ importers: ai: specifier: ^4.0.10 version: 4.0.10(react@18.3.1)(zod@3.23.8) + autoevals: + specifier: ^0.0.108 + version: 0.0.108 strip-ansi: specifier: ^7.1.0 version: 7.1.0 @@ -161,7 +161,10 @@ importers: version: 0.0.72(zod@3.23.8) ai: specifier: ^3.4.33 - version: 3.4.33(react@18.3.1)(sswr@2.1.0(svelte@5.1.15))(svelte@5.1.15)(vue@3.5.12(typescript@5.6.2))(zod@3.23.8) + version: 3.4.33(openai@4.47.1)(react@18.3.1)(sswr@2.1.0(svelte@5.1.15))(svelte@5.1.15)(vue@3.5.12(typescript@5.6.2))(zod@3.23.8) + autoevals: + specifier: ^0.0.108 + version: 0.0.108 dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -286,6 +289,11 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@asteasolutions/zod-to-openapi@6.4.0': + resolution: {integrity: sha512-8cxfF7AHHx2PqnN4Cd8/O8CBu/nVYJP9DpnfVLW3BFb66VJDnqI/CczZnkqMc3SNh6J9GiX7JbJ5T4BSP4HZ2Q==} + peerDependencies: + zod: ^3.20.2 + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -425,6 +433,9 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} + '@braintrust/core@0.0.69': + resolution: {integrity: sha512-S5oXbxwjfRCVbYbES92Q92PXn31yZFkHBTwLJWyjNCrseYIND8u8eFYKmI+m7F+U1+mhU3qNfEmB8f8hbfjnzg==} + '@changesets/apply-release-plan@7.0.4': resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} @@ -1320,9 +1331,15 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@18.19.67': + resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} + '@types/node@22.7.7': resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==} @@ -1496,6 +1513,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -1645,10 +1666,16 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} + autoevals@0.0.108: + resolution: {integrity: sha512-vldnuCus2AeKtul0qfO1S0QOGJTH3WxDEyyGUVGL9UxJjmzGnVA68RzS99JL+KvtZqC0cAV+7BEV8dBk2dhFVg==} + autoprefixer@10.4.20: resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} @@ -1692,6 +1719,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + binary-search@1.3.6: + resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -1788,6 +1818,9 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + cheminfo-types@1.8.1: + resolution: {integrity: sha512-FRcpVkox+cRovffgqNdDFQ1eUav+i/Vq/CUd1hcfEl2bevntFlzznL+jE8g4twl6ElB7gZjCko6pYpXyMn+6dA==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -1842,6 +1875,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -1864,6 +1901,15 @@ packages: resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} engines: {node: '>= 0.8.0'} + compute-cosine-similarity@1.1.0: + resolution: {integrity: sha512-FXhNx0ILLjGi9Z9+lglLzM12+0uoTnYkHm7GiadXDAr0HGVLm25OivUS1B/LPkbzzvlcXz/1EvWg9ZYyJSdhTw==} + + compute-dot@1.1.0: + resolution: {integrity: sha512-L5Ocet4DdMrXboss13K59OK23GXjiSia7+7Ukc7q4Bl+RVpIXK2W9IHMbWDZkh+JUEvJAwOKRaJDiFUa1LTnJg==} + + compute-l2norm@1.1.0: + resolution: {integrity: sha512-6EHh1Elj90eU28SXi+h2PLnTQvZmkkHWySpoFz+WOlVNLz3DQoC4ISUHSV9n5jMxPHtKGJ01F4uu2PsXBB8sSg==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1932,6 +1978,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + d3-array@0.7.1: + resolution: {integrity: sha512-Ifi3fH46Bco+Lb1mOlTxbFEuF3NdyElEVVD+EmoK327I0JzKAP4x57cl+HoxHqFcVd8F/uXLC+wtY3n/R1uO2w==} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2015,6 +2064,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -2413,6 +2466,9 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fft.js@4.0.4: + resolution: {integrity: sha512-f9c00hphOgeQTlDyavwTtu6RiK8AIFjD6+jvXkNkpeQ7rirK3uFWVpalkoS4LAwbdX7mfZ8aoBfFVQX1Re/8aw==} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2454,10 +2510,21 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2656,6 +2723,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -2695,6 +2765,10 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + install@0.13.0: + resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} + engines: {node: '>= 0.10'} + internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -2712,6 +2786,9 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-any-array@2.0.1: + resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==} + is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -3024,6 +3101,9 @@ packages: resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} + linear-sum-assignment@1.0.7: + resolution: {integrity: sha512-jfLoSGwZNyjfY8eK4ayhjfcIu3BfWvP6sWieYzYI3AWldwXVoWEz1gtrQL10v/8YltYLBunqNjeVFXPMUs+MJg==} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -3331,6 +3411,24 @@ packages: engines: {node: '>=10'} hasBin: true + ml-array-max@1.2.4: + resolution: {integrity: sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==} + + ml-array-min@1.2.3: + resolution: {integrity: sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==} + + ml-array-rescale@1.3.7: + resolution: {integrity: sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==} + + ml-matrix@6.12.0: + resolution: {integrity: sha512-AGfR+pWaC0GmzjUnB6BfwhndPEUGz0i7QUYdqNuw1zhTov/vSRJ9pP2hs6BoGpaSbtXgrKjZz2zjD1M0xuur6A==} + + ml-spectra-processing@14.7.0: + resolution: {integrity: sha512-O8ztoPhiKe6U2w7U+Lb7Ft9gE6/o6w4Y6x0QOQM74iP40t4tP7ZDMdTtCCEUuk8l/YWxSBsjXYvD1NL5OW+mBQ==} + + ml-xsadd@3.0.1: + resolution: {integrity: sha512-Fz2q6dwgzGM8wYKGArTUTZDGa4lQFA2Vi6orjGeTVRy22ZnQFKlJuwS9n8NRviqz1KHAHAzdKJwbnYhdo38uYg==} + mlly@1.7.3: resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} @@ -3358,6 +3456,10 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -3380,9 +3482,22 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -3495,6 +3610,13 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + openai@4.47.1: + resolution: {integrity: sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==} + hasBin: true + + openapi3-ts@4.4.0: + resolution: {integrity: sha512-9asTNB9IkKEzWMcHmVZE7Ts3kC9G7AFHfs8i7caD8HbI76gEjdkId4z/AkP83xdZsH7PLAnnbl47qZkXuxpArw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4104,6 +4226,9 @@ packages: spdx-license-ids@3.0.20: resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + spline-interpolator@1.0.0: + resolution: {integrity: sha512-s8lowgsWE5wjHGEsk/4VADp7xAHw+pNy3OGp96fYjVTwLSx/83+BBmTFP2wZDRM0kj45q8zSyOV5fUcGn4hLEw==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -4330,6 +4455,9 @@ packages: toml@3.0.0: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -4446,6 +4574,9 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -4578,6 +4709,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + uvu@0.5.6: resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} engines: {node: '>=8'} @@ -4598,6 +4733,12 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate.io-array@1.0.6: + resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} + + validate.io-function@1.0.2: + resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -4700,6 +4841,16 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -4919,6 +5070,11 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@asteasolutions/zod-to-openapi@6.4.0(zod@3.23.8)': + dependencies: + openapi3-ts: 4.4.0 + zod: 3.23.8 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -5120,6 +5276,12 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@braintrust/core@0.0.69': + dependencies: + '@asteasolutions/zod-to-openapi': 6.4.0(zod@3.23.8) + uuid: 9.0.1 + zod: 3.23.8 + '@changesets/apply-release-plan@7.0.4': dependencies: '@babel/runtime': 7.25.4 @@ -5989,8 +6151,17 @@ snapshots: '@types/ms@0.7.34': {} + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 22.7.7 + form-data: 4.0.1 + '@types/node@12.20.55': {} + '@types/node@18.19.67': + dependencies: + undici-types: 5.26.5 + '@types/node@22.7.7': dependencies: undici-types: 6.19.8 @@ -6267,12 +6438,16 @@ snapshots: acorn@8.14.0: {} + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@3.4.33(react@18.3.1)(sswr@2.1.0(svelte@5.1.15))(svelte@5.1.15)(vue@3.5.12(typescript@5.6.2))(zod@3.23.8): + ai@3.4.33(openai@4.47.1)(react@18.3.1)(sswr@2.1.0(svelte@5.1.15))(svelte@5.1.15)(vue@3.5.12(typescript@5.6.2))(zod@3.23.8): dependencies: '@ai-sdk/provider': 0.0.26 '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) @@ -6288,6 +6463,7 @@ snapshots: secure-json-parse: 2.7.0 zod-to-json-schema: 3.23.5(zod@3.23.8) optionalDependencies: + openai: 4.47.1 react: 18.3.1 sswr: 2.1.0(svelte@5.1.15) svelte: 5.1.15 @@ -6437,8 +6613,25 @@ snapshots: astring@1.9.0: {} + asynckit@0.4.0: {} + atomic-sleep@1.0.0: {} + autoevals@0.0.108: + dependencies: + '@braintrust/core': 0.0.69 + ajv: 8.17.1 + compute-cosine-similarity: 1.1.0 + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + linear-sum-assignment: 1.0.7 + mustache: 4.2.0 + openai: 4.47.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + transitivePeerDependencies: + - encoding + autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.2 @@ -6478,6 +6671,8 @@ snapshots: binary-extensions@2.3.0: {} + binary-search@1.3.6: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -6600,6 +6795,8 @@ snapshots: check-error@2.1.1: {} + cheminfo-types@1.8.1: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -6652,6 +6849,10 @@ snapshots: color-name@1.1.4: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} commander@12.1.0: {} @@ -6677,6 +6878,23 @@ snapshots: transitivePeerDependencies: - supports-color + compute-cosine-similarity@1.1.0: + dependencies: + compute-dot: 1.1.0 + compute-l2norm: 1.1.0 + validate.io-array: 1.0.6 + validate.io-function: 1.0.2 + + compute-dot@1.1.0: + dependencies: + validate.io-array: 1.0.6 + validate.io-function: 1.0.2 + + compute-l2norm@1.1.0: + dependencies: + validate.io-array: 1.0.6 + validate.io-function: 1.0.2 + concat-map@0.0.1: {} confbox@0.1.8: {} @@ -6727,6 +6945,8 @@ snapshots: csstype@3.1.3: {} + d3-array@0.7.1: {} + damerau-levenshtein@1.0.8: {} data-uri-to-buffer@3.0.1: {} @@ -6793,6 +7013,8 @@ snapshots: defu@6.1.4: {} + delayed-stream@1.0.0: {} + depd@2.0.0: {} dequal@2.0.3: {} @@ -7434,6 +7656,8 @@ snapshots: dependencies: format: 0.2.2 + fft.js@4.0.4: {} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -7492,8 +7716,21 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data-encoder@1.7.2: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + format@0.2.2: {} + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -7720,6 +7957,10 @@ snapshots: human-signals@5.0.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -7750,6 +7991,8 @@ snapshots: inline-style-parser@0.1.1: {} + install@0.13.0: {} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 @@ -7767,6 +8010,8 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + is-any-array@2.0.1: {} + is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -8035,6 +8280,13 @@ snapshots: lilconfig@3.1.2: {} + linear-sum-assignment@1.0.7: + dependencies: + cheminfo-types: 1.8.1 + install: 0.13.0 + ml-matrix: 6.12.0 + ml-spectra-processing: 14.7.0 + lines-and-columns@1.2.4: {} listhen@1.9.0: @@ -8526,6 +8778,37 @@ snapshots: mkdirp@1.0.4: {} + ml-array-max@1.2.4: + dependencies: + is-any-array: 2.0.1 + + ml-array-min@1.2.3: + dependencies: + is-any-array: 2.0.1 + + ml-array-rescale@1.3.7: + dependencies: + is-any-array: 2.0.1 + ml-array-max: 1.2.4 + ml-array-min: 1.2.3 + + ml-matrix@6.12.0: + dependencies: + is-any-array: 2.0.1 + ml-array-rescale: 1.3.7 + + ml-spectra-processing@14.7.0: + dependencies: + binary-search: 1.3.6 + cheminfo-types: 1.8.1 + fft.js: 4.0.4 + is-any-array: 2.0.1 + ml-matrix: 6.12.0 + ml-xsadd: 3.0.1 + spline-interpolator: 1.0.0 + + ml-xsadd@3.0.1: {} + mlly@1.7.3: dependencies: acorn: 8.14.0 @@ -8555,6 +8838,8 @@ snapshots: ms@2.1.3: {} + mustache@4.2.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -8571,8 +8856,14 @@ snapshots: node-addon-api@7.1.1: {} + node-domexception@1.0.0: {} + node-fetch-native@1.6.4: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-forge@1.3.1: {} node-releases@2.0.18: {} @@ -8688,6 +8979,23 @@ snapshots: dependencies: mimic-fn: 4.0.0 + openai@4.47.1: + dependencies: + '@types/node': 18.19.67 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + + openapi3-ts@4.4.0: + dependencies: + yaml: 2.6.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -9342,6 +9650,10 @@ snapshots: spdx-license-ids@3.0.20: {} + spline-interpolator@1.0.0: + dependencies: + d3-array: 0.7.1 + split2@4.2.0: {} sprintf-js@1.0.3: {} @@ -9621,6 +9933,8 @@ snapshots: toml@3.0.0: {} + tr46@0.0.3: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -9740,6 +10054,8 @@ snapshots: uncrypto@0.1.3: {} + undici-types@5.26.5: {} + undici-types@6.19.8: {} undici@6.21.0: {} @@ -9857,6 +10173,8 @@ snapshots: utils-merge@1.0.1: {} + uuid@9.0.1: {} + uvu@0.5.6: dependencies: dequal: 2.0.3 @@ -9875,6 +10193,10 @@ snapshots: validate-npm-package-name@5.0.1: {} + validate.io-array@1.0.6: {} + + validate.io-function@1.0.2: {} + vary@1.1.2: {} vfile-message@3.1.4: @@ -10001,6 +10323,15 @@ snapshots: web-streams-polyfill@3.3.3: {} + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4