diff --git a/apps/app/.ladle/model-picker-query-provider.tsx b/apps/app/.ladle/model-picker-query-provider.tsx index 79b60ec97..2e031491c 100644 --- a/apps/app/.ladle/model-picker-query-provider.tsx +++ b/apps/app/.ladle/model-picker-query-provider.tsx @@ -10,6 +10,7 @@ import type { SystemExecutionOptionsResponse } from "@bb/server-contract"; import { systemExecutionOptionsQueryKey } from "../src/hooks/queries/query-keys"; import type { PickerOption } from "../src/components/pickers/OptionPicker"; import { + STORY_CLAUDE_CODE_MORE_MODELS, STORY_CLAUDE_CODE_MODELS, STORY_CLAUDE_REASONING, STORY_CODEX_MODELS, @@ -81,9 +82,11 @@ function makeSupportedReasoningEfforts( function makeAvailableModels({ models, reasoningOptions, + markFirstDefault = true, }: { models: readonly PickerOption[]; reasoningOptions: readonly PickerOption[]; + markFirstDefault?: boolean; }): AvailableModel[] { const defaultReasoningEffort = reasoningOptions.find((option) => option.value === "medium")?.value ?? @@ -99,17 +102,18 @@ function makeAvailableModels({ description: "", supportedReasoningEfforts, defaultReasoningEffort, - isDefault: index === 0, + isDefault: markFirstDefault && index === 0, })); } function makeExecutionOptions( models: AvailableModel[], + selectedOnlyModels: AvailableModel[] = [], ): SystemExecutionOptionsResponse { return { providers: STORY_PROVIDER_INFOS, models, - selectedOnlyModels: [], + selectedOnlyModels, modelLoadError: null, }; } @@ -140,6 +144,11 @@ function createStoryQueryClient(): QueryClient { models: STORY_CLAUDE_CODE_MODELS, reasoningOptions: STORY_CLAUDE_REASONING, }), + makeAvailableModels({ + models: STORY_CLAUDE_CODE_MORE_MODELS, + reasoningOptions: STORY_CLAUDE_REASONING, + markFirstDefault: false, + }), ), pi: makeExecutionOptions( makeAvailableModels({ diff --git a/apps/app/.ladle/story-fixtures.ts b/apps/app/.ladle/story-fixtures.ts index 6ee87ab29..e8436c2cc 100644 --- a/apps/app/.ladle/story-fixtures.ts +++ b/apps/app/.ladle/story-fixtures.ts @@ -125,8 +125,13 @@ export const STORY_CODEX_MODELS: readonly PickerOption[] = [ ]; export const STORY_CLAUDE_CODE_MODELS: readonly PickerOption[] = [ - { value: "claude-opus-4-7-1m", label: "Claude Opus 4.7 (1M)" }, - { value: "claude-opus-4-7", label: "Claude Opus 4.7" }, + { value: "claude-fable-5", label: "Claude Fable 5" }, + { value: "claude-opus-4-8[1m]", label: "Claude Opus 4.8 (1M)" }, + { value: "claude-sonnet-5", label: "Claude Sonnet 5" }, +]; + +export const STORY_CLAUDE_CODE_MORE_MODELS: readonly PickerOption[] = [ + { value: "claude-sonnet-4-6[1m]", label: "Claude Sonnet 4.6 (1M)" }, { value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6" }, { value: "claude-haiku-4-5", label: "Claude Haiku 4.5" }, ]; diff --git a/apps/app/src/components/pickers/ModelReasoningPicker.stories.tsx b/apps/app/src/components/pickers/ModelReasoningPicker.stories.tsx index 08a0ac60a..397639974 100644 --- a/apps/app/src/components/pickers/ModelReasoningPicker.stories.tsx +++ b/apps/app/src/components/pickers/ModelReasoningPicker.stories.tsx @@ -5,6 +5,7 @@ import { ModelReasoningPicker } from "./ModelReasoningPicker"; import { StoryCard, StoryRow } from "../../../.ladle/story-card"; import { STORY_CLAUDE_CODE_MODELS, + STORY_CLAUDE_CODE_MORE_MODELS, STORY_CLAUDE_REASONING, STORY_CODEX_MODELS, STORY_CODEX_REASONING, @@ -52,8 +53,9 @@ const codexBase = { const claudeBase = { ...codexBase, selectedProviderId: "claude-code", - modelValue: "claude-sonnet-4-6", + modelValue: "claude-sonnet-5", modelOptions: STORY_CLAUDE_CODE_MODELS, + moreModelOptions: STORY_CLAUDE_CODE_MORE_MODELS, reasoningOptions: STORY_CLAUDE_REASONING, showFastModeToggle: false, }; @@ -67,6 +69,15 @@ const MODEL_OPTIONS_BY_PROVIDER_ID: Record< pi: STORY_PI_MODELS, }; +const MORE_MODEL_OPTIONS_BY_PROVIDER_ID: Record< + string, + readonly (typeof STORY_CODEX_MODELS)[number][] +> = { + codex: [], + "claude-code": STORY_CLAUDE_CODE_MORE_MODELS, + pi: [], +}; + const REASONING_OPTIONS_BY_PROVIDER_ID: Record< string, readonly (typeof STORY_CODEX_REASONING)[number][] @@ -147,6 +158,8 @@ function ModelReasoningPickerInteractive() { const [selectedProviderId, setSelectedProviderId] = useState("codex"); const modelOptions = MODEL_OPTIONS_BY_PROVIDER_ID[selectedProviderId] ?? STORY_CODEX_MODELS; + const moreModelOptions = + MORE_MODEL_OPTIONS_BY_PROVIDER_ID[selectedProviderId] ?? []; const reasoningOptions = REASONING_OPTIONS_BY_PROVIDER_ID[selectedProviderId] ?? STORY_CODEX_REASONING; @@ -165,6 +178,7 @@ function ModelReasoningPickerInteractive() { }} modelValue={modelValue} modelOptions={modelOptions} + moreModelOptions={moreModelOptions} reasoningValue={reasoningValue} reasoningOptions={reasoningOptions} showFastModeToggle={ diff --git a/apps/app/src/components/promptbox/FollowUpPromptBox.stories.tsx b/apps/app/src/components/promptbox/FollowUpPromptBox.stories.tsx index 100b67692..d5f99804d 100644 --- a/apps/app/src/components/promptbox/FollowUpPromptBox.stories.tsx +++ b/apps/app/src/components/promptbox/FollowUpPromptBox.stories.tsx @@ -41,6 +41,7 @@ import { StoryCard, StoryRow } from "../../../.ladle/story-card"; import { makeEnvironment, makeExecutionControlsProps, + STORY_CLAUDE_CODE_MORE_MODELS, STORY_CLAUDE_CODE_MODELS, STORY_CLAUDE_REASONING, STORY_CODEX_MODELS, @@ -78,10 +79,10 @@ const claudePlanExecution = makeExecutionControlsProps({ displayName: "Claude Code", }, model: { - active: { model: "claude-sonnet-4-6" }, - selected: "claude-sonnet-4-6", + active: { model: "claude-sonnet-5" }, + selected: "claude-sonnet-5", options: STORY_CLAUDE_CODE_MODELS, - moreOptions: [], + moreOptions: STORY_CLAUDE_CODE_MORE_MODELS, isLoading: false, loadFailed: false, onChange: noop, diff --git a/apps/app/src/components/promptbox/NewThreadPromptBox.stories.tsx b/apps/app/src/components/promptbox/NewThreadPromptBox.stories.tsx index 7689b3eb2..b14f24d5f 100644 --- a/apps/app/src/components/promptbox/NewThreadPromptBox.stories.tsx +++ b/apps/app/src/components/promptbox/NewThreadPromptBox.stories.tsx @@ -24,6 +24,7 @@ import { HOST_IDS, PROJECT_IDS, STORY_BRANCH_OPTIONS, + STORY_CLAUDE_CODE_MORE_MODELS, STORY_PROJECTS, STORY_PROJECT_SOURCES, STORY_WORKTREE_OPTIONS, @@ -512,14 +513,14 @@ function ClaudeProviderRow() { ...baseExecution, provider: { ...baseExecution.provider, selectedId: "claude-code" }, model: { - active: { model: "claude-sonnet-4-6" }, - selected: "claude-sonnet-4-6", + active: { model: "claude-sonnet-5" }, + selected: "claude-sonnet-5", options: [ - { value: "claude-opus-4-7", label: "Claude Opus 4.7" }, - { value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6" }, - { value: "claude-haiku-4-5", label: "Claude Haiku 4.5" }, + { value: "claude-fable-5", label: "Claude Fable 5" }, + { value: "claude-opus-4-8[1m]", label: "Claude Opus 4.8 (1M)" }, + { value: "claude-sonnet-5", label: "Claude Sonnet 5" }, ], - moreOptions: [], + moreOptions: STORY_CLAUDE_CODE_MORE_MODELS, isLoading: false, loadFailed: false, onChange: noop, diff --git a/packages/agent-runtime/package.json b/packages/agent-runtime/package.json index 5e3f02b43..3a24157ab 100644 --- a/packages/agent-runtime/package.json +++ b/packages/agent-runtime/package.json @@ -33,7 +33,7 @@ "test:integration": "vitest run --config vitest.integration.config.ts" }, "dependencies": { - "@anthropic-ai/claude-agent-sdk": "^0.3.162", + "@anthropic-ai/claude-agent-sdk": "^0.3.197", "@anthropic-ai/sdk": "^0.93.0", "@bb/agent-providers": "workspace:*", "@bb/domain": "workspace:*", diff --git a/packages/agent-runtime/src/claude-code/bridge/__tests__/bridge.test.ts b/packages/agent-runtime/src/claude-code/bridge/__tests__/bridge.test.ts index 3e06e8792..3a3faf6d6 100644 --- a/packages/agent-runtime/src/claude-code/bridge/__tests__/bridge.test.ts +++ b/packages/agent-runtime/src/claude-code/bridge/__tests__/bridge.test.ts @@ -1486,25 +1486,16 @@ describe("bridge", () => { isDefault: false, }), expect.objectContaining({ - id: "claude-sonnet-4-6[1m]", - model: "claude-sonnet-4-6[1m]", - displayName: "Sonnet 4.6 (1M)", - isDefault: false, - }), - expect.objectContaining({ - id: "claude-sonnet-4-6", - model: "claude-sonnet-4-6", - displayName: "Sonnet 4.6", - isDefault: false, - }), - expect.objectContaining({ - id: "claude-haiku-4-5", - model: "claude-haiku-4-5", - displayName: "Haiku 4.5", + id: "claude-sonnet-5", + model: "claude-sonnet-5", + displayName: "Sonnet 5", isDefault: false, }), ]); expect(selectedOnlyModels.map((model) => model.model)).toEqual([ + "claude-sonnet-4-6[1m]", + "claude-sonnet-4-6", + "claude-haiku-4-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6[1m]", diff --git a/packages/agent-runtime/src/claude-code/error-info.ts b/packages/agent-runtime/src/claude-code/error-info.ts index d6eadf438..308805cfb 100644 --- a/packages/agent-runtime/src/claude-code/error-info.ts +++ b/packages/agent-runtime/src/claude-code/error-info.ts @@ -51,6 +51,7 @@ function getProviderErrorCategoryFromClaudeCode( case "rate_limit": return "rate-limit"; case "invalid_request": + case "model_not_found": return "bad-request"; case "server_error": return "internal"; diff --git a/packages/agent-runtime/src/claude-code/model-list.test.ts b/packages/agent-runtime/src/claude-code/model-list.test.ts index 54a1c8fbc..907d68751 100644 --- a/packages/agent-runtime/src/claude-code/model-list.test.ts +++ b/packages/agent-runtime/src/claude-code/model-list.test.ts @@ -9,9 +9,7 @@ describe("listClaudeCodeModels", () => { "claude-mythos-5", "claude-opus-4-8[1m]", "claude-opus-4-7[1m]", - "claude-sonnet-4-6[1m]", - "claude-sonnet-4-6", - "claude-haiku-4-5", + "claude-sonnet-5", ]); }); @@ -27,8 +25,17 @@ describe("listClaudeCodeModels", () => { ); }); - it("routes non-active Opus models to the selected-only bucket", () => { + it("routes secondary and non-active Claude models to the selected-only bucket", () => { const { models, selectedOnlyModels } = listClaudeCodeModels(); + expect(models.map((model) => model.model)).not.toContain( + "claude-sonnet-4-6[1m]", + ); + expect(models.map((model) => model.model)).not.toContain( + "claude-sonnet-4-6", + ); + expect(models.map((model) => model.model)).not.toContain( + "claude-haiku-4-5", + ); expect(models.map((model) => model.model)).not.toContain("claude-opus-4-8"); expect(models.map((model) => model.model)).not.toContain("claude-opus-4-7"); expect(models.map((model) => model.model)).not.toContain("claude-opus-4-6"); @@ -106,10 +113,12 @@ describe("listClaudeCodeModels", () => { "ultracode", "max", ]); - expect(effortLevelsByModel.get("claude-sonnet-4-6")).toEqual([ + expect(effortLevelsByModel.get("claude-sonnet-5")).toEqual([ "low", "medium", "high", + "xhigh", + "ultracode", "max", ]); }); @@ -119,6 +128,9 @@ describe("listClaudeCodeModels", () => { const activeIds = models.map((model) => model.model); const selectedOnlyIds = selectedOnlyModels.map((model) => model.model); for (const selectedOnlyModel of [ + "claude-sonnet-4-6[1m]", + "claude-sonnet-4-6", + "claude-haiku-4-5", "claude-opus-4-8", "claude-opus-4-7", "claude-opus-4-6[1m]", @@ -151,5 +163,27 @@ describe("listClaudeCodeModels", () => { ]), }), ); + expect( + selectedOnlyModels.find((model) => model.model === "claude-sonnet-4-6"), + ).toEqual( + expect.objectContaining({ + displayName: "Sonnet 4.6", + defaultReasoningEffort: "medium", + supportedReasoningEfforts: expect.arrayContaining([ + expect.objectContaining({ reasoningEffort: "max" }), + ]), + }), + ); + expect( + selectedOnlyModels.find((model) => model.model === "claude-haiku-4-5"), + ).toEqual( + expect.objectContaining({ + displayName: "Haiku 4.5", + defaultReasoningEffort: "low", + supportedReasoningEfforts: [ + expect.objectContaining({ reasoningEffort: "low" }), + ], + }), + ); }); }); diff --git a/packages/agent-runtime/src/claude-code/model-list.ts b/packages/agent-runtime/src/claude-code/model-list.ts index c8f3710a9..c3acdd007 100644 --- a/packages/agent-runtime/src/claude-code/model-list.ts +++ b/packages/agent-runtime/src/claude-code/model-list.ts @@ -56,6 +56,7 @@ const CLAUDE_MYTHOS_5_MODEL = "claude-mythos-5"; const CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8"; const CLAUDE_OPUS_4_7_MODEL = "claude-opus-4-7"; const CLAUDE_OPUS_4_6_MODEL = "claude-opus-4-6"; +const CLAUDE_SONNET_5_MODEL = "claude-sonnet-5"; const CLAUDE_SONNET_4_6_MODEL = "claude-sonnet-4-6"; const CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5"; @@ -65,9 +66,9 @@ function withOneMillionContext(model: string): string { const DEFAULT_CLAUDE_CODE_MODEL = withOneMillionContext(CLAUDE_OPUS_4_8_MODEL); -// Keep the active catalog version-pinned. Moving aliases and retired model -// strings live in the selected-only catalog so existing stored selections can -// render with their proper label without being offered as fresh choices. +// Keep the active catalog version-pinned. Secondary "More models" choices, +// moving aliases, and retired model strings live in the selected-only catalog +// so existing stored selections can render with their proper label. const CLAUDE_CODE_CATALOG: readonly ClaudeCodeCatalogEntry[] = [ { id: CLAUDE_FABLE_5_MODEL, @@ -102,6 +103,17 @@ const CLAUDE_CODE_CATALOG: readonly ClaudeCodeCatalogEntry[] = [ supportedReasoningEfforts: OPUS_4_7_REASONING_EFFORTS, defaultReasoningEffort: "medium", }, + { + id: CLAUDE_SONNET_5_MODEL, + model: CLAUDE_SONNET_5_MODEL, + displayName: "Sonnet 5", + description: "Sonnet 5 for everyday coding tasks with deeper reasoning", + supportedReasoningEfforts: XHIGH_CAPABLE_REASONING_EFFORTS, + defaultReasoningEffort: "medium", + }, +]; + +const CLAUDE_CODE_SELECTED_ONLY_CATALOG: readonly ClaudeCodeCatalogEntry[] = [ { id: withOneMillionContext(CLAUDE_SONNET_4_6_MODEL), model: withOneMillionContext(CLAUDE_SONNET_4_6_MODEL), @@ -126,9 +138,6 @@ const CLAUDE_CODE_CATALOG: readonly ClaudeCodeCatalogEntry[] = [ supportedReasoningEfforts: HAIKU_REASONING_EFFORTS, defaultReasoningEffort: "low", }, -]; - -const CLAUDE_CODE_SELECTED_ONLY_CATALOG: readonly ClaudeCodeCatalogEntry[] = [ { id: CLAUDE_OPUS_4_8_MODEL, model: CLAUDE_OPUS_4_8_MODEL, diff --git a/packages/agent-runtime/src/claude-code/schemas.ts b/packages/agent-runtime/src/claude-code/schemas.ts index 3ae0b38d0..a58169f34 100644 --- a/packages/agent-runtime/src/claude-code/schemas.ts +++ b/packages/agent-runtime/src/claude-code/schemas.ts @@ -133,6 +133,7 @@ export const claudeAssistantMessageErrorSchema = z.enum([ "billing_error", "rate_limit", "invalid_request", + "model_not_found", "server_error", "unknown", "max_output_tokens", diff --git a/packages/agent-runtime/src/claude-code/sdk-extraction.test.ts b/packages/agent-runtime/src/claude-code/sdk-extraction.test.ts index 308587a00..bf8f39e70 100644 --- a/packages/agent-runtime/src/claude-code/sdk-extraction.test.ts +++ b/packages/agent-runtime/src/claude-code/sdk-extraction.test.ts @@ -14,7 +14,7 @@ describe("resolveClaudeModelContextWindowHint", () => { }); it("uses the default Claude context window for non-1M models", () => { - expect(resolveClaudeModelContextWindowHint("claude-sonnet-4-6")).toBe( + expect(resolveClaudeModelContextWindowHint("claude-sonnet-5")).toBe( 200_000, ); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57ee1051b..fc9aa45ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -254,7 +254,7 @@ importers: version: 5.1.1(@types/node@22.19.10)(@types/react@19.2.13)(jiti@2.7.0)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) '@rolldown/plugin-babel': specifier: ^0.2.3 - version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) '@tailwindcss/vite': specifier: ^4.3.0 version: 4.3.0(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) @@ -278,7 +278,7 @@ importers: version: 8.56.1(eslint@9.39.3(jiti@2.7.0))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 @@ -552,7 +552,7 @@ importers: version: link:../../packages/tsconfig '@rolldown/plugin-babel': specifier: ^0.2.3 - version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) '@types/node': specifier: ^22.0.0 version: 22.19.10 @@ -567,7 +567,7 @@ importers: version: 8.56.1(eslint@9.39.3(jiti@2.7.0))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) + version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 @@ -736,8 +736,8 @@ importers: packages/agent-runtime: dependencies: '@anthropic-ai/claude-agent-sdk': - specifier: ^0.3.162 - version: 0.3.162(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6) + specifier: ^0.3.197 + version: 0.3.197(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6) '@anthropic-ai/sdk': specifier: ^0.93.0 version: 0.93.0(zod@4.3.6) @@ -1406,48 +1406,48 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.162': - resolution: {integrity: sha512-hafbfEtDeYko1rYCgIBAQbYnFXzd/hHf3IcoaD8mmlCQOAQhKA8gT/RPdLuuzQHdOjEgqDGTNOU+IjwL+msYcw==} + '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.197': + resolution: {integrity: sha512-jC6WvH5Hr6APTfbMjo4nC6LlyMMqbpCMwiHXIw7/AsQXIHQhZ+cRRMesQlV6UFI1l3O53gLZHzsG9cXwfrPHKw==} cpu: [arm64] os: [darwin] - '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.162': - resolution: {integrity: sha512-BNg2Mh/4zc2Jsgpq7Mj8+UH8iJ9xzHS/0CmusBMik0H2Bn7Hra5R/f+csAfZOzSflQl4CNQdGOB2bir7d2n8Ww==} + '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.197': + resolution: {integrity: sha512-ZQNvGkMrTyatBlHTIQ4w2i2aLBuvq355UP/FDLnVXIH8l23RsL1x/0w9P+dqB7EmY9OZi/cPxSrpskpo+dZWLA==} cpu: [x64] os: [darwin] - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.162': - resolution: {integrity: sha512-Jr4cyfqzb5V2+p/1PynIfGROOI0JNtV3vBMAgckAdtDzpIFk4mV2T8936tsZzgZr04y40YH1HlQpnJDr92I+Fw==} + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.197': + resolution: {integrity: sha512-VuIGXsLGK/aqSQ0tTBqqPVNzjefWS5SWnK8mlYyQitT4s5UDzHXJm0UZBTGxRtlcS0e2+QAHKwbGBCq1ZKSXjg==} cpu: [arm64] os: [linux] - '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.162': - resolution: {integrity: sha512-zCXYSimaXWQKZASfDJkoKXQr//toYDGIi16wKDh02Rqcr4mqFi9f5SBw/UCyimkGyYkNx3e+bmC+o/tFrLSTWw==} + '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.197': + resolution: {integrity: sha512-pWhQgCtAft4EGM4Zn24HRad1a/k2u6oA+2uM/KCdjehfKtooDiHfMNd1yzXY/n9AEBWP0RHB2Vz3mJ30X2pVAg==} cpu: [arm64] os: [linux] - '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.162': - resolution: {integrity: sha512-gW9Gpk7W3w3zGFHBDyY8uer/PE6T0pB+emN1aafZAomfseIH1ixJ6ya5Fw2cIS/K0/4oR2pvu4AprlbRBtr45Q==} + '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.197': + resolution: {integrity: sha512-3Tuy7XhD4UIKE4A4RPmKJcbL7Q/3dcB1hEWQt2lKP7c/DlixeEv+tRzvpnFZKhFX2hy0tkBk3QjkozSAacMC/w==} cpu: [x64] os: [linux] - '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.162': - resolution: {integrity: sha512-FO2+zDuSTsZ/5MqxIwExLxG0c2auA5wO6iICwZdUOWtboC6yU2AEgp4mzF0jbe1UOP0J27uODFpvz7uRpWipkg==} + '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.197': + resolution: {integrity: sha512-AUccrbdcv4Hy/GteP/gYLjG/zDP+fe2BFtDMctEfRFVz40DazYDcOyW1+nIgSTQtxf5jSTAVVf3cNuXB2CZwlw==} cpu: [x64] os: [linux] - '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.162': - resolution: {integrity: sha512-TZQifFDBdhzt1u6wbbpQ2AZcRkhNVYx1iZVfydAbs3L7ZMK264LjRPytBK4n4S413Is1XyLHbGMvEUNA3N+Tng==} + '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.197': + resolution: {integrity: sha512-Wx8uiAKBenDuL8lWQmrqnX5ppljaH5unQ9cKiCz2/9Kgf09dgnrwbX8n/FhndCZR8PmYw539eWwYVrSVc/bl6w==} cpu: [arm64] os: [win32] - '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.162': - resolution: {integrity: sha512-8ZYDgNxkGp47xwpcEZ6/qUXd4BByA8hTnNf4fJD6+P1wWi7Ofxc/d5jwXSYwajYvBvbbktQDthmGzjtoK3lXUw==} + '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.197': + resolution: {integrity: sha512-ZXJO/VvR3SI4G0gwthWeFXWdHB5RXPu3rtfGRcKZ/YgtDeW17rQ+LZIJTk2ywzbLb8EvlghR5JPgn293hC179Q==} cpu: [x64] os: [win32] - '@anthropic-ai/claude-agent-sdk@0.3.162': - resolution: {integrity: sha512-piAlpc1h6FUMCNU+bnYNNLX1lOgMlFnqZmIhn6Myv48MaNRaecFaZEuVLY+UxV0kjGiQFYHBLR4fk/rRwi2SAA==} + '@anthropic-ai/claude-agent-sdk@0.3.197': + resolution: {integrity: sha512-XNIi8W1tb+QfMkcK+5kepOC6BsxG8wtupd72H+pIPzIJypVQhHy7FoX+KBMtTRYwtl+5dsjKyABhjWXebeUilw==} engines: {node: '>=18.0.0'} peerDependencies: '@anthropic-ai/sdk': '>=0.93.0' @@ -1472,12 +1472,16 @@ packages: zod: optional: true - '@asamuzakjp/css-color@5.1.1': - resolution: {integrity: sha512-iGWN8E45Ws0XWx3D44Q1t6vX2LqhCKcwfmwBYCDsFrYFS6m4q/Ks61L2veETaLv+ckDC6+dTETJoaAAb7VjLiw==} + '@asamuzakjp/css-color@5.1.11': + resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@7.0.4': - resolution: {integrity: sha512-jXR6x4AcT3eIrS2fSNAwJpwirOkGcd+E7F7CP3zjdTqz9B/2huHOL8YJZBgekKwLML+u7qB/6P1LXQuMScsx0w==} + '@asamuzakjp/dom-selector@7.1.1': + resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/generational-cache@1.0.1': + resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/nwsapi@2.3.9': @@ -1628,6 +1632,10 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.0': resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} @@ -1670,6 +1678,10 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -1699,6 +1711,10 @@ packages: resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -1857,19 +1873,19 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + '@csstools/color-helpers@6.1.0': + resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.1.1': - resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} + '@csstools/css-calc@3.2.1': + resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.0.2': - resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} + '@csstools/css-color-parser@4.1.9': + resolution: {integrity: sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -1881,8 +1897,8 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.2': - resolution: {integrity: sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==} + '@csstools/css-syntax-patches-for-csstree@1.1.6': + resolution: {integrity: sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -2758,8 +2774,8 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@exodus/bytes@1.15.0': - resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} + '@exodus/bytes@1.15.1': + resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@noble/hashes': ^1.8.0 || ^2.0.0 @@ -2800,6 +2816,12 @@ packages: peerDependencies: hono: ^4 + '@hono/node-server@1.19.14': + resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + '@hono/node-ws@1.3.0': resolution: {integrity: sha512-ju25YbbvLuXdqBCmLZLqnNYu1nbHIQjoyUqA8ApZOeL1k4skuiTcw5SW77/5SUYo2Xi2NVBJoVlfQurnKEp03Q==} engines: {node: '>=18.14.1'} @@ -5161,8 +5183,8 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -5384,8 +5406,8 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - body-parser@2.2.2: - resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} + body-parser@2.3.0: + resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} boolbase@1.0.0: @@ -5640,6 +5662,10 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + content-type@2.0.0: + resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} + engines: {node: '>=18'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -6208,6 +6234,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6388,8 +6418,8 @@ packages: event-target-polyfill@0.0.4: resolution: {integrity: sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==} - eventsource-parser@3.0.6: - resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + eventsource-parser@3.1.0: + resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==} engines: {node: '>=18.0.0'} eventsource@3.0.7: @@ -6407,8 +6437,8 @@ packages: exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - express-rate-limit@8.3.2: - resolution: {integrity: sha512-77VmFeJkO0/rvimEDuUC5H30oqUC4EyOhyGccfqoLebB0oiEYfM7nwPrsDsBL1gsTpwfzX8SFy2MT3TDyRq+bg==} + express-rate-limit@8.5.2: + resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -6459,8 +6489,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-uri@3.1.3: + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} fast-xml-builder@1.1.4: resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} @@ -6566,6 +6596,10 @@ packages: resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} engines: {node: '>=14.14'} + fs-extra@11.3.6: + resolution: {integrity: sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -6834,6 +6868,10 @@ packages: resolution: {integrity: sha512-Eaw2YTGM6WOxA6CXbckaEvslr2Ne4NFsKrvc0v97JD5awbmeBLO5w9Ho9L9kmKonrwF9RJlW6BxT1PVv/agBHQ==} engines: {node: '>=16.9.0'} + hono@4.12.27: + resolution: {integrity: sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q==} + engines: {node: '>=16.9.0'} + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -6938,6 +6976,10 @@ packages: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} + ip-address@10.2.0: + resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -7055,6 +7097,9 @@ packages: jose@6.2.2: resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} + jose@6.2.3: + resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + jotai-family@1.0.1: resolution: {integrity: sha512-Zb/79GNDhC/z82R+6qTTpeKW4l4H6ZCApfF5W8G4SH37E4mhbysU7r8DkP0KX94hWvjB/6lt/97nSr3wB+64Zg==} engines: {node: '>=12.20.0'} @@ -7320,6 +7365,10 @@ packages: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -7843,8 +7892,8 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - parse5@8.0.0: - resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -8093,8 +8142,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.15.1: - resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} query-selector-shadow-dom@1.0.1: @@ -8114,8 +8163,8 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + range-parser@1.3.0: + resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} engines: {node: '>= 0.6'} raw-body@3.0.2: @@ -8504,8 +8553,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -8594,6 +8643,11 @@ packages: engines: {node: '>=20.16.0'} hasBin: true + srvx@0.11.18: + resolution: {integrity: sha512-7/EW5sPdC1bU7iq1tgTvCZqUQDkJdsqIVzYqBv7SuBfQQ10oWkKj4KYNOw0H4Ig26bXuUYDA7XTKxB+/HC5SRw==} + engines: {node: '>=20.16.0'} + hasBin: true + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -8820,6 +8874,7 @@ packages: tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} + deprecated: unmaintained hasBin: true peerDependencies: typescript: ^5.0.0 @@ -8899,9 +8954,9 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type-is@2.0.1: - resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} - engines: {node: '>= 0.6'} + type-is@2.1.0: + resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} + engines: {node: '>= 18'} typebox@1.1.34: resolution: {integrity: sha512-V0fM5W5DTXlEMDxqtX1dQ25HR1RQ11DPUVrIup4sJi1yQtIyI30SHfxBy/HjXKL1CtUqc5or2igA/wa/v4hMKQ==} @@ -8941,6 +8996,10 @@ packages: resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} engines: {node: '>=20.18.1'} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} + engines: {node: '>=20.18.1'} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -9411,6 +9470,11 @@ packages: peerDependencies: zod: 4.3.6 + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: 4.3.6 + zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -9432,44 +9496,44 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.0.2 - '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.162': + '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.162': + '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.162': + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.162': + '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.162': + '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.162': + '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.162': + '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.162': + '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.197': optional: true - '@anthropic-ai/claude-agent-sdk@0.3.162(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6)': + '@anthropic-ai/claude-agent-sdk@0.3.197(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.93.0(zod@4.3.6) '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) zod: 4.3.6 optionalDependencies: - '@anthropic-ai/claude-agent-sdk-darwin-arm64': 0.3.162 - '@anthropic-ai/claude-agent-sdk-darwin-x64': 0.3.162 - '@anthropic-ai/claude-agent-sdk-linux-arm64': 0.3.162 - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl': 0.3.162 - '@anthropic-ai/claude-agent-sdk-linux-x64': 0.3.162 - '@anthropic-ai/claude-agent-sdk-linux-x64-musl': 0.3.162 - '@anthropic-ai/claude-agent-sdk-win32-arm64': 0.3.162 - '@anthropic-ai/claude-agent-sdk-win32-x64': 0.3.162 + '@anthropic-ai/claude-agent-sdk-darwin-arm64': 0.3.197 + '@anthropic-ai/claude-agent-sdk-darwin-x64': 0.3.197 + '@anthropic-ai/claude-agent-sdk-linux-arm64': 0.3.197 + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl': 0.3.197 + '@anthropic-ai/claude-agent-sdk-linux-x64': 0.3.197 + '@anthropic-ai/claude-agent-sdk-linux-x64-musl': 0.3.197 + '@anthropic-ai/claude-agent-sdk-win32-arm64': 0.3.197 + '@anthropic-ai/claude-agent-sdk-win32-x64': 0.3.197 '@anthropic-ai/sdk@0.90.0(zod@4.3.6)': dependencies: @@ -9483,22 +9547,25 @@ snapshots: optionalDependencies: zod: 4.3.6 - '@asamuzakjp/css-color@5.1.1': + '@asamuzakjp/css-color@5.1.11': dependencies: - '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@asamuzakjp/generational-cache': 1.0.1 + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.7 optional: true - '@asamuzakjp/dom-selector@7.0.4': + '@asamuzakjp/dom-selector@7.1.1': dependencies: + '@asamuzakjp/generational-cache': 1.0.1 '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 + optional: true + + '@asamuzakjp/generational-cache@1.0.1': optional: true '@asamuzakjp/nwsapi@2.3.9': @@ -9904,6 +9971,12 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.29.0': {} '@babel/core@7.29.0': @@ -9966,6 +10039,8 @@ snapshots: '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helpers@7.28.6': @@ -9989,6 +10064,8 @@ snapshots: '@babel/runtime@7.28.6': {} + '@babel/runtime@7.29.7': {} + '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -10112,19 +10189,19 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/color-helpers@6.0.2': + '@csstools/color-helpers@6.1.0': optional: true - '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 optional: true - '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 6.0.2 - '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/color-helpers': 6.1.0 + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 optional: true @@ -10134,7 +10211,7 @@ snapshots: '@csstools/css-tokenizer': 4.0.0 optional: true - '@csstools/css-syntax-patches-for-csstree@1.1.2(css-tree@3.2.1)': + '@csstools/css-syntax-patches-for-csstree@1.1.6(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 optional: true @@ -10260,7 +10337,7 @@ snapshots: dependencies: cross-dirname: 0.1.0 debug: 4.4.3 - fs-extra: 11.3.5 + fs-extra: 11.3.6 minimist: 1.2.8 postject: 1.0.0-alpha.6 transitivePeerDependencies: @@ -10710,7 +10787,7 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@exodus/bytes@1.15.0(@noble/hashes@2.0.1)': + '@exodus/bytes@1.15.1(@noble/hashes@2.0.1)': optionalDependencies: '@noble/hashes': 2.0.1 optional: true @@ -10751,6 +10828,10 @@ snapshots: dependencies: hono: 4.11.9 + '@hono/node-server@1.19.14(hono@4.12.27)': + dependencies: + hono: 4.12.27 + '@hono/node-ws@1.3.0(@hono/node-server@1.19.11(hono@4.11.9))(hono@4.11.9)': dependencies: '@hono/node-server': 1.19.11(hono@4.11.9) @@ -11251,23 +11332,23 @@ snapshots: '@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.11(hono@4.11.9) - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + '@hono/node-server': 1.19.14(hono@4.12.27) + 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.0.6 + eventsource-parser: 3.1.0 express: 5.2.1 - express-rate-limit: 8.3.2(express@5.2.1) - hono: 4.11.9 - jose: 6.2.2 + express-rate-limit: 8.5.2(express@5.2.1) + hono: 4.12.27 + jose: 6.2.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 zod: 4.3.6 - zod-to-json-schema: 3.25.1(zod@4.3.6) + zod-to-json-schema: 3.25.2(zod@4.3.6) transitivePeerDependencies: - supports-color @@ -11876,13 +11957,13 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0': optional: true - '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2))': + '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.29.0 picomatch: 4.0.4 rolldown: 1.0.0 optionalDependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.7 vite: 8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2) '@rolldown/pluginutils@1.0.0': {} @@ -12655,8 +12736,8 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.28.6 + '@babel/code-frame': 7.29.7 + '@babel/runtime': 7.29.7 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -13217,12 +13298,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 vite: 8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2) optionalDependencies: - '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.28.6)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) + '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.7)(rolldown@1.0.0)(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.0)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.2)) babel-plugin-react-compiler: 1.0.0 '@vitest/expect@4.1.1': @@ -13316,9 +13397,9 @@ snapshots: agent-base@7.1.4: {} - ajv-formats@3.0.1(ajv@8.18.0): + ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: - ajv: 8.18.0 + ajv: 8.20.0 ajv-keywords@3.5.2(ajv@6.14.0): dependencies: @@ -13331,10 +13412,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.18.0: + ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -13537,17 +13618,17 @@ snapshots: blake3-wasm@2.1.5: {} - body-parser@2.2.2: + body-parser@2.3.0: dependencies: bytes: 3.1.2 - content-type: 1.0.5 + content-type: 2.0.0 debug: 4.4.3 http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.15.1 + qs: 6.15.3 raw-body: 3.0.2 - type-is: 2.0.1 + type-is: 2.1.0 transitivePeerDependencies: - supports-color @@ -13801,6 +13882,8 @@ snapshots: content-type@1.0.5: {} + content-type@2.0.0: {} + convert-source-map@2.0.0: {} cookie-es@3.1.1: {} @@ -14346,6 +14429,9 @@ snapshots: entities@6.0.1: {} + entities@8.0.0: + optional: true + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -14671,11 +14757,11 @@ snapshots: event-target-polyfill@0.0.4: {} - eventsource-parser@3.0.6: {} + eventsource-parser@3.1.0: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.6 + eventsource-parser: 3.1.0 expand-template@2.0.3: {} @@ -14683,15 +14769,15 @@ snapshots: exponential-backoff@3.1.3: {} - express-rate-limit@8.3.2(express@5.2.1): + express-rate-limit@8.5.2(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.1.0 + ip-address: 10.2.0 express@5.2.1: dependencies: accepts: 2.0.0 - body-parser: 2.2.2 + body-parser: 2.3.0 content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 @@ -14710,13 +14796,13 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.15.1 - range-parser: 1.2.1 + qs: 6.15.3 + range-parser: 1.3.0 router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 statuses: 2.0.2 - type-is: 2.0.1 + type-is: 2.1.0 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -14762,7 +14848,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.0: {} + fast-uri@3.1.3: {} fast-xml-builder@1.1.4: dependencies: @@ -14884,6 +14970,13 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 + fs-extra@11.3.6: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + optional: true + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -15092,7 +15185,7 @@ snapshots: h3@2.0.1-rc.20: dependencies: rou3: 0.8.1 - srvx: 0.11.16 + srvx: 0.11.18 hachure-fill@0.5.2: {} @@ -15318,6 +15411,8 @@ snapshots: hono@4.11.9: {} + hono@4.12.27: {} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 @@ -15328,7 +15423,7 @@ snapshots: html-encoding-sniffer@6.0.0(@noble/hashes@2.0.1): dependencies: - '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) + '@exodus/bytes': 1.15.1(@noble/hashes@2.0.1) transitivePeerDependencies: - '@noble/hashes' optional: true @@ -15425,6 +15520,8 @@ snapshots: ip-address@10.1.0: {} + ip-address@10.2.0: {} + ipaddr.js@1.9.1: {} is-alphabetical@2.0.1: {} @@ -15516,6 +15613,8 @@ snapshots: jose@6.2.2: {} + jose@6.2.3: {} + jotai-family@1.0.1(jotai@2.19.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.13)(react@19.2.4)): dependencies: jotai: 2.19.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.13)(react@19.2.4) @@ -15542,22 +15641,22 @@ snapshots: jsdom@29.0.1(@noble/hashes@2.0.1): dependencies: - '@asamuzakjp/css-color': 5.1.1 - '@asamuzakjp/dom-selector': 7.0.4 + '@asamuzakjp/css-color': 5.1.11 + '@asamuzakjp/dom-selector': 7.1.1 '@bramus/specificity': 2.4.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.2(css-tree@3.2.1) - '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.6(css-tree@3.2.1) + '@exodus/bytes': 1.15.1(@noble/hashes@2.0.1) css-tree: 3.2.1 data-urls: 7.0.0(@noble/hashes@2.0.1) decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0(@noble/hashes@2.0.1) is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 - parse5: 8.0.0 + lru-cache: 11.5.1 + parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.24.8 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -15764,6 +15863,9 @@ snapshots: lru-cache@11.2.7: {} + lru-cache@11.5.1: + optional: true + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -16614,9 +16716,9 @@ snapshots: dependencies: entities: 6.0.1 - parse5@8.0.0: + parse5@8.0.1: dependencies: - entities: 6.0.1 + entities: 8.0.0 optional: true parseurl@1.3.3: {} @@ -16938,9 +17040,10 @@ snapshots: punycode@2.3.1: {} - qs@6.15.1: + qs@6.15.3: dependencies: - side-channel: 1.1.0 + es-define-property: 1.0.1 + side-channel: 1.1.1 query-selector-shadow-dom@1.0.1: {} @@ -16956,7 +17059,7 @@ snapshots: quick-lru@5.1.1: {} - range-parser@1.2.1: {} + range-parser@1.3.0: {} raw-body@3.0.2: dependencies: @@ -17393,7 +17496,7 @@ snapshots: mime-types: 3.0.2 ms: 2.1.3 on-finished: 2.4.1 - range-parser: 1.2.1 + range-parser: 1.3.0 statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -17494,7 +17597,7 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -17577,6 +17680,8 @@ snapshots: srvx@0.11.16: {} + srvx@0.11.18: {} + stackback@0.0.2: {} stat-mode@1.0.0: {} @@ -17857,9 +17962,9 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - type-is@2.0.1: + type-is@2.1.0: dependencies: - content-type: 1.0.5 + content-type: 2.0.0 media-typer: 1.1.0 mime-types: 3.0.2 @@ -17884,6 +17989,9 @@ snapshots: undici@7.24.8: {} + undici@7.28.0: + optional: true + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -18210,7 +18318,7 @@ snapshots: whatwg-url@16.0.1(@noble/hashes@2.0.1): dependencies: - '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) + '@exodus/bytes': 1.15.1(@noble/hashes@2.0.1) tr46: 6.0.0 webidl-conversions: 8.0.1 transitivePeerDependencies: @@ -18383,6 +18491,10 @@ snapshots: dependencies: zod: 4.3.6 + zod-to-json-schema@3.25.2(zod@4.3.6): + dependencies: + zod: 4.3.6 + zod-validation-error@4.0.2(zod@4.3.6): dependencies: zod: 4.3.6