diff --git a/.github/workflows/cd-rust-cua-driver.yml b/.github/workflows/cd-rust-cua-driver.yml index afa837bf97..b642f7ddaa 100644 --- a/.github/workflows/cd-rust-cua-driver.yml +++ b/.github/workflows/cd-rust-cua-driver.yml @@ -1,6 +1,6 @@ name: "CD: Cua Driver (cross-platform)" -# Matches the artifact convention from cd-swift-cua-driver.yml: +# Rust implementation release workflow — cross-platform (Windows/Linux/macOS): # - macOS: ONE universal binary tarball + bare universal binary # (lipo arm64 + x86_64 in a single job, no separate per-arch matrix) # - Windows: cua-driver.exe bare + .zip @@ -251,8 +251,7 @@ jobs: APPLICATION_CERT_BASE64: ${{ secrets.APPLICATION_CERT_BASE64 }} CERT_PASSWORD: ${{ secrets.CERT_PASSWORD }} run: | - # Create a temporary keychain just for this job (mirrors the - # pattern from cd-swift-cua-driver.yml). The keychain is torn + # Create a temporary keychain just for this job. The keychain is torn # down with the runner when the job exits. security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain security default-keychain -s build.keychain @@ -325,14 +324,8 @@ jobs: # tarball so install.sh can `ditto` it to # /Applications/CuaDriver.app for the TCC auto-relaunch path. # - # No codesigning at this layer — the bundle ships ad-hoc - # signed (the bare binary inherits whatever signature was - # applied at build/notarize time, currently none for the - # Rust port). TCC keys grants on the cdhash of the binary - # the user grants permission to, so ad-hoc is fine for the - # BETA release; production signing will land in a separate - # change that wires up the notarization script the way the - # Swift driver does. + # The bundle ships unsigned (notarization happens in the next step). + # TCC keys grants on the bundle identity (com.trycua.driver). VERSION="${{ steps.version.outputs.version }}" mkdir -p release/CuaDriver.app cp -R scripts/CuaDriverBundle/Contents release/CuaDriver.app/Contents @@ -503,9 +496,8 @@ jobs: cp libs/cua-driver/scripts/_install-rust.sh release-upload/_install-rust.sh # Uninstaller scripts — single canonical file per shell (no - # `_uninstall-rust.sh` helper). uninstall.sh handles Rust by - # default and keeps an explicit --backend=swift legacy path for - # retired macOS installs. uninstall.ps1 is the Windows uninstaller + # `_uninstall-rust.sh` helper). uninstall.sh handles Rust (the only + # supported backend). uninstall.ps1 is the Windows uninstaller # and self-elevates via UAC when an -AutoStart install # (RunLevel=Highest task) needs to be torn down. cp libs/cua-driver/scripts/uninstall.sh release-upload/uninstall.sh diff --git a/.github/workflows/cd-swift-cua-driver.yml b/.github/workflows/cd-swift-cua-driver.yml deleted file mode 100644 index 4e498fc459..0000000000 --- a/.github/workflows/cd-swift-cua-driver.yml +++ /dev/null @@ -1,425 +0,0 @@ -name: "CD: Cua Driver (macOS)" - -on: - push: - tags: - - "cua-driver-v*" - workflow_dispatch: - inputs: - version: - description: "Version to notarize (without v prefix)" - required: true - default: "0.0.1" - workflow_call: - inputs: - version: - description: "Version to notarize" - required: true - type: string - secrets: - APPLICATION_CERT_BASE64: - required: true - INSTALLER_CERT_BASE64: - required: true - CERT_PASSWORD: - required: true - APPLE_ID: - required: true - TEAM_ID: - required: true - APP_SPECIFIC_PASSWORD: - required: true - DEVELOPER_NAME: - required: true - -permissions: - contents: write - -env: - APPLICATION_CERT_BASE64: ${{ secrets.APPLICATION_CERT_BASE64 }} - INSTALLER_CERT_BASE64: ${{ secrets.INSTALLER_CERT_BASE64 }} - CERT_PASSWORD: ${{ secrets.CERT_PASSWORD }} - APPLE_ID: ${{ secrets.APPLE_ID }} - TEAM_ID: ${{ secrets.TEAM_ID }} - APP_SPECIFIC_PASSWORD: ${{ secrets.APP_SPECIFIC_PASSWORD }} - DEVELOPER_NAME: ${{ secrets.DEVELOPER_NAME }} - -jobs: - # Build on macos-15 (Apple Silicon). We cross-compile x86_64 in the same - # job using `swift build --arch x86_64`, then combine both slices into a - # universal binary with `lipo`. This avoids needing a separate Intel runner - # (macos-13 only has Xcode 15.x which cannot build swift-tools-version: 6.0). - notarize: - runs-on: macos-15 - outputs: - sha256_checksums: ${{ steps.generate_checksums.outputs.checksums }} - version: ${{ steps.set_version.outputs.version }} - steps: - - uses: actions/checkout@v4 - - - name: Select Xcode 16.3 - run: | - sudo xcode-select -s /Applications/Xcode_16.3.app - xcodebuild -version - - - name: Install dependencies - run: | - brew install cpio - - - name: Create .release directory - run: mkdir -p .release - - - name: Set version - id: set_version - run: | - # Determine version from tag or input - if [[ "$GITHUB_REF" == refs/tags/cua-driver-v* ]]; then - VERSION="${GITHUB_REF#refs/tags/cua-driver-v}" - echo "Using version from tag: $VERSION" - elif [[ -n "${{ inputs.version }}" ]]; then - VERSION="${{ inputs.version }}" - echo "Using version from input: $VERSION" - else - echo "Error: No version found in tag or input" - exit 1 - fi - - # Update version in CuaDriverCore.swift (powers `cua-driver --version`) - echo "Updating version in CuaDriverCore.swift to $VERSION" - sed -i '' "s/public static let version = \".*\"/public static let version = \"$VERSION\"/" libs/cua-driver/Sources/CuaDriverCore/CuaDriverCore.swift - - # Set output for later steps - echo "version=$VERSION" >> $GITHUB_OUTPUT - - - name: Import Certificates - env: - APPLICATION_CERT_BASE64: ${{ secrets.APPLICATION_CERT_BASE64 }} - INSTALLER_CERT_BASE64: ${{ secrets.INSTALLER_CERT_BASE64 }} - CERT_PASSWORD: ${{ secrets.CERT_PASSWORD }} - KEYCHAIN_PASSWORD: "temp_password" - run: | - # Create a temporary keychain - security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain - security set-keychain-settings -t 3600 -l build.keychain - - # Import certificates - echo $APPLICATION_CERT_BASE64 | base64 --decode > application.p12 - echo $INSTALLER_CERT_BASE64 | base64 --decode > installer.p12 - - # Import certificates silently (minimize output) - security import application.p12 -k build.keychain -P "$CERT_PASSWORD" -T /usr/bin/codesign -T /usr/bin/pkgbuild > /dev/null 2>&1 - security import installer.p12 -k build.keychain -P "$CERT_PASSWORD" -T /usr/bin/codesign -T /usr/bin/pkgbuild > /dev/null 2>&1 - - # Allow codesign to access the certificates (minimal output) - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain > /dev/null 2>&1 - - # Verify certificates were imported - echo "Verifying signing identities..." - CERT_COUNT=$(security find-identity -v -p codesigning build.keychain | grep -c "Developer ID Application" || echo "0") - INSTALLER_COUNT=$(security find-identity -v build.keychain | grep -c "Developer ID Installer" || echo "0") - - if [ "$CERT_COUNT" -eq 0 ]; then - echo "Error: No Developer ID Application certificate found" - security find-identity -v -p codesigning build.keychain - exit 1 - fi - - if [ "$INSTALLER_COUNT" -eq 0 ]; then - echo "Error: No Developer ID Installer certificate found" - security find-identity -v build.keychain - exit 1 - fi - - echo "Found $CERT_COUNT Developer ID Application certificate(s) and $INSTALLER_COUNT Developer ID Installer certificate(s)" - echo "All required certificates verified successfully" - - # Clean up certificate files - rm application.p12 installer.p12 - - - name: Build arm64 + x86_64 and create universal binary - id: build_universal - env: - APPLE_ID: ${{ secrets.APPLE_ID }} - TEAM_ID: ${{ secrets.TEAM_ID }} - APP_SPECIFIC_PASSWORD: ${{ secrets.APP_SPECIFIC_PASSWORD }} - CERT_APPLICATION_NAME: "Developer ID Application: ${{ secrets.DEVELOPER_NAME }} (${{ secrets.TEAM_ID }})" - CERT_INSTALLER_NAME: "Developer ID Installer: ${{ secrets.DEVELOPER_NAME }} (${{ secrets.TEAM_ID }})" - VERSION: ${{ steps.set_version.outputs.version }} - working-directory: ./libs/cua-driver - run: | - echo "Building version: $VERSION" - mkdir -p .release - chmod 755 .release - - # Build arm64 (native on macos-15) - echo "Building arm64..." - swift build --configuration release --arch arm64 > build-arm64.log 2>&1 - echo "arm64 build complete." - - # Cross-compile x86_64 using the same Xcode 16 toolchain - echo "Cross-compiling x86_64..." - swift build --configuration release --arch x86_64 > build-x86_64.log 2>&1 - echo "x86_64 build complete." - - ARM64_BIN=".build/arm64-apple-macosx/release/cua-driver" - X86_BIN=".build/x86_64-apple-macosx/release/cua-driver" - - if [ ! -f "$ARM64_BIN" ] || [ ! -f "$X86_BIN" ]; then - echo "Error: expected binaries not found" - ls .build/*/release/cua-driver 2>/dev/null || true - exit 1 - fi - - # Create universal binary - echo "Creating universal binary..." - lipo -create "$ARM64_BIN" "$X86_BIN" -output .build/cua-driver-universal - lipo -info .build/cua-driver-universal - - # Pass the universal binary to the notarization script so it is - # embedded in the .app (and therefore the tarballs) from the start. - # Without this the script rebuilds arm64-only from source, packages - # it into the tarball, and the post-hoc binary swap comes too late. - export CUA_DRIVER_PREBUILT_BINARY="$(pwd)/.build/cua-driver-universal" - - chmod +x scripts/build/build-release-notarized.sh - cd scripts/build - LOG_LEVEL=minimal ./build-release-notarized.sh - # Return from libs/cua-driver/scripts/build back to libs/cua-driver - cd ../.. - - echo "Verifying universal binary in packaged .app..." - APP_BINARY=".release/CuaDriver.app/Contents/MacOS/cua-driver" - if [ -f "$APP_BINARY" ]; then - lipo -info "$APP_BINARY" - fi - - echo "Files in .release directory:" - find .release -type f -name "*.tar.gz" -o -name "*.pkg.tar.gz" - - VERSION_OUT="${VERSION}" - echo "arm64_tarball_path=.release/cua-driver-${VERSION_OUT}-darwin-arm64.tar.gz" >> $GITHUB_OUTPUT - echo "x86_tarball_path=.release/cua-driver-${VERSION_OUT}-darwin-x86_64.tar.gz" >> $GITHUB_OUTPUT - echo "pkg_path=.release/cua-driver-${VERSION_OUT}-darwin-arm64.pkg.tar.gz" >> $GITHUB_OUTPUT - - - name: Package per-arch tarballs - working-directory: ./libs/cua-driver/.release - env: - VERSION: ${{ steps.set_version.outputs.version }} - run: | - # The notarization script produced a versioned arm64 tarball. - # Also produce an x86_64 tarball using the same .app (now universal). - # Callers that download by arch name get the same universal binary. - ARM64_TAR="cua-driver-${VERSION}-darwin-arm64.tar.gz" - X86_TAR="cua-driver-${VERSION}-darwin-x86_64.tar.gz" - UNIVERSAL_TAR="cua-driver-${VERSION}-darwin-universal.tar.gz" - - # Rename existing tarball to arm64 if needed. - # Exclude *.pkg.tar.gz — they end in .tar.gz too and sort first, - # which caused the pkg tarball to overwrite the app tarball. - EXISTING=$(ls cua-driver-"${VERSION}"-darwin-*.tar.gz 2>/dev/null | grep -v '\.pkg\.tar\.gz' | head -1) - if [ -n "$EXISTING" ] && [ "$EXISTING" != "$ARM64_TAR" ]; then - mv "$EXISTING" "$ARM64_TAR" - fi - - # x86_64 and universal tarballs are identical (same universal binary inside) - cp "$ARM64_TAR" "$X86_TAR" - cp "$ARM64_TAR" "$UNIVERSAL_TAR" - - # Convenience aliases (always-latest links) - ln -sf "$UNIVERSAL_TAR" "cua-driver-darwin.tar.gz" - ln -sf "$UNIVERSAL_TAR" "cua-driver.tar.gz" - - echo "Tarballs:" - ls -lh cua-driver-*.tar.gz - - - name: Upload build logs on failure - if: failure() && steps.build_universal.outcome == 'failure' - uses: actions/upload-artifact@v4 - with: - name: swift-build-logs - path: | - ./libs/cua-driver/build-arm64.log - ./libs/cua-driver/build-x86_64.log - retention-days: 7 - - - name: Generate SHA256 Checksums - id: generate_checksums - working-directory: ./libs/cua-driver/.release - run: | - # Use existing checksums file if it exists, otherwise generate one - if [ -f "checksums.txt" ]; then - echo "Using existing checksums file" - cat checksums.txt - else - echo "## SHA256 Checksums" > checksums.txt - echo '```' >> checksums.txt - shasum -a 256 cua-driver-*.tar.gz >> checksums.txt - echo '```' >> checksums.txt - fi - - checksums=$(cat checksums.txt) - echo "checksums<> $GITHUB_OUTPUT - echo "$checksums" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "All files in release directory:" - ls -la - - - name: Package bare binary - working-directory: ./libs/cua-driver/.release - run: | - VERSION=${{ steps.set_version.outputs.version }} - - # Bare binary is the universal one we injected into the .app. - BINARY="CuaDriver.app/Contents/MacOS/cua-driver" - if [ -f "$BINARY" ]; then - tar -czf "cua-driver-${VERSION}-darwin-universal-binary.tar.gz" -C "CuaDriver.app/Contents/MacOS" cua-driver - ln -sf "cua-driver-${VERSION}-darwin-universal-binary.tar.gz" "cua-driver-binary.tar.gz" - echo "Universal bare binary packaged." - else - echo "Warning: binary not found at $BINARY" - fi - - # .release/ is in .gitignore, so actions/upload-artifact's @actions/glob - # would exclude every file inside it. Stage the release artifacts in a - # git-tracked directory so the glob finds them. - - name: Stage release artifacts for upload - env: - VERSION: ${{ steps.set_version.outputs.version }} - run: | - mkdir -p release-upload - cp libs/cua-driver/.release/cua-driver-"${VERSION}"-darwin-*.tar.gz \ - libs/cua-driver/.release/cua-driver-"${VERSION}"-darwin-*.pkg.tar.gz \ - release-upload/ 2>/dev/null || true - # Bare binary (may not exist if the .app binary was missing) - cp libs/cua-driver/.release/cua-driver-"${VERSION}"-darwin-universal-binary.tar.gz \ - release-upload/ 2>/dev/null || true - echo "Staged files:" - ls -lh release-upload/ - - - name: Upload Notarized Package (Tarball) - uses: actions/upload-artifact@v4 - with: - name: cua-driver-notarized-tarball - # Single-wildcard glob — double-star patterns are unreliable in - # @actions/glob. Exclude .pkg.tar.gz with a negation pattern since - # those also end in .tar.gz. - path: | - release-upload/*.tar.gz - !release-upload/*.pkg.tar.gz - if-no-files-found: error - - - name: Upload Notarized Package (Installer) - uses: actions/upload-artifact@v4 - with: - name: cua-driver-notarized-installer - path: release-upload/*.pkg.tar.gz - if-no-files-found: error - - - name: Upload Bare Binary - uses: actions/upload-artifact@v4 - with: - name: cua-driver-bare-binary - path: release-upload/cua-driver-*-binary.tar.gz - if-no-files-found: warn - - - name: Generate path-filtered release notes - if: startsWith(github.ref, 'refs/tags/cua-driver-v') - id: release-notes - run: | - # Find previous cua-driver tag - PREV_TAG=$(git tag -l "cua-driver-v*" --sort=-v:refname | grep -v "^${{ github.ref_name }}$" | head -n 1 || echo "") - - echo "Current tag: ${{ github.ref_name }}" - echo "Previous tag: $PREV_TAG" - - # Generate release notes filtered by libs/cua-driver path - if [ -n "$PREV_TAG" ]; then - echo "Generating notes for commits between $PREV_TAG and HEAD in libs/cua-driver" - NOTES=$(git log ${PREV_TAG}..HEAD --pretty=format:"* %s (%h) by @%an" -- "libs/cua-driver" | head -50) - else - echo "No previous tag found, generating notes for recent commits in libs/cua-driver" - NOTES=$(git log --pretty=format:"* %s (%h) by @%an" -- "libs/cua-driver" | head -50) - fi - - if [ -z "$NOTES" ]; then - NOTES="* Initial release or no path-specific changes found" - fi - - # Store notes in output - echo "RELEASE_NOTES<> $GITHUB_OUTPUT - echo "## What's Changed" >> $GITHUB_OUTPUT - echo "" >> $GITHUB_OUTPUT - echo "$NOTES" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - - name: Create Release - if: startsWith(github.ref, 'refs/tags/cua-driver-v') - uses: softprops/action-gh-release@v3 - with: - files: | - release-upload/*.tar.gz - release-upload/*.pkg.tar.gz - body: | - ${{ steps.release-notes.outputs.RELEASE_NOTES }} - - ${{ steps.generate_checksums.outputs.checksums }} - - ### Installation with script - - ```bash - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh)" - ``` - - > Supports Apple Silicon (arm64) and Intel (x86_64) — the release tarball contains a universal binary. - generate_release_notes: false - make_latest: true - - # The bump-version workflow uses this same GitHub App so its pushes - # bypass the "Changes must be made through a pull request" ruleset - # on main. The default GITHUB_TOKEN (github-actions[bot]) is NOT on - # the bypass list and gets rejected here. Mirror the bump workflow's - # auth setup so the bake-version push lands. - - name: Generate GitHub App token (for bake-version push) - id: app-token - if: startsWith(github.ref, 'refs/tags/cua-driver-v') - uses: actions/create-github-app-token@v1 - with: - app-id: ${{ secrets.RELEASE_APP_ID }} - private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }} - owner: ${{ github.repository_owner }} - repositories: ${{ github.event.repository.name }} - - - name: Bake version into install.sh - if: startsWith(github.ref, 'refs/tags/cua-driver-v') - env: - VERSION: ${{ steps.set_version.outputs.version }} - GH_TOKEN: ${{ steps.app-token.outputs.token }} - run: | - # Re-authenticate the origin remote with the app token so the - # push uses the bypass-enabled identity, not the default - # github-actions[bot] credentials baked in by actions/checkout. - # - # actions/checkout sets `http.https://github.com/.extraheader` - # with the default GITHUB_TOKEN; that header otherwise overrides - # the URL-embedded App token on the push (two Authorization - # headers sent → server takes the extraheader → push rejected - # by the main-branch ruleset). Drop it so only the App token's - # auth survives. - git config --unset-all "http.https://github.com/.extraheader" || true - git remote set-url origin "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" - git fetch origin main - git checkout -B bake-version origin/main - - # Replace the baked version line inside the sentinel block. - sed -i '' \ - "s/^CUA_DRIVER_BAKED_VERSION=.*/CUA_DRIVER_BAKED_VERSION=\"${VERSION}\"/" \ - libs/cua-driver/scripts/install.sh - - git config user.name "trycua-release[bot]" - git config user.email "trycua-release[bot]@users.noreply.github.com" - git add libs/cua-driver/scripts/install.sh - git commit -m "chore(cua-driver): bake version ${VERSION} into install.sh [skip ci]" - git push origin bake-version:main diff --git a/.github/workflows/ci-swift-cua-driver.yml b/.github/workflows/ci-swift-cua-driver.yml deleted file mode 100644 index 5243f0b159..0000000000 --- a/.github/workflows/ci-swift-cua-driver.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: "CI: Cua Driver" -on: - pull_request: - paths: - - "libs/cua-driver/**" - - ".github/workflows/ci-swift-cua-driver.yml" - -concurrency: - group: cua-driver-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -# Runner images: https://github.com/actions/runner-images - -jobs: - test: - name: Test - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - run: uname -a - - run: sudo xcode-select -s /Applications/Xcode_16.3.app # Swift 6.1 - - run: swift test - working-directory: ./libs/cua-driver/swift - build: - name: Release build - runs-on: macos-15 - steps: - - uses: actions/checkout@v4 - - run: uname -a - - run: sudo xcode-select -s /Applications/Xcode_16.3.app # Swift 6.1 - - run: swift build --configuration release - working-directory: ./libs/cua-driver/swift diff --git a/Package.swift b/Package.swift deleted file mode 100644 index 67463b058d..0000000000 --- a/Package.swift +++ /dev/null @@ -1,60 +0,0 @@ -// swift-tools-version: 6.0 -import PackageDescription - -// Root shim: re-exports CuaDriverCore and CuaDriverServer so Swift packages -// can consume them directly from the trycua/cua monorepo without knowing the -// internal layout. Sources live in libs/cua-driver/swift/Sources/; this file -// uses path: to forward there. -// -// IMPORTANT — SPM version resolution: -// SPM's `from:` / `upToNextMajor` only recognises semver tags ("0.1.0", -// "v0.1.0"). This repo uses "cua-driver-v*" tags for the CLI releases, which -// SPM cannot parse. Until plain semver tags are published, pin by revision: -// -// .package(url: "https://github.com/trycua/cua.git", .revision("cua-driver-v0.1.0")) -// -// When the repo starts publishing semver tags alongside the CLI tags, use: -// -// .package(url: "https://github.com/trycua/cua.git", from: "0.1.0") -// -// Then in your target's dependencies: -// -// .product(name: "CuaDriverCore", package: "cua") // AX, input, capture, recording -// .product(name: "CuaDriverServer", package: "cua") // MCP tool handlers + daemon layer - -let package = Package( - name: "cua", - platforms: [.macOS(.v14)], - products: [ - // Accessibility, input, capture, app-launch, recording primitives. - // No external dependencies — system frameworks only. - .library(name: "CuaDriverCore", targets: ["CuaDriverCore"]), - - // MCP tool handlers and daemon server built on top of CuaDriverCore. - // Depends on modelcontextprotocol/swift-sdk for the MCP protocol types. - .library(name: "CuaDriverServer", targets: ["CuaDriverServer"]), - ], - dependencies: [ - .package( - url: "https://github.com/modelcontextprotocol/swift-sdk.git", - from: "0.9.0" - ), - ], - targets: [ - // NOTE: if libs/cua-driver/swift/Package.swift ever gains resources:, - // swiftSettings:, linkerSettings:, or exclude: on these targets, - // mirror those changes here to avoid a silent build mismatch. - .target( - name: "CuaDriverCore", - path: "libs/cua-driver/swift/Sources/CuaDriverCore" - ), - .target( - name: "CuaDriverServer", - dependencies: [ - "CuaDriverCore", - .product(name: "MCP", package: "swift-sdk"), - ], - path: "libs/cua-driver/swift/Sources/CuaDriverServer" - ), - ] -) diff --git a/docs/README.md b/docs/README.md index 18ddff9a91..97b8a8ac82 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,5 +1,7 @@ # docs +Production docs are served from https://cua.ai/docs; this app is now a local MDX preview only. + This is a Next.js application generated with [Create Fumadocs](https://github.com/fuma-nama/fumadocs). diff --git a/docs/content/docs/explanation/capture-and-dispatch-modalities.mdx b/docs/content/docs/explanation/capture-and-dispatch-modalities.mdx index 1aee5f55cc..ea76bf6f97 100644 --- a/docs/content/docs/explanation/capture-and-dispatch-modalities.mdx +++ b/docs/content/docs/explanation/capture-and-dispatch-modalities.mdx @@ -1,39 +1,49 @@ --- title: "Capture and Dispatch Modalities" -description: "The three independent axes that define how Cua Driver observes and acts on an app — capture mode, dispatch, and capture scope — and which combinations are valid." +description: "How Cua Driver observes and acts on an app — perception always returns both the accessibility tree and a screenshot, the action rung (ax or px) is chosen at action time, plus dispatch and capture scope — and which combinations are valid." --- # Capture and Dispatch Modalities -Every Cua Driver action is defined by three independent choices: **what the agent observes**, **how input is delivered**, and **what coordinate space the action targets**. These are the *modalities*. Most callers never set them — the defaults give background, per-window, accessibility-first automation. This page documents the full set so you can reason about the combinations that are valid and the ones the driver rejects by design. +Every Cua Driver action is shaped by four things: **what the agent observes**, **which rung dispatches the action**, **how input is delivered**, and **what coordinate space the action targets**. Most callers never set any of them — the defaults give background, per-window, accessibility-first automation. The key change from earlier versions: perception is no longer a mode you pick. `get_window_state` returns *both* the accessibility tree and a screenshot in one call, and the `ax`-versus-`px` choice is made at action time, by how you address the target. This page documents the full set so you can reason about the combinations that are valid and the ones the driver rejects by design. -## The Three Axes +## The Axes -### 1. Capture mode — what the agent observes +### 1. Perception — what the agent observes -Set with `set_config capture_mode=…`, or per call on `get_window_state`. +`get_window_state(pid, window_id)` returns **both the accessibility tree and a screenshot by default**, in one call. There is no capture mode to pick: you ground on the tree and the screenshot together and cross-check one against the other. This matters because the tree *lies* on some surfaces: it can expose useful structure while still echoing a write the app did not apply, omitting the rendered value, or reporting geometry that disagrees with the pixels. A grounding screenshot is always present, so when the tree looks wrong you check the pixels in the *same* response. -| `capture_mode` | What you get | Use when | -|---|---|---| -| `som` (default) | Set-of-marks: accessibility tree **plus** a screenshot, every actionable element tagged `[element_index N]`. | General driving — the model sees both structure and pixels. | -| `ax` | Accessibility tree only, no screenshot. | The target exposes good structure and you want the cheapest, most robust path. No Screen Recording grant needed. | -| `vision` | Screenshot only, no tree. | The target has no usable accessibility tree (canvas, custom-drawn UI, pure web content). | +The accessibility tree is the ground truth for *what is clickable* — roles, labels, advertised actions, and an `element_index` handle on every actionable element. The screenshot tells you *which one*, disambiguates repeated or empty labels, and surfaces captions, colors, and layout the tree omits entirely (common in Chromium and Electron). They are complementary, which is why both come back together. + +> **Perf opt-out — `include_screenshot`.** `include_screenshot` (boolean, default `true`) is the one knob, and it is a **performance** knob, not a modality choice. The default returns both. Pass `include_screenshot: false` to skip the screen grab and get the tree only — the cheap path when you are re-indexing before an element ax action and don't need fresh pixels. The `ax`-versus-`px` decision still lives at action time, not here. + +> **`capture_mode` is deprecated and ignored.** It is still *accepted* on `get_window_state` so old callers don't error, but it has **no effect** — both the tree and the screenshot come back regardless of what you pass. The old `ax` / `vision` / `som` / `screenshot` values all decode (`som` mapped to `ax`, `screenshot` to `vision`) but none changes what is captured. There is no capture-mode choice anymore; perception is always both. (The separately named `screenshot` tool — raw PNG, no AX walk — is unrelated.) + +### 2. Action rung — how the target is addressed + +You don't pick a capture mode; you pick **how you address the target** on the action call, and that one choice selects the rung: + +| Rung | Address with | Dispatches through | Properties | +|---|---|---|---| +| **element ax action** | `element_index` / `element_token` | the accessibility rung — UIA Invoke (Windows), `AXPerformAction` (macOS), AT-SPI `doAction` (Linux) | Backgroundable, z-order-independent, and the only **driver-verifiable** rung. | +| **element px action** | `x, y` | the pixel rung, reading the coordinate straight off the screenshot already in the `get_window_state` response | Best-effort; the caller confirms the effect off the screenshot. | + +Default to the element ax action — it is verifiable and backgroundable. Drop to an element px action when the tree can't disambiguate (repeated or empty labels), when it's empty (`degraded` — a non-AX surface), when an action came back `suspected_noop`, or when the tree disagrees with the pixels. You never re-capture to switch rungs: the screenshot is already in the snapshot, so you only change *how you address* the target. -`ax` and `som`/`vision` differ in how the agent then *acts*: an `ax` observation yields an `element_index`, which drives the semantic action path (UIA Invoke, `AXPerformAction`, AT-SPI). A `vision` observation yields pixels, so the agent grounds a target to `(x, y)` and acts by coordinate. +Both rungs apply to the **keyboard family** (`type_text`, `press_key`, `hotkey`), not just the pointer tools. Address by `element_index` (ax) to target a field with no pre-click, or by `x, y` (px) — which **pixel-clicks at `(x, y)` to establish real renderer focus, then delivers the keystroke(s)** to the now-focused element. The px form is the one-call path for Chromium/Electron inputs the AX layer can't focus: `type_text({ pid, window_id, x, y, text })` focuses and types in a single call. The two forms are mutually exclusive. (`set_value` is the exception — it stays ax-only, because it sets the value of a non-text control like a dropdown, checkbox, or slider; its pixel counterpart is a `click`/`drag` on the control, not a "set value at a pixel.") -### 2. Dispatch — how input is delivered +### 3. Dispatch — how input is delivered -Set per call on the input tools (`click`, `type_text`, `press_key`, …) with `dispatch`. +Set per call on the input family (`click`, `double_click`, `right_click`, `drag`, `scroll`, `type_text`, `press_key`, `hotkey`) with the `delivery_mode` field. This field is a shared cross-platform parameter — the same two values, accepted uniformly on Windows, macOS, and Linux. -| `dispatch` | Behavior | +| `delivery_mode` | Behavior | |---|---| | `background` (default) | Input is routed to the target process/window/element directly. The user's frontmost app, real cursor, and window z-order are untouched. This is the [no-foreground contract](/explanation/the-no-foreground-contract). | -| `foreground` | The target is activated first (pair with `bring_to_front`), then input lands on the now-active window. Use for apps that only accept events when foregrounded — DirectInput games, raw-input canvases. | -| `auto` | Historical heuristic that picks per target. Prefer an explicit value. | +| `foreground` | The target is briefly fronted (pair with `bring_to_front` to avoid a per-call flash), input lands on the now-active window, then the prior frontmost is restored. The explicit last resort when a background attempt did not land — and the only path for apps that accept events solely when foregrounded (DirectInput games, raw-input canvases). | -`element_index` (AX) actions are inherently background — they address an element, not the focused window — so they hold the contract without any `dispatch` flag. The `dispatch` axis matters most for coordinate (vision) input, where `background` routes the event to the target and `foreground` raises the window first. +Only `background` and `foreground` are valid; the historical `auto` heuristic is removed. Element ax actions (`element_index`) are inherently background — they address an element, not the focused window — so they hold the contract without any `delivery_mode` flag. The dispatch axis matters most for the pixel rung (`x, y`), where `background` routes the event to the target and `foreground` raises the window first. -### 3. Capture scope — what coordinate space the action targets +### 4. Capture scope — what coordinate space the action targets Set with `set_config capture_scope=…`. @@ -44,30 +54,44 @@ Set with `set_config capture_scope=…`. Desktop scope is the "Computer-Use 1.0" loop: the agent reads the whole screen and clicks absolute coordinates, the way a screenshot-only model expects. Window scope is the default because it is what makes background, concurrent automation possible. +## Response signals: verification, effect, and escalation + +Dispatch success is not the same thing as application state change. The driver can verify an effect only when it can read the changed state back through the accessibility layer. That is why `verified: true` is reserved for AX read-back: it means the driver observed the effect, not merely that it sent an event. Pixel input, foreground input, and echo-prone AX surfaces can be routed correctly while still leaving confirmation to the caller. + +`effect` is the confidence signal that separates those cases. `"confirmed"` means the driver verified the result through AX read-back. `"unverifiable"` means the dispatch path ran, but the driver cannot prove the application applied it. `"suspected_noop"` means an AX action dispatched but almost certainly did not change the target. Callers should treat `effect`, not the transport-level success status, as the action outcome. + +`escalation` is the machine-readable climb-the-ladder hint. When present, it tells the caller which surface to try next: `"px"` for acting off the screenshot, `"foreground"` for explicitly fronting the target, or `"page"` for the browser-tab DOM path through the `page` tool. See [Choose an action rung and dispatch mode](/how-to-guides/driver/choose-a-modality) for the procedural ladder and [MCP tools](/reference/cua-driver/mcp-tools#action-response-shape) for the field table. + +### When the tree lies + +Some accessibility layers echo writes they did not apply. Electron can report an AX value change through its shim while the renderer stays unchanged. Catalyst controls can expose null `AXValue`s. Chromium/WebKit web content can reflect a write through the accessibility bridge without proving the DOM or rendered view changed. + +The driver treats those as surface-aware verification cases. It probes at the element level for a web-content surface, including an `AXWebArea` ancestor, so native chrome such as a browser address bar stays trusted while browser-tab content does not get a false confirmation. On those surfaces the driver refuses false `verified: true` responses and returns `verified: false`, `effect: "unverifiable"`, and an `escalation` object instead. Electron app surfaces recommend `"px"` so the caller can act by pixel off the screenshot in the same response; browser-tab web content recommends `"page"` so the caller can switch to DOM/CDP via the `page` tool. + ## The Validity Matrix -Capture scope is the constraining axis. Window scope supports **any** combination of the other two. Desktop scope supports **only** vision capture and foreground dispatch. +Perception is no longer an axis in this matrix — every `get_window_state` returns both the tree and a screenshot, so there is nothing to cross here. The real constraints are **capture scope** (window or desktop) against the **action rung** (`ax` or `px`) and **delivery** (background or foreground). Capture scope is the constraining axis: window scope supports **any** combination of rung and delivery; desktop scope supports **only** the `px` rung with `foreground` delivery. -| `capture_scope` | `capture_mode` | `dispatch` | Valid? | Why | +| `capture_scope` | action rung | `delivery_mode` | Valid? | Why | |---|---|---|---|---| -| `window` | `ax` | `background` | ✅ | The default. Semantic actions on a backgrounded window. | -| `window` | `ax` | `foreground` | ✅ | Activate, then act by element. | -| `window` | `vision` | `background` | ✅ | Screenshot a window, click a coordinate in it without raising it. | -| `window` | `vision` | `foreground` | ✅ | Activate, then click by coordinate. | -| `desktop` | `vision` | `foreground` | ✅ | The only desktop combination. Read the whole screen, click absolute coordinates on the active desktop. | -| `desktop` | `ax` | any | ❌ | A desktop-absolute action has no `window_id`, so there is no accessibility tree to resolve an `element_index` against. | +| `window` | `ax` (element_index) | `background` | ✅ | The default. Semantic actions on a backgrounded window. | +| `window` | `ax` (element_index) | `foreground` | ✅ | Activate, then act by element. | +| `window` | `px` (x, y) | `background` | ✅ | Click a coordinate off the window's screenshot without raising it. | +| `window` | `px` (x, y) | `foreground` | ✅ | Activate, then click by coordinate. | +| `desktop` | `px` (x, y) | `foreground` | ✅ | The only desktop combination. Read the whole screen, click absolute coordinates on the active desktop. | +| `desktop` | `ax` (element_index) | any | ❌ | A desktop-absolute action has no `window_id`, so there is no element tree to resolve an `element_index` against — there is no `ax` rung. | | `desktop` | any | `background` | ❌ | Screen-absolute input hits whatever owns those pixels on the active desktop; there is no per-process route, so it cannot be backgrounded. | -| `window` | any | — | ❌ | A window-less (no `pid`/`window_id`) action while scope is `window` is rejected with the structured `desktop_scope_disabled` error. | +| `window` | (window-less) | — | ❌ | A window-less (no `pid`/`window_id`) action while scope is `window` is rejected with the structured `desktop_scope_disabled` error. | -The two rejections are enforced, not advisory. A window-less click while `capture_scope=window` returns `desktop_scope_disabled`, pointing the caller at `set_config capture_scope=desktop`. Desktop scope inherently foregrounds and works on pixels, so it cannot honor the background contract or the accessibility path — which is exactly why background, per-window automation is the default. +The two rejections are enforced, not advisory. A window-less click while `capture_scope=window` returns `desktop_scope_disabled`, pointing the caller at `set_config capture_scope=desktop`. Desktop scope inherently foregrounds and works on pixels, so it cannot honor the background contract or reach the `ax` rung — which is exactly why background, per-window automation is the default. ## Platform Support | Axis / value | Windows | macOS | Linux | |---|---|---|---| -| `capture_mode` `ax` / `vision` / `som` | ✅ | ✅ | ✅ | -| `dispatch: background` (the contract) | ✅ | ✅ | ✅ (X11/AT-SPI; native Wayland input is a [known gap](/explanation/the-no-foreground-contract#linux)) | -| `dispatch: foreground` + `bring_to_front` | ✅ explicit activation | activation differs (no `bring_to_front` tool) | activation differs (stubbed) | +| action rung: `ax` (element_index) / `px` (x, y) | ✅ | ✅ | ✅ | +| `dispatch: background` (the contract) | ✅ | ✅ | ✅ (X11 and Wayland via AT-SPI; raw keyboard into native-Wayland apps is the [residual gap](/explanation/the-no-foreground-contract#linux)) | +| `dispatch: foreground` + `bring_to_front` | ✅ explicit activation | ✅ explicit activation (`NSRunningApplication.activate`) | ✅ X11 EWMH activation (`_NET_ACTIVE_WINDOW` + input focus); Wayland raise is compositor-constrained | | `capture_scope: desktop` (full screen-absolute loop) | ✅ | rolling out | rolling out | -`capture_mode` is recognized everywhere, so window-scope automation — the four window-scope rows of the matrix — works on all three platforms. The desktop-scope loop (`get_desktop_state` plus window-less screen-absolute input via hit-testing) is complete on Windows and rolling out to macOS and Linux; on those platforms a window-less action under window scope is still rejected. See the [MCP tool reference](/reference/cua-driver/mcp-tools) for per-tool parameters and the [no-foreground contract](/explanation/the-no-foreground-contract) for how background dispatch is implemented on each OS. +Both action rungs work on all three platforms, so window-scope automation — the four window-scope rows of the matrix — works everywhere. The desktop-scope loop (`get_desktop_state` plus window-less screen-absolute input via hit-testing) is complete on Windows and rolling out to macOS and Linux; on those platforms a window-less action under window scope is still rejected. See the [MCP tool reference](/reference/cua-driver/mcp-tools) for per-tool parameters and the [no-foreground contract](/explanation/the-no-foreground-contract) for how background dispatch is implemented on each OS. diff --git a/docs/content/docs/explanation/linux-and-wayland.mdx b/docs/content/docs/explanation/linux-and-wayland.mdx new file mode 100644 index 0000000000..85f8b1054f --- /dev/null +++ b/docs/content/docs/explanation/linux-and-wayland.mdx @@ -0,0 +1,52 @@ +--- +title: "Linux and Wayland" +description: "Why Cua Driver leans on the accessibility tree on Linux, how it recovers real screen coordinates GTK4 hides, and how a coordinate click lands on Wayland where there is no global coordinate space." +--- + +# Linux and Wayland + +Linux is not one target. The same desktop app runs under two different session stacks — X11 and Wayland — and they expose input and geometry on opposite terms. This page explains how Cua Driver reaches apps on both, and why the accessibility tree, not synthetic input, is the through-line. + +## Background + +X11 was built when one program reading or driving another's window was normal; window IDs are global, synthetic events can be addressed to any window, and pixels can be read from any mapped surface. Wayland was built to end exactly that: a client cannot see or inject into another client's surface, and there is no global coordinate space to address. Both models are deliberate. The driver does not fight either — it routes around the parts that are closed. + +## The semantic path is the through-line + +The one mechanism that behaves the same on X11 and Wayland is **AT-SPI** (the Linux accessibility bus). When the driver clicks a control by `element_index`, it calls that control's own accessibility action — `Action.DoAction` — which the toolkit (GTK, Qt) executes internally. No coordinates, no synthetic pointer event, no window focus, no raised window. Because the action is dispatched toolkit-side rather than as input, it crosses the Wayland client boundary that blocks synthetic input. This is why background, by-element automation is the default on Linux: it is the rung that works everywhere and the one the driver can *verify without a screenshot* (it reads the result back from the same tree). Pixel actions still get an honest verdict — the driver cross-checks the screenshot and reports `effect`/`escalation` — they just aren't confirmable from the tree alone. + +## Why coordinates need reconstructing + +Agents that work from a screenshot think in pixels, so the driver also has to answer "where is this element on screen?" — and Linux makes that harder than it sounds. + +On GTK4, the accessibility bridge reports `Component.GetExtents` in *screen* coordinates as `(0, 0)` for **every** widget (GNOME/gtk issues #1564 / #1739). Taken at face value, every element collapses onto the window's corner — the agent cursor, element frames, and any coordinate click all pile up in one place. + +The fix is to ask a different question. GTK4 *does* report each widget's position correctly relative to its **window** (`CoordType::Window`); what's missing is only the window's origin on screen. So the driver reconstructs the real coordinate as `window-relative position + window origin`, and sources the origin per session stack: + +- **X11** — the window's `_GTK_FRAME_EXTENTS` (the client-side-decoration inset) plus the X11 window origin. +- **Wayland** — a small bundled GNOME Shell helper (`org.cua.WinRects`) that reports each window's frame from inside the compositor, which is the only privileged vantage point that can see it. A normal client cannot. + +The tradeoff is honest: this is a workaround for a toolkit regression, gated on the GTK markers being present, so non-GTK toolkits (Qt reports screen coordinates correctly) keep their native path untouched. + +## How a coordinate click lands on Wayland + +On Wayland there is no global coordinate space and the compositor discards synthetic pointer events, so "click at (x, y)" cannot be delivered as input at all. Rather than give up the vision modality, the driver inverts the problem: it takes the reconstructed frames above, finds the accessible element whose frame contains the target pixel, and fires *that* element's action — back on the semantic path that already works. + +The subtlety is which element. GTK4 nests a `label` inside every `button` with a near-identical, slightly smaller frame; picking the smallest covering element lands on the inert label, whose action does nothing — a click that "succeeds" and changes nothing. So the selection is role-aware: it prefers the smallest covering *real actuator* and only falls back to a passive label when nothing else covers the point. The net effect is that "click pixel (x, y)" becomes "activate the control the agent sees there," with no pointer injection. + +The same shell helper that supplies window origins also draws the **agent cursor** on Wayland — for the same reason a client can't position a surface at an arbitrary screen coordinate, but the compositor can. + +## What still needs X11 + +The residual gap is **raw keyboard injection**. Typing into an accessible text field works (AT-SPI writes the field directly), but synthetic key events — and keys that some apps only read as raw device input — have no free path on native Wayland: the cooperative routes (`libei`, virtual-keyboard protocols) need a portal grant or a compositor that Mutter/KWin aren't. Running the app under XWayland restores the X11 `XTEST` keyboard path, which is why a GTK4 app launched with `GDK_BACKEND=x11` types fine. + +## A related quirk: finding windows + +One more place X11 assumptions leak: native Wayland apps have no X11 window ID, and neither GNOME Mutter nor KDE KWin implement the `wlr-foreign-toplevel` protocol (that is wlroots-only), so the usual window list comes back empty. The driver falls back to enumerating top-level frames from the AT-SPI registry and hands back a synthetic but stable `window_id`. Everything downstream walks the tree by process, not by that ID, so the full `list_windows → get_window_state → click` flow works unchanged. + +## Further reading + +- **Decide what to call**: [Choose a capture and dispatch mode](/how-to-guides/driver/choose-a-modality) +- **The contract this all serves**: [Background computer-use](/explanation/the-no-foreground-contract) +- **The three axes in full**: [Capture and dispatch modalities](/explanation/capture-and-dispatch-modalities) +- **The exact limits**: [Known limits](/reference/cua-driver/limits) · [Modality test suite](/reference/cua-driver/modality-test-suite) diff --git a/docs/content/docs/explanation/meta.json b/docs/content/docs/explanation/meta.json index a4e02a18cc..d02e298b0b 100644 --- a/docs/content/docs/explanation/meta.json +++ b/docs/content/docs/explanation/meta.json @@ -1 +1 @@ -{ "title": "Explanation", "icon": "Lightbulb", "pages": ["index", "what-is-computer-use", "the-no-foreground-contract", "capture-and-dispatch-modalities", "process-model", "how-sandboxes-work", "demonstrations-skills-and-trajectories", "architecture"] } +{ "title": "Explanation", "icon": "Lightbulb", "pages": ["index", "what-is-computer-use", "the-no-foreground-contract", "capture-and-dispatch-modalities", "linux-and-wayland", "process-model", "how-sandboxes-work", "demonstrations-skills-and-trajectories", "architecture"] } diff --git a/docs/content/docs/explanation/the-no-foreground-contract.mdx b/docs/content/docs/explanation/the-no-foreground-contract.mdx index e1db139a73..3c8d6fed8e 100644 --- a/docs/content/docs/explanation/the-no-foreground-contract.mdx +++ b/docs/content/docs/explanation/the-no-foreground-contract.mdx @@ -43,7 +43,9 @@ Linux depends on the session stack. AT-SPI provides accessibility-tree access an On X11, synthetic input and capture are window-addressable. `XSendEvent` can target a window ID without activating that window, and X11 window capture can read pixels from any mapped window. XWayland bridges help when an app still exposes an X11 surface. -**Wayland** is the notable exception. Its security model intentionally blocks one client from synthesizing arbitrary input into another client. That is the point of the design. Native Wayland-only apps remain a known gap for background input. +**Wayland** narrows the path but does not close it. Its security model intentionally blocks one client from synthesizing arbitrary *input* into another — that is the point of the design — so synthetic pointer and key events do not cross client boundaries. Actions still land, because the driver does not depend on synthetic input there. It dispatches through AT-SPI, where `Action.DoAction` invokes a control's own action toolkit-side, with no coordinates and no focus. Coordinate (vision) clicks resolve the same way: the target screen pixel is mapped to the accessible element under it, and that element's action is fired — the driver reconstructs each element's on-screen frame, since Wayland exposes no global coordinate space for a client to query. + +The residual gap on native Wayland is **raw keyboard injection**. Typing into accessible text fields works through AT-SPI, but synthetic key events — and the keys some apps only read as raw input — require an X11 / XWayland surface or a compositor-cooperative input portal, rather than coming for free. ## Agent Cursor Overlay diff --git a/docs/content/docs/how-to-guides/driver/choose-a-modality.mdx b/docs/content/docs/how-to-guides/driver/choose-a-modality.mdx new file mode 100644 index 0000000000..3605fd857b --- /dev/null +++ b/docs/content/docs/how-to-guides/driver/choose-a-modality.mdx @@ -0,0 +1,136 @@ +--- +title: "Choose an Action Rung and Dispatch Mode" +description: "Pick how each action addresses its target — the accessibility (ax) rung or the pixel (px) rung — plus dispatch and scope. Start on the accessibility path, fall back to a pixel action, and escalate to foreground only when you must." +--- + +# Choose an Action Rung and Dispatch Mode + +This guide shows you how to pick how the agent acts on a target, so each action lands the first time and stays in the background when it can. + +## When to use this guide + +Use this when you are wiring an agent to Cua Driver and deciding what to pass to `click`, `type_text`, `get_window_state`, and friends — `element_index` versus `x, y`, `delivery_mode: background` versus `foreground`, and window versus desktop scope. + +## Before you start + +You should already be connected to the driver and able to launch an app and read a window. Perception is no longer a mode you pick: `get_window_state` returns both the accessibility tree and a screenshot in one call by default, and you choose the rung at action time. For the concepts behind the axes, see [Capture and dispatch modalities](/explanation/capture-and-dispatch-modalities); this guide only covers what to call. + +## Start on the accessibility path (the default) + +Default to the **element ax action with `background` dispatch — act by `element_index`.** It is the only rung the driver can verify, it never steals focus, and it works on Windows, macOS, and Linux (X11 and Wayland). + +Read the window once, then act on an element from that snapshot. The snapshot already carries the screenshot too, so you never re-capture to switch how you address the target: + +```jsonc +// 1. snapshot — returns the accessibility tree AND a screenshot by default +get_window_state({ pid, window_id }) +// → elements[], each with an element_index and a frame, plus a grounding screenshot + +// 2. act by element_index — the element ax action, background, no focus steal +click({ pid, window_id, element_index: 12 }) +type_text({ pid, text: "hello" }) +``` + +When you are only re-indexing before an element ax action and don't need fresh pixels, pass `include_screenshot: false` to skip the screen grab and get the tree alone — a cheap perf opt-out, not a modality choice. The `ax` versus `px` decision still happens at action time, by how you address the target. To pin the rendered frame to disk instead of inlining it, set `screenshot_out_file`. + +## Follow the escalation ladder + +You don't have to guess when the AX path failed — every action response carries the signals that tell you the next rung. Walk the ladder in order, and only step down when the response says to: + +1. **Element ax action, background (the default).** Act by `element_index`. If the response shows `effect: "confirmed"`, you're done — the driver read the result back. If `get_window_state` came back `degraded` (empty AX tree), an action returns `effect: "suspected_noop"` (the AX action dispatched but likely no-op'd), an action returns `effect: "unverifiable"` on an echo-prone surface, or the tree disagrees with the screenshot (an `h:1` or off-viewport row), follow `escalation.recommended`. + +2. **Element px action, background.** When `escalation.recommended` is `"px"`, pick the target pixel from the screenshot already in the `get_window_state` response and click it — no re-capture to switch rung, because the screenshot was always there. Coordinates are window-relative for a windowed target. + + ```jsonc + // the screenshot is already in the snapshot above — just read a pixel off it + click({ pid, window_id, x: 320, y: 210 }) // → { path: "cgevent", effect: "unverifiable" } + ``` + + Use the same px form for keyboard fallback. If AX `type_text`, `press_key`, or `hotkey` returns `effect: "unverifiable"` on Electron/Chromium, retry with `x, y`: the tool pixel-clicks to focus, then sends the keys. + + ```jsonc + type_text({ pid, window_id, element_index: 18, text: "hello" }) + // → { effect: "unverifiable", escalation: { recommended: "px", reason: "..." } } + + type_text({ pid, window_id, x: 320, y: 210, text: "hello" }) + press_key({ pid, window_id, x: 320, y: 210, key: "return" }) + hotkey({ pid, window_id, x: 320, y: 210, keys: ["cmd", "a"] }) + ``` + + On Linux this still avoids synthetic input where it can: the driver resolves the pixel to the element under it and fires that element's action via AT-SPI `doAction` at that point. See [Linux and Wayland](/explanation/linux-and-wayland) for why. + +3. **Browser-tab DOM.** When `escalation.recommended` is `"page"`, switch to the `page` tool for browser-tab DOM work instead of retrying the AX write. + + ```jsonc + type_text({ pid, window_id, element_index: 18, text: "hello" }) + // → { effect: "unverifiable", escalation: { recommended: "page", reason: "..." } } + + page({ + pid, + window_id, + action: "execute_javascript", + javascript: "document.querySelector('#search').value = 'hello'" + }) + ``` + +4. **Foreground.** If the response recommends `"foreground"` or the pixel click still doesn't land — DirectInput games, raw-input canvases (Blender, Unity), focus-polling apps — retry with **`delivery_mode: "foreground"`**, which activates the window first. + + ```jsonc + click({ pid, window_id, x: 320, y: 210, delivery_mode: "foreground" }) + // → { path: "cgevent_fg", effect: "unverifiable" } + ``` + + Foreground only for the action that needs it, and only when the user isn't actively working on the machine — it raises the window. See [Known limits](/reference/cua-driver/limits) for the specific apps. + +### The escalation signal on the response + +Two additive fields make the ladder explicit, so you escalate on data rather than a hunch: + +- **`effect`** — `"confirmed"` (the driver verified the result through AX read-back), `"unverifiable"` (the rung fired but only the caller can confirm), or `"suspected_noop"` (an AX action dispatched but almost certainly did nothing). +- **`escalation`** — present when there's a next rung: `{ recommended: "px" | "foreground" | "page", reason }`. A `degraded` `get_window_state` carries the same hint (recommending `px`). + +```jsonc +click({ pid, window_id, element_index: 12 }) +// → { effect: "suspected_noop", escalation: { recommended: "px", reason: "..." } } +``` + +**Wayland exception.** On a native Wayland session an unfocused window can't be pixel-targeted in the background — there is no global coordinate space and the compositor drops synthetic pointer events. So when an AX action no-ops there, the escalation skips the pixel rung and recommends **`foreground`** directly. See [Linux and Wayland](/explanation/linux-and-wayland). + +## Switch to desktop scope only for screen-absolute work + +Reach for **desktop scope** only when the action has no single window — dragging between windows, or clicking absolute screen coordinates. It inherently foregrounds and works on pixels, so it cannot honor the background contract. + +```jsonc +set_config({ capture_scope: "desktop" }) +get_desktop_state() // full-screen screenshot +click({ x: 1280, y: 40 }) // screen-absolute, no window_id +``` + +A window-less click while scope is still `window` is rejected with `desktop_scope_disabled` — that error is the prompt to switch scope. + +## Confirm the action landed + +Only AX read-back can produce `verified: true` (the driver read the result back). Echo-prone AX surfaces, pixel actions, and foreground actions return `verified: false` or omit it; use `effect` and `escalation` to decide the next call. After an unverifiable action, re-read and check (the re-read returns both the tree and the screenshot): + +```jsonc +click({ pid, window_id, x: 320, y: 210 }) // → { verified: false, path: "cgevent", effect: "unverifiable" } +get_window_state({ pid, window_id }) // confirm the change against tree + screenshot +``` + +## Troubleshooting + +**Problem: the call returned success but nothing changed (false success).** +Don't trust the status code on a `verified: false` action. Re-read the window — the snapshot carries both the tree and the screenshot — and confirm the effect; if it didn't land, switch rung (element ax action → element px action off the same screenshot) or escalate dispatch (background → foreground). + +**Problem: `desktop_scope_disabled` on a window-less click.** +You're in `window` scope. Either pass a `window_id` (+ `element_index` or `x, y`), or `set_config({ capture_scope: "desktop" })` for genuinely screen-absolute work. + +**Problem: keystrokes don't land on a Linux app.** +On native Wayland, raw keys have no background path. Type into accessible fields with `type_text`, drive controls by `element_index`, or run the app under XWayland. See [Known limits](/reference/cua-driver/limits#native-wayland-apps-cant-receive-synthetic-keystrokes). + +## Related + +- [Capture and dispatch modalities](/explanation/capture-and-dispatch-modalities) — the axes and the validity matrix +- [MCP tools](/reference/cua-driver/mcp-tools) — full parameters for every tool +- [Known limits](/reference/cua-driver/limits) — targets that need foreground +- [Linux and Wayland](/explanation/linux-and-wayland) — how the Linux rungs work diff --git a/docs/content/docs/how-to-guides/driver/connect-your-agent.mdx b/docs/content/docs/how-to-guides/driver/connect-your-agent.mdx index e9bdb7006c..657d05673d 100644 --- a/docs/content/docs/how-to-guides/driver/connect-your-agent.mdx +++ b/docs/content/docs/how-to-guides/driver/connect-your-agent.mdx @@ -1,6 +1,6 @@ --- title: Connect your agent -description: Register Cua Driver as an MCP server with Claude Code, Codex, Cursor, Antigravity, OpenClaw, OpenCode, Hermes, and Pi. +description: Register Cua Driver as an MCP server with Claude Code, Codex, Cursor, Antigravity, OpenClaw, OpenCode, Hermes, Pi, Qwen Code, Factory Droid, and ZCode. --- import { Callout } from 'fumadocs-ui/components/callout'; @@ -22,7 +22,7 @@ cua-driver mcp-config --client ``` - The `claude` client can register a computer-use compatibility surface through `--claude-code-computer-use-compat`. Every client gets the same driver tools. There is no standalone screenshot tool, so window capture comes from `get_window_state` (set `capture_mode` to `vision` for a screenshot). + The `claude` client can register a computer-use compatibility surface through `--claude-code-computer-use-compat`. Every client gets the same driver tools. There is no standalone screenshot tool, so window capture comes from `get_window_state`, which returns a screenshot alongside the tree by default. ## Claude Code @@ -52,7 +52,7 @@ It emits: claude mcp add-json cua-computer-use '{"command":"cua-driver","args":["mcp","--claude-code-computer-use-compat"]}' ``` -This registers the server under the key `cua-computer-use` and passes `--claude-code-computer-use-compat`. The flag selects the Claude Code compat surface. The compat screenshot tool was removed in #1692, so the flag has no tool-surface effect today; the wiring stays in place for any future compat-gated tool. Capture the target window with `get_window_state` (set `capture_mode` to `vision` for a screenshot). +This registers the server under the key `cua-computer-use` and passes `--claude-code-computer-use-compat`. The flag selects the Claude Code compat surface. The compat screenshot tool was removed in #1692, so the flag has no tool-surface effect today; the wiring stays in place for any future compat-gated tool. Capture the target window with `get_window_state`, which returns a screenshot alongside the tree by default. This is NOT Anthropic's native computer-use API. It is Cua Driver's MCP compatibility mode for Claude Code. Start with `launch_app` or `list_windows`, then capture the target window with `get_window_state`. @@ -205,6 +205,43 @@ Each call is one-shot and returns JSON or text on stdout, which is the shape Pi Verify: run `cua-driver --help` from the same Pi shell context. +## Qwen Code + +Alibaba's open-source coding CLI. It has a CLI add command and a settings file. + +- CLI: `qwen mcp add cua-driver cua-driver mcp` (also `cua-driver mcp-config --client qwen` prints this) +- Or paste under top-level `mcpServers` in `~/.qwen/settings.json` (user) or `.qwen/settings.json` (project): + +```json +{ "mcpServers": { "cua-driver": { "command": "cua-driver", "args": ["mcp"] } } } +``` + +- Verify inside Qwen Code with `/mcp`. + +## Factory Droid + +Factory.ai's Droid CLI. + +- CLI: `droid mcp add cua-driver "cua-driver mcp"` (also `cua-driver mcp-config --client droid`) +- Or paste under top-level `mcpServers` in `~/.factory/mcp.json` (user) or `.factory/mcp.json` (project): + +```json +{ "mcpServers": { "cua-driver": { "type": "stdio", "command": "cua-driver", "args": ["mcp"] } } } +``` + +## ZCode + +ZCode by Z.ai (a GLM coding GUI app). Configure in the GUI — there is no CLI add command. + +- In ZCode: Settings → MCP Servers → New MCP Server (type: stdio, command `cua-driver`, arguments `mcp`), or paste under "Full configuration": + +```json +{ "mcpServers": { "cua-driver": { "type": "stdio", "command": "cua-driver", "args": ["mcp"] } } } +``` + +- `cua-driver mcp-config --client zcode` prints this JSON to paste. +- If you use Z.ai's separate `zai` CLI instead of the ZCode app, run: `zai mcp add cua-driver --transport stdio --command "cua-driver" --args mcp` + ## Any other client For any client that accepts the standard `mcpServers` shape, print the generic config: diff --git a/docs/content/docs/how-to-guides/driver/drive-a-web-page.mdx b/docs/content/docs/how-to-guides/driver/drive-a-web-page.mdx new file mode 100644 index 0000000000..624678b9ca --- /dev/null +++ b/docs/content/docs/how-to-guides/driver/drive-a-web-page.mdx @@ -0,0 +1,88 @@ +--- +title: 'Drive a Web Page' +description: 'Read and act on the page already loaded in a browser or Electron app with the page tool — get text, query the DOM, click, insert text, type keystrokes, run JavaScript.' +--- + +# Drive a Web Page + +Use the `page` tool on the page already loaded in a running browser or Electron app. It does not navigate; open the URL first, either through `launch_app` or by having the user open it. This is the DOM/CDP path, the same rung that honest-verification `escalation.recommended: 'page'` points to when AX typing echoes but the DOM does not observe it. For the surrounding ladder, see [Choose a capture and dispatch mode](/how-to-guides/driver/choose-a-modality) and [Capture and dispatch modalities](/explanation/capture-and-dispatch-modalities). + +## Actions + +| Action | What it does | +|---|---| +| `get_text` | Extract visible text from the page. Params: `pid`, `window_id`. | +| `query_dom` | Find elements by CSS selector. Params: `css_selector`, `attributes` (array of attribute names to return). | +| `click_element` | Click a CSS-selected element (animates the agent cursor). Params: `selector`. | +| `insert_text` | Set text into the focused field via CDP (fast DOM insert). Params: `text` (required), `cdp_port` (optional), `target_url_contains` (optional). | +| `type_keystrokes` | Type text as real per-character key events via CDP — fires JS keydown/keyup handlers. Use when `insert_text` does not trigger the app's input logic. Params: `text` (required), `cdp_port` (optional), `target_url_contains` (optional). | +| `execute_javascript` | Run JS and return the result. Params: `javascript`. | +| `enable_javascript_apple_events` | macOS only. One-time patch: edits the browser Preferences to allow JS from Apple Events. Requires a browser restart. Params: `bundle_id`, `user_has_confirmed_enabling` (must be true). | + +## Backend and browser support + +| Backend | Support | +|---|---| +| Chrome, Brave, Edge | Browser page support, with CDP for JavaScript and typing actions. | +| Safari | Uses AppleScript on macOS. | +| Electron | Uses CDP. | +| Chromium/Firefox on Windows | UIA for read actions; CDP for `execute_javascript` when started with `--remote-debugging-port`. | +| WKWebView, Tauri, AT-SPI | Fallback paths for page reads where available. | + +Read actions (`get_text`, `query_dom`) work broadly, and `execute_javascript` works cross-platform given a CDP endpoint. **`insert_text` and `type_keystrokes` are macOS-only for now** — Windows and Linux don't yet implement the CDP `Input.insertText`/`Input.dispatchKeyEvent` calls these actions need, and return a clear "not implemented" error rather than a silent no-op. Tracked in [trycua/cua#2084](https://github.com/trycua/cua/issues/2084). Where a CDP endpoint is available (macOS), launch Chromium with `--remote-debugging-port=` and pass `cdp_port`, or target a tab with `target_url_contains`. + +## insert_text vs type_keystrokes + +`insert_text` does a bulk CDP DOM-level insert. It is fast and does not fire JS key events. `type_keystrokes` sends per-character keydown/keyup events through CDP. It is slower and fires JS handlers. Use `type_keystrokes` for React/Vue inputs and other frameworks that listen for key events. + +## Examples + +Read all visible text from an open page: + +```jsonc +page({ + pid, + window_id, + action: "get_text" +}) +``` + +Query a CSS selector and return its `href` attribute: + +```jsonc +page({ + pid, + window_id, + action: "query_dom", + css_selector: "a.docs-link", + attributes: ["href"] +}) +``` + +Type into the focused input field with real key events: + +```jsonc +page({ + action: "type_keystrokes", + text: "status: ready", + cdp_port: 9222, + target_url_contains: "localhost" +}) +``` + +Run JavaScript to read a value from the page: + +```jsonc +page({ + pid, + window_id, + action: "execute_javascript", + javascript: "document.querySelector('#total')?.textContent" +}) +``` + +## Related + +- [page tool reference](/reference/cua-driver/mcp-tools#page) +- [Choose a capture and dispatch mode](/how-to-guides/driver/choose-a-modality) +- [Capture and dispatch modalities](/explanation/capture-and-dispatch-modalities) diff --git a/docs/content/docs/how-to-guides/driver/meta.json b/docs/content/docs/how-to-guides/driver/meta.json index 2a579af066..7cf0c546a8 100644 --- a/docs/content/docs/how-to-guides/driver/meta.json +++ b/docs/content/docs/how-to-guides/driver/meta.json @@ -1 +1 @@ -{ "title": "Driver", "pages": ["install", "connect-your-agent", "keep-running", "personalize-cursor", "update", "windows-ssh"] } +{ "title": "Driver", "pages": ["install", "connect-your-agent", "choose-a-modality", "drive-a-web-page", "keep-running", "personalize-cursor", "update", "windows-ssh"] } diff --git a/docs/content/docs/how-to-guides/driver/personalize-cursor.mdx b/docs/content/docs/how-to-guides/driver/personalize-cursor.mdx index 925b742ac7..acdbcd5cb2 100644 --- a/docs/content/docs/how-to-guides/driver/personalize-cursor.mdx +++ b/docs/content/docs/how-to-guides/driver/personalize-cursor.mdx @@ -8,16 +8,16 @@ import { Callout } from 'fumadocs-ui/components/callout'; The cua agent cursor ships with two built-in silhouettes: -- **`arrow`** (the default) — a procedural gradient diamond drawn from vector primitives each frame. Sharp at any backing scale. -- **`teardrop`** — an embedded `cursor-up` SVG (upward teardrop with notched bottom, gradient body, white outline) rasterised once into a 52 px buffer. +- **`teardrop`** (the default) — an embedded `cursor-up` SVG (upward teardrop with notched bottom, gradient body, white outline) rasterised once into a 52 px buffer, sized 2× the display target for a clean 2:1 retina downscale. +- **`arrow`** — a procedural gradient diamond drawn from vector primitives each frame. Sharp at any backing scale. -`arrow` is the default while we finish sorting the teardrop's retina rasterisation. Opt into the teardrop with `--cursor-shape teardrop`. You can also replace the silhouette entirely with your own SVG / PNG / JPEG / ICO file via `--cursor-icon `, swap the body palette at runtime, or scale the bloom halo independently. +`teardrop` is the default. Opt back into the arrow with `--cursor-shape arrow`. You can also replace the silhouette entirely with your own SVG / PNG / JPEG / ICO file via `--cursor-icon `, swap the body palette at runtime, or scale the bloom halo independently. ## Pick a built-in silhouette ```bash -cua-driver serve --cursor-shape teardrop # opt into the SVG teardrop -cua-driver serve --cursor-shape arrow # explicit; same as the default +cua-driver serve --cursor-shape teardrop # explicit; same as the default +cua-driver serve --cursor-shape arrow # opt into the procedural arrow ``` `--cursor-shape` is parsed on `serve` and `mcp`. It's a no-op on one-shot CLI calls like `cua-driver call` — those don't keep the long-lived UI runloop the overlay needs. @@ -37,9 +37,9 @@ Every per-instance cursor accepts a runtime style override via the `set_agent_cu - `gradient_colors`: array of CSS hex strings used as the cursor body's tip-to-tail gradient. An empty array reverts to the palette default (`#F0FBFF` → `#66D9FF` → `#35C6D8` on the teardrop; the palette's `cursor_start/mid/end` on the arrow). - `bloom_color`: hex string for the radial halo behind the cursor. Empty string reverts. -- `image_path`: path to a PNG / JPEG / SVG / ICO file. When set, replaces the built-in silhouette with your asset. Empty string reverts. +- `image_path`: path to a PNG / JPEG / SVG / ICO file. When set, replaces the built-in silhouette with your asset. Empty string clears the override, reverting to the default silhouette. -Switching between `arrow` and `teardrop` at runtime is not exposed via `set_agent_cursor_style` yet — for now it's CLI-only. +Switching between the built-in `arrow` and `teardrop` silhouettes at runtime is exposed via `set_agent_cursor_motion`'s `cursor_icon` field — pass the built-in name (or a file path), exactly the vocabulary the CLI `--cursor-shape` / `--cursor-icon` flags accept. Both the CLI and MCP resolve names through the same `BuiltinShape` table, so they can never drift. ## Use your own cursor asset @@ -58,28 +58,27 @@ Custom cursor assets are rendered with no rotation compensation — the driver a ## How the built-ins render -### `arrow` (default) +### `arrow` - **Path**: procedural gradient diamond. 4-vertex polygon `(14, 0) → (−8, −9) → (−3, 0) → (−8, 9)` rebuilt each frame. - **Body**: linear gradient from the palette's `cursor_start` to `cursor_end` (runtime `gradient_colors` overrides). - **Rotation**: tip at +x at rest; `heading + π` aligns the tip with motion direction. - **Resolution**: drawn from vector primitives every frame, so it stays sharp at any backing scale without rasterisation artifacts. -### `teardrop` +### `teardrop` (default) - **Path**: classic upward teardrop with a notched bottom (Streamline Iconoir `cursor-up`). - **Body**: linear gradient from `#F0FBFF` at the tip to `#35C6D8` at the tail. - **Outline**: white 1.5 px stroke, rounded caps and joins. - **Bloom**: soft radial halo behind the cursor, tinted from the palette's bloom color. - **Rotation**: the SVG points up at rest; a `+90°` paint-time offset aligns the tip with motion direction so the cursor faces where it's heading. -- **Resolution**: source rasterised at 2× the display target (52 px) and rendered at backing-aware physical resolution on retina. We're still tightening retina crispness on this path — that's why the default is `arrow` for now. +- **Resolution**: source rasterised at 2× the display target (52 px) and rendered at backing-aware physical resolution on retina — the 2:1 ratio maps 1:1 to physical pixels on 2× displays for a clean downscale. Switch to `arrow` if you want a fully procedural, rasterisation-free silhouette. ## Things that aren't currently personalizable - **Multiple agent cursors with distinct palettes.** Only one built-in palette today. If you want per-agent distinct cursors, file an issue with the use case. - **Cursor display size.** Fixed at 26 logical pixels (52 physical on retina). The runtime `cursor_size` field controls the **dot-style** cursor's radius and doesn't apply to the shape-based render path. - **Motion-path curve shape.** Glide duration, post-click dwell, idle-hide delay, and spring damping are tunable via `set_agent_cursor_motion`, but the underlying bezier shape of the path is hardcoded. -- **Switching `arrow` ↔ `teardrop` at runtime.** Today it's CLI-only — restart the daemon with a different `--cursor-shape` to swap. ## See also diff --git a/docs/content/docs/how-to-guides/recipes/fill-a-form-from-a-local-file.mdx b/docs/content/docs/how-to-guides/recipes/fill-a-form-from-a-local-file.mdx index dcd56ce1bf..be67e8d908 100644 --- a/docs/content/docs/how-to-guides/recipes/fill-a-form-from-a-local-file.mdx +++ b/docs/content/docs/how-to-guides/recipes/fill-a-form-from-a-local-file.mdx @@ -84,7 +84,7 @@ Use this recipe when the data already lives on your machine, for example in a PD field from the PDF, and submit the form. ``` - The agent can use `launch_app` to open the PDF viewer, `page` to drive the browser, `get_window_state` or `get_accessibility_tree` to read visible fields, and `click`, `type_text`, or `set_value` to fill the form. It can set `capture_mode` to `vision` on `get_window_state` when a screenshot is needed. + The agent can use `launch_app` to open the PDF viewer, `page` to drive the browser, `get_window_state` or `get_accessibility_tree` to read visible fields, and `click`, `type_text`, or `set_value` to fill the form. `get_window_state` returns a screenshot alongside the tree by default, so the agent can ground on both. diff --git a/docs/content/docs/reference/cua-driver/contracts.mdx b/docs/content/docs/reference/cua-driver/contracts.mdx index 969ca829d7..0c717eaee7 100644 --- a/docs/content/docs/reference/cua-driver/contracts.mdx +++ b/docs/content/docs/reference/cua-driver/contracts.mdx @@ -40,7 +40,7 @@ Every tool then reads the **effective** value with this precedence: effective = call-argument > session override > global default (disk) ``` -Keys that flow through this: `capture_mode`, `capture_scope`, `max_image_dimension`. See the [`set_config` reference](/reference/cua-driver/mcp-tools) for the per-session isolation details. +Keys that flow through this: `capture_scope`, `max_image_dimension`. (`capture_mode` is deprecated and ignored — it is still accepted for back-compat but has no effect; `get_window_state` always returns both the tree and a screenshot.) See the [`set_config` reference](/reference/cua-driver/mcp-tools) for the per-session isolation details. --- @@ -64,9 +64,9 @@ Keys that flow through this: `capture_mode`, `capture_scope`, `max_image_dimensi |---|---|---| | Coordinate space | window-local (the PNG `get_window_state` returns) | true screen pixels | | Required params | `pid` (+ `window_id` for `element_index`) | only `x`, `y` | -| Capture surface | `get_window_state` | `get_desktop_state` | +| Capture surface | `get_window_state` (tree + screenshot) | `get_desktop_state` (screenshot) | | Dispatch | background (default) or foreground | foreground only | -| Capture mode | `ax` / `vision` / `som` | `vision` only | +| Action rung | element ax action (`element_index`) or element px action (`x,y`) | element px action (`x,y`) only | Desktop scope is the screen-absolute "Computer-Use 1.0" loop: read the whole screen, click an absolute coordinate, the way a screenshot-only model expects. Window scope is the default because it is what makes background, concurrent automation possible. @@ -74,15 +74,17 @@ Desktop scope is the screen-absolute "Computer-Use 1.0" loop: read the whole scr ## How an action is routed -A `click` (and `scroll`, `type_text`) picks its path from the arguments present: +Every input tool — `click`, `scroll`, and the keyboard family (`type_text`, `press_key`, `hotkey`) — picks its path from the arguments present: | Arguments | Path | Behavior | |---|---|---| | `element_index` + `window_id` | accessibility action | UIA Invoke / `AXPerformAction` / AT-SPI — background, no cursor move, no focus steal | -| `x`, `y` + `pid` | window-local pixel | coordinates are relative to that window's screenshot | +| `x`, `y` + `pid` | window-local pixel | coordinates are relative to that window's screenshot. For the **keyboard family** this px form pixel-clicks `(x, y)` to establish real renderer focus, then delivers the keystroke(s) to the now-focused element — the one-call path for Chromium/Electron inputs the AX layer can't focus | | `x`, `y`, **no** `pid`/`window_id`, scope `desktop` | screen-absolute | true screen pixels, lands on whatever is frontmost there | | `x`, `y`, **no** `pid`/`window_id`, scope `window` | rejected | structured `desktop_scope_disabled` error | +The keyboard family's `x, y` (px) form is mutually exclusive with `element_index` (ax) — pass one or the other, not both. + A window-less action is **never silently reinterpreted**. Under window scope it is rejected with a structured `desktop_scope_disabled` error that points the caller at `set_config capture_scope=desktop`, rather than treating screen pixels as window-local pixels. --- @@ -91,9 +93,9 @@ A window-less action is **never silently reinterpreted**. Under window scope it | Capability | Windows | macOS | Linux | |---|---|---|---| -| `capture_mode` `ax` / `vision` / `som` | ✅ | ✅ | ✅ | +| `get_window_state` returns both tree + screenshot (element ax / px actions) | ✅ | ✅ | ✅ | | `dispatch: background` (the [no-foreground contract](/explanation/the-no-foreground-contract)) | ✅ | ✅ | ✅ (X11/AT-SPI; native Wayland input is a gap) | -| `dispatch: foreground` + `bring_to_front` | ✅ | not needed (post-to-pid is background-safe) | stubbed | +| `dispatch: foreground` + `bring_to_front` | ✅ | ✅ explicit activation (input is already background-safe; activation is for focus-proxy surfaces like RDP) | stubbed | | `get_desktop_state` (desktop capture) | ✅ | ✅ | ✅ | | Window-less desktop click (`click{x,y}`, no `pid`) | ✅ | rolling out | rolling out | diff --git a/docs/content/docs/reference/cua-driver/limits.mdx b/docs/content/docs/reference/cua-driver/limits.mdx index 87390e4a80..d1ff7d97c2 100644 --- a/docs/content/docs/reference/cua-driver/limits.mdx +++ b/docs/content/docs/reference/cua-driver/limits.mdx @@ -5,7 +5,7 @@ description: Documented behavioral limits of Cua Driver and available workaround import { Callout } from 'fumadocs-ui/components/callout'; -Cua Driver's *no-foreground contract* holds for every app it reaches via AX or via the SkyLight-routed pixel click. Four categories of target fall outside that envelope. +Cua Driver's *no-foreground contract* holds for every app it reaches via AX or a routed pixel click. A handful of targets and platform quirks fall outside that envelope. The macOS cases come first, followed by the Linux session-stack limits. --- @@ -77,6 +77,36 @@ Cua Driver's *no-foreground contract* holds for every app it reaches via AX or v --- +## Native Wayland apps can't receive synthetic keystrokes + +**Affected:** GTK/Qt apps running as native Wayland clients on GNOME Mutter or KDE KWin (no X11 surface). + +**Symptom:** `press_key` / `hotkey` — and `type_text` into a field that isn't AT-SPI-editable — return success but the keystroke never reaches the app. Clicks and element actions on the same app work fine. + +**Cause:** Wayland blocks one client from synthesizing input into another by design. The compositor-cooperative paths that would re-enable it are not free here: `libei` requires a one-time RemoteDesktop-portal grant, and `wtype` (virtual-keyboard) is wlroots-only, so it fails on Mutter/KWin. + +**Workarounds:** + +1. Type into accessible text fields with `type_text` — AT-SPI `insertText` writes the field directly, no synthetic key event involved. +2. Drive controls by `element_index` (`click`, `set_value`) instead of keyboard shortcuts where an equivalent control exists. +3. Run the app under XWayland (`GDK_BACKEND=x11` / `QT_QPA_PLATFORM=xcb`). It then exposes an X11 surface and the X11 `XTEST` keyboard path applies. + + + This is keyboard-only. Background **clicks and element actions** land on native Wayland via AT-SPI; coordinate (vision) clicks land too, resolved to the element under the pixel. + + +--- + +## GTK4 reports (0,0) screen coordinates over AT-SPI (handled) + +**Symptom:** none in normal use — element `frame`s, the agent cursor, and vision clicks are correct on GTK4. Documented here because the underlying toolkit bug is real and visible in raw AT-SPI. + +**Cause:** GTK4's AT-SPI bridge returns `Component.GetExtents(SCREEN)` as `(0,0)` for every widget (GNOME/gtk issues #1564 / #1739). A naive consumer would collapse every element to the window's top-left corner. + +**How Cua Driver handles it:** it queries `CoordType::Window` (which GTK4 *does* report correctly per-widget) and adds the window's screen origin — from `_GTK_FRAME_EXTENTS` on X11, or the `org.cua.WinRects` shell helper on Wayland — to reconstruct true screen coordinates. So no caller action is required; GTK4 frames are reliable. + +--- + ## Permission boundaries Cua Driver is constrained by the macOS permission model. Two relevant grants: @@ -84,6 +114,6 @@ Cua Driver is constrained by the macOS permission model. Two relevant grants: | Grant | Required for | | ----- | ------------ | | **Accessibility** (System Settings → Privacy & Security → Accessibility) | Every AX read, every element-indexed click, every keyboard/text primitive. Without it, `check_permissions` returns `accessibility: false` and every tool returns a structured error. | -| **Screen Recording** | Screenshots and the `som`/`vision` capture modes. Without it, `get_window_state` in those modes returns a tree but no PNG. Pure `ax` mode still works. | +| **Screen Recording** | Screenshots. `get_window_state` returns both the accessibility tree and a screenshot by default; without this grant it returns the tree only (no PNG). The tree path still works. | -Grants are tied to the `CuaDriver.app` bundle identity (`com.trycua.driver`). Rebuilding Cua Driver from source preserves the grants because `build-app.sh` pins a stable bundle id. +Grants are tied to the `CuaDriver.app` bundle identity (`com.trycua.driver`). The Rust build and installer preserve this identity, so TCC grants persist across rebuilds and updates. diff --git a/docs/content/docs/reference/cua-driver/mcp-tools.mdx b/docs/content/docs/reference/cua-driver/mcp-tools.mdx index 689c041bda..60bcc8cb41 100644 --- a/docs/content/docs/reference/cua-driver/mcp-tools.mdx +++ b/docs/content/docs/reference/cua-driver/mcp-tools.mdx @@ -19,6 +19,36 @@ Tool names are `snake_case`. Responses are MCP `CallTool.Result` envelopes: a te --- +## Common parameters + +Several parameters are a **shared cross-platform contract**: the same JSON shape on Windows, macOS, and Linux, composed from canonical schema fragments and enforced by a CI consistency gate so the three platforms cannot drift. Tools accept them uniformly. + +| Parameter | Where | Notes | +| --------- | ----- | ----- | +| `session` | every action and cursor tool | Optional run identity for the agent cursor and per-session state; the same id works over MCP, the CLI, or the raw socket and follows the run across apps and windows. Accepted on all three platforms — earlier Windows and Linux builds rejected it via `additionalProperties:false`. | +| `delivery_mode` | the input family (`click`, `double_click`, `right_click`, `drag`, `scroll`, `type_text`, `press_key`, `hotkey`) | `"background"` (default) injects without fronting or raising the target — the [no-foreground contract](/explanation/the-no-foreground-contract). `"foreground"` briefly fronts the target, acts, then restores the prior frontmost — the explicit last resort when a background attempt did not land. Legacy `"auto"` is removed. | +| `capture_mode` | `get_window_state` | **Deprecated and ignored.** Still accepted for back-compat so old callers don't error, but it has no effect — `get_window_state` always returns both the accessibility tree and a screenshot by default. There is no `ax`/`vision`/`som` capture choice; the modality (`ax` vs `px`) is chosen at action time by how you address the target. | +| `include_screenshot` | `get_window_state` | Boolean, default `true` (returns the tree **and** a screenshot). Set `false` to skip the screenshot grab and return the tree only — a **perf** opt-out for the cheap re-index-before-an-element-`ax`-action path, not a modality choice. | +| `modifier`, `button`, `element_index`, `element_token` | pointer and element tools | Held modifier keys, mouse button, and the two element-addressing handles. | + +### Required parameters + +The `required` set is uniform across platforms: `click` requires nothing, `scroll` requires `direction`, and `zoom` requires `window_id` plus `x1`/`y1`/`x2`/`y2`. `pid` is **conditionally** required — needed for every per-window action, omitted for a windowless desktop-scope call — so it is validated in code with a clear error rather than pinned in the schema. A client that omits `pid` for a desktop-scope action is therefore not schema-rejected. + +### Platform-specific parameters + +A few parameters are platform-specific by design and are intentionally NOT part of the shared contract: + +| Parameter or tool | Platform | Why | +| ----------------- | -------- | --- | +| `launch_app` identifiers | macOS: `bundle_id`, `urls`. Windows: `aumid`, `launch_path`, `path`, `start_minimized`. | App launch is OS-native. `name` is the portable fallback that works on both. | +| `debug_window_info` | Windows only | A window-handle / class / rect / z-order debug tool with no macOS or Linux counterpart. | +| `check_permissions.prompt` | macOS only | Raises the TCC permission dialogs; there is no Windows or Linux equivalent of TCC. | +| Windowless screen-absolute (desktop-scope) clicks/scrolls | all three platforms, **exposed differently** | The capability exists everywhere, but the knob differs: macOS takes a **per-call `scope:"desktop"`** parameter on the pointer tools, while Windows and Linux gate it on the persisted **`capture_scope:"desktop"`** config (`set_config`). So a per-call `scope` param appears only on macOS; on Windows/Linux you opt in once via config. Unifying this knob is a tracked follow-up. | +| `modifier` on a *background* click | honored on macOS and Linux; dropped on a Windows background click | A Windows background click goes through UIA Invoke / PostMessage, which carry no live keyboard state, so `modifier` takes effect only on the `delivery_mode:"foreground"` (SendInput) rung there. | + +--- + ## Inspection tools ### `list_apps` @@ -56,7 +86,7 @@ Per-record fields: `window_id`, `pid`, `app_name`, `title`, `bounds` (x/y/width/ ### `get_window_state` -Walk a running app's AX tree and return a Markdown rendering of its UI, tagging every actionable element with `[element_index N]`. Also captures a PNG screenshot of the specified window. +Walk a running app's AX tree and return a Markdown rendering of its UI, tagging every actionable element with `[element_index N]`. Returns **both** the accessibility/UIA tree and a PNG screenshot of the specified window by default — perception is mode-agnostic. You ground on the tree and the screenshot together and cross-check one against the other; you choose the modality (`ax` vs `px`) at action time, not here. **Invariant:** call `get_window_state` once per turn per `(pid, window_id)` before any element-indexed action. The index map is replaced by the next snapshot. @@ -64,7 +94,8 @@ Walk a running app's AX tree and return a Markdown rendering of its UI, tagging | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | | `window_id` | integer | Yes | Target window ID from `list_windows`. | -| `capture_mode` | string | No | `som` = AX + screenshot (default); `vision` = screenshot only; `ax` = AX only. | +| `capture_mode` | string | No | **Deprecated and ignored.** Accepted for back-compat so old callers don't error, but it has no effect — the tree and the screenshot are both returned regardless of what you pass (`ax`, `vision`, `som`, anything). | +| `include_screenshot` | boolean | No | Default `true` — return the tree and the screenshot. Set `false` to skip the screenshot grab and return the tree only — a perf opt-out for re-indexing before an element `ax` action, not a modality choice. | | `query` | string | No | Case-insensitive filter for `tree_markdown`. Element indices are unchanged. | | `screenshot_out_file` | string | No | When set, write the PNG to this file path (`~` expanded) instead of embedding base64 in the response. | @@ -72,6 +103,8 @@ Walk a running app's AX tree and return a Markdown rendering of its UI, tagging {"pid": 844, "window_id": 10725} ``` +On Linux (and macOS/Windows), the structured result may include `degraded: true` alongside a `degraded_reason` string when the accessibility walk completed but found no actionable elements. This distinguishes "a11y bridge not up, daemon not on the session D-Bus, or non-AX surface" from a window that genuinely has no controls — do not treat `elements: []` as authoritative when `degraded: true` is set. When `degraded: true`, act by `px` off the screenshot returned in the same response. + --- ### `get_accessibility_tree` @@ -160,7 +193,7 @@ Force-terminate a process by pid (kill -9 equivalent on macOS / Linux; `taskkill ### `bring_to_front` -Activate a window so subsequent input tools with `dispatch:"foreground"` land on it without a per-call `SetForegroundWindow` flash. Windows-only. On macOS this tool returns an error. On Linux this tool stubs out. +Persistently activate an app so it genuinely holds the foreground, then leave it there. Most input does **not** need this: on Windows it removes the per-call `SetForegroundWindow` flash before a `dispatch:"foreground"` run, and on macOS every dispatch already reaches backgrounded windows. Reach for it only for a focus-proxy surface that re-arms its own input channel on activation and must stay frontmost across the interaction — chiefly a remote-desktop client (Microsoft Windows App / RDP), where the brief foreground flash drops keystrokes. On macOS it activates the owning app by pid via `NSRunningApplication.activate` (`window_id` accepted for parity, activation is app-level). On Linux this tool stubs out (use `wmctrl -a` / `xdotool windowactivate`). | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | @@ -181,11 +214,12 @@ Two addressing modes: - **Element index** (`element_index` + `window_id`): AX action path. Works on backgrounded/hidden windows. No cursor move, no focus steal. Cache is scoped per `(pid, window_id)` and is replaced by the next snapshot. - **Pixel** (`x`, `y`): CGEvent path. Synthesizes mouse events posted to pid. Needs a visible on-screen window. +- **Screen-absolute** (`x`, `y` with no window owner, under `capture_scope: desktop`): clicks true screen coordinates even when no window owns the point (desktop background, menu-extra gaps). The button is preserved — a windowless `right_click`/middle no longer downgrades to left. | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | -| `element_index` | integer | No | Element index from last `get_window_state`. | +| `element_index` | integer | No | Element index from last `get_window_state`. Requires `pid` and `window_id` alongside it — `element_index` with no `pid` fails fast with `Missing required integer field: pid` (it is not a silent no-op). | | `window_id` | integer | No | Target window ID. Required for `element_index`. | | `x` | number | No | Window-local screenshot X coordinate. | | `y` | number | No | Window-local screenshot Y coordinate. | @@ -212,7 +246,7 @@ Pixel path: two down/up pairs ~80 ms apart. | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | -| `element_index` | integer | No | Element index from last `get_window_state`. Uses AX path. | +| `element_index` | integer | No | Element index from last `get_window_state`. Uses AX path. Requires `pid` and `window_id` alongside it — `element_index` with no `pid` fails fast with `Missing required integer field: pid` (it is not a silent no-op). | | `window_id` | integer | No | CGWindowID. Required when `element_index` is used. | | `x` | number | No | Screen X coordinate (pixel path). | | `y` | number | No | Screen Y coordinate (pixel path). | @@ -237,7 +271,7 @@ Exactly one of `element_index` or (`x` AND `y`) must be provided. `pid` always r | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | -| `element_index` | integer | No | Element index from last `get_window_state`. Routes through `AXShowMenu`. Requires `window_id`. | +| `element_index` | integer | No | Element index from last `get_window_state`. Routes through `AXShowMenu`. Requires `pid` and `window_id` alongside it — `element_index` with no `pid` fails fast with `Missing required integer field: pid` (it is not a silent no-op). | | `window_id` | integer | No | CGWindowID. Required when `element_index` is used. | | `x` | number | No | X in window-local screenshot pixels. | | `y` | number | No | Y in window-local screenshot pixels. | @@ -277,29 +311,45 @@ Press-drag-release gesture from `(from_x, from_y)` to `(to_x, to_y)` in window-l Insert text into the target pid via `AXSetAttribute(kAXSelectedText)`. Works for standard Cocoa text fields and text views. No keystrokes are synthesized. For Chromium/Electron inputs that don't implement `kAXSelectedText`, the tool falls back to CGEvent character synthesis automatically. +Two addressing forms — mutually exclusive: + +- **Element index** (`element_index` + `window_id`): the **element ax action**. Directs the write to a specific field, no pre-click. +- **Pixel** (`x`, `y`, no `element_index`): the **element px action**. The tool pixel-clicks at `(x, y)` to establish real renderer focus, then types into the now-focused element (reusing `click`'s coordinate translation and `delivery_mode`). This is the one-call fix for Chromium/Electron inputs the AX path can't reach — read `x, y` off the `get_window_state` screenshot, same convention as `click`. + +Keyboard px form: `x, y` are accepted and are mutually exclusive with `element_index`. + | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | | `text` | string | Yes | Text to insert at the target's cursor. | -| `element_index` | integer | No | Element index from last `get_window_state`. Directs the write to a specific field. Requires `window_id`. | +| `element_index` | integer | No | Element index from last `get_window_state`. Directs the write to a specific field. Requires `pid` and `window_id` alongside it — `element_index` with no `pid` fails fast with `Missing required integer field: pid` (it is not a silent no-op). Mutually exclusive with `x`/`y`. | | `window_id` | integer | No | CGWindowID. Required when `element_index` is used. | +| `x` | number | No | Window-local screenshot X of the field to type into — the px form. Pass with `y` and no `element_index`; the tool pixel-clicks there to focus, then types. | +| `y` | number | No | Window-local screenshot Y of the field. See `x`. | | `delay_ms` | integer | No | Milliseconds between characters in the CGEvent fallback path. Default 30. Ignored when the AX path succeeds. | ```json {"pid": 844, "text": "hello"} ``` +```json +{"pid": 844, "window_id": 10725, "x": 320, "y": 210, "text": "hello"} +``` + --- ### `press_key` Press and release a single key, delivered to the target pid via `CGEventPostToPid`. No focus steal. -Three delivery paths: -- `window_id` + `element_index`: focuses the AX element first, then posts via the auth-message path (Chromium-safe). +Delivery paths: +- `window_id` + `element_index` (ax): focuses the AX element first, then posts via the auth-message path (Chromium-safe). +- `x`, `y`, no `element_index` (px): pixel-clicks at `(x, y)` to establish real renderer focus, then sends the key to the now-focused element. Use when the key must reach a Chromium/Electron surface the AX path can't focus. Mutually exclusive with `element_index`. - `window_id` only (no `element_index`): NSMenu path. Briefly activates the window, posts without the auth envelope so `IOHIDPostEvent` fires and `NSApplication.sendEvent:` dispatches NSMenu key equivalents. Restores prior frontmost immediately. - No `window_id`: standard auth-message path. +Keyboard px form: `x, y` are accepted and are mutually exclusive with `element_index`. + Key names: `return`, `tab`, `escape`, `up`/`down`/`left`/`right`, `space`, `delete`, `home`, `end`, `pageup`, `pagedown`, `f1`–`f12`, plus any letter or digit. | Argument | Type | Required | Description | @@ -307,8 +357,10 @@ Key names: `return`, `tab`, `escape`, `up`/`down`/`left`/`right`, `space`, `dele | `pid` | integer | Yes | Target process ID. | | `key` | string | Yes | Key name: `return`, `tab`, `escape`, `up`, `down`, etc. | | `modifiers` | array of string | No | Modifier keys: `cmd`, `shift`, `option`/`alt`, `ctrl`, `fn`. | -| `element_index` | integer | No | Element index. | +| `element_index` | integer | No | Element index (ax). Mutually exclusive with `x`/`y`. | | `window_id` | integer | No | Target window ID. | +| `x` | number | No | Window-local screenshot X — the px form: pixel-click there to focus, then send the key. Pass with `y`, no `element_index`. | +| `y` | number | No | Window-local screenshot Y. See `x`. | ```json {"key": "return", "pid": 844} @@ -320,17 +372,24 @@ Key names: `return`, `tab`, `escape`, `up`/`down`/`left`/`right`, `space`, `dele Press a combination of keys simultaneously. The combo is posted directly to the target pid's event queue; the target does NOT need to be frontmost. -Two delivery paths: +Delivery paths: +- `window_id` + `element_index` (ax): focuses the AX element first, then posts the combo. - Default (no `window_id`): auth-message envelope. Chromium/Electron apps accept the keystrokes as trusted live input on macOS 14+. +- `x`, `y`, no `element_index` (px): pixel-clicks at `(x, y)` to establish real renderer focus first, then sends the combo to the now-focused field — e.g. `["cmd", "v"]` to paste into a specific Chromium/Electron input the background combo can't reach. A keyboard combo on its own does not focus a field. - With `window_id`: NSMenu path. Briefly activates the target WindowServer-frontmost, posts without the auth envelope so `IOHIDPostEvent` fires and NSMenu key equivalents dispatch (e.g. Cmd+Z undo, Cmd+W close). Restores prior frontmost immediately. +Keyboard px form: `x, y` are accepted and are mutually exclusive with `element_index`. + Recognized modifiers: `cmd`/`command`, `shift`, `option`/`alt`, `ctrl`/`control`, `fn`. Order: modifiers first, one non-modifier last. | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | | `keys` | array of string | Yes | Modifier(s) and one non-modifier key, e.g. `["cmd", "c"]`. | -| `window_id` | integer | No | When set, uses NSMenu path. | +| `element_index` | integer | No | Element index (ax). Mutually exclusive with `x`/`y`. | +| `window_id` | integer | No | Target window ID. Required when `element_index` or `x, y` is used; without an element or pixel target, setting `window_id` uses the NSMenu path. | +| `x` | number | No | Window-local screenshot X — the px form: pixel-click there to focus, then send the combo. Pass with `y`. | +| `y` | number | No | Window-local screenshot Y. See `x`. | ```json {"keys": ["cmd", "c"], "pid": 844} @@ -350,7 +409,7 @@ Two modes: | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | -| `element_index` | integer | Yes | Element index from last `get_window_state`. | +| `element_index` | integer | Yes | Element index from last `get_window_state`. Requires `pid` and `window_id` alongside it — `element_index` with no `pid` fails fast with `Missing required integer field: pid` (it is not a silent no-op). | | `window_id` | integer | Yes | CGWindowID for the window whose `get_window_state` produced the element index. | | `value` | string | Yes | New value. AX will coerce to the element's native type. | @@ -362,18 +421,22 @@ Two modes: ### `scroll` -Scroll the target pid's focused region by synthesized keystrokes. +Scroll the target pid. Two addressing paths: -Mapping: `by='page'` → PageDown/PageUp × amount; `by='line'` → DownArrow/UpArrow × amount. Horizontal variants use Left/Right arrow keys. +- **Keystroke** (default — no coordinate/element target): scrolls the focused / page scroller via synthesized keys. `by='page'` → PageDown/PageUp × amount; `by='line'` → Down/Up arrow × amount. Horizontal uses Left/Right. +- **Pixel-wheel** (`element_index` / `element_token`, or window-local `x, y`) — *macOS*: synthesizes a mouse wheel at the target point so the scroll routes to the element under it. Use it to drive a **nested overflow region or an unfocused scroller** the keystroke path can't reach (e.g. a web `overflow` div). Background-safe — no cursor warp, no focus steal. | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `pid` | integer | Yes | Target process ID. | | `direction` | string | Yes | Scroll direction: `up`, `down`, `left`, `right`. | | `by` | string | No | Scroll granularity: `line` (default) or `page`. | -| `amount` | integer | No | Number of keystroke repetitions. Default 3. | -| `element_index` | integer | No | Pre-focuses this element before scrolling. | -| `window_id` | integer | No | Required when `element_index` is set. | +| `amount` | integer | No | Pixel-wheel: number of wheel notches. Keystroke: number of key repetitions. Default 3. | +| `element_index` | integer | No | Element from last `get_window_state`. macOS: pixel-wheel at its center (e.g. a nested overflow region located in the AX tree); other platforms: pre-focuses it before the keystroke scroll. | +| `element_token` | string | No | Per-snapshot element handle (`structuredContent.elements[].element_token`); precedence over `element_index`. macOS: pixel-wheel at its center. | +| `x` | number | No | Window-local screenshot X (top-left origin). With `y`, macOS pixel-wheel at this point — for a scrollable surface not in the AX tree. Requires `window_id`. | +| `y` | number | No | Window-local screenshot Y. See `x`. | +| `window_id` | integer | No | Required when `element_index` / `x, y` is set. | ```json {"direction": "down", "pid": 844} @@ -418,6 +481,19 @@ After a zoom, pass `from_zoom=true` to `click`/`type_text` to auto-translate coo --- +## Action response shape + +Action tools (`click`, `double_click`, `right_click`, `drag`, `scroll`, `type_text`, `press_key`, `hotkey`, `set_value`) return these structured fields: + +| Field | Type | Meaning | Value set / presence | +| ----- | ---- | ------- | -------------------- | +| `path` | string | Delivery rung that ran. | `"ax"`, `"cgevent"`, `"cgevent_fg"`, `"key_events"`, `"key_events_fg"`, `"pixel"`, `"x11_atspi"`, `"x11_pixel"`, `"x11_pixel_fg"`, `"msaa"`. | +| `verified` | boolean or absent | AX read-back verification result. `true` means the driver read the effect back through AX; `false` means the action dispatched but is unconfirmed; absent means the tool does not carry this field. | `true`, `false`, or absent. | +| `effect` | string | Action confidence signal. | `"confirmed"`, `"unverifiable"`, `"suspected_noop"`. | +| `escalation` | object or absent | Machine-readable next-rung recommendation. Present only when the driver recommends climbing the ladder. | `{ recommended: "px" \| "foreground" \| "page", reason: string }`, or absent. | + +--- + ## Browser tools ### `page` @@ -433,6 +509,10 @@ Interact with the browser page loaded in a running app. Supports Chrome, Brave, | `query_dom` | Find elements matching a CSS selector. | | `click_element` | Click a CSS-selected element and animate the agent cursor to its on-screen center. | | `enable_javascript_apple_events` | macOS-only: patch the browser's Preferences to allow JS from Apple Events. Requires `user_has_confirmed_enabling: true` and a browser restart. | +| `insert_text` | Set text into the focused field via CDP (fast DOM insert). **macOS-only** — see note below. | +| `type_keystrokes` | Type text as per-character key events via CDP (fires JS key handlers). **macOS-only** — see note below. | + +`get_text`, `query_dom`, `click_element`, and `execute_javascript` work cross-platform (macOS, Windows, Linux). `insert_text` and `type_keystrokes` are implemented on macOS only for now; Windows and Linux return a clear "not implemented" error rather than a silent no-op. Tracked in [trycua/cua#2084](https://github.com/trycua/cua/issues/2084). | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | @@ -445,6 +525,9 @@ Interact with the browser page loaded in a running app. Supports Chrome, Brave, | `selector` | string | No | CSS selector for `click_element`. | | `bundle_id` | string | No | Bundle ID of the browser. Required for `enable_javascript_apple_events` (macOS only). | | `user_has_confirmed_enabling` | boolean | No | Must be true to proceed with `enable_javascript_apple_events`. | +| `text` | string | No | Text for `insert_text` / `type_keystrokes`. | +| `cdp_port` | integer | No | Chromium remote-debugging port for the CDP path. | +| `target_url_contains` | string | No | Substring to pick the target tab by URL (CDP). | ```json {"action": "get_text"} @@ -522,7 +605,7 @@ Caveats: ### `set_config` -Update cua-driver-rs configuration. Changes to `capture_mode` and `max_image_dimension` take effect immediately. The `experimental_pip` keys are persisted to `~/.cua-driver/config.json` and take effect on the next daemon restart. +Update cua-driver-rs configuration. Changes to `max_image_dimension` take effect immediately. `capture_mode` is now deprecated and ignored — setting it has no effect (`get_window_state` returns both the tree and a screenshot regardless). The `experimental_pip` keys are persisted to `~/.cua-driver/config.json` and take effect on the next daemon restart. Two equivalent argument shapes are accepted on every platform: a **direct field** (`{"capture_scope": "desktop"}`) or a **`{key, value}` pair** (`{"key": "capture_scope", "value": "desktop"}`, the same shape the CLI `config set` uses). A direct field wins if both are supplied. @@ -530,7 +613,7 @@ Two equivalent argument shapes are accepted on every platform: a **direct field* | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | -| `capture_mode` | string | No | Default capture mode for `get_window_state`. | +| `capture_mode` | string | No | **Deprecated and ignored** — accepted for back-compat but has no effect; `get_window_state` returns both the tree and a screenshot regardless. | | `max_image_dimension` | integer | No | Max dimension for screenshot resizing. 0 = no limit. | | `experimental_pip` | boolean | No | Enable the experimental picture-in-picture preview window. Applies on next daemon restart. | | `experimental_pip_geometry` | string | No | PiP window size + optional position in `WxH` or `WxH+X+Y` form (e.g. `320x200+24+24`). Applies on next daemon restart. | @@ -581,7 +664,7 @@ Configure the visual appearance and motion curve of an agent cursor instance. | Argument | Type | Required | Description | | -------- | ---- | -------- | ----------- | | `cursor_id` | string | No | Instance name. Default: `"default"`. | -| `cursor_icon` | string | No | Built-in (`arrow`, `crosshair`, `hand`, `dot`) or PNG/SVG file path. | +| `cursor_icon` | string | No | Built-in silhouette (`arrow`, `teardrop`) or a path to a PNG/JPEG/SVG/ICO file. `""` reverts to the default (`teardrop`). Same vocabulary as the CLI `--cursor-shape` / `--cursor-icon` flags. | | `cursor_color` | string | No | Hex color (e.g. `"#00FFFF"`) or CSS name. | | `cursor_label` | string | No | Short text shown near the cursor. | | `cursor_size` | number | No | Dot radius in points. Default 16. | @@ -612,7 +695,7 @@ Update the visual style of the agent cursor overlay. | `cursor_id` | string | No | Cursor instance. Default: `"default"`. | | `gradient_colors` | array of string | No | CSS hex gradient stops tip→tail. Empty array reverts to default palette colours. | | `bloom_color` | string | No | Hex bloom/halo colour (e.g. `"#00FFFF"`). Empty string reverts to default. | -| `image_path` | string | No | Path to PNG/JPEG/SVG/ICO cursor image. Empty string reverts to procedural arrow. | +| `image_path` | string | No | Path to PNG/JPEG/SVG/ICO cursor image. Empty string clears the override, reverting to the default silhouette (`teardrop`). | --- diff --git a/docs/content/docs/reference/cua-driver/meta.json b/docs/content/docs/reference/cua-driver/meta.json index d02b4c3f48..69cabab4bd 100644 --- a/docs/content/docs/reference/cua-driver/meta.json +++ b/docs/content/docs/reference/cua-driver/meta.json @@ -1 +1 @@ -{ "title": "Cua Driver", "pages": ["cli-reference", "mcp-tools", "contracts", "limits"] } +{ "title": "Cua Driver", "pages": ["cli-reference", "mcp-tools", "contracts", "limits", "modality-test-suite"] } diff --git a/docs/content/docs/reference/cua-driver/modality-test-suite.mdx b/docs/content/docs/reference/cua-driver/modality-test-suite.mdx new file mode 100644 index 0000000000..1d7f956a85 --- /dev/null +++ b/docs/content/docs/reference/cua-driver/modality-test-suite.mdx @@ -0,0 +1,624 @@ +--- +title: Modality Test Suite & Harnesses +description: How the Cua Driver modality test suite and per-OS app harnesses work — action rungs, scopes, the action matrix, and per-platform results. +--- + +This document describes the cua-driver test-harness: a cross-OS, cross-toolkit +rig that exercises every driver action against a controlled application and +scores each action **twice** — did it land an effect, and did it keep the app in +the background. It is the authoritative map of *which driver mechanisms work +where*, and why each limitation manifests in the mode/scope it does. + +## 1. Overview — what the suite validates + +The suite validates two things, per driver action, per surface: + +1. **The no-foreground / background contract** — cua-driver's differentiator. + The driver is supposed to drive an app **without bringing it to the + foreground** and **without moving the visible cursor** (it dispatches via the + accessibility tree or via background coordinate injection, and paints a + per-session overlay cursor instead of warping the real pointer). The suite + measures, for every action, whether the target app stayed in the background + (`held`) or jumped frontmost (`STOLE FOCUS`). + +2. **Cross-toolkit dispatch coverage** — whether an action *actually lands* on + each UI toolkit. The same 8-action × 6-control matrix runs against WPF, + WinUI3, WebView2, Electron (Windows), GTK3 + Electron (Linux), and AppKit, + SwiftUI, WKWebView, Electron (macOS). Toolkits route input differently (UIA + Invoke vs AT-SPI `doAction` vs AX actions vs synthetic pixels vs composition + input-sites), so "click works" is a per-toolkit, per-dispatch-path fact, not + a global one. + +**Scope caveat — this tests driver *mechanisms*, not agent task success.** A cell +that reads ✓ means the driver delivered the action and the target's own +instrumented state changed (a checkbox toggled, a slider moved, `last_action=` +updated). It does **not** mean an LLM agent located the control correctly or +chose the right action. Agent locator quality and agent self-judgment are +explicitly kept on separate axes (see §7) so a bad locator can never mask — or be +masked by — a driver regression. + +--- + +## 2. How the suite works — the modality recorder + +The core instrument is the **modality recorder** (one per OS: +`windows/wpf-recorder.ps1`, `linux/lin-rec.py` + `lin-rec-electron.py`, +`macos/mac-rec.py`). Each run produces one annotated screen recording: + +- **Test harness on the LEFT**, **`cua-driver-panel` dashboard on the RIGHT** + (always-on-top). The dashboard is a tiny HTML page served over loopback and + shown via a `chrome --app` (Windows/macOS) or WebKit (Linux) window; it polls a + `status.json` the recorder writes (~5 Hz) and renders the live verdict. +- The dashboard shows the run's **modality**, a live **foreground/background + indicator** (current frontmost window title), and a **per-action** dual verdict. +- The pink/cyan overlay is the driver's **per-session agent cursor** — proof the + driver is acting without a real pointer move. + +### The 5 modality modes (per surface) + +Action rung × foreground/background × scope = 5 single-modality runs: + +| Mode | Action rung | Dispatch | Foreground? | Scope | +|------------------|-----------------------|-----------------|-------------|-----------| +| `ax-fg` | element `ax` action (accessibility) | `element_index` | app kept FRONT | window | +| `ax-bg` | element `ax` action | `element_index` | app stays BACKGROUND (contract measured) | window | +| `px-fg` | element `px` action (pixel) | pixel coords | app kept FRONT | window | +| `px-bg` | element `px` action | pixel coords | app stays BACKGROUND (contract measured) | window | +| `px-desktop` | element `px` action | screen pixels (window-less) | FRONT | desktop | + +The run names use `ax`/`px` as labels for the +element-dispatch vs pixel-dispatch runs; **`capture_mode` itself is now +deprecated and ignored** — `get_window_state` returns both the tree and a +screenshot regardless of what you pass. The distinction the recorder exercises +is the **action rung** (the element `ax` action addressing by `element_index` +vs the element `px` action addressing by pixel `x,y`), not a capture toggle. + +The fg/bg split only matters for the contract (measured in the `*-bg` runs). +`px-desktop` sets `capture_scope=desktop` and issues window-less, +screen-absolute actions. + +### Dual scoring per action + +Every action row carries **two independent measurements** (rendered as two +badges on the dashboard): + +1. **✓ worked / ✗ no-op (effect)** — did the action change the harness's *own* + state? Read back after the action via the harness's instrumented status + labels (`agreed=`, `slider_value=`, `last_action=`, `mirror=`, `menu_action=`, + `scroll_offset=`). +2. **held / STOLE FOCUS (contract)** — sampled for ~1.5 s after the action: did + the target window's title become the frontmost window? In fg modes this badge + is replaced by `foreground` (steal is expected/intentional). + +The dashboard tally at the bottom is the live count: `effects: N/M actions +changed the app` and, in bg modes, `focus contract: S/A stole focus`. + +### How the verifier reads each toolkit's instrumented labels + +The harnesses all expose the **same set of status labels** (single source of +truth: `shared/scenarios.json` + `shared/web/index.html`), but the verifier +reads them differently per platform: + +| Platform / toolkit | How the verifier reads state | +|-------------------------------|------------------------------| +| Windows WPF / WinUI3 | **UIAutomation** — finds the harness window by title substring, scans `ControlType.Text` descendants, regex-extracts `agreed=`, `slider_value=`, `last_action=`, `mirror=`, `menu_action=`, `scroll_offset=` | +| Windows WebView2 / Electron | Same UIA scan, but the window is matched by **substring** because Chromium titles carry a `[cdp=NNNN]` suffix; the web-AX tree only surfaces with `--force-renderer-accessibility` | +| Linux GTK3 | The harness writes a **state file** (`/tmp/cua-lin-state.json`); the recorder's `hstate()` reads it (AT-SPI text isn't reliably enumerable for all labels) | +| Linux Electron | Chromium **web-AX over AT-SPI** (`--force-renderer-accessibility`), read from the `get_window_state` tree | +| macOS AppKit / SwiftUI | **AX** — status labels render as AX text nodes in `tree_markdown`; `do_native()` drives the action, then re-reads the labels | +| macOS WKWebView / Electron | Chromium/WebKit web-AX text (`WEBISH` path), same label contract | + +The per-action `verify(action, before, after)` logic is consistent across +recorders, e.g.: `click` → `agreed` flipped; `double` → `last_action == +double_click`; `right` → `last_action == right_click` **or** `menu_action` +changed; `drag` → `slider` increased; `scroll` → `scroll_offset` increased; +`setval` → `mirror == set-by-cua`; `type` → `mirror` contains `typed-by-cua`; +`press-key` (Tab) → no asserted effect (`na`). + +> **Honesty principle (FINDINGS.md):** the harness/recorder stays honest — real +> driver gaps are documented as driver work, fixed in the driver first, then +> re-recorded. The recorder does not paper over a no-op. + +### Session lifecycle & disposal + +Each recorder declares a **session** (the agent-cursor identity, e.g. `d1` / +`macd-…`) via `start_session`, drives every action under it, and must +`end_session` it on teardown so the cursor + per-session state are disposed — +not leaked. + +- **Disposal is double-guarded.** `end_session` and the **idle-TTL sweep** + (`evict_idle`, default **300 s**, overridable via + `CUA_DRIVER_RS_SESSION_IDLE_TTL_SECS`, swept every 30 s) both dispose through + the same `fire_session_end` hook fan-out: agent cursor removed, recording + stopped, per-session config cleared. A reused id starts **fresh, not poisoned**. +- **Test:** `cua-driver-core/tests/session_lifecycle.rs` asserts start → use → + `end_session` disposes (and a reused id starts fresh), and that idle-TTL + eviction disposes the **same** way — verified via the disposal-hook contract + both paths fan out to (the concrete cursor/config registries are a daemon-layer + assertion). It passes a short TTL straight to `evict_idle`; the **300 s + production default is never lowered** for tests. +- **The recorders dispose explicitly** — `end_session` in a `try/finally` before + they kill the daemon (`mac-rec.py` via an `atexit` net, since it leaves the + daemon running) — so a session can't leak even if a run errors. + +--- + +## 3. Test-app harnesses + +Each harness is a self-contained host app the driver drives. They share fixtures +via `shared/scenarios.json` (AutomationIds / AX identifiers / DOM ids / +window titles) and, for the web hosts, `shared/web/index.html`, so identifiers +never drift between apps and the Rust integration tests under +`rust/crates/cua-driver/tests/harness_*.rs`. Built outputs stage into +`rust/test-apps/harness-{name}/` via `build/{macos.sh,windows.ps1,linux.sh}`. + +### The 6 parity controls + +The "control-parity pass" brought every surface up to the WPF baseline of **6 +controls**, so the same 8-action matrix is exercisable everywhere: + +1. **checkbox** (`chk-agree*`) → `agreed=` +2. **click-target** (left / right / double) → `last_action=`, `clicks=` +3. **slider** (`sld-value`) → `slider_value=` +4. **scroll-target** (tall `scroll-tall` region) → `scroll_offset=` +5. **text-input** (`txt-input`, mirrored) → `mirror=` +6. **context-menu** (`btn-context`) → `menu_action=` + +(Plus a `counter=` increment button used as a generic AX-press probe.) WPF +carries an extended scenario set on top (modal MessageBox, owned/layered popups, +native Win32 child HWND, menu bar, combo/list boxes) — it is the "fullest +harness". + +### Per OS / toolkit + +| OS | Harness | What it is | Build | Source | +|---------|-----------|------------|-------|--------| +| Windows | **WPF** | WPF / UIA host — popups, layered windows, modal MessageBox, HwndHost native child | `build/windows.ps1` → `harness-wpf` | `apps/windows/wpf/` (C#/XAML) | +| Windows | **WinUI3** | WinUI3 unpackaged — DirectComposition popups, XAML Popup primitive, CommandBarFlyout; HWND subclassed to translate `WM_VSCROLL` → `ChangeView` | `build/windows.ps1` → `harness-winui3` | `apps/windows/winui3/` | +| Windows | **WebView2** | WPF host + `Microsoft.Edge.WebView2` loading the shared DOM; CDP on `:9222` | `build/windows.ps1` → `harness-webview` | `apps/windows/webview2/` | +| Windows | **Electron** | Electron host loading the same shared DOM; CDP on `:9223` | `apps/cross-platform/electron/build.ps1` | `apps/cross-platform/electron/` | +| Linux | **GTK3** | PyGObject GTK3 app; AT-SPI exposes accessible **NAME** (not an AutomationId); writes `/tmp/cua-lin-state.json` for the verifier | `build/linux.sh` → `harness-gtk3` | `apps/linux/gtk3/main.py` | +| Linux | **Electron** | Same Electron bundle run from `node_modules` under Xvfb + dbus with `--force-renderer-accessibility` | run via `lin-run-electron.sh` | `apps/cross-platform/electron/` | +| macOS | **AppKit** | Cocoa — NSButton, NSScrollView, NSMenu, NSSlider, menubar item | `build/macos.sh` → `harness-appkit` | `apps/macos/appkit/main.swift` | +| macOS | **SwiftUI** | SwiftUI — `.popover()`, `.contextMenu`, declarative `Slider`/`Toggle`/`ScrollView` | `build/macos.sh` → `harness-swiftui` | `apps/macos/swiftui/main.swift` | +| macOS | **WKWebView** | Apple WebKit host loading the shared DOM — the native analogue of WebView2 | `build/macos.sh` → `harness-wkwebview` | `apps/macos/wkwebview/main.swift` | +| macOS | **Electron** | Same shared DOM under Chromium-on-macOS | `apps/cross-platform/electron/build.sh` | `apps/cross-platform/electron/` | + +### Instrumented labels (the verifier contract) + +Every harness updates these labels in response to a successful action; the +verifier asserts on them: + +| Label | Set by | Verifies | +|------------------|--------------------------------|----------| +| `last_action=` | click-target (left/right/double)| click / double / right landed | +| `clicks=` | click-target | click count | +| `slider_value=` | slider | drag / set_value on a range control | +| `scroll_offset=` | scroll-target | scroll landed | +| `agreed=` | checkbox | click toggled a toggle | +| `menu_action=` | context-menu item | right-click → context menu → item invoked | +| `mirror=` | text-input | type / set_value into a text field (`typed-by-cua` / `set-by-cua`) | +| `counter=` | increment button | generic AX-press probe | + +--- + +## 4. Action rungs & scopes + +### Action rung (how the action addresses the target) + +`get_window_state` is perception-mode-agnostic: it returns **both** the +accessibility tree and a screenshot by default (`include_screenshot:false` skips +the screenshot grab — a perf opt-out, not a modality choice). `capture_mode` is +**deprecated and ignored** — there is no `ax`/`vision` capture toggle anymore. +The modality is chosen at **action time** by how you address the target, and +that one choice selects the rung: + +| Rung | How the agent addresses the target | How actions dispatch | +|------|------------------------------------|----------------------| +| element `ax` action | by `element_index` (read off the tree) | UIA Invoke (Windows) / AT-SPI `doAction` (Linux) / AX actions (macOS) — backgroundable, driver-verifiable | +| element `px` action | by pixel `x,y` (read off the screenshot in the same response) | synthetic/injected pointer events at (x,y) — best-effort, caller-confirmed | + +> **Deprecated aliases.** `som` (the old set-of-marks mode) and `screenshot` are +> no longer advertised capture modes — like `ax`/`vision`/`capture_mode` itself, +> they still decode but are **ignored** (both the tree and the screenshot come +> back regardless). The modality recorder's runs exercise the element-dispatch +> path and the pixel-dispatch path, so the recorder runs and the results matrices +> below are unchanged — they are framed here as the element `ax` action and the +> element `px` action rungs. + +### Capture scope (`capture_scope`) + +| Scope | Meaning | +|-----------|--------------------------------| +| `window` | single target window (default) | +| `desktop` | full display | + +### Why mode/scope determines where a limitation shows + +This is the central organizing idea (from `CUA_DRIVER_LIMITATIONS_AND_TEST_MATRIX.md`): + +- **The element `ax` action (`element_index`) path.** Limits in the element path + (a toolkit with no `doAction` for right-click, a WinUI3 composition input-site + the WPF path can't reach, an AXValue a SwiftUI slider rejects) surface in this + rung — the `ax-` runs. +- **The element `px` action (pixel) path.** Limits in the pixel path (GTK + dropping synthetic X events, NSButton ignoring a synthetic mouseDown, a 2× + Retina coordinate conversion) surface in this rung — the `px-` runs. +- **fg/bg** isolates the *contract* (only `*-bg` measures focus steal). +- **`desktop` scope** is where window-less / coordinate-space-conversion bugs + surface (e.g. the macOS 2× Retina desktop path, the macOS no-windowless-click + gap). + +--- + +## 5. Action × control matrix + +**8 actions** × **6 controls**. Each modality run filters the plan: +`set_value` is dropped in the `px` modes (the pixel-dispatch runs — it's +AX-only); `px-desktop` keeps only `{click, scroll, type, press-key}` +(window-less screen actions). + +| Action ↓ / Control → | checkbox | click-target | slider | scroll-target | text-input | context-menu | +|----------------------|:--------:|:------------:|:------:|:-------------:|:----------:|:------------:| +| **click** | ● (toggle) | ● (left) | | | | | +| **double-click** | | ● | | | | | +| **right-click** | | ● (web/WinUI3 records `last_action`) | | | | ● (opens menu) | +| **drag** | | | ● (thumb→X) | | | | +| **scroll** | | | | ● | | | +| **set_value** (AX) | | | ● (range value) | | ● (`set-by-cua`) | | +| **type** | | | | | ● (`typed-by-cua`) | | +| **press-key** (Tab) | | | | | ● (focus move; no asserted effect) | | + +Notes: +- WPF has a **dedicated context-menu control**; WinUI3 / web harnesses have none, + so right-click is aimed at the click-target and verified via + `last_action=right_click`. +- SwiftUI's AX has no distinct right-press action, so right-click on its button + coerces to a normal AXPress — right-click semantics there are covered by the + dedicated `context_menu` scenario. + +--- + +## 6. RESULTS MATRIX (the core) + +Per cell: **✓ landed · ✗ no-op · ⚠ guarded/fail-loud** for the *effect*, with the +reason. The **Contract** column is the focus verdict measured in the `*-bg` runs. +"land" = the harness's own instrumented label changed. Verification status is +drawn from FINDINGS.md, the limitations doc, and the fix-commit bodies; runtime +status is flagged where a commit deferred it. + +> Legend: ✓ lands · ✗ no-op (honest) · ⚠ guarded clean-fail / fail-loud · +> — not exercised · n/a not in plan / no asserted effect. + +### macOS + +Contract: **HOLDS — 0/8 stole** on AppKit in both `ax-bg` and `px-bg` +(pixel left-click/double/drag landed while Chrome stayed frontmost). WKWebView +also holds — confirming the Windows Chromium steal is Windows-specific, not +WebKit-on-macOS. + +| Harness | mode | click | double | right | drag | scroll | set_value | type | press-key | Contract | Notes | +|---------|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|------| +| AppKit | `ax` | ✓ | ✓ (fixed bg, `click_at_xy_with_window_local`, `80b4e3d7`) | ✓ (AXShowMenu→delivering-pixel fallback, `80b4e3d7`) | ✓ | ⚠ element scroll no-ops on content-height containers (use x,y) | ✓ CFNumber NSSlider (`92d8aebf`, verified 0→50) | ✓ | n/a | **0/8 stole** | ax-bg 5/7 effects | +| AppKit | `px` | ⚠ **no-op on standard NSButton even frontmost** (modal mouseDown reads window-server queue, not `postToPid` → use `element_index`) | ✓ | ✓ now fires `rightMouseDown` (window-number + button + primer, `e7145c18`) | ✓ | ✓ via per-pid pixel-wheel `scroll_wheel_at_xy` (`e7145c18`) | n/a | ✓ | n/a | **0/8 stole** | needs target frontmost; px-bg 4/6 | +| SwiftUI | `ax` | ✓ | ✓ | ✓ (via dedicated context-menu) | ✗ slider drag is a composition no-op | ⚠ nested scroll no-op | ⚠ **AXValue unsettable** (`-25200`); needs AXIncrement/AXDecrement stepping (`d2b29230`) | ✓ | n/a | **0/8 stole** | full 6-control parity confirmed live | +| WKWebView | `ax`+`px` | ✓ | ✓ | ✓ | ✓ slider (pixel drag at live frame) | ⚠ **page scroll works, nested `overflow:auto` div no-op** (div has no `tabindex` → never keyboard-focusable; needs pixel-wheel) | ✗ **AXValue set, no DOM `input` event** (web mirror unchanged) | ✓ | n/a | **HOLDS** | native analogue of WebView2. Recorder fix (`mac-rec.py`): web dispatch now uses the **live element frame**, not a stale hardcoded coord map that was ~185px off → every WKWebView pixel action used to miss. ax-fg re-measured **5/6** (click/double/right/drag/type land; only `set_value` the honest web no-op). | +| Electron (mac) | `ax`/`px` | ✓ | ✓ | — | — | ✗ (web scroll, same as WKWebView) | — | ✓ | n/a | holds (Chromium-on-mac does **not** steal like Windows) | local-only recordings | + +macOS gotchas filed as driver bugs: **`end_session` poisons a reused session id** +(subsequent actions silently no-op); **AppKit window height drifts between +launches** (store targets as window-local points, convert to live screenshot px). + +### Linux + +| Harness | mode | click | double | right | drag | scroll | set_value | type | press-key | Contract | Notes | +|---------|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|------| +| GTK3 | `ax` (AT-SPI) | ✓ left-click via hit-test→`doAction` (`7d358283`) | ✗ no `doAction` equiv | ✗ no `doAction` equiv | ⚠ value-only (no Action) — driven via `set_value` | ⚠ surfaced now (`is_indexable = actions \|\| has_value`); driven via `set_value` | ✓ slider/scroll value widgets now surface | ✓ | n/a | ax-bg **1/8 stole** (only `set_value`; corrected via genuine-anchor baseline `5c0a1d3c` — was 3/8) | left/set_value/type land | +| GTK3 | `px` (Xvfb) | ✗ | ✗ | ✗ | ✗ | ✗ | n/a | ✗ | n/a | **0/7 stole** | **GTK drops synthetic XSendEvent**; XTEST core events don't reach its XInput2 path | +| GTK3 | `px` (**real Xorg**) | ✓ | ✓ | ✓ | ✓ | ✓ | n/a | ✓ | n/a | holds focus | right/double/middle-click + scroll **land via uinput/XInput2-MPX + shield-grab** (`79e546ca`); capability auto-detected via `real_pointer_input_available()` — **runtime-verified on a real Xorg server (dummy-driver): the probe flips TRUE, all four actions LAND and HOLD focus (`_NET_ACTIVE_WINDOW` unchanged), confirmed by the harness oracle + a middle-click PRIMARY paste. Xvfb can't bind uinput as an X slave, so the path auto-skips there.** | +| Electron (Linux) | `ax` | ✓ click | ✗ | ✗ | ✓ drag | ✗ scroll resolves but no-op (AT-SPI synthetic) | ✗ | ✓ type | n/a | ax-bg **2/8 stole** (`set_value` + `drag`; was 3/8 — recorder baseline artifact, `5c0a1d3c`) | drag lands a value-change but its synthetic window-coord activates Chromium (never reaches the slider thumb); still holds far better than Windows Electron's reported 7/8 (also an artifact) | +| Electron (Linux) | `px` | ✗ | ✓ pixel double-click fires on click-target | ✗ | ✗ | ✗ | n/a | ✗ | n/a | px-bg **6/7 stole** (pixel dispatch foregrounds Chromium) | | +| GTK4 (gnome-calculator) | `ax` (AT-SPI) | ✓ via `doAction` (coordinate-free; lands without a valid `frame`) | ✗ no `doAction` equiv | ✗ no `doAction` equiv | ⚠ value-only (no Action) — driven via `set_value` | ⚠ driven via `set_value` | ✓ | ✓ | n/a | holds | **GTK4 coord fix required for `frame`/agent-cursor.** GTK4's AT-SPI bridge returns `Component.GetExtents(SCREEN)=(0,0)` for every widget (GNOME/gtk #1564/#1739 a11y rework). Fix: queries `CoordType::Window` (GTK4 reports correctly per-widget) and reconstructs screen as `x11_window_origin + _GTK_FRAME_EXTENTS.(left,top) + WINDOW_xy`, gated on presence of `_GTK_FRAME_EXTENTS` so non-GTK toolkits (Qt) keep their correct SCREEN path. Verified live: button "7" = window(55,27) + inset(61,55) + WINDOW(16,293) = screen(132,375). `doAction` element clicks land regardless (coordinate-free). GNOME VM lane only. | +| GTK4 (gnome-calculator) | `px` (real Xorg) | ✓ (after GTK4 coord fix) | ✓ | ✓ | ✓ | ✓ | n/a | ✓ | n/a | holds | Pixel coords reliable **only after** WINDOW+`_GTK_FRAME_EXTENTS` reconstruction; without the fix, cursor/frame collapses to the window corner. GNOME Shell requires real console Xorg (software GLX) — not Xvnc. | + +### Windows + +Contract: **HOLDS on WPF / WinUI3 / WebView2.** **Electron** — see the caveat +below (the prior "7/8 stole" is a recorder measurement artifact). + +| Harness | mode | click | double | right | drag | scroll | set_value | type | press-key | Contract | Notes | +|---------|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|------| +| WPF | `ax` | ✓ (UIA Toggle) | ✓ | ⚠ off-screen at 556px reflow → clean no-op (guarded; UIA Invoke works off-screen) | ✓ slider 0→48 | ⚠ off-screen reflow → guarded no-op | ✓ (`mirror=set-by-cua`) | ✓ (recorder focuses the box first) | n/a | **2/8 stole** | "fullest harness"; ax-bg ~5/7 effects | +| WPF | `px` | ✓ | ✓ | ⚠ guarded (`point_in_window_bounds` refuses off-screen point; off-screen controls now ScrollIntoView + actuate via ancestor ScrollPattern, `c3efb587`, runtime-verified counter 0→1) | ✓ | ⚠ off-screen reflow | n/a | ✓ | n/a | 1–2/7 stole | off-screen guard prevents taskbar misfire | +| WinUI3 | `ax` | ✓ left-click (UIA Invoke) | ✓ **now LANDS** — double UIA-Invoke under `WS_EX_NOACTIVATE` guard (`531aa6de`, runtime-verified live) | ⚠ **fail-loud `background_unavailable`** — no contract-safe path (pen injection steals; WM_*BUTTON doesn't land) | ⚠ fail-loud (same composition input-site gap) | ✓ (HWND subclass: `WM_VSCROLL`→`ChangeView`) | ✓ | ✓ | n/a | **0/7 stole** | gap needs a WinUI3-specific composition InputSite path | +| WebView2 | `ax` | ✗ checkbox below the fold (web won't scroll in ax) | ✓ | ✓ records `last_action=right_click` | ✓ | ✗ host HWND doesn't route scroll to renderer | ✓ | ✓ | n/a | **0/7 stole** | needs `--force-renderer-accessibility`; 4/7 effects | +| Electron | `ax` | ✓ | ✓ | — | ✓ | ✗ web scroll | ✓ | ✓ | n/a | **see caveat** | 5/7 effects | + +Other Windows: **UIA element-cache use-after-free** (concurrent `ax` sessions on +the same window) — fixed with a `RetainedElement` retain-under-lock guard +(`d95b89a1`); proven by a deterministic `cache_uaf_repro` test (pre-fix path +takes a real access violation, fixed path survives a 6-thread stress loop, +`531aa6de`). Recording the VM needs **Session 2 attached** (`tscon … /dest:console`) +and **ffmpeg on PATH before `serve`**. + +> **Windows Electron contract caveat — RESOLVED.** FINDINGS.md records Electron as +> stealing **7/8** in `ax-bg`. That was a **recorder MEASUREMENT ARTIFACT**: the +> recorder re-asserted its dashboard panel with `SetWindowPos` (z-order only, no +> activation), so it never held a real foreground baseline — after the first inject +> action click-activated Chromium, the harness stayed frontmost and every later +> step false-positived as a steal. The recorder was fixed (`49bdb41b`) to genuinely +> `SetForegroundWindow` a real non-harness anchor (mspaint) before each step. +> **Re-measured: Electron `ax-bg` = 0/8 (held)** — corroborated by `baseline.log` +> (anchor held ×8), an independent `metric.log` `MEASURE=0/8`, and frame f03 (actions +> landed while the harness stayed non-foreground). So **Electron HOLDS the contract**, +> consistent with Linux/macOS Electron. (The committed `matrix-electron-ax-bg.mp4` +> still shows the old 7/8 until re-recorded with the fixed recorder.) + +--- + +## 7. Vision-agent coordinate test + +`vision-agent-test/` (`vision_agent_test.py`, `010fdd78`) is a newer test that +hits the driver **the way a vision agent actually does** — and removes the +modality recorder's overfit (hand-tuned window-local points run through a private +ratio, which never exercises the driver's image→screen mapping). + +**Invariant under test:** *the pixel an agent reads off the returned screenshot is +the pixel that gets clicked* — verified by the target's own instrumented state +changing. + +The loop (no cheating in locate or click): +1. **capture** — `get_window_state` (window — reads the screenshot it returns by + default) / `get_desktop_state` (desktop, true pixels): the exact image an agent + receives. +2. **locate** — a deterministic pixel **in the returned-image coordinate space** + (`PixelRegistryLocator`: a pre-measured pixel read off the real PNG, with a + dims-guard that fails loud if the pinned geometry drifts). No `element_index`, + no hand-converted window-local points. `locate(image, target, dims) → (x,y)` + is pluggable (an LLM locator can drop in later). +3. **act** — `click`/`right_click`/`scroll` at that pixel (scope matches capture). +4. **verify** — the harness oracle (`last_action=`, `clicks=`, …) → objective + pass/fail. A coordinate mis-map leaves the oracle unchanged → FAIL. + +Run: `python3 vision_agent_test.py {wkwebview-click-window|wkwebview-click-desktop|appkit-click-window|safari-learnmore-desktop|all}`. + +**Three axes kept separate** so none can mask the others: (a) the **driver +coordinate invariant** (this test, deterministic → the regression guard); (b) +**agent locator quality** (future, LLM, same `locate()` signature, scored +separately, never gates the regression); (c) **agent self-judged success with no +oracle** (future, isolated track). + +What the deterministic version caught that the modality suite structurally +couldn't: +- **2× Retina desktop path now correct + guarded** — pixel (340,1358) in the + 3024×1964 desktop PNG converts to screen-point (170,679) and lands (oracle + + a real Safari navigation confirm it). This turns the Retina escape into a + permanently-guarded one-liner. +- **Pixel-click is a no-op on AppKit `NSButton` even frontmost** (modal + mouseDown reads the window-server queue, not the per-pid `postToPid` queue) — + the modality suite drives this via AXPress, so it never saw it. +- **The pixel path requires the target app frontmost** (the AX path doesn't). +- **The AppKit harness window AX returns only the menu bar** — its `clicks=` + oracle is unreachable that way; WKWebView exposes it fine. + +--- + +## 8. Known overfitting caveats + +The suite's own authors flag two ways the modality recorder could have lied, and +the de-risking work for each: + +**(a) Recorder hand-coords masked the desktop 2× Retina bug.** The modality +recorder stores targets as hand-tuned window-local points and converts them +through a private ratio. That conversion is *self-consistent* with the driver's +own assumption, so it never exercised the driver's real image→screen mapping — +and the **desktop-scope 2× Retina off-by-backing-scale bug** (a center-pixel pick +warping to the corner) slipped through every `px-desktop` run. De-risk: the +**vision-agent coordinate test** (§7) reads a pixel straight off the returned PNG +with a dims-guard, caught the bug, and now guards it (`80b4e3d7` fixes the desktop +branch to divide x,y by the native/logical ratio; `010fdd78` adds the regression +test). + +**(b) Recorder contract measurement had no real foreground baseline → the false +"Electron 7/8 stole".** The recorder judges the contract by checking whether the +target's title is the frontmost window, but it never established a genuine, +distinct foreground window to begin with — so Windows Electron read as stealing +**7/8** when the corrected understanding is that Chromium-on-Windows holds the +contract (matching macOS/Linux Electron). De-risk: the **recorder-contract fix** +(`49bdb41b`) now genuinely `SetForegroundWindow`s a real anchor before each step; +**re-measured Electron `ax-bg` = 0/8 (held)**, so the claim is now verified and the +legacy FINDINGS "7/8" is a confirmed measurement artifact. The Linux recorders had +the same flaw — also fixed (`5c0a1d3c`): GTK3 + Linux-Electron `ax-bg` corrected +3/8 → 1/8 (only `set_value` genuinely steals); macOS was already fine. + +> Both caveats reflect the same lesson: a recorder that hand-feeds the driver its +> own assumptions can hide bugs in exactly the path a real agent uses. The +> deterministic, oracle-checked vision-agent test and the re-baselined contract +> measurement are the two structural fixes. + +--- + +## 9. Edge cases — real closed-source apps + +The synthetic harnesses pin down the heuristics; real apps surface behaviours a +single-process test window never can. These were found driving live closed-source +apps (Finder, System Settings, Calculator, Safari on macOS; Calculator/Notepad UWP, +Edge, Explorer on Windows) and are why the suite is a floor, not the ceiling. + +### macOS (Finder, System Settings, Calculator, Safari) + +1. **Pixel click hits the right pixel but the wrong window.** With ~8 overlapping + same-pid Finder windows, a crosshair dead-centre on the target file still posts to + *screen* coordinates, so an occluding sibling intercepts it → no-op. A per-window + screenshot masks it. Strong argument for the `ax`/element path, which is z-order + independent. +2. **`set_value` and `type_text` both falsely succeed on a background search field** + (System Settings, SwiftUI). `set_value` writes `AXValue` (text appears, the search + action never fires); `type_text` posts keys that a non-first-responder window drops. + Neither drives the field; **both report success.** +3. **Finder column filenames don't advertise `AXPress`** → a default click is an honest + no-op; the driver surfaces `AXOpen`/`AXShowMenu`/`AXConfirm`, so an agent must pick + `action:"open"`/`"pick"`. +4. **The Calculator result is AX-invisible** (no AX node for the display) → an AX-only + agent can't read the answer; the keypad itself is labelled. A `vision` readout is + required. +5. **AppKit AX-tree duplication** (System Settings ~half duplicated, Safari a duplicated + toolbar) plus whole-menu-bar walking inflates real-app context versus synthetic. + +### Windows (Calculator/Notepad UWP, Edge, Explorer) + +A. **UWP window-identity split.** `launch_app("Calculator")` returns the package backing + PID and a `window_id` that's stale by the next call; the real top-level HWND belongs to + `ApplicationFrameHost.exe`. Driving by the returned pid+window_id errors `No window with + window_id … exists`. The driver should resolve UWP windows to their `ApplicationFrameHost` + host / relink the churned HWND. +B. **Real UWP is drivable via the element path without the uiAccess worker.** Calculator's + `num5Button` drove the display 0→5 via UIA Invoke from the Medium-IL daemon with no + `cua-driver-uia.exe` running. This refines the `#1602`/`serve.rs` assumption: only the + **pixel/SendInput** path needs the uiAccess worker for AppContainer apps — the + **`element_index` UIA Invoke/ValuePattern path works on real UWP as-is.** +C. **Real Edge (Chromium) holds the foreground contract.** With Notepad pinned top, 3× + click + double-click + right-click on background Edge left the z-order unchanged + (`(background, no foreground swap)`). The shield validated on synthetic Electron (0/8) + **generalises to a real closed-source Chromium** — and the double/right-click that needed + the WinUI3 composition fix synthetically just work on real Chromium in the background. +D. **`element_index` requires `pid` (+`window_id`).** Element actions with `element_index` + alone fail-fast with `Missing required integer field: pid`. Correct, but the MCP tool + descriptions under-emphasise it — an agent that omits `pid` and filters stderr perceives a + silent no-op. The `element_index` tool schemas should state `pid`'s necessity explicitly. +E. **`get_screen_size` under-reports desktop width** (1024 reported vs 1824 actual span, + likely an RDP dynamic-resolution artifact). The element path is unaffected (window-local + frames stay consistent); a pixel/`vision` agent computing against 1024 width misplaces + clicks in the right ~800 px band. + +F. **⚠ Unhandled-protocol `launch_app` deadlocks the whole daemon (DoS-class).** Launching an + app whose protocol has no registered handler (e.g. `bingmaps:` with Maps uninstalled) spawns + Windows' "you'll need a new app" modal **on the daemon's session desktop** and blocks the + worker thread inside the shell-launch call. The client wedges indefinitely and a subsequent + `stop` reports "daemon is not running" because the wedged daemon can't service the pipe; + recovery needs the modal dismissed from inside that session (Session-0 SSH can't see it — + per-session window stations). **Any bad app name/protocol is a full-daemon DoS.** The driver + should launch via a non-blocking path with a timeout and/or validate handler registration + before `ShellExecute`. (Needs a fix + a tracking issue.) +G. **One `ApplicationFrameHost` pid multiplexes N unrelated UWP apps** (Settings, Calculator, + and Store were all hosted under the same pid). Anything keying state/cursor/element-cache by + `pid` alone is ambiguous across apps — only `window_id` is a real identity. (Generalises A.) +H. **`launch_app`'s return contract is effectively per-app-architecture** — three topologies + seen across five apps: brokered/`pid:0` (Settings, Store), real-pid-but-empty-`windows` race + (Photos exposes its pid a beat before its HWND), and clean pid+window (Snipping Tool, the + well-behaved baseline). Store is a three-way split: launch-pid `0` ≠ window-pid (AFH) ≠ + content-pid (`WinStore.App`), yet UIA still walks fully into the content provider. +I. **The AFH UIA root is a caption-only ~188×32 strip** for Settings and Store while the content + frames are full and correct — the AppFrame chrome and the XAML content are different UIA + providers stitched at the window. A single-provider synthetic WinUI harness won't reproduce + this dual-provider root. + +> Methodology note: on a disconnected-RDP console session, `GetForegroundWindow` returns `0` +> (no foreground window), so focus-steal can't be measured by that probe there — verify "landed" +> by content-state change instead. A single-process harness never hits this. + +--- + +## Linux dispatch ladder — container and VM lanes + +Linux (X11/XFCE and real-desktop VMs) now validates the same `delivery_mode` background/foreground dispatch ladder that macOS and Windows exercise, closing the parity gap. The matrix below shows each modality's path and whether the driver can verify the action landed without a screenshot. + +### Validated modality matrix + +| Modality | `delivery_mode` | Path reported | Driver-verifiable? | +|----------|----------------|---------------|-------------------| +| Element click (`element_index`) | background | `x11_atspi` (AT-SPI `doAction`) | yes — a11y action confirmed | +| Element `px` action (pixel) | background | `x11_atspi` (AT-SPI `doAction`-at-point) for AX apps; else MPX `x11_pixel` | yes when AT-SPI-at-point lands; best-effort otherwise | +| Element `px` action (escalated) | foreground | `x11_pixel_fg` (EWMH activate → inject → restore) | no — confirm via screenshot | +| `type_text` into editable | background | `ax` (AT-SPI `insertText`) | yes (`verified: true`) | +| `type_text`, non-editable focus | background / foreground | `key_events` / `key_events_fg` | no — confirm via screenshot | +| `press_key` / `hotkey` | foreground | `x11_xtest_fg` (XSetInputFocus → XTEST key) | no — confirm via screenshot / effect (`keytest`) | + +Background element `px` actions (pixel clicks) do land on X11: apps that expose AT-SPI take the focus-free `doAction`-at-point path (`x11_atspi`), matching the macOS/Windows background-click behavior. The fallback to MPX `x11_pixel` (which requires a real Xorg server with `/dev/uinput` — unavailable under Xvnc or minimal containers) fires only for non-AX surfaces; escalate to `delivery_mode: foreground` there. + +**Foreground keyboard (`press_key` / `hotkey`, and `type_text` foreground) lands under Xvnc.** The XTEST keyboard path injects on a short-lived X connection; it now **round-trips after injection** so the server delivers the key before the connection closes — under Xvnc a connection that closed right after `flush()` had its queued KeyPress/KeyRelease dropped (pointer events survived the same close, which masked the bug as "foreground clicks work but keys don't"). Two companion fixes: shifted-level symbols (`*`, `+`, `(`) **auto-hold Shift** via slot-0/slot-1 keysym resolution (a bare keycode press emitted the unshifted glyph, e.g. `*`→`8`); and the foreground rung now **`XSetInputFocus`es the target** (KWin honours EWMH `_NET_ACTIVE_WINDOW` as raise-only — fine for clicks that land by stacking, but keys route to the X input focus). `derec.sh keytest` effect-confirms the whole path across toolkits (AC, `3*4=` → display reads `12`). + +### The XFCE container lane + +The `trycua/cua-xfce` Docker image is a reproducible, WM-equipped X11 target — xfwm4 + EWMH + full AT-SPI stack — that exercises both the foreground/EWMH and background AT-SPI modalities. It is richer than the existing Xvfb harness (no window manager, no EWMH) for those paths. + +The harness script lives at `libs/cua-driver/test-harness/linux-container/calc.sh`. It drives galculator through four modalities: background element `ax` click, background element `px` (pixel) click, foreground EWMH type, and background type with focus fallback. + +**Gotchas:** + +- **AT-SPI session-bus auto-discovery.** AT-SPI lives on the desktop session's D-Bus (`DBUS_SESSION_BUS_ADDRESS`). When the daemon starts outside the session (container entrypoint, headless, `runuser`/`su`, systemd system unit, VNC ad-hoc bus), that variable is unset, yielding an empty AT-SPI tree. The driver now auto-discovers the bus at startup — preferring `/run/user//bus`, else reading it from a running desktop-session process's `/proc//environ` (`xfce4-session`, `gnome-session`, etc.). An a11y bus must be running with toolkit-accessibility enabled, and the daemon must run as the desktop user — running the daemon as root against a user session is the Linux analogue of the Windows Session 0 isolation problem. +- **`install-local` refuses root.** Use `runuser -u -- cua-driver serve` to start the daemon as the session owner. +- **Single-instance apps + zombie children.** Unreaped zombie children can pollute `pgrep`; a full daemon restart reaps them. +- **Stale daemon, stale tool schema.** A daemon that was not restarted after an update can serve an outdated tool schema. Verify with `cua-driver describe ` from a fresh shell. + +### Toolkit coverage + +| Toolkit | App under test | Lane | AT-SPI coord path | +|---------|---------------|------|-------------------| +| GTK3 | galculator | Container (XFCE / Kasm, `az exec`) | `SCREEN` — AT-SPI returns correct screen coords | +| GTK4 | gnome-calculator | VM (GNOME Shell, SSH) | `WINDOW` + `_GTK_FRAME_EXTENTS` reconstruction (see below) | +| Qt | kcalc | VM (KDE Plasma, SSH) | `SCREEN` — Qt AT-SPI reports correct screen coords | +| Electron / Chromium | shared harness | Container (XFCE, `az exec`) | web-AX + pixel (`--force-renderer-accessibility`) | + +### Lane matrix + +| Lane | Desktop | Access method | Test app | Harness driver | +|------|---------|---------------|----------|----------------| +| XFCE container | `trycua/cua-xfce` (xfwm4) | `az exec` | galculator (GTK3), Electron | `libs/cua-driver/test-harness/linux-container/calc.sh` | +| Kasm container | `trycua/cua-ubuntu` (Kasm/XFCE) | `az exec` | galculator (GTK3) | `libs/cua-driver/test-harness/linux-container/calc.sh` | +| KDE Plasma VM | Azure VM, KDE Plasma X11 | SSH → `derec.sh` | kcalc (Qt) | `libs/cua-driver/test-harness/linux-container/derec.sh` | +| GNOME Shell VM | Azure VM, GNOME Shell X11 (console Xorg) | SSH → `derec.sh` | gnome-calculator (GTK4) | `libs/cua-driver/test-harness/linux-container/derec.sh` | +| GNOME Wayland VM | Azure VM, GNOME Mutter **Wayland** | SSH → `derec.sh` | gnome-calculator (GTK4) | `libs/cua-driver/test-harness/linux-container/derec.sh` | + +The VM lanes are driven over SSH by `derec.sh`, in contrast to the container lanes which use `az exec`. GNOME Shell requires the real console Xorg session (software GLX) and is not drivable over VNC (no GLX). KDE Plasma works over both console Xorg and VNC. + +### GTK4 coordinate reconstruction — invariant + +GTK4's AT-SPI bridge returns `Component.GetExtents(SCREEN) = (0, 0)` for every widget (GNOME/gtk #1564/#1739, a11y rework). The driver fix: + +1. Detects `_GTK_FRAME_EXTENTS` on the X11 window (present for GTK4; absent for Qt and GTK3). +2. Queries `CoordType::Window` (which GTK4 reports correctly, per-widget). +3. Reconstructs: `screen_xy = x11_window_origin + _GTK_FRAME_EXTENTS.(left, top) + WINDOW_xy`. + +Verified live: gnome-calculator button "7" = window-origin (55, 27) + inset (61, 55) + WINDOW (16, 293) = screen (132, 375). + +Non-GTK toolkits (Qt) keep the existing SCREEN path — the gate is the presence of `_GTK_FRAME_EXTENTS`. + +**Invariant worth guarding:** `frame_center ≈ x11_window_origin + _GTK_FRAME_EXTENTS + atspi_WINDOW_xy`. Any divergence means the reconstruction is broken. Before the fix, pixel clicks silently collapsed to the window corner; `doAction` element clicks landed regardless (coordinate-free). + +### The Wayland lane (GNOME Mutter / KDE Plasma) + +On a native Wayland session the **background AX rung is the same coordinate-free AT-SPI `doAction`** as on X11, and it is the one rung that works unchanged: `Action.DoAction` is dispatched toolkit-side (GTK/Qt invoke the widget's own action), so it needs no coordinates, no portal, no cursor move, and no focus steal. Element-index clicks therefore land on Mutter/KWin exactly as on X11. + +**Element `px` (pixel) coordinate clicks now land too — without pointer injection.** There is no global coordinate space on Wayland and Mutter drops synthetic virtual-pointer events, so a "click at (x,y)" can't be delivered as input. Instead the driver resolves the screen pixel back to the accessible element under it and fires *that* element's action — the proven `element_index` rung, reached by coordinates. The screen frame of every element is reconstructed the same way `get_window_state` exposes it (the `org.cua.WinRects` GNOME Shell helper supplies the window origin; GTK4's correct `CoordType::Window` extents supply the per-widget offset). The covering element is chosen **role-aware**: GTK4 nests a `label` inside every `button` with a near-identical, slightly *smaller* frame, so an area-only hit-test lands on the inert label and `do_action` silently no-ops (a "false success"); the selector prefers the smallest covering *real actuator* and only falls back to a passive label if nothing else covers the point. Validated live on Mutter Wayland: an element `px` action targeting buttons by `{x,y}` (no `element_index`) types `789` into gnome-calculator (rung `wayland_atspi`). The same role-aware fix hardened the X11 `perform_action_at_point` rung, which had the identical GTK4 false-success. + +Two Wayland-specific facts the lane exercises: + +- **Window enumeration via AT-SPI.** Native Wayland apps have no X11 XID, and GNOME Mutter / KDE KWin do **not** implement `zwlr_foreign_toplevel_management` (that is wlroots-only), so `wayland::list_windows` is empty there. `list_windows_dispatch` now falls back to **`atspi::list_windows`**, which enumerates top-level frames from the AT-SPI registry and hands back a synthetic, stable `window_id`. Downstream `get_window_state` / `click` walk the AT-SPI tree by **pid** (the xid is unused for the walk), so the full `list_windows → get_window_state → click` flow works. Validated live on Mutter Wayland: `7+8=` via `element_index` background clicks computes `15`. +- **Engaging the Wayland backend.** `is_wayland()` requires the opt-in `CUA_DRIVER_RS_ENABLE_WAYLAND=1`, `WAYLAND_DISPLAY` set, **and** `DISPLAY` unset — otherwise the daemon stays on the X11 path. Start the daemon with all three for a pure-Wayland session. + +Bringing up a headless GNOME **Wayland** VM (the lane's host) has two gotchas worth recording, neither cua-driver's concern but both block the lane: + +- **GDM disables Wayland for the Azure virtual GPU.** The `hyperv_drm` DRM driver exposes no `parameters/modeset`, so GDM's `61-gdm.rules` udev gate (`ATTR{parameters/modeset}!="Y"`) force-selects Xorg. Override by shadowing the rule in `/etc/udev/rules.d/61-gdm.rules` (drop the modeset + bare `GOTO="gdm_disable_wayland"` lines) and set `Session=ubuntu-wayland` in `/var/lib/AccountsService/users/`, then restart gdm. +- **GTK4 apps need software GL on a GPU-less box.** Launch with `LIBGL_ALWAYS_SOFTWARE=1 GSK_RENDERER=cairo`, else the GL renderer fails (EGL/ZINK) and the app exits. + +--- + +## Appendix — file map + +| Path | Role | +|------|------| +| `shared/scenarios.json` | single source of truth: control ids, window titles, scenarios | +| `shared/web/index.html` | shared DOM for WebView2 / Electron / WKWebView harnesses | +| `apps/` | per-OS/toolkit harness sources (see §3 table) | +| `build/{macos.sh,windows.ps1,linux.sh}` | stage harnesses into `rust/test-apps/harness-*` | +| `modality-recordings/FINDINGS.md` | authoritative per-action findings | +| `modality-recordings/windows/wpf-recorder.ps1` | Windows recorder (`-Mode`, `-Toolkit`) | +| `modality-recordings/windows/run-one.ps1` | single-run launcher | +| `modality-recordings/linux/lin-rec.py`, `lin-rec-electron.py` | Linux recorders (+ `lin-run*.sh`, `lin-dash*`, `lin-harness.py`) | +| `modality-recordings/macos/mac-rec.py` | macOS recorder (`MODE SURFACE`) | +| `vision-agent-test/vision_agent_test.py` + `README.md` | coordinate-invariant regression test | +| `smoke/macos.sh` | macOS smoke check | +| `rust/crates/cua-driver/tests/harness_*.rs` | Rust integration tests consuming staged harnesses | +| `TEST_SUITE.md` (this dir) | sibling doc: the Rust integration-test taxonomy / `cua-driver-testkit` | +| `CUA_DRIVER_LIMITATIONS_AND_TEST_MATRIX.md` (repo root) | limitations + mode/scope mapping | diff --git a/docs/content/docs/tutorials/drive-your-first-app.mdx b/docs/content/docs/tutorials/drive-your-first-app.mdx index 67f23e1602..22a0b2ad46 100644 --- a/docs/content/docs/tutorials/drive-your-first-app.mdx +++ b/docs/content/docs/tutorials/drive-your-first-app.mdx @@ -145,15 +145,44 @@ Register Cua Driver with your agent harness once. Using Cursor, Gemini/Antigravity, OpenCode, OpenClaw, or Pi instead? See [Connect your agent](/how-to-guides/driver/connect-your-agent). -## 4. Ask your agent to drive an app +## 4. Ask your agent -Now ask your agent in plain English. Type this prompt to Claude Code, Codex, or Hermes: +You can now prompt your agent in plain English, and it will drive Cua Driver for you. -```text -Using cua-driver, open the calculator and compute 17 x 23, then tell me the answer. -``` + + + ```text + > Using the cua-computer-use MCP, open the Calculator, compute 6 × 7, and tell me the result. + + → launch_app Calculator + → get_window_state + → click 7 [element_index=12] + → click × [element_index=20] + → click 6 [element_index=11] + → click = [element_index=22] + → get_window_state + ✓ The result is 42. + ``` + + + ```text + > Using the Cua Driver skill, open the Calculator, compute 6 × 7, and read the result back. + + → launch_app Calculator + → get_window_state + → click 7 [element_index=12] + → click × [element_index=20] + → click 6 [element_index=11] + → click = [element_index=22] + → get_window_state + ✓ The result is 42. + ``` + + + +Everything runs in the background, and the agent picks the right calculator for your OS (Calculator on macOS and Windows, the system calculator on Linux), so the same prompt works on all three platforms. -The agent uses Cua Driver to launch the calculator (Calculator on macOS and Windows, the system calculator on Linux), read the window's accessibility tree, click the number and operator keys, and read the result back from the display. All of it runs in the background. The agent picks the right calculator app for your OS, so the same prompt works on all three platforms. +To explore capture and dispatch modes, see [Choose a capture and dispatch mode](/how-to-guides/driver/choose-a-modality). ## 5. Confirm what happened diff --git a/docs/next.config.mjs b/docs/next.config.mjs index 531236fa47..85708b8d45 100644 --- a/docs/next.config.mjs +++ b/docs/next.config.mjs @@ -5,7 +5,6 @@ const withMDX = createMDX(); /** @type {import('next').NextConfig} */ const config = { reactStrictMode: true, - serverExternalPackages: ['pino', 'pino-pretty', 'thread-stream'], trailingSlash: false, basePath: '/docs', assetPrefix: '/docs', diff --git a/docs/package.json b/docs/package.json index f789393e5c..6633ec2cf6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,32 +18,15 @@ "docs:check-links:external": "tsx scripts/check-links.ts --external" }, "dependencies": { - "@ai-sdk/amazon-bedrock": "^4.0.120", - "@aws-sdk/credential-provider-web-identity": "^3.609.0", - "@copilotkit/react-core": "1.61.0", - "@copilotkit/react-ui": "1.61.0", - "@copilotkit/runtime": "1.61.0", - "@vercel/functions": "^2.0.0", - "ai": "^6.0.0", "fumadocs-core": "16.0.8", "fumadocs-mdx": "13.0.8", "fumadocs-ui": "16.0.8", "lucide-react": "^0.525.0", - "mermaid": "^11.15.0", "next": "16.2.6", "next-themes": "^0.4.6", - "openai": "^4.104.0", - "pino": "^9.14.0", - "pino-pretty": "^11.3.0", - "posthog-js": "^1.276.0", - "posthog-node": "^5.20.0", "react": "^19.2.0", "react-dom": "^19.2.0", "react-icons": "^5.5.0", - "remark": "^15.0.1", - "remark-gfm": "^4.0.1", - "remark-mdx": "^3.1.0", - "tailwind-merge": "^3.3.1", "zod": "^4.1.12" }, "devDependencies": { diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 9b46598481..f92451885f 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -4,94 +4,28 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - js-yaml@>=4.0.0 <4.1.1: '>=4.1.1' - '@hono/node-server': 1.19.13 - '@modelcontextprotocol/sdk': 1.26.0 - ajv: 8.18.0 - diff: 5.2.2 - dompurify: 3.4.11 - fast-uri: 3.1.2 - fast-xml-builder: 1.1.7 - fast-xml-parser: 5.7.0 - form-data: 4.0.6 - hono: 4.12.25 - js-yaml: 4.2.0 - langsmith: 0.7.10 - lodash-es: 4.18.0 - mdast-util-to-hast: 13.2.1 - path-to-regexp: 8.4.0 - picomatch: 4.0.4 - postcss: 8.5.10 - preact: 10.27.3 - prismjs: 1.30.0 - qs: 6.15.2 - tar: 7.5.16 - ts-deepmerge: 8.0.0 - uuid: 11.1.1 - '@ai-sdk/google-vertex': 4.0.148 - importers: .: dependencies: - '@ai-sdk/amazon-bedrock': - specifier: ^4.0.120 - version: 4.0.120(zod@4.1.12) - '@aws-sdk/credential-provider-web-identity': - specifier: ^3.609.0 - version: 3.972.15 - '@copilotkit/react-core': - specifier: 1.61.0 - version: 1.61.0(@types/mdast@4.0.4)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(graphql@16.14.2)(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.1.12) - '@copilotkit/react-ui': - specifier: 1.61.0 - version: 1.61.0(@ag-ui/core@0.0.57)(@types/mdast@4.0.4)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(graphql@16.14.2)(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.1.12) - '@copilotkit/runtime': - specifier: 1.61.0 - version: 1.61.0(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@langchain/langgraph-sdk@1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@opentelemetry/api@1.9.0)(langchain@1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)))(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod-to-json-schema@3.25.2(zod@4.1.12)) - '@vercel/functions': - specifier: ^2.0.0 - version: 2.2.13(@aws-sdk/credential-provider-web-identity@3.972.15) - ai: - specifier: ^6.0.0 - version: 6.0.116(zod@4.1.12) fumadocs-core: specifier: 16.0.8 - version: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) fumadocs-mdx: specifier: 13.0.8 - version: 13.0.8(fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) + version: 13.0.8(fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) fumadocs-ui: specifier: 16.0.8 - version: 16.0.8(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(tailwindcss@4.1.10) + version: 16.0.8(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(tailwindcss@4.1.10) lucide-react: specifier: ^0.525.0 version: 0.525.0(react@19.2.0) - mermaid: - specifier: ^11.15.0 - version: 11.15.0 next: specifier: 16.2.6 - version: 16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - openai: - specifier: ^4.104.0 - version: 4.104.0(ws@8.21.0)(zod@4.1.12) - pino: - specifier: ^9.14.0 - version: 9.14.0 - pino-pretty: - specifier: ^11.3.0 - version: 11.3.0 - posthog-js: - specifier: ^1.276.0 - version: 1.276.0 - posthog-node: - specifier: ^5.20.0 - version: 5.20.0 react: specifier: ^19.2.0 version: 19.2.0 @@ -101,18 +35,6 @@ importers: react-icons: specifier: ^5.5.0 version: 5.5.0(react@19.2.0) - remark: - specifier: ^15.0.1 - version: 15.0.1 - remark-gfm: - specifier: ^4.0.1 - version: 4.0.1 - remark-mdx: - specifier: ^3.1.0 - version: 3.1.0 - tailwind-merge: - specifier: ^3.3.1 - version: 3.3.1 zod: specifier: ^4.1.12 version: 4.1.12 @@ -139,7 +61,7 @@ importers: specifier: ^1.6.6 version: 1.6.6(@types/mdast@4.0.4)(@types/unist@3.0.3) postcss: - specifier: 8.5.10 + specifier: ^8.5.10 version: 8.5.10 prettier: specifier: ^3.6.2 @@ -156,137 +78,6 @@ importers: packages: - '@0no-co/graphql.web@1.3.2': - resolution: {integrity: sha512-Q1+pRlLhE31GOY/2c9BAEnFTNxO7Awtc6fhhEDlxyCBQ2N0IhD32cPVvPChrK9mwBNSgRdW/sF1kd2e0ojHj1Q==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - - '@a2ui/web_core@0.9.0': - resolution: {integrity: sha512-TsMWuEeuVDsScGIGPy/fWIZu+EOBRfhx6KwjKh3VwY1AwysRenQM8zDr8VrSk14Wck/aBgVxk2zWVrMCK2/s6A==} - - '@ag-ui/a2ui-middleware@0.0.8': - resolution: {integrity: sha512-YXabOMyNekshHWLc63fD166ndy/zOXp+UWbx1alYoGRhO2y2uZJzOlPLvBAkFY4PF3Lng78ByG4mNpxJlSLDvw==} - peerDependencies: - '@ag-ui/client': '>=0.0.40' - rxjs: 7.8.1 - - '@ag-ui/a2ui-toolkit@0.0.2': - resolution: {integrity: sha512-HFphlNxBxGSQfvxlI2LCQValSMDUTh3MAsaFMgYlF8sQXgCrXNiLJ70+Dz3uyOv4y/rfqdFafvlo1GKQtEVIVA==} - - '@ag-ui/a2ui-toolkit@0.0.3': - resolution: {integrity: sha512-bKjtuYQufGZ+vc2oTz1v5S6ab2gH/whQIIgbGfP+LMisdAkDV7bqeg4e+lZO3xNmdmkCa6nvkovtudMkqxmxEA==} - - '@ag-ui/client@0.0.54': - resolution: {integrity: sha512-N5UVXEBV5gPHqTuMoR/21brconRn42URf+MB4L8OniCJKqLcl/qUJb5kMamK0nnfBhDfPs/uq7LxDn6bsDJzJg==} - - '@ag-ui/client@0.0.57': - resolution: {integrity: sha512-Xap2alG9Z0/j5kb3x4D7oTpe2sw1dfrC9rgJJr2NZu5vKcm8dzIPNd31mF2B4zS3BKqYIu245yxKPhEtT30MHw==} - - '@ag-ui/core@0.0.54': - resolution: {integrity: sha512-Ilx31OvRQaZfU7jSArGqz06JZKOsAt8zWiCPJljyp9zR6Tzl18oyfx8o6FsuGfAktGRe50GI9SCCxNXXysZwtA==} - - '@ag-ui/core@0.0.57': - resolution: {integrity: sha512-gho1OWjNE6E3Rl7ZEZ1wr2CEpUHjLFU0FqzCZZk439TicLu+BfLCMkMokB07bMGlRmbJ60hM6LW60iOVauCx+Q==} - - '@ag-ui/encoder@0.0.54': - resolution: {integrity: sha512-0dPuE/eAeBRBDj/OOj5AW8SoP1r0dufmoOdrtKgmf+dlbVXKSNkDDHGrrvIWFPxwvPTWhHeN6wnsVUayWpUsGg==} - - '@ag-ui/encoder@0.0.57': - resolution: {integrity: sha512-ifD9NctR4xyPDR58xF9GK1bj/S8oECFkTeDfuYD8tXdbcOstIJ2TOqU2zhiCKnw7Vw+zR9Qv3TbsM9E7Gi9X3Q==} - - '@ag-ui/langgraph@0.0.41': - resolution: {integrity: sha512-xo7ja/kuctmdPiH83QOUIpDs/AY3GzxW1fM37x9otK9fqwnKgi2JIcjfcdvAdGYdsCkXBn2WWQ2PVH+rdsLOzg==} - peerDependencies: - '@ag-ui/client': '>=0.0.42' - '@ag-ui/core': '>=0.0.42' - - '@ag-ui/mcp-apps-middleware@0.0.3': - resolution: {integrity: sha512-Z+NZQXj4J+Y/2PLNsiyhNzRWFtTT2sAoC5dztoAlIsdfzvLvYEa52YGdHesNTN85JJqaIrYxQ8e31IBpKjrnoA==} - peerDependencies: - '@ag-ui/client': '>=0.0.40' - - '@ag-ui/mcp-middleware@0.0.1': - resolution: {integrity: sha512-TayUu7kB+jXUTPRUJesNvJYrP+0weTL9F2VJJ8QQ4sWxY/Ihjo+GgFYgJZYNcLwbo1DKgmVJtdm2XUouPCbxeg==} - peerDependencies: - rxjs: 7.8.1 - - '@ag-ui/proto@0.0.54': - resolution: {integrity: sha512-IPF+xeFaBAKKP2FO74MaVTkKUP8VaGGkbPzORCvC5TLDdGs+oQgQFqz+XoBeksQGE14+jgLWiAr9EPXdhqr1NA==} - - '@ag-ui/proto@0.0.57': - resolution: {integrity: sha512-pPENOZt0P6ibH8sCTgq05wLYXi5t3P9B5r/1bWYehXjUxtyOdnukSlWM++SsCIwUXsQdm/b3aBgGjEeTF7RenA==} - - '@ai-sdk/amazon-bedrock@4.0.120': - resolution: {integrity: sha512-eRbkUIylAGkItMh4Q0iokRwHVypPLd7RiGHh1jcqgf0PjI04wTitJOCwDSVe2TI9NnFVqpaBOQMe5bNF7lYw6w==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/anthropic@3.0.85': - resolution: {integrity: sha512-fNeDB644l5wbRNQU0FnI+F7UTtOenMnPtACfMPUJaS2zJfuBlseEa1TMg+otHkETZgaJB+6Na51NQEv0+m7czw==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/gateway@3.0.66': - resolution: {integrity: sha512-SIQ0YY0iMuv+07HLsZ+bB990zUJ6S4ujORAh+Jv1V2KGNn73qQKnGO0JBk+w+Res8YqOFSycwDoWcFlQrVxS4A==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/google-vertex@4.0.148': - resolution: {integrity: sha512-H8hRzNyK5Ok3f/ktfSKb9sFWnWQiObc/dcN6GoGaTDsp01AyFZDPoTdLSPPEZCCUYutclUdhYG6OjO7j5P+NvQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/google@3.0.83': - resolution: {integrity: sha512-Pz7aCX0dy+5x+r4K/37HbLZNaPtPL4q2NduzJW64VffLv5sI9Nb478wAd7PlH2r2asiypJsz/Jerf9draTciUA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/mcp@1.0.52': - resolution: {integrity: sha512-yudE3Mdl8fsbzjMepOPbikA6nIRWOez+5e/IvOv1jK6XMAtsZ4+Xz8vjRQHI77VMv2TdiaMfsKKFoW6dlZRT3g==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/openai-compatible@2.0.51': - resolution: {integrity: sha512-A6qfyaVs4lxmRxRux6U3ViOa8mMbsSd0OaHghpei2MpiBT6791J4zFH5MN7kaW1tLfQ246rSC2DVTMOavsycjQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/openai@3.0.74': - resolution: {integrity: sha512-LPDBWd2WCv0GQs29K2pHcNrGx24hm4D8QEP386HwUAUPr1URho6bNVXHNmIv0FxaW+xDkLpNMTen+mFCUBp2LA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider-utils@4.0.19': - resolution: {integrity: sha512-3eG55CrSWCu2SXlqq2QCsFjo3+E7+Gmg7i/oRVoSZzIodTuDSfLb3MRje67xE9RFea73Zao7Lm4mADIfUETKGg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider-utils@4.0.30': - resolution: {integrity: sha512-VO7I+vPffqI5sMnPoUq5DCSqKIgQIk/naJWRdQVpz2ma2zoprC/lqiJiUEl2s6DfvTD76TbhD3q39ROjlA6rGw==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider@3.0.10': - resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==} - engines: {node: '>=18'} - - '@ai-sdk/provider@3.0.8': - resolution: {integrity: sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==} - engines: {node: '>=18'} - '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -295,202 +86,9 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@1.1.0': - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} - - '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} - - '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - - '@aws-sdk/core@3.973.17': - resolution: {integrity: sha512-VtgGP0TjbCeyp6DQpiBqJKbemTSIaN2bZc3UbeTDCani3lBCyxn75ouJYD6koSSp0bh7rKLEbUpiFsNCI7tr0w==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.972.15': - resolution: {integrity: sha512-QTH6k93v+UOfFam/ado8zc71tH+enTVyuvLy9uEWXX1x894dN5ovtf/MdBDgFwq3g6c9mbtgVJ4B+yBqDtXvdA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-host-header@3.972.6': - resolution: {integrity: sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-logger@3.972.6': - resolution: {integrity: sha512-iFnaMFMQdljAPrvsCVKYltPt2j40LQqukAbXvW7v0aL5I+1GO7bZ/W8m12WxW3gwyK5p5u1WlHg8TSAizC5cZw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.972.6': - resolution: {integrity: sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-user-agent@3.972.17': - resolution: {integrity: sha512-HHArkgWzomuwufXwheQqkddu763PWCpoNTq1dGjqXzJT/lojX3VlOqjNSR2Xvb6/T9ISfwYcMOcbFgUp4EWxXA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/nested-clients@3.996.5': - resolution: {integrity: sha512-zn0WApcULn7Rtl6T+KP2CQTZo/7wOa2YV1yHQnbijTQoi4YXQHM8s21JcJzt33/mqPh8AdvWX1f+83KvKuxlZw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/region-config-resolver@3.972.6': - resolution: {integrity: sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/types@3.973.13': - resolution: {integrity: sha512-pEHZqRkAlHfnfAU9tK+WpKv/gBNjGJrHMgA3A0iYRGyswBS2t0pfez+lWlwktb3Bqa0ovh7w/QJTFwp3fDxLNg==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/types@3.973.4': - resolution: {integrity: sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/util-endpoints@3.996.3': - resolution: {integrity: sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/util-locate-window@3.965.4': - resolution: {integrity: sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/util-user-agent-browser@3.972.6': - resolution: {integrity: sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA==} - - '@aws-sdk/util-user-agent-node@3.973.2': - resolution: {integrity: sha512-lpaIuekdkpw7VRiik0IZmd6TyvEUcuLgKZ5fKRGpCA3I4PjrD/XH15sSwW+OptxQjNU4DEzSxag70spC9SluvA==} - engines: {node: '>=20.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/xml-builder@3.972.9': - resolution: {integrity: sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog==} - engines: {node: '>=20.0.0'} - - '@aws/lambda-invoke-store@0.2.3': - resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} - engines: {node: '>=18.0.0'} - - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} - engines: {node: '>=6.9.0'} - - '@braintree/sanitize-url@7.1.2': - resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} - - '@bufbuild/protobuf@2.12.1': - resolution: {integrity: sha512-BvAMfS6LrgZiryOAZ4pBYucu4wG/Ei/9o9DZ9akbREnMLbPJiom2i8b9C8IsKErQoiKqVhrerzt3kOT/RrzLHg==} - - '@cfworker/json-schema@4.1.1': - resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} - - '@chevrotain/types@11.1.2': - resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} - - '@copilotkit/a2ui-renderer@1.61.0': - resolution: {integrity: sha512-ouwa2XPO++MSq+awcQk4P3C4Dj7Nqtbln1Yr44hzlKsWsE1FZJXYZKEjl0m4L1muuZ0e/6j7AinwjCoTdf1XZQ==} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@copilotkit/core@1.61.0': - resolution: {integrity: sha512-SeT3tEPrE7eWw/qMA6o5qgADZgpADHw/X4xBYqJuMDBF7uUyeI9II0tFno8FkgIsSW7RK8KbYqOoOxRFdm8gOg==} - engines: {node: '>=18'} - - '@copilotkit/license-verifier@0.5.0': - resolution: {integrity: sha512-vrwKtIpYwF0FT9ZoYASH8owa2cGV0dhDvJGaCRaRMStwDxpc6DRdydKkhx8cWZXyBRxEYcq/Vygv4JvevhQQdQ==} - - '@copilotkit/react-core@1.61.0': - resolution: {integrity: sha512-4ZCNT03lsjKnYSsuIwfgV4s4PJmADflkoPoMYD6EpdR0ajKnLduSji3pcro/6fe3RSZ65b9Mx5m3EjLhnY66yA==} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc - zod: '>=3.0.0' - - '@copilotkit/react-ui@1.61.0': - resolution: {integrity: sha512-YSrmmgy5mopcY84sLaHl9AGgh+KNtPx+pMXhRBVdPPvTPgJVxVh/homVE1MtWFyFSNpCdBo8Q4+NGhBC7CPWUA==} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - - '@copilotkit/runtime-client-gql@1.61.0': - resolution: {integrity: sha512-pYVlGBYZD5XLSAmqBhnPzPxPqbLVsKzS4XUpY8qzTBOqBea0/NjePUkD8ztY2sVVZjI+tdZGCMOyitlOqGWqhw==} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - - '@copilotkit/runtime@1.61.0': - resolution: {integrity: sha512-Joz1N6vvqR+a8v6W4A3jMpi0/h91f8oocx40NMgn3QqxDwnvjEB2cFfTFKL3ltuIiBwiF3NyiDHNWi+aHtPmMA==} - peerDependencies: - '@anthropic-ai/sdk': ^0.57.0 - '@langchain/aws': '>=0.1.9' - '@langchain/community': '>=0.3.58' - '@langchain/core': '>=0.3.66' - '@langchain/google-gauth': '>=0.1.0' - '@langchain/langgraph-sdk': '>=0.1.2' - '@langchain/openai': '>=0.4.2' - groq-sdk: '>=0.3.0 <1.0.0' - langchain: '>=0.3.3' - openai: ^4.85.1 || >=5.0.0 - peerDependenciesMeta: - '@anthropic-ai/sdk': - optional: true - '@langchain/aws': - optional: true - '@langchain/community': - optional: true - '@langchain/google-gauth': - optional: true - '@langchain/langgraph-sdk': - optional: true - '@langchain/openai': - optional: true - groq-sdk: - optional: true - langchain: - optional: true - openai: - optional: true - - '@copilotkit/shared@1.61.0': - resolution: {integrity: sha512-7YZn6z64d9kr+ENvCsNSEXV2w4ITnETgoW5l1X1jr1U0G0VWD5Qb72+6IXR4zOYjHIKfpY7qABEcODJ6qmvEMA==} - peerDependencies: - '@ag-ui/core': '>=0.0.48' - - '@copilotkit/web-inspector@1.61.0': - resolution: {integrity: sha512-wJA7aVEMGjvYaPtPuyFWF9yJF3zsPh/EQPkcVoXlSqn6eyiq6rRCuaaacAdYLZSqMXCqS11zUm6u2fmxxIWQDA==} - engines: {node: '>=18'} - '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} - '@envelop/core@5.5.1': - resolution: {integrity: sha512-3DQg8sFskDo386TkL5j12jyRAdip/8yzK3x7YGbZBgobZ4aKXrvDU0GppU0SnmrpQnNaiTUsxBs9LKkwQ/eyvw==} - engines: {node: '>=18.0.0'} - - '@envelop/instrumentation@1.0.0': - resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==} - engines: {node: '>=18.0.0'} - - '@envelop/types@5.2.1': - resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==} - engines: {node: '>=18.0.0'} - '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -803,121 +401,24 @@ packages: cpu: [x64] os: [win32] - '@fastify/busboy@3.2.0': - resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} - '@floating-ui/core@1.7.1': resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@floating-ui/dom@1.7.1': resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==} - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@floating-ui/react-dom@2.1.3': resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/react@0.26.28': - resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@formatjs/intl-localematcher@0.6.2': resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - '@graphql-tools/executor@1.5.3': - resolution: {integrity: sha512-mgBFC0bsrZPZLu9EnydpMnAuQ8Iiq0CEbUcsmvXsm2/iYektGHDN/+bmb7hicA6dWZtdPfklYJmr21WD0GnOfA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.1.9': - resolution: {integrity: sha512-iHUWNjRHeQRYdgIMIuChThOwoKzA9vrzYeslgfBo5eUYEyHGZCoDPjAavssoYXLwstYt1dZj2J22jSzc2DrN0Q==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/schema@10.0.33': - resolution: {integrity: sha512-O6P3RIftO0jafnSsFAqpjurUuUxJ43s/AdPVLQsBkI6y4Ic/tKm4C1Qm1KKQsCDTOxXPJClh/v3g7k7yLKCFBQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@10.11.0': - resolution: {integrity: sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@11.1.0': - resolution: {integrity: sha512-PtFVG4r8Z2LEBSaPYQMusBiB3o6kjLVJyjCLbnWem/SpSuM21v6LTmgpkXfYU1qpBV2UGsFyuEnSJInl8fR1Ag==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-yoga/logger@2.0.1': - resolution: {integrity: sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA==} - engines: {node: '>=18.0.0'} - - '@graphql-yoga/plugin-defer-stream@3.21.2': - resolution: {integrity: sha512-B+hwCIPsZHPxH3zsRhBFlMAAuuBMR7SrGVPvGt0ftn3iG2HB1zyOeUIm6ylwVF7G2sN0bw8Z7ZXPdnmI1tgq3A==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - graphql-yoga: ^5.21.2 - - '@graphql-yoga/subscription@5.0.5': - resolution: {integrity: sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw==} - engines: {node: '>=18.0.0'} - - '@graphql-yoga/typed-event-target@3.0.2': - resolution: {integrity: sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA==} - engines: {node: '>=18.0.0'} - - '@headlessui/react@2.2.10': - resolution: {integrity: sha512-5pVLNK9wlpxTUTy9GpgbX/SdcRh+HBnPktjM2wbiLTH4p+2EPHBO1aoSryUCuKUIItdDWO9ITlhUL8UnUN/oIA==} - engines: {node: '>=10'} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc - - '@hono/node-server@1.19.13': - resolution: {integrity: sha512-TsQLe4i2gvoTtrHje625ngThGBySOgSK3Xo2XRYOdqGN1teR8+I7vchQC46uLJi8OF62YTYA3AhSpumtkhsaKQ==} - engines: {node: '>=18.14.1'} - peerDependencies: - hono: 4.12.25 - - '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - - '@iconify/utils@3.1.3': - resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==} - '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -948,89 +449,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -1055,22 +572,10 @@ packages: cpu: [x64] os: [win32] - '@internationalized/date@3.12.2': - resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==} - - '@internationalized/number@3.6.7': - resolution: {integrity: sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==} - - '@internationalized/string@3.2.9': - resolution: {integrity: sha512-kzP/M/mbQxODlmOt4bIQZ2SBVUWUSqMLXooXixnX7noche8WHaQcA+nwFN1K2KCF/cp+LDUhcJsCicwkvhD1pg==} - '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jetbrains/websandbox@1.3.1': - resolution: {integrity: sha512-YTl3MJXbAkYDyuRhWqlQoo7eY2jaLGRqUkx4LVRvxr0VnK7s5bu0p2KAGOWZIBf6I3pmuuq+JzBDHw1b0fV0/Q==} - '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -1089,86 +594,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@langchain/core@1.2.1': - resolution: {integrity: sha512-NNG/cC5FGuHDOAP56h0ddp8Rfk8p+othWzEK5RV9JIG6RvnF5vGa5r0AEGtKfQieed7s1kC42GuIzVOBvMBL/g==} - engines: {node: '>=20'} - - '@langchain/langgraph-checkpoint@1.1.2': - resolution: {integrity: sha512-m5Xd7W3G9JrlEhFZ5WAcqZPgE46R9gr1gFDFaVqEKeuwin3tgEp0jlPbru+iFXCug338DcQjFS/Kuuci21ydvw==} - engines: {node: '>=18'} - peerDependencies: - '@langchain/core': ^1.1.48 - - '@langchain/langgraph-sdk@1.9.24': - resolution: {integrity: sha512-WhM6QdxNipndQjl5nkvqnBt9Wl16oO2p0KiVhndAFLJMwO3bZLEx++lwtbqUFQu1sHyNxiWixgRGm8qZsuHCeA==} - peerDependencies: - '@langchain/core': ^1.1.48 - react: ^18 || ^19 - react-dom: ^18 || ^19 - svelte: ^4.0.0 || ^5.0.0 - vue: ^3.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - vue: - optional: true - - '@langchain/langgraph@1.4.5': - resolution: {integrity: sha512-V+o29JPBaMoK/e+8R/m81XaC8h5iNuwWymvgLFhXfJbf7E2xt2mQUkcVXTi4cudGRHbRd14kidCpfaQbfPoYCw==} - engines: {node: '>=18'} - peerDependencies: - '@langchain/core': ^1.1.48 - zod: ^3.25.32 || ^4.2.0 - zod-to-json-schema: ^3.x - peerDependenciesMeta: - zod-to-json-schema: - optional: true - - '@langchain/protocol@0.0.18': - resolution: {integrity: sha512-XW1egQtPfsGI41w2AMZNFZrUIwFSQHTjVMZs0OaTpCAvht/QLoaPN8FQcsysMVypOhupG28J29yOorrc70otBQ==} - - '@lit-labs/react@2.1.3': - resolution: {integrity: sha512-OD9h2JynerBQUMNzb563jiVpxfvPF0HjQkKY2mx0lpVYvD7F+rtJpOGz6ek+6ufMidV3i+MPT9SX62OKWHFrQg==} - - '@lit-labs/ssr-dom-shim@1.6.0': - resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==} - - '@lit/react@1.0.8': - resolution: {integrity: sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==} - peerDependencies: - '@types/react': 17 || 18 || 19 - - '@lit/reactive-element@2.1.2': - resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} - - '@lukeed/csprng@1.1.0': - resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} - engines: {node: '>=8'} - - '@lukeed/uuid@2.0.1': - resolution: {integrity: sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==} - engines: {node: '>=8'} - '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@mermaid-js/parser@1.1.1': - resolution: {integrity: sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw==} - - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} - engines: {node: '>=18'} - peerDependencies: - '@cfworker/json-schema': ^4.1.1 - zod: ^3.25 || ^4.0 - peerDependenciesMeta: - '@cfworker/json-schema': - optional: true - '@next/env@16.2.6': resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==} @@ -1189,24 +617,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@16.2.6': resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@16.2.6': resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@16.2.6': resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@16.2.6': resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} @@ -1220,9 +652,6 @@ packages: cpu: [x64] os: [win32] - '@nodable/entities@2.2.0': - resolution: {integrity: sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1235,39 +664,16 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - '@orama/orama@3.1.16': resolution: {integrity: sha512-scSmQBD8eANlMUOglxHrN1JdSW8tDghsPuS83otqealBiIeMukCQMOf/wc0JJjDXomqwNdEQFLXLGHrU6PGxuA==} engines: {node: '>= 20.0.0'} - '@pinojs/redact@0.4.0': - resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} - - '@posthog/core@1.3.0': - resolution: {integrity: sha512-hxLL8kZNHH098geedcxCz8y6xojkNYbmJEW+1vFXsmPcExyCXIUUJ/34X6xa9GcprKxd0Wsx3vfJQLQX4iVPhw==} - - '@posthog/core@1.9.1': - resolution: {integrity: sha512-kRb1ch2dhQjsAapZmu6V66551IF2LnCbc1rnrQqnR7ArooVyJN9KOPXre16AJ3ObJz2eTfuP7x25BMyS2Y5Exw==} - - '@preact/signals-core@1.14.3': - resolution: {integrity: sha512-m0K3vnbSLC5rHs2ZVfeAMvBtT1zIyq4mxx5OlNncSgMj5Iz6W5Rn3kPrDxAC+iIKmiVe0lSl6U37t5ZkEWoVAw==} - - '@protobuf-ts/protoc@2.11.1': - resolution: {integrity: sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==} - hasBin: true - '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - '@radix-ui/primitive@1.1.4': - resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} - '@radix-ui/react-accordion@1.2.12': resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} peerDependencies: @@ -1281,19 +687,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-arrow@1.1.10': - resolution: {integrity: sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-arrow@1.1.7': resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: @@ -1320,19 +713,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.10': - resolution: {integrity: sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-collection@1.1.7': resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: @@ -1355,8 +735,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-compose-refs@1.1.3': - resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1364,17 +744,21 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-context@1.1.4': - resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1382,8 +766,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1395,8 +779,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1404,85 +788,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-direction@1.1.2': - resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.13': - resolution: {integrity: sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-dropdown-menu@2.1.18': - resolution: {integrity: sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-guards@1.1.4': - resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.10': - resolution: {integrity: sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-focus-scope@1.1.7': resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: @@ -1505,28 +810,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-id@1.1.2': - resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-menu@2.1.18': - resolution: {integrity: sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-navigation-menu@1.2.14': resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} peerDependencies: @@ -1566,32 +849,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.3.1': - resolution: {integrity: sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-portal@1.1.12': - resolution: {integrity: sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-portal@1.1.9': resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: @@ -1618,19 +875,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.6': - resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-primitive@2.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: @@ -1644,19 +888,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.6': - resolution: {integrity: sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-roving-focus@1.1.11': resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: @@ -1670,19 +901,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.13': - resolution: {integrity: sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-scroll-area@1.2.10': resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} peerDependencies: @@ -1714,15 +932,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.3.0': - resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-tabs@1.1.13': resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: @@ -1736,19 +945,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.2.10': - resolution: {integrity: sha512-NlNe8D0dWEpVfXFli90IO6X07Josx/b1iu98tDnx9Xv0HT4wLIL+m2VOheMHhK7qbp2HoTBqALEFzGyZs/levw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: @@ -1758,15 +954,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-callback-ref@1.1.2': - resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: @@ -1776,15 +963,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.2.3': - resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-effect-event@0.0.2': resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: @@ -1794,15 +972,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-effect-event@0.0.3': - resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-escape-keydown@1.1.1': resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: @@ -1812,15 +981,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-escape-keydown@1.1.2': - resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-layout-effect@1.1.1': resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: @@ -1830,15 +990,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.2': - resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-previous@1.1.1': resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: @@ -1857,15 +1008,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-rect@1.1.2': - resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: @@ -1875,15 +1017,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-size@1.1.2': - resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-visually-hidden@1.2.3': resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: @@ -1897,314 +1030,50 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-visually-hidden@1.2.6': - resolution: {integrity: sha512-jCE0WljWifTI4niIMCll06kGpsJTAPiZVU9H4WR1N6qW7At9ystHbN7dDB+we2xH535roFHj7qKS+RGj0FMDWQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - '@radix-ui/rect@1.1.2': - resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==} - - '@react-aria/focus@3.22.1': - resolution: {integrity: sha512-CPxtkyrBi/HYY5P3lE/57sQ6qfa0lN8E55TOm89H0kNGv0lKt+/0zP7lWERzBjRr5IxBVrQX4gFEowBN52LPaA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/interactions@3.28.1': - resolution: {integrity: sha512-Bqb+HrD5I5MHS2SKBhISYqo2SW8Y2dfzgF/Y1lIJq7xqLxheo9vzxPGEHhz+XzkgGfoqEJx8A6a3C7uiqS3HWA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/shared@3.36.0': - resolution: {integrity: sha512-DkP/H0C2YjjS7gZWKNqOmU8a16qHPjQNdzMwmTq9SzplM6Iw0kVMTZ0OIoe6FOgGqa+FwMsE2QbPjh/n3g/jXQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@remix-run/node-fetch-server@0.13.3': - resolution: {integrity: sha512-UfjOXed/DQteaM5VyTfqTeGpHwyL2J5aoRGY6cydip4tt1ehNNeSwuXCC7AEGE0RWBs/7bgKxYkL/B/+UDe4AA==} - - '@repeaterjs/repeater@3.1.0': - resolution: {integrity: sha512-TaoVksZRSx2KWYYpyLQtMQXXeS98VsgZImzW65xmiVgbYhXLk+aEsmzPLirqVuE4/XuUapH2iMtxUzaBNDzdSQ==} - - '@scarf/scarf@1.4.0': - resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - - '@segment/analytics-core@1.8.2': - resolution: {integrity: sha512-5FDy6l8chpzUfJcNlIcyqYQq4+JTUynlVoCeCUuVz+l+6W0PXg+ljKp34R4yLVCcY5VVZohuW+HH0VLWdwYVAg==} - - '@segment/analytics-generic-utils@1.2.0': - resolution: {integrity: sha512-DfnW6mW3YQOLlDQQdR89k4EqfHb0g/3XvBXkovH1FstUN93eL1kfW9CsDcVQyH3bAC5ZsFyjA/o/1Q2j0QeoWw==} - - '@segment/analytics-node@2.3.0': - resolution: {integrity: sha512-fOXLL8uY0uAWw/sTLmezze80hj8YGgXXlAfvSS6TUmivk4D/SP0C0sxnbpFdkUzWg2zT64qWIZj26afEtSnxUA==} - engines: {node: '>=20'} - '@shikijs/core@3.15.0': resolution: {integrity: sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg==} - '@shikijs/core@3.23.0': - resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} - '@shikijs/engine-javascript@3.15.0': resolution: {integrity: sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg==} - '@shikijs/engine-javascript@3.23.0': - resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} - '@shikijs/engine-oniguruma@3.15.0': resolution: {integrity: sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==} - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/langs@3.15.0': resolution: {integrity: sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==} - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/rehype@3.15.0': resolution: {integrity: sha512-U+tqD1oxL+85N8FaW5XYIlMZ8KAa2g9IdplEZxPWflGRJf2gQRiBMMrpdG1USz3PN350YnMUHWcz9Twt3wJjXQ==} '@shikijs/themes@3.15.0': resolution: {integrity: sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==} - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/transformers@3.15.0': resolution: {integrity: sha512-Hmwip5ovvSkg+Kc41JTvSHHVfCYF+C8Cp1omb5AJj4Xvd+y9IXz2rKJwmFRGsuN0vpHxywcXJ1+Y4B9S7EG1/A==} '@shikijs/types@3.15.0': resolution: {integrity: sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==} - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@smithy/abort-controller@4.2.11': - resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} - engines: {node: '>=18.0.0'} - - '@smithy/config-resolver@4.4.10': - resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} - engines: {node: '>=18.0.0'} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@smithy/core@3.23.8': - resolution: {integrity: sha512-f7uPeBi7ehmLT4YF2u9j3qx6lSnurG1DLXOsTtJrIRNDF7VXio4BGHQ+SQteN/BrUVudbkuL4v7oOsRCzq4BqA==} - engines: {node: '>=18.0.0'} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@smithy/core@3.26.0': - resolution: {integrity: sha512-mLUktFAn+Pa2agl1J7VgtYNFWCX8/b4GMJSK1hCu4YCvtBfM6F8Os3EP4ry+DFFlXOf3wyvlgXhuUdFoy52D3g==} - engines: {node: '>=18.0.0'} + '@tailwindcss/node@4.1.10': + resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==} - '@smithy/credential-provider-imds@4.2.11': - resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} - engines: {node: '>=18.0.0'} - - '@smithy/eventstream-codec@4.4.2': - resolution: {integrity: sha512-iv6jeGoL5dIGXglIe0aJb8vvTuJkGB4z0LeB2mKV0PH9iAlr4jNhRhEWU7ZGmIeNC+8Zj6jhmSumDez6DidTOA==} - engines: {node: '>=18.0.0'} - - '@smithy/fetch-http-handler@5.3.13': - resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} - engines: {node: '>=18.0.0'} - - '@smithy/hash-node@4.2.11': - resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} - engines: {node: '>=18.0.0'} - - '@smithy/invalid-dependency@4.2.11': - resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} - engines: {node: '>=18.0.0'} - - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} - - '@smithy/is-array-buffer@4.2.2': - resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-content-length@4.2.11': - resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-endpoint@4.4.22': - resolution: {integrity: sha512-sc81w1o4Jy+/MAQlY3sQ8C7CmSpcvIi3TAzXblUv2hjG11BBSJi/Cw8vDx5BxMxapuH2I+Gc+45vWsgU07WZRQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-retry@4.4.39': - resolution: {integrity: sha512-MCVCxaCzuZgiHtHGV2Ke44nh6t4+8/tO+rTYOzrr2+G4nMLU/qbzNCWKBX54lyEaVcGQrfOJiG2f8imtiw+nIQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-serde@4.2.12': - resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-stack@4.2.11': - resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} - engines: {node: '>=18.0.0'} - - '@smithy/node-config-provider@4.3.11': - resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.4.14': - resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} - engines: {node: '>=18.0.0'} - - '@smithy/property-provider@4.2.11': - resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} - engines: {node: '>=18.0.0'} - - '@smithy/protocol-http@5.3.11': - resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-builder@4.2.11': - resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-parser@4.2.11': - resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} - engines: {node: '>=18.0.0'} - - '@smithy/service-error-classification@4.2.11': - resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.4.6': - resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.3.11': - resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} - engines: {node: '>=18.0.0'} - - '@smithy/smithy-client@4.12.2': - resolution: {integrity: sha512-HezY3UuG0k4T+4xhFKctLXCA5N2oN+Rtv+mmL8Gt7YmsUY2yhmcLyW75qrSzldfj75IsCW/4UhY3s20KcFnZqA==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.13.0': - resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.15.0': - resolution: {integrity: sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg==} - engines: {node: '>=18.0.0'} - - '@smithy/url-parser@4.2.11': - resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} - engines: {node: '>=18.0.0'} - - '@smithy/util-base64@4.3.2': - resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-browser@4.2.2': - resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-node@4.2.3': - resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} - engines: {node: '>=18.0.0'} - - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-buffer-from@4.2.2': - resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} - engines: {node: '>=18.0.0'} - - '@smithy/util-config-provider@4.2.2': - resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-browser@4.3.38': - resolution: {integrity: sha512-c8P1mFLNxcsdAMabB8/VUQUbWzFmgujWi4bAXSggcqLYPc8V4U5abqFqOyn+dK4YT+q8UyCVkTO8807t4t2syA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-node@4.2.41': - resolution: {integrity: sha512-/UG+9MT3UZAR0fLzOtMJMfWGcjjHvgggq924x/CRy8vRbL+yFf3Z6vETlvq8vDH92+31P/1gSOFoo7303wN8WQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-endpoints@3.3.2': - resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-hex-encoding@4.2.2': - resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.2.11': - resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-retry@4.2.11': - resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-stream@4.5.17': - resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-uri-escape@4.2.2': - resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} - - '@smithy/util-utf8@4.2.2': - resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-utf8@4.4.2': - resolution: {integrity: sha512-N5CpfaL+/LPQU9PFdOT55ayUo5T0QypG4Almzd1/efJvoDypuT1shkgJk1+hhg/02scYluW6Q2JGnSHIPwCEGQ==} - engines: {node: '>=18.0.0'} - - '@smithy/uuid@1.1.2': - resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} - engines: {node: '>=18.0.0'} - - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - - '@swc/helpers@0.5.23': - resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - - '@tailwindcss/node@4.1.10': - resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==} - - '@tailwindcss/oxide-android-arm64@4.1.10': - resolution: {integrity: sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] + '@tailwindcss/oxide-android-arm64@4.1.10': + resolution: {integrity: sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] '@tailwindcss/oxide-darwin-arm64@4.1.10': resolution: {integrity: sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==} @@ -2235,24 +1104,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.1.10': resolution: {integrity: sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.1.10': resolution: {integrity: sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.1.10': resolution: {integrity: sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.1.10': resolution: {integrity: sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==} @@ -2285,150 +1158,18 @@ packages: '@tailwindcss/postcss@4.1.10': resolution: {integrity: sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==} - '@tanstack/devtools-event-client@0.4.4': - resolution: {integrity: sha512-6T5Yop/793YI+H+5J8Hsyj4kCih9sl4t3ElLgKioW5hk3ocn+ZdSJ94tT7vL7uabxSugWYBZlOTMPzEw2puvQw==} - engines: {node: '>=18'} - hasBin: true - - '@tanstack/pacer@0.20.1': - resolution: {integrity: sha512-ZNQ1bIL6eUXVKdic0tiImvBVkWrg/IoSK6VIacTrO3d3HAGnd70qFJNJagR/YOJIOw4EKGWnodwpYZkN1pWuVQ==} - engines: {node: '>=18'} - - '@tanstack/react-virtual@3.14.3': - resolution: {integrity: sha512-k/cnHPVaOfn46hSbiY6n4Dzf4QjCGWSF40zR5QIIYUqPAjpA6TN7InfYmcMiDVQGP2iUn9xsRbAl8u1v3UmeVQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@tanstack/store@0.9.3': - resolution: {integrity: sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw==} - - '@tanstack/virtual-core@3.17.1': - resolution: {integrity: sha512-VZyW2Uiml5tmBZwPGrSD3Sz73OxzljQMCmzYHsUTPEuTsERf5xwa+uWb01xEzkz3ZSYTjj8NEb/mKHvgKxyZdA==} - - '@types/d3-array@3.2.2': - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} - - '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} - - '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} - - '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - - '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - - '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} - - '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - - '@types/d3-dispatch@3.0.7': - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} - - '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} - - '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - - '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - - '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} - - '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} - - '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - - '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} - - '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} - - '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - - '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - - '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - - '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - - '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} - - '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} - - '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} - - '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} - - '@types/d3-shape@3.1.8': - resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} - - '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - - '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - - '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - - '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - - '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} - - '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/debug@4.1.13': - resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/katex@0.16.8': - resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} - - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -2438,18 +1179,9 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node-fetch@2.6.13': - resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - - '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@22.15.28': resolution: {integrity: sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react-dom@19.1.6': resolution: {integrity: sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==} peerDependencies: @@ -2458,90 +1190,16 @@ packages: '@types/react@19.1.8': resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - - '@types/validator@13.15.10': - resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==} - '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} - - '@upsetjs/venn.js@2.0.0': - resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} - - '@urql/core@5.2.0': - resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} - - '@vercel/functions@2.2.13': - resolution: {integrity: sha512-14ArBSIIcOBx9nrEgaJb4Bw+en1gl6eSoJWh8qjifLl5G3E4dRXCFOT8HP+w66vb9Wqyd1lAQBrmRhRwOj9X9A==} - engines: {node: '>= 18'} - peerDependencies: - '@aws-sdk/credential-provider-web-identity': '*' - peerDependenciesMeta: - '@aws-sdk/credential-provider-web-identity': - optional: true - - '@vercel/oidc@2.0.2': - resolution: {integrity: sha512-59PBFx3T+k5hLTEWa3ggiMpGRz1OVvl9eN8SUai+A43IsqiOuAe7qPBf+cray/Fj6mkgnxm/D7IAtjc8zSHi7g==} - engines: {node: '>= 18'} - - '@vercel/oidc@3.1.0': - resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} - engines: {node: '>= 20'} - - '@whatwg-node/disposablestack@0.0.6': - resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/events@0.1.2': - resolution: {integrity: sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/fetch@0.10.13': - resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/node-fetch@0.8.6': - resolution: {integrity: sha512-BDMdYFcerLQkwA2RTldxOqRCs6ZQD1S7UgP3pUdGUkcbgTrP/V5ko77ZkCww9DHmC4lpoYuwigGfQYj285gMvA==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/promise-helpers@1.3.2': - resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} - engines: {node: '>=16.0.0'} - - '@whatwg-node/server@0.11.0': - resolution: {integrity: sha512-VSdkwnJRr8Yv9UgB2aXB3VUPWwd6Oqnn0hycFwhg9pZgWxJXb7JmhsiXe9tmpMwjHFxli12PGcz9aI63YYloGQ==} - engines: {node: '>=18.0.0'} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - accepts@2.0.0: - resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2552,38 +1210,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - ai@6.0.116: - resolution: {integrity: sha512-7yM+cTmyRLeNIXwt4Vj+mrrJgVQ9RMIW5WO0ydoLoYkewIvsMcvUmqS4j2RJTUXaF1HphwmSKUMQ/HypNRGOmA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: 8.18.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - anynum@1.0.1: - resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2591,98 +1217,37 @@ packages: resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} engines: {node: '>=10'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - - aws4fetch@1.0.20: - resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.38: resolution: {integrity: sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==} engines: {node: '>=6.0.0'} hasBin: true - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - - body-parser@1.20.5: - resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - body-parser@2.3.0: - resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} - engines: {node: '>=18'} - - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001799: resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -2694,16 +1259,6 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} - clarinet@0.12.6: - resolution: {integrity: sha512-0FR+TrvLbYHLjhzs9oeIbd3yfZmd4u2DzYQEjUTm2dNfh4Y/9RIRWPjsm3aBtrVEpjKI7+lWa4ouqEXoml84mQ==} - engines: {chrome: '>=16.0.912', firefox: '>=0.8.0', node: '>=0.3.6'} - - class-transformer@0.5.1: - resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} - - class-validator@0.14.4: - resolution: {integrity: sha512-AwNusCCam51q703dW82x95tOqQp6oC9HNUl724KxJJOfnKscI8dOloXFgyez7LbTTKWuRBA37FScqVbJEoq8Yw==} - class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -2717,88 +1272,12 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - 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'} - - compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - compute-scroll-into-view@3.1.1: resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-disposition@1.1.0: - resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} - engines: {node: '>=18'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - content-type@2.0.0: - resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} - engines: {node: '>=18'} - - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - - cookie-signature@1.2.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} - engines: {node: '>=6.6.0'} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - core-js@3.46.0: - resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} - - cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} - - cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} - - cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - - cross-inspect@1.0.1: - resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} - engines: {node: '>=16.0.0'} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2807,226 +1286,22 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 - - cytoscape-fcose@2.2.0: - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} peerDependencies: - cytoscape: ^3.2.0 - - cytoscape@3.34.0: - resolution: {integrity: sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg==} - engines: {node: '>=0.10'} - - d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - - d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} - - d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - - d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} - - d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - - d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - - d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} - - d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} - - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} - - d3-format@3.1.2: - resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} - engines: {node: '>=12'} - - d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} - - d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - - d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - - d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} - - d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} - - d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - - d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} - - d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} - - dagre-d3-es@7.0.14: - resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} - - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - - date-fns@4.4.0: - resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==} - - dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - - dayjs@1.11.21: - resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - decode-named-character-reference@1.3.0: - resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} - - delaunator@5.1.0: - resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -3041,61 +1316,10 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff@5.2.2: - resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} - engines: {node: '>=0.3.1'} - - dompurify@3.4.11: - resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==} - - dset@3.1.4: - resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} - engines: {node: '>=4'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-toolkit@1.48.1: - resolution: {integrity: sha512-wfnXlwd5I75eXRtdD2vuEs50xHHESECDsGD7yiQnfFVNoa5522NwXEbmgo98LfiukSQHs+mBM7/YG3qKJB9/mQ==} - esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -3112,9 +1336,6 @@ packages: engines: {node: '>=18'} hasBin: true - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -3143,144 +1364,29 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - eventsource-parser@3.0.6: - resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} - engines: {node: '>=18.0.0'} - - eventsource-parser@3.1.0: - resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==} - engines: {node: '>=18.0.0'} - - eventsource@3.0.7: - resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} - engines: {node: '>=18.0.0'} - - express-rate-limit@8.5.2: - resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} - engines: {node: '>= 16'} - peerDependencies: - express: '>= 4.11' - - express@4.22.2: - resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} - engines: {node: '>= 0.10.0'} - - express@5.2.1: - resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} - engines: {node: '>= 18'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fast-copy@3.0.2: - resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-patch@3.1.1: - resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} - - fast-xml-builder@1.1.7: - resolution: {integrity: sha512-Yh7/7rQuMXICNr0oMYDR2yHP6oUvmQsTToFeOWj/kIDhAwQ+c4Ol/lbcwOmEM5OHYQmh6S6EQSQ1sljCKP36bQ==} - - fast-xml-parser@5.7.0: - resolution: {integrity: sha512-MTcrUoRQ1GSQ9iG3QJzBGquYYYeA7piZaJoIWbPFGbRn6Jj6z7xgoAyi4DrZX4y2ZIQQBF59gc/zmvvejjgoFQ==} - hasBin: true - fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} peerDependencies: - picomatch: 4.0.4 + picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - - fflate@0.4.8: - resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} - - finalhandler@2.1.1: - resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} - engines: {node: '>= 18.0.0'} - - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - - form-data@4.0.6: - resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} - engines: {node: '>= 6'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3359,33 +1465,10 @@ packages: tailwindcss: optional: true - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gaxios@7.1.5: - resolution: {integrity: sha512-5FZy72Rh8LhtjmvDrKkI+lVhrsQrVKVsItxMoDm5mNQE+xR0WVIIs+jzPSJgBvKVsLi24fZhXJIsNI0bihDzFg==} - engines: {node: '>=18'} - - gcp-metadata@8.1.2: - resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} - engines: {node: '>=18'} - - get-east-asian-width@1.6.0: - resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} - engines: {node: '>=18'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} @@ -3396,88 +1479,9 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - google-auth-library@10.7.0: - resolution: {integrity: sha512-QpTAbNJ36TliZLx3TTtahR8HG0hN9RllL1e3FymOvQSIKK8JmgV58H924ub2wa2DsS3ANjjP1Aw1N+Ramc8hqQ==} - engines: {node: '>=18'} - - google-logging-utils@1.1.3: - resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} - engines: {node: '>=14'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphql-query-complexity@0.12.0: - resolution: {integrity: sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw==} - peerDependencies: - graphql: ^14.6.0 || ^15.0.0 || ^16.0.0 - - graphql-scalars@1.25.0: - resolution: {integrity: sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==} - engines: {node: '>=10'} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - graphql-yoga@5.21.2: - resolution: {integrity: sha512-IIRF/3xtjj2D6caAWL9177hQ8tV3mWB3hve1GRnz7njPhQ3iY1jFtSp98fNGv0yV9kaPh9kKQ8JWdJZnedVmDw==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - - graphql@16.14.2: - resolution: {integrity: sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - hachure-fill@0.5.2: - resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - - hast-util-from-dom@5.0.1: - resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} - - hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - - hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - - hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - - hast-util-sanitize@5.0.2: - resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} - hast-util-to-estree@3.1.3: resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} @@ -3487,127 +1491,29 @@ packages: hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - hast-util-to-parse5@8.0.1: - resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - - hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} - hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hast@1.0.0: - resolution: {integrity: sha512-vFUqlRV5C+xqP76Wwq2SrM0kipnmpxJm7OfvVXpB35Fp+Fn4MV+ozr+JZr5qFvyR1q/U+Foim2x+3P+x9S1PLA==} - deprecated: Renamed to rehype - - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - - hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - - help-me@5.0.0: - resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} - - highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - - highlightjs-vue@1.0.0: - resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - - hono@4.12.25: - resolution: {integrity: sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ==} - engines: {node: '>=16.9.0'} - - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - image-size@2.0.2: resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} hasBin: true - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - - internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -3619,16 +1525,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-network-error@1.3.2: - resolution: {integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==} - engines: {node: '>=16'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -3637,111 +1536,25 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-promise@4.0.0: - resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true - jose@5.10.0: - resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} - - jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-tiktoken@1.0.21: - resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.2.0: resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema-typed@8.0.2: - resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - - jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} - - katex@0.16.47: - resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} - hasBin: true - - khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - langchain@1.5.1: - resolution: {integrity: sha512-Ik/eTZI7k5LOMG7pyrsrtSbGecmrZosNJXn41Qa4UO+WcdyKK2fXH1/SshaRoFPXB2Ki7gcC+4N+R/+P2eR8KQ==} - engines: {node: '>=20'} - peerDependencies: - '@langchain/core': ^1.2.1 - - langsmith@0.7.10: - resolution: {integrity: sha512-3EjJx9zGMzqF60eT9JADHF+Hn/T5ayTgEVp4d3M5yvJIJi3q6seX0p5jT8ecBCWBi1kIvvssWrcDxfwgSier7Q==} - peerDependencies: - '@opentelemetry/api': '*' - '@opentelemetry/exporter-trace-otlp-proto': '*' - '@opentelemetry/sdk-trace-base': '*' - openai: '*' - ws: '>=7' - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@opentelemetry/exporter-trace-otlp-proto': - optional: true - '@opentelemetry/sdk-trace-base': - optional: true - openai: - optional: true - ws: - optional: true - - layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} - - layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - - libphonenumber-js@1.13.7: - resolution: {integrity: sha512-rvr3HIMdOgzhz1RFGjftji+wjoAFlzhqCNqJOU/MKTZQ8d9NZxAR/tI+0weDicyoucqVR0U1GCniqHJ0f8aM2A==} - - lightningcss-darwin-arm64@1.30.1: - resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.30.1: - resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] lightningcss-freebsd-x64@1.30.1: resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} @@ -3760,24 +1573,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.30.1: resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.30.1: resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.30.1: resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.30.1: resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} @@ -3795,39 +1612,12 @@ packages: resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} - lit-element@4.2.2: - resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} - - lit-html@3.3.3: - resolution: {integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==} - - lit@3.3.3: - resolution: {integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==} - - lodash-es@4.18.0: - resolution: {integrity: sha512-koAgswPPA+UTaPN64Etp+PGP+WT6oqOS2NMi5yDkMaiGw9qY4VxQbQF0mtKMyr4BlTznWyzePV5UpECTJQmSUA==} - deprecated: Bad release. Please use lodash-es@4.17.23 instead. - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.2: resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} engines: {node: 20 || >=22} @@ -3837,14 +1627,6 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lucide-react@0.542.0: - resolution: {integrity: sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - lucide@0.525.0: - resolution: {integrity: sha512-sfehWlaE/7NVkcEQ4T9JD3eID8RNMIGJBBUq9wF3UFiJIrcMKRbU3g1KGfDk4svcW7yw8BtDLXaXo02scDtUYQ==} - magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -3855,32 +1637,12 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked@12.0.2: - resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} - engines: {node: '>= 18'} - hasBin: true - - marked@16.4.2: - resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} - engines: {node: '>= 20'} - hasBin: true - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - mdast-util-from-markdown@2.0.3: - resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} - mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} @@ -3899,9 +1661,6 @@ packages: mdast-util-gfm@3.1.0: resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - mdast-util-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} - mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} @@ -3923,73 +1682,16 @@ packages: mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} - engines: {node: '>= 0.8'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - - merge-descriptors@2.0.0: - resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} - engines: {node: '>=18'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.15.0: - resolution: {integrity: sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-extension-cjk-friendly-gfm-strikethrough@1.2.3: - resolution: {integrity: sha512-gSPnxgHDDqXYOBvQRq6lerrq9mjDhdtKn+7XETuXjxWcL62yZEfUdA28Ml1I2vDIPfAOIKLa0h2XDSGkInGHFQ==} - engines: {node: '>=16'} - peerDependencies: - micromark: ^4.0.0 - micromark-util-types: ^2.0.0 - peerDependenciesMeta: - micromark-util-types: - optional: true - - micromark-extension-cjk-friendly-util@2.1.1: - resolution: {integrity: sha512-egs6+12JU2yutskHY55FyR48ZiEcFOJFyk9rsiyIhcJ6IvWB6ABBqVrBw8IobqJTDZ/wdSr9eoXDPb5S2nW1bg==} - engines: {node: '>=16'} - peerDependencies: - micromark-util-types: '*' - peerDependenciesMeta: - micromark-util-types: - optional: true - - micromark-extension-cjk-friendly@1.2.3: - resolution: {integrity: sha512-gRzVLUdjXBLX6zNPSnHGDoo+ZTp5zy+MZm0g3sv+3chPXY7l9gW+DnrcHcZh/jiPR6MjPKO4AEJNp4Aw6V9z5Q==} - engines: {node: '>=16'} - peerDependencies: - micromark: ^4.0.0 - micromark-util-types: ^2.0.0 - peerDependenciesMeta: - micromark-util-types: - optional: true - micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -4011,9 +1713,6 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-extension-mdx-expression@3.0.1: resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} @@ -4029,129 +1728,69 @@ packages: micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} micromark-factory-mdx-expression@2.0.3: resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - micromark-factory-title@2.0.1: resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - micromark-factory-whitespace@2.0.1: resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - micromark-util-chunked@2.0.1: resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - micromark-util-classify-character@2.0.1: resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - micromark-util-combine-extensions@2.0.1: resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - micromark-util-decode-numeric-character-reference@2.0.2: resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} micromark-util-events-to-acorn@2.0.3: resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - micromark-util-normalize-identifier@2.0.1: resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - micromark-util-resolve-all@2.0.1: resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - micromark-util-subtokenize@2.1.0: resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} @@ -4159,30 +1798,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -4191,29 +1806,14 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - nanoid@3.3.15: resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -4259,254 +1859,56 @@ packages: sass: optional: true - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-to-yarn@3.0.1: resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - oniguruma-parser@0.12.2: - resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} - oniguruma-to-es@4.3.3: resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} - oniguruma-to-es@4.3.6: - resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} - - openai@4.104.0: - resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} - hasBin: true - peerDependencies: - ws: ^8.18.0 - zod: ^3.23.8 - peerDependenciesMeta: - ws: - optional: true - zod: - optional: true - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-queue@9.3.0: - resolution: {integrity: sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==} - engines: {node: '>=20'} - - p-retry@7.1.1: - resolution: {integrity: sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==} - engines: {node: '>=20'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-timeout@7.0.1: - resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} - engines: {node: '>=20'} - - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - partial-json@0.1.7: - resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} - - path-data-parser@0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - - path-expression-matcher@1.6.0: - resolution: {integrity: sha512-e5y7RCLHKjemsgQ4eqGJtPyr10ILz25HO7flzxhTV8bgvd5yHx98DGtCAtbVW9f2TqnYI/gEVZd+vz7snrdPTw==} - engines: {node: '>=14.0.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - path-to-regexp@8.4.0: resolution: {integrity: sha512-PuseHIvAnz3bjrM2rGJtSgo1zjgxapTLZ7x2pjhzWwlp4SJQgK3f3iZIQwkpEnBaKz6seKBADpM4B4ySkuYypg==} - phoenix@1.8.8: - resolution: {integrity: sha512-dHbnj+eERgKqDu1dACsJNp4JWxtWO+598STHaGPhzA5DqNG4jeq5WmkjXsaMYsDMFEsygtFovdrhVtDHTN7V+A==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - - pino-pretty@11.3.0: - resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} - hasBin: true - - pino-std-serializers@7.0.0: - resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - - pino@9.14.0: - resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} - hasBin: true - - pkce-challenge@5.0.1: - resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} - engines: {node: '>=16.20.0'} - - points-on-curve@0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} - - points-on-path@0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} - postcss-selector-parser@7.1.0: resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.10: resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} - posthog-js@1.276.0: - resolution: {integrity: sha512-FYZE1037LrAoKKeUU0pUL7u8WwNK2BVeg5TFApwquVPUdj9h7u5Z077A313hPN19Ar+7Y+VHxqYqdHc4VNsVgw==} - peerDependencies: - '@rrweb/types': 2.0.0-alpha.17 - rrweb-snapshot: 2.0.0-alpha.17 - peerDependenciesMeta: - '@rrweb/types': - optional: true - rrweb-snapshot: - optional: true - - posthog-node@5.20.0: - resolution: {integrity: sha512-LkR5KfrvEQTnUtNKN97VxFB00KcYG1Iz8iKg8r0e/i7f1eQhg1WSZO+Jp1B4bvtHCmdpIE4HwYbvCCzFoCyjVg==} - engines: {node: '>=20'} - - preact@10.27.3: - resolution: {integrity: sha512-ZieIP3zQHiQsNF3BA+SNVS8dcuRIg/nsxlkFbCMBLS2L1Ww4Bkxd9n6Md2A1crfTZsEbQPADV0neYmh/EElgeQ==} - prettier@3.6.2: resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - process-warning@5.0.0: - resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - property-information@7.2.0: - resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - - qs@6.15.2: - resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} - engines: {node: '>=0.6'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} - - raw-body@3.0.2: - resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} - engines: {node: '>= 0.10'} - - react-aria@3.50.0: - resolution: {integrity: sha512-S0Os6QZk33fzUAKu1QLT9afoUaCBt1ZNdoiq0n2YMVgKIdNIQS8zxiZ8O9hYE6QyDkHKjD6q39LQZ+qaSAIgjw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom@19.2.0: resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==} peerDependencies: @@ -4517,24 +1919,6 @@ packages: peerDependencies: react: '*' - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-markdown@10.1.0: - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - - react-markdown@8.0.7: - resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - react-medium-image-zoom@5.4.0: resolution: {integrity: sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg==} peerDependencies: @@ -4561,21 +1945,6 @@ packages: '@types/react': optional: true - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-stately@3.48.0: - resolution: {integrity: sha512-ImicSAG+lTotAe5izcs1fz49Zk48w7pDusqYg04WaPhCoej8BJ24soMu3iLXIrsi273s4P1gZrYGrqReMfgEEA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -4586,27 +1955,14 @@ packages: '@types/react': optional: true - react-syntax-highlighter@15.6.6: - resolution: {integrity: sha512-DgXrc+AZF47+HvAPEmn7Ua/1p10jNoVZVI/LoPiYdtY+OM+/nG5yefLHKJwdKqY1adMuHFbeyBaG9j64ML7vTw==} - peerDependencies: - react: '>= 0.14.0' - react@19.2.0: resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} engines: {node: '>=0.10.0'} - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -4619,12 +1975,6 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - - refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -4634,65 +1984,18 @@ packages: regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} - regex@6.1.0: - resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - - rehype-harden@1.1.8: - resolution: {integrity: sha512-Qn7vR1xrf6fZCrkm9TDWi/AB4ylrHy+jqsNm1EHOAmbARYA6gsnVJBq/sdBh6kmT4NEZxH5vgIjrscefJAOXcw==} - - rehype-katex@7.0.1: - resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} - rehype-sanitize@6.0.0: - resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==} - - remark-cjk-friendly-gfm-strikethrough@1.2.3: - resolution: {integrity: sha512-bXfMZtsaomK6ysNN/UGRIcasQAYkC10NtPmP0oOHOV8YOhA2TXmwRXCku4qOzjIFxAPfish5+XS0eIug2PzNZA==} - engines: {node: '>=16'} - peerDependencies: - '@types/mdast': ^4.0.0 - unified: ^11.0.0 - peerDependenciesMeta: - '@types/mdast': - optional: true - - remark-cjk-friendly@1.2.3: - resolution: {integrity: sha512-UvAgxwlNk+l9Oqgl/9MWK2eWRS7zgBW/nXX9AthV7nd/3lNejF138E7Xbmk9Zs4WjTJGs721r7fAEc7tNFoH7g==} - engines: {node: '>=16'} - peerDependencies: - '@types/mdast': ^4.0.0 - unified: ^11.0.0 - peerDependenciesMeta: - '@types/mdast': - optional: true - remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - - remark-mdx@3.1.0: - resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} - remark-mdx@3.1.1: resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} - remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} - remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} @@ -4702,13 +2005,6 @@ packages: remark@15.0.1: resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} - remend@1.0.1: - resolution: {integrity: sha512-152puVH0qMoRJQFnaMG+rVDdf01Jq/CaED+MBuXExurJgdbkLp0c3TIe4R12o28Klx8uyGsjvFNG05aFG69G9w==} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -4716,109 +2012,27 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - robust-predicates@3.0.3: - resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} - - roughjs@4.6.6: - resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} - - router@2.2.0: - resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} - engines: {node: '>= 18'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - - scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} - - send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} - engines: {node: '>= 18'} - - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} - - serve-static@2.2.1: - resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} - engines: {node: '>= 18'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - shiki@3.15.0: resolution: {integrity: sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw==} - shiki@3.23.0: - resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} - - side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} - engines: {node: '>= 0.4'} - - sonic-boom@4.2.0: - resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4827,44 +2041,15 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - streamdown@1.6.11: - resolution: {integrity: sha512-Y38fwRx5kCKTluwM+Gf27jbbi9q6Qy+WC9YrC1YbCpMkktT3PsRBJHMWiqYeF8y/JzLpB1IzDoeaB6qkQEDnAA==} - peerDependencies: - react: ^18.0.0 || ^19.0.0 - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strnum@2.4.1: - resolution: {integrity: sha512-M9eUSMT2dCB2cTNPG7UYj6KuK7RJR2SN2+yCV/fTW3xzTCS6EaGZ5pSMgDIjB7r8zSfTGk+dvvn9rTjpVS9Mwg==} - style-to-js@1.1.17: resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.9: resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} @@ -4881,16 +2066,6 @@ packages: babel-plugin-macros: optional: true - stylis@4.4.0: - resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - tabbable@6.5.0: - resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} - tailwind-merge@3.3.1: resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} @@ -4905,17 +2080,10 @@ packages: resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} engines: {node: '>=18'} - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} - tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} - tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} - engines: {node: '>=18'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -4928,23 +2096,12 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-dedent@2.3.0: - resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} - engines: {node: '>=6.10'} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -4953,51 +2110,17 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tw-animate-css@1.4.0: - resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} - - type-graphql@2.0.0-rc.1: - resolution: {integrity: sha512-HCu4j3jR0tZvAAoO7DMBT3MRmah0DFRe5APymm9lXUghXA0sbhiMf6SLRafRYfk0R0KiUQYRduuGP3ap1RnF1Q==} - engines: {node: '>= 18.12.0'} - peerDependencies: - class-validator: '>=0.14.0' - graphql: ^16.8.1 - graphql-scalars: ^1.22.4 - peerDependenciesMeta: - class-validator: - optional: true - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - type-is@2.1.0: - resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} - engines: {node: '>= 18'} - typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -5010,43 +2133,18 @@ packages: unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} unist-util-visit@5.1.0: resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - untruncate-json@0.0.1: - resolution: {integrity: sha512-4W9enDK4X1y1s2S/Rz7ysw6kDuMS3VmRjMFg7GZrNO+98OSe+x5Lh7PKYoVjy3lW/1wmhs6HW0lusnQRHgMarA==} - - urlpattern-polyfill@10.1.0: - resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} - - urql@4.2.2: - resolution: {integrity: sha512-3GgqNa6iF7bC4hY/ImJKN4REQILcSU9VKcKL8gfELZM8mM5BnLH1BsCc8kBdnVGD1LIFOs4W3O2idNHhON1r0w==} - peerDependencies: - '@urql/core': ^5.0.0 - react: '>= 16.8.0' - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -5067,117 +2165,19 @@ packages: '@types/react': optional: true - use-stick-to-bottom@1.1.6: - resolution: {integrity: sha512-z3Up8jYQGTkUCsGBnwg6/wj70KgXoW5Kz1AAc1j8MtQuYMBo6ZsdhrIXoegxa7gaMMilgQYyTohTrt3p94jHog==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@11.1.1: - resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} - hasBin: true - - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - - validator@13.15.35: - resolution: {integrity: sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==} - engines: {node: '>= 0.10'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - web-vitals@4.2.4: - resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wonka@6.3.6: - resolution: {integrity: sha512-MXH+6mDHAZ2GuMpgKS055FR6v0xVP3XwquxIMYXgiW+FejHQlMGlvVRZT4qMCxR+bEo/FCtIdKxwej9WV3YQag==} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - yallist@5.0.0: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} - peerDependencies: - zod: ^3.25.28 || ^4 - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.1.12: resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} @@ -5186,1247 +2186,369 @@ packages: snapshots: - '@0no-co/graphql.web@1.3.2(graphql@16.14.2)': - optionalDependencies: - graphql: 16.14.2 + '@alloc/quick-lru@5.2.0': {} - '@a2ui/web_core@0.9.0': + '@ampproject/remapping@2.3.0': dependencies: - '@preact/signals-core': 1.14.3 - date-fns: 4.4.0 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 - '@ag-ui/a2ui-middleware@0.0.8(@ag-ui/client@0.0.57)(rxjs@7.8.1)': + '@emnapi/runtime@1.11.1': dependencies: - '@ag-ui/a2ui-toolkit': 0.0.2 - '@ag-ui/client': 0.0.57 - clarinet: 0.12.6 - rxjs: 7.8.1 + tslib: 2.8.1 + optional: true - '@ag-ui/a2ui-toolkit@0.0.2': {} + '@esbuild/aix-ppc64@0.25.12': + optional: true - '@ag-ui/a2ui-toolkit@0.0.3': {} + '@esbuild/aix-ppc64@0.27.2': + optional: true - '@ag-ui/client@0.0.54': - dependencies: - '@ag-ui/core': 0.0.54 - '@ag-ui/encoder': 0.0.54 - '@ag-ui/proto': 0.0.54 - '@types/uuid': 10.0.0 - compare-versions: 6.1.1 - fast-json-patch: 3.1.1 - rxjs: 7.8.1 - untruncate-json: 0.0.1 - uuid: 11.1.1 - zod: 3.25.76 + '@esbuild/android-arm64@0.25.12': + optional: true - '@ag-ui/client@0.0.57': - dependencies: - '@ag-ui/core': 0.0.57 - '@ag-ui/encoder': 0.0.57 - '@ag-ui/proto': 0.0.57 - '@types/uuid': 10.0.0 - compare-versions: 6.1.1 - fast-json-patch: 3.1.1 - rxjs: 7.8.1 - untruncate-json: 0.0.1 - uuid: 11.1.1 - zod: 3.25.76 + '@esbuild/android-arm64@0.27.2': + optional: true - '@ag-ui/core@0.0.54': - dependencies: - zod: 3.25.76 + '@esbuild/android-arm@0.25.12': + optional: true - '@ag-ui/core@0.0.57': - dependencies: - zod: 3.25.76 + '@esbuild/android-arm@0.27.2': + optional: true - '@ag-ui/encoder@0.0.54': - dependencies: - '@ag-ui/core': 0.0.54 - '@ag-ui/proto': 0.0.54 + '@esbuild/android-x64@0.25.12': + optional: true - '@ag-ui/encoder@0.0.57': - dependencies: - '@ag-ui/core': 0.0.57 - '@ag-ui/proto': 0.0.57 + '@esbuild/android-x64@0.27.2': + optional: true - '@ag-ui/langgraph@0.0.41(@ag-ui/client@0.0.57)(@ag-ui/core@0.0.57)(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12))': - dependencies: - '@ag-ui/a2ui-toolkit': 0.0.3 - '@ag-ui/client': 0.0.57 - '@ag-ui/core': 0.0.57 - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - langchain: 1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)) - partial-json: 0.1.7 - rxjs: 7.8.1 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - react - - react-dom - - svelte - - vue - - ws - - zod-to-json-schema - - '@ag-ui/mcp-apps-middleware@0.0.3(@ag-ui/client@0.0.57)(@cfworker/json-schema@4.1.1)(zod@3.25.76)': - dependencies: - '@ag-ui/client': 0.0.57 - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76) - rxjs: 7.8.1 - transitivePeerDependencies: - - '@cfworker/json-schema' - - supports-color - - zod + '@esbuild/darwin-arm64@0.25.12': + optional: true - '@ag-ui/mcp-middleware@0.0.1(@cfworker/json-schema@4.1.1)(rxjs@7.8.1)(zod@3.25.76)': - dependencies: - '@ag-ui/client': 0.0.54 - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76) - rxjs: 7.8.1 - transitivePeerDependencies: - - '@cfworker/json-schema' - - supports-color - - zod + '@esbuild/darwin-arm64@0.27.2': + optional: true - '@ag-ui/proto@0.0.54': - dependencies: - '@ag-ui/core': 0.0.54 - '@bufbuild/protobuf': 2.12.1 - '@protobuf-ts/protoc': 2.11.1 + '@esbuild/darwin-x64@0.25.12': + optional: true - '@ag-ui/proto@0.0.57': - dependencies: - '@ag-ui/core': 0.0.57 - '@bufbuild/protobuf': 2.12.1 - '@protobuf-ts/protoc': 2.11.1 + '@esbuild/darwin-x64@0.27.2': + optional: true - '@ai-sdk/amazon-bedrock@4.0.120(zod@4.1.12)': - dependencies: - '@ai-sdk/anthropic': 3.0.85(zod@4.1.12) - '@ai-sdk/openai': 3.0.74(zod@4.1.12) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.1.12) - '@smithy/eventstream-codec': 4.4.2 - '@smithy/util-utf8': 4.4.2 - aws4fetch: 1.0.20 - zod: 4.1.12 + '@esbuild/freebsd-arm64@0.25.12': + optional: true - '@ai-sdk/anthropic@3.0.85(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - zod: 3.25.76 + '@esbuild/freebsd-arm64@0.27.2': + optional: true - '@ai-sdk/anthropic@3.0.85(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.1.12) - zod: 4.1.12 + '@esbuild/freebsd-x64@0.25.12': + optional: true - '@ai-sdk/gateway@3.0.66(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.19(zod@3.25.76) - '@vercel/oidc': 3.1.0 - zod: 3.25.76 + '@esbuild/freebsd-x64@0.27.2': + optional: true - '@ai-sdk/gateway@3.0.66(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.19(zod@4.1.12) - '@vercel/oidc': 3.1.0 - zod: 4.1.12 + '@esbuild/linux-arm64@0.25.12': + optional: true - '@ai-sdk/google-vertex@4.0.148(zod@3.25.76)': - dependencies: - '@ai-sdk/anthropic': 3.0.85(zod@3.25.76) - '@ai-sdk/google': 3.0.83(zod@3.25.76) - '@ai-sdk/openai-compatible': 2.0.51(zod@3.25.76) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - google-auth-library: 10.7.0 - zod: 3.25.76 - transitivePeerDependencies: - - supports-color + '@esbuild/linux-arm64@0.27.2': + optional: true - '@ai-sdk/google@3.0.83(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - zod: 3.25.76 + '@esbuild/linux-arm@0.25.12': + optional: true - '@ai-sdk/mcp@1.0.52(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - pkce-challenge: 5.0.1 - zod: 3.25.76 + '@esbuild/linux-arm@0.27.2': + optional: true - '@ai-sdk/openai-compatible@2.0.51(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - zod: 3.25.76 + '@esbuild/linux-ia32@0.25.12': + optional: true - '@ai-sdk/openai@3.0.74(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@3.25.76) - zod: 3.25.76 + '@esbuild/linux-ia32@0.27.2': + optional: true - '@ai-sdk/openai@3.0.74(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.1.12) - zod: 4.1.12 + '@esbuild/linux-loong64@0.25.12': + optional: true - '@ai-sdk/provider-utils@4.0.19(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.6 - zod: 3.25.76 + '@esbuild/linux-loong64@0.27.2': + optional: true - '@ai-sdk/provider-utils@4.0.19(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 3.0.8 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.6 - zod: 4.1.12 + '@esbuild/linux-mips64el@0.25.12': + optional: true - '@ai-sdk/provider-utils@4.0.30(zod@3.25.76)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.1.0 - zod: 3.25.76 + '@esbuild/linux-mips64el@0.27.2': + optional: true - '@ai-sdk/provider-utils@4.0.30(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.1.0 - zod: 4.1.12 + '@esbuild/linux-ppc64@0.25.12': + optional: true - '@ai-sdk/provider@3.0.10': - dependencies: - json-schema: 0.4.0 + '@esbuild/linux-ppc64@0.27.2': + optional: true - '@ai-sdk/provider@3.0.8': - dependencies: - json-schema: 0.4.0 + '@esbuild/linux-riscv64@0.25.12': + optional: true - '@alloc/quick-lru@5.2.0': {} + '@esbuild/linux-riscv64@0.27.2': + optional: true - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@esbuild/linux-s390x@0.25.12': + optional: true - '@antfu/install-pkg@1.1.0': - dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.2.4 + '@esbuild/linux-s390x@0.27.2': + optional: true - '@aws-crypto/crc32@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.13 - tslib: 2.8.1 + '@esbuild/linux-x64@0.25.12': + optional: true - '@aws-crypto/sha256-browser@5.2.0': - dependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-locate-window': 3.965.4 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@esbuild/linux-x64@0.27.2': + optional: true - '@aws-crypto/sha256-js@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 - tslib: 2.8.1 + '@esbuild/netbsd-arm64@0.25.12': + optional: true - '@aws-crypto/supports-web-crypto@5.2.0': - dependencies: - tslib: 2.8.1 + '@esbuild/netbsd-arm64@0.27.2': + optional: true - '@aws-crypto/util@5.2.0': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@esbuild/netbsd-x64@0.25.12': + optional: true - '@aws-sdk/core@3.973.17': - dependencies: - '@aws-sdk/types': 3.973.4 - '@aws-sdk/xml-builder': 3.972.9 - '@smithy/core': 3.23.8 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/smithy-client': 4.12.2 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + '@esbuild/netbsd-x64@0.27.2': + optional: true - '@aws-sdk/credential-provider-web-identity@3.972.15': - dependencies: - '@aws-sdk/core': 3.973.17 - '@aws-sdk/nested-clients': 3.996.5 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt + '@esbuild/openbsd-arm64@0.25.12': + optional: true - '@aws-sdk/middleware-host-header@3.972.6': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.972.6': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.972.6': - dependencies: - '@aws-sdk/types': 3.973.4 - '@aws/lambda-invoke-store': 0.2.3 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.972.17': - dependencies: - '@aws-sdk/core': 3.973.17 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@smithy/core': 3.23.8 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.996.5': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.17 - '@aws-sdk/middleware-host-header': 3.972.6 - '@aws-sdk/middleware-logger': 3.972.6 - '@aws-sdk/middleware-recursion-detection': 3.972.6 - '@aws-sdk/middleware-user-agent': 3.972.17 - '@aws-sdk/region-config-resolver': 3.972.6 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@aws-sdk/util-user-agent-browser': 3.972.6 - '@aws-sdk/util-user-agent-node': 3.973.2 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.8 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.22 - '@smithy/middleware-retry': 4.4.39 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.2 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.38 - '@smithy/util-defaults-mode-node': 4.2.41 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.972.6': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/config-resolver': 4.4.10 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/types@3.973.13': - dependencies: - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/types@3.973.4': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@esbuild/openbsd-arm64@0.27.2': + optional: true - '@aws-sdk/util-endpoints@3.996.3': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-endpoints': 3.3.2 - tslib: 2.8.1 + '@esbuild/openbsd-x64@0.25.12': + optional: true - '@aws-sdk/util-locate-window@3.965.4': - dependencies: - tslib: 2.8.1 + '@esbuild/openbsd-x64@0.27.2': + optional: true - '@aws-sdk/util-user-agent-browser@3.972.6': - dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/types': 4.13.0 - bowser: 2.14.1 - tslib: 2.8.1 + '@esbuild/openharmony-arm64@0.25.12': + optional: true - '@aws-sdk/util-user-agent-node@3.973.2': - dependencies: - '@aws-sdk/middleware-user-agent': 3.972.17 - '@aws-sdk/types': 3.973.4 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@esbuild/openharmony-arm64@0.27.2': + optional: true - '@aws-sdk/xml-builder@3.972.9': - dependencies: - '@smithy/types': 4.13.0 - fast-xml-parser: 5.7.0 - tslib: 2.8.1 + '@esbuild/sunos-x64@0.25.12': + optional: true - '@aws/lambda-invoke-store@0.2.3': {} + '@esbuild/sunos-x64@0.27.2': + optional: true - '@babel/runtime@7.29.7': {} + '@esbuild/win32-arm64@0.25.12': + optional: true - '@braintree/sanitize-url@7.1.2': {} + '@esbuild/win32-arm64@0.27.2': + optional: true - '@bufbuild/protobuf@2.12.1': {} + '@esbuild/win32-ia32@0.25.12': + optional: true - '@cfworker/json-schema@4.1.1': {} + '@esbuild/win32-ia32@0.27.2': + optional: true - '@chevrotain/types@11.1.2': {} + '@esbuild/win32-x64@0.25.12': + optional: true - '@copilotkit/a2ui-renderer@1.61.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@a2ui/web_core': 0.9.0 - clsx: 2.1.1 - lit: 3.3.3 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - optionalDependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@esbuild/win32-x64@0.27.2': + optional: true - '@copilotkit/core@1.61.0(@ag-ui/core@0.0.57)(zod@4.1.12)': + '@floating-ui/core@1.7.1': dependencies: - '@ag-ui/client': 0.0.57 - '@copilotkit/shared': 1.61.0(@ag-ui/core@0.0.57) - '@tanstack/pacer': 0.20.1 - phoenix: 1.8.8 - rxjs: 7.8.1 - zod-to-json-schema: 3.25.2(zod@4.1.12) - transitivePeerDependencies: - - '@ag-ui/core' - - encoding - - zod - - '@copilotkit/license-verifier@0.5.0': {} - - '@copilotkit/react-core@1.61.0(@types/mdast@4.0.4)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(graphql@16.14.2)(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.1.12)': - dependencies: - '@ag-ui/client': 0.0.57 - '@ag-ui/core': 0.0.57 - '@copilotkit/a2ui-renderer': 1.61.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@copilotkit/core': 1.61.0(@ag-ui/core@0.0.57)(zod@4.1.12) - '@copilotkit/runtime-client-gql': 1.61.0(@ag-ui/core@0.0.57)(graphql@16.14.2)(react@19.2.0) - '@copilotkit/shared': 1.61.0(@ag-ui/core@0.0.57) - '@copilotkit/web-inspector': 1.61.0(@ag-ui/core@0.0.57)(zod@4.1.12) - '@jetbrains/websandbox': 1.3.1 - '@lit-labs/react': 2.1.3(@types/react@19.1.8) - '@radix-ui/react-dropdown-menu': 2.1.18(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.3.0(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-tooltip': 1.2.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@scarf/scarf': 1.4.0 - '@tanstack/react-virtual': 3.14.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - class-variance-authority: 0.7.1 - clsx: 2.1.1 - katex: 0.16.47 - lucide-react: 0.525.0(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-markdown: 8.0.7(@types/react@19.1.8)(react@19.2.0) - rxjs: 7.8.1 - streamdown: 1.6.11(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(react@19.2.0) - tailwind-merge: 3.3.1 - tw-animate-css: 1.4.0 - untruncate-json: 0.0.1 - use-stick-to-bottom: 1.1.6(react@19.2.0) - zod: 4.1.12 - zod-to-json-schema: 3.25.2(zod@4.1.12) - transitivePeerDependencies: - - '@types/mdast' - - '@types/react' - - '@types/react-dom' - - encoding - - graphql - - micromark - - micromark-util-types - - supports-color + '@floating-ui/utils': 0.2.9 - '@copilotkit/react-ui@1.61.0(@ag-ui/core@0.0.57)(@types/mdast@4.0.4)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(graphql@16.14.2)(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.1.12)': + '@floating-ui/dom@1.7.1': dependencies: - '@copilotkit/react-core': 1.61.0(@types/mdast@4.0.4)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(graphql@16.14.2)(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.1.12) - '@copilotkit/runtime-client-gql': 1.61.0(@ag-ui/core@0.0.57)(graphql@16.14.2)(react@19.2.0) - '@copilotkit/shared': 1.61.0(@ag-ui/core@0.0.57) - '@headlessui/react': 2.2.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-markdown: 10.1.0(@types/react@19.1.8)(react@19.2.0) - react-syntax-highlighter: 15.6.6(react@19.2.0) - rehype-raw: 7.0.0 - remark-gfm: 4.0.1 - remark-math: 6.0.0 - transitivePeerDependencies: - - '@ag-ui/core' - - '@types/mdast' - - '@types/react' - - '@types/react-dom' - - encoding - - graphql - - micromark - - micromark-util-types - - react-dom - - supports-color - - zod + '@floating-ui/core': 1.7.1 + '@floating-ui/utils': 0.2.9 - '@copilotkit/runtime-client-gql@1.61.0(@ag-ui/core@0.0.57)(graphql@16.14.2)(react@19.2.0)': + '@floating-ui/react-dom@2.1.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@copilotkit/shared': 1.61.0(@ag-ui/core@0.0.57) - '@urql/core': 5.2.0(graphql@16.14.2) + '@floating-ui/dom': 1.7.1 react: 19.2.0 - untruncate-json: 0.0.1 - urql: 4.2.2(@urql/core@5.2.0(graphql@16.14.2))(react@19.2.0) - transitivePeerDependencies: - - '@ag-ui/core' - - encoding - - graphql - - '@copilotkit/runtime@1.61.0(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@langchain/langgraph-sdk@1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@opentelemetry/api@1.9.0)(langchain@1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)))(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod-to-json-schema@3.25.2(zod@4.1.12))': - dependencies: - '@ag-ui/a2ui-middleware': 0.0.8(@ag-ui/client@0.0.57)(rxjs@7.8.1) - '@ag-ui/client': 0.0.57 - '@ag-ui/core': 0.0.57 - '@ag-ui/encoder': 0.0.57 - '@ag-ui/langgraph': 0.0.41(@ag-ui/client@0.0.57)(@ag-ui/core@0.0.57)(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)) - '@ag-ui/mcp-apps-middleware': 0.0.3(@ag-ui/client@0.0.57)(@cfworker/json-schema@4.1.1)(zod@3.25.76) - '@ag-ui/mcp-middleware': 0.0.1(@cfworker/json-schema@4.1.1)(rxjs@7.8.1)(zod@3.25.76) - '@ai-sdk/anthropic': 3.0.85(zod@3.25.76) - '@ai-sdk/google': 3.0.83(zod@3.25.76) - '@ai-sdk/google-vertex': 4.0.148(zod@3.25.76) - '@ai-sdk/mcp': 1.0.52(zod@3.25.76) - '@ai-sdk/openai': 3.0.74(zod@3.25.76) - '@copilotkit/license-verifier': 0.5.0 - '@copilotkit/shared': 1.61.0(@ag-ui/core@0.0.57) - '@graphql-yoga/plugin-defer-stream': 3.21.2(graphql-yoga@5.21.2(graphql@16.14.2))(graphql@16.14.2) - '@hono/node-server': 1.19.13(hono@4.12.25) - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76) - '@remix-run/node-fetch-server': 0.13.3 - '@scarf/scarf': 1.4.0 - '@segment/analytics-node': 2.3.0 - ai: 6.0.116(zod@3.25.76) - clarinet: 0.12.6 - class-transformer: 0.5.1 - class-validator: 0.14.4 - cors: 2.8.6 - express: 4.22.2 - graphql: 16.14.2 - graphql-scalars: 1.25.0(graphql@16.14.2) - graphql-yoga: 5.21.2(graphql@16.14.2) - hono: 4.12.25 - partial-json: 0.1.7 - phoenix: 1.8.8 - pino: 9.14.0 - pino-pretty: 11.3.0 - reflect-metadata: 0.2.2 - rxjs: 7.8.1 - type-graphql: 2.0.0-rc.1(class-validator@0.14.4)(graphql-scalars@1.25.0(graphql@16.14.2))(graphql@16.14.2) - uuid: 11.1.1 - ws: 8.21.0 - zod: 3.25.76 - optionalDependencies: - '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - langchain: 1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)) - openai: 4.104.0(ws@8.21.0)(zod@4.1.12) - transitivePeerDependencies: - - '@cfworker/json-schema' - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - bufferutil - - encoding - - react - - react-dom - - supports-color - - svelte - - utf-8-validate - - vue - - zod-to-json-schema - - '@copilotkit/shared@1.61.0(@ag-ui/core@0.0.57)': - dependencies: - '@ag-ui/client': 0.0.57 - '@ag-ui/core': 0.0.57 - '@copilotkit/license-verifier': 0.5.0 - '@segment/analytics-node': 2.3.0 - '@standard-schema/spec': 1.1.0 - chalk: 4.1.2 - graphql: 16.14.2 - partial-json: 0.1.7 - uuid: 11.1.1 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - transitivePeerDependencies: - - encoding - - '@copilotkit/web-inspector@1.61.0(@ag-ui/core@0.0.57)(zod@4.1.12)': - dependencies: - '@ag-ui/client': 0.0.57 - '@copilotkit/core': 1.61.0(@ag-ui/core@0.0.57)(zod@4.1.12) - lit: 3.3.3 - lucide: 0.525.0 - marked: 12.0.2 - transitivePeerDependencies: - - '@ag-ui/core' - - encoding - - zod - - '@emnapi/runtime@1.11.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@envelop/core@5.5.1': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@envelop/types': 5.2.1 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 + react-dom: 19.2.0(react@19.2.0) - '@envelop/instrumentation@1.0.0': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 + '@floating-ui/utils@0.2.9': {} - '@envelop/types@5.2.1': + '@formatjs/intl-localematcher@0.6.2': dependencies: - '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@esbuild/aix-ppc64@0.25.12': + '@img/colour@1.1.0': optional: true - '@esbuild/aix-ppc64@0.27.2': + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@esbuild/android-arm64@0.25.12': + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true - '@esbuild/android-arm64@0.27.2': + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@esbuild/android-arm@0.25.12': + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@esbuild/android-arm@0.27.2': + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@esbuild/android-x64@0.25.12': + '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@esbuild/android-x64@0.27.2': + '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@esbuild/darwin-arm64@0.25.12': + '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@esbuild/darwin-arm64@0.27.2': + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@esbuild/darwin-x64@0.25.12': + '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@esbuild/darwin-x64@0.27.2': + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true - '@esbuild/freebsd-arm64@0.25.12': + '@img/sharp-libvips-linuxmusl-x64@1.2.4': optional: true - '@esbuild/freebsd-arm64@0.27.2': + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true - '@esbuild/freebsd-x64@0.25.12': + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 optional: true - '@esbuild/freebsd-x64@0.27.2': + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@esbuild/linux-arm64@0.25.12': + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@esbuild/linux-arm64@0.27.2': + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@esbuild/linux-arm@0.25.12': + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@esbuild/linux-arm@0.27.2': + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@esbuild/linux-ia32@0.25.12': + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 optional: true - '@esbuild/linux-ia32@0.27.2': + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.11.1 optional: true - '@esbuild/linux-loong64@0.25.12': + '@img/sharp-win32-arm64@0.34.5': optional: true - '@esbuild/linux-loong64@0.27.2': + '@img/sharp-win32-ia32@0.34.5': optional: true - '@esbuild/linux-mips64el@0.25.12': + '@img/sharp-win32-x64@0.34.5': optional: true - '@esbuild/linux-mips64el@0.27.2': - optional: true + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 - '@esbuild/linux-ppc64@0.25.12': - optional: true + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@esbuild/linux-ppc64@0.27.2': - optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@esbuild/linux-riscv64@0.25.12': - optional: true + '@jridgewell/set-array@1.2.1': {} - '@esbuild/linux-riscv64@0.27.2': - optional: true + '@jridgewell/sourcemap-codec@1.5.0': {} - '@esbuild/linux-s390x@0.25.12': - optional: true + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@esbuild/linux-s390x@0.27.2': - optional: true + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.15.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color - '@esbuild/linux-x64@0.25.12': + '@next/env@16.2.6': {} + + '@next/swc-darwin-arm64@16.2.6': optional: true - '@esbuild/linux-x64@0.27.2': + '@next/swc-darwin-x64@16.2.6': optional: true - '@esbuild/netbsd-arm64@0.25.12': + '@next/swc-linux-arm64-gnu@16.2.6': optional: true - '@esbuild/netbsd-arm64@0.27.2': + '@next/swc-linux-arm64-musl@16.2.6': optional: true - '@esbuild/netbsd-x64@0.25.12': + '@next/swc-linux-x64-gnu@16.2.6': optional: true - '@esbuild/netbsd-x64@0.27.2': + '@next/swc-linux-x64-musl@16.2.6': optional: true - '@esbuild/openbsd-arm64@0.25.12': + '@next/swc-win32-arm64-msvc@16.2.6': optional: true - '@esbuild/openbsd-arm64@0.27.2': + '@next/swc-win32-x64-msvc@16.2.6': optional: true - '@esbuild/openbsd-x64@0.25.12': - optional: true - - '@esbuild/openbsd-x64@0.27.2': - optional: true - - '@esbuild/openharmony-arm64@0.25.12': - optional: true - - '@esbuild/openharmony-arm64@0.27.2': - optional: true - - '@esbuild/sunos-x64@0.25.12': - optional: true - - '@esbuild/sunos-x64@0.27.2': - optional: true - - '@esbuild/win32-arm64@0.25.12': - optional: true - - '@esbuild/win32-arm64@0.27.2': - optional: true - - '@esbuild/win32-ia32@0.25.12': - optional: true - - '@esbuild/win32-ia32@0.27.2': - optional: true - - '@esbuild/win32-x64@0.25.12': - optional: true - - '@esbuild/win32-x64@0.27.2': - optional: true - - '@fastify/busboy@3.2.0': {} - - '@floating-ui/core@1.7.1': - dependencies: - '@floating-ui/utils': 0.2.9 - - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 - - '@floating-ui/dom@1.7.1': - dependencies: - '@floating-ui/core': 1.7.1 - '@floating-ui/utils': 0.2.9 - - '@floating-ui/dom@1.7.6': - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 - - '@floating-ui/react-dom@2.1.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/dom': 1.7.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - - '@floating-ui/react-dom@2.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/dom': 1.7.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - - '@floating-ui/react@0.26.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@floating-ui/utils': 0.2.11 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - tabbable: 6.5.0 - - '@floating-ui/utils@0.2.11': {} - - '@floating-ui/utils@0.2.9': {} - - '@formatjs/intl-localematcher@0.6.2': - dependencies: - tslib: 2.8.1 - - '@graphql-tools/executor@1.5.3(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 11.1.0(graphql@16.14.2) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - '@repeaterjs/repeater': 3.1.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/merge@9.1.9(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 11.1.0(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/schema@10.0.33(graphql@16.14.2)': - dependencies: - '@graphql-tools/merge': 9.1.9(graphql@16.14.2) - '@graphql-tools/utils': 11.1.0(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/utils@10.11.0(graphql@16.14.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - '@whatwg-node/promise-helpers': 1.3.2 - cross-inspect: 1.0.1 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/utils@11.1.0(graphql@16.14.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - '@whatwg-node/promise-helpers': 1.3.2 - cross-inspect: 1.0.1 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-typed-document-node/core@3.2.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@graphql-yoga/logger@2.0.1': - dependencies: - tslib: 2.8.1 - - '@graphql-yoga/plugin-defer-stream@3.21.2(graphql-yoga@5.21.2(graphql@16.14.2))(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 10.11.0(graphql@16.14.2) - graphql: 16.14.2 - graphql-yoga: 5.21.2(graphql@16.14.2) - - '@graphql-yoga/subscription@5.0.5': - dependencies: - '@graphql-yoga/typed-event-target': 3.0.2 - '@repeaterjs/repeater': 3.1.0 - '@whatwg-node/events': 0.1.2 - tslib: 2.8.1 - - '@graphql-yoga/typed-event-target@3.0.2': - dependencies: - '@repeaterjs/repeater': 3.1.0 - tslib: 2.8.1 - - '@headlessui/react@2.2.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/react': 0.26.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@react-aria/focus': 3.22.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@react-aria/interactions': 3.28.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/react-virtual': 3.14.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - use-sync-external-store: 1.6.0(react@19.2.0) - - '@hono/node-server@1.19.13(hono@4.12.25)': - dependencies: - hono: 4.12.25 - - '@iconify/types@2.0.0': {} - - '@iconify/utils@3.1.3': - dependencies: - '@antfu/install-pkg': 1.1.0 - '@iconify/types': 2.0.0 - import-meta-resolve: 4.2.0 - - '@img/colour@1.1.0': - optional: true - - '@img/sharp-darwin-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - optional: true - - '@img/sharp-darwin-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - optional: true - - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - optional: true - - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - optional: true - - '@img/sharp-linux-ppc64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - optional: true - - '@img/sharp-linux-riscv64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - optional: true - - '@img/sharp-linux-s390x@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - optional: true - - '@img/sharp-linux-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - optional: true - - '@img/sharp-wasm32@0.34.5': - dependencies: - '@emnapi/runtime': 1.11.1 - optional: true - - '@img/sharp-win32-arm64@0.34.5': - optional: true - - '@img/sharp-win32-ia32@0.34.5': - optional: true - - '@img/sharp-win32-x64@0.34.5': - optional: true - - '@internationalized/date@3.12.2': - dependencies: - '@swc/helpers': 0.5.23 - - '@internationalized/number@3.6.7': - dependencies: - '@swc/helpers': 0.5.23 - - '@internationalized/string@3.2.9': - dependencies: - '@swc/helpers': 0.5.23 - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - - '@jetbrains/websandbox@1.3.1': {} - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0)': - dependencies: - '@cfworker/json-schema': 4.1.1 - '@standard-schema/spec': 1.1.0 - js-tiktoken: 1.0.21 - langsmith: 0.7.10(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - mustache: 4.2.0 - p-queue: 6.6.2 - zod: 4.1.12 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - ws - - '@langchain/langgraph-checkpoint@1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))': - dependencies: - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - - '@langchain/langgraph-sdk@1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - '@langchain/protocol': 0.0.18 - '@types/json-schema': 7.0.15 - p-queue: 9.3.0 - p-retry: 7.1.1 - optionalDependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - - '@langchain/langgraph@1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod-to-json-schema@3.25.2(zod@4.1.12))(zod@4.1.12)': - dependencies: - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0)) - '@langchain/langgraph-sdk': 1.9.24(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@langchain/protocol': 0.0.18 - '@standard-schema/spec': 1.1.0 - zod: 4.1.12 - optionalDependencies: - zod-to-json-schema: 3.25.2(zod@4.1.12) - transitivePeerDependencies: - - react - - react-dom - - svelte - - vue - - '@langchain/protocol@0.0.18': {} - - '@lit-labs/react@2.1.3(@types/react@19.1.8)': - dependencies: - '@lit/react': 1.0.8(@types/react@19.1.8) - transitivePeerDependencies: - - '@types/react' - - '@lit-labs/ssr-dom-shim@1.6.0': {} - - '@lit/react@1.0.8(@types/react@19.1.8)': - dependencies: - '@types/react': 19.1.8 - - '@lit/reactive-element@2.1.2': - dependencies: - '@lit-labs/ssr-dom-shim': 1.6.0 - - '@lukeed/csprng@1.1.0': {} - - '@lukeed/uuid@2.0.1': - dependencies: - '@lukeed/csprng': 1.1.0 - - '@mdx-js/mdx@3.1.1': - dependencies: - '@types/estree': 1.0.8 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 - acorn: 8.15.0 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-util-scope: 1.0.0 - estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 - markdown-extensions: 2.0.0 - recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.15.0) - recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - source-map: 0.7.4 - unified: 11.0.5 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@mermaid-js/parser@1.1.1': - dependencies: - '@chevrotain/types': 11.1.2 - - '@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@3.25.76)': - dependencies: - '@hono/node-server': 1.19.13(hono@4.12.25) - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) - content-type: 1.0.5 - cors: 2.8.6 - cross-spawn: 7.0.6 - eventsource: 3.0.7 - eventsource-parser: 3.1.0 - express: 5.2.1 - express-rate-limit: 8.5.2(express@5.2.1) - hono: 4.12.25 - jose: 6.2.3 - json-schema-typed: 8.0.2 - pkce-challenge: 5.0.1 - raw-body: 3.0.2 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - optionalDependencies: - '@cfworker/json-schema': 4.1.1 - transitivePeerDependencies: - - supports-color - - '@next/env@16.2.6': {} - - '@next/swc-darwin-arm64@16.2.6': - optional: true - - '@next/swc-darwin-x64@16.2.6': - optional: true - - '@next/swc-linux-arm64-gnu@16.2.6': - optional: true - - '@next/swc-linux-arm64-musl@16.2.6': - optional: true - - '@next/swc-linux-x64-gnu@16.2.6': - optional: true - - '@next/swc-linux-x64-musl@16.2.6': - optional: true - - '@next/swc-win32-arm64-msvc@16.2.6': - optional: true - - '@next/swc-win32-x64-msvc@16.2.6': - optional: true - - '@nodable/entities@2.2.0': {} - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -6439,28 +2561,12 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@opentelemetry/api@1.9.0': {} - '@orama/orama@3.1.16': {} - '@pinojs/redact@0.4.0': {} - - '@posthog/core@1.3.0': {} - - '@posthog/core@1.9.1': - dependencies: - cross-spawn: 7.0.6 - - '@preact/signals-core@1.14.3': {} - - '@protobuf-ts/protoc@2.11.1': {} - '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} - '@radix-ui/primitive@1.1.4': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6478,15 +2584,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-arrow@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -6512,18 +2609,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collection@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.3.0(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.0) @@ -6542,24 +2627,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-compose-refs@1.1.3(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-context@1.1.2(@types/react@19.1.8)(react@19.2.0)': dependencies: react: 19.2.0 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-context@1.1.4(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6588,12 +2661,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-direction@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6607,57 +2674,12 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-dismissable-layer@1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - - '@radix-ui/react-dropdown-menu@2.1.18(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-id': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-menu': 2.1.18(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.8)(react@19.2.0)': dependencies: react: 19.2.0 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-focus-guards@1.1.4(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - - '@radix-ui/react-focus-scope@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.0) @@ -6676,39 +2698,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-id@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - - '@radix-ui/react-menu@2.1.18(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-direction': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-focus-scope': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-roving-focus': 1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.3.0(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - aria-hidden: 1.2.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-remove-scroll: 2.7.2(@types/react@19.1.8)(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6772,34 +2761,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-popper@1.3.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-arrow': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-rect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/rect': 1.1.2 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - - '@radix-ui/react-portal@1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -6820,15 +2781,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-presence@1.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.2.0) @@ -6838,15 +2790,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-slot': 1.3.0(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6864,23 +2807,6 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-roving-focus@1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-collection': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-direction': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-id': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/number': 1.1.1 @@ -6912,13 +2838,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-slot@1.3.0(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -6935,38 +2854,12 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-tooltip@1.2.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/primitive': 1.1.4 - '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-context': 1.1.4(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.2(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-popper': 1.3.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.3.0(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-visually-hidden': 1.2.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.8)(react@19.2.0)': dependencies: react: 19.2.0 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.2.0)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.2.0) @@ -6975,14 +2868,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.1.8)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.8)(react@19.2.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.0) @@ -6990,13 +2875,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.8)(react@19.2.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.2.0) @@ -7004,25 +2882,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.2.0)': dependencies: react: 19.2.0 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.8)(react@19.2.0)': dependencies: react: 19.2.0 @@ -7036,13 +2901,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-rect@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/rect': 1.1.2 - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.8)(react@19.2.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.0) @@ -7050,13 +2908,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-size@1.1.2(@types/react@19.1.8)(react@19.2.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.1.8)(react@19.2.0) - react: 19.2.0 - optionalDependencies: - '@types/react': 19.1.8 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -7066,67 +2917,8 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-visually-hidden@1.2.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@radix-ui/react-primitive': 2.1.6(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/rect@1.1.1': {} - '@radix-ui/rect@1.1.2': {} - - '@react-aria/focus@3.22.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@swc/helpers': 0.5.23 - react: 19.2.0 - react-aria: 3.50.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react-dom: 19.2.0(react@19.2.0) - - '@react-aria/interactions@3.28.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@react-types/shared': 3.36.0(react@19.2.0) - '@swc/helpers': 0.5.23 - react: 19.2.0 - react-aria: 3.50.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react-dom: 19.2.0(react@19.2.0) - - '@react-types/shared@3.36.0(react@19.2.0)': - dependencies: - react: 19.2.0 - - '@remix-run/node-fetch-server@0.13.3': {} - - '@repeaterjs/repeater@3.1.0': {} - - '@scarf/scarf@1.4.0': {} - - '@segment/analytics-core@1.8.2': - dependencies: - '@lukeed/uuid': 2.0.1 - '@segment/analytics-generic-utils': 1.2.0 - dset: 3.1.4 - tslib: 2.8.1 - - '@segment/analytics-generic-utils@1.2.0': - dependencies: - tslib: 2.8.1 - - '@segment/analytics-node@2.3.0': - dependencies: - '@lukeed/uuid': 2.0.1 - '@segment/analytics-core': 1.8.2 - '@segment/analytics-generic-utils': 1.2.0 - buffer: 6.0.3 - jose: 5.10.0 - node-fetch: 2.7.0 - tslib: 2.8.1 - transitivePeerDependencies: - - encoding - '@shikijs/core@3.15.0': dependencies: '@shikijs/types': 3.15.0 @@ -7134,43 +2926,21 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/core@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.15.0': dependencies: '@shikijs/types': 3.15.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-javascript@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@3.15.0': dependencies: '@shikijs/types': 3.15.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.15.0': dependencies: '@shikijs/types': 3.15.0 - '@shikijs/langs@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/rehype@3.15.0': dependencies: '@shikijs/types': 3.15.0 @@ -7184,10 +2954,6 @@ snapshots: dependencies: '@shikijs/types': 3.15.0 - '@shikijs/themes@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/transformers@3.15.0': dependencies: '@shikijs/core': 3.15.0 @@ -7198,319 +2964,14 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/types@3.23.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.2': {} - '@smithy/abort-controller@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/config-resolver@4.4.10': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - tslib: 2.8.1 - - '@smithy/core@3.23.8': - dependencies: - '@smithy/middleware-serde': 4.2.12 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/core@3.26.0': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.2.11': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - tslib: 2.8.1 - - '@smithy/eventstream-codec@4.4.2': - dependencies: - '@smithy/core': 3.26.0 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.3.13': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - tslib: 2.8.1 - - '@smithy/hash-node@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/invalid-dependency@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/is-array-buffer@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/middleware-content-length@4.2.11': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/middleware-endpoint@4.4.22': - dependencies: - '@smithy/core': 3.23.8 - '@smithy/middleware-serde': 4.2.12 - '@smithy/node-config-provider': 4.3.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-middleware': 4.2.11 - tslib: 2.8.1 - - '@smithy/middleware-retry@4.4.39': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/service-error-classification': 4.2.11 - '@smithy/smithy-client': 4.12.2 - '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/middleware-serde@4.2.12': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/middleware-stack@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/node-config-provider@4.3.11': - dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.4.14': - dependencies: - '@smithy/abort-controller': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/property-provider@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/protocol-http@5.3.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/querystring-builder@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-uri-escape': 4.2.2 - tslib: 2.8.1 - - '@smithy/querystring-parser@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/service-error-classification@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - - '@smithy/shared-ini-file-loader@4.4.6': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/signature-v4@5.3.11': - dependencies: - '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-uri-escape': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/smithy-client@4.12.2': - dependencies: - '@smithy/core': 3.23.8 - '@smithy/middleware-endpoint': 4.4.22 - '@smithy/middleware-stack': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.17 - tslib: 2.8.1 - - '@smithy/types@4.13.0': - dependencies: - tslib: 2.8.1 - - '@smithy/types@4.15.0': - dependencies: - tslib: 2.8.1 - - '@smithy/url-parser@4.2.11': - dependencies: - '@smithy/querystring-parser': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-base64@4.3.2': - dependencies: - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-body-length-browser@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-body-length-node@4.2.3': - dependencies: - tslib: 2.8.1 - - '@smithy/util-buffer-from@2.2.0': - dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-buffer-from@4.2.2': - dependencies: - '@smithy/is-array-buffer': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-config-provider@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-defaults-mode-browser@4.3.38': - dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.2 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-defaults-mode-node@4.2.41': - dependencies: - '@smithy/config-resolver': 4.4.10 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.2 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-endpoints@3.3.2': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-hex-encoding@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-middleware@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-retry@4.2.11': - dependencies: - '@smithy/service-error-classification': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@smithy/util-stream@4.5.17': - dependencies: - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/node-http-handler': 4.4.14 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-uri-escape@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-utf8@2.3.0': - dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-utf8@4.2.2': - dependencies: - '@smithy/util-buffer-from': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-utf8@4.4.2': - dependencies: - '@smithy/core': 3.26.0 - tslib: 2.8.1 - - '@smithy/uuid@1.1.2': - dependencies: - tslib: 2.8.1 - '@standard-schema/spec@1.0.0': {} - '@standard-schema/spec@1.1.0': {} - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - '@swc/helpers@0.5.23': - dependencies: - tslib: 2.8.1 - '@tailwindcss/node@4.1.10': dependencies: '@ampproject/remapping': 2.3.0 @@ -7522,233 +2983,81 @@ snapshots: tailwindcss: 4.1.10 '@tailwindcss/oxide-android-arm64@4.1.10': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.1.10': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.1.10': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.1.10': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.1.10': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.1.10': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.1.10': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.1.10': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.1.10': - optional: true - - '@tailwindcss/oxide@4.1.10': - dependencies: - detect-libc: 2.0.4 - tar: 7.5.16 - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.10 - '@tailwindcss/oxide-darwin-arm64': 4.1.10 - '@tailwindcss/oxide-darwin-x64': 4.1.10 - '@tailwindcss/oxide-freebsd-x64': 4.1.10 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.10 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.10 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.10 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.10 - '@tailwindcss/oxide-linux-x64-musl': 4.1.10 - '@tailwindcss/oxide-wasm32-wasi': 4.1.10 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.10 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.10 - - '@tailwindcss/postcss@4.1.10': - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.10 - '@tailwindcss/oxide': 4.1.10 - postcss: 8.5.10 - tailwindcss: 4.1.10 - - '@tanstack/devtools-event-client@0.4.4': {} - - '@tanstack/pacer@0.20.1': - dependencies: - '@tanstack/devtools-event-client': 0.4.4 - '@tanstack/store': 0.9.3 - - '@tanstack/react-virtual@3.14.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@tanstack/virtual-core': 3.17.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - - '@tanstack/store@0.9.3': {} - - '@tanstack/virtual-core@3.17.1': {} - - '@types/d3-array@3.2.2': {} - - '@types/d3-axis@3.0.6': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-brush@3.0.6': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-chord@3.0.6': {} - - '@types/d3-color@3.1.3': {} - - '@types/d3-contour@3.0.6': - dependencies: - '@types/d3-array': 3.2.2 - '@types/geojson': 7946.0.16 - - '@types/d3-delaunay@6.0.4': {} - - '@types/d3-dispatch@3.0.7': {} - - '@types/d3-drag@3.0.7': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-dsv@3.0.7': {} - - '@types/d3-ease@3.0.2': {} - - '@types/d3-fetch@3.0.7': - dependencies: - '@types/d3-dsv': 3.0.7 - - '@types/d3-force@3.0.10': {} - - '@types/d3-format@3.0.4': {} - - '@types/d3-geo@3.1.0': - dependencies: - '@types/geojson': 7946.0.16 - - '@types/d3-hierarchy@3.1.7': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-path@3.1.1': {} + optional: true - '@types/d3-polygon@3.0.2': {} + '@tailwindcss/oxide-darwin-arm64@4.1.10': + optional: true - '@types/d3-quadtree@3.0.6': {} + '@tailwindcss/oxide-darwin-x64@4.1.10': + optional: true - '@types/d3-random@3.0.3': {} + '@tailwindcss/oxide-freebsd-x64@4.1.10': + optional: true - '@types/d3-scale-chromatic@3.1.0': {} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': + optional: true - '@types/d3-scale@4.0.9': - dependencies: - '@types/d3-time': 3.0.4 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': + optional: true - '@types/d3-selection@3.0.11': {} + '@tailwindcss/oxide-linux-arm64-musl@4.1.10': + optional: true - '@types/d3-shape@3.1.8': - dependencies: - '@types/d3-path': 3.1.1 + '@tailwindcss/oxide-linux-x64-gnu@4.1.10': + optional: true - '@types/d3-time-format@4.0.3': {} + '@tailwindcss/oxide-linux-x64-musl@4.1.10': + optional: true - '@types/d3-time@3.0.4': {} + '@tailwindcss/oxide-wasm32-wasi@4.1.10': + optional: true - '@types/d3-timer@3.0.2': {} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': + optional: true - '@types/d3-transition@3.0.9': - dependencies: - '@types/d3-selection': 3.0.11 + '@tailwindcss/oxide-win32-x64-msvc@4.1.10': + optional: true - '@types/d3-zoom@3.0.8': + '@tailwindcss/oxide@4.1.10': dependencies: - '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.11 + detect-libc: 2.0.4 + tar: 7.5.16 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.10 + '@tailwindcss/oxide-darwin-arm64': 4.1.10 + '@tailwindcss/oxide-darwin-x64': 4.1.10 + '@tailwindcss/oxide-freebsd-x64': 4.1.10 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.10 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.10 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.10 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.10 + '@tailwindcss/oxide-linux-x64-musl': 4.1.10 + '@tailwindcss/oxide-wasm32-wasi': 4.1.10 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.10 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.10 - '@types/d3@7.4.3': + '@tailwindcss/postcss@4.1.10': dependencies: - '@types/d3-array': 3.2.2 - '@types/d3-axis': 3.0.6 - '@types/d3-brush': 3.0.6 - '@types/d3-chord': 3.0.6 - '@types/d3-color': 3.1.3 - '@types/d3-contour': 3.0.6 - '@types/d3-delaunay': 6.0.4 - '@types/d3-dispatch': 3.0.7 - '@types/d3-drag': 3.0.7 - '@types/d3-dsv': 3.0.7 - '@types/d3-ease': 3.0.2 - '@types/d3-fetch': 3.0.7 - '@types/d3-force': 3.0.10 - '@types/d3-format': 3.0.4 - '@types/d3-geo': 3.1.0 - '@types/d3-hierarchy': 3.1.7 - '@types/d3-interpolate': 3.0.4 - '@types/d3-path': 3.1.1 - '@types/d3-polygon': 3.0.2 - '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.3 - '@types/d3-scale': 4.0.9 - '@types/d3-scale-chromatic': 3.1.0 - '@types/d3-selection': 3.0.11 - '@types/d3-shape': 3.1.8 - '@types/d3-time': 3.0.4 - '@types/d3-time-format': 4.0.3 - '@types/d3-timer': 3.0.2 - '@types/d3-transition': 3.0.9 - '@types/d3-zoom': 3.0.8 + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.10 + '@tailwindcss/oxide': 4.1.10 + postcss: 8.5.10 + tailwindcss: 4.1.10 '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 - '@types/debug@4.1.13': - dependencies: - '@types/ms': 2.1.0 - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.8 '@types/estree@1.0.8': {} - '@types/geojson@7946.0.16': {} - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 - '@types/json-schema@7.0.15': {} - - '@types/katex@0.16.8': {} - - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -7757,21 +3066,10 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node-fetch@2.6.13': - dependencies: - '@types/node': 22.15.28 - form-data: 4.0.6 - - '@types/node@18.19.130': - dependencies: - undici-types: 5.26.5 - '@types/node@22.15.28': dependencies: undici-types: 6.21.0 - '@types/prop-types@15.7.15': {} - '@types/react-dom@19.1.6(@types/react@19.1.8)': dependencies: '@types/react': 19.1.8 @@ -7780,240 +3078,44 @@ snapshots: dependencies: csstype: 3.1.3 - '@types/semver@7.7.1': {} - - '@types/trusted-types@2.0.7': {} - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} - '@types/uuid@10.0.0': {} - - '@types/validator@13.15.10': {} - '@ungap/structured-clone@1.3.0': {} - '@ungap/structured-clone@1.3.1': {} - - '@upsetjs/venn.js@2.0.0': - optionalDependencies: - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - '@urql/core@5.2.0(graphql@16.14.2)': - dependencies: - '@0no-co/graphql.web': 1.3.2(graphql@16.14.2) - wonka: 6.3.6 - transitivePeerDependencies: - - graphql - - '@vercel/functions@2.2.13(@aws-sdk/credential-provider-web-identity@3.972.15)': - dependencies: - '@vercel/oidc': 2.0.2 - optionalDependencies: - '@aws-sdk/credential-provider-web-identity': 3.972.15 - - '@vercel/oidc@2.0.2': - dependencies: - '@types/ms': 2.1.0 - ms: 2.1.3 - - '@vercel/oidc@3.1.0': {} - - '@whatwg-node/disposablestack@0.0.6': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@whatwg-node/events@0.1.2': - dependencies: - tslib: 2.8.1 - - '@whatwg-node/fetch@0.10.13': - dependencies: - '@whatwg-node/node-fetch': 0.8.6 - urlpattern-polyfill: 10.1.0 - - '@whatwg-node/node-fetch@0.8.6': - dependencies: - '@fastify/busboy': 3.2.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@whatwg-node/promise-helpers@1.3.2': - dependencies: - tslib: 2.8.1 - - '@whatwg-node/server@0.11.0': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.13 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - accepts@2.0.0: - dependencies: - mime-types: 3.0.2 - negotiator: 1.0.0 - acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 acorn@8.15.0: {} - agent-base@7.1.4: {} - - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - ai@6.0.116(zod@3.25.76): - dependencies: - '@ai-sdk/gateway': 3.0.66(zod@3.25.76) - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.19(zod@3.25.76) - '@opentelemetry/api': 1.9.0 - zod: 3.25.76 - - ai@6.0.116(zod@4.1.12): - dependencies: - '@ai-sdk/gateway': 3.0.66(zod@4.1.12) - '@ai-sdk/provider': 3.0.8 - '@ai-sdk/provider-utils': 4.0.19(zod@4.1.12) - '@opentelemetry/api': 1.9.0 - zod: 4.1.12 - - ajv-formats@3.0.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - - ajv@8.18.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - anynum@1.0.1: {} - argparse@2.0.1: {} aria-hidden@1.2.6: dependencies: tslib: 2.8.1 - array-flatten@1.1.1: {} - astring@1.9.0: {} - asynckit@0.4.0: {} - - atomic-sleep@1.0.0: {} - - aws4fetch@1.0.20: {} - bail@2.0.2: {} - base64-js@1.5.1: {} - baseline-browser-mapping@2.10.38: {} - bignumber.js@9.3.1: {} - - body-parser@1.20.5: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.15.2 - raw-body: 2.5.3 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - body-parser@2.3.0: - dependencies: - bytes: 3.1.2 - content-type: 2.0.0 - debug: 4.4.3 - http-errors: 2.0.1 - iconv-lite: 0.7.2 - on-finished: 2.4.1 - qs: 6.15.2 - raw-body: 3.0.2 - type-is: 2.1.0 - transitivePeerDependencies: - - supports-color - - bowser@2.14.1: {} - braces@3.0.3: dependencies: fill-range: 7.1.1 - buffer-equal-constant-time@1.0.1: {} - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bytes@3.1.2: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001799: {} ccount@2.0.1: {} - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - character-entities-html4@2.1.0: {} - character-entities-legacy@1.1.4: {} - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: {} - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: {} - character-reference-invalid@2.0.1: {} chokidar@4.0.3: @@ -8022,319 +3124,34 @@ snapshots: chownr@3.0.0: {} - clarinet@0.12.6: {} - - class-transformer@0.5.1: {} - - class-validator@0.14.4: - dependencies: - '@types/validator': 13.15.10 - libphonenumber-js: 1.13.7 - validator: 13.15.35 - class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 - client-only@0.0.1: {} - - clsx@2.1.1: {} - - collapse-white-space@2.1.0: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colorette@2.0.20: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - comma-separated-tokens@1.0.8: {} - - comma-separated-tokens@2.0.3: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - compare-versions@6.1.1: {} - - compute-scroll-into-view@3.1.1: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-disposition@1.1.0: {} - - content-type@1.0.5: {} - - content-type@2.0.0: {} - - cookie-signature@1.0.7: {} - - cookie-signature@1.2.2: {} - - cookie@0.7.2: {} - - core-js@3.46.0: {} - - cors@2.8.6: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - - cose-base@1.0.3: - dependencies: - layout-base: 1.0.2 - - cose-base@2.2.0: - dependencies: - layout-base: 2.0.1 - - cross-inspect@1.0.1: - dependencies: - tslib: 2.8.1 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - csstype@3.1.3: {} - - cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.0): - dependencies: - cose-base: 1.0.3 - cytoscape: 3.34.0 - - cytoscape-fcose@2.2.0(cytoscape@3.34.0): - dependencies: - cose-base: 2.2.0 - cytoscape: 3.34.0 - - cytoscape@3.34.0: {} - - d3-array@2.12.1: - dependencies: - internmap: 1.0.1 - - d3-array@3.2.4: - dependencies: - internmap: 2.0.3 - - d3-axis@3.0.0: {} - - d3-brush@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3-chord@3.0.1: - dependencies: - d3-path: 3.1.0 - - d3-color@3.1.0: {} - - d3-contour@4.0.2: - dependencies: - d3-array: 3.2.4 - - d3-delaunay@6.0.4: - dependencies: - delaunator: 5.1.0 - - d3-dispatch@3.0.1: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 - - d3-dsv@3.0.1: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - d3-ease@3.0.1: {} - - d3-fetch@3.0.1: - dependencies: - d3-dsv: 3.0.1 - - d3-force@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - - d3-format@3.1.2: {} - - d3-geo@3.1.1: - dependencies: - d3-array: 3.2.4 - - d3-hierarchy@3.1.2: {} - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-path@1.0.9: {} - - d3-path@3.1.0: {} - - d3-polygon@3.0.1: {} - - d3-quadtree@3.0.1: {} - - d3-random@3.0.1: {} - - d3-sankey@0.12.3: - dependencies: - d3-array: 2.12.1 - d3-shape: 1.3.7 - - d3-scale-chromatic@3.1.0: - dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 - - d3-scale@4.0.2: - dependencies: - d3-array: 3.2.4 - d3-format: 3.1.2 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - - d3-selection@3.0.0: {} - - d3-shape@1.3.7: - dependencies: - d3-path: 1.0.9 - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - - d3-time-format@4.1.0: - dependencies: - d3-time: 3.1.0 - - d3-time@3.1.0: - dependencies: - d3-array: 3.2.4 - - d3-timer@3.0.1: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - d3@7.9.0: - dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.2 - d3-geo: 3.1.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 + client-only@0.0.1: {} - dagre-d3-es@7.0.14: - dependencies: - d3: 7.9.0 - lodash-es: 4.18.0 + clsx@2.1.1: {} - data-uri-to-buffer@4.0.1: {} + collapse-white-space@2.1.0: {} - date-fns@4.4.0: {} + comma-separated-tokens@2.0.3: {} - dateformat@4.6.3: {} + compute-scroll-into-view@3.1.1: {} - dayjs@1.11.21: {} + cssesc@3.0.0: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 + csstype@3.1.3: {} debug@4.4.1: dependencies: ms: 2.1.3 - debug@4.4.3: - dependencies: - ms: 2.1.3 - decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 - decode-named-character-reference@1.3.0: - dependencies: - character-entities: 2.0.2 - - delaunator@5.1.0: - dependencies: - robust-predicates: 3.0.3 - - delayed-stream@1.0.0: {} - - depd@2.0.0: {} - dequal@2.0.3: {} - destroy@1.2.0: {} - detect-libc@2.0.4: {} detect-libc@2.1.2: @@ -8346,56 +3163,11 @@ snapshots: dependencies: dequal: 2.0.3 - diff@5.2.2: {} - - dompurify@3.4.11: - optionalDependencies: - '@types/trusted-types': 2.0.7 - - dset@3.1.4: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - - ee-first@1.1.1: {} - - encodeurl@2.0.0: {} - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.2 - entities@6.0.1: {} - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.4 - - es-toolkit@1.48.1: {} - esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -8468,8 +3240,6 @@ snapshots: '@esbuild/win32-ia32': 0.27.2 '@esbuild/win32-x64': 0.27.2 - escape-html@1.0.3: {} - escape-string-regexp@5.0.0: {} estree-util-attach-comments@3.0.0: @@ -8509,104 +3279,8 @@ snapshots: dependencies: '@types/estree': 1.0.8 - etag@1.8.1: {} - - event-target-shim@5.0.1: {} - - eventemitter3@4.0.7: {} - - eventemitter3@5.0.4: {} - - events@3.3.0: {} - - eventsource-parser@3.0.6: {} - - eventsource-parser@3.1.0: {} - - eventsource@3.0.7: - dependencies: - eventsource-parser: 3.1.0 - - express-rate-limit@8.5.2(express@5.2.1): - dependencies: - express: 5.2.1 - ip-address: 10.2.0 - - express@4.22.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.5 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 8.4.0 - proxy-addr: 2.0.7 - qs: 6.15.2 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - express@5.2.1: - dependencies: - accepts: 2.0.0 - body-parser: 2.3.0 - content-disposition: 1.1.0 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.2.2 - debug: 4.4.3 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 2.1.1 - fresh: 2.0.0 - http-errors: 2.0.1 - merge-descriptors: 2.0.0 - mime-types: 3.0.2 - on-finished: 2.4.1 - once: 1.4.0 - parseurl: 1.3.3 - proxy-addr: 2.0.7 - qs: 6.15.2 - range-parser: 1.2.1 - router: 2.2.0 - send: 1.2.1 - serve-static: 2.2.1 - statuses: 2.0.2 - type-is: 2.1.0 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - extend@3.0.2: {} - fast-copy@3.0.2: {} - - fast-deep-equal@3.1.3: {} - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8615,100 +3289,22 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-patch@3.1.1: {} - - fast-safe-stringify@2.1.1: {} - - fast-uri@3.1.2: {} - - fast-xml-builder@1.1.7: - dependencies: - path-expression-matcher: 1.6.0 - - fast-xml-parser@5.7.0: - dependencies: - '@nodable/entities': 2.2.0 - fast-xml-builder: 1.1.7 - path-expression-matcher: 1.6.0 - strnum: 2.4.1 - fastq@1.20.1: dependencies: reusify: 1.1.0 - fault@1.0.4: - dependencies: - format: 0.2.2 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 - fetch-blob@3.2.0: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - - fflate@0.4.8: {} - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.3.2: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - finalhandler@2.1.1: - dependencies: - debug: 4.4.3 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - form-data-encoder@1.7.2: {} - - form-data@4.0.6: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.4 - mime-types: 2.1.35 - - format@0.2.2: {} - - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - - formdata-polyfill@4.0.10: - dependencies: - fetch-blob: 3.2.0 - - forwarded@0.2.0: {} - - fresh@0.5.2: {} - - fresh@2.0.0: {} - fsevents@2.3.3: optional: true - fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@formatjs/intl-localematcher': 0.6.2 '@orama/orama': 3.1.16 @@ -8731,20 +3327,20 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 lucide-react: 0.525.0(react@19.2.0) - next: 16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + next: 16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) transitivePeerDependencies: - supports-color - fumadocs-mdx@13.0.8(fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0): + fumadocs-mdx@13.0.8(fumadocs-core@16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 esbuild: 0.25.12 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + fumadocs-core: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) js-yaml: 4.2.0 lru-cache: 11.2.2 mdast-util-to-markdown: 2.1.2 @@ -8758,12 +3354,12 @@ snapshots: unist-util-visit: 5.0.0 zod: 4.1.12 optionalDependencies: - next: 16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + next: 16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 transitivePeerDependencies: - supports-color - fumadocs-ui@16.0.8(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(tailwindcss@4.1.10): + fumadocs-ui@16.0.8(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(tailwindcss@4.1.10): dependencies: '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -8776,7 +3372,7 @@ snapshots: '@radix-ui/react-slot': 1.2.4(@types/react@19.1.8)(react@19.2.0) '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) class-variance-authority: 0.7.1 - fumadocs-core: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + fumadocs-core: 16.0.8(@types/react@19.1.8)(lucide-react@0.525.0(react@19.2.0))(next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) lodash.merge: 4.6.2 next-themes: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) postcss-selector-parser: 7.1.0 @@ -8787,7 +3383,7 @@ snapshots: tailwind-merge: 3.3.1 optionalDependencies: '@types/react': 19.1.8 - next: 16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + next: 16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) tailwindcss: 4.1.10 transitivePeerDependencies: - '@mixedbread/sdk' @@ -8800,46 +3396,8 @@ snapshots: - supports-color - waku - function-bind@1.1.2: {} - - gaxios@7.1.5: - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - node-fetch: 3.3.2 - transitivePeerDependencies: - - supports-color - - gcp-metadata@8.1.2: - dependencies: - gaxios: 7.1.5 - google-logging-utils: 1.1.3 - json-bigint: 1.0.0 - transitivePeerDependencies: - - supports-color - - get-east-asian-width@1.6.0: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - math-intrinsics: 1.1.0 - get-nonce@1.0.1: {} - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -8850,130 +3408,8 @@ snapshots: dependencies: is-glob: 4.0.3 - google-auth-library@10.7.0: - dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.5 - gcp-metadata: 8.1.2 - google-logging-utils: 1.1.3 - jws: 4.0.1 - transitivePeerDependencies: - - supports-color - - google-logging-utils@1.1.3: {} - - gopd@1.2.0: {} - graceful-fs@4.2.11: {} - graphql-query-complexity@0.12.0(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - lodash.get: 4.4.2 - - graphql-scalars@1.25.0(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - tslib: 2.8.1 - - graphql-yoga@5.21.2(graphql@16.14.2): - dependencies: - '@envelop/core': 5.5.1 - '@envelop/instrumentation': 1.0.0 - '@graphql-tools/executor': 1.5.3(graphql@16.14.2) - '@graphql-tools/schema': 10.0.33(graphql@16.14.2) - '@graphql-tools/utils': 10.11.0(graphql@16.14.2) - '@graphql-yoga/logger': 2.0.1 - '@graphql-yoga/subscription': 5.0.5 - '@whatwg-node/fetch': 0.10.13 - '@whatwg-node/promise-helpers': 1.3.2 - '@whatwg-node/server': 0.11.0 - graphql: 16.14.2 - lru-cache: 10.4.3 - tslib: 2.8.1 - - graphql@16.14.2: {} - - hachure-fill@0.5.2: {} - - has-flag@4.0.0: {} - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - - hast-util-from-dom@5.0.1: - dependencies: - '@types/hast': 3.0.4 - hastscript: 9.0.1 - web-namespaces: 2.0.1 - - hast-util-from-html-isomorphic@2.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-dom: 5.0.1 - hast-util-from-html: 2.0.3 - unist-util-remove-position: 5.0.0 - - hast-util-from-html@2.0.3: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 - parse5: 7.3.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - - hast-util-from-parse5@8.0.3: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 9.0.1 - property-information: 7.2.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - web-namespaces: 2.0.1 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-parse-selector@2.2.5: {} - - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.1 - hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.1 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - parse5: 7.3.0 - unist-util-position: 5.0.0 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-sanitize@5.0.2: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.1 - unist-util-position: 5.0.0 - hast-util-to-estree@3.1.3: dependencies: '@types/estree': 1.0.8 @@ -9029,132 +3465,27 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@8.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 7.2.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - hast-util-to-string@3.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-text@4.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - - hast-util-whitespace@2.0.1: {} - hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 - hast@1.0.0: {} - - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - - hastscript@9.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 7.2.0 - space-separated-tokens: 2.0.2 - - help-me@5.0.0: {} - - highlight.js@10.7.3: {} - - highlightjs-vue@1.0.0: {} - - hono@4.12.25: {} - - html-url-attributes@3.0.1: {} - html-void-elements@3.0.0: {} - http-errors@2.0.1: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.7.2: - dependencies: - safer-buffer: 2.1.2 - - ieee754@1.2.1: {} - image-size@2.0.2: {} - import-meta-resolve@4.2.0: {} - - inherits@2.0.4: {} - - inline-style-parser@0.1.1: {} - inline-style-parser@0.2.4: {} - internmap@1.0.1: {} - - internmap@2.0.3: {} - - ip-address@10.2.0: {} - - ipaddr.js@1.9.1: {} - - is-alphabetical@1.0.4: {} - is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-buffer@2.0.5: {} - - is-decimal@1.0.4: {} - is-decimal@2.0.1: {} is-extglob@2.1.1: {} @@ -9163,99 +3494,17 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: {} - is-hexadecimal@2.0.1: {} - is-network-error@1.3.2: {} - is-number@7.0.0: {} is-plain-obj@4.1.0: {} - is-promise@4.0.0: {} - - isexe@2.0.0: {} - - jiti@2.4.2: {} - - jose@5.10.0: {} - - jose@6.2.3: {} - - joycon@3.1.1: {} - - js-tiktoken@1.0.21: - dependencies: - base64-js: 1.5.1 - - js-tokens@4.0.0: {} - - js-yaml@4.2.0: - dependencies: - argparse: 2.0.1 - - json-bigint@1.0.0: - dependencies: - bignumber.js: 9.3.1 - - json-schema-traverse@1.0.0: {} - - json-schema-typed@8.0.2: {} - - json-schema@0.4.0: {} - - jwa@2.0.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@4.0.1: - dependencies: - jwa: 2.0.1 - safe-buffer: 5.2.1 - - katex@0.16.47: - dependencies: - commander: 8.3.0 - - khroma@2.1.0: {} - - kleur@4.1.5: {} - - langchain@1.5.1(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(ws@8.21.0)(zod-to-json-schema@3.25.2(zod@4.1.12)): - dependencies: - '@langchain/core': 1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - '@langchain/langgraph': 1.4.5(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod-to-json-schema@3.25.2(zod@4.1.12))(zod@4.1.12) - '@langchain/langgraph-checkpoint': 1.1.2(@langchain/core@1.2.1(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0)) - langsmith: 0.7.10(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0) - zod: 4.1.12 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - react - - react-dom - - svelte - - vue - - ws - - zod-to-json-schema - - langsmith@0.7.10(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.21.0)(zod@4.1.12))(ws@8.21.0): - dependencies: - p-queue: 6.6.2 - optionalDependencies: - '@opentelemetry/api': 1.9.0 - openai: 4.104.0(ws@8.21.0)(zod@4.1.12) - ws: 8.21.0 - - layout-base@1.0.2: {} - - layout-base@2.0.1: {} + jiti@2.4.2: {} - libphonenumber-js@1.13.7: {} + js-yaml@4.2.0: + dependencies: + argparse: 2.0.1 lightningcss-darwin-arm64@1.30.1: optional: true @@ -9302,53 +3551,16 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 - lit-element@4.2.2: - dependencies: - '@lit-labs/ssr-dom-shim': 1.6.0 - '@lit/reactive-element': 2.1.2 - lit-html: 3.3.3 - - lit-html@3.3.3: - dependencies: - '@types/trusted-types': 2.0.7 - - lit@3.3.3: - dependencies: - '@lit/reactive-element': 2.1.2 - lit-element: 4.2.2 - lit-html: 3.3.3 - - lodash-es@4.18.0: {} - - lodash.get@4.4.2: {} - lodash.merge@4.6.2: {} longest-streak@3.1.0: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lowlight@1.20.0: - dependencies: - fault: 1.0.4 - highlight.js: 10.7.3 - - lru-cache@10.4.3: {} - lru-cache@11.2.2: {} lucide-react@0.525.0(react@19.2.0): dependencies: react: 19.2.0 - lucide-react@0.542.0(react@19.2.0): - dependencies: - react: 19.2.0 - - lucide@0.525.0: {} - magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -9357,12 +3569,6 @@ snapshots: markdown-table@3.0.4: {} - marked@12.0.2: {} - - marked@16.4.2: {} - - math-intrinsics@1.1.0: {} - mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 @@ -9370,23 +3576,6 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - decode-named-character-reference: 1.3.0 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -9404,23 +3593,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-from-markdown@2.0.3: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - mdast-util-gfm-autolink-literal@2.0.1: dependencies: '@types/mdast': 4.0.4 @@ -9478,18 +3650,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-math@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.1.2 - unist-util-remove-position: 5.0.0 - transitivePeerDependencies: - - supports-color - mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -9568,69 +3728,12 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 - media-typer@0.3.0: {} - - media-typer@1.1.0: {} - - merge-descriptors@1.0.3: {} - - merge-descriptors@2.0.0: {} - merge2@1.4.1: {} - mermaid@11.15.0: - dependencies: - '@braintree/sanitize-url': 7.1.2 - '@iconify/utils': 3.1.3 - '@mermaid-js/parser': 1.1.1 - '@types/d3': 7.4.3 - '@upsetjs/venn.js': 2.0.0 - cytoscape: 3.34.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.0) - cytoscape-fcose: 2.2.0(cytoscape@3.34.0) - d3: 7.9.0 - d3-sankey: 0.12.3 - dagre-d3-es: 7.0.14 - dayjs: 1.11.21 - dompurify: 3.4.11 - es-toolkit: 1.48.1 - katex: 0.16.47 - khroma: 2.1.0 - marked: 16.4.2 - roughjs: 4.6.6 - stylis: 4.4.0 - ts-dedent: 2.3.0 - uuid: 11.1.1 - - methods@1.1.2: {} - - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.3.0 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.2.0 @@ -9650,38 +3753,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-cjk-friendly-gfm-strikethrough@1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2): - dependencies: - devlop: 1.1.0 - get-east-asian-width: 1.6.0 - micromark: 4.0.2 - micromark-extension-cjk-friendly-util: 2.1.1(micromark-util-types@2.0.2) - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - optionalDependencies: - micromark-util-types: 2.0.2 - - micromark-extension-cjk-friendly-util@2.1.1(micromark-util-types@2.0.2): - dependencies: - get-east-asian-width: 1.6.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - optionalDependencies: - micromark-util-types: 2.0.2 - - micromark-extension-cjk-friendly@1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2): - dependencies: - devlop: 1.1.0 - micromark: 4.0.2 - micromark-extension-cjk-friendly-util: 2.1.1(micromark-util-types@2.0.2) - micromark-util-chunked: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - optionalDependencies: - micromark-util-types: 2.0.2 - micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 @@ -9740,16 +3811,6 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-math@3.1.0: - dependencies: - '@types/katex': 0.16.8 - devlop: 1.1.0 - katex: 0.16.47 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - micromark-extension-mdx-expression@3.0.1: dependencies: '@types/estree': 1.0.8 @@ -9801,25 +3862,12 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-destination@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 @@ -9839,23 +3887,11 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -9863,13 +3899,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -9877,61 +3906,30 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-classify-character@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.3.0 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.2.0 @@ -9939,8 +3937,6 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-encode@1.1.0: {} - micromark-util-encode@2.0.1: {} micromark-util-events-to-acorn@2.0.3: @@ -9953,45 +3949,22 @@ snapshots: micromark-util-types: 2.0.2 vfile-message: 4.0.2 - micromark-util-html-tag-name@1.2.0: {} - micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.2 - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 @@ -9999,36 +3972,10 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-symbol@1.1.0: {} - micromark-util-symbol@2.0.1: {} - micromark-util-types@1.1.0: {} - micromark-util-types@2.0.2: {} - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.13 - debug: 4.4.3 - decode-named-character-reference: 1.3.0 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - micromark@4.0.2: dependencies: '@types/debug': 4.1.12 @@ -10054,23 +4001,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 4.0.4 - - mime-db@1.52.0: {} - - mime-db@1.54.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime-types@3.0.2: - dependencies: - mime-db: 1.54.0 - - mime@1.6.0: {} - - minimist@1.2.8: {} + picomatch: 2.3.2 minipass@7.1.2: {} @@ -10078,18 +4009,10 @@ snapshots: dependencies: minipass: 7.1.2 - mri@1.2.0: {} - - ms@2.0.0: {} - ms@2.1.3: {} - mustache@4.2.0: {} - nanoid@3.3.15: {} - negotiator@0.6.3: {} - negotiator@1.0.0: {} next-themes@0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): @@ -10113,13 +4036,13 @@ snapshots: transitivePeerDependencies: - supports-color - next@16.2.6(@opentelemetry/api@1.9.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + next@16.2.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@next/env': 16.2.6 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.10.38 caniuse-lite: 1.0.30001799 - postcss: 8.5.10 + postcss: 8.4.31 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) styled-jsx: 5.1.6(react@19.2.0) @@ -10132,104 +4055,21 @@ snapshots: '@next/swc-linux-x64-musl': 16.2.6 '@next/swc-win32-arm64-msvc': 16.2.6 '@next/swc-win32-x64-msvc': 16.2.6 - '@opentelemetry/api': 1.9.0 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - node-domexception@1.0.0: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - npm-to-yarn@3.0.1: {} - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - on-exit-leak-free@2.1.2: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - oniguruma-parser@0.12.1: {} - oniguruma-parser@0.12.2: {} - oniguruma-to-es@4.3.3: dependencies: oniguruma-parser: 0.12.1 regex: 6.0.1 regex-recursion: 6.0.2 - oniguruma-to-es@4.3.6: - dependencies: - oniguruma-parser: 0.12.2 - regex: 6.1.0 - regex-recursion: 6.0.2 - - openai@4.104.0(ws@8.21.0)(zod@4.1.12): - dependencies: - '@types/node': 18.19.130 - '@types/node-fetch': 2.6.13 - abort-controller: 3.0.0 - agentkeepalive: 4.6.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0 - optionalDependencies: - ws: 8.21.0 - zod: 4.1.12 - transitivePeerDependencies: - - encoding - - p-finally@1.0.0: {} - - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - - p-queue@9.3.0: - dependencies: - eventemitter3: 5.0.4 - p-timeout: 7.0.1 - - p-retry@7.1.1: - dependencies: - is-network-error: 1.3.2 - - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - - p-timeout@7.0.1: {} - - package-manager-detector@1.6.0: {} - - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -10240,223 +4080,45 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse5@7.3.0: - dependencies: - entities: 6.0.1 - - parseurl@1.3.3: {} - - partial-json@0.1.7: {} - - path-data-parser@0.1.0: {} - - path-expression-matcher@1.6.0: {} - - path-key@3.1.1: {} - path-to-regexp@8.4.0: {} - phoenix@1.8.8: {} - picocolors@1.1.1: {} - picomatch@4.0.4: {} - - pino-abstract-transport@2.0.0: - dependencies: - split2: 4.2.0 - - pino-pretty@11.3.0: - dependencies: - colorette: 2.0.20 - dateformat: 4.6.3 - fast-copy: 3.0.2 - fast-safe-stringify: 2.1.1 - help-me: 5.0.0 - joycon: 3.1.1 - minimist: 1.2.8 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pump: 3.0.3 - readable-stream: 4.7.0 - secure-json-parse: 2.7.0 - sonic-boom: 4.2.0 - strip-json-comments: 3.1.1 - - pino-std-serializers@7.0.0: {} + picomatch@2.3.2: {} - pino@9.14.0: - dependencies: - '@pinojs/redact': 0.4.0 - atomic-sleep: 1.0.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.0.0 - process-warning: 5.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 - thread-stream: 3.1.0 - - pkce-challenge@5.0.1: {} - - points-on-curve@0.2.0: {} - - points-on-path@0.2.1: - dependencies: - path-data-parser: 0.1.0 - points-on-curve: 0.2.0 + picomatch@4.0.4: {} postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.10: + postcss@8.4.31: dependencies: nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-js@1.276.0: - dependencies: - '@posthog/core': 1.3.0 - core-js: 3.46.0 - fflate: 0.4.8 - preact: 10.27.3 - web-vitals: 4.2.4 - - posthog-node@5.20.0: + postcss@8.5.10: dependencies: - '@posthog/core': 1.9.1 - - preact@10.27.3: {} + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 prettier@3.6.2: {} - prismjs@1.30.0: {} - - process-warning@5.0.0: {} - - process@0.11.10: {} - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - - property-information@6.5.0: {} - property-information@7.1.0: {} - property-information@7.2.0: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - pump@3.0.3: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - - qs@6.15.2: - dependencies: - side-channel: 1.1.1 - queue-microtask@1.2.3: {} - quick-format-unescaped@4.0.4: {} - - range-parser@1.2.1: {} - - raw-body@2.5.3: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - raw-body@3.0.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.7.2 - unpipe: 1.0.0 - - react-aria@3.50.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): - dependencies: - '@internationalized/date': 3.12.2 - '@internationalized/number': 3.6.7 - '@internationalized/string': 3.2.9 - '@react-types/shared': 3.36.0(react@19.2.0) - '@swc/helpers': 0.5.23 - aria-hidden: 1.2.6 - clsx: 2.1.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-stately: 3.48.0(react@19.2.0) - use-sync-external-store: 1.6.0(react@19.2.0) - react-dom@19.2.0(react@19.2.0): dependencies: react: 19.2.0 - scheduler: 0.27.0 - - react-icons@5.5.0(react@19.2.0): - dependencies: - react: 19.2.0 - - react-is@16.13.1: {} - - react-is@18.3.1: {} - - react-markdown@10.1.0(@types/react@19.1.8)(react@19.2.0): - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 19.1.8 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.1 - react: 19.2.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - unified: 11.0.5 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color + scheduler: 0.27.0 - react-markdown@8.0.7(@types/react@19.1.8)(react@19.2.0): + react-icons@5.5.0(react@19.2.0): dependencies: - '@types/hast': 2.3.10 - '@types/prop-types': 15.7.15 - '@types/react': 19.1.8 - '@types/unist': 2.0.11 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 2.0.1 - prop-types: 15.8.1 - property-information: 6.5.0 react: 19.2.0 - react-is: 18.3.1 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - transitivePeerDependencies: - - supports-color react-medium-image-zoom@5.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: @@ -10482,27 +4144,6 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - react-remove-scroll@2.7.2(@types/react@19.1.8)(react@19.2.0): - dependencies: - react: 19.2.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.8)(react@19.2.0) - react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.2.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.8)(react@19.2.0) - use-sidecar: 1.1.3(@types/react@19.1.8)(react@19.2.0) - optionalDependencies: - '@types/react': 19.1.8 - - react-stately@3.48.0(react@19.2.0): - dependencies: - '@internationalized/date': 3.12.2 - '@internationalized/number': 3.6.7 - '@internationalized/string': 3.2.9 - '@react-types/shared': 3.36.0(react@19.2.0) - '@swc/helpers': 0.5.23 - react: 19.2.0 - use-sync-external-store: 1.6.0(react@19.2.0) - react-style-singleton@2.2.3(@types/react@19.1.8)(react@19.2.0): dependencies: get-nonce: 1.0.1 @@ -10511,30 +4152,10 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - react-syntax-highlighter@15.6.6(react@19.2.0): - dependencies: - '@babel/runtime': 7.29.7 - highlight.js: 10.7.3 - highlightjs-vue: 1.0.0 - lowlight: 1.20.0 - prismjs: 1.30.0 - react: 19.2.0 - refractor: 3.6.0 - react@19.2.0: {} - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - readdirp@4.1.2: {} - real-require@0.2.0: {} - recma-build-jsx@1.0.0: dependencies: '@types/estree': 1.0.8 @@ -10565,14 +4186,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - reflect-metadata@0.2.2: {} - - refractor@3.6.0: - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.30.0 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -10583,30 +4196,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regex@6.1.0: - dependencies: - regex-utilities: 2.3.0 - - rehype-harden@1.1.8: - dependencies: - unist-util-visit: 5.1.0 - - rehype-katex@7.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/katex': 0.16.8 - hast-util-from-html-isomorphic: 2.0.0 - hast-util-to-text: 4.0.2 - katex: 0.16.47 - unist-util-visit-parents: 6.0.2 - vfile: 6.0.3 - - rehype-raw@7.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.1.0 - vfile: 6.0.3 - rehype-recma@1.0.0: dependencies: '@types/estree': 1.0.8 @@ -10615,31 +4204,6 @@ snapshots: transitivePeerDependencies: - supports-color - rehype-sanitize@6.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-sanitize: 5.0.2 - - remark-cjk-friendly-gfm-strikethrough@1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): - dependencies: - micromark-extension-cjk-friendly-gfm-strikethrough: 1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2) - unified: 11.0.5 - optionalDependencies: - '@types/mdast': 4.0.4 - transitivePeerDependencies: - - micromark - - micromark-util-types - - remark-cjk-friendly@1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): - dependencies: - micromark-extension-cjk-friendly: 1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2) - unified: 11.0.5 - optionalDependencies: - '@types/mdast': 4.0.4 - transitivePeerDependencies: - - micromark - - micromark-util-types - remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 @@ -10651,22 +4215,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-math@6.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-math: 3.0.0 - micromark-extension-math: 3.1.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-mdx@3.1.0: - dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - transitivePeerDependencies: - - supports-color - remark-mdx@3.1.1: dependencies: mdast-util-mdx: 3.0.0 @@ -10674,14 +4222,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-parse@10.0.2: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -10691,13 +4231,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@10.1.0: - dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-to-hast: 13.2.1 - unified: 10.1.2 - remark-rehype@11.1.2: dependencies: '@types/hast': 3.0.4 @@ -10721,116 +4254,22 @@ snapshots: transitivePeerDependencies: - supports-color - remend@1.0.1: {} - - require-from-string@2.0.2: {} - resolve-pkg-maps@1.0.0: {} reusify@1.1.0: {} - robust-predicates@3.0.3: {} - - roughjs@4.6.6: - dependencies: - hachure-fill: 0.5.2 - path-data-parser: 0.1.0 - points-on-curve: 0.2.0 - points-on-path: 0.2.1 - - router@2.2.0: - dependencies: - debug: 4.4.3 - depd: 2.0.0 - is-promise: 4.0.0 - parseurl: 1.3.3 - path-to-regexp: 8.4.0 - transitivePeerDependencies: - - supports-color - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rw@1.3.3: {} - - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - safe-buffer@5.2.1: {} - - safe-stable-stringify@2.5.0: {} - - safer-buffer@2.1.2: {} - scheduler@0.27.0: {} scroll-into-view-if-needed@3.1.0: dependencies: compute-scroll-into-view: 3.1.1 - secure-json-parse@2.7.0: {} - - semver@7.8.5: {} - - send@0.19.2: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.1 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - send@1.2.1: - dependencies: - debug: 4.4.3 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 2.0.0 - http-errors: 2.0.1 - mime-types: 3.0.2 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.3: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.2 - transitivePeerDependencies: - - supports-color - - serve-static@2.2.1: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 1.2.1 - transitivePeerDependencies: - - supports-color - - setprototypeof@1.2.0: {} + semver@7.8.5: + optional: true sharp@0.34.5: dependencies: @@ -10864,12 +4303,6 @@ snapshots: '@img/sharp-win32-x64': 0.34.5 optional: true - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - shiki@3.15.0: dependencies: '@shikijs/core': 3.15.0 @@ -10881,116 +4314,21 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - shiki@3.23.0: - dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/engine-javascript': 3.23.0 - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - side-channel-list@1.0.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.1 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - sonic-boom@4.2.0: - dependencies: - atomic-sleep: 1.0.0 - source-map-js@1.2.1: {} source-map@0.7.4: {} - space-separated-tokens@1.1.5: {} - space-separated-tokens@2.0.2: {} - split2@4.2.0: {} - - statuses@2.0.2: {} - - streamdown@1.6.11(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(react@19.2.0): - dependencies: - clsx: 2.1.1 - hast: 1.0.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - katex: 0.16.47 - lucide-react: 0.542.0(react@19.2.0) - marked: 16.4.2 - mermaid: 11.15.0 - react: 19.2.0 - rehype-harden: 1.1.8 - rehype-katex: 7.0.1 - rehype-raw: 7.0.0 - rehype-sanitize: 6.0.0 - remark-cjk-friendly: 1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) - remark-cjk-friendly-gfm-strikethrough: 1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) - remark-gfm: 4.0.1 - remark-math: 6.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remend: 1.0.1 - shiki: 3.23.0 - tailwind-merge: 3.3.1 - unified: 11.0.5 - unist-util-visit: 5.1.0 - transitivePeerDependencies: - - '@types/mdast' - - micromark - - micromark-util-types - - supports-color - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 - strip-json-comments@3.1.1: {} - - strnum@2.4.1: - dependencies: - anynum: 1.0.1 - style-to-js@1.1.17: dependencies: style-to-object: 1.0.9 - style-to-object@0.4.4: - dependencies: - inline-style-parser: 0.1.1 - style-to-object@1.0.9: dependencies: inline-style-parser: 0.2.4 @@ -11000,14 +4338,6 @@ snapshots: client-only: 0.0.1 react: 19.2.0 - stylis@4.4.0: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - tabbable@6.5.0: {} - tailwind-merge@3.3.1: {} tailwindcss@4.1.10: {} @@ -11022,14 +4352,8 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - thread-stream@3.1.0: - dependencies: - real-require: 0.2.0 - tinyexec@1.0.2: {} - tinyexec@1.2.4: {} - tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -11044,16 +4368,10 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - - tr46@0.0.3: {} - trim-lines@3.0.1: {} trough@2.2.0: {} - ts-dedent@2.3.0: {} - tslib@2.8.1: {} tsx@4.21.0: @@ -11063,48 +4381,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tw-animate-css@1.4.0: {} - - type-graphql@2.0.0-rc.1(class-validator@0.14.4)(graphql-scalars@1.25.0(graphql@16.14.2))(graphql@16.14.2): - dependencies: - '@graphql-yoga/subscription': 5.0.5 - '@types/node': 22.15.28 - '@types/semver': 7.7.1 - graphql: 16.14.2 - graphql-query-complexity: 0.12.0(graphql@16.14.2) - graphql-scalars: 1.25.0(graphql@16.14.2) - semver: 7.8.5 - tslib: 2.8.1 - optionalDependencies: - class-validator: 0.14.4 - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - type-is@2.1.0: - dependencies: - content-type: 2.0.0 - media-typer: 1.1.0 - mime-types: 3.0.2 - typescript@5.8.3: {} - undici-types@5.26.5: {} - undici-types@6.21.0: {} - unified@10.1.2: - dependencies: - '@types/unist': 2.0.11 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -11115,15 +4395,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unist-util-find-after@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - - unist-util-is@5.2.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -11141,30 +4412,15 @@ snapshots: '@types/unist': 3.0.3 unist-util-visit: 5.0.0 - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -11177,18 +4433,6 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unpipe@1.0.0: {} - - untruncate-json@0.0.1: {} - - urlpattern-polyfill@10.1.0: {} - - urql@4.2.2(@urql/core@5.2.0(graphql@16.14.2))(react@19.2.0): - dependencies: - '@urql/core': 5.2.0(graphql@16.14.2) - react: 19.2.0 - wonka: 6.3.6 - use-callback-ref@1.3.3(@types/react@19.1.8)(react@19.2.0): dependencies: react: 19.2.0 @@ -11204,102 +4448,20 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - use-stick-to-bottom@1.1.6(react@19.2.0): - dependencies: - react: 19.2.0 - - use-sync-external-store@1.6.0(react@19.2.0): - dependencies: - react: 19.2.0 - util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} - - uuid@11.1.1: {} - - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.2 - kleur: 4.1.5 - sade: 1.8.1 - - validator@13.15.35: {} - - vary@1.1.2: {} - - vfile-location@5.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 3.0.3 - vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile-message@4.0.3: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@5.3.7: - dependencies: - '@types/unist': 2.0.11 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - vfile@6.0.3: dependencies: '@types/unist': 3.0.3 vfile-message: 4.0.2 - web-namespaces@2.0.1: {} - - web-streams-polyfill@3.3.3: {} - - web-streams-polyfill@4.0.0-beta.3: {} - - web-vitals@4.2.4: {} - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wonka@6.3.6: {} - - wrappy@1.0.2: {} - - ws@8.21.0: {} - - xtend@4.0.2: {} - yallist@5.0.0: {} - zod-to-json-schema@3.25.2(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod-to-json-schema@3.25.2(zod@4.1.12): - dependencies: - zod: 4.1.12 - - zod@3.25.76: {} - zod@4.1.12: {} zwitch@2.0.4: {} diff --git a/docs/src/app/(docs)/[...slug]/page.tsx b/docs/src/app/(docs)/[[...slug]]/page.tsx similarity index 86% rename from docs/src/app/(docs)/[...slug]/page.tsx rename to docs/src/app/(docs)/[[...slug]]/page.tsx index 39c8f0e012..e9d8df7318 100644 --- a/docs/src/app/(docs)/[...slug]/page.tsx +++ b/docs/src/app/(docs)/[[...slug]]/page.tsx @@ -9,12 +9,13 @@ import { ChevronDown, ExternalLink } from 'lucide-react'; import type { Metadata } from 'next'; import Link from 'next/link'; import { notFound } from 'next/navigation'; -import { PageFeedback } from '@/components/page-feedback'; import { DocActionsMenu } from '@/components/doc-actions-menu'; -export default async function Page(props: { params: Promise<{ slug: string[] }> }) { +export default async function Page(props: { params: Promise<{ slug?: string[] }> }) { const params = await props.params; - const slug = params.slug; + // Optional catch-all: the docs index (`/`) arrives as an undefined slug, which + // resolves to content/docs/index.mdx. Any deeper path arrives as segments. + const slug = params.slug ?? []; const page = source.getPage(slug); if (!page) notFound(); @@ -261,7 +262,6 @@ export default async function Page(props: { params: Promise<{ slug: string[] }> a: createRelativeLink(source, page), })} /> - ); @@ -272,107 +272,16 @@ export function generateStaticParams() { } export async function generateMetadata(props: { - params: Promise<{ slug: string[] }>; + params: Promise<{ slug?: string[] }>; }): Promise { const params = await props.params; - const page = source.getPage(params.slug); + const page = source.getPage(params.slug ?? []); if (!page) notFound(); - const title = `${page.data.title} | Cua`; - - // Canonical URL points to cua.ai to consolidate all SEO authority on main domain - const canonicalUrl = `https://cua.ai/docs${page.url}`; - - // Extract keywords from the page for SEO - const keywords = [ - 'computer use agent', - 'computer use', - 'AI automation', - 'visual automation', - page.data.title, - ]; - - // Structured data for better Google indexing (TechArticle schema) - const structuredData = { - '@context': 'https://schema.org', - '@type': 'TechArticle', - headline: page.data.title, - description: page.data.description, - url: canonicalUrl, - publisher: { - '@type': 'Organization', - name: 'Cua', - url: 'https://cua.ai', - logo: { - '@type': 'ImageObject', - url: 'https://cua.ai/cua_logo_black.svg', - }, - }, - mainEntityOfPage: { - '@type': 'WebPage', - '@id': canonicalUrl, - }, - }; - - // Breadcrumb schema for better site structure understanding - const breadcrumbSchema = { - '@context': 'https://schema.org', - '@type': 'BreadcrumbList', - itemListElement: [ - { - '@type': 'ListItem', - position: 1, - name: 'Cua', - item: 'https://cua.ai', - }, - { - '@type': 'ListItem', - position: 2, - name: 'Documentation', - item: 'https://cua.ai/docs', - }, - { - '@type': 'ListItem', - position: 3, - name: page.data.title, - item: canonicalUrl, - }, - ], - }; - + // Local MDX preview: just title + description. SEO/canonical/structured-data + // indexing belongs to the production site on the website, not here. return { - title, + title: `${page.data.title} | Docs preview`, description: page.data.description, - keywords, - authors: [{ name: 'Cua', url: 'https://cua.ai' }], - robots: { - index: true, - follow: true, - googleBot: { - index: true, - follow: true, - 'max-image-preview': 'large', - 'max-snippet': -1, - }, - }, - alternates: { - canonical: canonicalUrl, - }, - openGraph: { - title, - description: page.data.description, - type: 'article', - siteName: 'Cua', - url: canonicalUrl, - }, - twitter: { - card: 'summary', - title, - description: page.data.description, - creator: '@trycua', - }, - other: { - 'script:ld+json': JSON.stringify([structuredData, breadcrumbSchema]), - }, }; } diff --git a/docs/src/app/(docs)/layout.tsx b/docs/src/app/(docs)/layout.tsx index e019342460..4f08d47031 100644 --- a/docs/src/app/(docs)/layout.tsx +++ b/docs/src/app/(docs)/layout.tsx @@ -1,15 +1,14 @@ -import { CustomHeader } from '@/components/custom-header'; -import { ScopedDocsLayout } from '@/components/scoped-docs-layout'; +import { DocsLayout } from 'fumadocs-ui/layouts/docs'; import { source } from '@/lib/source'; import type { ReactNode } from 'react'; +// Stock fumadocs docs layout — sidebar tree from content/docs, no custom +// header/branding. This app is a local MDX preview; production chrome lives on +// the website. export default function Layout({ children }: { children: ReactNode }) { return ( - <> - -
- {children} -
- + + {children} + ); } diff --git a/docs/src/app/(landing)/layout.tsx b/docs/src/app/(landing)/layout.tsx deleted file mode 100644 index dab135bfc2..0000000000 --- a/docs/src/app/(landing)/layout.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import type { ReactNode } from 'react'; -import { HomeLayout } from 'fumadocs-ui/layouts/home'; -import { CustomHeader } from '@/components/custom-header'; -import { Footer } from '@/components/footer'; - -export default function LandingLayout({ children }: { children: ReactNode }) { - return ( - <> - - {children} -