diff --git a/CLAUDE.md b/CLAUDE.md index 93515c2..aab8fb4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,9 +39,11 @@ packages/ judges/ legacy/ harness-ai-sdk/ + harness-flue/ harness-pi-ai/ apps/ demo-ai-sdk/ + demo-flue/ demo-pi/ docs/ ``` @@ -62,6 +64,10 @@ Owns: Owns the AI SDK adapter into `HarnessRun`. +### `packages/harness-flue` + +Owns the Flue framework adapter into `HarnessRun`. + ### `packages/harness-pi-ai` Owns the `pi-ai` adapter, wrapped tool runtime, and tool replay behavior. @@ -106,6 +112,7 @@ Prefer targeted verification when possible. - Root API changes: test `packages/vitest-evals/src/*.test.ts` - Reporter changes: test `packages/vitest-evals/src/reporter.test.ts` - AI SDK harness changes: test `packages/harness-ai-sdk/src/index.test.ts` +- Flue harness changes: test `packages/harness-flue/src/index.test.ts` - `pi-ai` harness changes: test `packages/harness-pi-ai/src/index.test.ts` - Legacy changes: test `packages/vitest-evals/src/legacy/...` - Demo behavior changes: run `pnpm evals` or a filtered demo command diff --git a/README.md b/README.md index aeae38c..6cfdb97 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,16 @@ Monorepo for the explicit-run `vitest-evals` shape: - `packages/vitest-evals`: core suite API, judges, normalized harness/session types, and reporter - `packages/harness-ai-sdk`: `ai-sdk`-focused harness adapter +- `packages/harness-flue`: Flue framework harness adapter - `packages/harness-openai-agents`: `@openai/agents`-focused harness adapter - `packages/harness-pi-ai`: `pi-ai`-focused harness adapter with tool replay - `packages/github-reporter`: GitHub Actions summary, annotation, and optional Check Run publishing from Vitest JSON output -- `apps/demo-pi`: end-to-end Pi Mono demo evals with an app-local refund agent - `apps/demo-ai-sdk`: end-to-end AI SDK demo evals with app-local refund tools +- `apps/demo-flue`: end-to-end Flue demo evals with app-local refund tools - `apps/demo-openai-agents`: end-to-end OpenAI Agents demo evals with app-local refund tools +- `apps/demo-pi`: end-to-end Pi Mono demo evals with an app-local refund agent ## Reading Guide @@ -34,11 +36,13 @@ Monorepo for the explicit-run `vitest-evals` shape: packages/ vitest-evals/ harness-ai-sdk/ + harness-flue/ harness-openai-agents/ harness-pi-ai/ github-reporter/ apps/ demo-ai-sdk/ + demo-flue/ demo-openai-agents/ demo-pi/ ``` diff --git a/apps/demo-flue/evals/refund.eval.ts b/apps/demo-flue/evals/refund.eval.ts new file mode 100644 index 0000000..f5bfeb8 --- /dev/null +++ b/apps/demo-flue/evals/refund.eval.ts @@ -0,0 +1,49 @@ +import { anthropic } from "@ai-sdk/anthropic"; +import { aiSdkJudgeHarness } from "@vitest-evals/harness-ai-sdk"; +import { describeEval, FactualityJudge } from "vitest-evals"; +import { assertRefundCase, refundHarness, type RefundCase } from "./shared"; + +const judgeHarness = aiSdkJudgeHarness({ + model: anthropic("claude-sonnet-4-5"), + temperature: 0, +}); +const factualityJudge = FactualityJudge({ judgeHarness }); + +describeEval( + "demo flue refund agent", + { + skipIf: () => !process.env.ANTHROPIC_API_KEY, + harness: refundHarness, + judges: [factualityJudge], + judgeThreshold: 0.6, + }, + (it) => { + it("approves refundable invoice", async ({ run }) => { + const metadata: Omit = { + expected: + "Invoice inv_123 should be approved and refunded for the full 4200 cents.", + expectedStatus: "approved", + expectedTools: ["lookupInvoice", "createRefund"], + }; + + await assertRefundCase( + await run("Refund invoice inv_123", { metadata }), + metadata, + ); + }); + + it("denies non-refundable invoice", async ({ run }) => { + const metadata: Omit = { + expected: + "Invoice inv_404 should be denied because it is not refundable.", + expectedStatus: "denied", + expectedTools: ["lookupInvoice"], + }; + + await assertRefundCase( + await run("Refund invoice inv_404", { metadata }), + metadata, + ); + }); + }, +); diff --git a/apps/demo-flue/evals/shared.ts b/apps/demo-flue/evals/shared.ts new file mode 100644 index 0000000..c4f30ea --- /dev/null +++ b/apps/demo-flue/evals/shared.ts @@ -0,0 +1,156 @@ +import { flueHarness } from "@vitest-evals/harness-flue"; +import { Type } from "@flue/runtime"; +import type { ToolDef } from "@flue/runtime"; +import { + createFlueContext, + InMemorySessionStore, + bashFactoryToSessionEnv, + resolveModel, +} from "@flue/runtime/internal"; +import * as v from "valibot"; +import { expect } from "vitest"; +import { type HarnessRun, toolCalls } from "vitest-evals"; + +type RefundDecision = + | { + status: "approved"; + invoiceId: string; + refundId: string; + amount: number; + } + | { + status: "denied"; + invoiceId: string; + reason: string; + }; + +export type RefundCase = { + input: string; + expected?: unknown; + expectedStatus: RefundDecision["status"]; + expectedTools: string[]; +}; + +export const REFUND_MODEL = "anthropic/claude-sonnet-4-6"; + +const INVOICES: Record< + string, + { invoiceId: string; amount: number; refundable: boolean; customer: string } +> = { + inv_123: { + invoiceId: "inv_123", + amount: 4200, + refundable: true, + customer: "Acme Co", + }, + inv_404: { + invoiceId: "inv_404", + amount: 1700, + refundable: false, + customer: "Globex", + }, +}; + +const refundTools: ToolDef[] = [ + { + name: "lookupInvoice", + description: "Look up invoice details inside demo billing.", + parameters: Type.Object({ + invoiceId: Type.String({ description: "The invoice id to inspect." }), + }), + execute: async (args) => { + const invoice = INVOICES[args.invoiceId as string]; + if (!invoice) throw new Error(`Invoice ${args.invoiceId} not found`); + return JSON.stringify(invoice); + }, + }, + { + name: "createRefund", + description: "Create a refund for a refundable invoice.", + parameters: Type.Object({ + invoiceId: Type.String({ description: "The invoice id to refund." }), + amount: Type.Number({ description: "The amount to refund in cents." }), + }), + execute: async (args) => { + return JSON.stringify({ + refundId: `rf_${args.invoiceId}`, + amount: args.amount, + status: "submitted", + }); + }, + }, +]; + +const refundResultSchema = v.object({ + status: v.picklist(["approved", "denied"]), + invoiceId: v.string(), + refundId: v.optional(v.string()), + amount: v.optional(v.number()), + reason: v.optional(v.string()), +}); + +export const refundHarness = flueHarness({ + name: "flue-refund-agent", + model: REFUND_MODEL, + run: async (input, { signal, eventHandler }) => { + const store = new InMemorySessionStore(); + const runId = crypto.randomUUID(); + + const ctx = createFlueContext({ + id: `eval-${runId}`, + runId, + payload: input, + env: process.env as Record, + agentConfig: { + systemPrompt: "", + skills: {}, + roles: {}, + model: resolveModel(REFUND_MODEL), + resolveModel, + }, + createDefaultEnv: async () => { + const { Bash } = await import("just-bash"); + return bashFactoryToSessionEnv(() => new Bash()); + }, + defaultStore: store, + }); + + ctx.subscribeEvent(eventHandler); + + const harness = await ctx.init({ + model: REFUND_MODEL, + tools: refundTools, + }); + const session = await harness.session(); + + return await session.prompt( + [ + "You are the demo refund operations agent.", + "You must decide whether a refund should be approved for the invoice in the user's request.", + "Always call lookupInvoice before making a decision.", + "If the invoice is refundable, call createRefund with the full invoice amount.", + "If the invoice is not refundable, do not call createRefund.", + "", + input, + ].join("\n"), + { result: refundResultSchema, signal }, + ); + }, + output: (response) => { + if ("data" in response) return response.data as RefundDecision; + throw new Error("Expected structured result from Flue agent"); + }, +}); + +export async function assertRefundCase( + run: HarnessRun, + expected: Pick, +) { + expect(run.output).toMatchObject({ status: expected.expectedStatus }); + expect(toolCalls(run.session).map((call) => call.name)).toEqual( + expected.expectedTools, + ); + expect(run.usage.provider).toBe("anthropic"); + expect(run.usage.model).toContain("claude"); + expect(run.usage.totalTokens).toBeGreaterThan(0); +} diff --git a/apps/demo-flue/package.json b/apps/demo-flue/package.json new file mode 100644 index 0000000..9b40b25 --- /dev/null +++ b/apps/demo-flue/package.json @@ -0,0 +1,19 @@ +{ + "name": "@demo/demo-flue", + "private": true, + "version": "0.1.0", + "scripts": { + "evals": "node ./scripts/run-evals.mjs", + "evals:info": "node ./scripts/run-evals.mjs --info", + "evals:verbose": "node ./scripts/run-evals.mjs --info" + }, + "dependencies": { + "@flue/runtime": "^0.7.0", + "@vitest-evals/harness-ai-sdk": "workspace:*", + "@vitest-evals/harness-flue": "workspace:*", + "ai": "^6.0.141", + "@ai-sdk/anthropic": "^3.0.71", + "valibot": "^1.1.0", + "vitest-evals": "workspace:*" + } +} diff --git a/apps/demo-flue/scripts/run-evals.mjs b/apps/demo-flue/scripts/run-evals.mjs new file mode 100644 index 0000000..e3bdd44 --- /dev/null +++ b/apps/demo-flue/scripts/run-evals.mjs @@ -0,0 +1,48 @@ +import { spawnSync } from "node:child_process"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { createEvalEnv, parseEvalCliArgs } from "../../../scripts/eval-cli.mjs"; + +const WORKSPACE_ROOT = resolve( + dirname(fileURLToPath(import.meta.url)), + "../../..", +); + +const { failMode, forwardedArgs, reportLevel } = parseEvalCliArgs( + process.argv.slice(2), +); +const env = createEvalEnv(process.env, reportLevel, { failMode }); + +const explicitTargetIndex = forwardedArgs.findIndex( + (arg) => !arg.startsWith("-"), +); +const target = + explicitTargetIndex >= 0 + ? forwardedArgs.splice(explicitTargetIndex, 1)[0] + : "apps/demo-flue/evals/refund.eval.ts"; + +const command = [ + "exec", + "dotenv", + "-e", + ".env", + "-e", + ".env.local", + "--", + "vitest", + "run", + target, + "--config", + "vitest.config.ts", + "--reporter", + "packages/vitest-evals/src/reporter.ts", + ...forwardedArgs, +]; + +const result = spawnSync("pnpm", command, { + cwd: WORKSPACE_ROOT, + env, + stdio: "inherit", +}); + +process.exit(result.status ?? 1); diff --git a/apps/demo-flue/tsconfig.json b/apps/demo-flue/tsconfig.json new file mode 100644 index 0000000..1d954e5 --- /dev/null +++ b/apps/demo-flue/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler" + }, + "include": ["**/*.ts"] +} diff --git a/packages/docs/src/content/docs/docs/harnesses.mdx b/packages/docs/src/content/docs/docs/harnesses.mdx index df5087d..417a506 100644 --- a/packages/docs/src/content/docs/docs/harnesses.mdx +++ b/packages/docs/src/content/docs/docs/harnesses.mdx @@ -20,6 +20,10 @@ full control over normalized run data. AI SDK Use when your app calls generateText, streamText, or an AI SDK wrapper. + + Flue + Use when your app builds agents with the Flue agent harness framework. + OpenAI Agents Use when your app owns an Agent and runs it with a Runner. diff --git a/packages/docs/src/content/docs/docs/harnesses/flue.mdx b/packages/docs/src/content/docs/docs/harnesses/flue.mdx new file mode 100644 index 0000000..ce0fb47 --- /dev/null +++ b/packages/docs/src/content/docs/docs/harnesses/flue.mdx @@ -0,0 +1,100 @@ +--- +title: Flue Harness +description: Adapt Flue framework agents for eval runs. +editUrl: false +--- + +Use the Flue harness when your app runs agents built with +[Flue](https://flueframework.com), the agent harness framework. This page +follows one small end-to-end story: a Flue agent answers "What is the capital of +France?" via `session.prompt()`, the harness normalizes that run, and a simple +judge checks that the answer names Paris. + +## Install + +```bash title="Flue" +pnpm add -D vitest-evals @vitest-evals/harness-flue +``` + +## App Shape + +Keep the agent configuration in app code. The harness should call the same +model, tools, and prompt that production uses. + +```ts title="src/questionAgent.ts" +export const QUESTION_MODEL = "anthropic/claude-sonnet-4-6"; + +export function textAnswer(text: string): string { + return text.trim(); +} +``` + +`QUESTION_MODEL` owns the model choice. `textAnswer()` is the small app parser +that turns provider text into the value tests and judges should read. + +## Configure Harness + +The harness creates a Flue session internally and defines the normalized +`output`. In this case the normalized output is just the trimmed answer text. + +```ts title="evals/qaHarness.ts" +import { flueHarness } from "@vitest-evals/harness-flue"; +import { QUESTION_MODEL, textAnswer } from "../src/questionAgent"; + +export const qaHarness = flueHarness({ + name: "question-agent", + model: QUESTION_MODEL, + run: async (input, session) => { + return await session.prompt( + `Answer geography questions directly. Keep answers short.\n\n${input}`, + ); + }, + output: (response) => { + if ("text" in response) return textAnswer(response.text); + throw new Error("Expected text response"); + }, +}); +``` + +Use `output` for the value your evals care about. Tool calls, usage, and errors +remain available on the normalized harness run for judges and reports. + +## Eval + +Call `run(input)` once, then judge that same normalized result. The judge is +deliberately simple so the harness story stays clear. + +```ts title="evals/capital.eval.ts" +import { expect } from "vitest"; +import { + createJudge, + describeEval, + type JudgeContext, +} from "vitest-evals"; +import { qaHarness } from "./qaHarness"; + +const CapitalJudge = createJudge( + "CapitalJudge", + async ({ output }: JudgeContext) => { + const passed = output.toLowerCase().includes("paris"); + + return { + score: passed ? 1 : 0, + metadata: { + rationale: passed + ? "The answer names Paris." + : `Expected Paris, got: ${output}`, + }, + }; + }, +); + +describeEval("capital questions", { harness: qaHarness }, (it) => { + it("knows the capital of France", async ({ run }) => { + const result = await run("What is the capital of France?"); + + expect(result.output).toContain("Paris"); + await expect(result).toSatisfyJudge(CapitalJudge); + }); +}); +``` diff --git a/packages/harness-flue/package.json b/packages/harness-flue/package.json new file mode 100644 index 0000000..8a50a97 --- /dev/null +++ b/packages/harness-flue/package.json @@ -0,0 +1,43 @@ +{ + "name": "@vitest-evals/harness-flue", + "version": "0.11.0", + "description": "Flue framework harness adapter for vitest-evals.", + "repository": { + "type": "git", + "url": "git+https://github.com/getsentry/vitest-evals.git", + "directory": "packages/harness-flue" + }, + "author": "Sergiy Dybskiy", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/getsentry/vitest-evals/issues" + }, + "homepage": "https://github.com/getsentry/vitest-evals/tree/main/packages/harness-flue#readme", + "sideEffects": false, + "types": "./dist/index.d.ts", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "files": ["dist"], + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "source": "./src/index.ts", + "types": "./dist/index.d.ts", + "require": "./dist/index.js", + "import": "./dist/index.mjs" + } + }, + "scripts": { + "build": "tsup --config ./tsup.config.ts" + }, + "peerDependencies": { + "@flue/runtime": ">=0.7", + "vitest-evals": "*" + }, + "devDependencies": { + "@flue/runtime": "^0.7.0", + "vitest-evals": "workspace:*" + } +} diff --git a/packages/harness-flue/src/index.test.ts b/packages/harness-flue/src/index.test.ts new file mode 100644 index 0000000..4941df0 --- /dev/null +++ b/packages/harness-flue/src/index.test.ts @@ -0,0 +1,273 @@ +import { describe, expect, it } from "vitest"; +import type { FlueEvent, PromptUsage } from "@flue/runtime"; +import { + createEventCollector, + aggregateUsage, + extractModel, + splitModelId, + extractOutput, + type CollectedTurn, +} from "./internals"; + +const mkUsage = (input: number, output: number): PromptUsage => ({ + input, + output, + cacheRead: 0, + cacheWrite: 0, + totalTokens: input + output, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }, +}); + +describe("createEventCollector", () => { + it("captures tool calls with args from tool_start", () => { + const collector = createEventCollector(); + + collector.handler({ + type: "tool_start", + toolName: "lookupInvoice", + toolCallId: "tc_1", + args: { invoiceId: "inv_123" }, + } as FlueEvent); + + collector.handler({ + type: "tool_call", + toolName: "lookupInvoice", + toolCallId: "tc_1", + isError: false, + result: { content: [{ type: "text", text: '{"amount":42}' }] }, + durationMs: 10, + } as FlueEvent); + + expect(collector.toolCalls).toEqual([ + { + name: "lookupInvoice", + arguments: { invoiceId: "inv_123" }, + result: '{"amount":42}', + error: undefined, + }, + ]); + }); + + it("captures tool errors", () => { + const collector = createEventCollector(); + + collector.handler({ + type: "tool_start", + toolName: "lookupInvoice", + toolCallId: "tc_1", + args: { invoiceId: "bad" }, + } as FlueEvent); + + collector.handler({ + type: "tool_call", + toolName: "lookupInvoice", + toolCallId: "tc_1", + isError: true, + result: { content: [{ type: "text", text: "Invoice not found" }] }, + durationMs: 5, + } as FlueEvent); + + expect(collector.toolCalls).toEqual([ + { + name: "lookupInvoice", + arguments: { invoiceId: "bad" }, + result: undefined, + error: "Invoice not found", + }, + ]); + }); + + it("filters out finish and give_up tools", () => { + const collector = createEventCollector(); + + collector.handler({ + type: "tool_start", + toolName: "lookupInvoice", + toolCallId: "tc_1", + args: {}, + } as FlueEvent); + collector.handler({ + type: "tool_call", + toolName: "lookupInvoice", + toolCallId: "tc_1", + isError: false, + result: { content: [{ type: "text", text: "ok" }] }, + durationMs: 10, + } as FlueEvent); + + collector.handler({ + type: "tool_start", + toolName: "finish", + toolCallId: "tc_2", + args: { status: "approved" }, + } as FlueEvent); + collector.handler({ + type: "tool_call", + toolName: "finish", + toolCallId: "tc_2", + isError: false, + result: { content: [{ type: "text", text: "Result accepted." }] }, + durationMs: 1, + } as FlueEvent); + + collector.handler({ + type: "tool_start", + toolName: "give_up", + toolCallId: "tc_3", + args: { reason: "cannot" }, + } as FlueEvent); + collector.handler({ + type: "tool_call", + toolName: "give_up", + toolCallId: "tc_3", + isError: false, + result: { content: [{ type: "text", text: "Acknowledged." }] }, + durationMs: 1, + } as FlueEvent); + + expect(collector.toolCalls).toHaveLength(1); + expect(collector.toolCalls[0]!.name).toBe("lookupInvoice"); + }); + + it("collects turn usage and model", () => { + const collector = createEventCollector(); + + collector.handler({ + type: "turn", + model: "claude-sonnet-4-6", + usage: mkUsage(500, 200), + durationMs: 3000, + isError: false, + } as FlueEvent); + + expect(collector.turns).toHaveLength(1); + expect(collector.turns[0]!.model).toBe("claude-sonnet-4-6"); + expect(collector.turns[0]!.usage?.totalTokens).toBe(700); + }); + + it("handles tool_call without preceding tool_start", () => { + const collector = createEventCollector(); + + collector.handler({ + type: "tool_call", + toolName: "orphan", + toolCallId: "tc_x", + isError: false, + result: { content: [{ type: "text", text: "ok" }] }, + durationMs: 5, + } as FlueEvent); + + expect(collector.toolCalls).toEqual([ + { + name: "orphan", + arguments: undefined, + result: "ok", + error: undefined, + }, + ]); + }); +}); + +describe("aggregateUsage", () => { + it("sums usage across multiple turns", () => { + const turns: CollectedTurn[] = [ + { model: "m1", usage: mkUsage(100, 50), durationMs: 1000 }, + { model: "m1", usage: mkUsage(200, 80), durationMs: 2000 }, + ]; + + expect(aggregateUsage(turns)).toEqual({ + input: 300, + output: 130, + totalTokens: 430, + }); + }); + + it("returns zeros for turns without usage", () => { + expect(aggregateUsage([{ durationMs: 100 }, { durationMs: 200 }])).toEqual({ + input: 0, + output: 0, + totalTokens: 0, + }); + }); + + it("returns zeros for empty turns", () => { + expect(aggregateUsage([])).toEqual({ + input: 0, + output: 0, + totalTokens: 0, + }); + }); +}); + +describe("extractModel", () => { + it("returns the first turn model", () => { + expect( + extractModel([ + { model: "claude-sonnet-4-6", durationMs: 100 }, + { model: "claude-opus-4", durationMs: 200 }, + ]), + ).toBe("claude-sonnet-4-6"); + }); + + it("skips turns without a model", () => { + expect( + extractModel([ + { durationMs: 100 }, + { model: "claude-sonnet-4-6", durationMs: 200 }, + ]), + ).toBe("claude-sonnet-4-6"); + }); + + it("returns undefined when no turns have a model", () => { + expect(extractModel([{ durationMs: 100 }])).toBeUndefined(); + }); + + it("returns undefined for empty array", () => { + expect(extractModel([])).toBeUndefined(); + }); +}); + +describe("splitModelId", () => { + it("splits provider/model", () => { + expect(splitModelId("anthropic/claude-sonnet-4-6")).toEqual([ + "anthropic", + "claude-sonnet-4-6", + ]); + }); + + it("handles no slash", () => { + expect(splitModelId("claude-sonnet-4-6")).toEqual([ + "claude-sonnet-4-6", + "claude-sonnet-4-6", + ]); + }); + + it("handles multiple slashes", () => { + expect(splitModelId("azure/openai/gpt-4")).toEqual([ + "azure", + "openai/gpt-4", + ]); + }); +}); + +describe("extractOutput", () => { + it("returns data from PromptResultResponse", () => { + expect(extractOutput({ data: { status: "approved" } } as any)).toEqual({ + status: "approved", + }); + }); + + it("returns text from PromptResponse", () => { + expect(extractOutput({ text: "hello" } as any)).toBe("hello"); + }); + + it("prefers data over text", () => { + expect(extractOutput({ data: "structured", text: "plain" } as any)).toBe( + "structured", + ); + }); + + it("returns undefined when neither data nor text", () => { + expect(extractOutput({} as any)).toBeUndefined(); + }); +}); diff --git a/packages/harness-flue/src/index.ts b/packages/harness-flue/src/index.ts new file mode 100644 index 0000000..9536807 --- /dev/null +++ b/packages/harness-flue/src/index.ts @@ -0,0 +1,115 @@ +import { + createHarness, + type Harness, + type HarnessMetadata, + type JsonValue, + type SimpleHarnessResult, +} from "vitest-evals/harness"; +import type { + FlueEventCallback, + PromptResponse, + PromptResultResponse, +} from "@flue/runtime"; +import { + aggregateUsage, + createEventCollector, + extractModel, + extractOutput, + splitModelId, +} from "./internals"; + +type MaybePromise = T | Promise; + +/** Context passed to the run function with eval metadata and event capture. */ +export interface FlueRunContext< + TMetadata extends HarnessMetadata = HarnessMetadata, +> { + /** Eval metadata from the test case. */ + metadata: Readonly; + /** Abort signal from Vitest. */ + signal?: AbortSignal; + /** + * Event handler that captures tool calls and usage. Pass this to + * `ctx.subscribeEvent(eventHandler)` on your FlueContext so the adapter + * can observe the run. + */ + eventHandler: FlueEventCallback; +} + +/** Options for creating a Flue framework eval harness. */ +export interface FlueHarnessOptions< + TInput = string, + TOutput extends JsonValue | undefined = JsonValue | undefined, + TMetadata extends HarnessMetadata = HarnessMetadata, +> { + /** Stable harness name used in reports. */ + name: string; + /** Flue model string used for provider/model identification in reports, e.g. `"anthropic/claude-sonnet-4-6"`. */ + model: string; + /** + * Run the Flue agent. Create the FlueContext, call `init()`, open a + * session, and return the response. Wire `context.eventHandler` into + * the FlueContext via `ctx.subscribeEvent(context.eventHandler)` so the + * adapter can capture tool calls and usage. + */ + run: ( + input: TInput, + context: FlueRunContext, + ) => MaybePromise>; + /** Extract the eval output from the Flue response. Defaults to `response.data ?? response.text`. */ + output?: ( + response: PromptResponse | PromptResultResponse, + input: TInput, + ) => MaybePromise; +} + +/** + * Creates a vitest-evals harness that normalizes a Flue agent run. + * + * The user owns the Flue runtime lifecycle. The adapter provides an event + * handler that captures tool calls and usage, and normalizes the response + * into a `HarnessRun`. + */ +export function flueHarness< + TInput = string, + TOutput extends JsonValue | undefined = JsonValue | undefined, + TMetadata extends HarnessMetadata = HarnessMetadata, +>( + options: FlueHarnessOptions, +): Harness { + return createHarness({ + name: options.name, + run: async ({ input, metadata, signal }) => { + const collector = createEventCollector(); + + const response = await options.run(input, { + metadata, + signal, + eventHandler: collector.handler, + }); + + const usage = aggregateUsage(collector.turns); + const turnModel = extractModel(collector.turns); + const [provider] = splitModelId(options.model); + const model = turnModel ?? splitModelId(options.model)[1]; + + const outputValue = + options.output != null + ? await options.output(response, input) + : extractOutput(response); + + return { + output: outputValue, + toolCalls: collector.toolCalls, + usage: { + provider, + model, + inputTokens: usage.input, + outputTokens: usage.output, + totalTokens: usage.totalTokens, + }, + errors: [], + } as SimpleHarnessResult; + }, + }); +} diff --git a/packages/harness-flue/src/internals.ts b/packages/harness-flue/src/internals.ts new file mode 100644 index 0000000..8f9e750 --- /dev/null +++ b/packages/harness-flue/src/internals.ts @@ -0,0 +1,90 @@ +import type { SimpleToolCallRecord } from "vitest-evals/harness"; +import type { + FlueEvent, + PromptResponse, + PromptResultResponse, + PromptUsage, +} from "@flue/runtime"; + +export interface CollectedTurn { + model?: string; + usage?: PromptUsage; + durationMs: number; +} + +const INTERNAL_TOOLS = new Set(["finish", "give_up"]); + +export function createEventCollector() { + const toolCalls: SimpleToolCallRecord[] = []; + const turns: CollectedTurn[] = []; + const pendingArgs = new Map(); + + const handler = (event: FlueEvent): void => { + if (event.type === "tool_start" && !INTERNAL_TOOLS.has(event.toolName)) { + pendingArgs.set(event.toolCallId, event.args); + } else if ( + event.type === "tool_call" && + !INTERNAL_TOOLS.has(event.toolName) + ) { + const args = pendingArgs.get(event.toolCallId); + pendingArgs.delete(event.toolCallId); + const resultText = + event.result?.content?.[0]?.type === "text" + ? event.result.content[0].text + : undefined; + toolCalls.push({ + name: event.toolName, + arguments: args, + result: event.isError ? undefined : resultText, + error: event.isError ? resultText : undefined, + }); + } else if (event.type === "turn") { + turns.push({ + model: event.model, + usage: event.usage, + durationMs: event.durationMs, + }); + } + }; + + return { toolCalls, turns, handler }; +} + +export function aggregateUsage(turns: CollectedTurn[]): { + input: number; + output: number; + totalTokens: number; +} { + let input = 0; + let output = 0; + let totalTokens = 0; + for (const turn of turns) { + if (turn.usage) { + input += turn.usage.input; + output += turn.usage.output; + totalTokens += turn.usage.totalTokens; + } + } + return { input, output, totalTokens }; +} + +export function extractModel(turns: CollectedTurn[]): string | undefined { + for (const turn of turns) { + if (turn.model) return turn.model; + } + return undefined; +} + +export function splitModelId(modelId: string): [string, string] { + const slash = modelId.indexOf("/"); + if (slash === -1) return [modelId, modelId]; + return [modelId.slice(0, slash), modelId.slice(slash + 1)]; +} + +export function extractOutput( + response: PromptResponse | PromptResultResponse, +): any { + if ("data" in response) return response.data; + if ("text" in response) return response.text; + return undefined; +} diff --git a/packages/harness-flue/tsconfig.json b/packages/harness-flue/tsconfig.json new file mode 100644 index 0000000..9e25e6e --- /dev/null +++ b/packages/harness-flue/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src/**/*.ts"] +} diff --git a/packages/harness-flue/tsup.config.ts b/packages/harness-flue/tsup.config.ts new file mode 100644 index 0000000..c70676d --- /dev/null +++ b/packages/harness-flue/tsup.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/**/*.ts", "!src/**/*.test.ts", "!src/**/*.test.*.ts"], + format: ["cjs", "esm"], + dts: true, + splitting: false, + sourcemap: true, + clean: true, + external: ["@flue/runtime", "vitest-evals"], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0151d9b..b7ce188 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,30 @@ importers: specifier: ^4.3.6 version: 4.3.6 + apps/demo-flue: + dependencies: + '@ai-sdk/anthropic': + specifier: ^3.0.71 + version: 3.0.71(zod@4.3.6) + '@flue/runtime': + specifier: ^0.7.0 + version: 0.7.0(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(ai@6.0.141(zod@4.3.6))(typebox@1.1.38)(typescript@5.8.3)(ws@8.20.0)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) + '@vitest-evals/harness-ai-sdk': + specifier: workspace:* + version: link:../../packages/harness-ai-sdk + '@vitest-evals/harness-flue': + specifier: workspace:* + version: link:../../packages/harness-flue + ai: + specifier: ^6.0.141 + version: 6.0.141(zod@4.3.6) + valibot: + specifier: ^1.1.0 + version: 1.4.0(typescript@5.8.3) + vitest-evals: + specifier: workspace:* + version: link:../../packages/vitest-evals + apps/demo-openai-agents: dependencies: '@openai/agents': @@ -109,22 +133,22 @@ importers: dependencies: '@astrojs/mdx': specifier: ^5.0.6 - version: 5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0)) + version: 5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0)) '@astrojs/starlight': specifier: ^0.39.2 - version: 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) + version: 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) '@sentry/starlight-theme': specifier: ^0.6.0 - version: 0.6.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3)) + version: 0.6.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3)) '@vercel/functions': specifier: ^2.0.0 - version: 2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31) + version: 2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43) astro: specifier: ^6.3.5 - version: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0) + version: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0) starlight-typedoc: specifier: ^0.22.0 - version: 0.22.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.8.3)))(typedoc@0.28.19(typescript@5.8.3)) + version: 0.22.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.8.3)))(typedoc@0.28.19(typescript@5.8.3)) vitest-evals: specifier: workspace:* version: link:../vitest-evals @@ -151,6 +175,15 @@ importers: specifier: workspace:* version: link:../vitest-evals + packages/harness-flue: + devDependencies: + '@flue/runtime': + specifier: ^0.7.0 + version: 0.7.0(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(ai@6.0.141(zod@4.3.6))(typebox@1.1.38)(typescript@5.8.3)(ws@8.20.0)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) + vitest-evals: + specifier: workspace:* + version: link:../vitest-evals + packages/harness-openai-agents: devDependencies: '@openai/agents': @@ -232,6 +265,15 @@ packages: zod: optional: true + '@anthropic-ai/sdk@0.91.1': + resolution: {integrity: sha512-LAmu761tSN9r66ixvmciswUj/ZC+1Q4iAfpedTfSVLeswRwnY3n2Nb6Tsk+cLPP28aLOPWeMgIuTuCcMC6W/iw==} + hasBin: true + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + zod: + optional: true + '@astrojs/compiler@4.0.0': resolution: {integrity: sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA==} @@ -284,50 +326,98 @@ packages: resolution: {integrity: sha512-fSRz/48As9c3DeS+9ZWd7kk9171pJntCCuehHBDeprD9CPF+C+ATaVNJ5SOLE5RIBR2IHOVTwjAgJt/nkS/6Yg==} engines: {node: '>=20.0.0'} + '@aws-sdk/client-bedrock-runtime@3.1048.0': + resolution: {integrity: sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.974.1': resolution: {integrity: sha512-gy/gffKz0zaHDaqRiLCdIvgHmaAL/HXuAtMcBP7euYSFx4BsbsdlfmUBJag+Gqe62z6/XuloKyQyaiH+kS3Vrg==} engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.974.13': + resolution: {integrity: sha512-+Y5/4tHki0uYgyx8eun146DegRVQBpdKGK5RbV0FTKJPpaKTchvqVxrrRFK6Wk0JksO4iAZKw3eqxGEIwtO98w==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.27': resolution: {integrity: sha512-xfUt2CUZDC+Tf16A6roD1b4pk/nrXdkoLY3TEhv198AXDtBo5xUJP1zd0e8SmuKLN4PpIBX96OizZbmMlcI6oQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.39': + resolution: {integrity: sha512-29wX9zpAvEt1vcj0psha+y6ygBHy2V/S72mp6e7q0KARLWXq+pwE/lR6qGkwknQvruh52lXvlqZIga8Hdxkucw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.29': resolution: {integrity: sha512-hjNeYb6oLyHgMihra83ie0J/T2y9om3cy1qC90h9DRgvYXEoN4BCFf8bHguZjKhXunnv7YkmZRuYL5Mkk77eCA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.41': + resolution: {integrity: sha512-IA3CQTjtJkb6u1H4mE4936c8OPBMa9Jggtwe8U2Mqw/vvb/tZ5Ebd0mcZcX0uKWQhOyYo/+qNIwkV5Xh+FeJJA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.31': resolution: {integrity: sha512-PuQ7e8WYzAPpzvFcajxf8c0LqSzakVHVlKw8M0oubk8Kf347YOCCqT1seQrHs5AdZuIh2RD9LX4O+Xa5ImEBfQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.43': + resolution: {integrity: sha512-4mzII+3mZEVXXE1xzrLQrCJL7/r62A63bA6SVzZoNL5rqCJghpf+xgGltVrIBBs0n+mOZBKrQl2tRREtvZ5l6A==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.31': resolution: {integrity: sha512-bBmWDmtSpmLOZR6a0kmowBcVL1hiL8Vlap/RXeMpFd7JbWl87YcwqL6T9LH/0oBVEZXu1dUZAtojgSuZgMO5xw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.43': + resolution: {integrity: sha512-HG7kQCwXtbv3oBV61Ins0oNX8KKyvrMqqRkb6ZiAfQHbMuHaiNaEb2KnpKLPkNpqImSBK82UkVE/kaY6IfWikA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.32': resolution: {integrity: sha512-9aj0x9hGYUondBZSD0XkksAdHhOKttFw4BWpLCeggeg40qSJxGrAP++g0GCm0VqWc1WtC/NRFiAVzPCy56vmog==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.44': + resolution: {integrity: sha512-sDaBIT0yrNNIPfvlsiTCmANm07zKju+ipWODjEXgZlsjMeIJR3LVp7RDyAOzUoAsTbDfYKDWp+i5WrFiQP6rmQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.27': resolution: {integrity: sha512-1CZvfb1WzudWWIFAVQkd1OI/T1RxPcSvNWzNsb2BMBVsBJzBtB8dV5f2nymHVU4UqwxipdVt/DAbgdDRf33JDg==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.39': + resolution: {integrity: sha512-2k/amBifLd75eXNwgvPw/2lKYSQ3NhvHQgkVKVjfUq13/eJ3JRtHmznuFenn74OK3sSfp4SMy1YB2w+UVXoKqA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.31': resolution: {integrity: sha512-x8Mx18S48XMl9bEEpYwmXDTvjWGPIfDadReN37Lc099/DUrlL4Zs9T9rwwggo6DkKS1aev6v+MTUx7JTa87TZQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.43': + resolution: {integrity: sha512-LPc3+Y4vhH1T4x6CMqwCM6hk5+SRf/Lwmgm8INm95wxTtIRHcMwQUVkDzWu4Iw/RSncxYM2BC01OrYbxOPZvyg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.31': resolution: {integrity: sha512-zfuNMIkGfjYsHis9qytYf74Bcmq6Ji9Xwf4w53baRCI/b2otTwZv3SW1uRiJ5Di7999QzRGhHZ96+eUeo3gSOA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.43': + resolution: {integrity: sha512-wQtL34lUD/09VXjwAUo2T+I3aEXRDxMB3DKmTJL/Zj0Gi6sLDTrVhae1XVt01yzkquOWajI/sZW72JGDZ1ciTw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/eventstream-handler-node@3.972.14': resolution: {integrity: sha512-m4X56gxG76/CKfxNVbOFuYwnAZcHgS6HOH8lgp15HoGHIAVTcZfZrXvcYzJFOMLEJgVn+JHBu6EiNV+xSNXXFg==} engines: {node: '>=20.0.0'} + '@aws-sdk/eventstream-handler-node@3.972.17': + resolution: {integrity: sha512-WFwdNcjchKZr7jKYgGimUZO8sSKQF/le7GGqgeCzz/lHozInE6b0gFJ1YMr8NaIeAoWJwgtrF7RE4/qMgosAdQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-eventstream@3.972.10': resolution: {integrity: sha512-QUqLs7Af1II9X4fCRAu+EGHG3KHyOp4RkuLhRKoA3NuFlh6TL8i+zXBl8w2LUxqm44B/Kom45hgSlwA1SpTsXQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-eventstream@3.972.13': + resolution: {integrity: sha512-ECfsw7mf6G/sxNbKbGE3/h1xeIArY/yRI1IjDGYkLgDIankh+aDOtDRSr40LVlIHGL9+jEH1cVuxmbJ8NLL/1A==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-host-header@3.972.10': resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} engines: {node: '>=20.0.0'} @@ -348,22 +438,46 @@ packages: resolution: {integrity: sha512-86+S9oCyRVGzoMRpQhxkArp7kD2K75GPmaNevd9B6EyNhWoNvnCZZ3WbgN4j7ZT+jvtvBCGZvI2XHsWZJ+BRIg==} engines: {node: '>= 14.0.0'} + '@aws-sdk/middleware-websocket@3.972.21': + resolution: {integrity: sha512-yr+5+C7v9R55sAJ89A55Wrm7wIKPVn5cm6J3Hztnd5s/iwEUKxyJqCnIxJu4fVXgG9XBQD1Jc4rsWC1ozahJjA==} + engines: {node: '>= 14.0.0'} + '@aws-sdk/nested-clients@3.996.21': resolution: {integrity: sha512-Me3d/ua2lb2G0bQfFmvCeQQp3+nN6GSPqMxDmi/IQlQ8CrlpQ5C0JJHpz2AnOUkEFI0lBNrAL3Vnt29l44ndkA==} engines: {node: '>=20.0.0'} + '@aws-sdk/nested-clients@3.997.11': + resolution: {integrity: sha512-nWXXJ1r/r8N2Gw1pWolRgED38/A9A8DHR2ETWIv220zh4PZHcybbR4hUVWWktmNXTRHzDJwRluapHn0rZxuoqA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/region-config-resolver@3.972.12': resolution: {integrity: sha512-QQI43Mxd53nBij0pm8HXC+t4IOC6gnhhZfzxE0OATQyO6QfPV4e+aTIRRuAJKA6Nig/cR8eLwPryqYTX9ZrjAQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/signature-v4-multi-region@3.996.28': + resolution: {integrity: sha512-qs9z5LqXO/CZC2Lg9SGKpoLU8Rhi+m2pFKZqfO9pytX1clc0katqtsDNupJxFy0xT9wsZSPzM2v1y+/H/zfp5Q==} + engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1032.0': resolution: {integrity: sha512-n+PU8Z+gll7p3wDrH+Wo6fkt8sPrVnq30YYM6Ryga95oJlEneNMEbDHj0iqjMX3V7gaGdJo/hJWyPo4lscP+mA==} engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1048.0': + resolution: {integrity: sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/token-providers@3.1052.0': + resolution: {integrity: sha512-QqZNB3so7UIDxZtroc85TQaLVxdZRFm0eWM1CSR2N+b06as9TOrilvrlTZuj3guYlxMs6yLOgGxnklJ5qMYtTw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.973.8': resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.973.9': + resolution: {integrity: sha512-kuBfgQVdcz5Bmapc4A13YbpVw/pXkesfhetcFYwbntqas8sF41OHyd4o28+/TG2ZQdHBsv90Lsu5y6oitvYCdg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/util-endpoints@3.996.7': resolution: {integrity: sha512-ty4LQxN1QC+YhUP28NfEgZDEGXkyqOQy+BDriBozqHsrYO4JMgiPhfizqOGF7P+euBTZ5Ez6SKlLAMCLo8tzmw==} engines: {node: '>=20.0.0'} @@ -392,6 +506,10 @@ packages: resolution: {integrity: sha512-BMDNVG1ETXRhl1tnisQiYBef3RShJ1kfZA7x7afivTFMLirfHNTb6U71K569HNXhSXbQZsweHvSDZ6euBw8hPA==} engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.25': + resolution: {integrity: sha512-GH+Kjz4nPKWKHnsiQpnhP1MJdTGIcK4rAka6tzakgjjUkVgNsmPeEbbRAf09SzS1hjGu6duGHCBsxYke0BhHjQ==} + engines: {node: '>=20.0.0'} + '@aws/lambda-invoke-store@0.2.4': resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} engines: {node: '>=18.0.0'} @@ -478,6 +596,9 @@ packages: cpu: [x64] os: [win32] + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@capsizecss/unpack@4.0.0': resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} engines: {node: '>=18'} @@ -490,10 +611,39 @@ packages: resolution: {integrity: sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==} engines: {node: '>= 20.12.0'} + '@cloudflare/codemode@0.3.7': + resolution: {integrity: sha512-Tc2AcF39ZExXMcCkTYtYGRHgIbWLePdWcRErEAS+RrpNgQht5dG0A9TkQDUQ1kyE43AC+gl4leVwhoWY2V9sWw==} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.25.0 + '@tanstack/ai': '>=0.8.0 <1.0.0' + ai: ^6.0.0 + zod: ^4.0.0 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + '@tanstack/ai': + optional: true + ai: + optional: true + zod: + optional: true + + '@cloudflare/shell@0.3.8': + resolution: {integrity: sha512-tuseZ2bYEIiiOioGOgD9SqhchUQfHPOaRcifw8fj0YwTZNvcmO/wSvbtWDxxC/CUlnEJ1Y+tvNHub97TyTyoEQ==} + '@ctrl/tinycolor@4.2.0': resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} engines: {node: '>=14'} + '@earendil-works/pi-agent-core@0.75.4': + resolution: {integrity: sha512-cGYbysb4EqUf0B28OeqFq2ppm1XF3bYBOP71q9dv38yf/UJfzMjiXBeNelrcio+QWIoVrW+xzYm7sMzYIUc9Og==} + engines: {node: '>=22.19.0'} + + '@earendil-works/pi-ai@0.75.4': + resolution: {integrity: sha512-m/w8Hh3vQ0rAycwJiJWdzkypkn4295f4eq/966lDRy8aX5sk6bgYXH8TQmL16TO7Uwc7MbJG0QoyFHgX8RqXUQ==} + engines: {node: '>=22.19.0'} + hasBin: true + '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} @@ -821,6 +971,10 @@ packages: '@expressive-code/plugin-text-markers@0.42.0': resolution: {integrity: sha512-l59lUx8fq1v5g6SpmbDjiU0+7IdfbiWnAyRmtTVSpfhyq+nZMN4UcmYyu2b9Mynhzt7Gr+O+cXyEPDNb2AVWVQ==} + '@flue/runtime@0.7.0': + resolution: {integrity: sha512-irkY9cqXkerzONBUtkrVBA869llLrzmzu97phWBm/z/LivgWBkt7YDfg8SrpNuTGbP9ScGjJmLtIXswe0Cz4Gw==} + engines: {node: '>=22.18.0'} + '@fontsource-variable/rubik@5.2.8': resolution: {integrity: sha512-vGDExLzB4a2Fj9mca5LqNoA2ZKcU9o+x5FEBLte/nxYkCB9hOQwZS6ZlItUv+Ssn7YMzKauGuI/Po+YueFuZbg==} @@ -839,12 +993,27 @@ packages: '@modelcontextprotocol/sdk': optional: true + '@google/genai@1.52.0': + resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.25.2 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + '@hono/node-server@1.19.14': resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 + '@hono/standard-validator@0.2.2': + resolution: {integrity: sha512-mJ7W84Bt/rSvoIl63Ynew+UZOHAzzRAoAXb3JaWuxAkM/Lzg+ZHTCUiz77KOtn2e623WNN8LkD57Dk0szqUrIw==} + peerDependencies: + '@standard-schema/spec': ^1.0.0 + hono: '>=3.9.0' + '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -1002,6 +1171,21 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@jitl/quickjs-ffi-types@0.32.0': + resolution: {integrity: sha512-v9T+GQpmk43VDJ7d72sf0Nexhk+ArvtUihW27dy7lqAl0zBObFKtSBBIm5RBjwIhE8VwsPPm9PNuvPvNqLWUEg==} + + '@jitl/quickjs-wasmfile-debug-asyncify@0.32.0': + resolution: {integrity: sha512-EX8zbXwGqCgAE764M+qvkHtyXDi/FUoMBea0JnES7vCM3P7a2+EOZOjGv85wtZ2sJhI1oJ+nekmqpOODFDY+hw==} + + '@jitl/quickjs-wasmfile-debug-sync@0.32.0': + resolution: {integrity: sha512-LeYWrPGC1uNCTBWvibo3ZLJj0CSVNYUXvJpXMCmuQ5Sap2cCACc3uvGvYV4homHHBAzfw5akoTqMMS4YFRtw+Q==} + + '@jitl/quickjs-wasmfile-release-asyncify@0.32.0': + resolution: {integrity: sha512-3oSwPfja12ICz4aIblB58cuY8JlEq5Txt8Cut4VLo+LH47QN+mzCnSgnbB03hWzg1LBcc+VyyI9UOag7a1NF+Q==} + + '@jitl/quickjs-wasmfile-release-sync@0.32.0': + resolution: {integrity: sha512-BKNDI/TPBfGlLNGYpLrhcDGXmIk4xHm4MRAisOBnOzpXVn9HZWsfmMAc9WMBrAHjvvds6HOikKeaOBKdPdpVrg==} + '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} @@ -1038,6 +1222,12 @@ packages: '@mistralai/mistralai@2.2.0': resolution: {integrity: sha512-JQUGIXjFWnw/J9LpTSf/ZXwVW3Sh8FBAcfTo5QvAHqkl4CfSiIwnjRJhMoAFcP6ncCe84YPU1ncDGX+p3OXnfg==} + '@mistralai/mistralai@2.2.1': + resolution: {integrity: sha512-uKU8CZmL2RzYKmplsU01hii4p3pe4HqJefpWNRWXm1Tcm0Sm4xXfwSLIy4k7ZCPlbETCGcp69E7hZs+WOJ5itQ==} + + '@mixmark-io/domino@2.2.0': + resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} + '@modelcontextprotocol/sdk@1.29.0': resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} engines: {node: '>=18'} @@ -1048,6 +1238,13 @@ packages: '@cfworker/json-schema': optional: true + '@mongodb-js/zstd@7.0.0': + resolution: {integrity: sha512-mQ2s0pYYiav+tzCDR05Zptem8Ey2v8s11lri5RKGhTtL4COVCvVCk5vtyRYNT+9L8qSfyOqqefF9UtnW8mC5jA==} + engines: {node: '>= 20.19.0'} + + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@openai/agents-core@0.8.5': resolution: {integrity: sha512-qs9mmN+D+UmqEZo3qrvhhIIXIOgSvJPic0v4a+ruq+eYgcQMk3PY8lLcsdQwJit6zf2Wyfv1q2cX5m3jzWZpKw==} peerDependencies: @@ -1330,10 +1527,18 @@ packages: resolution: {integrity: sha512-E7GVCgsQttzfujEZb6Qep005wWf4xiL4x06apFEtzQMWYBPggZh/0cnOxPficw5cuK/YjjkehKoIN4YUaSh0UQ==} engines: {node: '>=18.0.0'} + '@smithy/core@3.24.4': + resolution: {integrity: sha512-3UNRKEyQyAgVgM0LGlerCLm+ChZWZ1GPfde+jBEW6bm6bSBGU1p0EbblaUV3unbhwvidjLA5Zs3sOs7mnZwvAw==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.2.14': resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.3.4': + resolution: {integrity: sha512-vKW0MEFRU4Y3MkVZUkpJm+g9qyPGLCXhc0YLggUdSdBB4g7IaSSsCE75P9rBXyWHrXY1UYSQUl8/DwsTR7QciA==} + engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@4.2.14': resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} engines: {node: '>=18.0.0'} @@ -1358,6 +1563,10 @@ packages: resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.4.4': + resolution: {integrity: sha512-qM7AUKI4G6d7lNgaZD3lA1tWSolh5r6gcixfTZAPstVURfjIbvreVTPz+994M0yC3HbX4YYhDRgr31Xy3XwWOQ==} + engines: {node: '>=18.0.0'} + '@smithy/hash-node@4.2.14': resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} engines: {node: '>=18.0.0'} @@ -1402,6 +1611,10 @@ packages: resolution: {integrity: sha512-lc5jFL++x17sPhIwMWJ3YOnqmSjw/2Po6VLDlUIXvxVWRuJwRXnJ4jOBBLB0cfI5BB5ehIl02Fxr1PDvk/kxDw==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.7.4': + resolution: {integrity: sha512-HIeF+1vrDGzPkkv39Hj2vlHSXHY3p958jd/8ZnePIY6+ZOsQX8coyEUKO5yQu4r0bQIVsbpotVIrXXwyycMStQ==} + engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.2.14': resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} engines: {node: '>=18.0.0'} @@ -1430,6 +1643,10 @@ packages: resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.4.4': + resolution: {integrity: sha512-e5UtkMvsatzBfbeBZjEOt0k0Z3BEsjTFL/n6fdO5vtBLe67tdy0dX7xw2DU7uZ3acwoHyeCqpU2Fzb7pxwHb6Q==} + engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.12.11': resolution: {integrity: sha512-wzz/Wa1CH/Tlhxh0s4DQPEcXSxSVfJ59AZcUh9Gu0c6JTlKuwGf4o/3P2TExv0VbtPFt8odIBG+eQGK2+vTECg==} engines: {node: '>=18.0.0'} @@ -1438,6 +1655,10 @@ packages: resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} engines: {node: '>=18.0.0'} + '@smithy/types@4.14.2': + resolution: {integrity: sha512-P+otAxbV4CqBybp7EkcJCrig63yE2E7PuNVOmilVMRcx/O+QDzGULTrKsq4DV13gSfak9ObPrWaHl/9bL5YcWw==} + engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.2.14': resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} engines: {node: '>=18.0.0'} @@ -1510,9 +1731,77 @@ packages: resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} + '@standard-community/standard-json@0.3.5': + resolution: {integrity: sha512-4+ZPorwDRt47i+O7RjyuaxHRK/37QY/LmgxlGrRrSTLYoFatEOzvqIc85GTlM18SFZ5E91C+v0o/M37wZPpUHA==} + peerDependencies: + '@standard-schema/spec': ^1.0.0 + '@types/json-schema': ^7.0.15 + '@valibot/to-json-schema': ^1.3.0 + arktype: ^2.1.20 + effect: ^3.16.8 + quansync: ^0.2.11 + sury: ^10.0.0 + typebox: ^1.0.17 + valibot: ^1.1.0 + zod: ^3.25.0 || ^4.0.0 + zod-to-json-schema: ^3.24.5 + peerDependenciesMeta: + '@valibot/to-json-schema': + optional: true + arktype: + optional: true + effect: + optional: true + sury: + optional: true + typebox: + optional: true + valibot: + optional: true + zod: + optional: true + zod-to-json-schema: + optional: true + + '@standard-community/standard-openapi@0.2.9': + resolution: {integrity: sha512-htj+yldvN1XncyZi4rehbf9kLbu8os2Ke/rfqoZHCMHuw34kiF3LP/yQPdA0tQ940y8nDq3Iou8R3wG+AGGyvg==} + peerDependencies: + '@standard-community/standard-json': ^0.3.5 + '@standard-schema/spec': ^1.0.0 + arktype: ^2.1.20 + effect: ^3.17.14 + openapi-types: ^12.1.3 + sury: ^10.0.0 + typebox: ^1.0.0 + valibot: ^1.1.0 + zod: ^3.25.0 || ^4.0.0 + zod-openapi: ^4 + peerDependenciesMeta: + arktype: + optional: true + effect: + optional: true + sury: + optional: true + typebox: + optional: true + valibot: + optional: true + zod: + optional: true + zod-openapi: + optional: true + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@tokenizer/inflate@0.4.1': + resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} + engines: {node: '>=18'} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -1537,6 +1826,9 @@ packages: '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -1573,6 +1865,11 @@ packages: '@ungap/structured-clone@1.3.1': resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@valibot/to-json-schema@1.7.0': + resolution: {integrity: sha512-Y3pPVibbIOHzohrlxSINvO7w/bvXkoYS3BQHoImV9ynE+bXKf171bdMucPurV2zp7gdmt0L1HCcNAsbo7cFRQw==} + peerDependencies: + valibot: ^1.4.0 + '@vercel/functions@2.2.13': resolution: {integrity: sha512-14ArBSIIcOBx9nrEgaJb4Bw+en1gl6eSoJWh8qjifLl5G3E4dRXCFOT8HP+w66vb9Wqyd1lAQBrmRhRwOj9X9A==} engines: {node: '>= 18'} @@ -1628,6 +1925,10 @@ packages: '@vitest/utils@4.1.2': resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} @@ -1729,9 +2030,16 @@ packages: engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + autoevals@0.0.132: resolution: {integrity: sha512-x033hXLO1Vyggbv68Y1QeoZlrdKHcNexcutPhVaDhDJ4SO6TU1rG6vME77g/zKvH4VWFVBPDWM1pRbPxAFF+sA==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1765,6 +2073,9 @@ packages: binary-search@1.3.6: resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} @@ -1789,6 +2100,12 @@ packages: buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1807,6 +2124,10 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -1849,10 +2170,16 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} + clean-git-ref@2.0.1: + resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -1893,6 +2220,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + common-ancestor-path@2.0.0: resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} engines: {node: '>= 18'} @@ -1943,6 +2274,11 @@ packages: resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -2006,6 +2342,18 @@ packages: decode-named-character-reference@1.3.0: resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} @@ -2034,6 +2382,9 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff3@0.0.3: + resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==} + diff@8.0.4: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} @@ -2097,6 +2448,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2193,12 +2547,20 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + eventsource-parser@3.0.6: resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} engines: {node: '>=18.0.0'} @@ -2211,6 +2573,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-type@1.3.0: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} @@ -2246,13 +2612,21 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fast-xml-builder@1.1.5: - resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} fast-xml-parser@5.5.8: resolution: {integrity: sha512-Z7Fh2nVQSb2d+poDViM063ix2ZGt9jmY1nWhPfHBOK2Hgnb/OW3P4Et3P/81SEej0J7QbWtJqxO05h8QYfK7LQ==} hasBin: true + fast-xml-parser@5.7.3: + resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==} + hasBin: true + + fast-xml-parser@5.8.0: + resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} + hasBin: true + fdir@6.4.6: resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: @@ -2277,6 +2651,10 @@ packages: fft.js@4.0.4: resolution: {integrity: sha512-f9c00hphOgeQTlDyavwTtu6RiK8AIFjD6+jvXkNkpeQ7rirK3uFWVpalkoS4LAwbdX7mfZ8aoBfFVQX1Re/8aw==} + file-type@21.3.4: + resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} + engines: {node: '>=20'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2299,6 +2677,10 @@ packages: resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} engines: {node: '>=20'} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -2315,6 +2697,9 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2355,6 +2740,9 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -2385,10 +2773,17 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.3: resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} @@ -2453,6 +2848,21 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + hono-openapi@1.3.0: + resolution: {integrity: sha512-xDvCWpWEIv0weEmnl3EjRQzqbHIO8LnfzMuYOCmbuyE5aes6aXxLg4vM3ybnoZD5TiTUkA6PuRQPJs3R7WRBig==} + peerDependencies: + '@hono/standard-validator': ^0.2.0 + '@standard-community/standard-json': ^0.3.5 + '@standard-community/standard-openapi': ^0.2.9 + '@types/json-schema': ^7.0.15 + hono: ^4.8.3 + openapi-types: ^12.1.3 + peerDependenciesMeta: + '@hono/standard-validator': + optional: true + hono: + optional: true + hono@4.12.16: resolution: {integrity: sha512-jN0ZewiNAWSe5khM3EyCmBb250+b40wWbwNILNfEvq84VREWwOIkuUsFONk/3i3nqkz7Oe1PcpM2mwQEK2L9Kg==} engines: {node: '>=16.9.0'} @@ -2500,9 +2910,27 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} @@ -2530,6 +2958,10 @@ packages: is-any-array@2.0.1: resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==} + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -2578,13 +3010,25 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isomorphic-git@1.38.1: + resolution: {integrity: sha512-Vd2u5qDLa04fA/h5nUMU5UuffPXqg+3D3bJIV3n7Sno2qS3XMinUXRvNHrGPVy2kkC1ad5SPCC3WcpXjn0L9oQ==} + engines: {node: '>=14.17'} + hasBin: true + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -2641,6 +3085,10 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + just-bash@2.14.5: + resolution: {integrity: sha512-MCBGnRlDeZ/MM7mcw+ZuSGFMBsggajrmKz6e/hrOAN7syvVZkjiY+Vh2wyCwN/CdcnAX5SxbiQB51n5nrQuX+g==} + hasBin: true + jwa@2.0.1: resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} @@ -2651,6 +3099,9 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + layerr@3.0.0: + resolution: {integrity: sha512-tv754Ki2dXpPVApOrjTyRo4/QegVb9eVFq4mjqp4+NM5NaX7syQvN5BBNfV/ZpAHCEHV24XdUVrBAoka4jt3pA==} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -2934,6 +3385,10 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -2945,10 +3400,16 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimisted@2.0.1: + resolution: {integrity: sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + ml-array-max@1.2.4: resolution: {integrity: sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==} @@ -2970,6 +3431,10 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + modern-tar@0.7.6: + resolution: {integrity: sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==} + engines: {node: '>=18.0.0'} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -2989,6 +3454,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -3004,6 +3472,14 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-abi@3.92.0: + resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} + engines: {node: '>=10'} + + node-addon-api@8.8.0: + resolution: {integrity: sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA==} + engines: {node: ^18 || ^20 || >= 21} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -3016,6 +3492,15 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-liblzma@2.2.0: + resolution: {integrity: sha512-s0KzNOWwOJJgPG6wxg6cKohnAl9Wk/oW1KrQaVzJBjQwVcUGPQCzpR46Ximygjqj/3KhOrtJXnYMp/xYAXp75g==} + engines: {node: '>=16.0.0'} + hasBin: true + node-mock-http@1.0.4: resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} @@ -3092,6 +3577,9 @@ packages: zod: optional: true + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + p-limit@7.3.0: resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==} engines: {node: '>=20'} @@ -3126,6 +3614,12 @@ packages: resolution: {integrity: sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==} hasBin: true + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + papaparse@5.5.3: + resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -3187,6 +3681,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -3198,6 +3696,10 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} @@ -3230,10 +3732,20 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. + hasBin: true + prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -3252,6 +3764,9 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -3264,6 +3779,16 @@ packages: resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + quickjs-emscripten-core@0.32.0: + resolution: {integrity: sha512-QFnPfjFey8EqknSrSxe1hZrf1/8z7/6s1QzGOmKo6++02r7QRRX7ZoyNaZh7JuVjWsVW87KnQrbZqnHkOAzUyg==} + + quickjs-emscripten@0.32.0: + resolution: {integrity: sha512-So0Sqw869y/S2oE3Nuc0uT3Dhqgvsj8FSrwBdsuTosVsG8ME5/OcudU1GxsrIFdFABgy17GHnTVO9TYV/bLQcA==} + engines: {node: '>=16.0.0'} + radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -3275,6 +3800,21 @@ packages: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + re2js@1.3.3: + resolution: {integrity: sha512-s/I5zEAo79SUK0Qw4dpZKpiMwbQ6Gz0KU2NRr7eaO4x/p2g7Vvmn3hdeXDg8VsaUjfj/ora+e9oi27LX/C9+mw==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -3402,6 +3942,10 @@ packages: resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} engines: {node: '>=11.0.0'} + seek-bzip@2.0.0: + resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==} + hasBin: true + semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -3420,9 +3964,18 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3462,6 +4015,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git-hooks@2.13.0: resolution: {integrity: sha512-N+goiLxlkHJlyaYEglFypzVNMaNplPAk5syu0+OPp/Bk6dwVoXF6FfOw2vO0Dp+JHsBaI+w6cm8TnFl2Hw6tDA==} hasBin: true @@ -3518,6 +4077,12 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + sql.js@1.14.1: + resolution: {integrity: sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -3555,6 +4120,9 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -3570,8 +4138,16 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strnum@2.2.3: - resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} + + strtok3@10.3.5: + resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} + engines: {node: '>=18'} style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -3593,6 +4169,13 @@ packages: engines: {node: '>=16'} hasBin: true + tar-fs@2.1.4: + resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -3629,6 +4212,10 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3637,6 +4224,10 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + token-types@6.1.2: + resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} + engines: {node: '>=14.16'} + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -3688,10 +4279,24 @@ packages: typescript: optional: true + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + turndown@7.2.4: + resolution: {integrity: sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==} + engines: {node: '>=18', npm: '>=9'} + type-is@2.0.1: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} + typebox@1.1.38: + resolution: {integrity: sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + typedoc-plugin-markdown@4.11.0: resolution: {integrity: sha512-2iunh2ALyfyh204OF7h2u0kuQ84xB3jFZtFyUr01nThJkLvR8oGGSSDlyt2gyO4kXhvUxDcVbO0y43+qX+wFbw==} engines: {node: '>= 18'} @@ -3719,6 +4324,14 @@ packages: ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + + ulidx@2.4.1: + resolution: {integrity: sha512-xY7c8LPyzvhvew0Fn+Ek3wBC9STZAuDI/Y5andCKi9AX6/jvfaX45PhsDX8oxgPL0YFp0Jhr8qWMbS/p9375Xg==} + engines: {node: '>=16'} + ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} @@ -3840,6 +4453,14 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + valibot@1.4.0: + resolution: {integrity: sha512-iC/x7fVcSyOwlm/VSt7RlHnzNGLGvR9GnxdifUeWoCJo0q4ZZvrVkIHC6faTlkxG47I2Y4UrFquPuVHCrOnrLg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate.io-array@1.0.6: resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} @@ -3964,6 +4585,10 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -4001,6 +4626,10 @@ packages: utf-8-validate: optional: true + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + xxhash-wasm@1.1.0: resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} @@ -4086,6 +4715,12 @@ snapshots: optionalDependencies: zod: 4.3.6 + '@anthropic-ai/sdk@0.91.1(zod@4.3.6)': + dependencies: + json-schema-to-ts: 3.1.1 + optionalDependencies: + zod: 4.3.6 + '@astrojs/compiler@4.0.0': {} '@astrojs/internal-helpers@0.9.1': @@ -4118,12 +4753,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))': + '@astrojs/mdx@5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))': dependencies: '@astrojs/markdown-remark': 7.1.2 '@mdx-js/mdx': 3.1.1 acorn: 8.16.0 - astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0) + astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0) es-module-lexer: 2.0.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -4147,17 +4782,17 @@ snapshots: stream-replace-string: 2.0.0 zod: 4.3.6 - '@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3)': + '@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3)': dependencies: '@astrojs/markdown-remark': 7.1.2 - '@astrojs/mdx': 5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0)) + '@astrojs/mdx': 5.0.6(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0)) '@astrojs/sitemap': 3.7.2 '@pagefind/default-ui': 1.5.2 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0) - astro-expressive-code: 0.42.0(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0)) + astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0) + astro-expressive-code: 0.42.0(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -4274,6 +4909,23 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/client-bedrock-runtime@3.1048.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/eventstream-handler-node': 3.972.17 + '@aws-sdk/middleware-eventstream': 3.972.13 + '@aws-sdk/middleware-websocket': 3.972.21 + '@aws-sdk/token-providers': 3.1048.0 + '@aws-sdk/types': 3.973.8 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/core@3.974.1': dependencies: '@aws-sdk/types': 3.973.8 @@ -4290,6 +4942,17 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@aws-sdk/core@3.974.13': + dependencies: + '@aws-sdk/types': 3.973.9 + '@aws-sdk/xml-builder': 3.972.25 + '@aws/lambda-invoke-store': 0.2.4 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + bowser: 2.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.27': dependencies: '@aws-sdk/core': 3.974.1 @@ -4298,6 +4961,14 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.39': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.29': dependencies: '@aws-sdk/core': 3.974.1 @@ -4311,6 +4982,16 @@ snapshots: '@smithy/util-stream': 4.5.23 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.41': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.972.31': dependencies: '@aws-sdk/core': 3.974.1 @@ -4330,6 +5011,22 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-ini@3.972.43': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-login': 3.972.43 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-login@3.972.31': dependencies: '@aws-sdk/core': 3.974.1 @@ -4343,6 +5040,15 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-login@3.972.43': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.32': dependencies: '@aws-sdk/credential-provider-env': 3.972.27 @@ -4360,6 +5066,20 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-node@3.972.44': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-ini': 3.972.43 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.27': dependencies: '@aws-sdk/core': 3.974.1 @@ -4369,6 +5089,14 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.39': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.972.31': dependencies: '@aws-sdk/core': 3.974.1 @@ -4382,6 +5110,16 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-sso@3.972.43': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/token-providers': 3.1052.0 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/credential-provider-web-identity@3.972.31': dependencies: '@aws-sdk/core': 3.974.1 @@ -4394,6 +5132,15 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-web-identity@3.972.43': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/eventstream-handler-node@3.972.14': dependencies: '@aws-sdk/types': 3.973.8 @@ -4401,6 +5148,13 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/eventstream-handler-node@3.972.17': + dependencies: + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/middleware-eventstream@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4408,6 +5162,13 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/middleware-eventstream@3.972.13': + dependencies: + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4455,6 +5216,16 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@aws-sdk/middleware-websocket@3.972.21': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/nested-clients@3.996.21': dependencies: '@aws-crypto/sha256-browser': 5.2.0 @@ -4498,6 +5269,19 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/nested-clients@3.997.11': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/signature-v4-multi-region': 3.996.28 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/region-config-resolver@3.972.12': dependencies: '@aws-sdk/types': 3.973.8 @@ -4506,6 +5290,14 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/signature-v4-multi-region@3.996.28': + dependencies: + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/token-providers@3.1032.0': dependencies: '@aws-sdk/core': 3.974.1 @@ -4518,11 +5310,34 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/token-providers@3.1048.0': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.8 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1052.0': + dependencies: + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/types@3.973.8': dependencies: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/types@3.973.9': + dependencies: + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.996.7': dependencies: '@aws-sdk/types': 3.973.8 @@ -4564,6 +5379,13 @@ snapshots: fast-xml-parser: 5.5.8 tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.25': + dependencies: + '@nodable/entities': 2.1.0 + '@smithy/types': 4.14.2 + fast-xml-parser: 5.7.3 + tslib: 2.8.1 + '@aws/lambda-invoke-store@0.2.4': {} '@babel/helper-string-parser@7.27.1': {} @@ -4618,6 +5440,8 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true + '@borewit/text-codec@0.2.2': {} + '@capsizecss/unpack@4.0.0': dependencies: fontkitten: 1.0.3 @@ -4634,8 +5458,60 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 + '@cloudflare/codemode@0.3.7(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ai@6.0.141(zod@4.3.6))(zod@4.3.6)': + dependencies: + '@types/json-schema': 7.0.15 + acorn: 8.16.0 + optionalDependencies: + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + ai: 6.0.141(zod@4.3.6) + zod: 4.3.6 + + '@cloudflare/shell@0.3.8(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ai@6.0.141(zod@4.3.6))(zod@4.3.6)': + dependencies: + '@cloudflare/codemode': 0.3.7(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ai@6.0.141(zod@4.3.6))(zod@4.3.6) + isomorphic-git: 1.38.1 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - '@tanstack/ai' + - ai + - zod + '@ctrl/tinycolor@4.2.0': {} + '@earendil-works/pi-agent-core@0.75.4(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + dependencies: + '@earendil-works/pi-ai': 0.75.4(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + ignore: 7.0.5 + typebox: 1.1.38 + yaml: 2.9.0 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-ai@0.75.4(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + dependencies: + '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) + '@aws-sdk/client-bedrock-runtime': 3.1048.0 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) + '@mistralai/mistralai': 2.2.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + openai: 6.26.0(ws@8.20.0)(zod@4.3.6) + partial-json: 0.1.7 + typebox: 1.1.38 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 @@ -4822,6 +5698,44 @@ snapshots: dependencies: '@expressive-code/core': 0.42.0 + '@flue/runtime@0.7.0(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(ai@6.0.141(zod@4.3.6))(typebox@1.1.38)(typescript@5.8.3)(ws@8.20.0)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6)': + dependencies: + '@cloudflare/codemode': 0.3.7(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ai@6.0.141(zod@4.3.6))(zod@4.3.6) + '@cloudflare/shell': 0.3.8(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ai@6.0.141(zod@4.3.6))(zod@4.3.6) + '@earendil-works/pi-agent-core': 0.75.4(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@earendil-works/pi-ai': 0.75.4(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@hono/node-server': 1.19.14(hono@4.12.16) + '@hono/standard-validator': 0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.16) + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + '@standard-community/standard-json': 0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) + '@standard-community/standard-openapi': 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod@4.3.6) + '@valibot/to-json-schema': 1.7.0(valibot@1.4.0(typescript@5.8.3)) + hono: 4.12.16 + hono-openapi: 1.3.0(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.16))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod@4.3.6))(@types/json-schema@7.0.15)(hono@4.12.16)(openapi-types@12.1.3) + just-bash: 2.14.5 + openapi-types: 12.1.3 + quansync: 0.2.11 + ulidx: 2.4.1 + valibot: 1.4.0(typescript@5.8.3) + transitivePeerDependencies: + - '@cfworker/json-schema' + - '@standard-schema/spec' + - '@tanstack/ai' + - '@types/json-schema' + - ai + - arktype + - bufferutil + - effect + - supports-color + - sury + - typebox + - typescript + - utf-8-validate + - ws + - zod + - zod-openapi + - zod-to-json-schema + '@fontsource-variable/rubik@5.2.8': {} '@fontsource/ibm-plex-mono@5.2.7': {} @@ -4847,10 +5761,27 @@ snapshots: - supports-color - utf-8-validate + '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))': + dependencies: + google-auth-library: 10.6.2 + p-retry: 4.6.2 + protobufjs: 7.5.5 + ws: 8.20.0 + optionalDependencies: + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@hono/node-server@1.19.14(hono@4.12.16)': dependencies: hono: 4.12.16 - optional: true + + '@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.16)': + dependencies: + '@standard-schema/spec': 1.1.0 + hono: 4.12.16 '@img/colour@1.1.0': optional: true @@ -4958,6 +5889,24 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jitl/quickjs-ffi-types@0.32.0': {} + + '@jitl/quickjs-wasmfile-debug-asyncify@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-debug-sync@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-release-asyncify@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-release-sync@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.4 @@ -5054,6 +6003,17 @@ snapshots: - bufferutil - utf-8-validate + '@mistralai/mistralai@2.2.1': + dependencies: + ws: 8.20.0 + zod: 4.3.6 + zod-to-json-schema: 3.25.2(zod@4.3.6) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@mixmark-io/domino@2.2.0': {} + '@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)': dependencies: '@hono/node-server': 1.19.14(hono@4.12.16) @@ -5075,8 +6035,15 @@ snapshots: zod-to-json-schema: 3.25.2(zod@4.3.6) transitivePeerDependencies: - supports-color + + '@mongodb-js/zstd@7.0.0': + dependencies: + node-addon-api: 8.8.0 + prebuild-install: 7.1.3 optional: true + '@nodable/entities@2.1.0': {} + '@openai/agents-core@0.8.5(ws@8.20.0)(zod@4.3.6)': dependencies: debug: 4.4.3 @@ -5249,9 +6216,9 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@sentry/starlight-theme@0.6.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))': + '@sentry/starlight-theme@0.6.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))': dependencies: - '@astrojs/starlight': 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) + '@astrojs/starlight': 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) '@fontsource-variable/rubik': 5.2.8 '@fontsource/ibm-plex-mono': 5.2.7 ultrahtml: 1.6.0 @@ -5338,6 +6305,12 @@ snapshots: '@smithy/uuid': 1.1.2 tslib: 2.8.1 + '@smithy/core@3.24.4': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@smithy/credential-provider-imds@4.2.14': dependencies: '@smithy/node-config-provider': 4.3.14 @@ -5346,6 +6319,12 @@ snapshots: '@smithy/url-parser': 4.2.14 tslib: 2.8.1 + '@smithy/credential-provider-imds@4.3.4': + dependencies: + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@smithy/eventstream-codec@4.2.14': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -5384,6 +6363,12 @@ snapshots: '@smithy/util-base64': 4.3.2 tslib: 2.8.1 + '@smithy/fetch-http-handler@5.4.4': + dependencies: + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@smithy/hash-node@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5460,6 +6445,12 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/node-http-handler@4.7.4': + dependencies: + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@smithy/property-provider@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5501,6 +6492,12 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@smithy/signature-v4@5.4.4': + dependencies: + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + '@smithy/smithy-client@4.12.11': dependencies: '@smithy/core': 3.23.15 @@ -5515,6 +6512,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/types@4.14.2': + dependencies: + tslib: 2.8.1 + '@smithy/url-parser@4.2.14': dependencies: '@smithy/querystring-parser': 4.2.14 @@ -5616,8 +6617,39 @@ snapshots: dependencies: tslib: 2.8.1 + '@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6)': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/json-schema': 7.0.15 + quansync: 0.2.11 + optionalDependencies: + '@valibot/to-json-schema': 1.7.0(valibot@1.4.0(typescript@5.8.3)) + typebox: 1.1.38 + valibot: 1.4.0(typescript@5.8.3) + zod: 4.3.6 + zod-to-json-schema: 3.25.2(zod@4.3.6) + + '@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod@4.3.6)': + dependencies: + '@standard-community/standard-json': 0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) + '@standard-schema/spec': 1.1.0 + openapi-types: 12.1.3 + optionalDependencies: + typebox: 1.1.38 + valibot: 1.4.0(typescript@5.8.3) + zod: 4.3.6 + '@standard-schema/spec@1.1.0': {} + '@tokenizer/inflate@0.4.1': + dependencies: + debug: 4.4.3 + token-types: 6.1.2 + transitivePeerDependencies: + - supports-color + + '@tokenizer/token@0.3.0': {} + '@tootallnate/quickjs-emscripten@0.23.0': {} '@types/chai@5.2.2': @@ -5642,6 +6674,8 @@ snapshots: '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': {} + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -5678,11 +6712,15 @@ snapshots: '@ungap/structured-clone@1.3.1': {} - '@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31)': + '@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3))': + dependencies: + valibot: 1.4.0(typescript@5.8.3) + + '@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43)': dependencies: '@vercel/oidc': 2.0.2 optionalDependencies: - '@aws-sdk/credential-provider-web-identity': 3.972.31 + '@aws-sdk/credential-provider-web-identity': 3.972.43 '@vercel/oidc@2.0.2': dependencies: @@ -5746,11 +6784,14 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + accepts@2.0.0: dependencies: mime-types: 3.0.2 negotiator: 1.0.0 - optional: true acorn-jsx@5.3.2(acorn@8.16.0): dependencies: @@ -5822,12 +6863,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.42.0(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0)): + astro-expressive-code@0.42.0(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0)): dependencies: - astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0) + astro: 6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0) rehype-expressive-code: 0.42.0 - astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0): + astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0): dependencies: '@astrojs/compiler': 4.0.0 '@astrojs/internal-helpers': 0.9.1 @@ -5877,7 +6918,7 @@ snapshots: ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31)) + unstorage: 1.17.5(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43)) vfile: 6.0.3 vite: 7.3.3(@types/node@25.5.0)(yaml@2.9.0) vitefu: 1.1.3(vite@7.3.3(@types/node@25.5.0)(yaml@2.9.0)) @@ -5920,6 +6961,8 @@ snapshots: - uploadthing - yaml + async-lock@1.4.1: {} + autoevals@0.0.132(ws@8.20.0): dependencies: ajv: 8.17.1 @@ -5934,6 +6977,10 @@ snapshots: transitivePeerDependencies: - ws + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + axobject-query@4.1.0: {} bail@2.0.2: {} @@ -5958,6 +7005,13 @@ snapshots: binary-search@1.3.6: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + body-parser@2.2.2: dependencies: bytes: 3.1.2 @@ -5971,7 +7025,6 @@ snapshots: type-is: 2.0.1 transitivePeerDependencies: - supports-color - optional: true boolbase@1.0.0: {} @@ -5991,13 +7044,23 @@ snapshots: buffer-equal-constant-time@1.0.1: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + optional: true + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bundle-require@5.1.0(esbuild@0.25.8): dependencies: esbuild: 0.25.8 load-tsconfig: 0.2.5 - bytes@3.1.2: - optional: true + bytes@3.1.2: {} cac@6.7.14: {} @@ -6005,13 +7068,18 @@ snapshots: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - optional: true + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - optional: true ccount@2.0.1: {} @@ -6039,8 +7107,13 @@ snapshots: dependencies: readdirp: 5.0.0 + chownr@1.1.4: + optional: true + ci-info@4.4.0: {} + clean-git-ref@2.0.1: {} + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -6070,6 +7143,8 @@ snapshots: commander@4.1.1: {} + commander@6.2.1: {} + common-ancestor-path@2.0.0: {} compute-cosine-similarity@1.1.0: @@ -6093,21 +7168,17 @@ snapshots: consola@3.4.2: {} - content-disposition@1.1.0: - optional: true + content-disposition@1.1.0: {} - content-type@1.0.5: - optional: true + content-type@1.0.5: {} convert-source-map@2.0.0: {} cookie-es@1.2.3: {} - cookie-signature@1.2.2: - optional: true + cookie-signature@1.2.2: {} - cookie@0.7.2: - optional: true + cookie@0.7.2: {} cookie@1.1.1: {} @@ -6115,7 +7186,8 @@ snapshots: dependencies: object-assign: 4.1.1 vary: 1.1.2 - optional: true + + crc-32@1.2.2: {} cross-spawn@7.0.6: dependencies: @@ -6171,6 +7243,19 @@ snapshots: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-extend@0.6.0: + optional: true + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + defu@6.1.7: {} degenerator@5.0.1: @@ -6179,8 +7264,7 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - depd@2.0.0: - optional: true + depd@2.0.0: {} dequal@2.0.3: {} @@ -6195,6 +7279,8 @@ snapshots: dependencies: dequal: 2.0.3 + diff3@0.0.3: {} + diff@8.0.4: {} direction@2.0.1: {} @@ -6235,7 +7321,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - optional: true eastasianwidth@0.2.0: {} @@ -6243,8 +7328,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - ee-first@1.1.1: - optional: true + ee-first@1.1.1: {} emoji-regex@10.4.0: {} @@ -6252,7 +7336,11 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@2.0.0: + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 optional: true entities@4.5.0: {} @@ -6261,18 +7349,15 @@ snapshots: environment@1.1.0: {} - es-define-property@1.0.1: - optional: true + es-define-property@1.0.1: {} - es-errors@1.3.0: - optional: true + es-errors@1.3.0: {} es-module-lexer@2.0.0: {} es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - optional: true esast-util-from-estree@2.0.0: dependencies: @@ -6346,8 +7431,7 @@ snapshots: '@esbuild/win32-ia32': 0.27.7 '@esbuild/win32-x64': 0.27.7 - escape-html@1.0.3: - optional: true + escape-html@1.0.3: {} escape-string-regexp@5.0.0: {} @@ -6400,19 +7484,21 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: - optional: true + etag@1.8.1: {} + + event-target-shim@5.0.1: {} eventemitter3@5.0.1: {} eventemitter3@5.0.4: {} + events@3.3.0: {} + eventsource-parser@3.0.6: {} eventsource@3.0.7: dependencies: eventsource-parser: 3.0.6 - optional: true execa@8.0.1: dependencies: @@ -6426,13 +7512,15 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + expand-template@2.0.3: + optional: true + expect-type@1.3.0: {} express-rate-limit@8.4.1(express@5.2.1): dependencies: express: 5.2.1 ip-address: 10.1.0 - optional: true express@5.2.1: dependencies: @@ -6466,7 +7554,6 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color - optional: true expressive-code@0.42.0: dependencies: @@ -6491,15 +7578,31 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fast-xml-builder@1.1.5: + fast-xml-builder@1.2.0: dependencies: path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 fast-xml-parser@5.5.8: dependencies: - fast-xml-builder: 1.1.5 + fast-xml-builder: 1.2.0 path-expression-matcher: 1.5.0 - strnum: 2.2.3 + strnum: 2.3.0 + + fast-xml-parser@5.7.3: + dependencies: + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.2.0 + path-expression-matcher: 1.5.0 + strnum: 2.3.0 + + fast-xml-parser@5.8.0: + dependencies: + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.2.0 + path-expression-matcher: 1.5.0 + strnum: 2.3.0 + xml-naming: 0.1.0 fdir@6.4.6(picomatch@4.0.3): optionalDependencies: @@ -6520,6 +7623,15 @@ snapshots: fft.js@4.0.4: {} + file-type@21.3.4: + dependencies: + '@tokenizer/inflate': 0.4.1 + strtok3: 10.3.5 + token-types: 6.1.2 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -6534,7 +7646,6 @@ snapshots: statuses: 2.0.2 transitivePeerDependencies: - supports-color - optional: true fix-dts-default-cjs-exports@1.0.1: dependencies: @@ -6552,6 +7663,10 @@ snapshots: dependencies: tiny-inflate: 1.0.3 + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -6561,17 +7676,17 @@ snapshots: dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: - optional: true + forwarded@0.2.0: {} - fresh@2.0.0: + fresh@2.0.0: {} + + fs-constants@1.0.0: optional: true fsevents@2.3.3: optional: true - function-bind@1.1.2: - optional: true + function-bind@1.1.2: {} gaxios@7.1.4: dependencies: @@ -6603,13 +7718,11 @@ snapshots: has-symbols: 1.1.0 hasown: 2.0.3 math-intrinsics: 1.1.0 - optional: true get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - optional: true get-stream@8.0.1: {} @@ -6621,10 +7734,13 @@ snapshots: dependencies: basic-ftp: 5.3.0 data-uri-to-buffer: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color + github-from-package@0.0.0: + optional: true + github-slugger@2.0.0: {} glob@10.4.5: @@ -6651,8 +7767,7 @@ snapshots: google-logging-utils@1.1.3: {} - gopd@1.2.0: - optional: true + gopd@1.2.0: {} h3@1.15.11: dependencies: @@ -6668,13 +7783,19 @@ snapshots: has-flag@4.0.0: {} - has-symbols@1.1.0: - optional: true + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 hasown@2.0.3: dependencies: function-bind: 1.1.2 - optional: true hast-util-embedded@3.0.0: dependencies: @@ -6865,8 +7986,17 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 - hono@4.12.16: - optional: true + hono-openapi@1.3.0(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.16))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod@4.3.6))(@types/json-schema@7.0.15)(hono@4.12.16)(openapi-types@12.1.3): + dependencies: + '@standard-community/standard-json': 0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6) + '@standard-community/standard-openapi': 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(@valibot/to-json-schema@1.7.0(valibot@1.4.0(typescript@5.8.3)))(quansync@0.2.11)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(typebox@1.1.38)(valibot@1.4.0(typescript@5.8.3))(zod@4.3.6) + '@types/json-schema': 7.0.15 + openapi-types: 12.1.3 + optionalDependencies: + '@hono/standard-validator': 0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.16) + hono: 4.12.16 + + hono@4.12.16: {} html-escaper@2.0.2: {} @@ -6885,19 +8015,18 @@ snapshots: setprototypeof: 1.2.0 statuses: 2.0.2 toidentifier: 1.0.1 - optional: true http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -6910,19 +8039,27 @@ snapshots: iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 - optional: true - inherits@2.0.4: + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + inherits@2.0.4: {} + + ini@1.3.8: optional: true + ini@6.0.0: {} + inline-style-parser@0.2.7: {} install@0.13.0: {} ip-address@10.1.0: {} - ipaddr.js@1.9.1: - optional: true + ipaddr.js@1.9.1: {} iron-webcrypto@1.2.1: {} @@ -6935,6 +8072,8 @@ snapshots: is-any-array@2.0.1: {} + is-callable@1.2.7: {} + is-decimal@2.0.1: {} is-docker@3.0.0: {} @@ -6959,17 +8098,36 @@ snapshots: is-plain-obj@4.1.0: {} - is-promise@4.0.0: - optional: true + is-promise@4.0.0: {} is-stream@3.0.0: {} + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 + isarray@2.0.5: {} + isexe@2.0.0: {} + isomorphic-git@1.38.1: + dependencies: + async-lock: 1.4.1 + clean-git-ref: 2.0.1 + crc-32: 1.2.2 + diff3: 0.0.3 + ignore: 5.3.2 + minimisted: 2.0.1 + pako: 1.0.11 + pify: 4.0.1 + readable-stream: 4.7.0 + sha.js: 2.4.12 + simple-get: 4.0.1 + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -6989,8 +8147,7 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jose@6.2.3: - optional: true + jose@6.2.3: {} joycon@3.1.1: {} @@ -7017,13 +8174,35 @@ snapshots: json-schema-traverse@1.0.0: {} - json-schema-typed@8.0.2: - optional: true + json-schema-typed@8.0.2: {} json-schema@0.4.0: {} jsonc-parser@3.3.1: {} + just-bash@2.14.5: + dependencies: + diff: 8.0.4 + fast-xml-parser: 5.8.0 + file-type: 21.3.4 + ini: 6.0.0 + minimatch: 10.2.5 + modern-tar: 0.7.6 + papaparse: 5.5.3 + quickjs-emscripten: 0.32.0 + re2js: 1.3.3 + seek-bzip: 2.0.0 + smol-toml: 1.6.1 + sprintf-js: 1.1.3 + sql.js: 1.14.1 + turndown: 7.2.4 + yaml: 2.9.0 + optionalDependencies: + '@mongodb-js/zstd': 7.0.0 + node-liblzma: 2.2.0 + transitivePeerDependencies: + - supports-color + jwa@2.0.1: dependencies: buffer-equal-constant-time: 1.0.1 @@ -7037,6 +8216,8 @@ snapshots: klona@2.0.6: {} + layerr@3.0.0: {} + lilconfig@3.1.3: {} linear-sum-assignment@1.0.7: @@ -7131,8 +8312,7 @@ snapshots: markdown-table@3.0.4: {} - math-intrinsics@1.1.0: - optional: true + math-intrinsics@1.1.0: {} mdast-util-definitions@6.0.0: dependencies: @@ -7323,11 +8503,9 @@ snapshots: mdurl@2.0.0: {} - media-typer@1.1.0: - optional: true + media-typer@1.1.0: {} - merge-descriptors@2.0.0: - optional: true + merge-descriptors@2.0.0: {} merge-stream@2.0.0: {} @@ -7610,18 +8788,18 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.54.0: - optional: true + mime-db@1.54.0: {} mime-types@3.0.2: dependencies: mime-db: 1.54.0 - optional: true mimic-fn@4.0.0: {} mimic-function@5.0.1: {} + mimic-response@3.1.0: {} + minimatch@10.2.5: dependencies: brace-expansion: 5.0.6 @@ -7632,8 +8810,15 @@ snapshots: minimist@1.2.8: {} + minimisted@2.0.1: + dependencies: + minimist: 1.2.8 + minipass@7.1.2: {} + mkdirp-classic@0.5.3: + optional: true + ml-array-max@1.2.4: dependencies: is-any-array: 2.0.1 @@ -7671,6 +8856,8 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 + modern-tar@0.7.6: {} + mrmime@2.0.1: {} ms@2.1.3: {} @@ -7685,9 +8872,11 @@ snapshots: nanoid@3.3.11: {} - negotiator@1.0.0: + napi-build-utils@2.0.0: optional: true + negotiator@1.0.0: {} + neotraverse@0.6.18: {} netmask@2.1.1: {} @@ -7696,6 +8885,14 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-abi@3.92.0: + dependencies: + semver: 7.8.0 + optional: true + + node-addon-api@8.8.0: + optional: true + node-domexception@1.0.0: {} node-fetch-native@1.6.7: {} @@ -7706,6 +8903,15 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp-build@4.8.4: + optional: true + + node-liblzma@2.2.0: + dependencies: + node-addon-api: 8.8.0 + node-gyp-build: 4.8.4 + optional: true + node-mock-http@1.0.4: {} normalize-path@3.0.0: {} @@ -7720,8 +8926,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.4: - optional: true + object-inspect@1.13.4: {} obug@2.1.1: {} @@ -7736,12 +8941,10 @@ snapshots: on-finished@2.4.1: dependencies: ee-first: 1.1.1 - optional: true once@1.4.0: dependencies: wrappy: 1.0.2 - optional: true onetime@6.0.0: dependencies: @@ -7774,6 +8977,8 @@ snapshots: ws: 8.20.0 zod: 4.3.6 + openapi-types@12.1.3: {} + p-limit@7.3.0: dependencies: yocto-queue: 1.2.2 @@ -7794,7 +8999,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -7822,6 +9027,10 @@ snapshots: '@pagefind/windows-arm64': 1.5.2 '@pagefind/windows-x64': 1.5.2 + pako@1.0.11: {} + + papaparse@5.5.3: {} + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -7845,8 +9054,7 @@ snapshots: dependencies: entities: 6.0.1 - parseurl@1.3.3: - optional: true + parseurl@1.3.3: {} partial-json@0.1.7: {} @@ -7861,8 +9069,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@8.4.2: - optional: true + path-to-regexp@8.4.2: {} pathe@2.0.3: {} @@ -7878,10 +9085,11 @@ snapshots: pidtree@0.6.0: {} + pify@4.0.1: {} + pirates@4.0.7: {} - pkce-challenge@5.0.1: - optional: true + pkce-challenge@5.0.1: {} pkg-types@1.3.1: dependencies: @@ -7889,6 +9097,8 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 + possible-typed-array-names@1.1.0: {} + postcss-load-config@6.0.1(postcss@8.5.6)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 @@ -7912,8 +9122,26 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.92.0 + pump: 3.0.4 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.4 + tunnel-agent: 0.6.0 + optional: true + prismjs@1.30.0: {} + process@0.11.10: {} + property-information@7.1.0: {} protobufjs@7.5.5: @@ -7935,12 +9163,11 @@ snapshots: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - optional: true proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -7952,6 +9179,12 @@ snapshots: proxy-from-env@1.1.0: {} + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + optional: true + punycode.js@2.3.1: {} punycode@2.3.1: {} @@ -7959,12 +9192,24 @@ snapshots: qs@6.15.1: dependencies: side-channel: 1.1.0 - optional: true + + quansync@0.2.11: {} + + quickjs-emscripten-core@0.32.0: + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + quickjs-emscripten@0.32.0: + dependencies: + '@jitl/quickjs-wasmfile-debug-asyncify': 0.32.0 + '@jitl/quickjs-wasmfile-debug-sync': 0.32.0 + '@jitl/quickjs-wasmfile-release-asyncify': 0.32.0 + '@jitl/quickjs-wasmfile-release-sync': 0.32.0 + quickjs-emscripten-core: 0.32.0 radix3@1.1.2: {} - range-parser@1.2.1: - optional: true + range-parser@1.2.1: {} raw-body@3.0.2: dependencies: @@ -7972,8 +9217,32 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + optional: true + + re2js@1.3.3: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 optional: true + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + readdirp@4.1.2: {} readdirp@5.0.0: {} @@ -8191,15 +9460,17 @@ snapshots: path-to-regexp: 8.4.2 transitivePeerDependencies: - supports-color - optional: true safe-buffer@5.2.1: {} - safer-buffer@2.1.2: - optional: true + safer-buffer@2.1.2: {} sax@1.6.0: {} + seek-bzip@2.0.0: + dependencies: + commander: 6.2.1 + semver@7.7.2: {} semver@7.8.0: {} @@ -8219,7 +9490,6 @@ snapshots: statuses: 2.0.2 transitivePeerDependencies: - supports-color - optional: true serve-static@2.2.1: dependencies: @@ -8229,10 +9499,23 @@ snapshots: send: 1.2.1 transitivePeerDependencies: - supports-color - optional: true - setprototypeof@1.2.0: - optional: true + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 sharp@0.34.5: dependencies: @@ -8287,7 +9570,6 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - optional: true side-channel-map@1.0.1: dependencies: @@ -8295,7 +9577,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 - optional: true side-channel-weakmap@1.0.2: dependencies: @@ -8304,7 +9585,6 @@ snapshots: get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 - optional: true side-channel@1.1.0: dependencies: @@ -8313,12 +9593,19 @@ snapshots: side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - optional: true siginfo@2.0.0: {} signal-exit@4.1.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-git-hooks@2.13.0: {} sisteransi@1.0.5: {} @@ -8347,7 +9634,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -8370,17 +9657,20 @@ snapshots: space-separated-tokens@2.0.2: {} + sprintf-js@1.1.3: {} + + sql.js@1.14.1: {} + stackback@0.0.2: {} - starlight-typedoc@0.22.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.8.3)))(typedoc@0.28.19(typescript@5.8.3)): + starlight-typedoc@0.22.0(@astrojs/starlight@0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.8.3)))(typedoc@0.28.19(typescript@5.8.3)): dependencies: - '@astrojs/starlight': 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) + '@astrojs/starlight': 0.39.2(astro@6.3.5(@types/node@25.5.0)(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43))(rollup@4.46.2)(yaml@2.9.0))(typescript@5.8.3) github-slugger: 2.0.0 typedoc: 0.28.19(typescript@5.8.3) typedoc-plugin-markdown: 4.11.0(typedoc@0.28.19(typescript@5.8.3)) - statuses@2.0.2: - optional: true + statuses@2.0.2: {} std-env@4.0.0: {} @@ -8406,6 +9696,10 @@ snapshots: get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -8421,7 +9715,14 @@ snapshots: strip-final-newline@3.0.0: {} - strnum@2.2.3: {} + strip-json-comments@2.0.1: + optional: true + + strnum@2.3.0: {} + + strtok3@10.3.5: + dependencies: + '@tokenizer/token': 0.3.0 style-to-js@1.1.21: dependencies: @@ -8455,6 +9756,23 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 + tar-fs@2.1.4: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.4 + tar-stream: 2.2.0 + optional: true + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -8485,12 +9803,23 @@ snapshots: tinyrainbow@3.1.0: {} + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: - optional: true + toidentifier@1.0.1: {} + + token-types@6.1.2: + dependencies: + '@borewit/text-codec': 0.2.2 + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 tr46@1.0.1: dependencies: @@ -8540,12 +9869,28 @@ snapshots: - tsx - yaml + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + turndown@7.2.4: + dependencies: + '@mixmark-io/domino': 2.2.0 + type-is@2.0.1: dependencies: content-type: 1.0.5 media-typer: 1.1.0 mime-types: 3.0.2 - optional: true + + typebox@1.1.38: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@5.8.3)): dependencies: @@ -8568,6 +9913,12 @@ snapshots: ufo@1.6.4: {} + uint8array-extras@1.5.0: {} + + ulidx@2.4.1: + dependencies: + layerr: 3.0.0 + ultrahtml@1.6.0: {} uncrypto@0.1.3: {} @@ -8640,10 +9991,9 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unpipe@1.0.0: - optional: true + unpipe@1.0.0: {} - unstorage@1.17.5(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31)): + unstorage@1.17.5(@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43)): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -8654,16 +10004,19 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.4 optionalDependencies: - '@vercel/functions': 2.2.13(@aws-sdk/credential-provider-web-identity@3.972.31) + '@vercel/functions': 2.2.13(@aws-sdk/credential-provider-web-identity@3.972.43) util-deprecate@1.0.2: {} + valibot@1.4.0(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + validate.io-array@1.0.6: {} validate.io-function@1.0.2: {} - vary@1.1.2: - optional: true + vary@1.1.2: {} vfile-location@5.0.3: dependencies: @@ -8749,6 +10102,16 @@ snapshots: which-pm-runs@1.1.0: {} + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -8776,11 +10139,12 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 - wrappy@1.0.2: - optional: true + wrappy@1.0.2: {} ws@8.20.0: {} + xml-naming@0.1.0: {} + xxhash-wasm@1.1.0: {} yaml@2.8.0: {} diff --git a/tsconfig.base.json b/tsconfig.base.json index d90a6d7..dd6d8c3 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -15,6 +15,7 @@ "packages/harness-openai-agents/src/index.ts" ], "@vitest-evals/harness-pi-ai": ["packages/harness-pi-ai/src/index.ts"], + "@vitest-evals/harness-flue": ["packages/harness-flue/src/index.ts"], "@vitest-evals/github-reporter": [ "packages/github-reporter/src/index.ts" ] diff --git a/tsconfig.json b/tsconfig.json index 0c4b26b..f844fb4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "**/dist/**", "**/coverage/**", "node_modules", - "packages/docs/src/content.config.ts" + "packages/docs/src/content.config.ts", + "apps/demo-flue/**" ] }