diff --git a/.github/workflows/interop.yml b/.github/workflows/interop.yml index edbb7c9..e8089e0 100644 --- a/.github/workflows/interop.yml +++ b/.github/workflows/interop.yml @@ -36,6 +36,10 @@ jobs: - run: pnpm run typecheck - name: Node — a Flue agent app on cellb run: pnpm --dir ../flue-example test + - name: Node — the fake OpenAI-compatible model + run: pnpm --dir ../fake-openai test + - name: Node — pi and opencode agents on cellb, against the fake model + run: pnpm --dir ../agent-examples test - name: Node — celld conformance and interop run: pnpm run interop - run: pnpm exec playwright install --with-deps chromium diff --git a/packages/agent-examples/README.md b/packages/agent-examples/README.md new file mode 100644 index 0000000..3667414 --- /dev/null +++ b/packages/agent-examples/README.md @@ -0,0 +1,79 @@ +# @statewalker/agent-examples + +Coding-agent frameworks running in Durable Objects on cellb, each against a fake OpenAI-compatible +model (`@statewalker/fake-openai`), so the whole thing runs offline once the packages are installed: + +| Example | Framework | What it shows | +|---|---|---| +| `pi/` | [pi](https://pi.dev)'s agent loop (`@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`) | a prompt runs a tool call and its follow-up; the transcript persists in the object's storage | +| `opencode/` | opencode's workerd SDK (`@opencode-ai/sdk/workerd`) | celld's opencode example: the SDK boots on the object's SQLite, creates a session, and the model answers a prompt | +| `../flue-example` | Flue (`@flue/runtime`) | a whole Flue app, built for Cloudflare, on Node and in browsers | + +The package is private: it is a test of cellb, not a library. + +## Why it exists + +celld ships `pi` and `opencode` examples, but they need the network: `pi` depends on an unreleased +preview build of the `agents` package and OpenRouter, `opencode` on a free model from opencode's own +registry. These versions take the model from an endpoint named in the project's vars, which the +tests point at the fake model, and they run on cellb as celld runs them. + +## How to use it + +``` +pnpm install # at the repository root +pnpm test # in this directory: each example on cellb (Node), against the fake model +``` + +To run one against a real endpoint, set its vars (`PI_BASE_URL`, `PI_MODEL`, `PI_API_KEY`; +`OPENCODE_BASE_URL`, `OPENCODE_MODEL`, `OPENCODE_API_KEY`) in `wrangler.jsonc` or `.dev.vars`, and +start it with `celld dev pi` or load it with `loadNodeProject`. Against the fake model: + +```sh +node ../fake-openai/src/cli.ts 8787 # the vars' defaults point here +``` + +## Examples + +What the tests prove: + +1. **pi**: `GET /?q=…` runs the agent: the model is offered the `where_am_i` tool and calls it, the + tool answers, and the second model call carries the result, which becomes the reply + (`The tool said: a Durable Object on cellb`). A second prompt continues the same transcript, + restored from storage. +2. **opencode**: `GET /` runs celld's probe (`model.default`, `provider.list`, `health.get`, + `session.create`, `session.get`, `session.prompt`, `session.wait`, `message.list`); every step + succeeds and the reply is the fake model's answer to `hello world`, from provider `endpoint`, + model `fake-model`. + +## Internals + +### Differences from celld's examples + +- **pi** uses pi's published packages instead of the `PiHarness` of `agents` pull request 2197 + (only on pkg.pr.new, which may expire, and unreachable from some networks). The object holds a + pi `Agent` with one tool; the transcript is stored under the `messages` key. +- **opencode** adds `config` to `OpenCodeWorkerd.create()`: a provider `endpoint` + (`@ai-sdk/openai-compatible` with `baseURL` from `OPENCODE_BASE_URL`) and `model: + "endpoint/"`. Everything else is celld's code. + +### What surprised us + +- **The opencode SDK builds a Response from another** (`new Response(body, response)`). cellb's + `Response` lost the headers of such an init, so the SDK's client saw no `content-type` and failed + with `ClientError: UnsupportedContentType`; it now reads the init as Fetch does. +- **Packages with only a `main` field did not resolve** in cellb's Node bundles (esbuild's neutral + platform has no main fields): opencode's dependencies (`@smithy/*`) failed to build. Node bundles + now resolve as `celld deploy` does: conditions `workerd`, `worker`, `browser`, then `module` and + `main`. +- **The opencode bundle is large** (about 430,000 lines): its first load takes about half a minute. + +### Dependencies + +`@earendil-works/pi-agent-core` and `@earendil-works/pi-ai` (pi), `@opencode-ai/sdk` (pinned to the +build celld's example uses); `@statewalker/cellb`, `@statewalker/fake-openai` and vitest for the +tests. + +## License + +MIT; `opencode/index.js` is adapted from celld's example (Apache-2.0). diff --git a/packages/agent-examples/opencode/index.js b/packages/agent-examples/opencode/index.js new file mode 100644 index 0000000..3273b4b --- /dev/null +++ b/packages/agent-examples/opencode/index.js @@ -0,0 +1,149 @@ +// Adapted from celld's examples/opencode (Apache-2.0): the model comes from OPENCODE_BASE_URL. +import { DurableObject } from "cloudflare:workers"; +import { OpenCodeWorkerd } from "@opencode-ai/sdk/workerd"; + +const PROMPT = "hello world"; + +// The model: an OpenAI-compatible endpoint as an opencode provider (celld's example takes a free +// model from opencode's own registry, which needs the network). +function endpointConfig(env) { + return { + provider: { + endpoint: { + npm: "@ai-sdk/openai-compatible", + name: "OpenAI-compatible endpoint", + options: { baseURL: env.OPENCODE_BASE_URL, apiKey: env.OPENCODE_API_KEY || "none" }, + models: { [env.OPENCODE_MODEL]: { name: env.OPENCODE_MODEL } }, + }, + }, + model: `endpoint/${env.OPENCODE_MODEL}`, + }; +} + +export class OpenCodeDO extends DurableObject { + async fetch(_request) { + const checks = []; + const check = async (name, fn) => { + const started = Date.now(); + try { + const value = await fn(); + checks.push({ name, ok: true, ms: Date.now() - started }); + return value; + } catch (error) { + checks.push({ + name, + ok: false, + ms: Date.now() - started, + error: serializeError(error), + }); + throw error; + } + }; + + try { + const opencode = await OpenCodeWorkerd.create({ + storage: this.ctx.storage, + config: endpointConfig(this.env), + }); + + // The SDK resolves the model from its own provider registry. Report the + // resolution instead of a model this example names: a request for an + // unregistered provider falls back without an error, so a hardcoded name + // in the response would claim a model that never ran. + const model = await check("model.default", () => opencode.model.default()); + const providers = await check("provider.list", () => opencode.provider.list()); + + await check("health.get", () => opencode.health.get()); + const session = await check("session.create", () => opencode.session.create()); + await check("session.get", () => opencode.session.get({ sessionID: session.id })); + + // `prompt` only enqueues the message and returns before the model runs. + // `wait` blocks until the run completes, so a probe that stops at + // `prompt` reports success even when no model answers. + await check("session.prompt", () => + opencode.session.prompt({ sessionID: session.id, text: PROMPT }), + ); + await check("session.wait", () => opencode.session.wait({ sessionID: session.id })); + + const messages = await check("message.list", () => + opencode.message.list({ sessionID: session.id }), + ); + + const reply = assistantText(messages); + if (!reply) { + return Response.json( + { + ok: false, + error: "the session completed without an assistant reply", + model: modelRef(model), + checks, + }, + { status: 502 }, + ); + } + + return Response.json({ + ok: true, + model: modelRef(model), + providers: (providers?.data ?? providers ?? []).map((entry) => entry.id), + prompt: PROMPT, + reply, + checks, + }); + } catch (error) { + return Response.json( + { + ok: false, + error: serializeError(error), + checks, + }, + { status: 500 }, + ); + } + } +} + +function modelRef(model) { + const data = model?.data ?? model; + return { + providerID: data?.providerID ?? null, + modelID: data?.modelID ?? null, + }; +} + +// An assistant reply is one entry of a `content` array that also carries +// reasoning and tool parts. Join the text parts only, because a reasoning part +// is present even when the model produced no answer. +function assistantText(messages) { + const rows = messages?.data ?? messages ?? []; + for (const message of rows) { + if (message?.type !== "assistant") continue; + const text = (message.content ?? []) + .filter((part) => part?.type === "text") + .map((part) => part.text) + .join("") + .trim(); + if (text) return text; + } + return null; +} + +function serializeError(value, seen = new Set()) { + if (value === null || typeof value !== "object") return value; + if (seen.has(value)) return "[circular]"; + seen.add(value); + return { + name: value.name, + message: value.message, + stack: value.stack, + cause: serializeError(value.cause, seen), + ...Object.fromEntries(Object.entries(value)), + }; +} + +export default { + fetch(request, env) { + const id = env.OPENCODE.idFromName("reporter-main-f4e19cd2"); + return env.OPENCODE.get(id).fetch(request); + }, +}; diff --git a/packages/agent-examples/opencode/wrangler.jsonc b/packages/agent-examples/opencode/wrangler.jsonc new file mode 100644 index 0000000..9cf6a7e --- /dev/null +++ b/packages/agent-examples/opencode/wrangler.jsonc @@ -0,0 +1,16 @@ +{ + // opencode's workerd SDK in a Durable Object, with a model from any OpenAI-compatible endpoint + // (OPENCODE_BASE_URL; the tests point it at the fake model). + "name": "opencode-agent", + "main": "index.js", + "compatibility_date": "2026-08-30", + "compatibility_flags": ["nodejs_compat"], + "vars": { + "OPENCODE_BASE_URL": "http://127.0.0.1:8787/v1", + "OPENCODE_MODEL": "fake-model" + }, + "durable_objects": { + "bindings": [{ "name": "OPENCODE", "class_name": "OpenCodeDO" }] + }, + "migrations": [{ "tag": "v1", "new_sqlite_classes": ["OpenCodeDO"] }] +} diff --git a/packages/agent-examples/package.json b/packages/agent-examples/package.json new file mode 100644 index 0000000..10ea0ad --- /dev/null +++ b/packages/agent-examples/package.json @@ -0,0 +1,26 @@ +{ + "name": "@statewalker/agent-examples", + "version": "0.0.1", + "description": "Agent frameworks (pi, opencode) in Durable Objects, run on cellb against a fake OpenAI-compatible model", + "type": "module", + "private": true, + "license": "MIT", + "scripts": { + "test": "vitest run", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@earendil-works/pi-agent-core": "^1.4.0", + "@earendil-works/pi-ai": "^1.4.0", + "@opencode-ai/sdk": "0.0.0-dev-18697" + }, + "devDependencies": { + "@statewalker/cellb": "workspace:*", + "@statewalker/fake-openai": "workspace:*", + "@statewalker/webrun-files-mem": "^0.10.0", + "@types/node": "catalog:", + "esbuild": "0.28.2", + "typescript": "catalog:", + "vitest": "catalog:" + } +} diff --git a/packages/agent-examples/pi/index.js b/packages/agent-examples/pi/index.js new file mode 100644 index 0000000..b0e01db --- /dev/null +++ b/packages/agent-examples/pi/index.js @@ -0,0 +1,104 @@ +// pi's agent loop in a Durable Object: each prompt runs the model and its tool calls, and the +// transcript is kept in the object's storage, so it survives a restart. Adapted from celld's +// `examples/pi`, which needs the unreleased PiHarness of the `agents` package; this one uses pi's +// own published packages. +import { DurableObject } from "cloudflare:workers"; +import { Agent } from "@earendil-works/pi-agent-core"; +import { createModels, createProvider, Type } from "@earendil-works/pi-ai"; +import { openAICompletionsApi } from "@earendil-works/pi-ai/api/openai-completions.lazy"; + +function modelsFor(env) { + const models = createModels(); + models.setProvider( + createProvider({ + id: "endpoint", + // The OpenAI client needs some key; a local endpoint ignores it. + auth: { + apiKey: { + name: "endpoint", + resolve: async () => ({ auth: { apiKey: env.PI_API_KEY || "none" } }), + }, + }, + models: [ + { + id: env.PI_MODEL, + name: env.PI_MODEL, + api: "openai-completions", + provider: "endpoint", + baseUrl: env.PI_BASE_URL, + reasoning: false, + input: ["text"], + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 1024, + }, + ], + api: openAICompletionsApi(), + }), + ); + return models; +} + +// A tool the model can call: what the object knows about where it runs. +const whereAmI = { + name: "where_am_i", + label: "Where am I", + description: "Tells where this agent runs", + parameters: Type.Object({}), + execute: async () => ({ + content: [{ type: "text", text: "a Durable Object on cellb" }], + details: {}, + }), +}; + +export class PiAgent extends DurableObject { + constructor(ctx, env) { + super(ctx, env); + const models = modelsFor(env); + this.agent = new Agent({ + initialState: { + systemPrompt: "You are a helpful assistant. Use your tools.", + model: models.getModel("endpoint", env.PI_MODEL), + tools: [whereAmI], + }, + streamFn: models.streamSimple.bind(models), + }); + ctx.blockConcurrencyWhile(async () => { + const saved = await ctx.storage.get("messages"); + if (saved) this.agent.state.messages = saved; + }); + } + + async fetch(request) { + const url = new URL(request.url); + if (url.pathname === "/messages") return Response.json(this.agent.state.messages); + await this.agent.prompt(url.searchParams.get("q") ?? "ping"); + const messages = this.agent.state.messages; + await this.ctx.storage.put("messages", messages); + const last = messages.at(-1); + const reply = (last?.content ?? []) + .filter((part) => part.type === "text") + .map((part) => part.text) + .join(""); + const failed = last?.stopReason === "error"; + return Response.json( + { + reply, + error: failed ? last.errorMessage : undefined, + toolCalls: messages + .filter((m) => m.role === "assistant") + .flatMap((m) => + m.content.filter((part) => part.type === "toolCall").map((part) => part.name), + ), + messages: messages.length, + }, + { status: failed ? 502 : 200 }, + ); + } +} + +export default { + fetch(request, env) { + return env.PI_AGENT.getByName("local-pi").fetch(request); + }, +}; diff --git a/packages/agent-examples/pi/wrangler.jsonc b/packages/agent-examples/pi/wrangler.jsonc new file mode 100644 index 0000000..56af291 --- /dev/null +++ b/packages/agent-examples/pi/wrangler.jsonc @@ -0,0 +1,17 @@ +{ + // pi (pi.dev): its agent loop (@earendil-works/pi-agent-core) in a Durable Object, on any + // OpenAI-compatible endpoint. PI_BASE_URL points at the endpoint (the tests set it to the fake + // model; for a real one, put the key in PI_API_KEY through .dev.vars). + "name": "pi-agent", + "main": "index.js", + "compatibility_date": "2026-09-01", + "compatibility_flags": ["nodejs_compat"], + "vars": { + "PI_BASE_URL": "http://127.0.0.1:8787/v1", + "PI_MODEL": "fake-model" + }, + "durable_objects": { + "bindings": [{ "name": "PI_AGENT", "class_name": "PiAgent" }] + }, + "migrations": [{ "tag": "v1", "new_sqlite_classes": ["PiAgent"] }] +} diff --git a/packages/agent-examples/test/load-example.ts b/packages/agent-examples/test/load-example.ts new file mode 100644 index 0000000..69a9e29 --- /dev/null +++ b/packages/agent-examples/test/load-example.ts @@ -0,0 +1,22 @@ +import { mkdtempSync, readFileSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join, resolve } from "node:path"; +import { loadNodeProject, nodeSqliteOpener } from "@statewalker/cellb/node"; +import { MemFilesApi } from "@statewalker/webrun-files-mem"; + +const examples = resolve(import.meta.dirname, ".."); + +/** + * Loads an example on cellb (Node) with some of its vars replaced (the model endpoint): a + * temporary `wrangler.json` whose `main` is the example's own file, so that its packages resolve + * from this package's node_modules. + */ +export async function loadExample(name: string, vars: Record) { + const text = readFileSync(join(examples, name, "wrangler.jsonc"), "utf8"); + const config = JSON.parse(text.replace(/^\s*\/\/.*$/gm, "")); + config.main = join(examples, name, config.main); + config.vars = { ...config.vars, ...vars }; + const dir = mkdtempSync(join(tmpdir(), `agent-${name}-`)); + writeFileSync(join(dir, "wrangler.json"), JSON.stringify(config)); + return loadNodeProject(dir, { openSql: nodeSqliteOpener(), files: new MemFilesApi() }); +} diff --git a/packages/agent-examples/test/opencode.test.ts b/packages/agent-examples/test/opencode.test.ts new file mode 100644 index 0000000..426dae8 --- /dev/null +++ b/packages/agent-examples/test/opencode.test.ts @@ -0,0 +1,39 @@ +import { lastUserText, startFakeOpenAi } from "@statewalker/fake-openai"; +import { describe, expect, it } from "vitest"; +import { loadExample } from "./load-example.ts"; + +// opencode's workerd SDK in a Durable Object on cellb (celld's examples/opencode, with the model +// from an OpenAI-compatible endpoint): a session is created, prompted, and answered by the fake +// model; the SDK's state lives in the object's SQLite. +describe("opencode on cellb", () => { + it("creates a session, prompts it and reads the model's reply", async () => { + const fake = await startFakeOpenAi({ + // opencode also asks the model for a session title; answer the prompt itself plainly. + reply: (req) => ({ text: `opencode heard: ${lastUserText(req)}` }), + }); + const { runtime, unsupported } = await loadExample("opencode", { + OPENCODE_BASE_URL: fake.baseUrl, + }); + try { + expect(unsupported).toEqual([]); + const res = await runtime.fetch(new Request("http://x/")); + const body = (await res.json()) as { + ok: boolean; + model: { providerID: string; modelID: string }; + reply: string; + error?: unknown; + checks: { name: string; ok: boolean }[]; + }; + expect(res.status, JSON.stringify(body.error ?? body.checks)).toBe(200); + expect(body.model).toEqual({ providerID: "endpoint", modelID: "fake-model" }); + expect(body.reply).toContain("opencode heard:"); + expect(body.reply).toContain("hello world"); + expect(body.checks.every((c) => c.ok)).toBe(true); + expect(fake.requests.length).toBeGreaterThan(0); + expect(fake.requests.every((r) => r.model === "fake-model")).toBe(true); + } finally { + await runtime.close(); + await fake.close(); + } + }); +}); diff --git a/packages/agent-examples/test/pi.test.ts b/packages/agent-examples/test/pi.test.ts new file mode 100644 index 0000000..9a3e0f5 --- /dev/null +++ b/packages/agent-examples/test/pi.test.ts @@ -0,0 +1,38 @@ +import { startFakeOpenAi } from "@statewalker/fake-openai"; +import { describe, expect, it } from "vitest"; +import { loadExample } from "./load-example.ts"; + +// pi's agent loop (@earendil-works/pi-agent-core) in a Durable Object on cellb, with the fake +// model: a prompt calls the agent's tool, the tool's answer comes back as the reply, and the +// transcript persists in the object's storage. +describe("pi on cellb", () => { + it("runs a prompt through a tool call and keeps the transcript", async () => { + const fake = await startFakeOpenAi(); + const { runtime, unsupported } = await loadExample("pi", { PI_BASE_URL: fake.baseUrl }); + try { + expect(unsupported).toEqual([]); + const res = await runtime.fetch(new Request("http://x/?q=where%20are%20you")); + const body = (await res.json()) as { reply: string; toolCalls: string[]; error?: string }; + expect(res.status, body.error).toBe(200); + expect(body.toolCalls).toEqual(["where_am_i"]); + expect(body.reply).toBe("The tool said: a Durable Object on cellb"); + + // Two model calls: the first offered the tool, the second carried its result. + expect(fake.requests).toHaveLength(2); + expect(fake.requests[0]?.model).toBe("fake-model"); + expect(fake.requests[0]?.tools?.map((t) => t.function.name)).toEqual(["where_am_i"]); + expect(fake.requests[1]?.messages.some((m) => m.role === "tool")).toBe(true); + + // The transcript is in the object's storage: a second prompt continues it. + const again = await runtime.fetch(new Request("http://x/?q=and%20now")); + expect(again.status).toBe(200); + const messages = (await (await runtime.fetch(new Request("http://x/messages"))).json()) as { + role: string; + }[]; + expect(messages.filter((m) => m.role === "user")).toHaveLength(2); + } finally { + await runtime.close(); + await fake.close(); + } + }); +}); diff --git a/packages/agent-examples/tsconfig.json b/packages/agent-examples/tsconfig.json new file mode 100644 index 0000000..8a13fd9 --- /dev/null +++ b/packages/agent-examples/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": true, + "strict": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["node"], + "skipLibCheck": true, + "noEmit": true + }, + "include": ["src", "test", "vite.config.ts", "vitest.config.ts"] +} diff --git a/packages/agent-examples/vitest.config.ts b/packages/agent-examples/vitest.config.ts new file mode 100644 index 0000000..f10fda6 --- /dev/null +++ b/packages/agent-examples/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ test: { include: ["test/**/*.test.ts"], testTimeout: 60_000 } }); diff --git a/packages/cellb/docs/celld-compatibility.md b/packages/cellb/docs/celld-compatibility.md index c074176..ad3b833 100644 --- a/packages/cellb/docs/celld-compatibility.md +++ b/packages/cellb/docs/celld-compatibility.md @@ -5,6 +5,28 @@ cellb answers the same requests the same way, and stores cells the same way, so served by celld, then by cellb in Node or a browser, then by celld again. This page lists what is identical, how it is checked, and where the two still differ. The pinned celld version is 0.6.3. +## Features at a glance + +| Feature | celld 0.6.3 | cellb, Node | cellb, browsers | How cellb is checked | +|---|---|---|---|---| +| Workers (stateless handlers) | supported | yes | yes | `hello`, `webapi`, `router`, `body` | +| Durable Objects / cells | supported | yes, same storage format | yes, same storage format | `counter`, `rpc`, `alarm`, workerd's tests; cells cross celld ↔ cellb | +| Durable Object facets | supported | yes | yes | `facets`, `facets-api` | +| KV | supported | yes (celld's code) | yes | `kv`, `kv-values` | +| Queues | supported | yes (celld's code) | yes | `queues`, `queues-api` | +| D1 | supported | yes (Miniflare's simulator) | yes | `d1`, D1 migrations | +| R2 | supported | yes, celld's bucket layout | yes | `r2`, `r2-api`, `r2-advanced` | +| Workflows | supported | yes (celld's engine) | yes | `workflow`, `workflow-api` | +| Cron triggers | supported | yes | yes | `cron` | +| Static assets | supported | yes (with Cloudflare's behaviour where celld has bugs) | yes | `static-assets`, `assets-api` | +| Dynamic Workers (Worker Loader) | supported | yes, a worker thread each | yes, a Dedicated Worker each | `dynamic-worker-tails`, the Worker Loader scenarios | +| WebSockets, hibernation | supported | yes | yes, over MessagePorts | `wsecho`, `wsclient`, `wd-websocket-*` (celld fails `wd-websocket-hibernation`, cellb passes it) | +| Vectorize-style search | example | yes | yes | `vectordb` | +| Workers AI (`ai` binding) | no binding (the `pi` example builds its own adapter) | yes, on an OpenAI-compatible endpoint the host names | yes | `p14-workers-ai`, Flue's `cloud` agent | +| Python Workers (Pyodide) | supported | no, out of scope ([gaps.md](gaps.md)) | no | not run | +| Containers | experimental (Docker or Podman) | no; reported in `unsupported` | no | not run | +| Agent frameworks: Flue, pi, opencode | examples (`pi`, `opencode` need the network) | yes, offline against a fake model | Flue | `packages/flue-example`, `packages/agent-examples` | + ## The same request gets the same answer A project that runs on celld (`wrangler.jsonc` plus its `main`) loads unchanged with diff --git a/packages/cellb/docs/gaps.md b/packages/cellb/docs/gaps.md index 34c637c..cba42a9 100644 --- a/packages/cellb/docs/gaps.md +++ b/packages/cellb/docs/gaps.md @@ -140,9 +140,11 @@ Dedicated Workers all work in Firefox 157, and the whole suite passes there. Wha judge, so this stays (following workerd would need a `judge: "workerd"` reason of the stub kind). workerd's input gate also defers outbound `fetch` completions while storage is in flight; cellb does not, and what celld does there is not recorded. -- **celld examples not run:** `python` (Pyodide Python Workers), `wasm` (needs the Rust toolchain to - build), `container` and `sandbox` (Docker or Podman), `pi` and `opencode` (outbound access to model - endpoints). +- **celld examples not run:** `python` (Pyodide Python Workers: cellb runs no Python), `wasm` + (needs the Rust toolchain to build), `container` and `sandbox` (Docker or Podman; a `containers` + config is reported in `unsupported`). `pi` and `opencode` need a model on the network as celld + ships them; `packages/agent-examples` runs both, adapted to take their model from an endpoint in + their vars, against a fake OpenAI-compatible model. - **No build step.** The entry points are TypeScript sources. A bundler, Vite or vitest resolves them; plain `node` fails with `ERR_MODULE_NOT_FOUND` for `src/…/*.js`. diff --git a/packages/cellb/src/project/node-project.ts b/packages/cellb/src/project/node-project.ts index a78a964..de832fd 100644 --- a/packages/cellb/src/project/node-project.ts +++ b/packages/cellb/src/project/node-project.ts @@ -122,6 +122,10 @@ export async function bundleWorker( bundle: true, format: "esm", platform: "neutral", + // As `celld deploy` resolves packages: workerd's conditions, then `module` and `main` (the + // neutral platform has no main fields, so a package with only `main` would not resolve). + conditions: ["workerd", "worker", "browser"], + mainFields: ["module", "main"], target: "es2022", logLevel: "silent", inject: [ diff --git a/packages/cellb/src/project/wrangler.ts b/packages/cellb/src/project/wrangler.ts index 4a9b542..ac605db 100644 --- a/packages/cellb/src/project/wrangler.ts +++ b/packages/cellb/src/project/wrangler.ts @@ -51,6 +51,8 @@ export interface WranglerConfig { worker_loaders?: { binding: string }[]; /** Workers AI: served by the host's OpenAI-compatible endpoint (`ProjectHost.ai`), if any. */ ai?: { binding: string }; + /** Containers (celld runs them with Docker or Podman): not supported, reported. */ + containers?: { class_name: string; image?: string }[]; } /** wrangler `workflows` entries. */ @@ -123,6 +125,8 @@ export function createProjectRuntime( for (const r of m.renamed_classes ?? []) unsupported.push(`migrations.renamed_classes (${r.from} → ${r.to})`); } + for (const c of config.containers ?? []) + unsupported.push(`containers[${c.class_name}] (cellb runs no containers)`); for (const b of config.durable_objects?.bindings ?? []) { if (b.script_name) unsupported.push(`durable_objects.bindings[${b.name}].script_name`); durableObjects[b.name] = { className: b.class_name }; diff --git a/packages/cellb/src/ws/server.ts b/packages/cellb/src/ws/server.ts index b4e6c9b..042a65e 100644 --- a/packages/cellb/src/ws/server.ts +++ b/packages/cellb/src/ws/server.ts @@ -238,7 +238,14 @@ export class CellsResponse extends Response { init: ResponseInit & { webSocket?: CfWebSocket | null } = {}, ) { const upgrade = init.status === 101; - super(upgrade ? null : body, { ...init, status: upgrade ? 200 : init.status }); + // The init's members read one by one, as Fetch reads a dictionary: an init that is itself a + // Response (`new Response(body, response)`, as opencode's SDK does) keeps its headers and + // statusText, which a spread would drop (they are getters on its prototype). + super(upgrade ? null : body, { + status: upgrade ? 200 : init.status, + statusText: init.statusText, + headers: init.headers, + }); this.#status = init.status ?? 200; this.webSocket = init.webSocket ?? null; } diff --git a/packages/cellb/test/p07w-websocket.test.ts b/packages/cellb/test/p07w-websocket.test.ts index 50ed443..73ac6de 100644 --- a/packages/cellb/test/p07w-websocket.test.ts +++ b/packages/cellb/test/p07w-websocket.test.ts @@ -126,6 +126,22 @@ describe("P07w WebSockets over MessagePorts (CF WebSocketPair on the DO side, WH expect(ws.binaryType).toBe("arraybuffer"); }); + it("CellsResponse takes another Response as its init, as Fetch does (status, statusText, headers)", async () => { + const first = new CellsResponse("{}", { + status: 201, + statusText: "Made", + headers: { "content-type": "application/json", "x-a": "1" }, + }); + const copy = new CellsResponse("[]", first); + expect([ + copy.status, + copy.statusText, + copy.headers.get("content-type"), + copy.headers.get("x-a"), + ]).toEqual([201, "Made", "application/json", "1"]); + expect(await copy.text()).toBe("[]"); + }); + it("a WebSocketPair destructures as [client, server], as in workerd", () => { const pair = new WebSocketPair(); const [client, server] = pair as unknown as Iterable; diff --git a/packages/cellb/test/p13-agents-sdk-host.test.ts b/packages/cellb/test/p13-agents-sdk-host.test.ts index c202aa7..614f5f5 100644 --- a/packages/cellb/test/p13-agents-sdk-host.test.ts +++ b/packages/cellb/test/p13-agents-sdk-host.test.ts @@ -115,6 +115,14 @@ describe("P13 modules the Agents SDK imports", () => { expect(p.unsupported).toEqual(["ai[AI] (Workers AI: give the host an OpenAI-compatible `ai`)"]); await p.runtime.close(); }); + + it("reports containers as unsupported", async () => { + const p = await project("containers", { + containers: [{ class_name: "Box", image: "./Dockerfile" }], + }); + expect(p.unsupported).toEqual(["containers[Box] (cellb runs no containers)"]); + await p.runtime.close(); + }); }); class Runs extends DurableObject { diff --git a/packages/fake-openai/README.md b/packages/fake-openai/README.md new file mode 100644 index 0000000..6f8b182 --- /dev/null +++ b/packages/fake-openai/README.md @@ -0,0 +1,66 @@ +# @statewalker/fake-openai + +A scripted OpenAI-compatible model endpoint for running agents offline: `POST /v1/chat/completions` +(streamed or not, text or tool calls), `POST /v1/embeddings` and `GET /v1/models`. The package is +private: the agent examples and the Flue example test against it. + +## Why it exists + +Agent frameworks (pi, opencode, Flue, the Workers AI binding) need a model to do anything, and a +real one makes a test slow, paid, non-deterministic and dependent on the network. This endpoint +speaks the OpenAI wire format closely enough for their OpenAI clients (streamed deltas a word at a +time, tool calls streamed as OpenAI streams them, a usage chunk, `[DONE]`), answers from a script, +and records every request, so a test can assert what the agent sent. + +## How to use it + +```ts +import { lastUserText, startFakeOpenAi, toolResults } from "@statewalker/fake-openai"; + +const fake = await startFakeOpenAi(); // the default script, on a port the OS picks +// point the agent at fake.baseUrl ("http://127.0.0.1:/v1") +// … run it … +fake.requests; // every chat request, parsed +fake.authorizations; // their Authorization headers +await fake.close(); +``` + +From a shell, for `celld dev` or a manual try (Node 22.18 or later runs the TypeScript directly): + +```sh +node packages/fake-openai/src/cli.ts 8787 # http://127.0.0.1:8787/v1 +``` + +## Examples + +### The default script + +`defaultReply` answers: with tools offered and none answered yet, a call of the first tool (no +arguments); once a tool answered, `The tool said: `; otherwise +`fake-model heard: `. An agent with one tool therefore makes two model calls +and ends with the tool's result as its reply. + +### A script of your own + +```ts +const fake = await startFakeOpenAi({ + reply: (req) => + toolResults(req).length + ? { text: "done" } + : { tools: [{ name: "search", args: { q: lastUserText(req) } }] }, + delayMs: 50, // concurrent conversations overlap +}); +``` + +A turn is `{ text }`, `{ tool, args }` or `{ tools: [{ name, args }] }`. `holdNext()` keeps the next +response open until its `release()`, to test what happens while a model call is in flight. + +## Internals + +- **CORS is open**, so a page or worker on another origin (a browser test) can call it. +- **Embeddings** are deterministic 8-dimensional unit vectors of the text. +- **Only Chat Completions**: the Responses API and image or audio models are not served. + +## License + +MIT diff --git a/packages/fake-openai/package.json b/packages/fake-openai/package.json new file mode 100644 index 0000000..338c9cd --- /dev/null +++ b/packages/fake-openai/package.json @@ -0,0 +1,24 @@ +{ + "name": "@statewalker/fake-openai", + "version": "0.0.1", + "description": "A scripted OpenAI-compatible model endpoint (chat completions, streamed or not, with tool calls; embeddings; model list) for testing agents offline", + "type": "module", + "private": true, + "license": "MIT", + "exports": { + ".": "./src/index.ts" + }, + "bin": { + "fake-openai": "./src/cli.ts" + }, + "scripts": { + "test": "vitest run", + "typecheck": "tsc --noEmit", + "start": "node src/cli.ts" + }, + "devDependencies": { + "@types/node": "catalog:", + "typescript": "catalog:", + "vitest": "catalog:" + } +} diff --git a/packages/fake-openai/src/cli.ts b/packages/fake-openai/src/cli.ts new file mode 100755 index 0000000..95bfea5 --- /dev/null +++ b/packages/fake-openai/src/cli.ts @@ -0,0 +1,16 @@ +#!/usr/bin/env node +// Runs the fake model on its own, for `celld dev` or a manual try: +// node packages/fake-openai/src/cli.ts [port] +// It answers with the default script (see `defaultReply`) and logs each request. +import { defaultReply, lastUserText, startFakeOpenAi } from "./index.ts"; + +const port = Number(process.argv[2] ?? process.env.PORT ?? 8787); +const fake = await startFakeOpenAi({ + port, + reply: (req) => { + const turn = defaultReply(req); + console.log(`${req.model}: "${lastUserText(req)}" → ${JSON.stringify(turn)}`); + return turn; + }, +}); +console.log(`fake OpenAI endpoint at ${fake.baseUrl} (chat: ${fake.chatUrl})`); diff --git a/packages/fake-openai/src/index.ts b/packages/fake-openai/src/index.ts new file mode 100644 index 0000000..3be8a6b --- /dev/null +++ b/packages/fake-openai/src/index.ts @@ -0,0 +1,256 @@ +/** + * A scripted OpenAI-compatible model endpoint, for running agents offline (pi, opencode, Flue, + * the Workers AI binding): `POST /v1/chat/completions` (streamed or not, text or tool calls), + * `POST /v1/embeddings`, `GET /v1/models`. CORS is open, so pages and workers on another origin + * can call it too. Every request is recorded. + */ +import { createServer, type IncomingMessage, type Server } from "node:http"; +import type { AddressInfo } from "node:net"; + +/** One chat-completions request the fake model received. */ +export interface ChatRequest { + model: string; + stream?: boolean; + messages: ChatMessage[]; + tools?: { type?: string; function: { name: string; description?: string } }[]; + [key: string]: unknown; +} + +export interface ChatMessage { + role: string; + content?: unknown; + tool_calls?: { id?: string; function?: { name?: string; arguments?: string } }[]; + tool_call_id?: string; +} + +/** A scripted turn: a text reply, or tool calls. */ +export type Turn = + | { text: string } + | { tool: string; args?: Record } + | { tools: { name: string; args?: Record }[] }; + +export interface FakeOpenAiOptions { + /** The answer to each request (default: `defaultReply`). */ + reply?: (req: ChatRequest) => Turn; + /** Delays every response (concurrent conversations then overlap). */ + delayMs?: number; + /** The models `GET /v1/models` lists (default: `["fake-model"]`). */ + models?: string[]; + /** Port to listen on (default: one the OS picks), on 127.0.0.1 unless `host` says otherwise. */ + port?: number; + host?: string; +} + +/** The text of a message's content (a string, or text parts). */ +export function textOf(content: unknown): string { + if (typeof content === "string") return content; + if (Array.isArray(content)) + return content + .map((p) => (p && typeof p === "object" && "text" in p ? String(p.text) : "")) + .join(""); + return ""; +} + +/** The last user message's text. */ +export const lastUserText = (req: ChatRequest) => + textOf([...req.messages].reverse().find((m) => m.role === "user")?.content); + +/** Tool results already in the conversation (role `tool`). */ +export const toolResults = (req: ChatRequest) => + req.messages.filter((m) => m.role === "tool").map((m) => textOf(m.content)); + +/** + * The default script: with tools offered and none answered yet, call the first one; once a tool + * answered, reply with its result; otherwise echo the user (`fake-model heard: …`). + */ +export function defaultReply(req: ChatRequest): Turn { + const results = toolResults(req); + if (results.length) return { text: `The tool said: ${results.join("; ")}` }; + const tool = req.tools?.[0]?.function.name; + if (tool) return { tool, args: {} }; + return { text: `fake-model heard: ${lastUserText(req)}` }; +} + +/** Text split into the deltas a streamed reply sends (a word at a time). */ +const deltas = (text: string) => text.match(/\S+\s*|\s+/g) ?? [""]; + +export interface FakeOpenAi { + /** `http://127.0.0.1:/v1` */ + baseUrl: string; + /** `/chat/completions` */ + chatUrl: string; + /** Chat requests, in arrival order. */ + requests: ChatRequest[]; + /** The `authorization` header of each chat request. */ + authorizations: (string | undefined)[]; + /** Holds the next chat response until `release()`; `arrived` resolves when it came in. */ + holdNext(): { arrived: Promise; release: () => void }; + close(): Promise; +} + +export async function startFakeOpenAi(opts: FakeOpenAiOptions = {}): Promise { + const reply = opts.reply ?? defaultReply; + const models = opts.models ?? ["fake-model"]; + const requests: ChatRequest[] = []; + const authorizations: (string | undefined)[] = []; + let hold: { released: Promise; entered: () => void } | undefined; + + const server: Server = createServer(async (req, res) => { + res.setHeader("access-control-allow-origin", "*"); + if (req.method === "OPTIONS") { + res.writeHead(204, { + "access-control-allow-methods": "GET, POST", + "access-control-allow-headers": "*", + }); + res.end(); + return; + } + const path = new URL(req.url ?? "/", "http://x").pathname.replace(/\/+$/, ""); + const json = (status: number, body: unknown) => { + res.writeHead(status, { "content-type": "application/json" }); + res.end(JSON.stringify(body)); + }; + if (req.method === "GET" && path.endsWith("/models")) { + json(200, { + object: "list", + data: models.map((id) => ({ id, object: "model", created: 0, owned_by: "fake" })), + }); + return; + } + if (req.method === "POST" && path.endsWith("/embeddings")) { + const body = JSON.parse(await readBody(req)) as { input: string | string[]; model: string }; + const inputs = Array.isArray(body.input) ? body.input : [body.input]; + json(200, { + object: "list", + model: body.model, + data: inputs.map((text, index) => ({ object: "embedding", index, embedding: embed(text) })), + usage: { prompt_tokens: inputs.length, total_tokens: inputs.length }, + }); + return; + } + if (req.method !== "POST" || !path.endsWith("/chat/completions")) { + json(404, { error: { message: `fake-openai: no route ${req.method} ${path}` } }); + return; + } + const body = JSON.parse(await readBody(req)) as ChatRequest; + requests.push(body); + authorizations.push(req.headers.authorization); + const h = hold; + hold = undefined; + if (h) { + h.entered(); + await h.released; + } + if (opts.delayMs) await new Promise((r) => setTimeout(r, opts.delayMs)); + const turn = reply(body); + const n = requests.length; + const id = `chatcmpl-${n}`; + const created = Math.floor(Date.now() / 1000); + const usage = { prompt_tokens: 10, completion_tokens: 5, total_tokens: 15 }; + const calls = + "text" in turn + ? [] + : ("tools" in turn ? turn.tools : [{ name: turn.tool, args: turn.args }]).map((c, i) => ({ + index: i, + id: `call_${n}_${i}`, + type: "function", + function: { name: c.name, arguments: JSON.stringify(c.args ?? {}) }, + })); + const finish = calls.length ? "tool_calls" : "stop"; + const message = calls.length + ? { role: "assistant", content: null, tool_calls: calls } + : { role: "assistant", content: (turn as { text: string }).text }; + if (!body.stream) { + json(200, { + id, + object: "chat.completion", + created, + model: body.model, + choices: [{ index: 0, message, finish_reason: finish }], + usage, + }); + return; + } + res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache" }); + const chunk = (choice: unknown, extra: Record = {}) => + res.write( + `data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model: body.model, choices: [choice], ...extra })}\n\n`, + ); + if (calls.length) { + chunk({ index: 0, delta: { role: "assistant", content: null }, finish_reason: null }); + // Each call as OpenAI streams it: the head (id, name), then the arguments. + for (const c of calls) { + chunk({ + index: 0, + delta: { + tool_calls: [ + { + index: c.index, + id: c.id, + type: "function", + function: { name: c.function.name, arguments: "" }, + }, + ], + }, + finish_reason: null, + }); + chunk({ + index: 0, + delta: { + tool_calls: [{ index: c.index, function: { arguments: c.function.arguments } }], + }, + finish_reason: null, + }); + } + } else { + chunk({ index: 0, delta: { role: "assistant", content: "" }, finish_reason: null }); + for (const d of deltas(message.content as string)) + chunk({ index: 0, delta: { content: d }, finish_reason: null }); + } + chunk({ index: 0, delta: {}, finish_reason: finish }); + res.write( + `data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model: body.model, choices: [], usage })}\n\n`, + ); + res.end("data: [DONE]\n\n"); + }); + await new Promise((r) => server.listen(opts.port ?? 0, opts.host ?? "127.0.0.1", r)); + const { port } = server.address() as AddressInfo; + const baseUrl = `http://${opts.host ?? "127.0.0.1"}:${port}/v1`; + return { + baseUrl, + chatUrl: `${baseUrl}/chat/completions`, + requests, + authorizations, + holdNext() { + let release!: () => void; + let entered!: () => void; + const released = new Promise((r) => (release = r)); + const arrived = new Promise((r) => (entered = r)); + hold = { released, entered }; + return { arrived, release }; + }, + close: () => + new Promise((r) => { + server.closeAllConnections(); + server.close(() => r()); + }), + }; +} + +/** A deterministic 8-dimensional unit vector for a text. */ +function embed(text: string): number[] { + const v = new Array(8).fill(0); + for (let i = 0; i < text.length; i++) v[i % 8] += text.charCodeAt(i); + const norm = Math.hypot(...v) || 1; + return v.map((x) => x / norm); +} + +function readBody(req: IncomingMessage): Promise { + return new Promise((resolve, reject) => { + let s = ""; + req.setEncoding("utf8"); + req.on("data", (c) => (s += c)); + req.on("end", () => resolve(s)); + req.on("error", reject); + }); +} diff --git a/packages/fake-openai/test/fake-openai.test.ts b/packages/fake-openai/test/fake-openai.test.ts new file mode 100644 index 0000000..b0ef75f --- /dev/null +++ b/packages/fake-openai/test/fake-openai.test.ts @@ -0,0 +1,132 @@ +import { afterEach, describe, expect, it } from "vitest"; +import { type FakeOpenAi, startFakeOpenAi } from "../src/index.ts"; + +let fake: FakeOpenAi | undefined; +afterEach(() => fake?.close()); + +const post = (url: string, body: unknown, headers: Record = {}) => + fetch(url, { + method: "POST", + headers: { "content-type": "application/json", ...headers }, + body: JSON.stringify(body), + }); + +/** The `data:` payloads of an SSE body, parsed (`[DONE]` kept as is). */ +async function events(res: Response) { + return (await res.text()) + .split("\n\n") + .filter((e) => e.startsWith("data: ")) + .map((e) => e.slice(6)) + .map((d) => (d === "[DONE]" ? d : JSON.parse(d))); +} + +describe("fake OpenAI endpoint", () => { + it("answers chat completions with the default script: echo, tool call, tool result", async () => { + fake = await startFakeOpenAi(); + const echo = await ( + await post( + fake.chatUrl, + { model: "m", messages: [{ role: "user", content: "hi" }] }, + { + authorization: "Bearer k", + }, + ) + ).json(); + expect(echo.choices[0].message).toEqual({ role: "assistant", content: "fake-model heard: hi" }); + expect(fake.authorizations).toEqual(["Bearer k"]); + + const tools = [{ type: "function", function: { name: "lookup" } }]; + const call = await ( + await post(fake.chatUrl, { model: "m", messages: [{ role: "user", content: "x" }], tools }) + ).json(); + expect(call.choices[0].finish_reason).toBe("tool_calls"); + expect(call.choices[0].message.tool_calls[0].function).toEqual({ + name: "lookup", + arguments: "{}", + }); + + const done = await ( + await post(fake.chatUrl, { + model: "m", + tools, + messages: [ + { role: "user", content: "x" }, + { role: "tool", tool_call_id: "c", content: "42" }, + ], + }) + ).json(); + expect(done.choices[0].message.content).toBe("The tool said: 42"); + expect(fake.requests).toHaveLength(3); + }); + + it("streams text a word at a time, and tool calls as OpenAI does, with usage and [DONE]", async () => { + fake = await startFakeOpenAi({ + reply: (req) => + req.tools + ? { tools: [{ name: "a", args: { n: 1 } }, { name: "b" }] } + : { text: "one two three" }, + }); + const text = await events( + await post(fake.chatUrl, { + model: "m", + stream: true, + messages: [{ role: "user", content: "x" }], + }), + ); + const words = text + .filter((e) => e !== "[DONE]" && e.choices[0]) + .map((e) => e.choices[0].delta.content ?? "") + .join(""); + expect(words).toBe("one two three"); + expect(text.at(-1)).toBe("[DONE]"); + expect(text.at(-2).usage.total_tokens).toBe(15); + + const calls = await events( + await post(fake.chatUrl, { + model: "m", + stream: true, + tools: [{ function: { name: "a" } }], + messages: [{ role: "user", content: "x" }], + }), + ); + const deltas = calls.filter((e) => e !== "[DONE]" && e.choices[0]?.delta.tool_calls); + const args = (i: number) => + deltas + .flatMap((e) => e.choices[0].delta.tool_calls) + .filter((c: { index: number }) => c.index === i) + .map((c: { function: { arguments?: string } }) => c.function.arguments ?? "") + .join(""); + expect(args(0)).toBe('{"n":1}'); + expect(args(1)).toBe("{}"); + expect( + calls.find((e) => e !== "[DONE]" && e.choices[0]?.finish_reason)?.choices[0].finish_reason, + ).toBe("tool_calls"); + }); + + it("lists models, embeds, holds a response, and answers CORS preflights", async () => { + fake = await startFakeOpenAi({ models: ["a", "b"] }); + const models = await (await fetch(`${fake.baseUrl}/models`)).json(); + expect(models.data.map((m: { id: string }) => m.id)).toEqual(["a", "b"]); + + const emb = await ( + await post(`${fake.baseUrl}/embeddings`, { model: "e", input: ["x", "y"] }) + ).json(); + expect(emb.data).toHaveLength(2); + expect(Math.hypot(...emb.data[0].embedding)).toBeCloseTo(1); + + const held = fake.holdNext(); + const pending = post(fake.chatUrl, { + model: "m", + messages: [{ role: "user", content: "wait" }], + }); + await held.arrived; + held.release(); + expect((await (await pending).json()).choices[0].message.content).toBe( + "fake-model heard: wait", + ); + + const pre = await fetch(fake.chatUrl, { method: "OPTIONS" }); + expect(pre.status).toBe(204); + expect(pre.headers.get("access-control-allow-origin")).toBe("*"); + }); +}); diff --git a/packages/fake-openai/tsconfig.json b/packages/fake-openai/tsconfig.json new file mode 100644 index 0000000..8a13fd9 --- /dev/null +++ b/packages/fake-openai/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": true, + "strict": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["node"], + "skipLibCheck": true, + "noEmit": true + }, + "include": ["src", "test", "vite.config.ts", "vitest.config.ts"] +} diff --git a/packages/flue-example/package.json b/packages/flue-example/package.json index dced793..e998ecc 100644 --- a/packages/flue-example/package.json +++ b/packages/flue-example/package.json @@ -24,6 +24,7 @@ "@sparticuz/chromium": "^153.0.0", "@sqlite.org/sqlite-wasm": "^3.53.4-build1", "@statewalker/cellb": "workspace:*", + "@statewalker/fake-openai": "workspace:*", "@statewalker/webrun-files-mem": "^0.10.0", "@types/node": "catalog:", "agents": "0.20.1", diff --git a/packages/flue-example/test/fake-llm.ts b/packages/flue-example/test/fake-llm.ts index e5f2fd4..bfbddd2 100644 --- a/packages/flue-example/test/fake-llm.ts +++ b/packages/flue-example/test/fake-llm.ts @@ -1,124 +1,17 @@ -import { createServer, type IncomingMessage, type Server } from "node:http"; -import type { AddressInfo } from "node:net"; +// The fake model these tests use: the shared @statewalker/fake-openai endpoint, under the names +// the tests were written with. +import { type ChatRequest, startFakeOpenAi, type Turn } from "@statewalker/fake-openai"; /** One chat-completions request the fake model received. */ -export interface FakeLlmRequest { - model: string; - stream: boolean; - messages: { role: string; content?: unknown; tool_calls?: unknown[] }[]; - tools?: { function: { name: string } }[]; -} +export type FakeLlmRequest = ChatRequest; /** A scripted turn: a text reply, or one tool call. */ -export type FakeTurn = { text: string } | { tool: string; args?: Record }; +export type FakeTurn = Turn; -/** - * A fake OpenAI-compatible endpoint (`POST /v1/chat/completions`, streamed or not, CORS open). - * `reply` picks each turn from the request; every request is recorded. - * `holdNext()` keeps the next response open until the returned release is called; `delayMs` - * delays every response (so that concurrent conversations overlap). - */ -export async function startFakeLlm( +/** The fake endpoint, answering each request with `reply`; see startFakeOpenAi. */ +export function startFakeLlm( reply: (req: FakeLlmRequest) => FakeTurn, opts: { delayMs?: number } = {}, ) { - const requests: FakeLlmRequest[] = []; - let hold: { released: Promise; entered: () => void } | undefined; - const server: Server = createServer(async (req, res) => { - // A page or worker on another origin calls it too (the browser test). - res.setHeader("access-control-allow-origin", "*"); - if (req.method === "OPTIONS") { - res.writeHead(204, { - "access-control-allow-methods": "POST", - "access-control-allow-headers": "*", - }); - res.end(); - return; - } - if (req.method !== "POST" || !req.url?.endsWith("/chat/completions")) { - res.writeHead(404).end(); - return; - } - const body = JSON.parse(await readBody(req)) as FakeLlmRequest; - requests.push(body); - const h = hold; - hold = undefined; - if (h) { - h.entered(); - await h.released; - } - if (opts.delayMs) await new Promise((r) => setTimeout(r, opts.delayMs)); - const turn = reply(body); - const id = `chatcmpl-${requests.length}`; - const created = Math.floor(Date.now() / 1000); - const usage = { prompt_tokens: 10, completion_tokens: 5, total_tokens: 15 }; - const message = - "text" in turn - ? { role: "assistant", content: turn.text } - : { - role: "assistant", - content: null, - tool_calls: [ - { - index: 0, - id: `call_${requests.length}`, - type: "function", - function: { name: turn.tool, arguments: JSON.stringify(turn.args ?? {}) }, - }, - ], - }; - const finish = "text" in turn ? "stop" : "tool_calls"; - if (!body.stream) { - res.writeHead(200, { "content-type": "application/json" }); - res.end( - JSON.stringify({ - id, - object: "chat.completion", - created, - model: body.model, - choices: [{ index: 0, message, finish_reason: finish }], - usage, - }), - ); - return; - } - res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache" }); - const chunk = (choice: unknown, extra: Record = {}) => - res.write( - `data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model: body.model, choices: [choice], ...extra })}\n\n`, - ); - chunk({ index: 0, delta: message, finish_reason: null }); - chunk({ index: 0, delta: {}, finish_reason: finish }, { usage }); - res.end("data: [DONE]\n\n"); - }); - await new Promise((r) => server.listen(0, "127.0.0.1", r)); - const { port } = server.address() as AddressInfo; - return { - baseUrl: `http://127.0.0.1:${port}/v1`, - requests, - /** Holds the next response; resolves `entered` once the request arrived. */ - holdNext() { - let release!: () => void; - let entered!: () => void; - const released = new Promise((r) => (release = r)); - const arrived = new Promise((r) => (entered = r)); - hold = { released, entered }; - return { arrived, release }; - }, - close: () => - new Promise((r) => { - server.closeAllConnections(); - server.close(() => r()); - }), - }; -} - -function readBody(req: IncomingMessage): Promise { - return new Promise((resolve, reject) => { - let s = ""; - req.setEncoding("utf8"); - req.on("data", (c) => (s += c)); - req.on("end", () => resolve(s)); - req.on("error", reject); - }); + return startFakeOpenAi({ reply, delayMs: opts.delayMs }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16b9cf4..0e06d42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,7 +61,41 @@ importers: version: 7.0.2 vitest: specifier: 'catalog:' - version: 5.0.5(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + version: 5.0.5(@opentelemetry/api@1.10.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + + packages/agent-examples: + dependencies: + '@earendil-works/pi-agent-core': + specifier: ^1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8) + '@earendil-works/pi-ai': + specifier: ^1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8) + '@opencode-ai/sdk': + specifier: 0.0.0-dev-18697 + version: 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10)(ws@8.22.0)(zod@4.1.8) + devDependencies: + '@statewalker/cellb': + specifier: workspace:* + version: link:../cellb + '@statewalker/fake-openai': + specifier: workspace:* + version: link:../fake-openai + '@statewalker/webrun-files-mem': + specifier: ^0.10.0 + version: 0.10.3 + '@types/node': + specifier: 'catalog:' + version: 26.6.5 + esbuild: + specifier: 0.28.2 + version: 0.28.2 + typescript: + specifier: 'catalog:' + version: 7.0.2 + vitest: + specifier: 'catalog:' + version: 5.0.5(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) packages/cellb: dependencies: @@ -158,7 +192,7 @@ importers: version: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) vitest: specifier: 'catalog:' - version: 5.0.5(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + version: 5.0.5(@opentelemetry/api@1.10.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) ws: specifier: 'catalog:' version: 8.22.0 @@ -166,14 +200,26 @@ importers: specifier: ^3.25.0 version: 3.25.76 + packages/fake-openai: + devDependencies: + '@types/node': + specifier: 'catalog:' + version: 26.6.5 + typescript: + specifier: 'catalog:' + version: 7.0.2 + vitest: + specifier: 'catalog:' + version: 5.0.5(@opentelemetry/api@1.10.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + packages/flue-example: dependencies: '@earendil-works/pi-ai': specifier: ^1.4.0 - version: 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) '@flue/runtime': specifier: 2.3.0 - version: 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + version: 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) hono: specifier: ^4.13.14 version: 4.13.14 @@ -186,7 +232,7 @@ importers: version: 2.3.0 '@flue/vite': specifier: 2.3.0 - version: 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(@smithy/signature-v4@5.7.4)(hono@4.13.14)(react@19.3.1)(rolldown@1.2.15)(typescript@7.0.2)(undici@7.30.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(ws@8.22.0)(zod@4.6.7) + version: 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.6.7))(hono@4.13.14)(react@19.3.1)(rolldown@1.2.15)(typescript@7.0.2)(undici@8.12.3)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(ws@8.22.0)(zod@4.6.7) '@playwright/test': specifier: ^1.63.0 version: 1.64.1 @@ -199,6 +245,9 @@ importers: '@statewalker/cellb': specifier: workspace:* version: link:../cellb + '@statewalker/fake-openai': + specifier: workspace:* + version: link:../fake-openai '@statewalker/webrun-files-mem': specifier: ^0.10.0 version: 0.10.3 @@ -207,7 +256,7 @@ importers: version: 26.6.5 agents: specifier: 0.20.1 - version: 0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7) + version: 0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(ai@6.0.317(zod@4.6.7))(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7) esbuild: specifier: 0.28.2 version: 0.28.2 @@ -219,13 +268,246 @@ importers: version: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) vitest: specifier: 'catalog:' - version: 5.0.5(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + version: 5.0.5(@opentelemetry/api@1.10.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) wrangler: specifier: ^4.152.0 version: 4.153.0(@cloudflare/workers-types@5.20261026.1)(@types/node@26.6.5) packages: + '@ai-sdk/alibaba@1.0.17': + resolution: {integrity: sha512-ZbE+U5bWz2JBc5DERLowx5+TKbjGBE93LqKZAWvuEn7HOSQMraxFMZuc0ST335QZJAyfBOzh7m1mPQ+y7EaaoA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/amazon-bedrock@4.0.112': + resolution: {integrity: sha512-PsSh7a6qW+3kQXPs1kD4wDwuZby0t1PIaB6j/1aMKmPFJ5LxcIcULLMF/bjITLt5o/8lc0t6TXIwG0zlhH7uZw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/anthropic@3.0.77': + resolution: {integrity: sha512-ML8C2M1YvPA1ulEx4TiyF0k1xvC2ikEiPBIC1PPQ0a5xELUGrO2lAaEzsTEoJ+eCeDd8PSBuFJjs+r+9yIwQXA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/anthropic@3.0.81': + resolution: {integrity: sha512-B1JDd9Ugq9R5AgIaW3674lhGCMMYJcPUxnrZh8fzbGojgg4QvHFRv6eZahGQAUsmGHbcf74G9bdSBDLWQGY2GA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/anthropic@3.0.82': + resolution: {integrity: sha512-WKKou2wbhGGYV8PSALAPyV2YY4nfCqCPkyBzYtJtDA9yCcIFwsbtkTNgg7bqtLCVzeEsY7wwxRoCWy+EMfrw/A==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/azure@3.0.88': + resolution: {integrity: sha512-RRjZkB1lYplh8dpBarnvkl1j7sYLHsyXua7erL3oNcMK7fHcl4bPO5C7iQhD1O/DqD/zCceDifnege1s+8yEvw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/cerebras@2.0.93': + resolution: {integrity: sha512-hz6FnJ/iTNw/zM7kG384BLWZNVyqUJFtePopi30wEpdnKEBq1Pmlj8bWtSYtyPbymvD4OLRAo0g09sGWWQHZqg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/cohere@3.0.27': + resolution: {integrity: sha512-OqcCq2PiFY1dbK/0Ck45KuvE8jfdxRuuAE9Y5w46dAk6U+9vPOeg1CDcmR+ncqmrYrhRl3nmyDttyDahyjCzAw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/deepgram@2.0.68': + resolution: {integrity: sha512-TrnUGJiybvkNhy10XCva/RaQ+/+A0cm837eYT8CIB+DiKtnemS53lKlrU6yEm3LKty3g4YLGM6ULhXNr4B+LOw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/deepseek@2.0.47': + resolution: {integrity: sha512-MzcQ321JO8OY+TVLFI81A7cIIuoeLLxrLCDD+8C1E3Ro6UFyfMtRXo9bw9OhTMRSDMo6hgSDOo4Fekz8aJtQYQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/deepseek@2.0.77': + resolution: {integrity: sha512-Gpxzo8OEVMzT20/ZcQ9w7Se1eLDkzKBuF2ePoJs+O6Wlk+Jy+NXtoMuBEhTidswoMc77WgV34Ndawl+Z1D6d7Q==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/elevenlabs@2.0.69': + resolution: {integrity: sha512-RsRVYxWJVHsCSpeSFd+TITp3CsIahkNi2vN/nj0BQKYdXFONpUaUG91FD03eCAySX0Q5j+z+nin4QKzlr6IBqw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/fireworks@2.0.97': + resolution: {integrity: sha512-ot1cuaDtqoFSXw+Y1Ar162JAHqmf0n+MaVzLWoT457TnN0YNLFYXanIUuRqsFWfRBK6kr0hG8Kx1QGjiZv0j0A==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/gateway@3.0.104': + resolution: {integrity: sha512-ZKX5n74io8VIRlhIMSLWVlvT3sXC8Z7cZ9GHuWBWZDVi96+62AIsWuLGvMfcBA1STYuSoDrp6rIziZmvrTq0TA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/gateway@3.0.223': + resolution: {integrity: sha512-edH4CW5q3zFAw2+o9vkcafgT+Iomk/BJoA1IP9dmmm+z2vbAfCB01Vuml8zX2FF16cUJqwnRTt6DGjAFd6DGRg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google-vertex@4.0.128': + resolution: {integrity: sha512-jK8fixb4km2yfgvb9DUFQRpV/jiDB0v9gyxHoHfPydaQvz+CpAz8DTt1quyaM+Wg9G2R8Zo68CYmHbIkUqW2AA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google@3.0.139': + resolution: {integrity: sha512-k4FB6rtwQwIlYHHsVtVCJY2yR5l+HR0bODT5zm7pKpvVve1mLXUBOcE/5PYwAKF26cIBtVw3XGkAx36sgBn83g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google@3.0.73': + resolution: {integrity: sha512-o2MuIeyvZrFIeIbnbA8Thrr63irdyUBh0uWBZ2lY6yFeXuE/tcwyXF74bDKS4KvTu84uFpQfpbS/LXHGKKXz+g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/groq@3.0.79': + resolution: {integrity: sha512-dB9Od/4ZFFMSaRrPYSbBkBRrvIapDCGMT5rbwywOQ25BHlUBQxa+W4zmgfxxFCCkcePJFT7TCeS77/ZO6CYsUg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/mistral@3.0.51': + resolution: {integrity: sha512-83eXY6p0lUFhSuMvNDmTKDuMciK5XDAWDlNh5c0L80tKjmtCFRItA1MZHp4IKe1r7eK8Rb5nN7qtxqMLUFRIRw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@2.0.37': + resolution: {integrity: sha512-+POSFVcgiu47BK64dhsI6OpcDC0/VAE2ZSaXdXGNNhpC/ava++uSRJYks0k2bpfY0wwCTgpAWZsXn/dG2Yppiw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@2.0.41': + resolution: {integrity: sha512-kNAGINk71AlOXx10Dq/PXw4t/9XjdK8uxfpVElRwtSFMdeSiLVt58p9TPx4/FJD+hxZuVhvxYj9r42osxWq79g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@2.0.47': + resolution: {integrity: sha512-Enm5UlL0zUCrW3792opk5h7hRWxZOZzDe6eQYVFqX9LUOGGCe1h8MZWAGim765nwzgnjlpeYOsuzZmLtRsTPlg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@2.0.87': + resolution: {integrity: sha512-tge19iHFcU4r6QxlFmwIRU/ytd6RFjsXfMpEc9sLiS5+NnkUYLeh2mm4RzemdqrQS6uO0h0t4RD04CpbgjWXqw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai@3.0.134': + resolution: {integrity: sha512-ap2cpM+iodBiTeSQ1r6afoMfEwBs5Us2U71aJv7uT33+6xcZX82UT6COJpWolJKL6b9ymq1bUYM1AmwnIb+OqQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai@3.0.67': + resolution: {integrity: sha512-oAiGC9eWG7IgtdsdS74bOCnAAHarAfTJhWN9x5INwnWPekL802AvF+0I5DvLzIF1MIRmNw4N8mPSL/GUVbX9Mw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai@3.0.84': + resolution: {integrity: sha512-cmgbeJL0bbY0yTJH4/AdmP5E7MjWRL9G8UdhIi0JlV/So03o82ORJofW8OzwCZPTORVQblFbpZXYGDcUd9NdUQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/perplexity@3.0.26': + resolution: {integrity: sha512-dXzrVsLR5f6tr+U04jq4AXoRroGFBTvODnLgss0SWbzNjGGQg3XqtQ9j7rCLo6o8qbYGuAHvqUrIpUCuiscuFg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.21': + resolution: {integrity: sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.23': + resolution: {integrity: sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.27': + resolution: {integrity: sha512-ubkAJ+xODouwtmN1tYlvTPphH1hPOBfZaEQe8U7skGvFAnIRs9PPpsq57bC2+Ky/MB4yzhd6YOsxTAx9sGpazw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.38': + resolution: {integrity: sha512-/HHGmtKllqjg1OLc023v9w9kK3laW7Z6TzfZukYQWCsGBbzB9p60zTvvpXFVcs44NZBVXL3viOa1HRKUbeee8g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.40': + resolution: {integrity: sha512-OL5IrpUm9Y8Dwy+w/vvFwPotS6m52O9W0op2oXgXdCROMJIBalBI0oro6OIBYkPxvm5Xg02GSkoQN25RlR0bnw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.62': + resolution: {integrity: sha512-+FXkZ2e169zASBHP5HAakP0Iai3Eoa8zgh7bnuZExsek3N9HgGt/c7l1Oibdxb79vvsn5Mrg2Sjam80mR6bL8A==} + engines: {node: '>=18.17'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@3.0.10': + resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==} + engines: {node: '>=18'} + + '@ai-sdk/provider@3.0.14': + resolution: {integrity: sha512-5X1k57JBJ4H7H1QjX7CnJYAB1I19r/trVZTMcSms7/kLNZ8RaU4Nt2agcwZzv82Hfx6Q7/TOLU7agAKeFfc8cA==} + engines: {node: '>=18'} + + '@ai-sdk/provider@3.0.19': + resolution: {integrity: sha512-5lWq7zSfRaU5ylDESn3sDQjgGl2AI1vjZKO/6JY3aFW70ct4zcP1kN+ZUYOuTXr28fVsYbyu2YFhddLdIgQFZQ==} + engines: {node: '>=18'} + + '@ai-sdk/provider@3.0.8': + resolution: {integrity: sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==} + engines: {node: '>=18'} + + '@ai-sdk/vercel@2.0.39': + resolution: {integrity: sha512-8eu3ljJpkCTP4ppcyYB+NcBrkcBoSOFthCSgk5VnjaxnDaOJFaxnPwfddM7wx3RwMk2CiK1O61Px/LlqNc7QkQ==} + engines: {node: '>=18'} + deprecated: 'The v0 Model API has been removed, and @ai-sdk/vercel no longer works. Use the v0 API instead: https://v0.app/docs/api' + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/xai@3.0.146': + resolution: {integrity: sha512-oGzlkmT4shpHWPC8sbmPrTJgucP+sxuVf8/qEul+rZViGWHvXlCHibU54CDU5LgAFUIyy+yxnGH08RD3gii28g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@anthropic-ai/sdk@0.129.0': resolution: {integrity: sha512-MH7LB20kNpGLUpPTe2OG5XvL/KhX8HUO9XyBaFjgFk6TLS4Xjt0VPIuMKywe7POKKPslX+QxSlVok9e+8kG5Nw==} hasBin: true @@ -235,14 +517,56 @@ packages: zod: optional: true + '@anthropic-ai/sdk@0.71.2': + resolution: {integrity: sha512-TGNDEUuEstk/DKu0/TflXAEt+p+p/WhTlFzEnoosvbaDU2LTjm42igSdlL0VijrKpWejtOKxX0b8A7uc+XiSAQ==} + hasBin: true + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@anycable/core@0.9.2': + resolution: {integrity: sha512-x5ZXDcW/N4cxWl93CnbHs/u7qq4793jS2kNPWm+duPrXlrva+ml2ZGT7X9tuOBKzyIHf60zWCdIK7TUgMPAwXA==} + engines: {node: '>=18.0.0'} + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + '@aws-sdk/client-bedrock-runtime@3.1127.0': resolution: {integrity: sha512-IDl/lrPb90aH+pZFHGNDmgH9nAUQj5PlZH1sJ3w7RikctyjHSnY3oNjZhrLoaBoQn/rNK0zsP6OHEqEhj2tdLA==} engines: {node: '>=20.0.0'} + '@aws-sdk/client-cognito-identity@3.1057.0': + resolution: {integrity: sha512-5MliYkp2u0+2arTp5fZIaxl+xmm90LEKv/VeSxhfNQW4t0fvWJrNO429/jchWQenNoDRrOGE59VfbuZUfwFujg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.978.5': resolution: {integrity: sha512-ruI0AWqcrfL20XDS6SwZIJFPOBZ6N0ADa9nLzWlBhxk1aoUjbUX3JkTR9vEmk7o35XpAHi68ahZ4T6RE2U9XyA==} engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.978.6': + resolution: {integrity: sha512-ykF/MiYoM15dgZwF/WLgjJXVbAK2wU6vjPigeEnOHwyUJ0rdlraO5uekecKNVPkvOnz+oju/5zljViQs1nI1FQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-cognito-identity@3.972.76': + resolution: {integrity: sha512-p5RrwE/jGpCJ+JmXy6hv2ULpvLYIe2648tK29uKaCa5sM2NmaM7iCS9Z/ZG2jq6qCvNbdl/bBT1/AME+mAJaJw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.76': resolution: {integrity: sha512-YxmL1Ar7bV9ZkJvtv+lj+MF6le76NnZnbmgySyZuxpZaCv0/1lZ3KxKy6RIj1h9ui2hWnVjZxbmTMeO0y/NrQA==} engines: {node: '>=20.0.0'} @@ -275,6 +599,10 @@ packages: resolution: {integrity: sha512-LUo46IqPTJ4xKBsrLuoaxiv/D2GTBCcFDMD1y3jKIqPR/p7Rw14RJFZ0iRWftqZtyLPQX9JMGnSi3mBu4y/pNA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-providers@3.1057.0': + resolution: {integrity: sha512-rbrEHtz11g0kxsSkYr3fx2HABNNblp4AhB2MgPvJHgYOWfJ2eBviU7Mvoaef0PW8QH6lbZDfJcnM7eKvtvz3sw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/eventstream-handler-node@3.972.38': resolution: {integrity: sha512-K7vPKNstDlavHFZgbmcFdJOFIyowsevjddycRziRBbtXH/D9z+i9juCnH17liwSX9T8fJiDQzlEYkRtxkR+1vA==} engines: {node: '>=20.0.0'} @@ -291,6 +619,10 @@ packages: resolution: {integrity: sha512-nKb8qu4QsnpZTq/6JIXc72mzuzfh7BK4sUQkpQznPec2z4W7Ob2xYkcM4i5e1yGTBnbJVeFv/0sf3jcz85hclA==} engines: {node: '>=20.0.0'} + '@aws-sdk/nested-clients@3.997.51': + resolution: {integrity: sha512-DJK4iGIHWU8Jh8ODMvqFYcX9yGBMXV4tSZAvqlHF5EDd8hbmF3eFO9KIWOnA7wcQjPzEkyMMW1/FgZ9RU8oimQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/signature-v4-multi-region@3.996.49': resolution: {integrity: sha512-nvuAZNRrRRVCiARRKsYlQ0VnXiEQiq7vXPH+UA+LSo+kN3Djl9eo/V2r0udkw85PnsNshmv2Em1clld5M3j67w==} engines: {node: '>=20.0.0'} @@ -307,6 +639,10 @@ packages: resolution: {integrity: sha512-WQlhs6juByzWOzj5fwxOx0mPJaEqMcG/sDpl3Id61B3XhKE63xY+0QWcnG+sWR/sCfprmreyUo1lM7IKZmHMzw==} engines: {node: '>=20.0.0'} + '@aws-sdk/util-locate-window@3.965.10': + resolution: {integrity: sha512-ycwH6Zd2GhuSqdXX9ihbCjeGTB6xOJs+O3+Jb8/zDG9978XU80qs75dfkPJRMNKe5MvBZPuNeFpd4JZKPoUF4g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.41': resolution: {integrity: sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==} engines: {node: '>=20.0.0'} @@ -616,6 +952,51 @@ packages: resolution: {integrity: sha512-MLIfowwUYIY65jSjMX82paZOrX/NTvLk6D08h+3Jq42a99RzUOewzuCR0zOlPul3D6UBfddat76VT6LvsHEs1w==} engines: {node: '>=22.19.0'} + '@effect/opentelemetry@4.0.0-rc.112': + resolution: {integrity: sha512-OTRv1DxTHUmnakgJ6XVM8wVgF1KgZH4UXnOemwSLUwUjXO+RCikzF8oR/rlVmOGq81KtQzj1URM4M4nchlQOuQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <2.0.0' + '@opentelemetry/api-logs': '>=0.203.0 <0.300.0' + '@opentelemetry/resources': '>=2.0.0 <3.0.0' + '@opentelemetry/sdk-logs': '>=0.203.0 <0.300.0' + '@opentelemetry/sdk-metrics': '>=2.0.0 <3.0.0' + '@opentelemetry/sdk-trace-base': '>=2.0.0 <3.0.0' + '@opentelemetry/sdk-trace-node': '>=2.0.0 <3.0.0' + '@opentelemetry/sdk-trace-web': '>=2.0.0 <3.0.0' + '@opentelemetry/semantic-conventions': '>=1.33.0 <2.0.0' + effect: ^4.0.0-rc.112 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@opentelemetry/api-logs': + optional: true + '@opentelemetry/resources': + optional: true + '@opentelemetry/sdk-logs': + optional: true + '@opentelemetry/sdk-metrics': + optional: true + '@opentelemetry/sdk-trace-base': + optional: true + '@opentelemetry/sdk-trace-node': + optional: true + '@opentelemetry/sdk-trace-web': + optional: true + + '@effect/platform-node-shared@4.0.0-rc.112': + resolution: {integrity: sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + effect: ^4.0.0-rc.112 + + '@effect/platform-node@4.0.0-rc.112': + resolution: {integrity: sha512-/BMAcdNGQQskLmI0Zoa95KfTZkr9HV9N4NSxaSrusG6GeW6Ulp9KvZ+Rlaiw8lnOt43CXjFLdfll5/k5rxL4hQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + effect: ^4.0.0-rc.112 + redis: '>=5.0.0 <7.0.0' + '@emnapi/runtime@1.11.3': resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} @@ -775,6 +1156,63 @@ packages: cpu: [x64] os: [win32] + '@ff-labs/fff-bin-android-arm64@0.10.5': + resolution: {integrity: sha512-idn1m9ycwv0Dzz6ih4H8e/X1WpGF6kglUxqP78oYgoC2sgAdPtLxD6hIAZK13p8isK7H8EMwrMze/4lynEDcKQ==} + cpu: [arm64] + os: [android] + + '@ff-labs/fff-bin-darwin-arm64@0.10.5': + resolution: {integrity: sha512-tG0VSt6fs3C2/Y6NDp57YJVXGEnrJ4F/e5gDrFCbNeuwJe9LmcCKh6oHWUEZOaaymYT90kQmwuXZTvORP3G6Vw==} + cpu: [arm64] + os: [darwin] + + '@ff-labs/fff-bin-darwin-x64@0.10.5': + resolution: {integrity: sha512-pwdFJUB/oeO4S/SfmRDdE5ipbAMYoVtRMwTZ12Wn2H46PgNU5DWnSjHhUNTLuKmkQU/ZIJL5Sn9j/fzwuIzcoA==} + cpu: [x64] + os: [darwin] + + '@ff-labs/fff-bin-linux-arm64-gnu@0.10.5': + resolution: {integrity: sha512-prbY72gR+VPoSxl1InglwSwVHM0kErYMjUOpdvjQhS8eRdXYL3hTuYQv9L7fiB0mqaDzcwFa339uMr3p8ujDrw==} + cpu: [arm64] + os: [linux] + + '@ff-labs/fff-bin-linux-arm64-musl@0.10.5': + resolution: {integrity: sha512-MQN/CEKn4c4toooGCmZ6N8cP9mhgE4tnR6rr6a4k9JjH0xi05fYdG4+BabPkr+l/mDc01DsRpSKVNBmvoZ3IlQ==} + cpu: [arm64] + os: [linux] + + '@ff-labs/fff-bin-linux-x64-gnu@0.10.5': + resolution: {integrity: sha512-8NzFGGyqrFaCtb+SPTFd0xQGUlHCJMf0KYGwuca46IP37nN4OtDT1wnyZ9oaPDZ+2qqyxox10hCnqGlmj3PJzQ==} + cpu: [x64] + os: [linux] + + '@ff-labs/fff-bin-linux-x64-musl@0.10.5': + resolution: {integrity: sha512-mioRbn8aAW2Jmm4W0w3poePo65iSE+REfO+Jc0iqsjirImEy6pKt7dswj+7LSU6RPWwPsMb4POTMENwNLMlJww==} + cpu: [x64] + os: [linux] + + '@ff-labs/fff-bin-win32-arm64@0.10.5': + resolution: {integrity: sha512-GIZiea0AhuUDtJtXO2mGWs3wil1OR6lpLKOqXMW8EhHVHs8SB+xwzOgZ3Hg7YLEJm+Ui/2tFW/NLbqRuxpmtrQ==} + cpu: [arm64] + os: [win32] + + '@ff-labs/fff-bin-win32-x64@0.10.5': + resolution: {integrity: sha512-EvCWb7wLrtCvkziksAnTVxcGa0roaWNC978t4nG3ESKEty/Mvrj8kaLAzqWfuA2Xk+gTW+qisJYxa4FqFnqR0Q==} + cpu: [x64] + os: [win32] + + '@ff-labs/fff-bun@0.10.5': + resolution: {integrity: sha512-n4t5e4mzbEAXO6SyPHx8ajECGvfTZ/y4TNCqvKSwROpcTqfobaq2T+MdsfsKyA+j+B11NmpCVLjVhCTel8iB8Q==} + engines: {bun: '>=1.0.0'} + cpu: [x64, arm64] + os: [darwin, linux, win32, android] + + '@ff-labs/fff-node@0.10.5': + resolution: {integrity: sha512-O4KZoO9lZluTqdHUYgd23xpEX/u7G87qQTgUIgtJ4BFTh1x/p243/M6AU2HdSHYWK+vrMRAdDXDzeUW/9rjk3Q==} + engines: {node: '>=18.0.0'} + cpu: [x64, arm64] + os: [darwin, linux, win32, android] + '@flue/runtime@2.3.0': resolution: {integrity: sha512-Sb3Dix9PArIzwr7lmAZCr2csU7OUMHsEhIqYKCiqgldyt33u23k59CNoD947MLXpBaWXAz6CEd/Xv1LLI0cHYg==} engines: {node: '>=22.19.0'} @@ -788,6 +1226,10 @@ packages: peerDependencies: vite: ^8.0.0 + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} + engines: {node: ^20.17.0 || >=22.9.0} + '@google/genai@2.21.0': resolution: {integrity: sha512-+PDtco2/Z0ONdzCGekCoCT+O1VJS9xJQNN4XzQpXG/t3El/SWWMkCWlFRO1KmivOHPa4Q0VjUYu1HBKCZ/v33Q==} engines: {node: '>=20.0.0'} @@ -797,6 +1239,17 @@ packages: '@modelcontextprotocol/sdk': optional: true + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@hono/node-server@1.19.17': + resolution: {integrity: sha512-dSneS5qhiauZWGDCeK4o695Xd9nUNjviSZCMQrj10eetr8Uln1ucn6bbphOM6UynAMMtNIzZNSpL9vnASJwrPQ==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + '@hono/node-server@2.1.5': resolution: {integrity: sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q==} engines: {node: '>=20'} @@ -1091,6 +1544,13 @@ packages: cpu: [x64] os: [win32] + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1113,6 +1573,39 @@ packages: '@jspm/core@2.1.0': resolution: {integrity: sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==} + '@lydell/node-pty-darwin-arm64@1.2.0-beta.12': + resolution: {integrity: sha512-tqaifcY9Cr41SblO1+FLzh8oxxtkNhuW9Dhl22lKme9BreYvKvxEZcdPIXTuqkJc5tagOEC4QHShKmJjLyLXLQ==} + cpu: [arm64] + os: [darwin] + + '@lydell/node-pty-darwin-x64@1.2.0-beta.12': + resolution: {integrity: sha512-4LrS5pCJwqHKDVf1zS2gyNV0m4hKAXch+XZNhbZ6LY8uwVL8BhchzQBO40Os5anuRxRCWzHpw4Sp64Ie8q7E4Q==} + cpu: [x64] + os: [darwin] + + '@lydell/node-pty-linux-arm64@1.2.0-beta.12': + resolution: {integrity: sha512-Sx+A71x5BDGHt9ansfrtGxwq2VFVDWvJUAdlUL0Hv0qeiJUfts+hgopx+CgT4PSwahKjdEgtu0+FAfY9rICKRw==} + cpu: [arm64] + os: [linux] + + '@lydell/node-pty-linux-x64@1.2.0-beta.12': + resolution: {integrity: sha512-bJzs94njofYhGg/UDqW1nj0dtvvu+2OvxMY+RlLS1T17VgcktKoIR6PuenTwE5HJ/D6StCPADmXcT0nNsCKmIQ==} + cpu: [x64] + os: [linux] + + '@lydell/node-pty-win32-arm64@1.2.0-beta.12': + resolution: {integrity: sha512-p7POgjVEiFaBC3/y+AKuV1FzePCsJ6HmZDv2XK+jBZSfwP8+uBAw181ZiKYN1YuRa/XpmBGaWezcI8hZkbW++g==} + cpu: [arm64] + os: [win32] + + '@lydell/node-pty-win32-x64@1.2.0-beta.12': + resolution: {integrity: sha512-IDFa00g7qUDGUYgByrUBJtC+mOjYVt/8KYyWivCg5JjGOHbBUACUQZLl0jTWmnr+tld/UyTpX90a2PY6oTVtRw==} + cpu: [x64] + os: [win32] + + '@lydell/node-pty@1.2.0-beta.12': + resolution: {integrity: sha512-qIK890UwPupoj07osVvgOIa++1mxeHbcGry4PKRHhNVNs81V2SCG34eJr46GybiOmBtc8Sj5PB1/GGM5PL549g==} + '@microsoft/fetch-event-source@2.0.1': resolution: {integrity: sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==} @@ -1124,8 +1617,8 @@ packages: resolution: {integrity: sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==} engines: {node: '>=20'} - '@modelcontextprotocol/sdk@1.30.0': - resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} + '@modelcontextprotocol/sdk@1.29.0': + resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -1134,17 +1627,420 @@ packages: '@cfworker/json-schema': optional: true - '@modelcontextprotocol/server@2.0.0': - resolution: {integrity: sha512-YhHWdHfpFMQfd0prsEnxKeS3Qz3ytIGmsS0sth4KDjnacIT7hxk6hXHkJ9KysxlkvTM+WZAtQbbcUhdoP4Hvtw==} + '@modelcontextprotocol/sdk@1.30.0': + resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} + engines: {node: '>=18'} + peerDependencies: + '@cfworker/json-schema': ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@cfworker/json-schema': + optional: true + + '@modelcontextprotocol/server@2.0.0': + resolution: {integrity: sha512-YhHWdHfpFMQfd0prsEnxKeS3Qz3ytIGmsS0sth4KDjnacIT7hxk6hXHkJ9KysxlkvTM+WZAtQbbcUhdoP4Hvtw==} engines: {node: '>=20'} + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': + resolution: {integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==} + cpu: [arm64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': + resolution: {integrity: sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==} + cpu: [x64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': + resolution: {integrity: sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==} + cpu: [arm64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': + resolution: {integrity: sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==} + cpu: [arm] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': + resolution: {integrity: sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==} + cpu: [x64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': + resolution: {integrity: sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==} + cpu: [x64] + os: [win32] + '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@npmcli/agent@4.0.2': + resolution: {integrity: sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/arborist@9.4.0': + resolution: {integrity: sha512-4Bm8hNixJG/sii1PMnag0V9i/sGOX9VRzFrUiZMSBJpGlLR38f+Btl85d07G9GL56xO0l0OZjvrGNYsDYp0xKA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/config@10.8.1': + resolution: {integrity: sha512-MAYk9IlIGiyC0c9fnjdBSQfIFPZT0g1MfeSiD1UXTq2zJOLX55jS9/sETJHqw/7LN18JjITrhYfgCfapbmZHiQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/fs@5.0.0': + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/git@7.0.2': + resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/installed-package-contents@4.0.0': + resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + '@npmcli/map-workspaces@5.0.3': + resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/metavuln-calculator@9.0.3': + resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/name-from-folder@4.0.0': + resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/node-gyp@5.0.0': + resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/package-json@7.0.5': + resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/promise-spawn@9.0.2': + resolution: {integrity: sha512-h7b1j0egrruBm/32eVA6/zMw5VJxxaB3vT+uVGGQ4SAAMrQVFHNuzL4+EAXn66j+huj0jApINc1fW3fC+kVoeA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/query@5.0.0': + resolution: {integrity: sha512-8TZWfTQOsODpLqo9SVhVjHovmKXNpevHU0gO9e+y4V4fRIOneiXy0u0sMP9LmS71XivrEWfZWg50ReH4WRT4aQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/redact@4.0.0': + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/run-script@10.0.4': + resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@opencode-ai/ai@0.0.0-dev-18697': + resolution: {integrity: sha512-nLdmx8V7I9lBWYiFUA7ge/pS5uip+9ljQNyVkoy6LJM/RmPweadAhrlHc9icd8m2f2DCyhNmXlxYQ0zYDGhdHA==} + + '@opencode-ai/client@0.0.0-dev-18697': + resolution: {integrity: sha512-CuggKnv12kk/1WhSeb0AUQ81b7nN1pnEGZz3TML9IAJgIOqWsbIfDkpo7XdtPmP0yMWyOiPkZaxFr2E6exsHfA==} + peerDependencies: + effect: 4.0.0-rc.112 + solid-js: '>=1.9.0' + peerDependenciesMeta: + effect: + optional: true + solid-js: + optional: true + + '@opencode-ai/codemode@0.0.0-dev-18697': + resolution: {integrity: sha512-mbG8ZfMBxywBufgO+OJZUkPPI2P2fmpqgAK9HLXd5Zx/Bf19do1gH+VMwxF46xBiohJaNf39+ixfxsb9+8cZow==} + + '@opencode-ai/core@0.0.0-dev-18697': + resolution: {integrity: sha512-B2PF4H3BbI5cGNi24l+yr9h2mqFBZfeURYm3dcQCYETIPPGmmHSfMUkkzTjloGt2y8an6EorqNYYBRiQBSwG1Q==} + + '@opencode-ai/plugin@0.0.0-dev-18697': + resolution: {integrity: sha512-dfAQQScdqh49izw6VJMzd+JAxUkDH/EWGemLa0o+kjQkfX74vlXmWCaeH7wXUVVoxEvCcxXFaA0zXT8MtL1dSA==} + peerDependencies: + '@opencode-ai/theme': 0.0.0-dev-18697 + '@opentui/core': '>=0.5.9' + '@opentui/solid': '>=0.5.9' + solid-js: '>=1.9.0' + peerDependenciesMeta: + '@opencode-ai/theme': + optional: true + '@opentui/core': + optional: true + '@opentui/solid': + optional: true + solid-js: + optional: true + + '@opencode-ai/protocol@0.0.0-dev-18697': + resolution: {integrity: sha512-AYiuuhIXmwnTSb3bX3MdC7G3Q1GRaCSgYb0YBoMK7JLUPk03Bkpvm6zzsXsiGAf/IjKPynw7QE43MKXC0nSE8g==} + + '@opencode-ai/pty-darwin-arm64@0.1.13': + resolution: {integrity: sha512-fVtQZqVLBuJx/aB+5ojfmQifS1KMc9gxlxpFQ6bxEFU8tn8xHQTiFPaNroZgOtaw7I4ceGyx/eXieK1wp68yAA==} + cpu: [arm64] + os: [darwin] + + '@opencode-ai/pty-darwin-x64@0.1.13': + resolution: {integrity: sha512-b/tAEm0hCMXraPM9cxR8Rg7X1UBZInRTaxWAS4Ht9eH1nWj1rANOLvHWiWX/vVh5TB0Ubg8bWPu4B0nZkEHROQ==} + cpu: [x64] + os: [darwin] + + '@opencode-ai/pty-linux-arm64-gnu@0.1.13': + resolution: {integrity: sha512-I124aSYBBjpGZnYExHfIajkvVK1FiK+//OJBGdqqFp5pas2Oruq4O8tv+pMoxomZIYh2ce/QhOOYLHRwXsthTg==} + cpu: [arm64] + os: [linux] + + '@opencode-ai/pty-linux-arm64-musl@0.1.13': + resolution: {integrity: sha512-feWsfKpaDytGJzutoK43GqQwVghG2vHZt6BE/ydPZNuqIrySQ/6JfliUAMwn5BWs/Ky7ouSwKHCyAVeukusSvg==} + cpu: [arm64] + os: [linux] + + '@opencode-ai/pty-linux-x64-gnu@0.1.13': + resolution: {integrity: sha512-jliNgsevGuxfIeX7eyzjHhrJkF8uEUPnDLbF2v16uv69FhEHrraf7jyWkxazMP6rNvn2CGtwMMc4BXPS5pzjhg==} + cpu: [x64] + os: [linux] + + '@opencode-ai/pty-linux-x64-musl@0.1.13': + resolution: {integrity: sha512-rXDpidW66gz2b2M/NbUN8ZKmAxaJcASnuHATeXevlrFdiPUv8uJwvkRd6Pla1fp01Q65MkBmgRa7Q9c+H1PlzA==} + cpu: [x64] + os: [linux] + + '@opencode-ai/pty@0.1.13': + resolution: {integrity: sha512-WPCN8h8HaZhhUcrMG0zu+4D9vco0EZiEg/gCF1K3JPRN6UsHMiXq1HVIy5IlyfcoyjfViRmQmXYE4AuU3laBjA==} + hasBin: true + + '@opencode-ai/schema@0.0.0-dev-18697': + resolution: {integrity: sha512-boGidY1RkDfnAnKW2dzKIr6XiJ3E9PADsLrHeAfyS2PZV6TLTfALG8z0Tjat53TUPv+rAMKveGzTGSkrHsnFeQ==} + + '@opencode-ai/sdk@0.0.0-dev-18697': + resolution: {integrity: sha512-gbc3Z4aYU4FKOPPd+Acpi9NTRlzLBNP5x1DRxPsQHRqA9u0LjNed7ljri26FYk9MpzXHefBqnrYZL/zQxvWIcw==} + + '@opencode-ai/server@0.0.0-dev-18697': + resolution: {integrity: sha512-CzdLjSEI2mTRe+pgEJEizhX2CAE8pyDc2Xpd+A1I+Fr6DR4lwkD8zEBfHknWsdRrqGojX8OjhoN44NZrM3xvdQ==} + + '@opencode-ai/simulation@0.0.0-dev-18697': + resolution: {integrity: sha512-FfIUNjQUy79CMgoP+3DKwD3R+jaQpKccRIT15gg6T3KU48cD6FeGcagzIkj6zruWJxjsXDPhcZ6O+BgP49xoWA==} + + '@opencode-ai/util@0.0.0-dev-18697': + resolution: {integrity: sha512-zfHF23T4JGR4W0gtsQeIz0owVvXWu4kOBQD4p1D21gyNRCBM2l9/fDadyrsw/R5n+MKT+BdLmzWnClWmNAmcAw==} + + '@openrouter/ai-sdk-provider@2.10.0': + resolution: {integrity: sha512-FMsAEjLUt5pWuRE2LDC/LCvVrFjLlrEzUITH5+5SZtfq7KZ2wrOHjQVxzz92sju8S9ltpzW87CLW8/b0oBXVCw==} + engines: {node: '>=18'} + peerDependencies: + ai: ^6.0.0 + zod: ^3.25.0 || ^4.0.0 + + '@opentelemetry/api-logs@0.214.0': + resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.10.0': + resolution: {integrity: sha512-lMkyes8iHrG+mk6WH7X70MdCLI2RS0FwNBY1PyQ8UemaijE2m5mv5A0Niy3HtbYTFrgkUEQjFMXmSAk2hQDuPQ==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.6.1': + resolution: {integrity: sha512-XHzhwRNkBpeP8Fs/qjGrAf9r9PRv67wkJQ/7ZPaBQQ68DYlTBBx5MF9LvPx7mhuXcDessKK2b+DcxqwpgkcivQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.6.1': + resolution: {integrity: sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-trace-otlp-http@0.214.0': + resolution: {integrity: sha512-kIN8nTBMgV2hXzV/a20BCFilPZdAIMYYJGSgfMMRm/Xa+07y5hRDS2Vm12A/z8Cdu3Sq++ZvJfElokX2rkgGgw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.214.0': + resolution: {integrity: sha512-u1Gdv0/E9wP+apqWf7Wv2npXmgJtxsW2XL0TEv9FZloTZRuMBKmu8cYVXwS4Hm3q/f/3FuCnPTgiwYvIqRSpRg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.214.0': + resolution: {integrity: sha512-DSaYcuBRh6uozfsWN3R8HsN0yDhCuWP7tOFdkUOVaWD1KVJg8m4qiLUsg/tNhTLS9HUYUcwNpwL2eroLtsZZ/w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resources@2.6.1': + resolution: {integrity: sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.214.0': + resolution: {integrity: sha512-zf6acnScjhsaBUU22zXZ/sLWim1dfhUAbGXdMmHmNG3LfBnQ3DKsOCITb2IZwoUsNNMTogqFKBnlIPPftUgGwA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.6.1': + resolution: {integrity: sha512-9t9hJHX15meBy2NmTJxL+NJfXmnausR2xUDvE19XQce0Qi/GBtDGamU8nS1RMbdgDmhgpm3VaOu2+fiS/SfTpQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.6.1': + resolution: {integrity: sha512-r86ut4T1e8vNwB35CqCcKd45yzqH6/6Wzvpk2/cZB8PsPLlZFTvrh8yfOS3CYZYcUmAx4hHTZJ8AO8Dj8nrdhw==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.6.1': + resolution: {integrity: sha512-Hh2i4FwHWRFhnO2Q/p6svMxy8MPsNCG0uuzUY3glqm0rwM0nQvbTO1dXSp9OqQoTKXcQzaz9q1f65fsurmOhNw==} + engines: {node: ^18.19.0 || >=20.6.0} + deprecated: Use @opentelemetry/sdk-trace package + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + + '@opentui/core-darwin-arm64@0.5.9': + resolution: {integrity: sha512-YcpWGD8GwoO3UYYw0kLDI4qof3ElSwWW5M3fNG+Kw87BSjCa5frZqak5xebdZ/XU5Xsk+BjgbBsxbzo9yrIjZQ==} + cpu: [arm64] + os: [darwin] + + '@opentui/core-darwin-x64@0.5.9': + resolution: {integrity: sha512-xgdZwgcwlDCqi0WPCS1d0GVSd+oKDFX+UVE1ZPei8u8W3pirXGSExxVHNku7QbEYCRvpCeMtoKIa6xN9cVTsoQ==} + cpu: [x64] + os: [darwin] + + '@opentui/core-linux-arm64-musl@0.5.9': + resolution: {integrity: sha512-A7GW4NCTInj2vy3X2gVO2Sm8jllgdLxwPdOklPqyl+xqivQtyG9qwS5YXoCk9fBJt10ORhYKETEjYEnIE5xvMQ==} + cpu: [arm64] + os: [linux] + + '@opentui/core-linux-arm64@0.5.9': + resolution: {integrity: sha512-vHBiJp69wMaL+fRMDpnXCCIpPyQRPZEWCWBatnblUUGIWUseqeQlaPow6ljHSbgAd/GjygAf4tFCyTqNT2ezZA==} + cpu: [arm64] + os: [linux] + + '@opentui/core-linux-x64-musl@0.5.9': + resolution: {integrity: sha512-J4wQs1OMPZ4hR93Op1C/BLFmIta2mUJm4M7djevlgcWcal4RSNO4V8QvUXfogWGci+ADZqEmX2osQQDY5NVJpw==} + cpu: [x64] + os: [linux] + + '@opentui/core-linux-x64@0.5.9': + resolution: {integrity: sha512-rdw7QVopVHwj6fMrJc7hPGVaYg2V5NBlW3MUfkrQBlUlo/87OC4aYDAh5oRIL1CIFD9LjDdh7hwmUNbn/K9Pcw==} + cpu: [x64] + os: [linux] + + '@opentui/core-win32-arm64@0.5.9': + resolution: {integrity: sha512-OnmEsGLWwsHrm6sTsWSSesu4LGjSV1JNWqCsEItbuitWaqH6rXdSahSc5jMFsS57bZxUyaRz01yAqiZzUSXnVQ==} + cpu: [arm64] + os: [win32] + + '@opentui/core-win32-x64@0.5.9': + resolution: {integrity: sha512-/CnAIfKL7+ZeGLyZoXV5zS71Nd8Zn97RUir2DAIY05MJozmfg5s7XOAdUNYuK1cg5mbwlAuqeAsfbuWUAEe15g==} + cpu: [x64] + os: [win32] + + '@opentui/core@0.5.9': + resolution: {integrity: sha512-d0EWYyp6djitu1N1R0o75NrLl4TxY3oJEmRNrX9vSKKC5/jriGQdSV6lJmwiB77O0cxtBnPzWztAV79vA1J2fA==} + peerDependencies: + web-tree-sitter: 0.25.10 + '@oxc-project/types@0.155.0': resolution: {integrity: sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==} + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + '@playwright/test@1.64.1': resolution: {integrity: sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==} engines: {node: '>=20'} @@ -1186,6 +2082,42 @@ packages: '@protobufjs/utf8@1.1.2': resolution: {integrity: sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==} + '@redis/bloom@6.3.0': + resolution: {integrity: sha512-NQ5poYpZr0jv6zazN1cy6JY5kIipKFZ3R9GTL4kOUTX3a9YAfY29U8bsE4lWhVQEM+G4V0BXVC57mubIdDijeA==} + engines: {node: '>= 20.0.0'} + peerDependencies: + '@redis/client': ^6.3.0 + + '@redis/client@6.3.0': + resolution: {integrity: sha512-fHrjwGCBvAANGi+TuRuwKi83sIOzgHr8eh+Uf48w3fSX7Hhrz174NrWqfJhAC2vnN0d/tfaZpdr6+o6JC3QHwg==} + engines: {node: '>= 20.0.0'} + peerDependencies: + '@node-rs/xxhash': ^1.1.0 + '@opentelemetry/api': '>=1 <2' + peerDependenciesMeta: + '@node-rs/xxhash': + optional: true + '@opentelemetry/api': + optional: true + + '@redis/json@6.3.0': + resolution: {integrity: sha512-yt6vRfPBXtW/3qm53cF81TSQpLMjWdW4/2E9WQ2GgbvsKkuCKCFQIcMiKlil1ZMnezK+IQuS795xKU5psbaegw==} + engines: {node: '>= 20.0.0'} + peerDependencies: + '@redis/client': ^6.3.0 + + '@redis/search@6.3.0': + resolution: {integrity: sha512-RPXAZmKjZZG7Tm7m1w9keFdXzbL91PiSHQBfQRe9xwW40jNsTRbG0FwhIz4QlHPU4gKDAsCy8IQHj4yZl4H9rw==} + engines: {node: '>= 20.0.0'} + peerDependencies: + '@redis/client': ^6.3.0 + + '@redis/time-series@6.3.0': + resolution: {integrity: sha512-+fJOB8mN1z5WRakCJNh5lVdz1KqvHGSOistsKeitD24QsCtPwyRQXWC0iq6T/i/ubLE/YcguZqPm8F598MKk4A==} + engines: {node: '>= 20.0.0'} + peerDependencies: + '@redis/client': ^6.3.0 + '@rolldown/binding-android-arm-eabi@1.2.15': resolution: {integrity: sha512-aLcgK9gIJ3YRvrrtfSBbRa27F5WrpiTaPulnFpsHPxpUHgFlSgnU4854MHwoRGEBhfRJDWCS2WQ7lIjskE9Olw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1296,6 +2228,33 @@ packages: '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/core@3.2.1': + resolution: {integrity: sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/protobuf-specs@0.5.2': + resolution: {integrity: sha512-SQqvFMt4V78fdjcDdYX6HbiVSOR4QK3ZgwCa2KOsopAgPIHy1rU5UDUmzLl02r5oyyaYcYHR1hpwDRk/yUe+Mw==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/verify@3.1.1': + resolution: {integrity: sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@silvia-odwyer/photon-node@0.3.4': + resolution: {integrity: sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==} + '@sindresorhus/is@7.2.0': resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} engines: {node: '>=18'} @@ -1308,14 +2267,30 @@ packages: resolution: {integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==} engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@4.2.14': + resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.5.2': + resolution: {integrity: sha512-u4EAkaviMcQYlorFSnxFUgF/Dnbgiu2TzGmqOU4h3CL4MbvrYyNCXpFkcBwvAEU11EvspKX2zzS2uX7q+43VdQ==} + engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.8.0': resolution: {integrity: sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==} engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + '@smithy/node-http-handler@4.12.1': resolution: {integrity: sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.13.0': + resolution: {integrity: sha512-/GGcPoNJ2nzGytdAanpbx7mpp9Coa8LP+/Rpmbktr8YeLuIXs9B0SEz+X3AeonHdyzOIFJdKbN7jOZ+Tj+pMGw==} + engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.7.4': resolution: {integrity: sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==} engines: {node: '>=18.0.0'} @@ -1324,6 +2299,33 @@ packages: resolution: {integrity: sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==} engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.5.2': + resolution: {integrity: sha512-nxu3SgmAw9JXT2CtkU0m/XNLWpP9MsaBx1zAGAypCbYj15tIFlmcYwpF+Oh18le83d+IM9PT7ENdXnE4C+d5mA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.5.2': + resolution: {integrity: sha512-iq+cW3mAb7vfcxEEpYi3zXKpDtbrIFyanWjQl4zBq4seWD4OSxXDWSfespZxenX6aEaighn+NR3u1nU1DSvs3w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.2.2': + resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@4.5.2': + resolution: {integrity: sha512-7wNWV7SugHpcMA7uzEawJNpE0GrasXM7a9E+1+Wm6NxVuDClESac/AKt+G7jMZNUz5vBLWqKlqVV7Sv7AtUr6Q==} + engines: {node: '>=18.0.0'} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@sparticuz/chromium@153.0.0': resolution: {integrity: sha512-jiGWqSvPMdu4+P9TilYqAR7yEGPEHINx+lCvE/NqNO/EHYzF/x1hUiI5T6ioVIt7dEy7n88byyT0vk+dnsgQwA==} engines: {node: ^22.17.0 || >=24.0.0} @@ -1338,6 +2340,9 @@ packages: '@stablelib/base64@1.0.1': resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@statewalker/webrun-files-browser@0.10.2': resolution: {integrity: sha512-2Fq90Q2YYPcWpvmJed6vc81OmxcqpDXITO0V1ntFEN2UMimeiebwFnMBUbgwac1m/rQoPTMNdN0ME1wcJcEKrA==} @@ -1372,6 +2377,14 @@ packages: '@statewalker/webrun-streams@0.2.2': resolution: {integrity: sha512-1MIkezOoKBh8M7lk7MORjzvN+qbG4UCJnaf3oSM26vqiFg0BLdUaGpVbH7hfrPiotBbAi7PlxUWFeej89RYNBg==} + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} + '@turbo/darwin-64@2.11.10': resolution: {integrity: sha512-By4idRap5+nLnMuRzLB4qkOPRlvNdyY1ne4VJYDyUoUB11H94k7uif9mbe3JT8JSNXs1D68uMcBj6hJ/jMQRvA==} cpu: [x64] @@ -1551,6 +2564,10 @@ packages: peerDependencies: valibot: ^1.5.0 + '@vercel/oidc@3.2.0': + resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} + engines: {node: '>= 20'} + '@vitest/mocker@5.0.5': resolution: {integrity: sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==} peerDependencies: @@ -1565,27 +2582,102 @@ packages: '@vitest/spy@5.0.5': resolution: {integrity: sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==} - accepts@2.0.0: - resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} - engines: {node: '>= 0.6'} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + '@yuuang/ffi-rs-android-arm64@1.3.7': + resolution: {integrity: sha512-t6Wx3Xll6c07Nuk0k3xnZsxKFxlshm92i0U/BiTHc6kQbvu+fMJF+gKsj4yEj886jH51CM3EqZT9Xdhq9CdUVw==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [android] - acorn-walk@8.3.5: - resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} - engines: {node: '>=0.4.0'} + '@yuuang/ffi-rs-darwin-arm64@1.3.7': + resolution: {integrity: sha512-OueBlUFBT9IwD9pQnoYs0UszRBEySskfrEPXXfvKfGjL/DXnfn6kUheQ3oIP6sSmshVGNQUwrTCPo6feAa4QjA==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [darwin] - acorn@8.19.0: - resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==} - engines: {node: '>=0.4.0'} - hasBin: true + '@yuuang/ffi-rs-darwin-x64@1.3.7': + resolution: {integrity: sha512-x4mxXOKwSgwYx6OBAKrW+Ocp8um2KoPpUwaD0Z2tmR6EekoRvFGN7s/eEK1avqCxcsLN7/MzGOnCCFyGpOVfPA==} + engines: {node: '>= 12'} + cpu: [x64] + os: [darwin] - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + '@yuuang/ffi-rs-linux-arm-gnueabihf@1.3.7': + resolution: {integrity: sha512-9r//Z022QYVoIAY458Dpk8HWkisk/y4NJC3d52RlkdsLD+9p0zn0cKKSoMF/xUsOWDFSmOf+cwU/Xadi/wxFMQ==} + engines: {node: '>= 12'} + cpu: [arm] + os: [linux] - agent-base@9.0.0: + '@yuuang/ffi-rs-linux-arm64-gnu@1.3.7': + resolution: {integrity: sha512-nrW4MlFlyQInfxTsI5wtcIpbV4KlHLWo2BCk4CHIETlUT+PUspNFqDg+Byy7My3hpCZlXp0WsMVP/3N0LlybNw==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [linux] + + '@yuuang/ffi-rs-linux-arm64-musl@1.3.7': + resolution: {integrity: sha512-eLLx4P8DzNnuPif19nAvKPaf88lSf6KFbDetH3nAIRZvI495h0jigN835Ayr7uAADssohGfO9MPMH33DXmFErA==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [linux] + + '@yuuang/ffi-rs-linux-x64-gnu@1.3.7': + resolution: {integrity: sha512-upEz1Q98T51x2In872fsjgHCJbE3e8r9JxhJD+5NvSMk6BpieYWRodTbsMxV6oKWmfl12loKwF2j4OBSWKl0lA==} + engines: {node: '>= 12'} + cpu: [x64] + os: [linux] + + '@yuuang/ffi-rs-linux-x64-musl@1.3.7': + resolution: {integrity: sha512-YOcOkIwVvIhpwuGJ428h15vpE0KnT3teFG0g2J31FrBxrVh9IH4HeTGXjelI3l9SI5gyiZDnD4PQnQ1U6oqTcA==} + engines: {node: '>= 12'} + cpu: [x64] + os: [linux] + + '@yuuang/ffi-rs-win32-arm64-msvc@1.3.7': + resolution: {integrity: sha512-ZfYzLV1w7Mhzh9XRScEMpw9oazIEiwO+0+TYHHRL882d5oD0Q99YikmRhdifsoHCCQefKmWF/4BXCeFkzg8NFA==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [win32] + + '@yuuang/ffi-rs-win32-ia32-msvc@1.3.7': + resolution: {integrity: sha512-ifYz+f+giKpT39lKWDru+om6QnA9J7J953ns60xHgB46ESZvPd/Y2W5+PesRNC9U+vnFEiLZ9CNC+R3fBWC1pg==} + engines: {node: '>= 12'} + cpu: [x64, ia32] + os: [win32] + + '@yuuang/ffi-rs-win32-x64-msvc@1.3.7': + resolution: {integrity: sha512-H3s4wOLtZtKtmuPjUNE+bhnSKxxpXcuxG70jRC8dUMHqIm5iCvdoZ4XYDeq7/uUYlySerXFmRL4dAVCX/TUNTg==} + engines: {node: '>= 12'} + cpu: [x64] + os: [win32] + + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.19.0: + resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + agent-base@9.0.0: resolution: {integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==} engines: {node: '>= 20'} @@ -1627,6 +2719,23 @@ packages: vite: optional: true + ai-gateway-provider@3.1.2: + resolution: {integrity: sha512-krGNnJSoO/gJ7Hbe5nQDlsBpDUGIBGtMQTRUaW7s1MylsfvLduba0TLWzQaGtOmNRkP0pGhtGlwsnS6FNQMlyw==} + deprecated: |- + Deprecated. Use createAI from agents/models/ai-sdk: + https://developers.cloudflare.com/agents/models/ai-sdk/ + peerDependencies: + '@ai-sdk/openai-compatible': ^2.0.0 + '@ai-sdk/provider': ^3.0.0 + '@ai-sdk/provider-utils': ^4.0.0 + ai: ^6.0.0 + + ai@6.0.317: + resolution: {integrity: sha512-tcaVx6LAyn3ren5cMmThHVbOxQCwfCXzjrLU4GJakJM9D4qAn+oJiLXwRFqluD44jIiFNg0ckfDM/fXsfG0yMQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -1649,6 +2758,9 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@3.0.4: resolution: {integrity: sha512-fwWK3Zq22l4XJJjx5mcBHGikIk+hJqO+32dPm0Jur7+rtG5x1scOjSfdT9ZKeWHPpsya/l0HHK4tDImBkTrtvA==} @@ -1663,6 +2775,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws4fetch@1.0.20: + resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} + b4a@1.9.0: resolution: {integrity: sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==} peerDependencies: @@ -1671,6 +2786,10 @@ packages: react-native-b4a: optional: true + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + bare-events@2.9.2: resolution: {integrity: sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==} peerDependencies: @@ -1719,6 +2838,10 @@ packages: bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + bin-links@6.0.3: + resolution: {integrity: sha512-Qg5FD7/YSReWJB1zaM8VIi1l4O637JKK/WPaF/JzJGy/9FcMDWtSklF0dOX5S9X2OMrPGhifIHIKuwtHG0IGFg==} + engines: {node: ^20.17.0 || >=22.9.0} + blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} @@ -1729,6 +2852,14 @@ packages: bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + broker-factory@3.1.15: resolution: {integrity: sha512-ko+aWvgNuP49meGrdjUu7rC+Y+Wai3cCPxP3xWwHsHfehFjOh5ZQM2yC4gEB2UddeZ/YXhm0K1eG/L6fxym2Og==} @@ -1743,10 +2874,23 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bun-ffi-structs@0.3.1: + resolution: {integrity: sha512-3gM7PpVWLyrwxWjcilSiGuhWanhZivvo6l0u573NziPH6f/gwk6McbaYgn7oJWov6pKGRTDbrg94W5DcJsKTtQ==} + peerDependencies: + typescript: ^5 + + bun-pty@0.4.8: + resolution: {integrity: sha512-rO70Mrbr13+jxHHHu2YBkk2pNqrJE5cJn29WE++PUr+GFA0hq/VgtQPZANJ8dJo6d7XImvBk37Innt8GM7O28w==} + engines: {bun: '>=1.0.0'} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} + engines: {node: ^20.17.0 || >=22.9.0} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -1766,6 +2910,14 @@ packages: resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} engines: {node: '>=18'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + cjs-module-lexer@2.3.0: resolution: {integrity: sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==} @@ -1773,10 +2925,18 @@ packages: resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} engines: {node: '>=20'} + cmd-shim@8.0.0: + resolution: {integrity: sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==} + engines: {node: ^20.17.0 || >=22.9.0} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + common-ancestor-path@2.0.0: + resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} + engines: {node: '>= 18'} + content-disposition@2.0.1: resolution: {integrity: sha512-e+H0ZXHSWYrENhQzw1LPuP4oF5MzVKmDU6d3hxlvaPEYLLg62MxtQNPRx4SYSuYJSBUgnQIG4HIN2tEtNv7Dog==} engines: {node: '>=18'} @@ -1815,10 +2975,18 @@ packages: resolution: {integrity: sha512-BoZaseYGXOo5j5HUwTaegIog3JJbuH4BbrY9A1ArLjXpy+RWb3mV28F/9Gv1dDA7E2L8kngWva4NWisnLTyfgQ==} engines: {node: '>=20'} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -1844,10 +3012,185 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + engines: {node: '>=0.3.1'} + + diff@9.0.0: + resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} + engines: {node: '>=0.3.1'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + drizzle-orm@1.0.0-rc.5-169397b: + resolution: {integrity: sha512-xf5TudQhFplMMzjwgmMY5f64Sqbv4iwXxdTHBHqvLMt+SHyY8rAYhzNLQchEkDxiqMclTS/txPEOg5pdQy0Tcw==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=4' + '@drizzle-team/minipg': '>=0.3.2' + '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-pg': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-node': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-wasm': '>=4.0.0-beta.105 || >=4.0.0' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.10.0' + '@op-engineering/op-sqlite': '>=17' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1.13' + '@sinclair/typebox': '>=0.34.8' + '@sqlitecloud/drivers': '>=1.0.653' + '@tidbcloud/serverless': '*' + '@tursodatabase/database': '>=0.7.1' + '@tursodatabase/database-common': '>=0.7.1' + '@tursodatabase/database-wasm': '>=0.7.1' + '@tursodatabase/serverless': '>=1.4.0' + '@tursodatabase/sync': '>=0.7.1' + '@types/better-sqlite3': '*' + '@types/mssql': ^9.1.4 + '@types/pg': '*' + '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + arktype: '>=2.0.0' + better-sqlite3: '>=9.3.0' + bun-types: '*' + effect: '>=4.0.0-beta.105 || >=4.0.0' + expo-sqlite: '>=14.0.0' + mssql: ^11.0.1 + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + sql.js: '>=1' + sqlite3: '>=5' + typebox: '>=1.2.0' + valibot: '>=1.0.0-beta.7' + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@drizzle-team/minipg': + optional: true + '@effect/sql-d1': + optional: true + '@effect/sql-libsql': + optional: true + '@effect/sql-mysql2': + optional: true + '@effect/sql-pg': + optional: true + '@effect/sql-pglite': + optional: true + '@effect/sql-sqlite-bun': + optional: true + '@effect/sql-sqlite-do': + optional: true + '@effect/sql-sqlite-node': + optional: true + '@effect/sql-sqlite-wasm': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@sinclair/typebox': + optional: true + '@sqlitecloud/drivers': + optional: true + '@tidbcloud/serverless': + optional: true + '@tursodatabase/database': + optional: true + '@tursodatabase/database-common': + optional: true + '@tursodatabase/database-wasm': + optional: true + '@tursodatabase/serverless': + optional: true + '@tursodatabase/sync': + optional: true + '@types/better-sqlite3': + optional: true + '@types/mssql': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@upstash/redis': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + arktype: + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + effect: + optional: true + expo-sqlite: + optional: true + mssql: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + typebox: + optional: true + valibot: + optional: true + zod: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1858,6 +3201,9 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + effect@4.0.0-rc.112: + resolution: {integrity: sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==} + electron-to-chromium@1.5.464: resolution: {integrity: sha512-nRa65aFge40viPAKxMKULIY8tcXKwKboJWNn4RoKwyWXJ6SP7BnrDGKUTzc64818jIciH0PK7LSF8QzZes19GA==} @@ -1875,6 +3221,21 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + engine.io-client@6.6.7: + resolution: {integrity: sha512-GyAvmPA7gnRCpDQbYACAy79Lg4ewevrmaPzySZz0OVvgyZc3gEfLLqPTYk8wVBScjOEpM9ZO4KryyFpVItjGEA==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -1905,6 +3266,11 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -1934,6 +3300,9 @@ packages: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + express-rate-limit@8.7.1: resolution: {integrity: sha512-2FXbqkygil3mZiXzEtM0IjE/UBmBNot0J1GEVrJT4JbrvwOSoEtqtO+wHbiMQELWe1eNvHoYRg2dkjOid+6JkA==} engines: {node: '>= 16'} @@ -1944,9 +3313,17 @@ packages: resolution: {integrity: sha512-qCqy1xSoaugxOD4IVHb1ZWdkvCF2W3aE2okKouWj8VwJ+ztskSiXoBnCSJqfKT+cVPJhuJqe9YLbY425+Zh00g==} engines: {node: '>= 18'} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + fast-check@4.10.2: + resolution: {integrity: sha512-iK2f+YrcmoeGqk6fA0ea2bptcu/itMIm4NfEozq6N25+aG6h7s5HZbB/k1aV7b5w5sFLMCbbtRUsTVR+BgC3xw==} + engines: {node: '>=12.17.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1976,9 +3353,16 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + ffi-rs@1.3.7: + resolution: {integrity: sha512-5MMZQS2t/6f/ec3sx0f51gBcKGZPGfolPAW04lvLOSYnr7gmOKs8YzH1Rh+34WGO+VtcgcTuxaUUoJLcR4Tirg==} + fflate@0.8.3: resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + finalhandler@2.1.1: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} @@ -2003,6 +3387,10 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2011,6 +3399,9 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + fuzzysort@3.1.0: + resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==} + gaxios@7.3.1: resolution: {integrity: sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==} engines: {node: '>=18'} @@ -2043,6 +3434,21 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + gitlab-ai-provider@6.12.1: + resolution: {integrity: sha512-Qn5iHqvjG8yktI5MWaUgdRR94l7O4WtYW0CAbhsCh1Tj0Fei/DeprOYPVyf4Nht1Ix6U2PXSYM32QOHI6Z2TDw==} + engines: {node: '>=18'} + peerDependencies: + '@ai-sdk/provider': '>=3.0.0' + '@ai-sdk/provider-utils': '>=4.0.0' + + glob@13.0.5: + resolution: {integrity: sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==} + engines: {node: 20 || >=22} + + google-auth-library@10.5.0: + resolution: {integrity: sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==} + engines: {node: '>=18'} + google-auth-library@10.9.1: resolution: {integrity: sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==} engines: {node: '>=18'} @@ -2055,6 +3461,26 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphql-request@6.1.0: + resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} + peerDependencies: + graphql: 14 - 16 + + graphql@16.14.2: + resolution: {integrity: sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gtoken@8.0.0: + resolution: {integrity: sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==} + engines: {node: '>=18'} + has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -2078,13 +3504,27 @@ packages: resolution: {integrity: sha512-DeOnSPAvOndYKfw075gt8yZzQ7S2hNztw34zBTfhIzLhmBTswIBg5/y+pqu/VD5cYWm5goAFTusDmUEmKZ0PEQ==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + hosted-git-info@9.0.3: + resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} + engines: {node: ^20.17.0 || >=22.9.0} + html-rewriter-wasm@0.4.1: resolution: {integrity: sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==} + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.3.0: + resolution: {integrity: sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==} + http-errors@2.0.1: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-proxy-agent@9.1.0: resolution: {integrity: sha512-2NxoveTT58mjYT4n3RPTEfCZGLMbidoO8XEieXfpSYxu+PQJ1qpx4ypwH6N+uF9twBPIvRRgvkvW5HUTYWENig==} engines: {node: '>= 20'} @@ -2107,12 +3547,27 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + immer@11.1.4: + resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + ip-address@10.7.5: resolution: {integrity: sha512-t2v0rkILYv9WXmSL7TpAaU3HXgaFYOPUcH3QHgwQ++gpJuH3bqyMy4Fvt/DJCTKwzH3Cf+bAp5W/mFL39KPLzA==} engines: {node: '>= 12'} @@ -2129,14 +3584,30 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + is-generator-function@1.1.2: resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} @@ -2151,6 +3622,15 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + jose@6.2.13: resolution: {integrity: sha512-7TIg10ZE1x82YediN+lcrPNvGMKge9yFHQD+Qho/b8y2adfugU3AsvvHfxV0fzyFllT6l9xCjf4RWY9g/Z9PJQ==} @@ -2160,6 +3640,10 @@ packages: js-tokens@10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} + hasBin: true + js-yaml@5.5.0: resolution: {integrity: sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==} hasBin: true @@ -2172,6 +3656,10 @@ packages: json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} + json-schema-to-ts@3.1.1: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} @@ -2182,17 +3670,40 @@ packages: json-schema-typed@8.0.2: resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + jwa@2.0.1: resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} jws@4.0.1: resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -2289,6 +3800,15 @@ packages: magic-string@1.4.3: resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} + make-fetch-happen@15.0.6: + resolution: {integrity: sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==} + engines: {node: ^20.17.0 || >=22.9.0} + + marked@17.0.1: + resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==} + engines: {node: '>= 20'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2301,6 +3821,10 @@ packages: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -2317,6 +3841,11 @@ packages: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} + mime@4.1.2: + resolution: {integrity: sha512-ikRzZ2RwbUVDyL9SsU0f2Phcmav4yq5r8faH5ZZKHtOZrMBLnrQOrj0uvqZ5R1uQnj+RO7Wcklw/lAf81mP9LQ==} + engines: {node: '>=16'} + hasBin: true + mimetext@3.0.28: resolution: {integrity: sha512-eQXpbNrtxLCjUtiVbR/qR09dbPgZ2o+KR1uA7QKqGhbn8QV7HIL16mXXsobBL4/8TqoYh1us31kfz+dNfCev9g==} @@ -2333,12 +3862,59 @@ packages: resolution: {integrity: sha512-SHY8A98gCvmrnBLqABHRTSh3duAL1z+tHPRZu/tqxHFqVARrZ4oQis/ALYwp3XvzHvs6B/ff/CdcCafqP+cOFA==} engines: {node: '>=22.0.0'} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + minipass-flush@1.0.7: + resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@2.0.0: + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msgpackr-extract@3.0.4: + resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==} + hasBin: true + + msgpackr@2.1.2: + resolution: {integrity: sha512-JHAdwubWNEadHQsFAib6uXOzKFxY8QOWHu9LCCksOINMC+TjgaKS2Tdrw7dW5SY0LLz8YK2/YqLSi2vigQt05w==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoevents@7.0.1: + resolution: {integrity: sha512-o6lpKiCxLeijK4hgsqfR6CNToPyRU3keKyyI6uwuHRvpRTbZ0wXw51WRgyldVugZqoJfkGFrjrIenYH3bfEO3Q==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + nanoid@3.3.20: resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2353,25 +3929,87 @@ packages: resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==} engines: {node: '>=18'} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-addon-api@8.9.2: + resolution: {integrity: sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==} + engines: {node: ^18 || ^20 || >= 21} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build-optional-packages@5.2.2: + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + hasBin: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-gyp@12.4.0: + resolution: {integrity: sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + node-releases@2.0.60: resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==} engines: {node: '>=18'} + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-package-arg@13.0.2: + resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-package-arg@14.0.0: resolution: {integrity: sha512-69XQh3k+dtGa1p+7RaR57IuG3rCko96xr/nUfN4yDYBXbTYICiWcOpsFKLN2GtGE9cyIljE+f1exnaYt9MvM+Q==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + npm-packlist@10.0.4: + resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-registry-fetch@19.1.1: + resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} + engines: {node: ^20.17.0 || >=22.9.0} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} object-inspect@1.13.4: @@ -2401,6 +4039,26 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + openai@6.49.0: + resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} + peerDependencies: + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + ws: + optional: true + zod: + optional: true + openai@7.19.0: resolution: {integrity: sha512-MX2s3u2L5racTO0CC/SWpCOasJQBCJrqLKXK+l82cAhdeF8mPMBEe/gxMm0ZFa2xpKpOFLRjxv5afYEZbBXmbQ==} engines: {node: '>=22.0.0'} @@ -2425,10 +4083,23 @@ packages: zod: optional: true + p-map@7.1.1: + resolution: {integrity: sha512-6Lh3jQPLthYujSrlw6ccWXBGZTkoTCz27Hd92g79LH/kjAbgoEu0t442cCCNbegPSJsA0lwDX8z0bcKtkpA32g==} + engines: {node: '>=18'} + p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} + pacote@21.5.2: + resolution: {integrity: sha512-rifBXawDMv3nLvABWr1kTpSk0UjeglTT4Vt9t8nU9xSnfdZcCTy+FOjO6TgXWAS77lIfbZlRkl2eKQcdY0++jA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + parse-conflict-json@5.0.1: + resolution: {integrity: sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ==} + engines: {node: ^20.17.0 || >=22.9.0} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -2456,6 +4127,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -2468,6 +4143,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.7: resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} @@ -2494,14 +4173,32 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-selector-parser@7.1.7: + resolution: {integrity: sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==} + engines: {node: '>=4'} + postcss@8.5.31: resolution: {integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==} engines: {node: ^10 || ^12 || >=14} + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + proc-log@7.0.0: resolution: {integrity: sha512-FYgfaA69XZ93zaXLoMNQ+ViDXGGBgR8aLh03txzcFhV+9xOXx7+8DLCULrKKpR9+GsH9ZfHm82aSUPpozX0Ztg==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} + proggy@4.0.0: + resolution: {integrity: sha512-MbA4R+WQT76ZBm/5JUpV9yqcJt92175+Y0Bodg3HgiXzrmKu7Ggq+bpn6y6wHH+gN9NcyKn3yg1+d47VaKwNAQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} + protobufjs@7.6.6: resolution: {integrity: sha512-dYDWdjSl5RNb7SgPxGQcRU+GtvP7s2fpkrY0r432PcOIaZ0/rBcxEZnQN67iJhFuQiVw754JDoPruPCNdGsbjg==} engines: {node: '>=12.0.0'} @@ -2522,6 +4219,9 @@ packages: pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + pure-rand@8.4.2: + resolution: {integrity: sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng==} + qs@6.16.1: resolution: {integrity: sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg==} engines: {node: '>=0.6'} @@ -2538,10 +4238,22 @@ packages: resolution: {integrity: sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==} engines: {node: '>=0.10.0'} + read-cmd-shim@6.0.0: + resolution: {integrity: sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==} + engines: {node: ^20.17.0 || >=22.9.0} + + redis@6.3.0: + resolution: {integrity: sha512-XFQbPie1lGpKeUZ8ySYY43yLnQy/iIQtHNvIr/1XdaABpb96rUSdm3Mfl+98FEVbv9ZJIzINMno5s0Nh8E5LEw==} + engines: {node: '>= 20.0.0'} + require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + resolve.exports@2.0.4: resolution: {integrity: sha512-zepuGL0ulf+nt+XaFrlKeaiTJeyPFPLLY62+ncq1/VTHBdt3HsfXOH60priZ6tnXQozdGcDeIF5JVTanvIcYWQ==} engines: {node: '>=10'} @@ -2569,6 +4281,10 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} @@ -2626,10 +4342,50 @@ packages: resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@4.1.1: + resolution: {integrity: sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==} + engines: {node: ^20.17.0 || >=22.9.0} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socket.io-client@4.8.4: + resolution: {integrity: sha512-7wjKAvVXYOJsbmUgkWbnhPD4bFpkqrUR0++XOjpGFmqDqsqV1CI93VTraeExLxpjxEqrWgFoSRZu1ihjLWfkAA==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.7: + resolution: {integrity: sha512-IH/iSeO9T6gz1KkFleGDWkG9N3dl4jXVYUtMhIqH10Md0ttMer8nUNWiP1DKuNrybD2xBrixLJdCC9J6ECoYkg==} + engines: {node: '>=10.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.10: + resolution: {integrity: sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + source-map-js@1.2.2: resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} engines: {node: '>=0.10.0'} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.24: + resolution: {integrity: sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sqlite-vec-darwin-arm64@0.1.9: resolution: {integrity: sha512-jSsZpE42OfBkGL/ItyJTVCUwl6o6Ka3U5rc4j+UBDIQzC1ulSSKMEhQLthsOnF/MdAf1MuAkYhkdKmmcjaIZQg==} cpu: [arm64] @@ -2661,6 +4417,10 @@ packages: sqlite-vec@0.1.9: resolution: {integrity: sha512-L7XJWRIBNvR9O5+vh1FQ+IGkh/3D2AzVksW5gdtk28m78Hy8skFD0pqReKH1Yp0/BUKRGcffgKvyO/EON5JXpA==} + ssri@13.0.1: + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} + engines: {node: ^20.17.0 || >=22.9.0} + standardwebhooks@1.1.1: resolution: {integrity: sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==} @@ -2682,10 +4442,18 @@ packages: resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==} engines: {node: '>=20'} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + strip-ansi@7.2.0: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + sucrase@3.35.1: resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} engines: {node: '>=16 || 14 >=14.17'} @@ -2701,6 +4469,10 @@ packages: tar-stream@3.2.2: resolution: {integrity: sha512-+8NeqHRjQWH9nYlwo2gamAMImZCVzI4UoEgDpWorBt9OEfppiZn+uSkskzQKPWIZyji/C8fpWO7u69G0DX0tbg==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} + engines: {node: '>=18'} + teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} @@ -2726,10 +4498,37 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-sitter-bash@0.25.0: + resolution: {integrity: sha512-gZtlj9+qFS81qKxpLfD6H0UssQ3QBc/F0nKkPsiFDyfQF2YBqYvglFJUzchrPpVhZe9kLZTrJ9n2J6lmka69Vg==} + peerDependencies: + tree-sitter: ^0.25.0 + peerDependenciesMeta: + tree-sitter: + optional: true + + tree-sitter-powershell@0.25.10: + resolution: {integrity: sha512-bEt8QoySpGFnU3aa8WedQyNMaN6aTwy/WUbvIVt0JSKF+BbJoSHNHu+wCbhj7xLMsfB0AuffmiJm+B8gzva8Lg==} + peerDependencies: + tree-sitter: ^0.25.0 + peerDependenciesMeta: + tree-sitter: + optional: true + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} @@ -2739,6 +4538,10 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} + turbo@2.11.10: resolution: {integrity: sha512-3GJYwig8ygEI89oaOZdduJX8/aw6O9eRPYHoIt6T3FZl9hkKjiyIspufJoVgqXihPoJu8M5CSV0DlZvzfohBCw==} hasBin: true @@ -2750,6 +4553,11 @@ packages: typebox@1.3.27: resolution: {integrity: sha512-zu+jc1pcy4UiNThxikUr36f0Rybk9PEeCg/NE6adeWr/SKsdNO4EzZHYRDlv2YCVAfj3Odq3dESSo/jNyoBXzA==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@7.0.2: resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} engines: {node: '>=16.20.0'} @@ -2762,6 +4570,10 @@ packages: undici-types@8.9.0: resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} + undici@6.29.1: + resolution: {integrity: sha512-EvRlUt/QqAEvXdQeRMYUfwOQsfzpDztykrG2owGEE/rBOBoYv9uF39ZzsNDh4lTFHhTr2XOZjKkYgueD12ZmGA==} + engines: {node: '>=18.17'} + undici@7.28.0: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} @@ -2774,6 +4586,10 @@ packages: resolution: {integrity: sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==} engines: {node: '>=20.18.1'} + undici@8.12.3: + resolution: {integrity: sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==} + engines: {node: '>=22.19.0'} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -2787,6 +4603,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} @@ -2798,6 +4617,10 @@ packages: typescript: optional: true + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + validate-npm-package-name@8.0.0: resolution: {integrity: sha512-SCv6OOV6Xj2/3cXy3dGmADluJTNcL3o7hZAglNPTe+WYuEuvxgJzxPrSDLZhF+CwyQOubqgecjMmTJGMVLWjYQ==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} @@ -2806,6 +4629,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + venice-ai-sdk-provider@2.1.1: + resolution: {integrity: sha512-w3OHkuzzKZ3r2TOxER6myBYzZJNoDqol+DUHu3NnfBN/GETnUVxecZJab0CHQQ8GZc0jjzpFymepjcLDPS4SQg==} + engines: {node: '>=18'} + peerDependencies: + ai: ^6.0.90 + verkit@0.5.0: resolution: {integrity: sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==} engines: {node: '>=18.12.0'} @@ -2894,10 +4723,32 @@ packages: jsdom: optional: true + vscode-jsonrpc@8.2.1: + resolution: {integrity: sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==} + engines: {node: '>=14.0.0'} + + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + web-tree-sitter@0.25.10: + resolution: {integrity: sha512-Y09sF44/13XvgVKgO2cNDw5rGk6s26MgoZPXLESvMXeefBf7i6/73eFurre0IsTW6E14Y0ArIzhUMmjoc7xyzA==} + peerDependencies: + '@types/emscripten': ^1.40.0 + peerDependenciesMeta: + '@types/emscripten': + optional: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-typed-array@1.1.24: resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==} engines: {node: '>= 0.4'} @@ -2907,6 +4758,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + why-is-node-running@3.2.1: resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==} engines: {node: '>=20.11'} @@ -2956,6 +4812,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@7.0.1: + resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} + engines: {node: ^20.17.0 || >=22.9.0} + ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -2980,10 +4840,21 @@ packages: utf-8-validate: optional: true + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.9.1: resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==} engines: {node: '>= 14.6'} @@ -3011,11 +4882,306 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod@4.1.8: + resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==} + zod@4.6.7: resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} snapshots: + '@ai-sdk/alibaba@1.0.17(zod@4.1.8)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.41(zod@4.1.8) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/amazon-bedrock@4.0.112(zod@4.1.8)': + dependencies: + '@ai-sdk/anthropic': 3.0.81(zod@4.1.8) + '@ai-sdk/openai': 3.0.67(zod@4.1.8) + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + '@smithy/eventstream-codec': 4.5.2 + '@smithy/util-utf8': 4.5.2 + aws4fetch: 1.0.20 + zod: 4.1.8 + + '@ai-sdk/anthropic@3.0.77(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/anthropic@3.0.81(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/anthropic@3.0.82(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/azure@3.0.88(zod@4.1.8)': + dependencies: + '@ai-sdk/deepseek': 2.0.47(zod@4.1.8) + '@ai-sdk/openai': 3.0.84(zod@4.1.8) + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.38(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/cerebras@2.0.93(zod@4.1.8)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.87(zod@4.1.8) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/cohere@3.0.27(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.21(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/deepgram@2.0.68(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/deepseek@2.0.47(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.38(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/deepseek@2.0.77(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/elevenlabs@2.0.69(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/fireworks@2.0.97(zod@4.1.8)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.87(zod@4.1.8) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/gateway@3.0.104(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + '@vercel/oidc': 3.2.0 + zod: 4.1.8 + + '@ai-sdk/gateway@3.0.223(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + '@vercel/oidc': 3.2.0 + zod: 4.1.8 + + '@ai-sdk/gateway@3.0.223(zod@4.6.7)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.6.7) + '@vercel/oidc': 3.2.0 + zod: 4.6.7 + optional: true + + '@ai-sdk/google-vertex@4.0.128(zod@4.1.8)': + dependencies: + '@ai-sdk/anthropic': 3.0.77(zod@4.1.8) + '@ai-sdk/google': 3.0.73(zod@4.1.8) + '@ai-sdk/openai-compatible': 2.0.47(zod@4.1.8) + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + google-auth-library: 10.9.1 + zod: 4.1.8 + transitivePeerDependencies: + - supports-color + + '@ai-sdk/google@3.0.139(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/google@3.0.73(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/groq@3.0.79(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/mistral@3.0.51(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.40(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai-compatible@2.0.37(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.21(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai-compatible@2.0.41(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai-compatible@2.0.47(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai-compatible@2.0.87(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai@3.0.134(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@ai-sdk/openai@3.0.67(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider-utils': 4.0.27(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/openai@3.0.84(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.38(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/perplexity@3.0.26(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.21(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.21(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.23(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.27(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.10 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.38(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.40(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.62(zod@4.1.8)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + undici: 6.29.1 + zod: 4.1.8 + + '@ai-sdk/provider-utils@4.0.62(zod@4.6.7)': + dependencies: + '@ai-sdk/provider': 3.0.19 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.1 + undici: 6.29.1 + zod: 4.6.7 + optional: true + + '@ai-sdk/provider@3.0.10': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/provider@3.0.14': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/provider@3.0.19': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/provider@3.0.8': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/vercel@2.0.39(zod@4.1.8)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.37(zod@4.1.8) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.21(zod@4.1.8) + zod: 4.1.8 + + '@ai-sdk/xai@3.0.146(zod@4.1.8)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.87(zod@4.1.8) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@anthropic-ai/sdk@0.129.0(zod@4.1.8)': + dependencies: + json-schema-to-ts: 3.1.1 + standardwebhooks: 1.1.1 + optionalDependencies: + zod: 4.1.8 + '@anthropic-ai/sdk@0.129.0(zod@4.6.7)': dependencies: json-schema-to-ts: 3.1.1 @@ -3023,6 +5189,48 @@ snapshots: optionalDependencies: zod: 4.6.7 + '@anthropic-ai/sdk@0.71.2(zod@3.25.76)': + dependencies: + json-schema-to-ts: 3.1.1 + optionalDependencies: + zod: 3.25.76 + + '@anycable/core@0.9.2': + dependencies: + nanoevents: 7.0.1 + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.975.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.975.0 + '@aws-sdk/util-locate-window': 3.965.10 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.975.0 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.975.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + '@aws-sdk/client-bedrock-runtime@3.1127.0': dependencies: '@aws-sdk/core': 3.978.5 @@ -3038,6 +5246,19 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 + '@aws-sdk/client-cognito-identity@3.1057.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.978.5 + '@aws-sdk/credential-provider-node': 3.972.88 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/core@3.978.5': dependencies: '@aws-sdk/types': 3.975.0 @@ -3049,15 +5270,34 @@ snapshots: bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.76': + '@aws-sdk/core@3.978.6': dependencies: - '@aws-sdk/core': 3.978.5 '@aws-sdk/types': 3.975.0 + '@aws-sdk/xml-builder': 3.972.41 + '@aws/lambda-invoke-store': 0.3.0 '@smithy/core': 3.37.0 + '@smithy/signature-v4': 5.7.4 '@smithy/types': 4.19.0 + bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.78': + '@aws-sdk/credential-provider-cognito-identity@3.972.76': + dependencies: + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.972.76': + dependencies: + '@aws-sdk/core': 3.978.5 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.78': dependencies: '@aws-sdk/core': 3.978.5 '@aws-sdk/types': 3.975.0 @@ -3133,6 +5373,26 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 + '@aws-sdk/credential-providers@3.1057.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.1057.0 + '@aws-sdk/core': 3.978.5 + '@aws-sdk/credential-provider-cognito-identity': 3.972.76 + '@aws-sdk/credential-provider-env': 3.972.76 + '@aws-sdk/credential-provider-http': 3.972.78 + '@aws-sdk/credential-provider-ini': 3.973.21 + '@aws-sdk/credential-provider-login': 3.972.83 + '@aws-sdk/credential-provider-node': 3.972.88 + '@aws-sdk/credential-provider-process': 3.972.76 + '@aws-sdk/credential-provider-sso': 3.973.20 + '@aws-sdk/credential-provider-web-identity': 3.972.82 + '@aws-sdk/nested-clients': 3.997.50 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/eventstream-handler-node@3.972.38': dependencies: '@aws-sdk/types': 3.975.0 @@ -3168,6 +5428,17 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 + '@aws-sdk/nested-clients@3.997.51': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/signature-v4-multi-region': 3.996.49 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.13.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/signature-v4-multi-region@3.996.49': dependencies: '@aws-sdk/types': 3.975.0 @@ -3198,6 +5469,10 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 + '@aws-sdk/util-locate-window@3.965.10': + dependencies: + tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.41': dependencies: '@smithy/types': 4.19.0 @@ -3458,9 +5733,9 @@ snapshots: dependencies: '@microsoft/fetch-event-source': 2.0.1 - '@earendil-works/pi-agent-core@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-agent-core@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8)': dependencies: - '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8) typebox: 1.3.27 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' @@ -3475,7 +5750,49 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-agent-core@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7)': + dependencies: + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) + typebox: 1.3.27 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@modelcontextprotocol/sdk' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - kerberos + - supports-color + - undici + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8)': + dependencies: + '@anthropic-ai/sdk': 0.129.0(zod@4.1.8) + '@aws-sdk/client-bedrock-runtime': 3.1127.0 + '@earendil-works/pi-telemetry': 1.4.0 + '@google/genai': 2.21.0(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8)) + '@smithy/node-http-handler': 4.12.1 + http-proxy-agent: 9.1.0 + https-proxy-agent: 9.1.0 + openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8) + partial-json: 0.1.7 + typebox: 1.3.27 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@modelcontextprotocol/sdk' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - kerberos + - supports-color + - undici + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7)': dependencies: '@anthropic-ai/sdk': 0.129.0(zod@4.6.7) '@aws-sdk/client-bedrock-runtime': 3.1127.0 @@ -3484,7 +5801,7 @@ snapshots: '@smithy/node-http-handler': 4.12.1 http-proxy-agent: 9.1.0 https-proxy-agent: 9.1.0 - openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) partial-json: 0.1.7 typebox: 1.3.27 transitivePeerDependencies: @@ -3502,6 +5819,39 @@ snapshots: '@earendil-works/pi-telemetry@1.4.0': {} + '@effect/opentelemetry@4.0.0-rc.112(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(effect@4.0.0-rc.112)': + dependencies: + '@opentelemetry/semantic-conventions': 1.43.0 + effect: 4.0.0-rc.112 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.214.0 + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.214.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.6.1(@opentelemetry/api@1.9.0) + + '@effect/platform-node-shared@4.0.0-rc.112(effect@4.0.0-rc.112)': + dependencies: + '@types/ws': 8.18.2 + effect: 4.0.0-rc.112 + ws: 8.22.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@effect/platform-node-shared': 4.0.0-rc.112(effect@4.0.0-rc.112) + effect: 4.0.0-rc.112 + mime: 4.1.2 + redis: 6.3.0(@opentelemetry/api@1.9.0) + undici: 8.12.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@emnapi/runtime@1.11.3': dependencies: tslib: 2.8.1 @@ -3585,10 +5935,63 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true - '@flue/runtime@2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7)': - dependencies: - '@earendil-works/pi-agent-core': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) - '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + '@ff-labs/fff-bin-android-arm64@0.10.5': + optional: true + + '@ff-labs/fff-bin-darwin-arm64@0.10.5': + optional: true + + '@ff-labs/fff-bin-darwin-x64@0.10.5': + optional: true + + '@ff-labs/fff-bin-linux-arm64-gnu@0.10.5': + optional: true + + '@ff-labs/fff-bin-linux-arm64-musl@0.10.5': + optional: true + + '@ff-labs/fff-bin-linux-x64-gnu@0.10.5': + optional: true + + '@ff-labs/fff-bin-linux-x64-musl@0.10.5': + optional: true + + '@ff-labs/fff-bin-win32-arm64@0.10.5': + optional: true + + '@ff-labs/fff-bin-win32-x64@0.10.5': + optional: true + + '@ff-labs/fff-bun@0.10.5': + optionalDependencies: + '@ff-labs/fff-bin-android-arm64': 0.10.5 + '@ff-labs/fff-bin-darwin-arm64': 0.10.5 + '@ff-labs/fff-bin-darwin-x64': 0.10.5 + '@ff-labs/fff-bin-linux-arm64-gnu': 0.10.5 + '@ff-labs/fff-bin-linux-arm64-musl': 0.10.5 + '@ff-labs/fff-bin-linux-x64-gnu': 0.10.5 + '@ff-labs/fff-bin-linux-x64-musl': 0.10.5 + '@ff-labs/fff-bin-win32-arm64': 0.10.5 + '@ff-labs/fff-bin-win32-x64': 0.10.5 + + '@ff-labs/fff-node@0.10.5': + dependencies: + ffi-rs: 1.3.7 + optionalDependencies: + '@ff-labs/fff-bin-android-arm64': 0.10.5 + '@ff-labs/fff-bin-darwin-arm64': 0.10.5 + '@ff-labs/fff-bin-darwin-x64': 0.10.5 + '@ff-labs/fff-bin-linux-arm64-gnu': 0.10.5 + '@ff-labs/fff-bin-linux-arm64-musl': 0.10.5 + '@ff-labs/fff-bin-linux-x64-gnu': 0.10.5 + '@ff-labs/fff-bin-linux-x64-musl': 0.10.5 + '@ff-labs/fff-bin-win32-arm64': 0.10.5 + '@ff-labs/fff-bin-win32-x64': 0.10.5 + + '@flue/runtime@2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7)': + dependencies: + '@earendil-works/pi-agent-core': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) '@hono/node-server': 2.1.5(hono@4.13.14) '@modelcontextprotocol/client': 2.0.0 '@valibot/to-json-schema': 1.8.0(valibot@1.5.0(typescript@7.0.2)) @@ -3614,11 +6017,11 @@ snapshots: dependencies: '@durable-streams/client': 0.2.7 - '@flue/vite@2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(@smithy/signature-v4@5.7.4)(hono@4.13.14)(react@19.3.1)(rolldown@1.2.15)(typescript@7.0.2)(undici@7.30.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(ws@8.22.0)(zod@4.6.7)': + '@flue/vite@2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.6.7))(hono@4.13.14)(react@19.3.1)(rolldown@1.2.15)(typescript@7.0.2)(undici@8.12.3)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(ws@8.22.0)(zod@4.6.7)': dependencies: - '@flue/runtime': 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + '@flue/runtime': 2.3.0(@aws-sdk/credential-provider-node@3.972.88)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@smithy/signature-v4@5.7.4)(typescript@7.0.2)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7) '@hono/node-server': 2.1.5(hono@4.13.14) - agents: 0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7) + agents: 0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(ai@6.0.317(zod@4.6.7))(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7) magic-string: 1.4.3 tinyglobby: 0.2.17 ulidx: 2.4.1 @@ -3654,6 +6057,21 @@ snapshots: - ws - zod + '@gar/promise-retry@1.0.3': {} + + '@google/genai@2.21.0(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8))': + dependencies: + google-auth-library: 10.9.1 + p-retry: 4.6.2 + protobufjs: 7.6.6 + ws: 8.22.0 + optionalDependencies: + '@modelcontextprotocol/sdk': 1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@google/genai@2.21.0(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))': dependencies: google-auth-library: 10.9.1 @@ -3667,6 +6085,14 @@ snapshots: - supports-color - utf-8-validate + '@graphql-typed-document-node/core@3.2.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@hono/node-server@1.19.17(hono@4.13.14)': + dependencies: + hono: 4.13.14 + '@hono/node-server@2.1.5(hono@4.13.14)': dependencies: hono: 4.13.14 @@ -3881,6 +6307,12 @@ snapshots: '@img/sharp-win32-x64@0.35.5': optional: true + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + + '@isaacs/string-locale-compare@1.1.0': {} + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -3907,6 +6339,33 @@ snapshots: '@jspm/core@2.1.0': {} + '@lydell/node-pty-darwin-arm64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty-darwin-x64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty-linux-arm64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty-linux-x64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty-win32-arm64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty-win32-x64@1.2.0-beta.12': + optional: true + + '@lydell/node-pty@1.2.0-beta.12': + optionalDependencies: + '@lydell/node-pty-darwin-arm64': 1.2.0-beta.12 + '@lydell/node-pty-darwin-x64': 1.2.0-beta.12 + '@lydell/node-pty-linux-arm64': 1.2.0-beta.12 + '@lydell/node-pty-linux-x64': 1.2.0-beta.12 + '@lydell/node-pty-win32-arm64': 1.2.0-beta.12 + '@lydell/node-pty-win32-x64': 1.2.0-beta.12 + '@microsoft/fetch-event-source@2.0.1': {} '@modelcontextprotocol/client@2.0.0': @@ -3923,6 +6382,55 @@ snapshots: dependencies: zod: 4.6.7 + '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.1.8)': + dependencies: + '@hono/node-server': 1.19.17(hono@4.13.14) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.1.1 + express: 5.3.0 + express-rate-limit: 8.7.1(express@5.3.0) + hono: 4.13.14 + jose: 6.2.13 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.1.8 + zod-to-json-schema: 3.25.2(zod@4.1.8) + optionalDependencies: + '@cfworker/json-schema': 4.1.1 + transitivePeerDependencies: + - supports-color + + '@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.1.8)': + dependencies: + '@hono/node-server': 2.1.5(hono@4.13.14) + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.1.1 + express: 5.3.0 + express-rate-limit: 8.7.1(express@5.3.0) + hono: 4.13.14 + jose: 6.2.13 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.1.8 + zod-to-json-schema: 3.25.2(zod@4.1.8) + optionalDependencies: + '@cfworker/json-schema': 4.1.1 + transitivePeerDependencies: + - supports-color + optional: true + '@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7)': dependencies: '@hono/node-server': 2.1.5(hono@4.13.14) @@ -3947,14 +6455,954 @@ snapshots: transitivePeerDependencies: - supports-color - '@modelcontextprotocol/server@2.0.0': - dependencies: - '@modelcontextprotocol/core': 2.0.0 - zod: 4.6.7 + '@modelcontextprotocol/server@2.0.0': + dependencies: + '@modelcontextprotocol/core': 2.0.0 + zod: 4.6.7 + + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': + optional: true + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': + optional: true + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': + optional: true + + '@noble/hashes@1.8.0': {} + + '@npmcli/agent@4.0.2': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.5.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/arborist@9.4.0': + dependencies: + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 5.0.0 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/metavuln-calculator': 9.0.3 + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/query': 5.0.0 + '@npmcli/redact': 4.0.0 + '@npmcli/run-script': 10.0.4 + bin-links: 6.0.3 + cacache: 20.0.4 + common-ancestor-path: 2.0.0 + hosted-git-info: 9.0.3 + json-stringify-nice: 1.1.4 + lru-cache: 11.5.3 + minimatch: 10.2.5 + nopt: 9.0.0 + npm-install-checks: 8.0.0 + npm-package-arg: 13.0.2 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + pacote: 21.5.2 + parse-conflict-json: 5.0.1 + proc-log: 6.1.0 + proggy: 4.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + semver: 7.8.5 + ssri: 13.0.1 + treeverse: 3.0.0 + walk-up-path: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@npmcli/config@10.8.1': + dependencies: + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/package-json': 7.0.5 + ci-info: 4.4.0 + ini: 6.0.0 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.8.5 + walk-up-path: 4.0.0 + + '@npmcli/fs@5.0.0': + dependencies: + semver: 7.8.5 + + '@npmcli/git@7.0.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/promise-spawn': 9.0.2 + ini: 6.0.0 + lru-cache: 11.5.3 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + semver: 7.8.5 + which: 6.0.1 + + '@npmcli/installed-package-contents@4.0.0': + dependencies: + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 + + '@npmcli/map-workspaces@5.0.3': + dependencies: + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/package-json': 7.0.5 + glob: 13.0.5 + minimatch: 10.2.5 + + '@npmcli/metavuln-calculator@9.0.3': + dependencies: + cacache: 20.0.4 + json-parse-even-better-errors: 5.0.0 + pacote: 21.5.2 + proc-log: 6.1.0 + semver: 7.8.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/name-from-folder@4.0.0': {} + + '@npmcli/node-gyp@5.0.0': {} + + '@npmcli/package-json@7.0.5': + dependencies: + '@npmcli/git': 7.0.2 + glob: 13.0.5 + hosted-git-info: 9.0.3 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.8.5 + spdx-expression-parse: 4.0.0 + + '@npmcli/promise-spawn@9.0.2': + dependencies: + which: 6.0.1 + + '@npmcli/query@5.0.0': + dependencies: + postcss-selector-parser: 7.1.7 + + '@npmcli/redact@4.0.0': {} + + '@npmcli/run-script@10.0.4': + dependencies: + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.2 + node-gyp: 12.4.0 + proc-log: 6.1.0 + + '@opencode-ai/ai@0.0.0-dev-18697': + dependencies: + '@opencode-ai/schema': 0.0.0-dev-18697 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/util-utf8': 4.2.2 + aws4fetch: 1.0.20 + effect: 4.0.0-rc.112 + google-auth-library: 10.5.0 + transitivePeerDependencies: + - supports-color + + '@opencode-ai/client@0.0.0-dev-18697(effect@4.0.0-rc.112)': + dependencies: + '@opencode-ai/protocol': 0.0.0-dev-18697 + '@opencode-ai/schema': 0.0.0-dev-18697 + optionalDependencies: + effect: 4.0.0-rc.112 + + '@opencode-ai/codemode@0.0.0-dev-18697': + dependencies: + acorn: 8.15.0 + effect: 4.0.0-rc.112 + typescript: 5.8.2 + + '@opencode-ai/core@0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(ws@8.21.0)': + dependencies: + '@ai-sdk/alibaba': 1.0.17(zod@4.1.8) + '@ai-sdk/amazon-bedrock': 4.0.112(zod@4.1.8) + '@ai-sdk/anthropic': 3.0.82(zod@4.1.8) + '@ai-sdk/azure': 3.0.88(zod@4.1.8) + '@ai-sdk/cohere': 3.0.27(zod@4.1.8) + '@ai-sdk/gateway': 3.0.104(zod@4.1.8) + '@ai-sdk/google-vertex': 4.0.128(zod@4.1.8) + '@ai-sdk/mistral': 3.0.51(zod@4.1.8) + '@ai-sdk/openai-compatible': 2.0.41(zod@4.1.8) + '@ai-sdk/perplexity': 3.0.26(zod@4.1.8) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + '@ai-sdk/vercel': 2.0.39(zod@4.1.8) + '@aws-sdk/credential-providers': 3.1057.0 + '@ff-labs/fff-bun': 0.10.5 + '@ff-labs/fff-node': 0.10.5 + '@lydell/node-pty': 1.2.0-beta.12 + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.1.8) + '@opencode-ai/ai': 0.0.0-dev-18697 + '@opencode-ai/codemode': 0.0.0-dev-18697 + '@opencode-ai/plugin': 0.0.0-dev-18697(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10)) + '@opencode-ai/pty': 0.1.13 + '@opencode-ai/schema': 0.0.0-dev-18697 + '@opencode-ai/util': 0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0)) + '@parcel/watcher': 2.5.1 + '@silvia-odwyer/photon-node': 0.3.4 + '@standard-schema/spec': 1.1.0 + ai-gateway-provider: 3.1.2(@ai-sdk/openai-compatible@2.0.41(zod@4.1.8))(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(ai@6.0.317(zod@4.1.8))(zod@4.1.8) + bun-pty: 0.4.8 + diff: 8.0.4 + drizzle-orm: 1.0.0-rc.5-169397b(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api@1.9.0)(effect@4.0.0-rc.112)(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(zod@4.1.8) + effect: 4.0.0-rc.112 + fuzzysort: 3.1.0 + gitlab-ai-provider: 6.12.1(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(graphql@16.14.2)(ws@8.21.0) + google-auth-library: 10.5.0 + gray-matter: 4.0.3 + htmlparser2: 8.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + ignore: 7.0.5 + immer: 11.1.4 + jsonc-parser: 3.3.1 + mime-types: 3.0.2 + tree-sitter-bash: 0.25.0 + tree-sitter-powershell: 0.25.10 + venice-ai-sdk-provider: 2.1.1(ai@6.0.317(zod@4.1.8))(zod@4.1.8) + web-tree-sitter: 0.25.10 + which: 6.0.1 + zod: 4.1.8 + transitivePeerDependencies: + - '@aws-sdk/client-rds-data' + - '@aws-sdk/credential-provider-node' + - '@cfworker/json-schema' + - '@cloudflare/workers-types' + - '@drizzle-team/minipg' + - '@effect/sql-d1' + - '@effect/sql-libsql' + - '@effect/sql-mysql2' + - '@effect/sql-pg' + - '@effect/sql-pglite' + - '@effect/sql-sqlite-bun' + - '@effect/sql-sqlite-do' + - '@effect/sql-sqlite-node' + - '@effect/sql-sqlite-wasm' + - '@electric-sql/pglite' + - '@libsql/client' + - '@libsql/client-wasm' + - '@neondatabase/serverless' + - '@op-engineering/op-sqlite' + - '@opencode-ai/theme' + - '@opentelemetry/api' + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - '@opentui/core' + - '@opentui/solid' + - '@planetscale/database' + - '@sinclair/typebox' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@sqlitecloud/drivers' + - '@tidbcloud/serverless' + - '@tursodatabase/database' + - '@tursodatabase/database-common' + - '@tursodatabase/database-wasm' + - '@tursodatabase/serverless' + - '@tursodatabase/sync' + - '@types/better-sqlite3' + - '@types/emscripten' + - '@types/mssql' + - '@types/pg' + - '@types/sql.js' + - '@upstash/redis' + - '@vercel/postgres' + - '@xata.io/client' + - ai + - arktype + - better-sqlite3 + - bufferutil + - bun-types + - encoding + - expo-sqlite + - graphql + - mssql + - mysql2 + - pg + - postgres + - redis + - solid-js + - sql.js + - sqlite3 + - supports-color + - tree-sitter + - typebox + - utf-8-validate + - valibot + - ws + + '@opencode-ai/core@0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(ws@8.22.0)': + dependencies: + '@ai-sdk/alibaba': 1.0.17(zod@4.1.8) + '@ai-sdk/amazon-bedrock': 4.0.112(zod@4.1.8) + '@ai-sdk/anthropic': 3.0.82(zod@4.1.8) + '@ai-sdk/azure': 3.0.88(zod@4.1.8) + '@ai-sdk/cohere': 3.0.27(zod@4.1.8) + '@ai-sdk/gateway': 3.0.104(zod@4.1.8) + '@ai-sdk/google-vertex': 4.0.128(zod@4.1.8) + '@ai-sdk/mistral': 3.0.51(zod@4.1.8) + '@ai-sdk/openai-compatible': 2.0.41(zod@4.1.8) + '@ai-sdk/perplexity': 3.0.26(zod@4.1.8) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + '@ai-sdk/vercel': 2.0.39(zod@4.1.8) + '@aws-sdk/credential-providers': 3.1057.0 + '@ff-labs/fff-bun': 0.10.5 + '@ff-labs/fff-node': 0.10.5 + '@lydell/node-pty': 1.2.0-beta.12 + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.1.8) + '@opencode-ai/ai': 0.0.0-dev-18697 + '@opencode-ai/codemode': 0.0.0-dev-18697 + '@opencode-ai/plugin': 0.0.0-dev-18697(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10)) + '@opencode-ai/pty': 0.1.13 + '@opencode-ai/schema': 0.0.0-dev-18697 + '@opencode-ai/util': 0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0)) + '@parcel/watcher': 2.5.1 + '@silvia-odwyer/photon-node': 0.3.4 + '@standard-schema/spec': 1.1.0 + ai-gateway-provider: 3.1.2(@ai-sdk/openai-compatible@2.0.41(zod@4.1.8))(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(ai@6.0.317(zod@4.1.8))(zod@4.1.8) + bun-pty: 0.4.8 + diff: 8.0.4 + drizzle-orm: 1.0.0-rc.5-169397b(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api@1.9.0)(effect@4.0.0-rc.112)(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(zod@4.1.8) + effect: 4.0.0-rc.112 + fuzzysort: 3.1.0 + gitlab-ai-provider: 6.12.1(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(graphql@16.14.2)(ws@8.22.0) + google-auth-library: 10.5.0 + gray-matter: 4.0.3 + htmlparser2: 8.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + ignore: 7.0.5 + immer: 11.1.4 + jsonc-parser: 3.3.1 + mime-types: 3.0.2 + tree-sitter-bash: 0.25.0 + tree-sitter-powershell: 0.25.10 + venice-ai-sdk-provider: 2.1.1(ai@6.0.317(zod@4.1.8))(zod@4.1.8) + web-tree-sitter: 0.25.10 + which: 6.0.1 + zod: 4.1.8 + transitivePeerDependencies: + - '@aws-sdk/client-rds-data' + - '@aws-sdk/credential-provider-node' + - '@cfworker/json-schema' + - '@cloudflare/workers-types' + - '@drizzle-team/minipg' + - '@effect/sql-d1' + - '@effect/sql-libsql' + - '@effect/sql-mysql2' + - '@effect/sql-pg' + - '@effect/sql-pglite' + - '@effect/sql-sqlite-bun' + - '@effect/sql-sqlite-do' + - '@effect/sql-sqlite-node' + - '@effect/sql-sqlite-wasm' + - '@electric-sql/pglite' + - '@libsql/client' + - '@libsql/client-wasm' + - '@neondatabase/serverless' + - '@op-engineering/op-sqlite' + - '@opencode-ai/theme' + - '@opentelemetry/api' + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - '@opentui/core' + - '@opentui/solid' + - '@planetscale/database' + - '@sinclair/typebox' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@sqlitecloud/drivers' + - '@tidbcloud/serverless' + - '@tursodatabase/database' + - '@tursodatabase/database-common' + - '@tursodatabase/database-wasm' + - '@tursodatabase/serverless' + - '@tursodatabase/sync' + - '@types/better-sqlite3' + - '@types/emscripten' + - '@types/mssql' + - '@types/pg' + - '@types/sql.js' + - '@upstash/redis' + - '@vercel/postgres' + - '@xata.io/client' + - ai + - arktype + - better-sqlite3 + - bufferutil + - bun-types + - encoding + - expo-sqlite + - graphql + - mssql + - mysql2 + - pg + - postgres + - redis + - solid-js + - sql.js + - sqlite3 + - supports-color + - tree-sitter + - typebox + - utf-8-validate + - valibot + - ws + + '@opencode-ai/plugin@0.0.0-dev-18697(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@opencode-ai/ai': 0.0.0-dev-18697 + '@opencode-ai/client': 0.0.0-dev-18697(effect@4.0.0-rc.112) + '@opencode-ai/protocol': 0.0.0-dev-18697 + '@opencode-ai/schema': 0.0.0-dev-18697 + '@standard-schema/spec': 1.1.0 + effect: 4.0.0-rc.112 + zod: 4.1.8 + optionalDependencies: + '@opentui/core': 0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10) + transitivePeerDependencies: + - supports-color + + '@opencode-ai/protocol@0.0.0-dev-18697': + dependencies: + '@opencode-ai/schema': 0.0.0-dev-18697 + effect: 4.0.0-rc.112 + + '@opencode-ai/pty-darwin-arm64@0.1.13': + optional: true + + '@opencode-ai/pty-darwin-x64@0.1.13': + optional: true + + '@opencode-ai/pty-linux-arm64-gnu@0.1.13': + optional: true + + '@opencode-ai/pty-linux-arm64-musl@0.1.13': + optional: true + + '@opencode-ai/pty-linux-x64-gnu@0.1.13': + optional: true + + '@opencode-ai/pty-linux-x64-musl@0.1.13': + optional: true + + '@opencode-ai/pty@0.1.13': + optionalDependencies: + '@opencode-ai/pty-darwin-arm64': 0.1.13 + '@opencode-ai/pty-darwin-x64': 0.1.13 + '@opencode-ai/pty-linux-arm64-gnu': 0.1.13 + '@opencode-ai/pty-linux-arm64-musl': 0.1.13 + '@opencode-ai/pty-linux-x64-gnu': 0.1.13 + '@opencode-ai/pty-linux-x64-musl': 0.1.13 + + '@opencode-ai/schema@0.0.0-dev-18697': + dependencies: + '@standard-schema/spec': 1.1.0 + effect: 4.0.0-rc.112 + + '@opencode-ai/sdk@0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10)(ws@8.22.0)(zod@4.1.8)': + dependencies: + '@opencode-ai/client': 0.0.0-dev-18697(effect@4.0.0-rc.112) + '@opencode-ai/core': 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(ws@8.22.0) + '@opencode-ai/plugin': 0.0.0-dev-18697(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10)) + '@opencode-ai/schema': 0.0.0-dev-18697 + '@opencode-ai/server': 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10)(ws@8.22.0)(zod@4.1.8) + '@opencode-ai/util': 0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0)) + effect: 4.0.0-rc.112 + transitivePeerDependencies: + - '@aws-sdk/client-rds-data' + - '@aws-sdk/credential-provider-node' + - '@cfworker/json-schema' + - '@cloudflare/workers-types' + - '@drizzle-team/minipg' + - '@effect/sql-d1' + - '@effect/sql-libsql' + - '@effect/sql-mysql2' + - '@effect/sql-pg' + - '@effect/sql-pglite' + - '@effect/sql-sqlite-bun' + - '@effect/sql-sqlite-do' + - '@effect/sql-sqlite-node' + - '@effect/sql-sqlite-wasm' + - '@electric-sql/pglite' + - '@libsql/client' + - '@libsql/client-wasm' + - '@neondatabase/serverless' + - '@op-engineering/op-sqlite' + - '@opencode-ai/theme' + - '@opentelemetry/api' + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - '@opentui/core' + - '@opentui/solid' + - '@planetscale/database' + - '@sinclair/typebox' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@sqlitecloud/drivers' + - '@tidbcloud/serverless' + - '@tursodatabase/database' + - '@tursodatabase/database-common' + - '@tursodatabase/database-wasm' + - '@tursodatabase/serverless' + - '@tursodatabase/sync' + - '@types/better-sqlite3' + - '@types/emscripten' + - '@types/mssql' + - '@types/pg' + - '@types/sql.js' + - '@upstash/redis' + - '@vercel/postgres' + - '@xata.io/client' + - ai + - arktype + - better-sqlite3 + - bufferutil + - bun-types + - encoding + - expo-sqlite + - graphql + - mssql + - mysql2 + - pg + - postgres + - redis + - solid-js + - sql.js + - sqlite3 + - supports-color + - tree-sitter + - typebox + - typescript + - utf-8-validate + - valibot + - web-tree-sitter + - ws + - zod + + '@opencode-ai/server@0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10)(ws@8.22.0)(zod@4.1.8)': + dependencies: + '@effect/platform-node': 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.3.0(@opentelemetry/api@1.9.0)) + '@effect/platform-node-shared': 4.0.0-rc.112(effect@4.0.0-rc.112) + '@opencode-ai/core': 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(ws@8.22.0) + '@opencode-ai/protocol': 0.0.0-dev-18697 + '@opencode-ai/schema': 0.0.0-dev-18697 + '@opencode-ai/simulation': 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10) + '@opencode-ai/util': 0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0)) + drizzle-orm: 1.0.0-rc.5-169397b(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api@1.9.0)(effect@4.0.0-rc.112)(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(zod@4.1.8) + effect: 4.0.0-rc.112 + transitivePeerDependencies: + - '@aws-sdk/client-rds-data' + - '@aws-sdk/credential-provider-node' + - '@cfworker/json-schema' + - '@cloudflare/workers-types' + - '@drizzle-team/minipg' + - '@effect/sql-d1' + - '@effect/sql-libsql' + - '@effect/sql-mysql2' + - '@effect/sql-pg' + - '@effect/sql-pglite' + - '@effect/sql-sqlite-bun' + - '@effect/sql-sqlite-do' + - '@effect/sql-sqlite-node' + - '@effect/sql-sqlite-wasm' + - '@electric-sql/pglite' + - '@libsql/client' + - '@libsql/client-wasm' + - '@neondatabase/serverless' + - '@op-engineering/op-sqlite' + - '@opencode-ai/theme' + - '@opentelemetry/api' + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - '@opentui/core' + - '@opentui/solid' + - '@planetscale/database' + - '@sinclair/typebox' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@sqlitecloud/drivers' + - '@tidbcloud/serverless' + - '@tursodatabase/database' + - '@tursodatabase/database-common' + - '@tursodatabase/database-wasm' + - '@tursodatabase/serverless' + - '@tursodatabase/sync' + - '@types/better-sqlite3' + - '@types/emscripten' + - '@types/mssql' + - '@types/pg' + - '@types/sql.js' + - '@upstash/redis' + - '@vercel/postgres' + - '@xata.io/client' + - ai + - arktype + - better-sqlite3 + - bufferutil + - bun-types + - encoding + - expo-sqlite + - graphql + - mssql + - mysql2 + - pg + - postgres + - redis + - solid-js + - sql.js + - sqlite3 + - supports-color + - tree-sitter + - typebox + - typescript + - utf-8-validate + - valibot + - web-tree-sitter + - ws + - zod + + '@opencode-ai/simulation@0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(typescript@7.0.2)(valibot@1.5.0(typescript@7.0.2))(web-tree-sitter@0.25.10)': + dependencies: + '@opencode-ai/ai': 0.0.0-dev-18697 + '@opencode-ai/core': 0.0.0-dev-18697(@aws-sdk/credential-provider-node@3.972.88)(@cfworker/json-schema@4.1.1)(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10))(@smithy/signature-v4@5.7.4)(ai@6.0.317(zod@4.1.8))(graphql@16.14.2)(redis@6.3.0(@opentelemetry/api@1.9.0))(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(ws@8.21.0) + '@opencode-ai/plugin': 0.0.0-dev-18697(@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10)) + '@opencode-ai/protocol': 0.0.0-dev-18697 + '@opencode-ai/util': 0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0)) + '@opentui/core': 0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10) + effect: 4.0.0-rc.112 + ws: 8.21.0 + transitivePeerDependencies: + - '@aws-sdk/client-rds-data' + - '@aws-sdk/credential-provider-node' + - '@cfworker/json-schema' + - '@cloudflare/workers-types' + - '@drizzle-team/minipg' + - '@effect/sql-d1' + - '@effect/sql-libsql' + - '@effect/sql-mysql2' + - '@effect/sql-pg' + - '@effect/sql-pglite' + - '@effect/sql-sqlite-bun' + - '@effect/sql-sqlite-do' + - '@effect/sql-sqlite-node' + - '@effect/sql-sqlite-wasm' + - '@electric-sql/pglite' + - '@libsql/client' + - '@libsql/client-wasm' + - '@neondatabase/serverless' + - '@op-engineering/op-sqlite' + - '@opencode-ai/theme' + - '@opentelemetry/api' + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - '@opentui/solid' + - '@planetscale/database' + - '@sinclair/typebox' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - '@sqlitecloud/drivers' + - '@tidbcloud/serverless' + - '@tursodatabase/database' + - '@tursodatabase/database-common' + - '@tursodatabase/database-wasm' + - '@tursodatabase/serverless' + - '@tursodatabase/sync' + - '@types/better-sqlite3' + - '@types/emscripten' + - '@types/mssql' + - '@types/pg' + - '@types/sql.js' + - '@upstash/redis' + - '@vercel/postgres' + - '@xata.io/client' + - ai + - arktype + - better-sqlite3 + - bufferutil + - bun-types + - encoding + - expo-sqlite + - graphql + - mssql + - mysql2 + - pg + - postgres + - redis + - solid-js + - sql.js + - sqlite3 + - supports-color + - tree-sitter + - typebox + - typescript + - utf-8-validate + - valibot + - web-tree-sitter + + '@opencode-ai/util@0.0.0-dev-18697(@opentelemetry/api-logs@0.214.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(redis@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@effect/opentelemetry': 4.0.0-rc.112(@opentelemetry/api-logs@0.214.0)(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.6.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.43.0)(effect@4.0.0-rc.112) + '@effect/platform-node': 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.3.0(@opentelemetry/api@1.9.0)) + '@effect/platform-node-shared': 4.0.0-rc.112(effect@4.0.0-rc.112) + '@npmcli/arborist': 9.4.0 + '@npmcli/config': 10.8.1 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.214.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.6.1(@opentelemetry/api@1.9.0) + cross-spawn: 7.0.6 + effect: 4.0.0-rc.112 + glob: 13.0.5 + mime-types: 3.0.2 + minimatch: 10.2.5 + npm-package-arg: 13.0.2 + resolve.exports: 2.0.3 + transitivePeerDependencies: + - '@opentelemetry/api-logs' + - '@opentelemetry/resources' + - '@opentelemetry/sdk-logs' + - '@opentelemetry/sdk-metrics' + - '@opentelemetry/sdk-trace-web' + - '@opentelemetry/semantic-conventions' + - bufferutil + - redis + - supports-color + - utf-8-validate + + '@openrouter/ai-sdk-provider@2.10.0(ai@6.0.317(zod@4.1.8))(zod@4.1.8)': + dependencies: + ai: 6.0.317(zod@4.1.8) + zod: 4.1.8 + optional: true + + '@opentelemetry/api-logs@0.214.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.10.0': {} + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.214.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.214.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-exporter-base@0.214.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.214.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.214.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.214.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.214.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.0) + protobufjs: 7.6.6 + + '@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.214.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.43.0 + + '@opentelemetry/sdk-trace-node@2.6.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/semantic-conventions@1.43.0': {} + + '@opentui/core-darwin-arm64@0.5.9': + optional: true + + '@opentui/core-darwin-x64@0.5.9': + optional: true + + '@opentui/core-linux-arm64-musl@0.5.9': + optional: true + + '@opentui/core-linux-arm64@0.5.9': + optional: true + + '@opentui/core-linux-x64-musl@0.5.9': + optional: true + + '@opentui/core-linux-x64@0.5.9': + optional: true + + '@opentui/core-win32-arm64@0.5.9': + optional: true + + '@opentui/core-win32-x64@0.5.9': + optional: true + + '@opentui/core@0.5.9(typescript@7.0.2)(web-tree-sitter@0.25.10)': + dependencies: + bun-ffi-structs: 0.3.1(typescript@7.0.2) + diff: 9.0.0 + marked: 17.0.1 + string-width: 7.2.0 + strip-ansi: 7.1.2 + web-tree-sitter: 0.25.10 + optionalDependencies: + '@opentui/core-darwin-arm64': 0.5.9 + '@opentui/core-darwin-x64': 0.5.9 + '@opentui/core-linux-arm64': 0.5.9 + '@opentui/core-linux-arm64-musl': 0.5.9 + '@opentui/core-linux-x64': 0.5.9 + '@opentui/core-linux-x64-musl': 0.5.9 + '@opentui/core-win32-arm64': 0.5.9 + '@opentui/core-win32-x64': 0.5.9 + transitivePeerDependencies: + - typescript + + '@oxc-project/types@0.155.0': {} + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true - '@noble/hashes@1.8.0': {} + '@parcel/watcher-darwin-x64@2.5.1': + optional: true - '@oxc-project/types@0.155.0': {} + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 '@playwright/test@1.64.1': dependencies: @@ -3992,6 +7440,26 @@ snapshots: '@protobufjs/utf8@1.1.2': {} + '@redis/bloom@6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@redis/client': 6.3.0(@opentelemetry/api@1.9.0) + + '@redis/client@6.3.0(@opentelemetry/api@1.9.0)': + optionalDependencies: + '@opentelemetry/api': 1.9.0 + + '@redis/json@6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@redis/client': 6.3.0(@opentelemetry/api@1.9.0) + + '@redis/search@6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@redis/client': 6.3.0(@opentelemetry/api@1.9.0) + + '@redis/time-series@6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0))': + dependencies: + '@redis/client': 6.3.0(@opentelemetry/api@1.9.0) + '@rolldown/binding-android-arm-eabi@1.2.15': optional: true @@ -4048,6 +7516,40 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} + '@sigstore/bundle@4.0.0': + dependencies: + '@sigstore/protobuf-specs': 0.5.2 + + '@sigstore/core@3.2.1': {} + + '@sigstore/protobuf-specs@0.5.2': {} + + '@sigstore/sign@4.1.1': + dependencies: + '@gar/promise-retry': 1.0.3 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.2 + make-fetch-happen: 15.0.6 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@4.0.2': + dependencies: + '@sigstore/protobuf-specs': 0.5.2 + tuf-js: 4.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@3.1.1': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.2 + + '@silvia-odwyer/photon-node@0.3.4': {} + '@sindresorhus/is@7.2.0': {} '@smithy/core@3.37.0': @@ -4061,18 +7563,40 @@ snapshots: '@smithy/types': 4.19.0 tslib: 2.8.1 + '@smithy/eventstream-codec@4.2.14': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.19.0 + '@smithy/util-hex-encoding': 4.5.2 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.5.2': + dependencies: + '@smithy/core': 3.37.0 + tslib: 2.8.1 + '@smithy/fetch-http-handler@5.8.0': dependencies: '@smithy/core': 3.37.0 '@smithy/types': 4.19.0 tslib: 2.8.1 + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/node-http-handler@4.12.1': dependencies: '@smithy/core': 3.37.0 '@smithy/types': 4.19.0 tslib: 2.8.1 + '@smithy/node-http-handler@4.13.0': + dependencies: + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@smithy/signature-v4@5.7.4': dependencies: '@smithy/core': 3.37.0 @@ -4083,6 +7607,38 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.5.2': + dependencies: + '@smithy/core': 3.37.0 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.5.2': + dependencies: + '@smithy/core': 3.37.0 + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.2.2': + dependencies: + '@smithy/util-buffer-from': 4.5.2 + tslib: 2.8.1 + + '@smithy/util-utf8@4.5.2': + dependencies: + '@smithy/core': 3.37.0 + tslib: 2.8.1 + + '@socket.io/component-emitter@3.1.2': {} + '@sparticuz/chromium@153.0.0': dependencies: tar-fs: 3.1.3 @@ -4097,6 +7653,8 @@ snapshots: '@stablelib/base64@1.0.1': {} + '@standard-schema/spec@1.1.0': {} + '@statewalker/webrun-files-browser@0.10.2': dependencies: '@statewalker/webrun-files': 0.10.3 @@ -4150,6 +7708,13 @@ snapshots: '@statewalker/webrun-streams@0.2.2': {} + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.2.5 + '@turbo/darwin-64@2.11.10': optional: true @@ -4255,6 +7820,8 @@ snapshots: dependencies: valibot: 1.5.0(typescript@7.0.2) + '@vercel/oidc@3.2.0': {} + '@vitest/mocker@5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))': dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -4266,6 +7833,41 @@ snapshots: '@vitest/spy@5.0.5': {} + '@yuuang/ffi-rs-android-arm64@1.3.7': + optional: true + + '@yuuang/ffi-rs-darwin-arm64@1.3.7': + optional: true + + '@yuuang/ffi-rs-darwin-x64@1.3.7': + optional: true + + '@yuuang/ffi-rs-linux-arm-gnueabihf@1.3.7': + optional: true + + '@yuuang/ffi-rs-linux-arm64-gnu@1.3.7': + optional: true + + '@yuuang/ffi-rs-linux-arm64-musl@1.3.7': + optional: true + + '@yuuang/ffi-rs-linux-x64-gnu@1.3.7': + optional: true + + '@yuuang/ffi-rs-linux-x64-musl@1.3.7': + optional: true + + '@yuuang/ffi-rs-win32-arm64-msvc@1.3.7': + optional: true + + '@yuuang/ffi-rs-win32-ia32-msvc@1.3.7': + optional: true + + '@yuuang/ffi-rs-win32-x64-msvc@1.3.7': + optional: true + + abbrev@4.0.0: {} + accepts@2.0.0: dependencies: mime-types: 3.0.2 @@ -4280,13 +7882,15 @@ snapshots: dependencies: acorn: 8.19.0 + acorn@8.15.0: {} + acorn@8.19.0: {} agent-base@7.1.4: {} agent-base@9.0.0: {} - agents@0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7): + agents@0.20.1(@babel/core@8.0.9)(@babel/runtime@7.29.10)(@cloudflare/workers-types@5.20261026.1)(@modelcontextprotocol/client@2.0.0)(@modelcontextprotocol/sdk@1.30.0(@cfworker/json-schema@4.1.1)(zod@4.6.7))(@modelcontextprotocol/server@2.0.0)(ai@6.0.317(zod@4.6.7))(react@19.3.1)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(zod@4.6.7): dependencies: '@babel/plugin-proposal-decorators': 8.0.2(@babel/core@8.0.9) '@cfworker/json-schema': 4.1.1 @@ -4305,6 +7909,7 @@ snapshots: yargs: 18.2.0 zod: 4.6.7 optionalDependencies: + ai: 6.0.317(zod@4.6.7) vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) transitivePeerDependencies: - '@babel/core' @@ -4313,6 +7918,51 @@ snapshots: - '@cloudflare/workers-types' - rolldown + ai-gateway-provider@3.1.2(@ai-sdk/openai-compatible@2.0.41(zod@4.1.8))(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(ai@6.0.317(zod@4.1.8))(zod@4.1.8): + dependencies: + '@ai-sdk/openai-compatible': 2.0.41(zod@4.1.8) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + ai: 6.0.317(zod@4.1.8) + optionalDependencies: + '@ai-sdk/amazon-bedrock': 4.0.112(zod@4.1.8) + '@ai-sdk/anthropic': 3.0.82(zod@4.1.8) + '@ai-sdk/azure': 3.0.88(zod@4.1.8) + '@ai-sdk/cerebras': 2.0.93(zod@4.1.8) + '@ai-sdk/cohere': 3.0.27(zod@4.1.8) + '@ai-sdk/deepgram': 2.0.68(zod@4.1.8) + '@ai-sdk/deepseek': 2.0.77(zod@4.1.8) + '@ai-sdk/elevenlabs': 2.0.69(zod@4.1.8) + '@ai-sdk/fireworks': 2.0.97(zod@4.1.8) + '@ai-sdk/google': 3.0.139(zod@4.1.8) + '@ai-sdk/google-vertex': 4.0.128(zod@4.1.8) + '@ai-sdk/groq': 3.0.79(zod@4.1.8) + '@ai-sdk/mistral': 3.0.51(zod@4.1.8) + '@ai-sdk/openai': 3.0.134(zod@4.1.8) + '@ai-sdk/perplexity': 3.0.26(zod@4.1.8) + '@ai-sdk/xai': 3.0.146(zod@4.1.8) + '@openrouter/ai-sdk-provider': 2.10.0(ai@6.0.317(zod@4.1.8))(zod@4.1.8) + transitivePeerDependencies: + - supports-color + - zod + + ai@6.0.317(zod@4.1.8): + dependencies: + '@ai-sdk/gateway': 3.0.223(zod@4.1.8) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + '@opentelemetry/api': 1.10.0 + zod: 4.1.8 + + ai@6.0.317(zod@4.6.7): + dependencies: + '@ai-sdk/gateway': 3.0.223(zod@4.6.7) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.6.7) + '@opentelemetry/api': 1.10.0 + zod: 4.6.7 + optional: true + ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -4330,6 +7980,10 @@ snapshots: any-promise@1.3.0: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@3.0.4: {} assert@2.1.0: @@ -4346,8 +8000,12 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + aws4fetch@1.0.20: {} + b4a@1.9.0: {} + balanced-match@4.0.4: {} + bare-events@2.9.2: {} bare-fs@4.8.4: @@ -4383,6 +8041,14 @@ snapshots: bignumber.js@9.3.1: {} + bin-links@6.0.3: + dependencies: + cmd-shim: 8.0.0 + npm-normalize-package-bin: 5.0.0 + proc-log: 6.1.0 + read-cmd-shim: 6.0.0 + write-file-atomic: 7.0.1 + blake3-wasm@2.1.5: {} body-parser@2.4.0: @@ -4401,6 +8067,14 @@ snapshots: bowser@2.14.1: {} + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + broker-factory@3.1.15: dependencies: '@babel/runtime': 7.29.10 @@ -4423,8 +8097,27 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + bun-ffi-structs@0.3.1(typescript@7.0.2): + dependencies: + typescript: 7.0.2 + + bun-pty@0.4.8: {} + bytes@3.1.2: {} + cacache@20.0.4: + dependencies: + '@npmcli/fs': 5.0.0 + fs-minipass: 3.0.3 + glob: 13.0.5 + lru-cache: 11.5.3 + minipass: 7.1.3 + minipass-collect: 2.0.1 + minipass-flush: 1.0.7 + minipass-pipeline: 1.2.4 + p-map: 7.1.1 + ssri: 13.0.1 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -4446,6 +8139,10 @@ snapshots: chai@6.3.0: {} + chownr@3.0.0: {} + + ci-info@4.4.0: {} + cjs-module-lexer@2.3.0: {} cliui@9.0.1: @@ -4454,8 +8151,12 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 9.0.2 + cmd-shim@8.0.0: {} + commander@4.1.1: {} + common-ancestor-path@2.0.0: {} + content-disposition@2.0.1: {} content-type@1.0.5: {} @@ -4479,12 +8180,20 @@ snapshots: cron-schedule@6.0.0: {} + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + cssesc@3.0.0: {} + data-uri-to-buffer@4.0.1: {} debug@4.4.3: @@ -4505,8 +8214,41 @@ snapshots: depd@2.0.0: {} + detect-libc@1.0.3: {} + detect-libc@2.1.2: {} + diff@8.0.4: {} + + diff@9.0.0: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + drizzle-orm@1.0.0-rc.5-169397b(@cloudflare/workers-types@5.20261026.1)(@opentelemetry/api@1.9.0)(effect@4.0.0-rc.112)(typebox@1.3.27)(valibot@1.5.0(typescript@7.0.2))(zod@4.1.8): + optionalDependencies: + '@cloudflare/workers-types': 5.20261026.1 + '@opentelemetry/api': 1.9.0 + effect: 4.0.0-rc.112 + typebox: 1.3.27 + valibot: 1.5.0(typescript@7.0.2) + zod: 4.1.8 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -4519,6 +8261,11 @@ snapshots: ee-first@1.1.1: {} + effect@4.0.0-rc.112: + dependencies: + fast-check: 4.10.2 + msgpackr: 2.1.2 + electron-to-chromium@1.5.464: {} emoji-regex@10.6.0: {} @@ -4531,6 +8278,24 @@ snapshots: dependencies: once: 1.4.0 + engine.io-client@6.6.7: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-parser: 5.2.3 + ws: 8.21.0 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + entities@4.5.0: {} + + env-paths@2.2.1: {} + error-stack-parser-es@1.0.5: {} es-define-property@1.0.1: {} @@ -4576,6 +8341,8 @@ snapshots: escape-html@1.0.3: {} + esprima@4.0.1: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -4600,6 +8367,8 @@ snapshots: expect-type@1.4.0: {} + exponential-backoff@3.1.3: {} + express-rate-limit@8.7.1(express@5.3.0): dependencies: debug: 4.4.3 @@ -4641,8 +8410,16 @@ snapshots: transitivePeerDependencies: - supports-color + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + extend@3.0.2: {} + fast-check@4.10.2: + dependencies: + pure-rand: 8.4.2 + fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -4665,8 +8442,26 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + ffi-rs@1.3.7: + optionalDependencies: + '@yuuang/ffi-rs-android-arm64': 1.3.7 + '@yuuang/ffi-rs-darwin-arm64': 1.3.7 + '@yuuang/ffi-rs-darwin-x64': 1.3.7 + '@yuuang/ffi-rs-linux-arm-gnueabihf': 1.3.7 + '@yuuang/ffi-rs-linux-arm64-gnu': 1.3.7 + '@yuuang/ffi-rs-linux-arm64-musl': 1.3.7 + '@yuuang/ffi-rs-linux-x64-gnu': 1.3.7 + '@yuuang/ffi-rs-linux-x64-musl': 1.3.7 + '@yuuang/ffi-rs-win32-arm64-msvc': 1.3.7 + '@yuuang/ffi-rs-win32-ia32-msvc': 1.3.7 + '@yuuang/ffi-rs-win32-x64-msvc': 1.3.7 + fflate@0.8.3: {} + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + finalhandler@2.1.1: dependencies: debug: 4.4.3 @@ -4692,11 +8487,17 @@ snapshots: fresh@2.0.0: {} + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.3 + fsevents@2.3.3: optional: true function-bind@1.1.2: {} + fuzzysort@3.1.0: {} + gaxios@7.3.1: dependencies: extend: 3.0.2 @@ -4734,26 +8535,116 @@ snapshots: hasown: 2.0.4 math-intrinsics: 1.1.0 - get-proto@1.0.1: + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + gitlab-ai-provider@6.12.1(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(graphql@16.14.2)(ws@8.21.0): + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + '@anthropic-ai/sdk': 0.71.2(zod@3.25.76) + '@anycable/core': 0.9.2 + graphql-request: 6.1.0(graphql@16.14.2) + isomorphic-ws: 5.0.0(ws@8.21.0) + openai: 6.49.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(ws@8.21.0)(zod@3.25.76) + socket.io-client: 4.8.4 + vscode-jsonrpc: 8.2.1 + zod: 3.25.76 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - encoding + - graphql + - supports-color + - utf-8-validate + - ws + + gitlab-ai-provider@6.12.1(@ai-sdk/provider-utils@4.0.23(zod@4.1.8))(@ai-sdk/provider@3.0.8)(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(graphql@16.14.2)(ws@8.22.0): + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.1.8) + '@anthropic-ai/sdk': 0.71.2(zod@3.25.76) + '@anycable/core': 0.9.2 + graphql-request: 6.1.0(graphql@16.14.2) + isomorphic-ws: 5.0.0(ws@8.22.0) + openai: 6.49.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(ws@8.22.0)(zod@3.25.76) + socket.io-client: 4.8.4 + vscode-jsonrpc: 8.2.1 + zod: 3.25.76 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - bufferutil + - encoding + - graphql + - supports-color + - utf-8-validate + - ws + + glob@13.0.5: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + + google-auth-library@10.5.0: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.3.1 + gcp-metadata: 8.1.2 + google-logging-utils: 1.1.3 + gtoken: 8.0.0 + jws: 4.0.1 + transitivePeerDependencies: + - supports-color + + google-auth-library@10.9.1: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.3.1 + gcp-metadata: 8.1.2 + google-logging-utils: 1.1.3 + jws: 4.0.1 + transitivePeerDependencies: + - supports-color + + google-logging-utils@1.1.3: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphql-request@6.1.0(graphql@16.14.2): + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) + cross-fetch: 3.2.0 + graphql: 16.14.2 + transitivePeerDependencies: + - encoding + + graphql@16.14.2: {} + + gray-matter@4.0.3: dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 + js-yaml: 3.15.2 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 - google-auth-library@10.9.1: + gtoken@8.0.0: dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 gaxios: 7.3.1 - gcp-metadata: 8.1.2 - google-logging-utils: 1.1.3 jws: 4.0.1 transitivePeerDependencies: - supports-color - google-logging-utils@1.1.3: {} - - gopd@1.2.0: {} - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -4774,8 +8665,21 @@ snapshots: dependencies: lru-cache: 11.5.3 + hosted-git-info@9.0.3: + dependencies: + lru-cache: 11.5.3 + html-rewriter-wasm@0.4.1: {} + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + + http-cache-semantics@4.3.0: {} + http-errors@2.0.1: dependencies: depd: 2.0.0 @@ -4784,6 +8688,13 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + http-proxy-agent@9.1.0: dependencies: agent-base: 9.0.0 @@ -4817,10 +8728,20 @@ snapshots: ieee754@1.2.1: {} + ignore-walk@8.0.0: + dependencies: + minimatch: 10.2.5 + + ignore@7.0.5: {} + + immer@11.1.4: {} + import-meta-resolve@4.2.0: {} inherits@2.0.4: {} + ini@6.0.0: {} + ip-address@10.7.5: {} ipaddr.js@1.9.1: {} @@ -4832,6 +8753,10 @@ snapshots: is-callable@1.2.7: {} + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 @@ -4840,11 +8765,17 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + is-nan@1.3.2: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 + is-number@7.0.0: {} + is-promise@4.0.0: {} is-regex@1.2.1: @@ -4860,12 +8791,27 @@ snapshots: isexe@2.0.0: {} + isexe@4.0.0: {} + + isomorphic-ws@5.0.0(ws@8.21.0): + dependencies: + ws: 8.21.0 + + isomorphic-ws@5.0.0(ws@8.22.0): + dependencies: + ws: 8.22.0 + jose@6.2.13: {} js-base64@3.9.4: {} js-tokens@10.0.0: {} + js-yaml@3.15.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@5.5.0: dependencies: argparse: 3.0.4 @@ -4876,6 +8822,8 @@ snapshots: dependencies: bignumber.js: 9.3.1 + json-parse-even-better-errors@5.0.0: {} + json-schema-to-ts@3.1.1: dependencies: '@babel/runtime': 7.29.10 @@ -4885,8 +8833,20 @@ snapshots: json-schema-typed@8.0.2: {} + json-schema@0.4.0: {} + + json-stringify-nice@1.1.4: {} + json5@2.2.3: {} + jsonc-parser@3.3.1: {} + + jsonparse@1.3.1: {} + + just-diff-apply@5.5.0: {} + + just-diff@6.0.2: {} + jwa@2.0.1: dependencies: buffer-equal-constant-time: 1.0.1 @@ -4898,6 +8858,8 @@ snapshots: jwa: 2.0.1 safe-buffer: 5.2.1 + kind-of@6.0.3: {} + kleur@4.1.5: {} layerr@3.0.0: {} @@ -4963,12 +8925,36 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + make-fetch-happen@15.0.6: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/agent': 4.0.2 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 + http-cache-semantics: 4.3.0 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minipass-flush: 1.0.7 + minipass-pipeline: 1.2.4 + negotiator: 1.1.0 + proc-log: 6.1.0 + ssri: 13.0.1 + transitivePeerDependencies: + - supports-color + + marked@17.0.1: {} + math-intrinsics@1.1.0: {} media-typer@1.1.1: {} merge-descriptors@2.0.0: {} + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -4981,6 +8967,8 @@ snapshots: dependencies: mime-db: 1.54.0 + mime@4.1.2: {} + mimetext@3.0.28: dependencies: '@babel/runtime': 7.29.10 @@ -5026,14 +9014,70 @@ snapshots: - bufferutil - utf-8-validate + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.12 + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.3 + + minipass-fetch@5.0.2: + dependencies: + minipass: 7.1.3 + minipass-sized: 2.0.0 + minizlib: 3.1.0 + optionalDependencies: + iconv-lite: 0.7.3 + + minipass-flush@1.0.7: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@2.0.0: + dependencies: + minipass: 7.1.3 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + ms@2.1.3: {} + msgpackr-extract@3.0.4: + dependencies: + node-gyp-build-optional-packages: 5.2.2 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4 + optional: true + + msgpackr@2.1.2: + optionalDependencies: + msgpackr-extract: 3.0.4 + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + nanoevents@7.0.1: {} + nanoid@3.3.20: {} nanoid@5.1.16: {} @@ -5042,16 +9086,65 @@ snapshots: dependencies: content-type: 2.1.0 + node-addon-api@7.1.1: {} + + node-addon-api@8.9.2: {} + node-domexception@1.0.0: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp-build-optional-packages@5.2.2: + dependencies: + detect-libc: 2.1.2 + optional: true + + node-gyp-build@4.8.4: {} + + node-gyp@12.4.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.8.5 + tar: 7.5.22 + tinyglobby: 0.2.17 + undici: 6.29.1 + which: 6.0.1 + node-releases@2.0.60: {} + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + + npm-bundled@5.0.0: + dependencies: + npm-normalize-package-bin: 5.0.0 + + npm-install-checks@8.0.0: + dependencies: + semver: 7.8.5 + + npm-normalize-package-bin@5.0.0: {} + + npm-package-arg@13.0.2: + dependencies: + hosted-git-info: 9.0.3 + proc-log: 6.1.0 + semver: 7.8.5 + validate-npm-package-name: 7.0.2 + npm-package-arg@14.0.0: dependencies: hosted-git-info: 10.1.1 @@ -5059,6 +9152,31 @@ snapshots: semver: 7.8.5 validate-npm-package-name: 8.0.0 + npm-packlist@10.0.4: + dependencies: + ignore-walk: 8.0.0 + proc-log: 6.1.0 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.2 + semver: 7.8.5 + + npm-registry-fetch@19.1.1: + dependencies: + '@npmcli/redact': 4.0.0 + jsonparse: 1.3.1 + make-fetch-happen: 15.0.6 + minipass: 7.1.3 + minipass-fetch: 5.0.2 + minizlib: 3.1.0 + npm-package-arg: 13.0.2 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -5089,19 +9207,71 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7): + openai@6.49.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(ws@8.21.0)(zod@3.25.76): optionalDependencies: '@aws-sdk/credential-provider-node': 3.972.88 '@smithy/signature-v4': 5.7.4 - undici: 7.30.1 + ws: 8.21.0 + zod: 3.25.76 + + openai@6.49.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(ws@8.22.0)(zod@3.25.76): + optionalDependencies: + '@aws-sdk/credential-provider-node': 3.972.88 + '@smithy/signature-v4': 5.7.4 + ws: 8.22.0 + zod: 3.25.76 + + openai@7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.1.8): + optionalDependencies: + '@aws-sdk/credential-provider-node': 3.972.88 + '@smithy/signature-v4': 5.7.4 + undici: 8.12.3 + ws: 8.22.0 + zod: 4.1.8 + + openai@7.19.0(@aws-sdk/credential-provider-node@3.972.88)(@smithy/signature-v4@5.7.4)(undici@8.12.3)(ws@8.22.0)(zod@4.6.7): + optionalDependencies: + '@aws-sdk/credential-provider-node': 3.972.88 + '@smithy/signature-v4': 5.7.4 + undici: 8.12.3 ws: 8.22.0 zod: 4.6.7 + p-map@7.1.1: {} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + pacote@21.5.2: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/git': 7.0.2 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.2 + '@npmcli/run-script': 10.0.4 + cacache: 20.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.3 + npm-package-arg: 13.0.2 + npm-packlist: 10.0.4 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + proc-log: 6.1.0 + sigstore: 4.1.1 + ssri: 13.0.1 + tar: 7.5.22 + transitivePeerDependencies: + - supports-color + + parse-conflict-json@5.0.1: + dependencies: + json-parse-even-better-errors: 5.0.0 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + parseurl@1.3.3: {} partial-json@0.1.7: {} @@ -5121,6 +9291,11 @@ snapshots: path-key@3.1.1: {} + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.3 + minipass: 7.1.3 + path-to-regexp@6.3.0: {} path-to-regexp@8.4.2: {} @@ -5129,6 +9304,8 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.2: {} + picomatch@4.0.7: {} pirates@4.0.7: {} @@ -5143,14 +9320,27 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-selector-parser@7.1.7: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss@8.5.31: dependencies: nanoid: 3.3.20 picocolors: 1.1.1 source-map-js: 1.2.2 + proc-log@6.1.0: {} + proc-log@7.0.0: {} + proggy@4.0.0: {} + + promise-all-reject-late@1.0.1: {} + + promise-call-limit@3.0.2: {} + protobufjs@7.6.6: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -5177,6 +9367,8 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 + pure-rand@8.4.2: {} + qs@6.16.1: dependencies: es-define-property: 1.0.1 @@ -5193,8 +9385,23 @@ snapshots: react@19.3.1: {} + read-cmd-shim@6.0.0: {} + + redis@6.3.0(@opentelemetry/api@1.9.0): + dependencies: + '@redis/bloom': 6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0)) + '@redis/client': 6.3.0(@opentelemetry/api@1.9.0) + '@redis/json': 6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0)) + '@redis/search': 6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0)) + '@redis/time-series': 6.3.0(@redis/client@6.3.0(@opentelemetry/api@1.9.0)) + transitivePeerDependencies: + - '@node-rs/xxhash' + - '@opentelemetry/api' + require-from-string@2.0.2: {} + resolve.exports@2.0.3: {} + resolve.exports@2.0.4: {} retry@0.13.1: {} @@ -5240,6 +9447,11 @@ snapshots: safer-buffer@2.1.2: {} + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + semver@7.8.5: {} send@1.2.1: @@ -5377,8 +9589,65 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + signal-exit@4.1.0: {} + + sigstore@4.1.1: + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.2 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 + '@sigstore/verify': 3.1.1 + transitivePeerDependencies: + - supports-color + + smart-buffer@4.2.0: {} + + socket.io-client@4.8.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + engine.io-client: 6.6.7 + socket.io-parser: 4.2.7 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.7: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.10 + transitivePeerDependencies: + - supports-color + + socks@2.8.10: + dependencies: + ip-address: 10.7.5 + smart-buffer: 4.2.0 + source-map-js@1.2.2: {} + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.24 + + spdx-license-ids@3.0.24: {} + + sprintf-js@1.0.3: {} + sqlite-vec-darwin-arm64@0.1.9: optional: true @@ -5404,6 +9673,10 @@ snapshots: sqlite-vec-linux-x64: 0.1.9 sqlite-vec-windows-x64: 0.1.9 + ssri@13.0.1: + dependencies: + minipass: 7.1.3 + standardwebhooks@1.1.1: dependencies: '@stablelib/base64': 1.0.1 @@ -5433,10 +9706,16 @@ snapshots: get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.4.0 + strip-ansi@7.2.0: dependencies: ansi-regex: 6.4.0 + strip-bom-string@1.0.0: {} + sucrase@3.35.1: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -5472,6 +9751,14 @@ snapshots: - bare-buffer - react-native-b4a + tar@7.5.22: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + teex@1.0.1: dependencies: streamx: 2.28.1 @@ -5502,14 +9789,40 @@ snapshots: fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + toidentifier@1.0.1: {} + tr46@0.0.3: {} + + tree-sitter-bash@0.25.0: + dependencies: + node-addon-api: 8.9.2 + node-gyp-build: 4.8.4 + + tree-sitter-powershell@0.25.10: + dependencies: + node-addon-api: 7.1.1 + node-gyp-build: 4.8.4 + + treeverse@3.0.0: {} + ts-algebra@2.0.0: {} ts-interface-checker@0.1.13: {} tslib@2.8.1: {} + tuf-js@4.1.0: + dependencies: + '@tufjs/models': 4.1.0 + debug: 4.4.3 + make-fetch-happen: 15.0.6 + transitivePeerDependencies: + - supports-color + turbo@2.11.10: optionalDependencies: '@turbo/darwin-64': 2.11.10 @@ -5527,6 +9840,8 @@ snapshots: typebox@1.3.27: {} + typescript@5.8.2: {} + typescript@7.0.2: optionalDependencies: '@typescript/typescript-aix-ppc64': 7.0.2 @@ -5556,12 +9871,16 @@ snapshots: undici-types@8.9.0: {} + undici@6.29.1: {} + undici@7.28.0: {} undici@7.29.1: {} undici@7.30.1: {} + undici@8.12.3: {} + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -5574,6 +9893,8 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + util-deprecate@1.0.2: {} + util@0.12.5: dependencies: inherits: 2.0.4 @@ -5586,10 +9907,21 @@ snapshots: optionalDependencies: typescript: 7.0.2 + validate-npm-package-name@7.0.2: {} + validate-npm-package-name@8.0.0: {} vary@1.1.2: {} + venice-ai-sdk-provider@2.1.1(ai@6.0.317(zod@4.1.8))(zod@4.1.8): + dependencies: + '@ai-sdk/openai-compatible': 2.0.87(zod@4.1.8) + '@ai-sdk/provider': 3.0.19 + '@ai-sdk/provider-utils': 4.0.62(zod@4.1.8) + ai: 6.0.317(zod@4.1.8) + transitivePeerDependencies: + - zod + verkit@0.5.0: {} vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1): @@ -5605,7 +9937,29 @@ snapshots: fsevents: 2.3.3 yaml: 2.9.1 - vitest@5.0.5(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)): + vitest@5.0.5(@opentelemetry/api@1.10.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)): + dependencies: + '@types/chai': 5.2.3 + '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + chai: 6.3.0 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) + why-is-node-running: 3.2.1 + optionalDependencies: + '@opentelemetry/api': 1.10.0 + '@types/node': 26.6.5 + transitivePeerDependencies: + - msw + + vitest@5.0.5(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)): dependencies: '@types/chai': 5.2.3 '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) @@ -5622,12 +9976,26 @@ snapshots: vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) why-is-node-running: 3.2.1 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 26.6.5 transitivePeerDependencies: - msw + vscode-jsonrpc@8.2.1: {} + + walk-up-path@4.0.0: {} + web-streams-polyfill@3.3.3: {} + web-tree-sitter@0.25.10: {} + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-typed-array@1.1.24: dependencies: available-typed-arrays: 1.0.7 @@ -5642,6 +10010,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@6.0.1: + dependencies: + isexe: 4.0.0 + why-is-node-running@3.2.1: {} worker-factory@7.0.50: @@ -5721,12 +10093,22 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@7.0.1: + dependencies: + signal-exit: 4.1.0 + ws@8.21.0: {} ws@8.22.0: {} + xmlhttprequest-ssl@2.1.2: {} + y18n@5.0.8: {} + yallist@4.0.0: {} + + yallist@5.0.0: {} + yaml@2.9.1: {} yargs-parser@22.0.0: {} @@ -5753,10 +10135,16 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 + zod-to-json-schema@3.25.2(zod@4.1.8): + dependencies: + zod: 4.1.8 + zod-to-json-schema@3.25.2(zod@4.6.7): dependencies: zod: 4.6.7 zod@3.25.76: {} + zod@4.1.8: {} + zod@4.6.7: {}