diff --git a/.changeset/agent-manager-project-reorder.md b/.changeset/agent-manager-project-reorder.md
new file mode 100644
index 00000000000..bde727ca1ee
--- /dev/null
+++ b/.changeset/agent-manager-project-reorder.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": minor
+---
+
+Reorder projects in the Agent Manager sidebar with drag and drop. The order is kept after a restart.
diff --git a/.changeset/agent-manager-setup-per-worktree.md b/.changeset/agent-manager-setup-per-worktree.md
deleted file mode 100644
index 8dc87d5ecf0..00000000000
--- a/.changeset/agent-manager-setup-per-worktree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"kilo-code": patch
----
-
-Run the Agent Manager worktree setup script for a new worktree even when the setup script of another worktree is still running in the VS Code terminal, and show an error when the setup task cannot start.
diff --git a/.changeset/agent-session-explicit-intent.md b/.changeset/agent-session-explicit-intent.md
new file mode 100644
index 00000000000..6d1a1c9715b
--- /dev/null
+++ b/.changeset/agent-session-explicit-intent.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Tune the `agent_manager` and `task` tool instructions so agents only start new Agent Manager sessions or worktrees when the user explicitly asks, or after confirming with the user first.
diff --git a/.changeset/align-spinner-identicon-grid.md b/.changeset/align-spinner-identicon-grid.md
new file mode 100644
index 00000000000..e05b80bdf27
--- /dev/null
+++ b/.changeset/align-spinner-identicon-grid.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Align the loading spinner with the subagent identicon. The spinner now uses the same 5x5 dot grid as subagent avatars, so loading and subagent indicators share one cell layout. The four corner cells stay empty and the same twinkle animation is kept.
diff --git a/.changeset/bedrock-tool-result-images.md b/.changeset/bedrock-tool-result-images.md
new file mode 100644
index 00000000000..766cc3e0d6a
--- /dev/null
+++ b/.changeset/bedrock-tool-result-images.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Keep Amazon Bedrock GPT-6 and GPT-5.6 sessions working after a tool returns an image.
diff --git a/.changeset/board-in-session-dock.md b/.changeset/board-in-session-dock.md
new file mode 100644
index 00000000000..c846cefce44
--- /dev/null
+++ b/.changeset/board-in-session-dock.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Move the agent board button next to the background agents above the prompt. It shows the latest posts and marks new ones, and stays available after agents are cleared or the window reloads.
diff --git a/.changeset/browser-ide-theme.md b/.changeset/browser-ide-theme.md
new file mode 100644
index 00000000000..939ba1b6c0c
--- /dev/null
+++ b/.changeset/browser-ide-theme.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Match the Integrated Browser color scheme to the current IDE theme so pages that support `prefers-color-scheme` render in dark or light to match the editor.
diff --git a/.changeset/browser-shift-click-external.md b/.changeset/browser-shift-click-external.md
new file mode 100644
index 00000000000..f0d2489aa2d
--- /dev/null
+++ b/.changeset/browser-shift-click-external.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": minor
+---
+
+Open chat links in the system browser with Shift-click when the Integrated Browser handles link clicks
diff --git a/.changeset/cloud-session-shell-tmp.md b/.changeset/cloud-session-shell-tmp.md
new file mode 100644
index 00000000000..a6505716eff
--- /dev/null
+++ b/.changeset/cloud-session-shell-tmp.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Cloud sessions: the bash tool now advertises a session-scoped temp dir covered by the injected permission rules instead of the denied shared temp dir.
diff --git a/.changeset/command-frontmatter-instance.md b/.changeset/command-frontmatter-instance.md
new file mode 100644
index 00000000000..ea437e56b9d
--- /dev/null
+++ b/.changeset/command-frontmatter-instance.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Stop reporting a false frontmatter parse error when saving command markdown files
diff --git a/.changeset/config-overlay-shadowed-error.md b/.changeset/config-overlay-shadowed-error.md
new file mode 100644
index 00000000000..1c37250d730
--- /dev/null
+++ b/.changeset/config-overlay-shadowed-error.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Report an error instead of silently keeping the old value when a config change is overridden by a higher-priority file such as `opencode.json`. Config validation and write failures now return the file and issue details instead of an opaque server error.
diff --git a/.changeset/conn-reset-normal-retry.md b/.changeset/conn-reset-normal-retry.md
new file mode 100644
index 00000000000..cd0c203d62d
--- /dev/null
+++ b/.changeset/conn-reset-normal-retry.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Retry provider connection resets (`Connection reset by server`) through the normal retry path with backoff instead of pausing the session waiting for network reconnection. Connection resets are transient server-side failures when the error is marked retryable; only genuine network disconnections still trigger the offline wait.
diff --git a/.changeset/custom-zai-thinking.md b/.changeset/custom-zai-thinking.md
new file mode 100644
index 00000000000..fb8832d121e
--- /dev/null
+++ b/.changeset/custom-zai-thinking.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Avoid enabling thinking automatically for custom providers whose names contain zai or zhipuai.
diff --git a/.changeset/fix-compaction-terminal-errors.md b/.changeset/fix-compaction-terminal-errors.md
new file mode 100644
index 00000000000..2f53770f086
--- /dev/null
+++ b/.changeset/fix-compaction-terminal-errors.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Report empty summaries and unrecoverable context overflow during compaction instead of silently stopping. Preserve conversation history and explain when to retry compaction or start a new session.
diff --git a/.changeset/fix-permission-unknown-route.md b/.changeset/fix-permission-unknown-route.md
new file mode 100644
index 00000000000..ad87f1c84ed
--- /dev/null
+++ b/.changeset/fix-permission-unknown-route.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Fix permission prompts from subagents failing with "Failed to update permissions" and getting stuck
diff --git a/.changeset/fix-vscode-drive-root-startup.md b/.changeset/fix-vscode-drive-root-startup.md
new file mode 100644
index 00000000000..49ebb86f722
--- /dev/null
+++ b/.changeset/fix-vscode-drive-root-startup.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Fix backend startup when a Windows drive root is opened as a workspace.
diff --git a/.changeset/fix-windows-arm64-error.md b/.changeset/fix-windows-arm64-error.md
new file mode 100644
index 00000000000..e972d657a6a
--- /dev/null
+++ b/.changeset/fix-windows-arm64-error.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Improve missing binary error message on Windows ARM64 to provide actionable workarounds (x64 emulation or WSL2).
diff --git a/.changeset/goal-command-alias.md b/.changeset/goal-command-alias.md
new file mode 100644
index 00000000000..e2192b11de0
--- /dev/null
+++ b/.changeset/goal-command-alias.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Expose a custom or plugin command named `goal` as `/goal:command` instead of dropping it. `/goal` still starts a session goal, and the configuration warning now names the alias so the command stays reachable.
diff --git a/.changeset/jetbrains-mcp-oauth-sign-in.md b/.changeset/jetbrains-mcp-oauth-sign-in.md
new file mode 100644
index 00000000000..21462542e5f
--- /dev/null
+++ b/.changeset/jetbrains-mcp-oauth-sign-in.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/kilo-jetbrains": minor
+---
+
+Sign in to remote MCP servers from JetBrains. MCP Settings now highlights servers that need authentication, only shows actions valid for the current connection state, keeps selected-row actions visible when focus moves elsewhere, shows the real sign-in error, lets you cancel an in-progress sign-in without losing credentials you already had, and offers a copyable authorization URL when a browser cannot be opened automatically. Sign-in opens the browser on your own machine, so it also works in remote development. Installing an MCP server from the Marketplace that needs sign-in now offers to start it right away, and the prompt shows a session-issues menu with a sign-in action when a configured MCP server needs authentication. Removing either half of a Marketplace MCP and companion-skill bundle from MCP or Skills Settings now confirms and removes the whole bundle. Remote MCP servers that require a pre-registered OAuth client can now be configured directly from the edit dialog.
diff --git a/.changeset/jetbrains-prompt-navigator.md b/.changeset/jetbrains-prompt-navigator.md
new file mode 100644
index 00000000000..4457ba378e7
--- /dev/null
+++ b/.changeset/jetbrains-prompt-navigator.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/kilo-jetbrains": minor
+---
+
+Add a prompt navigator to the chat transcript for jumping between prompts.
diff --git a/.changeset/jetbrains-timeline-navigation.md b/.changeset/jetbrains-timeline-navigation.md
new file mode 100644
index 00000000000..5a1a5f48d93
--- /dev/null
+++ b/.changeset/jetbrains-timeline-navigation.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/kilo-jetbrains": patch
+---
+
+Restore clicking session timeline bars to navigate to the matching transcript content in JetBrains
diff --git a/.changeset/jetbrains-worktree-pr-badge-after-agent-stops.md b/.changeset/jetbrains-worktree-pr-badge-after-agent-stops.md
new file mode 100644
index 00000000000..ace6101f4fe
--- /dev/null
+++ b/.changeset/jetbrains-worktree-pr-badge-after-agent-stops.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/kilo-jetbrains": patch
+---
+
+Show a worktree's pull request badge as soon as the agent that opened the pull request stops, instead of up to ten minutes later
diff --git a/.changeset/kilocode-message-diagnostics.md b/.changeset/kilocode-message-diagnostics.md
new file mode 100644
index 00000000000..63029fb14e8
--- /dev/null
+++ b/.changeset/kilocode-message-diagnostics.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Log structural diagnostics (message part sequences, tool-call/result pairing, schema issue paths) when the AI SDK rejects an assembled request, instead of failing with a bare `ModelMessage[] schema` error.
diff --git a/.changeset/mcp-interrupted-startup.md b/.changeset/mcp-interrupted-startup.md
new file mode 100644
index 00000000000..d743f57a320
--- /dev/null
+++ b/.changeset/mcp-interrupted-startup.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Stop MCP servers from piling up when a request is cancelled while they are still starting. Servers that had already started are now shut down, and the next request starts MCP again instead of failing until the backend restarts.
diff --git a/.changeset/native-browser-feedback.md b/.changeset/native-browser-feedback.md
new file mode 100644
index 00000000000..e971bafd640
--- /dev/null
+++ b/.changeset/native-browser-feedback.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Show page cursor feedback in the Integrated Browser, including text fields, resize handles, and drag controls, without changing page scrolling or compositing.
diff --git a/.changeset/open-browser-external.md b/.changeset/open-browser-external.md
new file mode 100644
index 00000000000..61fc63b41b1
--- /dev/null
+++ b/.changeset/open-browser-external.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": minor
+---
+
+Support opening the current Integrated Browser page in the external default browser
diff --git a/.changeset/openai-compatible-dimension-fallback.md b/.changeset/openai-compatible-dimension-fallback.md
new file mode 100644
index 00000000000..1db6b3b865d
--- /dev/null
+++ b/.changeset/openai-compatible-dimension-fallback.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/kilo-indexing": patch
+---
+
+Support OpenAI-compatible indexing endpoints that reject the optional `dimensions` parameter when their native vectors match the configured size. Report a clear error when the endpoint returns a different vector size.
diff --git a/.changeset/per-conversation-prompt-history.md b/.changeset/per-conversation-prompt-history.md
deleted file mode 100644
index 94fe1a5ead0..00000000000
--- a/.changeset/per-conversation-prompt-history.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"kilo-code": minor
----
-
-Add an experimental "Per-Conversation Prompt History" setting that keeps prompt input history separate for each conversation
diff --git a/.changeset/pr-panel-open-browser-icon.md b/.changeset/pr-panel-open-browser-icon.md
new file mode 100644
index 00000000000..76eadd1e9de
--- /dev/null
+++ b/.changeset/pr-panel-open-browser-icon.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Use the standard open-in-browser icon for the Agent Manager PR panel's external link button, so it matches the open-in-browser affordance used elsewhere in the app.
diff --git a/.changeset/reserved-command-name-clash.md b/.changeset/reserved-command-name-clash.md
new file mode 100644
index 00000000000..00fbcc3a849
--- /dev/null
+++ b/.changeset/reserved-command-name-clash.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Keep slash commands working when a plugin or your config defines a command named `goal`. Such a command clashes with Kilo's own `/goal` and used to hide every slash command, including `/init`, `/review`, and your own, leaving autocomplete empty. The clashing command is now skipped and reported as a configuration warning, so the CLI, VS Code, and JetBrains all tell you which command was ignored and why, while the rest keep working. A command list that fails to load also shows a warning in the CLI instead of silently showing no commands.
diff --git a/.changeset/segmented-prompt-selectors.md b/.changeset/segmented-prompt-selectors.md
new file mode 100644
index 00000000000..a5b17b2166f
--- /dev/null
+++ b/.changeset/segmented-prompt-selectors.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": minor
+---
+
+Show the agent, model, and reasoning selectors as one split control in the prompt toolbar and the Agent Manager New Worktree dialog. While one picker is open, move the pointer to another part to switch to it, or use the Left and Right arrow keys. The reasoning level shows only when it is set and there is room. Otherwise it collapses into the trailing arrow, and a changed level shows for a moment. On narrow sidebars, less used actions move into a "More actions" menu one at a time, while voice input and send stay visible. The toolbar always stays one row, so a long model name truncates and does not hide actions.
diff --git a/.changeset/serve-shutdown-deadline.md b/.changeset/serve-shutdown-deadline.md
new file mode 100644
index 00000000000..379ab664bc8
--- /dev/null
+++ b/.changeset/serve-shutdown-deadline.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Force `kilo serve` to exit after five seconds if graceful shutdown stalls, so editor shutdown cannot leave the backend running indefinitely.
diff --git a/.changeset/single-load-payload-prune.md b/.changeset/single-load-payload-prune.md
new file mode 100644
index 00000000000..6b52142d0d9
--- /dev/null
+++ b/.changeset/single-load-payload-prune.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Reduce the work done on every agent step in long sessions once the request passes the payload pruning limit. The session transcript is no longer reloaded and re-serialized after pruning, and pruning no longer reads the whole session history again. Plan mode also keeps its plan file instructions on those steps.
diff --git a/.changeset/sticky-diff-header-leak.md b/.changeset/sticky-diff-header-leak.md
new file mode 100644
index 00000000000..8fd84df3c73
--- /dev/null
+++ b/.changeset/sticky-diff-header-leak.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Fix a thin line of diff content showing above the sticky file header in the Agent Manager diff panel and review when VS Code is zoomed.
diff --git a/.changeset/subagent-open-tooltip.md b/.changeset/subagent-open-tooltip.md
new file mode 100644
index 00000000000..b2a3ad3a984
--- /dev/null
+++ b/.changeset/subagent-open-tooltip.md
@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Add a tooltip to the subagent open button in the chat transcript. It shows whether the subagent opens in an editor tab (sidebar) or in the Agent Manager panel.
diff --git a/.changeset/svg-attachment-prompt-loss.md b/.changeset/svg-attachment-prompt-loss.md
new file mode 100644
index 00000000000..c175d6e215c
--- /dev/null
+++ b/.changeset/svg-attachment-prompt-loss.md
@@ -0,0 +1,6 @@
+---
+"@kilocode/cli": patch
+"@kilocode/kilo-jetbrains": patch
+---
+
+Fix SVG and other non-raster image attachments failing the whole prompt instead of being read as source. Fix a rejected or failed send losing the typed message with no way to recover it, and add a Dismiss action to standalone error cards that have no transcript tail to retry.
diff --git a/.changeset/task-bare-model-name.md b/.changeset/task-bare-model-name.md
new file mode 100644
index 00000000000..532335d9f93
--- /dev/null
+++ b/.changeset/task-bare-model-name.md
@@ -0,0 +1,5 @@
+---
+"@kilocode/cli": patch
+---
+
+Task tool: a bare model name in `subagent_model` or an agent `model` now resolves to the matching provider model instead of failing with a "Model not found" error or being ignored. The parent session's provider is preferred when several providers offer a model with the same name.
diff --git a/.changeset/tui-permission-eviction.md b/.changeset/tui-permission-eviction.md
new file mode 100644
index 00000000000..f2286d32440
--- /dev/null
+++ b/.changeset/tui-permission-eviction.md
@@ -0,0 +1,4 @@
+---
+"@kilocode/cli": patch
+---
+Fix permission and question prompts disappearing when switching sessions in the TUI. Approval prompts for running subagents and sessions now persist across session switches and are restored when switching back, so sessions are never left blocked on an unanswered prompt.
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
index b2655cabae6..791769bf9b1 100644
--- a/.github/ISSUE_TEMPLATE/bug-report.yml
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -2,6 +2,26 @@ name: Bug report
description: Report an issue that should be fixed
labels: ["bug"]
body:
+ # kilocode_change start
+ - type: dropdown
+ id: component
+ attributes:
+ label: Component
+ description: Which part of Kilo is this about? It helps us route your report.
+ options:
+ - VS Code extension
+ - CLI / TUI
+ - Agent Manager
+ - JetBrains plugin
+ - Desktop or web app
+ - Documentation
+ - Kilo Gateway or account
+ - SDK
+ - Other / not sure
+ validations:
+ required: true
+ # kilocode_change end
+
- type: textarea
id: description
attributes:
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
index 92e6c47570a..0e679c00ae7 100644
--- a/.github/ISSUE_TEMPLATE/feature-request.yml
+++ b/.github/ISSUE_TEMPLATE/feature-request.yml
@@ -18,3 +18,23 @@ body:
description: What do you want to change or add? What are the benefits of implementing this? Try to be detailed so we can understand your request better :)
validations:
required: true
+
+ # kilocode_change start
+ - type: dropdown
+ id: component
+ attributes:
+ label: Component
+ description: Which part of Kilo is this about? It helps us route your request.
+ options:
+ - VS Code extension
+ - CLI / TUI
+ - Agent Manager
+ - JetBrains plugin
+ - Desktop or web app
+ - Documentation
+ - Kilo Gateway or account
+ - SDK
+ - Other / not sure
+ validations:
+ required: true
+ # kilocode_change end
diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml
index a7b774a40b1..250f4efa7db 100644
--- a/.github/codeql/codeql-config.yml
+++ b/.github/codeql/codeql-config.yml
@@ -10,3 +10,9 @@ query-filters:
- path-alert
tags contain: security
security-severity: /^(9(\.[0-9])?|10(\.0)?)$/
+
+# CodeQL classifies extensionless files with a `bun`/`node` shebang as plain
+# JavaScript, so TypeScript syntax in these dev-only scripts (e.g. `as const`)
+# is reported as "Could not process some files due to syntax errors".
+paths-ignore:
+ - packages/opencode/script/run-workspace-server
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 784a6035a34..c58b6159d33 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,27 +1,35 @@
# kilocode_change - new file
version: 2
updates:
- # Bun workspace root (packages/*). Known overlap: packages/kilo-docs also
- # has its own pnpm block below, since this scan can't see its separate
- # pnpm-lock.yaml. Both may target the same package.json line; whichever PR
- # merges first makes the other stale (caught by stale-bot-pr-notify.yml).
+ # Bun workspace root (packages/*). Version updates are OFF (limit 0): this
+ # scan covers ~17 upstream-owned packages that share one bun.lock, and
+ # Dependabot cannot scope a workspace scan by path. Nearly every PR it opened
+ # touched upstream files and was closed by hand (dependabot-auto-merge.yml
+ # skips them by design). Those dependencies come in with upstream merges.
+ # A limit of 0 does not disable security updates: alerts still open PRs, and
+ # security-findings-notify.yml reports them. Those PRs mostly edit upstream
+ # manifests, and a root `overrides` or catalog pin can make them a no-op
+ # (check the resolved version in bun.lock before merging). packages/kilo-docs
+ # has its own block below, since this scan can't see its separate
+ # pnpm-lock.yaml.
- package-ecosystem: "bun"
directory: "/"
schedule:
interval: "weekly"
- cooldown:
- default-days: 7
- open-pull-requests-limit: 10
+ open-pull-requests-limit: 0
labels:
- "dependencies"
commit-message:
prefix: "chore"
include: "scope"
+ # One PR for all security fixes in this scan, instead of one per alert.
+ # Deliberately not named "*-minor-patch": these PRs are never auto-merged,
+ # and this group has no update-types filter because a fix may need a major.
groups:
- bun-minor-patch:
- update-types:
- - "minor"
- - "patch"
+ security-updates:
+ applies-to: security-updates
+ patterns:
+ - "*"
# packages/kilo-docs deploys separately via pnpm; see note above.
- package-ecosystem: "npm"
@@ -35,7 +43,33 @@ updates:
- "dependencies"
commit-message:
prefix: "chore(kilo-docs)"
+ # Majors are never proposed. They can change peer specs or type targets
+ # (for example the @types/node major, which no longer matched the Node
+ # versions we target). Bump them by hand, on purpose.
+ ignore:
+ - dependency-name: "*"
+ update-types:
+ - "version-update:semver-major"
+ # Related packages move together. Group names must end in "-minor-patch"
+ # so dependabot-auto-merge.yml recognises them. A dependency joins the
+ # first group that matches it.
groups:
+ react-minor-patch:
+ patterns:
+ - "react"
+ - "react-dom"
+ - "@types/react"
+ - "@types/react-dom"
+ update-types:
+ - "minor"
+ - "patch"
+ vitest-minor-patch:
+ patterns:
+ - "vitest"
+ - "@vitest/*"
+ update-types:
+ - "minor"
+ - "patch"
kilo-docs-minor-patch:
update-types:
- "minor"
@@ -47,12 +81,57 @@ updates:
interval: "weekly"
cooldown:
default-days: 7
- open-pull-requests-limit: 5
+ # One slot per group below (6), so no group waits for another to merge.
+ open-pull-requests-limit: 6
labels:
- "dependencies"
commit-message:
prefix: "chore(jetbrains)"
+ # Majors are never proposed. They can change the build tooling or test
+ # APIs (for example okhttp 4 -> 5 deprecates mockwebserver, and a Gradle
+ # wrapper or Kotlin plugin major changes the build itself). Bump them by
+ # hand, on purpose.
+ ignore:
+ - dependency-name: "*"
+ update-types:
+ - "version-update:semver-major"
+ # One bad update must not block the rest, and coupled artifacts must move
+ # together (same "-minor-patch" suffix and first-match rules as above).
groups:
+ intellij-minor-patch:
+ patterns:
+ - "org.jetbrains.intellij.platform*"
+ - "rpc"
+ update-types:
+ - "minor"
+ - "patch"
+ kotlin-minor-patch:
+ patterns:
+ - "org.jetbrains.kotlin*"
+ - "org.jetbrains.kotlinx*"
+ update-types:
+ - "minor"
+ - "patch"
+ junit-minor-patch:
+ patterns:
+ - "junit*"
+ - "org.junit*"
+ update-types:
+ - "minor"
+ - "patch"
+ okhttp-minor-patch:
+ patterns:
+ - "com.squareup.okhttp3*"
+ update-types:
+ - "minor"
+ - "patch"
+ markdown-minor-patch:
+ patterns:
+ - "org.commonmark*"
+ - "org.nibor.autolink*"
+ update-types:
+ - "minor"
+ - "patch"
jetbrains-minor-patch:
update-types:
- "minor"
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index a8415564209..5c752da4e4d 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,3 +1,5 @@
+
+
## Issue
diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 99bf408a988..c28260b4841 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -6,39 +6,68 @@ Workflows that automate dependency remediation and give the team Slack visibilit
|---|---|---|
| `dependabot-auto-merge.yml` | `schedule`: hourly, plus `workflow_dispatch` | Actions tab → "Dependabot auto-merge" → Run workflow, or `gh workflow run dependabot-auto-merge.yml` |
| `security-findings-notify.yml` | `schedule`: every 6 hours, plus `workflow_dispatch` | Actions tab → "Security findings notify" → Run workflow, or `gh workflow run security-findings-notify.yml` |
+| `outdated-kilo-deps.yml` | `schedule`: monthly on the 1st at 09:23 UTC, plus `workflow_dispatch` | Actions tab → "Outdated Kilo dependencies" → Run workflow, or `gh workflow run outdated-kilo-deps.yml` |
| `stale-bot-pr-notify.yml` | `schedule`: daily at 13:00 UTC, plus `workflow_dispatch` | Actions tab → "Stale bot PR notify" → Run workflow, or `gh workflow run stale-bot-pr-notify.yml` |
+| `stale-alerts-report.yml` | `schedule`: weekly on Mondays at 08:41 UTC, plus `workflow_dispatch` | Actions tab → "Stale alerts report" → Run workflow, or `gh workflow run stale-alerts-report.yml` |
| `../dependabot.yml` | Not a workflow — read directly by GitHub's Dependabot service | No manual run; check **Insights → Dependency graph → Dependabot** |
## Setup
-- Add repo secret `SECURITY_ALERTS_SLACK_WEBHOOK` (a Slack incoming webhook URL) — required by `security-findings-notify.yml` and `stale-bot-pr-notify.yml`.
-- Optional repo variables to override defaults: `SECURITY_SLA_CRITICAL_DAYS` (15), `SECURITY_SLA_HIGH_DAYS` (30), `STALE_BOT_PR_DAYS` (3).
+- Add repo secret `SECURITY_ALERTS_SLACK_WEBHOOK` (a Slack incoming webhook URL) — required by `security-findings-notify.yml`, `stale-bot-pr-notify.yml`, `outdated-kilo-deps.yml` and `stale-alerts-report.yml`.
+- Optional repo secret `SECURITY_SCAN_TOKEN`: a token with the `secret_scanning_alerts` scope. Without it, `security-findings-notify.yml` tries the default token and skips secret scanning with a warning if that fails.
+- Optional repo variables to override defaults: `SECURITY_SLA_CRITICAL_DAYS` (15), `SECURITY_SLA_HIGH_DAYS` (30), `SECURITY_SLA_MEDIUM_DAYS` (90), `SECURITY_SLA_LOW_DAYS` (180), `SECURITY_MIN_SEVERITY` (`high`; set to `medium` or `low` to report more), `STALE_BOT_PR_DAYS` (3).
## How it works
### PRs are opened by Dependabot's own service, not by any workflow here
-`dependabot.yml` is not a workflow — it's a config file that GitHub's Dependabot backend reads directly. None of the 3 workflow files in this directory ever open a PR; they only act on PRs that already exist.
+`dependabot.yml` is not a workflow — it's a config file that GitHub's Dependabot backend reads directly. None of the workflow files in this directory ever open a PR; they only act on PRs or alerts that already exist, or report on dependencies.
-Dependabot re-scans on the `schedule: interval` set per ecosystem block, and once immediately whenever `dependabot.yml` itself changes on the default branch. Per ecosystem (`bun`, `npm` for kilo-docs, `gradle` for kilo-jetbrains), it checks each dependency for updates, classifies each as `major`, `minor`, or `patch`, bundles everything matching a `groups: *-minor-patch` rule into one combined PR, and opens every major bump as its own individual PR. These are normal PRs from that point on — required CI and branch protection apply like any other PR.
+Dependabot re-scans on the `schedule: interval` set per ecosystem block, and once immediately whenever `dependabot.yml` itself changes on the default branch. Per ecosystem (`npm` for kilo-docs, `gradle` for kilo-jetbrains), it checks each dependency for updates, bundles minor and patch bumps into `groups: *-minor-patch` PRs (related packages share a group, so they move together), and ignores every major bump. Majors are bumped by hand. The `bun` block has `open-pull-requests-limit: 0`, so it opens no version-update PRs, only security-alert PRs, which a `security-updates` group bundles into one PR. These are normal PRs from that point on — required CI and branch protection apply like any other PR.
-### The 3 workflows each poll independently on their own schedule
+### The 5 workflows each poll independently on their own schedule
They don't call each other or trigger off PR creation. Each one wakes up on its own cron and reads whatever state currently exists on GitHub:
| Workflow | Wakes up | Reads | Does |
|---|---|---|---|
| `dependabot-auto-merge.yml` | Hourly | Open `app/dependabot` PRs with a grouped `*-minor-patch` title | Enables GitHub's native auto-merge flag if every changed file besides shared `bun.lock` is under a `kilo`-named path; otherwise leaves it and logs a warning. |
-| `security-findings-notify.yml` | Every 6h | GitHub's Dependabot **Alerts** (the vulnerability list, separate from the PR list above) | Posts new/at-risk/breached critical & high alerts to Slack, independent of whether a fix PR exists. |
-| `stale-bot-pr-notify.yml` | Daily, 13:00 UTC | All open bot-authored PRs (not limited to Dependabot) | Flags any that are conflicting or long-unreviewed to Slack. |
+| `security-findings-notify.yml` | Every 6h | GitHub's Dependabot **Alerts** (the vulnerability list, separate from the PR list above), **code scanning** (CodeQL) alerts and **secret scanning** alerts | Posts new/at-risk/breached alerts at or above `SECURITY_MIN_SEVERITY` (default high) to Slack, independent of whether a fix PR exists. A leaked secret always counts as critical. |
+| `outdated-kilo-deps.yml` | Monthly, 1st at 09:23 UTC | `bun outdated` for `packages/kilo-*` (not kilo-docs; it has its own Dependabot block) | Posts the count of outdated major/minor/patch dependencies to Slack, with the major and minor ones listed. Fills the gap left by turning off the root `bun` version updates. |
+| `stale-bot-pr-notify.yml` | Daily, 13:00 UTC | All open bot-authored PRs (not limited to Dependabot) | Flags any that are conflicting, failing a required check or long-unreviewed to Slack. Several PRs that upgrade the same package collapse into one "likely duplicates" line. |
+| `stale-alerts-report.yml` | Weekly, Mondays 08:41 UTC | Open Dependabot alerts for npm packages, compared with `bun.lock` and `pnpm-lock.yaml` in the checkout | Posts alerts that look stale to Slack: the manifest is gone, the package left the lockfile, or the lockfile resolves only versions outside the vulnerable range. It dismisses nothing. |
+
+### Where the sources come from
+
+| Source | Used by | Notes |
+|---|---|---|
+| Dependabot alerts | `security-findings-notify.yml`, `stale-alerts-report.yml` | Needs the `vulnerability-alerts: read` permission. |
+| Code scanning alerts | `security-findings-notify.yml` | Needs `security-events: read`. Alerts without a security severity are quality findings and are skipped. If the API returns an error, the run logs a warning and continues. |
+| Secret scanning alerts | `security-findings-notify.yml` | The default `GITHUB_TOKEN` cannot read these on every plan. If the API returns an error, the run logs a warning and continues. To enable this source, add the repo secret `SECURITY_SCAN_TOKEN` (a token with the `secret_scanning_alerts` scope). The workflow uses it for this one call only. |
+| Findings of the Kilo Security Agent (the "Unreachable" and "Exploitable" labels) | None | They live in the private `Kilo-Org/cloud` stack. A repo workflow cannot read them. |
+
+The helper scripts are `script/kilocode/bot-prs.ts` (duplicate grouping) and `script/kilocode/stale-alerts.ts` (stale alert check). Both have tests next to them. Run `bun test bot-prs.test.ts stale-alerts.test.ts` from `script/kilocode/`.
### Enabling auto-merge isn't the same as merging
`dependabot-auto-merge.yml` only flips a flag on the PR. GitHub itself completes the merge later, automatically, once both the required human approval and all required status checks pass. If either never happens, the PR just sits with auto-merge armed but unfulfilled — nothing forces it through.
+## Slack posts
+
+Four of the five workflows post to Slack. All of them use the `SECURITY_ALERTS_SLACK_WEBHOOK` secret, so every post lands in the one channel that webhook was created for. A run that has nothing to report posts nothing.
+
+| Workflow | Posts? | What a post contains | When it posts |
+|---|---|---|---|
+| `dependabot-auto-merge.yml` | No | Nothing. Its results are only in the Actions log, including a warning when it skips a PR that touches shared code. | Never. |
+| `security-findings-notify.yml` | Yes | One message per alert (critical and high by default): a label (`New finding`, `SLA at risk` or `SLA breached`), the source (`Dependabot`, `code scanning` or `secret scanning`), the severity, days open, a link to the alert with its GHSA ID or rule ID, and the summary. A critical alert that breaches its SLA starts with `@here`. | Checked every 6 hours. Each alert posts once per status (new, then at risk, then breached). A breached alert repeats once a day while it stays open. |
+| `stale-bot-pr-notify.yml` | Yes | One combined message, "Bot PRs needing attention". Each line has the PR number and title as a link, the author, the age in days, and a reason: `conflicting`, `CI failing` (a required check failed) or `unreviewed`. PRs that upgrade the same package are one line that lists every PR and says to keep one. | Checked daily at 13:00 UTC. Posts only if at least one PR is flagged. A PR repeats every day until it is fixed. |
+| `stale-alerts-report.yml` | Yes | One message, "Open Dependabot alerts that look stale: N". Each line has the alert link, the package, the manifest and the reason. The full list is in the job summary. | Checked weekly. Posts only if at least one alert looks stale. |
+| `outdated-kilo-deps.yml` | Yes | One short summary, "Outdated Kilo-owned dependencies: N major, N minor, N patch". It lists the major and minor updates with current and latest versions. Patch updates are only counted. A link to the run has the full list. | Checked monthly, on the 1st at 09:23 UTC. Posts only if something is outdated. |
+
## Fork-safety notes
kilocode is a fork of opencode sharing one `bun.lock` with upstream-owned `@opencode-ai/*` packages. Two things exist specifically to avoid friction with upstream syncs:
- `dependabot-auto-merge.yml` only auto-merges a PR if every changed file (besides the shared `bun.lock`) lives under a `kilo`-named path. Anything touching shared/upstream code is left for a human.
+- The root `bun` block has version updates turned off. It scans ~17 upstream-owned packages and cannot be scoped by path, so its PRs almost always touched upstream files. Those dependencies come in with upstream merges.
- `dependabot.yml` deliberately does **not** cover `packages/opencode/Dockerfile` or `.github/workflows/**`: both are shared/upstream paths that the auto-merge guard above would never approve anyway, and `.github/workflows/**` changes routinely fail this repo's `kilocode_change` annotation check unless they land inside an existing marker block. Those paths are covered by `security-findings-notify.yml` instead, which only reads GitHub's alerts, it never proposes a PR.
diff --git a/.github/workflows/check-opencode-annotations.yml b/.github/workflows/check-opencode-annotations.yml
index aa41b12d099..402b296ce0b 100644
--- a/.github/workflows/check-opencode-annotations.yml
+++ b/.github/workflows/check-opencode-annotations.yml
@@ -11,6 +11,12 @@ on:
- "packages/*/src/kilo-*/**"
- "packages/plugin-atomic-chat/**"
- "packages/opencode/**"
+ - "packages/core/**"
+ - "packages/llm/**"
+ - "packages/schema/**"
+ - "packages/protocol/**"
+ - "packages/server/**"
+ - "packages/tui/**"
- "packages/script/**"
- "packages/shared/**"
- "packages/storybook/**"
diff --git a/.github/workflows/codeql-kotlin.yml b/.github/workflows/codeql-kotlin.yml
index 18a72c6c394..060e136914a 100644
--- a/.github/workflows/codeql-kotlin.yml
+++ b/.github/workflows/codeql-kotlin.yml
@@ -58,6 +58,9 @@ jobs:
languages: java-kotlin
build-mode: manual
config-file: ./.github/codeql/codeql-config.yml
+ # Leave headroom for the runner agent and OS. CodeQL otherwise claims ~14.6 GB of the
+ # 16 GB runner, and the query phase OOM-kills the whole VM.
+ ram: 12288
- name: Build Java/Kotlin
shell: bash
@@ -66,6 +69,19 @@ jobs:
env:
GITHUB_TOKEN: ${{ github.token }}
+ # The Gradle and Kotlin daemons stay resident for the rest of the job -- setup-gradle only
+ # stops them in its post step, which runs after CodeQL. Their heap competes with query
+ # evaluation and takes the runner down with it.
+ - name: Stop Gradle and Kotlin daemons
+ shell: bash
+ working-directory: packages/kilo-jetbrains
+ run: |
+ ./gradlew --stop || echo "gradlew --stop failed; continuing"
+ pkill -f KotlinCompileDaemon || echo "no Kotlin compile daemon to stop"
+ sleep 5
+ free -m
+ ps -eo pid,rss,comm --sort=-rss | sed -n '1,15p'
+
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
diff --git a/.github/workflows/community-label.yml b/.github/workflows/community-label.yml
new file mode 100644
index 00000000000..9a0ebd32383
--- /dev/null
+++ b/.github/workflows/community-label.yml
@@ -0,0 +1,47 @@
+# kilocode_change - new file
+name: Community label
+
+# Labels new PRs and issues so maintainers can tell community work from team
+# work and see which part of the repo it touches. See docs/community-triage.md.
+#
+# pull_request_target runs with write access, even for fork PRs. That is safe
+# here because the job only checks out the base branch and never runs code from
+# the PR. It reads PR metadata (title, author, file names) as data.
+
+on:
+ pull_request_target:
+ types: [opened, reopened, ready_for_review, edited]
+ issues:
+ types: [opened, edited]
+
+concurrency:
+ group: community-label-${{ github.event.pull_request.number || github.event.issue.number }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+ issues: write
+ pull-requests: write
+
+jobs:
+ label:
+ if: github.repository == 'Kilo-Org/kilocode'
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
+ - name: Label
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REPO: ${{ github.repository }}
+ # Optional. Lets the job see private org members. See the docs.
+ MEMBER_TOKEN: ${{ secrets.COMMUNITY_TRIAGE_MEMBER_TOKEN }}
+ MAINTAINERS: ${{ vars.COMMUNITY_MAINTAINERS }}
+ run: bun run script/kilocode/community-triage.ts label
diff --git a/.github/workflows/community-sweep.yml b/.github/workflows/community-sweep.yml
new file mode 100644
index 00000000000..ae88b0e2f02
--- /dev/null
+++ b/.github/workflows/community-sweep.yml
@@ -0,0 +1,67 @@
+# kilocode_change - new file
+name: Community sweep
+
+# Twice a week, the evening before the maintainer triage slots (Friday and
+# Tuesday). Works out whose turn it is on each community PR, keeps the status
+# labels in sync, closes PRs that got no reply for 14 days and posts the queue.
+# See docs/community-triage.md.
+
+on:
+ schedule:
+ - cron: "0 17 * * 1,4" # Monday and Thursday, 17:00 UTC
+ workflow_dispatch:
+ inputs:
+ close:
+ description: "Close PRs with no reply for 14 days. Off means log only."
+ type: boolean
+ default: false
+
+concurrency:
+ group: community-sweep
+ cancel-in-progress: false
+
+permissions:
+ contents: read
+ issues: write
+ pull-requests: write
+
+jobs:
+ sweep:
+ if: github.repository == 'Kilo-Org/kilocode'
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
+ - name: Sweep
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REPO: ${{ github.repository }}
+ MEMBER_TOKEN: ${{ secrets.COMMUNITY_TRIAGE_MEMBER_TOKEN }}
+ MAINTAINERS: ${{ vars.COMMUNITY_MAINTAINERS }}
+ # Closing stays off until the repo variable is set to "true".
+ CLOSE_ENABLED: ${{ github.event_name == 'workflow_dispatch' && format('{0}', inputs.close) || vars.COMMUNITY_AUTO_CLOSE_ENABLED }}
+ SLACK_PAYLOAD: ${{ runner.temp }}/slack-payload.json
+ run: bun run script/kilocode/community-triage.ts sweep
+
+ # A step cannot read its own env in `if`, so a small step exposes the
+ # secret to itself only and passes on whether it is set.
+ - name: Check Slack webhook
+ id: slack
+ env:
+ SLACK_WEBHOOK: ${{ secrets.COMMUNITY_TRIAGE_SLACK_WEBHOOK }}
+ run: echo "enabled=${{ env.SLACK_WEBHOOK != '' }}" >> "$GITHUB_OUTPUT"
+
+ - name: Notify Slack
+ if: steps.slack.outputs.enabled == 'true'
+ uses: slackapi/slack-github-action@v2.0.0
+ with:
+ webhook: ${{ secrets.COMMUNITY_TRIAGE_SLACK_WEBHOOK }}
+ webhook-type: incoming-webhook
+ payload-file-path: ${{ runner.temp }}/slack-payload.json
diff --git a/.github/workflows/community-triage-test.yml b/.github/workflows/community-triage-test.yml
new file mode 100644
index 00000000000..6577c809fa6
--- /dev/null
+++ b/.github/workflows/community-triage-test.yml
@@ -0,0 +1,36 @@
+# kilocode_change - new file
+name: Community triage test
+
+# Runs the unit tests for the community triage script. Only runs when the
+# script, its tests or the workflows that use it change.
+
+on:
+ pull_request:
+ paths:
+ - script/kilocode/community-triage*.ts
+ - .github/workflows/community-*.yml
+ workflow_dispatch:
+
+concurrency:
+ group: community-triage-test-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
+ - name: Test
+ working-directory: script/kilocode
+ run: bun test community-triage.test.ts
diff --git a/.github/workflows/outdated-kilo-deps.yml b/.github/workflows/outdated-kilo-deps.yml
new file mode 100644
index 00000000000..90221f6340e
--- /dev/null
+++ b/.github/workflows/outdated-kilo-deps.yml
@@ -0,0 +1,53 @@
+# kilocode_change - new file
+name: Outdated Kilo dependencies
+
+# Dependabot's root `bun` scan has version updates turned off (it mostly
+# touched upstream files), so nothing else says when a Kilo-owned package falls
+# behind. Once a month, list what `bun outdated` finds for packages/kilo-*
+# (kilo-docs and kilo-jetbrains keep their own Dependabot blocks) and post a
+# short summary to Slack. Read-only: it never opens a PR.
+
+on:
+ schedule:
+ - cron: "23 9 1 * *" # 1st of the month, offset to avoid the top of the hour
+ workflow_dispatch:
+
+concurrency:
+ group: outdated-kilo-deps
+ cancel-in-progress: false
+
+permissions:
+ contents: read
+
+jobs:
+ report:
+ if: github.repository == 'Kilo-Org/kilocode'
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
+ - id: report
+ env:
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ run: |
+ mkdir -p .cache
+ bun run script/kilocode/outdated.ts > .cache/report.json
+ echo "count=$(jq -r .count .cache/report.json)" >> "$GITHUB_OUTPUT"
+ jq -r '.full' .cache/report.json >> "$GITHUB_STEP_SUMMARY"
+ # Build real JSON via jq instead of splicing text into a YAML payload.
+ jq '{text}' .cache/report.json > .cache/slack-payload.json
+
+ - if: steps.report.outputs.count != '0'
+ name: Notify Slack
+ uses: slackapi/slack-github-action@v2.0.0
+ with:
+ webhook: ${{ secrets.SECURITY_ALERTS_SLACK_WEBHOOK }}
+ webhook-type: incoming-webhook
+ payload-file-path: .cache/slack-payload.json
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index aff7babb110..91a5779aac4 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -472,6 +472,10 @@ jobs:
# build-cli already uploaded unsigned Windows zips to the draft release;
# replace them with signed copies so release assets match what npm/VSIX ship.
+ # One asset per invocation with retries, for the same reason build-cli uploads
+ # that way: a dropped connection can commit the asset anyway, and the retry
+ # inside gh then dies on "ReleaseAsset.name already exists". --clobber clears
+ # that asset at the start of the next attempt.
- name: Re-upload signed Windows release zips
shell: pwsh
run: |
@@ -481,7 +485,15 @@ jobs:
Compress-Archive -Path (Join-Path $dir.FullName "bin\*") -DestinationPath $archive -Force
$archives += $archive
}
- gh release upload "v${{ needs.build-cli.outputs.version }}" $archives --clobber
+ foreach ($archive in $archives) {
+ foreach ($attempt in 1..4) {
+ gh release upload "v${{ needs.build-cli.outputs.version }}" $archive --clobber
+ if ($LASTEXITCODE -eq 0) { break }
+ if ($attempt -eq 4) { throw "Could not upload $archive after 4 attempts" }
+ Write-Host "upload: $archive failed (attempt $attempt/4), retrying in 10s"
+ Start-Sleep -Seconds 10
+ }
+ }
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
diff --git a/.github/workflows/security-findings-notify.yml b/.github/workflows/security-findings-notify.yml
index 24510904544..0d76ff36991 100644
--- a/.github/workflows/security-findings-notify.yml
+++ b/.github/workflows/security-findings-notify.yml
@@ -1,9 +1,12 @@
# kilocode_change - new file
name: Security findings notify
-# Posts open Dependabot security alerts (critical/high) to Slack, and pings
-# the channel when a critical finding breaches its resolution SLA. Read-only;
-# follows the cron pattern from watch-opencode-releases.yml.
+# Posts open security alerts to Slack, and pings the channel when a critical
+# finding breaches its resolution SLA. Read-only; follows the cron pattern from
+# watch-opencode-releases.yml. Three sources: Dependabot alerts, code scanning
+# (CodeQL) alerts and secret scanning alerts. Dependabot and code scanning
+# alerts below SECURITY_MIN_SEVERITY (default: high) are skipped. A leaked
+# secret always counts as critical.
on:
schedule:
@@ -17,6 +20,7 @@ concurrency:
permissions:
contents: read
vulnerability-alerts: read
+ security-events: read
jobs:
list-findings:
@@ -29,32 +33,72 @@ jobs:
- id: build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # Optional. The default token cannot read secret scanning alerts on
+ # every plan. A token with the secret_scanning_alerts scope is used
+ # for that one call only. Without it, the call uses GH_TOKEN.
+ SECRET_SCAN_TOKEN: ${{ secrets.SECURITY_SCAN_TOKEN }}
REPO: ${{ github.repository }}
# 15 matches an observed real critical deadline; 30 is a guess.
CRIT_DAYS: ${{ vars.SECURITY_SLA_CRITICAL_DAYS || '15' }}
HIGH_DAYS: ${{ vars.SECURITY_SLA_HIGH_DAYS || '30' }}
+ # Only used when SECURITY_MIN_SEVERITY lets medium or low through.
+ MEDIUM_DAYS: ${{ vars.SECURITY_SLA_MEDIUM_DAYS || '90' }}
+ LOW_DAYS: ${{ vars.SECURITY_SLA_LOW_DAYS || '180' }}
+ # critical, high, medium or low. Anything below it is not reported.
+ MIN_SEVERITY: ${{ vars.SECURITY_MIN_SEVERITY || 'high' }}
run: |
# --method GET is required: gh api auto-switches to POST whenever
# -f is passed, which would 404 against this GET-only endpoint.
- alerts=$(gh api --paginate --method GET -f state=open -f per_page=100 "repos/$REPO/dependabot/alerts")
+ # --paginate prints one array per page, so merge them into one.
+ set -o pipefail
+ fetch() {
+ gh api --paginate --method GET -f state=open -f per_page=100 "repos/$REPO/$1" | jq -cs 'add // []'
+ }
+ dependabot=$(fetch dependabot/alerts)
+
+ # Code scanning returns 404 when it is not enabled, and secret
+ # scanning is not readable with the default GITHUB_TOKEN on every
+ # plan (set the SECURITY_SCAN_TOKEN secret to fix that). A source that cannot be read is skipped with a warning, so it
+ # never hides the Dependabot findings.
+ if ! code=$(fetch code-scanning/alerts 2>/dev/null); then
+ echo "::warning::could not read code scanning alerts, skipping them"
+ code='[]'
+ fi
+ if ! secrets=$(GH_TOKEN="${SECRET_SCAN_TOKEN:-$GH_TOKEN}" fetch secret-scanning/alerts 2>/dev/null); then
+ echo "::warning::could not read secret scanning alerts, skipping them"
+ secrets='[]'
+ fi
+
now=$(date -u +%s)
- matrix=$(echo "$alerts" | jq -c --argjson now "$now" --argjson critDays "$CRIT_DAYS" --argjson highDays "$HIGH_DAYS" '
- map(select(.security_advisory.severity == "critical" or .security_advisory.severity == "high"))
- | map(
- . as $a
- | $a.security_advisory.severity as $sev
- | (if $sev == "critical" then $critDays else $highDays end) as $threshold
- | (($now - ($a.created_at | fromdateiso8601)) / 86400) as $age
- | {
- number: $a.number,
- severity: $sev,
- ghsa_id: $a.security_advisory.ghsa_id,
- summary: $a.security_advisory.summary,
- html_url: $a.html_url,
- age_days: ($age | floor),
- status: (if $age >= $threshold then "breach" elif $age >= ($threshold * 0.7) then "warning" else "new" end)
- }
- )
+ matrix=$(jq -cn --argjson now "$now" \
+ --argjson critDays "$CRIT_DAYS" --argjson highDays "$HIGH_DAYS" \
+ --argjson medDays "$MEDIUM_DAYS" --argjson lowDays "$LOW_DAYS" \
+ --arg min "$MIN_SEVERITY" \
+ --argjson dependabot "$dependabot" --argjson code "$code" --argjson secrets "$secrets" '
+ def rank: {critical: 4, high: 3, medium: 2, low: 1}[.] // 0;
+ def days: if . == "critical" then $critDays elif . == "high" then $highDays elif . == "medium" then $medDays else $lowDays end;
+ def item($kind; $number; $sev; $id; $summary; $url; $created):
+ (($now - ($created | fromdateiso8601)) / 86400) as $age
+ | ($sev | days) as $threshold
+ | {
+ kind: $kind,
+ number: $number,
+ severity: $sev,
+ ghsa_id: $id,
+ summary: $summary,
+ html_url: $url,
+ age_days: ($age | floor),
+ status: (if $age >= $threshold then "breach" elif $age >= ($threshold * 0.7) then "warning" else "new" end)
+ };
+ (
+ ($dependabot | map(item("dependabot"; .number; .security_advisory.severity; .security_advisory.ghsa_id; .security_advisory.summary; .html_url; .created_at)))
+ # Code scanning alerts without a security severity are quality
+ # findings, not vulnerabilities, so they are left out.
+ + ($code | map(select(.rule.security_severity_level != null)
+ | item("code"; .number; .rule.security_severity_level; .rule.id; (.rule.description + " in " + (.most_recent_instance.location.path // "unknown file")); .html_url; .created_at)))
+ + ($secrets | map(item("secret"; .number; "critical"; (.secret_type_display_name // .secret_type); "Exposed secret, rotate it now"; .html_url; .created_at)))
+ )
+ | map(select((.severity | rank) >= ($min | rank)))
')
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"
@@ -73,15 +117,21 @@ jobs:
# injection from free-text advisory summaries.
- id: key
env:
+ KIND: ${{ matrix.kind }}
NUMBER: ${{ matrix.number }}
STATUS: ${{ matrix.status }}
run: |
+ # Alert numbers repeat across sources, so non-Dependabot keys carry
+ # the source. Dependabot keeps the original "sec-alert" prefix, so
+ # alerts already notified are not announced again.
+ prefix="sec-alert"
+ [ "$KIND" != "dependabot" ] && prefix="sec-${KIND}"
if [ "$STATUS" = "breach" ]; then
- # Re-notify once per day while a critical/high stays breached,
+ # Re-notify once per day while an alert stays breached,
# instead of once ever, so an unresolved breach keeps nagging.
- echo "value=sec-alert-${NUMBER}-breach-$(date -u +%Y-%m-%d)" >> "$GITHUB_OUTPUT"
+ echo "value=${prefix}-${NUMBER}-breach-$(date -u +%Y-%m-%d)" >> "$GITHUB_OUTPUT"
else
- echo "value=sec-alert-${NUMBER}-${STATUS}" >> "$GITHUB_OUTPUT"
+ echo "value=${prefix}-${NUMBER}-${STATUS}" >> "$GITHUB_OUTPUT"
fi
- id: cache
@@ -94,6 +144,7 @@ jobs:
name: Build Slack payload
id: message
env:
+ KIND: ${{ matrix.kind }}
SEVERITY: ${{ matrix.severity }}
STATUS: ${{ matrix.status }}
AGE_DAYS: ${{ matrix.age_days }}
@@ -110,8 +161,13 @@ jobs:
warning) label=":hourglass_flowing_sand: SLA at risk" ;;
*) label=":mag: New finding" ;;
esac
- text=$(printf '%s%s (%s severity, open %sd): <%s|%s> %s' \
- "$mention" "$label" "$SEVERITY" "$AGE_DAYS" "$HTML_URL" "$GHSA_ID" "$SUMMARY")
+ case "$KIND" in
+ code) source="code scanning" ;;
+ secret) source="secret scanning" ;;
+ *) source="Dependabot" ;;
+ esac
+ text=$(printf '%s%s [%s] (%s severity, open %sd): <%s|%s> %s' \
+ "$mention" "$label" "$source" "$SEVERITY" "$AGE_DAYS" "$HTML_URL" "$GHSA_ID" "$SUMMARY")
mkdir -p .cache
jq -n --arg text "$text" '{text: $text}' > .cache/slack-payload.json
diff --git a/.github/workflows/stale-alerts-report.yml b/.github/workflows/stale-alerts-report.yml
new file mode 100644
index 00000000000..d0e4b1c2292
--- /dev/null
+++ b/.github/workflows/stale-alerts-report.yml
@@ -0,0 +1,62 @@
+# kilocode_change - new file
+name: Stale alerts report
+
+# Dependabot normally closes an alert when the fix lands. Some stay open after
+# the manifest is deleted or the lockfile moves past the vulnerable range, and
+# keep showing in the security views and the SLA reports. Once a week, compare
+# each open npm alert with the lockfiles in this checkout and post the ones
+# that look stale to Slack, so a person can dismiss them. Read-only: it never
+# dismisses an alert.
+
+on:
+ schedule:
+ - cron: "41 8 * * 1" # Mondays, offset to avoid the top of the hour
+ workflow_dispatch:
+
+concurrency:
+ group: stale-alerts-report
+ cancel-in-progress: false
+
+permissions:
+ contents: read
+ vulnerability-alerts: read
+
+jobs:
+ report:
+ if: github.repository == 'Kilo-Org/kilocode'
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
+ - id: report
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ REPO: ${{ github.repository }}
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ run: |
+ set -o pipefail
+ mkdir -p .cache
+ # --method GET is required: gh api auto-switches to POST whenever
+ # -f is passed. --paginate prints one array per page, so merge them.
+ gh api --paginate --method GET -f state=open -f per_page=100 "repos/$REPO/dependabot/alerts" \
+ | jq -cs 'add // []' > .cache/alerts.json
+ bun run script/kilocode/stale-alerts.ts .cache/alerts.json > .cache/report.json
+ echo "count=$(jq -r .count .cache/report.json)" >> "$GITHUB_OUTPUT"
+ jq -r '.full' .cache/report.json >> "$GITHUB_STEP_SUMMARY"
+ # Build real JSON via jq instead of splicing text into a YAML payload.
+ jq '{text}' .cache/report.json > .cache/slack-payload.json
+
+ - if: steps.report.outputs.count != '0'
+ name: Notify Slack
+ uses: slackapi/slack-github-action@v2.0.0
+ with:
+ webhook: ${{ secrets.SECURITY_ALERTS_SLACK_WEBHOOK }}
+ webhook-type: incoming-webhook
+ payload-file-path: .cache/slack-payload.json
diff --git a/.github/workflows/stale-bot-pr-notify.yml b/.github/workflows/stale-bot-pr-notify.yml
index 13020f9574a..c6b53ea865c 100644
--- a/.github/workflows/stale-bot-pr-notify.yml
+++ b/.github/workflows/stale-bot-pr-notify.yml
@@ -7,7 +7,8 @@ name: Stale bot PR notify
# failing -- dependabot-auto-merge.yml only arms auto-merge once and never
# checks back, so nothing else would ever catch that case. Once a day, flag
# any open bot PR that's conflicting, has a failing required check, or has
-# sat unreviewed too long.
+# sat unreviewed too long. Bots can open several PRs for one fix, so PRs that
+# upgrade the same package are reported as one line (script/kilocode/bot-prs.ts).
on:
schedule:
@@ -28,6 +29,14 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - uses: oven-sh/setup-bun@v2
+ with:
+ bun-version-file: package.json
+
- id: build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -90,16 +99,15 @@ jobs:
flagged=$(jq -c -s '.' .cache/flagged.ndjson)
echo "flagged=$flagged" >> "$GITHUB_OUTPUT"
- # Build real JSON via jq instead of splicing PR titles (free text)
- # into a YAML payload through `${{ }}`.
- echo "$flagged" | jq '
- if length == 0 then {text: ""} else
- {text: (["*Bot PRs needing attention:*"] + map(
- "- <" + .url + "|#" + (.number | tostring) + " " + .title + "> ("
- + .author.login + ", " + (.age_days | tostring) + "d old, " + .reason + ")"
- )) | join("\n")}
- end
- ' > .cache/slack-payload.json
+ # Duplicate fix PRs (several PRs upgrading one package) are found
+ # across all open bot PRs, so keep the full bot list for the script.
+ echo "$prs" | jq -c 'map(select(.author.is_bot == true))' > .cache/bots.json
+ echo "$flagged" > .cache/flagged.json
+
+ # bot-prs.ts builds the Slack JSON, so PR titles (free text) never
+ # reach the payload through Actions expressions. It collapses PRs
+ # that touch the same package into one line.
+ bun run script/kilocode/bot-prs.ts .cache/bots.json .cache/flagged.json > .cache/slack-payload.json
- if: steps.build.outputs.flagged != '[]'
name: Notify Slack
diff --git a/.github/workflows/validate-cli-smoke.yml b/.github/workflows/validate-cli-smoke.yml
new file mode 100644
index 00000000000..5c354ab7d16
--- /dev/null
+++ b/.github/workflows/validate-cli-smoke.yml
@@ -0,0 +1,114 @@
+# kilocode_change - new file
+# Reproduce the release-only compiled TUI PTY smoke on any branch, without cutting a release.
+#
+# publish.yml owns the `validate-cli-unix` / `validate-cli-windows` jobs that run
+# `kilo --pure __pty-smoke` against the compiled binary, but publish.yml is
+# workflow_dispatch-only and goes on to publish, so that gate never runs on a branch
+# or PR. test.yml only covers the pty-smoke *unit* tests (synthetic renderers from
+# source), not the standalone binary.
+#
+# This builds the CLI for the host platform only (--single) and runs the same smoke
+# step, covering the four targets that failed in runs 37371543591 / 37336767041:
+# darwin-arm64, darwin-x64, windows-x64, linux-x64. No signing, no release, no
+# publish, no ~1 GB artifact hand-off.
+#
+# Bubblewrap bundling is skipped so the Linux build does not need the Zig toolchain
+# that publish.yml installs; the PTY smoke does not exercise the sandbox helper.
+
+name: validate-cli-smoke
+
+on:
+ workflow_dispatch:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+jobs:
+ smoke:
+ name: Compiled PTY smoke (${{ matrix.target }})
+ runs-on: ${{ matrix.runner }}
+ timeout-minutes: 30
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - target: darwin-arm64
+ runner: macos-15
+ package: "@kilocode/cli-darwin-arm64"
+ - target: darwin-x64
+ runner: macos-15-intel
+ package: "@kilocode/cli-darwin-x64"
+ - target: linux-x64
+ runner: ubuntu-24.04
+ package: "@kilocode/cli-linux-x64"
+ - target: windows-x64
+ runner: windows-2025
+ package: "@kilocode/cli-windows-x64"
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: ./.github/actions/setup-bun
+
+ - name: Build CLI for this host
+ working-directory: packages/opencode
+ run: bun run script/build.ts --single --skip-install
+ env:
+ KILO_VERSION: 0.0.0-smoke
+ KILO_SKIP_BUNDLED_BWRAP: "1"
+
+ - name: Run compiled PTY smoke
+ if: runner.os != 'Windows'
+ working-directory: packages/opencode
+ run: |
+ binary="./dist/${{ matrix.package }}/bin/kilo"
+ "$binary" --version
+ root="$(mktemp -d)"
+ trap 'rm -rf "$root"' EXIT
+ (
+ unset KILO_MODELS_PATH KILO_MODELS_URL KILO_CONFIG KILO_CONFIG_DIR
+ export XDG_DATA_HOME="$root/data"
+ export XDG_CACHE_HOME="$root/cache"
+ export XDG_CONFIG_HOME="$root/config"
+ export XDG_STATE_HOME="$root/state"
+ export KILO_PTY_SMOKE=1
+ export KILO_DISABLE_MODELS_FETCH=1
+ export KILO_DISABLE_PROJECT_CONFIG=1
+ export KILO_CONFIG_CONTENT='{"enabled_providers":["anthropic"]}'
+ export ANTHROPIC_API_KEY=dummy
+ "$binary" --pure __pty-smoke
+ )
+
+ - name: Run compiled PTY smoke (Windows)
+ if: runner.os == 'Windows'
+ working-directory: packages/opencode
+ shell: pwsh
+ run: |
+ $package = "${{ matrix.package }}".Replace("/", "\")
+ $binary = ".\dist\$package\bin\kilo.exe"
+ & $binary --version
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
+
+ $root = Join-Path $env:RUNNER_TEMP ([guid]::NewGuid().ToString())
+ New-Item -ItemType Directory -Force -Path $root | Out-Null
+ try {
+ foreach ($name in "KILO_MODELS_PATH", "KILO_MODELS_URL", "KILO_CONFIG", "KILO_CONFIG_DIR") {
+ Remove-Item "Env:$name" -ErrorAction SilentlyContinue
+ }
+ $env:XDG_DATA_HOME = Join-Path $root "data"
+ $env:XDG_CACHE_HOME = Join-Path $root "cache"
+ $env:XDG_CONFIG_HOME = Join-Path $root "config"
+ $env:XDG_STATE_HOME = Join-Path $root "state"
+ $env:KILO_PTY_SMOKE = "1"
+ $env:KILO_DISABLE_MODELS_FETCH = "1"
+ $env:KILO_DISABLE_PROJECT_CONFIG = "1"
+ $env:KILO_CONFIG_CONTENT = '{"enabled_providers":["anthropic"]}'
+ $env:ANTHROPIC_API_KEY = "dummy"
+ & $binary --pure __pty-smoke
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
+ } finally {
+ Remove-Item -Recurse -Force $root -ErrorAction SilentlyContinue
+ }
diff --git a/.husky/pre-push b/.husky/pre-push
index efe6a35a751..0b51ba74d68 100755
--- a/.husky/pre-push
+++ b/.husky/pre-push
@@ -40,6 +40,12 @@ while read -r local_ref local_oid remote_ref remote_oid; do
fi
done
+# In a linked worktree git exports GIT_DIR to hooks without GIT_WORK_TREE (githooks(5)). Turbo runs
+# git status inside each package, and with GIT_DIR set that directory becomes the work tree root, so
+# every tracked file looks deleted and each status call writes tens of MB. Let git find the repository
+# from the working directory instead.
+unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
+
bun typecheck --filter='!@kilocode/kilo-jetbrains'
if [ "$jetbrains" -eq 1 ]; then
diff --git a/AGENTS.md b/AGENTS.md
index 433a39794ae..d11275fd596 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -132,6 +132,8 @@ Default to a single-word name for variables, parameters, and helper functions. R
You MUST avoid using `mocks` as much as possible.
Tests MUST test actual implementation, do not duplicate logic into a test.
+For VS Code UI changes, the optional shared self-test harness is at https://github.com/Kilo-Org/vscode-extension-self-test (the `vscode-self-test` skill). Offer it and let the user decide whether to install or use it.
+
## Markdown Tables
Do not pad markdown table cells for column alignment. Use the compact form with single-space-padded content cells and a minimal separator row:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 69612910fe0..b473c33a092 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -12,11 +12,13 @@ There are lots of ways to contribute to the project:
- **Feature Requests:** Suggest new features or improvements
- **Community Support:** Help other users in the community
+Community pull requests are triaged twice a week. See [Community triage](docs/community-triage.md) for what to expect and how long we wait for replies.
+
The Kilo Community is [on Discord](https://kilo.ai/discord).
## Prerequisites
-- **Bun 1.3.14+** — required for all packages.
+- **Bun 1.4.2+** — required for all packages.
- **Java 21** — required by the JetBrains plugin. The root `bun turbo typecheck` and `bun turbo test:ci` commands include `@kilocode/kilo-jetbrains` and will fail without Java 21.
The preferred way to install Java is via [SDKMAN](https://sdkman.io/install):
@@ -41,7 +43,7 @@ The Kilo Community is [on Discord](https://kilo.ai/discord).
## Developing Kilo CLI
-- **Requirements:** Bun 1.3.14+, Java 21 (see [Prerequisites](#prerequisites) above)
+- **Requirements:** Bun 1.4.2+, Java 21 (see [Prerequisites](#prerequisites) above)
- Install dependencies and start the CLI from the repo root:
```bash
diff --git a/artifacts/glm52-rise-video/package.json b/artifacts/glm52-rise-video/package.json
index fccdab264af..5c9d0b410d3 100644
--- a/artifacts/glm52-rise-video/package.json
+++ b/artifacts/glm52-rise-video/package.json
@@ -21,5 +21,5 @@
"@types/react-dom": "^19.2.3",
"typescript": "^5.8.2"
},
- "version": "7.8.3"
+ "version": "7.8.8"
}
diff --git a/bun.lock b/bun.lock
index 1e21c3805e2..e243e6fd00a 100644
--- a/bun.lock
+++ b/bun.lock
@@ -38,7 +38,7 @@
},
"packages/client": {
"name": "@opencode-ai/client",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@opencode-ai/protocol": "workspace:*",
"@opencode-ai/schema": "workspace:*",
@@ -62,7 +62,7 @@
},
"packages/codemode": {
"name": "@opencode-ai/codemode",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"acorn": "8.15.0",
"effect": "catalog:",
@@ -76,7 +76,7 @@
},
"packages/core": {
"name": "@opencode-ai/core",
- "version": "7.8.3",
+ "version": "7.8.8",
"bin": {
"opencode": "./bin/opencode",
},
@@ -174,7 +174,7 @@
},
"packages/effect-drizzle-sqlite": {
"name": "@opencode-ai/effect-drizzle-sqlite",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"drizzle-orm": "catalog:",
"effect": "catalog:",
@@ -188,7 +188,7 @@
},
"packages/effect-sqlite-node": {
"name": "@opencode-ai/effect-sqlite-node",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"effect": "catalog:",
},
@@ -200,7 +200,7 @@
},
"packages/http-recorder": {
"name": "@opencode-ai/http-recorder",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@effect/platform-node": "4.0.0-beta.83",
"@effect/platform-node-shared": "4.0.0-beta.83",
@@ -221,7 +221,7 @@
},
"packages/httpapi-codegen": {
"name": "@opencode-ai/httpapi-codegen",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"effect": "catalog:",
"prettier": "3.6.2",
@@ -234,7 +234,7 @@
},
"packages/kilo-console": {
"name": "@kilocode/kilo-console",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/kilo-indexing": "workspace:*",
"@kilocode/kilo-web-ui": "workspace:*",
@@ -256,7 +256,7 @@
},
"packages/kilo-docs": {
"name": "@kilocode/kilo-docs",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@docsearch/css": "^4",
"@docsearch/js": "^4",
@@ -266,7 +266,7 @@
"@xyflow/react": "12.10.2",
"js-yaml": "^4.3.2",
"mermaid": "11.17.2",
- "next": "^16.3.6",
+ "next": "^16.3.8",
"posthog-js": "^1.335.3",
"prismjs": "^1.30.0",
"react": "^19.2.4",
@@ -286,7 +286,7 @@
},
"packages/kilo-gateway": {
"name": "@kilocode/kilo-gateway",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@ai-sdk/anthropic": "3.0.82",
"@ai-sdk/openai": "3.0.88",
@@ -320,7 +320,7 @@
},
"packages/kilo-i18n": {
"name": "@kilocode/kilo-i18n",
- "version": "7.8.3",
+ "version": "7.8.8",
"devDependencies": {
"@tsconfig/node22": "catalog:",
"@types/bun": "catalog:",
@@ -330,7 +330,7 @@
},
"packages/kilo-indexing": {
"name": "@kilocode/kilo-indexing",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@aws-sdk/client-bedrock-runtime": "3.1005.0",
"@aws-sdk/credential-provider-ini": "3.972.31",
@@ -362,11 +362,11 @@
},
"packages/kilo-jetbrains": {
"name": "@kilocode/kilo-jetbrains",
- "version": "7.8.1",
+ "version": "7.8.7",
},
"packages/kilo-memory": {
"name": "@kilocode/kilo-memory",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"effect": "catalog:",
"zod": "catalog:",
@@ -380,7 +380,7 @@
},
"packages/kilo-sandbox": {
"name": "@kilocode/sandbox",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "catalog:",
"effect": "catalog:",
@@ -395,7 +395,7 @@
},
"packages/kilo-telemetry": {
"name": "@kilocode/kilo-telemetry",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/kilo-gateway": "workspace:*",
"posthog-node": "4.4.0",
@@ -409,7 +409,7 @@
},
"packages/kilo-ui": {
"name": "@kilocode/kilo-ui",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "0.13.11",
@@ -447,7 +447,7 @@
},
"packages/kilo-vscode": {
"name": "kilo-code",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@anthropic-ai/sdk": "^0.39.0",
"@kilocode/kilo-gateway": "workspace:*",
@@ -482,7 +482,7 @@
"openai": "^4.85.4",
"playwright-core": "1.57.0",
"quick-lru": "^7.0.0",
- "simple-git": "3.36.0",
+ "simple-git": "4.0.2",
"solid-js": "^1.9.11",
"uri-js": "^4.4.1",
"virtua": "catalog:",
@@ -506,7 +506,7 @@
"@types/ws": "8.18.1",
"@vscode/test-cli": "^0.0.12",
"@vscode/test-electron": "^2.5.2",
- "@vscode/vsce": "^3.7.1",
+ "@vscode/vsce": "^4.0.0",
"babel-preset-solid": "^1.9.9",
"esbuild": "^0.27.2",
"esbuild-plugin-solid": "^0.6.0",
@@ -527,7 +527,7 @@
},
"packages/kilo-web-ui": {
"name": "@kilocode/kilo-web-ui",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/kilo-ui": "workspace:*",
"@kobalte/core": "catalog:",
@@ -544,7 +544,7 @@
},
"packages/llm": {
"name": "@opencode-ai/llm",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@opencode-ai/schema": "workspace:*",
"@smithy/eventstream-codec": "4.2.14",
@@ -563,7 +563,7 @@
},
"packages/opencode": {
"name": "@kilocode/cli",
- "version": "7.8.3",
+ "version": "7.8.8",
"bin": {
"kilo": "./bin/kilo",
"kilocode": "./bin/kilo",
@@ -608,7 +608,7 @@
"@kilocode/sandbox": "workspace:*",
"@kilocode/sdk": "workspace:*",
"@lydell/node-pty": "catalog:",
- "@modelcontextprotocol/sdk": "1.29.0",
+ "@modelcontextprotocol/sdk": "1.31.0",
"@npmcli/arborist": "9.4.0",
"@octokit/graphql": "9.0.2",
"@octokit/rest": "catalog:",
@@ -674,7 +674,7 @@
"remeda": "catalog:",
"ripgrep": "0.3.1",
"semver": "^7.6.3",
- "simple-git": "3.36.0",
+ "simple-git": "4.0.2",
"solid-js": "catalog:",
"strip-ansi": "7.1.2",
"tree-sitter-bash": "0.25.0",
@@ -732,7 +732,7 @@
},
"packages/plugin": {
"name": "@kilocode/plugin",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@ai-sdk/provider": "3.0.8",
"@kilocode/sdk": "workspace:*",
@@ -761,7 +761,7 @@
},
"packages/plugin-atomic-chat": {
"name": "@kilocode/plugin-atomic-chat",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/plugin": "workspace:*",
},
@@ -775,7 +775,7 @@
},
"packages/protocol": {
"name": "@opencode-ai/protocol",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@opencode-ai/schema": "workspace:*",
"effect": "catalog:",
@@ -788,7 +788,7 @@
},
"packages/schema": {
"name": "@opencode-ai/schema",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"effect": "catalog:",
},
@@ -800,7 +800,7 @@
},
"packages/script": {
"name": "@opencode-ai/script",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"semver": "^7.6.3",
},
@@ -811,7 +811,7 @@
},
"packages/sdk-next": {
"name": "@opencode-ai/sdk-next",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@opencode-ai/client": "workspace:*",
"@opencode-ai/core": "workspace:*",
@@ -826,7 +826,7 @@
},
"packages/sdk/js": {
"name": "@kilocode/sdk",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"cross-spawn": "catalog:",
},
@@ -841,7 +841,7 @@
},
"packages/server": {
"name": "@opencode-ai/server",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@opencode-ai/core": "workspace:*",
"@opencode-ai/protocol": "workspace:*",
@@ -856,7 +856,7 @@
},
"packages/session-ui": {
"name": "@opencode-ai/session-ui",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "catalog:",
@@ -873,12 +873,10 @@
"@solidjs/meta": "catalog:",
"@solidjs/router": "catalog:",
"diff": "catalog:",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
"fuzzysort": "catalog:",
- "katex": "0.16.27",
"luxon": "catalog:",
"marked": "catalog:",
- "marked-katex-extension": "5.1.6",
"marked-shiki": "catalog:",
"morphdom": "2.7.8",
"motion": "12.34.5",
@@ -892,7 +890,6 @@
"devDependencies": {
"@tsconfig/node22": "catalog:",
"@types/bun": "catalog:",
- "@types/katex": "0.16.7",
"@types/luxon": "catalog:",
"@typescript/native-preview": "catalog:",
"typescript": "catalog:",
@@ -901,7 +898,7 @@
},
"packages/storybook": {
"name": "@opencode-ai/storybook",
- "version": "7.8.3",
+ "version": "7.8.8",
"devDependencies": {
"@opencode-ai/session-ui": "workspace:*",
"@opencode-ai/ui": "workspace:*",
@@ -926,7 +923,7 @@
},
"packages/tui": {
"name": "@opencode-ai/tui",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/plugin": "workspace:*",
"@kilocode/sdk": "workspace:*",
@@ -952,7 +949,7 @@
},
"packages/ui": {
"name": "@opencode-ai/ui",
- "version": "7.8.3",
+ "version": "7.8.8",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "catalog:",
@@ -968,12 +965,11 @@
"@solidjs/router": "catalog:",
"@typescript/native-preview": "catalog:",
"diff": "catalog:",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
"fuzzysort": "catalog:",
- "katex": "0.16.27",
+ "katex": "0.19.0",
"luxon": "catalog:",
"marked": "catalog:",
- "marked-katex-extension": "5.1.6",
"marked-shiki": "catalog:",
"mermaid": "11.17.2",
"morphdom": "2.7.8",
@@ -1022,9 +1018,9 @@
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch",
"@ai-sdk/openai-compatible@2.0.48": "patches/@ai-sdk%2Fopenai-compatible@2.0.48.patch",
"@ai-sdk/xai@3.0.102": "patches/@ai-sdk%2Fxai@3.0.102.patch",
- "@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
- "@ff-labs/fff-bun@0.9.4": "patches/@ff-labs%2Ffff-bun@0.9.4.patch",
"bun-pty@0.4.8": "patches/bun-pty@0.4.8.patch",
+ "@ff-labs/fff-bun@0.9.4": "patches/@ff-labs%2Ffff-bun@0.9.4.patch",
+ "@modelcontextprotocol/sdk@1.31.0": "patches/@modelcontextprotocol%2Fsdk@1.31.0.patch",
"pacote@21.5.1": "patches/pacote@21.5.1.patch",
"@standard-community/standard-openapi@0.2.9": "patches/@standard-community%2Fstandard-openapi@0.2.9.patch",
"@ai-sdk/anthropic@3.0.111": "patches/@ai-sdk%2Fanthropic@3.0.111.patch",
@@ -1050,10 +1046,11 @@
"@xmldom/xmldom": ">=0.8.12",
"defu": "6.1.6",
"diff": "8.0.4",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
"effect": "catalog:",
"fastify": ">=5.8.3",
"happy-dom": ">=20.8.9",
+ "katex": "0.19.0",
"lodash": "4.18.1",
"path-to-regexp": ">=8.4.0",
"picomatch": ">=2.3.2",
@@ -1089,7 +1086,7 @@
"@tanstack/solid-virtual": "3.13.32",
"@tsconfig/bun": "1.0.9",
"@tsconfig/node22": "22.0.2",
- "@types/bun": "1.3.14",
+ "@types/bun": "1.4.2",
"@types/cross-spawn": "6.0.6",
"@types/luxon": "3.7.1",
"@types/node": "24.12.4",
@@ -1098,7 +1095,7 @@
"ai": "6.0.235",
"cross-spawn": "7.0.6",
"diff": "8.0.4",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
"drizzle-kit": "1.0.0-rc.2",
"drizzle-orm": "1.0.0-rc.2",
"effect": "4.0.0-beta.83",
@@ -1302,10 +1299,6 @@
"@axe-core/playwright": ["@axe-core/playwright@4.11.3", "", { "dependencies": { "axe-core": "~4.11.4" }, "peerDependencies": { "playwright-core": ">= 1.0.0" } }, "sha512-h/kfksv4F0cVIDlKpT4700OehdRgpvuVskuQ2nb7/JmtWUXpe9ftHAPtwyXGvVSsa6SJ64A9ER7Zrzc/sIvC4w=="],
- "@azu/format-text": ["@azu/format-text@1.0.2", "", {}, "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg=="],
-
- "@azu/style-format": ["@azu/style-format@1.0.1", "", { "dependencies": { "@azu/format-text": "^1.0.1" } }, "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g=="],
-
"@azure/abort-controller": ["@azure/abort-controller@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg=="],
"@azure/core-auth": ["@azure/core-auth@1.11.0", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-util": "^1.13.0", "tslib": "^2.6.2" } }, "sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg=="],
@@ -1318,6 +1311,8 @@
"@azure/core-paging": ["@azure/core-paging@1.7.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-7GEAoIsaoBr6KELNRb8nypowCqvk8dnCHFCYg4XD4lOQGY2GqjQg5IhkRjyBFRO18CGSMq05PaNqSOE9GQro3g=="],
+ "@azure/core-process": ["@azure/core-process@1.0.0", "", {}, "sha512-/shnJ+ooO8WPxDhPEeI/2oRQuubn16gZ6CvlbpWbEswZfzwI9tI/sMAHmF3x1LuQ9yZYXfLW3TjzGMLEC5blKg=="],
+
"@azure/core-rest-pipeline": ["@azure/core-rest-pipeline@1.25.0", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.10.0", "@azure/core-tracing": "^1.3.0", "@azure/core-util": "^1.13.0", "@azure/logger": "^1.3.0", "@typespec/ts-http-runtime": "^0.3.4", "tslib": "^2.6.2" } }, "sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA=="],
"@azure/core-tracing": ["@azure/core-tracing@1.4.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ=="],
@@ -1326,7 +1321,7 @@
"@azure/core-xml": ["@azure/core-xml@1.6.0", "", { "dependencies": { "fast-xml-parser": "^5.5.9", "tslib": "^2.8.1" } }, "sha512-e7lX/dk//F6Qf7BB6PTY4+p2yuOQtyOeHGyapYHNwqSp2OnYpwQt49A/Nin2XmKBQ69pwagR4k/lQBq8lbHQkA=="],
- "@azure/identity": ["@azure/identity@4.13.1", "", { "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.9.0", "@azure/core-client": "^1.9.2", "@azure/core-rest-pipeline": "^1.17.0", "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", "@azure/msal-browser": "^5.5.0", "@azure/msal-node": "^5.1.0", "open": "^10.1.0", "tslib": "^2.2.0" } }, "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw=="],
+ "@azure/identity": ["@azure/identity@4.13.3", "", { "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.9.0", "@azure/core-client": "^1.9.2", "@azure/core-process": "^1.0.0", "@azure/core-rest-pipeline": "^1.17.0", "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", "@azure/msal-browser": "^5.5.0", "@azure/msal-node": "^6.0.0", "open": "^10.1.0", "tslib": "^2.2.0" } }, "sha512-zGQPtqvXPgSA8yfV2CkIQ1qirqk0p9AIVpC5uEkdXQYcKl07QHvyaGYRnZOk0AsQUmxNb4wfkcwY5di8Z5xa9A=="],
"@azure/logger": ["@azure/logger@1.4.0", "", { "dependencies": { "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" } }, "sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA=="],
@@ -1334,7 +1329,7 @@
"@azure/msal-common": ["@azure/msal-common@16.12.0", "", {}, "sha512-hgLgfRdbG2AmhXPygebf1KYJEvse86+ZZLWufdiTKaGRYEUqOzHdlf6AS1IiuUCHWbynkgbHc451jSNkbfhWlg=="],
- "@azure/msal-node": ["@azure/msal-node@5.5.0", "", { "dependencies": { "@azure/msal-common": "16.12.0", "jsonwebtoken": "^9.0.0" } }, "sha512-A/2WIsuH0vsC6JVkkafjS4kHpi2LDR4AzDT0kJ+oIRtXYeYtvGQ2pwN2X88thQPhSek+82ela3MprsKXWQRrhQ=="],
+ "@azure/msal-node": ["@azure/msal-node@6.0.1", "", { "dependencies": { "@azure/msal-common": "16.14.1", "jsonwebtoken": "^9.0.0" } }, "sha512-ixSO1Y/kCVRthRs+hSx/5qkwaunX1/RAePhlMN0wIpIQ4WEZ6AREGGnGd1AP0qspHVsAwzWQKGubpjh50JyJIQ=="],
"@azure/storage-blob": ["@azure/storage-blob@12.33.0", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.9.0", "@azure/core-client": "^1.9.3", "@azure/core-http-compat": "^2.2.0", "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.6.2", "@azure/core-rest-pipeline": "^1.19.1", "@azure/core-tracing": "^1.2.0", "@azure/core-util": "^1.11.0", "@azure/core-xml": "^1.4.5", "@azure/logger": "^1.1.4", "@azure/storage-common": "^12.4.1", "events": "^3.0.0", "tslib": "^2.8.1" } }, "sha512-2SX8oP8PyblUcAFZSg39c8Ls+tFjavM6sBeV+qpw33mRzRhI/5hrFJmJ/x0H9xx5l6ECPvgSP8uPxqTeVbHNIA=="],
@@ -1624,57 +1619,57 @@
"@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="],
- "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.3" }, "os": "darwin", "cpu": "arm64" }, "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA=="],
+ "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg=="],
- "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.3" }, "os": "darwin", "cpu": "x64" }, "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw=="],
+ "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.4" }, "os": "darwin", "cpu": "x64" }, "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw=="],
- "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.4", "", { "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "os": "freebsd" }, "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA=="],
+ "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.5", "", { "dependencies": { "@img/sharp-wasm32": "0.35.5" }, "os": "freebsd" }, "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw=="],
- "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg=="],
+ "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw=="],
- "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw=="],
+ "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ=="],
- "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.3", "", { "os": "linux", "cpu": "arm" }, "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA=="],
+ "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.4", "", { "os": "linux", "cpu": "arm" }, "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw=="],
- "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A=="],
+ "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A=="],
- "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w=="],
+ "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ=="],
- "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.3", "", { "os": "linux", "cpu": "none" }, "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ=="],
+ "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.4", "", { "os": "linux", "cpu": "none" }, "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q=="],
- "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q=="],
+ "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ=="],
- "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA=="],
+ "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw=="],
- "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw=="],
+ "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA=="],
- "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw=="],
+ "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg=="],
- "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.3" }, "os": "linux", "cpu": "arm" }, "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A=="],
+ "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.4" }, "os": "linux", "cpu": "arm" }, "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ=="],
- "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.3" }, "os": "linux", "cpu": "arm64" }, "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ=="],
+ "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.4" }, "os": "linux", "cpu": "arm64" }, "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ=="],
- "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.3" }, "os": "linux", "cpu": "ppc64" }, "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ=="],
+ "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA=="],
- "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.3" }, "os": "linux", "cpu": "none" }, "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA=="],
+ "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.4" }, "os": "linux", "cpu": "none" }, "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ=="],
- "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.3" }, "os": "linux", "cpu": "s390x" }, "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ=="],
+ "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.4" }, "os": "linux", "cpu": "s390x" }, "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA=="],
- "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.3" }, "os": "linux", "cpu": "x64" }, "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA=="],
+ "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.4" }, "os": "linux", "cpu": "x64" }, "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog=="],
- "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" }, "os": "linux", "cpu": "arm64" }, "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA=="],
+ "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" }, "os": "linux", "cpu": "arm64" }, "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg=="],
- "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.4", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.3" }, "os": "linux", "cpu": "x64" }, "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg=="],
+ "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.4" }, "os": "linux", "cpu": "x64" }, "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A=="],
- "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.4", "", { "dependencies": { "@emnapi/runtime": "^1.11.3" } }, "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA=="],
+ "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.5", "", { "dependencies": { "@emnapi/runtime": "^1.11.3" } }, "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ=="],
- "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.4", "", { "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "cpu": "none" }, "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA=="],
+ "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.5", "", { "dependencies": { "@img/sharp-wasm32": "0.35.5" }, "cpu": "none" }, "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA=="],
- "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw=="],
+ "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q=="],
- "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw=="],
+ "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A=="],
- "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.4", "", { "os": "win32", "cpu": "x64" }, "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg=="],
+ "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.5", "", { "os": "win32", "cpu": "x64" }, "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg=="],
"@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="],
@@ -1798,7 +1793,7 @@
"@mixmark-io/domino": ["@mixmark-io/domino@2.2.0", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="],
- "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="],
+ "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.31.0", "", { "dependencies": { "@hono/node-server": "^1.19.9 || ^2.0.5", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-UvTMgnNlnIBO/22ob2RcVGDlcvOslQs8T59+FTGdA0L27a39fdGF/EDETNtDVK4DZGpwomlsYpRdA8UXcVL/pw=="],
"@msgpackr-extract/msgpackr-extract-darwin-arm64": ["@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ=="],
@@ -1812,27 +1807,53 @@
"@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ=="],
+ "@napi-rs/keyring": ["@napi-rs/keyring@1.3.0", "", { "optionalDependencies": { "@napi-rs/keyring-darwin-arm64": "1.3.0", "@napi-rs/keyring-darwin-x64": "1.3.0", "@napi-rs/keyring-freebsd-x64": "1.3.0", "@napi-rs/keyring-linux-arm-gnueabihf": "1.3.0", "@napi-rs/keyring-linux-arm64-gnu": "1.3.0", "@napi-rs/keyring-linux-arm64-musl": "1.3.0", "@napi-rs/keyring-linux-riscv64-gnu": "1.3.0", "@napi-rs/keyring-linux-x64-gnu": "1.3.0", "@napi-rs/keyring-linux-x64-musl": "1.3.0", "@napi-rs/keyring-win32-arm64-msvc": "1.3.0", "@napi-rs/keyring-win32-ia32-msvc": "1.3.0", "@napi-rs/keyring-win32-x64-msvc": "1.3.0" } }, "sha512-WrOw/bcXm0f9qHkumlT1QlArXSTWqaY9sunsDpOk+yCCorCKMxvWT/a3xko4EYHVdeZoh00yI2TydXn6eyICDA=="],
+
+ "@napi-rs/keyring-darwin-arm64": ["@napi-rs/keyring-darwin-arm64@1.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-pl76hJvdYUBn6I24bXiOBMA9nbDapo3I5B+f3OorjDU4dUMSypXeKbOVehJe8fhgTiH24flMyTS3aAIy43xegQ=="],
+
+ "@napi-rs/keyring-darwin-x64": ["@napi-rs/keyring-darwin-x64@1.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-YcJtEV5LA3cvA4z3BurgxH5IhTsW1JfIvcAAcqcecwk06Si9F9NqkxbZVIfDwQ8oRHgaBmT3zZJnLAotCrVahw=="],
+
+ "@napi-rs/keyring-freebsd-x64": ["@napi-rs/keyring-freebsd-x64@1.3.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-vlLf31TGhfRAaxLDBhg8b89ss0HHD/lyNmL5F3UjSaz5CUXElsJmKYq9fqA/B+cZKUEUcLHHGhF0I/CqcFdaVw=="],
+
+ "@napi-rs/keyring-linux-arm-gnueabihf": ["@napi-rs/keyring-linux-arm-gnueabihf@1.3.0", "", { "os": "linux", "cpu": "arm" }, "sha512-KiWdMMu/Inz/bHHIAGrnF7r54FZDYXuHO6UFF/rhIrshUsxbMG1Rl9lEymNtqqsVo927G0VYcb02FzWQ3iBQRQ=="],
+
+ "@napi-rs/keyring-linux-arm64-gnu": ["@napi-rs/keyring-linux-arm64-gnu@1.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-eyKGpY40lm9Jvs1aD294XRH4y7+TlJM0YVAryZeXA6TX0mb4gMkxVXwSQv7MCwgah7raeUd0dKUb4BPAYIgcMg=="],
+
+ "@napi-rs/keyring-linux-arm64-musl": ["@napi-rs/keyring-linux-arm64-musl@1.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-iIK6JWHXAJqDrEyLY3TmswwloVyt2vj+04TZnew+uSJ9gnDO8EwRbp3/iw3LpWaXiDO7VomGO6y8I0Id8uBZSw=="],
+
+ "@napi-rs/keyring-linux-riscv64-gnu": ["@napi-rs/keyring-linux-riscv64-gnu@1.3.0", "", { "os": "linux", "cpu": "none" }, "sha512-/PGqrwn6EwgtK6vccASSXJRfOSP4vN1F4ASsIQ+7MdrK6hNvAJ1FZPrIuD5gGGdxezo3F++To2Wq7DbuGIeuNQ=="],
+
+ "@napi-rs/keyring-linux-x64-gnu": ["@napi-rs/keyring-linux-x64-gnu@1.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2PDK1WKWTu9lBGq9VvNEkSlQD3O7YwVpmnyN2M3cy4v7NJ/8gDMd9GXv3G+FVXN13uhp4gnnPBS+ScefmEeD2A=="],
+
+ "@napi-rs/keyring-linux-x64-musl": ["@napi-rs/keyring-linux-x64-musl@1.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-oJ2HkX8YUo46QBkn0pG+HuIKQNqr523q6vBobCn+P95s4C4K6/kLBqHY/1bg5J4ap31DzsznhnFKcfBNBsjCnw=="],
+
+ "@napi-rs/keyring-win32-arm64-msvc": ["@napi-rs/keyring-win32-arm64-msvc@1.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-tOd3c/uAaeoE4ycVlmAdSvygz0Zt3zdca6Y7gokBeIbaRDWpjDIUOpU3MvML59XAaqyuKGsVVu0F/DZb1lHPmw=="],
+
+ "@napi-rs/keyring-win32-ia32-msvc": ["@napi-rs/keyring-win32-ia32-msvc@1.3.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-sPSqeAFZMGqP1R++M2JTza7GQJJ/TpCo6JU6Vcd4jnebvOaEDs9b7eipakU1PJdSvhpC2yXMCNRk9gXfrhuwHQ=="],
+
+ "@napi-rs/keyring-win32-x64-msvc": ["@napi-rs/keyring-win32-x64-msvc@1.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-4DnCWXwDc0HRKwyRlG5y0VhKZW2tNRQfKKfyj6IX/KWfDNyq9hn4n+GL1auyDcOO/v8PwnhmYo2+rOOqCkvvOg=="],
+
"@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="],
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" } }, "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw=="],
- "@next/env": ["@next/env@16.3.6", "", {}, "sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ=="],
+ "@next/env": ["@next/env@16.3.8", "", {}, "sha512-Al9zqHVV7TJv0eFuOU4U7Lvv74PTih4Ch63sk2xCIpSTkE3udFnaOcnzP2lQVymiL7yS9Cj2iClUXlR3EQ5sEw=="],
- "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.3.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-E/7GEqaUkt8mk/T8v9lAnrhzR06kdq1ZBkC12F8tAMkdIadwNp3H1KqHynDHrpcTlGCUdq/qu6vUL2aYVyYBdw=="],
+ "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.3.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2JPRMh2nmQG5CiL7cXGL9AGwnPWJQ//cTtAUCT+w511QHk79SYz3LGv/pc5X643B/WEO0rvu3Yww0hqwt3kgeA=="],
- "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.3.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-yBE893/nDWTlaiBD1p+qgt7NUen4U5R6FXyH0s67Npq1S3E0cVSef1WIXC2xBRgQvwAvJq6DnS6Y6PrY0cy4Ew=="],
+ "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.3.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-GZtCCOBKJ4leVIT/Th0llWKhD1ca92lzbQiS5R5ON9QkoiFnilFsebDae1JU2a3HWoKMEmEZWGs1AGLavVM72Q=="],
- "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-KJDpjBqBPYlvkivmyrp+Qys6k/7ksbqGQvRVc6ZEGfR+cjQxx+nUkJaWmNZJsmoOrqYNbaXByF8wa0lBwDhB3Q=="],
+ "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.3.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-O659ygeQYqneJ1fBKMpFxIFqYkYswu8IAS1OCKK/4f3ZgJJm1dRz4fVJZRi/kLLWjnBKnebOePA4WNv+sV1pVA=="],
- "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-mqNg2K+hvWskSRb/QM+Ix412DvBsuSF0XV+frTSw5vmoucNnIlynFwKYew8D01bfATErMOM7Bujrf0BA5DRKFA=="],
+ "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.3.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-dSjKSyWpzxoO1d3DIZZcP4XJcNaKeLmxQMFOiYl5vuBRMmweIqnAhty8tAmRsvTss779cK1FtYnDMj40e4TQlg=="],
- "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-nFncBNGAYouRHjRVaITs9beZRfhX4ssVwpnvPIAbkZVH6LtGoAVlH4bJ8Cnf9SOo9bsXgPFer/GdHtEE3JNOkw=="],
+ "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.3.8", "", { "os": "linux", "cpu": "x64" }, "sha512-lbqOuz3RPRcv+o9msNsJw5x4+Y1ZwPTs6vmL6DCf7i0fZfvng/F59wyeDwqHIvV0mK//RBy/jJkZ+nCKsSMXjQ=="],
- "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-5Mf3cHDGR/Iz0ng2Bj3zUR3p5QS9YK3Hn2QiAfavFmyF48zwThAjpFoiTKNIcOHLYS4zEk+gzyJ/9deQ2ZB8yQ=="],
+ "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.3.8", "", { "os": "linux", "cpu": "x64" }, "sha512-+316WswI8ScVgZeUd+1KGaXkHhaYQzCjvH/05TZSpJ8zBizb1a4G7DtO7F12jcBIqMOtsz9ji1t48fmKtzqsGA=="],
- "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.3.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-0jkJy0C2kbrJWTk4YLa3xk80pVBpx8FCHJym7CnUfDAXe/FWv5qT7SQJbR0KuemyxaEDlEx5WT4VQJoTW+/9Qw=="],
+ "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.3.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-ji0gd4kMYUxO+1fJBIbiBVRCjzG/lloiyCccnlebvb1ZJ5qXCPZqYg4Jl1DrrixnWNMKylzgpmMWx0yNDYXlzw=="],
- "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.3.6", "", { "os": "win32", "cpu": "x64" }, "sha512-/YXjI1e5OXcZ7YpxRwgP/1jAV/SBKTzeVKqN2mk7mLpcICsyn3Gl5+dIfDTJp70M0ccMhyMMRso4v6mPDCGepg=="],
+ "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.3.8", "", { "os": "win32", "cpu": "x64" }, "sha512-WcTlaKt/TWkh5kUjdJcUmB1XgZ+1c6fz4Y9fDHL73YNSdGaUWjceeWrrlwF0nv19iABYWC4iAq1oX1w4Bn0vfg=="],
"@nodable/entities": ["@nodable/entities@3.0.0", "", {}, "sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw=="],
@@ -2260,22 +2281,10 @@
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.4", "", { "os": "win32", "cpu": "x64" }, "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q=="],
- "@secretlint/config-creator": ["@secretlint/config-creator@10.2.2", "", { "dependencies": { "@secretlint/types": "^10.2.2" } }, "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ=="],
-
- "@secretlint/config-loader": ["@secretlint/config-loader@10.2.2", "", { "dependencies": { "@secretlint/profiler": "^10.2.2", "@secretlint/resolver": "^10.2.2", "@secretlint/types": "^10.2.2", "ajv": "^8.17.1", "debug": "^4.4.1", "rc-config-loader": "^4.1.3" } }, "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ=="],
-
"@secretlint/core": ["@secretlint/core@13.0.5", "", { "dependencies": { "@secretlint/profiler": "13.0.5", "@secretlint/types": "13.0.5", "debug": "^4.4.3", "structured-source": "^4.0.0" } }, "sha512-GOT2sDxb3Gz1kLx1/1zfSbnzjQrmZ/8rB62jcz98uA2eavtMNkwgybsaW0toNIaGGCVvnfYJ35pwRR6UG8lJRQ=="],
- "@secretlint/formatter": ["@secretlint/formatter@10.2.2", "", { "dependencies": { "@secretlint/resolver": "^10.2.2", "@secretlint/types": "^10.2.2", "@textlint/linter-formatter": "^15.2.0", "@textlint/module-interop": "^15.2.0", "@textlint/types": "^15.2.0", "chalk": "^5.4.1", "debug": "^4.4.1", "pluralize": "^8.0.0", "strip-ansi": "^7.1.0", "table": "^6.9.0", "terminal-link": "^4.0.0" } }, "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA=="],
-
- "@secretlint/node": ["@secretlint/node@10.2.2", "", { "dependencies": { "@secretlint/config-loader": "^10.2.2", "@secretlint/core": "^10.2.2", "@secretlint/formatter": "^10.2.2", "@secretlint/profiler": "^10.2.2", "@secretlint/source-creator": "^10.2.2", "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "p-map": "^7.0.3" } }, "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ=="],
-
"@secretlint/profiler": ["@secretlint/profiler@13.0.5", "", {}, "sha512-FAQIuD+sHgBqUl3zf4PN/zPW4aMDo5Ou9z3lMqL7vWSDvujhqwqolyLbdK/FKsmpdE8L87vfiabL2XvWqufZ7Q=="],
- "@secretlint/resolver": ["@secretlint/resolver@10.2.2", "", {}, "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w=="],
-
- "@secretlint/secretlint-formatter-sarif": ["@secretlint/secretlint-formatter-sarif@10.2.2", "", { "dependencies": { "node-sarif-builder": "^3.2.0" } }, "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ=="],
-
"@secretlint/secretlint-rule-no-dotenv": ["@secretlint/secretlint-rule-no-dotenv@10.2.2", "", { "dependencies": { "@secretlint/types": "^10.2.2" } }, "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg=="],
"@secretlint/secretlint-rule-preset-recommend": ["@secretlint/secretlint-rule-preset-recommend@13.0.5", "", {}, "sha512-dxOmTLf1w7I6rQEFPL8Hkdz6dR1FQXF0bzmTahH/Wyezy89TMPLL+8LbZ2YD8trkmYBnS37zUmOsZT6rMVftKQ=="],
@@ -2318,11 +2327,9 @@
"@silvia-odwyer/photon-node": ["@silvia-odwyer/photon-node@0.3.4", "", {}, "sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA=="],
- "@simple-git/args-pathspec": ["@simple-git/args-pathspec@1.0.3", "", {}, "sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA=="],
+ "@simple-git/args-pathspec": ["@simple-git/args-pathspec@1.0.4", "", {}, "sha512-EtMX6XjRWSastG2SdkmSQByPtJ9dx/NIjnHbpQPCYt62j4RmSx5rgLTGpw0YCjF5h191gZOmBfheOT23cRSFdw=="],
- "@simple-git/argv-parser": ["@simple-git/argv-parser@1.1.1", "", { "dependencies": { "@simple-git/args-pathspec": "^1.0.3" } }, "sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw=="],
-
- "@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@2.3.0", "", {}, "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg=="],
+ "@simple-git/argv-parser": ["@simple-git/argv-parser@2.0.1", "", { "dependencies": { "@simple-git/args-pathspec": "^1.0.4" } }, "sha512-M++IaVWrN+vYalilOHfwvT2IL3wYZtVEBQpmX6DLSOJLtxbZ+SUeIDE3IiPogzhPACLajwtxfa5rp+ZX1FczzQ=="],
"@smithy/config-resolver": ["@smithy/config-resolver@4.6.16", "", { "dependencies": { "@smithy/core": "^3.31.1", "tslib": "^2.6.2" } }, "sha512-XMDfb7LTrlUeI9PpfMa6xzRv+yMtYFsr1LqTsR3CGpSSaaPIR5ldlAiXyLjFYmbh1/DD5NxHmDybdh6lJjJM+Q=="],
@@ -2512,16 +2519,6 @@
"@testing-library/user-event": ["@testing-library/user-event@14.6.3", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g=="],
- "@textlint/ast-node-types": ["@textlint/ast-node-types@15.8.0", "", {}, "sha512-5CiH9COYmovWmExQgs7763DzX6Gy9zjkjJ7JxCC95wyTcjwQn/8poNF6fv3qzRlmx8CRRde8DHr9FcgAAiPzgw=="],
-
- "@textlint/linter-formatter": ["@textlint/linter-formatter@15.8.0", "", { "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", "@textlint/module-interop": "15.8.0", "@textlint/resolver": "15.8.0", "@textlint/types": "15.8.0", "debug": "^4.4.3", "js-yaml": "^4.3.0", "lodash": "^4.18.1", "pluralize": "^2.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "table": "^6.9.0", "text-table": "^0.2.0" } }, "sha512-+oU3A235NATv6Lzi4xa4kJ65PuNJlIxesaO4AvDhDWA9FWm7y4XKWaoQCW1esgaQQ6dwnUiFKArQ8TcJ86mC4w=="],
-
- "@textlint/module-interop": ["@textlint/module-interop@15.8.0", "", {}, "sha512-rt+OR1WYGoLOY8HkA/aBPrqufF6yUUEsKEAh7XohTsT3lp9IyZFT6zOIbjul9P4FAzsmSPkcrYjVx3Bz/IUfkg=="],
-
- "@textlint/resolver": ["@textlint/resolver@15.8.0", "", {}, "sha512-E88tzfX3K8Jykk+38aJ9cy8RquD8ABVOPTO2rFEESq0wcg8x6/ypdAS8ZgR7OKiGqlRF0hkO/m5PbQwVfKM3VA=="],
-
- "@textlint/types": ["@textlint/types@15.8.0", "", { "dependencies": { "@textlint/ast-node-types": "15.8.0" } }, "sha512-Anhc6y5736YIsvqae0U6k0YmB2M/QVHkEeOv2aydAn/WIkdI69dCOiDbe3/+RagS3qstFTSFWJzNRA2lUjv19w=="],
-
"@thisbeyond/solid-dnd": ["@thisbeyond/solid-dnd@0.7.5", "", { "peerDependencies": { "solid-js": "^1.5" } }, "sha512-DfI5ff+yYGpK9M21LhYwIPlbP2msKxN2ARwuu6GF8tT1GgNVDTI8VCQvH4TJFoVApP9d44izmAcTh/iTCH2UUw=="],
"@ts-morph/common": ["@ts-morph/common@0.28.1", "", { "dependencies": { "minimatch": "^10.0.1", "path-browserify": "^1.0.1", "tinyglobby": "^0.2.14" } }, "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g=="],
@@ -2558,7 +2555,7 @@
"@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="],
- "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="],
+ "@types/bun": ["@types/bun@1.4.2", "", { "dependencies": { "bun-types": "1.4.2" } }, "sha512-GimotNn7+ZV0uVArItBbriZsR1oNf0+WTzPkdcFrzShI7k2norL0uzEaJT8T33dWr7O/c9ZDuAFQrctKCi72oQ=="],
"@types/cacache": ["@types/cacache@20.0.1", "", { "dependencies": { "@types/node": "*", "minipass": "*" } }, "sha512-QlKW3AFoFr/hvPHwFHMIVUH/ZCYeetBNou3PCmxu5LaNDvrtBlPJtIA6uhmU9JRt9oxj7IYoqoLcpxtzpPiTcw=="],
@@ -2668,8 +2665,6 @@
"@types/node-fetch": ["@types/node-fetch@2.6.13", "", { "dependencies": { "@types/node": "*", "form-data": "^4.0.4" } }, "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw=="],
- "@types/normalize-package-data": ["@types/normalize-package-data@2.4.4", "", {}, "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="],
-
"@types/npm-package-arg": ["@types/npm-package-arg@6.1.4", "", {}, "sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q=="],
"@types/npm-registry-fetch": ["@types/npm-registry-fetch@8.0.9", "", { "dependencies": { "@types/node": "*", "@types/node-fetch": "*", "@types/npm-package-arg": "*", "@types/npmlog": "*", "@types/ssri": "*" } }, "sha512-7NxvodR5Yrop3pb6+n8jhJNyzwOX0+6F+iagNEoi9u1CGxruYAwZD8pvGc9prIkL0+FdX5Xp0p80J9QPrGUp/g=="],
@@ -2690,8 +2685,6 @@
"@types/react-dom": ["@types/react-dom@19.2.4", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw=="],
- "@types/sarif": ["@types/sarif@2.1.7", "", {}, "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ=="],
-
"@types/scheduler": ["@types/scheduler@0.26.0", "", {}, "sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA=="],
"@types/semver": ["@types/semver@7.8.0", "", {}, "sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ=="],
@@ -2784,9 +2777,9 @@
"@vscode/test-electron": ["@vscode/test-electron@2.5.2", "", { "dependencies": { "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.5", "jszip": "^3.10.1", "ora": "^8.1.0", "semver": "^7.6.2" } }, "sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg=="],
- "@vscode/vsce": ["@vscode/vsce@3.9.2", "", { "dependencies": { "@azure/identity": "^4.1.0", "@secretlint/node": "^10.1.2", "@secretlint/secretlint-formatter-sarif": "^10.1.2", "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.9", "cockatiel": "^3.1.2", "commander": "^12.1.0", "form-data": "^4.0.0", "glob": "^13.0.6", "hosted-git-info": "^4.0.2", "jsonc-parser": "^3.2.0", "leven": "^3.1.0", "markdown-it": "^14.1.0", "mime": "^1.3.4", "minimatch": "^10.2.2", "parse-semver": "^1.1.1", "read": "^1.0.7", "secretlint": "^10.1.2", "semver": "^7.5.2", "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", "url-join": "^4.0.1", "xml2js": "^0.5.0", "yauzl": "^3.2.1", "yazl": "^2.2.2" }, "optionalDependencies": { "keytar": "^7.7.0" }, "bin": { "vsce": "vsce" } }, "sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA=="],
+ "@vscode/vsce": ["@vscode/vsce@4.0.0", "", { "dependencies": { "@azure/identity": "^4.13.2", "@napi-rs/keyring": "^1.3.0", "@secretlint/core": "^10.2.2", "@secretlint/secretlint-rule-no-dotenv": "^10.2.2", "@secretlint/secretlint-rule-preset-recommend": "^10.2.2", "@secretlint/source-creator": "^10.2.2", "@secretlint/types": "^10.2.2", "@vscode/vsce-sign": "^2.1.0", "azure-devops-node-api": "^12.5.0", "cockatiel": "^3.2.1", "commander": "^12.1.0", "hosted-git-info": "^4.1.0", "jsonc-parser": "^3.3.1", "marked": "^18.0.11", "mime": "^1.6.0", "minimatch": "^10.2.6", "parse5": "^8.0.1", "proper-lockfile": "^4.1.2", "read": "^1.0.7", "semver": "^7.8.5", "tinyglobby": "^0.2.17", "typed-rest-client": "^1.8.11", "url-join": "^4.0.1", "xml2js": "^0.5.0", "yauzl": "^3.4.0", "yazl": "^2.5.1" }, "bin": { "vsce": "vsce" } }, "sha512-NImwuLaenMmb5D5Jer9/lzi/F9ZQUBOp8Azhj/BVYcTFgixv8KehFXqEUDjQlD2tAiw2E6dDGyjTuAB//di60A=="],
- "@vscode/vsce-sign": ["@vscode/vsce-sign@2.0.9", "", { "optionalDependencies": { "@vscode/vsce-sign-alpine-arm64": "2.0.6", "@vscode/vsce-sign-alpine-x64": "2.0.6", "@vscode/vsce-sign-darwin-arm64": "2.0.6", "@vscode/vsce-sign-darwin-x64": "2.0.6", "@vscode/vsce-sign-linux-arm": "2.0.6", "@vscode/vsce-sign-linux-arm64": "2.0.6", "@vscode/vsce-sign-linux-x64": "2.0.6", "@vscode/vsce-sign-win32-arm64": "2.0.6", "@vscode/vsce-sign-win32-x64": "2.0.6" } }, "sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g=="],
+ "@vscode/vsce-sign": ["@vscode/vsce-sign@2.1.0", "", { "optionalDependencies": { "@vscode/vsce-sign-alpine-arm64": "2.0.6", "@vscode/vsce-sign-alpine-x64": "2.0.6", "@vscode/vsce-sign-darwin-arm64": "2.0.6", "@vscode/vsce-sign-darwin-x64": "2.0.6", "@vscode/vsce-sign-linux-arm": "2.0.6", "@vscode/vsce-sign-linux-arm64": "2.0.6", "@vscode/vsce-sign-linux-x64": "2.0.6", "@vscode/vsce-sign-win32-arm64": "2.0.6", "@vscode/vsce-sign-win32-x64": "2.0.6" } }, "sha512-9AQrqazrBgTgRSuwleLVXUrIUphY02/SFCh2TKYoLV/xifJAdblhdmEmw5gUrYSPQ3sRwNs9iyCMD14sATEE6g=="],
"@vscode/vsce-sign-alpine-arm64": ["@vscode/vsce-sign-alpine-arm64@2.0.6", "", { "os": "none", "cpu": "arm64" }, "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q=="],
@@ -2858,8 +2851,6 @@
"ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="],
- "ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="],
-
"ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
@@ -2896,8 +2887,6 @@
"ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="],
- "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="],
-
"async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="],
"async-mutex": ["async-mutex@0.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA=="],
@@ -2958,8 +2947,6 @@
"binaryextensions": ["binaryextensions@6.11.0", "", { "dependencies": { "editions": "^6.21.0" } }, "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw=="],
- "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="],
-
"bluebird": ["bluebird@3.4.7", "", {}, "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="],
"blueimp-md5": ["blueimp-md5@2.19.0", "", {}, "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="],
@@ -2998,7 +2985,7 @@
"bun-pty": ["bun-pty@0.4.8", "", {}, "sha512-rO70Mrbr13+jxHHHu2YBkk2pNqrJE5cJn29WE++PUr+GFA0hq/VgtQPZANJ8dJo6d7XImvBk37Innt8GM7O28w=="],
- "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="],
+ "bun-types": ["bun-types@1.4.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-bxV1FgK7yBIzjRe5zBozIM4Bem11ZJcCXSrjWRG3YWLt8yFDePu4cLjpebO8OvPeIE9trbyPF4fuj3Cia4Fj3w=="],
"bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="],
@@ -3042,10 +3029,6 @@
"check-error": ["check-error@2.1.3", "", {}, "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA=="],
- "cheerio": ["cheerio@1.2.0", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.1.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", "undici": "^7.19.0", "whatwg-mimetype": "^4.0.0" } }, "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg=="],
-
- "cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="],
-
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
"chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="],
@@ -3242,12 +3225,8 @@
"decimal.js": ["decimal.js@10.5.0", "", {}, "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw=="],
- "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="],
-
"deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="],
- "deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="],
-
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
"default-browser": ["default-browser@5.5.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw=="],
@@ -3302,7 +3281,7 @@
"domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],
- "dompurify": ["dompurify@3.4.13", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ=="],
+ "dompurify": ["dompurify@3.4.16", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ=="],
"domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],
@@ -3334,10 +3313,6 @@
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
- "encoding-sniffer": ["encoding-sniffer@0.2.1", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw=="],
-
- "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
-
"engine.io-client": ["engine.io-client@6.6.6", "", { "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.4.1", "engine.io-parser": "~5.2.1", "ws": "~8.21.0", "xmlhttprequest-ssl": "~2.1.1" } }, "sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q=="],
"engine.io-parser": ["engine.io-parser@5.2.3", "", {}, "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="],
@@ -3350,8 +3325,6 @@
"env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="],
- "environment": ["environment@1.1.0", "", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="],
-
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
@@ -3410,8 +3383,6 @@
"execa": ["execa@8.0.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg=="],
- "expand-template": ["expand-template@2.0.3", "", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="],
-
"expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="],
"exponential-backoff": ["exponential-backoff@3.1.3", "", {}, "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA=="],
@@ -3524,8 +3495,6 @@
"friendly-words": ["friendly-words@1.3.1", "", { "dependencies": { "ava": "^5.3.1", "express": "^4.18.2", "lodash.samplesize": "^4.2.0" } }, "sha512-gLlK15jM/U/oFtYkw4At0cVS0kWst41BRPG4EnhP/L7ZGn8rnOSlLuffIvO/JIK06TYx7abRpNMTzkwpHL+kEA=="],
- "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="],
-
"fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="],
"fs-minipass": ["fs-minipass@3.0.3", "", { "dependencies": { "minipass": "^7.0.3" } }, "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw=="],
@@ -3560,8 +3529,6 @@
"giget": ["giget@3.3.1", "", { "bin": { "giget": "dist/cli.mjs" } }, "sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg=="],
- "github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="],
-
"gitlab-ai-provider": ["gitlab-ai-provider@6.12.1", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=3.0.0", "@ai-sdk/provider-utils": ">=4.0.0" } }, "sha512-Qn5iHqvjG8yktI5MWaUgdRR94l7O4WtYW0CAbhsCh1Tj0Fei/DeprOYPVyf4Nht1Ix6U2PXSYM32QOHI6Z2TDw=="],
"glob": ["glob@13.0.5", "", { "dependencies": { "minimatch": "^10.2.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw=="],
@@ -3660,8 +3627,6 @@
"indent-string": ["indent-string@5.0.0", "", {}, "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg=="],
- "index-to-position": ["index-to-position@1.2.0", "", {}, "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw=="],
-
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
"ini": ["ini@7.0.0", "", {}, "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w=="],
@@ -3804,9 +3769,7 @@
"jwt-decode": ["jwt-decode@3.1.2", "", {}, "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="],
- "katex": ["katex@0.16.27", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw=="],
-
- "keytar": ["keytar@7.9.0", "", { "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" } }, "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ=="],
+ "katex": ["katex@0.19.0", "", { "dependencies": { "commander": "^15.0.0" }, "bin": { "katex": "cli.js" } }, "sha512-v6Tznz3zJ7u3niRCoDTsumM2+HA2XXcCu+WAacCeHD2z3p9A9Ks987o5FzfTGBN0e8A0vjEgIDvLbICrXpdw/Q=="],
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],
@@ -3824,8 +3787,6 @@
"lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="],
- "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="],
-
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
"lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="],
@@ -3856,8 +3817,6 @@
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
- "linkify-it": ["linkify-it@5.0.2", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q=="],
-
"load-json-file": ["load-json-file@7.0.1", "", {}, "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ=="],
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
@@ -3888,8 +3847,6 @@
"lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="],
- "lodash.truncate": ["lodash.truncate@4.4.2", "", {}, "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="],
-
"log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="],
"long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="],
@@ -3920,12 +3877,8 @@
"map-age-cleaner": ["map-age-cleaner@0.1.3", "", { "dependencies": { "p-defer": "^1.0.0" } }, "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w=="],
- "markdown-it": ["markdown-it@14.3.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.5.0", "linkify-it": "^5.0.2", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw=="],
-
"marked": ["marked@18.0.7", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-iDVQ5ldaiKXn6b2JroX5kgRfmwgqolW7NpaEzTl1k/2Zh1njIEN9yniyLV/mOvWwtsE8OGgkjsCYvijuPk1dtA=="],
- "marked-katex-extension": ["marked-katex-extension@5.1.6", "", { "peerDependencies": { "katex": ">=0.16 <0.17", "marked": ">=4 <18" } }, "sha512-vYpLXwmlIDKILIhJtiRTgdyZRn5sEYdFBuTmbpjD7lbCIzg0/DWyK3HXIntN3Tp8zV6hvOUgpZNLWRCgWVc24A=="],
-
"marked-shiki": ["marked-shiki@1.2.1", "", { "peerDependencies": { "marked": ">=7.0.0", "shiki": ">=1.0.0" } }, "sha512-yHxYQhPY5oYaIRnROn98foKhuClark7M373/VpLxiy5TrDu9Jd/LsMwo8w+U91Up4oDb9IXFrP0N1MFRz8W/DQ=="],
"matcher": ["matcher@5.0.0", "", { "dependencies": { "escape-string-regexp": "^5.0.0" } }, "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw=="],
@@ -3936,8 +3889,6 @@
"mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="],
- "mdurl": ["mdurl@2.1.0", "", {}, "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg=="],
-
"media-typer": ["media-typer@1.1.1", "", {}, "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ=="],
"mem": ["mem@9.0.2", "", { "dependencies": { "map-age-cleaner": "^0.1.3", "mimic-fn": "^4.0.0" } }, "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A=="],
@@ -3976,8 +3927,6 @@
"mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="],
- "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="],
-
"min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="],
"minimatch": ["minimatch@10.2.6", "", { "dependencies": { "brace-expansion": "^5.0.8" } }, "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A=="],
@@ -4002,8 +3951,6 @@
"mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="],
- "mkdirp-classic": ["mkdirp-classic@0.5.3", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="],
-
"mocha": ["mocha@11.8.0", "", { "dependencies": { "browser-stdout": "^1.3.1", "chokidar": "^4.0.1", "debug": "^4.3.5", "diff": "^7.0.0", "escape-string-regexp": "^4.0.0", "find-up": "^5.0.0", "glob": "^10.4.5", "he": "^1.2.0", "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "log-symbols": "^4.1.0", "minimatch": "^9.0.5", "ms": "^2.1.3", "picocolors": "^1.1.1", "serialize-javascript": "^6.0.2", "strip-json-comments": "^3.1.1", "supports-color": "^8.1.1", "workerpool": "^9.2.0", "yargs": "^17.7.2", "yargs-parser": "^21.1.1", "yargs-unparser": "^2.0.0" }, "bin": { "mocha": "bin/mocha.js", "_mocha": "bin/_mocha" } }, "sha512-VyCeUdGN3A9lmCTTgG4yuvY9ixxaDk+xt2R/7/+1AP6EqNG+G9OKkzBwhVtVYoNX8YsxNSgAl8mOv3IAeOpFbw=="],
"moo": ["moo@0.5.3", "", {}, "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA=="],
@@ -4034,17 +3981,13 @@
"nanoid": ["nanoid@3.3.18", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="],
- "napi-build-utils": ["napi-build-utils@2.0.0", "", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="],
-
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
"nearley": ["nearley@2.20.1", "", { "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6" }, "bin": { "nearleyc": "bin/nearleyc.js", "nearley-test": "bin/nearley-test.js", "nearley-unparse": "bin/nearley-unparse.js", "nearley-railroad": "bin/nearley-railroad.js" } }, "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ=="],
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
- "next": ["next@16.3.6", "", { "dependencies": { "@next/env": "16.3.6", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.3.6", "@next/swc-darwin-x64": "16.3.6", "@next/swc-linux-arm64-gnu": "16.3.6", "@next/swc-linux-arm64-musl": "16.3.6", "@next/swc-linux-x64-gnu": "16.3.6", "@next/swc-linux-x64-musl": "16.3.6", "@next/swc-win32-arm64-msvc": "16.3.6", "@next/swc-win32-x64-msvc": "16.3.6", "sharp": "^0.35.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-L+otWM/aQbYTx98aZhgEoMb4bZAXx1YVW4UMA/vuCyCoWG5HJyZUili8QAkqzrcC+5///tsz3s0M+SlyB5bLMw=="],
-
- "node-abi": ["node-abi@3.94.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g=="],
+ "next": ["next@16.3.8", "", { "dependencies": { "@next/env": "16.3.8", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.3.8", "@next/swc-darwin-x64": "16.3.8", "@next/swc-linux-arm64-gnu": "16.3.8", "@next/swc-linux-arm64-musl": "16.3.8", "@next/swc-linux-x64-gnu": "16.3.8", "@next/swc-linux-x64-musl": "16.3.8", "@next/swc-win32-arm64-msvc": "16.3.8", "@next/swc-win32-x64-msvc": "16.3.8", "sharp": "^0.35.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-U7QEZaTini6wKrb8A8hqLLqYQyCetegKjCpJOyxk642vWoMoU1x5PyZCJFvgYgiptA8xc5j/9xYlZFO7w9Sjmw=="],
"node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="],
@@ -4064,14 +4007,10 @@
"node-releases": ["node-releases@2.0.53", "", {}, "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ=="],
- "node-sarif-builder": ["node-sarif-builder@3.4.0", "", { "dependencies": { "@types/sarif": "^2.1.7", "fs-extra": "^11.1.1" } }, "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg=="],
-
"nofilter": ["nofilter@3.1.0", "", {}, "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g=="],
"nopt": ["nopt@9.0.0", "", { "dependencies": { "abbrev": "^4.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw=="],
- "normalize-package-data": ["normalize-package-data@6.0.2", "", { "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g=="],
-
"normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
"npm-bundled": ["npm-bundled@5.0.0", "", { "dependencies": { "npm-normalize-package-bin": "^5.0.0" } }, "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw=="],
@@ -4172,17 +4111,9 @@
"parse-conflict-json": ["parse-conflict-json@5.0.1", "", { "dependencies": { "json-parse-even-better-errors": "^5.0.0", "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" } }, "sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ=="],
- "parse-json": ["parse-json@8.3.0", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "index-to-position": "^1.1.0", "type-fest": "^4.39.1" } }, "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ=="],
-
"parse-ms": ["parse-ms@3.0.0", "", {}, "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw=="],
- "parse-semver": ["parse-semver@1.1.1", "", { "dependencies": { "semver": "^5.1.0" } }, "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ=="],
-
- "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
-
- "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="],
-
- "parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="],
+ "parse5": ["parse5@8.0.1", "", { "dependencies": { "entities": "^8.0.0" } }, "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw=="],
"parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
@@ -4206,7 +4137,7 @@
"path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="],
- "path-type": ["path-type@6.0.0", "", {}, "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ=="],
+ "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
@@ -4242,8 +4173,6 @@
"plur": ["plur@5.1.0", "", { "dependencies": { "irregular-plurals": "^3.3.0" } }, "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg=="],
- "pluralize": ["pluralize@8.0.0", "", {}, "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="],
-
"pngjs": ["pngjs@5.0.0", "", {}, "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="],
"poe-oauth": ["poe-oauth@0.0.14", "", {}, "sha512-EHteyy5PsT8cl9zVjYcCQsm6FmLgqfwBkGj6IzUA83d9aWc57bH+jj2ItwJlf6RBhK+DN5N8YVlwEc0gOLb5fw=="],
@@ -4266,8 +4195,6 @@
"preact": ["preact@10.29.8", "", { "peerDependencies": { "preact-render-to-string": ">=5" }, "optionalPeers": ["preact-render-to-string"] }, "sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q=="],
- "prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="],
-
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
"prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="],
@@ -4292,6 +4219,8 @@
"promise-call-limit": ["promise-call-limit@3.0.2", "", {}, "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw=="],
+ "proper-lockfile": ["proper-lockfile@4.1.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="],
+
"property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="],
"protobufjs": ["protobufjs@7.6.5", "", { "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.5", "@protobufjs/eventemitter": "^1.1.1", "@protobufjs/fetch": "^1.1.1", "@protobufjs/float": "^1.0.2", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.1", "@types/node": ">=13.7.0", "long": "^5.3.2" } }, "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw=="],
@@ -4300,12 +4229,8 @@
"proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="],
- "pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="],
-
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
- "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="],
-
"pure-rand": ["pure-rand@8.4.2", "", {}, "sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng=="],
"qrcode": ["qrcode@1.5.4", "", { "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, "bin": { "qrcode": "bin/qrcode" } }, "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg=="],
@@ -4332,10 +4257,6 @@
"raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="],
- "rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="],
-
- "rc-config-loader": ["rc-config-loader@4.1.4", "", { "dependencies": { "debug": "^4.4.3", "js-yaml": "^4.1.1", "json5": "^2.2.3", "require-from-string": "^2.0.2" } }, "sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ=="],
-
"rc9": ["rc9@3.0.1", "", { "dependencies": { "defu": "^6.1.6", "destr": "^2.0.5" } }, "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ=="],
"react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="],
@@ -4350,8 +4271,6 @@
"read-cmd-shim": ["read-cmd-shim@6.0.0", "", {}, "sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A=="],
- "read-pkg": ["read-pkg@9.0.1", "", { "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", "parse-json": "^8.0.0", "type-fest": "^4.6.0", "unicorn-magic": "^0.1.0" } }, "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA=="],
-
"read-yaml-file": ["read-yaml-file@1.1.0", "", { "dependencies": { "graceful-fs": "^4.1.5", "js-yaml": "^3.6.1", "pify": "^4.0.1", "strip-bom": "^3.0.0" } }, "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA=="],
"readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
@@ -4402,6 +4321,8 @@
"ret": ["ret@0.1.15", "", {}, "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="],
+ "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="],
+
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
"rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="],
@@ -4442,8 +4363,6 @@
"schemes": ["schemes@1.4.0", "", { "dependencies": { "extend": "^3.0.0" } }, "sha512-ImFy9FbCsQlVgnE3TCWmLPCFnVzx0lHL/l+umHplDqAKd0dzFpnS6lFZIpagBlYhKwzVmlV36ec0Y1XTu8JBAQ=="],
- "secretlint": ["secretlint@10.2.2", "", { "dependencies": { "@secretlint/config-creator": "^10.2.2", "@secretlint/formatter": "^10.2.2", "@secretlint/node": "^10.2.2", "@secretlint/profiler": "^10.2.2", "debug": "^4.4.1", "globby": "^14.1.0", "read-pkg": "^9.0.1" }, "bin": "./bin/secretlint.js" }, "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg=="],
-
"section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="],
"secure-json-parse": ["secure-json-parse@4.1.0", "", {}, "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA=="],
@@ -4470,7 +4389,7 @@
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
- "sharp": ["sharp@0.35.4", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.4", "@img/sharp-darwin-x64": "0.35.4", "@img/sharp-freebsd-wasm32": "0.35.4", "@img/sharp-libvips-darwin-arm64": "1.3.3", "@img/sharp-libvips-darwin-x64": "1.3.3", "@img/sharp-libvips-linux-arm": "1.3.3", "@img/sharp-libvips-linux-arm64": "1.3.3", "@img/sharp-libvips-linux-ppc64": "1.3.3", "@img/sharp-libvips-linux-riscv64": "1.3.3", "@img/sharp-libvips-linux-s390x": "1.3.3", "@img/sharp-libvips-linux-x64": "1.3.3", "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", "@img/sharp-libvips-linuxmusl-x64": "1.3.3", "@img/sharp-linux-arm": "0.35.4", "@img/sharp-linux-arm64": "0.35.4", "@img/sharp-linux-ppc64": "0.35.4", "@img/sharp-linux-riscv64": "0.35.4", "@img/sharp-linux-s390x": "0.35.4", "@img/sharp-linux-x64": "0.35.4", "@img/sharp-linuxmusl-arm64": "0.35.4", "@img/sharp-linuxmusl-x64": "0.35.4", "@img/sharp-webcontainers-wasm32": "0.35.4", "@img/sharp-win32-arm64": "0.35.4", "@img/sharp-win32-ia32": "0.35.4", "@img/sharp-win32-x64": "0.35.4" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA=="],
+ "sharp": ["sharp@0.35.5", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.5", "@img/sharp-darwin-x64": "0.35.5", "@img/sharp-freebsd-wasm32": "0.35.5", "@img/sharp-libvips-darwin-arm64": "1.3.4", "@img/sharp-libvips-darwin-x64": "1.3.4", "@img/sharp-libvips-linux-arm": "1.3.4", "@img/sharp-libvips-linux-arm64": "1.3.4", "@img/sharp-libvips-linux-ppc64": "1.3.4", "@img/sharp-libvips-linux-riscv64": "1.3.4", "@img/sharp-libvips-linux-s390x": "1.3.4", "@img/sharp-libvips-linux-x64": "1.3.4", "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", "@img/sharp-libvips-linuxmusl-x64": "1.3.4", "@img/sharp-linux-arm": "0.35.5", "@img/sharp-linux-arm64": "0.35.5", "@img/sharp-linux-ppc64": "0.35.5", "@img/sharp-linux-riscv64": "0.35.5", "@img/sharp-linux-s390x": "0.35.5", "@img/sharp-linux-x64": "0.35.5", "@img/sharp-linuxmusl-arm64": "0.35.5", "@img/sharp-linuxmusl-x64": "0.35.5", "@img/sharp-webcontainers-wasm32": "0.35.5", "@img/sharp-win32-arm64": "0.35.5", "@img/sharp-win32-ia32": "0.35.5", "@img/sharp-win32-x64": "0.35.5" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g=="],
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
@@ -4494,11 +4413,7 @@
"sigstore": ["sigstore@4.1.1", "", { "dependencies": { "@sigstore/bundle": "^4.0.0", "@sigstore/core": "^3.2.1", "@sigstore/protobuf-specs": "^0.5.0", "@sigstore/sign": "^4.1.1", "@sigstore/tuf": "^4.0.2", "@sigstore/verify": "^3.1.1" } }, "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w=="],
- "simple-concat": ["simple-concat@1.0.1", "", {}, "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="],
-
- "simple-get": ["simple-get@4.0.1", "", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="],
-
- "simple-git": ["simple-git@3.36.0", "", { "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", "@simple-git/args-pathspec": "^1.0.3", "@simple-git/argv-parser": "^1.1.0", "debug": "^4.4.0" } }, "sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q=="],
+ "simple-git": ["simple-git@4.0.2", "", { "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", "@simple-git/args-pathspec": "1.0.4", "@simple-git/argv-parser": "2.0.1", "debug": "^4.4.0" } }, "sha512-l0sIsv9VrPwovKELFDBOj/lhmIcbMvxBk2B+hRhsMM4/VL3gKtuZvYnBNixVo+N/0HnqQx2cBdLvxnAbygHpqA=="],
"sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
@@ -4536,14 +4451,12 @@
"source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
- "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
+ "source-map-js": ["source-map-js@1.2.2", "", {}, "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw=="],
"space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
"spawndamnit": ["spawndamnit@3.0.1", "", { "dependencies": { "cross-spawn": "^7.0.5", "signal-exit": "^4.0.1" } }, "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg=="],
- "spdx-correct": ["spdx-correct@3.2.0", "", { "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA=="],
-
"spdx-exceptions": ["spdx-exceptions@2.5.0", "", {}, "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="],
"spdx-expression-parse": ["spdx-expression-parse@5.0.0", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-vngmw3Rgn+o2arXNbnZaj5UtOEBuWBfvaI+Wc8GFfykIhA5/vdK9/Sp/XkLv63dykz2rxKDvKEHupF5P0FORcQ=="],
@@ -4628,14 +4541,10 @@
"supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
- "supports-hyperlinks": ["supports-hyperlinks@3.2.0", "", { "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" } }, "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig=="],
-
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
"system-architecture": ["system-architecture@0.1.0", "", {}, "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA=="],
- "table": ["table@6.9.0", "", { "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" } }, "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A=="],
-
"table-layout": ["table-layout@4.1.1", "", { "dependencies": { "array-back": "^6.2.2", "wordwrapjs": "^5.1.0" } }, "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA=="],
"tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="],
@@ -4644,8 +4553,6 @@
"tar": ["tar@7.5.22", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA=="],
- "tar-fs": ["tar-fs@2.1.5", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw=="],
-
"tar-stream": ["tar-stream@3.2.0", "", { "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg=="],
"teex": ["teex@1.0.1", "", { "dependencies": { "streamx": "^2.12.5" } }, "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg=="],
@@ -4654,14 +4561,10 @@
"term-size": ["term-size@2.2.1", "", {}, "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="],
- "terminal-link": ["terminal-link@4.0.0", "", { "dependencies": { "ansi-escapes": "^7.0.0", "supports-hyperlinks": "^3.2.0" } }, "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA=="],
-
"test-exclude": ["test-exclude@7.0.2", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", "minimatch": "^10.2.2" } }, "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw=="],
"text-decoder": ["text-decoder@1.2.7", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ=="],
- "text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="],
-
"textextensions": ["textextensions@6.11.0", "", { "dependencies": { "editions": "^6.21.0" } }, "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ=="],
"thread-stream": ["thread-stream@4.2.0", "", { "dependencies": { "real-require": "^1.0.0" } }, "sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ=="],
@@ -4682,8 +4585,6 @@
"tinyspy": ["tinyspy@4.0.4", "", {}, "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q=="],
- "tmp": ["tmp@0.2.7", "", {}, "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw=="],
-
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
"toad-cache": ["toad-cache@3.7.4", "", {}, "sha512-m1TdR/rvT7kgGJZhspNtXdsdYk0fddFpJJFlG5s+UkPFo6lkLoZ3YLOaovPYjq1R75NP5JfeTlSHaOsE09peCg=="],
@@ -4720,8 +4621,6 @@
"tunnel": ["tunnel@0.0.6", "", {}, "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="],
- "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
-
"turbo": ["turbo@2.10.2", "", { "optionalDependencies": { "@turbo/darwin-64": "2.10.2", "@turbo/darwin-arm64": "2.10.2", "@turbo/linux-64": "2.10.2", "@turbo/linux-arm64": "2.10.2", "@turbo/windows-64": "2.10.2", "@turbo/windows-arm64": "2.10.2" }, "bin": { "turbo": "bin/turbo" } }, "sha512-wTExrNrRjB8qzIcg+ZLm0A3GFNLDsWNwdS/RBXB0FPrBDyzk3i96Yx+TxWZC7a0k1SIreFB8ciUbxjmEqTH8IQ=="],
"turndown": ["turndown@7.2.0", "", { "dependencies": { "@mixmark-io/domino": "^2.2.0" } }, "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A=="],
@@ -4742,8 +4641,6 @@
"typical": ["typical@4.0.0", "", {}, "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="],
- "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="],
-
"ulid": ["ulid@3.0.1", "", { "bin": { "ulid": "dist/cli.js" } }, "sha512-dPJyqPzx8preQhqq24bBG1YNkvigm87K8kVEHCD+ruZg24t6IFEFv00xMWfxcC4djmFtiTLdFuADn4+DOz6R7Q=="],
"underscore": ["underscore@1.13.8", "", {}, "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ=="],
@@ -4752,8 +4649,6 @@
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
- "unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="],
-
"unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="],
"unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="],
@@ -4792,8 +4687,6 @@
"v8-to-istanbul": ["v8-to-istanbul@9.3.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="],
- "validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="],
-
"validate-npm-package-name": ["validate-npm-package-name@7.0.2", "", {}, "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A=="],
"vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
@@ -4838,8 +4731,6 @@
"well-known-symbols": ["well-known-symbols@2.0.0", "", {}, "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q=="],
- "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="],
-
"whatwg-mimetype": ["whatwg-mimetype@3.0.0", "", {}, "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q=="],
"whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
@@ -5132,6 +5023,8 @@
"@azure/identity/open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="],
+ "@azure/msal-node/@azure/msal-common": ["@azure/msal-common@16.14.1", "", {}, "sha512-Or6xhPNyi4zHW25158yxBoyxuCqNSPa5YBVqfF1J5Ks4MJWBo/USXdp05DQIPu1Zli00YZu6t0+h6KvHJealxQ=="],
+
"@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
"@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
@@ -5290,20 +5183,6 @@
"@qdrant/js-client-rest/undici": ["undici@6.28.0", "", {}, "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA=="],
- "@secretlint/config-creator/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
-
- "@secretlint/config-loader/@secretlint/profiler": ["@secretlint/profiler@10.2.2", "", {}, "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig=="],
-
- "@secretlint/config-loader/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
-
- "@secretlint/formatter/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
-
- "@secretlint/node/@secretlint/core": ["@secretlint/core@10.2.2", "", { "dependencies": { "@secretlint/profiler": "^10.2.2", "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "structured-source": "^4.0.0" } }, "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw=="],
-
- "@secretlint/node/@secretlint/profiler": ["@secretlint/profiler@10.2.2", "", {}, "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig=="],
-
- "@secretlint/node/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
-
"@secretlint/secretlint-rule-no-dotenv/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
"@secretlint/source-creator/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
@@ -5356,14 +5235,6 @@
"@testing-library/dom/dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="],
- "@textlint/linter-formatter/js-yaml": ["js-yaml@4.3.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ=="],
-
- "@textlint/linter-formatter/pluralize": ["pluralize@2.0.0", "", {}, "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw=="],
-
- "@textlint/linter-formatter/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
-
- "@textlint/linter-formatter/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
-
"@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="],
"@vitest/expect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
@@ -5376,14 +5247,16 @@
"@vscode/test-cli/yargs": ["yargs@17.7.3", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g=="],
+ "@vscode/vsce/@secretlint/core": ["@secretlint/core@10.2.2", "", { "dependencies": { "@secretlint/profiler": "^10.2.2", "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "structured-source": "^4.0.0" } }, "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw=="],
+
"@vscode/vsce/@secretlint/secretlint-rule-preset-recommend": ["@secretlint/secretlint-rule-preset-recommend@10.2.2", "", {}, "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA=="],
- "@vscode/vsce/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
-
- "@vscode/vsce/glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="],
+ "@vscode/vsce/@secretlint/types": ["@secretlint/types@10.2.2", "", {}, "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg=="],
"@vscode/vsce/hosted-git-info": ["hosted-git-info@4.1.0", "", { "dependencies": { "lru-cache": "^6.0.0" } }, "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA=="],
+ "@vscode/vsce/marked": ["marked@18.0.14", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-mBHK6FBHuBAlhgRe88w9F0O1AbwwXJUcQibUbC/QcdTbVGAD7aWza+xt3N6oT/jCZx3/OMeS+8rnuiHZcQ9s7A=="],
+
"@vscode/vsce/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
"ai-gateway-provider/@ai-sdk/cohere": ["@ai-sdk/cohere@3.0.61", "", { "dependencies": { "@ai-sdk/provider": "3.0.16", "@ai-sdk/provider-utils": "4.0.51" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-N2WmRvzq3oJ/HMPnFh72XP9Gg6Y2NZNwIjzC8MkKyQDAKAo4YI0S+uzn0WjYxcBXlDBXm3ZlRGaNkdWuY4QUTQ=="],
@@ -5422,12 +5295,10 @@
"babel-plugin-jsx-dom-expressions/@babel/helper-module-imports": ["@babel/helper-module-imports@7.18.6", "", { "dependencies": { "@babel/types": "^7.18.6" } }, "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="],
+ "babel-plugin-jsx-dom-expressions/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
+
"babel-plugin-module-resolver/glob": ["glob@9.3.5", "", { "dependencies": { "fs.realpath": "^1.0.0", "minimatch": "^8.0.2", "minipass": "^4.2.4", "path-scurry": "^1.6.1" } }, "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q=="],
- "bl/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
-
- "bl/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
-
"body-parser/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="],
"c12/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
@@ -5442,12 +5313,6 @@
"chalk-template/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
- "cheerio/htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="],
-
- "cheerio/undici": ["undici@7.29.0", "", {}, "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw=="],
-
- "cheerio/whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="],
-
"chromium-bidi/zod": ["zod@3.23.8", "", {}, "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="],
"clean-stack/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
@@ -5472,8 +5337,6 @@
"d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="],
- "dir-glob/path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
-
"dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
"drizzle-kit/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
@@ -5482,8 +5345,6 @@
"effect/yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="],
- "encoding-sniffer/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
-
"engine.io-client/ws": ["ws@8.21.2", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-54dMVAo4WIe6SKy3vBgN+9bJZqqQ8IMRevAkOLQALhi49qkkQDQfWdAZ8KQlXiEabw88ARXXdUrlvtbKQX+aKw=="],
"enquirer/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
@@ -5538,9 +5399,7 @@
"jszip/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
- "katex/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="],
-
- "keytar/node-addon-api": ["node-addon-api@4.3.0", "", {}, "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="],
+ "katex/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
"kilo-code/openai": ["openai@4.104.0", "", { "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", "abort-controller": "^3.0.0", "agentkeepalive": "^4.2.1", "form-data-encoder": "1.7.2", "formdata-node": "^4.3.2", "node-fetch": "^2.6.7" }, "peerDependencies": { "ws": "^8.18.0", "zod": "^3.23.8" }, "optionalPeers": ["ws", "zod"], "bin": { "openai": "bin/cli" } }, "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA=="],
@@ -5566,16 +5425,8 @@
"log-symbols/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="],
- "markdown-it/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
-
- "markdown-it/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
-
- "marked-katex-extension/marked": ["marked@17.0.1", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg=="],
-
"matcher/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
- "mermaid/katex": ["katex@0.16.47", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg=="],
-
"mermaid/marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="],
"minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
@@ -5604,10 +5455,6 @@
"node-gyp-build-optional-packages/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
- "node-sarif-builder/fs-extra": ["fs-extra@11.4.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA=="],
-
- "normalize-package-data/hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="],
-
"npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="],
"openid-client/jose": ["jose@4.15.9", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="],
@@ -5622,9 +5469,7 @@
"parent-module/callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
- "parse-semver/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
-
- "parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
+ "parse5/entities": ["entities@8.1.0", "", {}, "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA=="],
"pkg-conf/find-up": ["find-up@6.3.0", "", { "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" } }, "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw=="],
@@ -5632,24 +5477,16 @@
"playwright/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="],
- "prebuild-install/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
-
"pretty-format/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="],
+ "proper-lockfile/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
+
"proxy-addr/ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
"qrcode/yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="],
- "rc/ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
-
- "rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
-
- "rc-config-loader/js-yaml": ["js-yaml@4.3.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ=="],
-
- "read-pkg/unicorn-magic": ["unicorn-magic@0.1.0", "", {}, "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ=="],
-
"read-yaml-file/js-yaml": ["js-yaml@3.15.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag=="],
"readdir-glob/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="],
@@ -5662,10 +5499,6 @@
"safe-regex2/ret": ["ret@0.5.0", "", {}, "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw=="],
- "secretlint/@secretlint/profiler": ["@secretlint/profiler@10.2.2", "", {}, "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig=="],
-
- "secretlint/globby": ["globby@14.1.0", "", { "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.3", "ignore": "^7.0.3", "path-type": "^6.0.0", "slash": "^5.1.0", "unicorn-magic": "^0.3.0" } }, "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA=="],
-
"serialize-error/type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="],
"sharp/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
@@ -5676,8 +5509,6 @@
"slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="],
- "spdx-correct/spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="],
-
"sst/aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="],
"stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="],
@@ -5696,22 +5527,10 @@
"supertap/js-yaml": ["js-yaml@3.15.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag=="],
- "supports-hyperlinks/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
-
- "table/slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="],
-
- "table/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
-
- "table/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
-
"table-layout/array-back": ["array-back@6.2.3", "", {}, "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw=="],
"tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
- "tar-fs/chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="],
-
- "tar-fs/tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
-
"test-exclude/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="],
"thread-stream/real-require": ["real-require@1.0.0", "", {}, "sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g=="],
@@ -5720,8 +5539,6 @@
"type-is/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="],
- "validate-npm-package-license/spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="],
-
"venice-ai-sdk-provider/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.56", "", { "dependencies": { "@ai-sdk/provider": "3.0.13", "@ai-sdk/provider-utils": "4.0.35" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-cQrN6OUn/jvsY3OdsU6Wn+ss7vp1iwIcakZKSlSRMnYqShBfyT7Qht+eqmgxs7w9ttrw6FAG6o11AiBs+iEsTA=="],
"vite-plugin-icons-spritesheet/glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="],
@@ -5730,8 +5547,6 @@
"vitest/why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="],
- "whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
-
"wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
"wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
@@ -6012,12 +5827,6 @@
"@tailwindcss/vite/@tailwindcss/oxide/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
- "@textlint/linter-formatter/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
-
- "@textlint/linter-formatter/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
-
- "@textlint/linter-formatter/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
-
"@vscode/test-cli/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
"@vscode/test-cli/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
@@ -6034,7 +5843,7 @@
"@vscode/test-cli/yargs/yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
- "@vscode/vsce/chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
+ "@vscode/vsce/@secretlint/core/@secretlint/profiler": ["@secretlint/profiler@10.2.2", "", {}, "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig=="],
"@vscode/vsce/hosted-git-info/lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="],
@@ -6080,6 +5889,8 @@
"axios/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="],
+ "babel-plugin-jsx-dom-expressions/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
+
"babel-plugin-module-resolver/glob/minimatch": ["minimatch@8.0.7", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg=="],
"babel-plugin-module-resolver/glob/minipass": ["minipass@4.2.8", "", {}, "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="],
@@ -6204,8 +6015,6 @@
"log-symbols/chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
- "mermaid/katex/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="],
-
"mocha/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
"mocha/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="],
@@ -6218,12 +6027,6 @@
"mocha/yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
- "node-sarif-builder/fs-extra/jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="],
-
- "node-sarif-builder/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
-
- "normalize-package-data/hosted-git-info/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
-
"ora/log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="],
"p-locate/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
@@ -6244,8 +6047,6 @@
"qrcode/yargs/yargs-parser": ["yargs-parser@18.1.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="],
- "rc-config-loader/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
-
"readdir-glob/minimatch/brace-expansion": ["brace-expansion@2.1.4", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg=="],
"rimraf/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
@@ -6254,8 +6055,6 @@
"rimraf/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="],
- "secretlint/globby/slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="],
-
"storybook/@vitest/expect/@vitest/utils": ["@vitest/utils@3.2.4", "", { "dependencies": { "@vitest/pretty-format": "3.2.4", "loupe": "^3.1.4", "tinyrainbow": "^2.0.0" } }, "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA=="],
"storybook/@vitest/expect/chai": ["chai@5.3.3", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw=="],
@@ -6264,12 +6063,6 @@
"string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
- "table/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
-
- "table/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
-
- "tar-fs/tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
-
"test-exclude/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
"test-exclude/glob/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="],
diff --git a/bunfig.toml b/bunfig.toml
index 61bb6e0fdb3..24808fcbea1 100644
--- a/bunfig.toml
+++ b/bunfig.toml
@@ -2,7 +2,7 @@
exact = true
# Keep Kilo's longer supply-chain quarantine while allowing packages that must track coordinated releases.
minimumReleaseAge = 410520 # seconds (~4.75 days / ~114 hours)
-minimumReleaseAgeExcludes = ["mermaid", "@mermaid-js/parser", "@ai-sdk/amazon-bedrock", "@ai-sdk/anthropic", "@opentui/core", "@opentui/core-darwin-arm64", "@opentui/core-darwin-x64", "@opentui/core-linux-arm64", "@opentui/core-linux-arm64-musl", "@opentui/core-linux-x64", "@opentui/core-linux-x64-musl", "@opentui/core-win32-arm64", "@opentui/core-win32-x64", "@opentui/keymap", "@opentui/solid", "opentui-spinner", "gitlab-ai-provider", "opencode-gitlab-auth", "@ff-labs/fff-node", "@ff-labs/fff-bun", "@ff-labs/fff-bin-darwin-arm64", "@ff-labs/fff-bin-darwin-x64", "@ff-labs/fff-bin-linux-arm64-gnu", "@ff-labs/fff-bin-linux-arm64-musl", "@ff-labs/fff-bin-linux-x64-gnu", "@ff-labs/fff-bin-linux-x64-musl", "@ff-labs/fff-bin-win32-arm64", "@ff-labs/fff-bin-win32-x64", "@pierre/diffs", "@pierre/theming", "app-builder-lib", "dmg-builder", "electron-builder", "electron-publish"]
+minimumReleaseAgeExcludes = ["@types/bun", "bun-types", "mermaid", "@mermaid-js/parser", "@ai-sdk/amazon-bedrock", "@ai-sdk/anthropic", "@opentui/core", "@opentui/core-darwin-arm64", "@opentui/core-darwin-x64", "@opentui/core-linux-arm64", "@opentui/core-linux-arm64-musl", "@opentui/core-linux-x64", "@opentui/core-linux-x64-musl", "@opentui/core-win32-arm64", "@opentui/core-win32-x64", "@opentui/keymap", "@opentui/solid", "opentui-spinner", "gitlab-ai-provider", "opencode-gitlab-auth", "@ff-labs/fff-node", "@ff-labs/fff-bun", "@ff-labs/fff-bin-darwin-arm64", "@ff-labs/fff-bin-darwin-x64", "@ff-labs/fff-bin-linux-arm64-gnu", "@ff-labs/fff-bin-linux-arm64-musl", "@ff-labs/fff-bin-linux-x64-gnu", "@ff-labs/fff-bin-linux-x64-musl", "@ff-labs/fff-bin-win32-arm64", "@ff-labs/fff-bin-win32-x64", "@pierre/diffs", "@pierre/theming", "app-builder-lib", "dmg-builder", "electron-builder", "electron-publish"]
[test]
root = "./do-not-run-tests-from-root"
diff --git a/docs/community-triage.md b/docs/community-triage.md
new file mode 100644
index 00000000000..03ba3893acc
--- /dev/null
+++ b/docs/community-triage.md
@@ -0,0 +1,159 @@
+# Community triage
+
+How we handle pull requests and issues from people outside the Kilo team.
+
+The goal is simple. Maintainers see the community work that matters, and contributors know what happens next.
+
+Background: [Slack discussion](https://anaconda.slack.com/archives/C0BJ2GQ40HM/p1791377022461359).
+
+## Overview
+
+```mermaid
+flowchart LR
+ A[PR or issue opened] --> B[community-label.yml]
+ B --> C[Labels: community, needs-triage, area:*]
+ C --> D[community-sweep.yml
Mon + Thu 17:00 UTC]
+ D --> E[Status labels synced]
+ D --> F[Queue posted to job summary and Slack]
+ F --> G[Tuesday: Bruno]
+ F --> H[Friday: Andrea]
+ G --> I[Review, label, comment]
+ H --> I
+ I --> D
+```
+
+Two workflows do the work. Both use `script/kilocode/community-triage.ts`.
+
+| Workflow | Runs | Does |
+|---|---|---|
+| `community-label.yml` | When a PR or issue opens or is edited | Adds `community`, `needs-triage` (new items only, not reopened ones) and `area:*` labels |
+| `community-sweep.yml` | Monday and Thursday, 17:00 UTC | Syncs status labels, closes stale PRs, posts the queue |
+
+The sweep runs the evening before each maintainer slot. Andrea starts Friday and Bruno starts Tuesday with a fresh queue.
+
+## Who is a maintainer
+
+An author or commenter is a maintainer when one of these is true:
+
+- GitHub shows them as `OWNER`, `MEMBER` or `COLLABORATOR`.
+- Their login is in the repo variable `COMMUNITY_MAINTAINERS` (comma separated).
+- The optional secret `COMMUNITY_TRIAGE_MEMBER_TOKEN` (`read:org`) shows they are in the org.
+
+The default token cannot see private org members. They look like normal contributors. Set the variable or the secret so their PRs are not labeled `community`.
+
+Bots are ignored.
+
+## Labels
+
+Set by the workflows:
+
+| Label | Meaning |
+|---|---|
+| `community` | Author is not a maintainer |
+| `area:vscode`, `area:cli`, `area:agent-manager`, `area:jetbrains`, `area:desktop`, `area:docs`, `area:gateway`, `area:sdk`, `area:ui`, `area:i18n` | Part of the repo. Comes from the title scope, the changed paths, or the issue "Component" dropdown |
+| `needs-triage` | No maintainer has reacted yet |
+| `needs-review` | The contributor replied or pushed. A maintainer should look again |
+| `awaiting-contributor` | A maintainer reacted last. The 14 day clock runs |
+| `ci-failing` | Checks on the last commit failed |
+| `needs-reimplementation` | `high-value` PR with no reply for 14 days. The team takes it over |
+
+Set by hand:
+
+| Label | Meaning |
+|---|---|
+| `high-value` | We want this change. The sweep never closes it |
+| `low-value` | Triaged. Not a priority |
+| `keep-open` | The sweep never closes this PR |
+
+The sweep owns the status labels. It adds and removes them on its own. Do not manage them by hand.
+
+The sweep also removes `community` and the status labels from open PRs whose author is a maintainer. This fixes labels set before the maintainer list was known. It only handles PRs.
+
+`area:*` labels are only added, never removed. Fix a wrong one by hand.
+
+## Whose turn is it
+
+The sweep reads the comments, reviews, review replies, commits and reopen events of each open community PR. Drafts are skipped. A reopen by the author counts as a reply. The sweep ignores commit dates more than 5 minutes in the future.
+
+The sweep reads only the latest events. If it finds no maintainer reaction on a PR with more events than it can read, it labels the PR `needs-review` so a person decides.
+
+```mermaid
+stateDiagram-v2
+ [*] --> triage: opened, no maintainer reaction
+ triage --> awaiting: maintainer comments or requests changes
+ triage --> approved: maintainer approves
+ awaiting --> review: contributor comments or pushes
+ review --> awaiting: maintainer comments or requests changes
+ review --> approved: maintainer approves
+ approved --> review: contributor pushes again
+ awaiting --> closed: 14 days, not high-value
+ awaiting --> adopted: 14 days, high-value
+ adopted --> [*]: team re-implements or fixes it
+ closed --> [*]
+```
+
+| State | Label | Rule |
+|---|---|---|
+| triage | `needs-triage` | No maintainer reaction yet, and no `high-value` or `low-value` label |
+| review | `needs-review` | The contributor acted after the last maintainer reaction, or a `high-value` or `low-value` label exists |
+| approved | none | The last maintainer reaction is an approval |
+| awaiting | `awaiting-contributor` | The last maintainer reaction asked for something and the contributor has not answered |
+
+The 14 day clock starts at the time of the last maintainer reaction.
+
+## The 14 day rule
+
+When a PR has been `awaiting-contributor` for 14 days:
+
+| PR | Result |
+|---|---|
+| Has `high-value` | Gets `needs-reimplementation` and shows in the digest under "Adopt". Add it to the standup doc and pick an owner |
+| Has `keep-open` | Nothing happens |
+| Anything else | Closed with a comment |
+
+Before the sweep closes or adopts a PR, it checks the full history for a contributor reply. This catches replies on long PRs.
+
+Closing is **off by default**. Until it is on, the sweep only logs what it would close. To turn it on, set the repo variable `COMMUNITY_AUTO_CLOSE_ENABLED` to `true`. To try it by hand, run the sweep from the Actions tab and tick "close".
+
+When a PR first gets `awaiting-contributor`, the sweep also posts one comment that gives the due date. That comment is also off until closing is on. The sweep posts at most 20 comments per run (`MAX_COMMENTS`).
+
+`kilo-auto-close.yml` is separate. It does not read these labels. It still closes any PR with no activity for 30 days, including `high-value` and `keep-open` PRs.
+
+## The maintainer routine
+
+Open the latest "Community sweep" run. The job summary has the queue. A copy goes to Slack when `COMMUNITY_TRIAGE_SLACK_WEBHOOK` is set.
+
+1. **Adopt**: pick an owner and add the PR to the standup doc.
+2. **Needs triage**: decide. Add `high-value` or `low-value`, or comment on it. Not sure? Put it in the standup doc.
+3. **Needs review**: the contributor replied. Review again.
+4. **Approved**: merge.
+5. **Waiting for contributor**: nothing to do.
+
+Friday and Tuesday are three to four days apart. This gives contributors time to reply between reviews.
+
+Useful searches:
+
+- All community PRs: `is:pr is:open label:community`
+- Needs a maintainer: `is:pr is:open label:needs-triage,needs-review`
+- One area: `is:pr is:open label:community label:area:vscode`
+
+## Issues
+
+New issues get the `community` label, `needs-triage` and an `area:*` label. The area comes from the required "Component" dropdown in the bug and feature templates. The answer "Other / not sure" adds no `area:*` label. The sweep only handles PRs.
+
+## Setup
+
+| Name | Kind | Needed | Purpose |
+|---|---|---|---|
+| `COMMUNITY_AUTO_CLOSE_ENABLED` | Variable | No | `true` turns on closing and comments |
+| `COMMUNITY_MAINTAINERS` | Variable | No | Logins treated as maintainers |
+| `COMMUNITY_TRIAGE_MEMBER_TOKEN` | Secret | No | Token with `read:org`. Finds private org members |
+| `COMMUNITY_TRIAGE_SLACK_WEBHOOK` | Secret | No | Posts the queue to Slack |
+
+Labels are created by the workflows. Run "Community sweep" once by hand after merge to create them and label the open PRs.
+
+## Safety
+
+- `community-label.yml` uses `pull_request_target`. It checks out the base branch only. It never runs PR code.
+- The sweep never closes drafts, `high-value` PRs or `keep-open` PRs.
+- Closed PRs can be reopened by the contributor.
diff --git a/nix/bun.nix b/nix/bun.nix
index a8808953494..2a998856064 100644
--- a/nix/bun.nix
+++ b/nix/bun.nix
@@ -14,19 +14,19 @@ let
sources = {
"aarch64-linux" = {
name = "bun-linux-aarch64";
- hash = "sha256-on/7Y6gxA3WDbg1vZorhf6jY0YuIw3yCHGUzGXOhmjs=";
+ hash = "sha256-VDKLvC2cjgyfiSxUTWbFeoO4QTnjSQnl7oF1jxrI/ac=";
};
"x86_64-linux" = {
name = "bun-linux-x64";
- hash = "sha256-lR7iruhV8IWVruxiJSJqKY0/6oOj3NZGXAnLzN9+hI8=";
+ hash = "sha256-NjaPrvdSeHXV/6UuU81IAhdB8qg+tiCKjdZAaNQiqRM=";
};
"aarch64-darwin" = {
name = "bun-darwin-aarch64";
- hash = "sha256-2LliIYKK1vl6x6wKt+lYcjQa92MAHogD6CZ2UsJlJiA=";
+ hash = "sha256-kJh6OhbX21VtiGrD1VHnttPt8KHPQ6yu1iLoZ2vh0S8=";
};
"x86_64-darwin" = {
name = "bun-darwin-x64";
- hash = "sha256-QYPfM3RiPlurMVxUfPoJdFM81FfYa3O2OfeoeXTNZjM=";
+ hash = "sha256-gFINfhdSYwjJGF0mFnmsbSd5jTgDoOn3/5Ehq4r/sBI=";
};
};
source =
diff --git a/nix/hashes.json b/nix/hashes.json
index e114e2fcb76..9fd7668b300 100644
--- a/nix/hashes.json
+++ b/nix/hashes.json
@@ -1,8 +1,8 @@
{
"nodeModules": {
- "x86_64-linux": "sha256-GPvjJ+tR9oaGS/M6gcmMmRlI3D65nZHsY5CBhfakn1c=",
- "aarch64-linux": "sha256-Krg1Gjnu8byyMf+3VbSSZ95xLwzv/4+dCmLW4NijqIc=",
- "aarch64-darwin": "sha256-BSSXijWYB7W5MHedZJhmCknWVM4Dwz09UM4Fky2Xnvg=",
- "x86_64-darwin": "sha256-Dbw8wNVbUE3a4+uInDE9mEDxG5S5cZhT+RVL/OcEhi0="
+ "x86_64-linux": "sha256-yy/c43V7291kA8K9/10N0wUEpteFb9yJK0WeY3OYqQw=",
+ "aarch64-linux": "sha256-T2PFStBWDJLTGytuUSLf9qK0wl+98SIyvO2HSPZH/1c=",
+ "aarch64-darwin": "sha256-OZt/MMm+SliHd+W5keq1EX59BSsaSxPzEG1PsuR/174=",
+ "x86_64-darwin": "sha256-WO8Duy0t2EbV8aWpqvOc0HTLscNVxDRdf7Vr5FQcCeY="
}
}
diff --git a/package.json b/package.json
index 0cbbb6ac524..138386d03a0 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"description": "AI-powered development tool",
"private": true,
"type": "module",
- "packageManager": "bun@1.3.14",
+ "packageManager": "bun@1.4.2",
"scripts": {
"dev": "KILO_CLIENT=cli bun run --cwd packages/opencode --conditions=node src/index.ts",
"dev:stats": "bun sst shell --stage=production -- bun run --cwd packages/stats/app dev",
@@ -36,7 +36,7 @@
"@effect/platform-node": "4.0.0-beta.83",
"@anthropic-ai/sandbox-runtime": "0.0.63",
"@npmcli/arborist": "9.4.0",
- "@types/bun": "1.3.14",
+ "@types/bun": "1.4.2",
"@types/cross-spawn": "6.0.6",
"@octokit/rest": "22.0.0",
"@opentui/core": "0.5.11",
@@ -54,7 +54,7 @@
"@solid-primitives/storage": "4.3.3",
"@tailwindcss/vite": "4.1.11",
"diff": "8.0.4",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
"drizzle-kit": "1.0.0-rc.2",
"drizzle-orm": "1.0.0-rc.2",
"effect": "4.0.0-beta.83",
@@ -159,7 +159,8 @@
"fastify": ">=5.8.3",
"vite": "7.3.5",
"diff": "8.0.4",
- "dompurify": "3.4.13",
+ "dompurify": "3.4.16",
+ "katex": "0.19.0",
"happy-dom": ">=20.8.9",
"@opentui/core": "catalog:",
"@opentui/solid": "catalog:",
@@ -176,7 +177,7 @@
"gcp-metadata@8.1.2": "patches/gcp-metadata@8.1.2.patch",
"@ai-sdk/google@3.0.73": "patches/@ai-sdk%2Fgoogle@3.0.73.patch",
"@pierre/trees@1.0.0-beta.4": "patches/@pierre%2Ftrees@1.0.0-beta.4.patch",
- "@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
+ "@modelcontextprotocol/sdk@1.31.0": "patches/@modelcontextprotocol%2Fsdk@1.31.0.patch",
"effect@4.0.0-beta.83": "patches/effect@4.0.0-beta.83.patch",
"@tanstack/virtual-core@3.17.3": "patches/@tanstack%2Fvirtual-core@3.17.3.patch",
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch",
@@ -191,6 +192,6 @@
"@ai-sdk/openai-compatible@2.0.48": "patches/@ai-sdk%2Fopenai-compatible@2.0.48.patch",
"bun-pty@0.4.8": "patches/bun-pty@0.4.8.patch"
},
- "version": "7.8.3",
+ "version": "7.8.8",
"peerDependencies": {}
}
diff --git a/packages/client/package.json b/packages/client/package.json
index 1daa5cb96e0..37bf690fb7b 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -38,5 +38,5 @@
"@typescript/native-preview": "catalog:",
"effect": "catalog:"
},
- "version": "7.8.3"
+ "version": "7.8.8"
}
diff --git a/packages/codemode/package.json b/packages/codemode/package.json
index 5791cb1cecc..182c465dfcc 100644
--- a/packages/codemode/package.json
+++ b/packages/codemode/package.json
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/codemode",
- "version": "7.8.3",
+ "version": "7.8.8",
"description": "Effect-native confined code execution over schema-described tools",
"private": true,
"type": "module",
diff --git a/packages/containers/bun-node/Dockerfile b/packages/containers/bun-node/Dockerfile
index 7d728889d90..c5fc7161d28 100644
--- a/packages/containers/bun-node/Dockerfile
+++ b/packages/containers/bun-node/Dockerfile
@@ -6,7 +6,7 @@ FROM ${REGISTRY}/build/base:24.04
SHELL ["/bin/bash", "-lc"]
ARG NODE_VERSION=24.4.0
-ARG BUN_VERSION=1.3.14
+ARG BUN_VERSION=1.4.2
ENV BUN_INSTALL=/opt/bun
ENV PATH=/opt/bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
diff --git a/packages/core/package.json b/packages/core/package.json
index 68ca04e7d20..248b5212746 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
- "version": "7.8.3",
+ "version": "7.8.8",
"name": "@opencode-ai/core",
"type": "module",
"license": "MIT",
diff --git a/packages/core/src/ripgrep.ts b/packages/core/src/ripgrep.ts
index 5702b043d08..20d35479f8b 100644
--- a/packages/core/src/ripgrep.ts
+++ b/packages/core/src/ripgrep.ts
@@ -69,6 +69,8 @@ export interface GlobInput {
readonly follow?: boolean
readonly signal?: AbortSignal
readonly validate?: Effect.Effect // kilocode_change - bind approved searches at spawn
+ readonly noRequireGit?: boolean // kilocode_change - honor ignore files outside a git repository
+ readonly exclude?: readonly string[] // kilocode_change - additional exclusion globs
}
export interface GrepInput extends KiloGrep.Options {
@@ -93,6 +95,7 @@ export interface SearchResult {
readonly items: readonly A[]
readonly truncated: boolean
readonly partial: boolean
+ readonly invalidPattern?: boolean // kilocode_change - distinguish malformed globs from transient errors
}
// kilocode_change end
@@ -100,8 +103,12 @@ export class Service extends Context.Service()("@opencode/v2
const failure = (message: string, cause?: unknown) => new Error({ message, cause })
+// kilocode_change start - also classify invalid globs for the marketplace scan
const isInvalidPattern = (stderr: string) =>
- stderr.includes("regex parse error") || stderr.includes("error parsing regex")
+ stderr.includes("regex parse error") ||
+ stderr.includes("error parsing regex") ||
+ stderr.includes("error parsing glob")
+// kilocode_change end
const layer = Layer.effect(
Service,
@@ -206,6 +213,7 @@ const layer = Layer.effect(
cwd: input.cwd,
limit: input.limit,
signal: input.signal,
+ pattern: input.pattern, // kilocode_change - surface malformed globs instead of a bare partial result
timeout: 2 * 60 * 1000, // kilocode_change
validate: input.validate, // kilocode_change - preserve spawn-bound target validation
args: [
@@ -213,7 +221,9 @@ const layer = Layer.effect(
"--files",
...(input.hidden ? ["--hidden"] : []),
...(input.follow ? ["--follow"] : []),
+ ...(input.noRequireGit ? ["--no-require-git"] : []), // kilocode_change
`--glob=${input.pattern}`,
+ ...(input.exclude ?? []).map((glob) => `--glob=!${glob}`), // kilocode_change
"--glob=!**/.git/**",
".",
],
@@ -236,7 +246,11 @@ const layer = Layer.effect(
),
})),
// kilocode_change end
- Effect.catchTag("Ripgrep.InvalidPatternError", (cause) => Effect.fail(failure(cause.message, cause))),
+ // kilocode_change start - a malformed glob narrows the result, not the whole request
+ Effect.catchTag("Ripgrep.InvalidPatternError", () =>
+ Effect.succeed({ items: [], truncated: false, partial: true, invalidPattern: true }),
+ ),
+ // kilocode_change end
),
find: (input) =>
run({
diff --git a/packages/core/src/v1/config/config.ts b/packages/core/src/v1/config/config.ts
index cc34080b31d..c47baacbd0a 100644
--- a/packages/core/src/v1/config/config.ts
+++ b/packages/core/src/v1/config/config.ts
@@ -203,6 +203,10 @@ export const Info = Schema.Struct({
description:
"Model-specific variant overrides for task-tool subagents, keyed by provider/model. Valid overrides take precedence over saved, agent-specific, and inherited variants.",
}),
+ memory_model: Schema.optional(Schema.NullOr(Schema.String)).annotate({
+ description:
+ "Model for automatic project memory saves in the format of provider/model. If unset or unavailable, memory uses the session model.",
+ }),
default_agent: Schema.optional(Schema.NullOr(Schema.String)).annotate({
description:
"Default agent to use when none is specified. Must be a primary agent. Falls back to 'code' if not set or if the specified agent is invalid.",
diff --git a/packages/effect-drizzle-sqlite/package.json b/packages/effect-drizzle-sqlite/package.json
index dcc1c4e4d98..eedcdb10ea5 100644
--- a/packages/effect-drizzle-sqlite/package.json
+++ b/packages/effect-drizzle-sqlite/package.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
- "version": "7.8.3",
+ "version": "7.8.8",
"name": "@opencode-ai/effect-drizzle-sqlite",
"type": "module",
"license": "MIT",
diff --git a/packages/effect-sqlite-node/package.json b/packages/effect-sqlite-node/package.json
index 0ead09f1be8..c658147ea4e 100644
--- a/packages/effect-sqlite-node/package.json
+++ b/packages/effect-sqlite-node/package.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
- "version": "7.8.3",
+ "version": "7.8.8",
"name": "@opencode-ai/effect-sqlite-node",
"type": "module",
"license": "MIT",
diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml
index d20336e5e2a..69dc6c0b89e 100644
--- a/packages/extensions/zed/extension.toml
+++ b/packages/extensions/zed/extension.toml
@@ -1,7 +1,7 @@
id = "kilo"
name = "Kilo"
description = "The open source coding agent."
-version = "7.8.3"
+version = "7.8.8"
schema_version = 1
authors = ["Anomaly"]
repository = "https://github.com/Kilo-Org/kilocode"
@@ -11,26 +11,26 @@ name = "Kilo"
icon = "./icons/opencode.svg"
[agent_servers.opencode.targets.darwin-aarch64]
-archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.3/opencode-darwin-arm64.zip"
+archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.8/opencode-darwin-arm64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.darwin-x86_64]
-archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.3/opencode-darwin-x64.zip"
+archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.8/opencode-darwin-x64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-aarch64]
-archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.3/opencode-linux-arm64.tar.gz"
+archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.8/opencode-linux-arm64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-x86_64]
-archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.3/opencode-linux-x64.tar.gz"
+archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.8/opencode-linux-x64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.windows-x86_64]
-archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.3/opencode-windows-x64.zip"
+archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.8.8/opencode-windows-x64.zip"
cmd = "./opencode.exe"
args = ["acp"]
diff --git a/packages/http-recorder/package.json b/packages/http-recorder/package.json
index b3d9e1eea64..f68b92ff953 100644
--- a/packages/http-recorder/package.json
+++ b/packages/http-recorder/package.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
- "version": "7.8.3",
+ "version": "7.8.8",
"name": "@opencode-ai/http-recorder",
"description": "Record and replay Effect HTTP client traffic with deterministic cassettes",
"type": "module",
diff --git a/packages/httpapi-codegen/package.json b/packages/httpapi-codegen/package.json
index 9d76f52e131..d41707953d6 100644
--- a/packages/httpapi-codegen/package.json
+++ b/packages/httpapi-codegen/package.json
@@ -20,5 +20,5 @@
"@types/bun": "catalog:",
"@typescript/native-preview": "catalog:"
},
- "version": "7.8.3"
+ "version": "7.8.8"
}
diff --git a/packages/kilo-console/package.json b/packages/kilo-console/package.json
index 064bca999c0..b1ffe61f22f 100755
--- a/packages/kilo-console/package.json
+++ b/packages/kilo-console/package.json
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-console",
- "version": "7.8.3",
+ "version": "7.8.8",
"private": true,
"type": "module",
"scripts": {
diff --git a/packages/kilo-docs/components/SideNav.tsx b/packages/kilo-docs/components/SideNav.tsx
index a59e917ea57..d27fa852663 100644
--- a/packages/kilo-docs/components/SideNav.tsx
+++ b/packages/kilo-docs/components/SideNav.tsx
@@ -16,6 +16,7 @@ const sectionNavItems: SectionNav = {
contributing: Nav.ContributingNav,
"ai-providers": Nav.AiProvidersNav,
gateway: Nav.GatewayNav,
+ desktop: Nav.DesktopNav,
}
// Main nav items with their section keys
@@ -28,6 +29,7 @@ const mainNavItems = [
{ label: "Automate", href: "/automate", sectionKey: "automate" },
{ label: "Deploy & Secure", href: "/deploy-secure", sectionKey: "deploy-secure" },
{ label: "AI Gateway", href: "/gateway", sectionKey: "gateway" },
+ { label: "Kilo Desktop", href: "/desktop", sectionKey: "desktop" },
{ label: "Contributing", href: "/contributing", sectionKey: "contributing" },
]
diff --git a/packages/kilo-docs/components/SvgIcon.tsx b/packages/kilo-docs/components/SvgIcon.tsx
new file mode 100644
index 00000000000..85767a96030
--- /dev/null
+++ b/packages/kilo-docs/components/SvgIcon.tsx
@@ -0,0 +1,31 @@
+interface SvgIconProps {
+ src: string
+ size?: string
+ label?: string
+}
+
+/**
+ * Renders a monochrome SVG from the public folder as a CSS mask filled with
+ * `currentColor`, so the glyph inherits the surrounding text color and adapts to
+ * light/dark — unlike the `
`-based {% icon %} tag. Use for small line icons
+ * (e.g., Lucide). Renders on the server, so there is no fetch or flash on load.
+ */
+export function SvgIcon({ src, size = "1em", label }: SvgIconProps) {
+ const mask = `url(${JSON.stringify(src)}) center / contain no-repeat`
+ return (
+
+ )
+}
diff --git a/packages/kilo-docs/components/TopNav.tsx b/packages/kilo-docs/components/TopNav.tsx
index 29070a6164a..73897e486a6 100644
--- a/packages/kilo-docs/components/TopNav.tsx
+++ b/packages/kilo-docs/components/TopNav.tsx
@@ -7,6 +7,7 @@ import { ThemeToggle } from "./ThemeToggle"
interface NavItem {
label: string
href: string
+ badge?: string
}
interface DropdownItem {
@@ -31,6 +32,7 @@ const mainNavItems: NavItem[] = [
{ label: "Automate", href: "/automate" },
{ label: "Deploy & Secure", href: "/deploy-secure" },
{ label: "Kilo Gateway", href: "/gateway" },
+ { label: "Kilo Desktop", href: "/desktop", badge: "Beta" },
{ label: "Contributing", href: "/contributing" },
]
@@ -198,12 +200,30 @@ function NavTab({ item, isActive }: { item: NavItem; isActive: boolean }) {
{item.label}
- {isActive && }
+ {item.badge ? (
+
+ {item.badge}
+
+ ) : null}
+ {isActive && }
)
}
diff --git a/packages/kilo-docs/components/index.js b/packages/kilo-docs/components/index.js
index 26fed7dc325..9422f63e5da 100644
--- a/packages/kilo-docs/components/index.js
+++ b/packages/kilo-docs/components/index.js
@@ -5,6 +5,7 @@ export * from "./CopyPageButton"
export * from "./CopyLine"
export * from "./Heading"
export * from "./Icon"
+export * from "./SvgIcon"
export * from "./Image"
export * from "./ImageGallery"
export * from "./KiloCodeIcon"
diff --git a/packages/kilo-docs/lib/nav/desktop.ts b/packages/kilo-docs/lib/nav/desktop.ts
new file mode 100644
index 00000000000..d3185047116
--- /dev/null
+++ b/packages/kilo-docs/lib/nav/desktop.ts
@@ -0,0 +1,37 @@
+import { NavSection } from "../types"
+
+export const DesktopNav: NavSection[] = [
+ {
+ title: "Introduction",
+ links: [
+ { href: "/desktop/overview", children: "Overview" },
+ { href: "/desktop/installation", children: "Installation" },
+ { href: "/desktop/quickstart", children: "Quickstart" },
+ { href: "/desktop/what-you-can-ask", children: "What you can ask" },
+ ],
+ },
+ {
+ title: "Features",
+ links: [
+ { href: "/desktop/features", children: "Overview" },
+ { href: "/desktop/features/notebooks", children: "Notebooks" },
+ { href: "/desktop/features/browser", children: "In-app browser" },
+ { href: "/desktop/features/terminal", children: "Terminal" },
+ { href: "/desktop/features/git", children: "Git integration" },
+ { href: "/desktop/features/local-inference", children: "Local inference" },
+ { href: "/desktop/features/environments", children: "Conda environments" },
+ { href: "/desktop/features/files", children: "Files" },
+ ],
+ },
+ {
+ title: "Settings",
+ links: [
+ { href: "/desktop/settings/general", children: "General settings" },
+ { href: "/desktop/settings/ai", children: "AI settings" },
+ ],
+ },
+ {
+ title: "Help",
+ links: [{ href: "/desktop/troubleshooting", children: "Troubleshooting" }],
+ },
+]
diff --git a/packages/kilo-docs/lib/nav/index.ts b/packages/kilo-docs/lib/nav/index.ts
index e0514ac71ad..de0ac323d91 100644
--- a/packages/kilo-docs/lib/nav/index.ts
+++ b/packages/kilo-docs/lib/nav/index.ts
@@ -5,6 +5,7 @@ import { CollaborateNav } from "./collaborate"
import { ContributingNav } from "./contributing"
import { CustomizeNav } from "./customize"
import { DeploySecureNav } from "./deploy-secure"
+import { DesktopNav } from "./desktop"
import { GatewayNav } from "./gateway"
import { GettingStartedNav } from "./getting-started"
import { ToolsNav } from "./tools"
@@ -19,5 +20,6 @@ export const Nav = {
ContributingNav,
AiProvidersNav,
GatewayNav,
+ DesktopNav,
ToolsNav,
}
diff --git a/packages/kilo-docs/markdoc/tags/index.ts b/packages/kilo-docs/markdoc/tags/index.ts
index 7e2a84d4f17..57fc7a1b184 100644
--- a/packages/kilo-docs/markdoc/tags/index.ts
+++ b/packages/kilo-docs/markdoc/tags/index.ts
@@ -4,6 +4,7 @@ export * from "./codicon.markdoc"
export * from "./copy-line.markdoc"
export * from "./tabs.markdoc"
export * from "./icon.markdoc"
+export * from "./svg-icon.markdoc"
export * from "./image.markdoc"
export * from "./image-gallery.markdoc"
export * from "./kilo-code-icon.markdoc"
diff --git a/packages/kilo-docs/markdoc/tags/svg-icon.markdoc.ts b/packages/kilo-docs/markdoc/tags/svg-icon.markdoc.ts
new file mode 100644
index 00000000000..c4d62675838
--- /dev/null
+++ b/packages/kilo-docs/markdoc/tags/svg-icon.markdoc.ts
@@ -0,0 +1,22 @@
+import { SvgIcon } from "../../components"
+
+export const svgIcon = {
+ render: SvgIcon,
+ selfClosing: true,
+ attributes: {
+ src: {
+ type: String,
+ required: true,
+ description: "Path to the inline SVG (e.g., '/docs/img/desktop/code.svg')",
+ },
+ size: {
+ type: String,
+ default: "1em",
+ description: "Icon size (CSS width/height value)",
+ },
+ label: {
+ type: String,
+ description: "Accessible label; omit for decorative icons that sit next to their text",
+ },
+ },
+}
diff --git a/packages/kilo-docs/next.config.js b/packages/kilo-docs/next.config.js
index 38971120c19..acd8682a905 100644
--- a/packages/kilo-docs/next.config.js
+++ b/packages/kilo-docs/next.config.js
@@ -20,6 +20,11 @@ module.exports = withMarkdoc(/* config: https://markdoc.io/docs/nextjs#options *
basePath: false,
permanent: true,
},
+ {
+ source: "/desktop",
+ destination: "/desktop/overview",
+ permanent: true,
+ },
...previousDocsRedirects,
]
},
diff --git a/packages/kilo-docs/package.json b/packages/kilo-docs/package.json
index 5eabef355f0..27c3ba00caa 100644
--- a/packages/kilo-docs/package.json
+++ b/packages/kilo-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-docs",
- "version": "7.8.3",
+ "version": "7.8.8",
"private": true,
"scripts": {
"dev": "next dev --webpack --port 3002",
@@ -20,7 +20,7 @@
"@xyflow/react": "12.10.2",
"js-yaml": "^4.3.2",
"mermaid": "11.17.2",
- "next": "^16.3.6",
+ "next": "^16.3.8",
"posthog-js": "^1.335.3",
"prismjs": "^1.30.0",
"react": "^19.2.4",
diff --git a/packages/kilo-docs/pages/404.tsx b/packages/kilo-docs/pages/404.tsx
index 3dfc29873c9..daf2c39e192 100644
--- a/packages/kilo-docs/pages/404.tsx
+++ b/packages/kilo-docs/pages/404.tsx
@@ -146,7 +146,7 @@ export default function Custom404() {
}
.prompt {
- color: #f8f674;
+ color: var(--kilo-yellow);
}
.command {
@@ -171,7 +171,7 @@ export default function Custom404() {
.error-bar {
width: 4px;
height: 80px;
- background: #f8f674;
+ background: var(--kilo-yellow);
margin-right: 1.5rem;
border-radius: 2px;
}
@@ -180,7 +180,7 @@ export default function Custom404() {
font-family: "JetBrains Mono", monospace;
font-size: 4.5rem;
font-weight: 700;
- color: #f8f674;
+ color: var(--kilo-yellow);
line-height: 1;
}
diff --git a/packages/kilo-docs/pages/api/llms.txt.ts b/packages/kilo-docs/pages/api/llms.txt.ts
index c87ec12a918..53c3a194e4e 100644
--- a/packages/kilo-docs/pages/api/llms.txt.ts
+++ b/packages/kilo-docs/pages/api/llms.txt.ts
@@ -125,6 +125,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
{ title: "Contributing", nav: Nav.ContributingNav },
{ title: "AI Providers", nav: Nav.AiProvidersNav },
{ title: "Gateway", nav: Nav.GatewayNav },
+ { title: "Desktop", nav: Nav.DesktopNav },
{ title: "Tools", nav: Nav.ToolsNav },
]
diff --git a/packages/kilo-docs/pages/automate/agent-manager-projects.md b/packages/kilo-docs/pages/automate/agent-manager-projects.md
index c276c435fbb..bf917ec88f4 100644
--- a/packages/kilo-docs/pages/automate/agent-manager-projects.md
+++ b/packages/kilo-docs/pages/automate/agent-manager-projects.md
@@ -5,18 +5,10 @@ description: "Manage Agent Manager sessions across multiple Git repositories"
# Multi-project Agent Manager
-Multi-project Agent Manager lets you manage sessions and worktrees from multiple Git repositories in one Agent Manager panel. The feature is experimental and disabled by default. When it is disabled, Agent Manager keeps its existing single-project behavior.
+Agent Manager lets you manage sessions and worktrees from multiple Git repositories in one panel. Multi-project support is always available, with no experimental setting required.
One Agent Manager project represents one canonical Git repository. A project is not a collection of repositories, and the VS Code workspace folder does not define a project.
-## Enable multi-project mode
-
-1. Open [Kilo Code Settings](/docs/getting-started/settings#experimental-features).
-2. Open the **Experimental** tab.
-3. Enable **Multi-Project Agent Manager**.
-
-The setting is also available as `kilo-code.new.experimental.multiProject`. It is an application-scoped VS Code setting and defaults to `false`.
-
## Default project
The first folder in your VS Code workspace is always the **default project**. Agent Manager derives it from the current workspace folder at run time, so it is not an entry in the saved project list and you cannot remove it. It appears first in the **PROJECTS** list, and it has its own Local context, worktrees, sections, sessions, scripts, and settings like any other project.
@@ -32,7 +24,7 @@ The project footer below the list provides these actions:
- **Open local folder...** opens a folder picker. Agent Manager resolves the selected folder to its canonical Git repository root and adds that repository. A folder inside an existing repository attaches that repository, and a linked worktree attaches its primary checkout.
- **Clone repository...** clones a repository with the VS Code Git extension into a parent folder that you choose, then adds it.
-Multi-project mode must be enabled and the VS Code window must be trusted before you can add, create, or clone a repository. Adding a repository does not add it to `vscode.workspaceFolders`. Agent Manager identifies a project by its canonical Git root, so adding the same repository again opens the existing project instead of creating a duplicate.
+The VS Code window must be trusted before you can add, create, or clone a repository. Adding a repository does not add it to `vscode.workspaceFolders`. Agent Manager identifies a project by its canonical Git root, so adding the same repository again opens the existing project instead of creating a duplicate.
If you select a folder that is not a Git repository, **Open local folder...** asks whether to initialize Git and create an empty first commit before it adds the project.
diff --git a/packages/kilo-docs/pages/automate/agent-manager.md b/packages/kilo-docs/pages/automate/agent-manager.md
index 598db06664c..156b9edffde 100644
--- a/packages/kilo-docs/pages/automate/agent-manager.md
+++ b/packages/kilo-docs/pages/automate/agent-manager.md
@@ -541,7 +541,17 @@ Use **Select element** to attach an element reference to your next message. It i
The agent can open the application with `browser_open`. Its automation browser accepts only HTTP URLs on `localhost` or `127.0.0.1` and blocks other origins, including external assets and APIs on separate ports. Serve the resources the agent needs from the same loopback origin. These restrictions apply to the automation browser, not the independent visible preview iframe.
-Google Chrome must be installed for the default runtime. To use an already-installed compatible Playwright Chromium browser instead, turn off **Use System Chrome** under **Settings > Web Tools**.
+Kilo uses system Google Chrome by default. In WSL, if Chrome is missing and you have not explicitly set a browser preference, Kilo tries an installed compatible Playwright Chromium browser. Set **Use System Chrome** under **Settings > Experimental** to choose Chrome (on) or Chromium (off). Chromium must match the extension's bundled `playwright-core` version.
+
+The Integrated Browser does not install browsers or operating system packages. To install Chromium manually, run the extension's bundled Playwright CLI with VS Code Server's Node inside WSL:
+
+```sh
+"" "/dist/node_modules/playwright-core/cli.js" install chromium
+```
+
+Use the paths for your active VS Code Server and Kilo extension. Linux system libraries may also need manual installation. Keep browser sandbox protection enabled.
+
+In a VS Code WSL window, the browser runs in the WSL extension host. Chrome installed on Windows is not Linux Chrome. Install Chrome inside WSL and keep **Use System Chrome** on, or use matching Chromium with the setting off. This setting is application-scoped, so configure it in Windows-side user settings, not WSL remote settings. `localhost` refers to the extension host, so keep your application's server running inside WSL.
## Terminals
diff --git a/packages/kilo-docs/pages/automate/extending/plugins.md b/packages/kilo-docs/pages/automate/extending/plugins.md
index 34f731753c2..52884f11aa7 100644
--- a/packages/kilo-docs/pages/automate/extending/plugins.md
+++ b/packages/kilo-docs/pages/automate/extending/plugins.md
@@ -363,7 +363,7 @@ Every hook is optional. Return only the ones you care about.
| Hook | Description |
|---|---|
-| `config` | Receives the fully-resolved config at startup. Read-only — useful for inspection. |
+| `config` | Receives the fully-resolved config at startup. Mutate it in place to add or change agents, commands, providers, and other config — this is how a plugin contributes its own slash commands. A command named `goal` is reserved for [session goals](/docs/code-with-ai/agents/goals): Kilo ignores it under that name, warns, and exposes it as `/goal:command` instead. |
| `event` | Called for **every** event on the internal bus (see [Events](#events)). |
### Tools
diff --git a/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md b/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md
index 0fe389dea8b..00af3b3ad69 100644
--- a/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md
+++ b/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md
@@ -81,6 +81,17 @@ Double-click the current session title at the top of the chat to edit it inline.
You can also rename local sessions from **History** using the edit button or the session's context menu.
+**Switching session tabs:**
+
+When more than one session is open, the sidebar and Kilo editor tabs show a session tab strip. Use these shortcuts while the chat has focus:
+
+| Shortcut (macOS) | Shortcut (Windows/Linux) | Action |
+|---|---|---|
+| `Cmd+Alt+Left` / `Right` | `Ctrl+Alt+Left` / `Right` | Previous / next session tab |
+| `Cmd+Shift+Left` / `Right` | `Ctrl+Shift+Left` / `Right` | Move the focused session tab left / right |
+
+Hover a session tab next to the active tab to see its shortcut. When the prompt is empty, its placeholder also shows the shortcut. To hide these prompt hints, turn off **Show shortcut hints** in **Settings > Display**. To change the keys, search for **Previous Session Tab** or **Next Session Tab** in **Keyboard Shortcuts**. These are the same keys that switch tabs in the Agent Manager, and each window acts on the surface that has focus.
+
{% /tab %}
{% tab label="CLI" %}
diff --git a/packages/kilo-docs/pages/code-with-ai/agents/goals.md b/packages/kilo-docs/pages/code-with-ai/agents/goals.md
index 3beb82202d7..4fa522a5597 100644
--- a/packages/kilo-docs/pages/code-with-ai/agents/goals.md
+++ b/packages/kilo-docs/pages/code-with-ai/agents/goals.md
@@ -103,7 +103,7 @@ Goal-composer mode accepts multiline objectives and file or image attachments. I
## Limits and integration
-- A custom command or an MCP prompt named `goal` is reserved. Kilo rejects it and reports an error; rename it.
+- A custom command named `goal` (from your config or a plugin) is reserved for this feature. Kilo ignores it, reports a configuration warning, and makes it available as `/goal:command` instead of running it as `/goal`.
- The goal is stored under the `kilo.goal` session metadata key.
- Headless mode supports only status and controls through `kilo run --command goal`, which accepts no argument, `pause`, or `clear`. The agent can still start or resume a goal itself with the `goal` tool.
diff --git a/packages/kilo-docs/pages/code-with-ai/agents/model-selection.md b/packages/kilo-docs/pages/code-with-ai/agents/model-selection.md
index 7595b492443..1a7af35bb58 100644
--- a/packages/kilo-docs/pages/code-with-ai/agents/model-selection.md
+++ b/packages/kilo-docs/pages/code-with-ai/agents/model-selection.md
@@ -23,6 +23,8 @@ You can configure models separately for different tasks in the VS Code extension
- **Subagent model** — the default model for subagents launched by the `task` tool. Configured with the `subagent_model` key in `kilo.jsonc`, or the **Subagent Model** field on the **Settings → Models** tab.
- If left unset, inherits whichever model the parent agent session is currently using.
- **Autocomplete model** — the model used for inline code completions as you type. See [Autocomplete: Provider and Model](/docs/code-with-ai/features/autocomplete#provider-and-model) for how to configure it.
+- **Memory model** — the model used for automatic [project memory](/docs/customize/context/memory#use-a-different-model-for-auto-save) saves. Configured with the `memory_model` key in `kilo.jsonc`.
+ - If left unset, uses whichever model the session is currently using.
- **Compaction model** - the model used to summarize context. Set `agent.compaction.model` in `kilo.jsonc`, or choose **Compaction model** under **Settings → Models**. If unset, compaction uses the current session's model. See [Context Condensing](/docs/customize/context/context-condensing#use-a-different-model-for-compaction).
### Configuring Local Usage
@@ -57,8 +59,8 @@ While the specifics change constantly, some principles stay consistent:
- When the selected model supports variants, type `/variant` to open the reasoning effort selector.
- Press `Shift+Tab` in the prompt input to cycle to the next reasoning effort variant, wrapping after the last one. This works in the sidebar chat, the Agent Manager prompt, and the New Worktree dialog, and the variant selector tooltip shows the shortcut on hover. To keep `Shift+Tab` for keyboard focus navigation instead, disable the `kilo-code.new.chat.shiftTabCyclesVariant` setting (also available under **Settings → Display**).
- Set per-agent defaults and a global default in the **Settings** panel (Models tab), or directly in the `kilo.jsonc` config file.
-- **Model precedence:** Session override → Last picked per agent → Per-agent config → Global config → [Auto Free](/docs/code-with-ai/agents/auto-model#tiers) (note: Auto Free may route to providers that log prompts — see the Auto Model page for details).
-- The model selector remembers the last model you picked for each agent, so switching agents restores your previous choice. A manual pick always beats config settings.
+- **Model precedence:** Pick for the current session or draft and agent → Per-agent config → Global config → Organization recommendation (then the first available Kilo model), or the most recently used available model for individual users → [Auto Free](/docs/code-with-ai/agents/auto-model#tiers) (note: Auto Free may route to providers that log prompts — see the Auto Model page for details).
+- The model selector remembers the model you picked for each agent within a session or draft, so switching agents and back restores your choice. New sessions start from config or the default; existing sessions recover each agent's model and reasoning effort from its latest user message. A manual pick beats config only within the session or draft and agent where it was made.
{% /tab %}
{% tab label="CLI" %}
@@ -129,6 +131,8 @@ When an agent delegates work to a subagent (via the `task` tool), the subagent *
This sets the `explore` subagent to always use Haiku regardless of the parent's model. Any subagent without a `model` override uses whatever model the invoking agent is running.
+A bare model name without a provider prefix also works — for example `"model": "codestral (latest)"`. Kilo resolves the name against your configured providers and prefers the provider of the parent session when several providers offer a model with the same name. This applies to `agent..model` and `subagent_model`.
+
{% /tab %}
{% tab label="VSCode" %}
diff --git a/packages/kilo-docs/pages/code-with-ai/features/task-todo-list.md b/packages/kilo-docs/pages/code-with-ai/features/task-todo-list.md
index a1fc77369a0..204c5852ec3 100644
--- a/packages/kilo-docs/pages/code-with-ai/features/task-todo-list.md
+++ b/packages/kilo-docs/pages/code-with-ai/features/task-todo-list.md
@@ -50,12 +50,12 @@ Kilo updates the list when:
## Where todo lists appear
-**1. Task Header Summary**
-Quick progress overview with your next important item
+**1. Session Dock**
+A progress chip above the prompt shows how many items are done and the item Kilo works on now
-{% image src="/docs/img/screenshot-tests/kilo-vscode/visual-regression/chat/task-header-with-todos-chromium-linux.png" alt="Task header summary showing todo list progress" width="420" /%}
+{% image src="/docs/img/screenshot-tests/kilo-vscode/visual-regression/chat/chat-view-session-dock-todo-states-chromium-linux.png" alt="Todo progress chip in the session dock, next to the working indicator and the session actions" width="420" /%}
-Click the task header summary to expand the full list inline and jump to the current item.
+While Kilo works, the chip sits next to the working indicator. When the session is idle, it sits next to the session actions. Click the chip to see the full list.
**2. Interactive Tool Block**
Full todo interface in chat where you can:
diff --git a/packages/kilo-docs/pages/code-with-ai/platforms/mobile.md b/packages/kilo-docs/pages/code-with-ai/platforms/mobile.md
index 7a8ffbe9a48..31bce0705f6 100644
--- a/packages/kilo-docs/pages/code-with-ai/platforms/mobile.md
+++ b/packages/kilo-docs/pages/code-with-ai/platforms/mobile.md
@@ -88,6 +88,14 @@ For Kilo Pass pricing, billing, and account management details, use the [Kilo Pa
On Android, you can buy, restore, and change Kilo Pass tiers through Google Play. Tier changes take effect at the next renewal; your current tier and credits stay in place until then. Google manages cancellation and payment methods for passes purchased through Google Play.
+### Buying credits in the app
+
+The personal credits section shows an **Add credits** entry at any balance, which opens a **Buy credits** screen with your current balance and four preset packs: $10, $50, $100, and $500. The stores sell fixed products, not arbitrary amounts, so the app offers these preset packs rather than a custom amount. Each row shows the credit amount and the store's localized price; a pack the store cannot price is disabled and reads **Price unavailable**.
+
+Selecting a pack opens the store's own purchase sheet — StoreKit on iOS, Google Play Billing on Android. The app never grants credits itself: credits are added only after the backend validates the purchase with the store. A successful purchase shows a confirmation and refreshes your balance, and a cancelled purchase shows no error. If a purchase fails, the screen shows one inline message with a retry action; if the store is unreachable, it shows one banner naming that store while keeping the four packs visible. A purchase the backend has not yet credited is recovered the next time the app connects, and a refunded pack has its credits reversed.
+
+For other ways to add credits, see [Adding Credits](/docs/getting-started/adding-credits).
+
{% imageGallery columns="3" width="220px" %}
{% image src="/docs/img/mobile-apps/home.webp" alt="Kilo Code mobile home screen showing active agent sessions" caption="Start coding tasks and resume active sessions from the mobile home screen." /%}
diff --git a/packages/kilo-docs/pages/contributing/development-environment.md b/packages/kilo-docs/pages/contributing/development-environment.md
index e2f77c6cc9c..89a1bbb63fe 100644
--- a/packages/kilo-docs/pages/contributing/development-environment.md
+++ b/packages/kilo-docs/pages/contributing/development-environment.md
@@ -16,7 +16,7 @@ This document will help you set up your development environment and understand h
Before you begin, make sure you have the following installed:
1. **Git** - For version control
-2. **Bun 1.3.14+** - Required for installing dependencies and running scripts
+2. **Bun 1.4.2+** - Required for installing dependencies and running scripts
3. **Visual Studio Code** - Our recommended IDE for development
4. **Java 21** - Required only when running JetBrains plugin checks or repo-level checks that include `@kilocode/kilo-jetbrains`
diff --git a/packages/kilo-docs/pages/customize/context/memory.md b/packages/kilo-docs/pages/customize/context/memory.md
index 74cbc91a73e..7ca0cddec5a 100644
--- a/packages/kilo-docs/pages/customize/context/memory.md
+++ b/packages/kilo-docs/pages/customize/context/memory.md
@@ -64,6 +64,18 @@ When memory is enabled and auto-save is on, Kilo reviews completed turns and sav
Explicit saves are not throttled.
+### Use a different model for auto-save
+
+Auto-save can use a different model than your main session. By default it runs on the model your session is using. To customize it, set `memory_model` in `kilo.jsonc`:
+
+```jsonc
+{
+ "memory_model": "kilo/kilo-auto/small"
+}
+```
+
+A smaller or faster model is usually enough for this background work, so you can keep a more capable model for the session itself. If `memory_model` is unset, malformed, or unavailable, auto-save uses the session model. The setting does not affect explicit saves or recall, which run in your session.
+
## Explicit memory
Use explicit commands when you want to control what is stored:
diff --git a/packages/kilo-docs/pages/customize/custom-modes.md b/packages/kilo-docs/pages/customize/custom-modes.md
index 442777eee7d..a6ce037cb06 100644
--- a/packages/kilo-docs/pages/customize/custom-modes.md
+++ b/packages/kilo-docs/pages/customize/custom-modes.md
@@ -175,7 +175,7 @@ Pin a specific model using the `provider/model` format:
model: anthropic/claude-sonnet-4-20250514
```
-The model selector also **remembers the last model you picked for each agent** across sessions. A config-pinned `model` acts as the default when no manual pick exists. To reset a pick and let the config take over, use the **reset button** in the model selector (visible when your active model differs from what the config specifies).
+The model selector remembers the model you picked for each agent within a session or draft. A config-pinned `model` is the default for new sessions; a manual pick beats config only for the agent and session or draft where it was made. Switching to another agent uses that agent's pick or configured default, and switching back restores your choice. Existing sessions recover each agent's model from its latest user message rather than a shared model preference.
### `steps`
diff --git a/packages/kilo-docs/pages/customize/workflows.md b/packages/kilo-docs/pages/customize/workflows.md
index 8b3e4777ad0..cbc22e7d48d 100644
--- a/packages/kilo-docs/pages/customize/workflows.md
+++ b/packages/kilo-docs/pages/customize/workflows.md
@@ -60,6 +60,10 @@ You are helping submit a pull request...
| `variant` | Reasoning effort variant override (for example `low` or `high`), for models that support variants |
| `subtask` | When `true`, runs as a sub-agent session |
+### Reserved Names
+
+`goal` is reserved for [session goals](/docs/code-with-ai/agents/goals). A command named `goal` in your config or from a plugin is ignored under that name — Kilo reports a configuration warning and keeps `/goal` for its own command, but the command you defined is still reachable as `/goal:command`, the same way a skill that collides with a command is offered as `/name:skill`.
+
### Model and Reasoning Variant
Each workflow can run with its own model and reasoning effort variant. In the VS Code extension, open **Settings → Agent Behaviour → Workflows**, expand a workflow, and choose a model and variant. The selection is saved as a command override in your global config, so the workflow's template file stays unchanged.
diff --git a/packages/kilo-docs/pages/desktop/features.md b/packages/kilo-docs/pages/desktop/features.md
new file mode 100644
index 00000000000..4c67725aa2c
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features.md
@@ -0,0 +1,16 @@
+---
+title: "Features"
+description: "Explore Kilo Desktop's capabilities: notebooks, an in-app browser, terminal, git, local inference, environments, and files."
+---
+
+# Features
+
+Kilo Desktop's capabilities appear alongside your chat, scoped to the workspace you're working in. Explore each one:
+
+- [Notebooks](/docs/desktop/features/notebooks) — analyze data in interactive Python notebooks.
+- [In-app browser](/docs/desktop/features/browser) — browse the web or review changes to your app next to your chat.
+- [Terminal](/docs/desktop/features/terminal) — run commands in an interactive shell.
+- [Git integration](/docs/desktop/features/git) — review changes and switch branches.
+- [Local inference](/docs/desktop/features/local-inference) — run models on your own machine.
+- [Conda environments](/docs/desktop/features/environments) — manage conda environments and packages.
+- [Files](/docs/desktop/features/files) — browse and edit workspace files.
diff --git a/packages/kilo-docs/pages/desktop/features/browser.md b/packages/kilo-docs/pages/desktop/features/browser.md
new file mode 100644
index 00000000000..a82a7921c10
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/browser.md
@@ -0,0 +1,26 @@
+---
+title: "In-app browser"
+description: "Browse the web next to your chat, including pages the agent opens for you, in Kilo Desktop."
+---
+
+# In-app browser
+
+Browse the web in a tab next to your chat — check documentation, dashboards, or a local dev server without switching to a separate application. Because it lives inside the chat, the browser is wired into your work with the agent.
+
+## Pages the agent opens
+
+The agent can open a page for you — a local dev server it just started, or documentation it's pointing you to. If a tab is already showing that URL, the agent focuses it instead of opening another. It opens the page to show it to you, but it's not able to read the page contents.
+
+## Links from chat
+
+Selecting an `http(s)` link in a chat message opens it in a browser tab of that chat, rather than sending you to a separate app. To use your system browser instead, hold **⌘** (macOS) or **Ctrl** (Windows/Linux) as you click.
+
+## Browse on your own
+
+Type a URL and press Enter to load a page; the tab has the controls you'd expect.
+
+- **Back**, **forward**, and **refresh**.
+- A menu with **Hard reload** and **Open DevTools**.
+- **Zoom** from 25% to 500%, with a reset.
+
+Open more than one browser tab at a time; each keeps its own page as you switch between them, and its label and icon update to match the site you're on.
diff --git a/packages/kilo-docs/pages/desktop/features/environments.md b/packages/kilo-docs/pages/desktop/features/environments.md
new file mode 100644
index 00000000000..06ec3b92831
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/environments.md
@@ -0,0 +1,84 @@
+---
+title: "Conda Environments"
+description: "Create, import, and manage conda environments and their packages from Kilo Desktop."
+---
+
+# Conda environments
+
+Manage conda environments and their packages from within the app, so you can set up the Python environment your work needs without dropping to a separate terminal. You'll find **Conda Environments** in [Settings](/docs/desktop/settings/general#conda-environments), under **General**.
+
+{% callout type="info" %}
+Conda environments require a [Kilo account](/docs/desktop/settings/ai#ai-providers). Sign in to create and manage them.
+{% /callout %}
+
+## Why conda?
+
+Scientific computing, machine learning, and AI work depends on more than Python packages. Libraries like NumPy, PyTorch, and TensorFlow rely on compiled code and native libraries — such as CUDA for GPUs, BLAS or MKL for linear algebra, and C, C++, and Fortran runtimes — that Python-only tools aren't designed to manage. Conda manages the full stack:
+
+- **Beyond Python** — install native libraries, GPU toolkits, compilers, and packages for other languages such as R, alongside your Python packages. Conda manages the Python version itself, too.
+- **Prebuilt binaries** — packages arrive precompiled for Windows, macOS, and Linux, so you don't need to build libraries from source or install developer tools.
+- **Compatible dependencies** — conda's solver resolves the entire environment at once, so every package and native library it installs works together.
+- **Isolation** — each conda environment is self-contained, so projects that need different versions of Python, PyTorch, or CUDA don't interfere with each other.
+- **Reproducibility** — export an environment to an `environment.yml` file to recreate it on another machine or share it with a teammate.
+
+To learn more, see [12 reasons to choose conda](https://www.anaconda.com/blog/12-reasons-to-choose-conda).
+
+## Conda concepts
+
+New to conda? Learn more about fundamental conda concepts in the official Anaconda documentation:
+
+- **[Environment](https://www.anaconda.com/docs/getting-started/concepts/what-is-an-environment)** — an isolated set of packages (and a Python version) for a project.
+- **[Package](https://www.anaconda.com/docs/getting-started/concepts/what-is-a-package)** — an installable library or tool.
+- **[Channel](https://www.anaconda.com/docs/getting-started/concepts/what-is-a-channel)** — where packages are downloaded from.
+- **[environment.yml](https://www.anaconda.com/docs/getting-started/working-with-conda/environments#sharing-an-environment)** — a file that describes an environment so it can be recreated or shared.
+
+## Use a conda environment in your work
+
+Managing a conda environment here doesn't automatically "activate" it — there's no activate switch in the app. Instead, the agent connects it to your work. Ask an agent to find an appropriate conda environment for a notebook and point the notebook at it, then restart the notebook so it picks up the change.
+
+The most durable approach is to have the agent write an `environment.yml` into the workspace. The notebooks you already have, and any new ones you create there, then use that environment automatically. See [Notebooks](/docs/desktop/features/notebooks) for working with conda environments from a chat.
+
+## Browse your conda environments
+
+The page lists your conda environments by **name** and **prefix** (the full path on disk). Search by name or path, sort the list, and page through it. Click the {% svgIcon src="/docs/img/desktop/ellipsis.svg" /%} actions menu on an environment's row to **Clone** or **Delete** an environment. Select a row to open the environment and work with its packages.
+
+## Create a conda environment
+
+Click **New environment**, then select **Create New** to open the Create environment dialog.
+
+On the Create environment page, configure your environment:
+
+- **Location** — where the environment is created.
+- **Name** — the environment's name.
+- **Python version** — a specific version, or **Latest**.
+
+Under **Select packages**, search the list and check the packages to include. Each package has a version dropdown (defaulting to **latest**), and your choices collect in the **Selected Packages** panel. Use the {% svgIcon src="/docs/img/desktop/list-filter.svg" /%} **Channels** control to choose where packages come from (see [Choose a channel](#choose-a-channel)). Select **Create Environment** to build it.
+
+## Import from a file
+
+Click **New environment**, then select **Import file** to open the Import from file dialog. Navigate to or drop a conda environment file (`.yml` or `.yaml`). Optionally set a **name override** to use instead of the name declared in the file.
+
+## Work with a conda environment's packages
+
+Selecting an environment opens its detail view. The header shows the environment name, its **Python** version, and the full prefix path. Below it, a table lists every installed package with its **Version**, **Source** (conda or pip), and **Channel**. Search by name and sort by any column.
+
+### Update packages
+
+When newer versions are available, an **Update** button appears. Click the **Update** button to open the Update dialog. From there, you can update all packages at once, or filter the table down to just the packages that you want to update. A **Dependency changes** panel previews what the update pulls in and flags any **dependency conflict** it can't resolve, so you can adjust your selection and try again. Turn on **Back up before updating** to clone the environment first, so you can roll back if needed.
+
+Alternatively, on the packages table on the environment's details page, you can click the {% svgIcon src="/docs/img/desktop/ellipsis.svg" /%} actions menu on a package's row to **Update** or **Remove** just that one. **Update** is unavailable when a package is already at the latest available version.
+
+### Add packages
+
+From an open environment, select **+ Add Packages** to open the Add Packages dialog. Search for a package, and for each result pick a version (defaulting to **latest**). Your selections and their dependencies are added to the **Selected packages** list, and the {% svgIcon src="/docs/img/desktop/list-filter.svg" /%} **Channels** control sets where packages come from (see [Choose a channel](#choose-a-channel)).
+
+Before anything is applied, the **Dependency changes** panel previews the dependency changes the solver will make — packages that will be upgraded, downgraded, added, removed, or rebuilt — so there are no surprises. Select **Install** to apply the changes. A long-running install can be sent to **Run in background** so you can keep working while it finishes.
+
+## Choose a channel
+
+When you select packages, you choose which channels they install from with the {% svgIcon src="/docs/img/desktop/list-filter.svg" /%} **Channels** control:
+
+- **Anaconda `Main`** — secure, vetted packages; requires accepting Anaconda's terms of service.
+- **conda-forge** — community-maintained and open-source.
+
+Any channels configured in your conda settings appear here too.
diff --git a/packages/kilo-docs/pages/desktop/features/files.md b/packages/kilo-docs/pages/desktop/features/files.md
new file mode 100644
index 00000000000..4cbf7c3ce8c
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/files.md
@@ -0,0 +1,41 @@
+---
+title: "Files"
+description: "Browse and edit your workspace files, mention them in chat, and open file links from the agent's responses in Kilo Desktop."
+---
+
+# Files
+
+Browse and edit the files in your chat's workspace from a **Files** tab, so you can read and change code alongside the conversation. The tab is scoped to the workspace, so what you see matches what the agent is working with.
+
+## Browse the workspace
+
+The file tree shows the files in your workspace. You can:
+
+- Search the tree to jump to a file by name.
+- Refresh to re-scan the folder — the tree also updates on its own when files change on disk.
+- See git status decorations (added, modified, deleted, renamed, or untracked) when the workspace is a git repository.
+
+## Open and edit files
+
+Select a file to open it in the editor with syntax highlighting.
+
+- Notebook (`.ipynb`) files open in a [Notebook](/docs/desktop/features/notebooks) tab.
+- Markdown (`.md`) files can be viewed in a {% svgIcon src="/docs/img/desktop/eye.svg" /%} rendered preview or {% svgIcon src="/docs/img/desktop/code.svg" /%} as source code, with links to other workspace files clickable inline.
+- Images open in a preview.
+- Files that can't be shown — such as binaries or very large files — open read-only or explain why they can't be previewed.
+
+Save with `Cmd/Ctrl+S`. If the file changed on disk since you opened it, Kilo Desktop surfaces a conflict instead of overwriting, so you can reload the latest version, overwrite it with your changes, or cancel. Closing a file with unsaved changes prompts you first.
+
+## Mention files in chat
+
+Type `@` in the chat to search your workspace files and insert a mention. The mention resolves to the file's path, so the agent knows exactly which file you mean.
+
+## Open file links from responses
+
+When the agent references a file in its response — including a specific location, like `src/api.py:42` — it renders as a clickable link rather than plain text. Click it to open that file at that line in the Files tab.
+
+The agent can also open a file for you directly, jumping to the relevant line.
+
+## Open in another editor
+
+Prefer your usual editor? Open the current file in an external editor you have installed, such as VS Code, Cursor, Zed, or a JetBrains IDE. Kilo Desktop remembers your preferred editor for next time.
diff --git a/packages/kilo-docs/pages/desktop/features/git.md b/packages/kilo-docs/pages/desktop/features/git.md
new file mode 100644
index 00000000000..4afca65fc98
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/git.md
@@ -0,0 +1,55 @@
+---
+title: "Git integration"
+description: "Review your uncommitted changes, switch branches, and run sessions in an isolated worktree, without leaving the chat in Kilo Desktop."
+---
+
+# Git integration
+
+Review your changes and manage branches for the chat's workspace without leaving the conversation. Git integration uses your system `git`, so make sure git is installed and on your `PATH`.
+
+## Review changes
+
+The **Changes** tab shows the diff of your uncommitted work against the last commit. Each file is a section you can expand or collapse, labeled with its path, a status icon (added, modified, or deleted), and its own added and removed counts. The diff refreshes on its own as the working tree changes.
+
+The **git diff tracker** in the top toolbar summarizes those changes at a glance — the number of changed files with added (green) and removed (red) line counts — and opens the **Changes** tab when you select it.
+
+Controls at the top of the tab let you:
+
+- {% svgIcon src="/docs/img/desktop/list-chevrons-down-up.svg" /%} **Collapse all files** to their headers, then expand just the ones you want.
+- {% svgIcon src="/docs/img/desktop/settings.svg" /%} **Diff settings** control how diffs are displayed, such as switching between a unified and split layout.
+- {% svgIcon src="/docs/img/desktop/panel-right-close.svg" /%} **Hide file tree** to give the diff more room, and show it again when you need it. Select a file in the file tree to jump to it in the diff.
+
+The tab also handles the cases where there's nothing to show:
+
+- **No changes** — a clean working tree shows an empty state.
+- **Not a git repository** — offers to [initialize git](#set-up-git-for-a-folder) for the folder.
+- **Diff too large** — pauses live updates with an option to load it on demand.
+
+## Commit, push, and open a pull request
+
+The commit control in the top toolbar turns your reviewed changes into commits and shares them. Its main button is a **quick action** that adapts to your branch's state, so it always offers the next sensible step. Open its dropdown to choose an action directly:
+
+- **Commit** — commit your current changes. Unavailable when the working tree is clean.
+- **Push** — push your commits to the remote. Needs a checked-out branch with an `origin` remote and local commits to send.
+- **Create PR** — open a pull request for the current branch. Needs committed work on a feature branch (not the default branch) with a GitHub `origin` remote. When a pull request already exists, the menu links to it as **PR #N**, color-coded by its state.
+
+## Switch and create branches
+
+A branch switcher in the chat lets you move between branches for the workspace. The list is grouped into your **default**, **recent**, and **other** branches, and you can search it. Selecting a branch checks it out; choosing a remote branch creates a local tracking branch for it.
+
+To start new work, create a branch from the switcher. You can base the new branch on your current branch or on the repository's default branch, and it's checked out as soon as it's created.
+
+## Work locally or in a new worktree
+
+Beside the workspace in the chat, a mode control sets where a session's changes go:
+
+- **Local repository** — work in the repository already on your machine, on whatever branch is checked out. This is the default.
+- **New worktree** — create a separate copy for the session, based on a branch you pick, so your main checkout stays untouched while the agent works.
+
+Kilo Desktop remembers your choice per workspace.
+
+## Set up git for a folder
+
+If the workspace folder isn't a git repository yet, the Changes tab offers an **Initialize Git** action to create one, after which the diff and branch tools become available.
+
+The branch switcher appears for regular repositories. For repositories that can't be used safely — bare, unsafe, or with no commits yet — Kilo Desktop shows a short explanation instead of a broken or misleading control.
diff --git a/packages/kilo-docs/pages/desktop/features/local-inference.md b/packages/kilo-docs/pages/desktop/features/local-inference.md
new file mode 100644
index 00000000000..29a174e8f0c
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/local-inference.md
@@ -0,0 +1,21 @@
+---
+title: "Local inference"
+description: "Run models on your own machine with the local model server in Kilo Desktop."
+---
+
+# Local inference
+
+Run models on your own machine through a managed local model server, so you can work with a model without sending your prompts to a hosted provider.
+
+{% callout type="info" %}
+The local model server requires a [Kilo account](/docs/desktop/settings/ai#ai-providers). Sign in to use it.
+{% /callout %}
+
+## Set up a local model
+
+Sign in, turn the server on, and import a model from a GGUF file from the [Local Model Server](/docs/desktop/settings/ai#local-model-server) settings. That section covers the full set of server and per-model options.
+
+## Pick it in chat
+
+To use an imported model in a chat, open the model picker, then select {% svgIcon src="/docs/img/desktop/server.svg" /%} **Local Model Server**. Your imported models appear there. Choose one and use it like any other model.
+
diff --git a/packages/kilo-docs/pages/desktop/features/notebooks.md b/packages/kilo-docs/pages/desktop/features/notebooks.md
new file mode 100644
index 00000000000..00eeaf42367
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/notebooks.md
@@ -0,0 +1,40 @@
+---
+title: "Notebooks"
+description: "Analyze data in interactive Python notebooks alongside your chat in Kilo Desktop."
+---
+
+# Notebooks
+
+Open interactive Python notebooks in a tab next to your chat, so you can explore and visualize data without leaving the conversation. A notebook is a shared document you and the agent build together: you edit and run cells directly, while the agent reads, writes, and runs cells alongside you as you talk through the analysis. Notebooks run on a dedicated notebook runtime.
+
+{% image src="/docs/img/desktop/notebooks-with-chat.png" alt="A Python notebook open beside a chat in Kilo Desktop" width="800" /%}
+
+## Open a notebook
+
+A notebook opens as its own tab beside the chat. There are a few ways to get there:
+
+- **Ask the agent** to list the files in your workspace, then select an `.ipynb` file in its reply to open it.
+- **From the [Files](/docs/desktop/features/files) tab**, search or browse the workspace and select an `.ipynb` file.
+- **Ask the agent to open it** by name — the agent can open and list notebooks for you, so the one you're discussing stays in view. You can also create a new notebook by asking the agent.
+
+## Work with cells
+
+The toolbar at the top of the notebook has controls to {% svgIcon src="/docs/img/desktop/code.svg" /%} add a code cell, {% svgIcon src="/docs/img/desktop/text-initial.svg" /%} add a Markdown cell, {% svgIcon src="/docs/img/desktop/chevrons-right.svg" /%} run cells, {% svgIcon src="/docs/img/desktop/rotate-ccw.svg" /%} restart, restart and run all cells, and {% svgIcon src="/docs/img/desktop/square.svg" /%} interrupt a running cell. Run a cell to see its output inline, and view the status (such as **Idle**) on the right of the toolbar.
+
+{% image src="/docs/img/desktop/notebooks-toolbar-controls.png" alt="The notebook toolbar" width="800" /%}
+
+Each individual cell includes controls to {% svgIcon src="/docs/img/desktop/play.svg" /%} run it, switch it between {% svgIcon src="/docs/img/desktop/code.svg" /%} code and {% svgIcon src="/docs/img/desktop/text-initial.svg" /%} Markdown, {% svgIcon src="/docs/img/desktop/eye-off.svg" /%} hide its input or output, and {% svgIcon src="/docs/img/desktop/trash.svg" /%} delete it.
+
+## Edit with the agent
+
+Work on notebooks together with the agent. Ask it to make a change — fix a typo, add analysis, rework a chart — and it reads the notebook, edits or adds cells, and saves. When the notebook is open beside the chat, the results appear in its tab, and a dot marks each cell the agent changes so you can see at a glance what it edited. The notebook doesn't need to be open, though — the agent can edit any notebook in your workspace.
+
+## Environment and packages
+
+Each notebook uses a Python environment. Select the kernel button in the toolbar to see the details of that environment. New notebooks can get a shared `environment.yml` in their workspace; toggle this under [Settings → Notebooks](/docs/desktop/settings/general#notebooks).
+
+The agent can work with [conda environments](/docs/desktop/features/environments) too — ask it to find an appropriate conda environment for this notebook and point the notebook at it, and it will. A helpful pattern is to have the agent write an `environment.yml` into the workspace: then every notebook there, existing or new, picks up that environment automatically.
+
+## Runtime status
+
+The notebook runtime starts on demand. While it's starting you'll see a brief status; if it can't be reached, the tab shows a Retry button.
\ No newline at end of file
diff --git a/packages/kilo-docs/pages/desktop/features/terminal.md b/packages/kilo-docs/pages/desktop/features/terminal.md
new file mode 100644
index 00000000000..acc938e991a
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/features/terminal.md
@@ -0,0 +1,23 @@
+---
+title: "Terminal"
+description: "Run commands in an interactive shell scoped to your workspace in Kilo Desktop."
+---
+
+# Terminal
+
+Run commands in an interactive shell next to your chat. Each terminal is a real shell session that starts in the workspace's root folder, so commands run against the same files the agent is working with.
+
+## Working with the agent
+
+The terminal is yours to drive, but it's connected to the chat:
+
+- **The agent can open a terminal for you**, starting in the workspace folder, for you to work in. It won't type or run commands in it (the agent runs its own commands through a separate, permission-gated shell).
+- **The agent can read what your terminals print**, such as a dev server or test watcher you're running, to help you spot issues and offer assistance.
+
+## Work in multiple terminals
+
+Open more than one terminal at a time — each is numbered and runs independently, so a command in one doesn't affect another. The tab title updates to show the command that's currently running.
+
+## Sessions that survive reloads
+
+A terminal keeps its scrollback and stays running across window reloads. If the view reloads, it reconnects to the same session rather than starting over, so a long-running command keeps going. Closing a terminal, though, ends its session and stops whatever it's running.
\ No newline at end of file
diff --git a/packages/kilo-docs/pages/desktop/installation.md b/packages/kilo-docs/pages/desktop/installation.md
new file mode 100644
index 00000000000..6b338bb5bef
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/installation.md
@@ -0,0 +1,31 @@
+---
+title: "Installation"
+description: "Install Kilo Desktop and complete first-time setup, including optional dependencies for git and local model features."
+---
+
+# Installation
+
+Kilo Desktop is distributed as a native installer for your operating system. Download the installer, run it, and launch the app.
+
+## System requirements
+
+- **Operating system:** macOS (Apple Silicon), Windows (`x64`), or Linux (`x64`).
+- **Account:** a [Kilo account](/docs/desktop/settings/ai#ai-providers). Signing in is required to use the local model server and create Conda environments.
+
+## Install the app
+
+1. Download the [Kilo Desktop installer](https://kilo.ai/install) for your platform.
+2. Run the installer and follow the prompts.
+3. Launch Kilo Desktop.
+
+## Optional dependencies
+
+Some capabilities rely on tools already installed on your system:
+
+- **Git integration** uses your system `git`. Install git to review changes and switch branches from a chat. See [Git integration](/docs/desktop/features/git).
+- **Conda environments** and **local inference** use a conda runtime that the app provisions for you. See [Conda environments](/docs/desktop/features/environments).
+- **Local inference** also needs a model file in **GGUF format** (`.gguf`) that you provide. Import one from the [Local Model Server](/docs/desktop/settings/ai#local-model-server) settings. See [Local inference](/docs/desktop/features/local-inference).
+
+## After installing
+
+Continue to the [Quickstart](/docs/desktop/quickstart) page to learn how to open a workspace and start your first chat.
diff --git a/packages/kilo-docs/pages/desktop/overview.md b/packages/kilo-docs/pages/desktop/overview.md
new file mode 100644
index 00000000000..e17f969db92
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/overview.md
@@ -0,0 +1,34 @@
+---
+title: "Overview"
+description: "Kilo Desktop brings Kilo's agents to your machine, uniting coding, notebooks, terminals, git, and local models all in one place."
+---
+
+# Overview
+
+{% callout type="generic" %}
+Kilo Desktop is a desktop application that puts an agentic AI chat next to the tools you already use to write code and analyze data science notebooks. From a single conversation, you can ask the agent to write and edit code, create Python environments, explore data in notebooks, review git changes, and more.
+{% /callout %}
+
+## What you can do
+
+- Create workspaces that use one or more folders on your machine.
+- Chat with an AI agent scoped to a workspace.
+- Explore and visualize data in interactive Python notebooks next to your chat and let the agent build, run, and iterate on them with you.
+- Put the agent to work in your workspace: edit files, run terminal commands, review git changes, and browse the web, all from the conversation.
+- Run models locally or connect to hosted providers through the [Kilo Gateway](/docs/gateway).
+- Manage conda environments and packages without leaving the app.
+
+## How it works
+
+Kilo Desktop runs on the same agent engine as the rest of Kilo. It starts a local copy of the [Kilo CLI](/docs/code-with-ai/platforms/cli) on your machine and drives it through a chat interface, so your sessions use the same runtime that powers the CLI and the [VS Code extension](/docs/code-with-ai/platforms/vscode).
+
+Because the app is model-agnostic, you decide where inference happens. Connect hosted models through the [Kilo Gateway](/docs/gateway), bring your own provider API keys, or [run models locally](/docs/desktop/features/local-inference). You're never locked into a single provider and can choose which model works best for your current task.
+
+## Where to go next
+
+- [Installation](/docs/desktop/installation) — Install Kilo Desktop on your machine.
+- [Quickstart](/docs/desktop/quickstart) — Open a workspace and start your first chat.
+- [What you can ask](/docs/desktop/what-you-can-ask) — Example prompts mapped to capabilities.
+- [Features](/docs/desktop/features) — The capabilities available via chat.
+- [General settings](/docs/desktop/settings/general) — your account, appearance, and app preferences.
+- [AI settings](/docs/desktop/settings/ai) — AI providers, agent behavior, and local models.
\ No newline at end of file
diff --git a/packages/kilo-docs/pages/desktop/quickstart.md b/packages/kilo-docs/pages/desktop/quickstart.md
new file mode 100644
index 00000000000..bd3c90201d2
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/quickstart.md
@@ -0,0 +1,111 @@
+---
+title: "Quickstart"
+description: "Sign in, open a workspace, and start your first agentic chat in Kilo Desktop."
+---
+
+# Quickstart
+
+This guide walks you through your first session in Kilo Desktop. If you haven't installed the app yet, see [Installation](/docs/desktop/installation).
+
+## Complete onboarding
+
+On first launch, a short setup wizard walks you through the setup steps.
+
+### 1. Review the terms of service
+
+Review and accept Kilo's [terms of service](https://kilo.ai/terms).
+
+### 2. Connect to Kilo
+
+Sign in to your **Kilo account** to use frontier models, credits, and organization settings through the [Kilo Gateway](/docs/gateway). You can skip this step and connect later from [Settings](/docs/desktop/settings/ai#ai-providers).
+
+{% callout type="note" %}
+A Kilo account is also required to use [conda environments](/docs/desktop/features/environments) and the [local model server](/docs/desktop/features/local-inference). You can sign in during onboarding or later from the **Account** section in [Settings](/docs/desktop/settings/general#account).
+{% /callout %}
+
+### 3. Choose an autonomy level
+
+Choose whether you want Kilo to operate with high autonomy or review its work first, pausing to show its plan and ask for your approval before it edits files or runs commands. High autonomy is the default behavior of the Kilo Code agent.
+
+### 4. Create a workspace
+
+A workspace scopes a chat to one or more folders on your machine. Add the folder(s) you want the agent to work in; the agent's file access, terminal, and git operations all run inside the workspace. You can add more workspaces anytime.
+
+## Navigate the home screen
+
+When Kilo Desktop opens, you land on a new chat in the workspace you created during setup.
+
+{% image src="/docs/img/desktop/quickstart-home-screen.png" alt="The Kilo Desktop home screen with the sidebar and a new chat" width="800" /%}
+
+### Sidebar
+
+The sidebar on the left manages your chats and workspaces.
+
+- **New chat** starts a fresh conversation.
+- **Search** finds your past chats.
+- **Workspaces** lists the folders you've added. Select the dropdown to switch to a different workspace or create a new one. Use the filter to organize the list — group by **Status**, **Workspace**, or **Updated**, order by **Updated** or **Title**, choose what each row shows, and filter by status (**Needs attention**, **Working**, **Idle**, or **Archived**).
+
+### Settings
+
+Access the app settings by clicking the {% svgIcon src="/docs/img/desktop/settings.svg" /%} settings icon at the bottom of the sidebar. See [General settings](/docs/desktop/settings/general) and [AI settings](/docs/desktop/settings/ai) for details.
+
+## Chat with the agent
+
+The rest of the window is where you chat with the agent. Type a message, use `@` to mention workspace files, or `/` to run a command.
+
+### Input controls
+
+The controls around the input let you:
+
+- **Add an attachment** with the **+** button.
+- **Choose an agent** to set how it approaches your request. Pick one of the default agents: Code, Plan, Ask, Debug, or Architect. See [Using agents](/docs/code-with-ai/agents/using-agents) for what each one does.
+- **Select autonomy level** for the agent. With **Manually approve**, Kilo asks before each file edit or command; with **Automatically approve**, it proceeds on its own without requesting permission.
+- **Pick a model** for the chat. The available models depend on how you're signed in and which providers you've connected. The list can include [Kilo Gateway](/docs/gateway) models, provider models you've added, or a [local model](/docs/desktop/features/local-inference) you've added.
+- **Select a workspace** to scope the chat to a workspace, add a **New workspace**, or choose **No workspace** to chat without one.
+- **Set where changes go** with the git controls beside the workspace — work in your **Local** repository (switching or creating **branches** as needed), or run the session in a **new worktree**, an isolated copy created from a base branch. See [Git integration](/docs/desktop/features/git).
+
+### Send your first message
+
+Enter your message and send it to start the conversation. See [What you can ask](/docs/desktop/what-you-can-ask) for prompts to get you started.
+
+## Work in tab groups
+
+Tab groups let you work in the same workspace alongside the chat. Each tab group holds one or more tabs. Send a message to access the tab groups view.
+
+{% image src="/docs/img/desktop/quickstart-panels.png" alt="A chat with tab groups open beside it in Kilo Desktop" width="800" /%}
+
+### Open a tab group
+
+Open a new tab group with the **+ Add tab group** button at the top of a chat:
+
+{% image src="/docs/img/desktop/quickstart-add-tab-group-button.png" alt="The Add tab group button at the top of a chat" width="800" /%}
+
+Then, pick a tab to open in it:
+
+- **[Files](/docs/desktop/features/files)** — browse and edit files in the workspace.
+- **[Changes](/docs/desktop/features/git)** — review uncommitted git changes.
+- **[Notebook](/docs/desktop/features/notebooks)** — analyze data in an interactive Python notebook.
+- **[Browser](/docs/desktop/features/browser)** — open web pages without leaving the app.
+- **[Terminal](/docs/desktop/features/terminal)** — run commands in an interactive shell.
+
+### Arrange tabs and tab groups
+
+Use {% svgIcon src="/docs/img/desktop/plus.svg" /%} **Add tab** beside a tab group's tabs to add another tab to that group. Drag a tab to move it to another tab group. To move a whole tab group, drag it from the empty space to the right of its tabs.
+
+Each tab has its own controls: {% svgIcon src="/docs/img/desktop/maximize-2.svg" /%} **Expand** grows the tab to fill the workspace (select it again to collapse), {% svgIcon src="/docs/img/desktop/external-link.svg" /%} **Pop out** moves the tab into its own window, and the {% svgIcon src="/docs/img/desktop/x.svg" /%} close button removes it.
+
+By default, each tab group you open is added next to the others, and the tab groups get narrower to fit your screen as you open more. Turn on {% svgIcon src="/docs/img/desktop/gallery-horizontal.svg" /%} **Carousel layout** to keep the tab groups wider, then hold **Shift** and scroll with your mouse to pan across them.
+
+{% svgIcon src="/docs/img/desktop/bot.svg" /%} **Show chat** jumps you back to your conversation tab.
+
+### Save and reuse layouts
+
+When you find an arrangement of tab groups and tabs you like, save it as a **layout** and reuse it in other chats. A layout stores how your tab groups and tabs are arranged, not their contents — your chat history and the files, notebooks, or pages you had open aren't included.
+
+Use the {% svgIcon src="/docs/img/desktop/panels-top-left.svg" /%} **Layouts** button at the top right of a chat to:
+
+- **Save current layout** — name the arrangement and, optionally, **Use as default for new chats**. The dialog lists any open tabs it can't recreate in a new chat (such as a specific file, notebook, or browser page).
+- **Apply a layout** — select a saved layout from the menu to rearrange the current chat to match.
+- **Manage layouts** — set or clear the default, update a layout from the current arrangement, rename it, or delete it.
+
+The default layout applies to new chats only; existing chats stay as they are.
\ No newline at end of file
diff --git a/packages/kilo-docs/pages/desktop/settings/ai.md b/packages/kilo-docs/pages/desktop/settings/ai.md
new file mode 100644
index 00000000000..dd43e7888ed
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/settings/ai.md
@@ -0,0 +1,87 @@
+---
+title: "AI settings"
+description: "Configure agent behavior, AI providers, and the local model server in Kilo Desktop."
+---
+
+# AI settings
+
+Open settings from the gear at the bottom of the sidebar, and use the search box at the top to filter them. The **AI** settings cover agent behavior, AI providers, and the local model server.
+
+## Agent behavior
+
+The **Agent Behavior** section is where you review and install the [agents](/docs/code-with-ai/agents/using-agents), [skills](/docs/customize/skills), and [MCP servers](/docs/automate/mcp/what-is-mcp) Kilo can use.
+
+Installed items are grouped by type, and you can search them or filter by **Agents**, **MCPs**, or **Skills**. You can also filter by {% svgIcon src="/docs/img/desktop/list-filter.svg" /%} **Workspace**. Each item shows the workspaces it applies to (such as **All Workspaces**) and its author. Expand an item to see its details and to remove it; an MCP also shows whether it's **Connected**. **Refresh** re-checks for changes.
+
+Select **+ Add** to open the **Kilo Marketplace**, where you can browse specialized agents, skills, and MCPs by category and install them. See [Marketplace](/docs/customize/marketplace) for the full catalog and how installing works.
+
+## AI providers
+
+The **AI Providers** section lists your enabled AI providers, and **Add AI Provider** (top-right) connects a new one.
+
+The **Kilo Gateway** is the default path to models. When you're signed in it shows your account email and available balance; when you're signed out, use **Sign In**. Manage your account from the [Account](/docs/desktop/settings/general#account) section.
+
+Other providers appear below the gateway:
+
+- **Local Model Server** — models running on your machine; **Manage** opens the [Local model server](#local-model-server) settings.
+- **Providers you add** — anything you connect with an API key, each with edit and delete actions.
+- **System credentials** — some providers (such as **Amazon Bedrock**) connect automatically using credentials already on your machine rather than a stored API key. Expand the card to see the environment variables that were detected (for example, `AWS_PROFILE`). These are managed outside the app, so they can't be edited or removed here.
+
+To add a provider, select **Add AI Provider** and either:
+
+- **Pick a popular provider**. Available providers are **Anthropic**, **DeepSeek**, **OpenAI**, **Google**, **OpenRouter**, and **Vercel AI Gateway**. Paste its **API key** to connect to the provider.
+- **Add a Custom AI Provider** for any OpenAI- or Anthropic-compatible endpoint. To enable a custom AI provider, you'll need:
+ - The **Provider name**
+ - An **API format** (OpenAI Compatible, OpenAI Responses, or Anthropic Messages)
+ - The **Base URL**
+ - An optional **API key** (only needed when the endpoint requires authentication).
+ - The **Model ID(s)** the endpoint exposes. Flag whether each model supports **Reasoning** or **Images**.
+
+ **Advanced settings** adds custom request headers — use `{env:MY_API_TOKEN}` in a header value to pull a secret from the environment.
+
+Hosted models run through the gateway, so signing in is required to use them.
+
+For details on the gateway itself, see [Models & Providers](/docs/gateway/models-and-providers).
+
+## Local model server
+
+The **Local Model Server** section runs models on your own machine and exposes them to Kilo through an OpenAI-compatible endpoint. The toggle at the top starts and stops the server; the status beside it reads **Idle**, **Starting…**, or **Running**.
+
+**System Monitor** shows live **CPU**, **RAM**, and **GPU** usage so you can gauge how much headroom a model has.
+
+**Connect** holds the details an external client needs once the server is running: a copyable **Server Address** (for example `http://127.0.0.1:51009/v1`) and a masked **API Key**. Both read *Unavailable* until the server starts. {% svgIcon src="/docs/img/desktop/cable.svg" /%} **Request info** opens example request URLs and `curl` commands for the endpoints.
+
+**Models** lists the models you've added and lets you configure each one. Select **Add model → Import GGUF** to add a model from a `.gguf` file on disk. Each model shows whether it's **Loaded** or **Not loaded**, and its {% svgIcon src="/docs/img/desktop/ellipsis.svg" /%} menu can remove it from the server or reveal the file on disk.
+
+### Model settings
+
+Select a model to open its settings, grouped into **General**, **Sampling**, and **Advanced** tabs. Every control has an automatic default so you only change what you need. After making a change, you can select the {% svgIcon src="/docs/img/desktop/rotate-ccw.svg" /%} reset button next to a control to return it to the default. Changes save automatically.
+
+**General**
+
+- **Coding tools and instructions** — off by default for faster local inference. Turn it on to give the model the full context and tools that Kilo Code uses by default. This is not advised for the smallest of models and should only be used with models that support tool-calling.
+- **Context length** — the maximum number of tokens the model holds at once, including the conversation so far and the response being generated. Larger values use more memory and can slow generation. Ranges from **256** to **1,048,576** tokens.
+- **Temperature** — how random the output is. Lower values are more predictable and focused; higher values are more varied and creative. Ranges from **0** to **2**.
+- **Max tokens** — the maximum number of tokens the model generates in a single response. Unlimited by default; ranges from **1** to **1,048,576**.
+
+**Sampling**
+
+- **Top P** — limits sampling to the most likely tokens whose probabilities add up to this value (nucleus sampling). Lower values keep output focused; higher values allow more variety. Ranges from **0** to **1**.
+- **Top K** — limits sampling to this many of the most likely tokens; **0** removes the limit. Ranges from **0** to **100**.
+- **Min P** — drops tokens whose probability is below this fraction of the most likely token's probability. Ranges from **0** to **1**.
+- **Repetition penalty** — discourages repeating the same sequences of tokens. Higher values penalize repetition more; **1** disables it. Ranges from **0** to **2**.
+- **Presence penalty** — nudges the model toward tokens it hasn't used yet, encouraging new topics; **0** disables it. Ranges from **0** to **2**.
+
+**Advanced**
+
+- **Extra Arguments** — pass `llama.cpp` flags exactly as you would on the command line (for example `--n-gpu-layers 99`). Matching flags override the settings in the other tabs; app-managed flags are refused.
+
+### Runtime settings
+
+**Runtime** controls how the server itself runs:
+
+- **Server port** — leave blank to pick an available port automatically or enter a specific port.
+- **Models kept loaded** — keep **One model** loaded to save memory, or **All models** you use.
+- **Serve on local network** — let trusted devices on your Wi-Fi or LAN connect.
+
+See [Local inference](/docs/desktop/features/local-inference) for how local models appear in chats.
diff --git a/packages/kilo-docs/pages/desktop/settings/general.md b/packages/kilo-docs/pages/desktop/settings/general.md
new file mode 100644
index 00000000000..f6538d657f2
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/settings/general.md
@@ -0,0 +1,51 @@
+---
+title: "General settings"
+description: "Manage your account, appearance, conda environments, notebooks, and privacy in Kilo Desktop."
+---
+
+# General settings
+
+Open settings from the gear at the bottom of the sidebar, and use the search box at the top to filter them. The **General** settings cover the app version, your account, appearance, conda environments, notebooks, and privacy.
+
+## About
+
+The **About** section shows the app's version and manages updates:
+
+- **Version** — the build you're running, with its update status. When a newer build has downloaded it reads *Version X is ready to install*; otherwise use **Check for updates** to look for one.
+- **Update track** — choose whether to get **Stable** releases or **Preview** builds.
+
+When an update is ready, select **Restart to update** to relaunch and apply it.
+
+## Account
+
+The **Account** section manages your **Kilo** account. When you're signed in, it shows your account email, your **Available balance** (with a refresh), an **Organization** selector, and **Top up** and **Kilo Dashboard** links. See [Usage & Billing](/docs/gateway/usage-and-billing) for how organizations and balances work.
+
+## Appearance
+
+The **Appearance** section controls how the app looks:
+
+- **Theme** — switch between **Light**, **Dark**, or **System**.
+- **Color theme** — choose the app's color theme from the dropdown, such as **Kilo**.
+- **Accent color** — use the theme's accent (the **Theme** option) or pick your own from the color swatches.
+- **Sidebar vibrancy** — toggle a translucent sidebar background on or off.
+- **Interface text size** — adjust the text size in the sidebar, menus, and settings.
+- **Chat text size** — adjust the text size of chat messages, the input, and tool output.
+
+## Conda Environments
+
+Create and manage conda environments and their packages. See [Conda environments](/docs/desktop/features/environments) for what you can do here. Requires a Kilo account.
+
+## Notebooks
+
+The **Notebooks** section has two settings:
+
+- **Automatically create environment.yml** — give new notebooks a shared conda environment in their workspace.
+- **Trust new notebooks** — skip the dependency approval prompt for new notebooks.
+
+See [Notebooks](/docs/desktop/features/notebooks) for working with notebooks in a chat.
+
+## Privacy
+
+The **Privacy** section has a single **Share usage analytics and crash reports** toggle. When on, it shares usage analytics and crash reports with Kilo — including from the embedded Kilo service and conda environment manager.
+
+It also explains data handling for **free models**: because they may route your requests to providers that log prompts and outputs, don't submit personal or confidential data when using them. See [Using Kilo for Free](/docs/getting-started/using-kilo-for-free) for details, and use the chat model picker's filter to exclude free models.
diff --git a/packages/kilo-docs/pages/desktop/troubleshooting.md b/packages/kilo-docs/pages/desktop/troubleshooting.md
new file mode 100644
index 00000000000..c6bd6c9e1cd
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/troubleshooting.md
@@ -0,0 +1,36 @@
+---
+title: "Troubleshooting"
+description: "Fixes for common Kilo Desktop issues, including the local server, git, and local models."
+---
+
+# Troubleshooting
+
+If something isn't working in Kilo Desktop, start here.
+
+## The app can't reach the agent
+
+Kilo Desktop runs the agent through a local server (a `kilo serve` process) that starts on demand. If chats fail to respond:
+
+- Wait a moment after launch — the server starts the first time you open a chat and needs to report healthy before it accepts requests.
+- Make sure you're signed in to your [Kilo account](/docs/desktop/settings/ai#ai-providers) so hosted models are available.
+- Restart the app to relaunch the server.
+
+## The Changes tab or branch switcher isn't available
+
+Git integration needs your system `git`. If the tools are missing or not working:
+
+- Confirm `git` is installed and on your `PATH`.
+- If the folder isn't a git repository, use **Initialize Git** in the Changes tab to create one. See [Git integration](/docs/desktop/features/git#set-up-git-for-a-folder).
+- For bare or unsafe repositories, the branch switcher is intentionally hidden. Kilo Desktop shows a short explanation instead of a broken control.
+
+## A local model isn't listed in a chat
+
+Local models appear in the model picker only after you're signed in to your [Kilo account](/docs/desktop/settings/ai#ai-providers), the **Local Model Server** is enabled, and you've imported a model. Check the [Local Model Server](/docs/desktop/settings/ai#local-model-server) settings.
+
+## The agent can't find a file in a gitignored folder
+
+When the agent searches your workspace for files, it skips anything excluded by your `.gitignore`. If a notebook or other file lives in an ignored folder, the agent won't find it by searching — but it can still open and edit the file once you point it there:
+
+- **Open it from the [Files](/docs/desktop/features/files) tab.** The Files tab shows gitignored files and folders, so you can browse to the file and open it directly.
+- **Mention it with `@`** in the chat and select the file from the list.
+- **Give the agent the path**, for example: "Open `data/scratch/analysis.ipynb`."
diff --git a/packages/kilo-docs/pages/desktop/what-you-can-ask.md b/packages/kilo-docs/pages/desktop/what-you-can-ask.md
new file mode 100644
index 00000000000..abb0b478874
--- /dev/null
+++ b/packages/kilo-docs/pages/desktop/what-you-can-ask.md
@@ -0,0 +1,21 @@
+---
+title: "What you can ask"
+description: "Example prompts for Kilo Desktop, mapped to the capability each one uses."
+---
+
+# What you can ask
+
+Kilo Desktop's agent works across the tools in your workspace. Describe what you want in plain language, and the agent uses the matching capability. The table below maps common intents to example prompts and the [feature](/docs/desktop/features) they use.
+
+| What you want | Example prompt | Capability |
+|---|---|---|
+| Analyze data interactively | "Load @sales.csv and plot monthly revenue in a notebook." | [Notebooks](/docs/desktop/features/notebooks) |
+| Look something up on the web | "Open the pandas docs for `groupby` next to this chat." | [In-app browser](/docs/desktop/features/browser) |
+| Review and manage changes | "Show me my uncommitted changes and create a branch for this work." | [Git integration](/docs/desktop/features/git) |
+| Manage Python dependencies | "Create a conda environment with Python 3.12 and install pandas." | [Conda environments](/docs/desktop/features/environments) |
+| Work with workspace files | "Read `src/api.py` and add input validation." | [Files](/docs/desktop/features/files) |
+
+## Tips
+
+- Reference workspace files directly with `@` in the chat to point the agent at a specific file.
+- Keep each chat scoped to one workspace so the agent's tools operate on the right folders. Use the **Select workspace** control in the chat to choose the workspace you want the agent to work in — its file, terminal, and git tools all run inside the folders in that workspace.
diff --git a/packages/kilo-docs/pages/index.tsx b/packages/kilo-docs/pages/index.tsx
index cda1eedb3d4..093e8e212d7 100644
--- a/packages/kilo-docs/pages/index.tsx
+++ b/packages/kilo-docs/pages/index.tsx
@@ -463,14 +463,14 @@ export default function HomePage() {
}
.btn-primary {
- background: #f8f674;
+ background: var(--kilo-yellow);
color: #1a1a18;
- border-color: #f8f674;
+ border-color: var(--kilo-yellow);
}
.btn-primary:hover {
- background: #ffff8d;
- border-color: #ffff8d;
+ background: var(--kilo-yellow-hover);
+ border-color: var(--kilo-yellow-hover);
transform: translateY(-1px);
}
@@ -491,8 +491,8 @@ export default function HomePage() {
}
:global(.dark) .btn-secondary:hover {
- color: #f8f674;
- border-color: #f8f674;
+ color: var(--kilo-yellow);
+ border-color: var(--kilo-yellow);
}
.btn-primary {
diff --git a/packages/kilo-docs/pnpm-lock.yaml b/packages/kilo-docs/pnpm-lock.yaml
index 27b6fd40e64..96daf776b66 100644
--- a/packages/kilo-docs/pnpm-lock.yaml
+++ b/packages/kilo-docs/pnpm-lock.yaml
@@ -4,6 +4,9 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+overrides:
+ katex: 0.19.0
+
importers:
.:
@@ -19,7 +22,7 @@ importers:
version: 0.5.9(@types/react@19.2.18)(react@19.2.8)
'@markdoc/next.js':
specifier: ^0.5.0
- version: 0.5.0(@markdoc/markdoc@0.5.9(@types/react@19.2.18)(react@19.2.8))(next@16.3.6(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
+ version: 0.5.0(@markdoc/markdoc@0.5.9(@types/react@19.2.18)(react@19.2.8))(next@16.3.8(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
'@vscode/codicons':
specifier: ^0.0.44
version: 0.0.44
@@ -33,8 +36,8 @@ importers:
specifier: 11.17.2
version: 11.17.2
next:
- specifier: ^16.3.6
- version: 16.3.6(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ specifier: ^16.3.8
+ version: 16.3.8(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
posthog-js:
specifier: ^1.335.3
version: 1.413.3
@@ -110,160 +113,160 @@ packages:
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
engines: {node: '>=18'}
- '@img/sharp-darwin-arm64@0.35.4':
- resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==}
+ '@img/sharp-darwin-arm64@0.35.5':
+ resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.35.4':
- resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==}
+ '@img/sharp-darwin-x64@0.35.5':
+ resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [darwin]
- '@img/sharp-freebsd-wasm32@0.35.4':
- resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==}
+ '@img/sharp-freebsd-wasm32@0.35.5':
+ resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==}
engines: {node: '>=20.9.0'}
os: [freebsd]
- '@img/sharp-libvips-darwin-arm64@1.3.3':
- resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==}
+ '@img/sharp-libvips-darwin-arm64@1.3.4':
+ resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==}
cpu: [arm64]
os: [darwin]
- '@img/sharp-libvips-darwin-x64@1.3.3':
- resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==}
+ '@img/sharp-libvips-darwin-x64@1.3.4':
+ resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==}
cpu: [x64]
os: [darwin]
- '@img/sharp-libvips-linux-arm64@1.3.3':
- resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==}
+ '@img/sharp-libvips-linux-arm64@1.3.4':
+ resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-arm@1.3.3':
- resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==}
+ '@img/sharp-libvips-linux-arm@1.3.4':
+ resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-ppc64@1.3.3':
- resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==}
+ '@img/sharp-libvips-linux-ppc64@1.3.4':
+ resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-riscv64@1.3.3':
- resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==}
+ '@img/sharp-libvips-linux-riscv64@1.3.4':
+ resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-s390x@1.3.3':
- resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==}
+ '@img/sharp-libvips-linux-s390x@1.3.4':
+ resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-x64@1.3.3':
- resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==}
+ '@img/sharp-libvips-linux-x64@1.3.4':
+ resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
- resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==}
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
+ resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-libvips-linuxmusl-x64@1.3.3':
- resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==}
+ '@img/sharp-libvips-linuxmusl-x64@1.3.4':
+ resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-linux-arm64@0.35.4':
- resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==}
+ '@img/sharp-linux-arm64@0.35.5':
+ resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-arm@0.35.4':
- resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==}
+ '@img/sharp-linux-arm@0.35.5':
+ resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==}
engines: {node: '>=20.9.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-ppc64@0.35.4':
- resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==}
+ '@img/sharp-linux-ppc64@0.35.5':
+ resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==}
engines: {node: '>=20.9.0'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-riscv64@0.35.4':
- resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==}
+ '@img/sharp-linux-riscv64@0.35.5':
+ resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==}
engines: {node: '>=20.9.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-s390x@0.35.4':
- resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==}
+ '@img/sharp-linux-s390x@0.35.5':
+ resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==}
engines: {node: '>=20.9.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-x64@0.35.4':
- resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==}
+ '@img/sharp-linux-x64@0.35.5':
+ resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-linuxmusl-arm64@0.35.4':
- resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==}
+ '@img/sharp-linuxmusl-arm64@0.35.5':
+ resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-linuxmusl-x64@0.35.4':
- resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==}
+ '@img/sharp-linuxmusl-x64@0.35.5':
+ resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-wasm32@0.35.4':
- resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==}
+ '@img/sharp-wasm32@0.35.5':
+ resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==}
engines: {node: '>=20.9.0'}
- '@img/sharp-webcontainers-wasm32@0.35.4':
- resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==}
+ '@img/sharp-webcontainers-wasm32@0.35.5':
+ resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==}
engines: {node: '>=20.9.0'}
cpu: [wasm32]
- '@img/sharp-win32-arm64@0.35.4':
- resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==}
+ '@img/sharp-win32-arm64@0.35.5':
+ resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [win32]
- '@img/sharp-win32-ia32@0.35.4':
- resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==}
+ '@img/sharp-win32-ia32@0.35.5':
+ resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==}
engines: {node: ^20.9.0}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.35.4':
- resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==}
+ '@img/sharp-win32-x64@0.35.5':
+ resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [win32]
@@ -306,57 +309,57 @@ packages:
'@mermaid-js/parser@1.2.1':
resolution: {integrity: sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw==}
- '@next/env@16.3.6':
- resolution: {integrity: sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ==}
+ '@next/env@16.3.8':
+ resolution: {integrity: sha512-Al9zqHVV7TJv0eFuOU4U7Lvv74PTih4Ch63sk2xCIpSTkE3udFnaOcnzP2lQVymiL7yS9Cj2iClUXlR3EQ5sEw==}
- '@next/swc-darwin-arm64@16.3.6':
- resolution: {integrity: sha512-E/7GEqaUkt8mk/T8v9lAnrhzR06kdq1ZBkC12F8tAMkdIadwNp3H1KqHynDHrpcTlGCUdq/qu6vUL2aYVyYBdw==}
+ '@next/swc-darwin-arm64@16.3.8':
+ resolution: {integrity: sha512-2JPRMh2nmQG5CiL7cXGL9AGwnPWJQ//cTtAUCT+w511QHk79SYz3LGv/pc5X643B/WEO0rvu3Yww0hqwt3kgeA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@16.3.6':
- resolution: {integrity: sha512-yBE893/nDWTlaiBD1p+qgt7NUen4U5R6FXyH0s67Npq1S3E0cVSef1WIXC2xBRgQvwAvJq6DnS6Y6PrY0cy4Ew==}
+ '@next/swc-darwin-x64@16.3.8':
+ resolution: {integrity: sha512-GZtCCOBKJ4leVIT/Th0llWKhD1ca92lzbQiS5R5ON9QkoiFnilFsebDae1JU2a3HWoKMEmEZWGs1AGLavVM72Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@16.3.6':
- resolution: {integrity: sha512-KJDpjBqBPYlvkivmyrp+Qys6k/7ksbqGQvRVc6ZEGfR+cjQxx+nUkJaWmNZJsmoOrqYNbaXByF8wa0lBwDhB3Q==}
+ '@next/swc-linux-arm64-gnu@16.3.8':
+ resolution: {integrity: sha512-O659ygeQYqneJ1fBKMpFxIFqYkYswu8IAS1OCKK/4f3ZgJJm1dRz4fVJZRi/kLLWjnBKnebOePA4WNv+sV1pVA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-arm64-musl@16.3.6':
- resolution: {integrity: sha512-mqNg2K+hvWskSRb/QM+Ix412DvBsuSF0XV+frTSw5vmoucNnIlynFwKYew8D01bfATErMOM7Bujrf0BA5DRKFA==}
+ '@next/swc-linux-arm64-musl@16.3.8':
+ resolution: {integrity: sha512-dSjKSyWpzxoO1d3DIZZcP4XJcNaKeLmxQMFOiYl5vuBRMmweIqnAhty8tAmRsvTss779cK1FtYnDMj40e4TQlg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@next/swc-linux-x64-gnu@16.3.6':
- resolution: {integrity: sha512-nFncBNGAYouRHjRVaITs9beZRfhX4ssVwpnvPIAbkZVH6LtGoAVlH4bJ8Cnf9SOo9bsXgPFer/GdHtEE3JNOkw==}
+ '@next/swc-linux-x64-gnu@16.3.8':
+ resolution: {integrity: sha512-lbqOuz3RPRcv+o9msNsJw5x4+Y1ZwPTs6vmL6DCf7i0fZfvng/F59wyeDwqHIvV0mK//RBy/jJkZ+nCKsSMXjQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-x64-musl@16.3.6':
- resolution: {integrity: sha512-5Mf3cHDGR/Iz0ng2Bj3zUR3p5QS9YK3Hn2QiAfavFmyF48zwThAjpFoiTKNIcOHLYS4zEk+gzyJ/9deQ2ZB8yQ==}
+ '@next/swc-linux-x64-musl@16.3.8':
+ resolution: {integrity: sha512-+316WswI8ScVgZeUd+1KGaXkHhaYQzCjvH/05TZSpJ8zBizb1a4G7DtO7F12jcBIqMOtsz9ji1t48fmKtzqsGA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@next/swc-win32-arm64-msvc@16.3.6':
- resolution: {integrity: sha512-0jkJy0C2kbrJWTk4YLa3xk80pVBpx8FCHJym7CnUfDAXe/FWv5qT7SQJbR0KuemyxaEDlEx5WT4VQJoTW+/9Qw==}
+ '@next/swc-win32-arm64-msvc@16.3.8':
+ resolution: {integrity: sha512-ji0gd4kMYUxO+1fJBIbiBVRCjzG/lloiyCccnlebvb1ZJ5qXCPZqYg4Jl1DrrixnWNMKylzgpmMWx0yNDYXlzw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@16.3.6':
- resolution: {integrity: sha512-/YXjI1e5OXcZ7YpxRwgP/1jAV/SBKTzeVKqN2mk7mLpcICsyn3Gl5+dIfDTJp70M0ccMhyMMRso4v6mPDCGepg==}
+ '@next/swc-win32-x64-msvc@16.3.8':
+ resolution: {integrity: sha512-WcTlaKt/TWkh5kUjdJcUmB1XgZ+1c6fz4Y9fDHL73YNSdGaUWjceeWrrlwF0nv19iABYWC4iAq1oX1w4Bn0vfg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -779,14 +782,14 @@ packages:
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+ commander@15.0.0:
+ resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==}
+ engines: {node: '>=22.12.0'}
+
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
- commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
-
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -968,8 +971,8 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
- dompurify@3.4.13:
- resolution: {integrity: sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==}
+ dompurify@3.4.16:
+ resolution: {integrity: sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ==}
electron-to-chromium@1.5.402:
resolution: {integrity: sha512-/oOpMaPT6Yg+6/1XQhyIPlzgj7Ye9zf+nNM2Uh6OcE2G2oNptWazFa+qB2Pdqqbsc9KnIDzgAntoYN0dbwOXwA==}
@@ -1046,8 +1049,8 @@ packages:
resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==}
hasBin: true
- katex@0.16.47:
- resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
+ katex@0.19.0:
+ resolution: {integrity: sha512-v6Tznz3zJ7u3niRCoDTsumM2+HA2XXcCu+WAacCeHD2z3p9A9Ks987o5FzfTGBN0e8A0vjEgIDvLbICrXpdw/Q==}
hasBin: true
khroma@2.1.0:
@@ -1226,8 +1229,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- next@16.3.6:
- resolution: {integrity: sha512-L+otWM/aQbYTx98aZhgEoMb4bZAXx1YVW4UMA/vuCyCoWG5HJyZUili8QAkqzrcC+5///tsz3s0M+SlyB5bLMw==}
+ next@16.3.8:
+ resolution: {integrity: sha512-U7QEZaTini6wKrb8A8hqLLqYQyCetegKjCpJOyxk642vWoMoU1x5PyZCJFvgYgiptA8xc5j/9xYlZFO7w9Sjmw==}
engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
@@ -1340,8 +1343,8 @@ packages:
engines: {node: '>=10'}
hasBin: true
- sharp@0.35.4:
- resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==}
+ sharp@0.35.5:
+ resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==}
engines: {node: '>=20.9.0'}
peerDependencies:
'@types/node': '*'
@@ -1352,8 +1355,8 @@ packages:
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ source-map-js@1.2.2:
+ resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
engines: {node: '>=0.10.0'}
stackback@0.0.2:
@@ -1576,108 +1579,108 @@ snapshots:
'@img/colour@1.1.0':
optional: true
- '@img/sharp-darwin-arm64@0.35.4':
+ '@img/sharp-darwin-arm64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.3.3
+ '@img/sharp-libvips-darwin-arm64': 1.3.4
optional: true
- '@img/sharp-darwin-x64@0.35.4':
+ '@img/sharp-darwin-x64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.3.3
+ '@img/sharp-libvips-darwin-x64': 1.3.4
optional: true
- '@img/sharp-freebsd-wasm32@0.35.4':
+ '@img/sharp-freebsd-wasm32@0.35.5':
dependencies:
- '@img/sharp-wasm32': 0.35.4
+ '@img/sharp-wasm32': 0.35.5
optional: true
- '@img/sharp-libvips-darwin-arm64@1.3.3':
+ '@img/sharp-libvips-darwin-arm64@1.3.4':
optional: true
- '@img/sharp-libvips-darwin-x64@1.3.3':
+ '@img/sharp-libvips-darwin-x64@1.3.4':
optional: true
- '@img/sharp-libvips-linux-arm64@1.3.3':
+ '@img/sharp-libvips-linux-arm64@1.3.4':
optional: true
- '@img/sharp-libvips-linux-arm@1.3.3':
+ '@img/sharp-libvips-linux-arm@1.3.4':
optional: true
- '@img/sharp-libvips-linux-ppc64@1.3.3':
+ '@img/sharp-libvips-linux-ppc64@1.3.4':
optional: true
- '@img/sharp-libvips-linux-riscv64@1.3.3':
+ '@img/sharp-libvips-linux-riscv64@1.3.4':
optional: true
- '@img/sharp-libvips-linux-s390x@1.3.3':
+ '@img/sharp-libvips-linux-s390x@1.3.4':
optional: true
- '@img/sharp-libvips-linux-x64@1.3.3':
+ '@img/sharp-libvips-linux-x64@1.3.4':
optional: true
- '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
optional: true
- '@img/sharp-libvips-linuxmusl-x64@1.3.3':
+ '@img/sharp-libvips-linuxmusl-x64@1.3.4':
optional: true
- '@img/sharp-linux-arm64@0.35.4':
+ '@img/sharp-linux-arm64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.3.3
+ '@img/sharp-libvips-linux-arm64': 1.3.4
optional: true
- '@img/sharp-linux-arm@0.35.4':
+ '@img/sharp-linux-arm@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.3.3
+ '@img/sharp-libvips-linux-arm': 1.3.4
optional: true
- '@img/sharp-linux-ppc64@0.35.4':
+ '@img/sharp-linux-ppc64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-ppc64': 1.3.3
+ '@img/sharp-libvips-linux-ppc64': 1.3.4
optional: true
- '@img/sharp-linux-riscv64@0.35.4':
+ '@img/sharp-linux-riscv64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-riscv64': 1.3.3
+ '@img/sharp-libvips-linux-riscv64': 1.3.4
optional: true
- '@img/sharp-linux-s390x@0.35.4':
+ '@img/sharp-linux-s390x@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.3.3
+ '@img/sharp-libvips-linux-s390x': 1.3.4
optional: true
- '@img/sharp-linux-x64@0.35.4':
+ '@img/sharp-linux-x64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.3.3
+ '@img/sharp-libvips-linux-x64': 1.3.4
optional: true
- '@img/sharp-linuxmusl-arm64@0.35.4':
+ '@img/sharp-linuxmusl-arm64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
optional: true
- '@img/sharp-linuxmusl-x64@0.35.4':
+ '@img/sharp-linuxmusl-x64@0.35.5':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.4
optional: true
- '@img/sharp-wasm32@0.35.4':
+ '@img/sharp-wasm32@0.35.5':
dependencies:
'@emnapi/runtime': 1.11.3
optional: true
- '@img/sharp-webcontainers-wasm32@0.35.4':
+ '@img/sharp-webcontainers-wasm32@0.35.5':
dependencies:
- '@img/sharp-wasm32': 0.35.4
+ '@img/sharp-wasm32': 0.35.5
optional: true
- '@img/sharp-win32-arm64@0.35.4':
+ '@img/sharp-win32-arm64@0.35.5':
optional: true
- '@img/sharp-win32-ia32@0.35.4':
+ '@img/sharp-win32-ia32@0.35.5':
optional: true
- '@img/sharp-win32-x64@0.35.4':
+ '@img/sharp-win32-x64@0.35.5':
optional: true
'@jridgewell/gen-mapping@0.3.13':
@@ -1706,41 +1709,41 @@ snapshots:
'@types/react': 19.2.18
react: 19.2.8
- '@markdoc/next.js@0.5.0(@markdoc/markdoc@0.5.9(@types/react@19.2.18)(react@19.2.8))(next@16.3.6(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
+ '@markdoc/next.js@0.5.0(@markdoc/markdoc@0.5.9(@types/react@19.2.18)(react@19.2.8))(next@16.3.8(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
dependencies:
'@markdoc/markdoc': 0.5.9(@types/react@19.2.18)(react@19.2.8)
js-yaml: 4.3.2
- next: 16.3.6(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ next: 16.3.8(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react: 19.2.8
'@mermaid-js/parser@1.2.1':
dependencies:
'@chevrotain/types': 11.1.2
- '@next/env@16.3.6': {}
+ '@next/env@16.3.8': {}
- '@next/swc-darwin-arm64@16.3.6':
+ '@next/swc-darwin-arm64@16.3.8':
optional: true
- '@next/swc-darwin-x64@16.3.6':
+ '@next/swc-darwin-x64@16.3.8':
optional: true
- '@next/swc-linux-arm64-gnu@16.3.6':
+ '@next/swc-linux-arm64-gnu@16.3.8':
optional: true
- '@next/swc-linux-arm64-musl@16.3.6':
+ '@next/swc-linux-arm64-musl@16.3.8':
optional: true
- '@next/swc-linux-x64-gnu@16.3.6':
+ '@next/swc-linux-x64-gnu@16.3.8':
optional: true
- '@next/swc-linux-x64-musl@16.3.6':
+ '@next/swc-linux-x64-musl@16.3.8':
optional: true
- '@next/swc-win32-arm64-msvc@16.3.6':
+ '@next/swc-win32-arm64-msvc@16.3.8':
optional: true
- '@next/swc-win32-x64-msvc@16.3.6':
+ '@next/swc-win32-x64-msvc@16.3.8':
optional: true
'@oxc-project/types@0.150.0': {}
@@ -1816,7 +1819,7 @@ snapshots:
jiti: 2.7.0
lightningcss: 1.32.0
magic-string: 0.30.21
- source-map-js: 1.2.1
+ source-map-js: 1.2.2
tailwindcss: 4.3.3
'@tailwindcss/oxide-android-arm64@4.3.3':
@@ -2135,9 +2138,9 @@ snapshots:
client-only@0.0.1: {}
- commander@7.2.0: {}
+ commander@15.0.0: {}
- commander@8.3.0: {}
+ commander@7.2.0: {}
convert-source-map@2.0.0: {}
@@ -2345,7 +2348,7 @@ snapshots:
detect-libc@2.1.2: {}
- dompurify@3.4.13:
+ dompurify@3.4.16:
optionalDependencies:
'@types/trusted-types': 2.0.7
@@ -2403,9 +2406,9 @@ snapshots:
dependencies:
argparse: 2.0.1
- katex@0.16.47:
+ katex@0.19.0:
dependencies:
- commander: 8.3.0
+ commander: 15.0.0
khroma@2.1.0: {}
@@ -2533,10 +2536,10 @@ snapshots:
d3-sankey: 0.12.3
dagre-d3-es: 7.0.14
dayjs: 1.11.21
- dompurify: 3.4.13
+ dompurify: 3.4.16
es-toolkit: 1.50.0
fastdom: 1.0.12
- katex: 0.16.47
+ katex: 0.19.0
khroma: 2.1.0
marked: 16.4.2
roughjs: 4.6.6
@@ -2546,9 +2549,9 @@ snapshots:
nanoid@3.3.19: {}
- next@16.3.6(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ next@16.3.8(@types/node@25.9.5)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- '@next/env': 16.3.6
+ '@next/env': 16.3.8
'@swc/helpers': 0.5.23
baseline-browser-mapping: 2.11.25
caniuse-lite: 1.0.30001810
@@ -2557,15 +2560,15 @@ snapshots:
react-dom: 19.2.8(react@19.2.8)
styled-jsx: 5.1.6(react@19.2.8)
optionalDependencies:
- '@next/swc-darwin-arm64': 16.3.6
- '@next/swc-darwin-x64': 16.3.6
- '@next/swc-linux-arm64-gnu': 16.3.6
- '@next/swc-linux-arm64-musl': 16.3.6
- '@next/swc-linux-x64-gnu': 16.3.6
- '@next/swc-linux-x64-musl': 16.3.6
- '@next/swc-win32-arm64-msvc': 16.3.6
- '@next/swc-win32-x64-msvc': 16.3.6
- sharp: 0.35.4(@types/node@25.9.5)
+ '@next/swc-darwin-arm64': 16.3.8
+ '@next/swc-darwin-x64': 16.3.8
+ '@next/swc-linux-arm64-gnu': 16.3.8
+ '@next/swc-linux-arm64-musl': 16.3.8
+ '@next/swc-linux-x64-gnu': 16.3.8
+ '@next/swc-linux-x64-musl': 16.3.8
+ '@next/swc-win32-arm64-msvc': 16.3.8
+ '@next/swc-win32-x64-msvc': 16.3.8
+ sharp: 0.35.5(@types/node@25.9.5)
transitivePeerDependencies:
- '@babel/core'
- '@types/node'
@@ -2598,13 +2601,13 @@ snapshots:
dependencies:
nanoid: 3.3.19
picocolors: 1.1.1
- source-map-js: 1.2.1
+ source-map-js: 1.2.2
postcss@8.5.28:
dependencies:
nanoid: 3.3.19
picocolors: 1.1.1
- source-map-js: 1.2.1
+ source-map-js: 1.2.2
posthog-js@1.413.3:
dependencies:
@@ -2612,7 +2615,7 @@ snapshots:
'@posthog/core': 1.46.9
'@posthog/types': 1.402.2
core-js: 3.50.0
- dompurify: 3.4.13
+ dompurify: 3.4.16
fflate: 0.4.9
preact: 10.29.8
query-selector-shadow-dom: 1.0.1
@@ -2673,43 +2676,43 @@ snapshots:
semver@7.8.5:
optional: true
- sharp@0.35.4(@types/node@25.9.5):
+ sharp@0.35.5(@types/node@25.9.5):
dependencies:
'@img/colour': 1.1.0
detect-libc: 2.1.2
semver: 7.8.5
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.35.4
- '@img/sharp-darwin-x64': 0.35.4
- '@img/sharp-freebsd-wasm32': 0.35.4
- '@img/sharp-libvips-darwin-arm64': 1.3.3
- '@img/sharp-libvips-darwin-x64': 1.3.3
- '@img/sharp-libvips-linux-arm': 1.3.3
- '@img/sharp-libvips-linux-arm64': 1.3.3
- '@img/sharp-libvips-linux-ppc64': 1.3.3
- '@img/sharp-libvips-linux-riscv64': 1.3.3
- '@img/sharp-libvips-linux-s390x': 1.3.3
- '@img/sharp-libvips-linux-x64': 1.3.3
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
- '@img/sharp-libvips-linuxmusl-x64': 1.3.3
- '@img/sharp-linux-arm': 0.35.4
- '@img/sharp-linux-arm64': 0.35.4
- '@img/sharp-linux-ppc64': 0.35.4
- '@img/sharp-linux-riscv64': 0.35.4
- '@img/sharp-linux-s390x': 0.35.4
- '@img/sharp-linux-x64': 0.35.4
- '@img/sharp-linuxmusl-arm64': 0.35.4
- '@img/sharp-linuxmusl-x64': 0.35.4
- '@img/sharp-webcontainers-wasm32': 0.35.4
- '@img/sharp-win32-arm64': 0.35.4
- '@img/sharp-win32-ia32': 0.35.4
- '@img/sharp-win32-x64': 0.35.4
+ '@img/sharp-darwin-arm64': 0.35.5
+ '@img/sharp-darwin-x64': 0.35.5
+ '@img/sharp-freebsd-wasm32': 0.35.5
+ '@img/sharp-libvips-darwin-arm64': 1.3.4
+ '@img/sharp-libvips-darwin-x64': 1.3.4
+ '@img/sharp-libvips-linux-arm': 1.3.4
+ '@img/sharp-libvips-linux-arm64': 1.3.4
+ '@img/sharp-libvips-linux-ppc64': 1.3.4
+ '@img/sharp-libvips-linux-riscv64': 1.3.4
+ '@img/sharp-libvips-linux-s390x': 1.3.4
+ '@img/sharp-libvips-linux-x64': 1.3.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.4
+ '@img/sharp-linux-arm': 0.35.5
+ '@img/sharp-linux-arm64': 0.35.5
+ '@img/sharp-linux-ppc64': 0.35.5
+ '@img/sharp-linux-riscv64': 0.35.5
+ '@img/sharp-linux-s390x': 0.35.5
+ '@img/sharp-linux-x64': 0.35.5
+ '@img/sharp-linuxmusl-arm64': 0.35.5
+ '@img/sharp-linuxmusl-x64': 0.35.5
+ '@img/sharp-webcontainers-wasm32': 0.35.5
+ '@img/sharp-win32-arm64': 0.35.5
+ '@img/sharp-win32-ia32': 0.35.5
+ '@img/sharp-win32-x64': 0.35.5
'@types/node': 25.9.5
optional: true
siginfo@2.0.0: {}
- source-map-js@1.2.1: {}
+ source-map-js@1.2.2: {}
stackback@0.0.2: {}
diff --git a/packages/kilo-docs/pnpm-workspace.yaml b/packages/kilo-docs/pnpm-workspace.yaml
index 55f54edf1dd..a08cc2aa919 100644
--- a/packages/kilo-docs/pnpm-workspace.yaml
+++ b/packages/kilo-docs/pnpm-workspace.yaml
@@ -1,2 +1,6 @@
allowBuilds:
core-js: true
+
+# mermaid still pins katex ^0.16, which is affected by GHSA-238p-pmpm-9mq7.
+overrides:
+ katex: 0.19.0
diff --git a/packages/kilo-docs/public/favicon/favicon.ico b/packages/kilo-docs/public/favicon/favicon.ico
index 777c633b0b5..78f8647c16f 100644
Binary files a/packages/kilo-docs/public/favicon/favicon.ico and b/packages/kilo-docs/public/favicon/favicon.ico differ
diff --git a/packages/kilo-docs/public/favicon/favicon.svg b/packages/kilo-docs/public/favicon/favicon.svg
index 88982e215b7..038ae57b66c 100644
--- a/packages/kilo-docs/public/favicon/favicon.svg
+++ b/packages/kilo-docs/public/favicon/favicon.svg
@@ -1,6 +1,6 @@